:root{--bg-dark: #0a0e17;--panel-bg: rgba(10, 14, 23, .7);--panel-border: rgba(64, 224, 208, .2);--accent: #00ffcc;--accent-glow: rgba(0, 255, 204, .5);--text-main: #e2f1f8;--text-muted: #8a9ba8;--font-heading: "Orbitron", sans-serif;--font-body: "Rajdhani", sans-serif;--airplane-color: #00ffcc;--ship-color: #ff9900}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--bg-dark);color:var(--text-main);overflow:hidden;height:100vh;width:100vw}#app{display:flex;height:100vh;width:100vw;position:relative}.glass-header{position:absolute;top:0;left:0;right:0;height:60px;background:var(--panel-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--panel-border);z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:0 24px;box-shadow:0 4px 30px #00000080}.glass-sidebar{position:absolute;top:80px;right:20px;width:320px;max-height:calc(100vh - 100px);background:var(--panel-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--panel-border);border-radius:12px;z-index:1000;padding:20px;box-shadow:0 8px 32px #0009;display:flex;flex-direction:column;gap:20px;overflow-y:auto}.logo{display:flex;align-items:center;gap:15px}.logo h1{font-family:var(--font-heading);font-weight:700;font-size:1.5rem;letter-spacing:2px;color:var(--text-main);text-shadow:0 0 10px rgba(255,255,255,.2)}.status-indicator{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:1px}.pulse{width:8px;height:8px;background-color:var(--accent);border-radius:50%;box-shadow:0 0 0 0 var(--accent-glow);animation:pulse 2s infinite}@keyframes pulse{0%{transform:scale(.95);box-shadow:0 0 0 0 var(--accent-glow)}70%{transform:scale(1);box-shadow:0 0 0 10px #0fc0}to{transform:scale(.95);box-shadow:0 0 #0fc0}}.stats-bar{display:flex;gap:30px}.stat-item{display:flex;flex-direction:column;align-items:flex-end}.stat-item .label{font-size:.75rem;color:var(--text-muted);letter-spacing:1px}.stat-item .value{font-family:var(--font-heading);font-size:1.25rem;font-weight:600;color:var(--accent)}#ship-count{color:var(--ship-color)}#map-container{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;background-color:#000}h2{font-family:var(--font-heading);font-size:1.1rem;font-weight:500;color:var(--accent);border-bottom:1px solid var(--panel-border);padding-bottom:8px;text-transform:uppercase;letter-spacing:1px}.filter-group{display:flex;flex-direction:column;gap:12px}.filter-group label{display:flex;align-items:center;gap:10px;font-size:1rem;cursor:pointer;transition:color .2s}.filter-group label:hover{color:#fff}input[type=checkbox]{appearance:none;background-color:#ffffff1a;margin:0;font:inherit;color:currentColor;width:1.15em;height:1.15em;border:1px solid var(--panel-border);border-radius:.15em;display:grid;place-content:center;cursor:pointer;transition:all .2s}input[type=checkbox]:before{content:"";width:.65em;height:.65em;transform:scale(0);transition:.12s transform ease-in-out;box-shadow:inset 1em 1em var(--accent);background-color:CanvasText;transform-origin:bottom left;clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%)}input[type=checkbox]:checked:before{transform:scale(1)}input[type=checkbox]:checked{border-color:var(--accent)}.details-panel{background:#0000004d;border-radius:8px;padding:15px;min-height:120px}.placeholder-text{color:var(--text-muted);font-size:.9rem;text-align:center;margin-top:30px;font-style:italic}.entity-info{display:flex;flex-direction:column;gap:10px}.info-row{display:flex;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.05);padding-bottom:5px}.info-label{color:var(--text-muted);font-size:.85rem}.info-value{font-family:var(--font-heading);font-weight:500;font-size:.9rem}.leaflet-container{background:var(--bg-dark)}.leaflet-control-zoom{border:1px solid var(--panel-border)!important;background:var(--panel-bg)!important;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.leaflet-control-zoom a{background:transparent!important;color:var(--accent)!important;border-bottom:1px solid var(--panel-border)!important}.leaflet-control-zoom a:hover{background:#00ffcc1a!important}.plane-marker svg,.ship-marker svg{transition:transform .5s linear}.plane-marker svg path{fill:var(--airplane-color);filter:drop-shadow(0px 0px 3px var(--accent-glow))}.ship-marker svg path{fill:var(--ship-color);filter:drop-shadow(0px 0px 3px rgba(255,153,0,.5))}.military-value{color:#f33!important}.action-btn{font-family:var(--font-body);font-size:.9rem;font-weight:600;padding:10px 16px;border:1px solid var(--panel-border);border-radius:8px;background:#00ffcc14;color:var(--accent);cursor:pointer;transition:all .2s;width:100%;text-align:center}.action-btn:hover{background:#00ffcc26;border-color:var(--accent);box-shadow:0 0 15px #00ffcc26}.action-btn.active{background:#0fc3;border-color:var(--accent);box-shadow:0 0 20px #00ffcc4d;animation:btn-pulse 1.5s ease-in-out infinite}@keyframes btn-pulse{0%,to{box-shadow:0 0 15px #0fc3}50%{box-shadow:0 0 25px #00ffcc80}}.action-btn.secondary{background:#ff333314;color:#f33;border-color:#ff33334d}.action-btn.secondary:hover{background:#ff333326;border-color:#f33;box-shadow:0 0 15px #ff333326}.leaflet-draw-toolbar a{background-color:var(--panel-bg)!important;border-color:var(--panel-border)!important;color:var(--accent)!important}.leaflet-draw-toolbar a:hover{background-color:#00ffcc1a!important}.outage-pulse{animation:outage-glow 2s ease-in-out infinite}@keyframes outage-glow{0%,to{opacity:.6}50%{opacity:1}}.outage-tooltip{background:#0a0e17f2!important;border:1px solid #ff0044!important;color:#e2f1f8!important;font-family:Rajdhani,sans-serif!important;font-size:.85rem!important;padding:10px 14px!important;border-radius:8px!important;max-width:300px!important;box-shadow:0 4px 20px #ff00444d!important}.outage-tooltip:before{border-bottom-color:#f04!important}.camera-value{color:#a6f!important}.camera-popup{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:#000000b3;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.camera-popup-inner{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:16px;min-width:400px;max-width:700px;max-height:80vh;overflow-y:auto;box-shadow:0 20px 60px #000c}.camera-popup-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--panel-border)}.camera-popup-header span{font-family:var(--font-heading);font-size:.95rem;color:#a6f;letter-spacing:1px}.camera-popup-header button{background:none;border:none;color:var(--text-muted);font-size:1.8rem;cursor:pointer;line-height:1;transition:color .2s}.camera-popup-header button:hover{color:#f33}.camera-popup-body{padding:20px;display:flex;flex-direction:column;gap:12px}.camera-screenshot,.camera-stream{width:100%;border-radius:8px;border:1px solid var(--panel-border)}.camera-stream-wrap{position:relative;min-height:200px;background:#000;border-radius:8px;overflow:hidden}.camera-link{color:#a6f;text-decoration:none;font-size:.9rem;padding:8px 12px;border:1px solid rgba(170,102,255,.3);border-radius:6px;text-align:center;transition:all .2s}.camera-link:hover{background:#aa66ff1a;border-color:#a6f}.camera-iframe{width:100%;height:300px;border:none;border-radius:8px}.camera-rtsp-info{background:#0006;border:1px solid rgba(170,102,255,.3);border-radius:8px;padding:16px;text-align:center}.camera-rtsp-info code{display:block;margin-top:8px;padding:8px 12px;background:#00000080;border-radius:4px;font-family:monospace;color:#a6f;word-break:break-all;-webkit-user-select:all;user-select:all}.camera-details{color:var(--text-muted);font-size:.8rem;text-align:center;padding-top:4px;border-top:1px solid rgba(255,255,255,.05)}#news-feed-pane{position:fixed;left:0;top:60px;width:320px;bottom:36px;background:#080c14eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-right:1px solid rgba(255,255,255,.08);z-index:800;display:flex;flex-direction:column;overflow:hidden}.news-pane-header{background:#ff323226;color:#f44;font-family:var(--font-heading);font-weight:700;font-size:.85rem;padding:10px 15px;letter-spacing:2px;border-bottom:1px solid rgba(255,50,50,.2);text-align:center}.news-feed-list{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:6px}.news-feed-item{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:6px;padding:10px 12px;cursor:pointer;transition:background .2s,border-color .2s}.news-feed-item:hover{background:#ffffff14;border-color:#ffffff26}.news-feed-item .news-feed-source{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.news-feed-item .news-feed-title{font-size:.85rem;color:#e2f1f8;line-height:1.3}.news-feed-item .news-feed-title a{color:inherit;text-decoration:none}.news-feed-item .news-feed-title a:hover{text-decoration:underline}.news-feed-item .news-feed-time{font-size:.65rem;color:#ffffff4d;margin-top:4px}#markets-ticker-bar{position:fixed;bottom:0;left:0;width:100%;height:36px;background:#080c14f2;border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;z-index:1000;overflow:hidden}.markets-label{background:#00c86426;color:#0c6;font-family:var(--font-heading);font-weight:700;font-size:.75rem;padding:0 12px;height:100%;display:flex;align-items:center;letter-spacing:1px;white-space:nowrap;border-right:1px solid rgba(255,255,255,.1)}.markets-ticker-content{flex:1;display:flex;align-items:center;gap:30px;padding:0 20px;overflow:hidden;white-space:nowrap;font-family:var(--font-body);font-size:.85rem}.market-item{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.market-item .market-name{color:#ffffff80;font-weight:600;font-size:.75rem;letter-spacing:.5px}.market-item .market-price{color:#fff;font-weight:600}.market-item .market-change.up{color:#0c6}.market-item .market-change.down{color:#f44}.custom-select{background:#0a0e17cc;color:var(--text-main);border:1px solid var(--panel-border);border-radius:6px;padding:8px 12px;font-family:var(--font-body);font-size:.95rem;width:100%;cursor:pointer;outline:none}.custom-select option{background:var(--bg-dark);color:var(--text-main)}.explorer-body{display:flex;gap:20px;padding:20px;height:calc(100% - 60px)}.explorer-col{flex:1;display:flex;flex-direction:column;background:#0006;border-radius:12px;border:1px solid rgba(255,255,255,.05);overflow:hidden}.explorer-col h3{background:#ffffff0d;padding:12px 15px;font-family:var(--font-heading);font-size:1rem;border-bottom:1px solid rgba(255,255,255,.1);text-transform:uppercase;color:var(--accent)}.explorer-list{flex:1;overflow-y:auto;padding:15px;display:flex;flex-direction:column;gap:15px}.explorer-item{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:12px;transition:background .2s}.explorer-item:hover{background:#ffffff14}.explorer-item-header{display:flex;justify-content:space-between;margin-bottom:8px;font-size:.8rem;color:var(--text-muted)}.explorer-item-title{font-size:1.05rem;font-weight:600;margin-bottom:5px}.explorer-item-title a{color:#fff;text-decoration:none}.explorer-item-title a:hover{color:var(--accent)}.explorer-item-badge{background:#f333;color:#f33;padding:2px 6px;border-radius:4px;font-weight:700}.dark-vessel-value{color:#f04!important}.alert-value{color:#fc0!important}.alert-stat{cursor:pointer;transition:all .3s;position:relative}.alert-stat:hover{transform:scale(1.05)}.alert-stat.has-alerts{animation:alert-glow 1.5s ease-in-out infinite}.alert-stat.has-alerts .alert-value{color:#f40!important}@keyframes alert-glow{0%,to{filter:drop-shadow(0 0 0px transparent)}50%{filter:drop-shadow(0 0 8px rgba(255,68,0,.6))}}.landing-station-pulse{animation:station-pulse 2s ease-in-out infinite}@keyframes station-pulse{0%,to{opacity:.8;filter:drop-shadow(0 0 2px rgba(0,229,255,.3))}50%{opacity:1;filter:drop-shadow(0 0 8px rgba(0,229,255,.8))}}.earthquake-pulse{animation:eq-pulse 2s ease-in-out infinite}@keyframes eq-pulse{0%,to{opacity:.3}50%{opacity:.6}}.leaflet-popup-content-wrapper{background:#0a0e17f2!important;color:#e2f1f8!important;border:1px solid rgba(64,224,208,.3)!important;border-radius:10px!important;font-family:Rajdhani,sans-serif!important;box-shadow:0 8px 32px #0009!important}.leaflet-popup-tip{background:#0a0e17f2!important;border:1px solid rgba(64,224,208,.3)!important}.leaflet-popup-content{margin:12px 16px!important;font-size:.9rem!important;line-height:1.5!important}.leaflet-popup-close-button{color:#8a9ba8!important;font-size:1.2rem!important}.leaflet-popup-close-button:hover{color:#f33!important}input[type=date].custom-select{color-scheme:dark}.glass-sidebar::-webkit-scrollbar,.explorer-list::-webkit-scrollbar,.news-feed-list::-webkit-scrollbar{width:6px}.glass-sidebar::-webkit-scrollbar-track,.explorer-list::-webkit-scrollbar-track,.news-feed-list::-webkit-scrollbar-track{background:transparent}.glass-sidebar::-webkit-scrollbar-thumb,.explorer-list::-webkit-scrollbar-thumb,.news-feed-list::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.glass-sidebar::-webkit-scrollbar-thumb:hover,.explorer-list::-webkit-scrollbar-thumb:hover,.news-feed-list::-webkit-scrollbar-thumb:hover{background:#fff3}.modal-overlay{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:3000;display:flex;align-items:center;justify-content:center}.modal-content.glass{background:var(--panel-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--panel-border);border-radius:16px;padding:24px;box-shadow:0 20px 60px #000000e6;color:var(--text-main);width:400px}.modal-content h3{font-family:var(--font-heading);color:var(--accent);margin-bottom:20px;letter-spacing:1px}.modal-content h4{font-family:var(--font-heading);font-size:.85rem;color:var(--text-muted);margin:15px 0 10px;text-transform:uppercase}.field-group{margin-bottom:15px}.field-group label{display:block;font-size:.75rem;color:var(--text-muted);margin-bottom:5px}.user-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.05)}.user-item:last-child{border-bottom:none}
