:root{color-scheme:light dark;--bg: #f4f5f7;--surface: #ffffff;--surface-2: #eef0f3;--text: #17191d;--muted: #6b7280;--border: #e3e5ea;--grid: #e6e8ec;--accent: #2563eb;--accent-2: #0d9488;--accent-soft: rgba(37, 99, 235, .1);--corridor: #a3a8b3;--positive: #15803d;--negative: #b91c1c;--warn: #b45309;--positive-soft: rgba(21, 128, 61, .12);--negative-soft: rgba(185, 28, 28, .12);--warn-soft: rgba(180, 83, 9, .12);--neutral-soft: rgba(107, 114, 128, .14);--radius: 12px;--radius-sm: 8px;--shadow: 0 1px 2px rgba(0, 0, 0, .04);--nav-h: 46px}@media(prefers-color-scheme:dark){:root{--bg: #0f1115;--surface: #171a20;--surface-2: #1f232b;--text: #e7e9ee;--muted: #98a1b0;--border: #262b34;--grid: #242932;--accent: #60a5fa;--accent-2: #2dd4bf;--accent-soft: rgba(96, 165, 250, .14);--corridor: #5b6370;--positive: #4ade80;--negative: #f87171;--warn: #fbbf24;--positive-soft: rgba(74, 222, 128, .14);--negative-soft: rgba(248, 113, 113, .14);--warn-soft: rgba(251, 191, 36, .14);--neutral-soft: rgba(152, 161, 176, .16);--shadow: none}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.45;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;padding-bottom:env(safe-area-inset-bottom)}h1,h2,h3,p{margin:0}a{color:var(--accent);text-decoration:none}button{font:inherit;color:inherit}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}.muted{color:var(--muted)}.small{font-size:13px}.num{font-variant-numeric:tabular-nums}.pos{color:var(--positive)}.neg{color:var(--negative)}.warn{color:var(--warn)}.nav{position:sticky;top:0;z-index:10;background:var(--surface);border-bottom:1px solid var(--border);padding-top:env(safe-area-inset-top)}.nav-inner{max-width:760px;margin:0 auto;display:flex;height:var(--nav-h)}.nav-tab{flex:1 1 0;display:flex;align-items:center;justify-content:center;font-size:13.5px;font-weight:500;color:var(--muted);position:relative;white-space:nowrap;-webkit-tap-highlight-color:transparent}.nav-tab.active{color:var(--accent)}.nav-tab.active:after{content:"";position:absolute;left:12%;right:12%;bottom:0;height:2px;background:var(--accent);border-radius:2px 2px 0 0}.main{max-width:760px;margin:0 auto;padding:12px 12px 32px}@media(min-width:720px){.main{padding:20px 20px 40px}}.foot{max-width:760px;margin:0 auto;padding:0 12px 24px;text-align:center}.page-title{font-size:20px;font-weight:600;letter-spacing:-.01em;margin-bottom:2px}.page-sub{color:var(--muted);font-size:13.5px;margin-bottom:12px}.section-title{display:flex;align-items:baseline;justify-content:space-between;margin:18px 0 8px}.section-title h2{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.section-right{font-size:13px;color:var(--muted)}.grid-2{display:grid;grid-template-columns:1fr;gap:12px}@media(min-width:720px){.grid-2{grid-template-columns:1fr 1fr}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);margin-bottom:12px;min-width:0}.card-title{font-size:15px;font-weight:600;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px}@media(min-width:720px){.stats{grid-template-columns:repeat(4,1fr)}.stats.stats-3{grid-template-columns:repeat(3,1fr)}}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;min-width:0}.stat-label{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.stat-value{font-size:20px;font-weight:600;line-height:1.25;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-sub{font-size:12.5px;color:var(--muted);margin-top:2px}.big{font-size:34px;font-weight:600;letter-spacing:-.02em;line-height:1.1}.badge{display:inline-block;font-size:11.5px;font-weight:600;line-height:1;padding:4px 7px;border-radius:999px;white-space:nowrap;vertical-align:middle}.badge-neutral{background:var(--neutral-soft);color:var(--muted)}.badge-pos{background:var(--positive-soft);color:var(--positive)}.badge-neg{background:var(--negative-soft);color:var(--negative)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-accent{background:var(--accent-soft);color:var(--accent)}.error{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;background:var(--negative-soft);color:var(--negative);border:1px solid transparent;border-radius:var(--radius-sm);padding:10px 12px;font-size:13.5px;margin-bottom:12px}.empty{color:var(--muted);font-size:14px;padding:18px 12px;text-align:center;border:1px dashed var(--border);border-radius:var(--radius-sm);margin-bottom:12px}.loading{color:var(--muted);font-size:13.5px;padding:12px 0}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field-label{font-size:12px;color:var(--muted)}.input{width:100%;min-width:0;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 10px;font:inherit;font-size:16px}.input:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:transparent}.form-row{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.form-row .field{flex:1 1 110px}.btn{border:1px solid var(--border);background:var(--surface-2);border-radius:var(--radius-sm);padding:9px 14px;font-size:14.5px;font-weight:500;cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-sm{padding:5px 10px;font-size:13px}.linklike{background:none;border:none;padding:0;color:var(--muted);font-size:12.5px;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.form-note{font-size:12.5px;color:var(--muted);margin-top:6px}.form-ok{color:var(--positive)}.gate{min-height:70vh;display:flex;align-items:center;justify-content:center}.gate-card{width:100%;max-width:400px;display:flex;flex-direction:column;gap:12px}.list{display:flex;flex-direction:column}.list-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--border);color:inherit;min-width:0}.list-item:first-child{border-top:none}.list-main{min-width:0;flex:1 1 auto}.list-name{font-weight:500;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.list-meta{font-size:12.5px;color:var(--muted);margin-top:1px}.list-right{text-align:right;flex:0 0 auto;white-space:nowrap}.list-right .v{font-weight:600}.list-right .s{font-size:12px;color:var(--muted)}.chev{color:var(--muted);flex:0 0 auto}.bar{height:4px;background:var(--surface-2);border-radius:2px;overflow:hidden;margin-top:8px}.bar>span{display:block;height:100%;background:var(--accent);border-radius:2px}.dots{display:inline-flex;gap:4px;align-items:center}.dots i{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--accent);background:transparent}.dots i.on{background:var(--accent)}.item{padding:12px 0;border-top:1px solid var(--border)}.item:first-child{border-top:none;padding-top:4px}.item-head{display:flex;align-items:baseline;gap:8px}.item-idx{color:var(--muted);font-size:12.5px;width:18px;flex:0 0 auto}.item-name{font-weight:600;flex:1 1 auto;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.item-target{margin:4px 0 0 26px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.item-target .t{font-size:15.5px;font-weight:500}.item-sub{margin:2px 0 0 26px;font-size:12.5px;color:var(--muted)}.item-row{margin:6px 0 0 26px;display:flex;align-items:center;gap:12px;font-size:12.5px;color:var(--muted);flex-wrap:wrap}.item-row .done{color:var(--positive)}.cue{margin:6px 0 0 26px;font-size:13px;color:var(--text);opacity:.85}details.rationale{margin:6px 0 0 26px}details.rationale summary{cursor:pointer;font-size:12.5px;color:var(--accent);list-style:none;user-select:none;-webkit-tap-highlight-color:transparent}details.rationale summary::-webkit-details-marker{display:none}details.rationale summary:before{content:"▸ "}details.rationale[open] summary:before{content:"▾ "}details.rationale p{margin-top:4px;font-size:13px;color:var(--muted);white-space:pre-wrap}details.plain summary{cursor:pointer;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:8px 0;user-select:none}.chart{width:100%;height:260px;min-width:0}.chart.chart-sm{height:200px}.chart .recharts-wrapper,.chart svg{font-variant-numeric:tabular-nums}.chart .recharts-surface{overflow:visible}.chart-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:6px}.chart-legend span:before{content:"";display:inline-block;width:14px;height:0;border-top:2px solid var(--c, var(--muted));vertical-align:middle;margin-right:5px}.chart-legend span.dashed:before{border-top-style:dashed}.chart-tip{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;font-size:12.5px;box-shadow:0 4px 14px #0000001f;min-width:140px}.chart-tip-title{font-weight:600;margin-bottom:4px}.chart-tip-row{display:flex;align-items:center;gap:6px;color:var(--muted)}.chart-tip-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.chart-tip-name{flex:1 1 auto}.chart-tip-val{color:var(--text);font-weight:500}.sets{font-size:13px;color:var(--muted);margin-top:2px;line-height:1.5}.sets b{color:var(--text);font-weight:500}.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:13.5px}.kv dt{color:var(--muted)}.kv dd{margin:0;text-align:right;font-weight:500}pre.summary{white-space:pre-wrap;word-break:break-word;font:inherit;font-size:13.5px;line-height:1.5;margin:10px 0 0;padding:10px 12px;background:var(--surface-2);border-radius:var(--radius-sm);color:var(--text)}.back{display:inline-block;font-size:13.5px;margin-bottom:8px}.pr-box{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}
