: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);gap:2px;display:flex;overflow-x:auto}.tabs button{height:34px;color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:0 12px}.tabs button:hover{color:var(--text-primary)}.tabs button.on{color:var(--text-primary);border-bottom-color:var(--accent);font-weight:500}.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}.user-card{padding:8px 8px 4px}.user-name{font-weight:600;font-size:var(--fs-13)}.user-facts{font-size:var(--fs-12);grid-template-columns:auto 1fr;gap:2px 12px;margin:8px 0 0;display:grid}.user-facts dt{color:var(--text-muted)}.user-facts dd{color:var(--text-secondary);margin:0}.user-licences{font-size:var(--fs-12);flex-direction:column;gap:2px;margin-top:8px;display:flex}.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}}.theme-toggle button{justify-content:center;align-items:center;min-width:28px;padding:0 8px;display:inline-flex}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:start;gap:16px;display:grid}.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 .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}}.acct-body{gap:16px;display:grid}.acct-section{gap:10px;display:grid}.acct-section>h4{font-size:var(--fs-12);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:0;font-weight:600}.acct-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.acct-toolbar .spacer{flex:1}.acct-note{color:var(--text-secondary);font-size:var(--fs-12);margin:0}.seat-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.seat-card{border:1px solid var(--border);border-radius:var(--r-inner);background:var(--surface-2);gap:8px;padding:12px 14px;display:grid}.seat-card-head{align-items:baseline;gap:8px;display:flex}.seat-card-head strong{font-weight:600}.seat-card-head .num{font-variant-numeric:tabular-nums;color:var(--text-secondary);margin-left:auto}.seat-bar{gap:3px;height:6px;display:flex}.seat-bar>i{background:var(--surface-3);border-radius:3px;flex:1}.seat-bar>i.on{background:var(--accent)}.seat-holders{font-size:var(--fs-12);gap:2px;margin:0;padding:0;list-style:none;display:grid}.seat-holders li{justify-content:space-between;gap:8px;display:flex}.seat-holders .free{color:var(--text-muted)}.req-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.req-item{border:1px solid var(--border);border-radius:var(--r-control);grid-template-columns:1fr auto;align-items:center;gap:4px 12px;padding:10px 12px;display:grid}.req-item .req-meta{color:var(--text-muted);font-size:var(--fs-12)}.req-item .req-reason{color:var(--text-secondary);font-size:var(--fs-12);grid-column:1/-1}.perm-scroll{border:1px solid var(--border);border-radius:var(--r-inner);max-height:min(56vh,560px);overflow:auto}.perm-table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--fs-12)}.perm-table th,.perm-table td{border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;padding:7px 10px}.perm-table thead th{z-index:2;background:var(--surface-1);vertical-align:bottom;position:sticky;top:0}.perm-table th.perm-name,.perm-table td.perm-name{z-index:1;background:var(--surface-1);white-space:normal;min-width:190px;position:sticky;left:0}.perm-table thead th.perm-name{z-index:3}.perm-table td.perm-name small{color:var(--text-muted);display:block}.perm-table .perm-role{text-align:center;min-width:96px}.perm-table .perm-role small{color:var(--text-muted);font-weight:400;display:block}.perm-table td.perm-cell{text-align:center}.perm-table td.perm-cell input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.perm-table td.perm-cell input:disabled{cursor:not-allowed}.perm-table tr.perm-group th{background:var(--surface-2);color:var(--text-muted);font-size:var(--fs-11);letter-spacing:.04em;text-transform:uppercase;font-weight:600;position:sticky;left:0}.perm-table td.perm-cell.dirty{background:var(--accent-soft)}.role-actions{justify-content:center;gap:2px;margin-top:4px;display:flex}.audit-filters{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));align-items:end;gap:8px;display:grid}.audit-filters label{font-size:var(--fs-12);color:var(--text-secondary);gap:4px;display:grid}.audit-filters .wide{grid-column:span 2}.audit-table td{vertical-align:top}.audit-table .audit-action{font-family:var(--font-mono,ui-monospace, monospace);font-size:var(--fs-12)}.audit-table .audit-detail{max-width:340px;color:var(--text-secondary);font-size:var(--fs-12);white-space:normal;overflow-wrap:anywhere}.acct-pager{justify-content:flex-end;align-items:center;gap:8px;display:flex}@media (width<=560px){.audit-filters .wide{grid-column:auto}}.nav-item.nav-denied{opacity:.45;cursor:not-allowed}.acct-field{gap:6px;display:grid}.acct-field>label{font-size:var(--fs-12);color:var(--text-secondary);font-weight:500}.acct-field .select,.acct-field .input{width:100%}.acct-field textarea.input{resize:vertical;height:auto;min-height:76px;padding:8px 10px;line-height:1.45}table.data.audit-table th,table.data.audit-table td{text-align:left;vertical-align:top}.audit-table td.audit-when{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--text-secondary)}.menu-item:disabled,.menu-item[aria-disabled=true]{opacity:.45;cursor:not-allowed}.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}.nw-canvas{border:1px solid var(--border);border-radius:var(--r-panel,8px);background:var(--surface-1);min-height:320px;overflow:hidden}.nw-node{border:1px solid var(--border-strong);border-left:3px solid var(--text-muted);background:var(--surface-2);min-width:118px;color:var(--text-primary);border-radius:6px;padding:6px 8px;font-size:11px;line-height:1.35;box-shadow:0 1px 2px #0000002e}.nw-node.sel{outline:2px solid var(--accent);outline-offset:1px}.nw-node.worst{border-color:var(--critical);border-left-color:var(--critical)}.nw-node.dead{opacity:.6}.nw-well{border-left-color:var(--series-1)}.nw-source{border-left-color:var(--series-2)}.nw-joint{border-left-color:var(--series-3);min-width:86px}.nw-separator{border-left-color:var(--series-4)}.nw-sink{border-left-color:var(--series-5)}.nw-gasLiftManifold{border-left-color:var(--series-6)}.nw-node-head{align-items:center;gap:5px;margin-bottom:2px;font-weight:600;display:flex}.nw-glyph{color:var(--text-secondary)}.nw-name{text-overflow:ellipsis;white-space:nowrap;max-width:130px;overflow:hidden}.nw-node-body{flex-direction:column;gap:1px;display:flex}.nw-kv{color:var(--text-secondary);justify-content:space-between;gap:8px;display:flex}.nw-kv b{color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:500}.nw-flag{color:var(--warning);margin-top:2px;font-size:10px}.nw-flag.bad{color:var(--critical)}.nw-edge{stroke:var(--text-muted);stroke-width:1.8px}.nw-edge.sel{stroke:var(--accent);stroke-width:2.6px}.nw-edge.worst{stroke:var(--critical);stroke-width:2.6px}.nw-edge.rev{stroke-dasharray:5 3}.nw-e-liftGas{stroke:var(--series-6);stroke-dasharray:3 3}.nw-e-compressor{stroke:var(--series-4);stroke-width:2.6px}.nw-e-choke{stroke:var(--series-7)}.nw-edge-label-wrap{pointer-events:none;overflow:visible}.nw-edge-label{color:var(--text-secondary);background:color-mix(in srgb, var(--surface-1) 86%, transparent);font-variant-numeric:tabular-nums;border-radius:4px;flex-direction:column;align-items:center;padding:1px 3px;font-size:10px;display:flex}.nw-dp{color:var(--text-muted)}.nw-inspector{flex-direction:column;gap:8px;display:flex}.nw-insp-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.nw-profile-row{grid-template-columns:1fr 1fr auto;align-items:center;gap:6px;display:grid}.nw-diag{flex-direction:column;gap:6px;display:flex}.nw-diag-rows{font-variant-numeric:tabular-nums;max-height:170px;font-size:11px;overflow:auto}.nw-diag-rows table{border-collapse:collapse;width:100%}.nw-diag-rows th,.nw-diag-rows td{text-align:right;border-bottom:1px solid var(--border);white-space:nowrap;padding:2px 4px}.nw-diag-rows th:first-child,.nw-diag-rows td:first-child{text-align:left}.nw-add-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.nw-warn-list{flex-direction:column;gap:4px;max-height:180px;display:flex;overflow:auto}.nw-bind{color:var(--warning);font-weight:600}.nw-canvas .react-flow__controls button{background:var(--surface-2);color:var(--text-primary);border-color:var(--border)}.nw-canvas .react-flow__attribution{color:var(--text-muted);background:0 0}.nw-head-ctl{flex-wrap:nowrap;align-items:center;gap:6px;display:flex}.nw-head-ctl .select{width:auto;min-width:140px}.well-split{gap:var(--gap);grid-template-columns:minmax(300px,360px) minmax(0,1fr);align-items:start;display:grid}.well-split>*{min-width:0}.well-split .field.wide{grid-template-columns:auto minmax(0,1fr)}.well-split .field:has(>.select){grid-template-columns:auto minmax(0,1fr)}.well-split .seg{flex-wrap:wrap;max-width:100%;height:auto}.well-split .seg button{min-height:var(--h-control);white-space:nowrap}@media (width<=1100px){.well-split{grid-template-columns:1fr}}.well-cards{gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.well-rows{border-collapse:collapse;width:100%;font-size:var(--fs-12)}.well-rows th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:4px 6px;font-weight:500}.well-rows td{border-bottom:1px solid var(--border);padding:2px 4px}.well-rows td .input{width:100%;min-width:64px}.well-rows tr:hover td{background:var(--surface-2)}.well-rows .num{font-family:var(--mono);text-align:right}.well-row-tools{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;display:flex}.well-note{color:var(--text-muted);font-size:var(--fs-11);margin-top:4px}.well-solutions{flex-direction:column;gap:6px;display:flex}.well-solution{border:1px solid var(--border);border-radius:var(--r-control);background:var(--surface-2);font-size:var(--fs-12);align-items:baseline;gap:8px;padding:6px 8px;display:flex}.well-solution.op{border-color:var(--accent);background:var(--accent-soft)}.well-solution .tag{font-size:var(--fs-11);border:1px solid var(--border-strong);color:var(--text-secondary);border-radius:999px;padding:1px 6px}.well-solution .tag.stable{color:var(--good);border-color:var(--good)}.well-solution .tag.unstable{color:var(--critical);border-color:var(--critical)}.well-solution .rate{font-family:var(--mono);font-size:var(--fs-13);color:var(--text-primary)}.well-code{font-family:var(--mono);font-size:var(--fs-11);white-space:pre;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-control);max-height:320px;color:var(--text-secondary);padding:8px;overflow:auto}.well-band{flex-wrap:wrap;align-items:baseline;gap:16px;display:flex}.well-band .v{font-family:var(--mono);color:var(--text-primary)}.code-editor{border:1px solid var(--border-strong);border-radius:var(--r-inner);background:var(--plot-bg,var(--surface-1));grid-template-columns:auto minmax(0,1fr);min-height:320px;display:grid;overflow:hidden}.code-editor:focus-within{border-color:var(--focus);box-shadow:0 0 0 3px var(--accent-soft)}.code-gutter{font-family:var(--mono);font-size:var(--fs-12);color:var(--text-muted);text-align:right;-webkit-user-select:none;user-select:none;border-right:1px solid var(--border);font-variant-numeric:tabular-nums;padding:10px 8px 10px 12px;line-height:20px;overflow:hidden}.code-input{resize:vertical;width:100%;height:100%;min-height:320px;color:var(--text-primary);font-family:var(--mono);font-size:var(--fs-12);tab-size:2;white-space:pre;background:0 0;border:0;outline:none;margin:0;padding:10px 12px;line-height:20px;display:block;overflow:auto}.code-block{border:1px solid var(--border);border-radius:var(--r-inner);background:var(--plot-bg,var(--surface-1));position:relative}.code-block pre{max-height:360px;font-family:var(--mono);font-size:var(--fs-12);color:var(--text-primary);margin:0;padding:12px 14px;line-height:19px;overflow:auto}.code-copy{height:26px;font-size:var(--fs-11);position:absolute;top:6px;right:6px}.script-layout{gap:var(--gap);grid-template-columns:240px minmax(0,1fr);align-items:start;display:grid}@media (width<=900px){.script-layout{grid-template-columns:minmax(0,1fr)}}.script-list{flex-direction:column;gap:2px;display:flex}.script-item{border-radius:var(--r-control);width:100%;min-height:32px;color:var(--text-secondary);text-align:left;cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:4px 8px;display:flex}.script-item:hover{background:var(--surface-2);color:var(--text-primary)}.script-item[aria-current=true]{background:var(--accent-soft);border-color:var(--accent-line);color:var(--text-primary)}.script-item .name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.script-item .sub{color:var(--text-muted);font-size:var(--fs-11)}.script-section{color:var(--text-muted);font-size:var(--fs-11);text-transform:uppercase;letter-spacing:.06em;margin:10px 0 4px}.script-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.script-toolbar .name-input{flex:200px;max-width:360px}.run-status{color:var(--text-muted);font-size:var(--fs-12);font-variant-numeric:tabular-nums}.console{border:1px solid var(--border);border-radius:var(--r-inner);background:var(--plot-bg,var(--surface-1));min-height:120px;max-height:320px;font-family:var(--mono);font-size:var(--fs-12);white-space:pre-wrap;word-break:break-word;margin:0;padding:10px 12px;line-height:19px;overflow:auto}.console .line-warn{color:var(--warning)}.console .line-error{color:var(--critical)}.console .line-info{color:var(--text-secondary)}.console .line-done{color:var(--good)}.console .muted-line{color:var(--text-muted)}.result-stack{gap:var(--gap);flex-direction:column;display:flex}.key-secret{border:1px solid var(--accent-line);border-radius:var(--r-inner);background:var(--accent-soft);font-family:var(--mono);font-size:var(--fs-12);word-break:break-all;align-items:center;gap:8px;padding:10px 12px;display:flex}.key-secret code{flex:1}.scope-list{flex-direction:column;gap:8px;display:flex}.scope-option{align-items:flex-start;gap:8px;display:flex}.scope-option code{font-family:var(--mono);font-size:var(--fs-12)}.form-stack{flex-direction:column;gap:12px;display:flex}.form-stack label.form-label{color:var(--text-secondary);flex-direction:column;gap:6px;display:flex}.ref-fn{border-top:1px solid var(--border);padding:12px 0}.ref-fn:first-child{border-top:0}.ref-fn h4{font-size:var(--fs-13);flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 4px;display:flex}.ref-fn h4 code{font-family:var(--mono);font-size:var(--fs-12);color:var(--accent-text)}.ref-fn p{color:var(--text-secondary);margin:0 0 8px}.steps{color:var(--text-secondary);flex-direction:column;gap:6px;margin:0;padding-left:20px;display:flex}.inline-code{font-family:var(--mono);font-size:var(--fs-12);background:var(--surface-2);color:var(--text-primary);border-radius:6px;padding:1px 5px}
