@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--bg:#0b101a;--panel:#131c2b;--border:#263247;--muted:#9baac1;--cyan:#7be3d0;--gold:#f5c77d}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 80% 0,#1b2b41 0,transparent 48%),var(--bg);color:#edf2fa;font-family:'DM Sans',system-ui,sans-serif;font-size:14px}header,main{max-width:1440px;margin:auto;padding:28px 48px}header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border)}a{color:var(--cyan)}.brand{text-decoration:none;color:var(--cyan);font-size:28px}.brand b{color:#fff;font-family:Manrope,system-ui;letter-spacing:-1px}.brand span{display:inline-block;font-size:10px;letter-spacing:2px;margin-left:16px;color:var(--muted)}.location{font-size:14px}.location small{display:block;margin-top:5px;color:var(--muted)}.intro{display:flex;justify-content:space-between;align-items:center;padding:20px 0 34px}.eyebrow{color:var(--cyan);font-size:10px;letter-spacing:2px;font-weight:700}h1{font-family:Manrope,system-ui;font-size:44px;letter-spacing:-1.6px;line-height:1.2;margin:16px 0}h1 em{font-style:normal;color:#aabbd5}.intro p{color:var(--muted)}.live{color:var(--cyan);font-size:12px;line-height:2}.live i{display:inline-block;width:6px;height:6px;background:var(--cyan);border-radius:50%;margin-right:7px}.live small{color:var(--muted)}.layout{display:grid;grid-template-columns:285px 1fr;gap:22px}.panel{background:linear-gradient(140deg,#182234,#111a29);border:1px solid var(--border);border-radius:16px}.controls{padding:25px;align-self:start}h2{font-family:Manrope,system-ui;font-size:16px;letter-spacing:-.3px;margin:10px 0 22px}label{display:block;font-weight:500;font-size:12px}input[type=date]{width:100%;background:#0c1422;border:1px solid #344157;border-radius:8px;padding:12px;color:#fff;font:inherit;margin-top:9px}input[type=range]{width:100%;accent-color:var(--cyan);height:20px;cursor:pointer;margin:12px 0 5px}.row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:24px}.row output{font-size:12px;color:var(--cyan);white-space:nowrap}.scale{display:flex;justify-content:space-between;color:var(--muted);font-size:10px}.muted{font-size:11px;color:var(--muted);line-height:1.6}hr{border:0;border-top:1px solid var(--border);margin:26px 0}.pill{display:inline-block;border:1px solid #3d4a60;border-radius:20px;padding:4px 8px;font-size:10px;color:#bac7da}button{width:100%;border:0;background:var(--cyan);color:#0c242b;border-radius:8px;padding:12px;font-weight:700;cursor:pointer;margin-top:18px}.secondary{background:transparent;border:1px solid #344157;color:#c9d6e9;margin-top:8px}button:hover{filter:brightness(1.1)}:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.results{min-width:0}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.metric{position:relative;padding:20px 16px;min-height:132px}.metric span{display:block;font-size:11px;color:var(--muted)}.metric strong{display:block;font:700 29px Manrope,system-ui;margin:12px 0 4px;letter-spacing:-1px}.metric small{font-size:10px;color:var(--muted)}.moonMetric canvas{position:absolute;width:36px;height:36px;right:12px;top:14px}.moonMetric span{max-width:80px}.chartPanel{padding:24px;margin-top:20px}.sectionHead{display:flex;justify-content:space-between;align-items:center}.sectionHead h2{margin-bottom:10px}.legend{display:flex;gap:18px;font-size:11px}.sun{color:var(--gold)}.moon{color:#97b9ff}svg{width:100%;display:block;overflow:visible}svg text{font:11px 'DM Sans',system-ui;fill:#9baac1}.chartFoot{display:flex;justify-content:space-between;color:var(--muted);font-size:10px}.bottom{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}.skyPanel,.scorePanel{padding:24px}.skyPanel h2{margin-bottom:0}.skyPanel p{color:#cbd9ec;font-size:12px}.skyPanel small,.scorePanel small{color:var(--muted);font-size:10px;line-height:1.6}.scorePanel .row{margin:4px 0}.scorePanel h2{margin:8px 0}.score{display:flex;align-items:center;gap:15px;margin:20px 0}.score strong{font:600 70px Manrope,system-ui;letter-spacing:-4px;color:var(--cyan)}.score span{line-height:2;color:var(--muted);font-size:12px}.score b{color:#e3eaf7;font-weight:500}.meter{height:5px;border-radius:4px;background:#2b364a;overflow:hidden}.meter i{display:block;background:var(--cyan);height:100%;transition:width .2s}.scorePanel p{color:#bac7da;font-size:12px;line-height:1.7;min-height:42px}.methodology{padding:22px 25px;margin-top:24px;color:var(--muted);line-height:1.8;font-size:12px}.methodology summary{cursor:pointer;color:#e0e9f7;font-size:13px;list-style:none}.methodology summary span{float:right}footer{display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px;color:#7789a4;padding:28px 0}footer span{letter-spacing:0}#error{color:#ffb3a8}@media(min-width:1500px){header,main{padding-left:32px;padding-right:32px}}@media(max-width:1100px){header,main{padding:24px}.layout{grid-template-columns:245px 1fr}.metrics{grid-template-columns:1fr 1fr}.bottom{grid-template-columns:1fr}.intro h1{font-size:36px}.live{display:none}}@media(max-width:700px){header,main{padding:20px}.brand span{display:block;margin:4px 0 0 30px}.location{font-size:11px}.location small{max-width:130px;line-height:1.5}.intro h1{font-size:32px}.layout{grid-template-columns:1fr}.controls{padding:22px}.bottom{grid-template-columns:1fr}.sectionHead{display:block}.legend{margin:15px 0}.chartPanel{padding:18px}.chartFoot{gap:16px;font-size:9px}footer{gap:20px}.metric{min-height:120px}}

.aladinPanel{padding:24px;margin-top:20px}.aladinPanel iframe{width:100%;height:560px;display:block;border:1px solid var(--border);border-radius:10px;background:#080e18;margin:18px 0}.aladinPanel>a{font-size:11px}@media(max-width:700px){.aladinPanel{padding:18px}.aladinPanel iframe{height:600px}}

input[type=search]{width:100%;min-width:0;background:#0c1422;border:1px solid #344157;border-radius:8px;padding:12px;color:#fff;font:inherit;margin-top:9px}.weather{margin:18px 0}.weather>div{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--border);font-size:12px}.weather dt{color:var(--muted)}.weather dd{margin:0;color:var(--cyan);text-align:right}.placeResult{text-align:left;line-height:1.5;white-space:normal}button:disabled{opacity:.5;cursor:wait}.location{max-width:45%;overflow-wrap:anywhere}#locationStatus{min-height:18px}#placeResults{max-height:260px;overflow:auto}.controls>a{font-size:11px}

.chartPanel .sectionHead{display:block}.legend{display:flex;flex-wrap:wrap;gap:10px 16px;margin:16px 0 12px}.legend label{display:flex;align-items:center;gap:5px;font-size:11px;cursor:pointer}.legend input{accent-color:var(--cyan);margin:0}.skyTime{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:0 0 12px;margin:8px 0 18px}.skyTime .row{flex-wrap:wrap}.positionsTable{overflow-x:auto}.positionsTable table{width:100%;border-collapse:collapse;font-size:11px}.positionsTable caption{text-align:left;color:var(--muted);margin:0 0 10px}.positionsTable td,.positionsTable th{text-align:right;padding:8px 4px;border-bottom:1px solid var(--border);white-space:nowrap}.positionsTable th:first-child{text-align:left}.positionsTable thead{color:var(--muted)}.positionsTable+small{display:block;margin-top:12px}.skyPanel{min-width:0}.skyTime output{font-variant-numeric:tabular-nums}@media(max-width:700px){.positionsTable table{font-size:10px}.legend{gap:10px 12px}}

.scorePanel{align-self:start}

html{scroll-behavior:smooth;scroll-padding-top:20px}.appBar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;margin:0 0 22px}.appBar strong{font-size:13px}.appBar p{font-size:11px;color:var(--muted);margin:6px 0;line-height:1.6}.appBar details{max-width:430px}.appBar summary{cursor:pointer;color:var(--cyan);font-size:12px;padding:12px}.appBar button{width:auto;margin:0}.appBar [hidden]{display:none}.favorites{margin-top:18px}.favorites select{width:100%;min-width:0;margin-top:8px;background:#0c1422;color:#edf2fa;border:1px solid #344157;padding:12px;border-radius:8px;font:inherit}.favoriteActions{display:flex;gap:8px}.favoriteActions button{font-size:11px}.favorites small{font-size:10px;line-height:1.6;color:var(--muted)}.mobileNav{display:none}button,input,select,a,summary{-webkit-tap-highlight-color:transparent}input[type=range]{height:36px}#skySection,#observationControls,#atlasSection{scroll-margin-top:16px}header{padding-top:max(28px,env(safe-area-inset-top))}body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
@media(max-width:700px){body{padding-bottom:calc(76px + env(safe-area-inset-bottom))}.appBar{display:block;padding:14px 16px}.appBar details{margin-top:8px}.appBar summary{padding:10px 0}.appBar button{margin-top:10px;min-height:44px}.mobileNav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:20;justify-content:space-around;background:#111a29f5;backdrop-filter:blur(12px);border-top:1px solid var(--border);padding:8px max(10px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}.mobileNav a{padding:12px 18px;text-decoration:none;font-size:12px;min-height:44px}.controls input:not([type=range]),.controls select{font-size:16px}button,select{min-height:44px}.legend label{min-height:36px}.skyPanel{padding:20px 14px}.skyTime output{font-size:13px}.brand{font-size:24px}.location{font-size:11px}header,main{padding-left:16px;padding-right:16px}.intro h1{font-size:30px}}
@media(min-width:701px) and (max-width:1100px){.layout{grid-template-columns:260px minmax(0,1fr)}.controls{padding:18px}.skyPanel{padding:20px}.appBar{flex-wrap:wrap}.brand span{display:block;margin:4px 0 0 30px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.meter i{transition:none}}

/* Larger, square sky dial with room for names on every screen. */
#sky{width:100%;height:auto;aspect-ratio:1;max-width:760px;margin:16px auto 20px;overflow:hidden}
.bottom{grid-template-columns:minmax(0,1.8fr) minmax(240px,1fr);align-items:start}
#favoriteForm{margin-top:14px}
#favoriteLabel{width:100%;min-width:0;margin-top:8px;background:#0c1422;color:#edf2fa;border:1px solid #344157;padding:12px;border-radius:8px;font:inherit}
.favoriteActions button{cursor:pointer}
.favoriteActions button:disabled{cursor:default}
@media(max-width:1100px){.bottom{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){#sky{margin:12px auto 16px}.skyPanel{padding:20px 10px}.skyPanel>.eyebrow,.skyPanel>h2{margin-left:4px}}

/* Approved observatory identity, 2026-10-24. */
header{gap:20px;flex-wrap:wrap}
a.brand{display:block;width:350px;max-width:100%;flex-shrink:0;line-height:0}
.brandLogo{display:block;width:100%;height:auto}
header .location{margin-left:auto}
@media(max-width:700px){a.brand{width:250px}header{gap:12px}header .location{max-width:100%}}
@media(max-width:400px){a.brand{width:230px}}
