.chart{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);flex-direction:column;gap:12px;min-width:0;margin:0;padding:14px 16px 12px;display:flex;position:relative}.chart-head{justify-content:space-between;align-items:flex-start;gap:12px;margin:0;padding:0;display:flex}.chart-caption{min-width:0}.chart-title{color:var(--text);margin:0;font-size:13px;font-weight:600;line-height:1.3}.chart-sub{color:var(--muted);margin:2px 0 0;font-size:12.5px;line-height:1.4}.chart-body{min-width:0}.chart-foot{color:var(--muted);margin:0;font-size:12px;line-height:1.4}.chart-table{-webkit-overflow-scrolling:touch;overflow-x:auto}.chart-empty{border:1px dashed var(--line);border-radius:var(--r-sm);min-height:48px;color:var(--faint);place-items:center;padding:12px;font-size:12.5px;display:grid}.chart-sr{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.chart-toggle{border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);flex-shrink:0;display:inline-flex}.chart-toggle button{height:26px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:0 9px;font-size:12px;font-weight:500;line-height:1;transition:background .1s,color .1s}.chart-toggle button:first-child{border-radius:5px 0 0 5px}.chart-toggle button:last-child{border-radius:0 5px 5px 0}.chart-toggle button+button{border-left:1px solid var(--line)}.chart-toggle button:hover{color:var(--text);background:var(--surface-2)}.chart-toggle button[aria-pressed=true]{background:var(--ink-soft);color:var(--text);font-weight:600}.chart-toggle button:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.chart-tip{z-index:5;background:var(--text);width:max-content;max-width:min(280px,100%);color:var(--bg);border-radius:var(--r-sm);box-shadow:var(--shadow-pop);pointer-events:none;padding:6px 9px;font-size:12.5px;line-height:1.35;position:absolute}.chart-tip-title{opacity:.7;white-space:nowrap;margin-bottom:2px;font-size:11.5px}.chart-tip-row{align-items:baseline;gap:6px;display:flex}.chart-tip-row+.chart-tip-row{margin-top:2px}.chart-tip-key{border-radius:1px;flex-shrink:0;align-self:center;width:10px;height:2px}.chart-tip-val{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600}.chart-tip-lbl{opacity:.75}.chart-tip-row.is-sep{border-top:1px solid #f6f5f138;margin-top:4px;padding-top:4px}.chart-tip-note{opacity:.85;align-items:center;gap:6px;margin-top:4px;font-size:11.5px;display:flex}.chart-legend{color:var(--muted);flex-wrap:wrap;gap:4px 14px;margin:0;padding:0;font-size:12px;list-style:none;display:flex}.chart-legend-item{align-items:center;gap:6px;display:inline-flex}.chart-legend-swatch{border-radius:2px;flex-shrink:0;width:10px;height:10px}.chart-legend-swatch.is-line{border-radius:1px;width:12px;height:2px}.chart-legend-val{color:var(--text);font-variant-numeric:tabular-nums;font-weight:500}.chart-legend-pct{color:var(--faint);font-variant-numeric:tabular-nums}.stat-tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);gap:4px;min-width:0;padding:12px 14px;display:grid}.stat-tile-head{align-items:center;gap:8px;min-width:0;display:flex}.stat-tile-label{color:var(--muted);min-width:0;font-size:12.5px;line-height:1.3}.stat-tile-badge{flex-shrink:0;align-items:center;display:inline-flex}.stat-tile-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:4px 12px;display:flex}.stat-tile-value{font-family:var(--sans);letter-spacing:-.015em;color:var(--text);font-variant-numeric:proportional-nums;white-space:nowrap;min-width:0;font-size:clamp(22px,2.2vw,26px);font-weight:600;line-height:1.1}.stat-tile.is-hero .stat-tile-value{letter-spacing:-.02em;font-size:clamp(32px,4vw,44px)}.stat-tile-sub{color:var(--muted);font-size:12.5px;line-height:1.35}.stat-tile-spark{flex-shrink:0;width:72px;height:24px;display:block;overflow:visible}.stat-tile-delta{color:var(--muted);align-items:center;gap:3px;font-size:12px;font-weight:500;display:inline-flex}.stat-tile-delta.is-good{color:var(--ok)}.stat-tile-delta.is-bad{color:var(--danger)}.stat-tile-delta.is-neutral{color:var(--muted)}.stat-tile-delta i{font-style:normal}.meter{grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:4px 10px;font-size:12.5px;display:grid}.meter-label{color:var(--muted);min-width:0}.meter-value{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--text);white-space:nowrap;font-size:12.5px;font-weight:500}.meter-value small{color:var(--faint);margin-left:6px;font-size:11.5px;font-weight:400}.meter-track{background:var(--surface-3);border-radius:999px;grid-column:1/-1;height:6px;overflow:hidden}.meter-fill{background:var(--ink);border-radius:999px;height:100%;transition:width .2s;display:block}.meter.is-warn .meter-track{background:var(--warn-soft)}.meter.is-warn .meter-fill{background:var(--warn)}.meter.is-danger .meter-track{background:var(--danger-soft)}.meter.is-danger .meter-fill{background:var(--danger)}.bars{grid-template-columns:minmax(72px,30%) minmax(0,1fr);gap:0 10px;display:grid;position:relative}.bars-row{grid-template-columns:minmax(72px,30%) minmax(0,1fr);grid-template-columns:subgrid;cursor:default;border-radius:var(--r-xs);grid-column:1/-1;align-items:center;column-gap:10px;min-height:20px;display:grid}.bars-row:focus-visible{outline:2px solid var(--ink);outline-offset:0}.bars-label{color:var(--muted);overflow-wrap:anywhere;min-width:0;padding:2px 0;font-size:12.5px;line-height:1.25}.bars-sub{color:var(--faint);font-size:11px;display:block}.bars-track{border-left:1px solid var(--line-strong);align-self:stretch;align-items:center;min-width:0;padding:1px 0;display:flex}.bars-track-inner{flex:1;align-items:center;gap:6px;min-width:0;font-size:12px;display:flex}.bars-bar{background:var(--ink);border-radius:0 4px 4px 0;flex:none;transition:opacity .1s;display:block}.bars-row:hover .bars-bar,.bars-row:focus-visible .bars-bar{opacity:.8}.bars-val{white-space:nowrap;color:var(--text);font-size:12px}.sbar{gap:10px;display:grid;position:relative}.sbar-track{gap:2px;width:100%;display:flex}.sbar-seg{cursor:default;flex-basis:0;justify-content:center;align-items:center;min-width:0;transition:opacity .1s;display:flex;position:relative}.sbar-seg:last-child{border-radius:0 4px 4px 0}.sbar-seg:hover,.sbar-seg:focus-visible{opacity:.82}.sbar-seg:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.sbar-seg-label{white-space:nowrap;pointer-events:none;font-size:12px;font-weight:500;line-height:1}.sbar-empty{background:var(--surface-3);border-radius:0 4px 4px 0}.cols{gap:6px;min-width:0;display:grid;position:relative}.cols-legend{justify-content:flex-end}.cols-frame{gap:0;min-width:0;display:grid}.cols-y{position:relative}.cols-tick{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:11px;line-height:1;position:absolute;right:6px;transform:translateY(50%)}.cols-plot{min-width:0;position:relative}.cols-grid{background:var(--line);height:1px;position:absolute;left:0;right:0}.cols-grid.is-base{background:var(--line-strong)}.cols-cols{display:flex;position:absolute;inset:0}.cols-col{cursor:default;border-radius:var(--r-xs);flex-direction:column;flex:1 1 0;justify-content:flex-end;align-items:center;min-width:0;display:flex}.cols-col:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.cols-sum{color:var(--text);white-space:nowrap;font-variant-numeric:tabular-nums;pointer-events:none;margin-bottom:4px;font-size:11.5px;line-height:1}.cols-bar{flex-direction:column-reverse;gap:2px;width:min(20px,100% - 2px);max-width:24px;transition:opacity .1s;display:flex}.cols-seg{flex:0 1 0;min-height:2px;display:block}.cols-seg:last-child{border-radius:4px 4px 0 0}.cols-col:hover .cols-bar,.cols-col:focus-visible .cols-bar{opacity:.82}.cols-col.is-muted .cols-bar,.cols-col.is-muted .cols-sum{opacity:.55}.cols-col.is-muted:hover .cols-bar,.cols-col.is-muted:focus-visible .cols-bar{opacity:.7}.cols-x{padding-top:4px;display:flex}.cols-xl{min-width:0;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;flex-direction:column;flex:1 1 0;align-items:center;font-size:11px;line-height:1.2;display:flex}.cols-note{color:var(--faint);font-size:10.5px}.lc{gap:6px;min-width:0;display:grid}.lc-legend{justify-content:flex-end}.lc-plot{min-width:0;position:relative}.lc-svg{width:100%;font-family:var(--sans);touch-action:pan-y;display:block}.lc-svg:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:var(--r-xs)}.lc-grid{stroke:var(--line);stroke-width:1px;shape-rendering:crispedges}.lc-grid.is-base{stroke:var(--line-strong)}.lc-tick{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.lc-line{fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.lc-area{opacity:.1}.lc-marker{stroke:var(--surface);stroke-width:2px}.lc-endlabel{fill:var(--text);paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round;font-size:12px;font-weight:500}.lc-cross{stroke:var(--line-strong);stroke-width:1px;shape-rendering:crispedges}.chart-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;min-width:0;display:grid}.chart-grid>*{min-width:0}.chart-grid>.span-12{grid-column:span 12}.chart-grid>.span-8{grid-column:span 8}.chart-grid>.span-6{grid-column:span 6}.chart-grid>.span-4{grid-column:span 4}.chart-grid>.span-3{grid-column:span 3}.chart-grid>.span-2{grid-column:span 2}@media (max-width:1199.98px){.chart-grid>.span-2,.chart-grid>.span-3,.chart-grid>.span-4{grid-column:span 6}}@media (max-width:899.98px){.chart-grid>.span-2,.chart-grid>.span-3,.chart-grid>.span-4,.chart-grid>.span-6,.chart-grid>.span-8{grid-column:span 12}}.kpi-row{flex-wrap:wrap;gap:12px 24px;min-width:0;display:flex}.kpi-row>.stat-tile{flex:160px;min-width:0}@media (pointer:coarse){.chart-toggle button{height:36px;padding:0 12px}.bars-row{min-height:24px}}@media print{.chart-tip,.chart-toggle{display:none!important}.chart,.stat-tile{border-color:#999}}
:root{--bg:#f6f5f1;--surface:#fff;--surface-2:#f0eee8;--surface-3:#e9e6de;--line:#e4e0d7;--line-strong:#cbc5b9;--text:#1c1b18;--muted:#6b665c;--faint:#a39d91;--ink:#22324a;--ink-hover:#1a2739;--ink-soft:#22324a14;--ok:#1f7a4d;--ok-soft:#1f7a4d1a;--warn:#b4640a;--warn-soft:#b4640a1f;--danger:#c2382b;--danger-soft:#c2382b1a;--r-xs:4px;--r-sm:6px;--r-md:10px;--r-lg:14px;--shadow-pop:0 10px 30px -10px #1c1b1840, 0 2px 6px #1c1b1814;--ring:0 0 0 3px var(--ink-soft);--sans:var(--font-sans,"Geist"), system-ui, -apple-system, "Segoe UI", sans-serif;--mono:var(--font-mono,"Geist Mono"), ui-monospace, SFMono-Regular, Menlo, monospace;--side-w:220px;--panel:var(--surface);--panel2:var(--surface-2);--border:var(--line);--border-strong:var(--line-strong);--navy:var(--ink);--navy-deep:var(--ink-hover);--navy-dim:var(--ink-soft);--accent:var(--ok);--accent-dim:var(--ok-soft);--warn-dim:var(--warn-soft);--danger-dim:var(--danger-soft);--radius:var(--r-md);--radius-sm:var(--r-sm);--radius-xs:var(--r-xs);--shadow-1:none;--shadow-2:none;--shadow-3:var(--shadow-pop)}*{box-sizing:border-box}html,body{margin:0;padding:0}html{background:var(--bg)}body{font-family:var(--sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}button{font:inherit}::placeholder{color:var(--faint);opacity:1}::selection{background:#22324a29}:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:var(--r-xs)}.num,.mono,.table,.stat-num{font-variant-numeric:tabular-nums}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.shell{grid-template-columns:var(--side-w) minmax(0, 1fr);min-height:100dvh;display:grid}.main{min-width:0}.wrap{max-width:1280px;margin:0 auto;padding:20px 24px 48px}.side{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;gap:2px;height:100dvh;padding:14px 10px 10px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{color:var(--text);align-items:center;gap:10px;padding:4px 8px 12px;display:flex}.brand-mark{background:var(--ink);color:#fff;width:26px;height:26px;font-family:var(--mono);border-radius:7px;flex-shrink:0;place-items:center;font-size:13px;font-weight:600;line-height:1;display:grid}.brand-logo{border-radius:8px;flex-shrink:0;width:32px;height:32px;display:block}.brand-name{font-size:14px;font-weight:600;line-height:1.1}.nav-cnt-quiet{background:var(--ink-soft);color:var(--ink)}.brand-sub{color:var(--faint);font-size:11px;display:block}.nav-a{border-radius:var(--r-sm);color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;width:100%;padding:7px 10px;font-size:13.5px;font-weight:500;transition:background .1s,color .1s;display:flex}.nav-a:hover{color:var(--text);background:var(--surface-2)}.nav-a.on{background:var(--ink-soft);color:var(--text)}.nav-a svg{color:var(--faint)}.nav-a.on svg,.nav-a:hover svg{color:var(--text)}.nav-cnt{text-align:center;background:var(--warn-soft);min-width:20px;color:var(--warn);font-family:var(--mono);border-radius:999px;margin-left:auto;padding:1px 7px;font-size:11.5px;font-weight:600;line-height:16px}.nav-kbd{font-family:var(--mono);color:var(--faint);border:1px solid var(--line);border-radius:4px;margin-left:auto;padding:0 5px;font-size:10.5px;line-height:16px}.nav-sec{letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding:14px 10px 4px;font-size:10.5px;font-weight:600}.side-foot{border-top:1px solid var(--line);color:var(--muted);align-items:center;gap:10px;margin-top:auto;padding:10px 8px 4px;font-size:12.5px;display:flex}.side-foot .btn{margin-left:auto}.avatar{background:var(--surface-3);width:26px;height:26px;color:var(--text);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:inline-flex}.tabbar{display:none}@media (max-width:900px){.shell{grid-template-columns:minmax(0,1fr)}.side{display:none}.wrap{padding:16px 16px 92px}.tabbar{z-index:40;background:var(--surface);border-top:1px solid var(--line);padding:6px 4px max(6px, env(safe-area-inset-bottom));grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tab-a{border-radius:var(--r-sm);color:var(--muted);cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:3px;padding:4px 2px;font-size:10.5px;font-weight:500;display:flex;position:relative}.tab-a.on{color:var(--ink)}.tab-a .nav-cnt{margin:0;position:absolute;top:0;right:calc(50% - 22px)}.more-sheet{z-index:45;background:var(--surface);border-top:1px solid var(--line);padding:10px 12px max(14px, env(safe-area-inset-bottom));box-shadow:var(--shadow-pop);border-radius:14px 14px 0 0;gap:2px;display:grid;position:fixed;bottom:0;left:0;right:0}.more-sheet .nav-a{min-height:44px;font-size:15px}.more-backdrop{z-index:44;background:#1c1b184d;position:fixed;inset:0}}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin:0 0 18px;display:flex}.page-head-text{min-width:0}.page-back{color:var(--muted);margin-bottom:4px;font-size:12.5px;display:inline-block}.page-back:hover{color:var(--text)}.page-title{letter-spacing:-.01em;flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:18px;font-weight:600;line-height:1.3;display:flex}.page-sub{color:var(--muted);max-width:78ch;margin:2px 0 0;font-size:13px}.page-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.section-title{color:var(--text);margin:24px 0 8px;font-size:13px;font-weight:600}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:24px 0 8px;display:flex}.section-head .section-title{margin:0}.section-head .more,.link{color:var(--muted);font-size:12.5px}.link{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md)}.card-pad{padding:16px 18px}.card-link{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);transition:border-color .1s,background .1s;display:block}.card-link:hover{border-color:var(--line-strong);background:var(--surface-2)}.label{color:var(--muted);letter-spacing:.02em;margin-bottom:5px;font-size:11.5px;font-weight:600;display:block}.notice{border-radius:var(--r-sm);background:var(--surface-2);margin:10px 0 0;padding:8px 12px;font-size:13px}.notice-ok{background:var(--ok-soft);color:var(--ok)}.notice-danger{background:var(--danger-soft);color:var(--danger)}.notice-warn{background:var(--warn-soft);color:var(--warn)}.btn{border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);height:32px;min-height:32px;color:var(--text);white-space:nowrap;cursor:pointer;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:500;line-height:1;transition:background .1s,border-color .1s,color .1s;display:inline-flex}.btn:hover{background:var(--surface-2);border-color:var(--faint)}.btn:active{background:var(--surface-3)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600}.btn-primary:hover{background:var(--ink-hover);border-color:var(--ink-hover)}.btn-danger{color:var(--danger);border-color:var(--line)}.btn-danger:hover{background:var(--danger-soft);border-color:var(--danger)}.btn-ghost{color:var(--muted);background:0 0;border-color:#0000}.btn-ghost:hover{color:var(--text);background:var(--surface-2);border-color:#0000}.btn-sm{height:26px;min-height:26px;padding:0 8px;font-size:12px}.btn-lg{border-radius:var(--r-md);height:44px;min-height:44px;padding:0 18px;font-size:15px}.btn svg{flex-shrink:0}.seg{border:1px solid var(--line-strong);border-radius:var(--r-sm);display:inline-flex;overflow:hidden}.seg .btn{border:0;border-radius:0;height:30px;min-height:30px}.seg .btn+.btn{border-left:1px solid var(--line)}.seg .btn[aria-pressed=true],.seg .on{background:var(--ink-soft);color:var(--text);font-weight:600}.input,.select{border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);height:32px;min-height:32px;color:var(--text);padding:0 10px;font-family:inherit;font-size:16px;transition:border-color .1s,box-shadow .1s}@media (min-width:641px){.input,.select{font-size:13.5px}}.input:hover,.select:hover{border-color:var(--faint)}.input:focus,.select:focus{border-color:var(--ink);box-shadow:var(--ring);outline:none}input[type=file].input{padding:4px 8px;line-height:22px}input[type=checkbox]{width:16px;height:16px;accent-color:var(--ink);vertical-align:-3px;margin:0}input[type=number].input{font-family:var(--mono)}.check{color:var(--muted);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:inline-flex}.check:hover{color:var(--text)}.dropzone{border:1.5px dashed var(--line-strong);border-radius:var(--r-md);background:var(--surface);cursor:pointer;text-align:left;width:100%;color:inherit;align-items:center;gap:14px;padding:18px 20px;transition:border-color .1s,background .1s;display:flex}.dropzone:hover,.dropzone.over{border-color:var(--ink);background:var(--ink-soft)}.dropzone-ic{border-radius:var(--r-sm);background:var(--ink-soft);width:38px;height:38px;color:var(--ink);flex-shrink:0;place-items:center;display:grid}.dropzone b{font-weight:600;display:block}.dropzone span{color:var(--muted);font-size:12.5px}.filechips{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.filechip{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);align-items:center;gap:8px;padding:4px 6px 4px 10px;font-size:12.5px;display:inline-flex}.filechip .x{color:var(--faint);cursor:pointer;background:0 0;border:0;padding:0 3px;font-size:15px;line-height:1}.filechip .x:hover{color:var(--danger)}.tchips{flex-wrap:wrap;gap:6px;display:flex}.tchip{border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);cursor:pointer;height:32px;color:var(--text);align-items:center;gap:7px;padding:0 10px;font-size:13px;display:inline-flex}.tchip:hover{background:var(--surface-2)}.tchip.on{border-color:var(--ink);background:var(--ink-soft);font-weight:600}.tchip:disabled{opacity:.45;cursor:default}.tchip small{color:var(--muted);font-family:var(--mono);font-size:11.5px;font-weight:500}.steps{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);display:flex;overflow:hidden}.step{border-right:1px solid var(--line);flex:1;align-items:center;gap:10px;min-width:0;padding:11px 14px;font-size:13px;display:flex}.step:last-child{border-right:0}.step-n{background:var(--surface-3);width:22px;height:22px;color:var(--muted);font-family:var(--mono);border-radius:999px;flex-shrink:0;place-items:center;font-size:11.5px;font-weight:600;display:grid}.step.done .step-n{background:var(--ok);color:#fff}.step.cur .step-n{background:var(--ink);color:#fff}.step b{font-weight:600;display:block}.step small{color:var(--muted);font-size:12px;display:block}@media (max-width:640px){.steps{flex-direction:column}.step{border-right:0;border-bottom:1px solid var(--line)}.step:last-child{border-bottom:0}}.help{display:inline-block;position:relative}.help>summary{color:var(--muted);cursor:pointer;align-items:center;gap:6px;font-size:12.5px;list-style:none;display:inline-flex}.help>summary::-webkit-details-marker{display:none}.help-q{border:1px solid var(--line-strong);border-radius:999px;place-items:center;width:17px;height:17px;font-size:10.5px;font-weight:600;display:inline-grid}.help[open]>summary .help-q{background:var(--ink);color:#fff;border-color:var(--ink)}.help-pop{z-index:30;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);width:min(520px,100vw - 48px);box-shadow:var(--shadow-pop);color:var(--muted);padding:12px 14px;font-size:12.5px;line-height:1.55;position:absolute;top:calc(100% + 6px);left:0}.help-pop p{margin:0 0 8px}.help-pop p:last-child{margin:0}.help-pop b,.help-pop strong{color:var(--text);font-weight:600}.badge{background:var(--surface-2);color:var(--muted);white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:5px;padding:4px 8px;font-size:12px;font-weight:500;line-height:1;display:inline-flex}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge.mono,.badge-code{font-family:var(--mono);color:var(--text);border-radius:var(--r-xs);background:var(--surface);border-color:var(--line);padding:3px 7px;font-size:12px;font-weight:500}a.badge:hover{border-color:var(--line-strong)}.loc,.loc.badge{font-family:var(--mono);color:var(--text);border-radius:var(--r-xs);border:1px solid var(--line);background:var(--surface);white-space:nowrap;align-items:center;gap:6px;padding:4px 8px 4px 6px;font-size:12.5px;font-weight:600;line-height:1;display:inline-flex}.loc i{background:var(--faint);border-radius:2px;flex-shrink:0;width:8px;height:8px;display:inline-block}a.loc:hover{border-color:var(--line-strong);background:var(--surface-2)}.loc-lg{padding:6px 10px 6px 8px;font-size:15px}.loc-lg i{width:10px;height:10px}.table{border-collapse:collapse;width:100%;font-size:13.5px}.table th{text-transform:uppercase;letter-spacing:.05em;color:var(--faint);text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;background:0 0;padding:0 10px 8px;font-size:11px;font-weight:600}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:8px 10px}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:var(--surface-2)}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.card.table-scroll .table th{padding-top:10px}.card.table-scroll .table td:first-child,.card.table-scroll .table th:first-child{padding-left:14px}.card.table-scroll .table td:last-child,.card.table-scroll .table th:last-child{padding-right:14px}@media (max-width:640px){.table-scroll>.table{min-width:560px}}.row-actions{gap:6px;display:inline-flex}@media (hover:hover){.table tbody tr .row-actions{visibility:hidden}.table tbody tr:hover .row-actions,.table tbody tr:focus-within .row-actions{visibility:visible}}.card-thumb{aspect-ratio:5/7;object-fit:cover;background:var(--surface-3);border:1px solid var(--line);border-radius:4px;width:52px;display:block}.card-thumb:hover{border-color:var(--line-strong)}.card-hover-preview{aspect-ratio:5/7;object-fit:contain;z-index:1000;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-pop);pointer-events:none;border-radius:10px;animation:.12s both preview-in;position:fixed}@keyframes preview-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}.card-thumb-ph{aspect-ratio:5/7;border:1px solid var(--line);background:repeating-linear-gradient(45deg, transparent 0 6px, #1c1b1808 6px 12px), var(--surface-2);border-radius:4px;width:52px;display:block}.stats{flex-wrap:wrap;gap:28px;padding:4px 0 2px;display:flex}.stats .stat{background:0 0;border:0;padding:0}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:12px 14px}.stat-num{font-family:var(--mono);letter-spacing:-.01em;font-size:22px;font-weight:600;line-height:1.15}.stat-label{color:var(--muted);font-size:12.5px}.stat-meta{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:10px 0 0;font-size:12.5px;display:flex}.fill{background:var(--surface-3);border-radius:999px;min-width:100px;height:6px;overflow:hidden}.fill>i{background:var(--ink);border-radius:999px;height:100%;transition:width .2s;display:block}.grid-binders{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.actions-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.kbd{font-family:var(--mono);color:var(--faint);background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:0 5px;font-size:10.5px;line-height:16px}.task-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.task{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);grid-template-columns:36px 1fr auto;align-items:center;gap:14px;padding:12px 14px;display:grid}.task-num{border-radius:var(--r-sm);width:36px;height:36px;font-family:var(--mono);color:var(--ink);background:var(--ink-soft);justify-content:center;align-items:center;font-size:15px;font-weight:600;display:inline-flex}.task-title{align-items:center;gap:7px;margin:0;font-size:14px;font-weight:600;display:flex}.task-title svg{color:var(--muted)}.task-note{color:var(--muted);max-width:70ch;margin:2px 0 0;font-size:13px}.task-jumps{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.task-actions{justify-self:end;align-items:center;gap:8px;display:flex}.task-warn .task-num{color:var(--warn);background:var(--warn-soft)}.task-danger .task-num{color:var(--danger);background:var(--danger-soft)}@media (max-width:640px){.task{grid-template-columns:36px minmax(0,1fr);gap:10px 12px}.task-actions{grid-column:1/-1;justify-self:stretch}.task-actions .btn,.task-actions>div,.task-actions>div>.btn{width:100%}.stats{gap:16px 24px}.page-actions{width:100%}}.task-done{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);align-items:flex-start;gap:14px;padding:16px 18px;display:flex}.task-done-mark{background:var(--ok-soft);width:36px;height:36px;color:var(--ok);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.task-done-title{margin:0;font-size:14px;font-weight:600}.task-done-note{color:var(--muted);margin:2px 0 0;font-size:13px}.task-done-links{color:var(--muted);margin:8px 0 0;font-size:13px}.task-done-links a{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.empty{text-align:center;border:1px dashed var(--line-strong);border-radius:var(--r-md);color:var(--muted);place-items:center;padding:44px 20px;font-size:13.5px;display:grid}.empty svg{color:var(--faint);margin-bottom:8px}.empty b{color:var(--text);margin-bottom:2px;font-weight:600;display:block}.pick-grp{margin-top:16px}.pick-grp:first-child{margin-top:0}.pick-grp-h{align-items:center;gap:10px;margin-bottom:6px;display:flex}.pick-grp-h span{color:var(--muted);font-size:12.5px}.pick{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);cursor:pointer;grid-template-columns:24px 52px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:8px 12px 8px 10px;transition:background .1s,border-color .1s;display:grid}.pick+.pick{margin-top:4px}.pick:hover{border-color:var(--line-strong)}.pick.done{opacity:.5;cursor:default}.pick-cb{border:1.5px solid var(--line-strong);background:var(--surface);border-radius:5px;width:18px;height:18px;position:relative}.pick.done .pick-cb{background:var(--ok);border-color:var(--ok)}.pick.done .pick-cb:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:5px;height:9px;position:absolute;top:2px;left:5px;transform:rotate(45deg)}.pick-nm{font-size:13.5px;font-weight:600}.pick.done .pick-nm{text-decoration:line-through}.pick-mt{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:12.5px;display:flex}.pick-slot{font-family:var(--mono);text-align:right;white-space:nowrap;font-size:16px;font-weight:600}.pick-slot small{color:var(--muted);font-size:11px;font-weight:500;display:block}.pick-who{color:var(--muted);text-align:right;min-width:90px;font-size:12px}.pick-who b{color:var(--text);font-weight:500;display:block}.pick-tools{justify-content:flex-end;gap:6px;display:flex}@media (max-width:640px){.pick{grid-template-columns:24px 44px minmax(0,1fr) auto}.pick-who{display:none}.pick-tools{grid-column:1/-1}}.of-filters{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px;display:flex}.of-filters .tchip{height:30px}.of-row td{vertical-align:top}.of-name{font-size:13.5px;font-weight:600}.of-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:12.5px;display:flex}.of-qty{font-family:var(--mono);font-size:15px;font-weight:600}.of-qty small{color:var(--muted);font-size:11px;font-weight:500;font-family:var(--sans);display:block}.of-age{white-space:nowrap;font-size:12.5px}.of-age small{color:var(--faint);font-size:11px;display:block}.of-age.old{color:var(--warn)}.price{font-family:var(--mono);font-variant-numeric:tabular-nums}.steck-step{grid-template-columns:minmax(220px,300px) 1fr;align-items:start;gap:24px;display:grid}.steck-img img{aspect-ratio:5/7;object-fit:contain;background:var(--surface-2);border-radius:10px;width:100%;display:block}.steck-img-ph{aspect-ratio:5/7;border:1px dashed var(--line);background:var(--surface-2);width:100%;color:var(--muted);border-radius:10px;place-items:center;font-size:13px;display:grid}.steck-slot{font-family:var(--mono);letter-spacing:-.02em;color:var(--ink);background:var(--ink-soft);border-radius:var(--r-md);padding:10px 16px;font-size:clamp(30px,5vw,48px);font-weight:600;line-height:1.1;display:inline-block}.steck-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px;display:grid}.steck-cell{text-align:left;cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);font:inherit;color:inherit;padding:8px;transition:border-color .1s,opacity .1s;display:block;position:relative}.steck-cell:hover{border-color:var(--line-strong)}.steck-cell img{aspect-ratio:5/7;object-fit:cover;background:var(--surface-2);border-radius:6px;width:100%;display:block}.steck-cell-slot{font-family:var(--mono);color:var(--ink);margin-top:6px;font-size:13px;font-weight:600;display:block}.steck-cell-name{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.steck-cell.is-done{opacity:.45}.steck-cell.is-done .steck-cell-slot{color:var(--muted)}.steck-cell-mark{background:var(--ok);color:#fff;border-radius:999px;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex;position:absolute;top:10px;right:10px}@media (max-width:640px){.steck-step{grid-template-columns:1fr;gap:16px}.steck-img{max-width:240px;margin:0 auto}.steck-grid{grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:8px}}.cp-backdrop{z-index:70;background:#1c1b1859;justify-content:center;align-items:flex-start;padding:12vh 16px 16px;display:flex;position:fixed;inset:0}.cp{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);width:min(640px,100%);box-shadow:var(--shadow-pop);overflow:hidden}.cp-inputrow{border-bottom:1px solid var(--line);color:var(--faint);align-items:center;gap:10px;padding:12px 14px;display:flex}.cp-input{font:inherit;color:var(--text);background:0 0;border:0;outline:none;flex:1;min-width:0;font-size:16px}.cp-list{max-height:50vh;margin:0;padding:6px;list-style:none;overflow-y:auto}.cp-sec{letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding:8px 10px 4px;font-size:10.5px;font-weight:600}.cp-item{border-radius:var(--r-sm);color:var(--text);cursor:pointer;align-items:center;gap:10px;padding:9px 10px;font-size:13.5px;display:flex}.cp-item svg{color:var(--faint)}.cp-item.on{background:var(--ink-soft)}.cp-item .cp-k{color:var(--faint);margin-left:auto;font-size:12px}.cp-hint{border-top:1px solid var(--line);color:var(--faint);gap:14px;padding:8px 14px;font-size:11.5px;display:flex}@media (max-width:640px){.cp-backdrop{align-items:flex-start;padding:8px}}.toaster{z-index:80;gap:8px;max-width:min(420px,100vw - 32px);display:grid;position:fixed;bottom:18px;right:18px}@media (max-width:900px){.toaster{max-width:none;bottom:84px;left:12px;right:12px}}.toast{border-radius:var(--r-md);background:var(--text);color:var(--bg);box-shadow:var(--shadow-pop);align-items:center;gap:12px;padding:10px 12px 10px 14px;font-size:13px;animation:.16s ease-out both toast-in;display:flex}.toast b{font-weight:600}.toast span{opacity:.8}.toast-ok{border-left:3px solid #5bc48a}.toast-warn{border-left:3px solid #e5a04b}.toast-danger{border-left:3px solid #f07a6c}.toast-act{color:inherit;border-radius:var(--r-xs);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #ffffff40;margin-left:auto;padding:3px 8px;font-size:12px}.toast-x{color:inherit;opacity:.6;cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:15px;line-height:1}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.zd-backdrop{z-index:60;background:#1c1b1866;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.zd-sheet{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-pop);width:min(480px,100%);padding:16px 18px}.zd-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.zd-row{gap:4px;display:grid}.zd-row .select{width:100%}@media (pointer:coarse){.zd-backdrop{align-items:flex-end;padding:0}.zd-sheet{width:100%;padding-bottom:max(18px, env(safe-area-inset-bottom));border-radius:14px 14px 0 0}.zd-sheet .btn,.zd-sheet .select{height:44px;min-height:44px;font-size:15px}}.login-wrap{place-items:center;min-height:100dvh;padding:24px;display:grid}.login-box{width:min(380px,100%)}.login-box .card-pad{padding:22px 22px 20px}.login-box .brand{justify-content:center;padding-bottom:16px}@media (pointer:coarse){.btn,.input,.select,.tchip{height:44px;min-height:44px}.btn-sm{height:36px;min-height:36px}.pick{padding:10px 12px 10px 10px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media print{.side,.tabbar,.toaster,.no-print{display:none!important}.shell{display:block}body{background:#fff}.card,.pick{border-color:#999}}
@font-face{font-family:GeistSans;src:url(../media/Geist_Variable-s.p.0mrjj4bg00-he.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:GeistSans Fallback;src:local(Arial);ascent-override:94.56%;descent-override:27.76%;line-gap-override:0.0%;size-adjust:106.28%}.geistsans_d5a4f12f-module__Ur3q_a__className{font-family:GeistSans,GeistSans Fallback}.geistsans_d5a4f12f-module__Ur3q_a__variable{--font-geist-sans:"GeistSans", "GeistSans Fallback"}
@font-face{font-family:GeistMono;src:url(../media/GeistMono_Variable.p.3ms9vq719j3f8.woff2)format("woff2");font-display:swap;font-weight:100 900}.geistmono_157ca88a-module__iaM1Ya__className{font-family:GeistMono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}.geistmono_157ca88a-module__iaM1Ya__variable{--font-geist-mono:"GeistMono", ui-monospace, SFMono-Regular, Roboto Mono, Menlo, Monaco, Liberation Mono, DejaVu Sans Mono, Courier New, monospace}
