/* 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{height:100dvh;min-height:0;background:var(--eng-paper);padding:0;overflow:hidden}
.eng-app-frame{height:100dvh;min-height:0;background:var(--eng-paper);border:0;border-radius:0;box-shadow:none;overflow:hidden;display:grid;grid-template-columns:var(--eng-shell-rail) var(--eng-shell-work);position:relative}.eng-app-frame--immersive{grid-template-columns:minmax(0,1fr)}
.eng-rail{background:var(--eng-dark);display:flex;flex-direction:column;align-items:center;padding:10px 0;color:var(--eng-on-dark);position:relative;z-index:30;width:var(--eng-shell-rail);box-sizing:border-box}
.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;cursor:pointer}.eng-mark img{width:100%;height:100%;display:block;pointer-events:none}
.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);cursor:pointer;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;pointer-events:none;cursor:inherit}.eng-nav a svg *{pointer-events:none;cursor:inherit}.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;cursor:inherit;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:var(--t-micro-size)}
.eng-workspace{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;container-type:inline-size;container-name:workspace}.eng-workspace-header{min-height:72px;display:flex;align-items:center;padding:12px var(--eng-gutter);gap:var(--space-4);border-bottom:1px solid var(--eng-edge)}.eng-identity{display:flex;flex-direction:column;gap:4px;min-width:0}.eng-identity small{font-family:var(--eng-mono);font-size:var(--t-micro-size);color:var(--eng-ink-3);text-transform:uppercase;letter-spacing:.06em}.eng-identity strong,.eng-identity h1{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-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:var(--t-micro-size)}.eng-utility a+a{border-left:1px solid var(--eng-edge)}.eng-view{padding:var(--eng-gutter);overflow:auto;flex:1;min-height:0}.eng-view:focus-visible{box-shadow:none}.eng-view--bare{padding:0}.eng-view--resolver{overflow:hidden;display:flex;flex-direction:column}.eng-kicker{font-family:var(--eng-mono);font-size:var(--t-micro-size);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:var(--t-caption-size);font-weight:600}.eng-agent-period{color:var(--eng-warning)}.eng-agent-state{font:600 var(--t-micro-size) 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:var(--eng-agent-lift);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 var(--t-micro-size) 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:var(--t-label-size)}.eng-agent-body dt{font:500 var(--t-micro-size) 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 var(--t-micro-size) 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:var(--t-caption-size)/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:var(--t-micro-size) 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:var(--t-label-size)}.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(--eng-grid-gap)}.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(--eng-card-pad);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-action-edge,var(--eng-edge-hard));border-radius:var(--radius-3);padding:0 var(--space-4);background:var(--eng-action-ground,transparent);color:var(--eng-action-ink,var(--eng-ink));text-decoration:none;font-size:var(--eng-action-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-action-primary-ground,var(--eng-ink));color:var(--eng-action-primary-ink,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:baseline;min-height:0;border:0;border-bottom:1px solid transparent;border-radius:0;padding:0 0 2px;font:600 var(--t-micro-size) var(--eng-mono);letter-spacing:.06em;text-transform:uppercase;background:transparent}.eng-badge--observed{border-bottom-color:var(--eng-signal-deep);color:var(--eng-signal-deep)}.eng-badge--analysed{border-bottom-color:color-mix(in srgb,var(--eng-info) 55%,transparent);color:color-mix(in srgb,var(--eng-info) 70%,var(--eng-ink))}.eng-badge--predicted{border-bottom-style:dashed}.eng-badge--adjudicated{border-bottom-color:var(--eng-warning)}.eng-badge--held{color:var(--eng-held-text)}.eng-badge--blocked{border-bottom-color:var(--eng-danger);color:var(--eng-danger-text)}
.eng-state{padding:var(--space-4) 0;border-top:1px dashed var(--eng-state-edge,var(--eng-edge-strong));border-bottom:1px dashed var(--eng-state-edge,var(--eng-edge-strong));color:var(--eng-state-ink,inherit)}.eng-state__key{display:block;font:500 var(--t-label-size) 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 var(--t-label-size) 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-metric--warning .eng-metric__value{color:var(--eng-warning)}
.eng-field{display:grid;gap:var(--space-2);min-width:160px}.eng-field label{font:500 var(--t-label-size) var(--eng-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--eng-ink-2)}.eng-field input,.eng-field select,.eng-field textarea{font-size:var(--eng-field-size,var(--t-small-size));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 var(--t-micro-size) 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:var(--t-label-size) 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 var(--t-micro-size) var(--eng-mono);color:var(--eng-signal-deep)}.eng-stage small{display:block;font:var(--t-label-size) 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 var(--t-label-size) 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:var(--eng-stagger-1)}.eng-materialize>*:nth-child(3){animation-delay:var(--eng-stagger-2)}.eng-materialize>*:nth-child(4){animation-delay:var(--eng-stagger-3)}
@media(max-width:900px){.eng-shell{padding:0}.eng-app-frame{height:100dvh;min-height:0;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-integration-grid{grid-template-columns:1fr}.eng-nav a span{display:none}.eng-agent--open{top:0}}
@media(max-width:560px){.eng-workspace-header,.eng-view{--eng-gutter: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-system-bar{align-items:flex-start;flex-direction:column;gap:var(--space-2);padding:var(--space-3) 0}.eng-system-bar time{margin-left:0}.eng-seam-read{grid-template-columns:1fr}.eng-seam-read>div+div{border-left:0;border-top:1px solid var(--eng-edge);padding-left:0}.eng-dialog{padding:var(--space-4)}}
@container workspace (min-width:1240px){.eng-workspace-header,.eng-view{--eng-gutter:var(--space-8);--eng-grid-gap:var(--space-4);--eng-card-pad:var(--space-5)}}
@container workspace (min-width:1500px){.eng-workspace-header,.eng-view{--eng-gutter:var(--space-10);--eng-grid-gap:var(--space-5);--t-nano-size:var(--t-nano-size-wide);--t-micro-size:var(--t-micro-size-wide)}}
@media(hover:hover) and (min-width:901px){.eng-rail{overflow:hidden;transition:width var(--eng-dur-state) var(--eng-ease),box-shadow var(--eng-dur-state) var(--eng-ease)}.eng-nav a span{transition:none}.eng-rail:hover,.eng-rail:focus-within{width:var(--eng-shell-rail-open);align-items:flex-start;padding-inline:10px;box-shadow:var(--eng-drawer-lift)}.eng-rail:hover .eng-mark,.eng-rail:focus-within .eng-mark{margin-left:2px}.eng-rail:hover .eng-nav,.eng-rail:focus-within .eng-nav{width:100%}.eng-rail:hover .eng-nav a,.eng-rail:focus-within .eng-nav a{width:100%;grid-template-columns:36px minmax(0,1fr);justify-items:start;align-items:center}.eng-rail:hover .eng-nav a svg,.eng-rail:focus-within .eng-nav a svg{justify-self:center}.eng-rail:hover .eng-nav a span,.eng-rail:focus-within .eng-nav a span{position:static;opacity:1;transform:none;padding:0 var(--space-2) 0 0;border:0;background:transparent;color:inherit;overflow:hidden;text-overflow:ellipsis}.eng-rail:hover .eng-nav-sep,.eng-rail:focus-within .eng-nav-sep{width:auto;margin:var(--space-2) 6px}.eng-rail:hover .eng-railfoot,.eng-rail:focus-within .eng-railfoot{align-items:flex-start;margin-left:4.5px}}
@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}}

.eng-view--compact{padding-top:0}
