:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#050a14;color:#f4f7fb;font-synthesis:none;text-rendering:optimizeLegibility;scrollbar-color:#223149 #07101d;scrollbar-width:thin}*{box-sizing:border-box}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#07101d}::-webkit-scrollbar-thumb{border:2px solid #07101d;border-radius:999px;background:#223149}::-webkit-scrollbar-thumb:hover{background:#31445f}body{margin:0;min-width:320px;background:radial-gradient(circle at 62% 18%,rgba(61,224,194,.14),transparent 30rem),radial-gradient(circle at 16% 8%,rgba(109,183,255,.15),transparent 28rem),linear-gradient(180deg,#050a14,#07101d 46%,#050a14)}button,input,select{font:inherit}button,a{color:inherit}.app-shell{min-height:100vh;overflow-x:hidden}.top-nav{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:24px;padding:16px clamp(20px,4vw,56px);border-bottom:1px solid rgba(170,183,200,.14);background:#050a14d1;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand,.source-status,.globe-toolbar,.text-link,.inline-fact{display:flex;align-items:center}.brand{gap:10px;text-decoration:none;font-weight:700;letter-spacing:0}.brand-mark,.icon-button{display:inline-grid;place-items:center;width:34px;height:34px;border:1px solid rgba(109,183,255,.25);border-radius:8px;background:#101b2ec7;color:#6db7ff}.text-link:hover{color:#f4f7fb}.source-status{justify-self:end;max-width:none;gap:10px;color:#d8e2ef;font-size:.84rem}.source-status strong{color:#f4f7fb;font-weight:700}.source-status-label{color:#aab7c8;font-weight:600;white-space:nowrap}.icon-button{border:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.62}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid #3de0c2;outline-offset:3px}.status-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}.status-dot.healthy,.status-dot.current{background:#65d6a6;box-shadow:0 0 18px #65d6a673}.status-dot.pending,.status-dot.partial,.status-dot.delayed,.status-dot.stale{background:#f97316;box-shadow:0 0 18px #f9731680}.status-dot.failed{background:#e35d4f;box-shadow:0 0 18px #e35d4f6b}.hero-section{display:grid;grid-template-columns:minmax(270px,.62fr) minmax(520px,1.38fr) minmax(300px,.72fr);gap:24px;align-items:center;min-height:680px;padding:36px clamp(20px,4vw,56px) 24px}.hero-copy{align-self:center;min-width:0}.hero-copy h1,.page-heading h1{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.6rem,4.2vw,4.6rem);font-weight:500;line-height:.94;letter-spacing:0}.hero-copy h1{max-width:7.4ch}.hero-copy p,.page-heading p{max-width:34ch;color:#aab7c8;font-size:.96rem;line-height:1.65}.warning-strip{display:flex;gap:10px;align-items:flex-start;max-width:54ch;padding:12px 14px;border:1px solid rgba(249,115,22,.38);border-radius:8px;background:#f9731617;color:#ffd3a6}.data-status-strip{display:flex;align-items:flex-start;gap:10px;margin-top:18px;padding:12px 14px;border:1px solid rgba(101,214,166,.28);border-radius:8px;background:#65d6a614;color:#d9fff8;font-size:.86rem;line-height:1.45}.data-status-strip.partial,.data-status-strip.delayed,.data-status-strip.stale{border-color:#f9731661;background:#f9731617;color:#ffd3a6}.data-status-strip.failed{border-color:#e35d4f6b;background:#e35d4f1a;color:#ffcdc8}.success-strip{display:flex;gap:10px;align-items:flex-start;margin-bottom:18px;padding:12px 14px;border:1px solid rgba(101,214,166,.34);border-radius:8px;background:#65d6a614;color:#bfffe0}.globe-panel,.status-card,.timeline-panel,.data-panel,.refresh-card,.source-monitor-table,.receipt-modal,.location-drawer{border:1px solid rgba(170,183,200,.15);border-radius:8px;background:linear-gradient(180deg,#101b2ec7,#0a1222d1);box-shadow:0 24px 80px #00000052}.globe-panel{position:relative;align-self:stretch;min-height:620px;overflow:hidden}.globe-toolbar{position:absolute;z-index:2;top:16px;left:16px;right:16px;justify-content:space-between;gap:12px;color:#aab7c8;font-size:.82rem}.globe-toolbar>span,.panel-label{display:flex;gap:8px;align-items:center}.map-filter{display:grid;gap:6px}.map-filter label{color:#aab7c8;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.globe-toolbar select,.admin-controls input{border:1px solid rgba(170,183,200,.18);border-radius:8px;background:#050a14b8;color:#f4f7fb;padding:9px 10px}.globe-stage{position:absolute;inset:0;display:grid;place-items:center;padding:74px 22px 58px;background:linear-gradient(180deg,rgba(109,183,255,.05),transparent 28%),radial-gradient(circle,rgba(109,183,255,.12),transparent 58%)}.globe-orbit{position:relative;width:min(78%,540px);height:auto;max-height:none;aspect-ratio:1}.globe-svg{width:100%;height:100%;filter:drop-shadow(0 0 42px rgba(109,183,255,.16));shape-rendering:geometricPrecision}.globe-sphere{pointer-events:none}.atmosphere{position:absolute;inset:7%;border-radius:50%;box-shadow:inset -40px -20px 70px #0006,0 0 52px #6db7ff38;pointer-events:none}.globe-node-layer{position:absolute;inset:0;z-index:1;pointer-events:none}.globe-node-button{position:absolute;display:inline-flex;align-items:center;gap:7px;max-width:240px;min-height:32px;border:1px solid rgba(170,183,200,.08);border-radius:999px;background:#050a146b;color:#dfe8f5;font-size:.72rem;line-height:1.15;padding:5px 8px 5px 5px;pointer-events:auto;text-align:left;text-shadow:0 1px 4px #050a14;box-shadow:0 10px 24px #050a1438}.globe-node-button:hover,.globe-node-button:focus-visible{background:#3de0c224}.node-dot{width:13px;height:13px;border:2px solid rgba(109,183,255,.62);border-radius:50%;background:#6db7ff;box-shadow:0 0 16px #6db7ff6b;flex:0 0 auto}.globe-node-button.vessel-node .node-dot{border-color:#e35d4fb3;background:#e35d4f;box-shadow:0 0 16px #e35d4f6b}.node-label{white-space:normal}.country-outline{fill:none;stroke:#d3ddec70;stroke-width:.75;pointer-events:none;vector-effect:non-scaling-stroke}.country-fill{fill:#aab7c81f;stroke:#d3ddec1f;stroke-width:.45;pointer-events:none;vector-effect:non-scaling-stroke}.globe-graticule{fill:none;stroke:#6db7ff1f;stroke-width:.6;pointer-events:none;vector-effect:non-scaling-stroke}.route-line{fill:none;stroke:#ffd166;stroke-width:3.2;stroke-linecap:round;filter:url(#glow);pointer-events:none;stroke-dasharray:12 7;animation:routeMove 10s linear infinite;shape-rendering:geometricPrecision}.route-halo{stroke:#02050bc7;stroke-width:7;stroke-dasharray:none;filter:none;animation:none}.route-line.secondary{stroke:#3de0c2;stroke-width:1.4;opacity:.74}.map-legend{position:absolute;right:18px;bottom:16px;display:flex;flex-wrap:wrap;gap:10px;max-width:min(78%,420px);padding:8px 10px;border:1px solid rgba(170,183,200,.12);border-radius:8px;background:#050a1494;color:#cdd7e6;font-size:.74rem}.map-legend span{display:inline-flex;align-items:center;gap:6px}.legend-dot{width:10px;height:10px;border-radius:50%}.vessel-dot{background:#e35d4f}.location-dot{background:#6db7ff}.legend-route{width:24px;height:0;border-top:3px solid #ffd166}.status-card{align-self:stretch;display:grid;align-content:start;gap:10px;padding:18px}.panel-label,.metric-label,.quiet-label{color:#6db7ff;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;line-height:1.25;overflow-wrap:anywhere}.main-number{display:grid;width:100%;gap:4px;margin:2px 0 0;padding:0 0 12px;border:0;border-bottom:1px solid rgba(170,183,200,.12);background:transparent;text-align:left;cursor:pointer}.main-number:disabled{cursor:not-allowed}.main-number span{font-size:clamp(3.2rem,4.8vw,4.4rem);font-weight:650;line-height:.9;font-variant-numeric:tabular-nums}.main-number small{order:-1;color:#aab7c8;font-size:.82rem;font-weight:700}.main-number small,.refresh-card dt,.receipt-modal dt{color:#aab7c8}.case-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin:0}.case-row span,.badge,.status-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;justify-content:center;min-height:34px;padding:7px 10px;font-size:.78rem;color:#f4f7fb;background:#6db7ff29;border:1px solid rgba(109,183,255,.28)}.case-row span.zero-value{color:#91a2b8;background:transparent;border-color:#aab7c82e}.inline-fact,.risk-line,.metric-card,.location-row{width:100%;border:1px solid rgba(170,183,200,.12);border-radius:8px;background:#050a1461;cursor:pointer}.inline-fact{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;min-height:46px;padding:10px 12px}.inline-fact small{display:inline-flex;gap:4px;align-items:center;justify-self:end;color:#3de0c2;text-decoration:underline;text-underline-offset:3px}.risk-stack{display:grid;gap:7px}.status-subhead{color:#aab7c8;font-size:.8rem;font-weight:700}.risk-line{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:52px;padding:9px 11px;text-align:left}.risk-line span{color:#aab7c8}.risk-label{display:inline-flex;align-items:center;gap:8px;min-width:0;line-height:1.25}.risk-label svg{flex:0 0 auto;color:#6db7ff}.risk-line strong{color:#65d6a6;text-transform:uppercase;font-size:.78rem;line-height:1.15;text-align:right;white-space:normal}.source-badges,.admin-controls{display:flex;flex-wrap:wrap;gap:10px}.source-badges{margin-top:2px}.badge.official,.status-badge.healthy,.status-badge.current{border-color:#6db7ff52;color:#bfe0ff}.badge.updated,.status-badge.stale,.status-badge.not_checked,.status-badge.partial,.status-badge.delayed{border-color:#f2b84b52;color:#f8d38b}.badge.conflict,.status-badge.error,.status-badge.failed{border-color:#e35d4f57;color:#ffb9b2}.metrics-band{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;padding:18px clamp(20px,4vw,56px) 28px}.metric-card{display:grid;gap:8px;align-content:space-between;padding:18px;text-align:left}.metric-card .metric-label{min-height:2.5em}.metric-card strong{font-size:2.1rem;font-variant-numeric:tabular-nums}.metric-card:hover,.risk-line:hover,.location-row:hover,.admin-controls button:hover{border-color:#6db7ff73;background:#6db7ff14}.split-section,.locations-section{display:grid;gap:20px;padding:20px clamp(20px,4vw,56px)}.split-section{grid-template-columns:1fr}.timeline-panel,.data-panel{padding:22px}.section-title-row{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:18px}.section-title-row h2,.refresh-card h2,.receipt-modal h2,.location-drawer h2{margin:0;font-size:1.45rem;letter-spacing:0}.timeline-rail{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.timeline-item{min-height:220px;padding:16px;border-left:2px solid #d6a84f;background:#050a1457}.timeline-item time{color:#d6a84f;font-size:.78rem;font-weight:800}.timeline-item h3{margin:10px 0;font-size:1.05rem}.timeline-item p,.refresh-card p{color:#aab7c8;line-height:1.55}.timeline-item a,.text-link{gap:6px;color:#3de0c2;text-decoration:underline;text-underline-offset:3px;font-size:.9rem}.location-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.location-row{display:grid;gap:6px;padding:13px;text-align:left}.location-row span{display:flex;gap:8px;align-items:center;font-weight:700}.location-row small{color:#aab7c8}.page-section{padding:44px clamp(20px,4vw,56px) 68px}.admin-page{min-height:calc(100vh - 67px);background:radial-gradient(circle at 74% 22%,rgba(61,224,194,.08),transparent 32rem),radial-gradient(circle at 20% 8%,rgba(109,183,255,.08),transparent 28rem)}.admin-page .page-heading h1{font-size:clamp(2.8rem,5vw,4.2rem)}.admin-page .page-heading p{max-width:46ch}.admin-login-page{display:grid;grid-template-columns:minmax(0,.95fr) minmax(340px,560px);gap:clamp(28px,6vw,88px);align-items:center;padding-top:clamp(64px,12vh,126px)}.admin-login-page .page-heading{margin-bottom:0}.admin-login-page .token-panel{width:100%;max-width:none}.admin-login-page .warning-strip{grid-column:2}.page-heading{max-width:940px;margin-bottom:26px}.admin-controls{align-items:center;margin-bottom:22px}.admin-controls button,.refresh-card button{border:1px solid rgba(170,183,200,.17);border-radius:8px;background:#101b2ec7;color:#f4f7fb;padding:10px 12px;cursor:pointer}.admin-controls .secondary-action{border-color:#aab7c82b;background:#050a1447;color:#aab7c8}.refresh-card dl,.receipt-modal dl{display:grid;grid-template-columns:minmax(120px,.42fr) 1fr;gap:10px 16px}.refresh-card dt,.receipt-modal dt{font-size:.8rem;text-transform:uppercase}.refresh-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.admin-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.admin-summary-card,.token-panel{border:1px solid rgba(170,183,200,.15);border-radius:8px;background:linear-gradient(180deg,#101b2ec7,#0a1222d1)}.admin-summary-card{display:grid;gap:8px;padding:16px}.admin-summary-card span{color:#aab7c8;font-size:.78rem}.admin-summary-card strong{font-size:1.9rem;line-height:1}.refresh-group{margin-top:26px}.source-monitor-table{display:grid;overflow:hidden}.source-monitor-row{display:grid;grid-template-columns:minmax(220px,1.1fr) auto minmax(170px,.7fr) minmax(190px,.9fr) minmax(130px,.6fr);gap:16px;align-items:center;padding:14px 16px;border-bottom:1px solid rgba(170,183,200,.12);color:#cdd7e6}.source-monitor-row:last-child{border-bottom:0}.source-monitor-row div{display:grid;gap:4px}.source-monitor-row small{color:#6f7e94}.refresh-card{padding:22px}.attempt-detail-list{display:grid;gap:8px;margin-top:18px;padding-top:16px;border-top:1px solid rgba(170,183,200,.12)}.attempt-detail-list h3{margin:0;color:#f4f7fb;font-size:.86rem}.attempt-detail-list p{margin:0;color:#aab7c8;font-size:.9rem;line-height:1.45}.discovery-query-list{display:grid;gap:10px}.discovery-query-row{display:grid;grid-template-columns:minmax(240px,1fr) minmax(150px,.35fr) minmax(160px,.35fr);gap:16px;align-items:center;padding:14px 16px;border:1px solid rgba(170,183,200,.12);border-radius:8px;background:#060d1999;color:#cdd7e6}.discovery-query-row strong{color:#f4f7fb;overflow-wrap:anywhere}.discovery-query-row small{color:#6f7e94}.refresh-card blockquote,.receipt-modal blockquote{margin:18px 0;padding:14px 16px;border-left:3px solid #3de0c2;background:#3de0c214;color:#d9fff8}.admin-controls label{display:grid;gap:6px;color:#aab7c8}.token-panel{display:grid;gap:14px;max-width:560px;padding:22px}.token-panel label{display:grid;gap:8px;color:#aab7c8}.token-panel input{width:100%;border:1px solid rgba(170,183,200,.18);border-radius:8px;background:#050a14b8;color:#f4f7fb;padding:10px 12px}.token-panel button{justify-self:start;border:1px solid rgba(61,224,194,.38);border-radius:8px;background:#3de0c21f;color:#d9fff8;padding:10px 14px;cursor:pointer}.modal-backdrop{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:20px;background:#02050bb8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.receipt-modal{position:relative;width:min(620px,100%);padding:26px}.close-button{position:absolute;top:16px;right:16px;display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(170,183,200,.18);border-radius:8px;background:#050a1485;cursor:pointer}.location-drawer{position:fixed;z-index:35;top:88px;right:24px;width:min(430px,calc(100vw - 40px));padding:24px;background:linear-gradient(180deg,#101b2ef5,#070e1bfa);box-shadow:0 24px 90px #00000085}.location-drawer li{margin-bottom:9px;color:#cdd7e6}.loading-shell{display:grid;place-items:center;align-content:center;gap:14px;min-height:100vh;padding:24px;text-align:center}.loading-shell p{max-width:34ch;margin:0;color:#cdd7e6;line-height:1.5}.loading-shell code{max-width:720px;white-space:normal;color:#f8d38b}.loading-globe{width:156px;aspect-ratio:1;border:1px solid rgba(109,183,255,.3);border-radius:50%;background:radial-gradient(circle at 38% 35%,#6db7ff3d,#050a142e 58%),linear-gradient(135deg,rgba(61,224,194,.16),transparent 62%);animation:pulse 1.8s ease-in-out infinite}@keyframes idleFloat{0%,to{transform:translateZ(0) rotate(-2deg)}50%{transform:translate3d(0,-12px,0) rotate(2deg)}}@keyframes routeMove{to{stroke-dashoffset:-120}}@keyframes pulse{0%,to{opacity:.72;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(max-width:1180px){.hero-section{grid-template-columns:1fr 1fr}.hero-copy{grid-column:1 / -1}.metrics-band{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:820px){.top-nav{position:static;grid-template-columns:1fr}.source-status{justify-self:start;max-width:none}.hero-section{display:flex;flex-direction:column;min-height:0;gap:18px;padding-top:32px}.hero-copy{order:1}.status-card{order:2}.globe-panel{order:3;display:grid;min-height:0;overflow:hidden}.globe-toolbar{position:relative;inset:auto;align-items:start;padding:18px 18px 0}.globe-toolbar .panel-label{max-width:26ch}.globe-stage{position:relative;min-height:0;aspect-ratio:1.06;padding:0 10px 20px}.globe-orbit{width:min(94%,680px);height:auto;max-height:none}.map-legend{right:16px;bottom:14px;max-width:calc(100% - 32px)}.metrics-band,.split-section,.refresh-grid,.admin-summary{grid-template-columns:1fr}.admin-login-page{grid-template-columns:1fr;align-items:start;padding-top:44px}.admin-login-page .warning-strip{grid-column:auto}.source-monitor-row,.discovery-query-row{grid-template-columns:1fr}.location-drawer{inset:auto 12px 12px;width:auto;max-height:min(72vh,520px);overflow:auto}}@media(max-width:520px){.hero-copy h1,.page-heading h1{font-size:2.7rem}.top-nav{gap:18px;padding:16px 20px}.source-status{display:grid;grid-template-columns:auto auto auto 1fr auto;width:100%;gap:8px}.source-status strong{line-height:1.25}.hero-section{padding-inline:20px}.data-status-strip{padding:12px}.status-card{padding:18px}.case-row{grid-template-columns:repeat(2,minmax(0,1fr))}.case-row span.zero-value{grid-column:1 / -1}.globe-toolbar{display:grid;grid-template-columns:1fr;padding:16px 16px 0}.globe-toolbar>span,.panel-label{align-items:flex-start}.map-filter{justify-self:stretch}.globe-toolbar select{width:100%}.globe-stage{aspect-ratio:1;padding:4px 14px 78px}.globe-orbit{width:min(100%,430px);height:auto;max-height:none;transform:none}.globe-node-button{max-width:148px;min-height:28px;font-size:.68rem;padding:4px 7px 4px 4px}.node-dot{width:11px;height:11px}.map-legend{left:16px;right:16px;bottom:14px;justify-content:flex-start}.metrics-band{grid-template-columns:1fr;gap:12px}.metric-card{min-height:118px;padding:18px}.metric-card .metric-label{min-height:0}.section-title-row{align-items:flex-start}.section-title-row h2{max-width:8ch}.refresh-card dl,.receipt-modal dl{grid-template-columns:1fr}.receipt-modal{max-height:calc(100vh - 40px);overflow:auto;padding:22px}.location-drawer{max-height:min(78vh,620px);padding:22px}}
