:root{--procs-blue: #0b5bd3;--procs-blue-deep: #083e8f;--procs-blue-soft: rgba(11, 91, 211, .14);--hec-orange: #f08c1e;--hec-orange-soft: rgba(240, 140, 30, .14);--success: #2e9e5b;--warning: #d9930d;--danger: #d2434b;--ai-violet: #7a5af8;--ai-violet-soft: rgba(122, 90, 248, .14);--radius-sm: 4px;--radius-ctl: 7px;--radius-card: 11px;--radius-modal: 14px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-card-gap: 3px;--measure-prose: 680px;--measure-cards: 1616px;--font-ui: "HarmonyOS Sans SC", "PingFang SC", "Microsoft YaHei", "Source Han Sans SC", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Sarasa Mono SC", "Cascadia Mono", Consolas, monospace;--font-num: "Barlow", "DIN Alternate", var(--font-ui);color-scheme:dark}:root[data-theme=dark],:root:not([data-theme=light]){--bg-base: #101418;--bg-surface: #171c22;--bg-raised: #1f262e;--bg-hover: #232b34;--border: #2a323c;--border-strong: #38424e;--text-1: #e8ecf1;--text-2: #9aa6b2;--text-3: #5c6773;--code-bg: #12161b;--shadow-modal: 0 24px 64px rgba(0, 0, 0, .55);--chart-cat-1: #3f86e3;--chart-cat-2: #cf7f1c;--chart-cat-3: #8a6af8}:root[data-theme=light]{color-scheme:light;--bg-base: #f6f8fa;--bg-surface: #ffffff;--bg-raised: #ffffff;--bg-hover: #eef2f6;--border: #e3e8ee;--border-strong: #cbd4de;--text-1: #1b2430;--text-2: #5b6774;--text-3: #98a3af;--code-bg: #f1f4f8;--shadow-modal: 0 24px 64px rgba(20, 36, 58, .22);--chart-cat-1: #0b5bd3;--chart-cat-2: #c2700f;--chart-cat-3: #7a5af8}*{box-sizing:border-box}.ic{width:1em;height:1em;flex:0 0 auto;display:inline-block;vertical-align:-.14em;stroke-width:1.9}html,body{height:100%;margin:0}body{font-family:var(--font-ui);font-size:13px;line-height:1.5;color:var(--text-1);background:var(--bg-base);overflow:hidden}button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;cursor:pointer}button:focus-visible,[tabindex]:focus-visible,input:focus-visible{outline:2px solid var(--procs-blue);outline-offset:2px;border-radius:var(--radius-sm)}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.app{display:grid;height:100vh;grid-template-rows:44px 1fr 28px;grid-template-columns:56px 1fr 380px;grid-template-areas:"titlebar titlebar titlebar" "nav main ai" "status status status"}.app.app-fullwidth{grid-template-columns:56px 1fr;grid-template-areas:"titlebar titlebar" "nav main" "status status"}@media(max-width:1100px){.app{grid-template-columns:56px 1fr 0;grid-template-areas:"titlebar titlebar titlebar" "nav main main" "status status status"}.ai-panel{display:none}}@media(min-width:1680px){.app{grid-template-columns:56px 1fr 440px}}.titlebar{grid-area:titlebar;display:flex;align-items:center;gap:16px;height:44px;box-sizing:border-box;padding:0 12px;background:var(--bg-surface);border-bottom:1px solid var(--border);-webkit-app-region:drag;-webkit-user-select:none;user-select:none}.brand{display:flex;align-items:center;gap:8px;min-width:305px}.brand-lockup{width:109px;height:44px;display:block;flex:0 0 auto;object-fit:contain}.brand-product{display:flex;align-items:baseline;gap:7px;min-width:0;padding-left:10px;border-left:1px solid var(--border-strong);font-size:18px;font-weight:700;line-height:1;letter-spacing:-.2px;color:var(--text-1);white-space:nowrap}.brand-version{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:0;color:var(--text-3)}.proj-switch{-webkit-app-region:no-drag;position:relative;display:flex;align-items:center;gap:8px;height:30px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-ctl);background:var(--bg-base);color:var(--text-1)}.proj-switch:hover{background:var(--bg-hover)}.proj-switch .chip{font-size:11px;color:var(--hec-orange);border:1px solid var(--hec-orange);border-radius:var(--radius-sm);padding:0 6px;line-height:16px;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proj-switch .caret{color:var(--text-3);font-size:10px}.proj-switch-name{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proj-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:60;width:320px;max-height:60vh;overflow-y:auto;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-modal);padding:6px;display:flex;flex-direction:column;gap:2px}.proj-menu-item{display:flex;flex-direction:column;gap:4px;align-items:flex-start;width:100%;text-align:left;background:transparent;border:1px solid transparent;border-radius:var(--radius-ctl);padding:8px 10px;color:var(--text-1)}.proj-menu-item:hover{background:var(--bg-hover)}.proj-menu-item.active{background:var(--procs-blue-soft);border-color:var(--procs-blue)}.proj-menu-item-top{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}.proj-menu-item-name{font-weight:600;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proj-menu-empty{padding:12px;color:var(--text-3);font-size:12px;text-align:center}.proj-menu-new{color:var(--procs-blue);font-weight:600;border-top:1px solid var(--border);border-radius:0;margin-top:4px;padding-top:10px}.search{-webkit-app-region:no-drag;flex:1;max-width:420px;margin:0 auto;display:flex;align-items:center;gap:8px;height:30px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-ctl);background:var(--bg-base);color:var(--text-3)}.search kbd{margin-left:auto;font-family:var(--font-mono);font-size:10px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:1px 5px;color:var(--text-3)}.title-actions{-webkit-app-region:no-drag;display:flex;align-items:center;gap:8px;margin-left:auto}.icon-btn{width:30px;height:30px;border-radius:var(--radius-ctl);display:grid;place-items:center;color:var(--text-2)}.icon-btn:hover{background:var(--bg-hover);color:var(--text-1)}.win-ctl{display:flex;gap:2px;margin-left:6px}.win-ctl span{width:34px;height:30px;display:grid;place-items:center;color:var(--text-3);border-radius:var(--radius-sm);font-size:11px;cursor:pointer}.win-ctl span:hover{background:var(--bg-hover);color:var(--text-1)}.win-ctl .close:hover{background:var(--danger);color:#fff}.nav{grid-area:nav;position:relative;z-index:40;overflow:visible;background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;padding:var(--space-card-gap) 0;gap:var(--space-card-gap)}.nav-item{position:relative;width:40px;height:40px;border-radius:var(--radius-card);display:grid;place-items:center;color:var(--text-2)}.nav-item:hover{background:var(--bg-hover);color:var(--text-1)}.nav-item.active{color:var(--procs-blue);background:var(--procs-blue-soft)}.nav-item.active:before{content:"";position:absolute;left:-8px;top:9px;width:3px;height:22px;border-radius:var(--radius-sm);background:var(--procs-blue)}.nav-item:disabled{cursor:default;opacity:.55}.nav-item .tip{position:absolute;left:52px;top:50%;transform:translateY(-50%);white-space:nowrap;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-ctl);padding:4px 10px;font-size:12px;color:var(--text-1);opacity:0;pointer-events:none;transition:opacity .12s;z-index:1000;box-shadow:var(--shadow-modal)}.nav-item:hover .tip{opacity:1}.nav-spacer{flex:1}.nav svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.main{grid-area:main;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;background:var(--bg-base)}.pipeline{height:64px;flex:none;display:flex;align-items:center;gap:0;padding:0 var(--space-card-gap);background:var(--bg-surface);border-bottom:1px solid var(--border);overflow-x:auto}.stage{display:flex;align-items:center;gap:10px;padding:6px 12px;border-radius:var(--radius-card);color:var(--text-2);flex:none}.stage:hover{background:var(--bg-hover)}.stage:disabled{cursor:not-allowed;opacity:.58}.stage:disabled:hover{background:transparent}.stage .dot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--border-strong);font-size:12px;color:var(--text-3);flex:none;position:relative;font-family:var(--font-num)}.stage .lbl{text-align:left}.stage .lbl b{display:block;font-size:13px;font-weight:600;color:var(--text-2)}.stage .lbl small{font-size:10px;color:var(--text-3)}.stage.done .dot{background:var(--procs-blue);border-color:var(--procs-blue);color:#fff}.stage.done .lbl b{color:var(--text-1)}.stage.running .dot{border-color:var(--ai-violet);color:var(--ai-violet);animation:breath 1.6s ease-in-out infinite}.stage.running .lbl b{color:var(--ai-violet)}.stage.fail .dot{border-color:var(--danger);color:var(--danger)}.stage.fail .lbl b{color:var(--danger)}.stage.current{background:var(--procs-blue-soft)}@keyframes breath{0%,to{box-shadow:0 0 0 0 var(--ai-violet-soft)}50%{box-shadow:0 0 0 6px var(--ai-violet-soft)}}.link{width:34px;height:2px;background:var(--border-strong);margin:0 2px;flex:none;position:relative;overflow:hidden}.link.flow:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,var(--procs-blue),transparent);animation:flow 1.4s linear infinite}.link.broken{background:repeating-linear-gradient(90deg,var(--danger) 0 4px,transparent 4px 8px)}@keyframes flow{0%{transform:translate(-100%)}to{transform:translate(100%)}}.pipe-right{margin-left:auto;display:flex;align-items:center;gap:12px;flex:none}.btn{height:36px;padding:0 18px;border-radius:var(--radius-ctl);font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:8px;transition:background .15s}.btn-primary{background:var(--procs-blue);color:#fff}.btn-primary:hover:not(:disabled){background:#1268e6}.btn-primary:active:not(:disabled){background:var(--procs-blue-deep)}.btn-primary:disabled{background:var(--border-strong);color:var(--text-3);cursor:not-allowed}.btn-ghost{border:1px solid var(--border);color:var(--text-2);font-weight:500}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text-1)}.btn-ghost:disabled{opacity:.5;cursor:not-allowed}.btn-orange{background:var(--hec-orange);color:#fff}.btn-orange:hover:not(:disabled){filter:brightness(1.06)}.btn-orange:disabled{background:var(--border-strong);color:var(--text-3);cursor:not-allowed}.workspace{flex:1;min-height:0;overflow:hidden;position:relative;display:flex;flex-direction:column}.view{position:absolute;top:0;right:0;bottom:0;left:0;display:none;overflow:auto;padding:var(--space-card-gap)}.workspace>.view,.workspace>.generate-stage{position:relative;inset:auto;flex:1 1 auto;min-height:0}.view.active{display:block}.view.active{display:flex;flex-direction:column}.view.active[data-view=build]{overflow:hidden;min-height:0}.view.active[data-view=build]>.build-details{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden}.view.active>*{flex:none}.view.active>.req-grid,.view.active>.spec-grid,.view.active>.code-grid,.view.active>.deploy-grid{flex:1 1 auto;min-height:0}.req-grid>.panel,.spec-grid>.panel,.code-grid>.panel,.code-left>.panel{display:flex;flex-direction:column;min-height:0;overflow:hidden}.panel>.panel-h,.spec-grid>.panel>.spec-meta{flex:none}.req-grid>.panel>.editor-stack,.req-grid>.panel>.editor-body,.req-grid>.panel>.preview-body,.spec-grid>.panel>.spec-item,.code-grid .tree{flex:1 1 auto;min-height:0;overflow:auto}.spec-grid>.panel>.tree{flex:1 1 auto;min-height:0;overflow:auto}.code-left>.panel:first-child{flex:none}.code-left>.panel:last-child{flex:1 1 auto;min-height:0}.view-head{display:flex;align-items:center;gap:var(--space-card-gap);padding-left:var(--space-3);margin-bottom:var(--space-card-gap);flex-wrap:wrap}.view-head h2{font-size:16px;font-weight:600;margin:0}.view-head .sub{font-size:12px;color:var(--text-3)}.panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-card)}.panel-h{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border);font-size:12px;font-weight:600;color:var(--text-2)}.panel-h .grow{flex:1}.mono{font-family:var(--font-mono);font-size:12px;line-height:1.6}.empty-note{padding:24px 16px;color:var(--text-3);font-size:12.5px;text-align:center}.material-list{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--bg-raised);padding:10px 12px;margin-top:var(--space-card-gap);min-width:0;flex:none}.material-list-head{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;margin-bottom:8px}.material-list-title{display:flex;flex-direction:column;gap:2px;min-width:0}.material-list-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto}.material-collapse{min-width:52px}.material-select-all,.material-select{display:inline-flex;align-items:center;gap:6px;color:var(--text-2);font-size:12px}.material-select{flex:none}.material-select input,.material-select-all input{margin:0}.material-list-empty,.material-list-error{margin:0;font-size:12px;color:var(--text-3)}.material-list-error{color:var(--warning)}.material-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:168px;overflow-y:auto}.material-item{display:flex;gap:8px;align-items:center;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius-ctl);background:var(--bg-surface)}.material-name{min-width:0;flex:1;font-size:12px;color:var(--text-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-other-tag{flex:none;font-size:11px;color:var(--text-3)}.material-cite,.material-delete{flex:none;font-size:12px;padding:3px 10px}.material-delete-result{margin:0 0 8px}.material-delete-result p{margin:0}.tpl-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:var(--space-card-gap);align-items:center;padding-left:var(--space-3)}.view[data-view=requirements]>p.sub{padding-left:var(--space-3)}.view[data-view=requirements]>.notice{margin-left:var(--space-3)}.tpl-chip{font-size:12px;color:var(--text-2);border:1px dashed var(--border-strong);border-radius:999px;padding:4px 12px}.tpl-chip:hover{color:var(--procs-blue);border-color:var(--procs-blue);background:var(--procs-blue-soft)}.doc-history{grid-column:1 / -1;display:grid;grid-template-columns:minmax(180px,.42fr) minmax(0,1fr);gap:var(--space-card-gap);margin-bottom:var(--space-card-gap)}.doc-history-list,.doc-history-preview{min-height:150px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--bg-raised)}.doc-history-list{max-height:220px;overflow-y:auto;padding:6px}.doc-history-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border);font-size:12px}.doc-history-head small{color:var(--text-3)}.doc-history-list button{display:flex;width:100%;flex-direction:column;gap:2px;padding:8px 10px;text-align:left;border-radius:var(--radius-ctl);color:var(--text-2)}.doc-history-list button:hover,.doc-history-list button.selected{background:var(--procs-blue-soft);color:var(--text-1)}.doc-history-list time{font-size:11.5px}.doc-history-list small{color:var(--text-3);font-size:10.5px}.doc-history-preview pre{max-height:160px;overflow:auto;margin:0;padding:10px 12px;white-space:pre-wrap;color:var(--text-2);font:11.5px/1.55 var(--font-mono)}.doc-history-empty{padding:12px;margin:0;color:var(--text-3);font-size:12px}.req-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-card-gap);min-height:420px}.editor-text-metrics{padding:14px;white-space:pre-wrap;overflow-wrap:break-word;word-break:normal;font-family:var(--font-mono);font-size:13px;line-height:1.6;letter-spacing:normal;-moz-tab-size:4;tab-size:4;border:none}.editor-stack{position:relative;min-height:200px}.editor-highlight-layer{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;overflow:hidden;pointer-events:none;color:transparent;background:transparent}.anchor-mark{background:var(--hec-orange-soft);box-shadow:inset 2px 0 0 var(--hec-orange);color:transparent;border-radius:var(--radius-sm)}.editor-body{position:absolute;top:0;right:0;bottom:0;left:0;color:var(--text-1);width:100%;resize:none;background:transparent;outline:none}.preview-body{padding:16px 18px}.preview-body h1,.preview-body h2,.preview-body h3{font-size:15px;margin:10px 0 6px;color:var(--text-1)}.preview-body h4{font-size:13px;margin:12px 0 4px;color:var(--text-1)}.preview-body p,.preview-body li{font-size:13px;color:var(--text-2)}.preview-body ul{padding-left:18px}.save-dot{width:6px;height:6px;border-radius:50%;background:var(--success);display:inline-block}.spec-grid{display:grid;grid-template-columns:240px 1fr;gap:var(--space-card-gap);min-height:420px}.tree{padding:8px}.tree-i{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:var(--radius-ctl);color:var(--text-2);font-size:12.5px;cursor:pointer}.tree-i:hover{background:var(--bg-hover)}.tree-i.sel{background:var(--procs-blue-soft);color:var(--procs-blue);font-weight:600}.tree-i.lv2{padding-left:26px}.spec-capability{width:100%;text-align:left}.spec-meta{display:flex;gap:16px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border);flex-wrap:wrap}.spec-meta .kv{font-size:11px;color:var(--text-3)}.spec-meta .kv b{color:var(--text-1);font-weight:600;font-family:var(--font-mono)}.diff-pill{font-size:11px;color:var(--warning);border:1px solid var(--warning);border-radius:999px;padding:1px 10px}.spec-item{padding:14px 16px;border-bottom:1px solid var(--border)}.spec-item:last-child{border-bottom:none}.spec-source{padding:0;background:var(--code-bg, var(--bg-base));font-family:var(--font-mono);font-size:12px;line-height:1.6}.spec-hljs{margin:0;padding:14px 16px;min-width:max-content;white-space:pre;-moz-tab-size:4;tab-size:4;color:var(--text-1);background:transparent}.spec-hljs code{font:inherit;white-space:inherit;background:transparent;padding:0}.spec-heading-mark{color:var(--accent);font-weight:700}.spec-openspec{color:var(--ai-violet);font-weight:700}.spec-punctuation,.spec-list-mark,.spec-fence{color:var(--text-3)}.spec-keyword{color:var(--accent);font-weight:700}.spec-strong{color:var(--text-1);font-weight:700}.spec-inline-code{color:var(--warning);background:color-mix(in srgb,var(--warning) 12%,transparent);border-radius:3px}.spec-item .sid{font-family:var(--font-mono);font-size:11px;color:var(--text-3)}.spec-item p{font-size:13px;margin-top:4px}.spec-item .anchor{font-size:11px;color:var(--procs-blue);margin-top:6px;display:inline-flex;gap:6px;align-items:center;cursor:pointer}.spec-item .anchor:hover{text-decoration:underline}.code-grid{display:grid;grid-template-columns:220px 1fr;gap:var(--space-card-gap);min-height:420px}.crumb{font-family:var(--font-mono);font-size:11px;color:var(--text-3)}.lock-tag{font-size:11px;color:var(--warning);border:1px solid var(--warning);border-radius:var(--radius-sm);padding:1px 8px}.code-source{display:grid;grid-template-columns:auto 1fr;align-items:start;flex:1 1 auto;min-height:0;overflow:auto;background:var(--code-bg, var(--bg-base));border-radius:0 0 var(--radius-card) var(--radius-card);font-size:11.5px;line-height:1.55}.code-gutter{display:flex;flex-direction:column;padding:10px 0 10px 10px;-webkit-user-select:none;user-select:none;text-align:right;color:var(--text-3);border-right:1px solid var(--border);background:color-mix(in srgb,var(--bg-raised) 70%,var(--code-bg, var(--bg-base)));position:sticky;left:0;z-index:1}.code-gutter .ln{display:block;min-width:2.5em;padding:0 10px 0 4px;line-height:1.55}.code-gutter .ln.traceability-line{color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,transparent);font-weight:700}.code-source:has(.traceability-line) .code-hljs{background:linear-gradient(to bottom,transparent calc(10px + (var(--traceability-line) - 1) * 1.55em),color-mix(in srgb,var(--accent) 12%,transparent) calc(10px + (var(--traceability-line) - 1) * 1.55em),color-mix(in srgb,var(--accent) 12%,transparent) calc(10px + var(--traceability-line) * 1.55em),transparent calc(10px + var(--traceability-line) * 1.55em))}.traceability-panel{flex:none;border-top:1px solid var(--border);max-height:220px;overflow:auto;padding:8px 12px}.traceability-heading{padding:0 0 6px}.traceability-link{display:block;border:0;background:transparent;color:var(--accent);cursor:pointer;padding:3px 0;text-align:left}.traceability-link:hover{text-decoration:underline}.traceability-finding{color:var(--text-2);font-size:12px;padding:3px 0}.code-hljs{margin:0;padding:10px 12px;overflow:visible;white-space:pre;-moz-tab-size:4;tab-size:4;background:transparent;color:var(--text-1)}.code-hljs code{font-family:inherit;font-size:inherit;background:transparent;padding:0;white-space:pre}.code-lang-badge{font-size:10.5px;font-weight:600;color:var(--ai-violet);border:1px solid color-mix(in srgb,var(--ai-violet) 40%,var(--border));background:var(--ai-violet-soft);border-radius:var(--radius-sm);padding:1px 7px;margin-right:8px}.code-truncated-note{grid-column:1 / -1;color:var(--warning);padding:8px 12px 10px;font-size:11.5px;border-top:1px solid var(--border)}.code-hljs .hljs-comment,.code-hljs .hljs-quote,.spec-hljs .hljs-comment,.spec-hljs .hljs-quote{color:var(--text-3);font-style:italic}.code-hljs .hljs-keyword,.code-hljs .hljs-selector-tag,.code-hljs .hljs-literal,.code-hljs .hljs-section,.code-hljs .hljs-link,.spec-hljs .hljs-keyword,.spec-hljs .hljs-selector-tag,.spec-hljs .hljs-literal,.spec-hljs .hljs-section,.spec-hljs .hljs-link{color:#c678dd}:root[data-theme=light] .code-hljs .hljs-keyword,:root[data-theme=light] .code-hljs .hljs-selector-tag,:root[data-theme=light] .code-hljs .hljs-literal,:root[data-theme=light] .spec-hljs .hljs-keyword,:root[data-theme=light] .spec-hljs .hljs-selector-tag,:root[data-theme=light] .spec-hljs .hljs-literal{color:#a626a4}.code-hljs .hljs-string,.code-hljs .hljs-doctag,.code-hljs .hljs-regexp,.spec-hljs .hljs-string,.spec-hljs .hljs-doctag,.spec-hljs .hljs-regexp{color:#98c379}:root[data-theme=light] .code-hljs .hljs-string,:root[data-theme=light] .code-hljs .hljs-doctag,:root[data-theme=light] .spec-hljs .hljs-string,:root[data-theme=light] .spec-hljs .hljs-doctag{color:#50a14f}.code-hljs .hljs-title,.code-hljs .hljs-title.function_,.code-hljs .hljs-section,.spec-hljs .hljs-title,.spec-hljs .hljs-title.function_,.spec-hljs .hljs-section{color:#61afef}:root[data-theme=light] .code-hljs .hljs-title,:root[data-theme=light] .code-hljs .hljs-title.function_,:root[data-theme=light] .spec-hljs .hljs-title,:root[data-theme=light] .spec-hljs .hljs-title.function_{color:#4078f2}.code-hljs .hljs-type,.code-hljs .hljs-class .hljs-title,.code-hljs .hljs-title.class_,.spec-hljs .hljs-type,.spec-hljs .hljs-class .hljs-title,.spec-hljs .hljs-title.class_{color:#e5c07b}:root[data-theme=light] .code-hljs .hljs-type,:root[data-theme=light] .code-hljs .hljs-class .hljs-title,:root[data-theme=light] .spec-hljs .hljs-type,:root[data-theme=light] .spec-hljs .hljs-class .hljs-title{color:#c18401}.code-hljs .hljs-number,.code-hljs .hljs-symbol,.code-hljs .hljs-bullet,.spec-hljs .hljs-number,.spec-hljs .hljs-symbol,.spec-hljs .hljs-bullet{color:#d19a66}:root[data-theme=light] .code-hljs .hljs-number,:root[data-theme=light] .spec-hljs .hljs-number{color:#986801}.code-hljs .hljs-built_in,.code-hljs .hljs-attr,.code-hljs .hljs-attribute,.code-hljs .hljs-meta,.code-hljs .hljs-meta .hljs-keyword,.spec-hljs .hljs-built_in,.spec-hljs .hljs-attr,.spec-hljs .hljs-attribute,.spec-hljs .hljs-meta,.spec-hljs .hljs-meta .hljs-keyword{color:#56b6c2}:root[data-theme=light] .code-hljs .hljs-built_in,:root[data-theme=light] .code-hljs .hljs-attr,:root[data-theme=light] .code-hljs .hljs-meta,:root[data-theme=light] .spec-hljs .hljs-built_in,:root[data-theme=light] .spec-hljs .hljs-attr,:root[data-theme=light] .spec-hljs .hljs-meta{color:#0184bc}.code-hljs .hljs-variable,.code-hljs .hljs-template-variable,.code-hljs .hljs-params,.code-hljs .hljs-name,.spec-hljs .hljs-variable,.spec-hljs .hljs-template-variable,.spec-hljs .hljs-params,.spec-hljs .hljs-name,.code-hljs .hljs-subst,.spec-hljs .hljs-subst{color:var(--text-1)}.code-hljs .hljs-emphasis,.spec-hljs .hljs-emphasis{font-style:italic}.code-hljs .hljs-strong,.spec-hljs .hljs-strong{font-weight:700}.code-body{padding:14px;overflow:auto;background:var(--code-bg);border-radius:0 0 var(--radius-card) var(--radius-card)}.code-body .ln{display:inline-block;width:30px;color:var(--text-3);-webkit-user-select:none;user-select:none;text-align:right;margin-right:14px}.file-status{font-size:10px;font-weight:700;text-transform:uppercase;border-radius:var(--radius-sm);padding:1px 6px;margin-left:auto}.file-status-added{color:var(--success);border:1px solid var(--success)}.file-status-modified{color:var(--warning);border:1px solid var(--warning)}.file-status-deleted{color:var(--danger);border:1px solid var(--danger)}.file-status-renamed{color:var(--procs-blue);border:1px solid var(--procs-blue)}.build-overview{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 12px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--bg-surface);margin-bottom:var(--space-card-gap);min-width:0}.build-overview[data-kind=needs_action]{border-color:var(--warning, #d97706);background:color-mix(in srgb,var(--warning, #d97706) 8%,var(--bg-1))}.build-overview[data-kind=running]{border-color:color-mix(in srgb,var(--ai-violet) 55%,var(--border))}.build-overview[data-kind=artifact_ready]{border-color:color-mix(in srgb,var(--success) 45%,var(--border))}.build-overview-status{display:flex;align-items:center;gap:8px;min-width:0}.build-overview-icon{width:24px;height:24px;border-radius:var(--radius-sm);display:grid;place-items:center;flex:none;background:var(--bg-hover);color:var(--text-2)}.build-overview-icon.running{background:var(--ai-violet-soft);color:var(--ai-violet)}.build-overview-icon.needs_action{background:color-mix(in srgb,var(--warning, #d97706) 16%,transparent);color:var(--warning, #d97706)}.build-overview-icon.artifact_ready{background:#2e9e5b26;color:var(--success)}.build-overview-status-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;line-height:20px;font-weight:600;color:var(--text-1)}.build-overview-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:6px;min-width:0}.build-overview-takeover{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;min-width:0}.build-overview-takeover .takeover-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;padding:0}.build-overview-takeover .takeover-actions .takeover-title,.build-overview-takeover .takeover-actions .takeover-hint{display:none}.build-overview-takeover .takeover-actions .takeover-row{display:contents}.build-overview-takeover .takeover-subject{padding:0;color:var(--text-2);font-size:11px;white-space:nowrap}.build-details{display:flex;flex-direction:column;gap:10px;min-width:0;min-height:0}.build-details-body{display:flex;flex-direction:column;gap:var(--space-card-gap);min-width:0;min-height:0;flex:1 1 auto}.build-details-body .stage-log{flex:1 1 auto;min-height:280px;margin-top:0;overflow:hidden}.build-details-body .stage-log-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;border-radius:0}.build-details-body .panel{min-width:0}.build-log-section{padding:10px 14px 12px;border-bottom:1px solid var(--border);min-width:0}.build-log-section-h{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:600;color:var(--text-2);margin-bottom:6px}.build-log-section-body{font-size:12px;line-height:1.5;word-break:break-word}.build-log-dismiss{margin-left:auto;flex:none;padding:0 4px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-3);font-size:12px;line-height:16px;cursor:pointer}.build-log-dismiss:hover{color:var(--text-1);background:var(--bg-hover)}.build-log-restore{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-3);padding-top:8px;padding-bottom:8px}.build-log-restore-btn{padding:0;border:none;background:transparent;color:var(--text-2);font-size:11px;cursor:pointer;text-decoration:underline}.build-log-restore-btn:hover{color:var(--text-1)}.build-details-hash{overflow-x:auto;max-width:100%}.err-line{color:var(--danger)}.diff-add{color:var(--success)}.diff-del{color:var(--danger)}.ai-tag{font-size:10px;color:var(--ai-violet);border:1px solid var(--ai-violet);border-radius:var(--radius-sm);padding:0 6px}.clarify-transcript{display:flex;flex-direction:column;gap:10px;padding:8px 0;max-height:280px;overflow-y:auto}.clarify-bubble{border-radius:var(--radius-card);padding:8px 10px;background:var(--bg-2);border:1px solid var(--border)}.clarify-bubble.user{border-color:color-mix(in srgb,var(--accent, #3b82f6) 40%,var(--border))}.clarify-role{font-size:10px;font-weight:600;color:var(--text-3);margin-bottom:4px}.clarify-text{font-size:12px;white-space:pre-wrap;line-height:1.45}.clarify-q,.clarify-s{margin-top:6px;padding:6px 8px;background:var(--bg-1);border-radius:var(--radius-ctl);font-size:11px;display:flex;flex-direction:column;gap:4px}.clarify-s{flex-direction:row;align-items:flex-start;justify-content:space-between;gap:8px}.clarify-mode-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 12px;font-size:11px;color:var(--warning);background:color-mix(in srgb,var(--warning) 10%,var(--bg-1));border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.clarify-cap{font-size:11px;color:var(--warning);padding:6px 0}.clarify-unparsed{font-size:11px;margin-top:4px}.clarify-panel{display:flex;flex-direction:column;min-height:0}.clarify-panel-body{flex:1;min-height:0;overflow-y:auto;padding:10px 12px;display:flex;flex-direction:column;gap:12px}.clarify-progress{font-size:11px;font-weight:400;color:var(--text-3);margin-right:8px}.clarify-lead{font-size:12px;line-height:1.5;white-space:pre-wrap;margin:0}.clarify-empty{font-size:11px}.clarify-panel>.panel-h{border-left:3px solid var(--ai-violet)}.clarify-ai-badge{width:8px;height:8px;border-radius:50%;background:var(--ai-violet);margin-right:6px;flex:none}.clarify-thinking{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ai-violet)}.clarify-thinking-pulse{width:10px;height:10px;border-radius:50%;background:var(--ai-violet);flex:none;animation:clarify-pulse 1.2s ease-in-out infinite}@keyframes clarify-pulse{0%{transform:scale(.7);box-shadow:0 0 0 0 var(--ai-violet-soft)}50%{transform:scale(1);box-shadow:0 0 0 7px var(--ai-violet-soft)}to{transform:scale(.7);box-shadow:0 0 0 0 var(--ai-violet-soft)}}@media(prefers-reduced-motion:reduce){.clarify-thinking-pulse{animation:none}}.clarify-thinking-elapsed{color:var(--text-3);font-size:11px}.clarify-timeout{display:flex;flex-direction:column;gap:8px;border:1px solid var(--warning);border-radius:var(--radius-card);padding:12px;background:color-mix(in srgb,var(--warning) 8%,var(--bg-2))}.clarify-timeout-title{color:var(--warning);font-size:13px}.clarify-timeout p{margin:0;font-size:12px;line-height:1.5}.clarify-questions{display:flex;flex-direction:column;gap:var(--space-card-gap)}.clarify-question{border:1px solid var(--border);border-radius:var(--radius-card);padding:10px;background:var(--bg-2);display:flex;flex-direction:column;gap:6px}.clarify-question.missing{border-color:var(--warning)}.clarify-question-head{display:flex;align-items:baseline;gap:8px;font-size:12px;line-height:1.45}.clarify-tag{font-size:10px;color:var(--text-3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 5px;white-space:nowrap}.clarify-options{display:flex;flex-wrap:wrap;gap:6px}.clarify-option{display:flex;flex-direction:column;align-items:flex-start;gap:2px;max-width:100%;text-align:left;cursor:pointer;border:1px solid var(--border);border-radius:var(--radius-ctl);background:var(--bg-1);color:var(--text-1);padding:6px 10px;font-size:11px;transition:border-color var(--motion-fast, .12s),background var(--motion-fast, .12s)}.clarify-option:hover:not(:disabled){border-color:var(--ai-violet)}.clarify-option.selected{border-color:var(--ai-violet);background:var(--ai-violet-soft)}.clarify-option:disabled{opacity:.55;cursor:not-allowed}.clarify-option-label{display:flex;align-items:center;gap:6px;font-weight:500}.clarify-recommended{font-style:normal;font-size:10px;color:var(--ai-violet);border:1px solid currentColor;border-radius:var(--radius-sm);padding:0 4px}.clarify-text-input{width:100%;resize:vertical;font-size:11px;line-height:1.45;padding:6px 8px;border-radius:var(--radius-ctl);border:1px solid var(--border);background:var(--bg-1);color:var(--text-1)}.clarify-missing{color:var(--warning);font-size:10px}.req-sync-summary{max-height:260px;overflow:auto;white-space:pre-wrap;font-size:12px;line-height:1.5;padding:10px 12px;margin:10px 0;border:1px solid var(--border);border-radius:var(--radius-ctl);background:var(--bg-1);color:var(--text-1)}.clarify-step{display:flex;align-items:center;gap:8px;font-size:11px;margin-bottom:2px}.clarify-step-count{font-weight:600;color:var(--ai-violet)}.clarify-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:4px}.clarify-submit-row{display:flex;align-items:center;gap:10px}.clarify-suggestions{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--border);padding-top:10px}.clarify-suggestions-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px}.artifact-to-deploy{margin:10px 0;padding:8px 10px;border-radius:var(--radius-ctl);background:var(--bg-2);font-size:12px}.backfill-modal{width:min(720px,92vw);max-height:85vh;display:flex;flex-direction:column}.backfill-diff-host{max-height:50vh;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-card);margin-top:8px}.artifact-missing{color:var(--danger)}.artifact-hash{display:inline-flex;align-items:center;gap:6px}.takeover-panel{margin-top:14px;border-color:var(--warning, #d97706);background:color-mix(in srgb,var(--warning, #d97706) 8%,var(--bg-1))}.takeover-actions{display:flex;flex-direction:column;gap:10px;padding:12px 14px}.takeover-subject{padding:12px 14px 0;font-size:12px;color:var(--text-2)}.takeover-title{font-size:12px;font-weight:600;color:var(--warning, #d97706);letter-spacing:.02em}.takeover-row{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap}.takeover-hint{flex:1;min-width:160px;font-size:11px;color:var(--text-2);line-height:1.45}.task-card .takeover-actions{border-top:1px solid var(--border);margin-top:8px;padding:10px 0 0}.artifact{display:flex;align-items:center;gap:18px;padding:14px 18px;flex-wrap:wrap}.artifact .kv{font-size:11px;color:var(--text-3)}.artifact .kv b{display:block;font-family:var(--font-mono);font-size:12px;color:var(--text-1);font-weight:600;margin-top:2px}.ok-ico{width:34px;height:34px;border-radius:var(--radius-card);background:#2e9e5b26;color:var(--success);display:grid;place-items:center;font-size:16px}.deploy-grid{display:grid;grid-template-columns:minmax(260px,340px) minmax(360px,1fr) minmax(260px,320px);grid-template-rows:auto minmax(0,1fr);gap:var(--space-card-gap)}.dev-card{padding:var(--space-4)}.dev-card .row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px dashed var(--border);font-size:12.5px}.dev-card .row:last-child{border-bottom:none}.dev-card .row .v{font-family:var(--font-mono);color:var(--text-1)}.pill-ok{font-size:11px;color:var(--success);display:inline-flex;align-items:center;gap:6px}.pill-ok:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--success)}.hw-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--hec-orange);border:1px solid var(--hec-orange);border-radius:var(--radius-sm);padding:1px 8px}.steps{padding:6px 0}.step{display:flex;gap:12px;padding:12px 18px;align-items:flex-start}.step .no{width:22px;height:22px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:11px;font-family:var(--font-num);border:1.5px solid var(--border-strong);color:var(--text-3)}.step.done .no{background:var(--success);border-color:var(--success);color:#fff}.step.wait .no{border-color:var(--hec-orange);color:var(--hec-orange)}.step b{font-size:13px;display:block}.step small{color:var(--text-3);font-size:11.5px}.term{background:var(--code-bg);border-top:1px solid var(--border);padding:12px 16px;border-radius:0 0 var(--radius-card) var(--radius-card);min-height:110px;max-height:200px;overflow-y:auto;scrollbar-gutter:stable}.term .p{color:var(--success)}.term .e{color:var(--danger)}.term .dim{color:var(--text-3)}.firmware-run-panel{margin:8px 16px 12px;padding:12px;border:1px solid var(--border-strong);border-radius:var(--radius-card);background:var(--bg-raised);display:grid;gap:8px}.firmware-run-panel.running{border-color:var(--hec-orange)}.firmware-run-panel.terminal{border-color:var(--border)}.firmware-run-panel b{display:block;font-size:13px}.firmware-run-panel small{color:var(--text-3);white-space:pre-wrap}.firmware-run-meta{display:flex;gap:12px;flex-wrap:wrap;color:var(--text-3);font-size:12px}.ai-panel{grid-area:ai;background:var(--bg-surface);border-left:1px solid var(--border);display:flex;flex-direction:column;min-height:0;overflow:hidden}.ai-head{display:flex;align-items:center;gap:10px;height:44px;box-sizing:border-box;flex:none;padding:0 14px;border-bottom:1px solid var(--border)}.ai-head .avatar{width:26px;height:26px;border-radius:var(--radius-card);background:var(--ai-violet-soft);color:var(--ai-violet);display:grid;place-items:center;font-size:13px;flex:none}.ai-head b{font-size:13px;line-height:1.2}.ai-model-current{margin-left:auto;display:flex;align-items:center;gap:6px;color:var(--text-3);font-size:10.5px;flex:none;min-width:0;max-width:190px;-webkit-app-region:no-drag}.ai-model-current>span{flex:none}.ai-model-current select{min-width:0;max-width:140px;background:var(--bg-raised);color:var(--text-2);border:1px solid var(--border);border-radius:var(--radius-ctl);padding:2px 4px;font-size:11px;font-weight:500;text-overflow:ellipsis;cursor:pointer}.ai-model-current select:disabled{color:var(--text-3);background:transparent;border-color:transparent;cursor:default}.ai-model-current b{font-size:11px;font-weight:500;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-model-unset{gap:4px}.ai-run-model{flex:none;display:flex;align-items:baseline;gap:6px;padding:4px 14px;border-bottom:1px solid var(--border);background:var(--bg-raised);color:var(--text-3);font-size:10.5px}.ai-run-model b{color:var(--text-2);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-head small{display:block;font-size:10.5px;color:var(--text-3);line-height:1.2}.local-badge{margin-left:auto;font-size:10px;color:var(--success);border:1px solid var(--success);border-radius:var(--radius-sm);padding:1px 7px;display:flex;align-items:center;gap:4px}.ai-body{flex:1 1 0;min-height:0;overflow:auto;padding:12px 14px;display:flex;flex-direction:column;gap:12px}.ai-empty{margin:auto;text-align:center;color:var(--text-3);font-size:12.5px;padding:0 12px}.bubble{max-width:92%;border-radius:var(--radius-card);padding:10px 12px;font-size:12.5px;line-height:1.55}.bubble.user{align-self:flex-end;background:var(--procs-blue);color:#fff;border-bottom-right-radius:3px}.bubble.ai{align-self:flex-start;background:var(--bg-raised);border:1px solid var(--border);border-bottom-left-radius:3px;color:var(--text-1)}.task-card{overflow:hidden;display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.task-h{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border)}.task-h b{font-size:12.5px}.task-h .timer{margin-left:auto;font-family:var(--font-num);font-size:12px;color:var(--text-2)}.task-stop{width:22px;height:22px;border-radius:var(--radius-ctl);display:grid;place-items:center;color:var(--text-2);font-size:9px}.task-stop:hover:not(:disabled){background:#d2434b24;color:var(--danger)}.task-stop:disabled{opacity:.5;cursor:not-allowed}.task-log{padding:10px 12px;font-family:var(--font-mono);font-size:11px;line-height:1.7;color:var(--text-2);flex:1 1 auto;min-height:0;overflow:auto}.task-log .ok{color:var(--success)}.task-log .err{color:var(--danger)}.task-log .vio{color:var(--ai-violet)}.task-log-entry{display:flex;align-items:center;gap:6px}.task-log-entry .ic{flex:none}.task-status-running{color:var(--success);filter:drop-shadow(0 0 3px color-mix(in srgb,var(--success) 50%,transparent))}.task-status-running>circle:last-child{transform-box:fill-box;transform-origin:center;animation:task-running-dot 1s steps(1,end) infinite}@keyframes task-running-dot{0%,49.999%{opacity:1;transform:scale(1)}50%,to{opacity:.2;transform:scale(.55)}}@media(prefers-reduced-motion:reduce){.task-status-running>circle:last-child{animation:none}}.task-output{padding:8px 12px;font-family:var(--font-mono);font-size:10.5px;line-height:1.6;color:var(--text-3);background:var(--bg-base);border-top:1px solid var(--border);overflow:auto;white-space:pre-wrap;word-break:break-all}.task-output .err{color:var(--danger)}.task-output .reasoning{color:var(--text-4, var(--text-3));font-style:italic;opacity:.75}.task-output.empty{display:grid;place-items:center;color:var(--text-3)}.prog{height:3px;background:var(--border)}.prog i{display:block;height:100%;background:var(--ai-violet);transition:width .4s}.ai-input{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:10px 12px;display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px;flex:none;background:var(--bg-surface)}.ai-input textarea{flex:1;min-width:0;height:70.375px;min-height:70.375px;max-height:70.375px;resize:none;border:1px solid var(--border);background:var(--bg-base);border-radius:var(--radius-ctl);padding:8px 12px;color:var(--text-1);font-family:inherit;font-size:12.5px;line-height:1.45;overflow-y:auto}.ai-input textarea::placeholder{color:var(--text-3)}.ai-input textarea:focus{outline:none;border-color:var(--procs-blue)}.ai-input textarea:disabled{opacity:.65;cursor:not-allowed}.ai-entry-picker{display:flex;flex-direction:column;align-self:stretch;flex:none;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-ctl);background:var(--bg-base)}.ai-entry-picker button{flex:1;min-width:68px;padding:0 8px;border-radius:0;background:transparent;color:var(--text-2);font-size:11.5px;line-height:1.2}.ai-entry-picker button+button{border-top:1px solid var(--border)}.ai-entry-picker button.selected{background:var(--procs-blue);color:#fff}.ai-entry-picker button:hover:not(:disabled){background:var(--bg-hover);color:var(--text-1)}.ai-entry-picker button.selected:hover:not(:disabled){background:var(--procs-blue-deep);color:#fff}.ai-entry-picker button:disabled{color:var(--text-3);cursor:not-allowed}.send{width:34px;height:34px;flex:none;border-radius:var(--radius-ctl);background:var(--procs-blue);color:#fff;display:grid;place-items:center}.send:disabled{background:var(--border-strong);color:var(--text-3);cursor:not-allowed}.statusbar{grid-area:status;display:flex;align-items:center;gap:20px;padding:0 14px;background:var(--bg-surface);border-top:1px solid var(--border);font-size:11px;color:var(--text-2);-webkit-user-select:none;user-select:none}.st-i{display:flex;align-items:center;gap:6px}.ai-terminal{flex:none;display:flex;flex-direction:column;background:var(--bg-base)}.ai-terminal.open{flex:0 0 28%;min-height:120px;max-height:40%}.ai-terminal>[data-testid=run-details]{flex:1;min-height:0;display:flex;flex-direction:column}.run-details-toggle{display:flex;align-items:center;gap:5px;background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer}.run-details-toggle:hover{color:var(--text)}.run-details-toggle svg{width:12px;height:12px}.run-summary{display:flex;flex-direction:column;gap:3px;margin:8px 0;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--bg-raised);font-size:11.5px;line-height:1.5}.run-summary-row{display:flex;align-items:baseline;gap:8px}.run-summary-row.err{color:var(--hec-red, var(--text))}.run-summary-k{flex:none;min-width:58px;display:inline-flex;align-items:center;gap:4px;color:var(--text-3);font-size:10.5px}.run-summary-k svg{width:11px;height:11px}.run-summary-next{color:var(--text-2)}.run-summary-reason{color:var(--text-2);word-break:break-word}.run-summary-eta{color:var(--text-2)}.run-summary-budget-bar{display:inline-block;width:64px;height:4px;margin-left:var(--space-2);vertical-align:middle;border-radius:2px;background:var(--bg-hover);overflow:hidden}.run-summary-budget-bar>i{display:block;height:100%;background:var(--text-2)}.run-summary-budget-bar.over>i{background:var(--warn, var(--danger, #d08b3a))}.ai-terminal-head{height:30px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 12px;color:var(--text-2);background:var(--bg-raised);font-size:11px;font-weight:600}.ai-terminal-head small{color:var(--text-3);font-size:10px;font-weight:400}.ai-terminal .task-output{flex:1;min-height:0;border-top:0}.st-i.warning{color:var(--hec-orange)}.st-dot{width:7px;height:7px;border-radius:50%}.st-dot.g{background:var(--success)}.st-dot.o{background:var(--hec-orange)}.st-dot.r{background:var(--danger)}.statusbar .right{margin-left:auto;display:flex;gap:20px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#080c1099;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:none;place-items:center;z-index:100}.overlay.show{display:grid}.modal{width:480px;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-modal);border-top:3px solid var(--hec-orange);box-shadow:var(--shadow-modal);overflow:hidden}.modal-b{padding:22px 24px}.modal-b h3{font-size:15px;display:flex;gap:10px;align-items:center;margin:0 0 10px}.warn-ico{width:28px;height:28px;border-radius:var(--radius-ctl);background:var(--hec-orange-soft);color:var(--hec-orange);display:grid;place-items:center;font-size:15px;flex:none}.modal-b p{font-size:12.5px;color:var(--text-2);margin:0 0 14px}.modal-b .target{font-family:var(--font-mono);font-size:12px;background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-ctl);padding:8px 12px;margin-bottom:14px;color:var(--text-1)}.chk{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--text-1);cursor:pointer}.chk input{margin-top:2px;accent-color:var(--hec-orange);width:15px;height:15px}.modal-f{display:flex;justify-content:flex-end;gap:10px;padding:14px 24px;border-top:1px solid var(--border)}.context-modal .modal-b{max-height:62vh;overflow-y:auto}.context-modal h4{font-size:13px;margin:16px 0 6px}.context-facts{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:12px 0 4px;font-size:12px}.context-facts dt{color:var(--text-secondary)}.context-files,.context-tasks{list-style:none;margin:0;padding:0;font-size:12px}.context-files li{display:flex;justify-content:space-between;gap:12px;padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius-ctl);margin-bottom:4px}.context-files li small{color:var(--text-secondary);white-space:nowrap}.context-files.excluded li{border-style:dashed;opacity:.75}.context-tasks li{padding:3px 0 3px 14px;position:relative}.context-tasks li:before{content:"•";position:absolute;left:2px;color:var(--text-secondary)}.context-prompt{margin-top:8px;padding:10px 12px;max-height:240px;overflow:auto;background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-ctl);font-family:var(--font-mono);font-size:11px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.notice{padding:8px 10px;border-radius:var(--radius-ctl);font-size:12px;margin:10px 0}.notice-warning{background:#d9930d1f;border:1px solid var(--warning);color:var(--text-primary)}.ai-attachments{order:1;width:100%;flex:0 0 100%;display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0}.attach-chip{display:inline-flex;align-items:center;gap:6px;padding:2px 6px 2px 8px;font-size:11px;border:1px solid var(--border);border-radius:999px;background:var(--bg-surface)}.attach-chip small{color:var(--warning)}.attach-chip.not-sent{border-style:dashed}.attach-chip button{background:none;border:0;color:var(--text-secondary);cursor:pointer;font-size:13px;line-height:1;padding:0 2px}.attach-chip button:hover{color:var(--danger)}.toast{position:fixed;right:400px;bottom:44px;background:var(--bg-raised);border:1px solid var(--border);border-left:3px solid var(--success);border-radius:var(--radius-card);padding:12px 16px;font-size:12.5px;box-shadow:var(--shadow-modal);display:none;z-index:110;color:var(--text-1)}.toast.error{border-left-color:var(--danger)}.toast.show{display:block;animation:pop .2s ease-out}@keyframes pop{0%{transform:translateY(8px);opacity:0}}@media(max-width:1100px){.toast{right:20px}}.create-project-view{max-width:640px}.field-label{display:block;margin:16px 0 6px;font-size:12px;color:var(--text-2)}.checkbox-label{display:flex;align-items:center;gap:8px;margin:16px 0 6px;font-size:13px}.create-project-view input[type=text],.create-project-view input:not([type]),.create-project-view select{width:100%;max-width:360px;height:32px;padding:0 10px;border-radius:var(--radius-ctl);border:1px solid var(--border);background:var(--bg-base);color:var(--text-1);font-size:13px;font-family:inherit}.create-project-view input:focus,.create-project-view select:focus{outline:none;border-color:var(--procs-blue)}.create-project-view input.is-duplicate{color:var(--danger);border-color:var(--danger)}.create-project-view input.is-duplicate:focus{border-color:var(--danger)}.create-project-view .field-error-text{color:var(--danger);margin-top:6px}.checkbox-label input{width:auto;max-width:none;height:auto}.state-label{color:var(--text-3);font-size:12px}.actions{display:flex;gap:10px;margin:16px 0}.app.core-readonly .pipeline-action,.app.core-readonly .ai-panel .ai-input,.app.core-readonly .ai-panel .ai-input input,.app.core-readonly .ai-panel .ai-input textarea,.app.core-readonly .ai-panel .ai-input button,.app.core-readonly .ai-panel button.task-stop,.app.core-readonly .ai-panel button.send,.app.core-readonly .workspace button.btn-primary,.app.core-readonly .workspace button.btn-orange,.app.core-readonly .workspace button.btn-ghost,.app.core-readonly .workspace .tpl-chip,.app.core-readonly .workspace textarea.editor-body{pointer-events:none;opacity:.55}.readiness-confirm{margin-top:14px;padding:12px 14px;border-radius:var(--radius-card);background:var(--bg-sunken, rgba(0, 0, 0, .2));border:1px solid var(--hec-orange)}.readiness-confirm p{margin:0 0 10px}.readiness-confirm-actions{display:flex;gap:10px;justify-content:flex-end}.rust-toolkit-progress{margin-top:14px;padding:12px;border-radius:var(--radius-card);background:var(--bg-sunken, rgba(0, 0, 0, .2));border:1px solid var(--border, rgba(255, 255, 255, .08))}.rust-toolkit-progress-bar{height:6px;border-radius:var(--radius-sm);background:#80808040;overflow:hidden;margin-bottom:8px}.rust-toolkit-progress-bar>i{display:block;height:100%;background:var(--accent, #3b82f6);transition:width .2s ease}.rust-toolkit-progress-text{display:flex;flex-direction:column;gap:4px;font-size:13px}.rust-toolkit-progress-text small{color:var(--text-3);word-break:break-all}.core-disconnect-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.core-disconnect-banner .btn-sm{padding:4px 12px;font-size:12px;flex-shrink:0}.error-banner{display:flex;align-items:center;gap:8px;background:#d2434b24;border:1px solid var(--danger);color:var(--danger);padding:10px 20px;font-size:12.5px}.error-banner.warning{background:var(--hec-orange-soft);border-color:var(--hec-orange);color:var(--hec-orange)}.error-banner-message{flex:1;min-width:0}.error-banner-close{width:26px;height:26px;flex:0 0 auto;display:grid;place-items:center;border-radius:var(--radius-ctl);color:currentColor;font-size:12px}.error-banner-close:hover{background:#ffffff1f}.centered{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;font-size:15px;gap:12px;text-align:center;padding:0 24px}.boot-carousel{width:min(100%,720px);aspect-ratio:16 / 9;border-radius:var(--radius-card);overflow:hidden;background:var(--bg-surface);border:1px solid var(--border);margin-bottom:var(--space-2)}.boot-carousel-img{display:block;width:100%;height:100%;object-fit:contain}.badge{display:inline-flex;align-items:center;padding:1px 7px;border-radius:999px;border:1px solid var(--border);font-size:11px;line-height:1.6;color:var(--text-2);white-space:nowrap}.badge-status-success{color:var(--success);border-color:color-mix(in srgb,var(--success) 45%,transparent);background:color-mix(in srgb,var(--success) 12%,transparent)}.badge-status-info{color:var(--chart-cat-1);border-color:color-mix(in srgb,var(--chart-cat-1) 45%,transparent);background:color-mix(in srgb,var(--chart-cat-1) 12%,transparent)}.badge-status-warning{color:var(--warning);border-color:color-mix(in srgb,var(--warning) 45%,transparent);background:color-mix(in srgb,var(--warning) 12%,transparent)}.badge-status-danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,transparent);background:color-mix(in srgb,var(--danger) 12%,transparent)}.badge-status-running{color:var(--hec-orange);border-color:color-mix(in srgb,var(--hec-orange) 45%,transparent);background:color-mix(in srgb,var(--hec-orange) 12%,transparent)}.badge-status-neutral{color:var(--text-2);border-color:var(--border);background:var(--bg-base)}.acc-title{margin:16px 0 8px;font-size:12.5px;font-weight:600;color:var(--text-1)}.acc-item{padding:8px 10px;margin-bottom:6px;border:1px solid var(--border);border-radius:var(--radius-ctl);background:var(--bg-base)}.acc-item small{display:block;margin-top:3px;color:var(--text-2);font-size:11.5px;line-height:1.5}.deploy-history{grid-column:1 / -1;min-height:150px;overflow-y:auto}.onsite-verification-card{min-width:0}.onsite-verification-list{display:grid;gap:8px;margin-top:var(--space-card-gap);max-height:280px;overflow-y:auto}.onsite-verification-item{display:flex;align-items:flex-start;gap:8px;font-size:12px;line-height:1.45}.onsite-verification-item b{display:inline-block;margin-right:6px;color:var(--hec-orange)}@media(max-width:1050px){.deploy-grid{grid-template-columns:340px 1fr}}@media(max-width:700px){.deploy-grid{grid-template-columns:1fr}}.dep-row{padding:8px 4px;border-bottom:1px solid var(--border)}.dep-row:last-child{border-bottom:none}.dep-row-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dep-time{font-size:12px;color:var(--text-2)}.dep-target{font-size:11.5px;color:var(--text-2);margin-left:auto}.dep-detail,.dep-error{display:block;margin-top:4px;font-size:11.5px;line-height:1.55;white-space:pre-wrap}.dep-detail{color:var(--text-2)}.dep-error{color:var(--danger)}.verify-gate{margin-top:var(--space-card-gap);padding:12px;border:1px solid var(--border);border-radius:var(--radius-ctl);background:var(--bg-base)}.verify-gate>b{display:block;font-size:12.5px;color:var(--text-1)}.verify-gate>small{display:block;margin-top:4px;font-size:11.5px;line-height:1.55;color:var(--text-2)}.verify-actions{display:flex;gap:8px;margin-top:10px}.verify-actions>.btn{flex:1;justify-content:center}.btn-danger{border:1px solid color-mix(in srgb,var(--danger) 45%,transparent);background:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger)}.btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 22%,transparent)}.btn-danger:disabled{opacity:.55;cursor:not-allowed}.modal-wide{width:min(720px,92vw);max-height:82vh;display:flex;flex-direction:column}.modal-wide .modal-b{overflow-y:auto}.readiness-list{display:flex;flex-direction:column;gap:8px;margin-top:var(--space-card-gap)}.readiness-row{padding:9px 11px;border:1px solid var(--border);border-radius:var(--radius-ctl);background:var(--bg-base)}.readiness-row.not-ready{border-color:color-mix(in srgb,var(--warning) 40%,var(--border))}.readiness-row-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.readiness-install{margin-left:auto}.readiness-detail,.readiness-fix{display:block;margin-top:4px;font-size:11.5px;line-height:1.55}.readiness-detail{color:var(--text-2);word-break:break-all}.readiness-fix{color:var(--text-1)}.settings-page{flex:1 1 auto;min-height:0;max-height:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:var(--space-card-gap);display:flex;flex-direction:column;gap:var(--space-card-gap)}.settings-page .panel{padding-bottom:12px}.settings-section{display:grid;gap:var(--space-card-gap);min-width:0;max-width:var(--measure-cards)}.settings-status{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.settings-preferences{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.settings-support{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.settings-section>.panel{min-width:0}.settings-panel-action{margin-left:auto}.settings-progress{margin:8px 12px 0}.readiness-summary{margin-top:8px}.readiness-summary-trigger{width:100%;min-height:30px;display:flex;align-items:center;gap:10px;padding:3px 0;border:0;background:transparent;color:var(--text-1);font:inherit;text-align:left;cursor:pointer}.readiness-summary-trigger:focus-visible{outline:2px solid var(--hec-orange);outline-offset:3px;border-radius:var(--radius-ctl)}.readiness-summary-trigger .badge{flex:0 0 auto}.readiness-summary-action{margin-left:auto;color:var(--text-2);font-size:11.5px;white-space:nowrap}.readiness-summary-details{margin-top:2px}.readiness-summary-details[hidden]{display:none}.settings-note{padding:10px 12px 0;font-size:12px;line-height:1.6;max-width:var(--measure-prose)}.settings-page .field-label{margin:14px 12px 6px}.settings-toggle{display:flex;align-items:center;gap:8px;min-height:32px;margin:12px;font-size:13px}.settings-toggle-spaced{margin-bottom:10px}.settings-number-input{width:88px;margin:0 12px}.settings-number-input-wide{width:108px}.settings-action{margin:12px}.settings-cargo-select{width:calc(100% - 24px);margin:0 12px}.settings-cargo-guidance{display:grid;gap:8px;margin:12px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-ctl);background:var(--bg-base);color:var(--text-2);font-size:12px;line-height:1.55}.cred-row{padding:12px;border-top:1px solid var(--border)}.cred-row-top{display:flex;align-items:center;gap:8px;margin-bottom:4px}.cred-row-actions{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.cred-row-actions .input{flex:1;min-width:0;padding:6px 10px;background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-ctl);color:var(--text-1);font-size:12.5px}.cred-value{display:block;margin-top:4px;font-size:11.5px;color:var(--text-2);word-break:break-all}.cred-error{display:block;margin-top:4px;font-size:11.5px;color:var(--warning)}.btn-sm{padding:5px 12px;font-size:12px}@media(max-width:760px){.cred-row-actions .input{flex-basis:100%}.build-overview-takeover .takeover-row{flex-direction:column}.build-details-hash,.artifact-hash{overflow-x:auto}}.stage-log{margin-top:16px;display:flex;flex-direction:column;min-height:220px;overflow:hidden}.stage-log-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px;border-bottom:1px solid var(--border);flex:none}.stage-log-tab{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--text-2);font-size:11.5px;cursor:pointer}.stage-log-tab:hover{background:var(--bg-hover)}.stage-log-tab.sel{background:var(--procs-blue-soft);border-color:var(--procs-blue);color:var(--procs-blue);font-weight:600}.stage-log-tab small{color:var(--text-3);font-size:10.5px}.stage-log-body{flex:1 1 auto;min-height:0;border-radius:0 0 var(--radius-card) var(--radius-card)}.stage-log-body .meta{color:var(--ai-violet)}.retry-timeline{margin-top:10px;display:flex;flex-direction:column;gap:8px}.retry-step{border-left:2px solid var(--warning);padding:2px 0 2px 10px}.retry-round{color:var(--warning);font-weight:600;margin-right:8px}.retry-stage{color:var(--text-1);margin-right:8px}.retry-at{color:var(--text-3);font-size:10.5px}.retry-reason{margin-top:2px;color:var(--text-2);white-space:pre-wrap;word-break:break-all}.retry-findings{margin:4px 0 0;padding-left:16px;color:var(--text-3);white-space:pre-wrap;word-break:break-all}.retry-findings li{margin-top:2px}.change-strip{display:flex;align-items:center;gap:0;overflow-x:auto;padding:10px 12px;margin-bottom:var(--space-card-gap);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-card)}.change-strip.empty{padding:14px}.change-strip-empty{color:var(--text-3);font-size:12px}.change-node{display:flex;align-items:center;flex:0 0 auto}.change-capsule{display:flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--text-2);cursor:pointer;white-space:nowrap}.change-capsule:hover{background:var(--bg-hover)}.change-capsule .dot{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;font-size:10px;border:1px solid var(--border);color:var(--text-3)}.change-capsule .lbl{display:flex;flex-direction:column;line-height:1.25;text-align:left}.change-capsule .lbl b{font-size:12px;font-weight:600}.change-capsule .lbl small{font-size:10.5px;color:var(--text-3);font-family:var(--font-mono)}.change-capsule.done .dot{background:var(--procs-blue);border-color:var(--procs-blue);color:#fff}.change-capsule.running .dot{background:var(--ai-violet);border-color:var(--ai-violet);color:#fff}.change-capsule.fail .dot{background:var(--danger);border-color:var(--danger);color:#fff}.change-capsule.sel{border-color:var(--procs-blue);background:var(--procs-blue-soft);color:var(--procs-blue)}.change-link{width:22px;height:1px;background:var(--border);flex:0 0 auto}.change-link.broken{background:var(--danger)}.code-left{display:flex;flex-direction:column;gap:var(--space-card-gap);min-width:0;min-height:0}.change-input{padding:12px 14px;max-height:22vh;overflow:auto}.change-input-text{margin:0;font-size:12px;line-height:1.6;color:var(--text-2);white-space:pre-wrap;word-break:break-word}.change-input-blocker{margin:10px 0 0;font-size:11.5px;color:var(--danger);white-space:pre-wrap;word-break:break-word}.pane-tabs{display:inline-flex;gap:4px;margin-right:10px}.pane-tab{padding:3px 12px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--text-2);font-size:11.5px;cursor:pointer}.pane-tab:hover:not(:disabled){background:var(--bg-hover)}.pane-tab.sel{background:var(--procs-blue-soft);border-color:var(--procs-blue);color:var(--procs-blue);font-weight:600}.pane-tab:disabled{opacity:.45;cursor:not-allowed}.diff-pane{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.diff-summary{display:flex;align-items:center;gap:12px;padding:8px 14px;border-bottom:1px solid var(--border);font-size:11px;color:var(--text-3)}.diff-add-count{color:var(--success)}.diff-del-count{color:var(--danger)}.diff-truncated{color:var(--warning)}.diff-body{overflow:auto;flex:1 1 auto;min-height:0;background:var(--code-bg, var(--bg-base));border-radius:0 0 var(--radius-card) var(--radius-card);font-size:11.5px;line-height:1.55}.diff-file+.diff-file{margin-top:14px}.diff-file-head{display:flex;align-items:center;gap:10px;padding:6px 14px;background:var(--bg-surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-size:11px;position:sticky;top:0;z-index:1}.diff-file-path{color:var(--text-1);word-break:break-all}.diff-line{display:grid;grid-template-columns:44px 44px 1fr;white-space:pre-wrap;word-break:break-all}.diff-ln{text-align:right;padding-right:10px;color:var(--text-3);-webkit-user-select:none;user-select:none;opacity:.75}.diff-text{padding-right:12px}.diff-add{background:color-mix(in srgb,var(--success) 14%,transparent)}.diff-add .diff-text{color:var(--success)}.diff-del{background:color-mix(in srgb,var(--danger) 14%,transparent)}.diff-del .diff-text{color:var(--danger)}.diff-hunk .diff-text{color:var(--ai-violet)}.diff-meta .diff-text{color:var(--text-3)}.diff-context .diff-text{color:var(--text-2)}.change-input-raw{margin-top:10px}.change-input-raw>summary{cursor:pointer;font-size:11px;color:var(--text-3)}.change-input-raw>summary:hover{color:var(--text-2)}.change-input-raw .change-input-text{margin-top:6px;font-family:var(--font-mono);font-size:11px;color:var(--text-3)}.project-center>.view-head .sub,.stats-page>.view-head .sub,.models-page>.view-head .sub,.hardware-page>.view-head .sub,.settings-page>.view-head .sub,.project-center>p.dim,.stats-page>p.dim,.models-page>p.dim,.hardware-page>p.dim{max-width:var(--measure-prose)}.project-center>.pc-actions,.project-center>p.dim,.hardware-page>.hw-toolbar,.hardware-page>p.dim,.models-page>p.dim,.stats-page>p.dim{padding-left:var(--space-3)}.project-center>.pc-banner,.stats-page>p.error-banner{margin-left:var(--space-3)}.project-center,.stats-page,.models-page,.hardware-page{flex:1;min-width:0;min-height:0;overflow:auto;padding:var(--space-card-gap)}.pc-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:var(--space-3);margin-bottom:var(--space-card-gap);border-radius:var(--radius-card);border:1px solid color-mix(in srgb,var(--procs-blue) 35%,var(--border));background:color-mix(in srgb,var(--procs-blue) 10%,var(--bg-surface))}.pc-banner p{margin:4px 0 0;font-size:12px}.pc-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:var(--space-card-gap)}.pc-empty{text-align:center;padding:48px var(--space-5);border:1px dashed var(--border);border-radius:var(--radius-card)}.company-mark{display:flex;flex-direction:column;gap:var(--space-2)}.company-mark-img{display:block;height:auto;max-width:100%}.company-mark-tagline{margin:0;font-size:12px;color:var(--text-3)}.company-mark-page{align-items:flex-start;padding:var(--space-4)}.company-mark-page .company-mark-img{width:168px}.company-mark-compact{align-items:center;margin-bottom:var(--space-4)}.company-mark-compact .company-mark-img{width:132px}.pc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,280px));gap:var(--space-card-gap);margin:0 0 var(--space-card-gap);align-items:start}.hw-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 var(--space-card-gap)}.hw-network-list{list-style:none;margin:0;padding:0;max-height:40vh;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.hw-network-row{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;cursor:pointer;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-ctl);background:var(--bg-base)}.hw-network-row:has(input:checked){border-color:var(--hec-orange);background:var(--hec-orange-soft)}.hw-network-row input{margin-top:2px;accent-color:var(--hec-orange)}.hw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-card-gap);max-width:var(--measure-cards)}.hw-card{display:flex;flex-direction:column;padding:var(--space-3) var(--space-4)}.hw-card-actions{margin-top:auto;padding-top:10px;display:flex;align-items:center;justify-content:space-between;gap:8px}.hw-card-delete{margin-left:auto}.pc-card-target-unavail{color:var(--danger, #f07178);font-weight:600;font-size:12px;margin:0 0 6px;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.hw-target{display:flex;flex-direction:column;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.hw-target-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.hw-target-scope{font-size:10.5px;line-height:1.3}.hw-target-rows{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:11.5px}.hw-target-rows>label{display:flex;align-items:center;gap:6px}.hw-target-rows>label>span{flex:none}.hw-target-rows input{flex:1;min-width:0;padding:2px 6px;font-size:11.5px;color:var(--text-1);background:transparent;border:1px solid transparent;border-radius:var(--radius-ctl);transition:border-color .12s ease,background .12s ease}.hw-target-rows input:hover:not(:disabled){border-color:var(--border)}.hw-target-rows input:focus{outline:none;background:var(--bg-surface);border-color:color-mix(in srgb,var(--accent, #3b82f6) 55%,var(--border))}.hw-target-rows input:disabled{color:var(--text-2);cursor:not-allowed}.hw-target-actions{display:flex;align-items:center;gap:8px}.hw-target-save{margin-left:auto}.hw-target-badge{align-self:flex-start;margin-top:2px;padding:0 6px;border-radius:999px;background:color-mix(in srgb,var(--accent, #3b82f6) 16%,transparent);color:var(--text-2);font-size:10px;line-height:16px}.pc-card,.hw-card,.models-card,.stats-card,.dev-card,.task-card{background:var(--bg-surface);border:1.5px solid var(--border);border-radius:var(--radius-card);box-shadow:0 1px color-mix(in srgb,var(--text-1) 4%,transparent);transition:border-color .15s ease,box-shadow .15s ease,transform .12s ease}.pc-card,.hw-card{cursor:pointer}.pc-card:hover,.hw-card:hover{border-color:color-mix(in srgb,var(--procs-blue) 55%,var(--border));box-shadow:0 0 0 1px color-mix(in srgb,var(--procs-blue) 28%,transparent),0 6px 16px color-mix(in srgb,var(--procs-blue) 12%,transparent)}.pc-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px;min-width:0}.pc-card-name{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:700}.pc-card-top .badge{flex:none;max-width:46%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pc-card{position:relative;padding:var(--space-3);box-sizing:border-box;width:280px;height:240px;display:flex;flex-direction:column;overflow:visible;cursor:default}.pc-card-body{position:relative;z-index:1;flex:1 1 auto;min-height:0;overflow:hidden;display:flex;flex-direction:column;pointer-events:none}.pc-card-hit{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;padding:0;border:0;border-radius:inherit;background:transparent;cursor:pointer}.pc-card-hit:disabled{cursor:not-allowed}.pc-card-hit:focus-visible{outline:2px solid var(--accent, #3b82f6);outline-offset:2px}.pc-card-top,.pc-card .pc-outcome,.pc-card .pc-outcome-detail,.pc-card .pc-meta,.pc-card .pc-pipeline{position:relative;z-index:1;pointer-events:none}.pc-card-actions{position:relative;z-index:1;flex:0 0 auto;margin-top:auto;pointer-events:none}.pc-card-actions,.pc-card-actions *{pointer-events:auto}.pc-card-overflow-wrap{position:absolute;top:8px;right:8px;z-index:3;pointer-events:auto}.pc-card-overflow{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:1px solid var(--border);border-radius:999px;background:var(--bg-raised, var(--bg-surface));color:var(--text-2);font-size:14px;line-height:1;cursor:help}.pc-card-overflow:hover,.pc-card-overflow:focus-visible{border-color:color-mix(in srgb,var(--accent, #3b82f6) 55%,var(--border));color:var(--text-1);outline:none}.pc-card-overflow:focus-visible{outline:2px solid var(--accent, #3b82f6);outline-offset:1px}.pc-card-popover{position:absolute;top:calc(100% + 6px);right:0;z-index:4;width:min(320px,70vw);max-height:220px;overflow:auto;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-modal);background:var(--bg-raised, var(--bg-surface));box-shadow:0 0 0 1px color-mix(in srgb,var(--text-1) 4%,transparent),0 10px 28px color-mix(in srgb,var(--text-1) 18%,transparent);color:var(--text-1);font-size:12px;line-height:1.45;pointer-events:auto;cursor:default}.pc-card-popover-name{margin:0 0 4px;font-size:13px;font-weight:700;word-break:break-word}.pc-card-popover-status{margin:0 0 8px;color:var(--text-2);font-size:11px}.pc-card-popover-headline{margin:0 0 6px;font-weight:600}.pc-card-popover-reason{margin:0 0 6px;white-space:pre-wrap;word-break:break-word;font-family:var(--font-mono, ui-monospace, monospace);font-size:11.5px;color:var(--text-2)}.pc-card-popover-target{margin:0 0 6px;color:var(--danger, #f07178);font-weight:600}.pc-card-popover-meta{margin:0;color:var(--text-3, var(--text-2));font-size:11px}.pc-outcome{margin:0 0 6px;font-size:13px;font-weight:600;color:var(--text-1);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;word-break:break-word}.pc-outcome-detail{display:flex;align-items:baseline;gap:6px;margin:0 0 8px;min-width:0;font-size:12px;color:var(--text-2)}.pc-outcome-stage,.pc-outcome-category{flex:none;white-space:nowrap}.pc-outcome-category{padding:0 6px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--danger, #ef4444) 12%,transparent);color:var(--danger, #ef4444)}.pc-outcome-reason{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-family:var(--font-mono, ui-monospace, monospace)}.pc-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;font-size:12px;min-width:0}.pc-meta>*{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pc-pipeline{display:flex;gap:6px;margin:6px 0 4px;flex:0 0 auto}.pc-dot{width:10px;height:10px;border-radius:50%;background:var(--border)}.pc-dot-done{background:var(--success, #22c55e)}.pc-dot-running{background:var(--accent, #3b82f6);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent, #3b82f6) 25%,transparent)}.pc-dot-fail{background:var(--danger, #ef4444)}.pc-dot-pending{background:var(--text-3, #64748b);opacity:.5}.generate-stage{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;min-height:0;padding:var(--space-card-gap)}.generate-tabs{display:flex;gap:4px;margin-bottom:10px;flex:0 0 auto}.generate-tab{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid var(--border);border-radius:var(--radius-ctl);background:var(--bg-base);color:var(--text-2);font:inherit;font-size:12.5px;cursor:pointer}.generate-tab:hover{background:var(--bg-hover)}.generate-tab.sel{color:var(--text-1);border-color:var(--border-strong);background:var(--bg-raised)}.generate-tab-count{padding:0 6px;border-radius:999px;background:var(--bg-surface);color:var(--text-3);font-family:var(--font-num);font-size:11px}.generate-panel{display:flex;flex-direction:column;min-height:0;flex:1 1 auto}.generate-panel>.view{position:relative;inset:auto;padding:0;min-height:0;flex:1 1 auto}.pc-card-actions{display:flex;justify-content:flex-end;gap:4px;margin-top:4px;align-items:center}.pc-card-primary{margin-right:auto;max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-card-gap);margin-top:var(--space-card-gap);max-width:var(--measure-cards)}.stats-cards-headline{grid-template-columns:repeat(3,minmax(0,1fr));max-width:1100px}@media(max-width:760px){.stats-cards-headline{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}.stats-card{padding:var(--space-3) var(--space-4)}.stats-card-label{font-size:12px;color:var(--text-3);margin-bottom:6px}.stats-card-value{font-size:22px;font-weight:600;color:var(--text-1);margin-bottom:8px}.stats-def{font-size:11px;line-height:1.4;margin:0;max-width:var(--measure-prose)}.stats-chart{display:block;margin-top:8px}.stats-chart-wrap{position:relative}.stats-tip{position:absolute;top:8px;z-index:2;pointer-events:none;min-width:132px;padding:8px 10px;border:1px solid var(--border-strong);border-radius:var(--radius-ctl);background:var(--bg-raised);box-shadow:0 6px 18px #00000047;font-size:11px;line-height:1.6}.stats-tip-key{color:var(--text-2);margin-bottom:4px;font-family:var(--font-mono)}.stats-tip-row{display:flex;align-items:center;gap:6px;color:var(--text-1)}.stats-tip-row b{margin-left:auto;font-family:var(--font-num)}.stats-legend{display:flex;flex-wrap:wrap;gap:14px;margin:2px 0 6px;font-size:11.5px;color:var(--text-2)}.stats-legend-item{display:inline-flex;align-items:center;gap:6px}.stats-swatch{width:10px;height:10px;border-radius:var(--radius-sm);flex:0 0 auto}.stats-meter{margin-top:8px}.stats-meter-track{height:8px;border-radius:var(--radius-sm);background:var(--bg-hover);overflow:hidden}.stats-meter-fill{height:100%;border-radius:var(--radius-sm)}.stats-meter-track.unmeasured{background:transparent;border:1px dashed var(--border-strong);height:8px}.stats-meter-note{margin-top:5px;font-size:11px;color:var(--text-2)}.stats-list{list-style:none;margin:0;padding:0}.stats-list li{padding:10px 0;border-bottom:1px solid var(--border)}.stats-list li:last-child{border-bottom:none}.provider-key{padding:10px 14px 12px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg-base) 55%,var(--bg-surface))}.provider-key-head{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--text-2)}.provider-key-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.provider-key-row input[type=password]{font-family:var(--font-mono);font-size:12px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-ctl);background:var(--bg-base);color:var(--text-1)}.model-row{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border);flex-wrap:wrap}.model-row:last-child{border-bottom:none}.model-enable-chk{margin-left:auto;align-items:center;white-space:nowrap;gap:6px}.model-row.selected{background:color-mix(in srgb,var(--accent, #3b82f6) 8%,transparent);border-radius:var(--radius-ctl);padding-left:8px;padding-right:8px}.factory-badge{margin-left:10px;font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--border);color:var(--text-3)}.factory-badge.on{border-color:color-mix(in srgb,var(--success, #22c55e) 50%,var(--border));color:var(--success, #22c55e);background:color-mix(in srgb,var(--success, #22c55e) 12%,transparent)}.factory-badge.off{opacity:.55}.conn-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px}.conn-chip.conn-ok{color:var(--success, #22c55e)}.conn-chip.conn-warn{color:var(--warning, #f59e0b)}.conn-chip.conn-err{color:var(--danger, #ef4444)}.local-tag{color:var(--success, #22c55e);font-size:11px;margin-left:4px}.btn-xs{padding:2px 6px;font-size:12px;min-height:24px}@media(min-height:900px){.doc-history-list{max-height:260px}.doc-history-preview pre{max-height:200px}}.models-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-card-gap);max-width:var(--measure-cards)}.models-card{display:flex;flex-direction:column;padding:var(--space-3)}.models-card-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.models-card-head>b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.models-card-sub,.models-card-status{font-size:11px;line-height:1.45;margin:0 0 6px;word-break:break-word}.models-card-list{max-height:168px;overflow-y:auto;margin-top:auto;border-top:1px solid var(--border);padding-top:6px}.models-card-empty{font-size:11px;margin:6px 0}.models-card .model-row{display:flex;align-items:center;gap:8px;padding:5px 0;flex-wrap:wrap}.model-row-name{display:flex;flex-direction:column;min-width:0}.model-row-name>.mono{font-size:10px}.model-row-probe{font-size:10px;flex-basis:100%}.probe-fact{display:flex;gap:6px;align-items:baseline}.probe-fact-state{font-weight:600}.probe-fact-yes .probe-fact-state{color:var(--success)}.probe-fact-no .probe-fact-state{color:var(--danger)}.probe-fact-unknown .probe-fact-state{color:var(--warning)}.probe-fact-verbatim{margin-top:2px;-webkit-user-select:text;user-select:text;overflow-wrap:anywhere}.probe-fact-next{margin-top:2px}.models-endpoint-form{display:flex;flex-direction:column;gap:6px}.models-endpoint-form input{width:66.67%;min-width:0}.models-endpoint-form .chk>span{flex:0 0 auto;white-space:nowrap}.models-endpoint-actions{display:flex;gap:8px;margin:8px 0 4px}.models-select-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-card-gap);margin-top:var(--space-card-gap);max-width:var(--measure-cards)}.models-select-card{padding:12px 14px}.models-select-card select{width:100%}@media(max-width:1100px){.models-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.models-card .model-row .model-enable-chk{margin-left:0;flex:1;min-width:0;align-items:flex-start;text-align:left}.models-card .model-row-name{align-items:flex-start;text-align:left;overflow:hidden}.models-card .model-row-name>b,.models-card .model-row-name>.mono{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.models-key-link{display:flex;flex-wrap:wrap;gap:4px;align-items:baseline}.models-key-link .mono{font-size:10px;word-break:break-all}.models-card-list{max-height:336px}.provider-key-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.provider-key-head>span:first-child{margin-right:2px}.models-apply-link{font-size:11px;color:var(--accent, #3b82f6);text-decoration:underline}.satisfied-facts{margin:2px 0;display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:11px}.satisfied-facts dt{color:var(--text-2);white-space:nowrap}.satisfied-facts dd{margin:0;color:var(--text-1);overflow-wrap:anywhere}.satisfied-tasks{display:flex;flex-direction:column;gap:6px;margin:4px 0}.satisfied-task{display:flex;gap:8px;align-items:flex-start;font-size:11px;cursor:pointer;color:var(--text-1)}.satisfied-task input{margin-top:3px;flex:0 0 auto}.satisfied-note{width:100%;min-height:3.5em;resize:vertical;background:var(--bg-base);color:var(--text-1);border:1px solid var(--border);border-radius:6px;padding:8px;font:inherit;font-size:11px}.contract-list{list-style:none;margin:0 0 var(--space-3);padding:0;display:flex;flex-direction:column;gap:var(--space-2);max-height:36rem;overflow:auto}.contract-list li{padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-raised);font-size:13px;line-height:1.5}.contract-list code{font-family:var(--font-mono);color:var(--text-2)}.contract-list .muted{color:var(--text-3);font-size:12px}.contract-text{font-family:var(--font-mono);white-space:pre-wrap;overflow-wrap:anywhere}.view.active[data-view=generate-spec]>.requirement-contract-panel{margin-bottom:var(--space-card-gap)}.tier-picker{display:inline-flex;align-items:center;gap:var(--space-1)}.tier-picker-label{color:var(--text-3);font-size:12px;margin-right:var(--space-1)}.tier-opt{padding:2px var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-2);font-size:12px;cursor:pointer}.tier-opt.sel{border-color:var(--border-strong);background:var(--bg-hover);color:var(--text-1)}.tier-opt:disabled{opacity:.5;cursor:default}.tier-opt-bound{color:var(--text-3, var(--text-2));font-variant-numeric:tabular-nums}.run-tier{display:flex;align-items:baseline;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);font-size:12px}.run-tier .muted{color:var(--text-3)}.row.degraded-artifact .v{color:var(--warning)}.root-error{max-width:720px;margin:0 auto;padding:48px 24px;display:flex;flex-direction:column;gap:12px;color:var(--text);background:var(--bg);min-height:100vh}.root-error-title{font-size:20px;font-weight:600;margin:0}.root-error-body{margin:0;color:var(--text-dim)}.root-error-actions{display:flex;gap:8px;margin:8px 0}.root-error-details-label{margin:8px 0 0;font-size:12px;color:var(--text-dim)}.root-error-details{margin:0;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm, 6px);background:var(--surface);font-family:var(--font-mono, monospace);font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:40vh;overflow:auto;-webkit-user-select:text;user-select:text}.pane-toggle{display:flex;gap:4px}.pane-toggle .btn.is-active{background:var(--bg-raised);border-color:var(--border-strong);color:var(--text-1)}.req-grid>.panel>.chat-panel{flex:1 1 auto;min-height:0}.chat-panel{display:flex;flex-direction:column;border:0;background:transparent}.chat-panel>.panel-h{border-top:1px solid var(--border)}.chat-status{font-size:var(--fs-xs);color:var(--text-dim);font-weight:400}.chat-transcript{flex:1 1 auto;min-height:0;overflow:auto;padding:12px 16px;display:flex;flex-direction:column;gap:10px}.chat-empty,.chat-applied{color:var(--text-dim);font-size:var(--fs-xs);margin:0}.chat-msg{display:flex;flex-direction:column;gap:2px}.chat-msg-who{font-size:var(--fs-xs);color:var(--text-dim)}.chat-msg-body{white-space:pre-wrap;word-break:break-word;line-height:1.55}.chat-msg-user .chat-msg-body{background:var(--surface-2);border-radius:var(--radius-sm);padding:8px 10px}.chat-jump{align-self:center;margin:0 0 6px}.chat-conflict{margin:0 16px 10px;padding:10px 12px;border:1px solid var(--warn);border-radius:var(--radius-sm)}.chat-conflict-actions{display:flex;gap:8px;margin-top:8px}.chat-error{margin:0 16px 8px;color:var(--danger);font-size:var(--fs-xs);white-space:pre-wrap}.chat-ended{margin:0 16px 8px}.chat-composer{flex:0 0 auto;border-top:1px solid var(--border);padding:10px 12px;display:flex;flex-direction:column;gap:8px}.chat-input{width:100%;resize:vertical;max-height:40vh;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;font:inherit;line-height:1.5}.chat-actions{display:flex;align-items:center;gap:8px}.demo-sandbox-banner{position:sticky;top:0;z-index:40;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 18px;padding:10px 16px;background:#14325a;color:#e8f1fb;font:600 13px/1.45 Noto Sans SC,sans-serif}.demo-sandbox-banner strong{font-weight:800}.demo-sandbox-banner span{color:#c5d8ee;font-weight:500}.demo-sandbox-banner .demo-sandbox-actions{display:flex;gap:10px;align-items:center}.demo-sandbox-banner a,.demo-sandbox-banner button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #7aa7d8;border-radius:6px;background:transparent;color:#fff;padding:6px 10px;font:700 12px/1 Noto Sans SC,sans-serif;text-decoration:none;cursor:pointer}.demo-sandbox-banner button{background:#1d5aa0}body{margin:0;display:flex;flex-direction:column;height:100dvh}.demo-sandbox-banner{flex-shrink:0}#root{flex:1;min-height:0}#root>.app{height:100%;grid-template-rows:44px minmax(0,1fr) 28px}@media(max-width:1100px){.app .ai-panel{display:none}}.sim-notice-points{margin:0 0 14px;padding-left:18px;font-size:12.5px;line-height:1.7;color:var(--text-1)}.sim-notice-points li{margin-bottom:4px}.sim-notice-real{background:var(--bg-base);border:1px solid var(--border);border-left:3px solid var(--hec-orange);border-radius:var(--radius-ctl);padding:10px 12px;margin:0!important;line-height:1.7}.overlay[aria-labelledby=deployDlgTitle] .modal-b{max-height:62vh;overflow-y:auto}.demo-error-boundary{display:grid;place-items:center;min-height:70vh;padding:32px 16px}.demo-error-card{width:min(560px,100%);background:var(--bg-raised);border:1px solid var(--border);border-top:3px solid var(--hec-orange);border-radius:var(--radius-modal);box-shadow:var(--shadow-modal);padding:24px}.demo-error-card h2{font-size:16px;margin:0 0 12px;color:var(--text-1)}.demo-error-card p{font-size:12.5px;line-height:1.7;color:var(--text-2);margin:0 0 12px}.demo-error-kept{background:var(--bg-base);border:1px solid var(--border);border-left:3px solid var(--hec-orange);border-radius:var(--radius-ctl);padding:10px 12px;color:var(--text-1)!important}.demo-error-details{margin:0 0 14px;font-size:12px;color:var(--text-2)}.demo-error-details summary{cursor:pointer}.demo-error-details pre{font-family:var(--font-mono);font-size:11.5px;white-space:pre-wrap;word-break:break-word;background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-ctl);padding:8px 10px;margin:8px 0 0}.demo-error-actions{display:flex;justify-content:flex-end;margin-bottom:10px}.demo-error-hint{font-size:11.5px;margin:0!important}
