@import url("https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap");
:where([hidden]){display:none!important}
:root{color-scheme:dark;--bg:#07121d;--panel:#0c1b29;--panel2:#102333;--line:#1d3445;--muted:#8fa3b2;--text:#edf4f7;--green:#78d76b;--green2:#b2ec8c;--blue:#4aa8ff;--red:#ff747b;--amber:#e8bd61;--radius:14px;--shadow:0 14px 38px #020a1170}
*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.5 Manrope,system-ui,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.app-shell{min-height:100vh;display:grid;grid-template-columns:238px minmax(0,1fr)}.sidebar{height:100vh;position:sticky;top:0;display:flex;flex-direction:column;padding:22px 14px;background:#081521;border-right:1px solid var(--line);z-index:8}.brand{display:flex;align-items:center;gap:11px;padding:3px 10px 25px;font-weight:800;font-size:15px;letter-spacing:.01em}.brand-mark{height:32px;width:32px;display:grid;place-items:center;border-radius:10px;background:#173a30;color:var(--green);font-size:17px}.brand small{display:block;font-size:10px;letter-spacing:.13em;color:var(--muted);font-weight:600}.nav-label{padding:8px 11px;color:#718695;text-transform:uppercase;font:10px "DM Mono",monospace;letter-spacing:.15em}.nav-list{display:grid;gap:4px}.nav-link{display:flex;align-items:center;gap:12px;padding:10px 11px;color:#9aabb7;border-radius:9px;font-size:12px;font-weight:600;transition:.15s}.nav-link:hover{background:#112433;color:var(--text)}.nav-link.active{color:#dcf5d4;background:#15362e}.nav-icon{width:17px;text-align:center;color:var(--green);font-size:14px}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding:15px 9px 0;display:flex;align-items:center;gap:10px}.avatar{height:30px;width:30px;border-radius:50%;display:grid;place-items:center;background:#294052;color:#cfdee6;font-weight:800}.user-meta{font-size:11px;font-weight:700}.user-meta small{display:block;color:var(--muted);font-size:10px;font-weight:500}.main-area{min-width:0}.topbar{height:67px;padding:0 27px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;background:#091722}.crumb{font-size:12px;color:#b7c7d0}.top-actions{display:flex;align-items:center;gap:12px}.status-pill,.pill{display:inline-flex;align-items:center;gap:7px;padding:5px 9px;border:1px solid #244137;background:#0d2822;color:#aee2a0;border-radius:99px;font:10px "DM Mono",monospace;text-transform:uppercase;letter-spacing:.04em}.dot{height:6px;width:6px;border-radius:50%;background:var(--green);box-shadow:0 0 9px #78d76b80}.content{padding:25px 28px 36px;max-width:1600px;margin:auto}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.eyebrow{color:var(--green);font:10px "DM Mono",monospace;letter-spacing:.14em;text-transform:uppercase}.page-heading h1{margin:4px 0 3px;font-size:24px;letter-spacing:-.035em}.page-heading p,.subtle{margin:0;color:var(--muted);font-size:12px}.page-actions{display:flex;gap:9px;flex-wrap:wrap}
.btn{border:1px solid #2b4353;color:#d9e5eb;background:#132635;padding:9px 13px;border-radius:8px;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:.15s}.btn:hover{background:#1b3445;border-color:#426176}.btn-primary{background:#28764d;border-color:#358b5c;color:#f3fff3}.btn-primary:hover{background:#318a59}.btn-ghost{background:transparent}.btn-danger{background:#3a2229;border-color:#714048;color:#ffc2c3}.btn-blue{background:#163855;border-color:#245b82;color:#c5e5ff}.btn-sm{padding:6px 9px;font-size:10px}.btn:disabled{opacity:.5;cursor:not-allowed}.icon-button{height:34px;width:36px;padding:0}.stats-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:12px;margin-bottom:16px}.stat-card,.panel,.map-panel,.form-card{background:linear-gradient(155deg,#102131,#0b1a27 78%);border:1px solid #1c3445;border-radius:var(--radius);box-shadow:var(--shadow)}.stat-card{padding:15px 15px 13px;min-height:91px}.stat-label{font-size:10px;color:#91a5b3;font-weight:600}.stat-number{margin-top:5px;font:600 23px "DM Mono",monospace;letter-spacing:-.04em}.stat-foot{font-size:9px;color:#738795;margin-top:2px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(270px,.8fr);gap:15px}.panel-head{padding:14px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.panel-title{font-size:12px;font-weight:800}.panel-subtitle{color:var(--muted);font-size:10px;margin-top:2px}.map-frame{position:relative;min-height:370px;height:clamp(360px,48vh,580px);background:#0c1d29}.map-canvas{position:absolute;inset:0}.map-overlay-label{position:absolute;top:14px;left:14px;z-index:2;background:#07131dcc;border:1px solid #345062;border-radius:8px;padding:8px 10px;font:10px "DM Mono",monospace;color:#c4d2d9;backdrop-filter:blur(9px)}.map-key{position:absolute;bottom:14px;left:14px;display:flex;gap:12px;padding:8px 10px;background:#07131dcc;border:1px solid #345062;border-radius:8px;z-index:2;font-size:9px;color:#bfccd2}.key-item{display:flex;align-items:center;gap:5px}.key-dot{width:7px;height:7px;border-radius:50%;background:var(--green)}.key-dot.blue{background:var(--blue)}.map-message{position:absolute;inset:0;z-index:1;display:grid;place-items:center;text-align:center;padding:25px;background:#081722d9;color:#bacbd4}.map-message>div{max-width:390px}.map-message strong{display:block;font-size:14px;color:var(--text);margin-bottom:6px}.map-message p{font-size:11px;margin:0}.session-list{padding:4px 14px 11px}.session-row{padding:12px 1px;border-bottom:1px solid #1b2e3b;display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:9px;align-items:center}.session-row:last-child{border:0}.session-symbol{height:27px;width:27px;display:grid;place-items:center;border-radius:8px;background:#19372e;color:var(--green)}.session-symbol.flight{background:#14334a;color:#69b5ff}.row-title{font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-sub{font-size:9px;color:var(--muted);margin-top:2px}.row-status{font:9px "DM Mono",monospace;color:#a8d99f}.activity-list{padding:7px 15px 13px}.activity-item{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid #1b2e3b;font-size:10px;color:#d2dde2}.activity-item:last-child{border:0}.activity-icon{color:var(--green)}.activity-time{display:block;color:#7e929f;font:9px "DM Mono",monospace;margin-top:3px}.wide-panel{margin-top:15px}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;white-space:nowrap}.data-table th{text-align:left;padding:11px 13px;color:#8297a5;font:9px "DM Mono",monospace;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--line)}.data-table td{padding:12px 13px;border-bottom:1px solid #192d3b;font-size:10px;color:#d4dfe4}.data-table tr:last-child td{border:0}.status-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid #234c39;border-radius:99px;padding:3px 7px;font:9px "DM Mono",monospace;text-transform:uppercase;color:#a9dfa3;background:#10261e}.status-chip.paused{color:#e2c780;border-color:#514629;background:#272319}.status-chip.completed{color:#9dc3ee;border-color:#2c4b67;background:#142536}.status-chip.stopped{color:#a5b0b7;border-color:#394750;background:#1a252b}.status-chip:before{content:"";height:5px;width:5px;border-radius:50%;background:currentColor}
.form-layout{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);gap:15px;align-items:start}.form-card{padding:19px}.form-section{padding:0 0 17px;margin-bottom:17px;border-bottom:1px solid var(--line)}.form-section:last-child{border:0;padding-bottom:0;margin-bottom:0}.section-title{font-size:12px;font-weight:800;margin:0 0 12px}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.field{display:grid;gap:5px}.field.full{grid-column:1/-1}.field label{font-size:10px;color:#a5b6c0;font-weight:700}.field input,.field select,.field textarea{width:100%;background:#081722;color:#e6eef2;border:1px solid #284052;border-radius:8px;padding:9px 10px;font-size:11px;min-height:37px}.field select option{background:#0c1b29}.field textarea{min-height:73px;resize:vertical}.input-hint{font-size:9px;color:#748997}.radio-row{display:flex;gap:8px}.radio-choice{border:1px solid #274052;background:#0a1925;color:#aebec7;padding:9px 12px;border-radius:8px;display:flex;align-items:center;gap:7px;font-size:10px;font-weight:700}.radio-choice.active{border-color:#4c9a68;background:#173329;color:#d9f3d3}.inline-note{border:1px solid #304b3b;background:#14271e;color:#b8d9ad;border-radius:8px;padding:10px 11px;font-size:10px}.inline-note.warning{border-color:#574a2b;background:#28251b;color:#e6d39b}.map-control-box{padding:12px;border:1px solid var(--line);border-radius:10px;background:#0a1924}.map-control-box .map-frame{height:310px;min-height:250px;border-radius:8px;overflow:hidden}.controls-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.range-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;color:var(--muted);font-size:9px}.range-row input{accent-color:var(--green)}.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:10px}.detail-cell{background:#0a1924;padding:10px;border-radius:8px;border:1px solid #1a3040}.detail-cell small{display:block;color:#8095a2;font-size:9px}.detail-cell strong{display:block;font:11px "DM Mono",monospace;margin-top:4px}.progress-track{height:5px;background:#203342;border-radius:99px;overflow:hidden;margin:8px 0}.progress-fill{height:100%;background:linear-gradient(90deg,#58a969,#b2ec8c);border-radius:99px}.notice-bar{display:flex;align-items:center;gap:9px;padding:10px 13px;background:#19271e;border:1px solid #42563e;color:#d7e7c4;border-radius:9px;font-size:10px}.notice-bar strong{color:#eff6d8}.callout{padding:14px;border-radius:10px;background:#102333;border:1px solid #254256;color:#c4d2d8;font-size:10px}.callout strong{display:block;color:#eef5f7;font-size:11px;margin-bottom:4px}.settings-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(290px,.9fr);gap:15px}.code-box{font:10px "DM Mono",monospace;color:#b4d6c0;background:#08151f;border:1px solid #213747;padding:11px;border-radius:8px;overflow-wrap:anywhere}.empty-state{padding:30px 15px;text-align:center;color:var(--muted);font-size:11px}.empty-icon{width:37px;height:37px;margin:0 auto 10px;border-radius:12px;background:#142a38;color:#7da9b4;display:grid;place-items:center;font-size:17px}.toast{position:fixed;bottom:18px;right:18px;z-index:20;background:#163828;border:1px solid #43855c;color:#e4f5de;border-radius:9px;padding:11px 15px;box-shadow:var(--shadow);font-size:11px;max-width:min(380px,calc(100% - 36px))}.toast.error{background:#39252a;border-color:#8e4a53;color:#ffd8d8}.map-marker{height:28px;width:28px;display:grid;place-items:center;border:2px solid white;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);font-size:12px;color:#082012;background:#78d76b;box-shadow:0 2px 12px #0009}.map-marker::first-letter{transform:rotate(45deg)}.map-marker.aircraft{background:#49a8ff;color:#07203b}.public-page{min-height:100vh;background:#07121d}.public-header{height:60px;padding:0 22px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.public-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;min-height:calc(100vh - 60px)}.public-map{min-height:calc(100vh - 60px);position:relative;background:#0c1d29}.public-map .map-canvas{inset:0}.public-side{padding:19px;background:#091722;border-left:1px solid var(--line)}.public-side h1{font-size:19px;letter-spacing:-.03em;margin:6px 0}.public-side .subtle{margin-bottom:14px}.public-route-cells{display:grid;grid-template-columns:1fr 1fr;border:1px solid #203747;border-radius:9px;overflow:hidden;margin:14px 0}.public-route-cells>div{padding:10px;border-bottom:1px solid #203747}.public-route-cells>div:nth-child(odd){border-right:1px solid #203747}.public-route-cells small{display:block;color:#8298a5;font-size:9px}.public-route-cells strong{display:block;font-size:10px;margin-top:3px}.viewer-stats{display:grid;gap:8px}.viewer-stat{padding:11px;background:#102130;border:1px solid #1d3445;border-radius:9px}.viewer-stat small{display:block;color:#8195a2;font-size:9px}.viewer-stat strong{display:block;font:13px "DM Mono",monospace;margin-top:3px}.viewer-notice{padding:8px 10px;background:#14261f;border:1px solid #344c3b;color:#dce9d4;font-size:9px;border-radius:8px;margin-top:14px}.progress-label{display:flex;justify-content:space-between;color:#91a5b2;font-size:9px}.auth-wrap{min-height:100vh;display:grid;grid-template-columns:minmax(300px,.95fr) minmax(390px,1.05fr);background:#07121d}.auth-visual{position:relative;overflow:hidden;background:radial-gradient(ellipse at 38% 42%,#15352c 0,#0b1a26 42%,#07121d 75%);padding:40px;display:flex;flex-direction:column;justify-content:space-between}.auth-visual:after{content:"";position:absolute;inset:14% -25% 15% 7%;border:1px solid #4fa56a55;border-radius:50%;transform:rotate(-19deg);box-shadow:0 0 0 32px #4fa56a0c,0 0 0 64px #4fa56a08}.auth-visual h1{position:relative;z-index:1;font-size:36px;line-height:1.1;max-width:420px;letter-spacing:-.055em}.auth-visual p{position:relative;z-index:1;color:#9aadb8;font-size:12px;max-width:400px}.auth-form-side{display:grid;place-items:center;padding:28px}.auth-card{width:min(400px,100%);padding:28px;background:#0d1c29;border:1px solid #223a4b;border-radius:16px;box-shadow:var(--shadow)}.auth-card h2{font-size:20px;margin:0 0 4px}.auth-card>p{font-size:11px;color:var(--muted);margin:0 0 20px}.auth-card .field{margin:12px 0}.qr{display:block;width:190px;height:190px;object-fit:contain;background:white;padding:8px;border-radius:8px;margin:12px auto}.mobile-menu{display:none}
@media(max-width:1180px){.stats-grid{grid-template-columns:repeat(3,1fr)}.dashboard-grid{grid-template-columns:minmax(0,1.4fr) minmax(245px,.8fr)}.content{padding:21px}}
@media(max-width:900px){.app-shell{grid-template-columns:68px minmax(0,1fr)}.sidebar{padding:17px 8px}.brand{justify-content:center;padding:3px 0 22px}.brand>span:last-child,.nav-label,.nav-link span:not(.nav-icon),.user-meta{display:none}.nav-link{justify-content:center;padding:11px 8px}.nav-icon{width:auto;font-size:16px}.sidebar-bottom{justify-content:center;padding:13px 0 0}.dashboard-grid,.form-layout,.settings-grid{grid-template-columns:1fr}.public-layout{grid-template-columns:minmax(0,1fr) 270px}.public-side{padding:14px}}
@media(max-width:650px){.app-shell{display:block}.sidebar{position:fixed;top:auto;bottom:0;left:0;right:0;height:58px;width:100%;padding:5px 8px;border-right:0;border-top:1px solid var(--line);background:#081521f5}.brand,.nav-label,.sidebar-bottom{display:none}.nav-list{display:flex;justify-content:flex-start;gap:2px;overflow-x:auto;scrollbar-width:none}.nav-list::-webkit-scrollbar{display:none}.nav-link{flex:0 0 52px;flex-direction:column;gap:1px;font-size:8px;padding:4px 6px;min-width:47px}.nav-link span:not(.nav-icon){display:block}.nav-icon{font-size:14px}.topbar{height:54px;padding:0 15px}.content{padding:17px 13px 80px}.page-heading{display:block}.page-heading h1{font-size:21px}.page-actions{margin-top:12px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stat-card{min-height:77px;padding:12px}.stat-number{font-size:20px}.dashboard-grid{grid-template-columns:1fr}.map-frame{height:330px;min-height:300px}.field-grid,.field-grid.three{grid-template-columns:1fr}.detail-grid{grid-template-columns:repeat(2,1fr)}.public-header{height:52px;padding:0 13px}.public-layout{display:flex;flex-direction:column}.public-map{min-height:48vh;height:48vh;order:1}.public-side{order:2;border-left:0;border-top:1px solid var(--line);padding:14px}.public-side h1{font-size:17px}.public-map .map-canvas{position:absolute}.auth-wrap{grid-template-columns:1fr}.auth-visual{display:none}.auth-form-side{padding:18px}.auth-card{padding:21px}.panel-head{padding:12px}.data-table th,.data-table td{padding:10px}.status-pill{font-size:9px}.top-actions{gap:5px}}
.map-message:not(.map-error)::before{content:"";width:24px;height:24px;border:2px solid #547567;border-top-color:var(--green);border-radius:50%;animation:map-spin .9s linear infinite;margin-bottom:-14px}.map-message.map-error::before{display:none}@keyframes map-spin{to{transform:rotate(360deg)}}
.map-style-control{display:flex;overflow:hidden;border-radius:8px;box-shadow:0 1px 4px #0004}.map-style-button{padding:6px 9px;border:0;border-right:1px solid #b8b8b8;background:#fff;color:#263947;font:600 10px Manrope,system-ui,sans-serif;cursor:pointer}.map-style-button:last-child{border-right:0}.map-style-button:hover{background:#eaf2f5}.map-style-button.selected{background:#183c31;color:#e6f7df}
