.feedback-dialog{width:min(440px,calc(100vw - 32px));max-width:100%;max-height:calc(100dvh - 32px);padding:28px;border:1px solid var(--line);border-radius:22px;color:var(--ink, #241a35);box-shadow:0 24px 80px #371c5f38;overflow:auto}.feedback-dialog::backdrop{background:#241a3552}.feedback-dialog h2{margin:12px 0 8px;font-size:1.25rem}.feedback-dialog p{margin:0 0 24px;line-height:1.75;overflow-wrap:anywhere;white-space:pre-wrap}.feedback-dialog button{width:100%}.feedback-symbol{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:var(--purple-soft);color:var(--purple-dark);font-size:1.3rem;font-weight:800}.feedback-error .feedback-symbol{background:#fff0ed;color:#9c302d}.feedback-success .feedback-symbol{background:#eaf8f1;color:#1e6850}.field-hint{font-size:.86rem;font-weight:400;line-height:1.6;color:#655870}.field-error{display:block;font-size:.86rem;font-weight:500;line-height:1.6;color:#a72d32}[aria-invalid=true]{border-color:#bb444b}.password-card{width:100%;max-width:560px;min-width:0;background:#fff}.password-card>p{color:#655870;line-height:1.7}.password-form{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;margin-top:24px}.password-form label{display:grid;gap:8px;min-width:0;font-weight:700;color:#534861}.password-form input{width:100%;min-width:0;max-width:100%}.password-form button{justify-self:start;margin-top:4px}.database-check{display:flex;gap:16px;justify-content:space-between;align-items:center;padding:16px 20px;background:#fff;border:1px solid var(--line);border-radius:16px;color:#655870}.database-check>div{min-width:0;overflow-wrap:anywhere}.database-check button{flex-shrink:0}@media(max-width:640px){.database-check{flex-direction:column;align-items:stretch}.password-card{padding:20px}.password-form button{width:100%}}.club-page{display:grid;gap:24px}.club-page .panel{padding:26px}.club-page h2{margin-top:0}.club-page label{display:grid;gap:8px;margin:14px 0}.club-page input,.club-page select,.club-page textarea,.dev-login-box input{width:100%;padding:11px;border:1px solid var(--line);border-radius:8px;color:#332746;background:#fff;font:inherit}.club-page button{margin:6px 8px 6px 0;padding:9px 14px;border:1px solid var(--line);border-radius:8px;background:#faf7ff;color:#332746;cursor:pointer}.club-page button:disabled{opacity:.5}.club-checks{display:flex;gap:10px 18px;flex-wrap:wrap}.club-checks label{display:flex!important;align-items:center;gap:7px;margin:6px 0}.club-checks input{width:auto}.club-member{border-top:1px solid var(--line);padding:16px 0}.club-tree{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px}.club-tree-branch{padding:18px;border:1px solid var(--line);border-radius:12px;background:#faf7ff}.club-tree-branch small{display:block;color:#66758a;margin-top:5px}.club-tree-branch ul{border-left:2px solid #d9c9f7;padding-left:20px;list-style:none}.club-tree-branch li{position:relative;margin:16px 0}.club-tree-branch li:before{content:"";position:absolute;left:-20px;top:10px;width:14px;border-top:1px solid #d9c9f7}.club-notices{max-height:230px;overflow:auto}.club-notices small{color:#63758b}.login-card .club-checks{font-size:13px}.runway-accurate{overflow:auto}.runway-accurate svg{display:block;width:100%;min-height:190px;background:#f3f6fa;border-radius:12px}.club-page .form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px}.club-page textarea{min-height:95px}.member-record-panel{min-width:0}.member-record-panel .section-heading,.member-list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.member-record-panel .section-heading h2{margin-bottom:0}.member-record-panel .member-dimension-select{max-width:360px}.member-record-scroll{max-height:440px;max-height:min(52vh,440px);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:auto;border:1px solid var(--line);border-radius:12px;padding:0 16px;overflow-wrap:anywhere;min-width:0}.member-record-scroll:focus-visible,.member-record-panel summary:focus-visible,.member-secondary-section>summary:focus-visible{outline:2px solid var(--purple);outline-offset:3px}.member-record-empty{padding:20px 0;color:var(--muted)}.member-qualification-record{padding:16px 0;border-bottom:1px solid var(--line)}.member-qualification-record:last-child{border-bottom:0}.member-qualification-record h3{font-size:1rem;margin:0}.member-type-label{display:inline-block;font-size:.82rem;font-weight:600;color:var(--purple-dark);background:var(--purple-soft);border-radius:6px;padding:3px 8px;margin-left:10px}.member-status{display:inline-block;white-space:nowrap;border-radius:20px;font-size:.8rem;padding:4px 10px;background:#f1eef6;color:#655d70}.member-status-valid{background:#eaf8ef;color:#15613a}.member-status-unread,.member-status-scheduled{background:var(--purple-soft);color:var(--purple-dark)}.member-status-suspended,.member-status-expired,.member-status-limited{background:#fff3e6;color:#8c4c11}.member-qualification-record dl{display:flex;flex-wrap:wrap;gap:12px 30px;margin:14px 0}.member-qualification-record dl div{min-width:160px}.member-qualification-record dt{font-size:.8rem;color:var(--muted)}.member-qualification-record dd{margin:5px 0;font-size:.88rem}.member-record-evidence summary{font-size:.9rem;color:var(--purple-dark);cursor:pointer}.member-record-evidence p{font-size:.88rem;white-space:pre-wrap;overflow-wrap:anywhere}.member-record-pager{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding-top:12px;font-size:.9rem}.member-secondary-section>summary{font-weight:700;font-size:1.05rem;cursor:pointer}.member-secondary-section[open]>summary{margin-bottom:16px}.member-secondary-section>form{max-height:min(65vh,600px);overflow:auto;padding-right:12px;scrollbar-gutter:stable}.member-secondary-section .member-secondary-section{border-top:1px solid var(--line);padding-top:14px;margin-top:18px}.member-notification-section>summary{cursor:pointer}.member-notification-section>summary h2{display:inline;font-size:1.25rem;margin-left:6px}.member-notification-content{padding-top:16px}.member-message-scroll{padding:0 14px}.member-message-recent{max-height:min(42vh,330px)}.member-message{border-bottom:1px solid var(--line);padding:14px 0;min-width:0}.member-message:last-child{border-bottom:0}.member-message>summary{cursor:pointer;display:list-item;list-style-position:outside;margin-left:16px}.member-message-preview{display:inline;overflow-wrap:anywhere;white-space:normal;font-weight:600;font-size:.93rem}.member-message-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:8px 0 0;color:var(--muted);font-size:.8rem}.member-message-body p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65;margin:14px 0}.member-message-body{padding-left:16px;max-height:260px;overflow:auto;scrollbar-gutter:stable}.member-record-panel button{flex-shrink:0}.member-record-panel .member-list-heading .field-hint{margin:6px 0;max-width:520px}@media(max-width:650px){.club-page .member-record-panel{padding:18px}.member-record-panel .member-dimension-select{max-width:none}.member-record-scroll{padding:0 10px;max-height:52vh}.member-message-recent{max-height:40vh}.member-record-pager,.member-record-panel .section-heading,.member-record-panel .member-list-heading{align-items:flex-start}.member-record-panel .member-message-meta{font-size:.76rem}.member-qualification-record dl{gap:10px}.member-qualification-record dl div{min-width:140px}}.member-message-preview{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.club-page{min-width:0;grid-template-columns:minmax(0,1fr)}.club-page>*{min-width:0}.list-scroll{min-width:0;max-width:100%;max-height:min(60vh,520px);overflow:auto;scrollbar-gutter:stable;overflow-wrap:anywhere;padding-right:8px}.list-scroll:empty{display:none}.list-scroll:focus-visible,.position-members:focus-visible{outline:2px solid var(--purple);outline-offset:2px}.club-page .table-wrap{max-height:min(60vh,520px);scrollbar-gutter:stable}.club-page .club-checks{max-height:min(35vh,280px);overflow:auto;scrollbar-gutter:stable}.club-page .position-table{table-layout:fixed;width:100%}.club-page .position-table th{width:24%;position:static;white-space:normal;overflow-wrap:anywhere;background:var(--purple-soft);vertical-align:middle}.club-page .position-table td{min-width:0;overflow:hidden}.position-members{display:flex;gap:12px;max-width:100%;overflow-x:auto;scrollbar-gutter:stable;padding:4px 2px 10px}.position-member{display:grid;gap:5px;flex:0 0 auto;padding:10px 14px;border:1px solid var(--line);border-radius:8px;white-space:nowrap}.position-member small{color:var(--muted)}.list-scroll,.position-members,.member-record-scroll,.club-page .table-wrap{scrollbar-color:#b4a0d0 #f5f1fb;scrollbar-width:auto}.monitoring-suite .monitoring-hero{align-items:center;justify-content:space-between;gap:22px}.rank-block{display:flex;align-items:center;gap:18px}.shoulder-board{min-width:86px;height:42px;border-radius:12px;background:linear-gradient(135deg,#14213d,#0b1324);border:1px solid rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;gap:6px;box-shadow:inset 0 0 0 1px #ffffff14}.shoulder-board span{display:block;width:7px;height:28px;border-radius:99px;background:#f4c95d;box-shadow:0 0 12px #f4c95d66}.monitoring-stats{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:10px}.monitoring-stats span,.position-card{background:#1018280a;border:1px solid rgba(100,116,139,.18);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}.monitoring-stats b{font-size:1.2rem;color:#0f766e}.monitoring-tabs{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.monitoring-tabs button{border:1px solid rgba(100,116,139,.25);background:#fff;border-radius:12px;padding:10px 14px;font-weight:700}.monitoring-tabs button.active{background:#0f766e;color:#fff}.qualification-grid,.rule-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.qualification-grid>div,.rule-grid>div{border:1px solid rgba(100,116,139,.18);border-radius:16px;padding:16px;background:#f8fafccc;display:flex;flex-direction:column;gap:8px}.wide-detail{grid-template-columns:minmax(420px,1fr) minmax(420px,1fr);align-items:start}.selected-row{background:#0f766e14}.clickable-row{cursor:pointer}.clickable-row:hover{background:#0f766e0f}.score-pill{background:#ecfdf5;color:#047857;border-radius:999px;padding:8px 12px;font-weight:800;white-space:nowrap}.runway-card{border:1px solid rgba(100,116,139,.18);border-radius:18px;overflow:hidden;background:#f8fafc}.runway-card svg{width:100%;min-height:260px}.runway-bg{fill:#e2e8f0}.runway-strip{fill:#334155}.runway-center{stroke:#f8fafc;stroke-width:2}.runway-center.dashed{stroke-dasharray:14 12;opacity:.7}.touchdown-dot{fill:#ef4444;stroke:#fff;stroke-width:4}.touchdown-dot-secondary{opacity:.82}.touchdown-index-label{font-size:13px;font-weight:800;fill:#0f172a;stroke:#fff;stroke-width:3px;paint-order:stroke}.runway-note{font-size:12px;font-weight:700;fill:#475569}.touchdown-list{border-top:1px solid rgba(100,116,139,.18);padding:12px;background:#ffffffb8;display:flex;flex-direction:column;gap:8px}.touchdown-list-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.touchdown-list-item{border:1px solid rgba(100,116,139,.16);background:#fff;border-radius:12px;padding:9px 10px;color:#334155;font-size:13px}.touchdown-list-item.danger{border-color:#ef444461;background:#fef2f2eb;color:#991b1b}.runway-exit-outline{stroke:#fff;stroke-width:9;stroke-linecap:round}.runway-exit-line{stroke:#22c55e;stroke-width:5;stroke-linecap:round}.runway-label{font-size:18px;font-weight:700;fill:#0f172a}.landing-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:12px}.landing-metrics span{background:#fff;border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:4px}.score-list{margin-top:14px;border:1px solid rgba(100,116,139,.18);border-radius:14px;overflow:hidden}.score-row{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid rgba(100,116,139,.12)}.score-row:last-child{border-bottom:0}.positive{color:#059669}.negative{color:#dc2626}.report-box{margin-top:16px;padding-top:12px;border-top:1px dashed rgba(100,116,139,.35)}.compact-form{grid-template-columns:minmax(180px,240px) 1fr auto;align-items:end}.monitoring-stats.compact{grid-template-columns:repeat(2,minmax(120px,1fr))}.position-card-spaced{margin-top:22px}.records-page{width:100%}.records-table-wrap{width:100%;overflow-x:auto}.records-table{width:100%;min-width:980px}.records-table th,.records-table td{white-space:nowrap}.monitoring-detail-page{width:100%}.detail-title-row{align-items:flex-start}.detail-title-row h3{margin-top:12px}.detail-title-row p{margin:4px 0 0;color:#64748b}.detail-action-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.flight-detail-grid,.telemetry-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:16px}.flight-detail-grid>div,.telemetry-summary>div{border:1px solid rgba(100,116,139,.18);border-radius:14px;padding:12px 14px;background:#f8fafcd9;display:flex;flex-direction:column;gap:6px}.flight-detail-grid b,.telemetry-summary b{color:#475569;font-size:.86rem}.flight-detail-grid span,.telemetry-summary span{font-weight:800;color:#0f172a}.detail-section{margin-top:20px}.two-detail-cards{display:grid;grid-template-columns:minmax(320px,1fr) minmax(280px,.85fr);gap:16px;align-items:start}.muted-text{color:#64748b;line-height:1.7;margin-top:12px}@media(max-width:1100px){.wide-detail{grid-template-columns:1fr}.landing-metrics,.monitoring-stats{grid-template-columns:1fr 1fr}.compact-form,.two-detail-cards{grid-template-columns:1fr}}@media(max-width:720px){.landing-metrics,.monitoring-stats.compact{grid-template-columns:1fr}.detail-title-row{flex-direction:column}}.telemetry-chart-card{border:1px solid rgba(100,116,139,.18);border-radius:18px;background:#f8fafc;padding:14px;overflow:hidden}.telemetry-chart-card svg{width:100%;min-height:280px;display:block}.chart-bg{fill:#fff}.chart-grid{stroke:#94a3b859;stroke-width:1}.chart-axis{stroke:#475569bf;stroke-width:1.4}.chart-altitude{fill:none;stroke:#2563eb;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.chart-speed{fill:none;stroke:#f97316;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.chart-label{font-size:13px;fill:#64748b;font-weight:700}.chart-hover-capture{fill:transparent;cursor:crosshair}.chart-hover-layer{pointer-events:none}.chart-hover-guide{stroke:#0f172a7a;stroke-width:1.2;stroke-dasharray:5 5}.chart-hover-dot{stroke:#fff;stroke-width:2.5}.chart-hover-altitude{fill:#2563eb}.chart-hover-speed{fill:#f97316}.chart-tooltip-bg{fill:#0f172af0;stroke:#ffffff29;stroke-width:1}.chart-tooltip-title{fill:#fff;font-size:13px;font-weight:800}.chart-tooltip-text{fill:#e2e8f0;font-size:12px;font-weight:700}.chart-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:10px;color:#475569}.chart-legend span{font-weight:800}.chart-legend span:before{content:"";display:inline-block;width:22px;height:4px;border-radius:999px;margin-right:8px;vertical-align:middle}.chart-legend .alt-line:before{background:#2563eb}.chart-legend .spd-line:before{background:#f97316}.chart-legend em{font-style:normal;color:#64748b}.chart-empty{border:1px dashed rgba(100,116,139,.35);border-radius:16px;padding:22px;color:#64748b;background:#f8fafc}.accident-box{margin-top:18px;border:1px solid rgba(220,38,38,.25);background:#fef2f2;color:#7f1d1d;border-radius:18px;padding:16px 18px}.accident-box h4{margin-top:0;color:#991b1b}.accident-box ul{margin:8px 0 0 18px}.landing-metrics{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.records-table-wrap{max-height:560px;overflow:auto}.records-table thead th{position:sticky;top:0;z-index:2;background:#fff}:root{color:#241a35;background:#fff;font-family:Inter,Segoe UI,Microsoft YaHei,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;--purple: #6f35ff;--purple-dark: #4e22c7;--purple-soft: #f1ecff;--line: #e8e1f7;--muted: #766f82;--card: #ffffff;--danger: #b42318;--success: #0f7b42;--shadow: 0 20px 60px rgba(82, 52, 146, .12)}*{box-sizing:border-box}body{margin:0;min-width:1200px;background:radial-gradient(circle at top left,#f5f1ff,#fff 28rem)}button,input,textarea,select{font:inherit}button{border:0;border-radius:14px;background:var(--purple);color:#fff;padding:.72rem 1.05rem;font-weight:700;cursor:pointer;box-shadow:0 10px 22px #6f35ff2e}button:hover:not(:disabled){transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.46;box-shadow:none}input,textarea,select{border:1px solid var(--line);border-radius:12px;padding:.74rem .82rem;background:#fff;color:#241a35;outline:none}textarea{min-height:88px;resize:vertical}input:focus,textarea:focus,select:focus{border-color:var(--purple);box-shadow:0 0 0 4px #6f35ff1a}table{width:100%;border-collapse:collapse}th{color:#5a516a;text-align:left;font-size:.82rem;padding:.86rem .9rem;border-bottom:1px solid var(--line);background:#fbf9ff;position:sticky;top:0;z-index:1}td{padding:.82rem .9rem;border-bottom:1px solid #f0ecfa;color:#332746}tr:hover td{background:#faf7ff}.login-screen{min-height:100vh;display:grid;place-items:center;padding:2rem}.login-card{width:min(560px,100%);background:#fffffff5;border:1px solid var(--line);border-radius:32px;padding:2.2rem;box-shadow:var(--shadow)}.login-card h1{margin:1.6rem 0 .7rem;font-size:2.2rem;letter-spacing:.06em}.center-brand{justify-content:center}.qq-login-button{display:block;text-align:center;text-decoration:none;margin:1.6rem 0 1rem;padding:1rem 1.2rem;border-radius:18px;color:#fff;background:linear-gradient(135deg,var(--purple),#8a5cff);font-weight:800;box-shadow:0 16px 36px #6f35ff38}.qq-login-button.disabled{pointer-events:none;opacity:.45}.login-error,.message-error{color:#8b1a10;background:#fff0ed;border:1px solid #ffd1ca}.login-footnote{margin-top:1rem;font-size:.82rem;color:var(--muted);word-break:break-all}.warning-text{color:#946200}.dev-login-box{margin-top:1rem;border:1px dashed var(--line);border-radius:18px;padding:1rem;display:grid;gap:.7rem}.app-shell{min-height:100vh;display:grid;grid-template-columns:280px 1fr}.sidebar{position:sticky;top:0;height:100vh;padding:1.5rem;background:linear-gradient(180deg,#fff,#fbf8ff);border-right:1px solid var(--line)}.brand-row{display:flex;align-items:center;gap:.85rem;min-height:64px}.brand-row img{width:62px;height:62px;object-fit:contain}.brand-row span{display:block;color:var(--purple-dark);font-size:.94rem;font-weight:900;letter-spacing:.04em}.brand-row strong{display:block;letter-spacing:.08em;font-size:.96rem;margin-top:.12rem}.sidebar nav,.admin-nav-group{display:grid;gap:.55rem;margin-top:2rem}.sidebar nav button,.admin-nav-group button{background:transparent;color:#382a50;box-shadow:none;text-align:left;border:1px solid transparent}.sidebar nav button.active,.admin-nav-group button.active{background:var(--purple-soft);color:var(--purple-dark);border-color:#dfd3ff}.admin-nav-group{border-top:1px solid var(--line);padding-top:1.2rem}.admin-nav-group>span{color:var(--muted);font-size:.78rem;font-weight:800;letter-spacing:.12em}.main-panel{padding:1.5rem 1.8rem 3rem;overflow:hidden}.topbar{height:86px;display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.2rem}.topbar h1{margin:.1rem 0 0;font-size:2rem;letter-spacing:.08em}.eyebrow{margin:0;color:var(--purple);font-weight:800;letter-spacing:.16em;text-transform:uppercase;font-size:.75rem}.top-actions{display:flex;align-items:center;gap:.7rem}.ghost-button{background:#fff;color:var(--purple-dark);border:1px solid var(--line);box-shadow:none}.status-pill,.admin-badge,.status-label{display:inline-flex;align-items:center;border-radius:999px;padding:.42rem .68rem;background:#f4f0fb;color:#665a74;font-size:.82rem;font-weight:800}.status-pill.online{background:#eaf9f0;color:var(--success)}.admin-badge{background:#fff7df;color:#8a5a00}.avatar-button{padding:0;background:transparent;box-shadow:none}.avatar{width:44px;height:44px;border-radius:999px;object-fit:cover;border:2px solid #ded2ff}.avatar.large{width:84px;height:84px;font-size:1.5rem}.default-avatar{display:inline-grid;place-items:center;background:linear-gradient(135deg,var(--purple),#9b74ff);color:#fff;font-weight:900}.message-line{display:flex;justify-content:space-between;align-items:center;gap:1rem;border-radius:16px;padding:.8rem 1rem;margin-bottom:1rem}.message-info{color:#155b35;background:#edfff5;border:1px solid #c8f4dc}.message-line button{background:transparent;color:inherit;box-shadow:none;padding:0 .2rem}.page-stack{display:grid;gap:1.2rem}.hero-panel,.content-card,.monitor-map-card{background:#fffffff2;border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow)}.hero-panel{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:2rem;background:linear-gradient(135deg,#fff,#f7f2ff)}.hero-panel h2{margin:.3rem 0 .7rem;font-size:2rem;letter-spacing:.08em}.hero-panel p{color:var(--muted);max-width:680px;line-height:1.8}.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:flex-end}.content-card{padding:1.35rem}.highlighted-card{border-color:#d8c8ff;background:#fdfbff}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.metric-card{padding:1.2rem;border-radius:22px;border:1px solid var(--line);background:#fff;box-shadow:0 10px 30px #46307814}.metric-card span,.metric-card small{color:var(--muted);display:block}.metric-card strong{display:block;font-size:2rem;margin:.45rem 0;color:var(--purple-dark)}.feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.feature-card{display:grid;gap:.5rem;text-align:left;color:#2b2140;background:#fff;border:1px solid var(--line);box-shadow:none;min-height:130px}.feature-card strong{color:var(--purple-dark);font-size:1.05rem}.feature-card span,.subtle{color:var(--muted);line-height:1.7}.section-title-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.9rem}.section-title-row h2,.content-card h2,.content-card h3{margin:0 0 .6rem;letter-spacing:.05em}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}.form-grid.one-column{grid-template-columns:1fr}.form-grid label{display:grid;gap:.35rem;color:#534861;font-size:.9rem;font-weight:800}.form-grid>*,.form-grid label{min-width:0}.form-grid input:not([type=checkbox]):not([type=radio]),.form-grid textarea,.form-grid select{width:100%;min-width:0;max-width:100%}.form-grid .wide{grid-column:1 / -1}.form-grid button{justify-self:start}.table-wrap{border:1px solid var(--line);border-radius:18px;overflow:auto;background:#fff}.dispatch-table-wrap{max-height:520px}.fixed-admin-table{max-height:430px}.two-column-section{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}.narrow-card{max-width:560px}.monitor-page{display:grid;grid-template-rows:minmax(420px,48vh) minmax(330px,auto);gap:1.2rem}.monitor-map-card{padding:.9rem;min-height:420px}.monitor-table-card{min-height:330px}.monitor-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1rem;align-items:start}.fixed-flight-table{max-height:310px}.selected-row td{background:var(--purple-soft)!important}.flight-detail-panel{border:1px solid var(--line);border-radius:18px;padding:1rem;background:#fbf9ff}.detail-list{display:grid;gap:.72rem}.detail-list div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid #ece5fb;padding-bottom:.55rem}.detail-list span{color:var(--muted)}.detail-list strong{text-align:right}.danger-button{background:var(--danger)}.danger-button.small{padding:.42rem .62rem;margin-left:.4rem;border-radius:10px}.fleet-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.fleet-card{border:1px solid var(--line);border-radius:22px;padding:1.1rem;background:linear-gradient(180deg,#fff,#faf7ff)}.fleet-card h3{margin:0;color:var(--purple-dark)}.fleet-card p{margin:.55rem 0 .3rem;font-weight:800}.fleet-card span,.fleet-card small{display:block;color:var(--muted);margin-top:.35rem}.profile-header{display:flex;align-items:center;gap:1.2rem}.mini-list{display:grid;gap:.7rem;max-height:260px;overflow:auto}.mini-list div{border:1px solid var(--line);border-radius:14px;padding:.8rem;display:grid;gap:.2rem}.mini-list span{color:var(--muted)}.loading-screen{min-height:100vh;display:grid;place-items:center;gap:1rem;color:var(--purple-dark);font-weight:900}.loading-screen img{width:92px}.status-active,.status-approved{background:#eaf9f0;color:var(--success)}.status-pending,.status-draft{background:#fff7df;color:#8a5a00}.status-suspended,.status-rejected,.status-cancelled{background:#fff0ed;color:var(--danger)}.map-stack{height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:.7rem}.map-frame{position:relative;height:100%;min-height:345px;overflow:hidden;border:1px solid var(--line);border-radius:22px}.leaflet-flight-map{position:absolute;top:0;right:0;bottom:0;left:0;min-height:340px;background:#f7f3ff}.map-overlay{position:absolute;top:1rem;right:1rem;bottom:1rem;left:1rem;display:grid;place-items:center;text-align:center;color:var(--muted);background:#ffffffc7;border:1px dashed #d8ccf2;border-radius:18px;z-index:500;pointer-events:none}.map-overlay-error{color:var(--danger)}.map-toolbar{display:flex;align-items:center;gap:.8rem}.map-focus-button{padding:.62rem .9rem}.map-toolbar-hint{color:var(--muted);font-size:.86rem}.flight-div-icon{background:transparent;border:0}.flight-marker-wrap{position:relative;width:156px;height:46px}.flight-plane{width:36px;height:36px;display:grid;place-items:center;border-radius:999px;background:var(--purple);border:3px solid white;box-shadow:0 8px 20px #34265c3d;transform-origin:center center}.flight-plane-svg{width:23px;height:23px}.flight-plane-body{fill:#fff}.flight-map-label{position:absolute;left:42px;top:3px;min-width:100px;padding:.26rem .48rem;border-radius:10px;background:#ffffffeb;border:1px solid rgba(111,53,255,.22);color:#271d3a;box-shadow:0 8px 18px #46307829}.flight-map-label strong{display:block;font-size:.8rem}.flight-map-label span{display:block;font-size:.7rem;color:var(--muted);white-space:nowrap}@media(max-width:1300px){.feature-grid,.stat-grid,.fleet-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row-actions button{white-space:nowrap}.auth-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin:1.1rem 0 .2rem;padding:.35rem;border:1px solid var(--line);border-radius:18px;background:#fbf9ff}.auth-tabs button{box-shadow:none;background:transparent;color:var(--purple-dark);border:1px solid transparent}.auth-tabs button.active{background:#fff;border-color:#dfd3ff;box-shadow:0 8px 18px #46307814}.dispatch-hero-card{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.9fr);gap:1rem;align-items:start}.dispatch-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.dispatch-table-wrap td small{display:block;color:var(--muted);margin-top:.22rem;line-height:1.45}.briefing-card{display:grid;gap:1rem}.briefing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.briefing-panel,.weather-box,.ofp-panel,.simbrief-box{border:1px solid var(--line);border-radius:18px;padding:1rem;background:#fff}.briefing-panel h4,.weather-box h4,.ofp-panel h4,.simbrief-box h4{margin:0 0 .7rem;color:var(--purple-dark)}.briefing-panel div{display:flex;justify-content:space-between;gap:.7rem;padding:.45rem 0;border-bottom:1px solid #f0eafb}.briefing-panel div:last-child{border-bottom:0}.briefing-panel span{color:var(--muted)}.briefing-panel strong{text-align:right}.weather-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.weather-box p{margin:0 0 .55rem;color:var(--muted)}.weather-box pre,.ofp-panel pre{white-space:pre-wrap;word-break:break-word;margin:.45rem 0 0;padding:.75rem;border-radius:14px;background:#f8f6ff;border:1px solid #eee7fb;color:#302642;max-height:320px;overflow:auto}.ofp-panel pre{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;line-height:1.55}.simbrief-box .form-grid{grid-template-columns:1fr 1fr auto;align-items:end}@media(max-width:1300px){.dispatch-hero-card,.briefing-grid,.weather-grid{grid-template-columns:1fr}.dispatch-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}.route-wind-card,.weather-resources-card,.content-note{border:1px solid rgba(91,43,214,.14);background:#fbfaff;border-radius:18px;padding:16px;margin-top:16px}.route-wind-note{color:#4b3f72}.wind-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:12px;align-items:end;margin-top:12px}.wind-sample{min-height:165px;border:1px solid rgba(91,43,214,.12);border-radius:14px;background:#fff;padding:10px;display:flex;flex-direction:column;gap:4px;justify-content:flex-end;text-align:center}.wind-sample strong{font-size:.95rem;color:#28125f}.wind-sample span{font-size:.78rem;color:#695e86}.wind-bar-wrap{height:96px;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px dashed rgba(91,43,214,.2);margin-bottom:6px}.wind-bar{width:18px;min-height:10px;border-radius:8px 8px 2px 2px;background:linear-gradient(180deg,#7c4dff,#d6c8ff)}.resource-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:12px}.resource-link{display:flex;flex-direction:column;gap:4px;border:1px solid rgba(91,43,214,.12);border-radius:14px;background:#fff;padding:12px;color:inherit;text-decoration:none}.resource-link strong{color:#2b1264}.resource-link span{color:#5c4f7a;font-size:.85rem}.resource-link small{color:#7b7196;line-height:1.45}.resource-notes{margin:12px 0 0;color:#5c4f7a;padding-left:20px}.route-import-box{margin-bottom:16px}.weekday-fieldset{border:1px solid rgba(91,43,214,.16);border-radius:14px;padding:12px;display:flex;flex-wrap:wrap;gap:10px 14px}.weekday-fieldset legend{padding:0 6px;color:#4a327d;font-weight:700}.checkbox-label{display:inline-flex;align-items:center;gap:6px;width:auto;color:#3d3260;font-weight:600}.checkbox-label input{width:auto}.timetable-filters{display:flex;flex-wrap:wrap;align-items:end;gap:.8rem;margin-bottom:1rem}.timetable-filters label{display:grid;gap:.35rem;color:var(--muted);font-weight:800;font-size:.88rem}.timetable-filters select,.timetable-filters input{min-width:180px}.route-edit-box textarea{width:100%;min-height:88px;resize:vertical;margin:.5rem 0 .75rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.route-edit-box button{justify-self:start}.table-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.danger-button{border-color:#dc262652;color:#991b1b;background:#fef2f2eb}.danger-button:hover:not(:disabled){border-color:#dc26268c;background:#fee2e2f5}.clock-strip{display:inline-grid;gap:.16rem;padding:.4rem .7rem;border:1px solid var(--line);border-radius:14px;background:#fff;color:#342857;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-weight:800;font-size:.78rem;line-height:1.15;box-shadow:0 8px 22px #4a2d780f}.timetable-tabs{display:flex;flex-wrap:wrap;gap:.55rem;margin:.65rem 0 1rem}.timetable-tabs button{background:#fff;color:var(--purple-dark);border:1px solid var(--line);box-shadow:none}.timetable-tabs button.active{background:var(--purple-soft);border-color:#d8c7ff;color:var(--purple-dark)}.segmented-fieldset{display:flex;flex-wrap:wrap;gap:.85rem;align-items:center;padding:.8rem 1rem;border:1px solid var(--line);border-radius:16px}.segmented-fieldset legend,.weekday-fieldset legend{color:var(--muted);font-weight:900;padding:0 .4rem}@media(max-width:1040px){.topbar{height:auto;align-items:flex-start;flex-direction:column}.top-actions{flex-wrap:wrap}}.login-card .brand-row img{width:76px;height:76px}.route-source-line{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:.65rem;color:var(--muted);font-size:.9rem}.usage-content{display:grid;gap:1.2rem;max-width:1100px}.usage-content h2{margin-bottom:.2rem}.usage-content article{border-top:1px solid var(--line);padding-top:1rem}.usage-content article:first-of-type{border-top:0;padding-top:.2rem}.usage-content p{line-height:1.8;color:#4c435b}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;padding:2rem;background:#1c123061;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-card{width:min(520px,100%);border-radius:24px;border:1px solid #ffd1ca;background:#fff;box-shadow:0 24px 80px #23144638;padding:1.5rem}.modal-card h3{margin:0 0 .8rem;color:#8b1a10;letter-spacing:.05em}.modal-card p{margin:0 0 1.2rem;color:#473c55;line-height:1.8;white-space:pre-wrap}.modal-card button{width:100%}.dev-login-box input::placeholder{color:#43248094;opacity:1;font-weight:700}.dev-login-box input:focus::placeholder{color:#4324806b}.dev-login-box input[aria-label]{letter-spacing:.01em}.fleet-card .danger-button.small,.fleet-card button.danger-button,.fleet-card button.small{margin-top:.85rem;align-self:flex-start}.fleet-card{gap:.2rem}.table-wrap.fleet-table-wrap,.table-wrap.model-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:18px}.fleet-table-wrap{max-height:460px}.model-table-wrap{max-height:420px}.dispatch-table-wrap{max-height:540px}.table-wrap table thead th{position:sticky;top:0;z-index:2;background:#fff}.inline-select{width:auto;min-width:94px;padding:.45rem .65rem;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--purple-dark);font-weight:800}.inline-aircraft-choice{display:inline-flex;min-width:72px;justify-content:center;padding:.45rem .65rem;border-radius:999px;background:var(--purple-soft);color:var(--purple-dark);font-weight:900}.language-switch{display:flex;align-items:center;gap:.5rem;margin-left:auto;max-width:230px;font-size:14px}.language-switch select{width:auto;max-width:160px;min-height:36px}.governance-tabs{display:flex;flex-wrap:wrap;gap:8px}.workflow-detail{border:1px solid #ded5fb;border-radius:16px;padding:20px;margin-top:20px}.workflow-detail textarea,.club-page textarea{width:100%;box-sizing:border-box}.club-page fieldset{border:1px solid #e4def5;border-radius:12px;margin:12px 0}.club-page table{width:100%;border-collapse:collapse}.club-page th,.club-page td{padding:10px;text-align:left;border-bottom:1px solid #eee}.club-page pre{white-space:pre-wrap;overflow-wrap:anywhere}.login-screen>.language-switch{position:fixed;right:24px;top:16px;z-index:2}.club-page input[type=checkbox]{width:auto;min-height:0}.record-map-wrap{position:relative;border:1px solid #e0e5ef;border-radius:12px;overflow:hidden}.record-route-map{height:360px;min-height:280px;background:#f1f3f8;z-index:0}.map-tile-note{position:absolute;bottom:8px;left:8px;z-index:400;background:#fff;padding:8px 12px;border-radius:6px;font-size:12px;max-width:80%}.runway-analysis-stack{display:grid;gap:26px}.runway-accurate{min-width:0;border:1px solid #e4e6f0;border-radius:14px;padding:16px;background:#fff}.runway-accurate h4{margin:0}.analysis-svg-scroll{overflow:auto;margin-top:12px}.runway-roll-svg{width:100%;min-width:650px;display:block}.analysis-label{font-size:12px;fill:#60728b;font-family:inherit}.analysis-legend{display:flex;flex-wrap:wrap;gap:10px 20px;font-size:12px;color:#68788f;margin:10px 0}.legend-track:before{content:"";display:inline-block;vertical-align:middle;width:22px;border-top:3px solid #458bd0;margin-right:7px}.analysis-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;border-top:1px solid #e5e8f0;padding-top:14px}.analysis-metrics span{font-size:12px;color:#73819a;min-width:0}.analysis-metrics b{display:block;font-size:15px;color:#293f5d;margin-top:6px;overflow-wrap:anywhere}.analysis-hover{font-size:12px;color:#677893;min-height:20px;overflow-wrap:anywhere}.profile-charts{display:grid;grid-template-columns:minmax(210px,1fr) minmax(360px,2.35fr);gap:18px;min-width:0}.profile-charts svg{width:100%;display:block}.profile-charts h5{font-size:13px;font-weight:500;color:#6e7b91;margin:14px 0 8px}.analysis-tabs{display:flex;gap:6px}.analysis-tabs button{padding:7px 16px;background:#f0edf9;color:#6f51b0}.analysis-tabs button.active{background:#7956bf;color:#fff}.monitoring-detail-page{min-width:0}.monitoring-detail-page>.detail-section{min-width:0}.record-route-map .leaflet-control-attribution{font-size:10px}@media(max-width:760px){.profile-charts{grid-template-columns:1fr}.profile-lateral{max-width:330px;width:100%;margin:auto}.profile-vertical{min-width:0}.analysis-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.record-route-map{height:300px}.runway-accurate{padding:12px}.analysis-tabs button{padding:6px 12px}}.profile-vertical{overflow-x:auto}.profile-vertical svg{min-width:600px}.profile-lateral{overflow-x:auto}.profile-lateral svg{min-width:270px}
