/* Night Shift: layout owns space; canvas owns artwork, never controls. */
.night-room .header a,.night-room .header button{min-height:44px;min-width:44px}
.night-room .header .wordmark{display:flex;align-items:center}
/* Reserve real control rows: the old 100px flex header reset a 27px nav reserve. */
@media(min-width:701px) and (max-width:760px){
 .night-room #header{padding-inline:16px;gap:12px}
 .night-room #header .header-actions{gap:10px}
}
@media(max-width:700px){
 .night-room{--header-safe-top:max(8px,env(safe-area-inset-top));--mobile-header-height:calc(var(--header-safe-top) + 99px)}
 .night-room #header{height:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand actions" "navigation navigation";gap:6px 8px;padding:var(--header-safe-top) max(14px,env(safe-area-inset-right)) 4px max(14px,env(safe-area-inset-left))}
 .night-room #header .wordmark{grid-area:brand;justify-self:start}
 .night-room #header .header-actions{grid-area:actions;gap:3px}
 .night-room #header .experience-modes{grid-area:navigation;position:static;inset:auto;height:auto;min-height:44px;border:0;gap:20px}
 body.night-room .signal-layout{padding-top:calc(var(--mobile-header-height) + 12px)}
 /* html already contributes 82px scroll-padding; reserve only the remaining height. */
 .night-room #ca,.night-room #field-desk{scroll-margin-top:calc(var(--mobile-header-height) + 12px - 82px)}
}
@media(max-width:374px){
 .night-room #header{padding-inline:max(8px,env(safe-area-inset-left)) max(8px,env(safe-area-inset-right))}
}
@media(max-width:354px){
 .night-room{--mobile-header-height:calc(var(--header-safe-top) + 149px)}
 .night-room #header{grid-template-columns:minmax(0,1fr);grid-template-areas:"brand" "actions" "navigation"}
 .night-room #header .header-actions{justify-content:space-between;gap:8px}
}
.night-room #signal-room:focus{outline:1px solid #fc713b44;outline-offset:-1px}
.night-motion-note{font:8px/1.4 var(--mono);color:#b5ad98;padding:3px 0;display:block}.night-motion-note[hidden]{display:none}
.night-history-remote{border-block:1px solid #efe5c829;padding:14px 0;margin:12px 0}.night-history-remote[hidden]{display:none}.night-history-remote form{display:flex;gap:8px;flex-wrap:wrap}.night-history-remote label{font:10px var(--mono);display:grid;gap:6px;flex:1;min-width:180px}.night-history-remote input,.night-history-remote select{width:100%;min-height:44px;background:#141913;color:#eee7d4;border:1px solid #b3ad9466;padding:8px}.night-history-remote button{min-height:44px;font:10px var(--mono);padding:10px;border:1px solid #b3ad9466}.night-history-remote p{font:11px/1.5 var(--mono);color:#c6bfa8;overflow-wrap:anywhere}
body:not(.signal-mode) .night-ledger,body:not(.signal-mode) #night-traces{display:none}
.night-room .header:not(.on-paper){background:#0b0c0bf5;border-bottom:1px solid #eae7dc16}
.night-room .signal-interface,.night-room .night-ledger{overflow-anchor:none}
.night-room.signal-mode #world{opacity:1;pointer-events:auto}
.night-room.signal-mode .poster-fallback{opacity:0}
.night-room .signal-interface{background:linear-gradient(90deg,#090b09 0 24%,#090b0933 40%,transparent 70%);min-height:0;overflow:visible}
.night-room .signal-layout{grid-template-columns:minmax(260px,330px) minmax(0,1fr);gap:clamp(30px,6vw,100px);padding:108px 3.7vw 16px;min-height:720px;min-height:max(720px,calc(100dvh - 110px))}
.night-room .signal-access{background:none;border:0;box-shadow:none;padding:14px 0;align-self:center}
.night-room .access-kicker{margin-bottom:20px;color:#a9aa9b}
.night-room .access-identity{border:0;padding:0;align-items:center}.night-room .access-identity h1{font-size:30px}.night-room .access-identity strong{font-size:10px}
.night-title{font:900 clamp(48px,5.4vw,78px)/.9 var(--display);letter-spacing:-.045em;margin:24px 0;color:#eeece3}.night-title span{color:var(--signal)}
.night-room .access-summary{font:16px/1.45 var(--sans);margin:0 0 26px;color:#b8b9ac}.access-summary>span{color:#ef8652}
.night-room #ca .official-contract{padding:15px 0;gap:7px 9px;border-top:1px solid #e67f4bb0}.night-room #ca .official-contract-head{font-size:8px;gap:7px}.night-room #ca .official-contract-head b{font-size:7px}.night-room #ca .official-contract p{font-size:10px}.night-room #ca .official-contract code{font-size:14px}
.night-room .official-links{padding-top:12px}.night-room .official-links nav{gap:5px 17px}
.night-preview-entry{margin-top:21px;min-height:57px;width:100%;display:grid;grid-template-columns:1fr auto;gap:7px 12px;text-align:left;font:9px/1.4 var(--mono);letter-spacing:.015em;padding:13px 14px;border:1px solid #e8875266;background:#e8875209;color:#f2b188;pointer-events:auto}
.night-preview-entry:hover{background:#e8875222}.night-preview-entry small{font:9px var(--mono);color:#a8a899}.night-preview-entry span{grid-row:1/3;grid-column:2;align-self:center;font-size:24px}
.night-room .access-note{font:9px/1.5 var(--mono);color:#929686;margin:14px 0 0}
.night-room .map-heading-row{margin:12px 0 0}.night-room .map-heading-row p{font-size:8px;margin:0 0 7px}.night-room .map-heading-row h2{font-size:26px;letter-spacing:-.02em}
.night-room .signal-overline{font-size:8px;color:#b1b3a4;justify-content:space-between}.night-room .map-visual-space{position:relative;min-height:490px;flex:1;pointer-events:none}
#night-source-open{position:absolute;bottom:20px;left:0;pointer-events:auto;text-align:left;border-left:2px solid var(--signal);padding:9px 14px;background:#080b09d9;min-height:55px;display:grid;gap:7px;font:9px var(--mono)}#night-source-open b{font-size:10px;font-weight:400;color:#f49d6a}
.night-map-coordinates{position:absolute;right:0;bottom:24px;font:8px var(--mono);letter-spacing:.1em;color:#b6baaa;writing-mode:vertical-rl}
.night-room .map-tools{padding:8px 0;gap:9px;position:relative}.night-room .map-tools button{min-height:44px;font-size:9px}.night-room #browse-sources{background:#f2814c;color:#0d100b;padding:0 17px}.night-room .art-status{font:9px/1.4 var(--mono);letter-spacing:.025em;color:#aaa995;min-height:33px;padding:9px 0 4px}
#night-traces{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none}
.night-ledger{position:relative;z-index:5;margin:0 3.7vw 0;border-top:1px solid #d7d9c945;background:#0a0d0aec;padding:0 0 10px;pointer-events:auto}
.night-ledger-head{display:flex;align-items:center;justify-content:space-between;font:8px var(--mono);letter-spacing:.1em;color:#c7c7b9;min-height:44px}.night-ledger-head button{min-height:44px;padding:0 12px;font:9px var(--mono);color:#dcb191}
.night-event-strip{display:flex;gap:12px;overflow-x:auto;scrollbar-width:thin;min-height:62px;overscroll-behavior-x:contain}.night-event-strip>p{font:12px/1.5 var(--mono);color:#92998a;margin:10px 0}.night-event{flex:1 0 190px;max-width:290px;min-height:66px;display:flex;gap:13px;align-items:center;text-align:left;border-left:2px solid var(--event-color,#ee955d);padding:5px 12px;background:#cdd4bd07}.night-event:hover{background:#cdd4bd12}.night-event img{width:43px;height:48px;object-fit:cover}.night-event>span{display:grid;gap:7px;font:10px var(--mono)}.night-event b{font:10px var(--mono);color:var(--event-color,#ee955d)}.night-event small{font-size:9px;color:#a3a999}
.night-preview-controls{display:flex;flex-wrap:wrap;gap:6px;pointer-events:auto}.night-preview-controls button{min-height:44px;font:9px var(--mono);padding:9px 13px;border:1px solid #c8c8b431}.night-preview-controls button[aria-pressed=true]{background:#ed8b5422;color:#f8b184}.night-preview-controls #night-preview-exit{margin-left:auto;color:#f8b184}
.night-room [hidden]{display:none!important}.night-preview .art-status{color:#fac297}
.night-dialog{width:min(940px,calc(100vw - 32px));max-height:calc(100dvh - 40px);background:#0e110e;color:#eeeade;border:1px solid #dad7c74d;padding:30px;overflow:auto;overscroll-behavior:contain}.night-dialog::backdrop{background:#040704df}.night-dialog header{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #c0c3ae33;padding:0 0 14px;margin-bottom:22px}.night-dialog header p{font:10px var(--mono);letter-spacing:.05em;color:#f6ad7c;margin:0}.night-dialog header button{min-width:44px;min-height:44px;font-size:25px;border:1px solid #d3d5c12b}.night-dialog h2{font:900 54px/.94 var(--display);letter-spacing:-.03em;margin:0 0 20px}.night-dialog p{font-size:13px;line-height:1.5;color:#b4b9a8}.night-dialog .night-provenance{font:10px/1.6 var(--mono);color:#f2b888;white-space:pre-line}.night-dialog code{font:12px/1.6 var(--mono);overflow-wrap:anywhere;user-select:all;word-break:break-all}.night-dossier-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:30px}.night-dossier-grid>img{width:100%;height:350px;object-fit:contain;background:#161a13}.night-dossier-facts{margin:20px 0;display:grid;gap:12px}.night-dossier-facts dt{font:9px var(--mono);color:#969f88}.night-dossier-facts dd{font:16px/1.5 var(--mono);margin:3px 0 0;overflow-wrap:anywhere}.night-dialog-actions{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.night-dialog-actions button,.night-dialog-actions a{min-height:44px;padding:12px 15px;border:1px solid #e9c2a65d;font:10px var(--mono);color:#f4b888}.night-record-list{display:grid;gap:8px}.night-record-list .night-event{max-width:none;width:100%;min-height:58px}.night-find-form{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.night-find-form input{flex:1;min-width:180px;min-height:44px;border:1px solid #b8c2a251;background:#080c08;color:#efeedf;padding:10px;font:12px var(--mono)}.night-find-form button{min-height:44px;padding:12px 20px;border:1px solid #eea175;font:10px var(--mono)}
.night-demo-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.night-demo-actions button{min-height:44px;border:1px solid #e8c1a549;padding:10px 14px;font:10px var(--mono)}
.night-room .map-focus .signal-access{opacity:1}.night-room.map-focus .signal-access{opacity:.15}.night-room.map-focus .map-workspace>.signal-overline,.night-room.map-focus .map-heading-row,.night-room.map-focus .map-tools{opacity:1;pointer-events:auto}.night-room.map-focus .exit-focus{position:static;align-self:start;margin:10px 0;min-height:44px}.night-room.map-focus .map-visual-space{min-height:620px}
@media(min-width:701px) and (max-height:760px){.night-room .signal-layout{min-height:630px;padding-top:98px}.night-room .map-visual-space{min-height:400px}.night-title{font-size:58px;margin:18px 0}.night-room .access-summary{margin-bottom:16px;font-size:14px}.night-room .access-kicker{margin-bottom:13px}}
@media(max-width:1000px) and (min-width:701px){.night-room .signal-layout{grid-template-columns:240px minmax(0,1fr);gap:27px}.night-title{font-size:50px}.night-room .access-identity h1{font-size:27px}.night-room .access-identity{display:flex}.night-room .map-tools button{font-size:8px}.night-room .map-visual-space{min-height:500px}}
@media(max-width:700px){.night-room .header{height:100px;padding:0 14px}.night-room .header-actions{gap:3px}.night-room .header .sound-button{display:flex;min-width:44px;min-height:44px;justify-content:center}.night-room .sound-word{display:none}.night-room .pair-button{min-height:44px;padding:9px}.night-room .experience-modes{gap:20px}.night-room .signal-layout{display:flex;flex-direction:column;gap:12px;padding:112px 16px 0;min-height:0}.night-room .signal-access{display:grid;grid-template-columns:1fr;position:relative;align-self:stretch;gap:0;padding:0}.night-room .access-kicker{font-size:7px;letter-spacing:.07em;margin:0 0 10px}.night-room .access-identity{display:flex;padding:0;justify-content:space-between}.night-room .access-identity h1{font-size:25px}.night-room .access-identity strong{font-size:8px}.night-title{font-size:26px;line-height:1;letter-spacing:-.02em;margin:12px 0 9px}.night-title br{display:none}.night-room .access-summary{font:12px/1.4 var(--sans);margin:0 0 13px;max-width:none}.night-room .access-summary br{display:none}.night-room .access-summary br::after{content:' '}.night-room .access-summary span{margin-left:5px}.night-room #ca .official-contract{padding:10px 0;gap:3px 6px}.night-room #ca .official-contract-head{font-size:7px}.night-room #ca .official-contract-head b{font-size:7px}.night-room #ca .official-contract p{font-size:9px;min-height:14px}.night-room #ca .official-contract code{font-size:13px}.night-room .official-links{padding:7px 0 0}.night-room .official-links-label{font-size:7px;margin:0}.night-room .official-links a{min-height:44px;font-size:9px}.night-room .official-links nav{gap:0 22px}.night-preview-entry{font-size:8px;min-height:44px;margin:0 0 6px;padding:9px 12px;display:flex;align-items:center;justify-content:space-between}.night-preview-entry small{display:none}.night-preview-entry span{font-size:17px}.night-room .access-note{display:none}.night-room .map-workspace{min-height:0;padding:0}.night-room .signal-overline{font-size:7px}.night-room .map-heading-row{display:none}.night-room .map-visual-space{min-height:300px;height:300px;flex:none}.night-room .signal-interface{background:transparent}.night-room .map-tools{gap:5px;padding:7px 0}.night-room .map-tools button{font-size:8px;padding:0 9px;flex:1 1 auto}.night-room #map-motion{flex:0 1 auto}.night-room .art-status{font-size:8px;min-height:28px;padding:7px 0}.night-preview-controls{gap:4px}.night-preview-controls button{font-size:8px;flex:1;padding:8px}.night-preview-controls #night-preview-exit{margin-left:0}.night-ledger{margin:8px 16px 0}.night-ledger-head{font-size:7px}.night-event-strip{gap:7px}.night-event{flex-basis:185px;min-height:62px}.night-event>span,.night-event b{font-size:9px}#night-source-open{bottom:9px;left:0;font-size:8px;padding:8px 10px;min-height:46px;background:#080b09e8}#night-source-open b{font-size:8px}.night-map-coordinates{font-size:7px;bottom:14px}.night-dialog{padding:18px;width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}.night-dialog h2{font-size:42px}.night-dossier-grid{grid-template-columns:1fr;gap:20px}.night-dossier-grid>img{height:235px}.night-dialog header{position:sticky;top:-18px;background:#0e110ef5;z-index:2;margin-top:-2px;padding-top:6px}.night-room.map-focus .signal-access{opacity:1}.night-room.map-focus .map-visual-space{min-height:380px;height:380px}}
