/* Reading-first workspace: content determines height, and panels can shrink. */
:root,:root[data-theme="dark"]{--ink:#f2f1eb;--ink-2:#beb9b2;--rule:#464340}
:root[data-theme="light"]{--ink:#1e1e1c;--ink-2:#56534e;--rule:#c5c2bb}

@media screen{
body{font-size:16px;line-height:1.65}
.wrap,.wrap>*,.board,.col,.col>*,.exhibit>*,.brief>*,.fig,.fig>*{min-width:0;max-width:100%}
.nav-controls button,.nav-controls a{font-size:14px;min-height:42px}
.mission p{font-size:14px;max-width:70ch}
.mission .eyebrow,.case-badge,.command-brand small,.mission-status{font-size:11px}
.mission .eyebrow{flex-wrap:wrap}
.timeline-day{opacity:1}
.timeline-day b{font-size:14px}
.timeline-day small,.timeline-day div>span{font-size:11px}
.command-metrics>div>span,.command-metrics p{font-size:12px;letter-spacing:.04em}
.command-metrics small{font-size:13px}
.experience-tabs{flex-wrap:wrap}
.experience-tabs>div{min-width:0;flex-wrap:wrap}
.experience-tabs button{font-size:15px;white-space:normal;min-height:48px}
.experience-tabs button>span,.experience-tabs em,.case-stamp{font-size:11px}
.experience-tabs button>span{opacity:1}
.experience-tabs .case-stamp{font-size:11px}
.eyebrow{font-size:12px;letter-spacing:.06em}

/* Investigation headings and supporting information must wrap at any zoom. */
.workspace-heading{flex-wrap:wrap;align-items:center;gap:10px 24px}
.workspace-heading>div{min-width:0}
.workspace-heading .eyebrow{font-size:12px}
.workspace-heading h2{font-size:30px;line-height:1.3;overflow-wrap:anywhere}
.save-status{font-size:12px;line-height:1.6;max-width:none;text-align:left;padding:0}
.claims{gap:16px}
.claims dt{font-size:12px;line-height:1.5;letter-spacing:.02em}
.claims dd{font-size:16px;line-height:1.5;overflow-wrap:anywhere}
.claims div:last-child{display:block}
.architecture summary{gap:16px;flex-wrap:wrap}
.architecture summary b{font-size:15px}
.architecture summary small,.architecture-hint,.maphint,.mlegend{font-size:12px}
.colhead{flex-wrap:wrap;gap:8px 14px;align-items:center;padding-bottom:14px}
.colhead h2{font-size:20px;line-height:1.35;font-weight:550}
.colhead h2 span,.colhead .eyebrow{font-size:12px;white-space:normal}

/* Natural list height replaces the small, nested scrolling window. */
.test-scroll{height:auto;max-height:none;overflow:visible;padding:0;gap:14px;grid-template-columns:minmax(0,1fr)}
.test{grid-template-columns:minmax(0,1fr);gap:10px;padding:20px;overflow:visible}
.test>*{min-width:0;max-width:100%;overflow-wrap:anywhere}
.test .tag{grid-column:1;font-size:12px;line-height:1.6;letter-spacing:.03em}
.test h3{grid-column:1;font-size:18px;font-weight:550;line-height:1.4}
.test p{grid-column:1;font-size:15px;line-height:1.65}
.test .act{grid-column:1;grid-row:auto;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-width:0;border-top:1px solid var(--rule);padding-top:14px;margin-top:2px}
.test .hrs{font-size:25px;white-space:nowrap}
.hrs small{font-size:13px}
.test .btn{font-size:14px;min-height:42px;padding:9px 18px}
.test .linkbtn{font-size:13px;line-height:1.5;max-width:none;padding-block:8px}
.test .stamp{font-size:12px;white-space:normal}
.plan-filter{overflow:visible;flex-wrap:wrap;gap:2px;padding:4px}
.plan-filter button{font-size:13px;min-height:42px;flex:1 1 80px;padding:8px}
.evidence-nav{max-height:none;overflow:visible;gap:8px}
.evidence-nav button{font-size:13px;line-height:1.5;min-height:42px;max-width:100%;overflow-wrap:anywhere;padding:9px 12px}
.evidence-nav button span{font-size:12px}

/* Three columns only when they can support comfortable reading widths. */
.board{display:grid;grid-template-columns:320px minmax(0,1fr);gap:28px;align-items:start}
.board>.plan-col{grid-column:1;grid-row:1/3}
.board>.col.exhibits{grid-column:2;grid-row:1;order:0}
.board>.findings-col{grid-column:2;grid-row:2;grid-template-columns:repeat(2,minmax(0,1fr))}
.findings-col>.colhead,.findings-col>.sevkey,.findings-col>.empty{grid-column:1/-1}
.exhibit{overflow:visible;padding:26px;gap:22px}
.exhibit.fresh:after{display:none}
.exhibit .meta .eyebrow{font-size:12px;line-height:1.6}
.evidence-titlebar{grid-template-columns:36px minmax(0,1fr)}
.evidence-titlebar h3{font-size:28px;line-height:1.25;overflow-wrap:anywhere}
.evidence-titlebar>div>span,.evidence-titlebar .evidence-state{font-size:12px;letter-spacing:.04em;line-height:1.6}
.evidence-titlebar .evidence-state{grid-column:1/-1;max-width:none}
.evidence-context{flex-wrap:wrap;gap:8px 16px}
.evidence-context>span{font-size:11px;white-space:normal}
.evidence-context b{font-size:12px;line-height:1.5}
.evidence-context>div{min-width:0;flex-wrap:wrap}
.exhibit .readout .lbl,.brief .demo .lbl{font-size:12px;line-height:1.6;max-width:220px}
.exhibit .zone,.brief .demo .zone{font-size:12px;padding:5px 8px}
.strip .cap,.fig figcaption,.legend{font-size:13px;line-height:1.65}
.exhibit .narr,.followup p{font-size:16px;line-height:1.8;max-width:72ch}
.followup p:before{font-size:12px}
.evidence-chart-stage{min-width:0;max-width:100%;padding:20px 14px;overflow:hidden}
.figbox{min-width:0;max-width:100%;overflow-x:auto;margin:0;padding:4px;scrollbar-width:auto}
.chart{min-width:520px;width:100%;max-width:none}
.chart .ax,.chart .ax.tx{font-size:12px}
.ex-actions .btn,.linkbtn{font-size:14px}
.ex-state{font-size:12px;line-height:1.6}
.quotes li{font-size:23px;line-height:1.7}
.brief{overflow:visible}
.brief-art{max-width:none}
.brief-art span{font-size:11px}
.brief p,.brief ol{font-size:16px;line-height:1.8}
.brief>.eyebrow,.brief .demo .eyebrow{font-size:12px;line-height:1.6}
.brief h3{font-size:32px;line-height:1.25}
.finding{min-width:0;padding:20px;gap:14px}
.finding .ref,.finding .hook{font-size:13px;line-height:1.7;overflow-wrap:anywhere}
.finding h3{font-size:18px;line-height:1.4}
.finding[data-sev="X"]{opacity:1;border-style:dashed}
.seg{grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}
.seg span{font-size:13px;padding:10px 4px;min-height:42px;overflow-wrap:anywhere}
:root[data-theme="light"] .seg input:is([value="H"],[value="M"],[value="L"]):checked+span{color:#fff}
.sevkey,.empty{font-size:15px;line-height:1.75}
.tile{font-size:14px;min-width:0;flex-wrap:wrap}
.tiles{grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr))}
.actionbar{position:static;gap:18px 24px;background:var(--sheet);border-radius:4px}
.actionbar p,.opinion label{font-size:15px;line-height:1.65}
.actionbar .btn{white-space:normal}
.btn{font-size:14px;min-height:42px}
.btn.big{font-size:15px}
.btn:disabled{opacity:1}
.workspace-foot{font-size:11px}

/* The same reading scale continues in guidance, the observatory and report. */
.guidance{grid-template-columns:32px minmax(0,1fr) auto}
.guidance>div>span{font-size:11px;line-height:1.6;letter-spacing:.05em}
.guidance h3{font-size:23px;line-height:1.35}
.guidance p{font-size:15px;line-height:1.75}
.guidance .btn{font-size:14px;max-width:290px}
.review-receipt{font-size:14px;line-height:1.7}
.review-receipt>i{flex-shrink:0}
.observatory-heading .eyebrow,.inspector-top .eyebrow,.status-pill,.component-inspector>.eyebrow{font-size:11px}
.observatory-heading>p,.component-inspector>p{font-size:15px;line-height:1.75}
.component-inspector>.inspector-foot{font-size:12px;opacity:1;line-height:1.65}
.inspector-fact>span,.inspector-fact small{font-size:12px;line-height:1.6}
.component-inspector .inspector-launch{font-size:14px}
.observatory-readouts>div>span,.observatory-readouts small,.observatory-bottom p{font-size:11px;line-height:1.6;letter-spacing:.03em}
.observatory-readouts p{font-size:13px}
.observatory-note p{font-size:17px}
.journal-heading p,.journal-copy p,.journal-empty p,.review-profile p,.debrief-copy>p{font-size:15px;line-height:1.75}
.journal-copy>.eyebrow,.journal-time>span,.journal-time>small{font-size:11px}
.debrief-copy>.eyebrow,.opinion-seal>span,.debrief-stats span,.review-profile .eyebrow{font-size:11px;line-height:1.6;letter-spacing:.04em}
.debrief-stats small,.profile-scores small{font-size:12px}
.profile-scores span{font-size:14px}
.report-tabs button{font-size:14px}
.report .tablewrap table{font-size:14px}
.report .tablewrap th,.report .tablewrap td .why,.real,.chip{font-size:12px;line-height:1.7}
.report .later>div,.rbrow{font-size:15px;line-height:1.8}
.memo p,.memo .choices b,dialog>p,.guide-list b{font-size:16px;line-height:1.7}
.memo dl,.memo .choices small,.guide-list p{font-size:14px;line-height:1.7}
.guide-note{font-size:13px!important}
.event-scene span{font-size:11px}
.event-scene{height:auto;min-height:190px}
.storage-notice,#toast{font-size:14px}
}

@media screen and (min-width:1600px){
.board{grid-template-columns:320px minmax(0,1fr) 310px}
.board>.plan-col,.board>.col.exhibits,.board>.findings-col{grid-column:auto;grid-row:auto;grid-template-columns:minmax(0,1fr)}
}
@media screen and (max-width:1100px){
.workspace-tabs{display:flex;gap:4px;margin-bottom:20px;background:var(--sheet);border:1px solid var(--rule);border-radius:4px;padding:4px}
.workspace-tabs button{flex:1;min-width:0;min-height:48px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;background:transparent;border:0;padding:10px;font-size:14px;color:var(--ink-2);border-radius:2px}
.workspace-tabs button span{font:12px var(--f-mono);color:var(--navy)}
.workspace-tabs button[aria-pressed=true]{background:var(--paper);color:var(--ink);box-shadow:0 2px 5px var(--shade)}
.board{display:block}
.board>.col{display:none;grid-column:auto;grid-row:auto}
.board[data-active="plan"]>.plan-col,.board[data-active="evidence"]>.exhibits,.board[data-active="findings"]>.findings-col{display:grid}
.test-scroll{grid-template-columns:repeat(2,minmax(0,1fr))}
.guidance{grid-template-columns:28px minmax(0,1fr);gap:14px}
.guidance .btn{grid-column:2;justify-self:start;max-width:100%}
.claims{grid-template-columns:repeat(3,minmax(0,1fr))}
.claims div{border:0;padding:0}
.instrument-header,.instrument-footer{flex-wrap:wrap}
.command-nav{flex-wrap:wrap;padding-block:12px}
.nav-controls{flex-wrap:wrap}
}
@media screen and (max-width:720px){
.test-scroll,.board>.findings-col{grid-template-columns:minmax(0,1fr)}
.workspace-heading h2{font-size:28px}
.workspace-heading .save-status{flex-basis:100%}
.claims{grid-template-columns:repeat(2,minmax(0,1fr))}
.experience-tabs>div{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.experience-tabs button{font-size:13px;gap:6px;padding:12px 8px;flex-wrap:wrap;line-height:1.5}
.report-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
.report-tabs button{font-size:14px;flex-direction:row;align-items:center;gap:8px}
.exhibit,.finding,.test{padding:20px}
.evidence-titlebar h3{font-size:25px}
.evidence-chart-stage{margin:0;padding:14px 8px}
.guidance .btn{width:auto}
.brief h3{font-size:29px}
.observatory-readouts{grid-template-columns:1fr}
.observatory-readouts>div{border-left:0;border-top:1px solid var(--rule);padding:16px 20px}
.observatory-readouts>div:first-child{border-top:0}
.component-inspector{display:flex;gap:14px;padding:22px}
.component-inspector .inspector-fact{min-width:0;width:100%;margin:5px 0 0;border-block:1px solid var(--rule);padding:14px 0}
.component-inspector .inspector-launch,.component-inspector>.inspector-foot{max-width:none;width:100%;margin:0}
.review-profile{grid-template-columns:minmax(0,1fr)}
.judgment-radar{max-width:280px;margin:auto}
.profile-scores{grid-template-columns:minmax(0,1fr)}
.debrief-hero{display:block}
.score-medallion{margin:25px auto 0}
.journal-entry{grid-template-columns:66px minmax(0,1fr)}
}
@media screen and (max-width:400px){
.workspace-tabs button{font-size:13px;padding:9px 5px}
.test,.exhibit,.finding{padding:16px}
.mission h1{font-size:28px}
.command-brand{font-size:20px}
.nav-controls{margin-left:0;width:100%;justify-content:space-between}
.nav-controls button,.nav-controls a{padding:8px;font-size:13px}
.nav-controls [data-new],.nav-controls [data-help]{font-size:13px}
.nav-controls [data-new]:after,.nav-controls [data-help]:after{content:none}
}
