*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0f0e0c;--bg-surface: #161412;--bg-panel: #1c1a17;--border: #e8e3d614;--border-strong: #e8e3d62e;--text: #e8e3d6;--text-muted: #b8b3a6;--accent: #c9a96e;--critical: #d6837a;--high: #d4a54a;--medium: #c9a96e;--low: #8a857a;--green: #7ab88a;--font: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--mono: "JetBrains Mono", "Fira Code", monospace}body{font-family:var(--font);background:var(--bg);color:var(--text);height:100vh;overflow:hidden}#app{display:flex;flex-direction:column;height:100vh}#header{display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:48px;background:var(--bg-surface);border-bottom:.5px solid var(--border-strong);z-index:10}.header-left{display:flex;align-items:center;gap:8px}.header-left h1{font-size:15px;font-weight:600;letter-spacing:-.01em}.version{font-size:11px;color:var(--text-muted);background:var(--bg-panel);padding:2px 6px;border-radius:4px}.header-center{display:flex;align-items:center}.stats{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--text-muted);font-family:var(--mono)}.divider{color:var(--border)}.status-dot:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px}.status-dot.connected:before{background:var(--green)}.status-dot.disconnected:before{background:var(--critical)}.header-right{display:flex;align-items:center;gap:8px}select,.header-btn{background:var(--bg-panel);color:var(--text);border:1px solid var(--border);padding:6px 12px;border-radius:6px;font-size:13px;cursor:pointer}select:hover,.header-btn:hover{border-color:var(--accent)}#main{flex:1;position:relative;overflow:hidden}#map-container{width:100%;height:100%}.panel{position:absolute;top:0;right:0;width:380px;height:100%;background:var(--bg-panel);border-left:1px solid var(--border);overflow-y:auto;z-index:5;transition:transform .2s ease}.panel.hidden{transform:translate(100%)}.panel-close{position:absolute;top:12px;right:12px;background:none;border:none;color:var(--text-muted);font-size:20px;cursor:pointer;z-index:1}.panel-close:hover{color:var(--text)}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border)}.panel-header h2{font-size:15px;font-weight:600}.vc-header{padding:20px 16px 16px;border-bottom:.5px solid var(--border-strong)}.vc-risk{margin-bottom:8px}.vc-type{font-size:11px;color:var(--accent);font-weight:500;letter-spacing:.02em;margin-bottom:2px}.vc-name{font-size:20px;font-weight:700;line-height:1.2;margin-bottom:2px}.vc-flag{font-size:12px;color:var(--text-muted);margin-top:4px}.vc-section{padding:14px 16px;border-bottom:.5px solid var(--border)}.vc-section h3{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:10px}.vc-grid{display:flex;flex-direction:column;gap:6px}.vc-row{display:flex;justify-content:space-between;align-items:center;font-size:13px}.vc-label{color:var(--text-muted)}.vc-val{font-family:var(--mono);font-size:12px;text-align:right}.vc-val-wrap{max-width:200px;word-break:break-word;font-size:11px;line-height:1.3}.vc-score{font-weight:600;font-size:14px}.vc-zones{display:flex;flex-wrap:wrap;gap:4px}.vc-zone-tag{font-size:11px;padding:2px 8px;border-radius:4px;background:var(--bg-surface);color:var(--text-muted);border:.5px solid var(--border-strong);text-transform:capitalize}.vc-alerts{border-bottom:none}.vc-alert{padding:10px 0;border-bottom:.5px solid var(--border)}.vc-alert:last-child{border-bottom:none}.vc-alert-head{display:flex;align-items:center;gap:6px;margin-bottom:3px}.vc-alert-type{font-size:11px;font-weight:600;font-family:var(--mono);text-transform:uppercase;letter-spacing:.02em}.vc-alert-time{font-size:11px;color:var(--text-muted);margin-left:auto}.vc-alert-detail{font-size:12px;color:var(--text-muted);line-height:1.4}.vc-empty,.vc-error,.vessel-loading{padding:20px 16px;color:var(--text-muted);font-size:13px}.badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.badge-critical{background:#ef444433;color:var(--critical)}.badge-high{background:#f59e0b33;color:var(--high)}.badge-medium{background:#eab30833;color:var(--medium)}.badge-low{background:#6b728033;color:var(--low)}.badge-clear{background:#22c55e33;color:var(--green)}.badge-sanctioned{background:#ef44444d;color:var(--critical)}.alert-item{padding:12px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s}.alert-item:hover{background:#3b82f60d}.alert-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.alert-type{font-size:12px;font-weight:600;font-family:var(--mono)}.alert-time{font-size:11px;color:var(--text-muted);margin-left:auto}.alert-details{font-size:13px;color:var(--text-muted);line-height:1.4}.alert-vessel{font-size:13px;font-weight:500;color:var(--text)}.vessel-popup .maplibregl-popup-content{background:var(--bg-panel)!important;color:var(--text)!important;border:1px solid var(--border)!important;border-radius:12px!important;padding:0!important;font-family:var(--font)!important;box-shadow:0 8px 32px #0009!important;min-width:220px!important;max-width:260px!important;overflow:hidden}.vessel-popup .maplibregl-popup-tip{border-top-color:var(--bg-panel)!important}.vcard{padding:14px 16px 12px}.vcard-badge{margin-bottom:8px}.vcard-type{font-size:11px;color:var(--accent);font-weight:500;letter-spacing:.02em;margin-bottom:2px}.vcard-name{font-size:16px;font-weight:700;line-height:1.2;margin-bottom:12px}.vcard-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;margin-bottom:14px}.vcard-cell{display:flex;flex-direction:column;gap:1px}.vcard-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.vcard-val{font-size:13px;font-family:var(--mono);font-weight:500}.vcard-cta{display:block;width:100%;padding:10px;background:var(--bg-surface);color:var(--text);border:none;border-top:1px solid var(--border);font-size:13px;font-weight:600;font-family:var(--font);cursor:pointer;margin:0 -16px -12px;width:calc(100% + 32px);transition:background .15s}.vcard-cta:hover{background:var(--accent);color:#fff}@media(max-width:768px){.panel{width:100%}.header-center{display:none}}
