.room-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.room-frequency{font-size:24px;font-weight:700}.room-recognized{border-left:4px solid var(--green)}.room-entry{padding:12px 0;border-bottom:1px solid var(--line)}.room-entry p{margin:6px 0;white-space:pre-wrap;overflow-wrap:anywhere}.room-entry .net-actions{margin-top:8px}.room-messages{max-height:440px;overflow:auto}.room-announcement{border-left:3px solid #79baff;padding-left:12px}.room-grid textarea,#ncsPanel textarea{width:100%;min-height:75px}#ncsPanel form,#ncsPanel>.net-actions{margin:22px 0}#roomHistory{max-height:400px;overflow:auto}.room-grid .card{min-width:0}.control-net{margin-bottom:18px}.control-net form{margin:14px 0}.control-net label{display:grid;gap:6px}.control-net .net-actions{margin-top:12px}#roomStatus{min-height:22px}#roomContent>.net-actions{margin:12px 0}@media(max-width:760px){.room-grid{grid-template-columns:1fr}}

.room-table{width:100%;border-collapse:collapse;font-size:14px}.room-table th{text-align:left;background:#0a1d35;color:#a8c9ed;white-space:nowrap}.room-table th,.room-table td{padding:12px;border-bottom:1px solid var(--line);vertical-align:top}.room-table td{min-width:100px}.room-table td:first-child{font-weight:700}.room-table button{margin:0 6px 6px 0}.room-table-wrap{max-height:520px}.room-grid{grid-template-columns:minmax(0,1fr)}.control-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.control-summary-grid section{padding:16px;background:#091e36;border:1px solid var(--line);border-radius:8px}.control-summary-grid h3{margin:0 0 12px}.control-summary-grid ul{padding-left:20px}.control-net>h2{margin-bottom:8px}.control-net>details{padding:14px 0;border-top:1px solid var(--line)}@media(max-width:650px){.control-summary-grid{grid-template-columns:1fr}}

.room-table th:first-child,.room-table td:first-child{position:sticky;left:0;background:#0a1d35;z-index:1}

#roomContent>.card{margin-bottom:16px}#ncsPanel{border-top:4px solid #79baff}#ncsAttendance{padding:12px;margin:12px 0}#ncsPanel details{margin-top:16px}#stationDialog{width:min(620px,90vw);max-height:85vh;overflow:auto;background:#102741;color:#e6f0ff;border:1px solid #6384a6;border-radius:12px;padding:24px}#stationDialog::backdrop{background:#000a}#stationNote{width:100%;box-sizing:border-box}#stationHistory{max-height:220px;overflow:auto}.room-table td{white-space:pre-wrap;overflow-wrap:anywhere}#operatingForm label{display:grid;gap:6px}

#ncsPanel form,#ncsPanel>.net-actions{margin:10px 0}#ncsAttendance{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:0;margin:10px 0}#ncsAttendance[hidden]{display:none}#ncsPanel>h2{margin:0 0 12px}#ncsPanel>p{margin:8px 0}.room-overview{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px}.room-overview #roomState,.room-overview h1,.room-overview #roomDescription{flex-basis:100%}.room-overview h1{font-size:24px;margin:0}.room-overview p{margin:4px 0}.room-overview #roomTimes{font-size:13px}.room-overview #roomDescription:empty{display:none}.room-recognized{padding:12px 18px}.room-recognized h2{font-size:18px;margin:4px 0}

#roomChatPanel.station-chat{margin:0;padding:0}#roomChatPanel.station-chat[hidden]{display:none}#roomChatPanel.station-chat .room-messages{max-height:none}#roomChatPanel.station-chat #messageText{width:100%;box-sizing:border-box;min-height:60px}#roomChatPanel.station-chat #chatHint,#chatActionStatus{font-size:12px;margin:6px 0}#roomChatClose{padding:5px 9px}#roomChatPanel.station-chat .room-entry{padding:6px 0;font-size:13px}#roomChatPanel.station-chat .room-entry button{padding:4px 7px}

/* Keep NCS station lists as compact horizontal rows, including on small screens. */
.ncs-row-view .room-table{min-width:1080px;font-size:13px}.ncs-row-view .room-table th,.ncs-row-view .room-table td{padding:7px 10px;vertical-align:middle;white-space:normal;min-width:0}.ncs-row-view .room-table tbody tr:nth-child(even){background:#ffffff04}.ncs-row-view .room-table tbody tr:hover{background:#ffffff08}.ncs-row-view .room-table th:first-child,.ncs-row-view .room-table td:first-child{min-width:80px}.ncs-row-view .room-table button{padding:5px 8px;font-size:12px;margin:2px}.ncs-row-view .room-table td:last-child{min-width:245px}.ncs-row-view .room-table-wrap{overflow:auto}.row-note-form{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:4px;align-items:center;min-width:245px}.row-note-form textarea{width:100%;box-sizing:border-box;min-height:36px;height:36px;padding:7px;resize:vertical;font:inherit}.row-note-form small{grid-column:1/-1;font-size:11px;color:var(--muted)}.row-note-form small:empty{display:none}
.ncs-row-view .room-table td:nth-child(2){min-width:100px;overflow-wrap:normal}.ncs-row-view .room-table td:nth-child(3){min-width:130px;overflow-wrap:normal}

#ncsPanel .ncs-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px}#ncsPanel .ncs-toolbar h2{margin:0 auto 0 0;font-size:20px}#ncsPanel #ncsAttendance{margin:0;gap:6px}#ncsPanel button{padding:7px 10px;font-size:12px}#ncsPanel .ncs-control-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:end;border-block:1px solid var(--line);padding:8px 0}#ncsPanel .ncs-control-grid form{margin:0;gap:7px;align-items:end}#ncsPanel label{display:grid;gap:4px;font-size:12px}#ncsPanel input,#ncsPanel select{padding:7px}#ncsPanel #liveFrequency{width:120px}#ncsPanel #stationCall{width:135px}#ncsPanel .room-overview{border:0;background:none;padding:10px 0;gap:4px 14px;box-shadow:none}#ncsPanel .room-overview h1{font-size:20px;flex-basis:auto}#ncsPanel #roomFrequency,#ncsPanel #roomTimes,#ncsPanel #profileLink{display:none}#ncsPanel #roomState{flex-basis:auto}#ncsPanel .room-overview #roomDescription{font-size:12px}#ncsPanel .ncs-recognition-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 0}#ncsPanel .room-recognized{border:0;background:none;padding:0;box-shadow:none}#ncsPanel .room-recognized h2{font-size:14px}#ncsPanel .room-recognized .eyebrow{font-size:10px}#ncsPanel details{margin-top:4px}#ncsPanel .ncs-more-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}#ncsPanel #requestSection h3{margin:8px 0}@media(max-width:1100px){#ncsPanel .ncs-control-grid{grid-template-columns:1fr}}@media(max-width:650px){#ncsPanel .ncs-more-grid{grid-template-columns:1fr}}

.room-table .station-colored td{background:color-mix(in srgb,var(--station-color) 22%,#0a1d35)}.room-table .station-colored td:first-child{border-left:6px solid var(--station-color)}#messages{display:flex;flex-direction:column;gap:10px}#checkIns>.room-table-wrap{max-height:45vh;overflow:auto}#stationColorDialog{background:var(--raised);color:var(--text);border:1px solid var(--line);border-radius:12px;padding:20px}



.net-log-heading,.net-log-footer{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.net-log-heading h2{margin-right:auto}.net-log-heading label{display:flex;gap:8px;align-items:center}.net-ledger{max-height:430px;overflow:auto}.net-ledger table{width:100%;border-collapse:collapse;min-width:950px;font-size:13px}.net-ledger th{position:sticky;top:0;background:#122a46;z-index:1}.net-ledger th,.net-ledger td{padding:8px 10px;border:1px solid var(--line);white-space:nowrap}.net-ledger tbody tr:nth-child(even){background:#ffffff04}.net-ledger td:focus{outline:2px solid #58a6ff;outline-offset:-2px}.net-ledger input{min-width:65px;max-width:240px;width:100%;box-sizing:border-box;padding:5px}.net-log-footer{margin-top:12px}.station-swatches{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:15px 0}.station-swatches button{border-top:10px solid var(--swatch);min-width:65px;padding:10px 8px}.station-context-menu{position:fixed;z-index:1000;background:#122a46;border:1px solid var(--line);padding:6px;border-radius:6px;box-shadow:0 8px 24px #0008}.station-context-menu button{width:175px;text-align:left}@media(max-width:650px){.station-swatches{grid-template-columns:repeat(2,1fr)}.net-log-heading label{width:100%}}

.room-top{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:16px;align-items:start}.room-top-main{min-width:0}.room-top .room-overview{margin-bottom:10px}.room-spotlight{border:1px solid var(--line);margin:0}.room-spotlight.has-active{border:2px solid #22c55e;background:#103b2c;box-shadow:0 0 18px #22c55e22}.room-spotlight h2{font-size:23px;overflow-wrap:anywhere}.room-spotlight p{font-size:13px;color:var(--muted)}#ncsPanel{padding:12px;margin:0}#ncsPanel #operatingForm{margin:0;display:flex;align-items:end;gap:8px;flex-wrap:wrap}#checkIns .room-table{min-width:900px}#checkIns .room-table th:first-child,#checkIns .room-table td:first-child{min-width:35px;width:35px}#checkIns .room-table td:nth-child(2){font-weight:700}#monitors .room-table,#requestQueue .room-table{min-width:600px}.station-context-menu{max-height:calc(100vh - 16px);overflow:auto}.station-context-menu button{display:block;width:210px;border:0;background:transparent;margin:0;padding:9px 12px}.station-context-menu button:hover,.station-context-menu button:focus{background:#25537a}.room-table tbody tr:focus{outline:2px solid #58a6ff;outline-offset:-2px}@media(max-width:1050px){.room-top{grid-template-columns:minmax(0,1fr) 240px}}@media(max-width:760px){.room-top{grid-template-columns:1fr}.room-spotlight{margin-bottom:12px}}

/* Constrain grid children so wide rosters scroll inside their cards. */
#roomContent{min-width:0;width:100%}.room-top-main,.room-overview>*{min-width:0}.room-overview{overflow-wrap:anywhere}.station-context-menu{width:224px;max-width:calc(100vw - 16px);overscroll-behavior:contain}.station-context-menu button{width:100%}
#spotlightMedia img{width:100%;max-height:280px;object-fit:contain;border-radius:8px}.station-avatar{display:grid;place-items:center;min-height:120px;background:linear-gradient(135deg,#15385c,#226649);border-radius:10px;font-size:32px;font-weight:bold;letter-spacing:2px}#spotlightControls{display:flex;gap:5px;flex-wrap:wrap}#spotlightControls button{font-size:12px;padding:6px}#sharedPhotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.shared-photo{border:1px solid var(--line);padding:10px;border-radius:8px;display:grid;gap:8px;align-content:start}.shared-photo img{width:100%;height:130px;object-fit:contain}.shared-photo p{margin:0;overflow-wrap:anywhere}#netMap{width:100%;max-height:430px;border:1px solid var(--line);border-radius:8px;margin:12px 0}#mapStationList{font-size:13px;margin-bottom:12px}#photoViewer{width:min(1000px,94vw);max-height:92vh;background:var(--raised);color:var(--text);border:1px solid var(--line);border-radius:12px}#photoViewer img{display:block;max-width:100%;max-height:75vh;object-fit:contain;margin-top:12px}#photoViewer::backdrop{background:#000b}#signalCard input{max-width:160px}#relayCard{border-left:4px solid #60a5fa}#roomPhotoForm{flex-wrap:wrap}#roomPhotoForm label{display:grid;gap:6px;max-width:100%}#roomPhotoForm input{max-width:100%}

#mapReports{width:auto;display:inline-block;margin-right:8px}.empty-gallery{grid-column:1/-1;margin:0}#mapStationList{overflow-wrap:anywhere}

label:has(>#mapReports){display:flex;align-items:center;gap:8px}#mapReports{margin:0}#spotlightMedia>button{width:100%;padding:0;border:0;background:transparent}@media(min-width:761px){.room-top:has(.spotlight-photo){grid-template-columns:minmax(0,1fr) minmax(290px,.85fr)}}

#roomMonitorsPanel{width:660px;height:400px;right:24px;bottom:32px}
#roomMonitorsPanel[hidden]{display:none}
#roomMonitorsPanel .room-table{min-width:560px}
#roomMonitorsPanel .room-table td:last-child{min-width:100px}

#roomStatus:empty{display:none}
.room-top{padding:22px;gap:24px;align-items:stretch}
.room-top .room-overview{margin:0;align-content:start;gap:10px 22px}
.room-overview #roomState{color:#7de2ae;font-weight:600;letter-spacing:.14em}
.room-overview #roomDescription{color:var(--muted);font-size:14px;line-height:1.5}
.room-overview #roomTimes,.room-overview #roomCounts{color:var(--muted)}
.room-spotlight,.room-spotlight.has-active{border:0;border-left:1px solid var(--line);border-radius:0;padding:0 0 0 24px;background:transparent;box-shadow:none;margin:0}
.room-spotlight.has-active{border-left:3px solid #22c55e}
.room-spotlight h2{font-size:19px;line-height:1.4;margin:10px 0 6px}
.room-spotlight .eyebrow{margin-bottom:10px}
.room-spotlight p{margin:6px 0;line-height:1.5}
.room-spotlight .station-avatar{min-height:64px;font-size:24px;background:#0b253b;letter-spacing:.08em}
@media(max-width:760px){.room-top{padding:16px;gap:18px}.room-spotlight,.room-spotlight.has-active{padding:16px 0 0;border-left:0;border-top:1px solid var(--line)}.room-spotlight.has-active{border-top:2px solid #22c55e}}

.room-top #ncsPanel{grid-column:1/-1;padding:14px 0 0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent}
.room-top .room-toolbar{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding-top:14px;border-top:1px solid var(--line)}
.room-top .room-toolbar #endNetActions{margin:0;gap:8px}
.room-toolbar #profileLink{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:6px;background:#0a2036;padding:9px 12px;color:var(--text);font-size:13px;font-weight:600;text-decoration:none}
.room-toolbar #ncsAttendance{margin:0;padding:9px 12px;display:inline-flex}
.room-attendance{grid-column:1/-1;font-size:13px;margin:0}
#addCheckInDialog{width:min(480px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;background:var(--raised);color:var(--text);border:1px solid var(--line);border-radius:12px;padding:24px}
#addCheckInDialog::backdrop{background:#0009}
#addCheckInForm{display:grid;gap:12px}#addCheckInForm h2,#addCheckInForm p{margin:0}#addCheckInForm label{display:grid;gap:6px}#addCheckInForm input{width:100%}.saved-station-notes{white-space:pre-wrap;overflow-wrap:anywhere;padding:12px;background:#0b253b;border-radius:6px}

/* Compact room header: actions first, with a thumbnail-sized operator presentation. */
.room-top{padding:16px 20px;gap:12px 20px;grid-template-columns:minmax(0,1fr) 340px;align-items:start}
.room-top .room-toolbar{padding:0 0 12px;border-top:0;border-bottom:1px solid var(--line)}
.room-top .room-overview{gap:6px 18px}
.room-overview h1{font-size:22px}.room-overview .room-frequency{font-size:22px}
.room-spotlight,.room-spotlight.has-active{padding-left:16px;display:grid;grid-template-columns:88px minmax(0,1fr);gap:6px 12px;align-content:start;align-items:start}
.room-spotlight .eyebrow{grid-column:1/-1;margin:0 0 2px}
.room-spotlight #spotlightMedia{grid-column:1;grid-row:2/5}
.room-spotlight #spotlightMedia img{width:88px;height:88px;max-height:88px;object-fit:contain}
.room-spotlight .station-avatar{min-height:72px;font-size:15px;letter-spacing:0}
.room-spotlight h2{grid-column:2;font-size:16px;margin:0;line-height:1.35}
.room-spotlight p{grid-column:2;margin:0;font-size:12px}
.room-spotlight #spotlightCaption:empty{display:none}
.room-spotlight #spotlightControls{grid-column:1/-1}
.room-top #ncsPanel{padding-top:10px}
.room-attendance{font-size:12px}
@media(min-width:761px){.room-top:has(.spotlight-photo){grid-template-columns:minmax(0,1fr) 340px}}
.room-spotlight:has(.spotlight-photo) #spotlightMedia{grid-column:1/-1;grid-row:auto}
.room-spotlight #spotlightMedia.spotlight-photo img{width:100%;height:160px;max-height:160px}
.room-spotlight:has(.spotlight-photo) h2,.room-spotlight:has(.spotlight-photo) p{grid-column:1/-1}
@media(max-width:900px){.room-top{grid-template-columns:minmax(0,1fr) 280px}}
@media(max-width:760px){.room-top{grid-template-columns:1fr;padding:14px;gap:12px}.room-spotlight,.room-spotlight.has-active{padding:12px 0 0;grid-template-columns:72px minmax(0,1fr)}.room-spotlight #spotlightMedia img{width:72px;height:72px;max-height:72px}}

@media(min-width:761px){
.room-top{grid-template-areas:"toolbar toolbar" "overview spotlight" "operating spotlight" "attendance attendance";row-gap:10px}
.room-top .room-toolbar{grid-area:toolbar}.room-top .room-overview{grid-area:overview}.room-top .room-spotlight{grid-area:spotlight}.room-top #ncsPanel{grid-area:operating}.room-top .room-attendance{grid-area:attendance}
}

#roomChatPanel.station-chat,#roomMonitorsPanel{resize:both;min-width:280px;min-height:220px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}
#netMapDialog{width:min(1200px,94vw);max-width:94vw;max-height:92dvh;overflow:auto;background:var(--raised);color:var(--text);border:1px solid var(--line);border-radius:12px;padding:18px}
#netMapDialog::backdrop{background:#0009}#netMap{height:60vh;max-height:650px;touch-action:none;cursor:grab}#netMap:active{cursor:grabbing}#netMap circle:focus{stroke:white;stroke-width:2}
#checkIns .room-table .contacted-station td{background:#57212d;color:#fff}#checkIns .room-table .contacted-station td:first-child{border-left:6px solid #ef4444}

#checkIns .room-table th:first-child,#checkIns .room-table td:first-child{white-space:nowrap;overflow-wrap:normal;word-break:normal;min-width:3ch;width:3ch;font-variant-numeric:tabular-nums}
