/* Closed Engineering primitive library. Surface files arrange these classes;
   they do not repaint them. */
*,*::before,*::after{box-sizing:border-box}
html{background:var(--eng-ground);color:var(--eng-ink);font-family:var(--eng-font);font-size:var(--t-body-size);line-height:var(--t-body-lh);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{margin:0;background:var(--eng-ground)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}
:focus-visible{outline:0;box-shadow:var(--eng-focus)}[hidden]{display:none!important}
.eng-skip{position:fixed;left:var(--space-3);top:var(--space-3);z-index:200;transform:translateY(calc(-100% - var(--space-4)));background:var(--eng-dark);color:var(--eng-on-dark);padding:var(--space-3) var(--space-4);border-radius:var(--radius-3);transition:transform var(--eng-dur-hover) var(--eng-ease)}.eng-skip:focus{transform:none}

/* EngShellV2: SELL rail/workspace grammar with an Engineering-local agent overlay. */
.eng-shell{min-height:100dvh;background:var(--eng-ground);padding:var(--space-4);overflow:hidden}
.eng-app-frame{min-height:calc(100dvh - var(--space-8));background:var(--eng-paper);border:1px solid var(--eng-edge-strong);border-radius:var(--radius-4);box-shadow:var(--eng-stage-lift);overflow:hidden;display:grid;grid-template-columns:var(--eng-shell-rail) var(--eng-shell-work);position:relative}
.eng-rail{background:var(--eng-dark);display:flex;flex-direction:column;align-items:center;padding:10px 0;color:var(--eng-on-dark)}
.eng-mark{width:var(--space-8);height:var(--space-8);margin-bottom:var(--space-3);border-radius:7px;display:grid;place-items:center;background:var(--eng-ground);color:var(--eng-ink);text-decoration:none;overflow:hidden}.eng-mark img{width:100%;height:100%;display:block}
.eng-nav{display:flex;flex-direction:column;gap:2px}.eng-nav a{position:relative;width:36px;height:36px;display:grid;place-items:center;color:color-mix(in srgb,var(--eng-on-dark) 42%,transparent);text-decoration:none;border-radius:var(--radius-2);transition:color var(--eng-dur-hover) var(--eng-ease),background var(--eng-dur-hover) var(--eng-ease)}.eng-nav a svg{width:21px;height:21px}.eng-nav a:hover{color:var(--eng-on-dark);background:var(--raise-dark-2)}.eng-nav a[aria-current="page"]{color:var(--eng-signal)}.eng-nav a[aria-current="page"] svg{filter:drop-shadow(0 0 4px color-mix(in srgb,var(--eng-signal) 32%,transparent))}.eng-nav a span{position:absolute;left:calc(100% + var(--space-3));padding:var(--space-2) var(--space-3);background:var(--eng-dark);color:var(--eng-on-dark);border:1px solid var(--eng-edge-dark);border-radius:var(--radius-2);font-size:var(--t-caption-size);white-space:nowrap;opacity:0;pointer-events:none;transform:translateX(-4px);transition:opacity var(--eng-dur-hover) var(--eng-ease),transform var(--eng-dur-hover) var(--eng-ease);z-index:20}.eng-nav a:hover span,.eng-nav a:focus-visible span{opacity:1;transform:none}
.eng-nav-sep{width:var(--space-6);height:1px;background:var(--eng-edge-dark);margin:var(--space-2) 0}.eng-railfoot{margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.eng-avatar{width:27px;height:27px;border-radius:var(--radius-pill);background:var(--raise-dark-3);display:grid;place-items:center;font-size:9px}
.eng-workspace{display:flex;flex-direction:column;min-width:0;min-height:0}.eng-workspace-header{min-height:78px;display:flex;align-items:center;padding:14px var(--space-5);gap:var(--space-4);border-bottom:1px solid var(--eng-edge)}.eng-identity{display:flex;flex-direction:column;gap:3px;min-width:0}.eng-identity small{font-family:var(--eng-mono);font-size:9px;color:var(--eng-ink-3);text-transform:uppercase;letter-spacing:.06em}.eng-identity strong{font-size:var(--t-h4-size);line-height:var(--t-h4-lh);letter-spacing:var(--t-h4-tr);font-weight:var(--t-h4-w);margin:0}.eng-identity p{font-size:10px;color:var(--eng-ink-3);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.eng-utility{margin-left:auto;display:flex;border:1px solid var(--eng-edge);border-radius:5px;overflow:hidden}.eng-utility a{height:30px;padding:0 var(--space-3);display:flex;align-items:center;border:0;background:transparent;text-decoration:none;font-size:9px}.eng-utility a+a{border-left:1px solid var(--eng-edge)}.eng-view{padding:var(--space-5);overflow:auto;flex:1;min-height:0}.eng-view-intro{display:grid;grid-template-columns:minmax(0,1fr);align-items:end;padding:var(--space-2) 0 var(--space-6)}.eng-view-intro h1{font-size:clamp(var(--t-h1-size),4vw,var(--t-display-m-size));line-height:1;letter-spacing:-.04em;margin:var(--space-2) 0 0}.eng-kicker{font-family:var(--eng-mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--eng-signal-deep)}.eng-stop{color:var(--eng-signal)}

/* Shannon: ICPX overlay law. It never resizes the Engineering stage. */
.eng-agent--closed{position:fixed;right:16px;bottom:16px;z-index:90;height:32px;display:inline-flex;align-items:center;gap:8px;padding:0 14px;border:1px solid var(--eng-edge-dark);border-radius:var(--radius-3);background:var(--eng-dark);color:var(--eng-on-dark);box-shadow:var(--eng-stage-lift);transition:transform var(--eng-dur-hover) var(--eng-ease),box-shadow var(--eng-dur-hover) var(--eng-ease),border-color var(--eng-dur-hover) var(--eng-ease)}.eng-agent--closed:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--eng-on-dark) 24%,transparent)}.eng-agent-handle-name{font-size:12px;font-weight:600}.eng-agent-period{color:var(--eng-warning)}.eng-agent-state{font:600 9px var(--eng-mono);letter-spacing:.08em;color:color-mix(in srgb,var(--eng-on-dark) 56%,transparent)}
.eng-agent--open{position:fixed;inset:32px 0 0 auto;width:min(var(--eng-agent-width),calc(100vw - var(--eng-shell-rail)));z-index:95;display:flex;flex-direction:column;background:var(--eng-dark);color:var(--eng-on-dark);border-left:1px solid var(--eng-edge-dark);box-shadow:-8px 0 32px rgba(11,15,13,.4),inset 0 0 90px 24px rgba(6,9,8,.55);animation:engAgentIn var(--eng-dur-state) var(--eng-ease) both}.eng-agent-head{min-height:49px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--eng-edge-dark)}.eng-agent-head strong{font-size:13px}.eng-agent-head>span{font:600 9px var(--eng-mono);letter-spacing:.08em;color:color-mix(in srgb,var(--eng-on-dark) 55%,transparent)}.eng-agent-head button{width:24px;height:24px;border:0;border-radius:var(--radius-2);background:transparent;color:color-mix(in srgb,var(--eng-on-dark) 70%,transparent)}.eng-agent-head button:hover{background:var(--raise-dark-2);color:var(--eng-on-dark)}.eng-agent-body{flex:1;overflow:auto;padding:18px 14px}.eng-agent-body dl{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px 12px;margin:0;font-size:11px}.eng-agent-body dt{font:500 9px var(--eng-mono);letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb,var(--eng-on-dark) 42%,transparent)}.eng-agent-body dd{margin:0;min-width:0;overflow-wrap:anywhere}.eng-agent-foot{display:grid;gap:8px;padding:12px;border-top:1px solid var(--eng-edge-dark)}.eng-agent-foot label{font:500 9px var(--eng-mono);letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,var(--eng-on-dark) 48%,transparent)}.eng-agent-foot textarea{width:100%;min-height:76px;resize:none;border:1px solid var(--eng-edge-dark);border-radius:var(--radius-3);background:var(--raise-dark-1);color:var(--eng-on-dark);padding:10px 11px;font:12px/1.5 var(--eng-font)}.eng-agent-foot textarea::placeholder{color:color-mix(in srgb,var(--eng-on-dark) 36%,transparent)}.eng-agent-foot>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.eng-agent-foot>div span{font:9px var(--eng-mono);color:color-mix(in srgb,var(--eng-on-dark) 42%,transparent)}.eng-agent-foot>div button{min-height:30px;padding:0 12px;border:1px solid var(--eng-edge-dark);border-radius:var(--radius-2);background:transparent;color:var(--eng-on-dark);font-size:10px}.eng-agent-foot>div button:disabled{opacity:.38;cursor:not-allowed}
@keyframes engAgentIn{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}

/* Global and Engineering-local primitives. */
.eng-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--space-3)}.eng-span-3{grid-column:span 3}.eng-span-4{grid-column:span 4}.eng-span-5{grid-column:span 5}.eng-span-6{grid-column:span 6}.eng-span-7{grid-column:span 7}.eng-span-8{grid-column:span 8}.eng-span-9{grid-column:span 9}.eng-span-12{grid-column:span 12}
.eng-card{background:var(--eng-paper);border:1px solid var(--eng-edge);border-radius:var(--radius-3);padding:var(--space-4);min-width:0}.eng-card--raised{border-color:var(--eng-edge-strong);box-shadow:var(--eng-lift-rest)}.eng-card--selected{border-color:var(--eng-edge-hard);box-shadow:var(--eng-lift)}.eng-card--warning{border-color:var(--eng-warning);background:color-mix(in srgb,var(--eng-warning) 9%,var(--eng-paper))}.eng-card h2,.eng-card h3{margin:0 0 var(--space-2)}.eng-card p{color:var(--eng-ink-2);line-height:var(--t-small-lh)}
.eng-action{min-height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--eng-edge-hard);border-radius:var(--radius-3);padding:0 var(--space-4);background:transparent;color:var(--eng-ink);text-decoration:none;font-size:var(--t-small-size);font-weight:600;transition:filter var(--eng-dur-hover) var(--eng-ease),transform var(--eng-dur-hover) var(--eng-ease)}.eng-action:hover{filter:brightness(1.06);transform:translateY(-1px)}.eng-action--primary{background:var(--eng-ink);color:var(--eng-on-dark)}.eng-action--secondary{border-color:var(--eng-signal-deep);color:var(--eng-signal-deep)}.eng-action--quiet{border-color:transparent;text-decoration:underline;text-underline-offset:var(--space-1)}.eng-action--danger{border-color:var(--eng-danger);color:var(--eng-danger-text)}.eng-action:disabled,.eng-action--disabled{opacity:.42;cursor:not-allowed;transform:none}.eng-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}
.eng-badge{display:inline-flex;align-items:center;min-height:22px;border:1px solid var(--eng-edge-strong);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-2);font:600 9px var(--eng-mono);letter-spacing:.04em;text-transform:uppercase;background:var(--eng-paper)}.eng-badge--observed{border-color:color-mix(in srgb,var(--eng-signal-deep) 55%,transparent);color:var(--eng-signal-deep);background:var(--mint-50)}.eng-badge--analysed{border-color:color-mix(in srgb,var(--eng-info) 55%,transparent);color:color-mix(in srgb,var(--eng-info) 70%,var(--eng-ink));background:color-mix(in srgb,var(--eng-info) 9%,var(--eng-paper))}.eng-badge--predicted{border-style:dashed}.eng-badge--adjudicated{border-color:var(--eng-warning)}.eng-badge--held{color:var(--eng-held-text);background:var(--eng-quiet)}.eng-badge--blocked{border-color:var(--eng-danger);color:var(--eng-danger-text);background:color-mix(in srgb,var(--eng-danger) 8%,var(--eng-paper))}
.eng-state{padding:var(--space-4) 0;border-top:1px dashed var(--eng-edge-strong);border-bottom:1px dashed var(--eng-edge-strong)}.eng-state__key{display:block;font:500 10px var(--eng-mono);color:var(--eng-ink-3);text-transform:uppercase;margin-bottom:var(--space-1)}.eng-state strong{display:block;font-size:var(--t-h4-size)}.eng-state p{margin:var(--space-1) 0 0;color:var(--eng-ink-2);font-size:var(--t-small-size)}.eng-state--ready{border-top-style:solid;border-color:var(--eng-signal-deep)}.eng-state--loading{border-color:var(--eng-info)}.eng-state--empty{border-color:var(--eng-edge-strong)}.eng-state--failed,.eng-state--refused,.eng-state--unauthorised{border-color:var(--eng-danger)}.eng-state--unavailable{border-color:var(--eng-warning)}.eng-state--stale{border-color:var(--eng-ink-3)}
.eng-metric{min-height:116px;padding:var(--space-4);display:flex;flex-direction:column;justify-content:space-between}.eng-metric__value{font-size:var(--t-display-m-size);font-weight:var(--t-display-m-w);letter-spacing:var(--t-display-m-tr);line-height:var(--t-display-m-lh)}.eng-metric__label{font:500 10px var(--eng-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--eng-ink-3)}.eng-metric--zero .eng-metric__value{color:var(--eng-signal-deep)}
.eng-field{display:grid;gap:var(--space-2);min-width:160px}.eng-field label{font:500 10px var(--eng-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--eng-ink-2)}.eng-field input,.eng-field select,.eng-field textarea{min-width:0;width:100%;min-height:42px;border:0;border-bottom:1px solid var(--eng-edge-strong);border-radius:0;background:transparent;padding:var(--space-2) 0}.eng-field textarea{resize:vertical}.eng-field--invalid input{border-color:var(--eng-danger)}
.eng-filter{border:1px solid var(--eng-edge);border-radius:var(--radius-pill);background:var(--eng-paper);padding:var(--space-2) var(--space-3)}.eng-filter--active,.eng-filter--include{border-color:var(--eng-signal-deep)}.eng-filter--exclude{border-color:var(--eng-danger)}.eng-filter--clear{text-decoration:underline}
.eng-table-wrap{overflow:auto;border-top:1px solid var(--eng-edge-strong);background:var(--eng-paper)}.eng-table{width:100%;border-collapse:collapse;font-size:var(--t-caption-size)}.eng-table th,.eng-table td{padding:var(--space-3);text-align:left;border-bottom:1px solid var(--eng-edge);vertical-align:top}.eng-table th{font:500 9px var(--eng-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--eng-ink-3)}.eng-table--interactive tbody tr{cursor:pointer;transition:padding var(--eng-dur-state) var(--eng-ease)}.eng-table--interactive tbody tr:hover{background:var(--eng-quiet)}.eng-table--compact th,.eng-table--compact td{padding:var(--space-2)}.eng-table--roomy th,.eng-table--roomy td{padding:var(--space-5)}
.eng-trace{display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:var(--space-3);align-items:center;padding:var(--space-3) 0;border-bottom:1px solid var(--eng-edge)}.eng-trace>i{width:6px;height:6px;border-radius:var(--radius-pill);background:var(--eng-signal)}.eng-trace div{display:grid}.eng-trace small{font:10px var(--eng-mono);color:var(--eng-ink-3)}.eng-trace--error>i{background:var(--eng-danger)}.eng-trace--held>i{background:var(--eng-warning)}
.eng-thinking{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) 0}.eng-thinking__rail{width:var(--space-8);height:1px;background:var(--eng-edge-hard);transform-origin:left;animation:engRead var(--eng-dur-reveal) var(--eng-ease) both}.eng-thinking span{font-size:var(--t-small-size)}
.eng-stage{display:grid;grid-template-columns:var(--space-8) minmax(0,1fr) auto;gap:var(--space-3);align-items:center;padding:var(--space-3) 0;border-bottom:1px solid var(--eng-edge)}.eng-stage>span:not(.eng-badge){font:600 9px var(--eng-mono);color:var(--eng-signal-deep)}.eng-stage small{display:block;font:10px var(--eng-mono);color:var(--eng-ink-3)}
.eng-pane{min-height:240px;background:var(--eng-dark);color:var(--eng-on-dark);border-radius:var(--radius-3);padding:var(--space-4);overflow:auto}.eng-pane h3{color:var(--eng-signal);font:600 10px var(--eng-mono);letter-spacing:.1em;text-transform:uppercase}.eng-pane pre{white-space:pre-wrap;font:var(--t-caption-size)/1.55 var(--eng-mono)}.eng-pane--wire{border-top:3px solid var(--eng-info)}.eng-pane--record{border-top:3px solid var(--eng-warning)}.eng-pane--glass{border-top:3px solid var(--eng-signal)}
.eng-overlay{position:fixed;inset:0;z-index:30;background:color-mix(in srgb,var(--eng-dark) 64%,transparent);display:grid;place-items:center;padding:var(--space-5)}.eng-dialog{width:min(680px,100%);max-height:82vh;overflow:auto;background:var(--eng-paper);border-radius:var(--radius-4);padding:var(--space-6);box-shadow:var(--eng-stage-lift)}.eng-drawer{position:absolute;inset:0 0 0 auto;width:min(520px,94vw);background:var(--eng-paper);padding:var(--space-6);overflow:auto}
.eng-toast{position:fixed;right:var(--space-5);bottom:var(--space-5);z-index:50;width:min(420px,calc(100vw - var(--space-10)));padding:var(--space-4);background:var(--eng-paper);box-shadow:var(--eng-stage-lift)}
@keyframes engRead{from{transform:scaleX(.12);opacity:.35}to{transform:scaleX(1);opacity:1}}
@keyframes engMaterialize{from{opacity:0;transform:translateY(var(--space-3))}to{opacity:1;transform:none}}
.eng-materialize>*{animation:engMaterialize var(--eng-dur-stage) var(--eng-ease) both}.eng-materialize>*:nth-child(2){animation-delay:40ms}.eng-materialize>*:nth-child(3){animation-delay:80ms}.eng-materialize>*:nth-child(4){animation-delay:120ms}
@media(max-width:900px){.eng-shell{padding:0}.eng-app-frame{min-height:100dvh;border:0;border-radius:0;grid-template-columns:var(--eng-shell-rail) minmax(0,1fr)}.eng-span-3,.eng-span-4,.eng-span-5,.eng-span-6,.eng-span-7,.eng-span-8,.eng-span-9{grid-column:span 12}.eng-nav a span{display:none}.eng-agent--open{top:0}}
@media(max-width:560px){.eng-view{padding:var(--space-4)}.eng-workspace-header{padding:var(--space-3)}.eng-utility a{padding:0 var(--space-2)}.eng-grid{gap:var(--space-2)}.eng-dialog{padding:var(--space-4)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:0s!important;animation-iteration-count:1!important}.eng-materialize>*{opacity:1;transform:none}}
