@import url('https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&family=Sora:wght@300;400;600;700&display=swap');

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
    color-scheme: dark;
    --bg:        #0a0e17;
    --bg2:       #111827;
    --bg3:       #1a2236;
    --border:    rgba(99,179,237,0.15);
    --accent:    #63b3ed;
    --accent2:   #4ade80;
    --accent3:   #f59e0b;
    --danger:    #f87171;
    --text:      #e2e8f0;
    --muted:     #64748b;
    --card-shadow: 0 4px 24px rgba(0,0,0,0.4);
    --radius:    14px;
    --radius-sm: 8px;
    --font-mono: 'Space Mono', monospace;
    --font-main: 'Sora', sans-serif;
}

html { scroll-behavior: smooth; }
body { font-family:var(--font-main);background:var(--bg);color:var(--text);min-height:100vh;line-height:1.6;background-image:radial-gradient(ellipse at 20% 0%,rgba(99,179,237,.06) 0%,transparent 50%),radial-gradient(ellipse at 80% 100%,rgba(74,222,128,.04) 0%,transparent 50%); transition:background-color .2s,color .2s,border-color .2s; }
body[data-theme="light"] {
    color-scheme: light;
    --bg: #f4f7fb;
    --bg2: #ffffff;
    --bg3: #eef3f8;
    --border: rgba(15,23,42,.10);
    --accent: #2563eb;
    --accent2: #16a34a;
    --accent3: #d97706;
    --danger: #dc2626;
    --text: #0f172a;
    --muted: #64748b;
    --card-shadow: 0 8px 28px rgba(15,23,42,.08);
    background-image: radial-gradient(ellipse at 20% 0%, rgba(37,99,235,.08) 0%, transparent 50%), radial-gradient(ellipse at 80% 100%, rgba(22,163,74,.05) 0%, transparent 50%);
}
body[data-theme="light"] .navbar { background:rgba(255,255,255,.92); }
body[data-theme="light"] .navbar-brand { color:var(--text); }
body[data-theme="light"] .hero h1,
body[data-theme="light"] .nearest-callsign,
body[data-theme="light"] .site-footer strong,
body[data-theme="light"] .table th,
body[data-theme="light"] .modal-content h3,
body[data-theme="light"] .card h1,
body[data-theme="light"] .card h2,
body[data-theme="light"] .card h3,
body[data-theme="light"] h1,
body[data-theme="light"] h2,
body[data-theme="light"] h3 { color:var(--text) !important; }
body[data-theme="light"] .btn-secondary { background:#f8fafc; }
body[data-theme="light"] .status-bar.info { color:#1d4ed8; }
body[data-theme="light"] .status-bar.success { color:#15803d; }
body[data-theme="light"] .status-bar.warning { color:#b45309; }
body[data-theme="light"] .status-bar.error { color:#b91c1c; }
body[data-theme="light"] .card,
body[data-theme="light"] .controls-bar,
body[data-theme="light"] .panel,
body[data-theme="light"] .modal-content,
body[data-theme="light"] .table-wrapper { background:var(--bg2); }
body[data-theme="light"] .site-footer { color:var(--muted); }
body[data-theme="light"] {
    background-color: var(--bg) !important;
    color: var(--text) !important;
}
body[data-theme="light"] .navbar,
body[data-theme="light"] .card,
body[data-theme="light"] .controls-bar,
body[data-theme="light"] .panel,
body[data-theme="light"] .modal-content,
body[data-theme="light"] .table-wrapper,
body[data-theme="light"] .search-mode-option,
body[data-theme="light"] .site-footer,
body[data-theme="light"] .leaflet-popup-content-wrapper,
body[data-theme="light"] .leaflet-popup-tip {
    background: var(--bg2) !important;
    color: var(--text) !important;
    border-color: var(--border) !important;
}
body[data-theme="light"] .hero,
body[data-theme="light"] .auth-brand,
body[data-theme="light"] .container,
body[data-theme="light"] .dashboard-grid,
body[data-theme="light"] .stats-grid {
    color: var(--text) !important;
}
body[data-theme="light"] input,
body[data-theme="light"] select,
body[data-theme="light"] textarea {
    background: var(--bg3) !important;
    color: var(--text) !important;
    border-color: var(--border) !important;
}
body[data-theme="light"] label,
body[data-theme="light"] small,
body[data-theme="light"] p,
body[data-theme="light"] .hero-subtitle,
body[data-theme="light"] .search-mode-option span,
body[data-theme="light"] .table td,
body[data-theme="light"] .muted,
body[data-theme="light"] .site-footer,
body[data-theme="light"] .modal-message {
    color: var(--muted) !important;
}
body[data-theme="light"] a { color: var(--accent) !important; }
body[data-theme="light"] .search-mode-option strong,
body[data-theme="light"] .card-title,
body[data-theme="light"] .modal-content strong,
body[data-theme="light"] .modal-message strong,
body[data-theme="light"] .table th,
body[data-theme="light"] .navbar-brand,
body[data-theme="light"] .user-badge,
body[data-theme="light"] .hero h1,
body[data-theme="light"] .hero h1 span {
    color: var(--text) !important;
}
body[data-theme="light"] .btn-secondary {
    background: #eef2f7 !important;
    color: var(--text) !important;
    border: 1px solid var(--border) !important;
}
body[data-theme="light"] .btn-secondary:hover {
    background: #e2e8f0 !important;
}
body[data-theme="light"] .table tr:nth-child(even) td { background: rgba(15,23,42,.02) !important; }
body[data-theme="light"] .status-bar { background: rgba(255,255,255,.75) !important; }
.container { max-width:1200px;margin:0 auto;padding:24px; }

/* NAVBAR */
.navbar { background:rgba(10,14,23,.95);border-bottom:1px solid var(--border);backdrop-filter:blur(12px);position:sticky;top:0;z-index:100; }
.navbar-inner { max-width:1200px;margin:0 auto;padding:0 24px;height:56px;display:flex;align-items:center;justify-content:space-between;gap:16px; }
.navbar-brand { display:inline-flex;align-items:center;justify-content:flex-start;gap:10px;text-decoration:none;font-family:var(--font-mono);font-size:18px;font-weight:700;color:#fff;line-height:1;min-height:auto;padding:0;margin:0; }
.navbar-brand span { color:var(--accent); }
.navbar-brand:hover { text-decoration:none; }
.navbar-nav { display:flex;align-items:center;gap:4px;list-style:none; }
.navbar-nav a { padding:6px 10px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;color:var(--muted);text-decoration:none;transition:color .2s,background .2s;display:flex;align-items:center;gap:5px; }
.navbar-nav a:hover { color:var(--text);background:var(--bg3);text-decoration:none; }
.navbar-nav a.active { color:var(--accent);background:rgba(99,179,237,.1); }
.navbar-badge { background:var(--danger);color:#fff;font-size:10px;font-weight:700;padding:1px 5px;border-radius:10px;min-width:18px;text-align:center; }
.navbar-user { display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted); }
.navbar-callsign { font-family:var(--font-mono);font-size:12px;color:var(--accent);background:rgba(99,179,237,.1);border:1px solid rgba(99,179,237,.2);padding:3px 8px;border-radius:5px; }

/* HERO */
.hero { padding:28px 0 20px; }
.hero-inner { display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:16px; }
.hero-brand { display:flex;align-items:center;gap:16px; }
.site-logo { --logo-box:30px;--logo-img:30px;display:flex !important;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;line-height:0;background:linear-gradient(135deg,var(--accent),#3b82f6);color:#fff;box-shadow:0 0 20px rgba(99,179,237,.3);width:var(--logo-box) !important;min-width:var(--logo-box) !important;max-width:var(--logo-box) !important;height:var(--logo-box) !important;min-height:var(--logo-box) !important;max-height:var(--logo-box) !important; }
.site-logo--navbar { border-radius:7px;font-size:14px;box-shadow:none;vertical-align:middle;margin:0 !important; }
.navbar-brand .site-logo--navbar { margin:0 !important; }
.site-logo--hero { --logo-box:88px;--logo-img:88px;border-radius:16px;font-size:24px;margin:0 auto 16px; }
.auth-brand { display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;width:100%; }
.auth-logo-wrap { width:100%; display:flex; justify-content:center !important; align-items:center !important; margin:0 auto 16px; text-align:center; }
.auth-logo-wrap .site-logo--hero { margin:0 auto !important; display:flex !important; }
.auth-brand .site-logo--hero { margin-left:auto; margin-right:auto; }
.auth-brand > * { margin-left:auto; margin-right:auto; }
.auth-brand h1, .auth-brand p { width:100%; text-align:center; }
.auth-logo-wrap .site-logo, .auth-logo-wrap img { margin-left:auto !important; margin-right:auto !important; }
.site-logo.is-image { background:transparent !important;border:none !important;padding:0 !important;box-sizing:border-box;box-shadow:none; }
.site-logo--navbar.is-image { padding:0 !important; }
.site-logo--hero.is-image { padding:0 !important; }
.site-logo img { width:100% !important;height:100% !important;max-width:100% !important;max-height:100% !important;object-fit:contain !important;display:block !important;flex:0 0 auto; }
.site-logo-text { line-height:1;display:inline-flex;align-items:center;justify-content:center;font-size:calc(var(--logo-box) * 0.48); }
.hero h1 { font-family:var(--font-mono);font-size:clamp(20px,4vw,34px);font-weight:700;color:#fff;line-height:1.1; }
.hero h1 span { color:var(--accent); }
.hero-subtitle { font-size:12px;color:var(--muted);margin-top:4px;font-weight:300; }
.hero-actions { display:flex;gap:8px;flex-wrap:wrap;align-items:center; }

/* CARD */
.card { background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:22px;box-shadow:var(--card-shadow);margin-bottom:20px;position:relative;overflow:hidden; }
.card::before { content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.3; }
.card.highlight { border-color:rgba(99,179,237,.4); }
.card.highlight::before { opacity:1; }
.card-title { font-family:var(--font-mono);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin-bottom:16px;display:flex;align-items:center;gap:8px; }
.card-title::after { content:'';flex:1;height:1px;background:var(--border); }

/* CONTROLS */
.controls-bar { background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:18px;margin-bottom:20px;display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end; }

/* FIELDS */
.field { display:flex;flex-direction:column;gap:6px;min-width:130px;flex:1; }
label { font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted); }
select,input[type="text"],input[type="number"],input[type="password"],input[type="email"],input[type="date"],textarea { background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;font-size:14px;font-family:var(--font-main);color:var(--text);transition:border-color .2s,box-shadow .2s;width:100%; }
textarea { resize:vertical;min-height:80px; }
select:focus,input:focus,textarea:focus { outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(99,179,237,.12); }
select option { background:var(--bg2); }
.form-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:14px;margin-bottom:16px; }
.checkbox-field { display:flex;align-items:center;gap:10px;margin-bottom:14px; }
.checkbox-field input[type="checkbox"] { width:16px;height:16px;accent-color:var(--accent); }
.checkbox-field label { font-size:14px;text-transform:none;letter-spacing:0;color:var(--text); }

/* BUTTONS */
.btn { display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:var(--radius-sm);border:none;font-family:var(--font-main);font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;transition:all .2s;white-space:nowrap; }
.btn-primary,#btnLocate { background:linear-gradient(135deg,var(--accent),#3b82f6);color:#fff;box-shadow:0 4px 14px rgba(99,179,237,.3); }
.btn-primary:hover,#btnLocate:hover { transform:translateY(-1px);box-shadow:0 6px 20px rgba(99,179,237,.4);text-decoration:none;color:#fff; }
.btn-secondary { background:var(--bg3);color:var(--text);border:1px solid var(--border)!important; }
.btn-secondary:hover { background:#243050;border-color:var(--accent)!important;text-decoration:none;color:var(--text); }
.btn-success { background:rgba(74,222,128,.12);color:var(--accent2);border:1px solid rgba(74,222,128,.25)!important; }
.btn-success:hover { background:rgba(74,222,128,.22);text-decoration:none; }
.btn-danger  { background:rgba(248,113,113,.1);color:var(--danger);border:1px solid rgba(248,113,113,.22)!important; }
.btn-danger:hover  { background:rgba(248,113,113,.2);text-decoration:none; }
.btn-warning { background:rgba(245,158,11,.1);color:var(--accent3);border:1px solid rgba(245,158,11,.22)!important; }
.btn-warning:hover { background:rgba(245,158,11,.2);text-decoration:none; }
.btn-sm { padding:6px 11px;font-size:12px; }
.btn-xs { padding:3px 7px;font-size:11px; }

/* STATUS BARS */
.status-bar { display:flex;align-items:center;gap:10px;padding:11px 16px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;margin-bottom:16px;border:1px solid;transition:all .3s; }
.status-bar .dot { width:8px;height:8px;border-radius:50%;flex-shrink:0;animation:pulse 2s infinite; }
@keyframes pulse { 0%,100%{opacity:1}50%{opacity:.4} }
.status-bar.info    { background:rgba(99,179,237,.08);border-color:rgba(99,179,237,.25);color:#93c5fd; }
.status-bar.info .dot    { background:var(--accent); }
.status-bar.success { background:rgba(74,222,128,.08);border-color:rgba(74,222,128,.25);color:#86efac; }
.status-bar.success .dot { background:var(--accent2); }
.status-bar.error   { background:rgba(248,113,113,.08);border-color:rgba(248,113,113,.25);color:#fca5a5; }
.status-bar.error .dot   { background:var(--danger);animation:none; }
.status-bar.warning { background:rgba(245,158,11,.08);border-color:rgba(245,158,11,.25);color:#fcd34d; }
.status-bar.warning .dot { background:var(--accent3); }
.hidden { display:none!important; }

/* COORDS */
.coords-bar { display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:16px;font-family:var(--font-mono);font-size:12px;color:var(--muted);flex-wrap:wrap; }
.coords-bar .coord-label { color:var(--accent);font-size:10px;letter-spacing:1px;text-transform:uppercase; }
.coords-bar .coord-val   { color:var(--text); }

/* NEAREST */
.nearest-card { background:linear-gradient(135deg,#0f172a 0%,#0d1b2e 100%);border:1px solid rgba(99,179,237,.35);border-radius:var(--radius);padding:22px;margin-bottom:20px;position:relative;overflow:hidden; }
.nearest-card::before { content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent2)); }
.nearest-badge { display:inline-flex;align-items:center;gap:6px;background:rgba(99,179,237,.15);border:1px solid rgba(99,179,237,.3);border-radius:20px;padding:4px 12px;font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--accent);margin-bottom:12px; }
.nearest-callsign { font-family:var(--font-mono);font-size:clamp(20px,3vw,30px);font-weight:700;color:#fff;margin-bottom:4px; }
.nearest-name { font-size:14px;color:var(--muted);margin-bottom:16px; }
.info-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:9px;margin-bottom:14px; }
.info-item { background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 12px; }
.info-item .info-label { font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:3px; }
.info-item .info-val { font-family:var(--font-mono);font-size:13px;font-weight:700;color:var(--text); }
.info-item.accent-item .info-val { color:var(--accent); }
.info-item.green-item  .info-val { color:var(--accent2); }

/* REPEATER CARDS */
.repeater-list { display:grid;grid-template-columns:repeat(auto-fill,minmax(295px,1fr));gap:12px; }
.rep-card { background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:border-color .2s,transform .2s; }
.rep-card:hover { border-color:rgba(99,179,237,.3);transform:translateY(-2px); }
.rep-header { display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px; }
.rep-callsign { font-family:var(--font-mono);font-size:16px;font-weight:700;color:#fff; }
.rep-name     { font-size:12px;color:var(--muted); }
.rep-distance { font-family:var(--font-mono);font-size:11px;color:var(--accent2);white-space:nowrap;padding:2px 7px;background:rgba(74,222,128,.1);border:1px solid rgba(74,222,128,.2);border-radius:5px; }
.tag-row { display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px; }
.tag { font-size:11px;font-weight:600;padding:2px 7px;border-radius:4px;letter-spacing:.4px;font-family:var(--font-mono); }
.tag-mode    { background:rgba(99,179,237,.12);color:var(--accent);border:1px solid rgba(99,179,237,.2); }
.tag-band    { background:rgba(245,158,11,.1);color:var(--accent3);border:1px solid rgba(245,158,11,.2); }
.tag-active  { background:rgba(74,222,128,.1);color:var(--accent2);border:1px solid rgba(74,222,128,.2); }
.tag-inactive{ background:rgba(248,113,113,.1);color:var(--danger);border:1px solid rgba(248,113,113,.2); }
.tag-unknown { background:rgba(100,116,139,.1);color:var(--muted);border:1px solid rgba(100,116,139,.15); }
.tag-pending { background:rgba(245,158,11,.1);color:var(--accent3);border:1px solid rgba(245,158,11,.2); }
.rep-details { font-size:12px;color:var(--muted);display:grid;gap:3px; }
.rep-details span { display:flex;gap:6px; }
.rep-details span b { color:var(--text);min-width:70px;font-weight:600; }
.rep-footer { margin-top:10px;padding-top:10px;border-top:1px solid var(--border);display:flex;gap:6px;align-items:center;flex-wrap:wrap; }

/* MAP */
.map-section { background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:20px; }
.map-header { padding:12px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--muted);letter-spacing:1px;text-transform:uppercase; }
.map-header span { color:var(--accent);font-family:var(--font-mono);font-size:11px; }
#map { height:420px;width:100%;background:var(--bg3); }
.leaflet-tile { filter:brightness(.85) saturate(.8); }
.leaflet-popup-content-wrapper { background:var(--bg2)!important;color:var(--text)!important;border:1px solid var(--border)!important;border-radius:var(--radius-sm)!important;box-shadow:var(--card-shadow)!important; }
.leaflet-popup-tip { background:var(--bg2)!important; }
.leaflet-popup-content { font-family:var(--font-main)!important;font-size:13px!important; }
.leaflet-popup-content strong { color:var(--accent);font-family:var(--font-mono); }

/* PAGE HEADER */
.page-header { display:flex;align-items:center;gap:14px;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--border); }
.page-icon { width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0; }
.page-icon.blue   { background:linear-gradient(135deg,var(--accent),#3b82f6); }
.page-icon.orange { background:linear-gradient(135deg,#f59e0b,#ef4444); }
.page-icon.green  { background:linear-gradient(135deg,#4ade80,#22c55e); }
.page-header h1   { font-family:var(--font-mono);font-size:19px;color:#fff; }
.page-header p    { font-size:12px;color:var(--muted); }

/* STATS */
.stats-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:20px; }
.stat-card { background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:16px;text-align:center; }
.stat-value { font-family:var(--font-mono);font-size:28px;font-weight:700;color:var(--accent);line-height:1; }
.stat-value.green  { color:var(--accent2); }
.stat-value.orange { color:var(--accent3); }
.stat-value.red    { color:var(--danger); }
.stat-label { font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-top:5px; }

/* TABLES */
.table-wrap { overflow-x:auto; }
.admin-table { width:100%;border-collapse:collapse;font-size:13px; }
.admin-table th { padding:9px 12px;text-align:left;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);font-weight:600; }
.admin-table td { padding:10px 12px;border-bottom:1px solid rgba(99,179,237,.05);color:var(--text);vertical-align:middle; }
.admin-table tr:hover td { background:rgba(99,179,237,.03); }
.admin-table .mono { font-family:var(--font-mono);font-size:12px; }

/* DIFF */
.diff-table { width:100%;border-collapse:collapse;font-size:13px;margin-bottom:14px; }
.diff-table th { padding:8px 10px;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border); }
.diff-table td { padding:8px 10px;border-bottom:1px solid rgba(99,179,237,.05); }
.diff-old { color:var(--danger);text-decoration:line-through;opacity:.7; }
.diff-new { color:var(--accent2);font-weight:600; }

/* SECTION HEADER */
.section-header { display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:8px; }
.section-title  { font-family:var(--font-mono);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--muted); }
.section-count  { font-family:var(--font-mono);font-size:12px;color:var(--accent);background:rgba(99,179,237,.1);padding:3px 10px;border-radius:5px;border:1px solid rgba(99,179,237,.2); }

a { color:var(--accent);text-decoration:none;transition:color .2s; }
a:hover { color:#93c5fd;text-decoration:underline; }
.actions { display:flex;gap:7px;flex-wrap:wrap;align-items:center; }
.empty-state { text-align:center;padding:36px 20px;color:var(--muted); }
.empty-state .empty-icon { font-size:36px;margin-bottom:8px;opacity:.4; }
.empty-state p { font-size:13px; }
.footer { margin-top:36px;padding-top:16px;border-top:1px solid var(--border);text-align:center;font-size:11px;color:var(--muted);font-family:var(--font-mono); }

@media(max-width:768px){
    .container { padding:12px; }
    .navbar-inner { padding:0 12px; }
    .nav-label { display:none; }
    #map { height:260px; }
    .repeater-list { grid-template-columns:1fr; }
    .info-grid { grid-template-columns:1fr 1fr; }
    .stats-grid { grid-template-columns:1fr 1fr; }
    .form-grid { grid-template-columns:1fr; }
}

/* ===== INFO BANNER ===== */
.info-banner {
    background: linear-gradient(135deg, #0f172a 0%, #111c2e 100%);
    border: 1px solid rgba(99,179,237,0.2);
    border-radius: var(--radius);
    padding: 28px;
    margin: 20px 0;
    position: relative;
    overflow: hidden;
}
.info-banner::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--accent), #a78bfa, var(--accent2));
}

.info-banner-grid {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 32px;
    align-items: start;
}

.info-title {
    font-family: var(--font-mono);
    font-size: 18px;
    font-weight: 700;
    color: #fff;
    margin-bottom: 10px;
    letter-spacing: -0.5px;
}

.info-banner-text {
    width: 100%;
    max-width: 820px;
}

.info-desc {
    display: block;
    width: 100%;
    max-width: none;
    font-size: 14px;
    color: var(--muted);
    line-height: 1.75;
    margin-bottom: 20px;
    text-align: justify;
    text-justify: inter-word;
    text-wrap: pretty;
}
.info-desc strong { color: var(--text); }

.info-features {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.info-feature {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(99,179,237,0.1);
    border-radius: var(--radius-sm);
    padding: 10px 12px;
}

.info-feature-icon {
    font-size: 20px;
    flex-shrink: 0;
    margin-top: 1px;
}

.info-feature div {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.info-feature b {
    font-size: 13px;
    color: var(--text);
    font-weight: 600;
}

.info-feature span {
    font-size: 12px;
    color: var(--muted);
    line-height: 1.4;
}

/* Stats sidebar */
.info-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    min-width: 200px;
}

.info-stat {
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 14px 12px;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.info-stat-value {
    font-family: var(--font-mono);
    font-size: 26px;
    font-weight: 700;
    color: var(--accent);
    line-height: 1;
}

.info-stat-label {
    font-size: 10px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--muted);
}

@media (max-width: 768px) {
    .info-banner-grid { grid-template-columns: 1fr; gap: 20px; }
    .info-features    { grid-template-columns: 1fr; }
    .info-stats       { grid-template-columns: repeat(2, 1fr); }
    .info-stat-value  { font-size: 20px; }
}

/* ===== ADMIN BANNER ===== */
.info-banner-admin {
    background: linear-gradient(135deg, #0f1a2e 0%, #0a1220 100%);
    border-color: rgba(245,158,11,0.25);
}
.info-banner-admin::before {
    background: linear-gradient(90deg, #f59e0b, #ef4444, #f59e0b);
}

.admin-banner-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
    flex-wrap: wrap;
}
.admin-banner-title {
    font-family: var(--font-mono);
    font-size: 16px;
    font-weight: 700;
    color: #fff;
    margin-bottom: 5px;
}
.admin-banner-sub {
    font-size: 13px;
    color: var(--muted);
}
.admin-banner-sub strong { color: var(--text); }

/* Alertas pendentes */
.admin-alerts {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}
.admin-alert-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border-radius: var(--radius-sm);
    text-decoration: none;
    transition: all 0.2s;
    flex: 1;
    min-width: 200px;
}
.admin-alert-item:hover { transform: translateY(-1px); text-decoration: none; }
.admin-alert-warning {
    background: rgba(245,158,11,0.1);
    border: 1px solid rgba(245,158,11,0.3);
}
.admin-alert-warning:hover { background: rgba(245,158,11,0.18); }
.admin-alert-icon { font-size: 22px; flex-shrink: 0; }
.admin-alert-item div {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
}
.admin-alert-item strong { font-size: 13px; color: var(--accent3); }
.admin-alert-item span   { font-size: 11px; color: var(--muted); }
.admin-alert-badge {
    background: var(--accent3);
    color: #000;
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 10px;
    min-width: 24px;
    text-align: center;
    flex-shrink: 0;
}

/* Atalhos rápidos */
.admin-shortcuts {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    margin-bottom: 18px;
}
.admin-shortcut {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 12px 8px;
    background: rgba(255,255,255,0.03);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    text-decoration: none;
    transition: all 0.2s;
    color: var(--text);
}
.admin-shortcut:hover {
    background: rgba(99,179,237,0.08);
    border-color: rgba(99,179,237,0.3);
    transform: translateY(-2px);
    text-decoration: none;
    color: var(--accent);
}
.admin-shortcut-icon  { font-size: 22px; }
.admin-shortcut-label { font-size: 12px; font-weight: 600; letter-spacing: 0.3px; }

/* Stats detalhadas admin */
.admin-stats-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 8px;
    padding-top: 16px;
    border-top: 1px solid var(--border);
}
.admin-stat {
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 12px 8px;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.admin-stat-value {
    font-family: var(--font-mono);
    font-size: 22px;
    font-weight: 700;
    color: var(--accent);
    line-height: 1;
}
.admin-stat-label {
    font-size: 10px;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: var(--muted);
    line-height: 1.3;
}

@media (max-width: 900px) {
    .admin-stats-grid    { grid-template-columns: repeat(4, 1fr); }
    .admin-shortcuts     { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 600px) {
    .admin-stats-grid    { grid-template-columns: repeat(3, 1fr); }
    .admin-shortcuts     { grid-template-columns: repeat(2, 1fr); }
    .admin-stat-value    { font-size: 18px; }
}

/* ===== ADMIN HERO HEADER ===== */
.admin-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    background: linear-gradient(135deg, #0f1a2e 0%, #0a1220 100%);
    border: 1px solid rgba(245,158,11,0.25);
    border-radius: var(--radius);
    padding: 22px 24px;
    margin: 20px 0 16px;
    position: relative;
    overflow: hidden;
}
.admin-hero::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, #f59e0b, #ef4444, #f59e0b);
}
.admin-hero-left { flex: 1; }
.admin-hero-title {
    font-family: var(--font-mono);
    font-size: 16px;
    font-weight: 700;
    color: #fff;
    margin-bottom: 6px;
}
.admin-hero-title span { color: var(--accent); }
.admin-hero-sub { font-size: 13px; color: var(--muted); }
.admin-hero-sub strong { color: var(--text); }
.pending-highlight { color: var(--accent3) !important; }
.admin-hero-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }

/* Atalho com badge posicionado */
.admin-shortcut { position: relative; }

/* ===== MODAL DE CONFIRMAÇÃO ===== */
.modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.65);
    backdrop-filter: blur(4px);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    animation: fadeIn .15s ease;
}
@keyframes fadeIn { from { opacity:0 } to { opacity:1 } }

.modal-box {
    background: var(--bg2);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 28px;
    max-width: 420px;
    width: 100%;
    box-shadow: 0 24px 64px rgba(0,0,0,0.6);
    animation: slideUp .18s ease;
    position: relative;
}
@keyframes slideUp { from { transform:translateY(12px);opacity:0 } to { transform:translateY(0);opacity:1 } }

.modal-box::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    border-radius: var(--radius) var(--radius) 0 0;
}
.modal-box.modal-danger::before  { background: var(--danger); }
.modal-box.modal-success::before { background: var(--accent2); }
.modal-box.modal-warning::before { background: var(--accent3); }
.modal-box.modal-info::before    { background: var(--accent); }

.modal-icon { font-size: 36px; margin-bottom: 12px; display: block; }

.modal-title {
    font-family: var(--font-mono);
    font-size: 16px;
    font-weight: 700;
    color: #fff;
    margin-bottom: 8px;
}

.modal-message {
    font-size: 14px;
    color: var(--muted);
    line-height: 1.6;
    margin-bottom: 22px;
}
.modal-message strong { color: var(--text); }

.modal-actions {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
}

/* ===== SEARCH MODE OPTIONS (settings) ===== */
.search-mode-option {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px;
    background: var(--bg3);
    border: 2px solid var(--border);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: border-color .2s, background .2s;
}
.search-mode-option:hover { border-color: rgba(99,179,237,.4); }
.search-mode-option.selected {
    border-color: var(--accent);
    background: rgba(99,179,237,.08);
}
.search-mode-icon { font-size: 26px; flex-shrink: 0; margin-top: 2px; }
.search-mode-option strong { display:block; font-size:14px; color:#fff; margin-bottom:4px; }
.search-mode-option span   { font-size:12px; color:var(--muted); line-height:1.5; }

.navbar-brand .site-logo { margin:0; align-self:center; }
.navbar-brand .site-logo img { vertical-align:middle; }

.navbar-brand{height:100%;padding-bottom:0 !important;margin-bottom:0 !important;line-height:1 !important;}
.navbar-brand .site-logo--navbar,.navbar-brand img{display:block;margin-bottom:0 !important;}
.navbar-inner,.navbar,.navbar *{vertical-align:middle;}
.login-page .container,.register-page .container{display:block;}
.login-page .auth-brand,.register-page .auth-brand{align-items:center;justify-content:center;text-align:center;}

/* === v7 inherited theme and auth logo fixes === */
body[data-theme="light"] {
    background: #f4f7fb !important;
    background-image:
        radial-gradient(ellipse at 20% 0%, rgba(37,99,235,.08) 0%, transparent 50%),
        radial-gradient(ellipse at 80% 100%, rgba(22,163,74,.05) 0%, transparent 50%) !important;
    color: #0f172a !important;
}
body[data-theme="light"] .navbar {
    background: rgba(255,255,255,.96) !important;
    border-bottom-color: rgba(15,23,42,.10) !important;
}
body[data-theme="light"] .navbar-nav a,
body[data-theme="light"] .navbar-user,
body[data-theme="light"] .hero-subtitle,
body[data-theme="light"] .site-footer,
body[data-theme="light"] .muted,
body[data-theme="light"] p,
body[data-theme="light"] label,
body[data-theme="light"] small,
body[data-theme="light"] .table td {
    color: #64748b !important;
}
body[data-theme="light"] .navbar-brand,
body[data-theme="light"] h1,
body[data-theme="light"] h2,
body[data-theme="light"] h3,
body[data-theme="light"] h4,
body[data-theme="light"] .card-title,
body[data-theme="light"] .table th,
body[data-theme="light"] .user-badge,
body[data-theme="light"] .nearest-callsign,
body[data-theme="light"] strong {
    color: #0f172a !important;
}
body[data-theme="light"] .card,
body[data-theme="light"] .controls-bar,
body[data-theme="light"] .panel,
body[data-theme="light"] .modal-content,
body[data-theme="light"] .table-wrapper,
body[data-theme="light"] .search-mode-option,
body[data-theme="light"] .leaflet-popup-content-wrapper,
body[data-theme="light"] .leaflet-popup-tip,
body[data-theme="light"] .site-footer {
    background: #ffffff !important;
    color: #0f172a !important;
    border-color: rgba(15,23,42,.10) !important;
    box-shadow: 0 8px 28px rgba(15,23,42,.08) !important;
}
body[data-theme="light"] input,
body[data-theme="light"] select,
body[data-theme="light"] textarea {
    background: #eef3f8 !important;
    color: #0f172a !important;
    border-color: rgba(15,23,42,.12) !important;
}
body[data-theme="light"] select option {
    background: #ffffff !important;
    color: #0f172a !important;
}
body[data-theme="light"] .btn-secondary {
    background: #eef2f7 !important;
    color: #0f172a !important;
    border-color: rgba(15,23,42,.12) !important;
}
body[data-theme="light"] .btn-secondary:hover {
    background: #e2e8f0 !important;
    color: #0f172a !important;
}
body[data-theme="light"] .status-bar.info {
    background: rgba(37,99,235,.08) !important;
    border-color: rgba(37,99,235,.18) !important;
    color: #1d4ed8 !important;
}
body[data-theme="light"] .status-bar.success {
    background: rgba(22,163,74,.08) !important;
    border-color: rgba(22,163,74,.18) !important;
    color: #15803d !important;
}
body[data-theme="light"] .status-bar.warning {
    background: rgba(217,119,6,.08) !important;
    border-color: rgba(217,119,6,.18) !important;
    color: #b45309 !important;
}
body[data-theme="light"] .status-bar.error {
    background: rgba(220,38,38,.08) !important;
    border-color: rgba(220,38,38,.18) !important;
    color: #b91c1c !important;
}
body[data-theme="light"] .table tr:nth-child(even) td {
    background: rgba(15,23,42,.02) !important;
}
body[data-theme="light"] .navbar-nav a:hover {
    color: #0f172a !important;
    background: #eef2f7 !important;
}
body[data-theme="light"] .navbar-nav a.active {
    color: #2563eb !important;
    background: rgba(37,99,235,.10) !important;
}
body[data-theme="light"] .navbar-callsign {
    color: #2563eb !important;
    background: rgba(37,99,235,.08) !important;
    border-color: rgba(37,99,235,.16) !important;
}
body[data-theme="light"] .card::before {
    background: linear-gradient(90deg, transparent, #2563eb, transparent) !important;
}
body.login-page .auth-brand,
body.register-page .auth-brand {
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
}
body.login-page .auth-logo-wrap,
body.register-page .auth-logo-wrap {
    width: 100% !important;
    display: grid !important;
    place-items: center !important;
    margin: 0 auto 16px !important;
    text-align: center !important;
}
body.login-page .auth-logo-wrap .site-logo--hero,
body.register-page .auth-logo-wrap .site-logo--hero,
body.login-page .auth-logo-wrap .site-logo,
body.register-page .auth-logo-wrap .site-logo {
    margin: 0 auto !important;
    justify-self: center !important;
    align-self: center !important;
}
body.login-page .auth-brand h1,
body.login-page .auth-brand p,
body.register-page .auth-brand h1,
body.register-page .auth-brand p {
    width: 100% !important;
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
}


/* === v7 theme consistency and auth logo alignment === */
html[data-theme="light"], body[data-theme="light"] {
    color-scheme: light !important;
}
body[data-theme="light"] .info-banner,
body[data-theme="light"] .admin-hero {
    background: linear-gradient(135deg, #ffffff 0%, #f3f7fb 100%) !important;
    border-color: rgba(15,23,42,.10) !important;
    box-shadow: 0 8px 28px rgba(15,23,42,.08) !important;
}
body[data-theme="light"] .info-title,
body[data-theme="light"] .admin-hero-title,
body[data-theme="light"] .admin-hero-sub strong,
body[data-theme="light"] .info-desc strong,
body[data-theme="light"] .info-feature b,
body[data-theme="light"] .admin-alert-item strong,
body[data-theme="light"] .admin-shortcut-label,
body[data-theme="light"] .admin-stat-label,
body[data-theme="light"] .admin-stat-value {
    color: #0f172a !important;
}
body[data-theme="light"] .info-desc,
body[data-theme="light"] .info-feature span,
body[data-theme="light"] .admin-hero-sub,
body[data-theme="light"] .admin-alert-item span {
    color: #64748b !important;
}
body[data-theme="light"] .info-feature,
body[data-theme="light"] .info-stat,
body[data-theme="light"] .admin-alert-item,
body[data-theme="light"] .admin-shortcut,
body[data-theme="light"] .admin-stat {
    background: #ffffff !important;
    border-color: rgba(15,23,42,.10) !important;
    box-shadow: 0 8px 28px rgba(15,23,42,.06) !important;
}
body[data-theme="light"] .info-feature-icon,
body[data-theme="light"] .admin-shortcut-icon,
body[data-theme="light"] .admin-alert-icon {
    filter: saturate(.95);
}
body[data-theme="light"] .leaflet-control-zoom a {
    background: #ffffff !important;
    color: #2563eb !important;
    border-bottom-color: rgba(15,23,42,.10) !important;
}
body[data-theme="light"] .leaflet-container {
    background: #dbeafe !important;
}
body[data-theme="light"] .actions .btn-secondary,
body[data-theme="light"] .actions .btn-primary {
    box-shadow: 0 6px 18px rgba(37,99,235,.12) !important;
}
.auth-brand-block {
    width: 100%;
    margin: 0 auto 32px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}
.register-page .auth-brand-block { margin-bottom: 28px; }
.auth-logo-wrap--center {
    width: 100%;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    margin: 0 auto 16px !important;
}
.auth-logo-wrap--center > .site-logo,
.auth-logo-wrap--center > .site-logo--hero {
    margin: 0 auto !important;
    display: inline-flex !important;
    float: none !important;
}
.auth-logo-wrap--center > .site-logo img {
    margin: 0 auto !important;
}
.auth-brand-title,
.auth-brand-subtitle {
    width: 100%;
    text-align: center !important;
}

.formatted-text { margin: 0 0 12px; }
.formatted-text:last-child { margin-bottom: 0; }
.formatted-text.is-justified { text-align: justify; text-justify: inter-word; }
.info-desc-rich { max-width: 820px; }
.info-desc-rich .formatted-text { max-width: 820px; }
.legal-card { width: 100%; max-width: none; }
.legal-content { font-size: 14px; line-height: 1.75; color: var(--muted); }
.legal-content strong, .legal-content h2 { color: var(--text); }

.footer-rich {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    text-align: left;
}
.footer-main { flex: 1 1 280px; }
.footer-links {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}
.footer-links a {
    color: var(--muted);
    text-decoration: none;
    font-size: 11px;
    letter-spacing: .3px;
}
.footer-links a:hover { color: var(--accent); text-decoration: none; }

.cookie-banner {
    position: fixed;
    left: 16px;
    right: 16px;
    bottom: 16px;
    z-index: 9999;
}
.cookie-banner.hidden { display: none !important; }
.cookie-banner-inner {
    max-width: 1040px;
    margin: 0 auto;
    background: rgba(10,14,23,.96);
    border: 1px solid var(--border);
    box-shadow: 0 18px 45px rgba(0,0,0,.35);
    border-radius: 16px;
    padding: 14px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.cookie-banner-text { display: flex; flex-direction: column; gap: 6px; color: var(--muted); font-size: 13px; }
.cookie-banner-text strong { color: var(--text); font-size: 14px; }
.cookie-banner-text a { color: var(--accent); }
.cookie-banner-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

body[data-theme="light"] .footer-links a,
body[data-theme="light"] .legal-content,
body[data-theme="light"] .cookie-banner-text { color: #64748b !important; }
body[data-theme="light"] .cookie-banner-inner {
    background: rgba(255,255,255,.98) !important;
    border-color: rgba(15,23,42,.10) !important;
    box-shadow: 0 18px 45px rgba(15,23,42,.12) !important;
}
body[data-theme="light"] .cookie-banner-text strong,
body[data-theme="light"] .legal-content strong { color: #0f172a !important; }

@media(max-width:768px){
    .footer-rich { text-align: center; justify-content: center; }
    .footer-links { justify-content: center; }
    .cookie-banner-inner { flex-direction: column; align-items: stretch; }
    .cookie-banner-actions { justify-content: flex-end; }
}
