/* pilot-lounge.css — AeroSim Pilot Lounge */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;700&display=swap');

* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:'Inter',system-ui,sans-serif; background:#0a0c10; color:#e2e8f0; min-height:100vh; -webkit-font-smoothing:antialiased; }
.mono { font-family:'JetBrains Mono',monospace; }

/* ======================== AUTH BACKGROUND ======================== */
#authBackground { position:fixed; inset:0; z-index:0; }
#authBackground .auth-bg-photo { position:absolute; inset:0; background:url('/img/738-cockpit-bg.jpg') center center / cover no-repeat; filter:blur(0.5px) brightness(0.8); transform:scale(1.04); }
#authBackground .auth-bg-overlay { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 40%, rgba(5,8,12,0.3) 0%, rgba(5,8,12,0.75) 70%), linear-gradient(180deg, rgba(5,8,12,0.2) 0%, rgba(5,8,12,0.6) 100%); }
#authBackground .auth-bg-scanlines { position:absolute; inset:0; opacity:0.04; background:repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.03) 4px); pointer-events:none; }
/* authBackground hidden via JS (hidden attribute) when lounge is active */

/* ======================== AUTH VIEWS (shared) ======================== */
.auth-view { position:relative; z-index:1; }
.auth-main { position:relative; z-index:10; min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px; }

/* ======================== LOGIN CARD ======================== */
.login-card { position:relative; width:420px; background:rgba(16,20,28,0.78); backdrop-filter:blur(24px) saturate(1.2); -webkit-backdrop-filter:blur(24px) saturate(1.2); border:1px solid rgba(100,120,140,0.18); border-radius:18px; padding:44px 40px 40px; box-shadow:0 30px 80px rgba(0,0,0,0.6), 0 0 0 1px rgba(255,255,255,0.03) inset, 0 1px 0 rgba(255,255,255,0.04) inset; animation:loginCardAppear 0.8s cubic-bezier(0.16,1,0.3,1) both; }
@keyframes loginCardAppear { from { opacity:0; transform:translateY(20px) scale(0.97); } to { opacity:1; transform:translateY(0) scale(1); } }

/* ======================== AUTH LOGO ======================== */
.auth-view .logo-wrap { position:relative; text-align:center; margin-bottom:28px; }
.auth-view .logo-wrap::before { content:''; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:120px; height:120px; background:radial-gradient(circle, rgba(50,160,210,0.25) 0%, rgba(50,160,210,0.08) 40%, transparent 70%); border-radius:50%; filter:blur(16px); animation:loginBackGlow 3s ease-in-out infinite alternate; pointer-events:none; }
@keyframes loginBackGlow { from { opacity:0.7; transform:translate(-50%,-50%) scale(1); } to { opacity:1; transform:translate(-50%,-50%) scale(1.15); } }
.auth-view .logo-wrap img { position:relative; height:64px; width:auto; filter:drop-shadow(0 0 12px rgba(50,140,180,0.25)); animation:loginLogoGlow 3s ease-in-out infinite alternate; }
@keyframes loginLogoGlow { from { filter:drop-shadow(0 0 10px rgba(50,140,180,0.2)); } to { filter:drop-shadow(0 0 18px rgba(50,140,180,0.35)); } }

/* ======================== AUTH TITLE & SUBTITLE ======================== */
.auth-title { text-align:center; font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:30px; letter-spacing:0.18em; color:#e8edf2; white-space:nowrap; margin-bottom:34px; text-transform:uppercase; text-shadow:0 0 20px rgba(160,180,200,0.1); }
.auth-subtitle { text-align:center; font-size:13px; color:#6d7c8c; margin-bottom:8px; }
.auth-sep { height:1px; background:linear-gradient(90deg, transparent, rgba(100,120,140,0.15), transparent); margin:6px 0 22px; }

/* ======================== AUTH FORM FIELDS ======================== */
.auth-field { margin-bottom:22px; }
.auth-field input[type="text"],
.auth-field input[type="email"],
.auth-field input[type="password"] { width:100%; padding:13px 16px; font-family:'Share Tech Mono','JetBrains Mono',monospace; font-size:14px; color:#3cff96; background:#080c12; border:1px solid #1e2a38; border-radius:8px; outline:none; transition:border-color 0.25s, box-shadow 0.25s; caret-color:#3cff96; }
.auth-field input::placeholder { color:rgba(60,255,150,0.65); font-family:'Share Tech Mono',monospace; letter-spacing:0.08em; }
.auth-field input:focus { border-color:rgba(60,255,150,0.5); box-shadow:0 0 0 3px rgba(60,255,150,0.08), 0 0 20px rgba(60,255,150,0.06); }

/* ======================== REMEMBER ME TOGGLE ======================== */
.remember-row { display:flex; align-items:center; justify-content:space-between; margin-bottom:28px; margin-top:4px; }
.remember-label { font-family:'Barlow Condensed',sans-serif; font-size:11px; font-weight:600; letter-spacing:0.18em; color:#6d7c8c; text-transform:uppercase; cursor:pointer; user-select:none; }
.toggle-input { display:none; }
.toggle-track { position:relative; width:46px; height:26px; background:#253344; border:1px solid #3a4d60; border-radius:13px; cursor:pointer; transition:background 0.3s, border-color 0.3s; flex-shrink:0; }
.toggle-track::after { content:''; position:absolute; top:2px; left:2px; width:20px; height:20px; background:#7a8a9a; border-radius:50%; transition:transform 0.3s cubic-bezier(0.68,-0.2,0.27,1.2), background 0.3s, box-shadow 0.3s; }
.toggle-input:checked + .toggle-track { background:rgba(60,255,150,0.12); border-color:rgba(60,255,150,0.3); }
.toggle-input:checked + .toggle-track::after { transform:translateX(2px); background:#3cff96; box-shadow:0 0 8px rgba(60,255,150,0.4); }

/* ======================== SUBMIT BUTTON ======================== */
.submit-btn { position:relative; display:flex; align-items:center; justify-content:center; gap:12px; width:100%; padding:15px 24px; font-family:'Barlow Condensed',sans-serif; font-size:13px; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:#ffd5b1; background:rgba(30,20,10,0.6); border:1.5px solid #b8762d; border-radius:10px; cursor:pointer; overflow:hidden; box-shadow:0 0 25px rgba(184,118,45,0.15), inset 0 0 0 1px rgba(255,180,100,0.06); transition:box-shadow 0.35s, border-color 0.35s, color 0.35s; }
.submit-btn:hover { border-color:#d4923a; color:#ffe2c5; box-shadow:0 0 40px rgba(184,118,45,0.35), 0 0 80px rgba(184,118,45,0.12), inset 0 0 0 1px rgba(255,180,100,0.1); }
.submit-btn:disabled { opacity:0.4; cursor:not-allowed; }
.submit-btn .btn-icon { font-size:24px; transition:transform 0.3s; }
.submit-btn:hover .btn-icon { transform:translateX(2px) rotate(-10deg); }
.submit-btn::before { content:''; position:absolute; top:0; left:-80px; width:60px; height:100%; background:linear-gradient(90deg, transparent, rgba(255,180,100,0.2), transparent); filter:blur(6px); transition:transform 0.6s ease; transform:translateX(0); }
.submit-btn:hover::before { transform:translateX(560px); }

/* ======================== AUTH SHARED: error, success, captcha, registration ======================== */
.login-error { color:#ef4444; font-size:13px; text-align:center; margin-top:12px; }
.auth-success { color:#3cff96; font-size:13px; text-align:center; padding:10px; background:rgba(60,255,150,0.06); border:1px solid rgba(60,255,150,0.2); border-radius:8px; margin-top:12px; }
.captcha-wrap { display:flex; justify-content:center; min-height:65px; margin-bottom:8px; padding:10px; background:rgba(8,12,18,0.6); border:1px solid #1e2a38; border-radius:10px; }
.registration-counter { text-align:center; font-size:13px; padding:8px 12px; border-radius:8px; margin-bottom:16px; font-family:'Share Tech Mono',monospace; }
.registration-counter.open { color:#3cff96; background:rgba(60,255,150,0.06); border:1px solid rgba(60,255,150,0.15); }
.registration-counter.closed { color:#ef4444; background:rgba(239,68,68,0.06); border:1px solid rgba(239,68,68,0.15); }
.waitlist-notice { text-align:center; font-size:12px; color:#6d7c8c; line-height:1.5; padding:0 8px; margin-top:12px; }

/* ======================== AUTH FOOTER LINKS ======================== */
.auth-footer-links { display:flex; justify-content:space-between; margin-top:24px; }
.auth-footer-links.auth-footer-center { justify-content:center; }
.auth-footer-links a { font-family:'Rajdhani',sans-serif; font-size:12px; font-weight:500; color:#4a5c70; text-decoration:none; letter-spacing:0.06em; transition:color 0.2s; }
.auth-footer-links a:hover { color:#ff9b3d; }

/* ======================== LANGUAGE DROPDOWN ======================== */
.lang-dropdown { position:relative; display:flex; justify-content:center; margin-top:20px; }
.lang-toggle-input { display:none; }
.lang-current { display:flex; align-items:center; gap:6px; padding:6px 14px; font-family:'Barlow Condensed',sans-serif; font-size:13px; font-weight:600; letter-spacing:0.1em; color:#6d7c8c; background:rgba(100,120,140,0.08); border:1px solid rgba(100,120,140,0.15); border-radius:8px; cursor:pointer; transition:all 0.2s; user-select:none; }
.lang-current:hover { color:#8ea0b3; border-color:rgba(100,120,140,0.3); }
.lang-arrow { font-size:10px; transition:transform 0.25s; }
.lang-toggle-input:checked ~ .lang-current .lang-arrow { transform:rotate(180deg); }
.lang-flag { font-size:15px; }
.lang-menu { position:absolute; bottom:calc(100% + 6px); left:50%; transform:translateX(-50%) scaleY(0); transform-origin:bottom center; min-width:150px; background:rgba(14,18,26,0.95); backdrop-filter:blur(16px); border:1px solid rgba(100,120,140,0.2); border-radius:10px; padding:6px; opacity:0; transition:transform 0.25s cubic-bezier(0.16,1,0.3,1), opacity 0.2s; box-shadow:0 -8px 30px rgba(0,0,0,0.4); }
.lang-toggle-input:checked ~ .lang-menu { transform:translateX(-50%) scaleY(1); opacity:1; }
.lang-option { display:flex; align-items:center; gap:8px; padding:8px 12px; font-family:'Barlow Condensed',sans-serif; font-size:13px; font-weight:500; color:#8ea0b3; border-radius:6px; cursor:pointer; transition:all 0.15s; }
.lang-option:hover { background:rgba(100,120,140,0.12); color:#d0d8e0; }
.lang-option.active { color:#3cff96; }

/* ======================== AUTH RESPONSIVE ======================== */
@media (max-width:480px) { .login-card { width:100%; padding:32px 24px 28px; border-radius:14px; } .auth-title { font-size:16px; letter-spacing:0.12em; } }

/* Pending approvals badge */
.pending-badge { display:inline-flex; align-items:center; justify-content:center; min-width:22px; height:22px; padding:0 6px; border-radius:11px; background:#b8762d; color:#000; font-size:12px; font-weight:700; margin-left:8px; }

/* Approve button */
.btn-approve { background:rgba(34,197,94,0.15) !important; color:#22c55e !important; border-color:rgba(34,197,94,0.3) !important; }
.btn-approve:hover { background:rgba(34,197,94,0.25) !important; }

/* Button sizes */
.btn-xs { padding:3px 8px; font-size:11px; border-radius:4px; border:1px solid #334155; background:transparent; color:#94a3b8; cursor:pointer; transition:all 0.15s; }
.btn-xs:hover { background:#334155; color:#e2e8f0; }
.btn-xs:disabled { opacity:0.4; cursor:not-allowed; }
.btn-danger { border-color:rgba(239,68,68,0.4) !important; color:#ef4444 !important; }
.btn-danger:hover { background:rgba(239,68,68,0.15) !important; }

/* Status badges */
.status-badge { padding:2px 8px; border-radius:4px; font-size:11px; text-transform:uppercase; font-weight:600; }
.status-badge.active { background:rgba(34,197,94,0.15); color:#22c55e; }
.status-badge.inactive { background:rgba(239,68,68,0.15); color:#ef4444; }

/* Modal */
.modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.7); display:flex; align-items:center; justify-content:center; z-index:9999; }
.modal { background:#1e293b; border:1px solid #334155; border-radius:12px; padding:28px; max-width:420px; width:90%; color:#e2e8f0; }
.modal h3 { margin-bottom:12px; }

/* ======================== LOUNGE BACKGROUND ======================== */
#loungeBackground { position:fixed; inset:0; z-index:-1; display:none; }
#loungeView { position:relative; z-index:1; }
#loungeBackground .lounge-bg-photo { position:absolute; inset:0; background:url('/img/bkg-pilot-lounge.jpg') center center / cover no-repeat; filter:blur(0.5px) brightness(0.7); transform:scale(1.02); }
#loungeBackground .lounge-bg-overlay { position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,12,16,0.2) 0%, rgba(10,12,16,0.35) 100%); }

/* ======================== SIDEBAR ======================== */
.sidebar { width:260px; min-height:100vh; background:#0f1218; border-right:1px solid rgba(148,163,184,0.08); display:flex; flex-direction:column; position:fixed; left:0; top:0; bottom:0; z-index:50; }
.sidebar-logo { padding:14px 20px; border-bottom:1px solid rgba(148,163,184,0.08); display:flex; align-items:center; justify-content:center; }
.sidebar-logo-img { height:40px; width:auto; }
.nav { margin-top:16px; padding:0 12px; flex:1; overflow-y:auto; }
.nav-section { font-size:10px; color:#475569; letter-spacing:2px; font-weight:700; padding:16px 12px 6px; }
.nav-item[hidden], .nav-section[hidden] { display:none !important; }
.nav-item { display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius:8px; font-size:14px; font-weight:500; color:#64748b; cursor:pointer; transition:all 0.15s; position:relative; margin-bottom:2px; }
.nav-item:hover { background:rgba(148,163,184,0.05); color:#e2e8f0; }
.nav-item.active { background:rgba(184,118,45,0.1); color:#b8762d; }
.nav-item.active::before { content:''; position:absolute; left:0; top:50%; transform:translateY(-50%); width:3px; height:20px; background:#b8762d; border-radius:0 4px 4px 0; }
.nav-icon { width:20px; text-align:center; font-size:15px; }
.nav-label { white-space:nowrap; }
.logout-item { color:#ef4444aa !important; }
.logout-item:hover { color:#ef4444 !important; }

.sidebar-bottom { padding:12px; border-top:1px solid rgba(148,163,184,0.08); }
.credits-badge[hidden] { display:none !important; }
.credits-badge { display:flex; align-items:center; gap:8px; padding:8px 12px; background:rgba(184,118,45,0.08); border:1px solid rgba(184,118,45,0.15); border-radius:8px; margin-bottom:8px; cursor:pointer; transition:background 0.15s; }
.credits-badge:hover { background:rgba(184,118,45,0.12); }
.credits-icon { font-size:18px; }
.credits-amount { font-family:'JetBrains Mono',monospace; font-weight:700; color:#b8762d; font-size:15px; }
.credits-label { font-size:9px; color:#64748b; letter-spacing:1px; }
.credits-buy { margin-left:auto; color:#64748b; font-size:12px; }

/* ======================== MAIN ======================== */
.main { margin-left:260px; min-height:100vh; }

/* ======================== HEADER ======================== */
.header { height:60px; border-bottom:1px solid rgba(148,163,184,0.08); display:flex; align-items:center; justify-content:space-between; padding:0 32px; background:rgba(10,12,16,0.8); backdrop-filter:blur(12px); position:sticky; top:0; z-index:40; }
.header-title { font-size:15px; font-weight:600; }
.header-right { display:flex; align-items:center; gap:16px; }
.sim-status { display:flex; align-items:center; gap:8px; padding:5px 14px; background:rgba(15,18,24,0.5); border:1px solid rgba(148,163,184,0.08); border-radius:20px; font-family:'JetBrains Mono',monospace; font-size:11px; }
.sim-dot { width:6px; height:6px; border-radius:50%; flex-shrink:0; }
.sim-dot.on { background:#22c55e; box-shadow:0 0 6px #22c55e; }
.sim-dot.off { background:#ef4444; box-shadow:0 0 6px #ef4444; }
.sim-text { color:#64748b; }
.avatar-wrap { position:relative; width:34px; height:34px; }
.avatar { width:34px; height:34px; border-radius:50%; background:linear-gradient(135deg,#334155,#1e293b); border:1px solid #334155; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; color:#94a3b8; }
.avatar-img { width:34px; height:34px; border-radius:50%; object-fit:cover; border:1px solid #334155; position:absolute; top:0; left:0; }

/* ======================== CONTENT ======================== */
.content { padding:28px 32px; max-width:1200px; margin:0 auto; }
/* Overview page uses a wider container to fit the 3-column flight prep layout */
#page-overview .content { max-width:1760px; }
#page-downloads .content { max-width:1760px; }
.page[hidden] { display:none !important; }

/* ======================== WELCOME ======================== */
.welcome { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:24px; flex-wrap:wrap; gap:16px; }
.welcome h2 { font-size:26px; font-weight:700; color:#fff; }
.welcome p { font-size:13px; color:#64748b; margin-top:2px; }
.welcome-actions { display:flex; gap:10px; }

/* ======================== BUTTONS ======================== */
.btn { padding:10px 18px; border-radius:8px; font-size:13px; font-weight:600; cursor:pointer; border:none; transition:all 0.15s; font-family:inherit; }
.btn-secondary { background:#1e293b; color:#e2e8f0; border:1px solid #334155; }
.btn-secondary:hover { background:#334155; }
.btn-primary { background:#b8762d; color:#000; box-shadow:0 0 20px rgba(184,118,45,0.15); }
.btn-primary:hover { background:#96611f; }
.input { padding:10px 14px; border:1px solid #1e293b; border-radius:8px; background:#0a0c10; color:#e2e8f0; font-size:13px; font-family:inherit; outline:none; transition:border-color 0.15s; }
.input:focus { border-color:rgba(184,118,45,0.5); }

/* ======================== STATS ======================== */
.stats { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:24px; }
.stat-card { background:#0f1218; border:1px solid rgba(148,163,184,0.08); border-radius:12px; padding:18px; transition:border-color 0.15s; }
.stat-card:hover { border-color:#334155; }
.stat-icon { font-size:18px; margin-bottom:12px; }
.stat-label { font-size:12px; color:#64748b; font-weight:500; }
.stat-value { font-size:22px; font-weight:700; color:#fff; margin-top:2px; }
.stat-trend { font-size:11px; color:#475569; font-family:'JetBrains Mono',monospace; margin-top:4px; }

/* ======================== GRID ======================== */
.grid-2col { display:grid; grid-template-columns:2fr 1fr; gap:16px; margin-bottom:24px; }
.grid-3col-prep { display:grid; grid-template-columns:1fr 2fr 1fr; gap:16px; margin-bottom:24px; align-items:start; }

/* Left column: Aircraft Profile */
.fp-ac-profile-col { background:#0f1218; border:1px solid rgba(148,163,184,0.08); border-radius:12px; padding:18px; min-width:0; overflow:hidden; }
.fp-ac-empty { text-align:center; padding:24px 12px; color:#475569; }
.fp-ac-empty-icon { font-size:36px; margin-bottom:10px; color:#334155; }
.fp-ac-empty-title { font-size:13px; font-weight:700; color:#e2e8f0; margin-bottom:6px; }
.fp-ac-empty-desc { font-size:11px; color:#64748b; line-height:1.5; max-width:220px; margin:0 auto; }
.fp-ac-profile-content[hidden] { display:none !important; }
.fp-ac-profile-content .ac-inline-thumb { max-width:100%; }

/* ======================== CARDS ======================== */
.card { background:#0f1218; border:1px solid rgba(148,163,184,0.08); border-radius:12px; padding:22px; }
.card h3 { font-size:15px; font-weight:600; color:#fff; margin-bottom:4px; }
.card-subtitle { font-size:12px; color:#64748b; margin-bottom:16px; }

/* ======================== FLIGHT PREP ======================== */
.prep-steps { display:flex; flex-direction:column; gap:8px; }
.prep-step { display:flex; align-items:center; gap:14px; padding:12px; background:#0a0c10; border:1px solid #1e293b; border-radius:8px; cursor:pointer; transition:all 0.15s; }
.prep-step:hover { border-color:#334155; background:#111318; }
.prep-step::after { content:'▸'; color:#475569; font-size:14px; margin-left:auto; transition:transform 0.15s; }
.prep-step.open::after { transform:rotate(90deg); color:#b8762d; }
.prep-step.done { border-color:rgba(34,197,94,0.2); }
.step-num { width:30px; height:30px; border-radius:50%; background:#1e293b; border:1px solid #334155; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; color:#64748b; flex-shrink:0; }
.step-num.done { background:rgba(34,197,94,0.1); border-color:rgba(34,197,94,0.3); color:#22c55e; }
.step-num.active { background:rgba(184,118,45,0.1); border-color:rgba(184,118,45,0.3); color:#b8762d; }
.step-info { flex:1; }
.step-title { font-size:13px; font-weight:600; color:#e2e8f0; }
.step-desc { font-size:11px; color:#64748b; margin-top:1px; }
.step-badge { font-size:10px; padding:3px 8px; border-radius:4px; font-weight:600; letter-spacing:0.5px; }
.step-badge.done { background:rgba(34,197,94,0.1); color:#22c55e; }
.step-badge.ready { background:rgba(184,118,45,0.1); color:#b8762d; }
.step-badge.pending { background:#1e293b; color:#64748b; }

/* ======================== ROUTE MAP MARKERS ======================== */
.rm-label { font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:700; padding:2px 8px; border-radius:4px; text-align:center; white-space:nowrap; }
.rm-dep { background:rgba(34,197,94,0.9); color:#000; }
.rm-arr { background:rgba(184,118,45,0.9); color:#000; }
.rm-wp { font-family:'JetBrains Mono',monospace; font-size:13px; font-weight:700; text-align:center; white-space:nowrap; text-shadow: 0 1px 4px rgba(0,0,0,0.95), 0 0 8px rgba(0,0,0,0.8); letter-spacing:0.5px; }
.rm-awy { font-family:'JetBrains Mono',monospace; font-size:9px; color:#94a3b8; background:rgba(15,18,24,0.8); padding:1px 4px; border-radius:3px; border:1px solid #334155; text-align:center; white-space:nowrap; }
.rm-toc { background:rgba(59,130,246,0.9); color:#fff; font-size:10px; }
.rm-tod { background:rgba(239,68,68,0.9); color:#fff; font-size:10px; }
.route-tooltip { background:#0f1218 !important; color:#e2e8f0 !important; border:1px solid #334155 !important; border-radius:6px !important; font-family:'JetBrains Mono',monospace !important; font-size:11px !important; padding:4px 8px !important; }
.route-tooltip::before { border-top-color:#334155 !important; }

/* ======================== DISPATCH OFP ======================== */
.disp-ofp-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:14px; }
.disp-route-header { display:flex; align-items:center; gap:12px; margin:12px 0; }
.disp-icao { font-family:'JetBrains Mono',monospace; font-size:24px; font-weight:700; color:#fff; }
.disp-arrow { font-size:18px; color:#475569; }
.disp-route-detail { font-family:'JetBrains Mono',monospace; font-size:12px; color:#b8762d; background:#0a0c10; border:1px solid #1e293b; border-radius:6px; padding:8px; margin-bottom:12px; }
.disp-info-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.disp-info { text-align:center; padding:8px; background:#0a0c10; border-radius:6px; border:1px solid #1e293b; }
.disp-info-val { font-family:'JetBrains Mono',monospace; font-size:16px; font-weight:700; color:#fff; display:block; }
.disp-info-lbl { font-size:8px; color:#64748b; letter-spacing:1px; text-transform:uppercase; }
.disp-fuel-table { width:100%; border-collapse:collapse; margin-top:8px; }
.disp-fuel-table td { padding:6px 0; font-size:13px; border-bottom:1px solid rgba(148,163,184,0.04); }
.disp-fuel-table td:last-child { text-align:right; color:#fff; }
.disp-fuel-table tr.disp-fuel-total td { border-top:1px solid #334155; padding-top:8px; font-size:14px; }
.disp-fuel-table tr.disp-fuel-total td:last-child { color:#b8762d; font-size:16px; }
.disp-warning { padding:6px 10px; margin-top:8px; border-radius:4px; font-size:11px; font-weight:600; background:rgba(239,68,68,0.1); color:#ef4444; border:1px solid rgba(239,68,68,0.2); }
@media (max-width:900px) { .disp-ofp-grid { grid-template-columns:1fr; } }

/* ======================== WIZARD PANELS ======================== */
.wiz-panel { padding:12px; background:#080a0e; border:1px solid #1e293b; border-radius:0 0 8px 8px; margin-top:-4px; margin-bottom:4px; }
.wiz-panel[hidden] { display:none !important; }
.wiz-aircraft-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:6px; max-height:200px; overflow-y:auto; }
.wiz-ac-item { display:flex; align-items:center; gap:8px; padding:6px 8px; background:#0f1218; border:1px solid #1e293b; border-radius:6px; cursor:pointer; transition:all 0.15s; }
.wiz-ac-item:hover { border-color:#334155; }
.wiz-ac-item.selected { border-color:rgba(184,118,45,0.5); background:rgba(184,118,45,0.08); }
.wiz-ac-item img { width:40px; height:28px; object-fit:cover; border-radius:3px; background:#1e293b; }
.wiz-ac-name { font-size:11px; color:#e2e8f0; font-weight:500; line-height:1.2; }
.wiz-ac-variant { font-size:9px; color:#b8762d; font-weight:600; line-height:1.2; margin-top:1px; text-transform:uppercase; letter-spacing:0.3px; }
.wiz-ac-dev { font-size:9px; color:#64748b; }
.wiz-radio-card { display:flex; align-items:center; gap:6px; padding:10px 14px; background:#0f1218; border:1px solid #1e293b; border-radius:8px; cursor:pointer; font-size:12px; color:#94a3b8; transition:all 0.15s; }
.wiz-radio-card:hover { border-color:#334155; }
.wiz-radio-card.active { border-color:rgba(184,118,45,0.4); background:rgba(184,118,45,0.08); color:#e2e8f0; }
.wiz-radio-card input { accent-color:#b8762d; }

/* ======================== WEATHER ======================== */
.metar-raw { font-family:'JetBrains Mono',monospace; font-size:11px; color:#94a3b8; background:#0a0c10; border:1px solid #1e293b; border-radius:8px; padding:10px; line-height:1.6; margin-bottom:14px; word-break:break-all; }
.weather-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.wx-item { text-align:center; padding:10px; background:#0a0c10; border-radius:8px; border:1px solid #1e293b; }
.wx-value { font-family:'JetBrains Mono',monospace; font-size:14px; font-weight:700; color:#fff; }
.wx-label { font-size:8px; color:#64748b; letter-spacing:1px; text-transform:uppercase; margin-top:2px; }

/* ======================== FLIGHT STRIPS ======================== */
.strips-list { display:flex; flex-direction:column; gap:6px; }
.flight-strip { border-left:3px solid #b8762d; background:#0a0c10; border-radius:0 8px 8px 0; padding:10px 12px; cursor:pointer; transition:all 0.15s; }
.flight-strip:hover { background:#111318; }
.strip-route { display:flex; align-items:baseline; gap:6px; }
.strip-icao { font-family:'JetBrains Mono',monospace; font-size:14px; font-weight:700; color:#fff; }
.strip-dash { color:#475569; font-size:11px; }
.strip-meta { display:flex; gap:12px; margin-top:3px; font-size:10px; color:#64748b; font-family:'JetBrains Mono',monospace; }
.strip-status { font-size:9px; padding:2px 6px; border-radius:3px; font-weight:600; float:right; margin-top:-18px; }
.strip-status.completed { background:rgba(34,197,94,0.1); color:#22c55e; }
.strip-status.scheduled { background:rgba(96,165,250,0.1); color:#60a5fa; }
.strip-status.draft { background:#1e293b; color:#64748b; }
.add-schedule { margin-top:10px; padding:10px; border:2px dashed #1e293b; border-radius:8px; text-align:center; cursor:pointer; color:#64748b; font-size:12px; transition:all 0.15s; }
.add-schedule:hover { border-color:#334155; color:#94a3b8; }
.empty-state { text-align:center; padding:20px; color:#475569; font-size:13px; }

/* ======================== LAUNCH ======================== */
/* Flight Configuration (wizard step 3) */
.fc-section { margin-bottom:14px; }
.fc-section-title { font-size:11px; font-weight:600; color:#64748b; text-transform:uppercase; letter-spacing:0.5px; margin-bottom:6px; }
.fc-state-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(130px, 1fr)); gap:6px; }
.fc-state-card { padding:10px; background:#0f1218; border:1px solid #1e293b; border-radius:8px; cursor:pointer; text-align:center; transition:all 0.15s; }
.fc-state-card:hover { border-color:#334155; }
.fc-state-card.active { border-color:#b8762d; background:rgba(184,118,45,0.08); }
.fc-state-icon { font-size:20px; margin-bottom:4px; }
.fc-state-name { font-size:12px; font-weight:600; color:#e2e8f0; }
.fc-state-desc { font-size:10px; color:#64748b; margin-top:2px; }
.fc-time-btn { padding:6px 14px; background:#0f1218; border:1px solid #1e293b; border-radius:6px; color:#94a3b8; font-size:12px; cursor:pointer; font-family:inherit; transition:all 0.15s; }
.fc-time-btn:hover { border-color:#334155; }
.fc-time-btn.active { border-color:#b8762d; background:rgba(184,118,45,0.08); color:#e2e8f0; }

/* Instructor page */
.instr-section { margin-bottom:20px; }
.instr-section-title { font-size:13px; font-weight:700; color:#e2e8f0; margin-bottom:10px; display:flex; align-items:center; gap:8px; }
.instr-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:8px; }
.instr-card { padding:12px; background:#0f1218; border:1px solid #1e293b; border-radius:8px; transition:all 0.15s; }
.instr-card:hover { border-color:#334155; }
.instr-card-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:6px; }
.instr-card-name { font-size:13px; font-weight:600; color:#e2e8f0; }
.instr-card-desc { font-size:11px; color:#64748b; }
.instr-toggle { position:relative; width:36px; height:20px; background:#1e293b; border-radius:10px; cursor:pointer; transition:background 0.2s; }
.instr-toggle.active { background:#dc2626; }
.instr-toggle::after { content:''; position:absolute; top:2px; left:2px; width:16px; height:16px; background:#e2e8f0; border-radius:50%; transition:transform 0.2s; }
.instr-toggle.active::after { transform:translateX(16px); }
.instr-scenario-card { padding:14px; background:#0f1218; border:1px solid #1e293b; border-radius:8px; cursor:pointer; transition:all 0.15s; }
.instr-scenario-card:hover { border-color:#dc2626; background:rgba(220,38,38,0.05); }
.instr-scenario-card.active { border-color:#dc2626; background:rgba(220,38,38,0.08); }
.instr-scenario-name { font-size:13px; font-weight:600; color:#e2e8f0; margin-bottom:4px; }
.instr-scenario-desc { font-size:11px; color:#64748b; }
.instr-trigger-row { display:flex; gap:8px; align-items:flex-end; flex-wrap:wrap; margin-bottom:8px; }
.instr-status { padding:8px 12px; background:#0a0c10; border:1px solid #1e293b; border-radius:6px; display:flex; justify-content:space-between; align-items:center; }
.instr-status-label { font-size:12px; color:#94a3b8; }
.instr-status-value { font-size:12px; font-weight:600; }
.instr-status-value.failed { color:#dc2626; }
.instr-status-value.ok { color:#22c55e; }
.instr-reset-btn { width:100%; padding:12px; background:#dc2626; border:none; border-radius:8px; font-size:14px; font-weight:700; color:#fff; cursor:pointer; font-family:inherit; transition:all 0.15s; }
.instr-reset-btn:hover { background:#ef4444; }

/* Weather config (expanded wizard step 4) */
.wx-preset-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(140px, 1fr)); gap:6px; margin-top:8px; }
.wx-preset-card { padding:10px; background:#0f1218; border:1px solid #1e293b; border-radius:8px; cursor:pointer; text-align:center; transition:all 0.15s; }
.wx-preset-card:hover { border-color:#334155; }
.wx-preset-card.active { border-color:#3b82f6; background:rgba(59,130,246,0.08); }
.wx-preset-icon { font-size:20px; margin-bottom:4px; }
.wx-preset-name { font-size:12px; font-weight:600; color:#e2e8f0; }
.wx-custom-panel { margin-top:10px; padding:10px; background:#080a0e; border:1px solid #1e293b; border-radius:6px; }
.wx-layer-row { display:flex; gap:8px; align-items:center; margin-bottom:6px; }
.wx-layer-label { font-size:11px; color:#64748b; min-width:50px; }

/* Plugin required message (wizard step 1) */
.plugin-required-msg {
  text-align: center;
  padding: 20px 12px;
  color: #94a3b8;
}
.plugin-required-icon {
  font-size: 36px;
  color: #eab308;
  margin-bottom: 8px;
}
.plugin-required-title {
  font-size: 13px;
  font-weight: 700;
  color: #e2e8f0;
  margin-bottom: 6px;
}
.plugin-required-desc {
  font-size: 11px;
  color: #64748b;
  line-height: 1.5;
  max-width: 280px;
  margin: 0 auto;
}

/* Aircraft thumbnail placeholder (loaded on-demand) */
.ac-thumb-placeholder {
  width: 40px;
  height: 28px;
  background: #1e293b;
  background-size: cover;
  background-position: center;
  border-radius: 3px;
  flex-shrink: 0;
  transition: opacity 0.2s;
}
.ac-thumb-placeholder.loaded { background-color: transparent; }
.wiz-ac-item.loading .ac-thumb-placeholder { opacity: 0.4; }

/* Wizard step 4 — Flight Plan */
.fp-wiz-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
  padding: 8px 10px;
  background: #0a0c10;
  border: 1px solid #1e293b;
  border-radius: 6px;
  flex-wrap: wrap;
}
.fp-wiz-toolbar .btn-sm {
  padding: 6px 12px;
  font-size: 11px;
  background: #1e293b;
  border: 1px solid #334155;
  border-radius: 5px;
  color: #e2e8f0;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.15s;
}
.fp-wiz-toolbar .btn-sm:hover { border-color: #b8762d; background: rgba(184,118,45,0.08); }
.fp-wiz-noplan-toggle {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  color: #94a3b8;
  cursor: pointer;
  user-select: none;
}
.fp-wiz-noplan-toggle input[type="checkbox"] {
  width: 14px;
  height: 14px;
  accent-color: #b8762d;
  cursor: pointer;
}
.fp-wiz-noplan-toggle span { transition: color 0.15s; }
.fp-wiz-noplan-toggle:hover span { color: #e2e8f0; }

/* Wizard inline Launch button — replaces both former step 5 and bottom launch bar */
.wiz-launch-btn {
  width: 100%;
  margin-top: 10px;
  padding: 18px 22px;
  background: linear-gradient(135deg, #b8762d, #96611f);
  border: none;
  border-radius: 12px;
  font-size: 15px;
  font-weight: 800;
  color: #000;
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: 0 0 30px rgba(184,118,45,0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  font-family: inherit;
}
.wiz-launch-btn:hover:not(:disabled) {
  box-shadow: 0 0 40px rgba(184,118,45,0.45);
  transform: translateY(-1px);
}
.wiz-launch-btn:disabled {
  opacity: 0.35;
  cursor: not-allowed;
  transform: none;
  background: linear-gradient(135deg, #475569, #334155);
  color: #94a3b8;
  box-shadow: none;
}
.wiz-launch-icon { font-size: 20px; }
.wiz-launch-label { flex: 1; text-align: center; }
.wiz-launch-arrow { font-size: 22px; }

/* Legacy .fp-wiz-info rule (preserved) */
.fp-wiz-info { font-size:11px; color:#94a3b8; padding:10px 12px; background:#0a0c10; border:1px solid #1e293b; border-radius:6px; margin-bottom:12px; line-height:1.5; }
.fp-wiz-info strong { color:#b8762d; }
.fp-wiz-info code { font-family:'JetBrains Mono',monospace; background:#1e293b; padding:1px 4px; border-radius:3px; font-size:10px; }
.fp-wiz-plans-list { display:flex; flex-direction:column; gap:6px; max-height:300px; overflow-y:auto; }
.fp-wiz-plan-card { padding:10px 12px; background:#0f1218; border:1px solid #1e293b; border-radius:6px; cursor:pointer; transition:all 0.15s; }
.fp-wiz-plan-card:hover { border-color:#334155; background:#111318; }
.fp-wiz-plan-card.selected { border-color:rgba(184,118,45,0.5); background:rgba(184,118,45,0.08); }
.fp-wiz-plan-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:4px; }
.fp-wiz-plan-route { font-weight:700; font-size:13px; color:#e2e8f0; }
.fp-wiz-plan-source { font-size:9px; padding:2px 6px; border-radius:3px; text-transform:uppercase; letter-spacing:0.5px; font-weight:700; }
.fp-wiz-plan-source.source-dispatch { background:rgba(59,130,246,0.1); color:#3b82f6; }
.fp-wiz-plan-source.source-simbrief { background:rgba(34,197,94,0.1); color:#22c55e; }
.fp-wiz-plan-source.source-manual { background:rgba(148,163,184,0.1); color:#94a3b8; }
.fp-wiz-plan-meta { display:flex; gap:12px; font-size:11px; color:#94a3b8; font-family:'JetBrains Mono',monospace; }
.fp-wiz-plan-date { font-size:10px; color:#475569; margin-top:4px; }
.fp-wiz-empty { text-align:center; padding:24px 12px; color:#64748b; font-size:12px; }
.fp-wiz-empty-icon { font-size:28px; color:#eab308; margin-bottom:8px; }

/* ============================================================================
   Launch status overlay — inline in Pilot Lounge, above the Launch button
   ============================================================================ */

#fdLaunchStatus {
  margin: 10px 0 4px 0;
  padding: 14px 18px;
  background: rgba(15,18,24,0.95);
  border: 2px solid #b8762d;
  border-radius: 10px;
  color: #e2e8f0;
  font-family: Inter, system-ui, sans-serif;
  font-size: 13px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.4);
  animation: fd-status-in 0.3s ease-out;
}
@keyframes fd-status-in {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}
.fd-status-title {
  font-weight: 700;
  color: #b8762d;
  margin-bottom: 10px;
  font-size: 14px;
  border-bottom: 1px solid #1e293b;
  padding-bottom: 6px;
}
.fd-status-steps { display: flex; flex-direction: column; gap: 6px; }
.fd-step {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 12px;
  color: #94a3b8;
  flex-wrap: wrap;
}
.fd-step-icon {
  display: inline-block;
  width: 16px;
  font-size: 14px;
  color: #475569;
  flex-shrink: 0;
  line-height: 1.2;
}
.fd-step-label { flex: 1; line-height: 1.3; }
.fd-step.running .fd-step-icon { color: #eab308; animation: fd-pulse 1s infinite; }
.fd-step.running .fd-step-label { color: #e2e8f0; }
.fd-step.done .fd-step-icon { color: #22c55e; }
.fd-step.done .fd-step-label { color: #64748b; }
.fd-step.error .fd-step-icon { color: #dc2626; }
.fd-step.error .fd-step-label { color: #fca5a5; }
.fd-step-error {
  width: 100%;
  margin-top: 4px;
  padding: 6px 8px;
  background: rgba(220,38,38,0.1);
  border-left: 2px solid #dc2626;
  border-radius: 3px;
  font-size: 11px;
  color: #fca5a5;
}
@keyframes fd-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.4; }
}

/* Popup blocked retry button inside launch status */
.fd-popup-retry {
  margin-left: 24px;
  margin-top: 4px;
  padding: 6px 14px;
  background: #b8762d;
  color: #000;
  border: none;
  border-radius: 5px;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
}
.fd-popup-retry:hover { background: #d18b3e; }

.launch-section { margin-top:8px; }
.launch-btn { width:100%; padding:16px; background:linear-gradient(135deg,#b8762d,#96611f); border:none; border-radius:12px; font-size:15px; font-weight:800; color:#000; cursor:pointer; transition:all 0.2s; box-shadow:0 0 30px rgba(184,118,45,0.15); display:flex; align-items:center; justify-content:center; gap:10px; font-family:inherit; }
.launch-btn:hover:not(:disabled) { box-shadow:0 0 40px rgba(184,118,45,0.35); transform:translateY(-1px); }
.launch-btn:disabled { opacity:0.4; cursor:not-allowed; transform:none; }

/* ======================== COCKPITS ======================== */
.cockpit-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; }
.cockpit-card { background:#0f1218; border:1px solid rgba(148,163,184,0.08); border-radius:14px; padding:24px; position:relative; transition:all 0.15s; }
.cockpit-card.available { cursor:pointer; }
.cockpit-card.available:hover { border-color:rgba(184,118,45,0.3); }
.cockpit-card.disabled { opacity:0.5; }
.cockpit-card h3 { font-size:18px; font-weight:700; color:#fff; margin-top:8px; }
.cockpit-card p { font-size:12px; color:#64748b; margin-top:2px; }
.cockpit-status-badge { font-size:10px; padding:3px 10px; border-radius:12px; font-weight:700; letter-spacing:0.5px; display:inline-block; }
.cockpit-status-badge.available { background:rgba(34,197,94,0.1); color:#22c55e; border:1px solid rgba(34,197,94,0.2); }
.cockpit-status-badge.wip { background:rgba(184,118,45,0.1); color:#b8762d; border:1px solid rgba(184,118,45,0.2); }
.cockpit-instruments { display:flex; flex-wrap:wrap; gap:6px; margin-top:14px; }
.instrument-tag { padding:4px 10px; background:#0a0c10; border:1px solid #1e293b; border-radius:4px; font-size:11px; color:#94a3b8; }

/* ======================== PROFILE ======================== */
.profile-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.profile-item { }
.profile-label { font-size:11px; color:#64748b; text-transform:uppercase; letter-spacing:0.5px; font-weight:600; }
.profile-value { margin-top:4px; font-size:15px; font-weight:500; }

/* ======================== PROFILE FORM ======================== */
/* Avatar */
.pf-avatar-section { display:flex; align-items:center; gap:20px; margin-bottom:24px; padding-bottom:20px; border-bottom:1px solid rgba(148,163,184,0.08); }
.pf-avatar-wrap { position:relative; width:88px; height:88px; flex-shrink:0; }
.pf-avatar-img { width:88px; height:88px; border-radius:50%; object-fit:cover; border:2px solid #334155; }
.pf-avatar-initials { width:88px; height:88px; border-radius:50%; background:#1e293b; border:2px solid #334155; display:flex; align-items:center; justify-content:center; font-size:28px; font-weight:700; color:#64748b; letter-spacing:1px; }
.pf-avatar-initials[hidden] { display:none; }
.pf-avatar-actions { display:flex; flex-direction:column; gap:6px; }
.pf-avatar-btn { cursor:pointer; font-size:13px; }
.pf-avatar-hint { font-size:11px; color:#475569; }

.profile-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.pf-field { display:flex; flex-direction:column; gap:4px; }
.pf-field label { font-size:11px; color:#64748b; font-weight:600; text-transform:uppercase; letter-spacing:0.5px; }
.pf-field select { appearance:none; background:#0a0c10 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 5l3 3 3-3' stroke='%2364748b' fill='none'/%3E%3C/svg%3E") no-repeat right 12px center; }
.pf-full { grid-column:span 2; }
.pf-fleet-toolbar { display:flex; align-items:center; gap:12px; margin-top:12px; margin-bottom:12px; flex-wrap:wrap; }
.pf-fleet-select-all { display:flex; align-items:center; gap:6px; font-size:12px; color:#94a3b8; cursor:pointer; }
.pf-fleet-select-all input { accent-color:#b8762d; }
.pf-fleet-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:8px; }
.pf-fleet-item { display:flex; align-items:center; gap:10px; padding:10px 12px; background:#0a0c10; border:1px solid #1e293b; border-radius:8px; cursor:pointer; transition:all 0.15s; }
.pf-fleet-item:hover { border-color:#334155; }
.pf-fleet-item.checked { border-color:rgba(184,118,45,0.3); background:rgba(184,118,45,0.05); }
.pf-fleet-item input[type="checkbox"] { accent-color:#b8762d; flex-shrink:0; }
.pf-fleet-item img { width:48px; height:32px; object-fit:cover; border-radius:4px; background:#1e293b; }
.pf-fleet-name { font-size:12px; color:#e2e8f0; font-weight:500; }
.pf-fleet-dev { font-size:10px; color:#64748b; }
@media (max-width:768px) { .profile-form-grid { grid-template-columns:1fr; } .pf-full { grid-column:span 1; } }

/* ======================== SETTINGS ======================== */
.setting-status { margin-top:8px; font-size:12px; padding:8px 12px; border-radius:6px; }
.setting-status.success { background:rgba(34,197,94,0.1); color:#22c55e; }
.setting-status.error { background:rgba(239,68,68,0.1); color:#ef4444; }

/* ======================== AIRCRAFT GALLERY ======================== */
.aircraft-gallery { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:16px; }
.aircraft-card { background:#0f1218; border:1px solid rgba(148,163,184,0.08); border-radius:12px; overflow:hidden; transition:all 0.15s; cursor:pointer; }
.aircraft-card:hover { border-color:rgba(184,118,45,0.3); transform:translateY(-2px); box-shadow:0 4px 20px rgba(0,0,0,0.3); }
.aircraft-img-wrap { width:100%; height:160px; overflow:hidden; background:#0a0c10; display:flex; align-items:center; justify-content:center; }
.aircraft-img-wrap img { width:100%; height:100%; object-fit:cover; transition:transform 0.3s; }
.aircraft-card:hover .aircraft-img-wrap img { transform:scale(1.05); }
.aircraft-card-body { padding:14px 16px; }
.aircraft-card-body h4 { font-size:14px; font-weight:600; color:#fff; margin-bottom:2px; }
.aircraft-card-body p { font-size:11px; color:#64748b; }

/* ======================== LOGBOOK TABS ======================== */
.logbook-tabs { display:flex; gap:4px; margin-bottom:8px; flex-wrap:wrap; }
.logbook-month-tabs { margin-bottom:16px; }
.logbook-tab { padding:6px 14px; border-radius:6px; font-size:12px; font-weight:600; cursor:pointer; border:1px solid #1e293b; background:#0f1218; color:#64748b; transition:all 0.15s; font-family:inherit; }
.logbook-tab:hover { border-color:#334155; color:#94a3b8; }
.logbook-tab.active { background:rgba(184,118,45,0.12); border-color:rgba(184,118,45,0.3); color:#b8762d; }
.logbook-tab .tab-count { font-size:10px; color:#475569; margin-left:4px; font-family:'JetBrains Mono',monospace; }
.logbook-tab.active .tab-count { color:#96611f; }
.logbook-period-summary { display:flex; gap:14px; margin-bottom:16px; flex-wrap:wrap; }
.period-stat { background:#0f1218; border:1px solid rgba(148,163,184,0.08); border-radius:8px; padding:10px 16px; text-align:center; }
.period-stat-value { font-family:'JetBrains Mono',monospace; font-size:16px; font-weight:700; color:#fff; }
.period-stat-label { font-size:9px; color:#64748b; letter-spacing:1px; text-transform:uppercase; margin-top:2px; }

/* ======================== LOGBOOK TABLE ======================== */
.logbook-table-wrap { background:#0f1218; border:1px solid rgba(148,163,184,0.08); border-radius:12px; overflow:hidden; }
.logbook-table { width:100%; border-collapse:collapse; text-align:left; }
.logbook-table thead tr { border-bottom:1px solid #1e293b; background:rgba(15,18,24,0.5); }
.logbook-table th { padding:12px 16px; font-size:10px; color:#64748b; text-transform:uppercase; letter-spacing:1px; font-weight:700; }
.logbook-table td { padding:12px 16px; font-size:13px; border-bottom:1px solid rgba(148,163,184,0.04); }
.logbook-table tbody tr { transition:background 0.1s; }
.logbook-table tbody tr:hover { background:rgba(148,163,184,0.03); }
.logbook-footer { display:flex; justify-content:space-between; align-items:center; padding:12px 16px; border-top:1px solid #1e293b; }
.logbook-pager { display:flex; gap:6px; }
.source-badge { font-size:9px; padding:2px 6px; border-radius:3px; font-weight:600; }
.source-badge.live { background:rgba(34,197,94,0.1); color:#22c55e; }
.source-badge.import { background:rgba(96,165,250,0.1); color:#60a5fa; }
.source-badge.manual { background:#1e293b; color:#64748b; }
.import-banner { background:rgba(184,118,45,0.08); border:1px solid rgba(184,118,45,0.2); border-radius:12px; padding:20px; margin-bottom:20px; color:#e2e8f0; font-size:14px; }
.import-banner[hidden] { display:none !important; }
.import-filepath { background:#0a0c10; border:1px solid #1e293b; border-radius:6px; padding:10px 14px; margin-top:8px; }
.import-filepath code { font-family:'JetBrains Mono',monospace; font-size:13px; color:#b8762d; }
.import-success-msg { margin-top:14px; padding:14px; background:rgba(34,197,94,0.08); border:1px solid rgba(34,197,94,0.2); border-radius:8px; font-size:13px; color:#94a3b8; line-height:1.6; }
.import-success-msg[hidden] { display:none !important; }
.import-success-msg strong { color:#22c55e; }
.landing-rate { font-family:'JetBrains Mono',monospace; font-weight:600; }
.landing-rate.good { color:#22c55e; }
.landing-rate.ok { color:#b8762d; }
.landing-rate.hard { color:#ef4444; }

/* ======================== FLIGHT PLANNING ======================== */
/* Flight planning airport bar — cockpit instrument style */
.fp-airport-bar {
  display:flex; align-items:center; gap:0; margin-bottom:20px;
  background:linear-gradient(180deg, #12151c 0%, #0d1017 100%);
  border:1px solid #1e2433; border-radius:10px;
  padding:10px 14px;
  box-shadow:0 2px 12px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.03);
}
.fp-airport-input { display:flex; align-items:center; gap:8px; flex:1; min-width:0; }
.fp-input-badge {
  font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:700;
  letter-spacing:1.5px; padding:3px 7px; border-radius:3px;
  white-space:nowrap; flex-shrink:0;
}
.fp-input-badge.dep { background:rgba(34,197,94,0.12); color:#22c55e; border:1px solid rgba(34,197,94,0.2); }
.fp-input-badge.arr { background:rgba(239,68,68,0.12); color:#ef4444; border:1px solid rgba(239,68,68,0.2); }
.fp-autocomplete-wrap { position:relative; flex:1; min-width:0; }
.fp-autocomplete-wrap input {
  width:100%; font-size:18px; padding:8px 12px;
  font-family:'JetBrains Mono',monospace; font-weight:600;
  background:#080a0f; border:1px solid #1a1f2e; border-radius:6px;
  color:#e8dcc8; letter-spacing:2px; text-transform:uppercase;
  transition:border-color 0.2s, box-shadow 0.2s;
}
.fp-autocomplete-wrap input::placeholder {
  color:#2a3040; font-weight:400; letter-spacing:1px; font-size:13px; text-transform:none;
}
.fp-autocomplete-wrap input:focus {
  outline:none; border-color:#b8762d;
  box-shadow:0 0 0 2px rgba(184,118,45,0.15), inset 0 0 8px rgba(184,118,45,0.05);
}
.fp-airport-route-line {
  flex-shrink:0; padding:0 6px; color:#334155; display:flex; align-items:center;
}
.fp-route-icon { width:60px; height:24px; }
.fp-fetch-btn {
  display:flex; align-items:center; gap:7px;
  font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:600;
  letter-spacing:0.8px; white-space:nowrap;
  padding:10px 18px; border-radius:6px; border:1px solid #b8762d;
  background:linear-gradient(180deg, rgba(184,118,45,0.2) 0%, rgba(184,118,45,0.08) 100%);
  color:#d4a054; cursor:pointer;
  transition:all 0.2s; flex-shrink:0; margin-left:10px;
}
.fp-fetch-btn:hover {
  background:linear-gradient(180deg, rgba(184,118,45,0.35) 0%, rgba(184,118,45,0.15) 100%);
  color:#e8c07a; box-shadow:0 0 12px rgba(184,118,45,0.2);
}
.fp-fetch-btn:active { transform:scale(0.97); }
@media (max-width: 700px) {
  .fp-airport-bar { flex-wrap:wrap; gap:8px; }
  .fp-airport-input { flex:1 1 40%; }
  .fp-airport-route-line { display:none; }
  .fp-fetch-btn { flex:1 1 100%; justify-content:center; margin-left:0; }
}
.fp-autocomplete-list { position:absolute; top:100%; left:0; right:0; z-index:100; background:#0f1218; border:1px solid #334155; border-radius:0 0 8px 8px; max-height:280px; overflow-y:auto; box-shadow:0 8px 24px rgba(0,0,0,0.5); }
.fp-autocomplete-list[hidden] { display:none !important; }
.fp-ac-item { padding:8px 12px; cursor:pointer; transition:background 0.1s; display:flex; gap:8px; align-items:center; border-bottom:1px solid rgba(148,163,184,0.04); }
.fp-ac-item:hover { background:rgba(184,118,45,0.1); }
.fp-ac-icao { font-family:'JetBrains Mono',monospace; font-size:13px; font-weight:700; color:#b8762d; min-width:44px; }
.fp-ac-name { font-size:12px; color:#e2e8f0; flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fp-ac-city { font-size:11px; color:#64748b; }
.fp-ac-type { font-size:9px; padding:1px 5px; border-radius:3px; background:#1e293b; color:#64748b; white-space:nowrap; }

/* Flight planning tabs — cockpit instrument style */
.fp-tabs {
  display:flex; gap:2px; margin-bottom:16px; padding:4px;
  background:linear-gradient(180deg, #12151c 0%, #0d1017 100%);
  border:1px solid #1e2433; border-radius:8px;
  box-shadow:0 2px 8px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.03);
}
.fp-tab {
  padding:9px 20px; border-radius:5px; font-size:12px; font-weight:600;
  cursor:pointer; border:1px solid transparent; background:transparent;
  color:#4a5568; transition:all 0.2s; font-family:'JetBrains Mono',monospace;
  letter-spacing:0.5px;
}
.fp-tab:hover { color:#94a3b8; background:rgba(255,255,255,0.03); }
.fp-tab.active {
  background:rgba(184,118,45,0.12); color:#d4a054;
  border-color:rgba(184,118,45,0.25);
  box-shadow:0 0 8px rgba(184,118,45,0.1);
}
.fp-tab-content[hidden] { display:none !important; }

/* Weather panels */
.fp-wx-panels { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:20px; align-items:start; }
.fp-wx-panel { background:#0f1218; border:1px solid rgba(148,163,184,0.08); border-radius:12px; padding:18px; min-width:0; overflow:hidden; }
.fp-wx-header { display:flex; align-items:center; gap:8px; margin-bottom:12px; }
.fp-wx-badge { font-size:10px; padding:3px 8px; border-radius:4px; font-weight:700; letter-spacing:0.5px; }
.fp-wx-badge.dep { background:rgba(34,197,94,0.1); color:#22c55e; }
.fp-wx-badge.arr { background:rgba(184,118,45,0.1); color:#b8762d; }
.fp-wx-badge.ac { background:rgba(59,130,246,0.1); color:#3b82f6; }

/* Accordion right column */
.fp-accordion { display:flex; flex-direction:column; gap:10px; }
.fp-acc-section { background:#0f1218; border:1px solid rgba(148,163,184,0.08); border-radius:12px; overflow:hidden; }
.fp-acc-section[hidden] { display:none !important; }
.fp-acc-header { display:flex; align-items:center; gap:8px; padding:14px 18px; cursor:pointer; user-select:none; transition:background 0.15s; }
.fp-acc-header:hover { background:rgba(148,163,184,0.04); }
.fp-acc-title { font-size:13px; font-weight:700; color:#e2e8f0; display:flex; align-items:center; gap:8px; flex:1; }
.fp-acc-toggle { color:#64748b; font-size:14px; transition:transform 0.2s; }
.fp-acc-section.open .fp-acc-toggle { transform:rotate(180deg); }
.fp-acc-body { padding:0 18px 18px 18px; display:none; }
.fp-acc-section.open .fp-acc-body { display:block; }

/* Inline aircraft profile (inside accordion body) */
.ac-inline-thumb { width:100%; max-width:320px; border-radius:6px; margin-bottom:12px; display:block; background:#1e293b; }
.ac-inline-thumb-empty { padding:20px; text-align:center; color:#475569; background:#0a0c10; border:1px dashed #1e293b; border-radius:6px; margin-bottom:12px; font-size:11px; }
.ac-inline-section { margin-bottom:14px; }
.ac-inline-section:last-child { margin-bottom:0; }
.ac-inline-section-title { font-size:10px; font-weight:700; color:#b8762d; text-transform:uppercase; letter-spacing:0.8px; margin-bottom:6px; padding-bottom:4px; border-bottom:1px solid #1e293b; }
.ac-inline-row { display:flex; justify-content:space-between; align-items:baseline; padding:3px 0; font-size:12px; gap:10px; }
.ac-inline-label { color:#64748b; flex-shrink:0; }
.ac-inline-value { color:#e2e8f0; font-family:'JetBrains Mono',monospace; font-size:11px; text-align:right; }
.fp-wx-icao { font-family:'JetBrains Mono',monospace; font-size:18px; font-weight:700; color:#fff; }
.fp-wx-locate { background:none; border:1px solid #334155; border-radius:4px; padding:2px 6px; cursor:pointer; font-size:13px; transition:all 0.15s; }
.fp-wx-locate:hover { background:rgba(184,118,45,0.15); border-color:rgba(184,118,45,0.4); }
.fp-wx-locate[hidden] { display:none !important; }
.fp-wx-cat { font-size:10px; padding:2px 6px; border-radius:3px; font-weight:700; margin-left:auto; }
.fp-wx-cat.VFR { background:rgba(34,197,94,0.15); color:#22c55e; }
.fp-wx-cat.MVFR { background:rgba(59,130,246,0.15); color:#3b82f6; }
.fp-wx-cat.IFR { background:rgba(239,68,68,0.15); color:#ef4444; }
.fp-wx-cat.LIFR { background:rgba(217,70,239,0.15); color:#d946ef; }
.fp-wx-empty { text-align:center; padding:30px; color:#475569; font-size:13px; }
.fp-wx-metar-raw { font-family:'JetBrains Mono',monospace; font-size:10px; color:#94a3b8; background:#0a0c10; border:1px solid #1e293b; border-radius:6px; padding:8px 10px; margin-bottom:12px; line-height:1.5; word-break:break-all; overflow-wrap:break-word; }
.fp-wx-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin-bottom:14px; }
.fp-wx-item { text-align:center; padding:8px; background:#0a0c10; border-radius:6px; border:1px solid #1e293b; }
.fp-wx-val { font-family:'JetBrains Mono',monospace; font-size:13px; font-weight:700; color:#fff; }
.fp-wx-lbl { font-size:8px; color:#64748b; letter-spacing:1px; text-transform:uppercase; margin-top:2px; }

/* TAF */
.fp-wx-taf-section { margin-top:8px; }
.fp-wx-taf-title { font-size:10px; color:#64748b; letter-spacing:1px; font-weight:700; margin-bottom:6px; }
.fp-wx-taf-raw { font-family:'JetBrains Mono',monospace; font-size:10px; color:#8899bb; background:#0a0c10; border:1px solid #1e293b; border-radius:6px; padding:8px; line-height:1.5; word-break:break-all; margin-bottom:8px; }
.fp-wx-taf-timeline { display:flex; gap:4px; overflow-x:auto; padding-bottom:4px; }
.taf-period { min-width:90px; padding:8px; background:#0a0c10; border:1px solid #1e293b; border-radius:6px; font-size:10px; flex-shrink:0; }
.taf-period-time { font-family:'JetBrains Mono',monospace; color:#b8762d; font-weight:700; margin-bottom:4px; }
.taf-period-type { font-size:8px; color:#64748b; letter-spacing:0.5px; margin-bottom:4px; }
.taf-period-wind { color:#94a3b8; }
.taf-period-vis { color:#94a3b8; }
.taf-period-clouds { color:#64748b; font-size:9px; }

/* Map */
.fp-map-section { background:#0f1218; border:1px solid rgba(148,163,184,0.08); border-radius:12px; padding:16px; }
.fp-map-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; flex-wrap:wrap; gap:8px; }
.fp-map-header h3 { font-size:14px; font-weight:600; color:#fff; }
.fp-map-legend { display:flex; gap:10px; font-size:10px; color:#64748b; }
.fp-legend-item { display:flex; align-items:center; gap:3px; }
.fp-legend-dot { width:8px; height:8px; border-radius:50%; display:inline-block; }
.fp-map-toggles { display:flex; gap:10px; font-size:11px; color:#94a3b8; }
.fp-map-toggles label { display:flex; align-items:center; gap:4px; cursor:pointer; }
.fp-map-toggles input { accent-color:#b8762d; }
/* Map container + fullscreen */
.fp-map-container { position:relative; border-radius:8px; overflow:hidden; }
.fp-map-container.fullscreen { position:fixed; inset:0; z-index:99999; border-radius:0; }
.fp-map-container.fullscreen .fp-map { height:100vh !important; border-radius:0; }
.fp-map-container.fullscreen .fp-map-exit-fs { display:block !important; }
.fp-map { height:450px; width:100%; border-radius:8px; overflow:hidden; background:#1a1e2a; }
.fp-sigwx-placeholder { display:flex; align-items:center; justify-content:center; text-align:center; color:#94a3b8; }
.fp-sigwx-placeholder[hidden] { display:none !important; }
.fp-sigwx-content h3 { color:#e2e8f0; font-size:18px; margin-bottom:6px; }
.fp-sigwx-content p { font-size:13px; max-width:400px; line-height:1.5; }
.fp-embed-iframe { border:none; width:100%; height:450px; }
.fp-embed-iframe[hidden] { display:none !important; }
.fp-map-container.fullscreen .fp-embed-iframe { height:100vh !important; }
.fp-map-fs-controls { position:absolute; top:12px; left:12px; right:12px; z-index:10000; display:flex; align-items:center; gap:12px; background:rgba(15,18,24,0.85); backdrop-filter:blur(8px); border:1px solid #334155; border-radius:10px; padding:8px 16px; }
.fp-map-fs-controls[hidden] { display:none !important; }
.fp-map-fs-legend { display:flex; gap:10px; font-size:10px; color:#94a3b8; flex:1; flex-wrap:wrap; align-items:center; }
.fp-radar-legend { display:flex; flex-direction:column; gap:1px; margin-left:4px; }
.fp-radar-gradient { width:100px; height:8px; border-radius:3px; background:linear-gradient(to right, #00cc00, #33cc00, #cccc00, #ff9900, #ff0000, #cc0000, #990066, #660099); }
.fp-sat-gradient { width:100px; height:8px; border-radius:3px; background:linear-gradient(to right, transparent, #1a3a5c, #4488bb, #88bbdd, #ccddee, #ffffff); border:1px solid #334155; }
.fp-radar-labels { display:flex; justify-content:space-between; width:100px; font-size:7px; color:#64748b; }
.fp-map-fs-toggles { display:flex; gap:10px; font-size:11px; color:#94a3b8; }
/* Airport geometry layer */
.airport-sign { pointer-events:none !important; }
.airport-sign img { height:40px; pointer-events:none; filter:drop-shadow(0 0 2px rgba(0,0,0,0.8)); }
.runway-label { font-size:11px; font-weight:bold; color:#fff; text-shadow:0 0 4px #000, 0 0 2px #000; text-align:center; line-height:16px; }
/* Airport control panel */
.airport-debug-panel { position:absolute; bottom:10px; right:10px; z-index:10000; background:rgba(10,12,18,0.92); backdrop-filter:blur(6px); border:1px solid #334155; border-radius:8px; font-size:11px; color:#cbd5e1; min-width:170px; }
.adp-header { display:flex; justify-content:space-between; align-items:center; padding:6px 10px; cursor:pointer; user-select:none; font-weight:600; color:#fff; font-size:12px; }
.adp-toggle { font-size:9px; color:#64748b; }
.adp-body { padding:0 10px 8px; max-height:55vh; overflow-y:auto; }
.airport-debug-panel.collapsed .adp-body { display:none; }
.adp-section { margin-top:6px; }
.adp-section-title { font-size:10px; color:#64748b; text-transform:uppercase; letter-spacing:0.5px; margin-bottom:3px; padding-bottom:2px; border-bottom:1px solid #1e293b; }
.adp-row { display:flex; align-items:center; gap:6px; padding:2px 0; cursor:pointer; }
.adp-row input[type=checkbox] { accent-color:#b8762d; margin:0; }
.adp-row input[type=radio] { accent-color:#b8762d; margin:0; }
.adp-label { flex:1; }
.adp-count { color:#64748b; font-size:10px; min-width:24px; text-align:right; }
.adp-buttons { display:flex; gap:6px; margin-top:4px; padding-top:4px; border-top:1px solid #1e293b; }
.adp-btn { background:#1e293b; border:1px solid #475569; color:#94a3b8; border-radius:4px; padding:2px 8px; font-size:10px; cursor:pointer; }
.adp-btn:hover { background:#334155; color:#fff; }
/* Stack multiple airport panels */
.airport-debug-panel:nth-of-type(2) { bottom:auto; margin-bottom:4px; }
.fp-map-toggles label:has(input:disabled) { opacity:0.4; pointer-events:none; }
/* Airport loading spinner */
.airport-spinner { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:10001; display:flex; flex-direction:column; align-items:center; gap:10px; background:rgba(10,12,18,0.85); backdrop-filter:blur(6px); border:1px solid #334155; border-radius:10px; padding:20px 28px; }
.asp-ring { width:28px; height:28px; border:3px solid #334155; border-top-color:#b8762d; border-radius:50%; animation:asp-spin 0.8s linear infinite; }
.asp-text { color:#94a3b8; font-size:12px; }
@keyframes asp-spin { to { transform:rotate(360deg); } }
.fp-map-fs-toggles label { display:flex; align-items:center; gap:4px; cursor:pointer; white-space:nowrap; }
.fp-map-fs-toggles input { accent-color:#b8762d; }
.fp-map-exit-fs { background:none; border:1px solid #475569; border-radius:6px; color:#94a3b8; padding:4px 10px; font-size:16px; cursor:pointer; transition:all 0.15s; }
.fp-map-exit-fs:hover { background:#1e293b; color:#e2e8f0; }

/* Map action buttons */
.fp-map-actions { display:flex; gap:4px; }
.fp-map-view-btn { padding:4px 10px; border-radius:4px; font-size:11px; font-weight:600; cursor:pointer; border:1px solid #334155; background:#1e293b; color:#94a3b8; font-family:inherit; transition:all 0.15s; }
.fp-map-view-btn:hover { background:#334155; color:#e2e8f0; }
.fp-map-view-btn.active { background:rgba(184,118,45,0.15); border-color:rgba(184,118,45,0.4); color:#b8762d; }
/* Fullscreen button — bottom-left of map */
.fp-map-fs-btn-bl { position:absolute; bottom:12px; left:12px; z-index:1000; padding:6px 10px; border-radius:6px; font-size:16px; cursor:pointer; border:1px solid #334155; background:rgba(15,18,24,0.8); color:#94a3b8; transition:all 0.15s; backdrop-filter:blur(4px); }
.fp-map-fs-btn-bl:hover { background:#1e293b; color:#e2e8f0; }

/* Leaflet adjustments for dark theme (using CartoDB Dark Matter — no filter needed) */
.fp-map .leaflet-control-zoom a { background:#1e293b; color:#94a3b8; border-color:#334155; }
.fp-map .leaflet-control-attribution { background:rgba(15,18,24,0.8); color:#475569; font-size:9px; }
.fp-map .leaflet-popup-content-wrapper { background:#0f1218; color:#e2e8f0; border:1px solid #334155; border-radius:8px; }
.fp-map .leaflet-popup-tip { background:#0f1218; }

@media (max-width:768px) {
  .fp-wx-panels { grid-template-columns:1fr; }
  .fp-map { height:300px; }
}

/* ======================== ADMIN FLAGS ======================== */
.admin-flag { padding:12px 16px; border-radius:8px; margin-bottom:16px; font-size:13px; display:flex; align-items:center; gap:10px; }
.admin-flag[hidden] { display:none !important; }
.admin-flag.ok { background:rgba(34,197,94,0.08); border:1px solid rgba(34,197,94,0.2); color:#22c55e; }
.admin-flag.warn { background:rgba(245,158,11,0.08); border:1px solid rgba(245,158,11,0.2); color:#f59e0b; }
.admin-flag.error { background:rgba(239,68,68,0.08); border:1px solid rgba(239,68,68,0.2); color:#ef4444; }
.admin-flag strong { color:#e2e8f0; }

/* ======================== ADMIN ======================== */
.btn-admin { padding:3px 8px; border-radius:4px; font-size:10px; font-weight:600; cursor:pointer; border:1px solid #334155; background:#1e293b; color:#94a3b8; margin-right:4px; transition:all 0.15s; font-family:inherit; }
.btn-admin:hover { background:#334155; color:#e2e8f0; }
.btn-admin.warn { border-color:rgba(184,118,45,0.3); color:#b8762d; }
.btn-admin.warn:hover { background:rgba(184,118,45,0.15); }
.btn-admin.danger { border-color:rgba(239,68,68,0.3); color:#ef4444; }
.btn-admin.danger:hover { background:rgba(239,68,68,0.15); }
.admin-actions { display:flex; gap:4px; flex-wrap:wrap; }
.role-badge { padding:2px 8px; border-radius:4px; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:0.5px; }
.role-badge.admin { background:rgba(139,92,246,0.15); color:#a78bfa; border:1px solid rgba(139,92,246,0.3); }
.role-badge.poweruser { background:rgba(59,130,246,0.15); color:#60a5fa; border:1px solid rgba(59,130,246,0.3); }
.role-badge.user { background:rgba(100,116,139,0.15); color:#94a3b8; border:1px solid rgba(100,116,139,0.3); }

/* ======================== SETTINGS X-PLANE PATHS ======================== */
.xp-paths-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.xp-path-item { display:flex; align-items:center; gap:8px; padding:10px 12px; background:#0a0c10; border:1px solid #1e293b; border-radius:8px; }
.xp-path-icon { font-size:16px; }
.xp-path-label { font-size:12px; color:#94a3b8; font-weight:600; flex:1; }
.xp-path-status { font-size:11px; font-family:'JetBrains Mono',monospace; }
.xp-path-status.found { color:#22c55e; }
.xp-path-status.missing { color:#64748b; }

/* ======================== COMING SOON ======================== */
.coming-soon { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:80px 20px; color:#475569; }
.coming-soon-icon { font-size:48px; margin-bottom:16px; opacity:0.3; }
.coming-soon h3 { font-size:20px; color:#64748b; margin-bottom:8px; }
.coming-soon p { font-size:14px; }

/* ======================== RESPONSIVE ======================== */
@media (max-width:1024px) {
  .stats { grid-template-columns:repeat(2,1fr); }
  .grid-2col { grid-template-columns:1fr; }
  .grid-3col-prep { grid-template-columns:1fr; }
}
@media (max-width:768px) {
  .sidebar { width:70px; }
  .sidebar .nav-label, .sidebar .nav-section, .sidebar .credits-buy, .sidebar .credits-label { display:none; }
  .sidebar-logo-img { height:30px; }
  .sidebar .credits-badge { justify-content:center; }
  .main { margin-left:70px; }
  .stats { grid-template-columns:1fr 1fr; }
}

/* ======================== CHARTS PANEL ======================== */
.charts-container { display:flex; flex-direction:column; gap:16px; }
.charts-panels { display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:start; }
.charts-panel { background:#0f1218; border:1px solid rgba(148,163,184,0.08); border-radius:12px; padding:18px; min-width:0; overflow:hidden; max-height:500px; overflow-y:auto; }
.charts-panel-header { display:flex; align-items:center; gap:10px; margin-bottom:12px; padding-bottom:10px; border-bottom:1px solid rgba(148,163,184,0.08); }
.charts-panel-label { font-size:10px; font-weight:700; letter-spacing:1.2px; color:#64748b; text-transform:uppercase; }
.charts-panel-icao { font-family:'JetBrains Mono',monospace; font-size:15px; font-weight:600; color:#38bdf8; }
.charts-airport-name { font-size:12px; color:#94a3b8; margin-bottom:12px; }
.charts-empty { text-align:center; padding:32px 16px; color:#475569; font-size:13px; }
.charts-error { color:#ef4444; }
.charts-loading { text-align:center; padding:32px 16px; color:#64748b; font-size:13px; }

.charts-group { margin-bottom:8px; }
.charts-group-header { font-size:11px; font-weight:600; letter-spacing:0.5px; color:#94a3b8; text-transform:uppercase; padding:6px 8px; background:rgba(148,163,184,0.04); border-radius:6px; cursor:pointer; user-select:none; transition:background 0.15s; }
.charts-group-header:hover { background:rgba(148,163,184,0.08); }
.charts-group.collapsed .charts-group-list { display:none; }
.charts-group-list { margin-top:4px; }

.charts-item { display:flex; align-items:center; gap:8px; padding:6px 10px; border-radius:6px; cursor:pointer; transition:background 0.15s; }
.charts-item:hover { background:rgba(56,189,248,0.08); }
.charts-item-code { font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:600; color:#64748b; min-width:36px; text-align:center; background:rgba(148,163,184,0.06); padding:2px 5px; border-radius:4px; }
.charts-item-name { font-size:13px; color:#e2e8f0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

.charts-viewer { background:#0f1218; border:1px solid rgba(148,163,184,0.08); border-radius:12px; overflow:hidden; }
.charts-viewer-toolbar { display:flex; align-items:center; gap:12px; padding:10px 14px; background:rgba(148,163,184,0.04); border-bottom:1px solid rgba(148,163,184,0.08); }
.charts-viewer-title { flex:1; font-size:13px; font-weight:500; color:#e2e8f0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.charts-viewer-frame { width:100%; height:75vh; border:none; background:#1e293b; }
.charts-viewer[hidden] { display:none; }
.charts-viewer.charts-fullscreen { background:#0a0c10; border-radius:0; border:none; }
.charts-viewer.charts-fullscreen .charts-viewer-frame { height:calc(100vh - 46px); }
.charts-viewer.charts-fullscreen .charts-viewer-toolbar { border-radius:0; }

.charts-source-note { font-size:11px; color:#475569; text-align:center; padding:8px; }

@media (max-width:900px) {
  .charts-panels { grid-template-columns:1fr; }
  .charts-viewer-frame { height:450px; }
}

/* ======================== PREMIUM BADGE + LOCK ======================== */
.premium-badge {
  display: inline-block;
  padding: 2px 8px;
  margin-left: 8px;
  background: linear-gradient(135deg, #b8762d, #d4a857);
  color: #0f172a;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1px;
  border-radius: 4px;
  vertical-align: middle;
}

.nav-section-premium {
  color: #d4a857 !important;
}

.premium-locked {
  display: none !important;
}

/* ======================== SCENERY MANAGER ======================== */
.scenery-card {
  background: rgba(15, 23, 42, 0.92);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid #334155;
  border-radius: 12px;
  padding: 20px 24px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
}

.scenery-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
  padding: 12px 16px;
  background: #1e293b;
  border: 1px solid #334155;
  border-radius: 8px;
}

.scenery-status {
  margin-left: auto;
  font-size: 12px;
  color: #94a3b8;
  font-family: monospace;
}

.scenery-status.saving { color: #d4a857; }
.scenery-status.saved  { color: #10b981; }
.scenery-status.error  { color: #ef4444; }

.scenery-empty {
  padding: 24px;
  text-align: center;
  color: #94a3b8;
  background: #1e293b;
  border: 1px dashed #334155;
  border-radius: 8px;
  margin: 16px 0;
}

.scenery-messages {
  margin: 12px 0;
  padding: 12px 16px;
  border-radius: 6px;
  font-size: 13px;
}
.scenery-messages-error   { background: #3b1a1a; border: 1px solid #7f1d1d; color: #fca5a5; }
.scenery-messages-warning { background: #3a2d14; border: 1px solid #7c4a0a; color: #fcd34d; }
.scenery-messages ul { margin: 4px 0 0 20px; padding: 0; }
.scenery-messages li { margin: 2px 0; }

.scenery-list {
  background: #0b1220;
  border: 1px solid #334155;
  border-radius: 8px;
  padding: 6px;
  min-height: 200px;
  max-height: calc(100vh - 340px);
  overflow-y: auto;
}

.scenery-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  margin: 2px 0;
  background: #1e293b;
  border: 1px solid #334155;
  border-radius: 6px;
  cursor: grab;
  user-select: none;
  transition: background 0.15s, border-color 0.15s;
}

.scenery-item:hover { background: #263449; border-color: #475569; }
.scenery-item.dragging { opacity: 0.5; }
.scenery-item.sortable-ghost { opacity: 0.3; background: #334155; }
.scenery-item.sortable-chosen { cursor: grabbing; }

.scenery-item-handle {
  color: #475569;
  font-size: 18px;
  line-height: 1;
}

.scenery-item-type {
  display: inline-block;
  min-width: 110px;
  padding: 3px 8px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border-radius: 3px;
  text-align: center;
}

/* Couleurs par type (rangs section 4 REFERENCE-SCENERY-INI.md) */
.scenery-item[data-type="custom_airport"]   .scenery-item-type { background: #065f46; color: #a7f3d0; }
.scenery-item[data-type="plugin_airport"]   .scenery-item-type { background: #065f46; color: #a7f3d0; }
.scenery-item[data-type="airport_overlay"]  .scenery-item-type { background: #064e3b; color: #6ee7b7; }
.scenery-item[data-type="region_overlay"]   .scenery-item-type { background: #713f12; color: #fde68a; }
.scenery-item[data-type="default_gateway"]  .scenery-item-type { background: #1e3a8a; color: #bfdbfe; }
.scenery-item[data-type="library"]          .scenery-item-type { background: #4c1d95; color: #ddd6fe; }
.scenery-item[data-type="photo_overlay"]    .scenery-item-type { background: #701a75; color: #f5d0fe; }
.scenery-item[data-type="orthophoto"]       .scenery-item-type { background: #831843; color: #fbcfe8; }
.scenery-item[data-type="custom_mesh"]      .scenery-item-type { background: #7c2d12; color: #fed7aa; }
.scenery-item[data-type="default_mesh"]     .scenery-item-type { background: #374151; color: #9ca3af; }
.scenery-item[data-type="unknown"]          .scenery-item-type { background: #450a0a; color: #fca5a5; }
.scenery-item[data-type="missing"]          .scenery-item-type { background: #450a0a; color: #fecaca; }

.scenery-item-stock {
  display: inline-block;
  padding: 2px 6px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.8px;
  color: #94a3b8;
  background: #334155;
  border: 1px solid #475569;
  border-radius: 3px;
  text-transform: uppercase;
}

.scenery-item-name {
  flex: 1;
  font-family: monospace;
  font-size: 13px;
  color: #e2e8f0;
  word-break: break-all;
}

.scenery-item[data-stock="true"] .scenery-item-name {
  color: #94a3b8;
}

.scenery-item[data-enabled="false"] .scenery-item-name {
  color: #64748b;
  text-decoration: line-through;
}

.scenery-item-rename {
  background: none;
  border: 1px solid transparent;
  color: #64748b;
  padding: 4px 8px;
  font-size: 13px;
  border-radius: 4px;
  cursor: pointer;
  opacity: 0.5;
  transition: opacity 0.15s, border-color 0.15s;
}
.scenery-item:hover .scenery-item-rename { opacity: 1; }
.scenery-item-rename:hover { border-color: #475569; }

.scenery-item-toggle {
  background: none;
  border: 1px solid #475569;
  color: #94a3b8;
  padding: 4px 10px;
  font-size: 11px;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.15s;
}
.scenery-item-toggle:hover { border-color: #64748b; color: #cbd5e1; }
.scenery-item[data-enabled="false"] .scenery-item-toggle {
  background: #3b1a1a;
  border-color: #7f1d1d;
  color: #fca5a5;
}

.scenery-item-warning {
  display: none;
  color: #fcd34d;
  font-size: 14px;
  margin-right: 6px;
}
.scenery-item.has-warning .scenery-item-warning { display: inline; }
.scenery-item.has-warning { border-left: 3px solid #d4a857; }
.scenery-item.has-error   { border-left: 3px solid #ef4444; }

.scenery-footer {
  margin-top: 12px;
  padding: 8px 14px;
  font-size: 12px;
  color: #64748b;
}
.scenery-hint { margin: 0; font-style: italic; }

/* ======================== SCROLLBAR ======================== */
::-webkit-scrollbar { width:6px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:#1e293b; border-radius:3px; }
::-webkit-scrollbar-thumb:hover { background:#334155; }
