/* =========================================
   Liberty Fly – Theme Override (Public + Member)
   Compatible Light/Dark via body[data-pc-theme]
   ========================================= */

/* ================================
   Liberty Fly – Palette (theme-aware)
   ================================ */

/* Light mode (default) */
:root{
    /* Brand */
    --lf-primary: #0C1F3F;               /* Navy */
    --lf-primary-rgb: 12, 31, 63;

    --lf-primary-hover: #09162d;         /* Navy darker (hover) */
    --lf-primary-hover-rgb: 9, 22, 45;

    --lf-silver: #A8A8A8;
    --lf-gold: #CFA256;

    /* Neutrals */
    --lf-text: #0b1220;
    --lf-muted: #6c757d;
    --lf-border-rgb: 12, 31, 63;         /* reuse navy tone for subtle borders */
    --lf-surface: #ffffff;
    --lf-surface-2: #f8f9fa;

    /* Map to template variables */
    --pc-primary: var(--lf-primary);
    --pc-primary-rgb: var(--lf-primary-rgb);
}

/* Dark mode */
body[data-pc-theme="dark"]{
    /* Brand – lighter for contrast on dark surfaces */
    --lf-primary: #8FB6FF;               /* Light Liberty Blue */
    --lf-primary-rgb: 143, 182, 255;

    --lf-primary-hover: #6d9cff;         /* a bit darker for hover */
    --lf-primary-hover-rgb: 109, 156, 255;

    /* Neutrals (keep brand metals identical) */
    --lf-text: #e9edf5;
    --lf-muted: #aeb7c4;
    --lf-border-rgb: 143, 182, 255;      /* borders keyed to primary tone */
    --lf-surface: #0b1220;
    --lf-surface-2: #101a2d;

    /* Ensure template primary follows */
    --pc-primary: var(--lf-primary);
    --pc-primary-rgb: var(--lf-primary-rgb);
}

/* ================================
   Buttons
   ================================ */

.btn-primary{
    background-color: var(--lf-primary) !important;
    border-color: var(--lf-primary) !important;
    color: #fff !important;
}

.btn-primary:hover,
.btn-primary:focus{
    background-color: var(--lf-primary-hover) !important;
    border-color: var(--lf-primary-hover) !important;
}

/* Outline primary: readable in light AND dark */
.btn-outline-primary{
    color: var(--lf-primary) !important;
    border-color: rgba(var(--lf-primary-rgb), .35) !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus{
    background-color: rgba(var(--lf-primary-rgb), .12) !important;
    border-color: var(--lf-primary) !important;
    color: var(--lf-primary) !important;
}

/* Accent (Gold) – useful for secondary CTAs */
.btn-accent,
.btn-warning{
    background-color: var(--lf-gold) !important;
    border-color: var(--lf-gold) !important;
    color: #0b1220 !important;
}
.btn-accent:hover,
.btn-warning:hover{
    filter: brightness(0.95);
}

/* Focus ring (accessibility) */
.btn:focus,
.btn:focus-visible,
.pc-link:focus,
.pc-link:focus-visible{
    box-shadow: 0 0 0 .2rem rgba(207, 162, 86, .25) !important;
}

/* ================================
   Cards / borders
   ================================ */

.card{
    border-color: rgba(var(--lf-border-rgb), .12) !important;
}
.card-header{
    border-bottom-color: rgba(var(--lf-border-rgb), .12) !important;
}

/* ================================
   Sidebar / Horizontal menu
   ================================ */

/* Hover */
.pc-sidebar .pc-navbar .pc-link:hover{
    color: var(--lf-primary) !important;
}
.pc-sidebar .pc-navbar .pc-link:hover .pc-micon i{
    color: var(--lf-primary) !important;
}

/* Active: gold accent + light brand wash */
.pc-sidebar .pc-navbar > .pc-item.active > .pc-link,
.pc-sidebar .pc-navbar > .pc-item > .pc-link.active{
    color: var(--lf-primary) !important;
    background: rgba(var(--lf-primary-rgb), .10) !important;
    border-bottom: 2px solid rgba(207, 162, 86, .85) !important; /* gold */
}
.pc-sidebar .pc-navbar > .pc-item.active > .pc-link .pc-micon i,
.pc-sidebar .pc-navbar > .pc-item > .pc-link.active .pc-micon i{
    color: var(--lf-primary) !important;
}

/* Captions */
.pc-sidebar .pc-caption label{
    color: rgba(var(--lf-primary-rgb), .65) !important;
}

/* Icons */
.pc-micon i{
    color: var(--lf-primary) !important;
}

/* ================================
   Text helpers
   ================================ */

.text-muted{
    color: var(--lf-muted) !important;
}

/* Badges */
.badge.bg-primary{
    background-color: var(--lf-primary) !important;
}

/* ================================
   RP badges (unchanged)
   ================================ */

.lf-badge-category{
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.lf-badge-humanitarian_ops { background-color: #e74c3c; }  /* red */
.lf-badge-exploration_ops  { background-color: #1abc9c; }  /* turquoise */
.lf-badge-cargo_ops        { background-color: #f39c12; }  /* orange */
.lf-badge-bush_ops         { background-color: #27ae60; }  /* green */
.lf-badge-vip_ops          { background-color: #9b59b6; }  /* violet */
.lf-badge-coastal_ops      { background-color: #2980b9; }  /* sea blue */
.lf-badge-mountain_ops     { background-color: #95a5a6; }  /* grey */
.lf-badge-historical_ops   { background-color: #d35400; }  /* retro orange */

.lf-level-badge{
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-radius: 999px;
    padding: 0.15rem 0.6rem;
}
.lf-level-0 { background-color: #343a40; }
.lf-level-1 { background-color: #0d6efd; }
.lf-level-2 { background-color: #20c997; }
.lf-level-3 { background-color: #ffc107; color: #000; }
.lf-level-4 { background-color: #fd7e14; }
.lf-level-5 { background-color: #dc3545; }

/* Layout tweak (keep if intentional) */
.pc-header{
    left: 330px;
}

/* Liberty Fly – Logo theme switch */
.lf-logo-dark{ display: none; }
body[data-pc-theme="dark"] .lf-logo-light{ display:none; }
body[data-pc-theme="dark"] .lf-logo-dark{ display:inline-block; }

.pc-header .pc-h-item {
    margin-left: 10px;
}

#lf-map{ position:relative; overflow:hidden; }

#lf-map::before{
    content:"";
    position:absolute; inset:0;
    pointer-events:none;
    background: repeating-linear-gradient(
            to bottom,
            rgba(255,255,255,0.03),
            rgba(255,255,255,0.03) 1px,
            rgba(0,0,0,0.00) 3px,
            rgba(0,0,0,0.00) 6px
    );
    mix-blend-mode: overlay;
    opacity:.25;
    z-index: 500;
}

#lf-map::after{
    content:"";
    position:absolute; inset:0;
    pointer-events:none;
    background: radial-gradient(circle at center,
    rgba(0,0,0,0.00) 55%,
    rgba(0,0,0,0.35) 100%
    );
    opacity:.35;
    z-index: 501;
}
#lf-map{
    width:100%;
    height:50vh;
    min-height:520px;
    border-radius:12px;
}
.lf-pill{padding:4px 10px;border-radius:999px;background:rgba(0,0,0,.06);font-size:12px;}
.btn.lf-active{background:#111;border-color:#111;color:#fff;}

.marker-plane svg,.marker-plane svg *{
    fill: var(--bs-primary) !important;
    stroke: var(--bs-primary) !important;
}
.marker-parked svg,.marker-parked svg *{
    fill: var(--bs-warning) !important;
    stroke: var(--bs-warning) !important;
}

/* Animated flight panel (VCI-like) */
#lf-flight-panel-wrap{
    overflow:hidden;
    max-height:0;
    opacity:0;
    transform: translateY(-6px);
    transition: max-height .35s ease, opacity .25s ease, transform .25s ease;
}
#lf-flight-panel-wrap.is-open{
    max-height:520px;
    opacity:1;
    transform: translateY(0);
}
.pc-sidebar .pc-micon {
    margin-right: 1px;
}
.lb-me {
    background: rgba(13,110,253,.10); /* bootstrap primary léger */
}
.lb-me td {
    font-weight: 600;
}
/* Liberty Fly Live Map styles */

#lf-map{ height:800px; border-radius:.75rem; }

.lf-scroll{ max-height:360px; overflow:auto; border-radius:.75rem; }

#lf-flights-table thead th{ background: var(--bs-body-bg); }

tr.is-selected td{ background: rgba(var(--bs-primary-rgb), .12) !important; }

.lf-pill{
    padding:.15rem .5rem;
    border-radius:999px;
    font-size:.8rem;
    background: rgba(var(--bs-secondary-rgb), .12);
}

.lf-age-stale{ opacity:.9; }

.marker-plane svg path{ fill: var(--bs-primary); }
.marker-parked svg path{ fill: var(--bs-warning); }

/* Filter / sort group */
.lf-filter{ min-width: 420px; }
@media (max-width: 768px){
    .lf-filter{ min-width: 100%; }
}

/* Optional: slightly tighter header spacing on mobile */
@media (max-width: 576px){
    #lf-flights-table{ font-size: .9rem; }
}
[data-bs-theme="dark"] #lf-map::before{ opacity:.18; }
[data-bs-theme="dark"] #lf-map::after{ opacity:.45; }
[data-bs-theme="dark"] .btn.lf-active{
    background:#eee;
    color:#000;
    border-color:#eee;
}

/* LiveMap: ACARS signal halo on markers */
.leaflet-marker-icon.lf-sig-ok{ filter: drop-shadow(0 0 6px rgba(var(--bs-success-rgb), .70)); }
.leaflet-marker-icon.lf-sig-weak{ filter: drop-shadow(0 0 6px rgba(var(--bs-warning-rgb), .75)); }
.leaflet-marker-icon.lf-sig-stale{ filter: drop-shadow(0 0 6px rgba(var(--bs-danger-rgb), .75)); }

/* Liberty Fly – Pilot profile helpers */

.lf-hero{
    background: color-mix(in srgb, var(--bs-body-bg) 92%, var(--bs-primary) 8%);
}

.lf-pill{
    display:inline-flex;
    align-items:center;
    gap:.35rem;
    padding:6px 10px;
    border-radius:999px;
    border:1px solid color-mix(in srgb, var(--bs-border-color) 75%, transparent);
    background: color-mix(in srgb, var(--bs-body-bg) 96%, var(--bs-secondary) 4%);
    font-size:.85rem;
    line-height:1;
}

.lf-awards-grid{
    display:grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: .75rem;
}

@media (min-width: 768px){
    .lf-awards-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1200px){
    .lf-awards-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.lf-award-tile{
    background: color-mix(in srgb, var(--bs-body-bg) 98%, var(--bs-secondary) 2%);
}

[data-bs-theme="dark"] .lf-hero{
    background: color-mix(in srgb, var(--bs-body-bg) 88%, var(--bs-primary) 12%);
}

[data-bs-theme="dark"] .lf-award-tile{
    background: color-mix(in srgb, var(--bs-body-bg) 92%, var(--bs-secondary) 8%);
}

/* METAR-TAF widget wrapper */
.metar-widget{
    background: var(--bs-body-bg);
    border-radius: .5rem;
}

/* Light theme: fond clair lisible avec le widget */
[data-bs-theme="light"] .metar-widget{
    background: #fff3cd; /* proche "antiquewhite" mais plus bootstrap */
}

/* Dark theme: fond sombre mais pas noir (pour garder le widget lisible) */
[data-bs-theme="dark"] .metar-widget{
    background: #1f232a;
}
.metar-widget{
    padding: 1rem; /* si tu peux enlever padding de card-body sinon ignore */
}
