:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#000;--surface-1:#111113;--surface-2:#18181b;--surface-3:#232327;--plot-bg:#0a0a0b;--border:#1f1f23;--border-strong:#2e2e33;--text-primary:#fafafa;--text-secondary:#a1a1aa;--text-muted:#8b8b93;--accent:#9046ff;--accent-hover:#a366ff;--accent-text:#b794ff;--accent-ink:#fff;--accent-soft:#9046ff29;--accent-line:#9046ff73;--focus:#9046ff;--grid:#1f1f23;--axis:#2e2e33;--axis-text:#8b8b93;--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--series-4:#c98500;--series-5:#d55181;--series-6:#008300;--series-7:#9085e9;--series-8:#e66767;--good:#22b14c;--warning:#fab219;--serious:#ec835a;--critical:#ef5b60;--seq-100:#cde2fb;--seq-400:#3987e5;--seq-700:#0d366b;--div-neg:#e66767;--div-mid:#383835;--div-pos:#3987e5;--heat-ink:#3987e5;--shadow-pop:0 12px 32px #0009;--scrim:#000000b3;--selection:#9046ff66;--skeleton-hi:#2a2a2f;--fs-11:11px;--fs-12:12px;--fs-13:14px;--fs-15:15px;--fs-18:18px;--fs-24:24px;--h-control:32px;--h-topbar:48px;--w-nav:216px;--w-nav-collapsed:52px;--r-control:8px;--r-inner:12px;--r-panel:20px;--r-pill:16px;--gutter:16px;--gap:12px;--ease:.15s ease;--font:"Geist", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:"Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--dur-page:.2s;--dur-modal:.18s}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f7f7f8;--surface-1:#fff;--surface-2:#f4f4f5;--surface-3:#e9e9ec;--plot-bg:#fff;--border:#e4e4e7;--border-strong:#d4d4d8;--text-primary:#0a0a0b;--text-secondary:#52525b;--text-muted:#63636b;--accent:#9046ff;--accent-hover:#7a2ff0;--accent-text:#6d28d9;--accent-ink:#fff;--accent-soft:#9046ff1a;--accent-line:#9046ff66;--focus:#7a2ff0;--grid:#ececef;--axis:#d4d4d8;--axis-text:#63636b;--series-1:#2b6fca;--series-2:#c2501f;--series-3:#12805a;--series-4:#9a6a00;--series-5:#c23b6f;--series-6:#1d7a1d;--series-7:#6a5bd6;--series-8:#c93c3c;--good:#11753a;--warning:#8a5800;--serious:#a5401a;--critical:#c8222b;--seq-100:#dbe8fb;--seq-400:#2b6fca;--seq-700:#0d366b;--div-neg:#c93c3c;--div-mid:#ececef;--div-pos:#2b6fca;--heat-ink:#2b6fca;--shadow-pop:0 12px 32px #1010181f, 0 2px 6px #1010180f;--scrim:#0f0f1661;--selection:#9046ff38;--skeleton-hi:#ececef}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--page);color:var(--text-primary);font:var(--fs-13) / 1.45 var(--font);-webkit-font-smoothing:antialiased;font-feature-settings:"ss01" off}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}input[type=checkbox],input[type=radio],input[type=range]{accent-color:var(--accent)}::selection{background:var(--selection);color:var(--text-primary)}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted{color:var(--text-muted)}.secondary{color:var(--text-secondary)}h1,h2,h3,h4{margin:0;font-weight:600}h1,h2,.page-head h1,.panel-head h3,.modal .panel-head h3{font-family:var(--mono);letter-spacing:-.03em;font-weight:700}.shell{grid-template-columns:var(--w-nav) 1fr;grid-template-rows:var(--h-topbar) 1fr;height:100%;display:grid}.shell.collapsed{grid-template-columns:var(--w-nav-collapsed) 1fr}.topbar{border-bottom:1px solid var(--border);background:var(--surface-1);grid-column:1/-1;align-items:center;gap:12px;min-width:0;padding:0 12px 0 14px;display:flex}.brand{font-family:var(--mono);font-weight:700;font-size:var(--fs-15);letter-spacing:-.03em;white-space:nowrap;align-items:center;gap:8px;display:flex}.brand-mark{flex:none;display:block}.project-name{color:var(--text-secondary);height:var(--h-control);border-left:1px solid var(--border);white-space:nowrap;text-overflow:ellipsis;min-width:0;padding-left:12px;overflow:hidden}.topbar .spacer{flex:1}.nav{border-right:1px solid var(--border);background:var(--surface-1);flex-direction:column;gap:1px;padding:8px 6px;display:flex;overflow-y:auto}.nav-group{font-family:var(--mono);font-size:var(--fs-12);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);white-space:nowrap;padding:14px 10px 6px;font-weight:500}.collapsed .nav-group{visibility:hidden;height:10px;padding:0}.nav-item{height:32px;color:var(--text-secondary);cursor:pointer;text-align:left;transition:background-color var(--ease), color var(--ease);white-space:nowrap;background:0 0;border:0;border-radius:10px;flex:none;align-items:center;gap:10px;padding:0 10px;display:flex;overflow:hidden}.nav-item:hover{background:var(--surface-2);color:var(--text-primary)}.nav-item.active{background:var(--accent-soft);color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--accent-line)}.nav-item.active svg{color:var(--accent-text)}.nav-item svg{flex:none}.nav-item .tag{font-family:var(--mono);color:var(--accent-text);border:1px solid var(--accent-line);border-radius:6px;margin-left:auto;padding:0 5px;font-size:10px}.collapsed .nav-item span,.collapsed .nav-item .tag{display:none}.main{background:var(--page);min-width:0;overflow:auto}.page{padding:var(--gutter);gap:var(--gap);flex-direction:column;min-width:0;max-width:1760px;display:flex}.page-head{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.page-head h1{font-size:var(--fs-24);line-height:1.2}.page-head p{color:var(--text-secondary);max-width:820px;margin:2px 0 0}.page-head .actions{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.grid{gap:var(--gap);min-width:0;display:grid}.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.side-main{grid-template-columns:320px minmax(0,1fr);align-items:start}@media (width<=1100px){.cols-3,.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.side-main{grid-template-columns:minmax(0,1fr)}}@media (width<=720px){.shell,.shell.collapsed{grid-template-columns:1fr}.shell{grid-template-rows:var(--h-topbar) auto 1fr}.nav{border-right:0;border-bottom:1px solid var(--border);flex-direction:row;gap:4px;padding:6px;overflow-x:auto}.nav-group,.project-name,.hide-sm{display:none!important}.nav-item{flex:none}.nav-item.active{box-shadow:inset 0 0 0 1px var(--accent-line)}.cols-2,.cols-3{grid-template-columns:minmax(0,1fr)}.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-body{overflow-x:auto}}.panel{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-panel);flex-direction:column;min-width:0;display:flex}.panel-head{border-bottom:1px solid var(--border);align-items:center;gap:8px;min-height:48px;padding:6px 16px;display:flex}.panel-head h3{font-size:var(--fs-15)}.panel-head .sub{color:var(--text-muted);font-size:var(--fs-12)}.panel-head .right{align-items:center;gap:6px;margin-left:auto;display:flex}.panel-body{min-width:0;padding:16px}.panel-body.flush{padding:0}.panel>.panel-body.flush:last-child>.table-wrap:last-child,.panel>.table-wrap:last-child{border-radius:0 0 calc(var(--r-panel) - 1px) calc(var(--r-panel) - 1px)}.btn{height:var(--h-control);border-radius:var(--r-pill);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text-primary);cursor:pointer;white-space:nowrap;transition:background-color var(--ease), border-color var(--ease), color var(--ease), transform var(--ease);align-items:center;gap:6px;padding:0 14px;font-weight:500;display:inline-flex}.btn:hover{background:var(--surface-3)}.btn:disabled{opacity:.5;cursor:default}.btn.on{border-color:var(--accent-line);background:var(--accent-soft)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);padding:0 20px;font-size:14px;font-weight:600}.btn.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);transform:translateY(-1px)}.btn.ghost{color:var(--text-secondary);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-2);color:var(--text-primary)}.btn.icon,.btn.ghost.icon{width:var(--h-control);background:var(--surface-2);border-color:var(--border);color:var(--text-secondary);border-radius:10px;justify-content:center;padding:0}.btn.icon:hover,.btn.ghost.icon:hover{background:var(--surface-3);color:var(--text-primary)}@media (prefers-reduced-motion:reduce){.btn{transition:none}.btn.primary:hover:not(:disabled){transform:none}}.field{grid-template-columns:minmax(0,1fr) 112px;align-items:center;gap:8px;min-height:30px;display:grid}.field label{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.field .unit{color:var(--text-muted);font-size:var(--fs-11);margin-left:4px}.input,.select{height:var(--h-control);border-radius:var(--r-control);border:1px solid var(--border-strong);background:var(--surface-2);font-variant-numeric:tabular-nums;width:100%;min-width:0;padding:0 8px}.input:hover,.select:hover{border-color:var(--text-muted)}.input:focus,.select:focus{border-color:var(--focus);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.input:focus-visible,.select:focus-visible{outline:2px solid var(--focus);outline-offset:0}.input.invalid{border-color:var(--critical)}textarea.input{resize:vertical;height:auto;padding:8px}.fieldset{flex-direction:column;gap:4px;display:flex}.fieldset+.fieldset{border-top:1px solid var(--border);margin-top:10px;padding-top:10px}.fieldset-title{font-family:var(--mono);font-size:var(--fs-12);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:2px;font-weight:500}.seg{border:1px solid var(--border-strong);border-radius:var(--r-pill);background:var(--surface-2);height:var(--h-control);gap:2px;padding:2px;display:inline-flex}.seg button{cursor:pointer;color:var(--text-secondary);transition:background-color var(--ease), color var(--ease);background:0 0;border:0;border-radius:14px;padding:0 10px}.seg button:hover{color:var(--text-primary)}.seg button.on{background:var(--accent);color:var(--accent-ink);font-weight:600}.tabs{border-bottom:1px solid var(--border);scrollbar-width:thin;gap:2px;display:flex;position:relative;overflow:auto hidden}.tabs button{height:34px;color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;flex:none;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.tabs button:hover{color:var(--text-primary)}.tabs button.on{color:var(--text-primary);border-bottom-color:var(--accent);font-weight:500}.tabs button:focus-visible{outline:2px solid var(--focus);outline-offset:-2px;border-radius:6px 6px 0 0}.tab-badge{min-width:18px;height:18px;font-family:var(--mono);font-size:var(--fs-11);font-variant-numeric:tabular-nums;color:var(--warning);background:color-mix(in srgb, var(--warning) 14%, transparent);border-radius:9px;place-items:center;padding:0 5px;font-weight:600;display:inline-grid}.tab-badge.critical{color:var(--critical);background:color-mix(in srgb, var(--critical) 14%, transparent)}.stat{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-panel);min-width:0;padding:14px 16px}.stat .label{color:var(--text-secondary);font-size:var(--fs-12);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.stat .value{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:var(--fs-24);letter-spacing:-.03em;margin-top:4px;font-weight:600;line-height:1.2}@media (width<=480px){.stat .value{font-size:var(--fs-18);overflow-wrap:anywhere}}.stat .value small{font-family:var(--font);letter-spacing:0;font-size:var(--fs-12);color:var(--text-muted);margin-left:4px;font-weight:400}.stat .foot{font-size:var(--fs-12);color:var(--text-muted);margin-top:2px}.kv{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;display:grid}.kv dt{color:var(--text-secondary)}.kv dd{text-align:right;font-family:var(--mono);font-size:var(--fs-12);font-variant-numeric:tabular-nums;margin:0}.table-wrap{max-height:420px;overflow:auto}table.data{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}table.data td{font-family:var(--mono);font-size:var(--fs-12)}table.data td:first-child,table.data td.wrap,table.data td.text{font-family:var(--font);font-size:var(--fs-13)}table.data th,table.data td{border-bottom:1px solid var(--border);text-align:right;white-space:nowrap;padding:5px 10px}table.data th:first-child,table.data td:first-child{text-align:left}table.data th{background:var(--surface-1);color:var(--text-secondary);font-weight:500;font-size:var(--fs-12);z-index:1;position:sticky;top:0}table.data tr:hover td{background:var(--surface-2)}table.data input.input{text-align:right;height:24px}.badge{height:20px;font-size:var(--fs-11);border:1px solid var(--border-strong);color:var(--text-secondary);white-space:nowrap;border-radius:10px;align-items:center;gap:4px;padding:0 7px;display:inline-flex}.badge.good{color:var(--good);border-color:color-mix(in srgb, var(--good) 45%, transparent)}.badge.warning{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 45%, transparent)}.badge.critical{color:var(--critical);border-color:color-mix(in srgb, var(--critical) 55%, transparent)}.callout{border-radius:var(--r-inner);border:1px solid var(--border);background:var(--surface-2);color:var(--text-secondary);align-items:flex-start;gap:8px;padding:10px 12px;display:flex}.callout.warning{border-color:color-mix(in srgb, var(--warning) 40%, transparent)}.callout.critical{border-color:color-mix(in srgb, var(--critical) 50%, transparent)}.callout svg{flex:none;margin-top:2px}.empty{text-align:center;color:var(--text-muted);padding:32px 16px}.chart{width:100%;min-width:0}.chart-toolbar{gap:4px;display:flex}.copilot{top:var(--h-topbar);z-index:30;border-left:1px solid var(--border-strong);background:var(--surface-1);width:min(400px,100vw);box-shadow:var(--shadow-pop);flex-direction:column;min-height:0;animation:.16s ease-out copilot-in;display:flex;position:fixed;bottom:0;right:0}@keyframes copilot-in{0%{opacity:0;transform:translate(24px)}}@media (prefers-reduced-motion:reduce){.copilot{animation:none}}.copilot-log{flex-direction:column;flex:1;gap:10px;padding:12px;display:flex;overflow-y:auto}.msg{border-radius:var(--r-inner);overflow-wrap:anywhere;max-width:100%;padding:8px 12px}.msg.user{background:var(--accent-soft);border:1px solid var(--accent-line);align-self:flex-end}.msg.assistant{background:var(--surface-2)}.msg.tool{font-size:var(--fs-12);color:var(--text-muted);border:1px dashed var(--border-strong);background:0 0}.msg p{margin:0 0 6px}.msg p:last-child{margin:0}.msg pre{white-space:pre-wrap;font:var(--fs-12) / 1.4 var(--mono);margin:4px 0}.copilot-input{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding:10px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.stack{flex-direction:column;gap:8px;display:flex}.hr{background:var(--border);height:1px;margin:8px 0}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast{background:var(--surface-3);border:1px solid var(--border-strong);box-shadow:var(--shadow-pop);border-radius:var(--r-pill);z-index:50;padding:8px 16px;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.modal-layer{z-index:40;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal-scrim{background:var(--scrim);animation:fade-in var(--dur-modal) var(--ease-out) both;position:absolute;inset:0}.modal-layer>.modal{animation:modal-in var(--dur-modal) var(--ease-out) both;flex-direction:column;display:flex;position:relative}.modal-layer[data-state=closing]>.modal-scrim{animation:fade-out var(--dur-modal) var(--ease-in) both}.modal-layer[data-state=closing]>.modal{animation:modal-out var(--dur-modal) var(--ease-in) both}.modal-layer[data-state=closing]{pointer-events:none}.modal:focus{outline:none}.modal .modal-head .modal-titles{flex-wrap:wrap;align-items:baseline;gap:4px 10px;min-width:0;display:flex}.modal .modal-body{flex:auto;overflow:auto}.modal-foot{border-top:1px solid var(--border);justify-content:flex-end;align-items:center;gap:8px;padding:12px 16px;display:flex}.modal.size-sm{width:min(440px,100vw - 32px)}.modal.size-lg{width:min(760px,100vw - 32px)}.modal.size-xl{width:min(960px,100vw - 32px)}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(6px)scale(.97)}}@keyframes modal-out{to{opacity:0;transform:translateY(4px)scale(.98)}}.modal-back{background:var(--scrim);z-index:40;animation:fade-in var(--dur-modal) var(--ease-out) both;place-items:center;display:grid;position:fixed;inset:0}.modal-back>.modal{animation:modal-in var(--dur-modal) var(--ease-out) both}.modal{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-panel);width:min(640px,100vw - 32px);max-height:calc(100vh - 64px);box-shadow:var(--shadow-pop);overflow:auto}@media (prefers-reduced-motion:reduce){.modal-scrim,.modal-layer>.modal,.modal-back,.modal-back>.modal{animation:none!important}}.react-flow{--xy-background-color:var(--plot-bg);--xy-node-background-color:var(--surface-2);--xy-node-border:1px solid var(--border-strong);--xy-node-color:var(--text-primary);--xy-edge-stroke:var(--text-muted);--xy-minimap-background-color:var(--surface-2);--xy-controls-button-background-color:var(--surface-2);--xy-controls-button-color:var(--text-primary);--xy-controls-button-border-color:var(--border)}@media print{.nav,.topbar,.copilot,.page-head .actions,.no-print{display:none!important}.shell{display:block}body{color:#000;background:#fff}}.btn.suggestion{white-space:normal;height:auto;min-height:var(--h-control);border-radius:var(--r-inner);text-align:left;justify-content:flex-start;padding:6px 14px;line-height:1.35}.switcher{min-width:0;display:inline-flex;position:relative}.switcher-btn{gap:8px;max-width:360px}.switcher-btn strong{min-width:0}.menu{z-index:40;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--r-inner);width:320px;max-height:min(480px,100vh - 140px);box-shadow:var(--shadow-pop);padding:4px;position:absolute;top:calc(100% + 4px);right:0;overflow-y:auto}.menu-title{font-family:var(--mono);font-size:var(--fs-12);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:6px 8px 4px}.menu-list{flex-direction:column;display:flex}.menu-item{border-radius:var(--r-control);width:100%;min-height:30px;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:5px 8px;display:flex}.menu-item:hover,.menu-item:focus-visible{background:var(--surface-3)}.menu-item.on{background:var(--accent-soft)}.menu-check{width:16px;color:var(--accent-text);flex:none;justify-content:center;display:inline-flex}.menu-main{flex-direction:column;flex:1;min-width:0;display:flex}.menu-sub{font-size:var(--fs-11)}.ellipsis{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.mono{font-family:var(--mono);font-size:var(--fs-12)}code,kbd,pre{font-family:var(--mono)}td.wrap{white-space:normal}.badge.origin-ai{color:var(--series-7);border-color:color-mix(in srgb, var(--series-7) 45%, transparent)}.badge.origin-tuned{color:var(--accent-text);border-color:var(--accent-line)}.badge.origin-user,.badge.origin-import{color:var(--series-1);border-color:color-mix(in srgb, var(--series-1) 45%, transparent)}.badge.conf-high{color:var(--good);border-color:color-mix(in srgb, var(--good) 45%, transparent)}.badge.conf-medium{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 45%, transparent)}.badge.conf-low{color:var(--text-muted)}.status-dot{background:var(--text-muted);border-radius:50%;flex:none;width:8px;height:8px}.status-dot.good{background:var(--good)}.chip{border:1px solid var(--border-strong);max-width:100%;font-size:var(--fs-11);color:var(--text-secondary);border-radius:10px;align-items:center;gap:4px;padding:1px 8px;display:inline-flex}.card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-inner);flex-direction:column;gap:6px;min-width:0;padding:10px 12px;display:flex}.card-head{align-items:center;gap:8px;min-width:0;display:flex}.card-head svg{color:var(--text-muted);flex:none}.msg-mode{font-family:var(--mono);font-size:var(--fs-12);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:2px}.tool-row{font-size:var(--fs-12);color:var(--text-secondary);align-items:flex-start;gap:8px;padding:2px;display:flex}.tool-row svg{flex:none;margin-top:2px}.tool-row.done svg{color:var(--good)}.tool-row.error svg{color:var(--critical)}.turn-end{font-size:var(--fs-11);align-items:center;gap:6px;display:flex}.caret{vertical-align:text-bottom;background:var(--text-secondary);width:7px;height:14px;margin-left:2px;animation:1s steps(2,end) infinite caret-blink;display:inline-block}@keyframes caret-blink{50%{opacity:0}}.md p{margin:0 0 6px}.md ul,.md ol{margin:0 0 6px;padding-left:18px}.md li{margin:2px 0}.md-h{font-weight:600;margin-top:8px!important}.md code{font-family:var(--mono);font-size:var(--fs-12);background:var(--surface-3);border-radius:3px;padding:0 4px}.md-table{max-height:none;margin:4px 0 8px}.md-table table.data th,.md-table table.data td{padding:4px 8px}.studio{grid-template-columns:minmax(340px,440px) minmax(0,1fr);align-items:start}.studio-chat{height:calc(100vh - var(--h-topbar) - 2 * var(--gutter) - 90px);min-height:420px;position:sticky;top:0}.studio-chat>.panel-body{flex-direction:column;flex:1;min-height:0;display:flex}@media (width<=1100px){.studio{grid-template-columns:minmax(0,1fr)}.studio-chat{height:640px;position:static}}.dropzone{border:1px dashed var(--border-strong);border-radius:var(--r-inner);background:var(--surface-2);cursor:pointer;color:var(--text-secondary);align-items:center;gap:12px;padding:16px;display:flex}.dropzone:hover,.dropzone.over{border-color:var(--accent);background:var(--accent-soft)}.dropzone svg{color:var(--accent-text);flex:none}.file-row{border:1px solid var(--border);border-radius:var(--r-control);background:var(--surface-2);align-items:center;gap:8px;padding:2px 4px 2px 8px;display:flex}.file-row .ellipsis{flex:1}.pick{height:var(--h-control);border:1px solid var(--border-strong);border-radius:var(--r-pill);background:var(--surface-2);cursor:pointer;color:var(--text-secondary);align-items:center;gap:6px;padding:0 12px;display:inline-flex}.pick.on{color:var(--text-primary);border-color:var(--accent-line);background:var(--accent-soft)}.swatch{border-radius:2px;flex:none;width:10px;height:10px;display:inline-block}table.data.library td,table.data.library th{vertical-align:middle}table.data.compare-table td:first-child{color:var(--text-secondary)}table.data.compact th,table.data.compact td{padding:3px 8px}table.data.selectable tbody tr{cursor:pointer}.param-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 12px;display:grid}.disclosure>summary{cursor:pointer;color:var(--text-secondary);padding:4px 0}.disclosure[open]>summary{margin-bottom:6px}.split-grid{gap:var(--gap);grid-template-columns:minmax(0,1fr)}th.mult-col,td.mult-col{width:72px}td.mult-col .input{text-align:right;height:24px}.modal.confirm{width:min(420px,100vw - 32px)}.modal.confirm .modal-body{padding-bottom:8px}.modal.confirm .modal-foot{border-top:0;padding-top:4px}.overlay-caption{min-height:22px;font-size:var(--fs-12);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.live-grid{gap:var(--gap);grid-template-columns:300px minmax(0,1fr);align-items:start;display:grid}@media (width<=1100px){.live-grid{grid-template-columns:minmax(0,1fr)}}.live-params{max-height:calc(100vh - var(--h-topbar) - 40px);flex-direction:column;gap:2px;padding-right:4px;display:flex;position:sticky;top:0;overflow-y:auto}.live-params-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;margin-bottom:4px;padding:0 2px 6px;display:flex}.live-params-head .muted{font-size:var(--fs-11)}.param-row{border-radius:var(--r-control);border:1px solid #0000;padding:6px 8px}.param-row:hover{background:var(--surface-2)}.param-row.fit{border-color:var(--accent-line);background:color-mix(in srgb, var(--accent-soft) 50%, transparent)}.param-row-head{align-items:center;gap:6px;min-width:0;display:flex}.param-name{text-align:left;color:var(--text-secondary);cursor:pointer;font-size:var(--fs-12);background:0 0;border:0;flex:1;padding:0}.param-name:hover{color:var(--text-primary)}.param-val{font-family:var(--mono);font-size:var(--fs-12);color:var(--text-secondary)}.param-val.changed{color:var(--accent-text);font-weight:600}.param-slider{width:100%;accent-color:var(--accent);height:16px;margin:4px 0 0}.param-bounds{font-size:var(--fs-11);grid-template-columns:auto 1fr 1fr 1fr;align-items:center;gap:4px;margin-top:4px;display:grid}.param-bounds .input{height:24px}.live-disclosure{justify-content:flex-start;margin-top:6px}.live-main{gap:var(--gap);flex-direction:column;min-width:0;display:flex}.live-toolbar{border:1px solid var(--border);border-radius:var(--r-inner);background:var(--surface-2);flex-wrap:wrap;align-items:center;gap:12px;padding:8px 12px;display:flex}.live-score{align-items:baseline;gap:8px;display:flex}.live-score strong{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:var(--fs-18);letter-spacing:-.03em}.live-stat.excluded{opacity:.55}.warn-text{color:var(--warning)!important}.live-table-head{border:0;border-bottom:1px solid var(--border);cursor:pointer;text-align:left;width:100%;color:inherit;background:0 0}table.data tr.group-row td{background:var(--surface-2)}table.data tr.excluded td{opacity:.5}.live-params-sub{border-top:1px solid var(--border);font-family:var(--mono);font-size:var(--fs-12);text-transform:uppercase;letter-spacing:.08em;margin:8px 2px 2px;padding-top:6px}.live-toolbar-break{border-top:1px solid var(--border);flex-basis:100%;height:0;margin:-2px 0}.live-score-sep{background:var(--border-strong);align-self:stretch;width:1px;margin:0 2px}.modal.add-param{width:min(680px,100vw - 32px)}.add-param-props{border:1px solid var(--border);border-radius:var(--r-control);grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:2px 12px;margin:0;padding:8px 10px;display:grid}.add-param-props legend{font-size:var(--fs-12);padding:0 4px}.add-param-foot{border-top:1px solid var(--border);flex-wrap:nowrap;padding:10px 12px}table.data tr.picked td{background:var(--accent-soft)}table.data tr.dim td{color:var(--text-muted)}.diag-grid{gap:var(--gap);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}@media (width<=1300px){.diag-grid{grid-template-columns:minmax(0,1fr)}}.sens-bar{align-items:center;gap:6px;min-width:120px;display:flex;position:relative}.sens-bar>span{background:var(--series-1);border-radius:2px;max-width:calc(100% - 52px);height:10px;display:block}.sens-bar>em{font-style:normal;font-size:var(--fs-11);color:var(--text-secondary)}table.heat{border-collapse:separate;border-spacing:2px;font-family:var(--mono);font-size:var(--fs-11);font-variant-numeric:tabular-nums}table.heat th{background:var(--surface-1);color:var(--text-muted);z-index:1;padding:2px 4px;font-weight:500;position:sticky;top:0}table.heat th.heat-row{text-align:left;max-width:190px;color:var(--text-secondary);z-index:2;position:sticky;left:0}table.heat td{text-align:center;min-width:34px;height:24px;color:var(--text-primary);border-radius:2px;padding:0 4px}table.heat td.strong{font-weight:600}.heat-legend{font-size:var(--fs-11);align-items:center;gap:6px;display:inline-flex}.heat-ramp{background:linear-gradient(to right, color-mix(in srgb, var(--heat-ink) 8%, var(--surface-1)), var(--heat-ink));border-radius:2px;width:80px;height:8px;display:inline-block}.diag-notes{color:var(--text-secondary);margin:0;padding-left:18px}.diag-notes li+li{margin-top:2px}ol.stages{gap:var(--gap);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}@media (width<=1300px){ol.stages{grid-template-columns:minmax(0,1fr)}}.stage{border:1px solid var(--border);border-radius:var(--r-control);background:var(--surface-2);grid-template-columns:24px minmax(0,1fr);gap:8px;padding:10px;display:grid}.stage.skipped{opacity:.7}.stage-num{background:var(--surface-3);width:22px;height:22px;color:var(--text-secondary);font-size:var(--fs-12);border-radius:11px;place-items:center;display:grid}.stage-params{flex-wrap:wrap;gap:4px;display:flex}.chip-lite{border:1px solid var(--border-strong);border-radius:var(--r-control);font-size:var(--fs-12);color:var(--text-secondary);align-items:baseline;gap:4px;padding:1px 6px;display:inline-flex}.chip-lite strong{color:var(--text-primary);font-weight:600}table.bip{border-collapse:separate;border-spacing:0;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:var(--fs-12)}table.bip th{background:var(--surface-2);color:var(--text-secondary);border-bottom:1px solid var(--border);z-index:1;white-space:nowrap;padding:3px 6px;font-weight:500;position:sticky;top:0}table.bip th.bip-row{text-align:left;z-index:2;border-right:1px solid var(--border);position:sticky;left:0}table.bip thead th:first-child{z-index:3;left:0}table.bip td{border-bottom:1px solid var(--border);padding:1px}table.bip td.diag{background:var(--surface-2)}table.bip input.bip-cell{text-align:right;width:64px;height:24px;color:var(--text-primary);font:inherit;background:0 0;border:1px solid #0000;border-radius:3px;padding:0 5px}table.bip input.bip-cell:hover{border-color:var(--border-strong)}table.bip input.bip-cell:focus{border-color:var(--focus);outline:none}table.bip input.bip-cell.zero{color:var(--text-muted)}table.bip td.over input.bip-cell{border-color:var(--accent);font-weight:600}table.bip td.sel input.bip-cell{box-shadow:0 0 0 1px var(--focus)}table.bip input.bip-cell.invalid{border-color:var(--critical)}.bip-bar{min-height:var(--h-control);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.over-key{border:1px solid var(--accent);vertical-align:-2px;border-radius:3px;width:12px;height:12px;display:inline-block}.chart-title{font-size:var(--fs-12);color:var(--text-secondary);font-weight:500}.qc-block{border:1px solid var(--border);border-radius:var(--r-inner);background:var(--surface-1);min-width:0}.qc-block>summary{cursor:pointer;flex-wrap:wrap;align-items:center;gap:8px;min-height:38px;padding:0 12px;list-style:none;display:flex}.qc-block>summary::-webkit-details-marker{display:none}.qc-block>summary:before{content:"";border-right:1.5px solid var(--text-muted);border-bottom:1.5px solid var(--text-muted);flex:none;width:6px;height:6px;transition:transform .12s;transform:rotate(-45deg)}.qc-block[open]>summary:before{transform:rotate(45deg)}.qc-block[open]>summary{border-bottom:1px solid var(--border)}.qc-block-title{font-weight:600}.qc-block-right{align-items:center;gap:8px;margin-left:auto;display:flex}.qc-block-body{flex-direction:column;gap:10px;min-width:0;padding:10px 12px 12px;display:flex}.qc-checks{border:1px solid var(--border);border-radius:var(--r-inner);margin:0;padding:0;list-style:none}.qc-check{grid-template-columns:84px minmax(0,1fr) minmax(180px,300px);align-items:start;gap:12px;padding:8px 10px;display:grid}.qc-check+.qc-check{border-top:1px solid var(--border)}.qc-check.fail{background:color-mix(in srgb, var(--critical) 6%, transparent)}.qc-status{padding-top:1px}.qc-name{color:var(--text-primary);font-weight:500}.qc-msg{color:var(--text-secondary)}.qc-ref{color:var(--text-muted);font-size:var(--fs-11);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.qc-vl{font-size:var(--fs-12);grid-template-columns:auto minmax(0,1fr);gap:2px 8px;margin:0;display:grid}.qc-vl dt{color:var(--text-muted)}.qc-vl dd{color:var(--text-secondary);overflow-wrap:anywhere;margin:0}@media (width<=900px){.qc-check{grid-template-columns:76px minmax(0,1fr)}.qc-vl{grid-column:2}}.note-list{color:var(--text-secondary);font-size:var(--fs-12);flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.note-list li{align-items:baseline;gap:6px;display:flex}.note-list li svg{flex:none;transform:translateY(1px)}.qc-form{flex-wrap:wrap;align-items:center;gap:8px 20px;display:flex}.field-inline{color:var(--text-secondary);grid-template-columns:auto 112px;align-items:center;gap:8px;display:grid}.field-inline .unit,.tol-label .unit{color:var(--text-muted);font-size:var(--fs-11);margin-left:4px}.sg-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:4px 16px;display:grid}.sep-form{grid-template-columns:minmax(0,1fr) minmax(260px,340px);align-items:start;gap:16px;display:grid}.mmp-form,.obm-form{grid-template-columns:minmax(0,1fr) minmax(260px,320px);align-items:start;gap:16px;display:grid}.study-form{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));align-items:center;gap:4px 20px;display:grid}.study-h{font-size:var(--fs-13)}@media (width<=1100px){.sep-form,.mmp-form,.obm-form{grid-template-columns:minmax(0,1fr)}}table.data tfoot td{font-size:var(--fs-12);border-bottom:0}.progress-track{background:var(--surface-3);border-radius:2px;flex:1;max-width:160px;height:4px;margin:7px 0 0 auto;overflow:hidden}.progress-track>span{background:var(--accent);height:100%;transition:width .2s;display:block}.tolerances{border:1px solid var(--border);border-radius:var(--r-inner);padding:4px 12px}.tolerances[open]{padding-bottom:12px}.tol-grid{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:10px;display:grid}.tol-family{border:1px solid var(--border);border-radius:var(--r-control);flex-direction:column;gap:4px;min-width:0;margin:0;padding:4px 10px 8px;display:flex}.tol-family legend{font-family:var(--mono);font-size:var(--fs-12);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);align-items:center;gap:4px;padding:0 4px;display:flex}.tol-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.tol-label{color:var(--text-secondary);font-size:var(--fs-12);line-height:1.3}.tol-tag{font-size:var(--fs-11);color:var(--text-muted);margin-left:6px;font-style:italic;display:inline-block}.tol-tag.edited{color:var(--warning);font-style:normal}.tol-inputs{gap:4px;display:grid}.tol-inputs .input{text-align:right;height:24px}.export-grid{gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(360px,1fr));display:grid}.export-card{border:1px solid var(--border);border-radius:var(--r-inner);flex-direction:column;gap:8px;min-width:0;padding:10px 12px;display:flex}.export-card>header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.export-card h4{font-size:var(--fs-13)}.export-controls{flex-wrap:wrap;gap:6px 16px;display:flex}.code-preview{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-inner);max-height:320px;font:var(--fs-12) / 1.45 var(--mono);color:var(--text-secondary);white-space:pre;margin:0;padding:8px 10px;overflow:auto}@media (width<=720px){.export-grid,.tol-grid{grid-template-columns:minmax(0,1fr)}}.ws-tabs{border-bottom:1px solid var(--border);padding:0 8px}.ws-tabs .tabs{border-bottom:0;flex-wrap:wrap;column-gap:0;overflow:visible}.ws-tabs .tabs button{padding:0 10px}.auth-page{background:var(--page);flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100%;padding:32px 16px;display:flex;position:relative}.auth-page:before{content:"";pointer-events:none;position:fixed;inset:0;box-shadow:inset 0 0 40px #9046ff40}.auth-card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-panel);flex-direction:column;gap:12px;width:min(400px,100%);padding:32px 28px 28px;display:flex;position:relative}.auth-brand{font-family:var(--mono);font-weight:700;font-size:var(--fs-15);letter-spacing:-.03em;align-items:center;gap:8px;margin-bottom:12px;display:flex}.auth-brand.splash{color:var(--text-secondary);gap:10px;margin:0}.auth-card h1{font-size:var(--fs-24);line-height:1.2}.auth-sub{color:var(--text-secondary);font-size:var(--fs-13);margin:0 0 6px}.auth-form{flex-direction:column;gap:14px;display:flex}.auth-field{flex-direction:column;gap:5px;display:flex}.auth-field label{color:var(--text-secondary);font-size:var(--fs-12);font-weight:500}.auth-field .input{height:40px;font-size:var(--fs-13);font-variant-numeric:normal;padding:0 12px}.auth-field-error{color:var(--critical);font-size:var(--fs-12)}.auth-field-hint{color:var(--text-muted);font-size:var(--fs-12)}.pw-wrap{position:relative}.pw-wrap .input{padding-right:40px}.pw-toggle{position:absolute;top:4px;right:4px}.pw-toggle.btn.icon{background:0 0;border-color:#0000}.auth-submit{justify-content:center;width:100%;height:auto;min-height:44px;padding:12px 20px;font-size:14px;line-height:20px;text-decoration:none}.auth-row-end{font-size:var(--fs-12);justify-content:flex-end;margin-top:-6px;display:flex}.auth-page a:not(.btn){color:var(--accent-text);text-decoration:none}.auth-page a:not(.btn):hover{text-decoration:underline}.auth-alert{font-size:var(--fs-12);color:var(--text-primary)}.good-callout{border-color:color-mix(in srgb, var(--good) 45%, transparent);align-items:center}.auth-inline-action{margin-top:8px}.auth-note{color:var(--text-secondary);font-size:var(--fs-12);margin:6px 0 0}.auth-fine{color:var(--text-muted);font-size:var(--fs-12);margin:4px 0 0}.auth-foot{color:var(--text-secondary);font-size:var(--fs-13)}.auth-tagline{color:var(--text-muted);font-size:var(--fs-12);margin:0}.auth-illus{background:var(--accent-soft);width:56px;height:56px;color:var(--accent-text);border-radius:50%;place-items:center;margin:4px 0;display:grid}.auth-stack{flex-direction:column;align-items:flex-start;display:flex}@media (width<=480px){.auth-page{justify-content:flex-start;padding-top:24px}.auth-card{padding:22px 18px 20px}.auth-card h1{font-size:22px}}.gate{justify-content:center;align-items:flex-start;min-height:100%;padding:48px 16px;display:flex}.gate-card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-panel);flex-direction:column;gap:10px;width:min(520px,100%);padding:24px;display:flex}.gate-card.wide{width:min(680px,100%)}.gate-card.loading{flex-direction:row;align-items:center}.gate-card h2{font-size:var(--fs-18);line-height:1.3}.gate-card p{margin:0}.gate-icon{background:var(--accent-soft);width:36px;height:36px;color:var(--accent-text);border-radius:10px;place-items:center;display:grid}.gate-foot{font-size:var(--fs-12)}.holders{border:1px solid var(--border);border-radius:var(--r-inner);margin:2px 0;padding:0;list-style:none}.holders li{flex-wrap:wrap;justify-content:space-between;gap:12px;padding:8px 10px;display:flex}.holders li+li{border-top:1px solid var(--border)}.holder-name{font-weight:600}.table-scroll{overflow-x:auto}.plan-compare th[scope=row]{font-weight:600}.plan-compare th[scope=row] .badge{margin-left:6px}table.data.plan-compare th,table.data.plan-compare td{text-align:left;white-space:normal;vertical-align:top}table.data.plan-compare tbody th{white-space:nowrap;color:var(--text-primary);background:0 0;position:static}table.data.plan-compare tr.current th,table.data.plan-compare tr.current td{background:var(--accent-soft)}.limit-notice{margin:var(--gutter) var(--gutter) 0;color:var(--text-primary);align-items:center}.limit-notice .limit-text{flex:1}.limit-notice a{color:var(--accent-text)}.local-badge{border-color:var(--accent-line);color:var(--accent-text)}.save-status{color:var(--text-muted);font-size:var(--fs-12);white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.save-status.warn{color:var(--warning)}.menu-wrap{position:relative}.menu{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--r-inner);min-width:260px;max-width:min(340px,100vw - 24px);max-height:min(480px,100vh - 80px);box-shadow:var(--shadow-pop);z-index:45;padding:4px;position:absolute;top:calc(100% + 6px);left:0;overflow:auto}.menu-right{left:auto;right:0}.menu-head{font-family:var(--mono);font-size:var(--fs-12);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:6px 8px 4px}.menu-note{color:var(--text-muted);font-size:var(--fs-12);align-items:center;gap:6px;padding:6px 8px;display:flex}.critical-text{color:var(--critical)}.menu-item{border-radius:var(--r-control);text-align:left;cursor:pointer;width:100%;min-height:30px;color:var(--text-primary);background:0 0;border:0;align-items:center;gap:8px;padding:4px 8px;display:flex}.menu-item:hover{background:var(--surface-3)}.menu-item.current{color:var(--accent-text)}.menu-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.menu-icon-gap{flex:none;width:14px}.menu-sep{background:var(--border);height:1px;margin:4px 0}.avatar-btn{cursor:pointer;background:0 0;border:0;border-radius:50%;padding:0}.avatar{background:var(--surface-3);border:1px solid var(--border-strong);width:28px;height:28px;font-size:var(--fs-11);color:var(--text-primary);border-radius:50%;place-items:center;font-weight:700;display:grid}.avatar-btn:hover .avatar,.avatar-btn[aria-expanded=true] .avatar{border-color:var(--accent-line);background:var(--accent-soft)}.avatar-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.avatar.avatar-md{width:36px;height:36px;font-size:var(--fs-12);background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-text);flex:none}.menu.user-menu{width:272px;min-width:0;padding:6px}.user-menu-head{align-items:center;gap:10px;padding:8px 8px 4px;display:flex}.user-menu-id{min-width:0}.user-name{font-weight:600;font-size:var(--fs-13);text-overflow:ellipsis;white-space:nowrap;line-height:1.3;overflow:hidden}.user-email{font-size:var(--fs-12);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.user-menu-meta{font-size:var(--fs-12);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;padding:4px 8px 8px 54px;overflow:hidden}.user-menu .menu-sep{margin:4px 2px}.user-menu .menu-item{min-height:34px;color:var(--text-primary);transition:background-color var(--ease);gap:10px;padding:6px 10px}.user-menu .menu-item svg{color:var(--text-secondary)}.user-menu .menu-item:hover svg,.user-menu .menu-item:focus-visible svg{color:var(--text-primary)}.user-menu .menu-item:focus-visible{background:var(--surface-3);outline:none}.invite-form{grid-template-columns:minmax(0,1fr) 120px auto;gap:8px;display:grid}.role-select{width:auto;min-width:110px}.team-table td{vertical-align:middle}@media (width<=560px){.invite-form{grid-template-columns:minmax(0,1fr) 110px}.invite-form .btn{grid-column:1/-1;justify-content:center}}@media (width<=480px){.brand-text,.menu-chevron,.topbar>.nav-toggle,.hide-xs{display:none}.topbar{gap:8px}}a.btn{text-decoration:none}.empty-state{text-align:center;align-items:center;gap:10px;padding:40px 24px}.empty-state h2{font-size:var(--fs-18)}.empty-state>p{max-width:560px;margin:0}.empty-icon{background:var(--accent-soft);width:40px;height:40px;color:var(--accent-text);border-radius:12px;place-items:center;display:grid}.empty-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:6px;display:flex}.empty-paste{text-align:left;flex-direction:column;gap:8px;width:min(640px,100%);margin-top:6px;display:flex}.empty-paste textarea{width:100%;min-height:160px}.empty-note{font-size:var(--fs-12);margin-top:8px!important}.empty-note svg{vertical-align:-2px;margin-right:4px}.empty-form{text-align:left;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 12px;width:min(720px,100%);margin-top:6px;display:grid}.empty-form label{font-size:var(--fs-12);color:var(--text-secondary);flex-direction:column;gap:4px;display:flex}.linklike{color:var(--accent-text);cursor:pointer;font:inherit;text-underline-offset:2px;background:0 0;border:0;padding:0;text-decoration:underline}.demo-banner{margin-bottom:var(--gap);border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:var(--r-inner);color:var(--text-primary);font-size:var(--fs-12);align-items:center;gap:8px;padding:6px 12px;display:flex}.demo-banner .spacer{flex:1}.demo-banner .btn{height:26px;min-height:26px;font-size:var(--fs-12);padding:0 10px}.project-name-btn{max-width:260px;height:var(--h-control);border:0;border-left:1px solid var(--border);color:var(--text-primary);font:inherit;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;padding:0 12px;overflow:hidden}.project-name-btn:hover{color:var(--accent-text)}.ov-check{margin:0;padding:0;list-style:none}.ov-check li{border-bottom:1px solid var(--border);align-items:center;gap:10px;min-height:40px;display:flex}.ov-check li:last-child{border-bottom:0}.ov-check .done{color:var(--good)}.ov-check .todo{color:var(--text-muted)}.ov-check .ov-check-label{flex:1}.ov-check li.is-done .ov-check-label{color:var(--text-muted);text-decoration:line-through}.acct-choice{border:0;flex-direction:column;gap:8px;min-width:0;margin:0;padding:0;display:flex}.acct-choice legend{color:var(--text-primary);font-size:var(--fs-13);margin-bottom:8px;padding:0;font-weight:500}.acct-options{grid-template-columns:1fr 1fr;gap:8px;display:grid}.acct-option{border:1px solid var(--border-strong);border-radius:var(--r-inner);background:var(--surface-2);color:var(--text-secondary);cursor:pointer;transition:border-color var(--ease), background var(--ease);grid-template-columns:auto 1fr;align-items:center;gap:2px 8px;padding:12px;display:grid;position:relative}.acct-option:hover{border-color:var(--accent-line)}.acct-option.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}.acct-option input{opacity:0;pointer-events:none;position:absolute}.acct-option:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}.acct-title{color:var(--text-primary);font-size:var(--fs-13);font-weight:600}.acct-desc{color:var(--text-muted);font-size:var(--fs-12);grid-column:1/-1;line-height:1.35}@media (width<=360px){.acct-options{grid-template-columns:1fr}}.trial-banner{margin-bottom:var(--gap);border:1px solid color-mix(in srgb, var(--warning) 45%, transparent);background:color-mix(in srgb, var(--warning) 10%, transparent);border-radius:var(--r-inner);color:var(--text-primary);font-size:var(--fs-12);flex-wrap:wrap;align-items:center;gap:8px;padding:6px 12px;display:flex}.trial-banner.ended{border-color:color-mix(in srgb, var(--critical) 50%, transparent);background:color-mix(in srgb, var(--critical) 10%, transparent)}.trial-banner .spacer{flex:1}.trial-banner a{color:var(--accent-text)}.trial-ended{color:var(--critical)}.auth-page a.auth-brand,.auth-page a.auth-brand:hover{color:var(--text-primary);text-decoration:none}.main .page,.main>.gate,.page-enter{animation:page-in var(--dur-page) var(--ease-out) backwards}@keyframes page-in{0%{opacity:0;transform:translateY(4px)}}.skel{background:linear-gradient(90deg, var(--surface-2) 25%, var(--skeleton-hi) 50%, var(--surface-2) 75%);background-size:300% 100%;border-radius:6px;animation:1.4s ease-in-out infinite skel-shimmer;display:block}.skel.line{height:12px}.skel.title{width:220px;height:22px}.skel.block{border-radius:var(--r-inner);height:100%;min-height:120px}@keyframes skel-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.page-skeleton{padding:var(--gutter);gap:var(--gap);grid-template-columns:repeat(12,minmax(0,1fr));max-width:1760px;display:grid}.page-skeleton>.head{flex-direction:column;grid-column:1/-1;gap:8px;padding:6px 0 8px;display:flex}.page-skeleton>.card{border:1px solid var(--border);border-radius:var(--r-panel);background:var(--surface-1);flex-direction:column;grid-column:span 4;gap:12px;height:220px;padding:16px;display:flex}.page-skeleton>.card.wide{grid-column:span 8}@media (width<=900px){.page-skeleton>.card,.page-skeleton>.card.wide{grid-column:1/-1}}.skel.pill{border-radius:var(--r-pill);width:116px;height:30px}.skel.input{height:var(--h-control);border-radius:var(--r-control)}.skel.round{border-radius:50%;flex:none}.skel.square{border-radius:8px}.skel.bar{border-radius:3px;height:6px}.sk-page .skel.block{min-height:0}.sk-head,.sk-hero{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.sk-head{padding:2px 0 4px}.sk-hero{border:1px solid var(--border);border-radius:var(--r-panel);background:var(--surface-1);padding:22px 24px}.sk-head-text{flex-direction:column;flex:260px;gap:8px;min-width:0;display:flex}.sk-head-actions{gap:8px;display:flex}.sk-tabs{border-bottom:1px solid var(--border);gap:2px;display:flex;overflow:hidden}.sk-tab{border-bottom:2px solid #0000;flex:none;align-items:center;height:34px;padding:0 12px;display:flex}.sk-tab.on{border-bottom-color:var(--accent-line)}.sk-panel{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-panel);min-width:0}.sk-panel.sk-accent{border-color:var(--accent-line)}.sk-panel-head{border-bottom:1px solid var(--border);align-items:center;min-height:48px;padding:0 16px;display:flex}.sk-panel-head .skel{max-width:220px}.sk-panel-body{flex-direction:column;gap:12px;padding:16px;display:flex}.sk-col{gap:var(--gap);flex-direction:column;min-width:0;display:flex}.sk-module{gap:var(--gap);grid-template-columns:minmax(260px,340px) minmax(0,1fr);align-items:start;display:grid}.sk-module.sk-even{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.sk-form{flex-direction:column;gap:14px;display:flex}.sk-field{flex-direction:column;gap:6px;display:flex}.sk-chart{flex-direction:column;gap:8px;display:flex}.sk-chart-plot{border-left:1px solid var(--border);border-bottom:1px solid var(--border);flex:1;padding:0 0 6px 6px;display:flex}.sk-chart-x{justify-content:space-between;padding-left:6px;display:flex}.sk-table{border:1px solid var(--border);border-radius:var(--r-inner);display:grid;overflow:hidden}.sk-th,.sk-td{border-bottom:1px solid var(--border);padding:11px 12px}.sk-th{background:var(--surface-2)}.sk-dash-grid{grid-template-columns:minmax(0,2fr) minmax(300px,1fr);align-items:start;gap:16px;display:grid}.sk-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.sk-mini{border:1px solid var(--border);border-radius:var(--r-inner);flex-direction:column;gap:10px;padding:14px;display:flex}.sk-invite{grid-template-columns:minmax(0,1fr) 120px auto;gap:8px;display:grid}.sk-rows{flex-direction:column;display:flex}.sk-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 0;display:flex}.sk-row.boxed{border:1px solid var(--border);border-radius:var(--r-control);margin-bottom:6px;padding:10px 12px}.sk-row-text{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.sk-profile-hero{flex-wrap:wrap;align-items:center;gap:16px 20px;padding:18px 20px;display:flex}.sk-facts{flex-wrap:wrap;gap:28px;display:flex}.sk-facts .sk-head-text{flex:none}.sk-chips{flex-wrap:wrap;gap:6px;display:flex}.sk-chips .skel.pill{height:24px}.sk-licences{flex-direction:column;gap:14px;display:flex}.sk-seat-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.sk-seat{border:1px solid var(--border);border-radius:var(--r-inner);background:var(--surface-2);flex-direction:column;gap:10px;padding:12px 14px;display:flex}.sk-seat-top{justify-content:space-between;gap:8px;display:flex}.sk-page.sk-bare,.acct-embedded .sk-page,.panel-body>.sk-licences{padding:0}@media (width<=1100px){.sk-dash-grid,.sk-module,.sk-module.sk-even{grid-template-columns:minmax(0,1fr)}}@media (width<=640px){.sk-cards,.sk-invite{grid-template-columns:minmax(0,1fr)}}.app-skeleton .sk-topbar{border-bottom:1px solid var(--border);background:var(--surface-1);grid-column:1/-1;align-items:center;gap:12px;padding:0 14px;display:flex}.app-skeleton .sk-topbar .spacer{flex:1}.app-skeleton .sk-nav{border-right:1px solid var(--border);background:var(--surface-1);flex-direction:column;gap:14px;padding:18px 12px;display:flex}.app-skeleton .main{overflow:hidden}html.theme-fade body,html.theme-fade .topbar,html.theme-fade .nav,html.theme-fade .panel,html.theme-fade .main{transition:background-color .2s,border-color .2s,color .2s}@media (prefers-reduced-motion:reduce){.main .page,.main>.gate,.page-enter,.skel{animation:none}}.badge.accent{color:var(--accent-text);border-color:var(--accent-line);background:var(--accent-soft)}.btn.sm{height:26px;font-size:var(--fs-12);padding:0 10px}.dash{gap:16px}.dash-hero{border:1px solid var(--border);border-radius:var(--r-panel);background:radial-gradient(120% 140% at 100% 0%, var(--accent-soft), transparent 55%), var(--surface-1);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;padding:22px 24px;display:flex}.dash-hero-text{flex-direction:column;gap:6px;min-width:0;display:flex}.dash-eyebrow{font-family:var(--mono);font-size:var(--fs-12);letter-spacing:.04em;color:var(--accent-text);margin:0}.dash-hero h1{min-height:32px;font-size:28px;line-height:1.15}.dash-meta{font-size:var(--fs-12);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dash-hero .actions{flex-wrap:wrap;gap:8px;display:flex}.dash-grid{grid-template-columns:minmax(0,2fr) minmax(300px,1fr);align-items:stretch;gap:16px;display:grid}.dash-card.dash-fill{flex:auto;min-height:0}.dash-card.dash-fill,.dash-card.dash-cap{overflow:hidden}.dash-card.dash-fill>.dash-card-body{flex:1 1 0;min-height:260px}.dash-card.dash-cap>.dash-card-body{max-height:380px}.dash-card.dash-fill>.dash-card-body,.dash-card.dash-cap>.dash-card-body{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;background:linear-gradient(var(--surface-1) 40%, transparent) center top / 100% 28px no-repeat local, linear-gradient(transparent, var(--surface-1) 60%) center bottom / 100% 28px no-repeat local, linear-gradient(color-mix(in srgb, var(--text-primary) 9%, transparent), transparent) center top / 100% 16px no-repeat scroll, linear-gradient(transparent, color-mix(in srgb, var(--text-primary) 9%, transparent)) center bottom / 100% 16px no-repeat scroll;overflow-y:auto}.dash-card.dash-fill>.dash-card-body::-webkit-scrollbar{width:8px}.dash-card.dash-cap>.dash-card-body::-webkit-scrollbar{width:8px}.dash-card.dash-fill>.dash-card-body::-webkit-scrollbar-thumb{background:var(--border-strong);border:2px solid var(--surface-1);border-radius:8px}.dash-card.dash-cap>.dash-card-body::-webkit-scrollbar-thumb{background:var(--border-strong);border:2px solid var(--surface-1);border-radius:8px}.dash-card.dash-fill>.dash-card-body::-webkit-scrollbar-track{background:0 0}.dash-card.dash-cap>.dash-card-body::-webkit-scrollbar-track{background:0 0}.dash-main,.dash-side{flex-direction:column;gap:16px;min-width:0;display:flex}@media (width<=1100px){.dash-grid{grid-template-columns:minmax(0,1fr)}.dash-card.dash-fill>.dash-card-body{flex:none;min-height:0;max-height:420px}}.dash-card .panel-head .dash-head-icon{color:var(--accent-text);flex:none}.dash-note{font-size:var(--fs-12);margin:0 0 10px}.dash-note:last-child{margin-bottom:0}.dash-project{flex-direction:column;gap:2px;margin-bottom:14px;display:flex}.dash-project-name{font-family:var(--mono);font-weight:700;font-size:var(--fs-18);letter-spacing:-.02em}.dash-progress{background:var(--surface-3);border-radius:3px;height:6px;overflow:hidden}.dash-progress>span{background:var(--accent);height:100%;transition:width .3s var(--ease-out);border-radius:3px;display:block}.dash-progress-label{font-size:var(--fs-12);justify-content:space-between;margin:8px 0 4px;display:flex}.dash-holdings{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.dash-holding{border:1px solid var(--border);border-radius:var(--r-inner);background:var(--surface-2);cursor:pointer;text-align:left;width:100%;transition:border-color var(--ease);align-items:center;gap:8px;padding:10px 12px;display:flex}.dash-holding svg:first-child{color:var(--accent-text);flex:none}.dash-holding .muted{font-size:var(--fs-12);white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.dash-holding-label{white-space:nowrap;font-weight:600}.dash-go{color:var(--text-muted);transition:transform var(--ease), color var(--ease);flex:none;margin-left:auto}.dash-holding:hover,.dash-quick-card:hover{border-color:var(--accent-line)}.dash-holding:hover .dash-go,.dash-links a:hover .dash-go{color:var(--accent-text);transform:translate(2px)}.dash-quick{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}@media (width<=760px){.dash-quick{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=480px){.dash-quick{grid-template-columns:minmax(0,1fr)}}.dash-quick-card{text-align:left;border:1px solid var(--border);border-radius:var(--r-inner);background:var(--surface-2);cursor:pointer;transition:border-color var(--ease), transform var(--ease);flex-direction:column;align-items:flex-start;gap:6px;padding:14px;display:flex}.dash-quick-card:hover{transform:translateY(-1px)}.dash-quick-icon{background:var(--accent-soft);width:30px;height:30px;color:var(--accent-text);border-radius:8px;place-items:center;display:grid}.dash-quick-title{margin-top:2px;font-weight:600}.dash-quick-purpose{color:var(--text-secondary);font-size:var(--fs-12);line-height:1.45}.dash-quick-holds{font-size:var(--fs-12);color:var(--text-muted);margin-top:auto;padding-top:6px}.dash-quick-holds.has{color:var(--text-primary)}.dash-list{margin:0;padding:0;list-style:none}.dash-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;min-height:48px;display:flex}.dash-row.compact{min-height:38px}.dash-row:last-child{border-bottom:0}.dash-row-icon{color:var(--text-muted);flex:none}.dash-row-main{flex-direction:column;flex:1;min-width:0;display:flex}.dash-row-main .muted{font-size:var(--fs-12)}.dash-row-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.dash-empty{border:1px dashed var(--border-strong);border-radius:var(--r-inner);background:var(--surface-2);align-items:flex-start;gap:14px;margin-top:12px;padding:16px;display:flex}.dash-empty>svg{color:var(--accent-text);flex:none;margin-top:2px}.dash-empty p{font-size:var(--fs-12);max-width:560px;margin:4px 0 12px}.dash-ai{border-color:var(--accent-line);background:linear-gradient(160deg, var(--accent-soft), transparent 60%), var(--surface-1)}.dash-ai .panel-body{flex-direction:column;gap:14px;display:flex}.dash-ai-head{align-items:flex-start;gap:12px;display:flex}.dash-ai-head h3{font-family:var(--mono);font-size:var(--fs-15);letter-spacing:-.02em}.dash-ai-head p{font-size:var(--fs-12);margin:4px 0 0}.dash-ai-icon{background:var(--accent);width:32px;height:32px;color:var(--accent-ink);border-radius:10px;flex:none;place-items:center;display:grid}.dash-prompts{flex-direction:column;gap:6px;display:flex}.dash-prompt{border:1px solid var(--border);border-radius:var(--r-control);background:var(--surface-1);color:var(--text-secondary);font-size:var(--fs-12);text-align:left;cursor:pointer;transition:border-color var(--ease), color var(--ease);justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;display:flex}.dash-prompt:hover{border-color:var(--accent-line);color:var(--text-primary)}.dash-prompt svg{color:var(--accent-text);flex:none}.dash-seats{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.dash-seat{border-radius:var(--r-control);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 10px;width:100%;margin:0 -6px;padding:8px 6px;display:grid}.dash-seat:hover:not(:disabled){background:var(--surface-2)}.dash-seat:disabled{cursor:default}.dash-seat-label{font-weight:500}.dash-seat-text{font-size:var(--fs-12);color:var(--text-secondary);font-variant-numeric:tabular-nums}.dash-seat-text.full{color:var(--warning)}.dash-seat-text.locked{color:var(--critical)}.dash-meter{background:var(--surface-3);border-radius:2px;grid-column:1/-1;height:4px;overflow:hidden}.dash-meter>span{background:var(--accent);height:100%;display:block}.dash-meter.full>span{background:var(--warning)}.dash-missing{border-top:1px solid var(--border);margin-top:10px;padding-top:8px}.dash-missing-head{font-size:var(--fs-11);text-transform:uppercase;letter-spacing:.08em;font-family:var(--mono)}.dash-feed{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.dash-feed li{font-size:var(--fs-12);color:var(--text-secondary);grid-template-columns:10px minmax(0,1fr) auto;align-items:baseline;gap:10px;padding:7px 0;display:grid}.dash-feed strong{color:var(--text-primary);font-weight:600}.dash-feed-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;transform:translateY(-1px)}.dash-feed-time{white-space:nowrap}.dash-links{margin:0;padding:0;list-style:none}.dash-links a{color:var(--text-primary);border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:8px 0;text-decoration:none;display:flex}.dash-links li:last-child a{border-bottom:0}.dash-links a>svg:first-child{color:var(--accent-text)}@media (width<=640px){.dash-hero{padding:18px}.dash-hero h1{font-size:var(--fs-24)}}@media (prefers-reduced-motion:reduce){.dash-quick-card:hover{transform:none}}.fieldset-title .nocase,.fieldset-title .unit,.fieldset-title .typical-badge,.nocase{text-transform:none}.review-card{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;flex-direction:column;gap:6px;padding:12px 14px;display:flex}.review-card.approved{border-color:color-mix(in srgb, var(--good) 55%, var(--border))}.review-note{white-space:pre-wrap;margin:2px 0}.approval-stamp{color:var(--text-primary);align-items:flex-start;gap:12px;display:flex}.approval-stamp>svg{color:var(--good);flex:none;margin-top:2px}.stamp-title{letter-spacing:.04em;color:var(--good);font-weight:700}.stamp-comment{margin:2px 0;font-style:italic}.reporting-banner{border:1px solid color-mix(in srgb, var(--good) 60%, var(--border));background:color-mix(in srgb, var(--good) 12%, transparent);border-radius:10px;align-items:center;gap:10px;margin:0 0 12px;padding:8px 14px;display:flex}.reporting-banner>svg{color:var(--good);flex:none}.reporting-text{flex-direction:column;gap:2px;min-width:0;display:flex}.collab-dock{z-index:40;align-items:center;gap:8px;display:flex;position:fixed;bottom:18px;right:18px}.presence{align-items:center;display:flex}.presence .avatar{background:var(--accent);width:28px;height:28px;color:var(--accent-ink);border:2px solid var(--surface-1);border-radius:50%;place-items:center;margin-left:-6px;font-size:11px;font-weight:700;display:grid}.presence .avatar.me{background:var(--text-muted)}.comments-drawer{right:0;top:var(--h-topbar);z-index:45;background:var(--surface-1);border-left:1px solid var(--border);width:min(420px,100vw);box-shadow:var(--shadow-pop);flex-direction:column;display:flex;position:fixed;bottom:0}.comments-drawer header{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:12px 14px;display:flex}.comments-drawer .body{flex-direction:column;flex:1;gap:10px;padding:12px 14px;display:flex;overflow:auto}.comments-drawer footer{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding:10px 14px;display:flex}.thread{border:1px solid var(--border);border-radius:10px;padding:10px 12px}.thread.resolved{opacity:.7}.thread.mentions-me{border-color:var(--accent)}.comment+.comment{border-top:1px dashed var(--border);margin-top:8px;padding-top:8px}.comment .meta{font-size:12px}.comment p{white-space:pre-wrap;margin:4px 0 0}.mention{color:var(--accent-text);font-weight:600}.form-field{flex-direction:column;gap:4px;min-width:0;display:flex}.form-field>span{color:var(--text-secondary);font-size:var(--fs-12,12px)}.form-field textarea.input{resize:vertical;height:auto;padding:6px 8px}.review-page .review-card .grid{gap:12px}.collab-dock[hidden]{display:none}.demo-banner.sample-banner{flex-wrap:wrap;row-gap:6px}.sample-banner .sample-lock{align-items:center;gap:6px;display:inline-flex}.tutorial-panel{z-index:40;background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--r-inner,12px);width:min(360px,100vw - 32px);box-shadow:var(--shadow-pop);flex-direction:column;gap:8px;padding:14px 16px 12px;display:flex;position:fixed;bottom:16px;right:16px}.tutorial-head{align-items:center;gap:8px;display:flex}.tutorial-head .tutorial-count{color:var(--text-muted);font-size:var(--fs-11);font-variant-numeric:tabular-nums}.tutorial-head .spacer{flex:1}.tutorial-panel h3{font-size:var(--fs-15);margin:0;font-weight:600}.tutorial-panel p{color:var(--text-secondary);font-size:var(--fs-13);margin:0;line-height:1.5}.tutorial-panel .tutorial-try{color:var(--text-primary)}.tutorial-dots{gap:4px;display:flex}.tutorial-dots span{background:var(--border-strong);border-radius:3px;width:6px;height:6px}.tutorial-dots span.on{background:var(--accent)}.tutorial-actions{align-items:center;gap:8px;margin-top:2px;display:flex}.tutorial-actions .spacer{flex:1}@media (width<=640px){.tutorial-panel{width:auto;left:16px;right:16px}}
