:root{
  --bg:#000; --fg:#fff; --dim:#8a8a8a; --dimmer:#4a4a4a; --line:#222; --accent:#e6e6e6; --live:#52d37a; --warn:#ffb020; --red:#ff4d4d;
  --font:"D-DIN","DIN Alternate","DIN Next","Barlow","Helvetica Neue","Segoe UI",Roboto,Arial,sans-serif;
  --mono:"SF Mono","Roboto Mono",Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font);font-weight:300;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}
body{padding-bottom:env(safe-area-inset-bottom)}
a{color:var(--fg)}
.head{position:sticky;top:0;z-index:20;background:rgba(0,0,0,.94);backdrop-filter:blur(6px)}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;border-bottom:1px solid var(--line)}
.brand{font-weight:600;letter-spacing:.24em;font-size:12px;white-space:nowrap}
.brand .thin{font-weight:200;margin-left:.3em}
.topright{display:flex;gap:6px}
.pill{white-space:nowrap;font-size:8px;letter-spacing:.18em;border:1px solid var(--dimmer);padding:3px 6px;border-radius:2px;color:var(--dim)}
.pill.on{color:var(--live);border-color:#1f5a33}
.pill.off{color:var(--warn);border-color:#6a4a10}
.tabs{display:flex;overflow-x:auto;border-bottom:1px solid var(--line);scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs a{flex:0 0 auto;padding:11px 12px;font-size:11px;letter-spacing:.2em;text-decoration:none;color:var(--dim);border-bottom:2px solid transparent}
.tabs a.active{color:var(--fg);border-bottom-color:var(--fg)}
main{max-width:640px;margin:0 auto}
.panel{padding:22px 16px 26px;border-bottom:1px solid var(--line);scroll-margin-top:90px}
h2{font-weight:400;font-size:13px;letter-spacing:.32em;margin:0 0 12px}
h3{font-weight:400;font-size:11px;letter-spacing:.25em;margin:18px 0 8px;color:var(--dim)}
.note{color:var(--dim);font-size:13px;line-height:1.45;margin:8px 0}
.dim{color:var(--dim)}
.mission{font-size:12px;letter-spacing:.28em;font-weight:500}
.mission .dim{font-weight:300;letter-spacing:.12em;display:block;margin-top:4px;font-size:11px}
.status{margin-top:8px;font-size:11px;letter-spacing:.16em;color:var(--warn)}
.clock{display:flex;align-items:flex-start;justify-content:center;gap:2px;margin:22px 0 10px;font-variant-numeric:tabular-nums}
.clock .t{font-size:30px;font-weight:200;margin-right:6px;line-height:1.25}
.clock .num{display:block;font-size:52px;font-weight:200;line-height:1;letter-spacing:.02em;text-align:center}
.clock .lab{display:block;font-size:9px;letter-spacing:.25em;color:var(--dim);text-align:center;margin-top:6px}
.clock .sep{font-size:44px;font-weight:200;color:var(--dimmer);line-height:1}
.clock.small .num{font-size:40px}.clock.small .sep{font-size:34px}.clock.small .t{font-size:24px}
.clock.plus .t{color:var(--live)}
.hold{text-align:center;color:var(--warn);letter-spacing:.4em;font-size:12px;margin:4px 0 8px;animation:blink 1s steps(2) infinite}
@keyframes blink{50%{opacity:.25}}
.readouts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
#ship .readouts{grid-template-columns:repeat(2,1fr)}
.k{font-size:9px;letter-spacing:.22em;color:var(--dim);margin-bottom:4px}
.callout{margin:14px 0 8px;padding:2px 0 2px 10px;border-left:2px solid var(--fg)}
.callout .v{font-size:18px;font-weight:400;letter-spacing:.02em;line-height:1.3}
.callout .meta{margin-top:4px;color:var(--dim);font-size:13px;line-height:1.4;font-variant-numeric:tabular-nums}
.v{font-size:14px;font-variant-numeric:tabular-nums}
.v.big{font-size:22px;font-weight:200}
.nowbar{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
.nowbar .v{font-size:13px;line-height:1.35}
.btnrow{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.btn{font:inherit;font-size:11px;letter-spacing:.18em;background:transparent;color:var(--fg);border:1px solid #555;padding:10px 12px;border-radius:2px;cursor:pointer;min-height:40px}
.btn:active{background:#151515}
.btn.primary{border-color:var(--fg)}
.btn.armed{border-color:var(--live);color:var(--live)}
.editform label,.row2 label{display:block;font-size:11px;letter-spacing:.12em;color:var(--dim);margin-top:12px}
input,select{font:inherit;font-size:16px;color:var(--fg);background:#0b0b0b;border:1px solid #333;border-radius:2px;padding:9px;width:100%;margin-top:6px;color-scheme:dark}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--dim);margin:10px 0}
.check input{width:auto;margin:0}
.events{list-style:none;padding:0;margin:12px 0 0}
.events .phase{font-size:10px;letter-spacing:.3em;color:var(--dim);padding:18px 0 6px;border-bottom:1px solid var(--line)}
.ev{display:grid;grid-template-columns:96px 1fr;gap:10px;padding:10px 0 10px 8px;border-bottom:1px solid #111;border-left:2px solid transparent}
.ev .tt{font-family:var(--mono);font-size:12px;color:var(--fg)}
.ev .ct{font-size:11px;color:var(--dim);margin-top:3px}
.ev .lbl{font-size:14px;font-weight:400;letter-spacing:.04em}
.ev.big .lbl{font-weight:600;letter-spacing:.12em}
.ev .see{font-size:13px;color:var(--dim);line-height:1.4;margin-top:4px}
.ev.past{opacity:.38}
.ev.current{border-left-color:var(--fg);background:#0c0c0c;opacity:1}
.ev.next{border-left-color:var(--dimmer)}
.ev.current .lbl::after{content:" ● NOW";color:var(--live);font-size:10px;letter-spacing:.2em}
.tag{display:inline-block;font-size:8px;letter-spacing:.18em;padding:2px 4px;border:1px solid var(--dimmer);color:var(--dim);border-radius:2px;vertical-align:middle;margin-left:4px}
.tag.est{color:var(--warn);border-color:#6a4a10}
.tag.computed{color:#9cc7ff;border-color:#2b4a70}
.seg{display:flex;border:1px solid #333;border-radius:2px;overflow:hidden;margin-bottom:8px}
#soundAlertSeg{margin-top:12px}
.seg button{flex:1;min-width:0;font:inherit;font-size:10px;letter-spacing:.14em;padding:10px 4px;background:transparent;color:var(--dim);border:0;border-right:1px solid #333;cursor:pointer;line-height:1.2}
#siteSeg button{letter-spacing:.06em;padding:10px 3px}
.seg button:last-child{border-right:0}
.seg button.on{background:#fff;color:#000;font-weight:500}
.seg.small button{font-size:10px;padding:8px 4px}
.compasswrap{display:flex;flex-direction:column;align-items:center;margin:16px 0 6px}
.dial{position:relative;width:min(78vw,300px);aspect-ratio:1}
.rose{position:absolute;inset:0;border:1px solid #444;border-radius:50%;transition:transform .15s linear}
.ticks{position:absolute;inset:4px;border-radius:50%;background:repeating-conic-gradient(from -0.6deg,#777 0 1.2deg,transparent 1.2deg 15deg);-webkit-mask:radial-gradient(closest-side,transparent 90%,#000 91%);mask:radial-gradient(closest-side,transparent 90%,#000 91%)}
.cn{position:absolute;font-size:13px;letter-spacing:.1em;color:var(--dim);transform:translate(-50%,-50%)}
.cn.n{left:50%;top:13%;color:var(--fg);font-weight:600}.cn.s{left:50%;top:87%}.cn.e{left:87%;top:50%}.cn.w{left:13%;top:50%}
.arrow,.sunwrap{position:absolute;inset:0;transition:transform .15s linear;pointer-events:none}
.arrow .shaft{position:absolute;left:calc(50% - 1px);top:18%;width:2px;height:32%;background:var(--fg)}
.arrow .head{position:absolute;left:50%;top:9%;transform:translateX(-50%);width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-bottom:22px solid var(--fg)}
.arrow::after{content:"";position:absolute;left:calc(50% - 4px);top:calc(50% - 4px);width:8px;height:8px;border-radius:50%;background:var(--fg)}
.sunwrap .sun{position:absolute;left:50%;top:2%;transform:translateX(-50%);font-size:16px;color:var(--warn)}
.sunwrap.hide{display:none}
.heading-ind{position:absolute;left:50%;top:-10px;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:10px solid var(--live);transform:translateX(-50%);display:none}
.dial.live .heading-ind{display:block}
.turn{margin-top:12px;font-size:15px;letter-spacing:.12em;text-align:center;min-height:20px}
.grid4{display:grid;grid-template-columns:1fr 1fr;gap:14px 10px;margin-top:14px}
.tbl{width:100%;border-collapse:collapse;margin-top:14px;font-size:12px;font-variant-numeric:tabular-nums}
.tbl th{font-weight:400;font-size:9px;letter-spacing:.2em;color:var(--dim);text-align:left;padding:6px 4px;border-bottom:1px solid var(--line)}
.tbl td{padding:8px 4px;border-bottom:1px solid #111}
.alertlist{list-style:none;padding:0;margin:14px 0 0}
.alertlist li{display:grid;grid-template-columns:1fr auto;gap:4px 10px;padding:10px 0;border-bottom:1px solid #111;font-size:13px}
.alertlist li .when{font-family:var(--mono);font-size:12px;text-align:right}
.alertlist li .sub{grid-column:1/-1;color:var(--dim);font-size:12px}
.alertlist li.done{opacity:.4}
.foot{padding:20px 16px 40px;font-size:13px;line-height:1.5;color:var(--dim)}
.foot b{color:var(--fg);font-weight:500}
.foot a{color:var(--dim)}
.flash{position:fixed;inset:0;z-index:100;background:#fff;color:#000;display:flex;align-items:center;justify-content:center;text-align:center;animation:fl .5s steps(2) 6}
.flash[hidden]{display:none}
@keyframes fl{50%{background:#000;color:#fff}}
.flash-title{font-size:32px;font-weight:600;letter-spacing:.2em;padding:0 16px}
.flash-sub{font-size:15px;margin:14px 20px 22px;letter-spacing:.05em}
.flash .btn{color:inherit;border-color:currentColor}
