:root{--canvas: #f2f4f3;--surface: #f7f8f7;--strong: #ffffff;--ink: #18221d;--ink-soft: #4f5b54;--ink-faint: #5d6861;--line: #dfe4e0;--line-strong: #c7d0c9;--line-control: #9da9a0;--signal: #1e6c4d;--signal-soft: #dcebe2;--warning: #8f4b15;--warning-soft: #f3e5d5;--danger: #ad3f37;--danger-soft: #f4dfdc;--radius-control: 5px;--radius-card: 6px;--radius-panel: 8px;--shadow-soft: 0 1px 3px rgb(24 34 29 / 6%);--display: "Bahnschrift SemiCondensed", "Aptos Display", "Microsoft YaHei UI", sans-serif;--body: "Microsoft YaHei UI", "Noto Sans SC", sans-serif;--mono: "Cascadia Code", "IBM Plex Mono", Consolas, monospace}*{box-sizing:border-box}html{background:var(--canvas)}body{margin:0;min-width:0;min-height:100vh;background:var(--canvas);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased}button,select,input,textarea{font:inherit}button,select,input,textarea,summary,a{outline-offset:3px}button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid var(--signal)}button{color:inherit}.app-frame{min-height:100vh;background:var(--canvas)}.app-shell{display:flex;flex-direction:column;width:100%;max-width:1480px;min-height:100vh;margin:0 auto;overflow:visible;border-inline:1px solid var(--line);background:var(--canvas)}.app-shell>main{flex:1 0 auto;min-width:0}.topbar{padding:11px 14px 10px;border-bottom:1px solid var(--line-strong);background:var(--surface)}.global-topbar{position:relative;z-index:30;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:64px}.global-topbar .brandline{height:auto;margin:0;gap:16px}.brandline{display:flex;align-items:center;justify-content:space-between;height:20px;margin-bottom:7px}.brand{display:flex;align-items:center;gap:8px;font:700 11px/1 var(--display);letter-spacing:.11em}.brand>span:last-child{display:flex;flex-direction:column;gap:2px}.brand small{color:var(--ink-faint);font:700 6px/1 var(--mono);letter-spacing:.12em}.brand-mark{display:grid;place-items:center;width:20px;height:20px;background:var(--ink);color:#fff;font:700 7px/1 var(--mono);letter-spacing:-.08em}.global-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px}.create-project-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding-inline:14px;border:1px solid var(--ink);border-radius:var(--radius-control);background:var(--ink);color:#fff;font-size:11px;font-weight:700;cursor:pointer}.create-project-button:hover:not(:disabled){background:#26332c}.create-project-button:disabled{border-color:var(--line-strong);background:var(--line);color:var(--ink-faint);cursor:not-allowed}.global-create-button{min-width:84px;height:40px;padding-inline:12px}.global-settings{position:relative}.global-settings-button{display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--strong);color:var(--ink-soft);cursor:pointer}.global-settings-button:hover,.global-settings-button.active,.global-settings-button[aria-expanded=true]{border-color:var(--signal);background:var(--signal-soft);color:var(--signal)}.global-settings-menu{position:absolute;z-index:70;top:calc(100% + 8px);right:0;width:min(284px,calc(100vw - 28px));padding:6px;border:1px solid var(--line-strong);border-radius:var(--radius-panel);background:var(--strong);box-shadow:0 16px 38px #18221d29}.global-settings-menu a{display:grid;gap:5px;width:100%;min-height:62px;padding:11px 12px;border:0;border-radius:var(--radius-control);background:transparent;color:var(--ink);text-align:left;text-decoration:none;cursor:pointer}.global-settings-menu a:hover,.global-settings-menu a.active{background:var(--signal-soft)}.global-settings-menu strong{font:700 13px/1.1 var(--display)}.global-settings-menu span{color:var(--ink-faint);font-size:10px;line-height:1.35}.factory-view-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:8px 14px;border-bottom:1px solid var(--line);background:var(--surface)}.factory-view-tabs a{display:grid;place-items:center;min-width:0;min-height:40px;padding:0 10px;border:1px solid transparent;border-radius:var(--radius-control);background:transparent;color:var(--ink-soft);font-size:11px;font-weight:700;text-decoration:none;cursor:pointer}.factory-view-tabs a:hover{border-color:var(--line-strong);background:var(--strong)}.factory-view-tabs a.active{border-color:color-mix(in srgb,var(--signal) 28%,var(--line));background:var(--signal-soft);color:var(--signal);box-shadow:inset 0 -2px 0 var(--signal)}.version-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--warning);background:var(--warning-soft)}.version-notice>div{display:grid;gap:3px;min-width:0}.version-notice strong{color:var(--warning);font:700 11px/1.2 var(--display)}.version-notice span{color:var(--ink-soft);font-size:10px;line-height:1.4}.version-notice button{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;min-height:34px;padding:0 12px;border:1px solid var(--warning);border-radius:var(--radius-control);background:var(--strong);color:var(--warning);font-size:10px;font-weight:700;cursor:pointer}.page-heading-band{display:grid;grid-template-columns:minmax(0,1fr) 124px;align-items:center;gap:18px;padding:18px 16px;border-bottom:1px solid var(--line);background:var(--surface)}.page-heading-band>div:first-child{min-width:0}.page-heading-band>div:first-child>span{color:var(--signal);font:700 9px/1 var(--mono);letter-spacing:.08em}.page-heading-band h1{margin:7px 0 5px;font:700 28px/1 var(--display)}.page-heading-band p{margin:0;color:var(--ink-soft);font-size:11px;line-height:1.45}.section-label{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;padding:0 14px;border-bottom:1px solid var(--line);background:var(--surface)}.section-label>span{font:700 13px/1 var(--display)}.section-label>strong{color:var(--ink-soft);font-weight:700;font-size:10px}.workshop-heading-band{display:grid;grid-template-columns:minmax(0,1fr) 132px;align-items:center;gap:18px;padding:18px 16px;border-bottom:1px solid var(--line);background:var(--surface)}.workshop-heading-band>div:first-child{min-width:0}.workshop-heading-band>div:first-child>span{color:var(--signal);font:700 9px/1 var(--mono);letter-spacing:.08em}.workshop-heading-band h1{margin:7px 0 5px;font:700 28px/1 var(--display)}.workshop-heading-band p{margin:0;color:var(--ink-soft);font-size:11px;line-height:1.45}.workshop-live-state{display:grid;align-content:center;gap:4px;min-height:76px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--strong);box-shadow:var(--shadow-soft)}.workshop-live-state span,.workshop-live-state small{color:var(--ink-faint);font:700 9px/1.25 var(--mono)}.workshop-live-state strong{color:var(--signal);font:700 27px/.9 var(--display)}.workshop-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--canvas)}.workshop-tabs button{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;align-content:center;gap:4px 8px;min-width:0;min-height:68px;padding:10px 11px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--strong);color:var(--ink-soft);text-align:left;cursor:pointer;box-shadow:var(--shadow-soft)}.workshop-tabs button:hover:not(:disabled){border-color:var(--line-strong)}.workshop-tabs button:disabled{color:var(--ink-faint);cursor:not-allowed}.workshop-tabs button.active{border-color:color-mix(in srgb,var(--signal) 45%,var(--line));background:var(--signal-soft);color:var(--signal)}.workshop-tabs button>span{grid-row:1 / span 2;display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line-strong);background:var(--surface);font:700 8px/1 var(--mono)}.workshop-tabs button.active>span{border-color:var(--signal);background:var(--signal);color:#fff}.workshop-tabs strong{overflow:hidden;font:700 12px/1.1 var(--display);text-overflow:ellipsis;white-space:nowrap}.workshop-tabs small{overflow:hidden;color:var(--ink-faint);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.factory-bottleneck{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--surface)}.factory-bottleneck>div:first-child{display:grid;gap:3px;min-width:0}.factory-bottleneck span{color:var(--ink-faint);font:700 8px/1 var(--mono)}.factory-bottleneck strong{overflow:hidden;font:700 13px/1.1 var(--display);text-overflow:ellipsis;white-space:nowrap}.factory-bottleneck small{overflow:hidden;color:var(--ink-soft);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.factory-bottleneck.stable{border-left:4px solid var(--signal)}.factory-bottleneck.attention{border-left:4px solid var(--warning);background:var(--warning-soft)}.factory-bottleneck-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.secondary-button{min-height:42px;padding:0 14px;border:1px solid var(--line-strong);background:var(--strong);color:var(--ink);font-size:11px;font-weight:700;cursor:pointer}.secondary-button:disabled{color:var(--ink-faint);cursor:not-allowed}.drawer-primary{min-height:42px;padding:0 18px;border:1px solid var(--ink);background:var(--ink);color:#fff;font-size:11px;font-weight:700;cursor:pointer}.drawer-primary:disabled{border-color:var(--line-strong);background:var(--line);color:var(--ink-faint);cursor:not-allowed}.workshop-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-bottom:1px solid var(--line);background:var(--surface)}.workshop-summary>div,.workshop-summary>button{display:grid;align-content:center;gap:4px;min-width:0;min-height:66px;padding:10px 14px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--strong);text-align:left}.workshop-summary>div:nth-child(2n){border-right:0}.workshop-summary>button{cursor:pointer}.workshop-summary>button:disabled{cursor:not-allowed}.workshop-summary span{color:var(--ink-faint);font:700 8px/1 var(--mono)}.workshop-summary strong{font:700 22px/.9 var(--display)}.workshop-summary small{color:var(--ink-faint);font-size:8px}.workshop-summary>button.attention{background:var(--warning-soft);color:var(--warning)}.factory-production-chain{display:grid;gap:12px;padding:14px}.factory-workshop-lane{display:grid;grid-template-columns:minmax(0,1fr) 76px;align-items:stretch;gap:8px}.factory-workshop-panel{min-width:0;border:1px solid var(--line-strong);border-radius:var(--radius-panel);background:var(--strong);box-shadow:var(--shadow-soft)}.factory-workshop-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:10px 12px;border-bottom:1px solid var(--line)}.factory-workshop-title{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:10px;min-width:0}.factory-workshop-title>span{color:var(--ink-faint);font:700 8px/1 var(--mono);letter-spacing:.06em}.factory-workshop-title b{display:flex;align-items:baseline;gap:2px;font:700 22px/.9 var(--display)}.factory-workshop-title b small{color:var(--ink-faint);font:700 8px/1 var(--mono)}.factory-workshop-title h2{margin:0;overflow:hidden;font:700 14px/1.1 var(--display);text-overflow:ellipsis;white-space:nowrap}.factory-workshop-panel-header>button{min-height:34px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--surface);font-size:10px;font-weight:700;cursor:pointer}.factory-workshop-panel-header>button:disabled{color:var(--ink-faint);cursor:not-allowed}.factory-station-counts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-bottom:1px solid var(--line)}.factory-station-counts>div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;min-width:0;min-height:46px;padding:8px 12px;border-right:1px solid var(--line)}.factory-station-counts>div:last-child{border-right:0}.factory-station-counts .station-label-full{overflow:hidden;color:var(--ink-faint);font:700 8px/1 var(--mono);text-overflow:ellipsis;white-space:nowrap}.factory-station-counts .station-label-compact{display:none}.factory-station-counts strong{font:700 16px/.9 var(--display)}.factory-station-counts .phase-doing strong{color:var(--signal)}.factory-station-counts .phase-done strong{color:var(--ink-faint)}.factory-wip-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;min-height:46px;padding:8px 12px;border-bottom:1px solid var(--line)}.factory-wip-row>div:first-child{display:flex;gap:8px;align-items:baseline}.factory-wip-row span{color:var(--ink-faint);font:700 8px/1 var(--mono)}.factory-wip-row strong{font:700 11px/1 var(--display)}.factory-wip-track{height:8px;border:1px solid var(--line-strong);background:var(--canvas)}.factory-wip-track>span{display:block;height:100%;background:var(--signal)}.factory-panel-attention{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;padding:8px 12px;border:0;border-bottom:1px solid var(--line);background:var(--warning-soft);color:var(--warning);text-align:left;cursor:pointer}.factory-panel-attention strong{font:700 10px/1.2 var(--display)}.factory-panel-attention span{font-size:8px;opacity:.8}.factory-panel-attention.is-clear{background:var(--signal-soft);color:var(--signal);cursor:default}.factory-current-tasks{min-height:92px;border-bottom:1px solid var(--line)}.factory-current-tasks>header{display:flex;align-items:center;justify-content:space-between;min-height:34px;padding:0 12px;color:var(--ink-faint);font:700 8px/1 var(--mono)}.factory-current-empty{display:grid;place-content:center;gap:4px;min-height:58px;padding:8px 12px;text-align:center}.factory-current-empty strong{font:700 11px/1.2 var(--display);color:var(--ink-soft)}.factory-current-empty span{color:var(--ink-faint);font-size:8px}.factory-workshop-panel-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:34px;padding:0 12px;color:var(--ink-faint);font:700 8px/1 var(--mono)}.factory-workshop-handoff{display:grid;place-content:center;gap:5px;min-width:0;padding:8px;border:1px solid var(--line-strong);border-radius:var(--radius-card);background:var(--surface);text-align:center;cursor:pointer}.factory-workshop-handoff:disabled{color:var(--ink-faint);cursor:not-allowed}.factory-workshop-handoff span{color:var(--ink-faint);font:700 7px/1 var(--mono)}.factory-workshop-handoff strong{font:700 9px/1.25 var(--display)}.factory-workshop-handoff.is-terminal{border-style:dashed;cursor:default}.overview-data-pending,.projects-empty,.settings-empty{display:flex;align-items:center;justify-content:center;gap:8px;min-height:72px;padding:14px;border:1px dashed var(--line-strong);border-radius:var(--radius-panel);background:var(--surface);color:var(--ink-faint);font-size:10px;line-height:1.5;text-align:center}.portfolio-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:18px 16px;border-bottom:1px solid var(--line);background:var(--surface)}.portfolio-hero>div{min-width:0}.portfolio-hero>div>span{color:var(--signal);font:700 9px/1 var(--mono);letter-spacing:.08em}.portfolio-hero h1{margin:7px 0 5px;font:700 28px/1 var(--display)}.portfolio-hero p{margin:0;color:var(--ink-soft);font-size:11px;line-height:1.45}.portfolio-hero-alert{display:grid;gap:3px;min-width:96px;min-height:72px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-card);background:var(--strong);text-align:left;cursor:pointer}.portfolio-hero-alert:disabled{color:var(--ink-faint);cursor:not-allowed}.portfolio-hero-alert span{color:var(--ink-faint);font:700 8px/1 var(--mono)}.portfolio-hero-alert strong{color:var(--danger);font:700 24px/.9 var(--display)}.portfolio-hero-alert small{color:var(--ink-faint);font-size:8px}.projects-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid var(--line);background:var(--surface)}.projects-summary>div,.projects-summary>button{display:grid;align-content:center;gap:4px;min-width:0;min-height:72px;padding:10px 14px;border:0;border-right:1px solid var(--line);background:var(--strong);text-align:left}.projects-summary>div:last-child{border-right:0}.projects-summary>button{cursor:pointer}.projects-summary>button:disabled{cursor:not-allowed}.projects-summary>button.needs-attention{background:var(--warning-soft)}.projects-summary span{color:var(--ink-faint);font:700 8px/1 var(--mono)}.projects-summary strong{font:700 24px/.9 var(--display)}.projects-summary small{color:var(--ink-faint);font-size:8px}.project-board{border-bottom:1px solid var(--line)}.project-list{overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.project-list-page{height:auto;overflow:visible}.project-row{position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.95fr) 76px 48px;grid-template-rows:auto 10px;align-items:center;gap:8px;width:100%;min-height:86px;padding:10px 12px 9px 18px;border:0;border-bottom:1px solid var(--line);background:var(--strong);text-align:left}.project-row:last-child{border-bottom:0}.project-row:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:transparent}.project-row-copy{min-width:0;align-self:center}.project-row-copy strong{display:block;overflow:hidden;font:700 13px/1.1 var(--display);text-overflow:ellipsis;white-space:nowrap}.project-row-copy small{display:block;overflow:hidden;margin-top:4px;color:var(--ink-soft);font:700 8px/1 var(--body);text-overflow:ellipsis;white-space:nowrap}.project-row-copy em{display:block;overflow:hidden;margin-top:4px;color:var(--ink-faint);font:normal 700 7px/1.15 var(--mono);text-overflow:ellipsis;white-space:nowrap}.project-row-meta{display:grid;gap:4px;min-width:0}.project-row-meta small,.project-row-meta strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-row-meta small{color:var(--ink-faint);font:700 7px/1.2 var(--mono)}.project-row-meta strong{color:var(--ink-soft);font-size:8px;line-height:1.25}.project-row-risk{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px;min-width:0}.project-row-risk em{max-width:100%;overflow:hidden;padding:5px 6px;border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);font:normal 700 7px/1 var(--mono);text-overflow:ellipsis;white-space:nowrap}.project-row>b{grid-column:4;grid-row:1 / span 2;justify-self:end;font:700 16px/1 var(--display)}.project-row>b sup{font-size:8px;vertical-align:top}.project-progress-bar{grid-column:1 / 4;grid-row:2;align-self:center;height:7px;border:1px solid var(--line-strong);background:var(--canvas)}.project-progress-bar>span{display:block;height:100%;background:var(--signal)}.approval-page{padding-bottom:24px}.approval-heading-status{display:grid;align-content:center;gap:4px;min-height:76px;padding:11px;border:1px solid var(--line-strong);border-radius:var(--radius-card);background:var(--strong)}.approval-heading-status span{color:var(--ink-faint);font:700 7px/1 var(--mono)}.approval-heading-status strong{color:var(--danger);font:700 30px/.9 var(--display)}.approval-heading-status small{color:var(--ink-faint);font-size:7px;line-height:1.3}.approval-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid var(--line);background:var(--surface)}.approval-summary>div{display:grid;align-content:center;gap:4px;min-width:0;min-height:76px;padding:10px 14px;border-right:1px solid var(--line);background:var(--strong)}.approval-summary>div:last-child{border-right:0}.approval-summary>div.needs-attention{background:var(--warning-soft)}.approval-summary span{color:var(--ink-faint);font:700 8px/1 var(--mono)}.approval-summary strong{font:700 22px/.9 var(--display)}.approval-summary small{color:var(--ink-faint);font-size:8px}.approval-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--surface)}.approval-filters button{display:grid;gap:4px;min-width:0;min-height:52px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--strong);text-align:left;cursor:pointer}.approval-filters button:disabled{color:var(--ink-faint);cursor:not-allowed}.approval-filters button.active{border-color:var(--signal);background:var(--signal-soft);color:var(--signal)}.approval-filters span{font:700 9px/1.2 var(--display)}.approval-filters strong{font:700 16px/.9 var(--display)}.approval-empty{display:grid;place-content:center;gap:8px;min-height:220px;padding:24px;text-align:center;color:var(--ink-faint)}.approval-empty strong{font:700 14px/1.2 var(--display);color:var(--ink-soft)}.approval-empty span{font-size:10px;line-height:1.5}.approval-group-list{display:grid;gap:10px;padding:12px 14px}.approval-project-group{border:1px solid var(--line-strong);border-radius:var(--radius-panel);background:var(--strong);box-shadow:var(--shadow-soft)}.approval-project-group>header{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:46px;padding:9px 12px;border-bottom:1px solid var(--line)}.approval-project-group>header>div{display:grid;gap:3px;min-width:0}.approval-project-group>header span{color:var(--ink-faint);font:700 7px/1 var(--mono)}.approval-project-group>header strong{overflow:hidden;font:700 12px/1.1 var(--display);text-overflow:ellipsis;white-space:nowrap}.approval-project-group>header small{flex:0 0 auto;color:var(--ink-faint);font:700 8px/1 var(--mono)}.pipeline-settings-page{padding-bottom:28px}.pipeline-settings-intro{padding:18px 16px;border-bottom:1px solid var(--line);background:var(--surface)}.pipeline-settings-intro>span{color:var(--signal);font:700 9px/1 var(--mono);letter-spacing:.08em}.pipeline-settings-intro h1{margin:7px 0 5px;font:700 28px/1 var(--display)}.pipeline-settings-intro p{margin:0;color:var(--ink-soft);font-size:11px;line-height:1.45}.pipeline-settings-panel{padding:0 0 16px}.pipeline-settings-panel .settings-empty{margin:14px}.pipeline-settings-loading{color:var(--ink-faint);font:700 9px/1 var(--mono)}.pipeline-settings-message{display:grid;gap:3px;margin:12px 14px 0;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-card);background:var(--signal-soft);color:var(--ink)}.pipeline-settings-message strong{font:700 9px/1 var(--mono);color:var(--signal)}.pipeline-settings-message span{font-size:11px;line-height:1.5}.pipeline-settings-message.tone-error{background:var(--danger-soft);border-color:var(--danger)}.pipeline-settings-message.tone-error strong{color:var(--danger)}.workshop-pipeline-library{padding:14px}.pipeline-library-heading{display:grid;gap:10px;align-items:end;margin-bottom:12px;grid-template-columns:minmax(0,1fr)}.pipeline-library-heading>div:first-child{display:grid;gap:3px}.pipeline-library-heading span{color:var(--signal);font:700 8px/1 var(--mono);letter-spacing:.08em}.pipeline-library-heading strong{font:700 16px/1 var(--display)}.pipeline-library-heading small{color:var(--ink-faint);font-size:10px;line-height:1.45}.pipeline-library-selection{display:flex;gap:8px;align-items:center;justify-content:space-between}.pipeline-library-selection small{color:var(--ink-soft);font:700 9px/1 var(--mono)}.pipeline-library-grid{display:grid;gap:10px;grid-template-columns:1fr}.pipeline-library-card{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.pipeline-library-card.active{border-color:var(--signal);box-shadow:0 0 0 1px var(--signal)}.pipeline-library-card.configured{background:var(--strong)}.pipeline-library-card-main{display:grid;gap:2px;text-align:left;padding:0;border:0;background:none;cursor:pointer}.pipeline-library-card-main>span{color:var(--signal);font:700 8px/1 var(--mono)}.pipeline-library-card-main>strong{font:700 14px/1 var(--display)}.pipeline-library-card-main>small{color:var(--ink-faint);font-size:10px}.pipeline-library-card-meta{display:flex;gap:8px;align-items:center;justify-content:space-between}.pipeline-library-card-meta>b{font:700 10px/1 var(--mono);color:var(--ink-soft)}.pipeline-library-primary-action{flex:0 0 auto;min-height:34px}.pipeline-settings-layout{padding:0 14px 14px}.pipeline-settings-panel-heading{padding:12px 14px;border-bottom:1px solid var(--line)}.pipeline-settings-panel-heading span{color:var(--signal);font:700 8px/1 var(--mono);letter-spacing:.08em}.pipeline-settings-panel-heading h2{margin:5px 0 4px;font:700 18px/1 var(--display)}.pipeline-settings-panel-heading p{margin:0;color:var(--ink-soft);font-size:10px;line-height:1.45}.pipeline-governance{display:grid;gap:8px;padding:14px}.governance-card{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.governance-card.primary{border-color:var(--signal);background:var(--signal-soft)}.governance-card span{color:var(--ink-faint);font:700 8px/1 var(--mono)}.governance-card strong{font:700 15px/1 var(--display)}.governance-card small{color:var(--ink-soft);font-size:10px}.governance-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.pipeline-draft-editor{padding:0 14px 14px}.pipeline-draft-editor-heading{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:10px 0}.pipeline-draft-editor-heading>div{display:grid;gap:2px}.pipeline-draft-editor-heading strong{font:700 13px/1 var(--display)}.pipeline-draft-editor-heading small{color:var(--ink-faint);font-size:9px;line-height:1.4}.pipeline-node-list{display:grid;gap:8px}.pipeline-node-row{display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.pipeline-node-order{display:flex;gap:4px;align-items:center}.pipeline-node-order>span{display:grid;place-items:center;width:22px;height:22px;border:1px solid var(--line-strong);border-radius:50%;background:var(--strong);font:700 10px/1 var(--mono);color:var(--signal)}.icon-button{display:grid;place-items:center;width:26px;height:26px;padding:0;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--strong);color:var(--ink-soft);cursor:pointer}.icon-button:disabled{opacity:.4;cursor:not-allowed}.icon-button:hover:not(:disabled){border-color:var(--signal);color:var(--signal)}.pipeline-node-remove{justify-self:end}.pipeline-node-remove:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}.pipeline-node-fields{display:grid;gap:8px;grid-template-columns:1fr}.pipeline-node-fields label{display:grid;gap:3px;min-width:0}.pipeline-node-fields small{color:var(--ink-faint);font:700 8px/1 var(--mono)}.pipeline-node-fields input,.pipeline-node-fields select{min-width:0;min-height:32px;padding:6px 8px;border:1px solid var(--line-control);border-radius:var(--radius-control);background:var(--strong);color:var(--ink);font-size:11px}.pipeline-node-fields input[readonly]{background:var(--surface);color:var(--ink-soft)}.pipeline-draft-errors{margin:10px 0 0;padding:10px 12px 10px 28px;border:1px solid var(--danger);border-radius:var(--radius-card);background:var(--danger-soft);color:var(--danger);font-size:10px;line-height:1.5}.pipeline-create-form{display:grid;gap:8px;padding:12px 14px;border:1px dashed var(--signal);border-radius:var(--radius-card);background:var(--signal-soft)}.pipeline-create-form label{display:grid;gap:3px}.pipeline-create-form small{color:var(--ink-faint);font:700 8px/1 var(--mono)}.pipeline-create-form input{min-height:34px;padding:6px 8px;border:1px solid var(--line-control);border-radius:var(--radius-control);background:var(--strong);font-size:11px}.pipeline-project-locks{padding:0 14px 14px}.pipeline-project-locks-heading{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:10px 0}.pipeline-project-locks-heading>div{display:grid;gap:2px}.pipeline-project-locks-heading strong{font:700 13px/1 var(--display)}.pipeline-project-locks-heading small{color:var(--ink-faint);font-size:9px;line-height:1.4}.pipeline-project-locks-heading>span{color:var(--ink-soft);font:700 9px/1 var(--mono)}.pipeline-project-lock-list{display:grid;gap:8px}.pipeline-project-lock-list article{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.pipeline-project-lock-list article.locked{border-color:var(--signal);background:var(--signal-soft)}.pipeline-project-lock-list article>div{display:grid;gap:2px;min-width:0}.pipeline-project-lock-list article strong{overflow:hidden;font:700 12px/1.2 var(--display);text-overflow:ellipsis;white-space:nowrap}.pipeline-project-lock-list article small{color:var(--ink-soft);font-size:9px}.pipeline-version-history{padding:0 14px 14px}.pipeline-version-history-heading{display:grid;gap:2px;padding:10px 0}.pipeline-version-history-heading strong{font:700 13px/1 var(--display)}.pipeline-version-history-heading small{color:var(--ink-faint);font-size:9px;line-height:1.4}.pipeline-version-history-list{display:grid;gap:8px}.pipeline-version-entry{display:grid;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.pipeline-version-entry.current{border-color:var(--signal);background:var(--signal-soft)}.pipeline-version-entry>div{display:flex;gap:8px;align-items:center;justify-content:space-between}.pipeline-version-entry span{color:var(--signal);font:700 8px/1 var(--mono)}.pipeline-version-entry strong{font:700 13px/1 var(--display)}.pipeline-version-entry p{margin:0;color:var(--ink-soft);font-size:10px;line-height:1.4;word-break:break-all}.pipeline-version-entry .secondary-button{justify-self:end}.pipeline-settings-actions{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:12px 14px;border-top:1px solid var(--line)}.pipeline-settings-actions span{color:var(--ink-faint);font-size:9px;line-height:1.4}.pipeline-settings-actions>div{display:flex;gap:8px}.pipeline-governance-dialog-layer{z-index:140}.pipeline-governance-confirm-dialog,.pipeline-diff-dialog{width:min(560px,100%);max-height:calc(100vh - 48px);display:flex;flex-direction:column}.pipeline-diff-dialog .approval-confirm-content{overflow:auto}.pipeline-diff-legend{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;margin-bottom:10px;color:var(--ink-faint);font:700 9px/1 var(--mono)}.pipeline-diff-legend strong{color:var(--signal)}.pipeline-diff-legend span:last-child{text-align:right}.pipeline-diff-list{display:grid;gap:6px}.pipeline-diff-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.pipeline-diff-row>span{font:700 9px/1.3 var(--mono);color:var(--ink);align-self:center}.pipeline-diff-row>div{display:grid;gap:2px;min-width:0}.pipeline-diff-row small{color:var(--ink-faint);font:700 7px/1 var(--mono)}.pipeline-diff-row strong{overflow-wrap:anywhere;font-size:10px;font-weight:700;line-height:1.4}.pipeline-diff-row.changed{border-color:var(--warning);background:var(--warning-soft)}.pipeline-diff-row.added{border-color:var(--signal);background:var(--signal-soft)}.pipeline-diff-row.removed{border-color:var(--danger);background:var(--danger-soft)}.pipeline-diff-empty{display:grid;gap:4px;place-items:center;padding:18px;border:1px dashed var(--line-strong);border-radius:var(--radius-card);text-align:center}.pipeline-diff-empty strong{font:700 13px/1 var(--display)}.pipeline-diff-empty span{color:var(--ink-soft);font-size:10px}.pipeline-danger-action{border-color:var(--danger)!important;background:var(--danger)!important}.drawer-footer{display:flex;gap:8px;justify-content:flex-end;padding:12px 16px;border-top:1px solid var(--line)}.approval-confirm-meta{display:grid;gap:6px;margin:10px 0 0}.approval-confirm-meta>div{display:flex;gap:10px;justify-content:space-between;padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.approval-confirm-meta dt{color:var(--ink-faint);font:700 8px/1 var(--mono)}.approval-confirm-meta dd{margin:0;font-size:10px;font-weight:700}.form-error{margin:0 14px;padding:10px 12px;border:1px solid var(--danger);border-radius:var(--radius-card);background:var(--danger-soft);color:var(--danger);font-size:10px;line-height:1.5}@media(min-width:600px){.pipeline-library-grid,.pipeline-node-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.pipeline-node-order{flex-direction:column;gap:4px}.pipeline-node-row{grid-template-columns:auto minmax(0,1fr) auto}}@media(min-width:780px){.app-frame{padding:24px}.app-shell{width:min(1480px,100%);min-height:calc(100vh - 48px);overflow:clip;border:1px solid var(--line-strong);border-radius:var(--radius-panel)}.topbar{min-height:86px;padding:14px 20px}.topbar.global-topbar{grid-template-columns:minmax(280px,1fr) auto;min-height:72px}.page-heading-band{padding:22px 24px}.page-heading-band h1{font-size:34px}.workshop-heading-band{padding:22px 24px}.workshop-heading-band h1{font-size:34px}.factory-view-tabs{padding:10px 20px}.factory-view-tabs a{min-height:44px;font-size:12px}.factory-production-chain{gap:14px;padding:20px}.factory-workshop-lane{grid-template-columns:minmax(0,1fr) 96px}.portfolio-hero{padding:24px}.portfolio-hero h1{font-size:34px}.projects-summary>div,.projects-summary>button{min-height:96px;padding:16px 22px}.projects-summary strong{font-size:34px}.project-list-page .project-row{grid-template-columns:minmax(0,1fr) 260px 68px;grid-template-rows:54px 10px;min-height:96px;padding:13px 24px 12px 28px}.project-row-copy strong{font-size:16px}.project-row-copy small{font-size:9px}.project-row>b{font-size:18px}.approval-summary>div{min-height:96px;padding:16px 22px}.approval-summary strong{font-size:30px}.approval-filters{padding:14px 20px}.approval-group-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px}.pipeline-settings-intro{padding:24px}.pipeline-settings-intro h1{font-size:34px}.version-notice{padding:11px 20px}}@media(max-width:480px){.global-topbar{gap:8px;padding-inline:10px}.global-create-button{min-width:74px;padding-inline:9px;font-size:9px}.factory-view-tabs{gap:4px;padding:7px 8px}.factory-view-tabs a{min-height:42px;padding-inline:4px;font-size:10px}.workshop-tabs{gap:6px;padding:8px}.workshop-tabs button{min-height:62px;padding:8px}.workshop-tabs button>span{width:26px;height:26px}.workshop-tabs small{display:none}.workshop-heading-band{grid-template-columns:minmax(0,1fr) 104px;gap:10px;padding-inline:12px}.workshop-heading-band h1{font-size:26px}.page-heading-band{grid-template-columns:minmax(0,1fr) 104px;gap:10px;padding-inline:12px}.page-heading-band h1{font-size:26px}.factory-bottleneck{align-items:stretch;flex-direction:column}.factory-bottleneck-actions{justify-content:flex-end}.factory-workshop-lane{grid-template-columns:minmax(0,1fr)}.factory-workshop-handoff{min-height:52px}.factory-station-counts .station-label-full{display:none}.factory-station-counts .station-label-compact{display:block;font:700 8px/1 var(--mono);color:var(--ink-faint)}.portfolio-hero{grid-template-columns:minmax(0,1fr) 92px;gap:10px;padding-inline:12px}.portfolio-hero h1{font-size:26px}.approval-summary{grid-template-columns:1fr}.approval-summary>div{border-right:0;border-bottom:1px solid var(--line);min-height:64px}.approval-summary>div:last-child{border-bottom:0}.approval-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:8px}.approval-group-list{padding:10px}.projects-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.projects-summary>div,.projects-summary>button{min-height:64px;padding:8px 10px}.projects-summary strong{font-size:20px}.projects-summary small{display:none}.project-row{grid-template-columns:minmax(0,1fr) 52px 40px}.project-row-risk{display:none}.project-row>b{grid-column:3}.project-progress-bar{grid-column:1 / 3}.version-notice{align-items:flex-start;flex-direction:column}.version-notice button{align-self:flex-end}}@media(max-width:359px){.workshop-heading-band{grid-template-columns:1fr}.workshop-live-state{min-height:56px}.page-heading-band{grid-template-columns:1fr}.approval-heading-status{grid-template-columns:auto auto 1fr;align-items:center;min-height:56px}.projects-summary{grid-template-columns:1fr}.projects-summary>div,.projects-summary>button{border-right:0;border-bottom:1px solid var(--line)}.projects-summary>div:last-child,.projects-summary>button:last-child{border-bottom:0}.portfolio-hero{grid-template-columns:1fr}.portfolio-hero-alert{min-width:0}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}.drawer-layer{position:fixed;z-index:120;inset:0;display:grid;justify-items:end}.drawer-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:#18221d61;cursor:default}.drawer{position:relative;z-index:1;display:flex;flex-direction:column;width:min(520px,100vw);height:100%;background:var(--canvas);box-shadow:-18px 0 46px #18221d38}.drawer-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--surface)}.drawer-header>div{min-width:0}.drawer-header small{color:var(--signal);font:700 8px/1 var(--mono);letter-spacing:.08em}.drawer-header h2{margin:6px 0 0;font:700 20px/1 var(--display)}.close-button{min-height:34px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--strong);color:var(--ink-soft);font-size:10px;font-weight:700;cursor:pointer}.drawer-content{flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.create-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0;padding:10px 14px;list-style:none;border-bottom:1px solid var(--line);background:var(--surface)}.create-steps li{display:flex;align-items:center;gap:6px;min-width:0;min-height:34px;padding:0 8px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--strong);color:var(--ink-faint)}.create-steps li span{flex:0 0 auto;font:700 8px/1 var(--mono)}.create-steps li b{overflow:hidden;font:700 10px/1 var(--display);text-overflow:ellipsis;white-space:nowrap}.create-steps li.current{border-color:var(--signal);background:var(--signal-soft);color:var(--signal)}.create-steps li.done{border-color:var(--line-strong)}.create-step-section{padding:14px 16px 18px}.create-step-heading{margin-bottom:12px}.create-step-heading small{color:var(--signal);font:700 8px/1 var(--mono);letter-spacing:.08em}.create-step-heading h3{margin:6px 0 4px;font:700 18px/1 var(--display)}.create-step-heading p{margin:0;color:var(--ink-soft);font-size:10px;line-height:1.5}.create-primary-fields{display:grid;gap:10px}.field{display:grid;gap:5px;min-width:0}.field>span{color:var(--ink-faint);font:700 8px/1 var(--mono)}.field input,.field select,.field textarea{width:100%;min-height:40px;padding:8px 10px;border:1px solid var(--line-control);border-radius:var(--radius-control);background:var(--strong);color:var(--ink);font-size:11px}.field textarea{min-height:96px;resize:vertical;line-height:1.5}.field input:disabled{background:var(--line);color:var(--ink-faint)}.create-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.full-field{grid-column:1 / -1}.create-error{margin:0;padding:10px 14px;border-top:1px solid var(--danger);background:var(--danger-soft);color:var(--danger);font-size:10px;line-height:1.5}.create-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:60px;padding:10px 16px;border-top:1px solid var(--line);background:var(--surface)}.create-footer>span{color:var(--ink-faint);font:700 9px/1 var(--mono)}.create-footer>div{display:flex;gap:8px}.create-review{display:grid;gap:1px;margin:0 0 12px;border:1px solid var(--line);background:var(--line)}.create-review>div{display:grid;gap:4px;padding:9px 12px;background:var(--strong)}.create-review dt{color:var(--ink-faint);font:700 8px/1 var(--mono)}.create-review dd{margin:0;font-size:11px;line-height:1.45}.create-review-value{font-weight:700}.create-long-value{overflow-wrap:anywhere}.goal-review{padding:12px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.goal-review>span{color:var(--ink-faint);font:700 8px/1 var(--mono)}.goal-review p{margin:6px 0 0;color:var(--ink-soft);font-size:11px;line-height:1.6}.approval-confirm-layer{position:fixed;z-index:130;inset:0;display:grid;place-items:center;padding:16px}.approval-confirm-dialog{position:relative;z-index:1;width:min(420px,100%);border:1px solid var(--line-strong);border-radius:var(--radius-panel);background:var(--strong);box-shadow:0 22px 60px #18221d4d}.approval-confirm-content{padding:14px 16px}.approval-confirm-risk{display:grid;gap:4px;padding:12px;border-radius:var(--radius-card)}.approval-confirm-risk span{font:700 8px/1 var(--mono)}.approval-confirm-risk strong{font:700 12px/1.3 var(--display)}.approval-confirm-risk small{color:var(--ink-soft);font-size:10px;line-height:1.5}.tone-danger{background:var(--danger-soft);color:var(--danger)}.tone-warning{background:var(--warning-soft);color:var(--warning)}.create-discard-actions{justify-content:flex-end}.prj-page .project-row{grid-template-columns:minmax(0,1.1fr) minmax(0,.95fr) 76px 48px auto}.prj-row-copy strong{display:flex;align-items:center;gap:6px;min-width:0}.prj-priority{flex:0 0 auto;padding:2px 5px;border-radius:3px;background:var(--ink);color:#fff;font:normal 700 8px/1 var(--mono)}.prj-row-meta strong{font-weight:700}.prj-row-risk{align-content:center}.risk-chip{border-color:var(--line-strong)!important}.risk-chip.risk-low{border-color:var(--signal)!important;color:var(--signal)}.risk-chip.risk-medium{border-color:var(--warning)!important;color:var(--warning)}.risk-chip.risk-high{border-color:var(--danger)!important;color:var(--danger)}.risk-chip.risk-invalidation{border-color:var(--danger)!important;background:var(--danger-soft)!important;color:var(--danger)}.risk-chip.risk-ready{border-color:var(--signal)!important;background:var(--signal-soft)!important;color:var(--signal)}.risk-chip.risk-unknown{border-color:var(--warning)!important;background:var(--warning-soft)!important;color:var(--warning)}.prj-row.risk-high:before{background:var(--danger)}.prj-row.risk-medium:before{background:var(--warning)}.prj-row.risk-low:before{background:var(--signal)}.prj-progress.is-invalidated>span{background:var(--warning)}.prj-progress.is-ready>span{background:var(--signal)}.prj-edit-button{grid-column:5;grid-row:1 / span 2;align-self:center;justify-self:end;min-height:30px;padding:0 10px;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--surface);color:var(--ink-soft);font-size:10px;font-weight:700;cursor:pointer}.prj-edit-button:hover{border-color:var(--signal);color:var(--signal)}.prj-hero-actions{display:flex;align-items:center;gap:8px}.prj-reload-button{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--strong);color:var(--ink-soft);font-size:10px;font-weight:700;cursor:pointer}.prj-loading{margin:14px}.prj-load-error{display:flex;align-items:center;gap:10px;margin:14px;padding:12px 14px;border:1px solid var(--danger);border-radius:var(--radius-panel);background:var(--danger-soft);color:var(--danger);font-size:10px}.prj-load-error span{flex:1 1 auto;line-height:1.5}.prj-intake-board{border-bottom:1px solid var(--line)}.prj-intake-board:focus{outline:none}.prj-intake-list{margin:0;padding:10px 14px;list-style:none;display:grid;gap:8px}.prj-intake{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--strong)}.prj-intake-copy{display:grid;gap:3px;min-width:0}.prj-intake-copy strong{overflow:hidden;font:700 12px/1.2 var(--display);text-overflow:ellipsis;white-space:nowrap}.prj-intake-copy small{color:var(--ink-faint);font:700 8px/1 var(--mono)}.prj-intake-copy em{overflow:hidden;color:var(--ink-soft);font:normal 400 10px/1.45 var(--body);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.prj-intake-attachments{color:var(--warning)!important}.prj-intake-confirm{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;min-height:34px;padding:0 12px;border:1px solid var(--signal);border-radius:var(--radius-control);background:var(--signal);color:#fff;font-size:10px;font-weight:700;cursor:pointer}.prj-intake-confirm:disabled{border-color:var(--line-strong);background:var(--line);color:var(--ink-faint);cursor:not-allowed}.prj-confirm-error{margin:0;padding:8px 14px;border-bottom:1px solid var(--danger);background:var(--danger-soft);color:var(--danger);font-size:10px}.prj-layer-list{display:grid;gap:10px;margin-bottom:14px}.prj-layer{margin:0;padding:10px;border:1px solid var(--line-strong);border-radius:var(--radius-card);background:var(--surface)}.prj-layer legend{padding:0 6px}.prj-layer-toggle{display:flex;align-items:center;gap:8px;font-size:10px;cursor:pointer}.prj-layer-toggle input{width:15px;height:15px;accent-color:var(--signal)}.prj-layer-toggle>span{display:grid;gap:2px}.prj-layer-toggle strong{font:700 11px/1 var(--display)}.prj-layer-toggle small{color:var(--ink-faint);font-size:9px}.prj-layer-body{display:grid;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.prj-layer-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.prj-conflicts{margin-bottom:14px;border:1px solid var(--danger);border-radius:var(--radius-panel);overflow:hidden}.prj-conflicts .section-label{background:var(--danger-soft)}.prj-conflicts .section-label>span{color:var(--danger)}.prj-conflict{display:grid;gap:3px;padding:9px 12px;border-bottom:1px solid var(--line);background:var(--strong)}.prj-conflict:last-child{border-bottom:0}.prj-conflict strong{font:700 11px/1 var(--mono);color:var(--danger)}.prj-conflict span{font-size:10px;line-height:1.4}.prj-conflict small{color:var(--ink-faint);font-size:9px;line-height:1.4}.prj-source-map{border:1px solid var(--line-strong);border-radius:var(--radius-panel);overflow:hidden}.prj-source-empty{margin:0;padding:12px 14px;color:var(--ink-soft);font-size:10px}.prj-source-list{display:grid;gap:1px;margin:0;background:var(--line)}.prj-source-list>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;background:var(--strong)}.prj-source-list dt{font:700 9px/1 var(--mono)}.prj-source-list dd{margin:0;color:var(--ink-soft);font-size:10px}.prj-review-conflict{margin:0 0 12px;padding:8px 10px;border:1px solid var(--warning);border-radius:var(--radius-card);background:var(--warning-soft);color:var(--warning);font-size:10px}@media(min-width:780px){.drawer{width:min(560px,100vw)}.prj-layer-values{grid-template-columns:repeat(3,minmax(0,1fr))}.prj-intake-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.drawer-layer{justify-items:stretch}.drawer{width:100vw}.prj-page .project-row{grid-template-columns:minmax(0,1fr) 40px 40px}.prj-edit-button{grid-column:3;grid-row:1 / span 2;align-self:center;justify-self:center}.prj-page .project-row>b{grid-column:2}.prj-page .project-progress-bar{grid-column:1}.prj-row-risk{display:none}.prj-hero-actions{flex-direction:column;align-items:stretch}.prj-reload-button{justify-content:center}.prj-intake{align-items:stretch;flex-direction:column}.prj-intake-confirm{justify-content:center}.create-field-grid,.prj-layer-values{grid-template-columns:1fr}.create-steps li b{display:none}.create-steps li{justify-content:center}}.prj-detail-page{max-width:980px;margin:0 auto;padding:0 16px 28px}.prj-detail-context-bar{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.prj-detail-back{display:inline-flex;align-items:center;gap:6px;color:var(--ink-soft);font-size:11px;font-weight:700;text-decoration:none;white-space:nowrap}.prj-detail-back:hover{color:var(--signal)}.prj-detail-context{display:grid;gap:2px;min-width:0}.prj-detail-context span{color:var(--ink-faint);font:700 8px/1 var(--mono);letter-spacing:.08em}.prj-detail-context strong{font:700 14px/1.2 var(--display)}.prj-detail-reload{margin-left:auto;display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 10px;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--strong);color:var(--ink-soft);font-size:10px;font-weight:700;cursor:pointer;white-space:nowrap}.prj-detail-reload:hover{border-color:var(--signal);color:var(--signal)}.prj-detail-loading{margin:16px 0;color:var(--ink-soft);font-size:11px}.prj-detail-error{display:flex;align-items:center;gap:10px;margin:16px 0;padding:12px 14px;border:1px solid var(--danger);border-radius:var(--radius-panel);background:var(--danger-soft);color:var(--danger);font-size:10px}.prj-detail-error span{flex:1 1 auto;line-height:1.5}.prj-detail-stack{display:grid;gap:14px;margin-top:14px}.prj-detail-mainline{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--strong);box-shadow:var(--shadow-soft)}.prj-detail-kicker{display:flex;justify-content:space-between;gap:10px;color:var(--ink-faint);font:700 8px/1 var(--mono);letter-spacing:.08em}.prj-detail-overall{display:flex;align-items:center;gap:14px}.prj-detail-overall>strong{flex:0 0 auto;font:700 44px/.9 var(--display);letter-spacing:-.02em}.prj-detail-overall>strong sup{font-size:16px}.prj-detail-overall h1{margin:0 0 4px;font:700 22px/1.15 var(--display)}.prj-detail-overall p{margin:0;color:var(--ink-soft);font-size:10px;line-height:1.5}.prj-detail-progress-bar{height:10px;overflow:hidden;border-radius:999px;background:var(--line);position:relative}.prj-detail-progress-bar>span{display:block;height:100%;border-radius:999px;background:var(--signal);transition:width .25s ease}.prj-detail-progress-bar[aria-valuenow="100"]>span{background:var(--signal)}.prj-detail-business-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.prj-detail-business-strip>div{display:grid;gap:3px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);min-width:0}.prj-detail-business-strip span{color:var(--ink-faint);font-size:8px}.prj-detail-business-strip strong{font:700 11px/1.3 var(--display);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prj-detail-finance-risk strong{color:var(--signal)}.prj-detail-finance-risk.risk-medium strong{color:var(--warning)}.prj-detail-finance-risk.risk-high strong{color:var(--danger)}.prj-detail-priority{justify-self:start;padding:2px 6px;border-radius:3px;background:var(--ink);color:#fff;font:normal 700 8px/1 var(--mono)}.prj-detail-section{display:grid;gap:10px;padding:16px;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--strong);box-shadow:var(--shadow-soft)}.prj-detail-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding-bottom:8px}.prj-detail-heading span{font:700 13px/1 var(--display)}.prj-detail-heading strong{color:var(--ink-soft);font-weight:700;font-size:9px}.prj-detail-workshops{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.prj-detail-workshop{display:grid;gap:3px;padding:10px;border:1px solid var(--line);border-left:3px solid var(--line-strong);border-radius:var(--radius-card);background:var(--surface)}.prj-detail-workshop>span{color:var(--ink-faint);font:700 8px/1 var(--mono);letter-spacing:.06em}.prj-detail-workshop>strong{font:700 13px/1 var(--display)}.prj-detail-workshop>small{color:var(--ink-soft);font-size:9px}.prj-detail-workshop>em{font:normal 700 10px/1 var(--mono)}.prj-detail-workshop.bucket-done{border-left-color:var(--signal)}.prj-detail-workshop.bucket-done>em{color:var(--signal)}.prj-detail-workshop.bucket-doing{border-left-color:var(--warning)}.prj-detail-workshop.bucket-doing>em{color:var(--warning)}.prj-detail-workshop.bucket-pending{border-left-color:var(--line-strong)}.prj-detail-workshop.bucket-pending>em{color:var(--ink-faint)}.prj-detail-progress-note{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.prj-detail-progress-note>small{color:var(--ink-soft);font-size:9px}.prj-detail-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border:1px solid var(--line-strong);border-radius:999px;font:normal 700 8px/1.4 var(--mono);font-style:normal;white-space:nowrap}.prj-detail-chip.chip-ready{border-color:var(--signal);background:var(--signal-soft);color:var(--signal)}.prj-detail-chip.chip-invalidated{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.prj-detail-chip.chip-unknown{border-color:var(--warning);background:var(--warning-soft);color:var(--warning)}.risk-chip.risk-low{border-color:var(--signal);color:var(--signal)}.prj-detail-cost-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.prj-detail-cost-grid>div{display:grid;gap:3px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.prj-detail-cost-grid span{color:var(--ink-faint);font-size:8px}.prj-detail-cost-grid strong{font:700 11px/1.3 var(--display)}.prj-detail-violations{display:grid;gap:6px;margin:0;padding:8px 10px;border:1px solid var(--warning);border-radius:var(--radius-card);background:var(--warning-soft);color:var(--warning);font-size:10px}.prj-detail-violations li{display:flex;align-items:center;gap:6px}.prj-detail-run-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}.prj-detail-run-list li{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.prj-detail-run-list strong{font:700 10px/1 var(--mono)}.prj-detail-run-list small{color:var(--ink-soft);font-size:9px}.prj-detail-run-list em{color:var(--ink-soft);font-size:9px;font-style:normal}.prj-detail-run-list b{font:700 10px/1 var(--mono)}.prj-detail-risk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.prj-detail-risk-grid>div{display:grid;gap:3px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.prj-detail-risk-grid span{color:var(--ink-faint);font-size:8px}.prj-detail-risk-grid strong{font:700 11px/1.4 var(--display);overflow-wrap:anywhere}.prj-detail-exception-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}.prj-detail-exception-list li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px 10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-left:3px solid var(--line-strong);border-radius:var(--radius-card);background:var(--surface)}.prj-detail-exception-list li.severity-blocker,.prj-detail-exception-list li.severity-critical{border-left-color:var(--danger)}.prj-detail-exception-list li.severity-major{border-left-color:var(--warning)}.prj-detail-exception-list li.severity-minor{border-left-color:var(--line-strong)}.prj-detail-exception-list strong{font:700 11px/1.3 var(--display)}.prj-detail-exception-list small{grid-column:2 / span 2;color:var(--ink-soft);font-size:9px}.prj-detail-exception-list b{grid-column:3;justify-self:end;color:var(--ink-soft);font:700 9px/1.3 var(--mono)}.prj-detail-rework-list{display:grid;gap:6px;margin:0;padding:0;list-style:none;counter-reset:rework}.prj-detail-rework-entry{display:grid;gap:3px;padding:8px 10px 8px 34px;position:relative;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.prj-detail-rework-entry:before{counter-increment:rework;content:"#" counter(rework);position:absolute;left:10px;top:9px;color:var(--ink-faint);font:700 9px/1 var(--mono)}.prj-detail-rework-entry strong{font:700 11px/1.3 var(--display)}.prj-detail-rework-entry small{color:var(--ink-faint);font:700 8px/1.4 var(--mono)}.prj-detail-rework-entry em{color:var(--ink-soft);font-size:9px;line-height:1.5;font-style:normal}.prj-detail-empty{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px dashed var(--line-strong);border-radius:var(--radius-card);color:var(--ink-faint);font-size:10px}@media(max-width:640px){.prj-detail-business-strip,.prj-detail-cost-grid,.prj-detail-workshops{grid-template-columns:repeat(2,minmax(0,1fr))}.prj-detail-overall>strong{font-size:36px}}@media(max-width:480px){.prj-detail-page{padding:0 10px 24px}.prj-detail-context-bar{flex-wrap:wrap;gap:8px}.prj-detail-context{order:3;width:100%}.prj-detail-overall{gap:10px}.prj-detail-overall h1{font-size:18px}.prj-detail-run-list li{grid-template-columns:minmax(0,1fr) auto}.prj-detail-exception-list li{grid-template-columns:auto minmax(0,1fr)}.prj-detail-exception-list b{grid-column:2;justify-self:start}.prj-detail-exception-list small{grid-column:2}}.approval-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.approval-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;padding:12px 14px;border-bottom:1px solid var(--line)}.approval-item:last-child{border-bottom:0}.approval-item.tone-danger{border-left:3px solid var(--danger)}.approval-item.tone-warning{border-left:3px solid var(--warning)}.approval-item.tone-notice{border-left:3px solid var(--signal)}.approval-item-copy{display:grid;gap:5px;min-width:0}.approval-item-tags{display:flex;align-items:center;justify-content:space-between;gap:10px}.approval-item-tags span,.approval-item-tags small{color:var(--ink-faint);font:700 8px/1 var(--mono)}.approval-item-copy h2{margin:0;font:700 13px/1.3 var(--display)}.approval-item-copy p{margin:0;color:var(--ink-soft);font-size:10px;line-height:1.5}.approval-item-copy strong{color:var(--ink-soft);font-size:10px;line-height:1.45}.approval-item-copy small{color:var(--ink-faint);font-size:9px;line-height:1.4}.approval-item-copy .approval-item-expired{color:var(--danger);font-weight:700}.approval-item-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;min-width:0}.approval-item-subtle{border:0;background:none;color:var(--ink-soft);font:700 9px/1 var(--mono);cursor:pointer;padding:4px 2px}.approval-item-subtle:disabled{color:var(--ink-faint);cursor:not-allowed}.decision-pause-strip{display:grid;gap:3px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--warning-soft)}.decision-pause-strip span{color:var(--warning);font:700 8px/1 var(--mono)}.decision-pause-strip strong{color:var(--ink-soft);font-size:10px;line-height:1.45}.decision-content{padding:14px 16px 0}.decision-question{display:grid;gap:5px}.decision-question>span{color:var(--signal);font:700 8px/1 var(--mono)}.decision-question h3{margin:0;font:700 15px/1.35 var(--display)}.decision-question p{margin:0;color:var(--ink-soft);font-size:10px;line-height:1.5}.decision-meta{display:grid;gap:5px;margin:12px 0 0;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--strong)}.decision-meta>div{display:flex;justify-content:space-between;gap:10px}.decision-meta dt{color:var(--ink-faint);font:700 8px/1 var(--mono)}.decision-meta dd{margin:0;font-size:10px;font-weight:700}.decision-recommendation{display:grid;gap:5px;margin:12px 0 0;padding:10px 12px;border:1px dashed var(--signal);border-radius:var(--radius-card);background:var(--signal-soft)}.decision-recommendation>div{display:grid;gap:3px}.decision-recommendation span{color:var(--signal);font:700 7px/1 var(--mono);letter-spacing:.06em}.decision-recommendation strong{font-size:10px;line-height:1.45}.decision-recommendation p{margin:0;color:var(--ink-soft);font-size:9px;line-height:1.5}.decision-options{margin:12px 0 0;padding:0;border:0}.decision-options legend{margin-bottom:6px;color:var(--ink-soft);font:700 9px/1 var(--mono)}.decision-options>div{display:grid;gap:6px}.decision-option{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:start;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-card);background:var(--strong);cursor:pointer}.decision-option.selected{border-color:var(--signal);background:var(--signal-soft)}.decision-option input{margin-top:2px;accent-color:var(--signal)}.decision-option>span{display:grid;gap:3px;min-width:0}.decision-option strong{font:700 11px/1.3 var(--display)}.decision-option strong b{color:var(--signal);font-size:8px;margin-left:6px}.decision-option small{color:var(--ink-faint);font-size:9px}.decision-note{margin:12px 0 0}.decision-confirmation-preview{display:grid;gap:3px;margin:12px 0;padding:10px 12px;border:1px solid var(--signal);border-radius:var(--radius-card);background:var(--signal-soft)}.decision-confirmation-preview span{color:var(--signal);font:700 8px/1 var(--mono)}.decision-confirmation-preview strong{font-size:11px}.decision-confirmation-preview small{color:var(--ink-soft);font-size:9px;line-height:1.5}.decision-footer{border-top:1px solid var(--line)}.approval-reason-field{margin:10px 0 0}.approval-cancel-note{margin:10px 0 0;color:var(--ink-soft);font-size:10px;line-height:1.5}.approval-confirm-dialog .drawer-footer{border-top:1px solid var(--line)}@media(max-width:600px){.approval-item{grid-template-columns:minmax(0,1fr)}.approval-item-actions{justify-content:stretch}.approval-item-actions button{flex:1 1 auto}}.factory-workshop-lane{--workshop-accent: #3f6386;--workshop-tint: #f0f4f8}.factory-workshop-lane.stage-unit{--workshop-accent: #4f7c83;--workshop-tint: #eff5f5}.factory-workshop-lane.stage-code{--workshop-accent: #6d4c8b;--workshop-tint: #ede6f5}.factory-workshop-lane.stage-acceptance{--workshop-accent: #75684e;--workshop-tint: #f6f4ee}.factory-workshop-panel{border-top:4px solid var(--workshop-accent);background:color-mix(in srgb,var(--workshop-tint) 34%,var(--strong))}.factory-workshop-panel-header{border-bottom-color:color-mix(in srgb,var(--workshop-accent) 24%,var(--line))}.factory-workshop-title>span{color:var(--workshop-accent)}.factory-workshop-title b{color:var(--workshop-accent)}.factory-workshop-panel-header>button{border-color:color-mix(in srgb,var(--workshop-accent) 46%,var(--line));color:var(--workshop-accent)}.factory-workshop-panel-header>button:hover:not(:disabled){border-color:var(--workshop-accent);background:color-mix(in srgb,var(--workshop-accent) 8%,var(--strong))}.factory-workshop-panel-header>button:disabled{color:var(--ink-faint)}.factory-station-counts{grid-template-columns:repeat(5,minmax(0,1fr))}.factory-station-counts>div{grid-template-columns:1fr;justify-items:center;gap:4px;min-height:50px;padding:6px 2px}.factory-station-counts .phase-doing strong{color:var(--workshop-accent)}.factory-station-counts .phase-done strong{color:#60756a}.factory-wip-row>div:first-child strong{color:var(--workshop-accent)}.factory-wip-track{background:var(--canvas)}.factory-wip-track>span{background:var(--workshop-accent)}.factory-current-tasks>header strong{color:var(--workshop-accent)}.factory-panel-attention.is-clear{border-bottom-color:color-mix(in srgb,var(--workshop-accent) 24%,var(--line));background:color-mix(in srgb,var(--workshop-accent) 7%,var(--strong));color:var(--workshop-accent)}a.factory-panel-attention{text-decoration:none}.factory-workshop-handoff{--handoff-accent: #4f7c83;--handoff-text: #436a70;border-left:4px solid var(--handoff-accent);background:color-mix(in srgb,var(--handoff-accent) 9%,var(--strong))}.factory-workshop-handoff.to-code{--handoff-accent: #6d4c8b;--handoff-text: #5b3d75}.factory-workshop-handoff.to-acceptance{--handoff-accent: #75684e;--handoff-text: #655a43}.factory-workshop-handoff.is-terminal{--handoff-accent: #4f5f66;--handoff-text: #46545a}.factory-workshop-handoff strong{color:var(--handoff-text)}button.factory-workshop-handoff:hover:not(:disabled){background:color-mix(in srgb,var(--handoff-accent) 14%,var(--strong))}.workshop-summary>a{display:grid;align-content:center;gap:4px;min-width:0;min-height:66px;padding:10px 14px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--strong);text-decoration:none}.workshop-summary>a.attention{background:var(--warning-soft);color:var(--warning)}.factory-overview-summary{grid-template-columns:repeat(5,minmax(0,1fr))}.factory-overview-summary>div,.factory-overview-summary>a,.factory-overview-summary>button{border-bottom:0}.factory-overview-summary>:not(:last-child){border-right:1px solid var(--line)}a.secondary-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.factory-current-tasks{display:grid;gap:8px;min-width:0}.factory-current-tasks>header{display:flex;align-items:center;justify-content:space-between;min-height:34px}.factory-current-empty{display:grid;place-content:center;gap:4px;min-height:96px;padding:12px;border:1px dashed var(--line-control);border-radius:var(--radius-card)}.factory-overview-task{display:grid;gap:8px;min-width:0;padding:10px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--strong);box-shadow:var(--shadow-soft)}.factory-overview-task.tone-blocked{border-color:color-mix(in srgb,var(--danger) 48%,var(--line))}.factory-overview-task.tone-gate{border-color:color-mix(in srgb,var(--warning) 48%,var(--line))}.factory-overview-task>header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.factory-overview-task>header>div{display:grid;gap:3px;min-width:0}.factory-overview-task>header span{color:var(--ink-faint);font:700 8px/1 var(--mono)}.factory-overview-task>header strong{overflow:hidden;font-size:10px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.factory-overview-task>header em{flex:0 0 auto;padding:4px 6px;border-radius:999px;background:var(--signal-soft);color:var(--signal);font-size:8px;font-style:normal;font-weight:700}.factory-overview-task.tone-blocked>header em{background:var(--danger-soft);color:var(--danger)}.factory-overview-task.tone-gate>header em{background:var(--warning-soft);color:var(--warning)}.factory-overview-task>p{display:-webkit-box;margin:0;overflow:hidden;color:var(--ink-soft);font-size:10px;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:2}.factory-overview-task-meta{display:grid;grid-template-columns:1fr;gap:4px}.factory-overview-task-meta span{overflow:hidden;color:var(--ink-soft);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.factory-overview-task>footer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:auto}.factory-overview-task>footer button{min-width:0;min-height:36px;padding:0 5px;border-radius:var(--radius-control);font-size:9px;font-weight:700;cursor:pointer}.workshop-load-error{display:flex;align-items:center;gap:10px;margin:14px;padding:12px 14px;border:1px solid var(--danger);border-radius:var(--radius-panel);background:var(--danger-soft);color:var(--danger);font-size:10px}.workshop-load-error span{flex:1 1 auto;line-height:1.5}.workshop-controls{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding:11px 14px;border-bottom:1px solid var(--line);background:var(--strong)}.workshop-filter-row{display:flex;align-items:flex-end;gap:10px;min-width:0}.workshop-filter-row .field{width:min(260px,46vw)}.workshop-filter-row .field>span{font-size:9px}.workshop-filter-row .field select{min-height:42px;font-size:12px}.attention-toggle{display:flex;align-items:center;gap:8px;min-height:42px;padding:0 11px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);color:var(--ink-soft);font-size:11px;font-weight:700;cursor:pointer}.attention-toggle input{width:17px;height:17px;margin:0;accent-color:var(--signal)}.workshop-agent-strip{display:flex;justify-content:flex-end;gap:7px;min-width:0;overflow-x:auto;scrollbar-width:thin}.workshop-agent-strip>div{display:grid;grid-template-columns:minmax(74px,auto) auto;gap:3px 8px;min-width:132px;min-height:42px;padding:7px 9px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface)}.workshop-agent-strip span{overflow:hidden;font-size:10px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.workshop-agent-strip strong{justify-self:end;color:var(--signal);font:700 11px/1 var(--mono)}.workshop-agent-strip small{grid-column:1 / -1;color:var(--ink-faint);font-size:9px}.workshop-agent-strip .agent-busy strong{color:var(--signal)}.workshop-agent-strip .agent-offline{border-color:color-mix(in srgb,var(--danger) 44%,var(--line));background:var(--danger-soft)}.workshop-agent-strip .agent-offline strong,.workshop-agent-strip .agent-offline small{color:var(--danger)}.workshop-agent-strip .agent-reconnecting{border-color:color-mix(in srgb,var(--warning) 44%,var(--line));background:var(--warning-soft)}.workshop-agent-strip .agent-reconnecting strong,.workshop-agent-strip .agent-reconnecting small{color:var(--warning)}.workshop-agent-strip .agent-unknown{border-color:var(--line);background:var(--surface);color:var(--ink-faint)}.workshop-agent-strip .agent-unknown strong,.workshop-agent-strip .agent-unknown small{color:var(--ink-faint)}.station-switcher{display:none}.production-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(248px,1fr);align-items:start;gap:12px;padding:14px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;scrollbar-color:var(--line-control) transparent}.production-column{min-width:0;border:1px solid var(--line);border-top:3px solid var(--line-control);border-radius:var(--radius-panel);background:color-mix(in srgb,var(--surface) 84%,white)}.production-column.phase-doing{border-top-color:var(--signal)}.production-column.phase-done{border-top-color:#60756a;background:#f4f7f5}.production-column-header{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:64px;padding:10px 11px;border-bottom:1px solid var(--line);border-radius:5px 5px 0 0;background:var(--surface)}.production-column-header>div:first-child{display:grid;gap:5px;min-width:0}.production-column-header>div:first-child>span{color:var(--ink-faint);font:700 9px/1 var(--mono)}.production-column-header h2{margin:0;overflow:hidden;font:700 15px/1.1 var(--display);text-overflow:ellipsis;white-space:nowrap}.production-column.phase-doing .production-column-header h2{color:var(--signal)}.production-column-header>div:last-child{display:grid;justify-items:end;gap:4px;flex:0 0 auto}.production-column-header>div:last-child strong{font:700 22px/.85 var(--display)}.production-column-header>div:last-child small{color:var(--ink-faint);font:700 9px/1 var(--mono)}.workshop-task-list{display:grid;align-content:start;gap:10px;min-height:220px;padding:10px}.workshop-task-card{display:grid;gap:9px;min-width:0;padding:11px;border:1px solid var(--line);border-top:3px solid var(--line-control);border-radius:var(--radius-card);background:var(--strong);box-shadow:var(--shadow-soft)}.workshop-task-card.tone-doing{border-top-color:var(--signal)}.workshop-task-card.tone-blocked{border-top-color:var(--danger)}.workshop-task-card.tone-gate{border-top-color:var(--warning)}.workshop-task-card.tone-done{border-top-color:#60756a;background:#fbfcfb}.workshop-task-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.workshop-task-card>header>div:first-child{display:grid;gap:4px;min-width:0}.workshop-task-card>header>div:first-child span{color:var(--signal);font:700 9px/1 var(--mono)}.workshop-task-card>header>div:first-child strong{overflow:hidden;font-size:12px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.task-card-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px;flex:0 0 auto}.task-card-badges b,.task-card-badges em{padding:4px 5px;border:1px solid var(--line);border-radius:4px;color:var(--ink-soft);font:normal 700 9px/1 var(--mono)}.task-card-badges em{color:var(--signal)}.tone-blocked .task-card-badges em{border-color:color-mix(in srgb,var(--danger) 45%,var(--line));color:var(--danger);background:var(--danger-soft)}.tone-gate .task-card-badges em{border-color:color-mix(in srgb,var(--warning) 45%,var(--line));color:var(--warning);background:var(--warning-soft)}.workshop-task-card h3{display:-webkit-box;margin:0;overflow:hidden;font:700 15px/1.35 var(--display);overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2}.workshop-task-card>p{display:-webkit-box;margin:0;overflow:hidden;color:var(--ink-soft);font-size:11px;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:3}.task-card-blocker{padding:8px 9px;border-left:3px solid var(--danger);border-radius:0 var(--radius-control) var(--radius-control) 0;background:var(--danger-soft);color:var(--danger);font-size:10px;font-weight:700;line-height:1.4}.task-card-blocker.gate{border-left-color:var(--warning);background:var(--warning-soft);color:var(--warning)}.workshop-task-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;padding:1px;border-radius:var(--radius-control);background:var(--line)}.workshop-task-card dl>div{display:grid;gap:4px;min-width:0;min-height:48px;align-content:center;padding:7px 8px;background:var(--surface)}.workshop-task-card dt,.workshop-task-card dd{min-width:0;margin:0}.workshop-task-card dt{color:var(--ink-faint);font:700 9px/1 var(--mono)}.workshop-task-card dd{overflow:hidden;font-size:10px;font-weight:700;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.task-card-progress{height:6px;overflow:hidden;border-radius:4px;background:var(--line)}.task-card-progress>span{display:block;height:100%;border-radius:inherit;background:var(--signal)}.tone-blocked .task-card-progress>span{background:var(--danger)}.tone-gate .task-card-progress>span{background:var(--warning)}.tone-done .task-card-progress>span{background:#60756a}.workshop-task-card>footer{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:7px}.workshop-task-card>footer button{min-width:0;min-height:40px;padding:0 8px;border-radius:var(--radius-control);font-size:11px;font-weight:700;cursor:pointer}.task-card-secondary{border:1px solid var(--line-control);background:var(--strong);color:var(--ink-soft)}.task-card-secondary:hover:not(:disabled){border-color:var(--signal);background:var(--signal-soft);color:var(--signal)}.task-card-primary{border:1px solid var(--signal);background:var(--signal);color:#fff}.task-card-primary:hover:not(:disabled){background:#18583f}.task-card-primary:disabled{border-color:var(--line-strong);background:var(--line);color:var(--ink-faint);cursor:not-allowed}.tone-blocked .task-card-primary{border-color:var(--danger);background:var(--danger)}.tone-gate .task-card-primary{border-color:var(--warning);background:var(--warning)}.production-empty{display:grid;align-content:center;justify-items:center;gap:7px;min-height:154px;padding:18px;border:1px dashed var(--line-control);border-radius:var(--radius-card);background:color-mix(in srgb,var(--strong) 64%,transparent);color:var(--ink-soft);text-align:center}.production-empty strong{font:700 14px/1 var(--display)}.production-empty span{color:var(--ink-faint);font-size:10px;line-height:1.45}.workshop-task-drawer{grid-template-rows:auto minmax(0,1fr) auto}.workshop-task-drawer-content{display:grid;align-content:start;gap:12px;min-height:0;padding:14px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.task-production-state,.task-material-passport,.task-resource-panel,.task-pipeline-panel,.task-control-alert{min-width:0;padding:12px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--strong);box-shadow:var(--shadow-soft)}.task-production-heading,.task-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.task-production-heading span,.task-panel-heading>span{color:var(--ink-faint);font:700 9px/1 var(--mono)}.task-production-heading strong{color:var(--signal);font:700 14px/1 var(--display)}.task-station-route{display:grid;grid-template-columns:repeat(5,minmax(88px,1fr));gap:6px;margin-top:11px;overflow-x:auto;scrollbar-width:thin}.task-station-route>div{display:grid;gap:5px;min-height:52px;align-content:center;padding:7px 8px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface)}.task-station-route span{color:var(--ink-faint);font:700 9px/1 var(--mono)}.task-station-route strong{font-size:10px;line-height:1.25}.task-station-route .passed{border-color:color-mix(in srgb,var(--signal) 28%,var(--line));background:var(--signal-soft)}.task-station-route .active{border-color:var(--signal);box-shadow:inset 0 3px 0 var(--signal)}.task-station-route .passed span,.task-station-route .active span{color:var(--signal)}.task-material-passport{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;padding:1px;background:var(--line)}.task-material-passport>div{display:grid;align-content:start;gap:6px;min-width:0;min-height:82px;padding:10px;background:var(--strong)}.task-material-passport span{color:var(--ink-faint);font:700 9px/1 var(--mono)}.task-material-passport strong{font-size:11px;line-height:1.45;overflow-wrap:anywhere}.task-resource-panel{display:grid;gap:11px}.task-agent-health{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:9px 10px;border-radius:var(--radius-control);background:var(--surface)}.task-agent-health span{overflow:hidden;color:var(--ink-soft);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.task-agent-health strong{color:var(--signal);font:700 10px/1 var(--mono)}.task-agent-health small{color:var(--ink-faint);font-size:9px}.task-control-alert{display:grid;gap:6px;border-color:color-mix(in srgb,var(--danger) 48%,var(--line));background:var(--danger-soft);color:var(--danger)}.task-control-alert.gate{border-color:color-mix(in srgb,var(--warning) 48%,var(--line));background:var(--warning-soft);color:var(--warning)}.task-control-alert strong{font:700 13px/1 var(--display)}.task-control-alert span{color:var(--ink-soft);font-size:10px;line-height:1.5}.workshop-task-footer{justify-content:flex-end}.workshop-task-footer button{min-width:128px}a.workshop-task-project-link{min-width:128px;min-height:42px}@media(min-width:780px){.workshop-controls{padding-inline:22px}.production-board{padding:16px 22px 24px}.workshop-task-drawer{width:min(680px,58vw)}.factory-overview-summary>div,.factory-overview-summary>a,.factory-overview-summary>button{min-height:96px;padding:16px 22px}.factory-overview-summary strong{font-size:30px}}@media(max-width:960px){.workshop-controls{align-items:stretch;flex-direction:column}.workshop-agent-strip{justify-content:flex-start}}@media(max-width:779px){.factory-overview-summary{gap:4px;padding:8px 10px}.factory-overview-summary>div,.factory-overview-summary>a,.factory-overview-summary>button{min-height:62px;padding:7px 4px;text-align:center;border-bottom:1px solid var(--line)}.factory-overview-summary>a{justify-items:center}.factory-overview-summary>:not(:last-child){border-right:1px solid var(--line)}.factory-overview-summary small{display:none}.factory-overview-summary span{font-size:8px;line-height:1.2}.factory-overview-summary strong{font-size:20px}.factory-bottleneck-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.factory-bottleneck-actions a,.factory-bottleneck-actions button{width:100%;min-width:0}.workshop-summary>a{grid-column:1 / -1;min-height:62px}.workshop-controls{gap:10px;padding:10px}.workshop-filter-row{align-items:stretch;flex-direction:column}.workshop-filter-row .field{width:100%}.attention-toggle{min-height:44px}.workshop-agent-strip>div{min-width:140px}.station-switcher{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:8px;border-bottom:1px solid var(--line);background:var(--surface)}.station-switcher button{display:grid;align-content:center;justify-items:center;gap:4px;min-height:52px;padding:5px 2px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--strong);color:var(--ink-soft);font-size:9px;font-weight:700;cursor:pointer}.station-switcher button strong{color:var(--ink-faint);font:700 12px/1 var(--display)}.station-switcher button span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.station-switcher button.active{border-color:var(--signal);background:var(--signal-soft);color:var(--signal);box-shadow:inset 0 -2px 0 var(--signal)}.station-switcher button.active strong{color:var(--signal)}.production-board{display:block;padding:10px;overflow:visible}.production-column{display:none}.production-column.mobile-active{display:block}.production-column-header{min-height:62px}.workshop-task-list{min-height:190px}.workshop-task-card{padding:12px}.workshop-task-card h3{font-size:16px}.workshop-task-card>p{font-size:12px}.workshop-task-card>footer button{min-height:44px;font-size:12px}.workshop-task-drawer{max-height:94vh}.workshop-task-drawer-content{padding:12px}.task-material-passport{grid-template-columns:1fr}.task-material-passport>div{min-height:0}.task-station-route{grid-template-columns:repeat(5,minmax(98px,1fr))}}@media(max-width:560px){.workshop-task-card dl{grid-template-columns:1fr}.workshop-task-card dl>div{min-height:42px}.workshop-task-footer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.workshop-task-footer button,.workshop-task-footer a{width:100%;min-width:0}}@media(max-width:480px){.factory-station-counts>div{min-height:54px}.factory-overview-task{padding:12px}.factory-overview-task>footer button{min-height:44px;font-size:11px}.workshop-agent-strip{width:100%}.workshop-agent-strip>div{flex:1 1 140px}.task-station-route>div{min-height:48px;padding:6px}.task-station-route strong{font-size:9px}}@media(max-width:359px){.workshop-live-state{grid-template-columns:auto auto;align-items:center;min-height:58px}.workshop-live-state small{grid-column:1 / -1}.workshop-task-card>footer{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.station-switcher,.production-board,.task-station-route{scroll-behavior:auto}}.modal-layer{position:fixed;z-index:120;inset:0;display:grid;justify-items:end}.modal-layer>.drawer-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:#18221d61;cursor:default}.modal-layer>.approval-confirm-dialog{justify-self:center;align-self:center}.exc-action-error{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 14px 0}.run-control-board{margin-top:14px;padding-bottom:6px}.run-control-list{display:grid;gap:8px;padding:12px 14px}.run-control-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:10px 12px;border:1px solid var(--line-strong);border-left:3px solid var(--line-control);border-radius:var(--radius-panel);background:var(--strong);box-shadow:var(--shadow-soft)}.run-control-row.run-state-running{border-left-color:var(--signal)}.run-control-row.run-state-paused{border-left-color:var(--warning)}.run-control-row.run-state-blocked{border-left-color:var(--danger)}.run-control-row.run-state-cancelled,.run-control-row.run-state-completed,.run-control-row.run-state-failed{border-left-color:var(--line-control)}.run-control-copy{display:grid;gap:4px;min-width:0}.run-control-tags{display:flex;align-items:center;gap:8px;min-width:0}.run-control-tags small{overflow:hidden;color:var(--ink-faint);font:700 8px/1 var(--mono);text-overflow:ellipsis;white-space:nowrap}.run-state-chip{flex:0 0 auto;padding:3px 7px;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--surface);color:var(--ink-soft);font:700 8px/1 var(--mono)}.run-control-row.run-state-running .run-state-chip{border-color:var(--signal);background:var(--signal-soft);color:var(--signal)}.run-control-row.run-state-paused .run-state-chip{border-color:var(--warning);background:var(--warning-soft);color:var(--warning)}.run-control-row.run-state-blocked .run-state-chip{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.run-control-copy strong{font-size:10px;line-height:1.4}.run-control-copy small{color:var(--ink-faint);font-size:9px;line-height:1.4}.run-control-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;flex:0 0 auto}.run-control-actions button{display:inline-flex;align-items:center;gap:4px}.run-cancel-button{border:0;background:transparent;cursor:pointer}.run-cancel-button:disabled{color:var(--ink-faint);cursor:not-allowed}.run-control-note{padding:0 2px;color:var(--ink-faint);font-size:9px;line-height:1.5}.agent-center{margin-top:14px;padding-bottom:6px}.agent-offline-notice{display:flex;align-items:center;gap:8px;margin:0 14px 10px;padding:10px 12px;border:1px solid var(--danger);border-radius:var(--radius-card);background:var(--danger-soft);color:var(--danger);font-size:10px;line-height:1.5}.agent-center-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;padding:12px 14px}.agent-center-card{display:grid;gap:8px;min-width:0;padding:12px;border:1px solid var(--line-strong);border-left:3px solid var(--line-control);border-radius:var(--radius-panel);background:var(--strong);box-shadow:var(--shadow-soft)}.agent-center-card.agent-online{border-left-color:var(--signal)}.agent-center-card.agent-degraded{border-left-color:var(--warning)}.agent-center-card.agent-offline{border-left-color:var(--danger)}.agent-center-card>header{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.agent-center-card>header>div{display:grid;gap:3px;min-width:0}.agent-center-card>header strong{overflow:hidden;font:700 13px/1.2 var(--display);text-overflow:ellipsis;white-space:nowrap}.agent-center-card>header span{color:var(--ink-faint);font-size:9px}.agent-heartbeat{flex:0 0 auto;padding:3px 8px;border:1px solid var(--line-strong);border-radius:var(--radius-control);font:700 8px/1 var(--mono)}.agent-heartbeat-online{border-color:var(--signal);background:var(--signal-soft);color:var(--signal)}.agent-heartbeat-degraded{border-color:var(--warning);background:var(--warning-soft);color:var(--warning)}.agent-heartbeat-offline{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.agent-heartbeat-unknown{color:var(--ink-faint)}.agent-load{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;min-height:18px}.agent-load>span{height:6px;border-radius:3px;background:var(--signal-soft);overflow:hidden;position:relative}.agent-load>span:before{content:"";position:absolute;inset:0;background:var(--signal);border-radius:3px}.agent-load em{color:var(--ink-soft);font-size:9px;font-style:normal}.agent-load small{color:var(--ink-faint);font-size:9px}.agent-center-card.agent-offline .agent-load>span:before,.agent-center-card.agent-degraded .agent-load>span:before{background:var(--line-strong)}.agent-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.agent-facts>div{display:grid;gap:2px;min-width:0}.agent-facts dt{color:var(--ink-faint);font:700 7px/1 var(--mono)}.agent-facts dd{overflow:hidden;margin:0;font-size:9px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.cli-status-row{display:flex;flex-wrap:wrap;gap:5px}.cli-status-row>span{padding:3px 7px;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--surface);color:var(--ink-soft);font:700 8px/1 var(--mono)}.cli-status-row .cli-online{border-color:var(--signal);background:var(--signal-soft);color:var(--signal)}.cli-status-row .cli-degraded{border-color:var(--warning);background:var(--warning-soft);color:var(--warning)}.cli-status-row .cli-offline{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.cli-status-row .cli-unknown{color:var(--ink-faint)}.agent-task-line{margin:0;color:var(--ink-soft);font-size:10px;line-height:1.5}.agent-reason{color:var(--warning);font-size:9px;line-height:1.5}.agent-center-card.agent-offline .agent-reason{color:var(--danger)}@media(max-width:600px){.run-control-row{align-items:stretch;flex-direction:column}.run-control-actions{justify-content:stretch}.run-control-actions button{flex:1 1 auto;justify-content:center}.agent-center-list{grid-template-columns:minmax(0,1fr)}.agent-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}.ev-page{padding:0 14px 24px;min-width:0}.ev-context-bar{display:flex;align-items:center;gap:12px;margin:14px 0 2px;padding-bottom:10px;border-bottom:1px solid var(--line-strong)}.ev-back{display:inline-flex;align-items:center;gap:6px;color:var(--ink-soft);font:700 11px/1 var(--display);text-decoration:none}.ev-back:hover{color:var(--signal)}.ev-context{display:grid;gap:2px;min-width:0}.ev-context span{color:var(--ink-faint);font:700 8px/1 var(--mono);letter-spacing:.08em}.ev-context strong{font:700 14px/1.2 var(--display)}.ev-reload{margin-left:auto;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--line-control);border-radius:var(--radius-control);background:var(--strong);color:var(--ink-soft);font:700 10px/1 var(--display);cursor:pointer}.ev-reload:hover{border-color:var(--signal);color:var(--signal)}.ev-loading{margin:16px 0;color:var(--ink-soft);font-size:11px}.ev-error{display:flex;align-items:center;gap:8px;margin:16px 0;padding:10px 12px;border:1px solid var(--danger);border-radius:var(--radius-card);background:var(--danger-soft);color:var(--danger);font-size:11px}.ev-error span{flex:1 1 auto;line-height:1.5}.ev-stack{display:grid;gap:14px;margin-top:14px}.ev-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px;border:1px solid var(--line-strong);border-radius:var(--radius-panel);background:var(--strong);box-shadow:var(--shadow-soft)}.ev-kicker{color:var(--ink-faint);font:700 8px/1 var(--mono);letter-spacing:.1em}.ev-heading h1{margin:6px 0 4px;font:700 22px/1.15 var(--display)}.ev-heading p{margin:0;color:var(--ink-soft);font-size:10px;line-height:1.5}.ev-package-state{flex:0 0 auto;padding:7px 12px;border:1px solid var(--line-control);border-radius:var(--radius-control);background:var(--surface);color:var(--ink-soft);font:700 11px/1 var(--display);white-space:nowrap}.ev-state-ready{border-color:var(--signal);background:var(--signal-soft);color:var(--signal)}.ev-state-building{border-color:var(--warning);background:var(--warning-soft);color:var(--warning)}.ev-state-blocked{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.ev-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.ev-summary>div{display:grid;gap:4px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-card);background:var(--surface);min-width:0}.ev-summary span{color:var(--ink-faint);font-size:8px}.ev-summary strong{font:700 15px/1 var(--display)}.ev-summary .needs-attention strong{color:var(--danger)}.ev-section{display:grid;gap:10px;padding:14px;border:1px solid var(--line-strong);border-radius:var(--radius-panel);background:var(--strong);box-shadow:var(--shadow-soft);min-width:0}.ev-heading-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;min-width:0}.ev-heading-row>span{font:700 13px/1 var(--display)}.ev-heading-row>small{color:var(--ink-faint);font-size:9px}.ev-log-live{display:inline-flex;align-items:center;gap:4px;color:var(--signal);font:700 9px/1 var(--mono)}.ev-log-alert{display:flex;align-items:flex-start;gap:6px;padding:8px 10px;border:1px solid var(--warning);border-radius:var(--radius-card);background:var(--warning-soft);color:var(--warning);font-size:10px;line-height:1.5}.ev-log-frame{position:relative;min-width:0}.ev-log-list{display:grid;gap:0;margin:0;padding:0;list-style:none;max-height:320px;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--canvas)}.ev-log-entry{display:grid;grid-template-columns:48px 150px 90px minmax(0,1fr);gap:8px;align-items:baseline;padding:4px 8px;border-bottom:1px solid var(--line);min-width:0}.ev-log-entry:last-child{border-bottom:0}.ev-log-entry small{color:var(--ink-faint);font:700 9px/1.4 var(--mono)}.ev-log-entry em{color:var(--signal);font:normal 700 9px/1.4 var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ev-log-entry span{color:var(--ink-faint);font:700 8px/1.4 var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ev-log-entry code{color:var(--ink);font:400 10px/1.5 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}.ev-log-bottom{position:absolute;right:10px;bottom:10px;padding:5px 10px;border:1px solid var(--signal);border-radius:var(--radius-control);background:var(--strong);color:var(--signal);font:700 9px/1 var(--display);cursor:pointer;box-shadow:var(--shadow-soft)}.ev-trace-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.ev-filters{display:inline-flex;gap:6px}.ev-filters button{padding:5px 10px;border:1px solid var(--line-control);border-radius:var(--radius-control);background:var(--surface);color:var(--ink-soft);font:700 9px/1 var(--display);cursor:pointer}.ev-filters button.active{border-color:var(--signal);background:var(--signal);color:var(--strong)}.ev-trace-list{display:grid;gap:10px;min-width:0}.ev-trace-item{display:grid;gap:8px;padding:10px;border:1px solid var(--line-strong);border-left:3px solid var(--line-strong);border-radius:var(--radius-card);background:var(--surface);min-width:0}.ev-trace-item.has-gap{border-left-color:var(--danger)}.ev-trace-heading{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:0;border:0;background:none;text-align:left;cursor:pointer;min-width:0}.ev-trace-key{display:grid;gap:1px;min-width:0}.ev-trace-key b{color:var(--signal);font:700 9px/1 var(--mono)}.ev-trace-key small{color:var(--ink-faint);font:700 8px/1.4 var(--mono)}.ev-trace-heading>strong{font:700 12px/1.3 var(--display);overflow-wrap:anywhere;min-width:0}.ev-trace-heading>em{color:var(--ink-soft);font:normal 700 9px/1 var(--display);white-space:nowrap}.ev-trace-item.has-gap .ev-trace-heading>em{color:var(--danger)}.ev-trace-chain{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;min-width:0}.ev-trace-segment{display:grid;gap:3px;padding:7px 8px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--strong);min-width:0}.ev-trace-segment>span{color:var(--ink-faint);font:700 8px/1 var(--mono);letter-spacing:.06em}.ev-trace-segment>strong{font:700 10px/1.2 var(--display);overflow-wrap:anywhere}.ev-trace-segment>small{color:var(--ink-faint);font-size:8px}.ev-trace-segment.ev-seg-ready{border-top:2px solid var(--signal)}.ev-trace-segment.ev-seg-ready>strong{color:var(--signal)}.ev-trace-segment.ev-seg-building{border-top:2px solid var(--warning)}.ev-trace-segment.ev-seg-building>strong{color:var(--warning)}.ev-trace-segment.ev-seg-blocked{border-top:2px solid var(--danger);background:var(--danger-soft)}.ev-trace-segment.ev-seg-blocked>strong{color:var(--danger)}.ev-trace-detail{display:grid;gap:6px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--canvas)}.ev-gap-note{color:var(--danger);font:700 10px/1.5 var(--mono)}.ev-invalidated-note{color:var(--warning);font-size:10px;line-height:1.5;font-style:normal}.ev-trace-detail dl{display:grid;gap:3px;margin:0}.ev-trace-detail dl>div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px}.ev-trace-detail dt{color:var(--ink-faint);font:700 9px/1.5 var(--mono)}.ev-trace-detail dd{margin:0;color:var(--ink-soft);font:700 9px/1.5 var(--mono);overflow-wrap:anywhere}.ev-empty{display:grid;gap:4px;justify-items:start;padding:14px;border:1px dashed var(--line-strong);border-radius:var(--radius-card);color:var(--ink-faint);font-size:10px;line-height:1.5}.ev-empty strong{font:700 11px/1.3 var(--display);color:var(--ink-soft)}.ev-export-bar{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap}.ev-export-button{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--signal);border-radius:var(--radius-control);background:var(--signal);color:var(--strong);font:700 11px/1 var(--display);cursor:pointer}.ev-export-button:disabled{opacity:.6;cursor:default}.ev-export-note{flex:1 1 220px;color:var(--ink-faint);font-size:9px;line-height:1.5;min-width:0}.ev-package-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.ev-package{display:grid;gap:8px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-card);background:var(--surface);min-width:0}.ev-package-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.ev-package-chip{padding:4px 8px;border:1px solid var(--line-control);border-radius:var(--radius-control);font:700 9px/1 var(--display)}.ev-package-head>span{font:700 10px/1.2 var(--mono);overflow-wrap:anywhere;min-width:0}.ev-package-head>small{color:var(--ink-faint);font-size:9px}.ev-package-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;margin:0}.ev-package-meta>div{display:grid;gap:2px;min-width:0}.ev-package-meta dt{color:var(--ink-faint);font:700 8px/1 var(--mono)}.ev-package-meta dd{margin:0;color:var(--ink-soft);font:700 9px/1.4 var(--mono);overflow-wrap:anywhere}.ev-package-gaps{display:grid;gap:4px;margin:0;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--canvas);list-style:none}.ev-package-gaps li{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:8px;align-items:baseline}.ev-package-gaps em{font:normal 700 8px/1 var(--mono);padding:2px 6px;border-radius:var(--radius-control);border:1px solid var(--line-control);color:var(--ink-soft)}.ev-package-gaps em.blocking{border-color:var(--danger);color:var(--danger);background:var(--danger-soft)}.ev-package-gaps b{font:700 9px/1.4 var(--mono);color:var(--ink-soft)}.ev-package-gaps span{color:var(--ink-soft);font-size:9px;line-height:1.5;overflow-wrap:anywhere}@media(max-width:640px){.ev-summary,.ev-trace-chain{grid-template-columns:repeat(2,minmax(0,1fr))}.ev-log-entry{grid-template-columns:40px minmax(0,1fr) auto}.ev-log-entry em{grid-column:2}.ev-log-entry span{grid-column:3}.ev-log-entry code{grid-column:2 / -1}.ev-package-meta{grid-template-columns:minmax(0,1fr)}}@media(max-width:480px){.ev-page{padding:0 10px 24px}.ev-context-bar{flex-wrap:wrap;gap:8px}.ev-context{order:3;width:100%}.ev-heading{padding:12px}.ev-heading h1{font-size:18px}.ev-section{padding:10px}.ev-trace-heading{grid-template-columns:minmax(0,1fr) auto}.ev-trace-heading>strong{grid-column:1 / -1;grid-row:2}.ev-trace-detail dl>div{grid-template-columns:minmax(0,1fr);gap:1px}.ev-package-gaps li{grid-template-columns:auto minmax(0,1fr)}.ev-package-gaps span{grid-column:2}}html,body{overflow-x:clip}.skip-link{position:fixed;top:8px;left:8px;z-index:200;display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:1px solid var(--signal);border-radius:var(--radius-control);background:var(--strong);color:var(--signal);font:700 11px/1 var(--display);text-decoration:none;transform:translateY(calc(-100% - 16px));transition:transform .12s ease}.skip-link:focus-visible{transform:translateY(0);outline:3px solid var(--signal);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.login-gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--canvas)}.login-card{width:100%;max-width:380px;padding:28px 24px;border:1px solid var(--line-strong);border-radius:var(--radius-panel);background:var(--surface);box-shadow:var(--shadow-soft);text-align:center}.login-title{margin:0 0 8px;font:700 22px/1.2 var(--display);color:var(--ink)}.login-hint{margin:0 0 20px;font:14px/1.6 var(--body);color:var(--ink-soft)}.login-action{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 22px;border-radius:var(--radius-control);background:var(--signal);color:var(--strong);font:700 13px/1 var(--display);text-decoration:none}.login-action:hover{background:#17583e}.login-action:focus-visible{outline:3px solid var(--signal);outline-offset:2px}@media(max-width:480px){.login-gate{padding:16px}.login-card{padding:24px 18px}}
