/* The Lab is a permanent product surface, not a compiler theatre. White paper, one ink hierarchy,
   green only for action/success, and no structural status strips or glowing online indicators.
   g-2 is the one surface that is not white: it is a fill that has to read as recessed against the
   page, so it is a neutral grey rather than the warm tone the rest of this palette dropped. */
html[data-mode="light"]{
  --g-0:#F4F7FA;--g-1:#FFFFFF;--g-2:#F2F5F9;--line:#DEE7F0;--line-2:#C8D5E2;
  --ink:#132338;--ink-2:#3F5570;--ink-3:#77899E;--held:#5F9700;--broke:#B1473C;
  --hold:#9A681D;--focus:#406500;--sh-1:0 1px 2px rgba(25,39,50,.05),0 10px 28px rgba(25,39,50,.07);
  --sh-2:0 3px 8px rgba(25,39,50,.1),0 24px 58px rgba(25,39,50,.13);--sh-left:-10px 0 28px rgba(25,39,50,.045)
}
body{background:var(--g-0)}
.shell{grid-template-columns:minmax(0,1fr) var(--chatw,440px);gap:12px;padding:12px;height:100%;max-width:1920px;margin:0 auto}
.shell.chatshut{grid-template-columns:minmax(0,1fr)}
.floor{background:var(--g-1);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--sh-1)}
.ident{height:58px;padding:10px 18px;gap:9px}.ident .mk{height:30px}.brandword{font-size:14px;font-weight:650}.crumb{color:var(--line-2)}.ident .nm{font-size:14px;font-weight:500;color:var(--ink-2)}
.wallet{padding-right:4px}.runslot .gonote{max-width:320px;color:var(--ink-3);font-size:11.5px}.runslot .go{height:34px;border:1px solid #527E08;background:#6FAE00;color:#112006;padding:0 15px;font-size:12.5px;font-weight:600;border-radius:8px;box-shadow:0 2px 0 #4F760C}.runslot .go:hover{background:#7CBA0D}.runslot .go:disabled{background:#E4E6E0;border-color:#D0D5D0;color:#89938F;box-shadow:none}
.taps{height:43px;padding-left:8px;background:var(--g-2)}.tap{padding:0 10px;font-size:11.5px}.tap.on,.tap.on:hover{box-shadow:inset 0 -2px 0 var(--ink)}
.view{background:var(--g-1)}#head{padding:19px clamp(16px,2vw,28px) 0}.insts{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding-top:4px}.inst{border:1px solid var(--line);background:var(--g-2);box-shadow:none;border-radius:12px;padding:11px 12px;gap:10px}.inst .ic{width:78px;height:78px}.inum{font-size:25px}.iname{font-size:12.5px}
.lab-map{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-top:16px;background:var(--line);border:1px solid var(--line)}.map-card{min-width:0;padding:14px;background:var(--g-1)}.map-name{display:block;font:9.5px var(--mono);color:var(--ink-3)}.map-value{display:block;margin-top:8px;font-size:13.5px;line-height:1.35}.map-copy{margin:5px 0 0;color:var(--ink-3);font-size:11.5px;line-height:1.5}
.campaign{margin-top:14px;border:1px solid var(--line);background:var(--g-2)}.campaign-head{display:flex;justify-content:space-between;gap:12px;padding:10px 13px;border-bottom:1px solid var(--line);align-items:baseline}.campaign-head b{font-size:12.5px}.campaign-head span{font:9.5px var(--mono);color:var(--ink-3)}.campaign-lanes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px;padding:8px 13px}.campaign-lane{display:grid;grid-template-columns:minmax(125px,1fr) auto 20px;gap:10px;align-items:center;min-width:0;padding:6px 0;border-bottom:1px solid var(--line)}.campaign-lane:nth-last-child(-n+2){border-bottom:0}.campaign-lane b{font-size:11.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.campaign-cells{display:flex;gap:3px}.campaign-cells i{width:12px;height:4px;background:var(--line)}.campaign-cells i.on{background:var(--ink-3)}.campaign-count{text-align:right;font:9.5px var(--mono);color:var(--ink-3)}
.activity{margin-top:16px;border:1px solid var(--line);background:var(--g-2)}.activity-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:10px 13px;border-bottom:1px solid var(--line)}.activity-head b{font-size:12.5px}.activity-head span{font:9px var(--mono);color:var(--ink-3)}.activity-rows{display:grid}.activity-row{display:grid;grid-template-columns:44px minmax(140px,.7fr) minmax(0,1.3fr);gap:12px;padding:8px 12px;border-bottom:1px solid var(--line);align-items:baseline}.activity-row:last-child{border-bottom:0}.activity-time{font:9px var(--mono);color:var(--ink-3)}.activity-row b{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-detail{font-size:11.5px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-row.failed,.activity-row.broke{background:rgba(177,71,60,.055)}.activity-row.held,.activity-row.passed{background:rgba(95,151,0,.045)}
.band{margin-top:18px}.pane{border-top:0}.index,.detail{background:var(--g-1)}.row:hover,.row[aria-selected="true"]{background:var(--g-2)}.drawer{margin:0;border:0;border-top:1px solid var(--line);background:var(--g-2);box-shadow:none!important}.dhead{color:var(--ink-3)}.dhead:hover{color:var(--ink)}.dhead .prompt{color:var(--ink-2)}.dbody dt{color:var(--ink-3)}.dbody dd,.dbody dd.lock{color:var(--ink-2)}.dbody dd.many span{background:#DCE5EE}.dbody dd.lock::before{background:var(--held)}
.chat{margin:0;border:1px solid var(--line);border-radius:16px;background:var(--g-1);box-shadow:var(--sh-1);color:var(--ink)}.chead{height:58px;padding:8px 12px}.smark{width:40px;height:40px}.cname{font-size:14px}.grip{right:calc(var(--chatw,560px) + 12px)}
.grip:hover~.chat,.chat.sizing{box-shadow:var(--sh-1),inset 3px 0 0 var(--held)}

.log{padding:18px 16px}html[data-mode="light"] .tool{background:#EDF2F7;border-radius:10px}.tool[data-state="running"] .ticon{animation:none}.suggest{padding:3px 16px 10px}.sg{border-radius:8px}.composer{padding:3px 14px 14px}.box{isolation:isolate;background:var(--g-2);border:1px solid var(--line-2);box-shadow:none;border-radius:16px;padding:13px 14px 10px;overflow:visible}.box::after{content:'';position:absolute;left:-32%;bottom:-1px;width:30%;height:2px;background:linear-gradient(90deg,transparent,#8DCB20,transparent);opacity:0}.box:focus-within{box-shadow:none;border-color:#7D8B87}.box:focus-within::after{opacity:.75;animation:beam 3.8s linear infinite}@keyframes beam{to{transform:translateX(540%)}}.box textarea:disabled{cursor:wait}#mic.live::after{display:none}.tool[data-state="running"] .ticon{animation:none}.pend i{animation:none}.patch-review,.confirm{border-radius:12px}
.stagepick{position:relative;display:inline-flex}.stage-trigger{height:30px;display:flex;align-items:center;gap:7px;padding:0 9px;border:1px solid var(--line);border-radius:8px;background:var(--g-1);color:var(--ink-2);font-size:11.5px;font-weight:600;cursor:pointer}.stage-trigger:hover,.stage-trigger[aria-expanded="true"]{border-color:var(--line-2);color:var(--ink)}.stage-trigger:disabled{opacity:.5;cursor:wait}.stage-trigger svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.5}.stage-menu{position:absolute;left:0;bottom:38px;z-index:70;width:230px;padding:5px;border:1px solid var(--line-2);border-radius:12px;background:var(--g-1);box-shadow:var(--sh-2)}.stage-menu[hidden]{display:none}.stage-menu button{display:grid;width:100%;grid-template-columns:72px minmax(0,1fr);gap:8px;padding:9px;border:0;border-radius:8px;background:transparent;text-align:left;color:var(--ink-2);cursor:pointer}.stage-menu button:hover,.stage-menu button[aria-pressed="true"]{background:var(--g-2);color:var(--ink)}.stage-menu button:disabled{opacity:.38;cursor:not-allowed}.stage-menu b{font-size:11.5px}.stage-menu small{font-size:10.5px;color:var(--ink-3)}
.empty-page,.production-page,.profiles-page{max-width:900px;padding:36px 0}.empty-page h2,.production-page h2,.profiles-page h2{margin:0;font-size:28px;letter-spacing:-.035em}.empty-page>p,.production-lede,.profiles-lede{margin:10px 0 24px;max-width:68ch;color:var(--ink-2);font-size:14.5px}.release-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.release-flow>span{padding:16px;background:var(--g-2);font-size:13px}.production-connect,.production-copy{border:1px solid #527E08;background:#6FAE00;color:#112006;border-radius:8px;height:36px;padding:0 14px;font-weight:600;cursor:pointer}.production-connect:disabled,.production-copy:disabled{opacity:.55;cursor:wait}.production-result{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-top:12px;align-items:center}.production-result:empty{display:none}.production-result>b,.production-result>p{grid-column:1/-1}.production-result code{padding:12px;background:#DCE5EE;font:11px var(--mono);overflow:auto}.production-result p{margin:0;color:var(--ink-3);font-size:11.5px}.production-starter{grid-column:1/-1;max-height:260px;margin:2px 0 0;padding:14px;border:1px solid var(--line);background:var(--ink);color:#E7ECE8;overflow:auto;font:10.5px/1.55 var(--mono);white-space:pre}.production-starter+.production-secondary{grid-column:1/-1;justify-self:start}
.release-current{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:12px;align-items:center;margin-bottom:12px;padding:13px 15px;border:1px solid var(--line);background:var(--g-2)}.release-current span{font-size:11px;color:var(--ink-3)}.release-current code{font:11px var(--mono);color:var(--ink)}.release-current b{justify-self:end;font-size:11.5px;font-weight:500;color:var(--ink-2)}
.release-step{display:grid;grid-template-columns:24px minmax(0,1fr);gap:5px 8px;padding:15px;background:var(--g-2)}.release-step>span{grid-row:1/3;font:9.5px var(--mono);color:var(--ink-3)}.release-step b{font-size:12.5px}.release-step small{font-size:10.5px;line-height:1.4;color:var(--ink-3)}.release-boundary{margin:12px 0 0!important;padding:12px 14px;border:1px solid var(--line);max-width:none!important;font-size:11.5px!important;line-height:1.5;color:var(--ink-3)!important}
.run-empty{padding:32px 0 8px}.run-empty h2{margin:0;font-size:27px;letter-spacing:-.035em}.run-empty>p{max-width:68ch;margin:9px 0 22px;color:var(--ink-2);font-size:13.5px;line-height:1.55}.run-empty-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;border:1px solid var(--line);background:var(--line)}.run-empty-grid article{display:grid;gap:6px;padding:16px;background:var(--g-2)}.run-empty-grid b{font-size:12.5px}.run-empty-grid span{font-size:11px;line-height:1.5;color:var(--ink-3)}
.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px}.profile-card{min-width:0;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--g-2)}.profile-head{display:flex;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line);align-items:baseline}.profile-head b{font-size:14px}.profile-head span{font:9.5px var(--mono);color:var(--ink-3)}.profile-field{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}.profile-field span{font-size:10.5px;color:var(--ink-3)}.profile-field p{margin:0;color:var(--ink-2);font-size:11.5px;line-height:1.45}.profile-source{display:block;margin-top:11px;color:var(--ink-3);font:9.5px var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profiles-empty{padding:18px;border:1px solid var(--line);background:var(--g-2);color:var(--ink-2);font-size:12.5px}
.outcomes-page{max-width:1040px;padding:28px 0 48px}.outcomes-page h2{margin:0;font-size:27px;line-height:1.1;letter-spacing:-.035em}.outcomes-lede{max-width:78ch;margin:9px 0 24px;color:var(--ink-2);font-size:13px;line-height:1.55}.outcome-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.outcome-card{display:grid;min-height:226px;padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--g-2)}.outcome-top{display:grid;grid-template-columns:68px minmax(0,1fr);gap:14px;align-items:center}.outcome-art{display:flex;align-items:flex-end;justify-content:center;gap:4px;width:68px;height:56px;padding:8px;border:1px solid var(--line);background:var(--g-1)}.outcome-art i{display:block;width:6px;height:13px;background:#D6D9D3}.outcome-art i:nth-child(2){height:20px}.outcome-art i:nth-child(3){height:29px}.outcome-art i:nth-child(4){height:38px}.outcome-art i:nth-child(5){height:46px}.outcome-art i.on{background:var(--ink-3)}.outcome-heading{display:grid;gap:4px}.outcome-heading b{font-size:15px;line-height:1.25}.outcome-heading span{font:9.5px var(--mono);color:var(--ink-3)}.outcome-why{margin:16px 0;color:var(--ink-2);font-size:12.5px;line-height:1.5}.outcome-proof{display:flex;align-self:end;justify-content:space-between;gap:14px;padding-top:12px;border-top:1px solid var(--line);color:var(--ink-3);font-size:10.5px}.outcome-proof b{font:500 9.5px var(--mono);color:var(--ink-2)}.outcome-proof b.failed{color:var(--broke)}.outcome-segment{margin-top:8px;color:var(--ink-3);font:9.5px var(--mono)}.outcomes-boundary{display:grid;grid-template-columns:150px minmax(0,1fr);gap:20px;margin-top:12px;padding:15px 17px;border:1px solid var(--line);background:var(--g-2)}.outcomes-boundary b{font-size:12.5px}.outcomes-boundary p{margin:0;color:var(--ink-2);font-size:11.5px;line-height:1.5}
.production-notice{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;margin:18px 0;padding:20px;border:1px solid #B7C2B2;background:var(--g-2);border-radius:12px}.production-notice-copy b{display:block;font-size:14px}.production-notice-copy p{margin:6px 0 0;max-width:66ch;color:var(--ink-2);font-size:12.5px;line-height:1.55}.production-form{margin:18px 0;padding:20px;border:1px solid var(--line-2);border-radius:12px;background:var(--g-2)}.production-form-head b{font-size:15px}.production-form-head p{margin:6px 0 18px;color:var(--ink-2);font-size:12.5px;line-height:1.5}.production-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.production-field{display:grid;gap:6px}.production-field span{font-size:11.5px;color:var(--ink-2)}.production-field input{width:100%;height:38px;padding:0 11px;border:1px solid var(--line-2);border-radius:8px;background:var(--g-1);color:var(--ink);font:12px var(--mono)}.production-field input:focus{outline:2px solid rgba(82,126,8,.2);border-color:#527E08}.production-choice{display:grid;grid-template-columns:18px minmax(0,1fr);gap:3px 8px;margin-top:16px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--g-1)}.production-choice input{grid-row:1/3;margin-top:2px}.production-choice span{font-size:12px}.production-choice small{color:var(--ink-3);font-size:10.5px}.production-form-actions{display:flex;align-items:center;gap:9px;margin-top:16px}.production-cancel,.production-secondary{height:36px;padding:0 13px;border:1px solid var(--line-2);border-radius:8px;background:var(--g-1);color:var(--ink-2);font-weight:600;cursor:pointer}.production-form-status{margin-left:6px;color:var(--ink-3);font-size:11.5px}.production-direct{margin-top:14px;padding:18px;border:1px solid var(--line);border-radius:12px}.production-direct>b,.production-sources>b{display:block;font-size:13.5px}.production-direct>p{margin:6px 0 13px;max-width:68ch;color:var(--ink-2);font-size:12px;line-height:1.5}.production-sources{margin:16px 0;padding:16px;border:1px solid var(--line);border-radius:12px}.production-source-row{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:12px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line);align-items:baseline}.production-source-row span{text-transform:capitalize;font-size:11px;color:var(--ink-2)}.production-source-row b{font-size:12.5px}.production-source-row small{font:9.5px var(--mono);color:var(--ink-3)}
.production-intro{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:34px;align-items:center;margin-bottom:18px}.production-intro .production-lede{margin-bottom:0}.production-trace-art{margin:0;min-width:0}.production-trace-field{display:grid;grid-template-columns:repeat(12,1fr);gap:3px;padding:16px;border:1px solid var(--line);background:var(--g-2)}.production-trace-field i{display:block;aspect-ratio:1;background:var(--line)}.production-trace-field i.known{background:#789B3E}.production-trace-field i.unknown{background:repeating-linear-gradient(135deg,var(--line) 0 2px,transparent 2px 4px)}.production-trace-legend{display:grid;grid-template-columns:1fr auto 1fr;gap:9px;margin-top:8px;align-items:center;font:9px var(--mono);color:var(--ink-3)}.production-trace-legend span:last-child{text-align:right}.production-trace-legend b{font-size:13px;color:var(--ink)}
.production-coverage{margin-top:14px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.production-coverage-head{display:flex;justify-content:space-between;gap:16px;padding:13px 15px;background:var(--g-2);border-bottom:1px solid var(--line);align-items:baseline}.production-coverage-head b{font-size:13px}.production-coverage-head span{font:9.5px var(--mono);color:var(--ink-3)}.production-pattern{display:grid;grid-template-columns:minmax(150px,.9fr) minmax(180px,1.4fr) auto;gap:14px;padding:10px 14px;border-bottom:1px solid var(--line);align-items:baseline}.production-pattern:last-child{border-bottom:0}.production-pattern b{font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.production-pattern span{font-size:10.5px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.production-pattern i{font:9.5px var(--mono);font-style:normal}.production-pattern i.represented{color:#4B7506}.production-pattern i.missing{color:var(--hold)}.production-coverage-boundary{margin:0;padding:11px 14px;border-top:1px solid var(--line);color:var(--ink-3);font-size:10.5px}.production-coverage>.production-secondary{margin:0 14px 14px}
.production-loading{margin:-10px 0 16px;color:var(--ink-3);font:10px var(--mono)}.production-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:18px 0;background:var(--line);border:1px solid var(--line)}.production-stat{display:grid;gap:3px;padding:15px;background:var(--g-2)}.production-stat b{font-size:20px;letter-spacing:-.025em}.production-stat span{font-size:12.5px}.production-stat small{color:var(--ink-3);font-size:10.5px}.production-observed{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.production-distribution{min-width:0;padding:15px;border:1px solid var(--line);background:var(--g-2)}.production-distribution>b{display:block;margin-bottom:11px;font-size:12.5px}.production-distribution>p{margin:0;color:var(--ink-3);font-size:11.5px}.production-dist-row{display:grid;grid-template-columns:minmax(70px,.8fr) minmax(50px,1fr) 28px;gap:8px;align-items:center;margin-top:8px}.production-dist-row span{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.production-dist-row i{height:4px;background:linear-gradient(90deg,var(--ink-3) var(--share),var(--line) var(--share));display:block}.production-dist-row small{font:9px var(--mono);color:var(--ink-3);text-align:right}.production-signal{padding:8px 0;border-bottom:1px solid var(--line);color:var(--ink-2);font-size:11.5px}.production-signal:last-child{border-bottom:0}.production-boundary{display:grid;grid-template-columns:140px minmax(0,1fr);gap:18px;margin-top:12px;padding:15px;border:1px solid var(--line)}.production-boundary>b{font-size:12.5px}.production-boundary p{margin:0;color:var(--ink-2);font-size:12px;line-height:1.55}
@media(max-width:1250px){.lab-map{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1000px){.shell{grid-template-columns:minmax(0,1fr) minmax(360px,var(--chatw,440px))}.runslot .gonote{display:none}.production-stats{grid-template-columns:repeat(2,1fr)}.production-observed{grid-template-columns:1fr}}
@container (max-width:620px){.insts{grid-template-columns:1fr}.inst .ic{width:92px;height:92px}}
@media(max-width:820px){.shell,.shell.chatshut{grid-template-columns:1fr;padding:8px}.chat{display:grid;position:fixed;inset:8px;z-index:55}.shell.chatshut .chat{display:none}.grip{display:none}.strip,.shell.chatshut .strip{display:flex}.floor{border-radius:12px}.lab-map{grid-template-columns:1fr 1fr}.release-flow{grid-template-columns:1fr 1fr}.ibtn{width:44px;height:44px}.stage-trigger{min-height:44px}.stage-menu button{min-height:44px}}
@media(max-width:560px){.ident{padding:9px 12px}.brandword,.crumb,.wallet{display:none}.taps{padding-left:4px}.tap{padding:0 10px}.lab-map,.profile-grid{grid-template-columns:1fr}.profile-field{grid-template-columns:1fr;gap:3px}.activity-row{grid-template-columns:36px minmax(0,1fr)}.activity-detail{grid-column:2}.production-result{grid-template-columns:1fr}.production-stats{grid-template-columns:1fr 1fr}.production-boundary{grid-template-columns:1fr}.production-notice,.production-source-row,.production-pattern{grid-template-columns:1fr}.production-coverage-head{display:grid}.production-fields{grid-template-columns:1fr}.production-form-actions{flex-wrap:wrap}.production-form-status{width:100%;margin:4px 0 0}.release-flow{grid-template-columns:1fr}.insts{grid-template-columns:1fr}.inst{padding:10px}.inst .ic{width:90px;height:90px}}
@container (max-width:620px){.campaign-lanes{grid-template-columns:1fr}.campaign-lane:nth-last-child(2){border-bottom:1px solid var(--line)}}
@media(prefers-reduced-motion:reduce){.box:focus-within::after{animation:none;left:35%}}

/* Repository identity stays quiet but present. A result without a repo and revision is a demo, not
   evidence an engineer can trust. */
.revision{margin-left:3px;padding-left:10px;border-left:1px solid var(--line);font:9.5px var(--mono);color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}

/* Fidelity is a measured boundary, not an online lamp. Four static cells make the idea tangible
   without a glow, pulse, or coloured status strip. */
.fidelity-mark{display:grid;grid-template-columns:repeat(2,5px);gap:2px;width:12px;height:12px}
.fidelity-mark span{display:block;background:var(--line-2)}
.fidelity-mark span:nth-child(2),.fidelity-mark span:nth-child(3){background:var(--ink-3)}
.fidelity-title{white-space:nowrap}
.fidelity-score{margin-left:2px;font:500 10.5px var(--mono);color:var(--ink);white-space:nowrap}
.fidelity-gaps{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1px;border:1px solid var(--line);background:var(--line)}
.fidelity-gaps-title{grid-column:1/-1;padding:9px 11px;background:var(--g-2);font:500 10px var(--mono);color:var(--ink-3)}
.fidelity-gap{padding:11px;background:var(--g-1)}
.fidelity-gap b{display:block;font-size:11.5px}
.fidelity-gap p{margin:4px 0 0;font-size:10.5px;line-height:1.45;color:var(--ink-3)}

/* Coverage answers a narrow, auditable question: how much of the boundary we actually mapped has
   executable evidence. The empty cells are deliberately as visible as the filled ones. */
.coverage-page{max-width:1040px;padding:28px 0 48px}
.coverage-intro{display:grid;grid-template-columns:150px minmax(0,1fr);gap:28px;align-items:center;padding-bottom:24px;border-bottom:1px solid var(--line)}
.coverage-score{font:500 54px/1 var(--mono);letter-spacing:-.07em;color:var(--ink)}
.coverage-score::after{content:' mapped';display:block;margin-top:8px;font:500 9.5px/1 var(--mono);letter-spacing:.04em;color:var(--ink-3)}
.coverage-copy h2{margin:0;font-size:26px;line-height:1.12;letter-spacing:-.035em}
.coverage-copy p{margin:8px 0 0;max-width:70ch;color:var(--ink-2);font-size:13px;line-height:1.55}
.coverage-lattice{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;margin-top:18px;border:1px solid var(--line);background:var(--line)}
.coverage-card{display:grid;gap:8px;padding:14px;background:var(--g-2);min-width:0}
.coverage-card b{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.coverage-fraction{font:9.5px var(--mono);color:var(--ink-3)}
.coverage-rail{position:relative;display:block;height:5px;background:var(--line);overflow:hidden}
.coverage-rail::after{content:'';position:absolute;inset:0 auto 0 0;width:var(--coverage);background:var(--ink-3)}
.coverage-split{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(320px,1.1fr);gap:12px;margin-top:12px}
.coverage-risks,.coverage-gaps{border:1px solid var(--line);background:var(--g-2)}
.coverage-section-head{padding:11px 13px;border-bottom:1px solid var(--line);font-size:12.5px;font-weight:600}
.coverage-risk{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:9px 13px;border-bottom:1px solid var(--line);align-items:baseline}
.coverage-risk:last-child{border-bottom:0}.coverage-risk span{font-size:11.5px;color:var(--ink-2)}.coverage-risk b{font:500 9.5px var(--mono);color:var(--ink-3)}
.coverage-risk.missing span,.coverage-risk.missing b{color:var(--hold)}
.coverage-gaps{padding-bottom:13px}.coverage-gaps p{margin:0;padding:9px 13px;border-bottom:1px solid var(--line);font-size:11.5px;line-height:1.45;color:var(--ink-2)}
.coverage-gaps .production-secondary{margin:13px 13px 0}

/* Multiple Sandy conversations belong to this exact world. The list is small, local to the tab,
   and never becomes a second navigation system. */
/* One spacer, not four. Every control carrying `margin-left:auto` made flexbox split the free
   space between them, which stranded the conversation search halfway across the header. */
.chat-history-wrap{position:relative}
.chat-history{position:absolute;right:0;top:36px;z-index:90;width:min(330px,80vw);padding:5px;border:1px solid var(--line-2);border-radius:11px;background:var(--g-1);box-shadow:var(--sh-2);max-height:min(60vh,420px);overflow-y:auto;scrollbar-width:thin}
.chat-find{display:block;width:100%;margin:1px 0 5px;padding:8px 10px;border:1px solid var(--line-2);border-radius:7px;background:var(--g-2);color:var(--ink);font:inherit;font-size:11.5px}
.chat-find:focus{outline:none;border-color:var(--held)}
.chat-find::-webkit-search-cancel-button{cursor:pointer}
.chat-hits{display:block}
.chat-hit{display:block;padding:0 10px 7px;color:var(--ink-3);font-size:10.5px;line-height:1.4;
          white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-history[hidden]{display:none}.chat-history button{display:block;width:100%;padding:9px 10px;border:0;border-radius:7px;background:transparent;color:var(--ink-2);font-size:11.5px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.chat-history button:hover,.chat-history button.active{background:var(--g-2);color:var(--ink)}
.chat-history button.active::before{content:'·';margin-right:7px;color:var(--held)}.chat-history-empty{display:block;padding:10px;color:var(--ink-3);font-size:11px}

@media(max-width:1100px){.coverage-lattice{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.coverage-intro{grid-template-columns:1fr;gap:12px}.coverage-score{font-size:42px}.coverage-lattice{grid-template-columns:1fr 1fr}.coverage-split{grid-template-columns:1fr}.revision{display:none}.run-empty-grid,.outcome-grid{grid-template-columns:1fr}.release-current{grid-template-columns:auto 1fr}.release-current b{grid-column:1/-1;justify-self:start}.outcomes-boundary{grid-template-columns:1fr;gap:7px}.production-intro{grid-template-columns:1fr;gap:14px}.production-trace-art{max-width:320px}}
@media(max-width:460px){.coverage-lattice{grid-template-columns:1fr}}

.brow{padding-right:78px;flex-wrap:nowrap}
.sendstack{bottom:10px}
.ident .hright{margin-left:auto}

.stagepick{max-width:calc(100% - 82px)}


/* The corner name is the switch between the two places the same trials run in. Field is listed and
   not yet built; it says so when it is asked for. The word is the trigger; the flask beside it is
   the mark. */
.place-wrap{position:relative;display:inline-flex}
button.brand{display:inline;padding:0;margin:0;border:0;background:none;color:var(--ink-2);font:inherit;font-weight:650;cursor:pointer}
button.brand:hover,button.brand[aria-expanded="true"]{color:var(--ink)}
.place-menu{position:absolute;left:0;top:28px;z-index:90;width:250px;padding:4px;border:1px solid var(--line-2);border-radius:8px;background:var(--g-1)}
.place-menu[hidden]{display:none}
.place-menu button{display:grid;gap:1px;width:100%;padding:7px 8px;border:0;border-radius:6px;background:transparent;text-align:left;cursor:pointer;color:var(--ink-3)}
.place-menu button b{font-size:12.5px;font-weight:600;color:var(--ink-2)}
.place-menu button i{font-style:normal;font-size:11px;color:var(--ink-3)}
.place-menu button:hover{background:var(--g-2)}
.place-menu button.on b{color:var(--held)}
.place-menu .soon{display:block;padding:2px 8px 6px;color:var(--ink-3);font-size:11px}
.ident{position:relative;z-index:100}
.ident .nm{overflow:visible}
