*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:#091b25;color:#e8f0ee;font:16px/1.45 "Segoe UI",Arial,sans-serif}h1,h2,h3,p{margin:0}h2{font-size:1rem}button,select{font:inherit;color:inherit;background:#183440;border:1px solid #45616a;border-radius:8px;min-height:44px;padding:8px 12px}button{cursor:pointer}button:hover:not(:disabled){background:#2c4e57}button:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible,summary:focus-visible,select:focus-visible{outline:3px solid #ffd292;outline-offset:3px}a{color:#b2e4dc;text-underline-offset:4px}.top{max-width:1280px;margin:auto;min-height:52px;padding:5px 24px;display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid #2e4853}.brand{display:flex;gap:8px;align-items:center;text-decoration:none;font-weight:750;letter-spacing:.5px;color:#eef7f5}.top nav{display:flex;align-items:center;gap:20px;font-size:.875rem}.text-button{background:none;border:0;padding:3px 0;text-decoration:underline;text-underline-offset:4px;color:#b6dfd8;min-height:40px;font-size:.875rem}.text-button:hover:not(:disabled){background:none;color:white}main{max-width:1280px;margin:auto;padding:14px 24px}.heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px}.eyebrow{font-size:.75rem;letter-spacing:1.4px;color:#a7c6ca}.heading h1{font-size:clamp(1.8rem,3.5vw,2.7rem);letter-spacing:-1.2px;line-height:1.15}.heading h1 span{color:#ffc991}.heading>p{font-size:.9375rem;color:#afc6cb}.heading strong{color:#e8f0ee;font-weight:500}.case-line{display:flex;align-items:center;gap:13px;padding:9px 14px;background:#1b3440;border:1px solid #3b5862;border-radius:12px 12px 0 0}.case-tag{font-size:.75rem;letter-spacing:1px;color:#f6c889}.case-line p{font-size:.9375rem;flex:1}.no-rush{color:#b2c8cd;font-size:.875rem}.workspace{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(340px,.9fr);gap:16px;background:#0f2631;border:1px solid #3b5862;border-top:0;border-radius:0 0 12px 12px;padding:14px;align-items:start}.image-panel{min-width:0;position:sticky;top:10px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.panel-heading>span{font-size:.75rem;color:#afc5cb}.image-tabs{display:flex;gap:5px;margin-bottom:8px}.image-tabs button{font-size:.875rem;padding:5px 14px;min-height:36px;flex:1}.image-tabs [aria-pressed=true]{background:#38504d;border-color:#a8e1d2;color:#fff}.image-stage{height:clamp(200px,calc(100dvh - 420px),360px);background:#07141c;border:1px solid #45616a;position:relative;border-radius:10px;display:flex;justify-content:center;overflow:hidden}#image{height:100%;width:auto;max-width:100%;object-fit:contain;image-rendering:auto}.image-badge{position:absolute;left:10px;top:10px;font-size:.75rem;letter-spacing:.5px;color:#c0d1d4;background:#07151bd9;padding:3px 6px;border-radius:3px}.ruler{position:absolute;right:12px;bottom:8px;font-size:.75rem;color:#d8e6e9;display:flex;flex-direction:column;gap:3px;text-align:center}.ruler i{display:block;width:44px;height:2px;background:#d8e6e9}#scan-line{position:absolute;left:0;right:0;top:0;height:1px;background:#9fe5dc9c;pointer-events:none}.image-meta{font-size:.75rem;color:#b5c9ce;display:flex;justify-content:space-between;gap:10px;margin:5px 0 10px}.scan-controls{display:grid;grid-template-columns:minmax(125px,1fr) auto minmax(125px,1fr);gap:8px;align-items:end}.scan-controls label{display:flex;flex-direction:column;gap:3px;font-size:.875rem}.scan-controls select{width:100%;min-width:0;font-size:.875rem;padding-inline:7px}.primary{background:#f0ca96;color:#132b34;border-color:#f0ca96;font-weight:700}.primary:hover:not(:disabled){background:#ffdda9}.scan-note{font-size:.875rem;color:#bdd1d4;margin-top:9px;min-height:0}.description{margin-top:6px;font-size:.875rem;color:#bbced3}.description p{padding:5px 0}summary{cursor:pointer;color:#b8dfd7;min-height:40px;padding:7px 0;font-size:.875rem}.room-panel{min-width:0}.room-map{height:184px;background:linear-gradient(130deg,#153541,#102630);position:relative;border:1px solid #395762;border-radius:10px;overflow:hidden}.room-map svg{position:absolute;inset:0;width:100%;height:100%;fill:#2b4b57;stroke:#638793;stroke-width:2}.room-map .floor{stroke:#34535e;stroke-width:3}.room-map .route{fill:none;stroke:#e8b77b;stroke-width:3}.room-map .route.isolated{stroke:#97d7ca;stroke-dasharray:3 6}.room-map .service{fill:none;stroke:#4a7380;stroke-dasharray:2 3;stroke-width:1}.room-map .beam{fill:#9ce1d0;stroke:none}.room-node{position:absolute;top:14px;width:27%;height:77px;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:5px;border-color:#52747e;background:#1e3d48}.room-node.pump{left:6%}.room-node.fan{right:6%}.room-node strong{font-size:.9375rem}.room-node small{font-size:.75rem;color:#b7d0d5}.room-node[aria-pressed=true]{border-color:#ffd194;box-shadow:inset 0 0 0 1px #ffd194}.device-symbol{font-size:.75rem;width:20px;height:20px;line-height:18px;text-align:center;border:1px solid #95b5bd;border-radius:50%;color:#a1d6cd}.microscope-label{position:absolute;left:37%;right:37%;top:117px;text-align:center;font-size:.75rem;color:#c2d9dd}.room-caption{position:absolute;bottom:7px;left:12px;font-size:.75rem;color:#a9c2c8}.repair-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(125px,.9fr);gap:10px;align-items:center;margin:10px 0}.repair-row p{font-size:.875rem;color:#c6d9dc}.repair-row button{font-size:.875rem;min-height:52px}.trace-panel{border-block:1px solid #34525d;margin:6px 0 12px}.trace-panel summary{display:flex;align-items:center;justify-content:space-between;gap:10px}.trace-panel summary::before{content:'▸';margin-right:2px}.trace-panel[open] summary::before{content:'▾'}.trace-panel summary span{margin-left:auto;font-variant-numeric:tabular-nums;color:#ffce93}.trace-panel canvas{display:block;width:100%;height:76px}.trace-panel p{font-size:.75rem;color:#a9c5cd;padding:0 0 8px}.notebook{border:1px solid #536168;background:#1b3039;border-radius:10px;padding:12px}.notebook-top{display:flex;align-items:center;justify-content:space-between;padding-bottom:7px;border-bottom:1px solid #4a5a60}.paper-mark{font-size:.75rem;letter-spacing:2px;color:#d9b585}.evidence-table{display:grid;grid-template-columns:.8fr 1fr 1fr;gap:5px 8px;padding:8px 0;font-size:.875rem;font-variant-numeric:tabular-nums}.evidence-table>span:nth-child(-n+3){font-size:.75rem;color:#b8c9cc}#pair-settings{font-size:.75rem;color:#b8c9cc;margin-bottom:8px}.result{padding:10px;border-left:3px solid #d2af7d;background:#243b43;border-radius:0 6px 6px 0}.result strong{font-size:.9375rem}.result p{font-size:.875rem;margin-top:4px;color:#d0e0e1}.result.good{border-color:#a4e2c8;background:#25483f}.notebook>button{margin-top:8px;width:100%;font-size:.875rem}.reading-note{font-size:.75rem;color:#b0c6cb;margin-top:8px}footer{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:7px;font-size:.875rem;color:#aac3c9}footer>div{display:flex;gap:18px;flex-wrap:wrap}dialog{background:#112e3a;border:1px solid #709098;color:#e8f0ee;border-radius:14px;max-width:650px;width:calc(100% - 26px);max-height:85dvh;overflow:auto;padding:24px}dialog::backdrop{background:#03151ddb}dialog h2{font-size:1.6rem;margin-bottom:12px}dialog h3{font-size:1.05rem;margin-bottom:4px}dialog p,dialog li{margin-block:10px}#close-info{float:right;background:none;font-size:1.3rem;margin:-12px -12px 4px 10px}.skip{position:fixed;z-index:10;transform:translateY(-150%);background:#193e4d;padding:12px}.skip:focus{transform:none}.sr-only{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}[hidden]{display:none!important}

.image-panel{position:static}.image-stage{height:clamp(170px,calc(100dvh - 490px),320px)}
.capture-settings{font-size:.75rem;color:#cbdadc;margin:4px 0 2px}.image-meta{margin:2px 0 5px}.scan-note{min-height:0;margin-top:6px;font-size:.8125rem}
.acquisition{display:flex;gap:10px;align-items:center;font-size:.75rem;color:#b5ced3;margin:5px 0 8px}.acquisition progress{accent-color:#8cdbce;height:6px;flex:1;min-width:30px;width:100px}.acquisition label{white-space:nowrap}
.room-map{height:146px}.room-node{height:61px;top:8px}.device-symbol{display:none}.microscope-label{top:93px;background:#102630e6;border-radius:3px;left:38%;right:38%;line-height:1.1;padding:2px 0}
#feedback{margin-top:10px}#feedback>button{margin-top:7px;width:100%;font-size:.875rem}#feedback h3{font-size:1rem}#feedback h3:focus{outline:2px solid #ffd292;outline-offset:3px}#prediction-review{font-size:.8125rem;color:#d2dedf;padding:8px 0 0}
.prediction{border-top:1px solid #34525d;margin-top:8px}.prediction label{display:block;font-size:.875rem;margin:4px 0 8px}.prediction select{width:100%;font-size:.875rem;min-width:0}.prediction p{font-size:.8125rem;color:#bdcfd3;margin-top:6px}.description{margin:0 0 9px}
.evidence-table{display:table;width:100%;border-collapse:collapse;margin:8px 0}.evidence-table th,.evidence-table td{text-align:left;padding:3px 6px 3px 0}.evidence-table thead th{font-size:.75rem;font-weight:400;color:#b8c9cc}.notebook{padding:10px}.trace-panel{margin:0 0 5px}.repair-row{margin:8px 0}.result{padding:9px}
@media(max-width:1000px) and (min-width:801px){main{padding-inline:14px}.workspace{gap:12px;grid-template-columns:minmax(0,1fr) minmax(300px,.9fr)}.scan-controls{grid-template-columns:minmax(90px,1fr) minmax(65px,.65fr) minmax(105px,1fr)}.scan-controls button{padding-inline:5px;font-size:.8125rem}}
@media(min-width:801px) and (max-height:700px){main{padding-top:8px}.heading .eyebrow{display:none}.heading h1{font-size:2rem}.heading{margin-bottom:8px}.workspace{padding:10px}.image-stage{height:170px}.room-map{height:130px}.microscope-label{top:84px}}
@media(max-width:800px){
 .top{min-height:44px;padding:4px 10px}.top nav{gap:10px}.top nav a,.top button{font-size:.8125rem}.brand{font-size:.9375rem}main{padding:6px 10px}
 .heading .eyebrow,.heading>p,.no-rush{display:none}.heading{margin-bottom:6px}.heading h1{font-size:1.65rem}.case-line{padding:6px 9px;gap:9px}.case-line p{font-size:.8125rem}.case-tag{font-size:.75rem}
 .workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:9px;padding:8px}.image-panel,.room-panel{width:100%;min-width:0;position:static}
 .panel-heading{margin-bottom:5px}.panel-heading>span{font-size:.75rem}.image-tabs{margin-bottom:5px}.image-tabs button{min-height:34px;padding:4px;font-size:.8125rem}
 .image-stage{height:clamp(145px,21dvh,210px);min-height:0}.image-badge{font-size:.6875rem;top:5px;left:5px;padding:2px 4px}
 .capture-settings,.image-meta{font-size:.75rem}.capture-settings{margin:3px 0 0}.image-meta{margin:0 0 3px}#frame-state{display:none}
 .acquisition{font-size:.6875rem;margin:3px 0 5px;gap:8px}.acquisition progress{height:4px}.scan-controls{grid-template-columns:minmax(0,1fr) minmax(60px,.58fr) minmax(0,1fr);gap:6px}.scan-controls>*{min-width:0}.scan-controls label{font-size:.75rem}.scan-controls select{font-size:.8125rem;padding-inline:5px}.scan-controls button{font-size:.8125rem;min-height:44px;padding-inline:4px;overflow-wrap:anywhere}
 .scan-note{font-size:.75rem;margin-top:5px}.room-map{height:100px}.room-node{height:52px;top:5px;width:31%;line-height:1.15}.room-node.pump{left:3%}.room-node.fan{right:3%}.room-node small{font-size:.75rem}.room-caption{display:none}.microscope-label{top:64px;font-size:.6875rem}
 .repair-row{margin:6px 0;grid-template-columns:1fr 1fr}.repair-row p,.repair-row button{font-size:.8125rem}.repair-row button{min-height:44px;padding:5px}.prediction{margin-top:4px}summary{min-height:36px}.trace-panel canvas{height:82px}
 #feedback{margin-top:7px}#feedback>button{min-height:40px;margin-top:5px}.result{padding:8px}.result p{font-size:.8125rem}.result h3{font-size:.9375rem}
 footer{flex-wrap:wrap;gap:0;margin-top:4px}footer>p{font-size:.75rem}footer>div{gap:15px}.description{margin-bottom:4px}
}
@media(max-width:400px) and (max-height:720px){main{padding:5px 7px}.top{padding-inline:8px}.heading h1{font-size:1.4rem}.workspace{padding:7px;gap:7px}.case-line{padding:5px 7px}.image-stage{height:135px}.room-map{height:90px}.microscope-label{top:58px}.room-node{height:50px}.room-node strong{font-size:.875rem}.room-node small{font-size:.6875rem}.scan-controls button{font-size:.75rem}.scan-note{font-size:.75rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Focused audit repair: larger evidence view, honest clues, protected notebook. */
textarea,input{font:inherit;color:inherit;background:#183440;border:1px solid #6c878d;border-radius:6px;max-width:100%;padding:8px;min-height:44px}textarea{width:100%;resize:vertical}textarea:focus-visible,input:focus-visible{outline:3px solid #ffd292;outline-offset:3px}
.compact{font-size:.75rem;min-height:34px;padding:5px 8px}.panel-heading{flex-wrap:wrap}.panel-heading h2{margin-right:auto}.source-rates{font-size:.8125rem;line-height:1.45;color:#c6d9dc;margin:6px 0}.source-rates strong{color:#f1cc96;font-weight:600}.source-rates .text-button{font-size:.8125rem;min-height:32px}.notebook label{display:block;font-size:.8125rem;margin:8px 0 4px}#record-history{width:100%;font-size:.8125rem;min-width:0}#history-count,#storage-note,#save-notice{font-size:.75rem;color:#c5d6d9;margin-top:6px}#save-notice{border-top:1px solid #3d5f64;padding-top:6px}#recorded-prediction{border-left:2px solid #809e98;padding-left:8px;overflow-wrap:anywhere}
#comparison{max-width:1240px;width:calc(100% - 24px);max-height:94dvh;padding:16px}.compare-header{display:flex;justify-content:space-between;align-items:center;gap:10px;position:sticky;top:-16px;padding:6px 0;background:#112e3a;z-index:1}.compare-header h2{font-size:1.3rem;margin:0}.compare-intro{font-size:.8125rem;color:#bbd0d6}#comparison-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}#comparison-grid figure{margin:0;min-width:0}#comparison-grid canvas{display:block;width:100%;aspect-ratio:1;object-fit:contain;background:#07141c}#comparison-grid h3{margin:5px 0;font-size:1rem}#comparison-grid figcaption{font-size:.8125rem;color:#c8d8da;margin-top:4px}#comparison-grid .empty{border:1px dashed #779398;aspect-ratio:1;display:grid;place-items:center;padding:15px;color:#bdced0;font-size:.875rem}
#bend-panel{margin-top:12px;border-top:1px solid #607c86}#bend-panel p{font-size:.875rem}#bend-image{width:min(100%,360px);display:block;image-rendering:auto}#bend-panel label{display:block}#bend-estimate{min-height:24px;color:#f0ca96}
@media(min-width:601px) and (max-width:800px){.image-stage{height:320px}}
@media(max-width:650px){#comparison{padding:12px;width:calc(100% - 12px)}.compare-header{top:-12px}.compare-header h2{font-size:1.1rem}#comparison-grid{grid-template-columns:minmax(0,1fr);gap:9px}#comparison-grid canvas,#comparison-grid .empty{width:min(100%,256px);margin:auto}#comparison-grid figure{display:flex;flex-direction:column;align-items:center}#comparison-grid figcaption{text-align:center}.compare-intro{font-size:.75rem}.panel-heading>span{display:none}}
main{container-type:inline-size}
@container (max-width:740px){.workspace{grid-template-columns:minmax(0,1fr)}.heading{flex-wrap:wrap}.scan-controls{grid-template-columns:minmax(0,1fr) minmax(0,.7fr) minmax(0,1fr)}.scan-controls>*{min-width:0}.scan-controls button{font-size:.8125rem;padding-inline:4px;overflow-wrap:anywhere}.image-tabs button{min-width:0;padding-inline:4px}.room-panel{min-width:0}.repair-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}

.room-node .device-rate{color:#f1cc96;font-size:.6875rem}.source-rates{margin:2px 0}.source-rates span{font-size:.75rem}.room-node{line-height:1.15}
@media(min-width:651px) and (max-width:950px){#comparison-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* The optional room changes presentation only; native support controls stay authoritative. */
.room-view-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:7px}.room-view-tools>button{font-size:.875rem}
#noise-room-cameras{display:flex;flex-wrap:wrap;gap:5px}#noise-room-cameras button{font-size:.8rem;padding:7px 10px;min-height:40px}
#noise-room-view{position:relative;grid-column:1/-1}#noise-room-canvas{position:relative;width:100%;height:280px;overflow:hidden;background:#081923}
#noise-room-canvas canvas{display:block;width:100%;height:100%;touch-action:none}
#noise-room-fallback{position:absolute;inset:0;background:#102732;overflow:auto}#noise-room-fallback img{width:100%;height:210px;object-fit:cover}#noise-room-fallback p{padding:8px;font-size:.875rem}
.room-map.room-three{height:auto;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-bottom:8px}
.room-three>svg,.room-three>.microscope-label{display:none}.room-three .room-node{position:static;width:auto;height:auto;min-height:70px;margin:0 8px}
.room-three .room-caption{position:static;grid-column:1/-1;padding:0 10px;font-size:.8rem}.room-three .room-caption::after{content:' · Drag to rotate; arrow keys, + / − and Home also work.'}
#noise-room-boundary{font-size:.8rem;line-height:1.5;margin-top:7px;color:#bed0d5}
@media(max-width:800px){#noise-room-canvas{height:240px}#noise-room-fallback img{height:175px}.room-three .room-caption{display:block}#noise-room-cameras button{min-height:44px}}

.top{flex-wrap:wrap;min-width:0}.top nav{flex-wrap:wrap;min-width:0}.top nav a,.top nav button{max-width:100%;overflow-wrap:anywhere}
