#dashboard #loginMapPanel{padding:0;overflow:hidden;background:#08131f;border-color:#214552}
#dashboard #loginMapPanel h2{margin:5px 0 0}
#dashboard #loginMapPanel h3{padding:0;border:0;margin:0;color:#d8eaf1;font-size:16px}
.login-map-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 28px;border-bottom:1px solid #23404b;background:linear-gradient(100deg,#112f37,#0b1928)}
.login-map-top h2{margin:5px 0 0}.map-kicker{color:#61d9c4;font:11px Consolas,monospace;letter-spacing:3px}
.map-controls{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.map-controls label{display:flex;align-items:center;gap:8px;margin:0}.map-controls select{width:150px}
.map-metrics{display:flex;gap:28px;padding:18px 28px;color:#98b7c6;border-bottom:1px solid #1d3444}.map-metrics strong{font:28px Consolas,monospace;color:#70edd6;margin-right:9px}
.map-metrics span:last-child strong{color:#efcb89}
.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;min-height:560px}
.map-stage{position:relative;min-width:0;overflow:hidden;background:radial-gradient(ellipse at 50% 50%,#10343c55,transparent 67%),radial-gradient(circle at 15% 20%,#79c5e744 1px,transparent 1.5px);background-size:auto,71px 83px}
#loginGlobe{height:610px;width:100%;cursor:grab}#loginGlobe:active{cursor:grabbing}
#loginGlobe canvas{filter:brightness(.8) saturate(1.08)}#loginGlobe.map-close canvas{filter:none}
.map-stage-label small{display:block;font-size:10px;color:#a6bdd0}
.map-zoom-tools{position:absolute;right:18px;top:20px;display:grid;gap:7px}.map-zoom-tools button{width:38px;min-height:36px;padding:3px;background:#0b2033e8;color:#d2eaf7;border:1px solid #467386;font-size:22px}.map-zoom-tools button:hover{background:#21495d}
.map-imagery-state{position:absolute;left:24px;bottom:45px;max-width:calc(100% - 48px);font-size:11px;color:#c4d5e4;background:#071421b8;border-radius:4px;padding:4px 7px}.map-imagery-state button{min-height:22px;padding:2px 6px;font-size:11px;margin-left:8px}
.map-stage-label{position:absolute;top:22px;left:24px;pointer-events:none;color:#8daab9;font:11px/1.9 Consolas,'Microsoft YaHei',sans-serif;letter-spacing:1px}.map-stage-label strong{display:block;color:#f7d294;font-size:13px}
.map-legend{position:absolute;left:24px;bottom:18px;display:flex;gap:20px;pointer-events:none;font-size:12px;color:#b4cbd6}.map-legend span::before{content:'';display:inline-block;width:7px;height:7px;background:#63ead0;border-radius:50%;margin-right:7px;box-shadow:0 0 9px #63ead077}.map-legend span:first-child::before{background:#ffcf75;box-shadow:0 0 9px #ffcf7588}
.map-detail{border-left:1px solid #23404b;background:#0e1c2a;padding:20px;min-width:0}.map-detail-heading{display:flex;gap:10px;align-items:center;justify-content:space-between}.map-detail h3{margin:0;color:#d8eaf1;font-size:16px}.map-detail-heading button{padding:6px 9px;font-size:11px;white-space:nowrap}
#mapRecords{max-height:550px;overflow:auto;margin-top:17px;scrollbar-width:thin}
.map-record{display:block;width:100%;text-align:left;padding:14px;background:#122737;border:1px solid #294758;border-radius:8px;margin:0 0 10px;color:#dcecf5;cursor:pointer}.map-record:hover{border-color:#64dcca;background:#183343}.map-record:focus-visible{outline:2px solid #64dcca;outline-offset:-3px}.map-record:disabled{opacity:1;cursor:default;background:#101e2b}
.map-record-heading{display:flex;justify-content:space-between;gap:9px}.map-record-tag{font-size:10px;color:#99b9c9;flex-shrink:0}.map-record time{display:block;color:#74e4ce;font:14px Consolas,monospace;margin:8px 0}.map-record-station,.map-record-place{display:block;font-size:11px;color:#9eb7c9;line-height:1.7;overflow-wrap:anywhere}.map-record-station{color:#c5d6e2}
.map-footnote{padding:16px 28px;border-top:1px solid #23404b;color:#93adbf;font-size:12px;line-height:1.8}.map-footnote p{margin:0}.map-footnote a{color:#9bc8dd}.map-tooltip{background:#102634f5;color:#dceef3;border:1px solid #53cdbd;border-radius:8px;padding:12px;text-align:left;font-size:12px;box-shadow:0 8px 30px #0008}.map-tooltip p{margin:5px 0}.map-tooltip strong{color:#7decd5}
.map-empty{color:#a4bac9;line-height:1.8}.map-render-status{position:absolute;top:45%;left:12%;width:76%;color:#bdd8e5;line-height:1.8;text-align:center}
@media(max-width:1150px){.map-layout{grid-template-columns:minmax(0,1fr) 280px}.login-map-top{flex-wrap:wrap}#loginGlobe{height:520px}}
@media(max-width:1100px){.map-layout{grid-template-columns:1fr}.map-detail{border-left:0;border-top:1px solid #23404b}#mapRecords{max-height:320px}#loginGlobe{height:440px}.map-metrics{gap:18px;flex-wrap:wrap}.map-metrics strong{font-size:23px}.login-map-top{padding:20px}.map-stage-label{left:16px}.map-controls{width:100%}}

/* One persistent viewport globe; admin pages are translucent overlays. */
#globeBackground{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 50% 55%,#10313c66,transparent 68%),radial-gradient(circle at 15% 20%,#79c5e733 1px,transparent 1.5px),#050d18;background-size:auto,91px 107px}
#globeBackground #loginGlobe{width:100%;height:100%;cursor:default}
#dashboard .page-heading>.map-controls{display:none}
#dashboard .page-heading>.map-controls::before{content:none}
body.map-interactive #dashboard .page-heading>.map-controls{display:flex;pointer-events:auto;gap:9px}
body.map-interactive #dashboard .page-heading{flex-wrap:wrap;gap:10px}
body.map-interactive #dashboard .page-heading .map-controls label{flex-direction:row;gap:8px;color:#b8ccdc}
body.map-interactive #globeBackground{pointer-events:auto}
body.map-interactive #loginGlobe{cursor:grab}body.map-interactive #loginGlobe:active{cursor:grabbing}
.globe-attribution{position:absolute;bottom:5px;right:12px;max-width:90%;font-size:9px;color:#9aafc1;background:#07121cc9;padding:3px 6px;border-radius:3px;pointer-events:auto}
.globe-attribution a{color:inherit}
body.console-globe>header,body.console-globe>main,body.console-globe>footer{position:relative;z-index:1}
body.console-globe>header{background:transparent;border:0;backdrop-filter:none;box-shadow:none;pointer-events:none;text-shadow:0 2px 10px #000}
body.console-globe>header>div{display:block}body.console-globe>header>div::before{display:none}
body.console-globe>header small{display:block;margin-top:5px}body.console-globe>header #logout{pointer-events:auto;background:#0b1b2b9c}
.console-actions{display:none}
body.console-globe>header>.console-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;pointer-events:none}
body.console-globe .console-actions .map-controls{display:none}
body.map-interactive .console-actions .map-controls{display:flex;align-items:center;gap:9px;width:auto}
body.console-globe .console-actions button,body.console-globe .console-actions select{pointer-events:auto}
body.console-globe .console-actions .map-controls label{flex-direction:row;align-items:center;color:#b8ccdc}
body.console-globe .console-actions #refresh{min-height:34px;padding:8px 13px;background:#0b1b2b9c}
body.console-globe #dashboard .page-heading{display:none}
body.console-globe #dashboard .metric{height:90px;padding:12px 18px;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:1fr auto;column-gap:15px;align-items:center}
body.console-globe #dashboard .metric-label{font-size:12px;justify-content:flex-start}
body.console-globe #dashboard .metric-label svg{width:20px;height:20px;padding:5px;order:-1;border-radius:8px}
body.console-globe #dashboard .metric strong{grid-column:2;grid-row:1/3;margin:0;font-size:32px;line-height:1.1}
body.console-globe #dashboard .metric small{grid-column:1;grid-row:2;font-size:10px;line-height:1.5;margin-top:3px}
@media(max-width:1100px){body.console-globe>header{gap:12px;padding-left:24px;padding-right:24px}body.console-globe>header>.console-actions{gap:7px}body.console-globe .console-actions .map-controls select{width:120px}body.console-globe .console-actions .map-controls button{padding:8px 10px;font-size:11px}}
@media(max-width:760px){body.console-globe>header{height:auto;min-height:96px;padding:16px;flex-wrap:wrap;gap:14px}body.console-globe>header>.console-actions{width:100%;flex-wrap:wrap;justify-content:flex-start}body.console-globe #dashboard .metric{height:90px;padding:10px;column-gap:7px}body.console-globe #dashboard .metric-label svg{display:none}body.console-globe #dashboard .metric-label{font-size:10px}body.console-globe #dashboard .metric strong{font-size:25px}body.console-globe #dashboard .metric small{font-size:9px}}
body.console-globe>main{max-width:none}
body.console-globe>footer{background:#07121a80;padding-bottom:28px}
body.console-globe #dashboard .sidebar{background:#09152280;border:1px solid #58738838;border-radius:14px;padding:18px 12px;backdrop-filter:blur(8px)}
body.console-globe #dashboard section{background:#101e2c9c;border-color:#68879f4d;backdrop-filter:blur(7px)}
body.console-globe #dashboard .metric{background:linear-gradient(115deg,#172e419e,#0b182586);backdrop-filter:blur(7px)}
body.console-globe .scroll{background:#09172661}body.console-globe th{background:#172b3cb3}body.console-globe tbody tr:hover{background:#2546598c}
body.console-globe .page-heading{text-shadow:0 2px 10px #000}
body.console-globe dialog{background:#102131dc;backdrop-filter:blur(14px)}body.console-globe dialog::backdrop{background:#030a1455;backdrop-filter:blur(3px)}
body.console-globe #detailsDialog .details-heading{background:#102131c9}
body.map-interactive>main,body.map-interactive>footer{pointer-events:none}
body.map-interactive #dashboard .sidebar,body.map-interactive #message,body.map-interactive #refresh{pointer-events:auto}
body.map-interactive #dashboard .page-heading{margin:0 0 12px;justify-content:flex-end;min-height:36px}
body.map-interactive #dashboard .page-heading>div{display:none}
body.map-interactive #dashboard #loginMapPanel{position:relative;height:calc(100svh - 180px);min-height:580px;overflow:visible;background:transparent;border:0;box-shadow:none;backdrop-filter:none;pointer-events:none}
body.map-interactive .login-map-top{position:relative;z-index:1;padding:14px 18px;border:1px solid #4a72834d;border-radius:12px;background:#0c22328c;backdrop-filter:blur(8px);pointer-events:auto}
body.map-interactive .map-controls{width:auto}
body.map-interactive .map-metrics{display:flex;position:relative;z-index:1;gap:22px;padding:14px 18px;border:0;text-shadow:0 2px 5px #000}
body.map-interactive .map-metrics strong{font-size:24px}
body.map-interactive .map-layout{display:block;min-height:0}
body.map-interactive .map-stage{position:absolute;inset:50px 320px 90px 0;background:none;overflow:visible}
body.map-interactive .map-stage-label{top:8px;left:18px;padding:8px 10px;background:#08182485;border-radius:7px;text-shadow:0 1px 5px #000}
body.map-interactive .map-zoom-tools{top:8px;right:10px;pointer-events:auto}
body.map-interactive .map-imagery-state{bottom:36px;left:18px;pointer-events:auto}
body.map-interactive .map-legend{left:18px;bottom:6px;text-shadow:0 1px 4px #000}
body.map-interactive .map-detail{position:absolute;right:0;top:55px;bottom:88px;width:300px;min-height:220px;padding:16px;border:1px solid #49788b59;border-radius:12px;background:#0c1d2d99;backdrop-filter:blur(8px);display:flex;flex-direction:column;pointer-events:auto}
body.map-interactive #mapRecords{min-height:0;max-height:none;flex:1}
body.map-interactive .map-record{background:#102a3b91;border-color:#527b8b61}body.map-interactive .map-record:hover{background:#214657c4}
body.map-interactive .map-footnote{position:absolute;bottom:0;left:0;right:0;padding:10px 16px;border:1px solid #557b8e3b;border-radius:10px;background:#0a192aa8;backdrop-filter:blur(6px);font-size:11px;line-height:1.65;pointer-events:auto}
body.map-interactive .map-footnote p:last-child{display:none}
@media(max-width:1100px){body.map-interactive .login-map-top{gap:10px}body.map-interactive .map-detail{width:260px;top:60px}body.map-interactive .map-stage{right:275px;top:55px}body.map-interactive .map-metrics{gap:12px}body.map-interactive .map-metrics strong{font-size:21px}}
@media(max-width:760px){body.console-globe #dashboard .sidebar{padding:7px}body.map-interactive #dashboard #loginMapPanel{height:auto;min-height:880px}body.map-interactive .login-map-top{padding:12px}body.map-interactive .map-controls{gap:6px}body.map-interactive .map-controls select{width:115px}body.map-interactive .map-controls button{padding:8px;font-size:11px}body.map-interactive .map-stage{top:50px;right:0;bottom:385px}body.map-interactive .map-detail{top:auto;bottom:110px;width:100%;height:255px;min-height:0}body.map-interactive .map-footnote{min-height:94px}body.map-interactive .map-metrics{padding:12px 4px;font-size:11px}body.map-interactive .map-metrics strong{font-size:19px;margin-right:5px}.globe-attribution{font-size:8px}}
