:root{--canvas:#edf0f6;--surface:#fbfdff;--surface-subtle:#f4f6fa;--surface-raised:#f6f8fc;--surface-sticky:#fbfdfffa;--ink:#121a2b;--ink-soft:#3a465c;--ink-muted:#5e6c82;--line:#1420381a;--line-strong:#14203840;--accent:#2d5bd8;--accent-strong:#2448ad;--accent-soft:#2d5bd81a;--warning:#925600;--warning-bg:#fff8e7;--warning-line:#d2a03e;--warning-ink:#805000;--danger:#b42318;--danger-bg:#fff1f0;--success:#18794e;--success-bg:#edf8f2;--info-bg:#eff6ff;--focus:#1d4ed8;--disabled-border:#cbd5e1;--disabled-bg:#e8edf3;--disabled-ink:#64748b;--status-neutral:#64748b;--overlay:#0f172a94;--shadow-dock:0 -4px 14px #1e40af12;--radius-sm:4px;--radius-md:8px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--control-height:36px;--touch-control-height:44px;--mono:ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{background:var(--canvas);min-width:0;min-height:100%;overflow-x:clip}body{background:var(--canvas);min-width:0;min-height:100%;color:var(--ink);margin:0;font-family:system-ui,-apple-system,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.5;overflow-x:clip}button,a{font:inherit;-webkit-tap-highlight-color:transparent}a,button{min-width:0}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.skip-link{z-index:100;top:var(--space-2);left:var(--space-2);border-radius:var(--radius-sm);background:var(--ink);color:var(--surface);padding:var(--space-2) var(--space-3);position:fixed;transform:translateY(-160%)}.skip-link:focus{transform:none}.app-shell{grid-template-columns:244px minmax(0,1fr);min-width:0;min-height:100dvh;display:grid}.sidebar{border-right:1px solid var(--line);background:var(--surface);min-width:0;height:100dvh;color:var(--ink);flex-direction:column;display:flex;position:sticky;top:0}.brand{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:72px;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line);display:flex}.brand-identity{align-items:center;gap:10px;min-width:0;display:flex}.brand-mark{border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--accent-soft);width:34px;height:34px;color:var(--accent-strong);flex:0 0 34px;place-items:center;display:grid}.brand-copy,.brand-name,.version{min-width:0;display:block}.brand-name{font-weight:750}.version{color:var(--ink-muted);font:11px/1.35 var(--mono);margin-top:2px}.mobile-nav-toggle{min-height:var(--touch-control-height);padding:0 var(--space-2);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);align-items:center;gap:6px;font-weight:700;display:none}.primary-nav{min-height:0;padding:var(--space-3) 10px;overflow-y:auto}.nav-group+.nav-group{margin-top:var(--space-3)}.nav-group-label{margin:0 10px var(--space-1);color:var(--ink-muted);letter-spacing:.08em;font-size:10px;font-weight:750}.primary-nav ul{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.primary-nav a{align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);min-height:40px;color:var(--ink-soft);border-left:3px solid #0000;grid-template-columns:20px minmax(0,1fr) auto;padding:7px 10px;text-decoration:none;display:grid}.primary-nav a:hover{background:var(--surface-subtle);color:var(--ink)}.primary-nav a[aria-current=page]{border-left-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong);font-weight:750}.nav-icon{color:var(--ink-muted)}.primary-nav a[aria-current=page] .nav-icon{color:var(--accent)}.nav-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.nav-step{color:var(--ink-muted);font:10px/1 var(--mono)}.sidebar-foot{padding:14px var(--space-4) 18px;border-top:1px solid var(--line);color:var(--ink-muted);margin:auto 0 0;font-size:12px}.sidebar-foot strong{color:var(--ink);font-weight:700;display:block}.workspace{min-width:0;min-height:100dvh}.topbar{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:52px;padding:var(--space-2) var(--space-6);border-bottom:1px solid var(--line);background:var(--surface);display:flex;position:relative}.breadcrumb,.workspace-status{color:var(--ink-muted);margin:0;font-size:12px}.account-actions{justify-content:flex-end;align-items:center;gap:var(--space-2);min-width:0;display:inline-flex}.account-name{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:750;overflow:hidden}.account-link,.account-logout{min-height:var(--control-height);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--accent-strong);white-space:nowrap;justify-content:center;align-items:center;padding:6px 9px;font-size:12px;font-weight:750;text-decoration:none;display:inline-flex}.account-logout{color:var(--ink)}.account-logout:disabled{cursor:not-allowed;opacity:.6}.account-error{z-index:2;top:calc(100% + var(--space-1));right:var(--space-6);max-width:min(320px, calc(100vw - 2 * var(--space-3)));padding:var(--space-2);border:1px solid var(--danger);border-radius:var(--radius-sm);background:var(--danger-bg);color:var(--danger);margin:0;font-size:12px;position:absolute}.breadcrumb strong{color:var(--ink)}.workspace-status{border:1px solid var(--line);background:var(--surface-subtle);border-radius:999px;align-items:center;gap:6px;padding:3px 8px;display:inline-flex}.status-dot{background:var(--status-neutral);border-radius:50%;width:7px;height:7px}.app-main{min-width:0}.workbench-shell{width:100%;min-width:0;max-width:1510px;padding:18px var(--space-6) var(--space-6);margin:0 auto}.page-heading{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:14px;display:flex}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.02em;margin-bottom:3px;font-size:22px;line-height:1.25}h2{margin:0;font-size:15px;line-height:1.3}h3{margin:0;font-size:13px;line-height:1.35}.eyebrow,.section-kicker{color:var(--ink-muted);letter-spacing:.06em;text-transform:uppercase;margin:0 0 2px;font-size:11px;font-weight:700}.page-intro{color:var(--ink-muted);margin:0;font-size:12px}.state-chip{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);min-height:30px;color:var(--ink-soft);flex:none;align-items:center;gap:6px;padding:4px 9px;font-size:11px;font-weight:750;display:inline-flex}.panel{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);min-width:0;overflow:hidden}.context-panel{margin-bottom:var(--space-3);border-color:var(--line-strong)}.section-head{justify-content:space-between;align-items:center;gap:var(--space-3);border-bottom:1px solid var(--line);background:var(--surface-raised);min-height:42px;padding:9px 14px;display:flex}.panel-body{min-width:0;padding:14px}.workbench-grid{gap:var(--space-3);grid-template-columns:minmax(0,1fr) minmax(288px,356px);grid-template-areas:"validation validation""bom parameters";align-items:start;display:grid}.workbench-shell{--workbench-dock-clearance:96px}.workbench-shell :is(a,button,[tabindex]){scroll-margin-block:var(--workbench-dock-clearance)}.validation-panel{grid-area:validation}.bom-panel{grid-area:bom}.parameters-panel{grid-area:parameters}.workspace-placeholder{border:1px dashed var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-subtle);grid-template-columns:30px minmax(0,1fr);align-items:start;gap:10px;min-width:0;padding:13px;display:grid}.workspace-placeholder p{color:var(--ink-muted);overflow-wrap:anywhere;margin:3px 0 0;font-size:12px}.placeholder-mark{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);width:28px;height:28px;color:var(--ink-soft);font:700 14px/1 var(--mono);place-items:center;display:grid}.text-link{min-height:24px;color:var(--accent-strong);text-underline-offset:2px;align-items:center;font-size:12px;font-weight:750;text-decoration:underline;display:inline-flex}.section-status{color:var(--ink-muted);text-align:right;font-size:11px;font-weight:650}.placeholder-action{margin-top:var(--space-2);display:inline-block}.button{border:1px solid var(--line-strong);border-radius:var(--radius-sm);justify-content:center;align-items:center;gap:7px;min-height:36px;padding:7px 12px;font-weight:700;text-decoration:none;display:inline-flex}.button-secondary{background:var(--surface);color:var(--ink)}.button-primary{border-color:var(--accent-strong);background:var(--accent);color:var(--surface)}.button:disabled{cursor:not-allowed;border-color:var(--disabled-border);background:var(--disabled-bg);color:var(--disabled-ink)}.structure-fields{margin:0 0 var(--space-3);flex-wrap:wrap;gap:6px;padding:0;list-style:none;display:flex}.structure-fields li{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink-soft);background:var(--surface-raised);padding:3px 7px;font-size:11px;font-weight:700}.compact-notice{align-items:flex-start;gap:var(--space-2);margin:var(--space-3) 0 0;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--ink-soft);padding:9px;font-size:11px;display:flex}.compact-notice strong{color:var(--ink)}.action-dock{z-index:20;justify-content:space-between;align-items:center;gap:var(--space-4);min-width:0;min-height:72px;margin-top:var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface-sticky);box-shadow:var(--shadow-dock);padding:10px 14px;display:flex;position:sticky;bottom:0}.dock-summary{align-items:center;gap:var(--space-3);min-width:0;display:flex}.dock-summary strong{font-size:13px;display:block}.dock-summary p{color:var(--ink-muted);margin:1px 0 0;font-size:11px}.dock-mark{border:1px solid var(--warning-line);border-radius:var(--radius-sm);background:var(--warning-bg);width:30px;height:30px;color:var(--warning-ink);flex:none;place-items:center;font-weight:800;display:grid}.dock-actions{gap:var(--space-2);flex:none;display:flex}@media (max-width:1040px){.app-shell{grid-template-columns:220px minmax(0,1fr)}.workbench-grid{grid-template-columns:minmax(0,1fr) minmax(280px,318px)}}@media (max-width:800px){.workbench-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"validation""bom""parameters"}}@media (max-width:700px){body{font-size:13px}.app-shell{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);height:auto;position:static}.brand{min-height:56px;padding:6px 10px}.brand-mark{flex-basis:30px;width:30px;height:30px}.brand-name{font-size:13px}.version{margin-left:5px;display:inline}.mobile-nav-toggle{display:inline-flex}.primary-nav{max-height:calc(100dvh - 56px);padding:var(--space-2) 10px var(--space-3);border-top:1px solid var(--line);display:none}.primary-nav[data-open=true]{display:block}.primary-nav a{min-height:var(--touch-control-height)}.sidebar-foot{display:none}.topbar{min-height:var(--touch-control-height);padding:var(--space-2) 10px;justify-content:stretch;display:flex}.topbar :is(.breadcrumb,.workspace-status){display:none}.account-actions{justify-content:space-between;gap:6px;width:100%}.account-name{flex:auto}.account-link,.account-logout{min-height:var(--touch-control-height);padding-inline:var(--space-2)}.account-error{right:10px}.workbench-shell{padding:var(--space-3) 10px;--workbench-dock-clearance:152px}.page-heading{margin-bottom:var(--space-3)}h1{font-size:19px}.page-intro{max-width:28ch}.section-head{padding:var(--space-2) 10px;align-items:flex-start}.section-head .text-link{text-align:right;max-width:114px}.panel-body,.workspace-placeholder{padding:10px}.action-dock{align-items:stretch;gap:var(--space-2);flex-direction:column;min-height:0;padding:9px 10px}.dock-summary{gap:var(--space-2)}.dock-mark{width:26px;height:26px}.dock-summary strong{font-size:12px}.dock-summary p{font-size:10px}.dock-actions{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);display:grid}.dock-actions .button{min-height:40px;padding-inline:8px}.app-main :is(.button,button,select),.skip-link{min-height:var(--touch-control-height)}.skip-link{align-items:center;display:inline-flex}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}html:focus-within{scroll-behavior:auto}.skip-link{transition:none}}
