:root{--space-0: #05060f;--space-1: #0a0e1f;--space-2: #0f1530;--space-3: #141a3a;--cyan: #22d3ee;--cyan-soft: #67e8f9;--cyan-deep: #0891b2;--violet: #a855f7;--violet-soft: #c084fc;--blue: #3b82f6;--magenta: #e879f9;--ok: #34d399;--ok-bg: rgba(52, 211, 153, .12);--warn: #fbbf24;--warn-bg: rgba(251, 191, 36, .12);--err: #fb7185;--err-bg: rgba(251, 113, 133, .12);--ink: #e8ecf7;--ink-strong: #ffffff;--muted: #8b95b8;--muted-2: #5b6488;--card-bg: rgba(18, 24, 51, .55);--card-border: rgba(120, 160, 255, .18);--card-border-strong: rgba(120, 160, 255, .4);--hairline: rgba(120, 160, 255, .1);--font-display: "Orbitron", "Segoe UI", sans-serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "Share Tech Mono", "JetBrains Mono", ui-monospace, monospace;--radius: 16px;--radius-sm: 10px;--glow-cyan: 0 0 24px rgba(34, 211, 238, .45);--glow-violet: 0 0 24px rgba(168, 85, 247, .4)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:radial-gradient(1200px 800px at 50% -10%,#131a3e 0%,transparent 60%),radial-gradient(900px 700px at 85% 110%,#1a1145 0%,transparent 55%),linear-gradient(180deg,var(--space-1) 0%,var(--space-0) 100%);background-attachment:fixed;color:var(--ink);font-family:var(--font-body);line-height:1.6;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}.starfield{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}.nebula{position:absolute;border-radius:50%;filter:blur(80px);opacity:.5;animation:nebula-drift 26s ease-in-out infinite alternate}.nebula-violet{width:620px;height:620px;top:-160px;left:-120px;background:radial-gradient(circle,rgba(168,85,247,.55),transparent 70%)}.nebula-cyan{width:560px;height:560px;bottom:-180px;right:-120px;background:radial-gradient(circle,rgba(34,211,238,.4),transparent 70%);animation-delay:-8s}@keyframes nebula-drift{0%{transform:translate(0) scale(1)}to{transform:translate(40px,30px) scale(1.12)}}.stars-layer{position:absolute;inset:0}.star{position:absolute;border-radius:50%;background:#fff;box-shadow:0 0 6px #fffc;animation-name:twinkle;animation-timing-function:ease-in-out;animation-iteration-count:infinite;will-change:opacity,transform}@keyframes twinkle{0%,to{opacity:.2;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}.grid-overlay{position:absolute;inset:0;background-image:linear-gradient(rgba(120,160,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(120,160,255,.04) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000 30%,transparent 80%);-webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000 30%,transparent 80%)}.app{position:relative;z-index:1;max-width:820px;margin:0 auto;padding:28px 18px 24px;min-height:100vh;display:flex;flex-direction:column;gap:22px}.app-header{text-align:center;padding:8px 0 4px;animation:fade-down .7s ease both}.mission-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border:1px solid var(--card-border-strong);border-radius:999px;background:#22d3ee0f;color:var(--cyan-soft);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;margin-bottom:18px;box-shadow:inset 0 0 12px #22d3ee14}.mission-badge .pulse-dot{width:8px;height:8px;border-radius:50%;background:var(--cyan);box-shadow:0 0 10px var(--cyan);animation:pulse-dot 1.6s ease-in-out infinite}.app-header h1{margin:0 0 10px;font-family:var(--font-display);font-weight:900;font-size:clamp(1.7rem,5vw,2.6rem);letter-spacing:.04em;line-height:1.1;background:linear-gradient(100deg,#ffffff 0%,var(--cyan-soft) 45%,var(--violet-soft) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 18px rgba(34,211,238,.25))}.subtitle{margin:0;color:var(--muted);font-size:.95rem;letter-spacing:.02em}.subtitle .sep{color:var(--cyan);margin:0 8px;opacity:.7}.card{position:relative;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);padding:26px 24px;box-shadow:0 18px 50px #0204108c,inset 0 1px #ffffff0d;backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);animation:fade-up .6s ease both;overflow:hidden}.card:before,.card:after{content:"";position:absolute;width:22px;height:22px;border:2px solid var(--cyan);opacity:.55;pointer-events:none}.card:before{top:10px;left:10px;border-right:0;border-bottom:0;border-top-left-radius:6px}.card:after{bottom:10px;right:10px;border-left:0;border-top:0;border-bottom-right-radius:6px}.card h2{margin:0 0 14px;font-family:var(--font-display);font-size:1.2rem;font-weight:700;letter-spacing:.06em;color:var(--ink-strong);display:flex;align-items:center;gap:10px}.card h2:before{content:"";width:4px;height:18px;border-radius:2px;background:linear-gradient(180deg,var(--cyan),var(--violet));box-shadow:var(--glow-cyan)}.card p{color:var(--ink)}.intro-text{margin:0 0 16px;font-size:.98rem}.intro-text strong{color:var(--cyan-soft);font-weight:600}.warn{display:flex;align-items:flex-start;gap:10px;background:var(--warn-bg);border:1px solid rgba(251,191,36,.3);color:var(--warn);padding:12px 14px;border-radius:var(--radius-sm);font-size:.88rem;margin:0 0 22px}.warn:before{content:"⚠";flex:0 0 auto;font-size:1rem;line-height:1.4}.interrupted-note{display:inline-flex;align-items:center;gap:8px;color:var(--warn);font-weight:600;font-size:.88rem;background:var(--warn-bg);border:1px solid rgba(251,191,36,.3);padding:8px 12px;border-radius:999px;margin:4px 0 8px}.muted{color:var(--muted)}.measuring-note{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--cyan-soft);font-family:var(--font-mono);font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;margin:6px 0 4px}.measuring-note .blink{width:9px;height:9px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px var(--cyan);animation:pulse-dot 1s ease-in-out infinite}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--card-border-strong);background:#ffffff0a;color:var(--ink);border-radius:var(--radius-sm);padding:12px 20px;font-family:var(--font-body);font-size:1rem;font-weight:600;letter-spacing:.02em;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .18s ease,box-shadow .25s ease,border-color .25s ease,background .25s ease;overflow:hidden}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-lg{width:100%;padding:16px 22px;font-size:1.05rem;font-weight:700;letter-spacing:.06em}.btn-primary{background:linear-gradient(100deg,var(--cyan-deep),var(--blue) 55%,var(--violet));border-color:#22d3ee99;color:#fff;box-shadow:0 8px 30px #22d3ee59,inset 0 1px #ffffff40}.btn-primary:before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(255,255,255,.18),transparent 50%);opacity:0;transition:opacity .25s ease}.btn-primary:hover{box-shadow:0 12px 44px #22d3ee8c,0 0 0 1px #22d3ee80,inset 0 1px #ffffff4d}.btn-primary:hover:before{opacity:1}.btn-secondary{background:#a855f71a;border-color:#a855f773;color:var(--violet-soft)}.btn-secondary:hover{background:#a855f72e;border-color:#a855f7b3;box-shadow:0 8px 28px #a855f74d}.btn .icon{font-size:1.15em;line-height:1}.btn-primary .icon{animation:rocket-wiggle 2.6s ease-in-out infinite}@keyframes rocket-wiggle{0%,to{transform:translate(0) rotate(-2deg)}50%{transform:translate(1px,-2px) rotate(2deg)}}.countdown{display:flex;flex-direction:column;align-items:center;gap:6px;margin:6px 0 16px}.countdown-ring{position:relative;width:150px;height:150px;display:grid;place-items:center}.countdown-ring svg{position:absolute;inset:0;transform:rotate(-90deg)}.countdown-ring .ring-track{fill:none;stroke:#78a0ff24;stroke-width:6}.countdown-ring .ring-progress{fill:none;stroke:url(#ringGrad);stroke-width:6;stroke-linecap:round;filter:drop-shadow(0 0 6px rgba(34,211,238,.8));transition:stroke-dashoffset .25s linear}.countdown-number{font-family:var(--font-mono);font-size:2.8rem;font-weight:700;color:var(--ink-strong);font-variant-numeric:tabular-nums;text-shadow:0 0 18px rgba(34,211,238,.6);line-height:1}.countdown-unit{color:var(--muted);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--hairline);border-radius:var(--radius-sm);background:#05081466;scrollbar-width:none;-ms-overflow-style:none}.table-wrap::-webkit-scrollbar{display:none}.results{width:100%;border-collapse:collapse;font-size:.9rem;margin-top:8px}.results th,.results td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--hairline);white-space:nowrap}.results thead th{color:var(--cyan-soft);font-family:var(--font-mono);font-weight:400;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;background:#22d3ee0d;border-bottom:1px solid rgba(34,211,238,.2)}.results tbody tr{transition:background .2s ease}.results tbody tr:hover{background:#22d3ee0d}.results tbody tr:last-child td{border-bottom:0}.results td.num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink-strong)}.results td.num.pos{color:var(--ok)}.results td.num.neg{color:var(--err)}.results td.lat{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--cyan-soft)}.region-name{display:flex;flex-direction:column;gap:3px}.region-label{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--ink-strong)}.region-label .region-glyph{font-size:1rem;filter:drop-shadow(0 0 6px rgba(34,211,238,.5))}.metric-note{margin:10px 0 0;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2)}.metric-note:before{content:"◢ ";color:var(--cyan)}.save-row{margin:16px 0}.save-status{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:999px;font-size:.88rem;font-weight:600;border:1px solid transparent}.save-icon{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;font-size:.8rem;font-weight:700}.save-saving{background:#22d3ee1a;color:var(--cyan-soft);border-color:#22d3ee4d}.save-saving .save-icon{background:var(--cyan);color:var(--space-0);animation:spin 1s linear infinite}.save-saved{background:var(--ok-bg);color:var(--ok);border-color:#34d3994d}.save-saved .save-icon{background:var(--ok);color:var(--space-0)}.save-pending{background:var(--warn-bg);color:var(--warn);border-color:#fbbf244d}.save-pending .save-icon{background:var(--warn);color:var(--space-0)}.save-error{font-weight:400;font-size:.78rem;opacity:.85}.app-footer{margin-top:auto;color:var(--muted-2);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;text-align:center;padding-top:16px;display:flex;align-items:center;justify-content:center;gap:10px}.app-footer .footer-dot{width:5px;height:5px;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px var(--cyan);opacity:.7}@keyframes pulse-dot{0%,to{opacity:.4;transform:scale(.85)}50%{opacity:1;transform:scale(1.1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-down{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.admin-section{margin-top:4px}.admin-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;background:#ffffff08;border:1px solid var(--hairline);border-radius:var(--radius-sm);color:var(--muted);font-family:var(--font-mono);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:border-color .2s ease,color .2s ease,background .2s ease}.admin-toggle:hover{border-color:var(--card-border-strong);color:var(--cyan-soft);background:#22d3ee0d}.admin-toggle .chev{transition:transform .25s ease;color:var(--cyan)}.admin-toggle.is-open .chev{transform:rotate(180deg)}.admin-body{margin-top:12px;display:flex;flex-direction:column;gap:14px;animation:fade-up .35s ease both}.admin-field{display:flex;flex-direction:column;gap:6px}.admin-label{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2)}.admin-input{width:100%;padding:11px 13px;background:#05081499;border:1px solid var(--hairline);border-radius:var(--radius-sm);color:var(--ink-strong);font-family:var(--font-mono);font-size:.9rem;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.admin-input::placeholder{color:var(--muted-2)}.admin-input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px #22d3ee26}.admin-row{display:flex;gap:12px}.admin-row .admin-field{flex:1}.admin-checks{display:flex;flex-wrap:wrap;gap:16px;margin-top:2px}.admin-check{display:inline-flex;align-items:center;gap:8px;font-size:.82rem;color:var(--muted);cursor:pointer;user-select:none}.admin-check input{accent-color:var(--cyan);width:16px;height:16px}.admin-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.admin-status{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.04em}.admin-status.ok{color:var(--ok)}.admin-status.err{color:var(--err)}.admin-status.busy{color:var(--cyan-soft)}.admin-status .dot{width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}.admin-status.busy .dot{animation:pulse-dot 1s ease-in-out infinite}.admin-hint{font-size:.76rem;color:var(--muted-2);line-height:1.6;margin:0}.admin-hint code{font-family:var(--font-mono);color:var(--cyan-soft);background:#22d3ee14;padding:1px 5px;border-radius:4px;font-size:.92em}@media (min-width: 600px){.app{padding:40px 24px 28px}.btn-lg{width:auto;min-width:240px}.card{padding:30px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
