/* TESS-CSP-DYNAMIC-FINAL TESS-Observatory CSS block 30 */
/* TESS-OBSERVATORY-CONSOLE-POLISH-20260826 v1 */
:root{--tess-topbar-tight-h:62px;}
.topbar{min-height:var(--tess-topbar-tight-h)!important;padding:8px 12px!important;gap:8px!important;align-items:center!important;}
.topbar a,.topbar button{white-space:nowrap!important;}
.topbar-title{font-size:clamp(.82rem,1.15vw,1.08rem)!important;letter-spacing:.10em!important;}
.topbar .status{gap:7px!important;justify-content:flex-end!important;min-width:0!important;}
.topbar .status a{font-size:.66rem!important;padding:7px 9px!important;}
.viewer{min-height:calc(100vh - var(--tess-topbar-tight-h))!important;background:#02050d!important;}
.viewer iframe#tessObservatoryNoVncFrame{height:calc(100vh - var(--tess-topbar-tight-h))!important;min-height:760px!important;}
.password-card{transform:translateY(-110px)!important;}
.password-console-actions{grid-template-columns:1fr!important;max-width:420px!important;margin-left:auto!important;margin-right:auto!important;}
.password-console-actions button{min-height:44px!important;letter-spacing:.08em!important;}
.roof-camera-panel{width:320px!important;height:286px!important;padding:8px!important;}
.roof-camera-frame{height:216px!important;aspect-ratio:16/9!important;}
.roof-camera-frame img#roofCameraStream{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;transform:none!important;background:#050000!important;}
.roof-camera-meta{font-size:.52rem!important;line-height:1.15!important;margin-top:6px!important;}
.observatory-status-panel,.observatory-goto-panel{max-width:330px!important;}
.observatory-status-grid{gap:5px!important;}
.observatory-status-item{min-height:34px!important;padding:5px 6px!important;}
.observatory-status-label{font-size:.48rem!important;line-height:1.1!important;}
.observatory-status-value{font-size:.55rem!important;line-height:1.12!important;word-break:break-word!important;}
@media(max-width:1080px){.roof-camera-panel{display:none!important}.topbar .status{display:none!important}.viewer iframe#tessObservatoryNoVncFrame{min-height:680px!important}}
