*{box-sizing:border-box}html,body,#root{margin:0;height:100%;font-family:system-ui,sans-serif}.app{position:absolute;top:0;right:0;bottom:0;left:0}.map-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#789;background:#e8eef2}.topbar{position:absolute;top:0;left:0;right:0;z-index:10;display:flex;align-items:center;flex-wrap:nowrap;gap:12px;padding:8px 12px;background:#ffffffeb;box-shadow:0 1px 4px #00000026}.brand{font-weight:700;color:#1565c0}.brand{white-space:nowrap;flex-shrink:0}.app.dark .topbar{background:#121316d9;box-shadow:0 1px 4px #00000080}.app.dark .brand{color:#4a9eff}.app.dark .count{color:#b0bec5}.app.dark .menu-toggle{background:#ffffff14;border-color:#fff3;color:#e8eaed}.app.dark .menu-toggle:hover{background:#ffffff29}.app.dark .maplibregl-ctrl-attrib{background:#141416bf}.app.dark .maplibregl-ctrl-attrib a{color:#9ecbff}.app.dark .maplibregl-ctrl-attrib-button{filter:invert(1)}.app.dark .maplibregl-ctrl-group{background:#2d3138e6;border:1px solid rgba(255,255,255,.14);box-shadow:0 2px 8px #00000080}.app.dark .maplibregl-ctrl-group button{background:transparent}.app.dark .maplibregl-ctrl-group button+button{border-top-color:#ffffff24}.app.dark .maplibregl-ctrl-group button:hover{background:#ffffff1a}.app.dark .maplibregl-ctrl-group button .maplibregl-ctrl-icon{filter:invert(1)}.app.dark .maplibregl-ctrl-group button:disabled .maplibregl-ctrl-icon{opacity:.35}.app.dark .menu-panel{background:#23262b;border-color:#ffffff24;color:#e8eaed;box-shadow:0 4px 16px #00000080}.app.dark .menu-search{background:transparent;color:#e8eaed;border-bottom-color:#ffffff1a}.app.dark .menu-actions,.app.dark .menu-window,.app.dark .menu-active{border-bottom-color:#ffffff14}.app.dark .menu-window input,.app.dark .menu-active input[type=number],.app.dark .menu-actions button{background:#ffffff14;border-color:#ffffff2e;color:#e8eaed}.app.dark .menu-list li label:hover,.app.dark .group-load:hover{background:#ffffff0f}.app.dark .menu-hint,.app.dark .feed-provider{color:#8b9199}.app.dark .menu-empty{color:#7a8087}.app.dark .pilot-nofix{color:#8b9199;border-color:#ffffff2e}.app.dark .auth-form,.app.dark .group-save,.app.dark .profile-feeds{border-top-color:#ffffff14}.app.dark .auth-form input,.app.dark .auth-form textarea,.app.dark .group-save input[type=text],.app.dark .group-save input:not([type]),.app.dark .feed-row input,.app.dark .feed-add select,.app.dark .sim-field input,.app.dark .sim-waypoints{background:#ffffff0f;border-color:#ffffff2e;color:#e8eaed}.app.dark .menu-search::placeholder,.app.dark .auth-form input::placeholder,.app.dark .auth-form textarea::placeholder,.app.dark .group-save input::placeholder,.app.dark .feed-row input::placeholder{color:#7a8087}.app.dark .auth-signout,.app.dark .sim-row button,.app.dark .feed-row-actions button{background:#ffffff14;border-color:#ffffff2e;color:#e8eaed}.app.dark .feed-row-actions button.danger,.app.dark .sim-del{color:#ef9a9a}.controls{position:absolute;bottom:12px;left:60px;z-index:10;display:flex;gap:8px;align-items:center}.controls>button,.controls .sim-panel>.menu-toggle,.controls .admin-panel>.menu-toggle,.controls .live-status>.live-toggle{display:inline-flex;align-items:center;height:38px;padding:0 14px;border:none;border-radius:8px;background:#141414b3;color:#fff;font-size:13px;cursor:pointer;box-shadow:0 1px 4px #0000004d}.controls>button:hover,.controls .sim-panel>.menu-toggle:hover,.controls .admin-panel>.menu-toggle:hover,.controls .live-status>.live-toggle:hover{background:#141414d9}.controls>button:disabled{color:#b0bec5}.app.dark .controls>button,.app.dark .controls .sim-panel>.menu-toggle,.app.dark .controls .admin-panel>.menu-toggle,.app.dark .controls .live-status>.live-toggle,.app.dark .layer-toggle{background:#2d3138e6;border:1px solid rgba(255,255,255,.14)}.app.dark .controls>button:hover,.app.dark .controls .sim-panel>.menu-toggle:hover,.app.dark .controls .admin-panel>.menu-toggle:hover,.app.dark .controls .live-status>.live-toggle:hover,.app.dark .layer-toggle:hover{background:#ffffff24}.controls .menu-panel{position:fixed;top:auto;bottom:60px;left:12px;right:auto;width:min(300px,calc(100vw - 24px))}.live-status{position:relative}.live-toggle{gap:7px}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-dot.on{background:#43a047;box-shadow:0 0 0 2px #43a04759}.status-dot.off{background:#9e9e9e}.live-pop{position:absolute;bottom:calc(100% + 8px);left:0;min-width:160px;padding:8px 10px;background:#141414eb;color:#fff;border-radius:8px;box-shadow:0 2px 12px #0006;font-size:12px}.live-pop-head{font-weight:600;margin-bottom:4px}.live-pop-link{display:block;width:100%;text-align:left;padding:0;margin-bottom:4px;border:none;background:none;color:#64b5f6;font-size:13px;font-weight:600;cursor:pointer}.live-pop-link:hover{text-decoration:underline}.live-pop-row{display:flex;justify-content:space-between;gap:12px;color:#cfd8dc}.live-pop-row span:first-child{color:#90a4ae}.live-pop-muted{color:#b0bec5}.app.dark .live-pop{background:#2d3138f5;border:1px solid rgba(255,255,255,.14)}.layer-ctrl{position:absolute;bottom:12px;left:12px;z-index:10;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.layer-toggle{width:38px;height:38px;border:none;border-radius:8px;background:#141414b3;color:#fff;font-size:18px;line-height:1;cursor:pointer;box-shadow:0 1px 4px #0000004d}.layer-list{list-style:none;margin:0;padding:4px;background:#141414e0;border-radius:8px;box-shadow:0 2px 12px #0006}.layer-list button{display:block;width:100%;text-align:left;white-space:nowrap;padding:7px 14px;border:none;border-radius:5px;background:none;color:#fff;font-size:13px;cursor:pointer}.layer-list button:hover{background:#ffffff1f}.layer-list button.active{background:#1565c0}.gradient-toggle{width:38px;height:38px;border:none;border-radius:8px;background:#141414b3;color:#fff;font-size:18px;line-height:1;cursor:pointer;box-shadow:0 1px 4px #0000004d}.gradient-toggle.active{background:#1565c0}.app.dark .gradient-toggle{background:#2d3138e6;border:1px solid rgba(255,255,255,.14)}.app.dark .gradient-toggle:hover{background:#ffffff24}.app.dark .gradient-toggle.active{background:#1565c0;border-color:#1565c0}.gradient-legend{display:flex;flex-direction:column;gap:6px;padding:8px;background:#141414e0;border-radius:8px;box-shadow:0 2px 12px #0006;color:#fff}.app.dark .gradient-legend{background:#2d3138f5;border:1px solid rgba(255,255,255,.14)}.gradient-range{display:flex;gap:4px}.gradient-range button{flex:1;padding:4px 8px;border:none;border-radius:5px;background:#ffffff1f;color:#fff;font-size:12px;cursor:pointer}.gradient-range button.active{background:#1565c0}.gradient-scale{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;font-weight:600}.gradient-bar{width:12px;height:90px;border-radius:3px}.err{color:#c62828;font-size:12px;background:#ffffffe6;padding:2px 6px;border-radius:4px}.nav-right{flex:1;min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:12px}.nav-item{display:flex;align-items:center}.nav-item.compact .menu-label{display:none}.pilot-menu,.activity-menu,.group-panel,.sim-panel,.auth{position:relative}.menu-toggle{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid #90a4ae;border-radius:6px;background:#fff;color:#263238;cursor:pointer;font-size:13px;white-space:nowrap}.menu-icon{line-height:1}.menu-panel{position:absolute;top:36px;right:0;width:260px;max-height:60vh;display:flex;flex-direction:column;background:#fff;border:1px solid #cfd8dc;border-radius:8px;box-shadow:0 4px 16px #0000002e;overflow:hidden}.menu-search{border:none;border-bottom:1px solid #eee;padding:8px 10px;font-size:14px;outline:none}.menu-actions{display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid #f0f0f0}.menu-actions button{font-size:12px;padding:3px 8px;border:1px solid #cfd8dc;border-radius:4px;background:#f5f5f5;cursor:pointer}.menu-hint{font-size:11px;color:#789}.menu-window,.menu-active{display:flex;align-items:baseline;gap:8px;padding:6px 10px;border-bottom:1px solid #f0f0f0}.menu-window label,.menu-active label{display:flex;align-items:center;gap:5px;font-size:12px;white-space:nowrap}.menu-window input,.menu-active input[type=number]{width:4.5em;padding:3px 6px;font-size:12px;border:1px solid #cfd8dc;border-radius:4px}.menu-active input[type=number]:disabled{opacity:.5}.menu-list{list-style:none;margin:0;padding:4px 0;overflow-y:auto}.menu-list li label{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:13px;cursor:pointer}.menu-list li label:hover{background:#f5f7fa}.pilot-name{flex:1}.pilot-nofix{font-size:10px;color:#9e9e9e;border:1px solid #e0e0e0;border-radius:3px;padding:0 4px}.menu-empty{padding:10px;color:#9e9e9e;font-size:13px;text-align:center}.menu-actions button.active{background:#1565c0;color:#fff;border-color:#1565c0}.auth-form,.group-save{display:flex;flex-direction:column;gap:8px;padding:10px;border-top:1px solid #f0f0f0}.auth-form input,.auth-form textarea,.group-save input[type=text],.group-save input:not([type]){padding:7px 9px;border:1px solid #cfd8dc;border-radius:5px;font-size:13px;outline:none}.auth-form textarea{resize:vertical;font-family:inherit}.auth-form button[type=submit],.group-save button[type=submit]{padding:7px 10px;border:none;border-radius:5px;background:#1565c0;color:#fff;font-size:13px;cursor:pointer}.auth-form button[type=submit]:disabled,.group-save button[type=submit]:disabled{background:#90a4ae;cursor:default}.auth-me{display:flex;flex-direction:column;gap:2px;padding:10px}.auth-me .badge{align-self:flex-start;margin-top:4px;font-size:10px;text-transform:uppercase;background:#6a1b9a;color:#fff;border-radius:3px;padding:1px 6px}.auth-signout{margin:0 10px 10px;padding:7px 10px;border:1px solid #cfd8dc;border-radius:5px;background:#f5f5f5;cursor:pointer;font-size:13px}.profile-edit{display:flex;flex-direction:column;overflow-y:auto}.profile-edit .auth-form label{margin-bottom:-4px}.profile-feeds{display:flex;flex-direction:column;gap:8px;padding:10px;border-top:1px solid #f0f0f0}.feed-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.feed-provider{flex:0 0 100%;font-size:11px;color:#455a64;font-weight:600}.feed-row input{flex:1 1 100%;padding:6px 8px;border:1px solid #cfd8dc;border-radius:5px;font-size:12px;outline:none}.feed-row-actions{display:flex;gap:6px}.feed-row-actions button,.feed-add button[type=submit]{font-size:12px;padding:5px 9px;border:1px solid #cfd8dc;border-radius:5px;background:#f5f5f5;cursor:pointer}.feed-row-actions button:disabled,.feed-add button[type=submit]:disabled{opacity:.5;cursor:default}.feed-row-actions button.danger{color:#c62828;border-color:#ef9a9a}.feed-add select{padding:7px 9px;border:1px solid #cfd8dc;border-radius:5px;font-size:13px}.feed-add button[type=submit]{background:#1565c0;color:#fff;border-color:#1565c0}.group-row{display:flex;align-items:center}.group-load{display:block;flex:1;min-width:0;text-align:left;border:none;background:none;padding:6px 10px;font-size:13px;cursor:pointer}.group-load:hover{background:#f5f7fa}.group-mine{margin-left:6px;padding:1px 6px;border-radius:8px;background:#e3f0ff;color:#1565c0;font-size:11px;font-weight:600;vertical-align:middle}.group-delete{flex:none;border:none;background:none;color:#9aa0a6;padding:4px 10px;font-size:16px;line-height:1;cursor:pointer}.group-delete:hover{color:#c5221f}.app.dark .group-mine{background:#1565c047;color:#9ec4ff}.app.dark .group-delete:hover{color:#f28b82}.group-public{display:flex;align-items:center;gap:6px;font-size:13px}.pilot-elev-label{pointer-events:none;font-size:11px;font-weight:600;line-height:1;color:#fff;background:#141414b3;padding:2px 5px;border-radius:4px;white-space:nowrap}.pilot-cluster-label{pointer-events:none;font-size:11px;font-weight:700;line-height:1;color:#fff;background:#141414bf;padding:1px 4px;border-radius:999px;text-align:center;white-space:nowrap}.pilot-popup{font-size:12px;line-height:1.5;color:#222}.pilot-popup a{display:inline-block;margin-top:4px;color:#1565c0;font-weight:600;text-decoration:none}.pilot-popup a:hover{text-decoration:underline}.pilot-popup-note{margin-top:6px;padding-top:6px;border-top:1px solid rgba(0,0,0,.12);white-space:pre-wrap;overflow-wrap:anywhere;color:#555}.maplibregl-popup-content{padding:8px 10px;border-radius:6px}.app.dark .maplibregl-popup-content{background:#23262b;color:#e8eaed;box-shadow:0 4px 16px #00000080}.app.dark .maplibregl-popup-anchor-top .maplibregl-popup-tip,.app.dark .maplibregl-popup-anchor-top-left .maplibregl-popup-tip,.app.dark .maplibregl-popup-anchor-top-right .maplibregl-popup-tip{border-bottom-color:#23262b}.app.dark .maplibregl-popup-anchor-bottom .maplibregl-popup-tip,.app.dark .maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip,.app.dark .maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{border-top-color:#23262b}.app.dark .maplibregl-popup-anchor-left .maplibregl-popup-tip{border-right-color:#23262b}.app.dark .maplibregl-popup-anchor-right .maplibregl-popup-tip{border-left-color:#23262b}.app.dark .maplibregl-popup-close-button{color:#8b9199}.app.dark .pilot-popup{color:#e8eaed}.app.dark .pilot-popup a{color:#6ab0ff}.app.dark .pilot-popup-note{border-top-color:#ffffff26;color:#b8bcc2}.sim-menu{width:300px}.sim-row{display:flex;align-items:center;gap:6px;padding:5px 10px;font-size:13px}.sim-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sim-row button{font-size:11px;padding:3px 6px;border:1px solid #cfd8dc;border-radius:4px;background:#f5f5f5;cursor:pointer}.sim-del{color:#c62828}.sim-field{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px}.sim-field input{width:90px;padding:6px 8px;border:1px solid #cfd8dc;border-radius:5px;font-size:13px}.sim-waypoints{border:1px solid #cfd8dc;border-radius:5px;padding:7px 9px;font-size:12px;font-family:ui-monospace,monospace;resize:vertical}.admin-panel{position:relative}.admin-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;background:#00000080}.admin-modal{display:flex;flex-direction:column;width:min(920px,100%);max-height:100%;background:#fff;border-radius:10px;box-shadow:0 8px 40px #00000059;overflow:hidden}.app.dark .admin-modal{background:#23262b;color:#e8eaed}.admin-head{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid #eceff1}.app.dark .admin-head{border-bottom-color:#ffffff1a}.admin-tabs{display:flex;gap:4px}.admin-tabs button{padding:6px 14px;border:1px solid #cfd8dc;border-radius:6px;background:#f5f5f5;font-size:13px;cursor:pointer}.admin-tabs button.active{background:#1565c0;color:#fff;border-color:#1565c0}.app.dark .admin-tabs button{background:#2d3138;border-color:#ffffff24;color:#e8eaed}.app.dark .admin-tabs button.active{background:#1565c0;border-color:#1565c0}.admin-close{border:none;background:none;font-size:22px;line-height:1;color:#607d8b;cursor:pointer;padding:0 4px}.admin-close:hover{color:#263238}.app.dark .admin-close{color:#8b9199}.app.dark .admin-close:hover{color:#e8eaed}.admin-body{display:flex;flex-direction:column;gap:8px;padding:12px;overflow-y:auto}.admin-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.admin-toolbar .menu-search{flex:1 1 200px}.admin-bulk{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px;padding:6px 8px;border-radius:6px;background:#eef4fb}.app.dark .admin-bulk{background:#1565c02e}.admin-bulk label{display:flex;flex-direction:column;gap:2px;font-size:11px;color:#455a64}.app.dark .admin-bulk label{color:#b8bcc2}.admin-bulk input{width:80px;padding:5px 7px;border:1px solid #cfd8dc;border-radius:5px;font-size:13px}.admin-bulk button,.admin-actions button{padding:5px 10px;border:1px solid #cfd8dc;border-radius:5px;background:#f5f5f5;font-size:13px;cursor:pointer}.admin-bulk button{background:#1565c0;color:#fff;border-color:#1565c0}.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th,.admin-table td{padding:6px 8px;text-align:left;border-bottom:1px solid #eceff1;white-space:nowrap}.admin-table th{font-size:11px;text-transform:uppercase;color:#78909c;font-weight:600}.admin-table tbody tr:hover{background:#f5f7fa}.app.dark .admin-table th,.app.dark .admin-table td{border-bottom-color:#ffffff14}.app.dark .admin-table th{color:#8b9199}.app.dark .admin-table tbody tr:hover{background:#ffffff0d}.admin-row-checked,.admin-row-checked:hover{background:#eef4fb}.app.dark .admin-row-checked,.app.dark .admin-row-checked:hover{background:#1565c02e}.admin-email,.admin-joined{color:#607d8b}.app.dark .admin-email,.app.dark .admin-joined{color:#9aa0a6}.admin-actions{display:flex;gap:4px}.admin-actions button{padding:3px 7px}.admin-del{color:#c62828;border-color:#ef9a9a}.admin-del:disabled{opacity:.4;cursor:default}.app.dark .admin-del{color:#f28b82;border-color:#f28b8266}.admin-edit-row>td{background:#fafbfc;padding:0}.app.dark .admin-edit-row>td{background:#ffffff08}.admin-edit{border-top:none}.admin-edit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.admin-edit label,.admin-bulk label{min-width:0}.admin-member-list{list-style:none;margin:0;padding:6px 8px;max-height:200px;overflow-y:auto;border:1px solid #cfd8dc;border-radius:6px}.app.dark .admin-member-list{border-color:#ffffff24}.admin-member-list li{padding:2px 0}.admin-member-list label{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}@media (max-width: 560px){.topbar{flex-wrap:wrap;gap:6px;padding:6px 8px}.brand{font-size:14px}.menu-toggle{padding:5px 9px;font-size:12px}.menu-panel{position:fixed;top:50px;left:8px;right:8px;width:auto;max-height:72vh}.maplibregl-ctrl-top-right .maplibregl-ctrl-group{display:none}}
