.of-scope,:root{--paper-0:oklch(99.2% 0.008 80);--paper-1:oklch(97.5% 0.012 80);--paper-2:oklch(95.0% 0.016 80);--paper-3:oklch(92.0% 0.020 80);--ink-0:oklch(18.0% 0.010 60);--ink-1:oklch(32.0% 0.010 60);--ink-2:oklch(48.0% 0.008 60);--ink-3:oklch(64.0% 0.006 60);--ink-4:oklch(82.0% 0.008 60);--line:oklch(88.0% 0.012 80);--line-strong:oklch(78.0% 0.014 80);--amber:oklch(63.0% 0.155 50);--amber-strong:oklch(54.0% 0.170 45);--amber-soft:oklch(94.5% 0.040 55);--amber-line:oklch(82.0% 0.095 55);--c-clay:#b85e3a;--c-clay-soft:#f5e2d4;--c-clay-deep:#8a3e1f;--c-ochre:#b8932a;--c-ochre-soft:#f4ead0;--c-ochre-deep:#7a6118;--c-sand:#a88563;--c-sand-soft:#f1e6d6;--c-sand-deep:#6e553d;--c-moss:#6b8159;--c-moss-soft:#dde6d4;--c-moss-deep:#3f4f33;--c-slate:#4f6471;--c-slate-soft:#d8dfe5;--c-slate-deep:#2a3640;--of-good:var(--c-moss);--of-warn:var(--c-ochre);--of-error:#b04030;--of-font-display:var(--font-newsreader),ui-serif,Georgia,serif;--of-font-sans:var(--font-inter),ui-sans-serif,system-ui,-apple-system,sans-serif;--of-font-mono:var(--font-jetbrains-mono),ui-monospace,"SF Mono",Menlo,monospace;--tr-tight:-0.02em;--tr-snug:-0.01em;--tr-mono:0.16em;--r-xs:4px;--r-sm:6px;--r-md:8px}body{font-family:var(--of-font-sans)}.of-hero{font-family:var(--of-font-display);font-size:56px;font-weight:500;line-height:1.02;letter-spacing:var(--tr-tight);color:var(--ink-0)}.of-display{font-size:38px;line-height:1.08}.of-display,.of-h1{font-family:var(--of-font-display);font-weight:500;letter-spacing:var(--tr-snug);color:var(--ink-0)}.of-h1{font-size:30px;line-height:1.12}.of-h2{font-family:var(--of-font-display);font-size:22px;font-weight:500;line-height:1.2}.of-h2,.of-h3{color:var(--ink-0)}.of-h3{font-family:var(--of-font-sans);font-size:17px;font-weight:600;line-height:1.3;letter-spacing:var(--tr-snug)}.of-lede{font-size:18px;line-height:1.55}.of-body,.of-lede{color:var(--ink-1)}.of-body{font-size:15px;line-height:1.6}.of-small{font-size:13px;color:var(--ink-2)}.of-micro{letter-spacing:.04em}.of-eyebrow,.of-micro{font-family:var(--of-font-mono);font-size:11px;color:var(--ink-2)}.of-eyebrow{font-weight:500;letter-spacing:var(--tr-mono);text-transform:uppercase;display:inline-flex;align-items:baseline;gap:7px}.of-eyebrow .dot{font-size:7px;transform:translateY(-2px)}.is-amber{color:var(--amber-strong)}.of-card{border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper-1);overflow:hidden;transition:border-color .12s cubic-bezier(.2,0,0,1),transform .12s cubic-bezier(.2,0,0,1)}.of-card:hover{border-color:var(--line-strong)}.of-card-hover:hover{transform:translateX(-2px);border-color:var(--ink-3)}.of-panel{border:1px solid var(--line);border-radius:var(--r-md)}.of-btn,.of-panel{background:var(--paper-0)}.of-btn{font-family:var(--of-font-sans);font-size:14px;font-weight:500;display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:var(--r-sm);border:1px solid var(--line-strong);color:var(--ink-0);transition:background .12s ease,border-color .12s ease,color .12s ease;cursor:pointer}.of-btn:hover{background:var(--paper-2);border-color:var(--ink-3)}.of-btn:disabled{opacity:.5;cursor:not-allowed}.of-btn:disabled:hover{background:var(--paper-0);border-color:var(--line-strong)}.of-btn-primary{background:var(--amber);border-color:var(--amber);color:#fff}.of-btn-primary:hover{background:var(--amber-strong);border-color:var(--amber-strong)}.of-btn-mono{font-size:13px}.of-btn-mono,.of-tag{font-family:var(--of-font-mono)}.of-tag{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:lowercase;padding:3px 9px 3px 8px;border-radius:var(--r-xs);border:1px solid var(--line);background:var(--paper-2);color:var(--ink-1)}.of-tag:before{content:"●";font-size:7px}.of-tag.is-clay{color:var(--c-clay);background:var(--c-clay-soft);border-color:color-mix(in oklch,var(--c-clay) 30%,var(--line))}.of-tag.is-ochre{color:var(--c-ochre-deep);background:var(--c-ochre-soft);border-color:color-mix(in oklch,var(--c-ochre) 30%,var(--line))}.of-tag.is-sand{color:var(--c-sand-deep);background:var(--c-sand-soft);border-color:color-mix(in oklch,var(--c-sand) 30%,var(--line))}.of-tag.is-moss{color:var(--c-moss-deep);background:var(--c-moss-soft);border-color:color-mix(in oklch,var(--c-moss) 30%,var(--line))}.of-tag.is-slate{color:var(--c-slate-deep);background:var(--c-slate-soft);border-color:color-mix(in oklch,var(--c-slate) 30%,var(--line))}.of-divider{border:none;border-top:1px solid var(--line);margin:32px 0}.of-divider-labeled{display:flex;align-items:center;gap:12px;margin:32px 0 16px}.of-divider-labeled:after,.of-divider-labeled:before{content:"";flex:1;border-top:1px solid var(--line)}.of-divider-labeled .lbl{font-size:10px;letter-spacing:var(--tr-mono);text-transform:uppercase}.of-divider-labeled .lbl,.of-hint{font-family:var(--of-font-mono);color:var(--ink-2)}.of-hint{border:1px dashed var(--line-strong);border-radius:var(--r-md);padding:12px 16px;font-size:13px;background:var(--paper-0)}.of-hint code{color:var(--ink-0);background:var(--paper-2);padding:1px 6px;border-radius:var(--r-xs)}.of-hint code,.of-kpi{border:1px solid var(--line)}.of-kpi{border-radius:var(--r-md);background:var(--paper-1);padding:16px 18px;display:flex;flex-direction:column;gap:8px;transition:border-color .12s ease,transform .12s ease}a.of-kpi:hover{border-color:var(--ink-3);transform:translateX(-2px)}.of-kpi-label{font-family:var(--of-font-mono);font-size:10px;color:var(--ink-2);letter-spacing:var(--tr-mono);text-transform:uppercase}.of-kpi-value{font-family:var(--of-font-display);font-size:40px;font-weight:500;line-height:1;letter-spacing:var(--tr-snug);color:var(--ink-0)}.of-kpi-sub{font-size:12px;color:var(--ink-2)}@keyframes of-braille{0%{content:"⠋"}10%{content:"⠙"}20%{content:"⠹"}30%{content:"⠸"}40%{content:"⠼"}50%{content:"⠴"}60%{content:"⠦"}70%{content:"⠧"}80%{content:"⠇"}90%{content:"⠏"}to{content:"⠋"}}.of-spin:before{display:inline-block;font-family:var(--of-font-mono);content:"⠋";animation:of-braille .8s steps(10) infinite}main.bg-\[\#f8faf9\]{background:var(--paper-0)}.of-facings-strip::-webkit-scrollbar{height:8px}.of-facings-strip::-webkit-scrollbar-track{background:var(--paper-2);border-radius:4px}.of-facings-strip::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:4px}.of-facings-strip::-webkit-scrollbar-thumb:hover{background:var(--ink-3)}:root{--paper-0:oklch(99.2% 0.008 80);--paper-1:oklch(97.5% 0.012 80);--paper-2:oklch(95.0% 0.016 80);--paper-3:oklch(92.0% 0.020 80);--ink-0:oklch(18.0% 0.010 60);--ink-1:oklch(32.0% 0.010 60);--ink-2:oklch(48.0% 0.008 60);--ink-3:oklch(64.0% 0.006 60);--ink-4:oklch(82.0% 0.008 60);--line:oklch(88.0% 0.012 80);--line-strong:oklch(78.0% 0.014 80);--amber:oklch(63.0% 0.155 50);--amber-strong:oklch(54.0% 0.170 45);--amber-soft:oklch(94.5% 0.040 55);--amber-line:oklch(82.0% 0.095 55);--c-clay:#b85e3a;--c-clay-soft:#f5e2d4;--c-clay-deep:#8a3e1f;--c-ochre:#b8932a;--c-ochre-soft:#f4ead0;--c-ochre-deep:#7a6118;--c-sand:#a88563;--c-sand-soft:#f1e6d6;--c-sand-deep:#6e553d;--c-moss:#6b8159;--c-moss-soft:#dde6d4;--c-moss-deep:#3f4f33;--c-slate:#4f6471;--c-slate-soft:#d8dfe5;--c-slate-deep:#2a3640;--kind-context-bg:oklch(95.0% 0.038 15);--kind-context-fg:oklch(46.0% 0.155 18);--kind-context-line:oklch(86.0% 0.060 15);--kind-decision-bg:oklch(95.0% 0.038 35);--kind-decision-fg:oklch(46.0% 0.155 38);--kind-decision-line:oklch(86.0% 0.060 35);--kind-anti-pattern-bg:oklch(95.0% 0.030 220);--kind-anti-pattern-fg:oklch(46.0% 0.110 230);--kind-anti-pattern-line:oklch(86.0% 0.055 220);--kind-pattern-bg:oklch(95.0% 0.030 150);--kind-pattern-fg:oklch(42.0% 0.090 150);--kind-pattern-line:oklch(86.0% 0.050 150);--kind-question-bg:oklch(95.0% 0.035 280);--kind-question-fg:oklch(46.0% 0.140 285);--kind-question-line:oklch(86.0% 0.060 280);--good:var(--c-moss);--warn:var(--c-ochre);--error:#b04030;--hl:#f5e98a;--font-display:var(--font-newsreader),ui-serif,Georgia,serif;--font-sans:var(--font-inter),ui-sans-serif,system-ui,-apple-system,sans-serif;--font-mono:var(--font-jetbrains-mono),ui-monospace,"SF Mono",Menlo,monospace;--t-hero:56px;--t-display:38px;--t-h1:30px;--t-h2:22px;--t-h3:17px;--t-body:16px;--t-small:13px;--t-micro:11px;--t-tiny:10px;--tr-tight:-0.02em;--tr-snug:-0.01em;--tr-mono:0.16em;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--sp-9:96px;--r-xs:4px;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--r-pill:999px;--rule:1px solid var(--line);--rule-strong:1px solid var(--line-strong);--rule-ink:1px solid var(--ink-0);--rule-dashed:1px dashed var(--line-strong);--ease:cubic-bezier(0.2,0,0,1);--dur-fast:0.12s;--dur:0.24s;--bg:var(--paper-0)}.dark{--paper-0:oklch(20.0% 0.012 60);--paper-1:oklch(24.0% 0.014 60);--paper-2:oklch(28.0% 0.014 60);--paper-3:oklch(32.0% 0.014 60);--ink-0:oklch(94.0% 0.010 80);--ink-1:oklch(82.0% 0.010 80);--ink-2:oklch(68.0% 0.010 80);--ink-3:oklch(54.0% 0.010 80);--line:oklch(36.0% 0.012 60);--line-strong:oklch(46.0% 0.014 60);--amber-soft:oklch(34.0% 0.060 50);background:var(--paper-0);color:var(--ink-0)}@layer base{*{box-sizing:border-box;margin:0;padding:0}}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--paper-0);color:var(--ink-0);font-family:var(--font-sans);font-size:var(--t-body);line-height:1.6;text-rendering:optimizeLegibility}@layer base{a{color:inherit;text-decoration:none}button{cursor:pointer}}::selection{background:var(--amber-soft);color:var(--ink-0)}.serif{font-family:var(--font-display)}.mono{font-family:var(--font-mono)}.dim{color:var(--ink-2)}.faint{color:var(--ink-3)}.t-hero{font-family:var(--font-display);font-size:var(--t-hero);font-weight:500;line-height:1.02;letter-spacing:var(--tr-tight)}.t-display{font-size:var(--t-display);line-height:1.08}.t-display,.t-h1{font-family:var(--font-display);font-weight:500;letter-spacing:var(--tr-snug)}.t-h1{font-size:var(--t-h1);line-height:1.12}.t-h2{font-family:var(--font-display);font-size:var(--t-h2);font-weight:500;line-height:1.2}.t-h3{font-family:var(--font-sans);font-size:var(--t-h3);font-weight:600;line-height:1.3;letter-spacing:var(--tr-snug)}.t-body{font-size:var(--t-body);line-height:1.65}.t-body,.t-lede{color:var(--ink-1)}.t-lede{font-size:19px;line-height:1.6}.t-small{font-size:var(--t-small)}.eyebrow,.t-small{color:var(--ink-2)}.eyebrow{font-family:var(--font-mono);font-size:var(--t-micro);font-weight:500;letter-spacing:var(--tr-mono);text-transform:uppercase;display:inline-flex;align-items:baseline;gap:7px}.eyebrow .dot{font-size:7px;transform:translateY(-2px)}.is-clay{color:var(--c-clay)}.is-ochre{color:var(--c-ochre)}.is-sand{color:var(--c-sand)}.is-moss{color:var(--c-moss)}.is-slate{color:var(--c-slate)}.art{font-family:var(--font-mono);white-space:pre;user-select:none;line-height:1;font-size:11px;overflow:hidden}.divider{border:none;border-top:var(--rule);margin:var(--sp-6) 0}.divider.ascii{text-align:center;font-family:var(--font-mono);font-size:10px;color:var(--ink-4);letter-spacing:.4em;border:none;user-select:none}.divider-labeled{display:flex;align-items:center;gap:var(--sp-3);margin:var(--sp-7) 0}.divider-labeled:after,.divider-labeled:before{content:"";flex:1;border-top:var(--rule)}.divider-labeled .lbl{font-family:var(--font-mono);font-size:var(--t-tiny);color:var(--ink-2);letter-spacing:var(--tr-mono);text-transform:uppercase}.btn{font-family:var(--font-sans);font-size:14px;font-weight:500;display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:var(--r-sm);border:1px solid var(--line-strong);color:var(--ink-0);background:var(--paper-0);transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.btn:hover{background:var(--paper-2);border-color:var(--ink-3)}.btn-primary{background:var(--amber);border-color:var(--amber);color:#fff}.btn-primary:hover{background:var(--amber-strong);border-color:var(--amber-strong)}.btn-mono{font-family:var(--font-mono);font-size:13px}.btn-ghost{border-color:transparent;background:transparent}.btn-ghost:hover{border-color:transparent}.btn-ghost:hover,.kind{background:var(--paper-2)}.kind{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.02em;padding:3px 9px;border-radius:var(--r-xs);color:var(--ink-1);border:1px solid var(--line);text-transform:lowercase}.kind-context{background:var(--kind-context-bg);color:var(--kind-context-fg);border-color:var(--kind-context-line)}.kind-decision{background:var(--kind-decision-bg);color:var(--kind-decision-fg);border-color:var(--kind-decision-line)}.kind-anti-pattern{background:var(--kind-anti-pattern-bg);color:var(--kind-anti-pattern-fg);border-color:var(--kind-anti-pattern-line)}.kind-pattern{background:var(--kind-pattern-bg);color:var(--kind-pattern-fg);border-color:var(--kind-pattern-line)}.kind-question{background:var(--kind-question-bg);color:var(--kind-question-fg);border-color:var(--kind-question-line)}.tag{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:lowercase;padding:3px 9px 3px 8px;border-radius:var(--r-xs);border:1px solid var(--line)}.tag:before{content:"●";font-size:7px}.tag.is-clay{color:var(--c-clay);background:var(--c-clay-soft);border-color:color-mix(in oklch,var(--c-clay) 30%,var(--line))}.tag.is-ochre{color:var(--c-ochre-deep);background:var(--c-ochre-soft);border-color:color-mix(in oklch,var(--c-ochre) 30%,var(--line))}.tag.is-sand{color:var(--c-sand-deep);background:var(--c-sand-soft);border-color:color-mix(in oklch,var(--c-sand) 30%,var(--line))}.tag.is-moss{color:var(--c-moss-deep);background:var(--c-moss-soft);border-color:color-mix(in oklch,var(--c-moss) 30%,var(--line))}.tag.is-slate{color:var(--c-slate-deep);background:var(--c-slate-soft);border-color:color-mix(in oklch,var(--c-slate) 30%,var(--line))}.hint{border:var(--rule-dashed);border-radius:var(--r-md);padding:12px 16px;font-size:var(--t-small);color:var(--ink-2);font-family:var(--font-mono)}.hint code{color:var(--ink-0)}.card{border:var(--rule);border-radius:var(--r-md);background:var(--paper-1);overflow:hidden;transition:border-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.card:hover{border-color:var(--line-strong)}.panel{border:var(--rule);background:var(--paper-0)}@layer base{code{font-family:var(--font-mono);font-size:.88em;background:var(--paper-2);color:var(--ink-0);padding:1px 6px;border-radius:var(--r-xs);border:1px solid var(--line)}}body,html{height:100%}body{overflow:hidden}.app{display:grid;grid-template-columns:264px 1fr;height:100vh}.sidebar{background:var(--paper-1);border-right:var(--rule);display:flex;flex-direction:column;padding:18px 16px;gap:18px;overflow-y:auto}.sb-brand{gap:11px;padding:4px 6px}.sb-brand,.sb-brand .logo{display:flex;align-items:center}.sb-brand .logo{width:38px;height:38px;flex:none;border:1px solid var(--ink-0);border-radius:var(--r-sm);background:var(--ink-0);color:var(--paper-0);justify-content:center;font-family:var(--font-mono);font-size:15px;font-weight:600;letter-spacing:-.02em}.sb-brand .name{font-family:var(--font-display);font-size:17px;font-weight:600;line-height:1.05;letter-spacing:-.01em;white-space:nowrap}.sb-brand .slug{font-family:var(--font-mono);font-size:9.5px;color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase;margin-top:1px}.sb-user{gap:10px;border:var(--rule);border-radius:var(--r-md);padding:9px 11px;background:var(--paper-0)}.sb-user,.sb-user .av{display:flex;align-items:center}.sb-user .av{width:30px;height:30px;flex:none;border-radius:var(--r-pill);background:var(--amber-soft);border:1px solid var(--amber-line);justify-content:center;font-family:var(--font-mono);font-size:12px;color:var(--amber-strong);font-weight:600}.sb-user .email{font-size:12.5px;font-weight:500;color:var(--ink-0);line-height:1.2}.sb-user .role{font-family:var(--font-mono);font-size:10px;color:var(--ink-3);letter-spacing:.04em}.sb-store{display:flex;flex-direction:column;gap:8px}.sb-store .lbl{font-family:var(--font-mono);font-size:10px;letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--ink-3);display:inline-flex;align-items:center;gap:7px;padding-left:6px}.sb-store .lbl .dot{width:6px;height:6px;border-radius:50%;background:var(--c-moss)}.sb-store .pick{display:flex;align-items:center;gap:10px;border:var(--rule);border-radius:var(--r-md);padding:10px 12px;background:var(--paper-0);cursor:pointer;transition:border-color var(--dur-fast) var(--ease)}.sb-store .pick:hover{border-color:var(--line-strong)}.sb-store .pick .ico{color:var(--ink-2)}.sb-store .pick .txt{font-size:13px;font-weight:500;color:var(--ink-0);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-store .pick .chev{color:var(--ink-3)}.sb-nav{display:flex;flex-direction:column;gap:2px}.sb-nav .lbl{font-family:var(--font-mono);font-size:10px;letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--ink-3);padding:4px 6px 8px}.sb-nav a{display:flex;align-items:center;gap:12px;padding:9px 11px;border-radius:var(--r-md);font-size:14px;font-weight:500;color:var(--ink-1);border:1px solid transparent;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.sb-nav a .ico{color:var(--ink-3);transition:color var(--dur-fast) var(--ease)}.sb-nav a:hover{background:var(--paper-2);color:var(--ink-0)}.sb-nav a:hover .ico{color:var(--ink-1)}.sb-nav a.on{background:var(--amber-soft);color:var(--amber-strong);border-color:var(--amber-line)}.sb-nav a.feature .ico,.sb-nav a.on .ico{color:var(--amber)}.sb-nav a.feature:not(.on) span{background:linear-gradient(90deg,var(--amber-strong),var(--c-clay));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:600}.sb-nav a .badge{margin-left:auto;width:6px;height:6px;border-radius:50%;background:var(--amber)}.sb-foot{margin-top:auto;display:flex;flex-direction:column;gap:2px;padding-top:14px;border-top:var(--rule)}.sb-foot a{display:flex;align-items:center;gap:12px;padding:8px 11px;border-radius:var(--r-md);font-family:var(--font-mono);font-size:12px;color:var(--ink-2)}.sb-foot a:hover{background:var(--paper-2);color:var(--ink-0)}.sb-foot a .ico{color:var(--ink-3)}.app{transition:grid-template-columns var(--dur) var(--ease)}@media (min-width:1024px){.app--collapsed{grid-template-columns:64px 1fr}.app--collapsed .sidebar{padding:18px 8px}.app--collapsed .sb-brand{justify-content:center;padding:4px 0}.app--collapsed .sb-brand>div:not(.logo){display:none}.app--collapsed .sb-user{justify-content:center;padding:9px 0}.app--collapsed .sb-store .lbl,.app--collapsed .sb-user>div:not(.av){display:none}.app--collapsed .sb-store .pick{justify-content:center;padding:10px 0}.app--collapsed .sb-nav .lbl,.app--collapsed .sb-store .pick .chev,.app--collapsed .sb-store .pick .txt{display:none}.app--collapsed .sb-nav a{justify-content:center;padding:9px 0}.app--collapsed .sb-nav a span{display:none}.app--collapsed .sb-foot a,.app--collapsed .sb-foot button{justify-content:center;padding:8px 0}.app--collapsed .sb-foot a span,.app--collapsed .sb-foot button span{display:none}.app--collapsed .sidebar{position:relative;z-index:60;transition:width var(--dur) var(--ease),padding var(--dur) var(--ease)}.app--collapsed .sidebar:focus-within,.app--collapsed .sidebar:hover{position:absolute;top:0;bottom:0;left:0;width:264px;padding:18px 16px;box-shadow:4px 0 28px -14px color-mix(in oklch,var(--ink-0) 55%,transparent)}.app--collapsed .sidebar:focus-within .sb-brand,.app--collapsed .sidebar:focus-within .sb-user,.app--collapsed .sidebar:hover .sb-brand,.app--collapsed .sidebar:hover .sb-user{justify-content:flex-start}.app--collapsed .sidebar:focus-within .sb-brand>div:not(.logo),.app--collapsed .sidebar:focus-within .sb-foot a span,.app--collapsed .sidebar:focus-within .sb-foot button span,.app--collapsed .sidebar:focus-within .sb-nav .lbl,.app--collapsed .sidebar:focus-within .sb-nav a span,.app--collapsed .sidebar:focus-within .sb-store .lbl,.app--collapsed .sidebar:focus-within .sb-store .pick .chev,.app--collapsed .sidebar:focus-within .sb-store .pick .txt,.app--collapsed .sidebar:focus-within .sb-user>div:not(.av),.app--collapsed .sidebar:hover .sb-brand>div:not(.logo),.app--collapsed .sidebar:hover .sb-foot a span,.app--collapsed .sidebar:hover .sb-foot button span,.app--collapsed .sidebar:hover .sb-nav .lbl,.app--collapsed .sidebar:hover .sb-nav a span,.app--collapsed .sidebar:hover .sb-store .lbl,.app--collapsed .sidebar:hover .sb-store .pick .chev,.app--collapsed .sidebar:hover .sb-store .pick .txt,.app--collapsed .sidebar:hover .sb-user>div:not(.av){display:inline}.app--collapsed .sidebar:focus-within .sb-nav a,.app--collapsed .sidebar:focus-within .sb-store .pick,.app--collapsed .sidebar:hover .sb-nav a,.app--collapsed .sidebar:hover .sb-store .pick{justify-content:flex-start;padding:9px 11px}.app--collapsed .sidebar:focus-within .sb-store .pick,.app--collapsed .sidebar:hover .sb-store .pick{padding:10px 12px}.app--collapsed .sidebar:focus-within .sb-foot a,.app--collapsed .sidebar:focus-within .sb-foot button,.app--collapsed .sidebar:hover .sb-foot a,.app--collapsed .sidebar:hover .sb-foot button{justify-content:flex-start;padding:8px 11px}}@media (max-width:1023px){.sb-foot .sb-collapse{display:none}}.main{overflow-y:auto;position:relative}.main-inner{padding:36px 44px 64px;max-width:1320px}.main-inner.wide{max-width:none}.ph{margin-bottom:32px}.ph .eyebrow{margin-bottom:14px}.ph h1{font-family:var(--font-display);font-size:42px;font-weight:500;letter-spacing:-.02em;line-height:1.04;margin-bottom:10px}.ph .sub{font-size:16px;color:var(--ink-2);line-height:1.5;max-width:68ch}.ph-row{align-items:flex-start;justify-content:space-between;gap:28px}.ph-actions,.ph-row{display:flex;flex-wrap:wrap}.ph-actions{gap:10px}.ph-actions,.sl{align-items:center}.sl{font-family:var(--font-mono);font-size:11px;letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--ink-2);display:flex;gap:12px;margin:36px 0 16px}.sl:after{content:"";flex:1;border-top:var(--rule)}.sl .count{color:var(--ink-3)}.sl.is-amber{color:var(--amber)}.btn .ico{width:16px;height:16px}.btn-lg{padding:11px 18px;font-size:14px}.btn-moss{background:var(--c-moss-deep);border-color:var(--c-moss-deep);color:#fff}.btn-moss:hover{background:var(--c-moss);border-color:var(--c-moss)}.seg{display:inline-flex;border:var(--rule);border-radius:var(--r-md);overflow:hidden;background:var(--paper-0)}.seg button{padding:7px 13px;font-family:var(--font-mono);font-size:12px;color:var(--ink-2);border-right:var(--rule);transition:background var(--dur-fast),color var(--dur-fast)}.seg button:last-child{border-right:none}.seg button.on{background:var(--c-moss-deep);color:#fff}.seg button:not(.on):hover{background:var(--paper-2);color:var(--ink-0)}.field{display:flex;align-items:center;gap:10px;border:var(--rule);border-radius:var(--r-md);padding:10px 14px;background:var(--paper-0);flex:1}.field:focus-within{border-color:var(--amber);box-shadow:0 0 0 2px var(--amber-soft)}.field .ico{color:var(--ink-3);width:18px;height:18px;flex:none}.field input{border:none;outline:none;background:none;font:inherit;font-size:14px;color:var(--ink-0);flex:1}.field input::placeholder{color:var(--ink-3)}.select{display:inline-flex;align-items:center;gap:10px;border:var(--rule);border-radius:var(--r-md);padding:10px 14px;background:var(--paper-0);cursor:pointer;font-size:14px;color:var(--ink-1);font-weight:500}.select:hover{border-color:var(--line-strong)}.select .chev{color:var(--ink-3);margin-left:4px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat{border:var(--rule);border-radius:var(--r-md);background:var(--paper-1);padding:18px 20px}.stat .lbl{font-family:var(--font-mono);font-size:10px;letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--ink-2);display:inline-flex;align-items:center;gap:7px;margin-bottom:14px}.stat .lbl .dot{width:6px;height:6px;border-radius:50%}.stat .num{font-family:var(--font-display);font-size:40px;font-weight:500;line-height:1;color:var(--ink-0)}.stat .foot{font-size:12px;color:var(--ink-2);margin-top:9px;line-height:1.4}.dot-slate{background:var(--c-slate)}.dot-moss{background:var(--c-moss)}.dot-amber{background:var(--amber)}.dot-ochre{background:var(--c-ochre)}.dot-clay{background:var(--c-clay)}.pcard{border:var(--rule);border-radius:var(--r-md);background:var(--paper-1)}.pcard-pad{padding:22px 24px}.rev{border:var(--rule);border-radius:var(--r-md);background:var(--paper-1);padding:22px 26px;display:flex;align-items:center;justify-content:space-between;gap:30px}.rev .lbl{font-family:var(--font-mono);font-size:11px;letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--ink-2);margin-bottom:10px}.rev .big{font-family:var(--font-display);font-size:40px;font-weight:500;line-height:1;color:var(--ink-0)}.rev .note{font-size:13px;color:var(--ink-2);margin-top:10px}.rev .note .down{color:var(--error);font-weight:600}.rev .spark{flex:none}.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.cat{border:var(--rule);border-radius:var(--r-md);background:var(--paper-1);padding:18px 20px;position:relative;display:flex;flex-direction:column;gap:14px;min-height:132px;transition:border-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease);cursor:pointer;overflow:hidden}.cat:hover{border-color:var(--line-strong);transform:translateX(-3px)}.cat.is-empty{background:var(--paper-0);cursor:default}.cat.is-empty:hover{border-color:var(--line);transform:none}.cat .top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.cat .nm{font-size:19px;line-height:1.15;letter-spacing:-.01em}.cat .big-n,.cat .nm{font-family:var(--font-display);font-weight:500}.cat .big-n{font-size:30px;line-height:1;color:var(--ink-0)}.cat.is-empty .big-n{color:var(--ink-3)}.cat .meta{margin-top:auto;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.cat .swatch{position:absolute;left:0;top:0;bottom:0;width:4px}.sw-clay{background:var(--c-clay)}.sw-ochre{background:var(--c-ochre)}.sw-sand{background:var(--c-sand)}.sw-moss{background:var(--c-moss)}.sw-slate{background:var(--c-slate)}.cat.is-empty .swatch{background:var(--line)}.pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;font-weight:500;padding:2px 9px;border-radius:var(--r-pill);background:var(--paper-2);color:var(--ink-2);border:1px solid var(--line)}.pill.is-ready{background:var(--c-moss-soft);color:var(--c-moss-deep);border-color:color-mix(in oklch,var(--c-moss) 30%,var(--line))}.pill.is-proc{background:var(--c-ochre-soft);color:var(--c-ochre-deep);border-color:color-mix(in oklch,var(--c-ochre) 30%,var(--line))}.pill.is-items{background:var(--c-slate-soft);color:var(--c-slate-deep);border-color:color-mix(in oklch,var(--c-slate) 30%,var(--line))}.pill .tick{color:var(--c-moss)}.pg-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}.pg-thumb{border:var(--rule);border-radius:var(--r-md);overflow:hidden;background:var(--paper-1);cursor:pointer;transition:border-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.pg-thumb:hover{border-color:var(--line-strong);transform:translateX(-3px)}.pg-thumb .img{height:112px;position:relative;overflow:hidden;border-bottom:var(--rule);background:var(--ink-0)}.pg-thumb .img .art{position:absolute;inset:0;padding:6px}.pg-thumb .img image-slot{width:100%;height:100%;display:block}.pg-thumb .b{padding:12px 14px}.pg-thumb .nm{font-size:13px;font-weight:600;color:var(--ink-0);margin-bottom:4px}.pg-thumb .mt,.pg-thumb .nm{font-family:var(--font-mono)}.pg-thumb .mt{font-size:10.5px;color:var(--ink-3);line-height:1.4}.pg-thumb .bar{height:3px;background:var(--paper-3);margin-top:9px;border-radius:2px;overflow:hidden}.pg-thumb .bar i{display:block;height:100%;background:var(--c-moss)}@media (max-width:1180px){.cat-grid,.stat-grid{grid-template-columns:repeat(2,1fr)}.pg-grid{grid-template-columns:repeat(3,1fr)}}.work{display:flex;flex-direction:column;gap:10px}.work-item{display:flex;align-items:center;gap:16px;border:var(--rule);border-left-width:3px;border-radius:var(--r-md);background:var(--paper-1);padding:16px 18px;transition:border-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease),box-shadow var(--dur-fast);cursor:pointer;text-decoration:none;color:inherit}.work-item:hover{transform:translateX(-3px);box-shadow:-4px 0 0 -1px var(--amber-soft)}.work-item.p-urgent{border-left-color:var(--c-clay)}.work-item.p-soon{border-left-color:var(--c-ochre)}.work-item.p-info{border-left-color:var(--c-slate)}.work-item .wi-ico{width:38px;height:38px;flex:none;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center}.p-urgent .wi-ico{background:var(--c-clay-soft);color:var(--c-clay-deep)}.p-soon .wi-ico{background:var(--c-ochre-soft);color:var(--c-ochre-deep)}.p-info .wi-ico{background:var(--c-slate-soft);color:var(--c-slate-deep)}.work-item .wi-main{flex:1;min-width:0}.work-item .wi-title{display:block;font-size:15px;font-weight:600;color:var(--ink-0);line-height:1.3}.work-item .wi-detail{display:block;font-size:13px;color:var(--ink-2);margin-top:3px;line-height:1.4}.work-item .wi-impact{font-family:var(--font-mono);font-size:12px;font-weight:600;flex:none;text-align:right}.work-item .wi-impact.risk{color:var(--error)}.work-item .wi-impact.gain{color:var(--c-moss-deep)}.work-item .wi-cta{flex:none;display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--amber-strong);padding:7px 13px;border:1px solid var(--amber-line);border-radius:var(--r-sm);background:var(--amber-soft);transition:background var(--dur-fast)}.work-item:hover .wi-cta{background:var(--amber);color:#fff;border-color:var(--amber)}.work-item .wi-prio{font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;padding:2px 7px;border-radius:var(--r-pill);flex:none}.p-urgent .wi-prio{background:var(--c-clay-soft);color:var(--c-clay-deep)}.p-soon .wi-prio{background:var(--c-ochre-soft);color:var(--c-ochre-deep)}.p-info .wi-prio{background:var(--c-slate-soft);color:var(--c-slate-deep)}.cov-head{display:flex;align-items:baseline;gap:12px;margin-bottom:14px}.cov-head .pct{font-family:var(--font-display);font-size:24px;font-weight:500;color:var(--ink-0)}.cov-head .of{font-family:var(--font-mono);font-size:12px;color:var(--ink-3)}.cov-track{height:6px;background:var(--paper-3);border-radius:3px;overflow:hidden;margin-bottom:18px}.cov-track i{display:block;height:100%;background:var(--c-moss)}.cov-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}@media (max-width:1180px){.cov-grid{grid-template-columns:repeat(2,1fr)}}.cov-chip{display:flex;align-items:center;gap:9px;padding:9px 12px;border:var(--rule);border-radius:var(--r-sm);font-size:12.5px}.cov-chip.done{background:var(--c-moss-soft);border-color:color-mix(in oklch,var(--c-moss) 22%,var(--line));color:var(--c-moss-deep);font-weight:500}.cov-chip.empty{border-style:dashed;color:var(--ink-3);cursor:pointer;transition:border-color var(--dur-fast),color var(--dur-fast)}.cov-chip.empty:hover{border-color:var(--amber);color:var(--amber-strong)}.cov-chip .tick{flex:none}.cov-chip .up{margin-left:auto;font-family:var(--font-mono);font-size:10px;opacity:0;transition:opacity var(--dur-fast)}.cov-chip.empty:hover .up{opacity:1}.livepipe{display:flex;align-items:center;gap:18px}.livepipe .lp-info{flex:none}.livepipe .lp-shelf{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--ink-0)}.livepipe .lp-eta{font-family:var(--font-mono);font-size:11px;color:var(--ink-3);margin-top:3px}.livepipe .lp-stages{flex:1;display:flex;align-items:center;gap:0}.lp-stage{flex:1;display:flex;flex-direction:column;gap:7px;position:relative}.lp-stage .b{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--line-strong);background:var(--paper-0);display:flex;align-items:center;justify-content:center;font-size:9px;z-index:2;color:var(--ink-3)}.lp-stage.done .b{background:var(--c-moss);border-color:var(--c-moss);color:#fff}.lp-stage.run .b{border-color:var(--amber);color:var(--amber)}.lp-stage:after{content:"";position:absolute;top:9px;left:18px;right:0;height:1.5px;background:var(--line)}.lp-stage.done:after{background:var(--c-moss)}.lp-stage:last-child:after{display:none}.lp-stage .n{font-family:var(--font-mono);font-size:9.5px;color:var(--ink-3)}.lp-stage.run .n{color:var(--amber-strong);font-weight:600}.cmdk-scrim{position:fixed;inset:0;z-index:200;background:color-mix(in oklch,var(--ink-0) 45%,transparent);display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;opacity:0;pointer-events:none}.cmdk-scrim.open{opacity:1;pointer-events:auto}.cmdk{width:100%;max-width:600px;background:var(--paper-0);border:var(--rule);border-radius:var(--r-lg);box-shadow:0 24px 60px -20px color-mix(in oklch,var(--ink-0) 55%,transparent);overflow:hidden}.cmdk-input{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:var(--rule)}.cmdk-input .ico{color:var(--ink-3)}.cmdk-input input{flex:1;border:none;outline:none;background:none;font:inherit;font-size:16px;color:var(--ink-0)}.cmdk-input input::placeholder{color:var(--ink-3)}.cmdk-input .esc{font-family:var(--font-mono);font-size:10px;color:var(--ink-3);border:var(--rule);border-radius:var(--r-xs);padding:2px 6px}.cmdk-results{max-height:50vh;overflow-y:auto;padding:8px}.cmdk-group{font-family:var(--font-mono);font-size:10px;letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--ink-3);padding:10px 12px 6px}.cmdk-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r-sm);cursor:pointer;color:var(--ink-1)}.cmdk-item .ico{color:var(--ink-3)}.cmdk-item .lbl{flex:1;font-size:14px}.cmdk-item .hint{font-family:var(--font-mono);font-size:10px;color:var(--ink-3)}.cmdk-item.sel,.cmdk-item:hover{background:var(--amber-soft);color:var(--amber-strong)}.cmdk-item.sel .ico,.cmdk-item:hover .ico{color:var(--amber)}.cmdk-empty{padding:28px;text-align:center;font-size:13px}.cmdk-empty,.kbd{color:var(--ink-3)}.kbd{font-family:var(--font-mono);font-size:9.5px;border:var(--rule);border-radius:var(--r-xs);padding:1px 5px;margin-left:auto}.segs{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:24px}@media (max-width:1180px){.segs{grid-template-columns:repeat(3,1fr)}}@media (max-width:680px){.segs{grid-template-columns:repeat(2,1fr)}}.seg-card{text-align:left;border:var(--rule);border-radius:var(--r-md);padding:14px 15px;background:var(--paper-1);cursor:pointer;position:relative;overflow:hidden;transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast),transform var(--dur-fast)}.seg-card:hover{border-color:var(--line-strong);transform:translateY(-2px)}.seg-card.on{border-color:var(--ink-0);background:var(--paper-0);box-shadow:inset 0 0 0 1px var(--ink-0)}.seg-card .sc-bar{position:absolute;left:0;top:0;bottom:0;width:3px}.seg-card .sc-n{font-family:var(--font-display);font-size:26px;font-weight:500;color:var(--ink-0);line-height:1}.seg-card .sc-l{font-size:12px;color:var(--ink-2);margin-top:7px;line-height:1.3;font-weight:500}.seg-card .sc-sub{font-family:var(--font-mono);font-size:10px;color:var(--ink-3);margin-top:3px}.tbl{border:var(--rule);border-radius:var(--r-md);overflow:hidden;background:var(--paper-1)}.tbl-head,.tbl-row{display:grid;align-items:center;gap:16px;padding:0 18px}.tbl-head{height:42px;border-bottom:var(--rule);background:var(--paper-2)}.tbl-head .th{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);cursor:pointer;display:inline-flex;align-items:center;gap:5px}.tbl-head .th:hover{color:var(--ink-1)}.tbl-head .th.sorted{color:var(--amber-strong)}.tbl-head .th.num,.tbl-row .num{text-align:right;justify-content:flex-end}.tbl-row{min-height:60px;border-bottom:var(--rule);cursor:pointer;text-decoration:none;color:inherit;transition:background var(--dur-fast)}.tbl-row:last-child{border-bottom:none}.tbl-row:hover{background:var(--paper-2)}.tbl-row .prod-cell{display:flex;align-items:center;gap:12px;min-width:0}.tbl-row .pc-th{width:36px;height:44px;flex:none;border:var(--rule);border-radius:var(--r-xs);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:700;font-size:15px}.tbl-row .pc-nm{font-size:14px;font-weight:500;color:var(--ink-0);line-height:1.25}.tbl-row .pc-br,.tbl-row .pc-nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tbl-row .pc-br{font-family:var(--font-mono);font-size:11px;color:var(--ink-3)}.tbl-row .num{font-family:var(--font-mono);font-size:13px;color:var(--ink-1);font-variant-numeric:tabular-nums}.tbl-row .rev{font-weight:600;color:var(--ink-0)}.trend{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:12px;font-weight:600;justify-content:flex-end}.trend.up{color:var(--c-moss-deep)}.trend.dn{color:var(--error)}.trend.flat{color:var(--ink-3)}.conf-dot{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:11px}.conf-dot .d{width:8px;height:8px;border-radius:50%;flex:none}.conf-strong .d{background:var(--c-moss)}.conf-strong{color:var(--c-moss-deep)}.conf-likely .d{background:var(--c-ochre)}.conf-likely{color:var(--c-ochre-deep)}.conf-weak .d{background:var(--error)}.conf-weak{color:var(--error)}.shelf-pips{display:inline-flex;gap:3px}.shelf-pips .pip{width:7px;height:16px;border-radius:2px;background:var(--c-slate)}.shelf-pips .pip.off{background:var(--paper-3)}.status-tag{font-family:var(--font-mono);font-size:10px;font-weight:600;padding:2px 8px;border-radius:var(--r-pill);white-space:nowrap}.st-top{background:var(--c-moss-soft);color:var(--c-moss-deep)}.st-dead{background:var(--c-slate-soft);color:var(--c-slate-deep)}.st-decl{background:color-mix(in oklch,var(--error) 11%,var(--paper-0));color:var(--error)}.st-unmatched{background:var(--c-ochre-soft);color:var(--c-ochre-deep)}.st-offshelf{background:var(--paper-2);color:var(--ink-2)}.drawer-scrim{position:fixed;inset:0;z-index:120;background:color-mix(in oklch,var(--ink-0) 38%,transparent);opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease)}.drawer-scrim.open{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;right:0;bottom:0;width:480px;max-width:94vw;z-index:121;background:var(--paper-0);border-left:var(--rule);box-shadow:-24px 0 60px -30px color-mix(in oklch,var(--ink-0) 55%,transparent);transform:translateX(100%);transition:transform var(--dur) var(--ease);overflow-y:auto}.drawer.open{transform:none}.drawer-head{position:sticky;top:0;background:var(--paper-0);border-bottom:var(--rule);padding:20px 24px;display:flex;align-items:flex-start;gap:14px;z-index:2}.drawer-head .dh-th{width:52px;height:64px;flex:none;border:var(--rule);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:700;font-size:22px}.drawer-head .dh-nm{font-family:var(--font-display);font-size:21px;font-weight:500;line-height:1.15;letter-spacing:-.01em}.drawer-head .dh-br{font-family:var(--font-mono);font-size:12px;color:var(--ink-3);margin-top:4px}.drawer-head .dh-x{margin-left:auto;width:32px;height:32px;flex:none;border:var(--rule);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;color:var(--ink-2)}.drawer-head .dh-x:hover{background:var(--paper-2);color:var(--ink-0)}.drawer-body{padding:22px 24px 40px}.dsec{margin-bottom:26px}.dsec .dl{font-family:var(--font-mono);font-size:10px;letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--ink-3);margin-bottom:12px}.d-kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px}.d-kpi{border:var(--rule);border-radius:var(--r-sm);padding:13px 15px}.d-kpi .k{font-family:var(--font-mono);font-size:10px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}.d-kpi .v{font-family:var(--font-display);font-size:24px;font-weight:500;color:var(--ink-0);line-height:1;margin-top:7px}.d-kpi .v.dn{color:var(--error)}.d-kpi .v.up{color:var(--c-moss-deep)}.d-spark{border:var(--rule);border-radius:var(--r-sm);padding:16px}.d-loc{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:var(--rule-dashed);text-decoration:none;color:inherit}.d-loc:last-child{border-bottom:none}.d-loc:hover .d-loc-go{color:var(--amber)}.d-loc .d-loc-sw{width:4px;height:30px;border-radius:2px;flex:none}.d-loc .d-loc-main{flex:1;min-width:0}.d-loc .d-loc-nm{font-size:13.5px;font-weight:500;color:var(--ink-0)}.d-loc .d-loc-sub{color:var(--ink-3)}.d-loc .d-loc-go,.d-loc .d-loc-sub{font-family:var(--font-mono);font-size:11px}.d-loc .d-loc-go{font-weight:600;color:var(--ink-2)}.drawer-foot{position:sticky;bottom:0;background:var(--paper-0);border-top:var(--rule);padding:16px 24px;display:flex;gap:10px}.stages-drawer{overflow:hidden;max-height:0;transition:max-height var(--dur) var(--ease);border-bottom:var(--rule);background:var(--paper-1)}.stages-drawer.open{max-height:120px}.stages-track{display:flex;align-items:center;gap:0;padding:16px 28px}.stage{flex:1;display:flex;flex-direction:column;gap:8px;position:relative}.stage .bullet{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:11px;font-weight:600;border:1.5px solid var(--line-strong);background:var(--paper-0);color:var(--ink-3);z-index:2}.stage.done .bullet{background:var(--c-moss);border-color:var(--c-moss);color:#fff}.stage.run .bullet{background:var(--amber-soft);border-color:var(--amber);color:var(--amber-strong)}.stage:after{content:"";position:absolute;top:11px;left:22px;right:0;height:1.5px;background:var(--line);z-index:1}.stage.done:after{background:var(--c-moss)}.stage:last-child:after{display:none}.stage .nm{font-family:var(--font-mono);font-size:11px;color:var(--ink-2)}.stage.run .nm{color:var(--amber-strong);font-weight:600}.stage .run-spin{font-family:var(--font-mono);font-size:11px;color:var(--amber)}.fac .pkg{transition:border-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease),background var(--dur) var(--ease),box-shadow var(--dur-fast)}.fac .pkg:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--line);z-index:3}.fac[data-conf=strong] .pkg:before{background:var(--c-moss)}.fac[data-conf=likely] .pkg:before{background:var(--c-ochre)}.fac[data-conf=weak] .pkg:before{background:var(--error)}.fac:hover .pkg{border-color:var(--amber);transform:translateY(-3px);box-shadow:0 6px 16px -8px color-mix(in oklch,var(--ink-0) 40%,transparent)}.fac .open-hint{position:absolute;inset:0;background:color-mix(in oklch,var(--ink-0) 30%,transparent);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--dur-fast);z-index:4}.fac .open-hint span{background:var(--paper-0);color:var(--ink-0);font-family:var(--font-mono);font-size:9px;font-weight:600;padding:2px 7px;border-radius:var(--r-pill)}.fac:hover .open-hint{opacity:1}.fac.gap .pkg{background:repeating-linear-gradient(45deg,var(--paper-2),var(--paper-2) 6px,var(--paper-1) 6px,var(--paper-1) 12px)!important;border-style:dashed}.fac.gap .br,.fac.gap .glyph,.fac.gap .nm{opacity:.5}.facings.heat .fac .pkg{background:var(--heat)!important;color:#fff!important}.facings.heat .fac .pkg:before{opacity:0}.facings.heat .fac .glyph{color:rgba(255,255,255,.85)!important}.row{transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.row.sel .row-head{background:var(--amber-soft)}.scrim{position:fixed;inset:0;z-index:100;background:color-mix(in oklch,var(--ink-0) 55%,transparent);display:flex;align-items:center;justify-content:center;padding:36px;opacity:0;pointer-events:none}.scrim.open{opacity:1;pointer-events:auto}.modal{background:var(--paper-0);border:var(--rule);border-radius:var(--r-lg);width:100%;max-height:88vh;overflow-y:auto;position:relative;box-shadow:0 24px 60px -20px color-mix(in oklch,var(--ink-0) 55%,transparent);transform:translateY(10px) scale(.985);transition:transform var(--dur) var(--ease)}.scrim.open .modal{transform:none}.modal-sm{max-width:560px}.modal-md{max-width:920px}.modal-lg{max-width:1140px}.modal-head{gap:14px;padding:20px 26px;border-bottom:var(--rule);position:sticky;top:0;background:var(--paper-0);z-index:3}.modal-head,.modal-head .mark{display:flex;align-items:center}.modal-head .mark{width:28px;height:28px;flex:none;border-radius:var(--r-sm);justify-content:center;font-family:var(--font-mono);font-weight:700;font-size:14px}.modal-head h2{font-family:var(--font-display);font-size:21px;font-weight:500;letter-spacing:-.01em}.modal-head .meta{font-family:var(--font-mono);font-size:12px;color:var(--ink-3)}.modal-head .spacer{flex:1}.modal-x{width:34px;height:34px;border:var(--rule);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;color:var(--ink-2);flex:none;transition:background var(--dur-fast),border-color var(--dur-fast)}.modal-x:hover{background:var(--paper-2);border-color:var(--line-strong);color:var(--ink-0)}.modal-body{padding:24px 26px}.badge-chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;font-weight:600;padding:4px 10px;border-radius:var(--r-pill)}.badge-matched{background:var(--c-moss-soft);color:var(--c-moss-deep)}.badge-attention{background:var(--c-ochre-soft);color:var(--c-ochre-deep)}.badge-revenue{background:var(--c-moss-soft);color:var(--c-moss-deep)}.det-actions{display:flex;align-items:center;gap:9px;margin-bottom:22px;flex-wrap:wrap}.det-actions .spacer{flex:1}.det-search{display:flex;gap:10px;margin-bottom:24px}.det-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media (max-width:760px){.det-cols{grid-template-columns:1fr}}.det-col .lbl{font-family:var(--font-mono);font-size:10px;letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--ink-3);margin-bottom:12px}.det-crop{height:240px;border:var(--rule);border-radius:var(--r-md);position:relative;overflow:hidden;background:var(--ink-0);display:flex;align-items:center;justify-content:center}.det-crop .art{position:absolute;inset:0;opacity:.5}.det-crop .cg{position:relative;z-index:2;font-family:var(--font-mono);font-size:64px;font-weight:700;color:rgba(255,255,255,.7)}.det-crop .frame{position:absolute;z-index:3;width:52%;height:60%;border:2px solid var(--amber);border-radius:4px}.det-crop .cap{position:absolute;z-index:3;left:12px;bottom:10px;font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:oklch(78% .02 80)}.matched{border:var(--rule);border-radius:var(--r-md);padding:18px;display:flex;gap:18px}.matched .thumb{width:120px;height:150px;flex:none;border:var(--rule);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:44px;font-weight:700}.matched .info h3{font-family:var(--font-display);font-size:19px;font-weight:500;line-height:1.2;margin-bottom:8px}.matched .info .brand{font-size:14px;color:var(--ink-1);margin-bottom:2px}.matched .info .cat{font-size:13px;color:var(--ink-3);margin-bottom:12px}.matched .info .kv{font-family:var(--font-mono);font-size:12px;color:var(--ink-2);margin-bottom:4px}.matched .info .kv b{color:var(--ink-0)}.matched .info .score{display:inline-flex;align-items:center;gap:8px;margin:8px 0 12px}.matched .info .score .track{width:120px;height:6px;background:var(--paper-3);border-radius:3px;overflow:hidden}.matched .info .score .track i{display:block;height:100%;background:var(--c-moss);transition:width var(--dur) var(--ease)}.matched .info .score .pct{font-size:12px}.matched .info .link,.matched .info .score .pct{font-family:var(--font-mono);font-weight:600;color:var(--c-moss-deep)}.matched .info .link{font-size:13px}.matched .info .link:hover{color:var(--c-moss)}.det-ocr{margin-top:20px;border:var(--rule-dashed);border-radius:var(--r-md);padding:14px 16px}.det-ocr .lbl{margin-bottom:8px}.det-ocr pre{font-family:var(--font-mono);font-size:11px;color:var(--ink-2);white-space:pre-wrap;line-height:1.6}.det-alts{margin-top:24px}.det-alts .lbl{font-family:var(--font-mono);font-size:10px;letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--ink-3);margin-bottom:12px}.alt-row{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px}.alt{width:110px;flex:none;border:var(--rule);border-radius:var(--r-sm);overflow:hidden;cursor:pointer;transition:border-color var(--dur-fast),transform var(--dur-fast)}.alt:hover{border-color:var(--amber);transform:translateY(-2px)}.alt.on{border-color:var(--c-moss);box-shadow:0 0 0 1px var(--c-moss)}.alt .img{height:84px;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:28px;font-weight:700}.alt .b{padding:7px 9px}.alt .nm{font-size:10px;color:var(--ink-0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alt .nm,.alt .sc{font-family:var(--font-mono)}.alt .sc{font-size:9px;color:var(--ink-3)}.matched.loading{position:relative}.matched.loading:after{content:"";position:absolute;inset:0;background:color-mix(in oklch,var(--paper-0) 70%,transparent);border-radius:var(--r-md)}.rematch-load{position:absolute;inset:0;z-index:2;display:none;flex-direction:column;align-items:center;justify-content:center;gap:12px;font-family:var(--font-mono);font-size:13px;color:var(--ink-1)}.matched.loading .rematch-load{display:flex}.rematch-load .sp{font-size:22px;color:var(--amber)}.rep-stats{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:14px;margin-bottom:26px}@media (max-width:760px){.rep-stats{grid-template-columns:1fr}}.rep-stat{border:var(--rule);border-radius:var(--r-md);padding:18px 20px}.rep-stat.good{background:var(--c-moss-soft);border-color:color-mix(in oklch,var(--c-moss) 25%,var(--line))}.rep-stat.warn{background:var(--c-ochre-soft);border-color:color-mix(in oklch,var(--c-ochre) 25%,var(--line))}.rep-stat .lbl{font-family:var(--font-mono);font-size:10px;letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--ink-2);margin-bottom:12px}.rep-stat .big{font-family:var(--font-display);font-size:32px;font-weight:500;line-height:1;color:var(--ink-0)}.rep-stat .sub{font-family:var(--font-mono);font-size:11px;color:var(--ink-2);margin-top:8px}.rep-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}@media (max-width:980px){.rep-grid{grid-template-columns:repeat(2,1fr)}}.rep-prod{border:var(--rule);border-radius:var(--r-md);padding:13px;display:flex;gap:12px;cursor:pointer;transition:border-color var(--dur-fast),transform var(--dur-fast);position:relative}.rep-prod:hover{border-color:var(--line-strong);transform:translateY(-2px)}.rep-prod .rank{position:absolute;top:-8px;left:-8px;width:22px;height:22px;border-radius:50%;background:var(--ink-0);color:var(--paper-0);font-size:11px;font-weight:600}.rep-prod .rank,.rep-prod .th{font-family:var(--font-mono);display:flex;align-items:center;justify-content:center}.rep-prod .th{width:42px;height:50px;flex:none;border:var(--rule);border-radius:var(--r-xs);font-weight:700;font-size:17px}.rep-prod .amt{font-family:var(--font-mono);font-size:15px;font-weight:600;color:var(--ink-0)}.rep-prod .nm{font-size:13px;font-weight:500;color:var(--ink-1);line-height:1.25;margin:3px 0 5px}.rep-prod .sub{font-family:var(--font-mono);font-size:10px;color:var(--ink-3)}.rep-prod .bar{height:3px;background:var(--paper-3);border-radius:2px;margin-top:7px;overflow:hidden}.rep-prod .bar i{display:block;height:100%;background:var(--c-moss)}.pg-top{display:flex;align-items:center;gap:18px;padding:14px 28px;border-bottom:var(--rule);flex:none}.pg-top .back{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--ink-1)}.pg-top .back:hover{color:var(--amber)}.pg-top .back .ic{width:15px;height:15px;flex:none}.pg-top .crumb{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-2);min-width:0}.pg-top .crumb .mono{font-size:12px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis}.pg-top .crumb .mono,.status-chip{font-family:var(--font-mono);white-space:nowrap}.status-chip{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:500;padding:3px 10px;border-radius:var(--r-pill);background:var(--c-moss-soft);color:var(--c-moss-deep);border:1px solid color-mix(in oklch,var(--c-moss) 30%,var(--line))}.status-chip.amber{background:var(--amber-soft);color:var(--amber-strong);border-color:var(--amber-line)}.status-chip.clay{background:var(--c-clay-soft);color:var(--c-clay-deep);border-color:color-mix(in oklch,var(--c-clay) 30%,var(--line))}.pg-top .actions{margin-left:auto;gap:9px}.pg-pipe,.pg-top .actions{display:flex;align-items:center;flex:none}.pg-pipe{gap:12px;padding:11px 28px;border-bottom:var(--rule);background:var(--paper-1)}.pg-pipe .ok{display:inline-flex;align-items:center;gap:9px;font-size:13px;font-weight:600;color:var(--ink-0)}.pg-pipe .ok .tick{width:18px;height:18px;border-radius:50%;background:var(--c-moss);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px}.pg-pipe .show,.pg-pipe .stages{font-family:var(--font-mono);font-size:12px;color:var(--ink-2)}.pg-pipe .show{margin-left:auto;cursor:pointer;background:none;border:none;padding:0}.pg-pipe .show:hover{color:var(--amber)}.sales{gap:16px;padding:16px 24px;border-bottom:var(--rule);position:sticky;top:0;background:color-mix(in oklch,var(--paper-0) 92%,transparent);backdrop-filter:blur(10px);z-index:5}.sales,.sales .mark{display:flex;align-items:center}.sales .mark{width:26px;height:26px;flex:none;border-radius:var(--r-sm);background:var(--c-moss-deep);color:#fff;justify-content:center;font-weight:700;font-size:14px}.sales .lbl,.sales .mark{font-family:var(--font-mono)}.sales .lbl{font-size:10px;letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--ink-3)}.sales .val{font-family:var(--font-display);font-size:22px;font-weight:500;color:var(--ink-0);line-height:1}.sales .meta{font-family:var(--font-mono);font-size:12px;color:var(--ink-2)}.sales .right{margin-left:auto;gap:10px}.plan-tb,.sales .right{display:flex;align-items:center}.plan-tb{flex-wrap:wrap;gap:8px;padding:7px 24px}.plan-tb .ttl{font-family:var(--font-mono);font-size:11px;letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--ink-2)}.plan-tb .tools{margin-left:auto;display:flex;flex-wrap:wrap}.plan-tb .tools,.toggle{align-items:center;gap:6px}.toggle{display:inline-flex;height:28px;line-height:1;font-size:12px;font-weight:500;color:var(--ink-1);padding:0 10px;border:var(--rule);border-radius:var(--r-sm);background:var(--paper-0);cursor:pointer;transition:border-color var(--dur-fast),background var(--dur-fast),color var(--dur-fast);white-space:nowrap}.toggle:hover{border-color:var(--line-strong)}.toggle.on{background:var(--amber-soft);border-color:var(--amber-line);color:var(--amber-strong)}.toggle .ic{width:14px;height:14px;flex-shrink:0}.toggle .hm{width:9px;height:9px;border-radius:50%;background:linear-gradient(90deg,var(--c-slate),var(--c-ochre),var(--c-clay))}.plan-tb .review-flag{display:inline-flex;align-items:center;gap:6px;height:28px;line-height:1;font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--c-clay-deep);background:var(--c-clay-soft);border:1px solid color-mix(in oklch,var(--c-clay) 28%,var(--line));padding:0 12px;border-radius:var(--r-pill);cursor:pointer;transition:border-color var(--dur-fast),background var(--dur-fast);white-space:nowrap}.plan-tb .review-flag .ic{width:13px;height:13px;flex-shrink:0}.plan-tb .review-flag:hover{border-color:color-mix(in oklch,var(--c-clay) 45%,var(--line));background:color-mix(in oklch,var(--c-clay-soft) 80%,var(--c-clay))}.row{margin:0 24px 14px;border:var(--rule);border-radius:var(--r-md);overflow:hidden;background:var(--paper-1)}.row.sel{border-color:var(--amber);box-shadow:0 0 0 1px var(--amber)}.row-head{display:flex;align-items:center;gap:12px;padding:11px 16px;border-bottom:var(--rule);cursor:pointer;transition:background var(--dur-fast)}.row-head .rn{font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-1)}.row-head .fill,.row-head .rn{font-family:var(--font-mono);font-size:11px}.row-head .fill{color:var(--ink-3)}.row-head .rev{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--c-moss-deep);background:var(--c-moss-soft);border:1px solid color-mix(in oklch,var(--c-moss) 25%,var(--line));padding:2px 8px;border-radius:var(--r-xs)}.row-head .ops{margin-left:auto;display:flex;gap:4px}.row{border-left:3px solid var(--row-c,var(--line))}.row.sel{border-left-color:var(--row-c,var(--amber))}.row-head .row-swatch{width:10px;height:10px;flex-shrink:0;border-radius:2px;background:var(--row-c,var(--line));margin-right:-6px}.op{font-family:var(--font-mono);font-size:11px;padding:4px 10px;border-radius:var(--r-xs);color:var(--ink-2);transition:background var(--dur-fast),color var(--dur-fast);background:transparent;border:none;cursor:pointer}.op:hover{background:var(--paper-2);color:var(--ink-0)}.op.split:hover{color:var(--c-slate-deep)}.op.merge:hover{color:var(--c-moss-deep)}.op.del:hover{color:var(--error)}.facings{display:flex;gap:7px;padding:12px 16px;overflow-x:auto}.facings::-webkit-scrollbar{height:7px}.facings::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:4px}.fac{width:78px;flex:none;cursor:pointer}.fac .pkg{height:76px;border:var(--rule);border-radius:var(--r-sm);position:relative;overflow:hidden;display:flex;align-items:flex-end;justify-content:center;padding:5px;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.fac.hl .pkg{border-color:var(--amber);box-shadow:0 0 0 2px var(--amber-soft)}.fac.hl .nm{color:var(--amber-strong)}.fac .pkg .glyph{font-family:var(--font-mono);font-size:26px;color:color-mix(in oklch,currentColor 55%,transparent);font-weight:700;position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.fac .nm{font-size:10px;color:var(--ink-1);margin-top:6px}.fac .br,.fac .nm{font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fac .br{font-size:9px;color:var(--ink-3)}.fac .money{font-family:var(--font-mono);font-size:10px;font-weight:600;line-height:14px;height:14px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--c-moss-deep);font-variant-numeric:tabular-nums}.fac .money[data-state=zero]{color:var(--ink-3);font-weight:500}.fac .money[data-state=no-pos-data]{color:var(--c-clay-deep);font-weight:500;font-size:9px}.fac .money[data-state=repeat]{color:color-mix(in oklch,var(--c-moss-deep) 55%,var(--ink-3));font-weight:500}.fac .money[data-state=pending],.fac .money[data-state=unattributed]{color:var(--ink-4,var(--ink-3));font-weight:400}.fac .pkg .sku-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:4px;z-index:2}.fac .fac-ops{position:absolute;top:3px;right:3px;display:flex;gap:3px;opacity:0;transition:opacity var(--dur-fast);z-index:6}.fac:hover .fac-ops{opacity:1}.fac .fac-ops button{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;line-height:1;border-radius:var(--r-xs);border:none;cursor:pointer;color:#fff}.fac .fac-ops .mv{background:var(--c-slate-deep)}.fac .fac-ops .rm{background:var(--error);border-radius:50%}.pane-plan-end{padding:8px 24px 40px;font-family:var(--font-mono);font-size:11px;color:var(--ink-3)}