@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-ext-400-normal-BtiwyxMk.woff2)format("woff2"),url(/assets/dm-sans-latin-ext-400-normal-BjWJ59Pq.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2)format("woff2"),url(/assets/dm-sans-latin-400-normal-BwCSEQnW.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-ext-500-normal-BJfUCQsA.woff2)format("woff2"),url(/assets/dm-sans-latin-ext-500-normal-DR84L5F-.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2)format("woff2"),url(/assets/dm-sans-latin-500-normal-Dr3UlScf.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-ext-600-normal-4vooXBpG.woff2)format("woff2"),url(/assets/dm-sans-latin-ext-600-normal-DRtaDpgU.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-600-normal-Aqo67rzb.woff2)format("woff2"),url(/assets/dm-sans-latin-600-normal-BmdmIIQ2.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-ext-700-normal-CJIcxD6K.woff2)format("woff2"),url(/assets/dm-sans-latin-ext-700-normal-BLI3TTWz.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-700-normal-DvUfVpUG.woff2)format("woff2"),url(/assets/dm-sans-latin-700-normal-CUSSCpQX.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color:#182620;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-optical-sizing:auto;--ink:#182620;--muted:#68766e;--line:#d9e1d8;--forest:#17392c;--moss:#28523e;--lime:#d8f277;--paper:#fbfcf8;--warning:#b14c3a;background:#eef2ed;font-family:DM Sans,sans-serif;font-weight:400}*{box-sizing:border-box}body{background-color:#eef2ed;background-image:radial-gradient(#9aac9e .65px,#0000 .65px);background-size:19px 19px;min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button:focus-visible,input:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #91a94b}.app-shell{width:min(100% - 48px,1100px);min-height:100vh;margin:0 auto;padding:28px 0 24px}.masthead{border-bottom:1px solid #233c2e33;align-items:center;gap:14px;min-height:56px;padding-bottom:24px;display:flex}.brand-mark{background:var(--forest);width:46px;height:46px;color:var(--lime);border-radius:5px;grid-template-columns:repeat(3,1fr);place-items:center;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:500;text-decoration:none;display:grid}.masthead-copy{gap:2px;display:grid}.page-auto-refresh{color:#53645a;white-space:nowrap;cursor:pointer;align-items:center;gap:6px;margin-left:auto;font-family:IBM Plex Mono,monospace;font-size:9px;display:inline-flex}.page-auto-refresh input{width:14px;height:14px;accent-color:var(--moss);margin:0}.eyebrow,.section-index,.console-tag,.button-direction,.page-footer{font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:500}.eyebrow{color:var(--muted);text-transform:uppercase}.masthead-title{font-size:15px;font-weight:600}.console-tag{color:#53645a;letter-spacing:0;border:1px solid #c8d3c8;border-radius:3px;align-items:center;gap:8px;padding:9px 11px;display:inline-flex}.admin-session-button,.admin-login-button{min-height:38px;color:var(--forest);font:inherit;cursor:pointer;background:#f4f7f1;border:1px solid #a9b8aa;border-radius:3px;padding:8px 12px;font-size:12px}.admin-session-button:disabled,.admin-login-button:disabled{cursor:wait;opacity:.65}.console-dot{background:#a3ad9e;border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.site-heading{justify-content:space-between;align-items:flex-end;gap:24px;padding:56px 0 38px;display:flex}.observatory-select{min-width:min(260px,100%);color:var(--muted);gap:6px;font-family:IBM Plex Mono,monospace;font-size:10px;display:grid}.observatory-select select{background:var(--paper);min-height:40px;color:var(--ink);border:1px solid #c8d3c8;border-radius:3px;padding:0 34px 0 11px;font-family:DM Sans,sans-serif;font-size:14px}.site-code{color:#527058;margin:0 0 12px}h1,h2,p{margin-top:0}h1{margin-bottom:5px;font-size:38px;font-weight:600;line-height:1.12}.site-subtitle{color:var(--muted);margin:0;font-size:16px}.telemetry{background:#fbfcf8b8;border-left:2px solid #a8b39f;gap:12px;width:min(440px,100%);max-width:100%;padding:12px 15px;display:grid}.weather-main-row{align-items:center;gap:11px;min-width:0;display:flex}.telemetry-good{border-left-color:#347447}.telemetry-bad{border-left-color:#b14c3a}.telemetry-loading{border-left-color:#a8b39f}.weather-status-icon{flex:none;place-items:center;width:28px;height:28px;display:grid}.weather-status-icon svg{width:25px;height:25px}.telemetry-good .weather-status-icon{color:#347447}.telemetry-bad .weather-status-icon{color:#b14c3a}.telemetry-loading .weather-status-icon{color:#a07836}.telemetry-copy{gap:2px;font-size:12px;display:grid}.telemetry-copy strong{font-weight:600}.telemetry-copy span{color:var(--muted)}.telemetry-copy .weather-values{overflow-wrap:anywhere;max-width:360px;font-family:IBM Plex Mono,monospace;font-size:10px;line-height:1.5}.celestial-summary{border-top:1px solid #d9e1d8;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 8px;padding-top:10px;display:grid}.celestial-summary>div{gap:3px;display:grid}.celestial-summary span{color:#718075;font-family:IBM Plex Mono,monospace;font-size:8px;font-weight:500}.celestial-summary strong{color:var(--ink);font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:500}.forecast-strip{border-top:1px solid #d9e1d8;gap:8px;padding-top:10px;display:grid}.forecast-strip-heading{color:#718075;justify-content:space-between;font-family:IBM Plex Mono,monospace;font-size:9px;font-weight:500;display:flex}.forecast-grid{grid-template-columns:minmax(0,1fr);gap:8px 12px;display:grid}.forecast-hour{color:#68766e;border-left:1px solid #c8d3c8;grid-template-columns:auto minmax(0,1.3fr) minmax(0,1fr) auto;align-items:baseline;column-gap:10px;min-width:0;padding:5px 6px;font-size:9px;line-height:1.4;display:grid}.forecast-hour-clear{color:#285b3d;background:#e7f1e5;border-left:2px solid #347447;border-radius:3px}.forecast-hour-clear time{color:#245c35}.forecast-hour time{color:#263a2f;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:500}.forecast-hour span{white-space:nowrap}.forecast-message{color:#68766e;font-size:11px}.control-layout{background:var(--paper);border:1px solid #d4ddd3;border-radius:6px;grid-template-columns:minmax(0,1.25fr) minmax(290px,.75fr);display:grid;overflow:hidden;box-shadow:0 18px 50px #253a2b14}.command-panel,.access-panel{min-width:0;padding:30px}.command-panel{border-right:1px solid var(--line)}.section-heading{align-items:center;gap:11px;display:flex}.section-index{color:#83927f}h2{margin:0;font-size:18px;font-weight:600}.panel-caption{color:var(--muted);margin:8px 0 23px 35px;font-size:13px}.command-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.admin-login-form{border:1px solid var(--line);background:#fbfcf8b8;border-radius:4px;gap:12px;max-width:380px;padding:16px;display:grid}.admin-login-page{align-content:center;justify-items:center;gap:24px;width:min(100% - 32px,420px);min-height:100vh;margin:0 auto;display:grid}.admin-login-page .admin-login-form{width:100%}.admin-login-form h1{margin:0;font-size:25px}.admin-login-form>p:not(.admin-auth-error){color:var(--muted);margin:0;font-size:13px;line-height:1.5}.admin-login-form label{color:var(--muted);gap:5px;font-family:IBM Plex Mono,monospace;font-size:9px;display:grid}.admin-login-form input{min-height:38px;color:var(--ink);background:#fff;border:1px solid #c8d3c8;border-radius:3px;padding:7px 9px;font-family:DM Sans,sans-serif;font-size:14px}.admin-login-button{background:var(--forest);color:#fff;text-align:center;justify-self:start;align-items:center;text-decoration:none;display:inline-flex}.admin-back-link{color:var(--moss);text-underline-offset:3px;justify-self:start;font-size:12px}.admin-auth-error{color:#a13e33;margin:0;font-family:DM Sans,sans-serif;font-size:12px}.camera-feed-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.latest-image-panel,.live-camera-panel{gap:8px;min-width:0;display:grid}.latest-image-heading{color:#53645a;justify-content:space-between;align-items:baseline;gap:12px;font-family:IBM Plex Mono,monospace;font-size:11px;display:flex}.latest-image-heading time{color:#718075;font-size:10px}.latest-image-frame{aspect-ratio:16/9;color:#d8e0d5;background:#17251e;border:1px solid #263a2f;border-radius:4px;place-items:center;width:100%;font-size:12px;display:grid;overflow:hidden}.latest-image-frame img,.live-camera-frame video{object-fit:contain;width:100%;height:100%}.allsky-admin-link{color:var(--moss);text-underline-offset:3px;justify-self:start;font-size:12px}.camera-stream-status{color:#718075;font-size:9px}.camera-stream-live{color:#347447}.camera-stream-unavailable{color:#b14c3a}.live-camera-frame{aspect-ratio:16/9;color:#d8e0d5;background:#101713;border:1px solid #263a2f;border-radius:4px;place-items:center;width:100%;font-size:12px;display:grid;position:relative;overflow:hidden}.live-camera-frame video{position:absolute;inset:0}.live-camera-message{z-index:1;background:#101713d1;padding:6px 9px}.command-button{color:#fff;cursor:pointer;text-align:left;border:1px solid #0000;border-radius:4px;grid-template-rows:1fr auto auto;justify-items:start;gap:15px;min-height:144px;padding:19px;transition:transform .14s,filter .14s;display:grid}.command-button:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-2px)}.command-button:disabled{cursor:wait;opacity:.72}.open-button{background:var(--moss)}.close-button{background:#754838}.button-icon{width:23px;height:23px}.command-button>span:nth-child(2){font-size:16px;font-weight:600}.button-direction{color:#ffffffbd}.automation-setting{color:var(--ink);cursor:pointer;align-items:flex-start;gap:10px;margin-top:16px;display:flex}.automation-setting input{width:17px;height:17px;accent-color:var(--moss);flex:none;margin:2px 0 0}.automation-setting-copy{gap:3px;font-size:13px;display:grid}.automation-setting-copy>span{color:var(--muted);font-size:12px;line-height:1.4}.automation-spinner{width:16px;height:16px;color:var(--moss);flex:none}.feedback-slot{min-height:56px;padding-top:14px}.feedback{align-items:flex-start;gap:8px;font-size:13px;line-height:1.45;display:flex}.feedback svg{flex:none;width:17px;height:17px}.feedback-success{color:#285b3d}.feedback-error{color:#a13e33}.access-panel{background:#f4f7f1}.proxy-status{background:#fff;border:1px solid #cbd6ca;border-radius:3px;align-items:flex-start;gap:12px;min-height:88px;padding:17px 14px;display:flex}.proxy-status>svg{color:#5c795d;flex:none;width:20px;height:20px}.proxy-status div{gap:5px;display:grid}.proxy-status strong{font-size:13px;font-weight:600}.proxy-status span{color:#6c796f;font-size:11px;line-height:1.45}.page-footer{color:#718075;justify-content:space-between;gap:16px;padding-top:20px;font-size:10px;display:flex}.spinning{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=700px){.app-shell{width:min(100% - 32px,540px);padding-top:16px}.site-heading{flex-direction:column;align-items:flex-start;gap:22px;padding:38px 0 25px}.observatory-select{width:100%}.masthead{flex-wrap:wrap}.page-auto-refresh{margin-left:auto}h1{font-size:31px}.control-layout,.camera-feed-grid{grid-template-columns:minmax(0,1fr)}.command-panel,.access-panel{padding:23px 20px}.command-panel{border-right:0;border-bottom:1px solid var(--line)}}@media (width<=390px){.command-form{grid-template-columns:minmax(0,1fr)}.command-button{min-height:112px}.console-tag{padding:8px;font-size:9px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.admin-session-button{align-items:center;text-decoration:none;display:inline-flex}.obs-admin-page{gap:20px;width:min(100% - 32px,960px);margin:0 auto;padding:24px 0 48px;display:grid}.obs-admin-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.obs-admin-header h1{margin:0;font-size:25px}.obs-admin-actions{flex-wrap:wrap;gap:8px;display:flex}.obs-admin-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.obs-admin-row{border:1px solid var(--line);background:#fbfcf8b8;border-radius:4px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.obs-admin-row span{color:var(--muted);font-size:12px}.obs-admin-form{border:1px solid var(--line);background:#fbfcf8b8;border-radius:4px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px;display:grid}.obs-admin-form label{color:var(--muted);gap:5px;font-family:IBM Plex Mono,monospace;font-size:9px;display:grid}.obs-admin-form input{min-height:38px;color:var(--ink);background:#fff;border:1px solid #c8d3c8;border-radius:3px;padding:7px 9px;font-family:DM Sans,sans-serif;font-size:14px}.obs-admin-form h2,.obs-admin-form .obs-admin-actions,.obs-admin-form .admin-auth-error{grid-column:1/-1}.obs-admin-form h2{margin:0;font-size:18px}.obs-admin-danger{color:#a13e33;border-color:#d9a9a2}@media (width<=640px){.obs-admin-form{grid-template-columns:minmax(0,1fr)}}.obs-admin-form label.obs-admin-checkbox{align-items:center;gap:8px;display:flex}.obs-admin-form label.obs-admin-checkbox input{min-height:0}
