:root{color-scheme:dark;--accent: #b4a7ff;--accent-strong: #7c5cff;--accent-on: #1a103d;--teal: #5bd6c0;--teal-strong: #00d4a3;--bg: #0e1014;--s0: #14171d;--s1: #181b23;--s2: #1d2029;--s3: #21242e;--s4: #262934;--s5: #2c2f3b;--line: rgba(255, 255, 255, .07);--line-2: rgba(255, 255, 255, .12);--text: #e6e7ea;--text-2: rgba(230, 231, 234, .74);--text-3: rgba(230, 231, 234, .5);--text-4: rgba(230, 231, 234, .32);--green: #4ade80;--green-bg: rgba(74, 222, 128, .12);--amber: #fbbf24;--amber-bg: rgba(251, 191, 36, .13);--yellow: #facc15;--yellow-bg: rgba(250, 204, 21, .14);--red: #f87171;--red-bg: rgba(248, 113, 113, .13);--blue: #60a5fa;--blue-bg: rgba(96, 165, 250, .13);--grey: #9aa0aa;--grey-bg: rgba(154, 160, 170, .1);--row-h: 36px;--pad: 16px;--gap: 14px;--radius: 10px;--radius-sm: 6px;--font: "Inter", "SF Pro Text", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, Menlo, monospace;--fs-12: 13.5px;--fs-13: 14.5px;--fs-14: 15.5px;--fs-16: 17px;--fs-18: 19px;--fs-22: 23px;--fs-28: 28px}[data-density=compact]{--row-h: 30px;--pad: 12px;--gap: 10px;--fs-12: 12.5px;--fs-13: 13.5px;--fs-14: 14.5px}[data-density=comfortable]{--row-h: 44px;--pad: 20px;--gap: 18px;--fs-12: 14px;--fs-13: 15px;--fs-14: 16px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html,body{touch-action:pan-x pan-y;-ms-touch-action:pan-x pan-y}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--fs-14);font-feature-settings:"cv11","ss01","ss03";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font-family:inherit}.app{display:grid;grid-template-columns:var(--nav-w, 220px) 1fr;grid-template-rows:48px 1fr;grid-template-areas:"nav top" "nav main";height:100vh;width:100vw}.topbar{grid-area:top;display:flex;align-items:center;gap:14px;padding:0 16px;background:var(--s0);border-bottom:1px solid var(--line);z-index:5}.topbar .crumbs{display:flex;align-items:center;gap:6px;color:var(--text-2);font-size:var(--fs-13)}.topbar .crumbs .sep{color:var(--text-4)}.topbar .crumbs .last{color:var(--text);font-weight:500}.topbar .crumbs a,.topbar .crumbs a:visited,.topbar .crumbs a:hover,.topbar .crumbs a:active{color:var(--text);font-weight:500;text-decoration:none;padding:2px 6px;border-radius:4px;transition:background-color .12s ease}.topbar .crumbs a:hover,.topbar .crumbs a:focus-visible{background:var(--s2)}.topbar .crumbs a:active{background:var(--s3, var(--s2))}.env-pill{display:inline-flex;align-items:center;gap:8px;padding:4px 10px 4px 8px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--line-2);background:var(--s2);cursor:pointer;-webkit-user-select:none;user-select:none}.env-pill[data-env=production]{background:#f871711a;border-color:#f8717173;color:#ffd4d4}.env-pill[data-env=staging]{background:#fbbf241a;border-color:#fbbf2466;color:#ffe9b8}.env-pill[data-env=dev]{background:#60a5fa1a;border-color:#60a5fa66;color:#d4e6ff}.env-pill .dot{width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}.search{flex:1;max-width:460px;margin-left:auto;position:relative}.search input{width:100%;height:30px;padding:0 10px 0 30px;background:var(--s2);border:1px solid var(--line);border-radius:8px;color:var(--text);font-size:var(--fs-13);outline:none}.search input:focus{border-color:var(--accent-strong);background:var(--s3)}.search .ic{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--text-3)}.search .kbd{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:10px;color:var(--text-3);font-family:var(--font-mono);border:1px solid var(--line);padding:1px 5px;border-radius:4px}.iconbtn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;border-radius:8px;color:var(--text-2);cursor:pointer;position:relative}.iconbtn:hover{background:var(--s2);color:var(--text)}.iconbtn.active{background:#7c5cff21;color:var(--accent)}.iconbtn.sm{width:26px;height:26px;border-radius:6px}.iconbtn-badge{position:absolute;top:2px;right:2px;min-width:14px;height:14px;padding:0 3px;border-radius:999px;background:var(--accent);color:#fff;font-size:9px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.iconbtn .badge{position:absolute;top:4px;right:4px;min-width:14px;height:14px;padding:0 3px;border-radius:999px;background:var(--red);color:#1a0a0a;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--s0)}.avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--accent-strong),var(--teal-strong));display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:600;cursor:pointer}.nav{grid-area:nav;background:#0a0c10;border-right:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden}.nav .brand{height:48px;display:flex;align-items:center;gap:9px;padding:0 16px;border-bottom:1px solid var(--line);font-weight:600;letter-spacing:-.01em;font-size:var(--fs-14)}.brand-mark{width:22px;height:22px;border-radius:6px;background:linear-gradient(135deg,var(--accent-strong),var(--teal-strong));position:relative;flex-shrink:0}.brand-mark:after{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:3px;background:#0a0c10}.brand-mark:before{content:"";position:absolute;top:7px;right:7px;bottom:7px;left:7px;border-radius:1.5px;background:linear-gradient(135deg,var(--accent),var(--teal))}.nav-list{flex:1;padding:8px;display:flex;flex-direction:column;gap:1px;overflow-y:auto}.nav-section{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-4);padding:12px 10px 6px}.nav-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;color:var(--text-2);cursor:pointer;font-size:var(--fs-13);font-weight:500;position:relative;-webkit-user-select:none;user-select:none;border:0;background:transparent;width:100%;text-align:left;text-decoration:none}.nav-item:visited{color:var(--text-2)}.nav-item.active:visited{color:#fff}.nav-item:hover{background:var(--s1);color:var(--text)}.nav-item.active{background:#7c5cff21;color:#fff}.nav-item.active:before{content:"";position:absolute;left:-8px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--accent-strong)}.nav-item .ic{color:var(--text-3);flex-shrink:0}.nav-item.active .ic{color:var(--accent)}.nav-item .count{margin-left:auto;font-size:10px;color:var(--text-3);background:var(--s2);padding:1px 6px;border-radius:999px;font-weight:600}.nav-item.active .count{background:#7c5cff40;color:var(--accent)}.nav-footer{padding:10px 14px;border-top:1px solid var(--line);font-size:11px;color:var(--text-4);display:flex;align-items:center;gap:8px}.settings-toc-item{display:block;text-align:left;padding:8px 12px;border-radius:6px;border:0;background:transparent;color:var(--text-2);font-size:var(--fs-13);font-weight:500;cursor:pointer;width:100%;transition:background-color .12s ease}.settings-toc-item:hover{background:var(--s1);color:var(--text)}.settings-toc-item.active{background:#7c5cff21;color:#fff}.settings-toc-item.danger{color:var(--red, #f87171)}.settings-toc-item.danger:hover{background:#ef44441a;color:var(--red, #f87171)}.settings-toc-item.danger.active{background:#ef444426;color:#fecaca}.nav-bottom-row{display:flex;align-items:center;gap:4px}.nav-bottom-row .nav-collapse-item{width:36px;flex:0 0 36px;justify-content:center;padding:7px 0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app.nav-collapsed{grid-template-columns:56px 1fr}.app.nav-collapsed .nav .brand{padding:0 10px;gap:0;justify-content:center}.app.nav-collapsed .nav-list{padding:8px 6px}.app.nav-collapsed .nav-item{justify-content:center;padding:8px 0}.app.nav-collapsed .nav-item.active:before{left:-6px}.main{grid-area:main;overflow-y:auto;background:var(--bg);position:relative}.page{padding:20px 24px 40px;max-width:1600px;margin:0 auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}.page-title{font-size:var(--fs-22);font-weight:600;letter-spacing:-.02em;margin:0}.page-sub{font-size:var(--fs-13);color:var(--text-3);margin-top:4px}.card{background:var(--s1);border:1px solid var(--line);border-radius:var(--radius);position:relative}.card-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}.card-title{font-size:var(--fs-13);font-weight:600;margin:0;letter-spacing:-.005em}.card-sub{font-size:11px;color:var(--text-3);font-weight:400;margin-left:8px}.card-body{padding:16px}.btn{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:8px;border:1px solid var(--line-2);background:var(--s2);color:var(--text);font-size:var(--fs-13);font-weight:500;cursor:pointer;white-space:nowrap;font-family:inherit}.btn:hover{background:var(--s3);border-color:#ffffff2e}.btn[disabled]{opacity:.4;cursor:not-allowed}.btn.primary{background:var(--accent-strong);border-color:transparent;color:#fff}.btn.primary:hover{filter:brightness(1.08)}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-2)}.btn.ghost:hover{background:var(--s2);color:var(--text)}.btn.danger{background:#f8717124;color:var(--red);border-color:#f8717159}.btn.auto-submit{background:var(--red);border-color:transparent;color:#fff}.btn.auto-submit:hover{filter:brightness(1.08)}.btn.sm{height:26px;padding:0 8px;font-size:var(--fs-12)}.btn.lg{height:36px;padding:0 16px}.status{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:500;letter-spacing:.005em;white-space:nowrap}.status .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.status.success{background:var(--green-bg);color:var(--green)}.status.failed{background:var(--red-bg);color:var(--red)}.status.soft-failed{background:var(--red-bg);color:var(--red);border:1px dashed var(--red)}.status.halted{background:var(--amber-bg);color:var(--amber)}.status.running{background:var(--blue-bg);color:var(--blue)}.status.cancelled{background:var(--grey-bg);color:var(--grey)}.status.partial{background:#c49aff1f;color:#c49aff}.status.dirty{background:var(--yellow-bg);color:var(--yellow)}.status.never{background:var(--grey-bg);color:var(--text-4)}.status.running .dot{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}table.data{width:100%;border-collapse:collapse;font-size:var(--fs-13)}table.data th{text-align:left;padding:8px 12px;background:var(--s0);color:var(--text-3);font-weight:500;font-size:var(--fs-12);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1;-webkit-user-select:none;user-select:none;white-space:nowrap}table.data th .sortable{cursor:pointer;display:inline-flex;align-items:center;gap:4px}table.data td{padding:0 12px;height:var(--row-h);border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap;color:var(--text)}table.data tr.row{cursor:pointer;transition:background 80ms}table.data tr.row:hover{background:var(--s1)}table.data tr.row.selected{background:#7c5cff1a}table.data td.mono{font-family:var(--font-mono);font-size:var(--fs-12)}.muted{color:var(--text-3)}table.data td.num{text-align:right;font-variant-numeric:tabular-nums}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);padding:0 4px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.tabs::-webkit-scrollbar{display:none}.tab{background:transparent;border:0;padding:10px 14px;font-size:var(--fs-13);font-weight:500;color:var(--text-3);cursor:pointer;position:relative;font-family:inherit;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;flex:0 0 auto}.tab:hover{color:var(--text)}.tab.active{color:var(--text);border-bottom-color:var(--accent-strong)}.tab .count{margin-left:6px;font-size:10px;background:var(--s2);padding:1px 6px;border-radius:999px;color:var(--text-3);font-weight:600}.model-tabs{display:inline-flex;gap:4px;padding:4px;margin-bottom:16px;background:var(--s1);border:1px solid var(--line);border-radius:10px;max-width:100%;overflow-x:auto;scrollbar-width:none}.model-tabs::-webkit-scrollbar{display:none}.model-tab{background:transparent;border:0;padding:6px 14px;border-radius:7px;font-family:inherit;font-size:var(--fs-13);font-weight:600;color:var(--text-2);cursor:pointer;white-space:nowrap;flex:0 0 auto}.model-tab:hover{background:var(--s2);color:var(--text)}.model-tab.active{background:var(--accent, #7c5cff);color:var(--on-accent, #fff)}.model-tab.pending:not(.active){color:var(--text-3)}.model-tab-soon{margin-left:6px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:1px 5px;border-radius:999px;background:var(--s2);color:var(--text-3);vertical-align:middle}.model-tab.active .model-tab-soon{background:#ffffff40;color:var(--on-accent, #fff)}.filter-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 0}.chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:8px;border:1px solid var(--line-2);background:var(--s1);font-size:var(--fs-12);color:var(--text-2);cursor:pointer;font-family:inherit}.chip:hover{background:var(--s2)}.chip.active{background:#7c5cff21;border-color:#7c5cff66;color:var(--text)}.chip .x{color:var(--text-3);font-size:11px;margin-left:2px}.chip .ic{color:var(--text-3)}.chip.active .ic{color:var(--accent)}.spark{display:block;width:100%;height:100%}.conf-ring{position:relative;width:30px;height:30px;flex-shrink:0}.conf-ring .num{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:600;font-variant-numeric:tabular-nums}.graph-wrap{background:var(--s0);border:1px solid var(--line);border-radius:var(--radius);position:relative;overflow:hidden}.graph-canvas{position:relative;background-image:radial-gradient(circle at 1px 1px,rgba(255,255,255,.04) 1px,transparent 0);background-size:16px 16px}.phase-node{position:absolute;display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--s2);border:1.5px solid var(--line-2);border-radius:999px;cursor:pointer;font-size:var(--fs-13);font-weight:500;-webkit-user-select:none;user-select:none;transition:transform .1s,border-color .1s,box-shadow .1s;white-space:nowrap}.phase-node:hover{transform:translate(-50%,-50%) scale(1.02)}.phase-node.selected{border-color:var(--accent-strong);box-shadow:0 0 0 3px #7c5cff2e,0 8px 30px #0006;z-index:2}.phase-node.green{border-color:#4ade8073;background:linear-gradient(180deg,rgba(74,222,128,.1),var(--s2))}.phase-node.amber{border-color:#fbbf2480;background:linear-gradient(180deg,rgba(251,191,36,.12),var(--s2))}.phase-node.red{border-color:#f871718c;background:linear-gradient(180deg,rgba(248,113,113,.14),var(--s2))}.phase-node.dirty{border-style:dashed;border-color:var(--yellow);background:linear-gradient(180deg,var(--yellow-bg),var(--s2))}.phase-node.never{opacity:.45;border-style:dashed}.phase-node.halted{border-color:var(--amber);box-shadow:0 0 0 3px #fbbf2426}.phase-node .pill-name{display:flex;flex-direction:column;gap:1px;line-height:1.15}.phase-node .pill-meta{font-size:10px;color:var(--text-3);font-weight:400;font-family:var(--font-mono)}.phase-node .pill-ic{width:18px;height:18px;border-radius:50%;background:var(--s4);display:inline-flex;align-items:center;justify-content:center;color:var(--text-2);flex-shrink:0}.phase-node.green .pill-ic{background:#4ade802e;color:var(--green)}.phase-node.amber .pill-ic{background:#fbbf2433;color:var(--amber)}.phase-node.red .pill-ic{background:#f8717133;color:var(--red)}.acc-head{display:flex;align-items:center;justify-content:space-between;padding:11px 16px;cursor:pointer;-webkit-user-select:none;user-select:none;background:transparent;border:0;width:100%;font-family:inherit;font-size:var(--fs-13);font-weight:600;color:var(--text);text-align:left}.acc-head .chev{color:var(--text-3);transition:transform .15s}.acc.open .acc-head .chev{transform:rotate(90deg)}.acc-body{padding:4px 16px 14px;font-size:var(--fs-13);color:var(--text-2)}.acc:not(.open) .acc-body{display:none}.kv{display:grid;grid-template-columns:1fr auto;gap:8px;padding:5px 0;font-size:var(--fs-13)}.kv-key{color:var(--text-3)}.kv-val{color:var(--text);font-variant-numeric:tabular-nums}.kv-val.mono{font-family:var(--font-mono);font-size:var(--fs-12)}.input{width:100%;height:30px;padding:0 10px;background:var(--s0);border:1px solid var(--line-2);border-radius:7px;color:var(--text);font-size:var(--fs-13);font-family:inherit;outline:none}.input:focus{border-color:var(--accent-strong)}.input.sm{height:28px;padding:0 8px;font-size:var(--fs-12)}select.input{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}textarea.input{min-height:70px;padding:8px 10px}.label{font-size:11px;color:var(--text-3);font-weight:500;letter-spacing:.02em;display:block;margin-bottom:4px}.toasts{position:fixed;bottom:16px;right:16px;display:flex;flex-direction:column;gap:8px;z-index:1000}.toast{background:var(--s3);border:1px solid var(--line-2);border-radius:10px;padding:10px 14px 10px 12px;font-size:var(--fs-13);display:flex;align-items:center;gap:10px;min-width:240px;box-shadow:0 12px 32px #0006;animation:toast-in .2s ease}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.toast.success{border-color:#4ade8066}.toast.error{border-color:#f8717166}.overlay-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:50;display:flex;align-items:center;justify-content:center;animation:fade-in .15s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--s1);border:1px solid var(--line-2);border-radius:14px;box-shadow:0 24px 60px #0009;display:flex;flex-direction:column;overflow:hidden}.main::-webkit-scrollbar,.side-panel-body::-webkit-scrollbar,.nav-list::-webkit-scrollbar,textarea.input::-webkit-scrollbar{width:10px;height:10px}.main::-webkit-scrollbar-thumb,.side-panel-body::-webkit-scrollbar-thumb,.nav-list::-webkit-scrollbar-thumb,textarea.input::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:6px;border:2px solid transparent;background-clip:content-box}.main::-webkit-scrollbar-thumb:hover{background:#ffffff29;background-clip:content-box;border:2px solid transparent}.hstack{display:flex;align-items:center;gap:8px}.vstack{display:flex;flex-direction:column;gap:8px}.spacer{flex:1}.divider{height:1px;background:var(--line);margin:8px 0}.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:5px;background:var(--s2);border:1px solid var(--line);font-size:10.5px;color:var(--text-2);font-family:var(--font-mono)}.rdh-compact{position:sticky;top:0;z-index:4;background:var(--bg);padding:10px 14px;margin:0 -2px 12px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;flex-wrap:nowrap;overflow-x:auto}.rdh-compact .spacer{flex:1}.rdh-sep{width:1px;align-self:stretch;background:var(--line);margin:4px}.rdh-meta-inline{display:flex;align-items:center;gap:18px;flex-shrink:0}.rdh-mi{display:inline-flex;align-items:baseline;gap:6px;white-space:nowrap;flex-shrink:0}.rdh-mi .k{font-size:10.5px;color:var(--text-3);letter-spacing:.04em;text-transform:uppercase;font-weight:500}.rdh-mi .v{font-size:var(--fs-12);color:var(--text);font-weight:500;max-width:180px;overflow:hidden;text-overflow:ellipsis}.rdh-mi .v.mono{font-family:var(--font-mono);font-size:11.5px}.seg-count{margin-left:6px;background:#7c5cff38;color:var(--accent);font-size:10px;font-weight:600;padding:1px 5px;border-radius:8px}.rdh-meta-cell{display:flex;flex-direction:column;gap:2px;padding-right:16px;border-right:1px solid var(--line)}.rdh-meta-cell:last-child{border-right:0}.rdh-meta-cell .k{font-size:10.5px;color:var(--text-3);letter-spacing:.04em;text-transform:uppercase;font-weight:500}.rdh-meta-cell .v{font-size:var(--fs-13);color:var(--text);font-weight:500}.rdh-meta-cell .v.mono{font-family:var(--font-mono);font-size:var(--fs-12)}.stat{background:var(--s1);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:4px;position:relative;overflow:hidden}.stat .stat-label{font-size:11px;color:var(--text-3);font-weight:500;letter-spacing:.02em;display:flex;align-items:center;gap:6px}.stat .stat-value{font-size:var(--fs-28);font-weight:600;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}.stat .stat-delta{font-size:11px;color:var(--text-3);display:flex;align-items:center;gap:4px}.stat.urgent{border-color:#f8717159;background:linear-gradient(180deg,rgba(248,113,113,.06),var(--s1))}.stat.urgent .stat-value{color:var(--red)}.stat.warn{border-color:#fbbf2459}.stat .stat-spark{position:absolute;right:0;bottom:0;width:50%;height:40px;opacity:.85}input[type=range].slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;background:var(--s3);border-radius:2px;outline:none}input[type=range].slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;background:var(--accent);border-radius:50%;cursor:pointer;border:2px solid var(--s1)}[data-density=compact] .topbar{height:40px}[data-density=compact] .app{grid-template-rows:40px 1fr}[data-density=compact] .nav .brand{height:40px}[data-density=compact] .page{padding:14px 18px 30px}.log{background:#07080b;border:1px solid var(--line);border-radius:8px;padding:12px 14px;font-family:var(--font-mono);font-size:11.5px;line-height:1.6;color:var(--text-2);max-height:320px;overflow-y:auto;white-space:pre}.log .line{display:flex;gap:12px}.log .ts{color:var(--text-4)}.log .lvl-info{color:var(--blue)}.log .lvl-warn{color:var(--amber)}.log .lvl-err{color:var(--red)}.log .lvl-ok{color:var(--green)}.thumb{background:var(--s2);border:1px solid var(--line);border-radius:6px;aspect-ratio:4 / 3;position:relative;overflow:hidden}.rd-page{padding:0!important;max-width:none!important;display:flex;flex-direction:column;min-height:calc(100vh - 48px)}[data-density=compact] .rd-page{min-height:calc(100vh - 40px)}.rdh2-link{background:transparent;border:0;color:var(--text-3);font:inherit;font-size:11.5px;cursor:pointer}.rd-graph-strip{flex-shrink:0;height:240px;border-bottom:1px solid var(--line);background:var(--s0);overflow:hidden;position:relative}.rd-graph-strip .graph-viewport{width:100%;height:100%;position:relative;overflow:hidden;cursor:default}.rd-graph-strip .graph-viewport:active{cursor:grabbing}.rd-graph-strip .graph-canvas{border:0!important;border-radius:0!important;position:absolute;top:0;left:0;will-change:transform}.graph-controls{position:absolute;bottom:10px;right:12px;display:flex;align-items:center;gap:6px;z-index:4}.graph-zoom{font-size:10.5px;color:var(--text-3);background:#14171dcc;border:1px solid var(--line-2);border-radius:999px;padding:2px 8px;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.graph-reset{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;background:#14171dd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line-2);border-radius:999px;color:var(--text-2);font-size:10.5px;font-family:inherit;cursor:pointer}.graph-reset:hover{background:var(--s3);color:var(--text);border-color:#fff3}.phase-node.compact{padding:6px 10px;gap:6px}.phase-node.compact .pill-meta{display:none}.rd-work{flex:1;min-height:0;display:flex;overflow:hidden}.rd-main{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--s0);position:relative}.rd-status-chip{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.02em;white-space:nowrap;cursor:default}.rd-status-chip.dirty{background:var(--yellow-bg);color:var(--yellow);border:1px dashed var(--yellow)}.rd-status-chip.processing{background:#7c5cff24;color:var(--accent-strong);border:1px solid rgba(124,92,255,.4)}.rd-status-chip.not-processed{background:var(--s2);color:var(--text-3);border:1px solid var(--line-2)}.rd-archive-lens{position:relative}.rd-archive-lens>.seg-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-2);font-family:var(--font-mono);font-size:11.5px}.rd-archive-lens-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:20;min-width:220px;background:var(--s1);border:1px solid var(--line-2);border-radius:8px;box-shadow:0 6px 24px #0006;padding:4px;display:flex;flex-direction:column;gap:1px}.rd-archive-lens-row{display:flex;align-items:center;gap:8px;width:100%;padding:6px 10px;background:transparent;border:none;border-radius:5px;color:var(--text-2);font-size:12px;font-family:var(--font-mono);text-align:left;cursor:pointer}.rd-archive-lens-row:hover{background:var(--s2)}.rd-archive-lens-row.active{color:var(--text);background:#7c5cff21}.rd-archive-lens-dot{color:var(--accent-strong);width:12px;text-align:center;flex:none}.rd-main-meta{font-size:11.5px;color:var(--text-3);letter-spacing:.02em}.rd-main-canvas{flex:1;min-height:0;position:relative;overflow:hidden}.rd-main-canvas>svg{width:100%;height:100%;display:block}.anno-toolbar{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--s0);border-bottom:1px solid var(--line);flex-wrap:wrap;flex-shrink:0;z-index:2}.anno-toolbar-label{font-size:10.5px;color:var(--text-3);letter-spacing:.04em;text-transform:uppercase;font-weight:500;margin-right:4px}.anno-tag{--tag-color: #b4a7ff;display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 4px 0 8px;border-radius:4px;background:var(--tag-color);color:#0a0c10;border:1px solid transparent;font-family:var(--font-mono);font-size:11px;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none;transition:filter .1s,transform .1s}.anno-tag:hover{filter:brightness(1.08)}.anno-tag.active{filter:brightness(1.05)}.anno-tag-swatch{display:none}.anno-tag-name{letter-spacing:.01em}.anno-tag-key{display:inline-flex;align-items:center;justify-content:center;min-width:14px;height:16px;padding:0 4px;background:#0a0c106b;color:#ffffffeb;border-radius:3px;font-size:10px;font-weight:700;font-variant-numeric:tabular-nums}.anno-tag-count{background:#0a0c1040;border-radius:999px;padding:0 5px;height:14px;display:inline-flex;align-items:center;font-size:9.5px;font-weight:600}.anno-hint{font-size:11px;color:var(--text-3);font-family:var(--font-mono);margin-left:auto}.anno-hint strong{font-weight:600}.anno-surface{flex:1;position:relative;min-height:0;overflow:hidden;background:#0a0c10}.anno-surface svg{-webkit-user-select:none;user-select:none}.anno-status{position:absolute;bottom:10px;right:12px;display:inline-flex;align-items:center;gap:8px;padding:4px 9px;background:#14171dd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line-2);border-radius:999px;font-size:10.5px;color:var(--text-2)}.anno-status .mono{font-family:var(--font-mono);color:var(--text)}.anno-dirty-pill{color:var(--amber);font-weight:500}.bbox-rollup{display:flex;flex-direction:column;gap:2px}.bbox-dirty-banner{background:#fbbf2414;border:1px solid rgba(251,191,36,.3);border-radius:6px;padding:7px 10px;font-size:var(--fs-12);color:var(--text);margin-bottom:8px;display:flex;align-items:center;gap:4px}.bbox-reset{margin-left:auto;background:transparent;border:1px solid rgba(251,191,36,.4);color:var(--amber);border-radius:4px;padding:1px 8px;font-size:10.5px;cursor:pointer;font-family:inherit}.bbox-reset:hover{background:#fbbf241f}.bbox-group{border-bottom:1px solid var(--line)}.bbox-group:last-child{border-bottom:0}.bbox-group-head{width:100%;display:flex;align-items:center;gap:8px;padding:6px 4px;background:transparent;border:0;cursor:pointer;text-align:left;font-family:inherit;color:var(--text)}.bbox-group-head:hover{background:var(--s2)}.bbox-group-swatch{width:10px;height:10px;border-radius:2px;flex-shrink:0}.bbox-group-name{font-size:var(--fs-12);font-weight:500;flex:1}.bbox-group-count{font-size:10.5px;color:var(--text-3);background:var(--s2);padding:1px 6px;border-radius:999px}.bbox-list{padding:2px 0 8px 18px;display:flex;flex-direction:column;gap:2px}.bbox-empty{font-size:10.5px;color:var(--text-4);font-style:italic;padding:2px 4px}.bbox-row{display:grid;grid-template-columns:36px 1fr auto auto;align-items:center;gap:8px;padding:3px 6px 3px 4px;border-radius:4px;font-size:10.5px}.bbox-row.manual{background:#7c5cff0f}.bbox-row.edited{background:#fbbf240d}.bbox-row-id{color:var(--text-3)}.bbox-row-coords{color:var(--text-2);font-size:10.5px}.bbox-row-conf{color:var(--text-3);font-size:10.5px}.bbox-row-flag{font-size:11px;line-height:1}.bbox-row-flag.manual{color:var(--accent)}.bbox-row-flag.edited{color:var(--amber)}.bbox-row-x{background:transparent;border:0;color:var(--text-4);cursor:pointer;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border-radius:3px;padding:0}.bbox-row-x:hover{background:#f8717126;color:var(--red)}.bbox-totals{display:flex;justify-content:space-between;margin-top:8px;padding-top:8px;border-top:1px solid var(--line);font-size:10.5px;color:var(--text-3)}.bbox-totals .mono{font-family:var(--font-mono);color:var(--text);margin-right:4px}.skeleton{background:var(--s2);border-radius:var(--r-md, 8px);animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--s3);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle}.spinner.lg{width:24px;height:24px;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}.login-surface{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:40px 16px;background:var(--bg)}.login-surface .login-brand{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text-2)}.login-surface .login-brand .brand-mark{width:32px;height:32px}.login-surface .login-brand h1{font-size:var(--fs-18);margin:0;color:var(--text)}.login-surface .login-brand p{margin:0;font-size:var(--fs-13);color:var(--text-3)}.login-card{width:400px;max-width:100%;padding:24px}.login-card h2{margin:0 0 20px;font-size:var(--fs-16)}.login-card .field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.login-card .submit-row{margin-top:8px}.login-card .help-link{display:block;margin-top:14px;text-align:center;font-size:var(--fs-13);color:var(--text-3);background:none;border:0;cursor:pointer}.login-card .help-link:hover{color:var(--text-2)}.login-card .input.invalid{border-color:var(--red)}.login-version{font-size:var(--fs-12);color:var(--text-4)}.user-popover{position:absolute;top:100%;right:0;margin-top:8px;width:240px;background:var(--s1);border:1px solid var(--line-2);border-radius:10px;box-shadow:0 16px 40px #00000080;padding:12px;z-index:60}.user-popover .pop-name{font-weight:500;color:var(--text);font-size:var(--fs-13)}.user-popover .pop-email{font-size:var(--fs-12);color:var(--text-3);margin-bottom:10px;word-break:break-all}.avatar-wrap{position:relative}.modal-head{padding:16px 20px;border-bottom:1px solid var(--line);font-size:var(--fs-15);font-weight:500}.modal-body{padding:16px 20px;font-size:var(--fs-13);color:var(--text-2)}.modal-foot{padding:12px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.reprocess-choices{display:flex;flex-direction:column;gap:8px}.reprocess-choice{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;padding:10px 12px;text-align:left;white-space:normal;height:auto}.reprocess-choice-title{font-weight:600}.reprocess-choice-note{font-size:12px;line-height:1.4;opacity:.8}.overview-grid-2{display:grid;grid-template-columns:2fr 1fr;gap:16px}@media (max-width: 820px){.overview-grid-2{grid-template-columns:1fr}}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media (max-width: 1100px){.project-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 720px){.project-grid{grid-template-columns:1fr}}.project-card{display:block;text-decoration:none;color:inherit;transition:border-color .12s ease,transform .12s ease}.project-card:hover{border-color:#7c5cff66}.project-card:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}.editor-shell{display:grid;grid-template-columns:1fr 320px;grid-template-rows:auto 1fr 44px;height:calc(100vh - 48px);background:var(--bg);overflow:hidden}.editor-shell>.editor-palette{grid-row:1;grid-column:1 / -1}.editor-shell>.canvas-surface{grid-row:2;grid-column:1}.editor-shell>.box-list{grid-row:2 / span 2;grid-column:2}.editor-shell>.editor-footer{grid-row:3;grid-column:1}.editor-shell[data-queue="1"]{grid-template-rows:auto auto 1fr 44px}.editor-shell[data-queue="1"]>.queue-banner{grid-column:1 / -1;grid-row:1}.editor-shell[data-queue="1"]>.editor-palette{grid-row:2;grid-column:1 / -1}.editor-shell[data-queue="1"]>.canvas-surface{grid-row:3;grid-column:1}.editor-shell[data-queue="1"]>.box-list{grid-row:3 / span 2;grid-column:2}.editor-shell[data-queue="1"]>.editor-footer{grid-row:4;grid-column:1}.editor-shell.loading{display:flex;align-items:center;justify-content:center;color:var(--text-3)}.run-detail-shell{display:flex;flex-direction:column;height:calc(100vh - 48px);width:100%;background:var(--bg);overflow:hidden}.rdh2{flex-shrink:0;background:var(--s0);border-bottom:1px solid var(--line)}.rdh2-row{display:flex;align-items:center;gap:14px;padding:8px 16px;min-width:0;overflow:hidden}.rdh2-row+.rdh2-row{border-top:1px solid var(--line);padding-top:6px;padding-bottom:6px;background:var(--s1)}.rdh2-row .spacer{flex:1}.rdh2-id{font-size:var(--fs-16);font-weight:600;font-family:var(--font-mono);letter-spacing:-.01em;white-space:nowrap;margin-right:4px}.rdh2-id-btn{background:none;border:1px solid transparent;color:inherit;padding:2px 6px;margin:-2px -2px -2px 0;border-radius:4px;cursor:text;text-align:left}.rdh2-id-btn:hover{background:var(--s1);border-color:var(--line)}.rdh2-id-btn:focus-visible{outline:2px solid var(--accent-strong, #7c5cff);outline-offset:-2px}.rdh2-id-input{background:var(--s0);color:inherit;border:1px solid var(--accent-strong, #7c5cff);padding:2px 6px;margin:-2px -2px -2px 0;border-radius:4px;outline:none;min-width:16ch}.rdh2-mi{display:inline-flex;align-items:baseline;gap:6px;white-space:nowrap;flex-shrink:0;min-width:0}.rdh2-mi .k{font-size:10.5px;color:var(--text-3);letter-spacing:.04em;text-transform:uppercase;font-weight:500}.rdh2-mi .v{font-size:var(--fs-12);color:var(--text);font-weight:500}.rdh2-mi .v.mono{font-family:var(--font-mono);font-size:11.5px}.rdh2-mi-file{flex-shrink:1;min-width:0}.rdh2-mi-file .v{overflow:hidden;text-overflow:ellipsis;max-width:320px}.rdh2-link{background:transparent;border:0;color:var(--text-3);font:inherit;font-size:11.5px;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.rdh2-link:hover{color:var(--accent)}.rdh2-finalize{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;min-width:0}.fin-label{font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;font-weight:500;color:var(--blue);white-space:nowrap}.fin-detail{color:var(--text-3);font-size:11px}.fin-detail.mono{font-family:var(--font-mono)}.fin-bar{position:relative;width:120px;height:4px;border-radius:999px;background:var(--blue-bg);overflow:hidden;flex-shrink:0}.fin-bar-fill{position:absolute;inset:0 auto 0 0;height:100%;min-width:3px;border-radius:999px;background:var(--blue);transition:width .4s ease}.rdh2-compact-meta{display:none}@media (max-width: 720px){.rdh2-compact-meta{display:flex;align-items:baseline;gap:6px;padding:0 10px 6px;font-size:10.5px;line-height:1.2;color:var(--text-3)}.rdh2-compact-meta .cm-k{letter-spacing:.04em;text-transform:uppercase;font-weight:500}.rdh2-compact-meta .cm-v{color:var(--text-2);font-weight:500}.rdh2-compact-meta .cm-v.mono{font-family:var(--font-mono)}.rdh2-compact-meta .cm-sep{opacity:.5}.rdh2-compact-meta .cm-finalize{display:inline-flex;align-items:center;gap:6px;margin-left:auto}.rdh2-compact-meta .cm-finalize .fin-label{font-size:9.5px}.rdh2-compact-meta .cm-finalize .fin-bar{width:64px;height:3px}}.run-detail-shell>.card{flex:0 0 auto}.pg-resize-handle{position:absolute;left:0;right:0;bottom:0;height:6px;cursor:ns-resize;background:transparent;z-index:5;touch-action:none}.pg-touch-toolbar{position:absolute;top:10px;right:10px;z-index:10;display:none;gap:8px;align-items:center;pointer-events:none}.pg-touch-toolbar>*{pointer-events:auto}.pg-touch-seg{display:inline-flex;background:var(--s1);border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:0 2px 8px #00000040}.pg-touch-seg button{height:40px;min-width:48px;padding:0 10px;border:0;background:transparent;color:var(--text-2);font:inherit;font-size:12px;font-weight:600;cursor:pointer}.pg-touch-seg button[aria-pressed=true]{background:var(--accent-strong);color:#fff}.pg-touch-seg button+button{border-left:1px solid var(--line)}.pg-touch-fab{height:48px;width:48px;border-radius:999px;background:var(--accent-strong);color:#fff;border:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #00000059}.pg-touch-fab:active{filter:brightness(1.1)}@media (pointer: coarse){.pg-touch-toolbar{display:inline-flex}}.pg-resize-handle:hover,.pg-resize-handle:active{background:var(--accent-strong);opacity:.45}@media (pointer: coarse){.pg-resize-handle{height:18px;display:flex;align-items:center;justify-content:center;background:linear-gradient(to top,rgba(255,255,255,.04),transparent)}.pg-resize-handle:before{content:"";width:44px;height:4px;border-radius:999px;background:var(--line-2)}.pg-resize-handle:active:before{background:var(--accent)}}.run-stage-shell{flex:1 1 0;min-height:0;display:grid;grid-template-columns:1fr 380px;grid-template-rows:auto auto 1fr;border-top:1px solid var(--line);overflow:hidden}.run-stage-shell>.rd-main-bar{grid-row:1;grid-column:1}.run-stage-shell>.editor-palette{grid-row:2;grid-column:1}.run-stage-shell>.canvas-surface{grid-row:3;grid-column:1}.run-stage-shell>.side-panel{grid-row:1 / span 3;grid-column:2;display:flex;flex-direction:column;background:var(--s1);border-left:1px solid var(--line);overflow:hidden}.run-detail-shell:not([data-props-open]) .run-stage-shell{grid-template-columns:1fr}.run-detail-shell:not([data-props-open]) .run-stage-shell>.rd-main-bar,.run-detail-shell:not([data-props-open]) .run-stage-shell>.editor-palette,.run-detail-shell:not([data-props-open]) .run-stage-shell>.canvas-surface{grid-column:1 / -1}.run-debug{display:grid;grid-template-columns:212px 1fr;height:100%;min-height:0}.run-debug[data-collapsed]{grid-template-columns:28px 1fr}.run-debug-list{min-width:0;display:flex;flex-direction:column;background:var(--s1);border-right:1px solid var(--line);overflow:hidden}.run-debug[data-collapsed] .run-debug-list{display:none}.run-debug-list-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line-2);font-size:11px;text-transform:uppercase;color:var(--text-3);letter-spacing:.5px}.run-debug-list-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-debug-list-scroll{flex:1 1 0;overflow:auto;padding:6px 0;display:flex;flex-direction:column;gap:0}.run-debug-accordion{border-bottom:1px solid var(--line-2)}.run-debug-accordion-head{width:100%;display:flex;align-items:center;gap:6px;padding:8px 10px;background:transparent;border:none;cursor:pointer;color:var(--text-2);font-size:11px;text-transform:uppercase;letter-spacing:.5px;text-align:left}.run-debug-accordion-head:hover{background:var(--s2);color:var(--text)}.run-debug-accordion-title{flex:1 1 auto}.run-debug-accordion-count{font-family:var(--font-mono);font-size:10px;color:var(--text-3);background:var(--s2);padding:1px 6px;border-radius:8px}.run-debug-accordion-body{padding:6px 8px 10px}.run-debug-list-empty{padding:8px 4px;font-size:11px;color:var(--text-3);text-align:center;font-style:italic}.run-debug-cards{display:flex;flex-direction:column;gap:8px}.run-debug-rail{display:flex;align-items:flex-start;justify-content:center;padding-top:10px;background:var(--s1);border:none;border-right:1px solid var(--line);cursor:pointer;color:var(--text-3)}.run-debug-rail:hover{color:var(--text);background:var(--s2)}.run-debug-rail-label{display:none}@media (max-width: 820px){.run-debug,.run-debug[data-collapsed]{grid-template-columns:minmax(0,1fr);position:relative}.run-debug>.run-debug-viewer{grid-column:1 / -1}.run-debug-list{position:absolute;top:0;left:0;bottom:0;width:min(78vw,260px);z-index:20;border-right:1px solid var(--line-2);box-shadow:10px 0 28px #00000080}.run-debug-list-head{min-height:var(--touch-target)}.run-debug-rail{position:absolute;left:0;top:50%;transform:translateY(-50%);z-index:19;align-items:center;gap:6px;width:auto;min-width:26px;min-height:84px;padding:12px 5px;border:1px solid var(--line-2);border-left:0;border-radius:0 10px 10px 0;background:#181b23f0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:4px 0 18px #00000073}.run-debug-rail-label{display:block;font-size:10px;letter-spacing:.08em;text-transform:uppercase;writing-mode:vertical-rl;color:var(--text-3)}.run-debug-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:19;border:0;padding:0;background:#00000073}}.run-debug-card{display:flex;flex-direction:column;gap:4px;padding:0;background:var(--bg);border:1px solid var(--line);border-radius:6px;cursor:pointer;text-align:left;overflow:hidden;transition:border-color .12s,transform .12s}.run-debug-card:hover{border-color:var(--line-2)}.run-debug-card.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.run-debug-card-thumb{position:relative;width:100%;aspect-ratio:3 / 4;display:grid;place-items:center;background:var(--s2);overflow:hidden}.run-debug-card-thumb img{width:100%;height:100%;object-fit:contain;background:#0a0a0c}.run-debug-card-thumb-placeholder{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--text-3)}.run-debug-card-thumb-ext{font-family:var(--font-mono);font-size:10px;letter-spacing:.5px}.run-debug-default-badge{position:absolute;top:4px;right:4px;background:#000000b3;color:#ffd54a;font-size:11px;padding:1px 5px;border-radius:3px;pointer-events:none}.run-debug-edit-badge{position:absolute;bottom:4px;left:4px;display:flex;align-items:center;background:#000000b3;color:var(--accent, #7c5cff);padding:2px 4px;border-radius:3px;pointer-events:none}.run-debug-edit-badge.muted{color:var(--text-3)}.run-debug-card-caption{padding:6px 8px 8px;font-size:11px;font-family:var(--font-mono);color:var(--text-2);word-break:break-all;line-height:1.35}.run-debug-viewer{min-width:0;display:flex;flex-direction:column;background:var(--bg);overflow:hidden}.run-debug-viewer.rd-dirty-halo{box-shadow:inset 0 0 0 2px var(--yellow, #facc15);outline:2px dashed var(--yellow, #facc15);outline-offset:-6px}.run-debug-banner{display:flex;align-items:center;gap:8px;flex:0 0 auto;padding:8px 12px;font-size:12px;color:var(--text-2);background:var(--bg-2);border-bottom:1px solid var(--border)}.run-debug-banner .ic{flex:0 0 auto;color:var(--text-3)}.run-debug-banner.error{color:var(--danger, #c0392b);background:color-mix(in srgb,var(--danger, #c0392b) 10%,var(--bg-2))}.run-debug-banner.error .ic{color:var(--danger, #c0392b)}@media (max-width: 820px){.run-debug-banner{flex-wrap:wrap;row-gap:8px;padding:8px 10px}.run-debug-banner>span{flex:1 1 200px;min-width:0}.run-debug-banner>.btn{min-height:34px}}.run-debug-viewer-empty,.run-debug-empty{flex:1 1 0;display:grid;place-items:center;color:var(--text-3);font-size:13px;padding:24px;text-align:center}.run-debug-empty-hint{font-size:12px;margin-top:6px;color:var(--text-3)}.run-debug-viewer-image-wrap{flex:1 1 0;display:flex;flex-direction:column;min-height:0}.run-debug-viewer-image{flex:1 1 0;min-height:0;width:100%;background:#0a0a0c}.panzoom-image{position:relative;overflow:hidden;-webkit-user-select:none;user-select:none;touch-action:none}.panzoom-image-stage{position:absolute;top:0;left:0;will-change:transform}.panzoom-image-stage>img{pointer-events:none;-webkit-user-drag:none}.run-debug-viewer-text-wrap,.run-debug-viewer-3d-wrap{flex:1 1 0;display:flex;flex-direction:column;min-height:0}.run-debug-viewer-3d-stage{position:relative;flex:1 1 0;min-height:0}.run-debug-viewer-3d-canvas{position:absolute;top:0;right:0;bottom:0;left:0;background:#f2f3f5}.run-debug-viewer-3d-legend{position:absolute;top:12px;right:12px;padding:10px 14px;background:#ffffffeb;border:1px solid var(--line-2);border-radius:6px;font-size:12px;line-height:1.5;box-shadow:0 1px 4px #00000014;pointer-events:none}.run-debug-viewer-3d-legend-title{font-weight:600;margin-bottom:4px;color:var(--text)}.run-debug-viewer-3d-legend-row{display:flex;align-items:center;gap:8px}.run-debug-viewer-3d-legend-swatch{display:inline-block;width:14px;height:14px;border:1px solid rgba(0,0,0,.2);border-radius:2px;flex:0 0 auto}.run-debug-viewer-3d-layers{position:absolute;top:12px;left:12px;padding:10px 14px;background:#ffffffeb;border:1px solid var(--line-2);border-radius:6px;font-size:12px;line-height:1.5;box-shadow:0 1px 4px #00000014}.run-debug-viewer-3d-layer-row{display:flex;align-items:center;gap:7px;cursor:pointer;-webkit-user-select:none;user-select:none}.run-debug-viewer-3d-layer-row input{margin:0;cursor:pointer}.run-debug-viewer-3d-canvas.glb-stage-dark{background:var(--s0)}.glb-tree-panel{position:absolute;top:12px;left:12px;width:260px;max-width:calc(100% - 24px);max-height:calc(100% - 24px);display:flex;flex-direction:column;background:#181b23f0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--line-2);border-radius:var(--radius-sm);box-shadow:0 6px 20px #00000073;color:var(--text);font-size:12px;overflow:hidden}.glb-tree-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 8px 8px 12px;background:var(--s2);border-bottom:1px solid var(--line-2)}.glb-tree-title{display:flex;align-items:center;gap:6px;font-weight:600;color:var(--text)}.glb-tree-toolbar{display:flex;flex-wrap:wrap;gap:6px;padding:8px 10px;border-bottom:1px solid var(--line-2)}.glb-tree-toolbar .btn.ghost{background:var(--s3);border-color:var(--line-2);color:var(--text)}.glb-tree-toolbar .btn.ghost:hover:not([disabled]){background:var(--s4)}.glb-tree-body{flex:1 1 auto;min-height:0;overflow:auto;padding:4px 0}.glb-tree-row{display:flex;align-items:center;gap:2px;padding-right:8px;min-width:0}.glb-tree-row:hover{background:var(--s3)}.glb-tree-row.selected{background:#35d0ff29;box-shadow:inset 2px 0 #35d0ff}.glb-tree-row.selected .glb-tree-name-text{color:#9fe9ff}.glb-tree-row.hidden .glb-tree-name-text{color:var(--text-3);text-decoration:line-through}.glb-tree-icon-btn{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:none;background:none;color:var(--text-2);cursor:pointer;border-radius:4px}.glb-tree-icon-btn:hover{background:var(--s3);color:var(--text)}.glb-tree-spacer{pointer-events:none}.glb-tree-name{flex:1 1 auto;display:flex;align-items:center;gap:6px;min-width:0;padding:3px 4px;border:none;background:none;color:var(--text);cursor:pointer;text-align:left;font-size:12px}.glb-tree-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.glb-tree-badge{flex:0 0 auto;font-size:9px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;color:var(--text-3);background:var(--s3);border-radius:3px;padding:1px 4px}.glb-tree-open{position:absolute;top:12px;left:12px;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:600;color:var(--text);background:#181b23f0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--line-2);border-radius:var(--radius-sm);box-shadow:0 6px 20px #00000073;cursor:pointer}.glb-tree-open:hover{background:var(--s3)}@media (max-width: 720px),(pointer: coarse){.glb-tree-panel{width:240px;max-height:55%}.glb-tree-icon-btn{width:28px;height:28px}}.run-debug-viewer-text{flex:1 1 0;min-height:0;margin:0;padding:12px 16px;font-family:var(--font-mono);font-size:12px;line-height:1.5;color:var(--text);background:var(--bg);overflow:auto;white-space:pre;-webkit-user-select:text;user-select:text}.run-debug-viewer-text-empty,.run-debug-viewer-text-error{padding:16px;font-size:12px;color:var(--text-3)}.run-debug-viewer-text-error{color:var(--red)}.run-debug-viewer-caption{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line-2);font-size:12px;background:var(--s1)}.run-debug-overlay{flex:1 1 0;min-height:0;min-width:0;position:relative;display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-template-rows:auto 1fr;background:var(--bg);overflow:hidden}.run-debug-overlay>.editor-palette{grid-row:1;grid-column:1 / -1}.run-debug-overlay>.canvas-surface{grid-row:2;grid-column:1;min-height:0;min-width:0}.run-debug-overlay>.box-list{grid-row:2;grid-column:2;min-height:0;border-left:1px solid var(--line-2)}@media (max-width: 820px){.run-debug-overlay,.run-debug-overlay:has(>.box-list.collapsed){grid-template-columns:minmax(0,1fr)}.run-debug-overlay>.canvas-surface{grid-column:1 / -1}.run-debug-overlay>.box-list{position:absolute;top:0;right:0;bottom:0;width:min(88vw,320px);z-index:20;box-shadow:-10px 0 28px #00000080}.run-debug-overlay>.box-list.collapsed{top:auto;bottom:14px;right:14px;width:auto;min-width:0;padding:0;border:1px solid var(--line-2);border-radius:999px;background:#181b23f0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 6px 20px #00000073}.run-debug-overlay>.box-list.collapsed .panel-rail-toggle,.callout-body>.callout-rail.collapsed .panel-rail-toggle,.roof-notes-body>.roof-note-list.collapsed .panel-rail-toggle{width:auto;min-height:var(--touch-target);flex-direction:row;gap:6px;padding:0 14px}.run-debug-overlay>.box-list .bbox-totals{padding:8px 14px;margin-top:0}.run-debug-overlay>.box-list .box-list-head{min-height:var(--touch-target)}.run-debug-overlay>.box-list .box-row{min-height:36px}}.fpm-decision-canvas{display:flex;flex-direction:column;height:100%;min-height:320px;background:var(--bg)}.fpm-decision-canvas.state-block{height:100%;justify-content:center}.fpm-decision-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-bottom:1px solid var(--line-2);flex-wrap:wrap}.fpm-decision-status{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;min-width:0}.fpm-decision-page-label{font-size:13px;color:var(--text-2);white-space:nowrap}.fpm-decision-hint{font-size:12px;color:var(--text-3)}.fpm-decision-actions{display:flex;align-items:center;gap:8px}.fpm-decision-dirty-chip{font-size:12px;color:var(--amber)}.fpm-decision-banner{color:var(--text-2);padding:4px 12px;margin:0}.fpm-decision-banner.error{color:var(--red)}.fpm-decision-warnings{color:var(--text-3);font-size:12px;padding:4px 12px 4px 28px;margin:0}.fpm-decision-empty-note{color:var(--text-3);font-size:13px;margin:0}.fpm-decision-body{flex:1 1 0;min-height:0;display:flex}.fpm-decision-body>.canvas-surface{flex:1 1 0;min-height:0;min-width:0}.fpm-decision-empty{flex:1 1 0;display:flex;align-items:center;justify-content:center;padding:0 16px;text-align:center;color:var(--text-3)}.run-logs{font-family:var(--font-mono);font-size:12px;line-height:1.55;background:var(--bg);height:100%;min-height:0;display:flex;flex-direction:column;-webkit-user-select:text;user-select:text}.run-logs-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 16px;border-bottom:1px solid var(--border);background:var(--bg-2);flex:0 0 auto}.run-logs-meta{color:var(--text-3)}.run-logs-actions{display:flex;gap:8px}.run-logs-body{flex:1 1 0;min-height:0;padding:12px 16px;overflow:auto;-webkit-user-select:text;user-select:text}.run-log-row{display:grid;grid-template-columns:96px 64px 1fr;gap:12px;align-items:baseline;padding:2px 0}.run-log-time{color:var(--text-3);white-space:nowrap}.run-log-level{font-weight:600;letter-spacing:.03em;text-align:left}.run-log-level-info{color:var(--blue)}.run-log-level-ok{color:var(--green)}.run-log-level-warn{color:var(--amber)}.run-log-level-err{color:var(--red)}.run-log-level-debug{color:var(--text-3)}.run-log-msg{color:var(--text);word-break:break-word;white-space:pre-wrap}.run-log-logger{color:var(--text-3);margin-right:6px}@media (max-width: 720px){.run-logs{font-size:13px}.run-log-row{display:block;padding:6px 0;border-bottom:1px solid var(--line)}.run-log-row>.run-log-time,.run-log-row>.run-log-level{display:inline-block;margin-right:8px;font-size:11px}.run-log-msg{display:block;margin-top:2px}}.run-3d-canvas{height:100%;min-height:320px;display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,rgba(124,92,255,.07),transparent 60%),var(--bg)}.run-3d-placeholder{text-align:center;color:var(--text-3);display:flex;flex-direction:column;align-items:center;gap:8px}.run-3d-title{font-size:14px;font-weight:500;color:var(--text-2)}.run-3d-sub{font-size:12px;max-width:320px}.def-detail-shell{display:flex;flex-direction:column;height:calc(100vh - 48px);width:100%;background:var(--bg);overflow:hidden}.def-stage-shell{flex:1 1 0;min-height:0;display:grid;grid-template-columns:1fr 380px;border-top:1px solid var(--line);overflow:hidden}.def-stage-shell>.def-graph-slot{grid-column:1;min-width:0;min-height:0;overflow:hidden}.def-stage-shell>.side-panel{grid-column:2;display:flex;flex-direction:column;background:var(--s1);border-left:1px solid var(--line);overflow:hidden}.def-detail-shell:not([data-props-open]) .def-stage-shell{grid-template-columns:1fr}.def-detail-shell:not([data-props-open]) .def-stage-shell>.def-graph-slot{grid-column:1 / -1}.rd-main-bar{flex-shrink:0;display:flex;align-items:center;gap:12px;padding:8px 14px;border-bottom:1px solid var(--line);background:var(--s1)}.rd-main-bar .spacer{flex:1}@media (max-width: 820px){.rd-main-bar{flex-wrap:wrap;gap:6px 8px;padding:6px 10px;min-width:0}.rd-main-bar>.seg{flex:1 1 100%;min-width:0;justify-content:stretch}.rd-main-bar>.seg>.seg-btn{flex:1 1 0;min-width:0;padding:7px 4px}.rd-main-bar .spacer{flex-basis:100%;height:0}.rd-main-bar>.rd-archive-lens{flex:0 1 auto;min-width:0}.rd-main-bar>.rd-archive-lens>.seg-btn{max-width:100%}.rd-main-bar .rd-archive-lens-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rd-main-bar .rd-archive-lens-menu{left:0;right:auto;max-width:calc(100vw - 20px)}.rd-archive-lens-row{min-height:var(--touch-target)}}.rd-main-export{display:flex;align-items:center;gap:10px;min-width:0}.rd-main-export-err{color:var(--red);font-size:12px;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seg{display:inline-flex;background:var(--s0);border:1px solid var(--line);border-radius:8px;padding:2px;gap:2px}.seg-btn{background:transparent;border:0;color:var(--text-2);padding:5px 12px;font:inherit;font-size:var(--fs-12);font-weight:500;border-radius:6px;cursor:pointer;letter-spacing:.01em}.seg-btn:hover{color:var(--text)}.seg-btn.active{background:var(--s2);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-2)}.side-panel{position:static;display:flex;flex-direction:column;height:100%;min-height:0}.side-panel-empty{padding:24px 18px;color:var(--text-3);font-size:var(--fs-12);display:flex;flex-direction:column;gap:6px}.side-panel-empty-hint{color:var(--text-3);font-size:11px;opacity:.85}.side-panel-head{padding:14px 16px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.side-panel-title{display:flex;align-items:flex-start;gap:10px;justify-content:space-between}.side-panel-title-text{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.side-panel-title-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.side-panel-name{font-size:var(--fs-14);font-weight:600;color:var(--text);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-panel-sub{font-size:11px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-panel-badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.side-panel-time{font-size:11px;color:var(--text-3)}.side-panel-body{flex:1;overflow-y:auto;padding:8px 0}.conf-ring{position:relative;flex-shrink:0}.conf-ring svg{transform:rotate(-90deg)}.conf-ring .num{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:600;font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.acc{border-bottom:1px solid var(--line)}.acc:last-child{border-bottom:0}.acc-head{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;align-items:center;justify-content:space-between;padding:11px 16px;cursor:pointer;-webkit-user-select:none;user-select:none;background:transparent;border:0;width:100%;font-family:inherit;font-size:var(--fs-13);font-weight:600;color:var(--text);text-align:left}.acc-head:hover{background:var(--s2)}.acc-head-left{display:inline-flex;align-items:center;gap:8px}.acc-head-left .chev{color:var(--text-3);transition:transform .15s;transform-origin:center;transform-box:fill-box}.acc.open .acc-head-left .chev{transform:rotate(90deg)}.acc-body{padding:4px 16px 14px;font-size:var(--fs-13);color:var(--text-2);display:flex;flex-direction:column;gap:8px}.acc-empty{color:var(--text-3);font-size:11.5px}.acc-list{display:flex;flex-direction:column;gap:6px}.acc-log-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.acc-log-name{font-size:var(--fs-12);color:var(--text-3)}.artifact-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:8px;padding:6px 8px;background:var(--s2);border:1px solid var(--line);border-radius:6px;font-size:var(--fs-12)}.artifact-icon{width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:var(--s3, rgba(255, 255, 255, .06));border-radius:4px;font-size:12px;color:var(--text-2)}.artifact-name{color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.artifact-size{font-size:10.5px;color:var(--text-3)}.artifact-download{width:24px;height:24px}.override-btn{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:var(--fs-12)}.override-icon{opacity:.8}.bbox-list{display:flex;flex-direction:column}.bbox-row{display:grid;grid-template-columns:18px 12px 1fr auto;align-items:center;gap:8px;padding:5px 4px;font-size:var(--fs-12);color:var(--text);border-radius:4px}.bbox-row:hover{background:var(--s2)}.bbox-chev{color:var(--text-3)}.bbox-swatch{width:10px;height:10px;border-radius:2px}.bbox-name{color:var(--text)}.bbox-count{color:var(--text-3)}.bbox-totals{display:flex;justify-content:space-between;padding-top:8px;border-top:1px solid var(--line);margin-top:6px;font-size:11px;color:var(--text-3)}.bbox-totals strong{color:var(--text);margin-right:4px}.setting-row{display:flex;flex-direction:column;gap:4px;padding:2px 0}.setting-head{display:flex;justify-content:space-between;align-items:baseline;font-size:var(--fs-12)}.setting-name{color:var(--text-2);font-weight:500}.setting-default{font-size:10.5px;color:var(--text-3);font-family:var(--font-mono)}.setting-default:not(.is-default){color:var(--accent)}.setting-controls{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.setting-controls .slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;background:var(--s2);border-radius:2px;outline:none}.setting-controls .slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;background:var(--accent, #7c5cff);border-radius:50%;cursor:pointer}.setting-controls .slider::-moz-range-thumb{width:12px;height:12px;background:var(--accent, #7c5cff);border:0;border-radius:50%;cursor:pointer}.setting-value{font-size:var(--fs-12);color:var(--text);min-width:44px;text-align:right;font-variant-numeric:tabular-nums}.editor-palette{background:var(--s0);border-bottom:1px solid var(--line);display:flex;flex-direction:row;align-items:center;padding:4px 8px;gap:6px;min-width:0;overflow-x:auto;overflow-y:hidden}@media (pointer: coarse){.editor-palette{-webkit-overflow-scrolling:touch;scrollbar-width:none}.editor-palette::-webkit-scrollbar{display:none}.palette-entry{height:34px}}.palette-entry{position:relative;height:26px;flex:0 0 auto;min-width:0;border:1px solid transparent;border-radius:4px;cursor:pointer;font-family:inherit;color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:12px;padding:0 8px;text-shadow:0 1px 2px rgba(0,0,0,.4);transition:outline 80ms ease}.palette-entry[disabled]{opacity:.45;cursor:not-allowed}.palette-entry.active{outline:1.5px solid var(--accent-strong);outline-offset:1px}.palette-entry.active:before{content:"";position:absolute;left:-2px;top:-2px;right:-2px;bottom:-2px;border-radius:5px;pointer-events:none;box-shadow:0 0 0 1px var(--accent-strong) inset}.palette-entry .palette-name{font-weight:700;font-size:12px;letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:200px}.palette-entry .palette-key{font-size:10.5px;min-width:14px;height:15px;padding:0 3px;background:#0000008c;border:0;color:#fff;border-radius:3px;display:inline-flex;align-items:center;justify-content:center;font-weight:700;text-shadow:none;flex-shrink:0}.palette-marquee{background:var(--s1);color:var(--text-2);text-shadow:none;border-style:dashed}.canvas-surface{position:relative;overflow:hidden;background:linear-gradient(45deg,var(--s1) 25%,transparent 25%) 0 0,linear-gradient(-45deg,var(--s1) 25%,transparent 25%) 0 0,linear-gradient(45deg,transparent 75%,var(--s1) 75%) 8px 8px,linear-gradient(-45deg,transparent 75%,var(--s1) 75%) 8px 8px;background-size:16px 16px;background-color:var(--bg);-webkit-user-select:none;user-select:none}.canvas-stage{position:absolute;top:0;left:0;transform-origin:0 0;will-change:transform}.canvas-overlay{display:block}.canvas-text-hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:3}.canvas-text-hud-corner{position:absolute;max-width:min(52%,640px);display:flex;flex-direction:column;gap:2px;pointer-events:auto;-webkit-user-select:text;user-select:text}.canvas-text-hud-corner[data-corner=top-left]{top:10px;left:10px}.canvas-text-hud-corner[data-corner=top-right]{top:44px;right:10px;align-items:flex-end;text-align:right}.canvas-text-hud-corner[data-corner=bottom-left]{bottom:10px;left:10px}.canvas-text-hud-corner[data-corner=bottom-right]{bottom:10px;right:10px;align-items:flex-end;text-align:right}.canvas-text-hud-line{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.canvas-text-hud-line[data-plate="1"]{background:#0f1116d1;border-radius:4px;padding:1px 6px}.text-view-settings{background:var(--s0);border:1px solid var(--line-2);border-radius:8px;box-shadow:0 12px 40px #00000080;overflow:hidden}.tvs-body{display:flex;flex-direction:column;height:100%}.tvs-drag-handle{display:flex;align-items:center;gap:8px;padding:6px 8px 6px 12px;background:var(--s1);border-bottom:1px solid var(--line);cursor:move;font-size:var(--fs-13);color:var(--text);flex:none}.tvs-scroll{flex:1;min-height:0;overflow-y:auto;padding:10px 12px 14px}.tvs-note{margin:0 0 10px;font-size:var(--fs-11);line-height:1.45;color:var(--text-3)}.tvs-global{padding-bottom:8px;margin-bottom:10px;border-bottom:1px solid var(--line)}.tvs-global .tvs-field{margin-bottom:2px;color:var(--text)}.tvs-global-foot{display:flex;align-items:center;gap:8px;font-size:var(--fs-11);color:var(--text-3)}.tvs-global-foot>button{margin-left:auto;flex:none}.tvs-lock-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:10px;margin-bottom:6px;border-bottom:1px solid var(--line);font-size:var(--fs-12);color:var(--text-2)}.tvs-role{border-bottom:1px solid var(--line)}.tvs-role-head{display:flex;align-items:center;gap:8px;width:100%;padding:7px 2px;background:none;border:0;cursor:pointer;color:var(--text-2);text-align:left}.tvs-role-head:hover{color:var(--text)}.tvs-role-sample{flex:1;min-width:0;line-height:1.2}.tvs-role-size{font-size:var(--fs-11);color:var(--text-3);font-variant-numeric:tabular-nums}.tvs-role-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none}.tvs-role-body{padding:2px 2px 10px 20px}.tvs-role-help{margin:0 0 8px;font-size:var(--fs-11);color:var(--text-3)}.tvs-field{display:grid;grid-template-columns:76px 1fr auto;align-items:center;gap:8px;margin-bottom:6px;font-size:var(--fs-12);color:var(--text-2)}.tvs-field>output{font-size:var(--fs-11);color:var(--text-3);font-variant-numeric:tabular-nums;min-width:42px;text-align:right}.tvs-field input[type=range]{width:100%}.tvs-field input[type=color]{width:32px;height:22px;padding:0;border:1px solid var(--line-2);border-radius:4px;background:none}.tvs-field input[type=color]:disabled{opacity:.35}.tvs-checks{display:flex;align-items:center;gap:14px;margin-top:8px;font-size:var(--fs-12);color:var(--text-2)}.tvs-checks>button{margin-left:auto}.tvs-reset-all{margin-top:12px;width:100%;justify-content:center}.canvas-surface-wrap{position:relative;grid-row:2;grid-column:1;overflow:hidden}.editor-shell[data-queue="1"]>.canvas-surface-wrap{grid-row:3}.canvas-surface-wrap>.canvas-surface{position:absolute;top:0;right:0;bottom:0;left:0}.canvas-loading,.mask-loading-overlay{position:absolute;top:12px;right:12px;padding:6px 10px;border-radius:6px;background:var(--s0);border:1px solid var(--line);color:var(--text-2);font-size:var(--fs-12);display:flex;align-items:center}.mask-toolbar{position:absolute;top:12px;left:12px;display:flex;flex-direction:column;gap:4px;padding:6px;background:var(--s0);border:1px solid var(--line);border-radius:8px;box-shadow:0 4px 16px #00000040;z-index:2;color:var(--text-2)}.mask-toolbar-fixed,.mask-toolbar-scroll{display:flex;flex-direction:column;gap:4px;min-height:0}.mask-toolbar-handle{display:none}.mask-tool{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text-2);cursor:pointer;padding:0}.mask-tool:hover:not(:disabled){background:var(--s1)}.mask-tool.active{background:var(--s2);border-color:var(--line-2);color:var(--text-1)}.mask-tool:disabled{opacity:.4;cursor:not-allowed}.mask-tool-divider{height:1px;margin:4px 6px;background:var(--line-1);align-self:stretch}.mask-tool-linkbtn{background:none;border:none;padding:0;color:var(--accent-1);cursor:pointer;font:inherit}.mask-tool-linkbtn:hover:not(:disabled){text-decoration:underline}.mask-tool-linkbtn:disabled{opacity:.4;cursor:not-allowed}.mask-top-toolbar{position:absolute;top:12px;left:64px;display:flex;flex-direction:row;align-items:center;gap:14px;padding:6px 10px;background:var(--s0);border:1px solid var(--line);border-radius:8px;box-shadow:0 4px 16px #00000040;z-index:2;color:var(--text-2);min-height:30px;max-width:calc(100% - 88px);flex-wrap:wrap}.mask-tool-field{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:var(--fs-12)}.mask-tool-field-label{color:var(--text-3);font-size:var(--fs-12);-webkit-user-select:none;user-select:none}.mask-tool-field input[type=range]{width:130px}.mask-tool-field-num{width:48px;background:var(--s1);color:var(--text-1);border:1px solid var(--line);border-radius:4px;padding:2px 4px;font-size:var(--fs-12);text-align:right}.mask-tool-field-select{background:var(--s1);color:var(--text-1);border:1px solid var(--line);border-radius:4px;padding:2px 6px;font-size:var(--fs-12)}.mask-tool-check{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-12);color:var(--text-2);-webkit-user-select:none;user-select:none;cursor:pointer}.mask-tool-hint{color:var(--text-3);font-size:var(--fs-12)}.mask-wand-hud{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:5;padding:5px 12px;border-radius:999px;background:#181b23f0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--line-2);box-shadow:0 4px 16px #0006;color:var(--text-1);font-family:var(--font-mono);font-size:var(--fs-12);font-variant-numeric:tabular-nums;pointer-events:none;white-space:nowrap}@media (max-width: 820px),(pointer: coarse){.mask-toolbar{top:auto;bottom:10px;left:8px;right:8px;flex-direction:row;align-items:center;gap:6px;padding:5px;background:#181b23f2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-color:var(--line-2)}.mask-toolbar-fixed,.mask-toolbar-scroll{flex-direction:row;align-items:center;gap:6px}.mask-toolbar-scroll{flex:1;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch}.mask-toolbar-scroll::-webkit-scrollbar{display:none}.mask-toolbar-handle{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:38px;height:38px;padding:0;border:1px solid var(--line-2);border-radius:8px;background:var(--s1);color:var(--text-2);cursor:pointer}.mask-toolbar-handle:active{background:var(--s2)}.mask-toolbar[data-collapsed="1"] .mask-toolbar-handle svg{transform:rotate(180deg)}.mask-toolbar[data-collapsed="1"]{right:auto;padding:4px;background:#181b23d1}.mask-toolbar[data-collapsed="1"] .mask-toolbar-fixed,.mask-toolbar[data-collapsed="1"] .mask-toolbar-scroll{display:none}.mask-tool{width:38px;height:38px;flex-shrink:0}.mask-tool-divider{width:1px;height:24px;margin:0 1px;align-self:center;flex-shrink:0}.mask-top-toolbar{top:auto;bottom:66px;left:8px;right:8px;max-width:none;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;background:#181b23f2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-color:var(--line-2)}.mask-top-toolbar::-webkit-scrollbar{display:none}.mask-tool-field,.mask-tool-check,.mask-tool-hint{flex-shrink:0}.mask-tool-field input[type=range]{width:120px;height:32px}.mask-tool-field-num,.mask-tool-field-select{min-height:32px}.mask-tool-check input[type=checkbox]{width:20px;height:20px}}.mask-layer{position:absolute;top:0;left:0;display:block}.mask-layer-bg{z-index:0}.mask-layer-mask{z-index:1}.mask-layer-preview{z-index:2;pointer-events:none}.mask-layer-selection{z-index:3;pointer-events:none}.mask-layer-barrier{z-index:4;pointer-events:none}.segmented{border:1px solid var(--line);border-radius:6px;background:var(--s1);overflow:hidden}.segmented-btn{flex:1;padding:6px 8px;background:transparent;color:var(--text-2);border:0;border-right:1px solid var(--line);font-size:var(--fs-12);cursor:pointer;font-family:inherit}.segmented-btn:last-child{border-right:0}.segmented-btn:hover:not(:disabled){background:var(--s2)}.segmented-btn.active{background:var(--accent, #7c5cff);color:var(--on-accent, #fff)}.segmented-btn:disabled{opacity:.5;cursor:not-allowed}.mask-brush-cursor{position:absolute;top:0;left:0;border:1.5px solid rgba(255,255,255,.9);border-radius:50%;box-shadow:0 0 0 1px #0009;pointer-events:none;mix-blend-mode:difference;z-index:3;will-change:transform;display:none}.mask-brush-cursor.erase{border-style:dashed}.segment-decision-canvas{display:flex;flex-direction:column;height:100%;min-height:320px;background:var(--bg)}.segment-decision-canvas.state-block{height:100%;justify-content:center}.segment-decision-canvas>.canvas-surface-wrap{flex:1;min-height:0}.segment-decision-which{color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:40%}.segment-decision-which-of{color:var(--text-3)}.segment-decision-touched{display:inline-flex;align-items:center;gap:5px;color:var(--amber);white-space:nowrap}.segment-decision-touched-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-1)}.segment-mask-gap{position:absolute;top:0;right:0;bottom:0;left:0;justify-content:center}.segment-decision-classpicker{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;border-top:1px solid var(--line);background:var(--s0)}.segment-raster-picker{position:absolute;right:12px;bottom:12px;z-index:2;background:var(--s0);box-shadow:0 4px 16px #00000040}.segment-decision-footer{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--s0);border-top:1px solid var(--line);font-size:var(--fs-12)}.segment-decision-error{color:var(--red);font-size:var(--fs-12)}.box-list{grid-row:1 / span 2;display:flex;flex-direction:column;background:var(--s0);border-left:1px solid var(--line);overflow:hidden}.box-list-head{display:flex;align-items:center;gap:8px;padding:4px 6px 4px 14px;border-bottom:1px solid var(--line);background:var(--s1)}.box-list-head-title{flex:1;font-size:var(--fs-12);font-weight:500;color:var(--text-2)}.box-list.collapsed{width:38px;min-width:38px;align-items:center;padding-top:6px;background:var(--s1)}.panel-rail-toggle{display:flex;flex-direction:column;align-items:center;gap:2px;width:30px;padding:5px 0;background:transparent;border:0;border-radius:8px;color:var(--text-2);cursor:pointer;font-size:14px;line-height:1}.panel-rail-toggle:hover{background:var(--s2);color:var(--text)}.panel-rail-toggle-count{font-size:10px;color:var(--text-3)}.editor-shell:has(>.box-list.collapsed),.run-debug-overlay:has(>.box-list.collapsed){grid-template-columns:1fr auto}@media (pointer: coarse){.box-list.collapsed{width:46px;min-width:46px}.panel-rail-toggle{width:38px;padding:9px 0}}.lock-indicator{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line);font-size:var(--fs-12);color:var(--text-2)}.lock-indicator .dot{width:8px;height:8px;border-radius:50%;background:var(--green)}.lock-indicator.warn .dot{background:var(--amber)}.lock-indicator.err .dot{background:var(--red)}.save-pill{display:flex;align-items:center;gap:6px;padding:6px 14px;font-size:var(--fs-12);color:var(--text-3);border-bottom:1px solid var(--line)}.save-pill.dirty{color:var(--amber)}.save-pill.saving{color:var(--text-2)}.save-pill .dot{width:7px;height:7px;border-radius:50%;background:var(--amber)}.box-list-scroll{flex:1;overflow-y:auto;padding:6px 0}.box-group{border-bottom:1px solid var(--line);padding:6px 0}.box-group-head{display:flex;align-items:center;padding:4px 14px;font-size:var(--fs-12);color:var(--text-2);font-weight:500}.box-row{display:flex;align-items:center;gap:6px;padding:4px 14px;cursor:pointer;font-size:11px;color:var(--text-3)}.box-row:hover{background:var(--s1);color:var(--text-2)}.box-row.selected{background:#7c5cff21;color:var(--text)}.box-row.hidden{opacity:.45;cursor:default}.box-row.hidden .box-coords{text-decoration:line-through}.box-row .box-coords{font-family:var(--font-mono);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.box-row .box-text{color:var(--text-1);max-width:55%;display:inline-block;vertical-align:bottom;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.box-row .box-text:after{content:" · ";color:var(--text-3)}.numeric-editor{border-top:1px solid var(--line);padding:12px 14px;background:var(--s1)}.numeric-editor .ne-multi-head{margin-bottom:8px;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--gold, var(--text-2))}.numeric-editor .ne-row{margin-bottom:8px}.numeric-editor .ne-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.numeric-editor .ne-field{display:flex;flex-direction:column;gap:3px;font-size:10.5px;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em}.numeric-editor .ne-field .input{height:26px;padding:0 6px;font-size:12px}.editor-footer{grid-column:2 / span 1;grid-row:2 / span 1;display:flex;align-items:center;gap:8px;padding:0 14px;background:var(--s0);border-top:1px solid var(--line);font-size:var(--fs-12)}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:200px;padding:32px;background:var(--s0);border:2px dashed var(--line-2);border-radius:12px;cursor:pointer;color:var(--text-2);font-family:inherit;transition:border-color .12s ease,background .12s ease}.dropzone:hover{border-color:var(--accent-strong);background:var(--s1)}.dropzone.over{border-color:var(--accent-strong);background:#7c5cff14}.upload-bar{width:140px;height:6px;background:var(--s2);border-radius:3px;overflow:hidden;flex-shrink:0}.upload-bar-fill{height:100%;background:var(--accent-strong);transition:width .1s linear}.upload-bar-fill[data-state=done]{background:var(--green)}.upload-bar-fill[data-state=error],.upload-bar-fill[data-state=duplicate]{background:var(--red)}.image-table{width:100%;border-collapse:collapse;font-size:var(--fs-13)}.image-table th{text-align:left;font-weight:500;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);padding:8px 12px;border-bottom:1px solid var(--line);background:var(--s0)}.image-table td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.image-table tr:last-child td{border-bottom:0}.image-row:hover{background:var(--s1)}.filename-link{background:none;border:0;color:var(--text);font-family:var(--font-mono);font-size:var(--fs-13);cursor:pointer;text-align:left;padding:0;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.filename-link:hover{color:var(--accent);text-decoration:underline}.color-swatch-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.color-swatch{width:28px;height:28px;border-radius:6px;border:1px solid var(--line-2);cursor:pointer;padding:0;position:relative}.color-swatch:hover{transform:scale(1.05)}.color-swatch.selected{outline:2px solid var(--accent-strong);outline-offset:2px}.member-table{width:100%;border-collapse:collapse;font-size:var(--fs-13)}.member-table th{text-align:left;font-weight:500;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);padding:10px 14px;border-bottom:1px solid var(--line);background:var(--s0)}.member-table td{padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.member-table tr:last-child td{border-bottom:0}.canvas-hud{position:absolute;top:8px;right:8px;display:flex;align-items:center;gap:12px;max-width:calc(100% - 16px);padding:6px 10px;background:#0f1116c7;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--line);border-radius:6px;font-size:var(--fs-12);color:var(--text);pointer-events:auto}.canvas-hud input{margin:0 4px 0 0;vertical-align:-1px}.canvas-hud-toggle{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;padding:2px 6px;background:transparent;border:1px solid var(--line-2);border-radius:5px;color:var(--text-2);font-family:inherit;font-size:var(--fs-12);cursor:pointer}.canvas-hud[data-open] .canvas-hud-toggle{color:var(--text);border-color:var(--accent-strong)}.canvas-hud-dot{width:6px;height:6px;border-radius:999px;background:var(--accent, #7c5cff)}@media (pointer: coarse){.canvas-hud{gap:10px;padding:4px 8px}.canvas-hud-toggle{min-height:32px;padding:2px 10px}.canvas-hud[data-open]{flex-wrap:wrap;justify-content:flex-end}}.box-context-menu{position:fixed;min-width:180px;padding:4px;background:var(--s1);border:1px solid var(--line-2);border-radius:8px;box-shadow:0 6px 24px #0006;z-index:1000;font-family:var(--font-sans)}.box-context-menu-row{display:flex;align-items:center;gap:8px;width:100%;padding:6px 10px;background:transparent;border:none;border-radius:4px;color:var(--text);font-family:inherit;font-size:13px;text-align:left;cursor:pointer}.box-context-menu-row:hover,.box-context-menu-row:focus-visible{background:var(--s2)}.box-context-menu-row.danger{color:var(--red)}.box-context-menu-sep{height:1px;margin:4px 6px;background:var(--line)}@media (pointer: coarse){.box-context-menu{min-width:208px}.box-context-menu-row{min-height:var(--touch-target);font-size:var(--fs-14)}}.state-block{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px 24px;gap:12px}.state-block .state-icon{color:var(--text-3)}.state-block.error .state-icon{color:var(--red)}.state-block .state-title{font-size:var(--fs-16);font-weight:500;color:var(--text)}.state-block .state-sub{font-size:var(--fs-13);color:var(--text-3);max-width:420px}.popover-anchor{position:relative;display:inline-block}.popover{position:absolute;top:calc(100% + 4px);z-index:30;min-width:220px;max-height:360px;overflow:auto;background:var(--s1);border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:0 8px 28px #00000073;padding:8px;font-size:var(--fs-13)}.popover[data-align=left]{left:0}.popover[data-align=right]{right:0}.popover[data-placement=top]{top:auto;bottom:calc(100% + 4px)}.popover .popover-section{padding:6px 4px}.popover .popover-section+.popover-section{border-top:1px solid var(--line)}.popover .popover-head{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);padding:2px 4px 6px}.popover .popover-row{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:4px;cursor:pointer;-webkit-user-select:none;user-select:none}.popover .popover-row:hover{background:var(--s2)}.popover .popover-row input{margin:0}.popover .popover-actions{display:flex;justify-content:flex-end;gap:6px;padding-top:6px}.chip.has-caret{padding-right:8px}.chip .caret{width:10px;height:10px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-left:4px;display:inline-block;position:relative;top:-2px}.chip .chip-count{background:var(--accent-strong);color:#fff;border-radius:999px;padding:1px 6px;font-size:10px;margin-left:2px}.image-row.selected{background:#7c5cff1a}.image-row.selected:hover{background:#7c5cff24}.image-table td.col-check,.image-table th.col-check{width:36px;padding-right:0}.queue-banner{display:flex;align-items:center;gap:12px;padding:8px 14px;background:#7c5cff1a;border-bottom:1px solid rgba(124,92,255,.25);font-size:var(--fs-13);color:var(--text)}.queue-banner-progress{flex:1;height:4px;background:var(--s2);border-radius:2px;overflow:hidden;min-width:80px}.queue-banner-progress-fill{height:100%;background:var(--accent-strong);transition:width .2s ease}.col-preview{width:132px;padding:4px 8px}.image-thumb{display:block;width:120px;height:72px;object-fit:contain;background:var(--s2);border-radius:4px;border:1px solid var(--line)}.image-thumb-placeholder{background:var(--s2)}.tag-cell{background:none;border:1px dashed transparent;cursor:pointer;display:inline-flex;flex-wrap:wrap;gap:4px;padding:2px 4px;border-radius:4px;text-align:left;min-width:60px;max-width:240px}.tag-cell:hover:not(:disabled){border-color:var(--line-2);background:var(--s1)}.tag-cell:disabled{cursor:default;opacity:.85}.bulk-action-bar{position:sticky;bottom:0;display:flex;align-items:center;gap:12px;padding:10px 16px;margin-top:12px;background:var(--s3);border:1px solid var(--line-2);border-radius:var(--radius);z-index:5;animation:bulk-slide-up .2s ease}.bulk-action-bar .spacer{flex:1}@keyframes bulk-slide-up{0%{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--thumb-size, 200px),1fr));gap:12px}.image-card{position:relative;display:flex;flex-direction:column;background:var(--s1);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:border-color .12s ease,background .12s ease}.image-card:hover{border-color:var(--line-2);background:var(--s2)}.image-card.selected{border-color:var(--accent-strong);background:#7c5cff0d}.image-card .image-card-thumb{width:100%;aspect-ratio:4 / 3;background:var(--s2);object-fit:contain;display:block}.image-card.no-overlay .image-card-body{display:none}.image-card-thumb-wrap{display:block;cursor:pointer;position:relative;color:inherit;text-decoration:none}.image-card-boxes{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.image-card-mask{position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;max-width:100%;max-height:100%;background-color:#7c5cff73;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-mode:luminance;mask-mode:luminance;pointer-events:none}.image-card .image-card-body{cursor:pointer}.image-card .image-card-thumb.placeholder{display:flex;align-items:center;justify-content:center;color:var(--text-3);font-size:var(--fs-12)}.image-card-check{position:absolute;top:8px;left:8px;width:22px;height:22px;background:#14141ca6;border-radius:4px;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .1s ease}.image-card:hover .image-card-check,.image-card.selected .image-card-check{opacity:1}.image-card-check input{margin:0;cursor:pointer}.image-card-body{padding:8px 10px;display:flex;flex-direction:column;gap:4px;min-width:0}.image-card-row{display:flex;align-items:center;gap:6px;min-width:0}.image-card-name{flex:1;font-size:var(--fs-12);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--font-mono)}.image-card-tags{display:flex;flex-wrap:wrap;gap:3px;max-height:22px;overflow:hidden}.thumb-size{display:inline-flex;align-items:center;gap:6px;color:var(--text-3)}.thumb-size input[type=range]{width:140px;accent-color:var(--accent)}.guide-panel{background:var(--s0);border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:0 12px 32px #00000080;display:flex;flex-direction:column;overflow:hidden;color:var(--text)}.guide-panel-drag-handle{background:var(--s2);border-bottom:1px solid var(--line);color:var(--text-2);cursor:move;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:8px;padding:6px 8px;flex-wrap:wrap}.guide-scroll-container{background:var(--s0);color:var(--text);outline:none;width:100%;height:100%;overflow:auto}.guide-scroll-container:focus{outline:none}.guide-zoom-wrapper{transform-origin:0 0}.guide-content{padding:16px 24px;max-width:800px;color:var(--text);font-size:var(--fs-13);line-height:1.55}.guide-content h1,.guide-content h2,.guide-content h3,.guide-content h4{color:var(--text);margin:1.2em 0 .4em;line-height:1.25}.guide-content h1{font-size:var(--fs-22)}.guide-content h2{font-size:var(--fs-18);border-bottom:1px solid var(--line);padding-bottom:4px}.guide-content h3{font-size:var(--fs-16)}.guide-content p{margin:.6em 0;color:var(--text-2)}.guide-content a{color:var(--accent)}.guide-content a:hover{color:var(--accent-strong)}.guide-content ul,.guide-content ol{padding-left:1.4em;color:var(--text-2)}.guide-content li{margin:.2em 0}.guide-content code{font-family:var(--font-mono);font-size:.9em;background:var(--s2);color:var(--text);padding:1px 5px;border-radius:4px;border:1px solid var(--line)}.guide-content pre{background:var(--s1);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px;overflow:auto}.guide-content pre code{background:transparent;border:none;padding:0;color:var(--text)}.guide-content blockquote{border-left:3px solid var(--accent);margin:.8em 0;padding:4px 12px;color:var(--text-2);background:var(--s1)}.guide-content table{border-collapse:collapse;margin:.8em 0}.guide-content th,.guide-content td{border:1px solid var(--line);padding:6px 10px;color:var(--text-2)}.guide-content th{background:var(--s2);color:var(--text)}.guide-content hr{border:none;border-top:1px solid var(--line);margin:1.4em 0}.guide-content img{max-width:100%;height:auto;border-radius:var(--radius-sm)}.guide-missing-image{display:inline-block;padding:4px 8px;border:1px dashed var(--red);color:var(--red);font-size:var(--fs-12);font-family:var(--font-mono);border-radius:4px}.guide-editor-textarea{width:100%;height:100%;font-family:var(--font-mono);font-size:var(--fs-13);line-height:1.55;padding:12px;background:var(--s0);color:var(--text);border:1px solid var(--line);border-radius:var(--radius-sm);resize:none;caret-color:var(--accent)}.guide-editor-textarea:focus{outline:none;border-color:var(--accent)}.guide-editor-pane{background:var(--s0);border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.guide-images-drawer{background:var(--s1);border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px;overflow:auto;color:var(--text-2)}.guide-image-row{display:flex;gap:8px;padding:6px;border-bottom:1px solid var(--line);align-items:center}.guide-image-row:last-child{border-bottom:none}.guide-image-row .thumb{width:48px;height:48px;object-fit:cover;border-radius:3px;background:var(--s2);border:1px solid var(--line)}.guide-image-row .placeholder{width:48px;height:48px;background:var(--s2);border:1px solid var(--line);border-radius:3px}.guide-card{display:block;padding:12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--s1);text-decoration:none;color:var(--text);transition:background .12s,border-color .12s}.guide-card:hover{background:var(--s2);border-color:var(--line-2);color:var(--text)}.guide-card .meta{margin-top:8px;font-size:var(--fs-12);color:var(--text-3)}:root{--touch-target: 44px}@media (max-width: 720px){.def-detail-shell .rdh2-row,.run-detail-shell .rdh2-row{flex-wrap:wrap;overflow:visible;gap:8px;padding:6px 10px}.def-detail-shell .rdh2-row .rdh2-mi:not([role=alert]),.run-detail-shell .rdh2-row .rdh2-mi:not([role=alert]){display:none}.def-detail-shell .rdh2-row .spacer,.run-detail-shell .rdh2-row .spacer{flex-basis:100%;height:0}.def-detail-shell .rdh2-row+.rdh2-row,.run-detail-shell .rdh2-row+.rdh2-row{display:none}.def-detail-shell .rdh2-id,.run-detail-shell .rdh2-id{min-width:0;overflow:hidden;text-overflow:ellipsis;max-width:60vw}}@media (max-width: 820px){.def-stage-shell{grid-template-columns:minmax(0,1fr)!important}.def-stage-shell>.side-panel,.run-stage-shell>.side-panel{display:none!important}.run-stage-shell{grid-template-columns:minmax(0,1fr)!important}.def-stage-shell>*,.run-stage-shell>*{min-width:0}}.bottom-sheet{position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--s0);border-top:1px solid var(--line);border-top-left-radius:14px;border-top-right-radius:14px;box-shadow:0 -8px 24px #0006;display:flex;flex-direction:column;min-height:0;padding-bottom:env(safe-area-inset-bottom,0)}.bottom-sheet-handle{flex:0 0 auto;height:22px;display:flex;align-items:center;justify-content:center;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.bottom-sheet-handle:active{cursor:grabbing}.bottom-sheet-grip{width:44px;height:4px;border-radius:999px;background:var(--line-2)}.bottom-sheet-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}@media (pointer: coarse){.def-detail-shell .rdh2 .iconbtn,.run-detail-shell .rdh2 .iconbtn{width:var(--touch-target);height:var(--touch-target);border-radius:10px}.def-detail-shell .rdh2 .btn.sm,.run-detail-shell .rdh2 .btn.sm{height:36px;padding:0 12px;font-size:var(--fs-13)}.def-detail-shell .rdh2 .btn,.run-detail-shell .rdh2 .btn{min-height:36px}.def-detail-shell .rdh2-link,.run-detail-shell .rdh2-link{padding:10px 6px}}.topbar-menu-btn{display:none}.rdh2-actions-wrap,.rdh2-actions{display:contents}.rdh2-kebab,.nav-scrim{display:none}@media (max-width: 820px){.app,.app.nav-collapsed{grid-template-columns:1fr;grid-template-areas:"top" "main"}.nav{position:fixed;top:0;left:0;bottom:0;width:min(82vw,280px);z-index:60;transform:translate(-100%);transition:transform .22s ease;will-change:transform}.app.nav-open .nav{transform:translate(0);box-shadow:0 12px 40px #00000080}.nav-collapse-item{display:none}.topbar-menu-btn{display:inline-flex}.nav-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;border:0;background:#00000080;opacity:0;pointer-events:none;transition:opacity .22s ease}.app.nav-open .nav-scrim{opacity:1;pointer-events:auto}.run-detail-shell .rdh2 .status .status-label{display:none}.run-detail-shell .rdh2 .status{padding:5px;gap:0}.run-detail-shell .rdh2-row{overflow:visible}.run-detail-shell .rdh2-row .spacer{flex:1;height:auto}.run-detail-shell .rdh2-actions-wrap{display:inline-flex;position:relative;flex:0 0 auto}.run-detail-shell .rdh2-kebab{display:inline-flex}.run-detail-shell .rdh2-actions{display:none;position:absolute;top:calc(100% + 6px);right:0;z-index:30;min-width:220px;max-height:70vh;overflow-y:auto;flex-direction:column;align-items:stretch;gap:4px;padding:6px;background:var(--s0);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px #00000073}.run-detail-shell .rdh2-actions[data-open]{display:flex}.run-detail-shell .rdh2-actions>.btn{width:100%;justify-content:flex-start}}.perf-timeline{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--bg)}.perf-timeline-bar{display:flex;align-items:center;gap:10px;padding:6px 10px;border-bottom:1px solid var(--line);background:var(--s1);flex:0 0 auto}.perf-timeline-title{font-size:12px;font-weight:600;color:var(--text)}.perf-timeline-detail{font-size:11px;color:var(--text-3);font-family:ui-monospace,monospace}.perf-timeline-note{padding:8px 12px;font-size:12px;color:var(--text-3);border-bottom:1px solid var(--line);flex:0 0 auto}.perf-timeline-canvas-wrap{position:relative;flex:1 1 auto;min-height:0;overflow:hidden}.perf-legend{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:10px;color:var(--text-2);max-width:60%;justify-content:flex-end}.perf-legend-item{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.perf-legend-swatch{width:9px;height:9px;border-radius:2px;display:inline-block}.perf-tooltip{position:absolute;z-index:20;pointer-events:none;background:var(--s4);border:1px solid var(--line-2);border-radius:6px;padding:6px 8px;font-size:11px;color:var(--text);max-width:280px;box-shadow:0 4px 16px #0006}.perf-tooltip-name{font-weight:600;margin-bottom:2px}.perf-tooltip-row{display:flex;justify-content:space-between;gap:12px;color:var(--text-2);font-family:ui-monospace,monospace}.perf-tooltip-meta{color:var(--text-3);font-size:10px;margin-top:2px}.perf-tooltip-attrs{margin-top:4px;padding-top:4px;border-top:1px solid var(--line);color:var(--text-2);font-family:ui-monospace,monospace;font-size:10px}.link-editor-hint{grid-column:1 / -1;padding:6px 12px;font-size:var(--fs-12);color:var(--text-3);background:var(--s1);border-bottom:1px solid var(--line-2)}.link-editor-panel{display:flex;flex-direction:column;min-height:0;border-left:1px solid var(--line);background:var(--s1)}.link-editor-panel>.ne-row{padding:12px 14px;border-bottom:1px solid var(--line-2)}.link-editor-panel>.box-list{flex:1;min-height:0;border-left:none}.roof-notes-canvas{display:flex;flex-direction:column;height:100%;min-height:320px;background:var(--bg)}.roof-notes-canvas.state-block{height:100%;justify-content:center}.roof-notes-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-bottom:1px solid var(--line-2);flex-wrap:wrap}.roof-notes-status{font-size:13px;color:var(--text-2)}.roof-notes-incomplete{margin-left:6px;padding:1px 7px;border:1px solid var(--red);border-radius:999px;background:var(--red-bg);color:var(--red);font:inherit;font-size:12px;cursor:pointer}.roof-notes-actions{display:flex;align-items:center;gap:8px}.roof-notes-dirty-chip{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--amber-bg);color:var(--amber)}.roof-notes-banner{margin:0;padding:6px 12px;font-size:12px}.roof-notes-banner.error{background:var(--red-bg);color:var(--red)}.roof-notes-banner.warn{background:var(--amber-bg);color:var(--amber)}.roof-notes-body{display:flex;flex:1;min-height:0}.roof-notes-pane{position:relative;flex:1;min-width:0;overflow:hidden}.roof-notes-pane{flex:1;min-width:0;touch-action:none}.roof-notes-sheet{display:block;max-width:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.roof-notes-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.roof-notes-pane.tool-slope,.roof-notes-pane.tool-plate{cursor:crosshair}.roof-notes-pane.panning,.roof-notes-pane.panning *{cursor:grabbing!important}.roof-notes-tools{position:absolute;top:10px;left:10px;z-index:2;display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px;border-radius:8px;background:color-mix(in srgb,var(--s2) 88%,transparent);border:1px solid var(--line-2);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.roof-notes-tools .palette-entry{background:var(--s3);color:var(--text-2);text-shadow:none}.roof-notes-tools .palette-entry:hover{color:var(--text)}.roof-notes-tools .palette-entry.active{background:var(--accent-strong);color:var(--accent-on)}.roof-notes-tools .palette-entry.active .palette-key{background:#00000059}.roof-notes-tool-hint{font-size:11px;color:var(--text-3);padding-left:4px}.roof-notes-touchbar{position:absolute;left:8px;right:8px;bottom:10px;z-index:3;display:flex;align-items:center;gap:6px;padding:5px;border-radius:10px;border:1px solid var(--line-2);background:#181b23f2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 6px 20px #00000073;overflow-x:auto;scrollbar-width:none}.roof-notes-touchbar::-webkit-scrollbar{display:none}.roof-notes-touchbar-group{display:flex;align-items:center;gap:4px;flex:0 0 auto;padding-right:6px;border-right:1px solid var(--line)}.roof-notes-touchbar-group.end{margin-left:auto;border-right:none;padding-right:0}.roof-notes-touchbtn{min-width:var(--touch-target);min-height:var(--touch-target);display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text-2);font-size:13px;cursor:pointer}.roof-notes-touchbtn.wide{padding:0 12px}.roof-notes-touchbtn.active{background:var(--accent-strong);color:var(--accent-on)}.roof-notes-touchbtn.danger{color:var(--red)}.roof-notes-touchbtn:disabled{opacity:.35;cursor:default}.roof-note-shaft,.roof-note-head,.roof-note-dot,.roof-note-wedge,.roof-note-plate-box,.roof-note text{pointer-events:none}.roof-note-shaft,.roof-note-head,.roof-note-dot{stroke:var(--green);fill:var(--green);vector-effect:non-scaling-stroke}.roof-note-arrow.incomplete .roof-note-shaft,.roof-note-arrow.incomplete .roof-note-head,.roof-note-arrow.incomplete .roof-note-dot{stroke:var(--red);fill:var(--red)}.roof-note-arrow text{fill:var(--green)}.roof-note-arrow.incomplete text{fill:var(--red)}.roof-note-arrow.selected .roof-note-shaft,.roof-note-arrow.selected .roof-note-head{filter:drop-shadow(0 0 3px currentColor)}.roof-note-wedge{fill:color-mix(in srgb,var(--green) 22%,transparent);stroke:var(--green);vector-effect:non-scaling-stroke;stroke-linejoin:round}.roof-note-wedge.as-required{fill:none;stroke-dasharray:4 3}.roof-note-arrow.incomplete .roof-note-wedge{stroke:var(--red);fill:none}.roof-note text{-webkit-user-select:none;user-select:none}.roof-note text.haloed{paint-order:stroke;stroke:#000000d9;stroke-width:3;stroke-linejoin:round;vector-effect:non-scaling-stroke}.roof-note-body{stroke:transparent;fill:transparent;vector-effect:non-scaling-stroke;cursor:move}.roof-note-knob{fill:var(--s0);stroke:var(--accent);stroke-width:1.5;vector-effect:non-scaling-stroke;pointer-events:none}.roof-note-knob[data-primary="1"]{fill:var(--accent)}.roof-note-knob-hit{fill:transparent;cursor:grab}.roof-note-knob-hit:active{cursor:grabbing}.roof-note-draft line{stroke:var(--accent);stroke-dasharray:6 4;vector-effect:non-scaling-stroke}.roof-note-draft circle{fill:var(--accent)}.roof-note-marquee{fill:color-mix(in srgb,var(--accent-strong) 12%,transparent);stroke:var(--accent);stroke-dasharray:4 3;vector-effect:non-scaling-stroke;pointer-events:none}.roof-note-plate-box{fill:color-mix(in srgb,var(--teal-strong) 16%,transparent);stroke:var(--teal-strong);vector-effect:non-scaling-stroke}.roof-note-plate.incomplete .roof-note-plate-box{stroke:var(--red);fill:var(--red-bg)}.roof-note-plate text{fill:var(--teal-strong)}.roof-note-plate.incomplete text{fill:var(--red)}.roof-note-plate.selected .roof-note-plate-box{filter:drop-shadow(0 0 3px currentColor)}.roof-note-list{width:260px;flex:0 0 260px;border-left:1px solid var(--line-2);overflow-y:auto;padding:10px;background:var(--s0)}.roof-note-list-head{display:flex;align-items:center;gap:8px;padding:0 0 8px;border-bottom:1px solid var(--line);margin-bottom:4px}.roof-note-list-head-title{font-size:12px;font-weight:600;color:var(--text-2);flex:1}.roof-note-list h4{margin:8px 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3)}.roof-note-list ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.roof-note-list li{display:flex;align-items:center;border-radius:6px;border:1px solid var(--line);background:var(--s1)}.roof-note-list li.selected{border-color:var(--accent-strong)}.roof-note-list li.incomplete{border-color:var(--red)}.roof-note-empty{font-size:12px;color:var(--text-4);margin:0 0 6px}.roof-note-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex:1;min-width:0;padding:7px 9px;background:transparent;border:none;color:var(--text);font-size:13px;text-align:left;cursor:pointer}.roof-note-label{font-variant-numeric:tabular-nums}.roof-note-meta{font-size:11px;color:var(--text-3);white-space:nowrap}.roof-note-row-actions{display:flex;align-items:center;gap:2px;flex:0 0 auto;padding-right:6px;color:var(--text-3)}.roof-note-inspector{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}.roof-note-inspector .ne-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px;font-size:12px;color:var(--text-2)}.roof-note-inspector .ne-row label{display:inline-flex;align-items:center;gap:5px;cursor:pointer}.roof-note-selection{fill:none;stroke:var(--accent);stroke-width:1.5;stroke-dasharray:5 4;vector-effect:non-scaling-stroke;pointer-events:none}.roof-note-dialog{display:flex;flex-direction:column;gap:10px;padding:16px}.roof-note-dialog h3{margin:0;font-size:14px}.roof-note-dialog input{font-size:16px;padding:8px 10px;border-radius:6px;background:var(--s1);color:var(--text);border:2px solid var(--red);outline:none}.roof-note-dialog input.valid{border-color:var(--green)}.roof-note-dialog-hint{margin:0;font-size:12px;color:var(--text-3)}.roof-note-dialog-actions{display:flex;justify-content:flex-end;gap:8px}.panel-rail-scrim{display:none}@media (max-width: 820px){.panel-rail-scrim{display:block;position:absolute;top:0;right:0;bottom:0;left:0;z-index:19;padding:0;border:none;background:transparent;cursor:default}}.roof-note-list.collapsed{width:38px;min-width:38px;flex:0 0 auto;align-items:center;padding:6px 0 0;overflow:visible}@media (pointer: coarse){.roof-note-list.collapsed{width:46px;min-width:46px}}@media (max-width: 820px){.roof-notes-body{position:relative}.roof-note-list{position:absolute;top:0;right:0;bottom:0;width:min(88vw,300px);z-index:20;border-left:1px solid var(--line-2);box-shadow:-10px 0 28px #00000080}.roof-note-list.collapsed{display:none}.roof-note-row{min-height:var(--touch-target)}}.wall-layers{position:relative;flex:1;min-height:0;display:flex}.wall-layers-surface{position:relative;flex:1;overflow:hidden;background:#000;touch-action:none;cursor:grab}.wall-layers-surface[data-panning]{cursor:grabbing}.wall-layers-stage{position:absolute;top:0;left:0;transform-origin:0 0}.wall-layers-raster{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.wall-layers-tinted{mask-size:100% 100%;-webkit-mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat}.wall-layers-tinted[data-channel=luminance]{mask-mode:luminance;-webkit-mask-source-type:luminance}.wall-layers-tinted[data-channel=alpha]{mask-mode:alpha;-webkit-mask-source-type:alpha}.wall-layers-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.wall-layers-casings polyline{fill:none;stroke:#0000008c;stroke-linecap:round;stroke-linejoin:round}.wall-layers-vertices circle{stroke:#00000080;stroke-width:1;vector-effect:non-scaling-stroke}.wall-layers-removed polygon{fill:#f43f5e38;stroke:#f43f5e;stroke-width:1.4;vector-effect:non-scaling-stroke}.wall-layers-removed circle{fill:#f43f5e40;stroke:#f43f5e;stroke-width:1.4;vector-effect:non-scaling-stroke}.wall-layers-ladder{position:absolute;top:12px;left:12px;width:268px;max-height:calc(100% - 24px);display:flex;flex-direction:column;background:color-mix(in srgb,var(--s1) 92%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--line-2);border-radius:8px;box-shadow:0 6px 20px #00000073;overflow:hidden}.wall-layers-ladder-head{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--line)}.wall-layers-ladder-title{font-size:var(--fs-12);font-weight:600;color:var(--text-1)}.wall-layers-ladder-step{margin-left:auto;font-size:var(--fs-11, 11px);color:var(--text-3);font-variant-numeric:tabular-nums}.wall-layers-ladder-foot{padding:7px 12px;border-top:1px solid var(--line);font-size:var(--fs-11, 11px);color:var(--text-3)}.wall-layers-rungs{position:relative;margin:0;padding:8px 12px;list-style:none;overflow-y:auto}.wall-layers-rungs:before{content:"";position:absolute;left:23px;top:18px;bottom:18px;width:2px;background:var(--line-2);border-radius:1px}.wall-layers-rung{display:grid;grid-template-columns:24px 1fr;gap:10px;padding:4px 0;align-items:start}.wall-layers-rung-step{position:relative;z-index:1;width:24px;height:24px;border-radius:50%;border:1px solid var(--line-2);background:var(--s0);color:var(--text-3);font-size:var(--fs-11, 11px);font-variant-numeric:tabular-nums;cursor:pointer;padding:0;touch-action:none}.wall-layers-rung[data-on] .wall-layers-rung-step{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--accent-on);font-weight:600}.wall-layers-rung[data-missing] .wall-layers-rung-step{opacity:.4;cursor:not-allowed}.wall-layers-rung-body{min-width:0;padding-top:2px}.wall-layers-rung-name{display:flex;align-items:center;gap:6px;background:none;border:0;padding:0;cursor:pointer;color:var(--text-3);font-size:var(--fs-12)}.wall-layers-rung[data-on] .wall-layers-rung-name{color:var(--text-1);font-weight:600}.wall-layers-rung-name:disabled{cursor:not-allowed;opacity:.55}.wall-layers-rung-op{display:block;margin-top:1px;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}.wall-layers-rung-missing,.wall-layers-rung-note{margin:5px 0 0;font-size:var(--fs-11, 11px);line-height:1.45;color:var(--text-3)}.wall-layers-rung-missing{color:#fca5a5}.wall-layers-rung-controls{display:flex;flex-direction:column;gap:5px;margin-top:6px}.wall-layers-rung:not([data-on]) .wall-layers-rung-controls{display:none}.wall-layers-field{display:flex;align-items:center;gap:7px;font-size:var(--fs-11, 11px)}.wall-layers-field-label{color:var(--text-3);-webkit-user-select:none;user-select:none;min-width:44px}.wall-layers-field input[type=range]{flex:1;min-width:0}.wall-layers-field-value{color:var(--text-2);min-width:34px;text-align:right;font-variant-numeric:tabular-nums}.wall-layers-check{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-11, 11px);color:var(--text-2);-webkit-user-select:none;user-select:none;cursor:pointer}.wall-layers-modes{display:flex;flex-direction:column;gap:4px;margin-top:2px}.wall-layers-modes .segmented{display:grid;grid-template-columns:repeat(2,1fr)}.wall-layers-modes .segmented-btn{font-size:10px;padding:3px 4px}.wall-layers-legend{position:absolute;top:12px;right:12px;width:176px;padding:9px 12px;background:color-mix(in srgb,var(--s1) 92%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--line-2);border-radius:8px;box-shadow:0 6px 20px #00000073;pointer-events:none}.wall-layers-legend-title{font-size:var(--fs-12);font-weight:600;color:var(--text-1);margin-bottom:6px}.wall-layers-legend-rows{display:flex;flex-direction:column;gap:3px}.wall-layers-legend-rows[data-ramp]{flex-direction:row;align-items:flex-end;gap:0}.wall-layers-legend-rows[data-ramp] .wall-layers-legend-row{flex:1;flex-direction:column;align-items:stretch;gap:3px}.wall-layers-legend-rows[data-ramp] .wall-layers-legend-swatch{width:auto;height:10px;border-radius:0}.wall-layers-legend-rows[data-ramp] .wall-layers-legend-label{font-size:9px;white-space:nowrap}.wall-layers-legend-row{display:flex;align-items:center;gap:7px}.wall-layers-legend-swatch{display:inline-block;width:14px;height:4px;border-radius:2px;flex:0 0 auto}.wall-layers-legend-swatch[data-dashed]{background-image:linear-gradient(90deg,currentColor 0 55%,transparent 55% 100%);background-size:6px 100%;background-blend-mode:destination-in}.wall-layers-legend-label{font-size:var(--fs-11, 11px);color:var(--text-2)}.wall-layers-legend-note{margin:7px 0 0;font-size:10px;line-height:1.45;color:var(--text-3)}.wall-layers-caption{position:absolute;left:12px;bottom:10px;display:flex;gap:8px;align-items:baseline;padding:5px 10px;background:color-mix(in srgb,var(--s1) 88%,transparent);border:1px solid var(--line);border-radius:6px;font-size:var(--fs-11, 11px);pointer-events:none;max-width:calc(100% - 24px)}.wall-layers-caption-name{color:var(--text-1);font-weight:600}.wall-layers-caption .mono{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wall-layers-loading{position:absolute;top:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:6px 12px;background:color-mix(in srgb,var(--s1) 92%,transparent);border:1px solid var(--line-2);border-radius:6px;font-size:var(--fs-12);color:var(--text-2)}.wall-layers-reopen{position:absolute;top:12px;left:12px;width:var(--touch-target, 44px);height:var(--touch-target, 44px);display:grid;place-items:center;background:color-mix(in srgb,var(--s1) 92%,transparent);border:1px solid var(--line-2);border-radius:8px;color:var(--text-1);cursor:pointer}@media (max-width: 820px){.wall-layers-ladder[data-narrow]{top:auto;left:8px;right:8px;bottom:8px;width:auto;max-height:58%}.wall-layers-ladder[data-narrow] .wall-layers-rung-step,.wall-layers-ladder[data-narrow] .wall-layers-rung-name{min-height:var(--touch-target, 44px)}.wall-layers-ladder[data-narrow] .wall-layers-rung-step{width:var(--touch-target, 44px);border-radius:12px}.wall-layers-ladder[data-narrow] .wall-layers-rungs{grid-template-columns:var(--touch-target, 44px) 1fr}.wall-layers-ladder[data-narrow] .wall-layers-rungs:before{left:33px}.wall-layers-ladder[data-narrow] .wall-layers-rung{grid-template-columns:var(--touch-target, 44px) 1fr}.wall-layers-legend{top:auto;bottom:8px;right:8px;width:148px}.wall-layers-caption{display:none}}.callout-canvas{display:flex;flex-direction:column;height:100%;min-height:320px;background:var(--bg)}.callout-canvas.state-block{height:100%;justify-content:center}.callout-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-bottom:1px solid var(--line-2);flex:0 0 auto}.callout-status{display:flex;align-items:center;gap:10px;font-size:var(--fs-12);color:var(--text-2)}.callout-status-sep{opacity:.4}.callout-unfinished{border:1px solid var(--warn);background:transparent;color:var(--warn);border-radius:999px;padding:1px 9px;font-size:var(--fs-11);cursor:pointer}.callout-unfinished:hover{background:color-mix(in srgb,var(--warn) 16%,transparent)}.callout-actions{display:flex;align-items:center;gap:6px}.callout-dirty-chip{font-size:var(--fs-11);color:var(--warn);padding-right:4px}.callout-banner{margin:0;padding:6px 12px;font-size:var(--fs-12);flex:0 0 auto}.callout-banner.error{color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,transparent)}.callout-banner.warn{color:var(--warn);background:color-mix(in srgb,var(--warn) 12%,transparent)}.callout-body{position:relative;display:flex;flex:1 1 auto;min-height:0}.callout-pane{flex:1 1 auto;min-width:0;min-height:0;display:flex;position:relative;touch-action:none}.callout-pane>.canvas-surface{flex:1 1 auto;min-width:0}.callout-chips{pointer-events:none}.callout-chip text{paint-order:stroke;stroke:#000000bf;stroke-width:3px;stroke-linejoin:round;dominant-baseline:auto}.callout-chip-value{fill:var(--text-1);font-weight:600}.callout-chip-canonical{fill:var(--text-3);font-weight:500}.callout-chip.unfinished .callout-chip-value{fill:var(--warn)}.callout-chip.operator .callout-chip-value{fill:var(--ok)}.callout-unread{fill:none;stroke:var(--text-3);stroke-width:1px;stroke-dasharray:3 3;opacity:.55;pointer-events:none}.callout-rail{flex:0 0 240px;display:flex;flex-direction:column;min-height:0;border-left:1px solid var(--line-2);background:var(--bg-1)}.callout-rail-head{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;font-size:var(--fs-11);text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);border-bottom:1px solid var(--line-2)}.callout-rows{list-style:none;margin:0;padding:0;overflow-y:auto;flex:0 1 auto}.callout-row{display:flex;align-items:center;gap:2px;padding:0 6px 0 0;border-bottom:1px solid var(--line-3)}.callout-row.selected{background:color-mix(in srgb,var(--accent) 14%,transparent)}.callout-row.primary{box-shadow:inset 2px 0 0 var(--accent)}.callout-row-main{display:flex;align-items:baseline;gap:8px;flex:1 1 auto;min-width:0;padding:7px 8px;background:none;border:0;text-align:left;cursor:pointer;color:inherit}.callout-row-class{font-size:var(--fs-11);color:var(--text-3);flex:0 0 auto;max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.callout-row-value{font-size:var(--fs-12);color:var(--text-1);font-variant-numeric:tabular-nums}.callout-row.unfinished .callout-row-value{color:var(--warn)}.callout-row-canonical{font-size:var(--fs-11);color:var(--text-3);margin-left:auto;font-variant-numeric:tabular-nums}.callout-editor{position:absolute;left:16px;bottom:16px;z-index:8;width:min(320px,calc(100% - 32px));background:var(--s1);border:1px solid var(--line-2);border-radius:12px;box-shadow:0 18px 44px #0000008c}.callout-dialog{display:flex;flex-direction:column;gap:8px;padding:14px 16px}.callout-dialog h3{margin:0;font-size:var(--fs-14)}.callout-dialog input{width:100%;padding:8px 10px;font-size:16px;font-variant-numeric:tabular-nums;background:var(--bg);color:var(--text-1);border:1px solid var(--line-1);border-radius:6px}.callout-dialog input.valid{border-color:var(--ok)}.callout-dialog input.invalid{border-color:var(--warn)}.callout-dialog-readout{margin:0;min-height:1.2em;font-size:var(--fs-12);color:var(--ok)}.callout-dialog-readout.empty{color:var(--text-3)}.callout-dialog-hint{margin:0;font-size:var(--fs-11);color:var(--text-3)}.callout-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}@media (pointer: coarse){.callout-row{min-height:var(--touch-target)}}@media (max-width: 820px){.callout-editor{left:8px;right:8px;bottom:8px;width:auto}.callout-body>.callout-rail{position:absolute;top:0;right:0;bottom:0;z-index:6;width:min(320px,86vw);flex:none;background:#181b23f0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 6px 20px #00000073}}.align-canvas{position:relative;flex:1;min-height:0;display:flex}.align-canvas-pane{position:relative;flex:1;overflow:hidden;background:#0a0c10;touch-action:none}.align-canvas-pane[data-tool=pan]{cursor:grab}.align-canvas-pane[data-tool=move]{cursor:move}.align-canvas-pane[data-tool=scale]{cursor:nwse-resize}.align-canvas-pane[data-panning]{cursor:grabbing}.align-floor-line{pointer-events:none}.align-floor-hit{pointer-events:stroke;cursor:pointer}.align-tools{position:absolute;top:8px;left:50%;transform:translate(-50%);display:flex;gap:4px;padding:4px;border-radius:999px;background:#14171deb;border:1px solid var(--line-2);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:2}.align-tool{border:0;background:none;color:var(--text-2);font-size:12px;font-weight:600;padding:9px 14px;border-radius:999px;cursor:pointer}.align-tool.is-on{background:var(--accent-strong);color:var(--accent-on)}.align-tool:disabled{color:var(--text-4);cursor:default}.align-live-scale{position:absolute;bottom:10px;left:50%;transform:translate(-50%);padding:4px 10px;border-radius:999px;background:#14171deb;border:1px solid var(--line-2);color:var(--text);font-size:12px;font-variant-numeric:tabular-nums;pointer-events:none;z-index:2}.align-canvas-svg{position:absolute;top:0;left:0;transform-origin:0 0;overflow:visible}.align-floor{cursor:pointer}.align-canvas-rail{width:320px;flex:none;overflow-y:auto;border-left:1px solid var(--line);background:var(--s0);padding:10px;display:flex;flex-direction:column;gap:10px}.align-scrub{display:grid;grid-template-columns:1fr auto;grid-template-areas:"label pct" "range range";gap:4px 8px;align-items:center;padding:8px 10px;background:var(--s1);border:1px solid var(--line);border-radius:8px}.align-scrub-label{grid-area:label;font-size:12px;font-weight:600;color:var(--text)}.align-scrub-pct{grid-area:pct;font-size:11px;color:var(--text-3);font-variant-numeric:tabular-nums}.align-scrub input[type=range]{grid-area:range;width:100%}.align-floor-row{border:1px solid var(--line);border-radius:8px;background:var(--s1);padding:8px 10px;display:flex;flex-direction:column;gap:6px}.align-floor-row.is-selected{border-color:var(--accent-strong)}.align-floor-head{display:flex;align-items:center;gap:6px;background:none;border:0;padding:0;color:var(--text);font-size:12px;font-weight:600;text-align:left;cursor:pointer}.align-floor-swatch{width:10px;height:10px;border-radius:2px;flex:none}.align-floor-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.align-tag{font-size:10px;font-weight:500;padding:1px 5px;border-radius:999px;background:var(--s3);color:var(--text-3);flex:none}.align-tag.is-edited{background:var(--amber-bg);color:var(--amber)}.align-tag.is-bad{background:var(--red-bg, rgba(248, 113, 113, .13));color:var(--red, #f87171)}.align-warn{margin:0;font-size:11px;line-height:1.4;color:var(--amber);display:flex;gap:5px}.align-note{margin:0;font-size:11px;line-height:1.4;color:var(--text-3)}.align-number-row{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:6px;font-size:11px}.align-number-label{color:var(--text-3)}.align-number-row input[type=number]{width:100%;background:var(--s2);border:1px solid var(--line);border-radius:5px;color:var(--text);padding:3px 6px;font-size:11px;font-variant-numeric:tabular-nums}.align-number-unit{color:var(--text-4)}.align-number-derived{grid-column:2 / -1;font-size:10px;color:var(--text-4);font-variant-numeric:tabular-nums}.align-number-derived.is-changed{color:var(--text-2)}.align-delta{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:10px;color:var(--text-3);border-top:1px solid var(--line);padding-top:5px}.align-reset-all{font-size:11px;justify-content:center}@media (max-width: 860px){.align-canvas{flex-direction:column}.align-canvas-rail{width:auto;max-height:45%;border-left:0;border-top:1px solid var(--line)}}.tq-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:12px 16px;border-bottom:1px solid var(--line)}.tq-toggle{display:flex;align-items:center;gap:8px;background:none;border:0;padding:0;color:var(--text);cursor:pointer;text-align:left}.tq-toggle:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px;border-radius:var(--radius-sm)}.tq-sub{font-size:var(--fs-12);color:var(--text-3)}.tq-clear{text-align:right}.tq-clear-time{font-size:var(--fs-22);font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.tq-body{padding:12px 16px 16px}.tq-scroll{overflow-x:auto;min-width:0}.tq-axis{position:relative;height:18px;margin-left:220px;margin-bottom:4px}.tq-tick{position:absolute;top:0;transform:translate(-50%);font-size:10.5px;color:var(--text-4);font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}.tq-now{position:absolute;left:0;top:14px;bottom:-6px;width:1px;background:var(--teal-strong)}.tq-row{display:flex;align-items:center;gap:8px;padding:4px 0}.tq-gutter{width:16px;flex-shrink:0;text-align:right;font-family:var(--font-mono);font-size:11px;color:var(--text-4)}.tq-lane{flex:1;min-width:0;display:flex;align-items:center;gap:8px}.tq-label{width:196px;flex-shrink:0;display:flex;align-items:center;gap:6px;min-width:0}.tq-link{color:var(--text);text-decoration:none;font-size:var(--fs-13);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tq-link:hover{color:var(--accent)}.tq-note{font-size:10.5px;color:var(--amber);white-space:nowrap}.tq-track{position:relative;flex:1;min-width:180px;height:14px;background:var(--s2);border-radius:999px}.tq-bar{position:absolute;top:0;bottom:0;border-radius:999px;background:var(--s4);border:1px solid var(--line-2);box-sizing:border-box;overflow:hidden}.tq-bar-running{background:#7c5cff38;border-color:#7c5cff66}.tq-bar-elapsed{position:absolute;inset:0 auto 0 0;background:var(--accent-strong);border-radius:999px;transition:width .4s linear}.tq-bar-packaging,.tq-bar-unknown{background:transparent;border-style:dashed}.tq-meta{width:210px;flex-shrink:0;display:flex;align-items:center;justify-content:flex-end;gap:8px}.tq-when{font-size:var(--fs-12);color:var(--text-3);font-variant-numeric:tabular-nums;white-space:nowrap}.tq-cancel{opacity:0;transition:opacity .12s ease}.tq-row:hover .tq-cancel,.tq-cancel:focus-visible{opacity:1}.tq-strip{display:flex;align-items:center;gap:10px;padding:8px 12px;margin-bottom:16px;background:var(--s1);border:1px solid var(--line);border-radius:var(--radius);font-size:var(--fs-13)}@keyframes tq-drift{to{background-position:28px 0}}.tq-bar-running{background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.05) 0 6px,transparent 6px 14px);animation:tq-drift 6s linear infinite}@media (prefers-reduced-motion: reduce){.tq-bar-running{animation:none}.tq-bar-elapsed{transition:none}}@media (max-width: 720px){.tq-axis,.tq-track{display:none}.tq-label{width:auto;flex:1}.tq-meta{width:auto}.tq-clear-time{font-size:var(--fs-16)}}.editor-shell.pdf-shell{grid-template-columns:180px 1fr 300px}.editor-shell.pdf-shell>.editor-palette{grid-row:1;grid-column:1 / -1;gap:12px}.editor-shell.pdf-shell>.pdf-page-rail{grid-row:2 / span 2;grid-column:1}.editor-shell.pdf-shell>.canvas-surface-wrap{grid-row:2;grid-column:2;min-width:0;min-height:0}.editor-shell.pdf-shell>.box-list{grid-row:2 / span 2;grid-column:3}.editor-shell.pdf-shell>.editor-footer{grid-row:3;grid-column:2}.pdf-page-rail{overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:8px;padding:8px;background:var(--s0);border-right:1px solid var(--line)}.pdf-page-rail-item{display:block;width:100%;padding:4px;border:1px solid var(--line);border-radius:6px;background:var(--s1);cursor:pointer}.pdf-page-rail-item:hover{border-color:var(--text-3)}.pdf-page-rail-item.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.pdf-page-rail-item img,.pdf-page-rail-placeholder{display:block;width:100%;height:auto;background:#fff;border-radius:3px}.pdf-page-rail-placeholder{aspect-ratio:3 / 4;background:var(--s2)}.pdf-page-rail-label{display:block;text-align:center;margin-top:4px;font-size:var(--fs-12);color:var(--text-3)}.pdf-page-rail-item.active .pdf-page-rail-label{color:var(--text)}.pdf-page-canvas{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--s2)}.pdf-page-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--text-3);font-size:var(--fs-13)}.pdf-facts{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0}.pdf-facts dt{color:var(--text-3);font-size:var(--fs-12)}.pdf-facts dd{margin:0;text-align:right;font-size:var(--fs-12)}.machine-headline{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;margin-bottom:16px;border:1px solid var(--amber);background:var(--amber-bg);border-radius:var(--radius);font-size:var(--fs-13)}.machine-headline .ic{color:var(--amber);flex:0 0 auto;margin-top:1px}.machine-kinds{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.machine-row{padding:10px 0;border-bottom:1px solid var(--line)}.machine-row:last-child{border-bottom:0;padding-bottom:0}.machine-row-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.machine-name{font-weight:600;font-size:var(--fs-13)}.machine-uptime,.machine-version{font-size:11px}.machine-version{margin-left:auto;font-family:var(--font-mono)}.machine-busy{margin-top:4px;font-size:var(--fs-12);color:var(--blue)}.machine-meta{margin-top:3px;font-size:11px}.machine-empty{font-size:var(--fs-12)}.machine-skew{display:flex;align-items:center;gap:6px;margin-top:10px;font-size:11px;color:var(--amber)}.machine-queues{width:100%}.machine-queues td{padding:4px 8px}.nav-badge-dot{width:7px;height:7px;border-radius:50%;margin-left:auto;flex:0 0 auto}.app.nav-collapsed .nav-badge-dot{position:absolute;top:6px;right:9px;width:6px;height:6px;margin-left:0;box-shadow:0 0 0 2px #0a0c10}.nav-badge-dot.red{background:var(--red)}.nav-badge-dot.amber{background:var(--amber)}.pdf-rail-group{display:flex;flex-direction:column;gap:6px}.pdf-crop-list{list-style:none;margin:0 0 4px 14px;padding:0 0 0 8px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:6px}.pdf-crop-item{display:block;width:100%;padding:3px;border:1px solid transparent;border-radius:4px;background:none;cursor:pointer;text-align:left}.pdf-crop-item:hover{border-color:var(--text-3)}.pdf-crop-item.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.pdf-crop-item.linked{border-style:dashed;border-color:var(--accent)}.pdf-crop-item img{display:block;width:100%;height:auto;background:#fff;border-radius:2px}.pdf-crop-pending{display:flex;align-items:center;justify-content:center;height:44px;border:1px dashed var(--line);border-radius:2px;color:var(--text-3);font-size:var(--fs-12)}.pdf-crop-meta{display:block;margin-top:2px;color:var(--text-3);font-size:10px;font-family:var(--font-mono)}.ckpt-strip{display:flex;align-items:flex-start;gap:10px;padding:8px 12px;border-radius:var(--radius-sm);border:1px solid var(--line-2);background:var(--s0);min-width:0;flex:1 1 320px}.ckpt-strip.warn{border-color:#fbbf2473;background:var(--amber-bg)}.ckpt-strip-mark{width:3px;align-self:stretch;min-height:26px;border-radius:2px;background:var(--amber);flex:none}.ckpt-strip-head{font-size:var(--fs-13);color:var(--text);font-weight:500}.ckpt-strip-sub{font-size:var(--fs-12);color:var(--text-2);line-height:1.45}.prov{padding:0}.prov-summary{display:flex;align-items:baseline;gap:8px;padding:12px 16px;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.prov-summary::-webkit-details-marker{display:none}.prov-summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.prov-caret{width:0;height:0;align-self:center;border-left:5px solid var(--text-3);border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .12s ease;flex:none}details[open]>summary>.prov-caret{transform:rotate(90deg)}.prov-title{font-size:var(--fs-14);font-weight:500;color:var(--text)}.prov-hint{font-size:var(--fs-12);color:var(--text-3)}.prov-body{border-top:1px solid var(--line);padding:4px 16px 12px}.prov-section{border-bottom:1px solid var(--line)}.prov-section:last-child{border-bottom:none}.prov-section-summary{display:flex;align-items:center;gap:8px;padding:10px 0;cursor:pointer;list-style:none;font-size:var(--fs-13);color:var(--text-2)}.prov-section-summary::-webkit-details-marker{display:none}.prov-section-summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.prov-count{font-family:var(--font-mono);font-size:12px;color:var(--text-3)}.prov-section-body{padding:0 0 14px 13px;display:flex;flex-direction:column;gap:10px}.prov-note{margin:0;font-size:var(--fs-12);color:var(--text-3);line-height:1.5;max-width:72ch}.prov-warn{margin:0;padding:8px 10px;border-radius:var(--radius-sm);background:var(--amber-bg);border:1px solid rgba(251,191,36,.35);color:var(--text);font-size:var(--fs-12);line-height:1.5;max-width:72ch}.prov-subblock{display:flex;flex-direction:column;gap:6px}.prov-subblock-label{font-size:var(--fs-12);color:var(--text-2);font-weight:500;letter-spacing:.02em}.prov-kv{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2px 18px}.prov-kv-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:3px 0;border-bottom:1px solid var(--line);min-width:0}.prov-kv dt{font-size:var(--fs-12);color:var(--text-3);font-family:var(--font-mono);white-space:nowrap}.prov-kv dd{margin:0;font-size:var(--fs-12);color:var(--text);font-family:var(--font-mono);text-align:right;overflow-wrap:anywhere;min-width:0}.prov-kv dd.nested{white-space:pre-wrap;text-align:left;color:var(--text-2)}.prov-kv.tight{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.prov-classes{display:flex;flex-direction:column;gap:10px}.prov-class{padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--s0)}.prov-class-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.prov-class-swatch{width:10px;height:10px;border-radius:2px;flex:none}.prov-class-name{font-size:var(--fs-13);color:var(--text)}.prov-class-order,.prov-class-hex{font-family:var(--font-mono);font-size:11px;color:var(--text-3)}.prov-sources{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;max-height:340px;overflow-y:auto}.prov-source{display:flex;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid var(--line);font-size:var(--fs-12);min-width:0}.prov-source.gone .prov-source-name{color:var(--text-4);text-decoration:line-through}.prov-source-name{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1 1 auto}a.prov-source-name:hover{color:var(--accent)}.prov-source-kind{font-size:11px;color:var(--text-4);white-space:nowrap}.prov-split{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;padding:1px 6px;border-radius:3px;flex:none;width:46px;text-align:center}.prov-split.train{background:var(--grey-bg);color:var(--text-3)}.prov-split.val{background:var(--blue-bg);color:var(--blue)}.status.warn{background:var(--amber-bg);color:var(--amber)}.paste-settings{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--s0);flex-wrap:wrap}.paste-settings.open{flex-direction:column;align-items:stretch;gap:8px}.paste-settings-hint{font-size:var(--fs-12);color:var(--text-3);line-height:1.4;flex:1 1 240px}.paste-settings-label{font-size:var(--fs-12);color:var(--text-2)}.paste-settings-input{width:100%;font-family:var(--font-mono);font-size:var(--fs-12);background:var(--bg);color:var(--text);border:1px solid var(--line-2);border-radius:var(--radius-sm);padding:8px;resize:vertical}.paste-settings-error{margin:0;padding:8px 10px;border-radius:var(--radius-sm);background:var(--red-bg);border:1px solid rgba(248,113,113,.4);color:var(--text);font-size:var(--fs-12);line-height:1.5}.cls-card-head{display:flex;align-items:center;gap:10px;padding:10px 14px}.cls-card-title{font-weight:600}.cls-card-count{font-family:var(--font-mono);font-size:var(--fs-12);color:var(--text-3);padding:1px 6px;border-radius:5px;background:var(--s2)}.cls-card-note{font-size:var(--fs-12);color:var(--text-3)}.cls-card-body{padding:0}.cls-list{list-style:none;margin:0;padding:0}.cls-row{position:relative;padding-left:3px}.cls-row+.cls-row{border-top:1px solid var(--line)}.cls-row.open{background:var(--s1)}.cls-row.archived .cls-name{color:var(--text-3);text-decoration:line-through;text-decoration-color:var(--text-4)}.cls-row.archived .cls-spine{opacity:.35}.cls-spine{position:absolute;left:0;top:0;bottom:0;width:3px}.cls-head{display:flex;align-items:center;gap:10px;padding:8px 12px 8px 11px;min-height:var(--row-h)}.cls-toggle{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:4px 6px;margin:-4px -6px;border:1px solid transparent;border-radius:7px;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.cls-toggle:hover{background:var(--s2)}.cls-toggle:focus-visible{outline:none;border-color:var(--accent-strong)}.cls-chev{flex-shrink:0;width:12px;color:var(--text-3);transition:transform .12s ease}.cls-row.open .cls-chev{transform:rotate(90deg);color:var(--accent)}.cls-name{flex-shrink:0;font-weight:600;color:var(--text)}.cls-plain{font-size:var(--fs-12);color:var(--text-4);font-style:italic}.cls-chips{display:flex;flex-wrap:wrap;gap:4px;min-width:0}.cls-chip{padding:1px 7px;border-radius:5px;border:1px solid var(--line);background:var(--s2);color:var(--text-2);font-family:var(--font-mono);font-size:10.5px;white-space:nowrap}.cls-chip.g-serving{border-color:#00d4a359;color:var(--teal)}.cls-chip.g-training{border-color:#7c5cff66;color:var(--accent)}.cls-chip.g-obb{border-color:#60a5fa59;color:var(--blue)}.cls-chip.inert{border-style:dashed;color:var(--text-4);border-color:var(--line-2)}.cls-meta{display:flex;align-items:center;gap:6px;flex-shrink:0}.cls-index{font-family:var(--font-mono);font-size:10.5px;color:var(--text-3);padding:1px 5px;border-radius:4px;background:var(--s2)}.cls-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.cls-panel{display:flex;flex-direction:column;gap:18px;padding:6px 14px 18px 26px}.cls-group{display:flex;flex-direction:column;gap:6px}.cls-group-title{display:flex;align-items:center;gap:8px;margin:0;font-size:10.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--text-3)}.cls-group-title:after{content:"";flex:1;height:1px;background:var(--line)}.cls-inert-tag{text-transform:none;letter-spacing:0;font-weight:500;font-size:10px;color:var(--text-4);padding:1px 6px;border:1px dashed var(--line-2);border-radius:4px}.cls-group-caption{margin:0;font-size:var(--fs-12);color:var(--text-3);max-width:68ch}.cls-group.inert .cls-fields{opacity:.55}.cls-fields{display:flex;flex-direction:column;gap:10px;margin-top:4px}.cls-field{display:grid;grid-template-columns:150px minmax(0,1fr);gap:4px 12px;align-items:start}.cls-field-label{font-size:var(--fs-12);color:var(--text-2);padding-top:5px}.cls-field-body{min-width:0;display:flex;flex-direction:column;gap:4px}.cls-field-control{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cls-field-hint{margin:0;font-size:var(--fs-12);color:var(--text-3);max-width:66ch}.cls-field.inert .cls-field-label,.cls-field.inert .cls-field-control{opacity:.6}.cls-field.inert .cls-field-hint{color:var(--text-4);font-style:italic}.cls-stack{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.cls-segmented{display:flex;gap:4px}.cls-check{display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-size:var(--fs-13)}.cls-num{display:inline-flex;align-items:center;gap:6px}.cls-num .input{width:92px}.cls-num-unit{font-size:var(--fs-12);color:var(--text-3)}.cls-clamp-select{width:150px}.cls-clamp-custom{width:78px}.cls-clear{padding:0 8px}.cls-boost{display:flex;flex-direction:column;gap:6px;width:100%}.cls-boost-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cls-boost-x{font-size:var(--fs-13);color:var(--text-3)}.cls-boost-num{width:76px}.cls-boost-range{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:100%;max-width:300px;height:20px;background:transparent;cursor:pointer}.cls-boost-range:disabled{cursor:default;opacity:.5}.cls-boost-range::-webkit-slider-runnable-track{height:6px;border-radius:3px;border:1px solid var(--line);background-color:var(--s0);background-image:linear-gradient(90deg,transparent calc(50% - 1px),var(--text-3) calc(50% - 1px),var(--text-3) calc(50% + 1px),transparent calc(50% + 1px)),linear-gradient(90deg,var(--red-bg) 0 var(--z-extreme-lo),var(--amber-bg) var(--z-extreme-lo) var(--z-strong-lo),var(--s4) var(--z-strong-lo) var(--z-strong-hi),var(--amber-bg) var(--z-strong-hi) var(--z-extreme-hi),var(--red-bg) var(--z-extreme-hi) 100%)}.cls-boost-range::-moz-range-track{height:6px;border-radius:3px;border:1px solid var(--line);background-color:var(--s0);background-image:linear-gradient(90deg,transparent calc(50% - 1px),var(--text-3) calc(50% - 1px),var(--text-3) calc(50% + 1px),transparent calc(50% + 1px)),linear-gradient(90deg,var(--red-bg) 0 var(--z-extreme-lo),var(--amber-bg) var(--z-extreme-lo) var(--z-strong-lo),var(--s4) var(--z-strong-lo) var(--z-strong-hi),var(--amber-bg) var(--z-strong-hi) var(--z-extreme-hi),var(--red-bg) var(--z-extreme-hi) 100%)}.cls-boost-range::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;margin-top:-5px;border-radius:50%;border:2px solid var(--s0);background:var(--text-3)}.cls-boost-range::-moz-range-thumb{width:14px;height:14px;border-radius:50%;border:2px solid var(--s0);background:var(--text-3)}.cls-boost-range.band-tuned::-webkit-slider-thumb{background:var(--accent)}.cls-boost-range.band-tuned::-moz-range-thumb{background:var(--accent)}.cls-boost-range.band-strong::-webkit-slider-thumb{background:var(--amber)}.cls-boost-range.band-strong::-moz-range-thumb{background:var(--amber)}.cls-boost-range.band-extreme::-webkit-slider-thumb{background:var(--red)}.cls-boost-range.band-extreme::-moz-range-thumb{background:var(--red)}.cls-boost-range:focus-visible{outline:2px solid var(--accent-strong);outline-offset:3px;border-radius:4px}.cls-band{font-size:10.5px;font-family:var(--font-mono);padding:1px 7px;border-radius:5px}.cls-band.band-tuned{background:#7c5cff29;color:var(--accent)}.cls-band.band-strong{background:var(--amber-bg);color:var(--amber)}.cls-band.band-extreme{background:var(--red-bg);color:var(--red)}.cls-warn{margin:0;font-size:var(--fs-12);color:var(--amber);max-width:66ch}.cls-why{font-size:var(--fs-12);color:var(--text-3);max-width:68ch}.cls-why>summary{cursor:pointer;color:var(--text-3);width:fit-content}.cls-why>summary:hover{color:var(--text-2)}.cls-why p{margin:6px 0 0;padding-left:10px;border-left:1px solid var(--line-2);line-height:1.55}.cls-note{margin:0;font-size:var(--fs-12);color:var(--text-3)}.cls-callout{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-radius:10px;border:1px solid var(--line-2);background:var(--s2)}.cls-callout.warn{border-color:#fbbf2459;background:var(--amber-bg)}.cls-callout p{margin:0;font-size:var(--fs-12);color:var(--text-2);line-height:1.5}.cls-callout-title{margin:0;font-size:var(--fs-13);font-weight:600;color:var(--text)}.cls-shift-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.cls-shift-list li{display:flex;align-items:baseline;gap:8px;font-size:var(--fs-12)}.cls-shift-name{color:var(--text)}.cls-shift-move{font-family:var(--font-mono);font-size:11px;color:var(--amber)}@media (max-width: 720px){.cls-field{grid-template-columns:minmax(0,1fr)}.cls-field-label{padding-top:0}.cls-panel{padding-left:14px}.cls-head{flex-wrap:wrap}}@media (prefers-reduced-motion: reduce){.cls-chev{transition:none}}.pci{display:flex;flex-direction:column;gap:6px;min-width:0}.pci-head{display:flex;align-items:center;gap:6px}.pci-title{font-size:var(--fs-12);color:var(--text-2);font-weight:500}.pci-body{display:flex;align-items:flex-start;gap:4px;min-width:0}.pci-plot{flex:1 1 auto;min-width:0}.pci-rail{position:relative;flex:0 0 138px;width:138px;margin:0;padding:0;list-style:none}.pci-rail-item{position:absolute;left:0;right:0}.pci-rail-btn{display:grid;grid-template-columns:12px minmax(0,1fr);grid-template-rows:auto auto;column-gap:6px;width:100%;border:0;background:transparent;padding:2px 4px;border-radius:var(--radius-sm);text-align:left;cursor:pointer}.pci-rail-btn:hover,.pci-rail-btn.on{background:var(--s2)}.pci-rail-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.pci-swatch{grid-row:1;align-self:center;width:12px;height:3px;border-radius:1px}.pci-rail-name{grid-column:2;font-size:var(--fs-11);color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pci-rail-val{grid-column:2;font-family:var(--font-mono);font-size:10.5px;color:var(--text-3)}.pci-empty,.pci-note{margin:0;font-size:var(--fs-11);line-height:1.5;color:var(--text-3)}.pci-note{border-left:2px solid var(--line-2);padding-left:8px}.curve-smoothing{font-size:var(--fs-11);color:var(--text-3);white-space:nowrap}@media (max-width: 720px){.pci-body{flex-direction:column}.pci-rail{position:static;display:flex;flex-wrap:wrap;gap:4px 10px;flex-basis:auto;width:100%;height:auto!important}.pci-rail-item{position:static;top:auto!important;width:auto}}
