*{box-sizing:border-box} :root{--bg:#0c1115;--panel:#121b21;--line:#26323a;--muted:#a4b2bd;--text:#edf4f7;--accent:#aff4bd}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:7px;background:#1a252c;color:var(--text);padding:9px 13px}button:hover{border-color:#83b49b;background:#25352f}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}input,select,textarea{color:var(--text);background:#0f171c;border:1px solid #37434c;padding:10px;border-radius:6px;min-width:0;width:100%}label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}h1,h2,h3,p{margin-top:0}h1{font-size:28px;letter-spacing:-1px;margin-bottom:0}h2{font-size:17px}h3{font-size:16px}.muted,small{color:var(--muted)}.eyebrow{letter-spacing:2px;font-size:11px;color:var(--muted);margin-bottom:8px}.brand{font-size:22px;font-weight:750;letter-spacing:3px;display:flex;gap:12px;align-items:center}.brandmark{display:grid;place-items:center;background:var(--accent);color:#102119;width:34px;height:34px;border-radius:9px;font-size:23px;font-style:italic}.primary{background:var(--accent);color:#102018;font-weight:650;border-color:var(--accent)}.quiet{background:transparent;border-color:transparent}.login-shell{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;align-items:center;max-width:1300px;margin:auto;padding:50px;gap:100px}.login-card{max-width:460px}.login-card .brand{margin-bottom:70px}.login-card h1{font-size:38px;margin-bottom:18px}.login-card form{display:grid;gap:18px;margin:28px 0 10px}.login-art{height:550px;display:grid;place-content:center;text-align:center;gap:40px;color:var(--muted);letter-spacing:4px;font-size:11px}.orb{width:380px;height:380px;border-radius:50%;border:1px solid #598679;background:repeating-linear-gradient(0deg,transparent 0 23px,#5a8d762b 24px 25px),repeating-linear-gradient(90deg,transparent 0 23px,#5a8d762b 24px 25px),radial-gradient(circle at 30% 30%,#355c4c,#0a141b 75%);box-shadow:0 0 100px #37695933,inset -40px -20px 60px #0009}.sidebar{width:222px;position:fixed;inset:0 auto 0 0;background:#0f171d;border-right:1px solid var(--line);padding:27px 16px;display:flex;flex-direction:column;z-index:1000}.sidebar .brand{margin:0 10px 43px}.nav-label{font-size:10px;letter-spacing:2px;color:var(--muted);margin:0 12px 15px}nav{display:grid;gap:5px}nav button{display:flex;gap:13px;align-items:center;text-align:left;background:none;border-color:transparent;color:var(--muted);padding:11px 13px;font-size:14px}nav button.active{color:var(--accent);background:#23382e;border-color:#304d3d}.sidebar-bottom{margin-top:auto;display:grid;gap:10px;font-size:11px;overflow-wrap:anywhere}.environment{letter-spacing:2px;font-size:10px;color:var(--accent)}main{margin-left:222px;padding:25px 27px}header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.header-actions{display:flex;align-items:center;gap:8px;font-size:12px}.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:20px}.stat{padding:15px 18px;background:var(--panel);border:1px solid var(--line);border-radius:9px}.stat-label{font-size:12px;color:var(--muted)}.stat-value{font-size:27px;font-weight:600;letter-spacing:-1px;margin-top:5px}.stat-value.accent{color:var(--accent)}.filters{display:flex;gap:12px;margin-bottom:17px;align-items:end}.filters label{flex:1}.filters .search-label{flex:1.5}.filters select,.filters input{font-size:13px}.map-layout{display:grid;grid-template-columns:minmax(400px,1fr) 330px;gap:16px}.map-box{border:1px solid var(--line);border-radius:10px;overflow:hidden;position:relative}.map-toolbar{display:flex;align-items:center;gap:14px;padding:10px;background:var(--panel);flex-wrap:wrap}.toggle{flex-direction:row;align-items:center;font-size:12px}.toggle input{width:auto;accent-color:var(--accent)}#map{height:calc(100vh - 370px);min-height:420px;background:#172128}.leaflet-tile-pane{filter:brightness(.6) saturate(.3)}.leaflet-control-attribution{font-size:10px!important;background:#172128dd!important;color:#fff!important}.leaflet-control-attribution a{color:var(--accent)!important}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--panel);color:var(--text)}.leaflet-popup-content button{margin-top:10px}.map-legend{background:#131e25;padding:9px 12px;font-size:11px;color:#b5c3ca}.activity{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}.section-title{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--line)}.section-title h2{margin:0}.section-title span{color:var(--muted);font-size:12px}#activity-list{overflow:auto;height:calc(100vh - 370px);min-height:420px}.event{padding:16px;border-bottom:1px solid var(--line);cursor:pointer}.event:hover{background:#1c2a31}.event h3{font-size:14px;line-height:1.5;margin:8px 0}.event p{font-size:12px;color:var(--muted);margin-bottom:5px}.tag{display:inline-block;color:var(--accent);background:#263c32;font-size:10px;letter-spacing:.7px;border-radius:4px;padding:3px 6px;text-transform:uppercase}.tag.warn{color:#ffd18b;background:#493b23}.tag.error{color:#ffb0a7;background:#4c2825}.empty{padding:35px;color:var(--muted);text-align:center}.notice{padding:15px 18px;border:1px solid #49503a;background:#24291d;border-radius:8px;color:#d0d8b6;margin-bottom:18px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:20px;margin-bottom:18px}.panel form{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.panel form label{flex:1;min-width:170px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;padding:12px;color:var(--muted);font-size:11px;letter-spacing:1px;text-transform:uppercase;border-bottom:1px solid var(--line)}td{padding:13px 12px;border-bottom:1px solid var(--line);vertical-align:top}td small{display:block;max-width:420px;overflow-wrap:anywhere}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:20px}.card h3{margin:10px 0}.card p{color:var(--muted);font-size:13px}a{color:var(--accent);overflow-wrap:anywhere}.row-actions{display:flex;gap:6px}footer{display:flex;justify-content:space-between;gap:15px;color:var(--muted);font-size:11px;margin-top:17px}dialog{max-width:900px;width:92vw;max-height:90vh;background:var(--panel);color:var(--text);border:1px solid #486052;border-radius:12px;padding:32px}dialog::backdrop{background:#000a;backdrop-filter:blur(4px)}.dialog-close{float:right}.detail-text{white-space:pre-wrap;font-size:15px;line-height:1.8}pre{white-space:pre-wrap;word-break:break-word;background:#0c1318;padding:15px;border-radius:7px;font-size:12px}#toast{position:fixed;bottom:30px;right:30px;z-index:5000;background:#d0f5d9;color:#123120;padding:15px 22px;border-radius:8px;max-width:440px}.key-box{font-family:monospace;word-break:break-all;padding:18px;background:#0b1510;color:var(--accent);border:1px solid #45634f}.chart{width:100%;height:160px;background:#0d171b}.chart polyline{fill:none;stroke:var(--accent);stroke-width:2}[hidden]{display:none!important}@media(max-width:1200px){.map-layout{grid-template-columns:1fr 290px}.sidebar{width:190px}main{margin-left:190px;padding:20px}.header-actions .muted{display:none}.filters{flex-wrap:wrap}.filters label{min-width:140px}.stats{gap:7px}.stat{padding:12px}.stat-label{font-size:11px}}@media(max-width:850px){.sidebar{position:static;width:auto;padding:15px}.sidebar .brand{margin:0 0 15px}.nav-label,.sidebar-bottom{display:none}nav{display:flex;overflow:auto}nav button{white-space:nowrap}.sidebar nav span{font-size:12px}main{margin:0;padding:15px}.stats{grid-template-columns:repeat(3,1fr)}.map-layout{grid-template-columns:1fr}#map{height:55vh;min-height:330px}#activity-list{height:400px;min-height:0}.login-shell{display:block;padding:30px}.login-art{display:none}.login-card{margin:40px auto}header{align-items:start}.header-actions{flex-wrap:wrap;justify-content:end}h1{font-size:24px}.filters label{min-width:40%}footer{flex-direction:column}}
