:root{ --bg:#0B1220; --panel:#111827; --ink:#FFFFFF; --muted:#94A3B8; --amber:#F59E0B; --cyan:#2563EB; --ok:#10B981; --warn:#F59E0B; --bad:#EF4444; --cta-teal:#2563EB; --cta-teal-strong:#1D4ED8; --cta-teal-border:#2563EB; --cta-teal-text:#FFFFFF; --cta-teal-shadow:rgba(37,99,235,.25); }
    html{ color-scheme: dark; }
    html[data-theme="light"]{ color-scheme: light; }
    html[data-theme="light"]{
      --bg:#F8FAFC;
      --panel:#FFFFFF;
      --ink:#111827;
      --muted:#475569;
      --slft-bg:#F8FAFC;
      --slft-panel:#ffffff;
      --slft-ink:#111827;
      --slft-ink-2:#1f2a44;
      --slft-muted:#5b6b81;
      --slft-line:#d7e0ea;
      --slft-grid:#e2e8f0;
      --slft-grad-a:#0ea5e9;
      --slft-grad-b:#6366f1;
    }
    html,body{height:100%}
    body{background:var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,"Helvetica Neue",Arial}
    .mono{font-family:"JetBrains Mono",ui-monospace,Menlo,Monaco,Consolas,monospace}
    .accent-dot{width:8px;height:8px;background:linear-gradient(135deg,var(--amber),var(--cyan));display:inline-block;border-radius:50%;margin-left:.4rem;box-shadow:0 0 16px rgba(62,229,255,.6)}
    .slft-border-muted{ border-color:#20293a !important; }
    .slft-overlay-results{ z-index:1000; display:none; }
    .slft-board-hour{ width:auto; min-width:110px; }
    .slft-col-time{ width:100px; }
    .slft-col-flight{ width:180px; }
    .slft-col-status{ width:140px; }
    .slft-col-add{ width:56px; }
    .slft-minw-130{ min-width:130px; }
    .slft-modal-content-dark{ background:#0e1420; border-color:#233048; }
    .slft-hidden-initial{ display:none; }
    .slft-progress-h8{ height:8px; }
    .slft-progress-zero{ width:0%; }

    /* Top menu */
    .topbar{background:transparent !important;border:0 !important}
    .auth-btn{border:1px solid #2a3a52;background:rgba(36,50,68,.35);color:#e6f2ff;border-radius:.8rem;padding:.55rem .9rem;min-width:190px}
    .auth-btn .auth-sub{font-size:.7rem;opacity:.7;letter-spacing:.06em;text-transform:uppercase}
    .auth-btn.compact{min-width:auto;padding:.45rem .6rem;border-radius:.7rem}
    .auth-btn.compact #authLabel{display:block;font-size:1rem;line-height:1}
    .auth-btn.compact .auth-sub{display:none}
    .offline-badge{
      display:none;
      align-items:center;
      gap:.4rem;
      padding:.35rem .6rem;
      border-radius:.6rem;
      border:1px solid rgba(255,176,32,.45);
      background:rgba(255,176,32,.12);
      color:#F59E0B;
      font-weight:800;
      font-size:.75rem;
      letter-spacing:.04em;
      text-transform:uppercase;
    }
    .offline-badge.show{display:inline-flex}
    .auth-modal .modal-content{background:var(--panel);border:1px solid #1e293b;color:#e6f2ff}
    .auth-modal .modal-header{border-bottom:1px solid #1e293b}
    .auth-modal .modal-footer{border-top:1px solid #1e293b}

    .theme-btn{
      border:1px solid #2a3a52;
      background:rgba(36,50,68,.35);
      color:#e6f2ff;
      border-radius:.8rem;
      padding:.55rem .75rem;
      display:inline-flex;
      align-items:center;
      gap:.45rem;
      font-weight:700;
    }
    .theme-btn .label{ font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; }
    .profile-menu-btn{
      min-width:0;
      padding:.48rem .62rem;
      gap:.5rem;
    }
    .profile-menu-btn .label{
      font-size:.82rem;
      text-transform:none;
      letter-spacing:0;
      max-width:132px;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
    }
    .profile-avatar{
      width:24px;
      height:24px;
      font-size:.66rem;
      font-weight:700;
      flex:0 0 auto;
    }
    .profile-menu{
      border:1px solid #233048;
      background:#111827;
      color:#e6f2ff;
      border-radius:.75rem;
      min-width:220px;
      box-shadow:0 14px 30px rgba(2,6,23,.38);
      padding:.35rem;
    }
    .profile-menu .dropdown-item{
      border-radius:.55rem;
      color:#e6f2ff;
      font-size:.85rem;
      font-weight:500;
      display:flex;
      align-items:center;
      gap:.4rem;
      padding:.46rem .58rem;
    }
    .profile-menu .dropdown-item i{ color:currentColor; }
    .profile-menu .dropdown-item:hover,
    .profile-menu .dropdown-item:focus{
      background:rgba(148,163,184,.12);
      color:#ffffff;
    }
    .profile-menu .dropdown-divider{
      border-color:rgba(255,255,255,.1);
      margin:.32rem 0;
    }
    .btn-commercial-cta{
      border-color:var(--cta-teal-border);
      background:linear-gradient(180deg,var(--cta-teal),var(--cta-teal-strong));
      color:var(--cta-teal-text);
      font-weight:700;
      box-shadow:0 1px 2px rgba(2,6,23,.45), 0 0 0 1px rgba(35,183,161,.18);
      transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease, filter .15s ease;
    }
    .btn-commercial-cta:hover,
    .btn-commercial-cta:focus-visible{
      border-color:var(--cta-teal-border);
      color:var(--cta-teal-text);
      background:linear-gradient(180deg,#2cc5ae,#1a9d8a);
      transform:translateY(-1px);
      box-shadow:0 2px 8px var(--cta-teal-shadow), 0 0 0 1px rgba(35,183,161,.24);
    }
    .btn-commercial-cta:active{
      transform:translateY(0);
      box-shadow:0 1px 2px rgba(2,6,23,.4), 0 0 0 1px rgba(35,183,161,.22);
    }
    .btn-commercial-cta:disabled,
    .btn-commercial-cta.disabled{
      transform:none;
      box-shadow:0 1px 2px rgba(2,6,23,.25);
      border-color:rgba(40,198,174,.45);
      opacity:.7;
    }

    /* Cards */
    .card{background:var(--panel);border:1px solid #1e293b}
    .card-header{border-bottom:1px solid #1e293b; color: #cfe9ff; background:transparent}
    .card-body{color: #cfe9ff; }
    .status-pill{padding:.2rem .45rem;border-radius:.5rem;font-weight:700}
    .status-OK{background:rgba(24,195,126,.15);color:var(--ok)}
    .status-INFO{background:rgba(24,195,126,.15);color:var(--cyan)}
    .status-EST{background:rgba(255,176,32,.12);color:var(--warn)}
    .status-CNL{background:rgba(255,90,103,.15);color:var(--bad)}

    /* Flight card */
    .flight-card{border-radius:14px;transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease}
    .flight-card-mini{cursor:pointer;}
    .flight-card:hover{transform:translateY(-2px);border-color:#38bdf8;box-shadow:0 0 0 1px rgba(56,189,248,.35),0 12px 34px rgba(2,6,23,.5)}
    .transport-card{ cursor:pointer; }
    .transport-card .transport-card-tools{ flex-shrink:0; margin-top:1.6rem; }
    .text-cyan{color:var(--cyan)!important}
    .text-amber{color:var(--amber)!important}

    /* Inputs */
    .form-control,.form-select{background:#0e1420;color:var(--ink);border:1px solid #334155}
    .form-control:focus,.form-select:focus{border-color:#38bdf8;box-shadow:0 0 0 .2rem rgba(56,189,248,.15)}

    /* Map (Stats) */
    #map{width:100%;height:100%;}

    .badge-soft{background:rgba(148,163,184,.15); color:#e3ebf5; font-weight:600}

    /* Large search */
    .search-wrap{background:#111726;border:1px solid #233048;border-radius:.75rem}

    /* Hero */
    .hero-title{font-size:3rem;letter-spacing:.06em;background:linear-gradient(90deg,#dff6ff,#93c5fd);-webkit-background-clip:text;background-clip:text;color:transparent}
    .hero-sub{color:#eaf2ff;font-size:1.05rem}
    .hero-icon{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:rgba(62,229,255,.12);border:1px solid #2b3b52}
    .hero-icon i{font-size:1.25rem;color:#93c5fd}

    .text-secondary{color:#e6efff !important}

    /* Footer */
    .site-footer{
      margin-top:4rem;
      padding:1.5rem 0 2rem;
      border-top:1px solid #1e293b;
      color:var(--muted);
      font-size:.85rem;
    }
    .site-footer a{
      color:var(--ink);
      text-decoration:none;
      font-weight:600;
    }
    .site-footer a:hover{
      color:var(--cyan);
      text-decoration:underline;
    }

    /* =========================
       Light mode overrides
       ========================= */
    html[data-theme="light"] body{ background:var(--bg); color:var(--ink); }
    html[data-theme="light"] .auth-btn{
      background:#f1f5f9;
      border-color:#cbd5e1;
      color:#0f172a;
    }
    html[data-theme="light"] .auth-btn .auth-sub{ opacity:.8; }
    html[data-theme="light"] .auth-modal .modal-content{
      background:#ffffff;
      border-color:#d7e0ea;
      color:#0f172a;
      box-shadow:0 16px 40px rgba(15,23,42,.16);
    }
    html[data-theme="light"] .auth-modal .modal-header{
      border-bottom-color:#d7e0ea;
    }
    html[data-theme="light"] .auth-modal .modal-footer{
      border-top-color:#d7e0ea;
    }
    html[data-theme="light"] .auth-modal .btn-close{
      filter:none;
      opacity:.6;
    }
    html[data-theme="light"] .theme-btn{
      background:#f1f5f9;
      border-color:#cbd5e1;
      color:#0f172a;
    }
    html[data-theme="light"] .profile-menu{
      background:#ffffff;
      border-color:#d7e0ea;
      color:#0f172a;
      box-shadow:0 14px 32px rgba(15,23,42,.16);
    }
    html[data-theme="light"] .profile-menu .dropdown-item{
      color:#0f172a;
    }
    html[data-theme="light"] .profile-menu .dropdown-item:hover,
    html[data-theme="light"] .profile-menu .dropdown-item:focus{
      background:rgba(148,163,184,.14);
      color:#0b1220;
    }
    html[data-theme="light"] .profile-menu .dropdown-divider{
      border-color:#e5e7eb;
    }
    html[data-theme="light"] .btn-commercial-cta{
      box-shadow:0 1px 2px rgba(15,23,42,.16), 0 0 0 1px rgba(35,183,161,.16);
    }
    html[data-theme="light"] .btn-commercial-cta:hover,
    html[data-theme="light"] .btn-commercial-cta:focus-visible{
      box-shadow:0 2px 8px rgba(22,151,133,.26), 0 0 0 1px rgba(35,183,161,.28);
    }
    html[data-theme="light"] .offline-badge{
      background:rgba(245,158,11,.12);
      border-color:rgba(245,158,11,.4);
      color:#b45309;
    }
    html[data-theme="light"] .card{
      background:var(--panel);
      border-color:#d7e0ea;
    }
    html[data-theme="light"] .card-header{
      border-bottom-color:#d7e0ea;
      color:#0f172a;
    }
    html[data-theme="light"] .card-body{ color:#1f2a44; }
    html[data-theme="light"] .menu .nav-link{
      border-color:#cbd5e1;
      background:#f1f5f9;
      color:#0f172a;
    }
    html[data-theme="light"] .menu .nav-link.active{
      background:#e0f2fe;
      border-color:#38bdf8;
      box-shadow:0 0 0 1px rgba(56,189,248,.25), inset 0 0 8px rgba(56,189,248,.08);
    }
    html[data-theme="light"] .flight-split-tabs .nav-link{
      border-color:#cbd5e1;
      background:#f1f5f9;
      color:#0f172a;
    }
    html[data-theme="light"] .flight-split-tabs .nav-link.active{
      background:#e0f2fe;
      border-color:#38bdf8;
      box-shadow:0 0 0 1px rgba(56,189,248,.2);
    }
    html[data-theme="light"] .flight-split-add{
      border-color:rgba(22,163,74,.45);
      background:linear-gradient(135deg, rgba(34,197,94,.16), rgba(22,163,74,.08));
      color:#166534;
    }
    html[data-theme="light"] .flight-split-add:hover{
      border-color:#16a34a;
      color:#14532d;
      box-shadow:0 0 0 1px rgba(22,163,74,.2), 0 10px 24px rgba(34,197,94,.16);
    }
    html[data-theme="light"] .journey-placeholder-card{
      border-color:#cfe2d7;
      background:linear-gradient(145deg,#ffffff,#f8fbf9);
    }
    html[data-theme="light"] .journey-placeholder-card .journey-placeholder-plus.timeline-add-btn{
      background:#ffffff;
      border-color:#86efac;
      color:#15803d;
    }
    html[data-theme="light"] .journey-placeholder-card .journey-placeholder-plus.timeline-add-btn:hover{
      border-color:#22c55e;
      box-shadow:0 0 0 2px rgba(34,197,94,.18);
    }
    html[data-theme="light"] .journey-placeholder-title{ color:#0f172a; }
    html[data-theme="light"] .journey-placeholder-sub{ color:#64748b; }
    html[data-theme="light"] .form-control,
    html[data-theme="light"] .form-select,
    html[data-theme="light"] .input-group-text{
      background:#ffffff;
      color:#0f172a;
      border-color:#cbd5e1;
    }
    html[data-theme="light"] .form-control::placeholder{ color:#6b7280; }
    html[data-theme="light"] .search-wrap{
      background:#ffffff;
      border-color:#d7e0ea;
      box-shadow:0 8px 24px rgba(15,23,42,.06);
    }
    html[data-theme="light"] .site-footer{
      border-top-color:#d7e0ea;
      color:var(--slft-muted);
    }
    html[data-theme="light"] .site-footer a{
      color:var(--slft-ink-2);
    }
    html[data-theme="light"] .site-footer a:hover{
      color:var(--slft-grad-a);
    }
    html[data-theme="light"] .hero-sub{ color:#475569; }
    html[data-theme="light"] .hero-title{
      background:none;
      color:#0f172a;
      -webkit-background-clip: initial;
      background-clip: initial;
      -webkit-text-fill-color: #0f172a;
    }
    html[data-theme="light"] .hero-icon{
      background:#e0f2fe;
      border-color:#bae6fd;
    }
    html[data-theme="light"] .hero-icon i{ color:#0284c7; }
    html[data-theme="light"] .text-secondary{ color:#475569 !important; }
    html[data-theme="light"] .text-cyan{ color:#0369a1 !important; }
    html[data-theme="light"] .text-amber{ color:#b45309 !important; }
    html[data-theme="light"] .detail-label{ color:#1f2a44; }
    html[data-theme="light"] .detail-value{ color:#0f172a; }
    html[data-theme="light"] .sub{ color:#64748b !important; }
    html[data-theme="light"] .iata{ color:#0f172a; }
    html[data-theme="light"] .route-iata{ color:#0f172a; }
    html[data-theme="light"] .city-label{ color:#475569; }
    html[data-theme="light"] .route-arrow i{ color:#94a3b8; }
    html[data-theme="light"] .tiny-date{ color:#64748b; }
    html[data-theme="light"] a{ color:#1d4ed8; }
    html[data-theme="light"] a:hover{ color:#1e40af; }
    html[data-theme="light"] .badge-soft{ background:#e2e8f0; color:#0f172a; }
    html[data-theme="light"] .board-table thead th{ color:#334155; }
    html[data-theme="light"] .table-dark{
      --bs-table-bg: #ffffff;
      --bs-table-striped-bg: #f8fafc;
      --bs-table-striped-color: #0f172a;
      --bs-table-color: #0f172a;
      --bs-table-border-color: #e2e8f0;
    }
    html[data-theme="light"] .airline-logo{
      background:#ffffff;
      border-color:#e2e8f0;
    }
    html[data-theme="light"] .stats-airline-logo{
      background:#ffffff;
      border-color:#e2e8f0;
    }
    html[data-theme="light"] .airline-banner{
      background:linear-gradient(135deg,#ffffff,#f8fafc);
      border-color:#e2e8f0;
    }
    html[data-theme="light"] .airline-banner img{
      filter:none;
    }
    html[data-theme="light"] #pane-detail .airline-banner,
    html[data-theme="light"] #pane-taxi-detail .airline-banner{
      background:linear-gradient(135deg,#ffffff,#f8fafc) !important;
      border-color:#e2e8f0 !important;
    }
    html[data-theme="light"] #pane-detail .airline-banner img,
    html[data-theme="light"] #pane-taxi-detail .airline-banner img{
      filter:none !important;
    }
    html[data-theme="light"] .aircraft-sideview{
      background:linear-gradient(135deg,#ffffff,#f1f5f9) !important;
      border-color:#e2e8f0 !important;
    }
    html[data-theme="light"] .aircraft-sideview img{
      filter:none;
    }
    html[data-theme="light"] .esim-flight-banner{
      background:#ffffff;
      border-color:#e2e8f0;
      color:#1f2a44;
      box-shadow:0 6px 18px rgba(15,23,42,.08);
    }
    html[data-theme="light"] .esim-flight-banner .text{ color:#1f2a44; }
    html[data-theme="light"] .esim-flight-banner.done{ background:#ecfeff; border-color:#bae6fd; }
    html[data-theme="light"] .board-chip{ background:#f1f5f9; border-color:#e2e8f0; color:#0f172a; }
    html[data-theme="light"] .btn-outline-light{
      background:#ffffff;
      border-color:#cbd5e1;
      color:#0f172a;
    }
    html[data-theme="light"] .btn-outline-light:hover{
      background:#f1f5f9;
      border-color:#94a3b8;
      color:#0f172a;
    }
    html[data-theme="light"] .btn-outline-info{
      background:#ffffff;
      border-color:#7dd3fc;
      color:#0284c7;
    }
    html[data-theme="light"] .btn-outline-info:hover{
      background:#e0f2fe;
      border-color:#38bdf8;
      color:#0369a1;
    }
    html[data-theme="light"] .btn-outline-primary{
      background:#ffffff;
      border-color:#93c5fd;
      color:#1d4ed8;
    }
    html[data-theme="light"] .btn-outline-primary:hover{
      background:#dbeafe;
      border-color:#60a5fa;
      color:#1e3a8a;
    }
    html[data-theme="light"] .btn-outline-warning{
      background:#ffffff;
      border-color:#fcd34d;
      color:#b45309;
    }
    html[data-theme="light"] .btn-outline-warning:hover{
      background:#fef3c7;
      border-color:#fbbf24;
      color:#92400e;
    }
    html[data-theme="light"] .btn-outline-danger{
      background:#ffffff;
      border-color:#fca5a5;
      color:#b91c1c;
    }
    html[data-theme="light"] .btn-outline-danger:hover{
      background:#fee2e2;
      border-color:#f87171;
      color:#991b1b;
    }
    html[data-theme="light"] .btn-outline-secondary{
      background:#ffffff;
      border-color:#cbd5e1;
      color:#334155;
    }
    html[data-theme="light"] .btn-outline-secondary:hover{
      background:#f1f5f9;
      border-color:#94a3b8;
      color:#1f2937;
    }
    html[data-theme="light"] .btn-outline-dark{
      background:#ffffff;
      border-color:#cbd5e1;
      color:#0f172a;
    }
    html[data-theme="light"] .btn-outline-dark:hover{
      background:#e2e8f0;
      border-color:#94a3b8;
      color:#0f172a;
    }
    html[data-theme="light"] .btn-more,
    html[data-theme="light"] .btn-prev{
      border-color:#cbd5e1;
      color:#0f172a;
      background:#ffffff;
    }
    html[data-theme="light"] .btn-more:hover,
    html[data-theme="light"] .btn-prev:hover{
      border-color:#94a3b8;
      box-shadow:0 0 0 1px rgba(59,130,246,.2);
    }
    html[data-theme="light"] .btn-time-pill{
      background:#ffffff;
      border-color:#cbd5e1;
      color:#0f172a;
    }
    html[data-theme="light"] .btn-add-flight{
      border-color:#93c5fd;
      color:#2563eb;
      background:#ffffff;
    }
    html[data-theme="light"] .btn-add-flight:hover{
      background:#e0f2fe;
      border-color:#60a5fa;
      box-shadow:0 0 0 1px rgba(59,130,246,.2);
      color:#1d4ed8;
    }
    html[data-theme="light"] #pane-detail .air-prog,
    html[data-theme="light"] #pane-detail .csb-sign,
    html[data-theme="light"] #pane-detail .callout{
      background:#ffffff;
      border-color:#e2e8f0;
      box-shadow:0 4px 12px rgba(15,23,42,.06);
    }
    html[data-theme="light"] #pane-detail .air-prog-track{
      background:#e2e8f0;
      border-color:#cbd5e1;
    }
    html[data-theme="light"] #pane-detail .air-prog-meta,
    html[data-theme="light"] #pane-detail .air-prog-left{
      color:#64748b;
    }
    html[data-theme="light"] #pane-detail .air-prog-pct{
      color:#1f2a44;
    }
    html[data-theme="light"] #pane-detail .csb-housing{
      background:#f1f5f9;
      box-shadow:inset 0 2px 0 rgba(255,255,255,.7), inset 0 8px 20px rgba(15,23,42,.08), 0 2px 10px rgba(15,23,42,.08);
    }
    html[data-theme="light"] .status-OK{ background:rgba(16,185,129,.12); color:#047857; }
    html[data-theme="light"] .status-INFO{ background:rgba(14,165,233,.12); color:#0369a1; }
    html[data-theme="light"] .status-EST{ background:rgba(245,158,11,.16); color:#b45309; }
    html[data-theme="light"] .status-CNL{ background:rgba(239,68,68,.12); color:#b91c1c; }
    html[data-theme="light"] .flight-card:hover{
      box-shadow:0 0 0 1px rgba(59,130,246,.25),0 10px 28px rgba(15,23,42,.12);
    }
    html[data-theme="light"] .stats-page{
      background:
        radial-gradient(1200px 400px at 10% -10%, rgba(14,165,233,.15), transparent 60%),
        radial-gradient(900px 380px at 90% -20%, rgba(99,102,241,.12), transparent 60%),
        linear-gradient(180deg, #f8fafc 0%, #f1f5f9 45%, #f8fafc 100%);
      border-color:#e2e8f0;
    }
    html[data-theme="light"] .stats-card{
      background:linear-gradient(145deg,#ffffff,#f8fafc);
      border-color:#e2e8f0;
    }
    html[data-theme="light"] .stats-hero{
      background:linear-gradient(135deg,#ffffff,#f8fafc);
      border-color:#e2e8f0;
    }
    html[data-theme="light"] .stats-title,
    html[data-theme="light"] .stats-hero-title,
    html[data-theme="light"] .stats-big-number{ color:#0f172a; }
    html[data-theme="light"] .stats-sub,
    html[data-theme="light"] .stats-hero-sub,
    html[data-theme="light"] .stats-muted{ color:#475569; }
    html[data-theme="light"] .stats-card-title,
    html[data-theme="light"] .stats-eyebrow{ color:#64748b; }
    html[data-theme="light"] .stats-year-chip{
      background:#ffffff;
      border-color:#cbd5e1;
      color:#0f172a;
    }
    html[data-theme="light"] .stats-year-chip.active{
      background:#e0f2fe;
      border-color:#38bdf8;
      box-shadow:0 0 0 1px rgba(56,189,248,.2), inset 0 0 8px rgba(56,189,248,.08);
      color:#0f172a;
    }
    html[data-theme="light"] .stats-kpi,
    html[data-theme="light"] .stats-metric,
    html[data-theme="light"] .stats-aircraft-hero{
      background:#ffffff;
      border-color:#e2e8f0;
    }
    html[data-theme="light"] .stats-kpi .label,
    html[data-theme="light"] .stats-metric .label{ color:#64748b; }
    html[data-theme="light"] .stats-kpi .value,
    html[data-theme="light"] .stats-metric .value{ color:#0f172a; }
    html[data-theme="light"] .stats-airline-code,
    html[data-theme="light"] .stats-bar-label,
    html[data-theme="light"] .stats-bar-val{ color:#0f172a; }
    html[data-theme="light"] .stats-bar-track{ background:#e2e8f0; border-color:#cbd5e1; }
    html[data-theme="light"] .stats-bar-track.alt{ background:#fee2e2; border-color:#fecaca; }
    html[data-theme="light"] .stats-airline-logo,
    html[data-theme="light"] .stats-airline-logo--empty{
      background:#ffffff;
      border-color:#e2e8f0;
    }
    html[data-theme="light"] .stats-bar-track{ background:#e2e8f0; border-color:#cbd5e1; }
    html[data-theme="light"] .stats-map{ background:#eef2f7; border-color:#d7e0ea; }
    html[data-theme="light"] .schengen-hero{
      background:linear-gradient(135deg,#ffffff,#f8fafc);
      border-color:#e2e8f0;
      box-shadow:0 6px 20px rgba(15,23,42,.08);
    }
    html[data-theme="light"] .schengen-hero-label{ color:#64748b; }
    html[data-theme="light"] .schengen-hero-value{
      background:none;
      color:#0f172a;
      -webkit-text-fill-color:#0f172a;
    }
    html[data-theme="light"] .schengen-hero-sub{ color:#475569; }
    html[data-theme="light"] .schengen-pill{
      background:#f1f5f9;
      border-color:#e2e8f0;
      color:#0f172a;
    }
    html[data-theme="light"] .schengen-pill.entry{ color:#047857; }
    html[data-theme="light"] .schengen-pill.exit{ color:#b45309; }
    html[data-theme="light"] .schengen-pill.unknown{ color:#64748b; }
    html[data-theme="light"] .esim-hero{
      background:radial-gradient(120% 140% at 100% 0%, rgba(14,165,233,.12), transparent 55%), linear-gradient(135deg,#ffffff,#f1f5f9);
      border-color:#d7e0ea;
      box-shadow:0 0 0 1px rgba(14,165,233,.08);
    }
    html[data-theme="light"] .esim-hero .eyebrow{ color:#2563eb; }
    html[data-theme="light"] .esim-hero-trip{ color:#475569; }
    html[data-theme="light"] .esim-subnav{
      background:linear-gradient(180deg,#ffffff,#f1f5f9);
      border-color:#d7e0ea;
    }
    html[data-theme="light"] .esim-subnav .btn.active{
      background:#e0f2fe;
      border-color:#bae6fd;
      color:#0f172a;
    }
    html[data-theme="light"] .esim-hero-card{
      background:linear-gradient(180deg,#ffffff,#f1f5f9);
      border-color:#d7e0ea;
    }
    html[data-theme="light"] .esim-usage,
    html[data-theme="light"] .esim-info-box,
    html[data-theme="light"] .esim-rec-stop{
      background:#ffffff;
      border-color:#e2e8f0;
      color:#1f2a44;
    }
    html[data-theme="light"] .esim-usage-bar{
      background:#e2e8f0;
      border-color:#cbd5e1;
    }
    html[data-theme="light"] .esim-rec-table{
      background:#ffffff;
      border-color:#e2e8f0;
    }
    html[data-theme="light"] .esim-rec-row{
      border-bottom-color:#e2e8f0;
    }
    html[data-theme="light"] .esim-rec-row .rec-price-sub{ color:#64748b; }
    html[data-theme="light"] .esim-rec-row .rec-badge{
      background:linear-gradient(160deg,#f1f5f9,#ffffff);
      border-color:#d7e0ea;
    }
    html[data-theme="light"] .esim-rec-row .rec-badge.unl{
      background:linear-gradient(160deg,#dcfce7,#f0fdf4);
      border-color:#86efac;
    }
    html[data-theme="light"] .esim-rec-row .rec-badge.unl .rec-badge-icon,
    html[data-theme="light"] .esim-rec-row .rec-badge.unl .rec-badge-val,
    html[data-theme="light"] .esim-rec-row .rec-badge.unl .rec-badge-sub{
      color:#166534;
    }
    html[data-theme="light"] .esim-rec-row .rec-badge.unl .rec-badge-note{
      color:#14532d;
    }
    html[data-theme="light"] .esim-rec-row .rec-badge-note{ color:#334155; }
    html[data-theme="light"] .esim-trustline{
      color:#334155;
      border-color:#cbd5e1;
      background:#f8fafc;
    }
    html[data-theme="light"] .esim-rec-row .rec-chip-promise{ color:#047857; }
    html[data-theme="light"] .esim-rec-row .rec-chip-loc{ color:#0f172a; }
    html[data-theme="light"] .esim-rec-row .rec-dot-sep{ color:#64748b; }
    html[data-theme="light"] .esim-list-title{ color:#0f172a; }
    html[data-theme="light"] .esim-list-sub{ color:#475569; }
    html[data-theme="light"] .esim-unl-note{
      color:#1f2937;
      border-color:#cbd5e1;
      background:#f8fafc;
    }
    html[data-theme="light"] .esim-list-section-payg{
      border-top-color:#d7e0ea;
    }
    html[data-theme="light"] .esim-limited-collapsed{
      border-color:#cbd5e1;
      background:#f8fafc;
      color:#475569;
    }
    html[data-theme="light"] .esim-rec-row .rec-qualifier{ color:#475569; }
    html[data-theme="light"] .esim-rec-row .rec-plan-tag{
      border-color:#cbd5e1;
      background:#f8fafc;
      color:#334155;
    }
    html[data-theme="light"] .esim-rec-row .rec-plan-tag.recommended{
      border-color:#7dd3fc;
      background:#e0f2fe;
      color:#075985;
    }
    html[data-theme="light"] .esim-rec-row .rec-plan-tag.value{
      border-color:#86efac;
      background:#dcfce7;
      color:#166534;
    }
    html[data-theme="light"] .esim-card{
      background:linear-gradient(135deg,#ffffff,#f8fafc);
      border-color:#e2e8f0;
    }
    html[data-theme="light"] .esim-browse-card{
      background:linear-gradient(160deg,#ffffff,#f8fafc);
      border-color:#d7e0ea;
      box-shadow:0 8px 20px rgba(15,23,42,.06);
    }
    html[data-theme="light"] .esim-browse-card--limited{
      background:linear-gradient(160deg,#f8fafc,#eef2f7);
      border-color:#d3dbe6;
      box-shadow:none;
    }
    html[data-theme="light"] .esim-card-tile{
      background:#eef4fb;
      border-color:#b9c8da;
      color:#1f2a44;
    }
    html[data-theme="light"] .esim-card-tile--unlimited{
      background:linear-gradient(160deg,#d8fbe8,#ecfdf5);
      border-color:#6ee7b7;
      color:#14532d;
    }
    html[data-theme="light"] .esim-card-tile--limited{
      background:linear-gradient(160deg,#e6edf6,#f1f5f9);
      border-color:#bccbde;
      color:#1e3a5f;
    }
    html[data-theme="light"] .esim-card-tile--unlimited .esim-card-tile-icon,
    html[data-theme="light"] .esim-card-tile--unlimited .esim-card-tile-title{
      color:#166534;
    }
    html[data-theme="light"] .esim-card-tile--unlimited .esim-card-tile-sub{
      color:#14532d;
    }
    html[data-theme="light"] .esim-card-tile--limited .esim-card-tile-icon,
    html[data-theme="light"] .esim-card-tile--limited .esim-card-tile-title{
      color:#1e3a5f;
    }
    html[data-theme="light"] .esim-card-tile--limited .esim-card-tile-sub{
      color:#334155;
    }
    html[data-theme="light"] .esim-card-headline{ color:#0f172a; }
    html[data-theme="light"] .esim-card-headline-row .rec-plan-tag{
      border-color:#cbd5e1;
      background:#f8fafc;
      color:#334155;
    }
    html[data-theme="light"] .esim-card-headline-row .rec-plan-tag.recommended{
      border-color:#0284c7;
      background:linear-gradient(180deg,#38bdf8,#0ea5e9);
      color:#082f49;
      box-shadow:0 0 0 1px rgba(14,165,233,.25), 0 4px 10px rgba(14,165,233,.18);
      font-size:.66rem;
      padding:2px 9px;
    }
    html[data-theme="light"] .esim-card-qualifier{ color:#334155; }
    html[data-theme="light"] .esim-card-support{ color:#475569; }
    html[data-theme="light"] .esim-card-meta{ color:#475569; }
    html[data-theme="light"] .esim-card-price-main{ color:#0f172a; }
    html[data-theme="light"] .esim-card-price-sub{ color:#475569; }
    html[data-theme="light"] .rec-tech-link{
      color:#64748b !important;
    }
    html[data-theme="light"] .rec-tech-link:hover{
      color:#334155 !important;
    }
    html[data-theme="light"] .esim-country-link{
      color:#475569;
    }
    html[data-theme="light"] .esim-country-link:hover{
      color:#334155;
    }
    html[data-theme="light"] .esim-country-list{
      color:#475569;
      border-color:#d7e0ea;
      background:#ffffff;
    }
    html[data-theme="light"] .esim-details{
      color:#1f2a44;
      border-top-color:#cbd5e1;
      background:#f8fafc;
      border-radius:10px;
      padding:10px 12px;
      margin-top:8px;
    }
    html[data-theme="light"] .esim-details .label{
      color:#334155;
      font-weight:700;
    }
    html[data-theme="light"] .esim-browse-card .esim-details{
      border:1px solid #d7e0ea;
      background:#f8fafc;
    }
    html[data-theme="light"] .esim-compare-table{
      --bs-table-bg:#ffffff;
      --bs-table-color:#0f172a;
      --bs-table-border-color:#e2e8f0;
      --bs-table-striped-bg:#f8fafc;
      --bs-table-striped-color:#0f172a;
    }
    html[data-theme="light"] .esim-compare-table thead th{
      color:#334155;
      border-bottom-color:#cbd5e1;
    }
    html[data-theme="light"] .esim-chip{
      background:#f1f5f9;
      border-color:#e2e8f0;
      color:#0f172a;
    }
    html[data-theme="light"] .esim-feat{
      background:#f8fafc;
      border-color:#e2e8f0;
      color:#1f2a44;
    }
    html[data-theme="light"] .esim-qr-panel{
      background:linear-gradient(180deg,#ffffff,#f1f5f9);
      border-color:#d7e0ea;
    }
    html[data-theme="light"] .esim-qr-img{
      background:#f8fafc;
      border-color:#e2e8f0;
    }
    html[data-theme="light"] .esim-filter-bar .form-control,
    html[data-theme="light"] .esim-filter-bar .form-select{
      background:#ffffff;
      border-color:#cbd5e1;
      color:var(--slft-ink);
    }
    html[data-theme="light"] #esCheckoutSection .card{
      border-color:#d7e0ea;
    }
    html[data-theme="light"] .esim-cart{
      background:#f8fafc;
      border-color:#d7e0ea;
    }
    html[data-theme="light"] .esim-cart-item{
      border-bottom-color:#e2e8f0;
      color:#0f172a;
    }
    html[data-theme="light"] .esim-cart-meta .fw-semibold,
    html[data-theme="light"] .esim-cart-controls .mono,
    html[data-theme="light"] .esim-cart-price{
      color:#0f172a;
    }
    html[data-theme="light"] #esCartCount{
      background:#e2e8f0 !important;
      color:#0f172a !important;
      border:1px solid #cbd5e1;
    }
    html[data-theme="light"] .esim-cart-bar{
      background:#ffffff;
      border-color:#d7e0ea;
      box-shadow:0 10px 30px rgba(15,23,42,.12);
    }
    html[data-theme="light"] #pane-detail .air-chip,
    html[data-theme="light"] #pane-detail .air-chip2{
      background:linear-gradient(135deg,#ffffff,#f8fafc);
      border-color:#e2e8f0;
      box-shadow:0 4px 16px rgba(15,23,42,.08);
    }
    html[data-theme="light"] #pane-detail .ops-milestone-item{
      background:linear-gradient(135deg,#ffffff,#f8fafc);
      border-color:#e2e8f0;
    }
    html[data-theme="light"] #pane-detail .ops-milestone-label{ color:#64748b; }
    html[data-theme="light"] #pane-detail .ops-milestone-value{ color:#0f172a; }
    html[data-theme="light"] #pane-detail .air-chip-bar,
    html[data-theme="light"] #pane-detail .air-chip2-bar{
      background:#e2e8f0;
      border-color:#cbd5e1;
    }
    html[data-theme="light"] .gate-sign{
      background:#ffffff;
      border-color:#e2e8f0;
    }
    html[data-theme="light"] .gate-sign .icon{
      background:#f1f5f9;
      color:#f59e0b;
    }
    html[data-theme="light"] .gate-sign.arr .icon{ color:#0ea5e9; }
    html[data-theme="light"] .gate-sign.belt .icon{ color:#0284c7; }
.menu .nav-link{border:1px solid #243244;background:rgba(36,50,68,.25);color:#dbeafe; margin-right: 5px;}
.menu .nav-link.active{background:rgba(62,229,255,.12);border-color:#2563eb;box-shadow:0 0 0 1px rgba(62,229,255,.35), inset 0 0 12px rgba(62,229,255,.08)}
.flight-split-tabs .nav-link{
  border:1px solid #243244;
  background:rgba(36,50,68,.2);
  color:#dbeafe;
  margin-right:6px;
  font-weight:700;
}
.flight-split-tabs .nav-link.active{
  background:rgba(62,229,255,.14);
  border-color:#2563eb;
  box-shadow:0 0 0 1px rgba(62,229,255,.25), inset 0 0 10px rgba(62,229,255,.08);
}
.flight-split-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}
.flight-split-head .flight-split-tabs{
  margin-bottom:0;
  flex:1 1 auto;
}
.flight-split-add{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:1px solid rgba(34,197,94,.45);
  background:linear-gradient(135deg, rgba(22,163,74,.2), rgba(34,197,94,.12));
  color:#dcfce7;
  font-weight:700;
  white-space:nowrap;
}
.flight-split-add:hover{
  border-color:#22c55e;
  color:#f0fdf4;
  box-shadow:0 0 0 1px rgba(34,197,94,.22), 0 10px 24px rgba(16,185,129,.18);
}
.journey-placeholder-card{
  border:1px dashed #2b3f5a;
  background:linear-gradient(145deg, rgba(12,18,30,.92), rgba(14,24,38,.94));
}
.journey-placeholder-card .card-body{
  min-height:210px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  text-align:center;
}
.journey-placeholder-card .journey-placeholder-plus.timeline-add-btn{
  position:static;
  transform:none;
  width:34px;
  height:34px;
  border-radius:999px;
  border:1px solid #2b4b65;
  background:rgba(11,18,30,.95);
  color:#34d399;
}
.journey-placeholder-card .journey-placeholder-plus.timeline-add-btn:hover{
  border-color:#34d399;
  box-shadow:0 0 0 2px rgba(52,211,153,.22);
}
.journey-placeholder-card .journey-placeholder-plus.timeline-add-btn i{ font-size:.8rem; }
.journey-placeholder-title{
  font-size:1rem;
  font-weight:700;
  color:#e6f2ff;
}
.journey-placeholder-sub{
  color:#8aa7c7;
  font-size:.88rem;
  max-width:280px;
}
/* --- Modern board look --- */
.board-table thead th {
  text-transform: uppercase;
  letter-spacing: .06em;
  font-weight: 800;
  color: #a7c7ff;
  border-bottom-color: #223148;
}
.board-row td { vertical-align: middle; }

/* Route header refinements */
/* Route header layout */
.route-head { gap: .75rem; }

/* 2-row grid: IATA row, then city row; arrow only appears on row 1 */
.route-grid{
  display: grid;
  grid-template-columns: auto 28px auto; /* IATA, arrow, IATA */
  grid-template-rows: auto auto;         /* row1 = IATA, row2 = city */
  column-gap: 12px;
  row-gap: 2px;
  align-items: center; /* centers arrow vertically on IATA row */
}

.route-iata.dep { grid-column: 1; grid-row: 1; line-height: 1; }
.route-arrow     { grid-column: 2; grid-row: 1; text-align: center; opacity: .9; }
.route-iata.arr { grid-column: 3; grid-row: 1; line-height: 1; }

/* Cities align exactly under their respective IATA codes */
.city-label.dep  { grid-column: 1; grid-row: 2; line-height: 1.2; }
.city-spacer     { grid-column: 2; grid-row: 2; } /* keeps columns aligned */
.city-label.arr  { grid-column: 3; grid-row: 2; line-height: 1.2; }

/* Tidy truncation for long city names without breaking alignment */
.city-label{
  max-width: 8rem;       /* adjust to taste */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Slightly larger, "prettier" arrow like before */
.route-arrow i{ font-size: 1.15rem; }
@media (max-width: 420px){
  .route-grid{ grid-template-columns: auto 22px auto; column-gap: 8px; }
  .city-label{ max-width: 6.5rem; }
}


/* split-flap-ish time block */
.flap{
  display:inline-block; min-width:78px; text-align:center;
  padding:.25rem .5rem; border-radius:.4rem;
  background:linear-gradient(180deg,#0f1624,#0c111b);
  border:1px solid #243244; box-shadow:inset 0 -2px 0 rgba(255,255,255,.04);
  font-weight:800; letter-spacing:.04em; font-size:1.05rem;
}
.tiny-date{ color:#9fb6d4; font-size:.72rem; margin-top:.15rem; }

.iata{ font-weight:800; font-size:1.05rem; }
.sub{ color:#9fb6d4 !important; }

/* Meta chips */
.board-chip{
  display:inline-flex; align-items:center; gap:.4rem;
  padding:.35rem .6rem; border-radius:.55rem; font-weight:800;
  background:rgba(148,163,184,.12); border:1px solid rgba(148,163,184,.25);
  color:#e3ebf5;
}

/* Big ARR/DEP tabs */
.board-tabs.big-tabs .nav-link{
  padding:.55rem 1rem; font-weight:900; letter-spacing:.02em;
  border:1px solid #2a3a52; background:rgba(36,50,68,.35); color:#dff2ff;
  border-radius:.6rem;
}
.board-tabs.big-tabs .nav-link i{ opacity:.9 }
.board-tabs.big-tabs .nav-link.active{
  background:rgba(62,229,255,.16);
  border-color:#2563eb;
  box-shadow:0 0 0 1px rgba(62,229,255,.35), inset 0 0 12px rgba(62,229,255,.08);
  color:#e7fbff;
}

/* Hour jumpers */
.btn-time-pill{
  width:46px; height:46px; border-radius:50%;
  display:grid; place-items:center;
  background:#0e1420; color:#dff2ff;
  border:1px solid #2b3b52;
}
.btn-time-pill:hover{ border-color:#38bdf8; box-shadow:0 0 0 1px rgba(56,189,248,.35); }

/* Airline logo in table */
.airline-logo{
  width:22px; height:22px; object-fit:contain; border-radius:.2rem;
  background:#0b0f14; border:1px solid #223148;
}

/* Suggest list dark */
#airportResults .list-group-item{
  background:#0e1420; color:#e6f2ff; border:1px solid #25324a;
}
#airportResults .list-group-item:hover{
  background:#121a2a;
}

/* --- New: brighter labels & stats badges --- */
.detail-label{ color:#cfe9ff; font-weight:700; letter-spacing:.02em }
.detail-value{ color:#f5fbff; font-weight:600 }
.detail-pane-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.detail-pane-title-slot{
  flex:1 1 340px;
  min-width:240px;
  display:flex;
  align-items:center;
}
.detail-pane-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.detail-pane-actions .btn{ white-space:nowrap; }
.detail-pane-title-inline{
  display:inline-flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
}
.detail-map-box{
  height:420px;
  border:1px solid #20293a;
  border-radius:.75rem;
  overflow:hidden;
  background:#0b1117;
}
.detail-grid-fields{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:10px;
}
.detail-grid-fields > [class^="col-"],
.detail-grid-fields > [class*=" col-"]{
  width:100%;
  border:1px solid #223247;
  border-radius:10px;
  padding:10px 12px;
  background:linear-gradient(135deg, rgba(14,20,32,.85), rgba(16,23,36,.95));
}
.detail-grid-fields .detail-value{
  font-family:"JetBrains Mono",ui-monospace,monospace;
  margin-top:2px;
}
.status-detail-card{
  border:1px solid #223247;
  border-radius:14px;
  overflow:hidden;
  background:linear-gradient(135deg, rgba(11,17,28,.92), rgba(15,22,34,.96));
  box-shadow:0 10px 24px rgba(6,10,20,.22);
}
.status-detail-card .card-header{
  font-weight:700;
  letter-spacing:.02em;
  border-bottom:1px solid #223247;
  background:linear-gradient(90deg, rgba(14,165,233,.14), rgba(245,158,11,.08));
}
.detail-section-card .card-header{
  display:flex;
  align-items:center;
  gap:8px;
}
.detail-chart-card .card-body{
  padding:10px 12px 12px;
}
/* Gate & baggage signage */
.gate-sign{display:flex;align-items:center;gap:.75rem;background:#0e1420;border:1px solid #233048;border-radius:.65rem;padding:.6rem .75rem;margin-bottom:.5rem}
.gate-sign .icon{width:46px;height:46px;border-radius:.5rem;display:grid;place-items:center;background:#1a1f2b;color:#ffcf40;box-shadow:inset 0 0 0 2px #1f1f1f}
.gate-sign .text .lbl{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:#a9bacf}
.gate-sign .text .val{font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:700;font-size:1.4rem;line-height:1;color:#ffcf40}
.gate-sign .text .sub{font-size:.75rem;color:#9db2cc}
.gate-sign.belt .icon{background:#0b1020;color:#2563eb}
.gate-sign.arr .icon{background:#1a1a1a;color:#ffc35a}
.stat-chip{
  display:inline-flex; align-items:center; gap:.45rem;
  padding:.35rem .6rem; border-radius:.55rem; font-weight:800;
  border:1px solid transparent; letter-spacing:.01em
}
.stat-ok  { background:rgba(24,195,126,.12);  color:#10B981; border-color:rgba(24,195,126,.35) }
.stat-warn{ background:rgba(255,176,32,.12);  color:#F59E0B; border-color:rgba(255,176,32,.35) }
.stat-bad { background:rgba(255, 90,103,.12); color:#EF4444; border-color:rgba(255, 90,103,.35) }

/* subtle historical note */
.hist-note{
  font-size:.72rem;
  color:#a8bbd2;
  opacity:.65;
  font-family:Inter,system-ui,Segoe UI,Roboto,Helvetica,Arial;
}
  /* Callout under flight details */
  .callout{border:1px solid #243244;border-left-width:6px;border-radius:.75rem;padding:.9rem 1rem;background:#0e1420}
  .callout-ok{border-left-color:var(--ok);background:rgba(24,195,126,.06)}
  .callout-bad{border-left-color:var(--bad);background:rgba(255,90,103,.08)}
  .callout-neutral{border-left-color:var(--amber);background:rgba(255,195,90,.08)}
  .callout .metric{border:1px solid rgba(255,255,255,.08);border-radius:.5rem;padding:.15rem .5rem;font-weight:700}


/* days to go badge (top-right) */
.days-badge{
  position:absolute; top:.5rem; right:.5rem;
  background:linear-gradient(135deg,#ffc35a,#2563eb);
  color:#0b0f14; border:0; font-weight:900;
  font-family:"JetBrains Mono",ui-monospace,monospace;
  padding:.25rem .5rem; border-radius:.5rem;
}

/* keep card tools under the badge */
.card-tools{ margin-top:1.6rem; }
/* more breathing room at the end of detail page */
#pane-detail{ padding-bottom: 2.5rem; }
/* Time cell - bigger, mono */
.board-row td:first-child {
  font-family: "JetBrains Mono", monospace;
  font-weight: 800;
  font-size: 1.1rem;
}

/* Add button */
.btn-add-flight {
  padding: .2rem .6rem;
  font-size: .75rem;
  border: 1px solid rgba(62,229,255,.4);
  border-radius: .5rem;
  color: #2563eb;
  background: transparent;
  transition: all .2s;
}
.btn-add-flight:hover {
  background: rgba(62,229,255,.12);
  box-shadow: 0 0 8px rgba(62,229,255,.35);
  color: #fff;
}

/* Airline logos */
.airline-logo {
  width: 24px;
  height: 24px;
  object-fit: contain;
  border-radius: .25rem;
  border: 1px solid rgba(255,255,255,.1);
  background: transparent;
  vertical-align: middle;
  margin-right: .25rem;
}

/* Status chips */
.status-pill {
  display: inline-block;
  padding: .25rem .6rem;
  border-radius: .5rem;
  font-weight: 800;
  text-transform: uppercase;
  white-space: nowrap;
}
.status-OK   { background:#10B981; color:#fff; }
.status-EST  { background:#F59E0B; color:#000; }
.status-CNL  { background:#EF4444; color:#fff; }
.status-INFO { background:#2563eb; color:#000; }

/* Codeshare badge */
.codeshare-badge {
  background: rgba(148,163,184,.2);
  color: #aab8cc;
  font-size: .7rem;
  padding: .1rem .4rem;
  border-radius: .4rem;
  margin-left: .4rem;
}
/* Mobile responsiveness for the board */
@media (max-width: 806px) {
  /* Always keep status visible (so do NOT hide .col-status) */

  /* Hide the redundant origin/destination column depending on board type */
  .board-table.arr .col-to { display: none; }   /* ARRIVALS: hide "To" */
  .board-table.dep .col-from { display: none; } /* DEPARTURES: hide "From" */

  /* Airline: hide long text to save space (keep logo if you render it elsewhere) */
  .board-table .col-airline .airline-name { display: none; }
  .board-table .col-airline { display: none; }

  /* Optional: if space is tight, hide the add button text to a compact icon
     (uncomment if you want this behavior)*/
  .board-table .col-add .btn-add-flight { padding: .25rem; width: 36px; }
  .board-table .col-add .btn-add-flight::before { content: '+'; }
  .board-table .col-add .btn-add-flight { font-size: 0; }
  

  /* Tighten rows a bit on mobile */
  .board-table td, .board-table th { padding-top: .5rem; padding-bottom: .5rem; }
}

/* History year grouping */
.history-year-bar .btn{
  border:1px solid #2b3b52;
  background:transparent;
  color:#dbeafe;
  border-radius:12px;
}
.history-year-bar .btn.active{
  background:#1a2a41;
  border-color:#2a415d;
  color:#e6efff;
}
.history-year-bar .btn .badge{
  border:1px solid #2b3b52;
  background:#0b1220 !important;
  color:#dbeafe;
}
.history-year-section{ margin-bottom: 1.2rem; }
.history-year-head{ color:#9fb6d4; font-weight:800; letter-spacing:.04em; }
.history-year-sub{ color:#9fb6d4; font-size:.8rem; }
html[data-theme="light"] .history-year-bar .btn{
  border-color:#cbd5e1;
  background:#ffffff;
  color:#0f172a;
}
html[data-theme="light"] .history-year-bar .btn.active{
  background:#e0f2fe;
  border-color:#bae6fd;
  color:#0f172a;
}
html[data-theme="light"] .history-year-bar .btn .badge{
  border-color:#cbd5e1;
  background:#f1f5f9 !important;
  color:#0f172a;
}

/* Paging rows */
.board-more, .board-prev {
  background:#0d1421;
}
.board-more td, .board-prev td {
  padding:.65rem .75rem;
  text-align:center;
}
.btn-more, .btn-prev {
  display:inline-flex; align-items:center; gap:.5rem;
  border:1px solid #2b3b52; border-radius:.6rem;
  background:transparent; color:#cfe9ff; font-weight:800;
  padding:.35rem .75rem;
}
.btn-more:hover, .btn-prev:hover { border-color:#38bdf8; box-shadow:0 0 0 1px rgba(56,189,248,.35); }

/* =========================
   Detail view - shared vars
   ========================= */
:root{
  --slft-bg: #0b0f14;
  --slft-panel: #111726;
  --slft-ink: #e6efff;
  --slft-ink-2: #cfe6ff;
  --slft-muted: #8aa7c7;
  --slft-line: #233048;
  --slft-grid: #1f2a3a;
  --slft-grad-a: #2563eb;
  --slft-grad-b: #7c3aed;
}

/* Scope to the detail tab so it doesn't leak site-wide */
#pane-detail .card { background: var(--slft-bg); }

/* =========================
   Airborne chips + compass
   ========================= */
#pane-detail .air-grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:16px;
  align-items:stretch;
  min-width:0;
}
#pane-detail .ops-milestone-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:10px;
}
#pane-detail .ops-milestone-item{
  border:1px solid var(--slft-line);
  border-radius:10px;
  padding:8px 10px;
  background:linear-gradient(135deg,var(--slft-bg),var(--slft-panel));
}
#pane-detail .ops-milestone-label{
  font-size:12px;
  color:var(--slft-muted);
}
#pane-detail .ops-milestone-value{
  margin-top:2px;
  color:var(--slft-ink);
  font-size:1.1rem;
}

#pane-detail .air-chip{
  grid-column:span 4;
  background:linear-gradient(135deg,var(--slft-bg),var(--slft-panel));
  border:1px solid var(--slft-line);
  border-radius:14px;
  padding:12px 12px 10px;
  box-shadow:0 4px 18px rgba(0,0,0,.25);
}
#pane-detail .air-chip-top{
  display:flex; align-items:center; gap:8px;
  color:var(--slft-muted); font-size:12px;
}
#pane-detail .air-chip-val{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-weight:700; font-size:28px; line-height:1.1;
  margin-top:4px; color:var(--slft-ink);
  white-space:nowrap;
}
#pane-detail .air-chip-unit{ font-size:12px; margin-left:6px; color:#94a3b8; }
#pane-detail .air-chip-bar{
  height:8px; background:#0e1726; border:1px solid var(--slft-grid);
  border-radius:999px; margin-top:8px; overflow:hidden;
}
#pane-detail .air-chip-fill{
  height:100%; background:linear-gradient(90deg,var(--slft-grad-a),var(--slft-grad-b));
  transition:width .25s ease;
}


#pane-detail .air-chip2{
  grid-column:span 3;
  background:linear-gradient(135deg,var(--slft-bg),var(--slft-panel));
  border:1px solid var(--slft-line);
  border-radius:14px;
  padding:12px 12px 10px;
  box-shadow:0 4px 18px rgba(0,0,0,.25);
}
/* Styles for mobile screens (e.g., max-width of 767px) */
    @media (max-width: 767px) {
		#pane-detail .air-chip2{
            grid-column: span 12; /* Or display: block; for a full-width block element */
        }
    }
    
#pane-detail .air-chip2-top{
  display:flex; align-items:center; gap:8px;
  color:var(--slft-muted); font-size:12px;
}
#pane-detail .air-chip2-val{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-weight:700; font-size:28px; line-height:1.1;
  margin-top:4px; color:var(--slft-ink);
  white-space:nowrap;
}
#pane-detail .air-chip2-unit{ font-size:12px; margin-left:6px; color:#94a3b8; }
#pane-detail .air-chip2-bar{
  height:8px; background:#0e1726; border:1px solid var(--slft-grid);
  border-radius:999px; margin-top:8px; overflow:hidden;
}
#pane-detail .air-chip2-fill{
  height:100%; background:linear-gradient(90deg,var(--slft-grad-a),var(--slft-grad-b));
  transition:width .25s ease;
}

/* Compass */
#pane-detail .compass-wrap{
  grid-column:span 4;
  background:linear-gradient(135deg,var(--slft-bg),var(--slft-panel));
  border:1px solid var(--slft-line); border-radius:14px;
  padding:10px 10px 8px; display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  box-shadow:0 4px 18px rgba(0,0,0,.25);
}
#pane-detail .compass-dial{
  position:relative; width:120px; height:120px; border-radius:999px;
  border:1px solid var(--slft-line);
  background:radial-gradient(circle at 50% 45%,#0f172a,#0c1220 60%,#0a0f18 100%);
  box-shadow:inset 0 0 24px rgba(62,229,255,.08);
}
#pane-detail .compass-needle{
  position:absolute; left:50%; top:50%; width:2px; height:58px;
  background:linear-gradient(180deg,var(--slft-grad-a),var(--slft-grad-b));
  border-radius:2px; transform-origin:50% 100%;
  box-shadow:0 0 8px rgba(62,229,255,.35);
}
#pane-detail .compass-val{
  margin-top:8px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  color:var(--slft-ink); font-weight:700;
}
#pane-detail .compass-n,
#pane-detail .compass-e,
#pane-detail .compass-s,
#pane-detail .compass-w{ position:absolute; color:#6b7280; font-size:10px }
#pane-detail .compass-n{ left:50%; top:4px; transform:translateX(-50%) }
#pane-detail .compass-e{ right:4px; top:50%; transform:translateY(-50%) }
#pane-detail .compass-s{ left:50%; bottom:4px; transform:translateX(-50%) }
#pane-detail .compass-w{ left:4px; top:50%; transform:translateY(-50%) }

@media (max-width:991px){
  #pane-detail .air-chip, #pane-detail .compass-wrap{ grid-column:span 12; }
}

.slft-claim-banner{
  border:1px solid var(--slft-line);
  background:linear-gradient(135deg,#0e1726,#162037);
  color:var(--slft-ink);
  border-radius:14px;
  padding:14px 16px;
  margin:12px 0;
  display:none;
  box-shadow:0 4px 18px rgba(0,0,0,.25);
}
.slft-claim-banner .sb1{
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
}
.slft-claim-banner .left{
  display:flex;
  gap:10px;
  align-items:center;
  min-width:220px;
}
.slft-claim-banner .dot{
  width:10px;
  height:10px;
  border-radius:999px;
  background:#ffd166;
  display:inline-block;
}
.slft-claim-banner .t1{ font-weight:800; }
.slft-claim-banner .t2{
  opacity:.82;
  font-size:12px;
}
.slft-claim-banner .right{
  display:flex;
  gap:8px;
  align-items:center;
}
.slft-claim-banner .btn-claim{
  display:inline-block;
  padding:10px 14px;
  border-radius:12px;
  background:#2d5bff;
  color:#ffffff;
  text-decoration:none;
  font-weight:700;
}
.slft-claim-banner .btn-send{
  display:none;
  padding:10px 12px;
  border-radius:12px;
  background:#25324a;
  color:#cfe1ff;
  border:1px solid #30415f;
  font-weight:700;
}
.slft-claim-banner .meta{
  margin-top:8px;
  font-size:12px;
  opacity:.82;
}
.slft-claim-banner .btn-claim:hover{ filter:brightness(1.08); }
.slft-claim-banner .btn-send:hover{ filter:brightness(1.06); }
html[data-theme="light"] .slft-claim-banner{
  border-color:#fca5a5;
  background:linear-gradient(135deg,#fff7f7,#fff1f2);
  color:#7f1d1d;
  box-shadow:0 8px 20px rgba(239,68,68,.12);
}
html[data-theme="light"] .slft-claim-banner .dot{ background:#ef4444; }
html[data-theme="light"] .slft-claim-banner .t2{ color:#991b1b; opacity:.9; }
html[data-theme="light"] .slft-claim-banner .meta{ color:#9f1239; opacity:.85; }
html[data-theme="light"] .slft-claim-banner .btn-claim{
  background:#dc2626;
  color:#ffffff;
}
html[data-theme="light"] .slft-claim-banner .btn-send{
  background:#fff1f2;
  color:#991b1b;
  border-color:#fca5a5;
}
html[data-theme="light"] .slft-claim-banner .btn-claim:hover{ background:#b91c1c; filter:none; }
html[data-theme="light"] .slft-claim-banner .btn-send:hover{
  background:#ffe4e6;
  border-color:#ef4444;
  filter:none;
}
@media (max-width:576px){
  .slft-claim-banner .right{
    width:100%;
    flex-wrap:wrap;
  }
}


/* =========================
   Flight progress (shared)
   ========================= */
#pane-detail .air-prog{
  background:linear-gradient(135deg,var(--slft-bg),var(--slft-panel));
  border:1px solid var(--slft-line); border-radius:14px;
  padding:14px 14px 12px; box-shadow:0 4px 18px rgba(0,0,0,.25);
}
#pane-detail .air-prog-head{
  display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px;
}
#pane-detail .air-prog-left{ display:flex; align-items:center; gap:8px; color:var(--slft-muted); font-size:12px; }
#pane-detail .air-prog-right{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  color:var(--slft-ink); font-weight:700;
}
#pane-detail .air-prog-track{
  position:relative; height:16px; border-radius:999px; overflow:hidden;
  background:#0e1726; border:1px solid var(--slft-grid);
}
#pane-detail .air-prog-fill{
  position:absolute; left:0; top:0; bottom:0; width:0;
  background:linear-gradient(90deg,var(--slft-grad-a),var(--slft-grad-b));
  transition:width .35s ease;
}
#pane-detail .air-prog-plane{
  position:absolute; top:50%; transform:translate(-50%,-50%);
  font-size:16px; filter:drop-shadow(0 0 6px rgba(62,229,255,.45));
}
#pane-detail .air-prog-meta{
  display:flex; align-items:center; justify-content:space-between;
  color:#94a3b8; font-size:12px; margin-top:8px;
}
#pane-detail .air-prog-pct{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace; color:var(--slft-ink-2);
}

.ac-icon{ background:none; border:none }
.ac-icon .ac-rot{ font-size:16px; filter: drop-shadow(0 0 2px rgba(0,0,0,.6)); }

/* =========================
   Cabin signs (CSB)
   ========================= */
#pane-detail .csb-housing{ margin-top:12px; }
#pane-detail .csb-panel{ display:flex; gap:10px; flex-wrap:wrap; }
#pane-detail .csb-sign{
  border:1px solid var(--slft-line); border-radius:12px;
  background:linear-gradient(135deg,var(--slft-bg),var(--slft-panel));
  padding:8px 10px; line-height:0; box-shadow:0 4px 18px rgba(0,0,0,.25);
}
#pane-detail .csb-sign svg{ width:180px; height:64px; display:block; }

/* Smoking icon parts */
#pane-detail .csb-nosmoking .cig{ fill:#1f2937 }
#pane-detail .csb-nosmoking .tip{ fill:#ef4444 }
#pane-detail .csb-nosmoking .smoke{ fill:none; stroke:#94a3b8; stroke-width:3; stroke-linecap:round }
#pane-detail .csb-nosmoking .x{ fill:none; stroke:#ef4444; stroke-width:6; stroke-linecap:round }

/* Seatbelt parts */
#pane-detail .csb-seatbelt .strap{ stroke:#94a3b8; stroke-width:6; stroke-linecap:round }
#pane-detail .csb-seatbelt .buckleSolid{ fill:#94a3b8 }
#pane-detail .csb-seatbelt .buckleSlot{ fill:#0b1220; stroke:#94a3b8; stroke-width:2 }
#pane-detail .csb-seatbelt .hand{ fill:none; stroke:#94a3b8; stroke-width:3; stroke-linecap:round }
#pane-detail .csb-seatbelt .arrowL,
#pane-detail .csb-seatbelt .arrowR{ fill:none; stroke:#10b981; stroke-width:4; stroke-linecap:round }
#pane-detail .csb-seatbelt .green{ fill:#10b981 }

/* =========================
   Banners, signs, callouts
   ========================= */
#pane-detail .airline-banner,
#pane-taxi-detail .airline-banner{
  border:1px solid var(--slft-line);
  background:linear-gradient(135deg,var(--slft-bg),var(--slft-panel));
  border-radius:12px; display:flex; flex-direction:column; align-items:center; gap:8px; padding:10px 12px;
}
#pane-detail .airline-banner img,
#pane-taxi-detail .airline-banner img{
  height:52px; width:auto; max-width:100%; object-fit:contain; display:block;
  filter:drop-shadow(0 0 12px rgba(62,229,255,.25));
}
#pane-taxi-detail .taxi-firm-banner-empty{
  min-height:52px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  color:var(--slft-muted);
  font-weight:600;
}

#pane-detail .gate-sign{
  display:flex; gap:10px; align-items:center;
  border:1px solid var(--slft-line); border-radius:10px;
  background:linear-gradient(135deg,var(--slft-bg),var(--slft-panel));
  padding:10px 12px;
}
#pane-detail .gate-sign .icon{ font-size:20px; color:#cbd5e1 }
#pane-detail .gate-sign .lbl{ font-size:12px; color:#94a3b8 }
#pane-detail .gate-sign .val{ font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-weight:700; color:var(--slft-ink) }
#pane-detail .gate-sign .sub{ font-size:12px; color:#94a3b8 }

#pane-detail .callout{
  border:1px solid var(--slft-line);
  border-left-width:3px; border-radius:10px;
  background:#0e1420; padding:10px 12px;
}
#pane-detail .callout-ok{ border-left-color:#22c55e }
#pane-detail .callout-bad{ border-left-color:#ef4444 }
#pane-detail .callout-neutral{ border-left-color:#60a5fa }
#pane-detail .metric{ font-weight:700 }

/* keep charts from collapsing */
.chart-wrap {
  position: relative;
  width: 100%;
  min-height: 385px;   /* pick a size you like */
}

/* keep charts from collapsing */
.chart-wrap2 {
  position: relative;
  width: 100%;
  min-height: 400px;   /* pick a size you like */
}

/* make sure no global canvas rule forces height:auto */
canvas#chartDelay {
  display: block !important;
  width: 100% !important;
  height: 385px !important; /* match .chart-wrap */
}


canvas#chartRates {
  display: block !important;
  width: 100% !important;
  height: 400px !important; /* match .chart-wrap */
}
.eta-pill{ background:#febd4b1f; border:1px solid #febd4b55; padding:.35rem .6rem; border-radius:.7rem; font-weight:600 }
.eta-pill.is-air{ background:#ffc1071f; border-color:#ffc10766; }
.eta-pill.is-arrived{ background:#28a74522; border-color:#28a74566; }

 /* Housing - pill only */
  .csb-housing{ --housing-w: 560px; --housing-h: 100px; width:var(--housing-w); height:var(--housing-h); display:grid; place-items:center; background:#0b0f14; border-radius: 50px; box-shadow: inset 0 2px 0 rgba(255,255,255,.06), inset 0 10px 30px rgba(0,0,0,.85), 0 2px 10px rgba(0,0,0,.55); }
  .csb-panel{ display:flex; gap:3rem; background:transparent; }

  /* Icons generic */
  .csb-sign{ width:170px; height:64px; display:flex; align-items:center; justify-content:center; cursor:pointer; background:transparent; border:0; }
  .csb-sign svg{ width:100%; height:auto; }

  /* No smoking */
  .csb-nosmoking .cig, .csb-nosmoking .tip, .csb-nosmoking .smoke, .csb-nosmoking .x{ fill:none; stroke-linecap:round; stroke-linejoin:round; }
  .csb-nosmoking .cig{ stroke:#7c8899; stroke-width:6; }
  .csb-nosmoking .tip{ stroke:#7c8899; stroke-width:6; }
  .csb-nosmoking .smoke{ stroke:#7c8899; stroke-width:3; }
  .csb-nosmoking .x{ stroke:#aa3a3a; stroke-width:9; }
  .csb-nosmoking.is-on .cig, .csb-nosmoking.is-on .tip, .csb-nosmoking.is-on .smoke{ stroke:#ffb66b; filter: drop-shadow(0 0 8px #ffb66b); }
  .csb-nosmoking.is-on .x{ stroke:#ff3b3b; filter: drop-shadow(0 0 10px #ff3b3b); }

  /* Seatbelt improved */
  .csb-seatbelt svg{ stroke-linecap:round; stroke-linejoin:round; }
  .csb-seatbelt .strap{ stroke:#7c8899; stroke-width:6; }
  .csb-seatbelt .buckleSolid{ fill:#7c8899; stroke:#7c8899; stroke-width:2; }
  .csb-seatbelt .buckleSlot{ fill:none; stroke:#7c8899; stroke-width:3; }
  .csb-seatbelt .hand{ fill:none; stroke:#7c8899; stroke-width:4; }
  .csb-seatbelt .arrowL, .csb-seatbelt .arrowR{ fill:none; stroke:#7c8899; stroke-width:5; }
  .csb-seatbelt .green{ fill:#3bd676; opacity:.25; }
  .csb-seatbelt.is-on .strap, .csb-seatbelt.is-on .buckleSolid, .csb-seatbelt.is-on .buckleSlot, .csb-seatbelt.is-on .hand, .csb-seatbelt.is-on .arrowL, .csb-seatbelt.is-on .arrowR{ stroke:#ffd76a; filter: drop-shadow(0 0 8px #ffd76a); }
  .csb-seatbelt.is-on .buckleSolid{ fill:#ffd76a; }
  .csb-seatbelt.is-on .green{ opacity:1; filter: drop-shadow(0 0 12px #35f16e); }
  .csb-housing {
  margin-top: 12px;
  display: flex;
  justify-content: center; /* centers horizontally */
}

.csb-housing {
  margin-top: 12px;
  display: flex;
  justify-content: center;   /* center horizontally */
  width: 100%;               /* span card body */
}

.csb-panel {
  display: flex;
  gap: 10px;
  justify-content: center;   /* center icons inside */
  border-radius: 50px;
  padding: 8px 20px;
}

/* ===== Aircraft-style CSB pill (full black + 3D bevel) ===== */
.csb-pill{
   position: relative;
  isolation: isolate;              /* contain effects so nothing bleeds outward */
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  padding:12px 22px;
  margin:0 auto;                   /* center the pill block */
  background:#000;                 /* full black */
  border-radius:9999px;
  border:1px solid #222;
  box-shadow:
    inset 0 2px 4px rgba(255,255,255,0.08),   /* faint top highlight */
    inset 0 -2px 6px rgba(0,0,0,0.9),         /* bottom shadow (3D panel) */
    0 2px 4px rgba(0,0,0,0.6);                /* subtle lift */
}
.detail-value.duration{
  font-weight:600;
}
/* keep your existing .air-chip2 styles; add tones */
.air-chip2.good  .air-chip2-val { color:#22c55e !important; }  /* green */
.air-chip2.ok    .air-chip2-val { color:#e6efff !important; }  /* default text */
.air-chip2.warn  .air-chip2-val { color:#f59e0b !important; }  /* amber */
.air-chip2.bad   .air-chip2-val { color:#ef4444 !important; }  /* red */

/* optional subtle border glow per tone */
.air-chip2.good  { box-shadow: 0 0 0 1px rgba(34,197,94,.18) inset !important; }
.air-chip2.warn  { box-shadow: 0 0 0 1px rgba(245,158,11,.18) inset !important; }
.air-chip2.bad   { box-shadow: 0 0 0 1px rgba(239,68,68,.18) inset !important; }


/* Bevel ring (very subtle "machined" lip around the pill) */
.csb-pill::before{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  /* thin ring using double shadow to simulate a bezel */
  box-shadow:
    0 0 0 1px rgba(255,255,255,.065),    /* hairline bright ring */
    0 0 0 3px rgba(0,0,0,.85);           /* darker outer falloff */
  /* slight vignette on face to feel recessed */
  background:
    radial-gradient(120% 140% at 50% -20%,
      rgba(255,255,255,.06), transparent 45%) ,
    radial-gradient(120% 140% at 50% 120%,
      rgba(0,0,0,.55), transparent 45%);
  mix-blend-mode: normal;
}

/* Gloss swipe (tiny aircraft-panel sheen) */
.csb-pill::after{
  content: "";
  position: absolute;
  inset: 2px;                            /* keeps gloss inside the ring */
  border-radius: inherit;
  pointer-events: none;
  background:
    linear-gradient( to bottom,
      rgba(255,255,255,.06), transparent 30% );
  opacity: .6;
}

/* keep your indicators as-is */
.csb-pill .csb-indicator{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:90px;      /* lock consistent width per indicator */
  min-height:36px;     /* lock consistent height */
  padding:4px 6px;     /* ensures vertical centering even with diff aspect ratios */
}

.csb-pill img{
  display:block;
  height:28px;         /* same fixed height for all images */
  width:auto;
  object-fit:contain;  /* keep aspect ratio */
  transition:opacity .18s ease, filter .18s ease;
}

/* 5 quick flashes, then stays solid */
@keyframes csb-flash {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0; }
}
.csb-indicator.flash-anim img {
  animation: csb-flash .45s linear 5; /* ~2.25s total */
}


.csb-pill img.larger{
  display:block;
  height:40px;         /* same fixed height for all images */
  margin-top: 6px;
  width:auto;
  object-fit:contain;  /* keep aspect ratio */
  transition:opacity .18s ease, filter .18s ease;
}

.csb-pill .csb-indicator.off img{
  opacity:.45;
  filter: grayscale(60%) brightness(.9);
}

.csb-pill .csb-indicator.on img{
  opacity:1;
  filter: drop-shadow(0 0 6px rgba(255,195,90,.18)); /* soft warm glow */
}

/* motion-safe */
@media (prefers-reduced-motion: reduce){
  .csb-pill img{ transition:none; }
}



/* Hide the small date under time (we rely on API-selected hour/day) */
.tiny-date { display:none !important; }

/* Hour dropdown spacing on small screens */
@media (max-width:576px){
  #boardHour{ min-width:90px; }
}
/* Put with your existing CSS */
.flight-import-actions [data-slft-scan].btn {
  border-color: rgba(62,229,255,.4);
}
.flight-import-actions [data-slft-scan].btn:hover {
  box-shadow: 0 0 8px rgba(62,229,255,.35);
}
#btnImportCsv.btn{
  border-color: rgba(255,195,90,.5);
  color:#ffd89b;
}
#btnImportCsv.btn:hover{
  box-shadow: 0 0 8px rgba(255,195,90,.35);
  border-color: rgba(255,195,90,.75);
}

body { margin-bottom: 15px; }

.flight-card .adsbygoogle { min-height: 120px; }

.nav-item { margin-top: 4px; }

/* Schengen tool */
.schengen-hero{
  background: linear-gradient(135deg, rgba(62,229,255,.12), rgba(255,195,90,.10));
  border:1px solid #233048;
  border-radius:.9rem;
  padding:1rem 1.25rem;
  box-shadow:0 8px 30px rgba(0,0,0,.35);
}
.schengen-hero-label{ font-size:.8rem; text-transform:uppercase; letter-spacing:.1em; color:#9fb6d4; }
.schengen-hero-value{
  font-size:3.2rem; font-weight:900; line-height:1;
  background:linear-gradient(90deg,#dff6ff,#93c5fd);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.schengen-hero-sub{ color:#cfe9ff; margin-top:.25rem; font-weight:700; }
.schengen-hero.over-limit .schengen-hero-value{
  background:linear-gradient(90deg,#EF4444,#F59E0B);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.schengen-pill{
  display:inline-flex; align-items:center; gap:.45rem;
  padding:.35rem .6rem; border-radius:.6rem;
  border:1px solid #233048; background:#0e1420;
  font-weight:700; font-size:.85rem;
}
.schengen-pill.entry{ color:#10B981; }
.schengen-pill.exit{ color:#F59E0B; }
.schengen-pill.unknown{ color:#a8bbd2; }
.travel-presence-shell .status-detail-card{
  border-color:#223247;
}
.presence-range-wrap{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  align-items:center;
}
.presence-range-pills{
  display:flex;
  gap:.4rem;
  flex-wrap:wrap;
}
.presence-range-pill{
  border:1px solid #2a3a52;
  background:rgba(36,50,68,.2);
  color:#dbeafe;
  border-radius:999px;
  padding:.3rem .7rem;
  font-size:.8rem;
  font-weight:700;
  transition:all .15s ease;
}
.presence-range-pill.active{
  border-color:#2563eb;
  background:rgba(62,229,255,.16);
  box-shadow:0 0 0 1px rgba(62,229,255,.22);
}
.presence-custom-range{
  display:flex;
  align-items:center;
  gap:.4rem;
  flex-wrap:wrap;
}
.presence-summary-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:.65rem;
}
.presence-summary-card{
  border:1px solid #223148;
  border-radius:.75rem;
  padding:.7rem .8rem;
  background:#0d1728;
}
.presence-summary-label{
  color:#9fb6d4;
  font-size:.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.presence-summary-value{
  margin-top:.25rem;
  font-size:1.45rem;
  font-weight:800;
}
.presence-note{
  color:#9fb6d4;
  font-size:.8rem;
}
.presence-controls{
  display:flex;
  gap:.5rem;
  flex-wrap:wrap;
  align-items:center;
}
.presence-group-toggle{
  display:flex;
  gap:.35rem;
}
.presence-group-btn{
  border:1px solid #2a3a52;
  background:#0e1420;
  color:#cfe9ff;
  border-radius:.6rem;
  padding:.35rem .65rem;
  font-size:.8rem;
  font-weight:700;
  transition:all .15s ease;
}
.presence-group-btn.active{
  border-color:#2563eb;
  background:rgba(62,229,255,.16);
  box-shadow:0 0 0 1px rgba(62,229,255,.22);
}
.presence-breakdown-table{
  margin-bottom:0;
  font-size:.88rem;
}
.presence-breakdown-table th{
  border-bottom-color:#223148;
  color:#9fb6d4;
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.presence-breakdown-table td{
  border-top-color:#1f2f44;
  vertical-align:middle;
}
.presence-breakdown-table tbody tr{
  cursor:pointer;
}
.presence-breakdown-table tbody tr.active{
  background:rgba(62,229,255,.11);
  box-shadow:inset 0 0 0 1px rgba(62,229,255,.3);
}
.presence-breakdown-table tbody tr:hover{
  background:rgba(62,229,255,.06);
}
.presence-stays-list{
  display:flex;
  flex-direction:column;
  gap:.55rem;
}
.presence-stay-item{
  border:1px solid #223148;
  border-radius:.75rem;
  padding:.7rem .8rem;
  background:#0d1728;
  transition:opacity .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.presence-stay-item.is-dim{
  opacity:.45;
}
.presence-stay-item.is-match{
  border-color:#2563eb;
  box-shadow:0 0 0 1px rgba(62,229,255,.25);
}
.presence-chip{
  display:inline-flex;
  align-items:center;
  padding:.18rem .5rem;
  border-radius:999px;
  border:1px solid #2a3a52;
  background:#0e1420;
  color:#cfe9ff;
  font-size:.72rem;
  font-weight:700;
}
.presence-chip.schengen{
  color:#10B981;
}
.presence-chip.non-schengen{
  color:#F59E0B;
}
.presence-chip.days{
  color:#93c5fd;
}
.presence-chip.review{
  color:#F59E0B;
}
html[data-theme="light"] .presence-range-pill,
html[data-theme="light"] .presence-group-btn{
  background:#f1f5f9;
  border-color:#cbd5e1;
  color:#0f172a;
}
html[data-theme="light"] .presence-range-pill.active,
html[data-theme="light"] .presence-group-btn.active{
  background:#e0f2fe;
  border-color:#38bdf8;
}
html[data-theme="light"] .presence-summary-card,
html[data-theme="light"] .presence-stay-item{
  background:#ffffff;
  border-color:#d7e0ea;
}
html[data-theme="light"] .presence-summary-label,
html[data-theme="light"] .presence-note,
html[data-theme="light"] .presence-breakdown-table th{
  color:#5b6b81;
}
html[data-theme="light"] .presence-breakdown-table td{
  border-top-color:#e2e8f0;
  color:#1f2a44;
}
html[data-theme="light"] .presence-breakdown-table tbody tr.active{
  background:#e0f2fe;
  box-shadow:inset 0 0 0 1px rgba(56,189,248,.35);
}
html[data-theme="light"] .presence-breakdown-table tbody tr:hover{
  background:rgba(14,165,233,.08);
}
html[data-theme="light"] .presence-chip{
  background:#f8fafc;
  border-color:#d7e0ea;
  color:#334155;
}
html[data-theme="light"] .presence-chip.review{
  color:#b45309;
}
@media (max-width: 767.98px){
  .presence-summary-grid{
    grid-template-columns:1fr;
  }
}
.friends-list{
  display:flex;
  flex-direction:column;
  gap:.55rem;
}
.friend-row{
  border:1px solid #223148;
  border-radius:.75rem;
  padding:.65rem .75rem;
  background:#0d1728;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.65rem;
}
.friend-row-main{
  min-width:0;
}
.friend-name{
  display:flex;
  align-items:center;
  gap:.5rem;
  font-weight:700;
}
.friend-avatar{
  width:26px;
  height:26px;
  border-radius:999px;
  border:1px solid #2f435f;
  background:#122033;
  color:#9fdfff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:.72rem;
  font-weight:800;
}
.friend-status{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  border:1px solid #2a3a52;
  padding:.15rem .55rem;
  font-size:.72rem;
  font-weight:700;
}
.friend-status.traveling{
  color:#10B981;
  border-color:rgba(24,195,126,.35);
  background:rgba(24,195,126,.12);
}
.friend-status.at_home{
  color:#94a3b8;
  border-color:#334155;
  background:rgba(100,116,139,.14);
}
.friend-status.in_country{
  color:#93c5fd;
  border-color:rgba(59,130,246,.35);
  background:rgba(59,130,246,.14);
}
.friend-status.unknown{
  color:#cbd5e1;
  border-color:#475569;
  background:rgba(148,163,184,.15);
}
.friend-actions{
  display:flex;
  gap:.35rem;
  flex-wrap:wrap;
  justify-content:flex-end;
}
html[data-theme="light"] .friend-row{
  background:#ffffff;
  border-color:#d7e0ea;
}
html[data-theme="light"] .friend-avatar{
  background:#eaf5ff;
  border-color:#c9dcee;
  color:#0f4a7b;
}

/* =========================
   Stats tab
   ========================= */
.stats-page{
  position:relative;
  padding:1.2rem 0 2rem;
  background:
    radial-gradient(1200px 400px at 10% -10%, rgba(62,229,255,.18), transparent 60%),
    radial-gradient(900px 380px at 90% -20%, rgba(255,195,90,.18), transparent 60%),
    linear-gradient(180deg, #0b1119 0%, #0b0f14 45%, #0b1119 100%);
  border-radius:1rem;
  border:1px solid #1f2a3a;
}
.stats-header{ padding:0 1.2rem 1rem; }
.stats-title{ font-weight:900; font-size:2rem; letter-spacing:.02em; }
.stats-sub{ color:#a8bbd2; font-size:.95rem; }
.stats-year-row{
  display:flex; gap:.5rem; flex-wrap:wrap;
  padding:0 1.2rem 1rem;
}
.stats-year-chip{
  border:1px solid #243244;
  background:rgba(36,50,68,.2);
  color:#dbeafe;
  padding:.35rem .7rem;
  border-radius:999px;
  font-weight:700;
  font-size:.8rem;
}
.stats-year-chip.active{
  background:rgba(62,229,255,.16);
  border-color:#2563eb;
  box-shadow:0 0 0 1px rgba(62,229,255,.25), inset 0 0 10px rgba(62,229,255,.08);
}
.stats-empty{
  padding:2rem 1.2rem;
  color:#a8bbd2;
  text-align:center;
}
.stats-hero{
  margin:0 1.2rem 1.2rem;
  padding:1.2rem 1.3rem;
  border-radius:1rem;
  background:linear-gradient(135deg,#0e1626,#111a2b);
  border:1px solid #233048;
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:1.2rem;
}
.stats-hero-title{ font-size:3rem; font-weight:900; }
.stats-eyebrow{ text-transform:uppercase; letter-spacing:.2em; color:#9fb6d4; font-size:.7rem; }
.stats-hero-sub{ color:#cfe9ff; margin-top:.25rem; }
.stats-hero-grid{
  display:grid; grid-template-columns:repeat(2, minmax(0,1fr));
  gap:.6rem; margin-top:1rem;
}
.stats-kpi{
  background:#0c131f; border:1px solid #223148; border-radius:.7rem;
  padding:.6rem .7rem;
}
.stats-kpi .label{ color:#9fb6d4; font-size:.7rem; text-transform:uppercase; letter-spacing:.15em; }
.stats-kpi .value{ font-size:1.2rem; font-weight:800; color:#e7f2ff; }
.stats-hero-right{ display:flex; flex-direction:column; gap:.8rem; }
.stats-metric{
  background:#0c131f; border:1px solid #223148; border-radius:.7rem;
  padding:.7rem .8rem;
}
.stats-metric .label{ color:#9fb6d4; font-size:.72rem; text-transform:uppercase; letter-spacing:.14em; }
.stats-metric .value{ font-size:1.4rem; font-weight:800; color:#e7f2ff; }
.stats-metric .sub{ color:#a8bbd2; font-size:.8rem; }
.stats-grid-two{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem; padding:0 1.2rem 1rem;
}
.stats-wrap{ padding:0 1.2rem 1rem; }
.stats-card{
  background:linear-gradient(145deg,#0d1422,#0f182a);
  border:1px solid #223148;
  border-radius:1rem;
  padding:1.1rem 1.2rem;
}
.stats-card-title{ text-transform:uppercase; letter-spacing:.18em; font-size:.72rem; color:#9fb6d4; margin-bottom:.6rem; }
.stats-delay-hero{ margin-bottom:1rem; }
.stats-delay-percent{ font-size:2.6rem; font-weight:900; color:#F59E0B; }
.stats-delay-copy{ font-size:1.1rem; font-weight:700; }
.stats-delay-sub{ color:#a8bbd2; font-size:.85rem; }
.stats-split{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.8rem; margin-bottom:1rem;
}
.stats-split .label{ color:#9fb6d4; font-size:.7rem; text-transform:uppercase; letter-spacing:.14em; }
.stats-split .value{ font-size:1.2rem; font-weight:800; }
.stats-split .sub{ color:#a8bbd2; font-size:.8rem; }
.stats-bar-block{ display:flex; flex-direction:column; gap:.55rem; }
.stats-bar-block.tight{ gap:.4rem; }
.stats-bar-row{ display:grid; grid-template-columns:70px 1fr 52px; align-items:center; gap:.5rem; }
.stats-bar-label{ font-weight:700; color:#dbeafe; }
.stats-airline-row{
  display:grid; grid-template-columns:34px 1fr 1fr 48px; align-items:center; gap:.6rem;
}
.stats-airline-chart{ display:flex; flex-direction:column; gap:.7rem; }
.stats-airline-logo{
  width:30px; height:30px; object-fit:contain;
  background:#0b0f14; border:1px solid #223148; border-radius:.4rem; padding:2px;
}
.stats-airline-logo--empty{
  display:inline-block;
  width:30px; height:30px;
  background:#0c131f; border:1px dashed #2a3a52; border-radius:.4rem;
}
.stats-airline-code{
  font-weight:800; color:#e6efff; letter-spacing:.04em;
}
.stats-bar-track{
  background:#0a111d; border:1px solid #223148; border-radius:999px; height:10px; overflow:hidden;
}
.stats-bar-fill{
  height:100%; background:linear-gradient(90deg,#2563eb,#93c5fd);
  box-shadow:0 0 10px rgba(62,229,255,.35);
}
.stats-bar-track.alt{ background:#1b0f14; border-color:#3b1b22; }
.stats-bar-fill.alt{ background:linear-gradient(90deg,#EF4444,#F59E0B); box-shadow:0 0 10px rgba(255,90,103,.35); }
.stats-bar-val{ color:#cfe9ff; font-weight:800; }
.stats-big-number{ font-size:2.4rem; font-weight:900; color:#93c5fd; }
.stats-muted{ color:#a8bbd2; margin-bottom:.6rem; }
.stats-subgrid{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:1rem;
}
.stats-map-card{ padding:1rem 1.1rem 1.1rem; }
.stats-map-head{ display:flex; align-items:center; justify-content:space-between; gap:.75rem; margin-bottom:.6rem; }
.stats-map-title{ text-transform:uppercase; letter-spacing:.18em; font-size:.72rem; color:#9fb6d4; font-weight:700; }
.stats-map-note{ color:#a8bbd2; margin-top:.6rem; }
.stats-map{ height:360px; border-radius:.85rem; border:1px solid #223148; overflow:hidden; background:#0b1119; }
@media (min-width: 992px){
  .stats-map{ height:420px; }
}
.stats-aircraft-hero{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  background:#0c131f; border:1px solid #223148; border-radius:.85rem; padding:.8rem .9rem;
  margin:.75rem 0 .9rem;
}
.stats-aircraft-hero .aircraft-card{ display:flex; align-items:center; }
.stats-aircraft-hero .value{ font-size:1.4rem; font-weight:800; }
.stats-aircraft-img{
  height:68px; width:auto; max-width:160px; object-fit:contain; display:block;
  filter:drop-shadow(0 8px 16px rgba(0,0,0,.45));
}
.stats-mini-list{ display:flex; flex-direction:column; gap:.4rem; }
.stats-mini-row{ display:flex; justify-content:space-between; color:#cfe9ff; font-size:.85rem; }
.stats-quirks{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.8rem;
}
.stats-quirk{
  background:#0c131f; border:1px solid #223148; border-radius:.8rem; padding:.7rem .8rem;
}
.stats-quirk .label{ color:#9fb6d4; font-size:.7rem; text-transform:uppercase; letter-spacing:.14em; }
.stats-quirk .value{ font-size:1.4rem; font-weight:800; color:#e7f2ff; margin-top:.2rem; }
.stats-quirk .sub{ color:#a8bbd2; font-size:.78rem; margin-top:.15rem; }
.stats-anim{ animation: statsRise .5s ease both; }
@keyframes statsRise{
  from { opacity:0; transform:translateY(10px); }
  to { opacity:1; transform:translateY(0); }
}
@media (max-width: 991px){
  .stats-hero{ grid-template-columns:1fr; }
  .stats-grid-two{ grid-template-columns:1fr; }
  .stats-quirks{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 575px){
  .stats-quirks{ grid-template-columns:1fr; }
  .stats-bar-row{ grid-template-columns:60px 1fr 40px; }
  .stats-airline-row{ grid-template-columns:28px 1fr 1fr 40px; }
}

/* eSIM shop */
.esim-pad-bottom{ padding-bottom:90px; }
.esim-hero{
  background:radial-gradient(120% 140% at 100% 0%, rgba(62,229,255,.12), transparent 55%), linear-gradient(135deg,#0b1422,#111c2e);
  border:1px solid #21314a;
  border-radius:18px;
  padding:18px;
  box-shadow:0 0 0 1px rgba(62,229,255,.08);
}
.esim-hero .eyebrow{ font-size:.78rem; text-transform:uppercase; letter-spacing:.12em; color:#7fc9ff; }
.esim-hero .title{ font-weight:800; letter-spacing:.02em; font-size:1.25rem; }
.esim-hero .sub{ color:var(--slft-muted); font-size:.95rem; }
.esim-hero-actions{ display:flex; flex-wrap:wrap; gap:8px; }
.esim-hero-trip{ margin-top:6px; font-size:.9rem; color:#b7cbe6; }
.esim-subnav{
  display:flex; gap:8px; flex-wrap:wrap;
  border:1px solid #223247; border-radius:14px; padding:8px;
  background:linear-gradient(180deg,#0f1828,#0c1320);
}
.esim-subnav.status-detail-card{
  border-radius:14px;
}
.esim-subnav-left{ display:flex; gap:8px; flex-wrap:wrap; flex:1; }
.esim-debug{
  background:#0a111d; border:1px solid #1f2a3a; border-radius:12px;
  color:#b7cbe6; font-size:.78rem; padding:10px; max-height:220px; overflow:auto;
}
.esim-debug-actions{ display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.esim-subnav .btn{ border-radius:12px; }
.esim-subnav .btn.active{ background:#1a2a41; border-color:#2a415d; color:#e6efff; }
.esim-section{ margin-bottom:16px; }
.esim-section-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
.esim-section-title{ font-weight:700; }
.esim-my-grid .esim-rec-table{ margin-top:8px; }
.esim-my-card .card-body{ display:flex; flex-direction:column; gap:10px; }
.esim-my-title{ font-weight:800; font-size:1rem; }
.esim-my-sub{ color:#9fb6d4; font-size:.85rem; }
.esim-usage{
  background:#0c1524; border:1px solid #1f2a3a; border-radius:10px; padding:10px;
}
.esim-usage-top{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.esim-usage-title{ font-weight:700; }
.esim-usage-val{ font-family:"JetBrains Mono",ui-monospace,monospace; font-weight:800; }
.esim-usage-bar{
  height:8px; background:#0b1220; border:1px solid #1b283a; border-radius:999px; overflow:hidden; margin-top:6px;
}
.esim-usage-fill{ height:100%; background:linear-gradient(90deg,#1d4ed8,#2563eb); width:0%; }
.esim-usage-sub{ font-size:.78rem; color:#8aa7c7; margin-top:6px; }
.esim-my-meta{ display:grid; grid-template-columns:1fr; gap:4px; font-size:.85rem; color:#cfe6ff; }
.esim-my-meta .label{ color:#8aa7c7; font-weight:600; margin-right:4px; }
.esim-my-actions{ display:flex; flex-wrap:wrap; gap:8px; }
.esim-info-box{
  background:#0c1524; border:1px solid #1f2a3a; border-radius:12px; padding:12px;
  color:#cfe6ff; font-size:.9rem; display:flex; gap:10px; align-items:flex-start;
}
.esim-info-box i{ color:#2563eb; }
.esim-qr-modal{
  position:fixed; inset:0; z-index:1200; display:flex; align-items:center; justify-content:center;
}
.esim-qr-backdrop{
  position:absolute; inset:0; background:rgba(4,9,16,.72); backdrop-filter:blur(2px);
}
.esim-qr-panel{
  position:relative; z-index:1; width:min(520px, 92vw);
  border:1px solid #223247; border-radius:14px; overflow:hidden;
  background:linear-gradient(180deg,#0f1828,#0c1320);
}
.esim-qr-body{ padding:16px; }
.esim-qr-img{
  width:100%; max-width:320px; margin:0 auto; display:block; border-radius:12px;
  border:1px solid #1f2a3a; background:#0b1220; padding:10px;
}
.esim-qr-actions{ display:flex; gap:8px; flex-wrap:wrap; justify-content:center; margin-top:10px; }
.esim-hero-card{
  border:1px solid #23344a;
  background:linear-gradient(180deg,#0f1828,#0c1320);
  border-radius:14px;
  padding:14px;
  min-width:220px;
}
.esim-hero-price{ font-size:1.4rem; font-weight:800; }
.esim-shop-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 320px;
  gap:16px;
}
.esim-side .sticky{ position:sticky; top:90px; z-index:5; }
.esim-cart-card{ position:relative; z-index:6; }
@media (max-width: 991px){
  .esim-shop-layout{ grid-template-columns:1fr; }
  .esim-side .sticky{ position:static; }
}
@media (max-width:575px){
  .esim-filter-actions{ align-items:flex-start; }
  .esim-filter-actions .form-select,
  .esim-filter-actions .btn{ width:100%; }
}
.esim-filter-bar .form-control,
.esim-filter-bar .form-select{
  background:#0f1625; border:1px solid #233048; color:var(--slft-ink);
}
.esim-filter-bar .form-control::placeholder{ color:#7f93ad; }
.esim-filter-actions{ flex-wrap:wrap; gap:8px; }
.esim-filter-actions .form-select{ min-width:140px; }
.esim-filter-actions .btn{ min-width:44px; }
.esim-browse-footer{
  margin-top:12px;
  display:flex;
  justify-content:center;
}
.esim-browse-footer .btn{
  min-width:180px;
}
.esim-trustline{
  margin-top:8px;
  margin-bottom:6px;
  font-size:.78rem;
  color:#9fc0e0;
  border:1px dashed #2a3b54;
  border-radius:10px;
  padding:7px 10px;
  background:rgba(12,20,33,.45);
}
.esim-details{
  margin-top:8px; padding-top:8px; border-top:1px dashed #223247;
  font-size:.78rem; color:#c9d9ee;
}
.esim-details .label{ color:#8aa7c7; font-weight:600; margin-right:4px; }
.esim-flight-line{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:4px; }
.esim-rec-list{ display:flex; flex-direction:column; gap:14px; }
.esim-rec-stop{ border:1px solid #1f2a3a; border-radius:12px; padding:12px; background:#0d1524; }
.esim-rec-stop .stop-title{ font-weight:700; }
.esim-rec-scroll{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(240px,1fr);
  gap:14px;
  overflow-x:auto;
  padding-bottom:6px;
  scroll-snap-type:x mandatory;
}
.esim-rec-scroll .esim-card{ scroll-snap-align:start; }
.esim-rec-table{
  border:1px solid #21314a;
  border-radius:12px;
  overflow:hidden;
  background:#0c1320;
}
.esim-rec-row{ 
  display:grid;
  grid-template-columns:90px minmax(0,1fr) 112px auto;
  gap:12px;
  padding:12px;
  border-bottom:1px solid #1d2a40;
  align-items:center;
}
.esim-rec-row:last-child{ border-bottom:0; }
.esim-rec-row .rec-badge{
  height:72px; width:90px;
  border-radius:12px;
  background:linear-gradient(160deg,#0e1b2d,#0b1320);
  border:1px solid #203048;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center;
}
.esim-rec-row .rec-badge.unl{
  background:linear-gradient(160deg,#052e24,#0f3f2d);
  border-color:#1e6f4f;
  padding:6px 4px;
  gap:2px;
}
.esim-rec-row .rec-badge.unl .rec-badge-icon,
.esim-rec-row .rec-badge.unl .rec-badge-val,
.esim-rec-row .rec-badge.unl .rec-badge-sub{
  color:#9cf6c5;
}
.esim-rec-row .rec-badge.unl .rec-badge-val{
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.01em;
  line-height:1.1;
}
.esim-rec-row .rec-badge.unl .rec-badge-sub{
  font-size:.62rem;
  font-weight:800;
  text-transform:none;
  letter-spacing:.01em;
  line-height:1.15;
}
.esim-rec-row .rec-badge .rec-badge-icon{ font-size:1rem; line-height:1; opacity:.95; margin-bottom:2px; }
.esim-rec-row .rec-badge.unl .rec-badge-icon{ font-size:1.08rem; }
.esim-rec-row .rec-badge-val{ font-weight:800; font-size:1.1rem; }
.esim-rec-row .rec-badge-unit{ font-size:.7rem; color:#9fb8d6; text-transform:uppercase; letter-spacing:.06em; }
.esim-rec-row .rec-badge-sub{ font-size:.65rem; color:#7f93ad; }
.esim-rec-row .rec-badge-note{ font-size:.72rem; font-weight:700; color:#b7cfec; line-height:1.2; }
.esim-rec-row .rec-badge.unl .rec-badge-note{
  font-size:.66rem;
  font-weight:700;
  color:#dcfce7;
  line-height:1.15;
}
.esim-list-section + .esim-list-section{ margin-top:14px; }
.esim-list-section-payg{
  margin-top:16px;
  padding-top:10px;
  border-top:1px solid rgba(148,163,184,.28);
}
.esim-list-head{ margin-bottom:8px; }
.esim-list-title{ font-size:.84rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#dcecff; }
.esim-list-sub{ font-size:.75rem; color:#9ab5d4; margin-top:2px; }
.esim-unl-note{
  margin-bottom:8px;
  border:1px solid #2a3b54;
  border-radius:10px;
  padding:8px 10px;
  color:#b8cce4;
  font-size:.76rem;
  background:rgba(12,20,33,.42);
}
.esim-rec-row .rec-title{
  font-weight:700;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
}
.esim-rec-row .rec-meta{ color:var(--slft-muted); font-size:.85rem; }
.esim-rec-row .rec-chip-promise,
.esim-rec-row .rec-chip-loc{
  display:inline-flex;
  align-items:center;
  gap:4px;
}
.esim-rec-row .rec-chip-promise{ color:#a8f0cb; font-weight:800; }
.esim-rec-row .rec-chip-loc{ color:#d9e9fb; font-weight:700; }
.esim-rec-row .rec-inline-icon{ opacity:.9; font-size:.72rem; }
.esim-rec-row .rec-dot-sep{ color:#6f8baa; margin:0 6px; }
.esim-rec-row .rec-qualifier{
  color:#b8d0e8;
  font-size:.74rem;
  margin-top:2px;
}
.esim-rec-row .rec-plan-tag{
  display:inline-flex;
  align-items:center;
  border:1px solid #355375;
  background:#102238;
  color:#d8eaff;
  border-radius:999px;
  padding:1px 7px;
  font-size:.62rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.esim-rec-row .rec-plan-tag.recommended{
  border-color:#7cc6ff;
  background:#0f2e48;
  color:#cfefff;
}
.esim-rec-row .rec-plan-tag.value{
  border-color:#86efac;
  background:#0f3327;
  color:#bbf7d0;
}
.esim-rec-row .rec-actions{ display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.esim-rec-row .rec-price{ text-align:right; justify-self:end; min-width:112px; }
.esim-rec-row .rec-price-sub{ font-size:.72rem; color:#8aa7c7; text-align:right; }
.esim-rec-row .esim-details{ grid-column:1 / -1; margin-top:6px; }
@media (max-width: 991px){
  .esim-rec-row{ grid-template-columns:1fr; align-items:flex-start; }
  .esim-rec-row .rec-badge{ width:100%; height:auto; padding:8px; flex-direction:row; gap:8px; justify-content:flex-start; }
  .esim-rec-row .rec-badge-val{ font-size:1rem; }
  .esim-rec-row .rec-price{ font-weight:700; min-width:0; text-align:left; }
  .esim-rec-row .rec-price-sub{ text-align:left; }
  .esim-rec-row .rec-actions{ justify-content:flex-start; }
}
.esim-browse-cards{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.esim-unl-toggle-wrap{
  margin-top:8px;
  display:flex;
  justify-content:flex-start;
  gap:8px;
  flex-wrap:wrap;
}
.esim-list-head-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.esim-limited-collapsed{
  border:1px dashed #2a3b54;
  border-radius:10px;
  padding:10px 12px;
  background:rgba(12,20,33,.4);
  color:#9ebad9;
  font-size:.8rem;
}
.esim-browse-card{
  border:1px solid #21344f;
  background:linear-gradient(155deg,#0d1727,#0a1320);
  border-radius:14px;
  padding:12px;
  display:grid;
  grid-template-columns:140px minmax(0,1fr) minmax(170px,auto);
  gap:12px;
  align-items:center;
}
.esim-browse-card--unlimited{
  border-color:#2a4d3f;
  box-shadow:0 0 0 1px rgba(46,204,113,.08) inset;
}
.esim-browse-card--limited{
  border-color:#1b2b41;
  background:linear-gradient(155deg,#091321,#08111d);
}
.esim-browse-card--limited .esim-card-headline{ color:#ccdbec; }
.esim-browse-card--limited .esim-card-qualifier{ color:#a9bfd8; }
.esim-browse-card--limited .esim-card-qualifier{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.esim-card-tile{
  height:100%;
  min-height:98px;
  border:1px solid #273c58;
  border-radius:12px;
  background:#0b1626;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  padding:10px 8px;
}
.esim-card-tile--unlimited{
  background:linear-gradient(160deg,#06382c,#0d4a35);
  border-color:#1f6f50;
  min-height:86px;
  padding:8px 7px;
}
.esim-card-tile--limited{
  background:linear-gradient(160deg,#0f2033,#0b1829);
  border-color:#253d5d;
}
.esim-card-tile-icon{
  font-size:1.1rem;
  margin-bottom:4px;
  opacity:.95;
}
.esim-browse-card--limited .esim-card-tile-icon{
  font-size:.92rem;
}
.esim-card-tile-title{
  font-weight:800;
  font-size:.86rem;
  line-height:1.15;
  letter-spacing:.01em;
}
.esim-card-tile-sub{
  margin-top:3px;
  font-size:.72rem;
  color:#9fc0de;
}
.esim-card-tile--unlimited .esim-card-tile-icon,
.esim-card-tile--unlimited .esim-card-tile-title{
  color:#b8f7d4;
}
.esim-card-tile--unlimited .esim-card-tile-sub{
  color:#ddfbe9;
}
.esim-card-tile--limited .esim-card-tile-icon,
.esim-card-tile--limited .esim-card-tile-title{
  color:#d4e7fc;
}
.esim-card-main{
  min-width:0;
}
.esim-card-headline-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
}
.esim-card-headline{
  font-weight:800;
  color:#e8f3ff;
  line-height:1.25;
  letter-spacing:.01em;
}
.esim-card-headline-row .rec-plan-tag{
  display:inline-flex;
  align-items:center;
  border:1px solid #355375;
  background:#102238;
  color:#d8eaff;
  border-radius:999px;
  padding:1px 7px;
  font-size:.62rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.esim-card-headline-row .rec-plan-tag.recommended{
  border-color:#38bdf8;
  background:linear-gradient(180deg,#0ea5e9,#0284c7);
  color:#f8fdff;
  box-shadow:0 0 0 1px rgba(14,165,233,.35), 0 4px 10px rgba(2,132,199,.25);
  font-size:.66rem;
  padding:2px 9px;
}
.esim-card-qualifier{
  margin-top:5px;
  color:#c3d9ef;
  font-size:.82rem;
  line-height:1.35;
}
.esim-card-support{
  margin-top:2px;
  color:#9fb9d7;
  font-size:.74rem;
}
.esim-card-meta{
  margin-top:4px;
  color:#91aecf;
  font-size:.76rem;
}
.esim-card-price{
  min-width:170px;
  justify-self:end;
  text-align:right;
}
.esim-card-price-main{
  font-size:1.15rem;
  font-weight:800;
  color:#f2f8ff;
}
.esim-card-price-sub{
  margin-top:2px;
  color:#90adc9;
  font-size:.74rem;
}
.esim-card-actions{
  margin-top:8px;
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:6px;
}
.esim-card-actions .btn{
  min-height:40px;
  border-radius:.72rem;
}
.rec-tech-link{
  min-height:auto !important;
  padding:0 !important;
  border:0 !important;
  color:#9aaac0 !important;
  font-size:.76rem;
  font-weight:500;
  text-decoration:none;
  text-underline-offset:2px;
  line-height:1.15;
}
.rec-tech-link:hover{
  color:#c8d4e4 !important;
  text-decoration:underline;
}
.esim-country-link{
  display:inline-block;
  margin-top:4px;
  color:#a7b9d1;
  font-size:.76rem;
  text-decoration:underline;
  text-underline-offset:2px;
}
.esim-country-link:hover{
  color:#d6e3f2;
}
.esim-country-list{
  margin-top:6px;
  padding:6px 8px;
  border:1px solid #2a3d55;
  border-radius:8px;
  background:rgba(12,20,33,.45);
  color:#b8cde6;
  font-size:.74rem;
  line-height:1.35;
}
.esim-browse-card .esim-details{
  grid-column:1 / -1;
  margin-top:2px;
}
.esim-compare-wrap{
  border:1px solid #243850;
  border-radius:12px;
  overflow:hidden;
  background:#0b1422;
}
.esim-compare-table{
  --bs-table-bg:#0b1422;
  --bs-table-color:#d9e8f9;
  --bs-table-border-color:#1f3047;
}
.esim-compare-table thead th{
  white-space:nowrap;
  font-size:.76rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#a9c1da;
}
.esim-compare-table td{
  font-size:.8rem;
  vertical-align:middle;
}
@media (max-width: 991px){
  .esim-browse-card{
    grid-template-columns:1fr;
    gap:10px;
    align-items:flex-start;
  }
  .esim-card-tile{
    width:100%;
    min-height:86px;
  }
  .esim-card-price{
    min-width:0;
    justify-self:start;
    text-align:left;
    width:100%;
  }
  .esim-card-actions{
    justify-content:flex-start;
  }
}
.esim-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:14px; }
.esim-card{
  border:1px solid var(--slft-line);
  background:linear-gradient(135deg,#0d1420,#0f1a2a);
  border-radius:16px;
  padding:14px;
  height:100%;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.esim-card .title{ font-weight:700; font-size:1rem; }
.esim-card .meta{ color:var(--slft-muted); font-size:.85rem; }
.esim-chip{
  display:inline-flex; align-items:center; gap:.3rem;
  padding:.2rem .55rem; border-radius:.6rem;
  border:1px solid #263348; background:#0f1725; color:#cfe6ff; font-size:.75rem;
}
.esim-feats{ display:flex; flex-wrap:wrap; gap:6px; }
.esim-feat{ border:1px solid #203047; border-radius:8px; padding:5px 7px; font-size:.78rem; color:#c8ddf5; background:#0c1524; }
.esim-price{ font-weight:800; font-size:1.2rem; }
.esim-price-old{ text-decoration:line-through; color:#7c8fa8; font-size:.85rem; }
  .esim-per{ color:#92a7c2; font-size:.8rem; }
  .esim-actions .btn{ border-radius:.7rem; }
  .auth-locked{
    opacity:.65;
    filter:saturate(.7);
    cursor:not-allowed;
  }
  .auth-locked:hover{ opacity:.65; }
  .esim-cart-card .card-header{ display:flex; align-items:center; justify-content:space-between; }
.esim-cart{
  border:1px dashed #2c3d57; border-radius:12px; padding:12px; background:#0e1626;
}
.esim-cart-item{
  display:grid; grid-template-columns: minmax(0,1fr) auto auto;
  align-items:center; column-gap:12px; row-gap:6px;
  padding:10px 0; border-bottom:1px solid #1d2a40;
}
.esim-cart-meta{ min-width:0; }
.esim-cart-meta .fw-semibold{ line-height:1.2; }
.esim-cart-controls{ display:flex; align-items:center; gap:6px; }
.esim-cart-price{ min-width:72px; text-align:right; font-weight:700; }
@media (max-width: 680px){
  .esim-cart-item{ grid-template-columns: 1fr; }
  .esim-cart-price{ text-align:left; }
}
.esim-cart-item:last-child{ border-bottom:0; }
.esim-empty{
  border:1px dashed #24324a; border-radius:12px; padding:20px; color:#8aa7c7; text-align:center;
}
.esim-cart-bar{
  position:fixed; left:12px; right:12px; bottom:12px; z-index:50;
  border:1px solid #223247; background:#0c1524; border-radius:14px; padding:10px 12px;
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  box-shadow:0 10px 30px rgba(0,0,0,.35);
}
.esim-cart-bar .btn{ border-radius:12px; }

/* Timeline */
.timeline-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px; flex-wrap:wrap; }
.timeline-toolbar-actions{ display:flex; align-items:center; gap:8px; margin-left:auto; }
.timeline-trip-filter-wrap{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.timeline-trip-filter-wrap .form-label{ margin:0; font-size:.78rem; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; }
.timeline-trip-filter{ min-width:230px; }
.timeline-density-toggle .btn{
  border-color:#2d435f;
  color:#cfe9ff;
  background:rgba(15,23,42,.35);
  min-width:94px;
}
.timeline-density-toggle .btn:hover{
  border-color:#38bdf8;
  color:#e6f2ff;
}
.timeline-density-toggle .btn.active{
  background:linear-gradient(180deg, rgba(14,165,233,.32), rgba(14,165,233,.18));
  border-color:#38bdf8;
  color:#e6f8ff;
}
.timeline-wrap{ position:relative; }
.timeline-day{ margin-bottom:18px; }
.timeline-day-title{ font-size:.75rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; }
.timeline-list{ position:relative; margin-left:14px; padding-left:18px; border-left:2px solid #1e2a3d; }
.timeline-list.timeline-list-flat{ margin-left:0; padding-left:0; border-left:0; }
.timeline-item{ position:relative; padding:9px 11px; margin:8px 0; background:var(--panel); border:1px solid #1e293b; border-radius:10px; }
.timeline-item.manual{ border-style:dashed; }
.timeline-item.flight,
.timeline-item.train,
.timeline-item.taxi,
.timeline-item.manual:not(.timeline-auto-flight){ cursor:pointer; }
.timeline-item.flight:hover,
.timeline-item.train:hover,
.timeline-item.taxi:hover,
.timeline-item.manual:not(.timeline-auto-flight):hover{ border-color:#38bdf8; box-shadow:0 0 0 1px rgba(56,189,248,.25); }
.timeline-item.timeline-auto-flight{ cursor:default; }
.timeline-dot{ position:absolute; left:-27px; top:14px; width:12px; height:12px; border-radius:50%; background:linear-gradient(135deg,var(--amber),var(--cyan)); box-shadow:0 0 12px rgba(62,229,255,.5); }
.timeline-title{ font-weight:700; display:flex; align-items:center; gap:8px; }
.timeline-title-text{ line-height:1; }
.timeline-flight-info{ display:flex; align-items:center; gap:10px; margin-top:2px; }
.timeline-logo-wrap{ width:38px; height:38px; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.timeline-logo{ width:34px; height:34px; object-fit:contain; border:0; background:transparent; padding:0; }
.timeline-route{ font-weight:400; color:var(--muted); font-size:.85rem; }
.timeline-flight-text{ max-width:520px; }
.timeline-route{ white-space:normal; overflow:visible; text-overflow:clip; word-break:break-word; }
.timeline-add{
  position:relative;
  height:36px;
  margin:10px 0;
  margin-left:-18px;
  width:calc(100% + 18px);
}
.timeline-add::before{
  content:"";
  position:absolute;
  left:50%;
  top:0;
  bottom:0;
  width:2px;
  background:#1e2a3d;
  transform:translateX(-50%);
}
.timeline-add-btn{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:22px; height:22px; border-radius:50%;
  border:1px solid #2a3a52; background:var(--panel); color:var(--cyan);
  display:flex; align-items:center; justify-content:center; padding:0;
  z-index:2;
}
.timeline-add-btn:hover{ border-color:#38bdf8; box-shadow:0 0 0 2px rgba(56,189,248,.18); }
.timeline-add-btn i{ font-size:.7rem; }
.timeline-list--empty{ min-height:30px; border-left-color: transparent; }
.timeline-empty-row{
  border:1px dashed #24324a;
  border-radius:14px;
  padding:18px 12px;
  text-align:center;
  color:#8aa7c7;
  background:rgba(15,23,42,.35);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:120px;
  gap:8px;
}
.timeline-empty-row .timeline-add-btn{
  position:static;
  transform:none;
  width:30px;
  height:30px;
}
.timeline-empty-title{ font-weight:700; color:var(--ink); }
.timeline-empty-sub{ color:var(--muted); font-size:.85rem; }
.timeline-addon{
  margin:6px 0 8px;
  padding:8px 10px;
  border-radius:10px;
  background:linear-gradient(90deg, rgba(14,165,233,.18), rgba(99,102,241,.12));
  border:1px solid rgba(56,189,248,.35);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-size:1rem;
}
.timeline-addon-cta{
  background:linear-gradient(90deg, rgba(35,183,161,.2), rgba(14,165,233,.08));
  border-color:rgba(35,183,161,.45);
  display:inline-flex;
  width:auto;
  max-width:420px;
  padding:6px 8px;
  font-size:.96rem;
}
.timeline-addon .label{
  display:flex;
  align-items:center;
  gap:8px;
  color:#cfe9ff;
  font-weight:600;
}
.timeline-addon .meta{ color:var(--muted); }

.flight-route-label{
  font-size:.7rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:#8aa7c7;
  margin-bottom:4px;
}
.flight-route-value{
  color:#e6f2ff;
  font-weight:400;
  line-height:1.45;
}
.flight-route-sub{
  color:#9fb6d4;
  font-size:.78rem;
  margin-top:2px;
}
.flight-route-inline{
  margin-top:8px;
}
.flight-route-inline-head{
  font-size:.76rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#9fb6d4;
  margin-bottom:8px;
}
.flight-route-inline-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:10px;
}
.flight-route-inline-item{
  border:1px solid #223247;
  border-radius:10px;
  padding:10px 12px;
  background:linear-gradient(135deg, rgba(14,20,32,.72), rgba(16,23,36,.84));
}
.has-airport-readmore{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.airport-readmore-main{
  flex:1;
  min-width:0;
}
.airport-readmore-wrap{
  display:flex;
  justify-content:flex-end;
  align-self:center;
  flex:0 0 auto;
}
.btn-airport-readmore{
  padding:.2rem .45rem;
  font-size:.72rem;
  line-height:1.15;
  border-radius:999px;
}
@media (max-width:575.98px){
  .has-airport-readmore{
    display:block;
  }
  .has-airport-readmore .airport-readmore-wrap{
    margin-top:8px;
    justify-content:flex-end;
  }
}
.flight-time-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:10px;
}
.flight-time-item{
  border:1px solid #223247;
  border-radius:10px;
  padding:10px 12px;
  background:linear-gradient(135deg, rgba(14,20,32,.72), rgba(16,23,36,.84));
}
.flight-time-label{
  font-size:.72rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#8aa7c7;
}
.flight-time-main{
  margin-top:6px;
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.flight-time-old{
  color:#8fa8c6;
  text-decoration:line-through;
  text-decoration-thickness:1.5px;
  opacity:.9;
}
.flight-time-arrow{
  color:#94a3b8;
  font-size:.85rem;
}
.flight-time-new{
  color:#e6f2ff;
  font-size:2rem;
  line-height:1;
  font-weight:700;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
}
.flight-time-delta{
  border:1px solid #223247;
  border-radius:999px;
  padding:2px 8px;
  font-size:.78rem;
  font-weight:700;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
}
.flight-time-delta.late{ color:#ef4444; border-color:rgba(239,68,68,.45); background:rgba(239,68,68,.08); }
.flight-time-delta.early{ color:#16a34a; border-color:rgba(34,197,94,.45); background:rgba(34,197,94,.10); }
.flight-time-delta.neutral{ color:#94a3b8; border-color:#2b3d55; background:rgba(148,163,184,.10); }

.flight-fact-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:10px;
}
.flight-fact{
  border:1px solid #223247;
  border-radius:10px;
  padding:10px 12px;
  background:linear-gradient(135deg, rgba(14,20,32,.72), rgba(16,23,36,.84));
  display:flex;
  align-items:center;
  gap:10px;
  min-height:70px;
}
.flight-fact-text{ min-width:0; }
.flight-fact-icon{
  width:32px;
  height:32px;
  border-radius:8px;
  background:rgba(148,163,184,.14);
  color:#94a3b8;
  display:grid;
  place-items:center;
  flex:0 0 auto;
}
.flight-fact.arr .flight-fact-icon{ color:#38bdf8; background:rgba(56,189,248,.12); }
.flight-fact.belt .flight-fact-icon{ color:#22d3ee; background:rgba(34,211,238,.12); }
.flight-fact-label{
  font-size:.72rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#8aa7c7;
}
.flight-fact-value{
  color:#e6f2ff;
  font-size:1.35rem;
  line-height:1.1;
  font-weight:700;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  word-break:break-word;
}
.flight-fact-sub{
  color:#9fb6d4;
  font-size:.78rem;
  margin-top:2px;
}
@media (max-width: 767px){
  .flight-time-new{ font-size:1.65rem; }
  .flight-fact-value{ font-size:1.15rem; }
}
.taxi-kpi-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:10px;
}
.taxi-kpi{
  border:1px solid #223247;
  border-radius:10px;
  padding:10px 12px;
  background:linear-gradient(135deg, rgba(14,20,32,.85), rgba(16,23,36,.95));
}
.taxi-kpi .lbl{
  font-size:.7rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:#8aa7c7;
  margin-bottom:2px;
}
.taxi-kpi .val{
  font-family:"JetBrains Mono",ui-monospace,monospace;
  font-weight:700;
  color:#e6f2ff;
}
.taxi-log-item{
  border-left:3px solid #334155;
  padding:8px 10px;
  margin-bottom:8px;
  background:#0f1725;
  border-radius:8px;
}
.taxi-log-item .type{
  font-size:.68rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#9fb5d3;
}
.taxi-log-item .msg{ color:#d7e8ff; white-space:pre-wrap; }
.taxi-log-item .meta{ color:#8aa7c7; font-size:.78rem; }
.taxi-route-card .card-header{
  letter-spacing:.02em;
}
.taxi-route-body{
  background:linear-gradient(135deg, rgba(12,18,30,.92), rgba(15,22,34,.98));
}
.taxi-route-row{
  border:1px solid #223247;
  border-radius:10px;
  padding:10px 12px;
  background:linear-gradient(135deg, rgba(14,20,32,.85), rgba(16,23,36,.95));
}
.taxi-route-label{
  font-size:.7rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:#8aa7c7;
  margin-bottom:4px;
}
.taxi-route-value{
  color:#e6f2ff;
  font-weight:400;
  line-height:1.45;
}

/* Manual modal light mode */
html[data-theme="light"] .manual-modal .modal-content{
  background:#ffffff !important;
  border-color:#d7e0ea !important;
  color:#0f172a !important;
  box-shadow:0 16px 40px rgba(15,23,42,.16);
}
html[data-theme="light"] .manual-modal .modal-header{
  border-bottom-color:#d7e0ea !important;
}
html[data-theme="light"] .manual-modal .modal-footer{
  border-top-color:#d7e0ea !important;
}
html[data-theme="light"] .manual-modal .btn-close{
  filter:none;
  opacity:.6;
}
.surface-ticket-editor{
  margin-top:.85rem;
  padding:.8rem;
  border:1px dashed #274563;
  border-radius:.65rem;
  background:rgba(8,15,28,.42);
}
html[data-theme="light"] .surface-ticket-editor{
  border-color:#d7e0ea;
  background:#f8fbff;
}
html[data-theme="light"] .ticket-meta-modal .modal-content{
  background:#ffffff !important;
  border-color:#d7e0ea !important;
  color:#0f172a !important;
  box-shadow:0 16px 40px rgba(15,23,42,.16);
}
html[data-theme="light"] .ticket-meta-modal .modal-header{
  border-bottom-color:#d7e0ea !important;
}
html[data-theme="light"] .ticket-meta-modal .modal-footer{
  border-top-color:#d7e0ea !important;
}
html[data-theme="light"] .ticket-meta-modal .btn-close{
  filter:none;
  opacity:.6;
}
html[data-theme="light"] #btnImportCsv.btn{
  border-color:#f59e0b;
  color:#92400e;
  background:#fffbeb;
}
html[data-theme="light"] #btnImportCsv.btn:hover{
  border-color:#d97706;
  color:#78350f;
  background:#fef3c7;
  box-shadow:0 0 0 1px rgba(245,158,11,.2), 0 8px 18px rgba(245,158,11,.18);
}
html[data-theme="light"] .import-csv-modal .modal-content{
  background:#ffffff !important;
  border-color:#d7e0ea !important;
  color:#0f172a !important;
  box-shadow:0 16px 40px rgba(15,23,42,.16);
}
html[data-theme="light"] .import-csv-modal .modal-header{
  border-bottom-color:#d7e0ea !important;
}
html[data-theme="light"] .import-csv-modal .modal-footer{
  border-top-color:#d7e0ea !important;
}
html[data-theme="light"] .import-csv-modal .btn-close{
  filter:none;
  opacity:.6;
}
.timeline-time{ font-size:.8rem; }
.timeline-sub{ color:var(--muted); font-size:.8rem; }
.timeline-gap{ margin:4px 0 4px 26px; font-size:.74rem; color:var(--muted); }
.timeline-gap.warn{ color:var(--warn); }
.timeline-gap.bad{ color:var(--bad); }
.timeline-connection{
  margin:4px 0 8px 26px;
  padding:8px 10px;
  border-radius:8px;
  border:1px solid #274563;
  background:linear-gradient(90deg, rgba(14,165,233,.14), rgba(15,23,42,.35));
  font-size:.74rem;
}
.timeline-connection.warn{
  border-color:rgba(245,158,11,.55);
  background:linear-gradient(90deg, rgba(245,158,11,.14), rgba(15,23,42,.35));
}
.timeline-connection.bad{
  border-color:rgba(248,113,113,.6);
  background:linear-gradient(90deg, rgba(239,68,68,.14), rgba(15,23,42,.35));
}
.timeline-connection-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:4px;
}
.timeline-connection-title{
  display:flex;
  align-items:center;
  gap:6px;
  font-weight:700;
  color:#d7ecff;
}
.timeline-connection-risk{
  font-size:.62rem;
  letter-spacing:.04em;
  text-transform:uppercase;
  border:1px solid #2e506f;
  border-radius:999px;
  padding:.1rem .45rem;
}
.timeline-connection-risk.warn{ border-color:rgba(245,158,11,.7); color:#fbbf24; }
.timeline-connection-risk.bad{ border-color:rgba(248,113,113,.75); color:#fca5a5; }
.timeline-connection-risk.ok{ border-color:rgba(34,197,94,.75); color:#86efac; background:rgba(34,197,94,.12); }
.timeline-connection-move{ font-weight:600; color:var(--ink); line-height:1.2; }
.timeline-connection-chart{ margin-top:4px; }
.timeline-connection-track{
  position:relative;
  height:8px;
  border-radius:999px;
  background:#1f2f46;
  overflow:hidden;
}
.timeline-connection-band{
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  border-radius:999px;
}
.timeline-connection-band.comfortable{ background:rgba(34,197,94,.38); }
.timeline-connection-band.ideal{ background:rgba(245,158,11,.45); }
.timeline-connection-band.minimum{ background:rgba(239,68,68,.66); }
.timeline-connection-marker{
  position:absolute;
  top:50%;
  width:10px;
  height:10px;
  transform:translate(-50%, -50%);
  border-radius:50%;
  background:#050505;
  border:2px solid #ffffff;
  box-shadow:0 0 0 1px rgba(15,23,42,.55);
}
.timeline-connection-legend{
  display:flex;
  flex-wrap:nowrap;
  gap:7px;
  margin-top:4px;
  font-size:.66rem;
  color:var(--muted);
  overflow-x:auto;
  white-space:nowrap;
  scrollbar-width:none;
}
.timeline-connection-legend::-webkit-scrollbar{ display:none; }
.timeline-connection-legend span{ display:inline-flex; align-items:center; gap:4px; }
.timeline-connection-legend .sw{
  width:8px;
  height:8px;
  border-radius:2px;
  display:inline-block;
}
.timeline-connection-legend .sw.minimum{ background:rgba(239,68,68,.8); }
.timeline-connection-legend .sw.ideal{ background:rgba(245,158,11,.8); }
.timeline-connection-legend .sw.comfortable{ background:rgba(34,197,94,.75); }
.timeline-connection-legend .sw.available{ background:#ffffff; border:1px solid rgba(15,23,42,.65); }
.timeline-connection-meta{
  margin-top:4px;
  color:var(--muted);
  font-size:.66rem;
  line-height:1.25;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.timeline-tag{ font-size:.7rem; letter-spacing:.04em; text-transform:uppercase; border:1px solid #24324a; padding:.15rem .4rem; border-radius:.4rem; margin-right:6px; display:inline-flex; align-items:center; gap:4px; }
.timeline-tag.timeline-tag-on-time{
  border-color:rgba(34,197,94,.65);
  color:#86efac;
  background:rgba(34,197,94,.12);
}
.timeline-tag.timeline-tag-disrupted{
  border-color:rgba(239,68,68,.7);
  color:#fecaca;
  background:rgba(239,68,68,.14);
}
.timeline-trip-origin{
  margin-top:2px;
}
.timeline-trip-origin-link{
  appearance:none;
  -webkit-appearance:none;
  border:0;
  background:transparent;
  color:#8db2d8;
  padding:0;
  font-size:.72rem;
  line-height:1.2;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:5px;
}
.timeline-trip-origin-link:hover{
  color:#bae6fd;
  text-decoration:underline;
}
.timeline-trip-origin-link i{
  font-size:.62rem;
  opacity:.85;
}
.timeline-trip-section-header{
  margin:5px 0 8px;
  padding:8px 10px;
  border:1px solid #25364b;
  border-radius:10px;
  background:linear-gradient(90deg, rgba(12,18,30,.82), rgba(9,14,24,.55));
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.timeline-trip-section-header.has-live{
  border-color:rgba(22,163,74,.45);
}
.timeline-trip-section-header.has-disrupted{
  border-color:rgba(239,68,68,.55);
}
.timeline-trip-section-main{
  min-width:0;
  flex:1 1 auto;
}
.timeline-trip-section-title{
  font-weight:700;
  line-height:1.2;
}
.timeline-trip-section-meta{
  margin-top:3px;
  color:#89a8c7;
  font-size:.7rem;
  line-height:1.25;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.timeline-trip-section-side{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
}
.timeline-trip-section-open{
  white-space:nowrap;
}
.timeline-trip-section-open i{
  font-size:.62rem;
}
.timeline-trip-section-alert{
  font-size:.64rem;
  text-transform:uppercase;
  letter-spacing:.05em;
  border-radius:999px;
  padding:.14rem .45rem;
  border:1px solid rgba(148,163,184,.45);
  color:#cbd5e1;
}
.timeline-trip-section-alert.live{
  color:#bbf7d0;
  border-color:rgba(34,197,94,.65);
  background:rgba(34,197,94,.16);
}
.timeline-trip-section-alert.disrupted{
  color:#fecaca;
  border-color:rgba(239,68,68,.7);
  background:rgba(239,68,68,.14);
}
.timeline-item.timeline-item-in-trip{
  border-color:#23354a;
}
.timeline-item.timeline-item-trip-breakout{
  box-shadow:0 0 0 1px rgba(125,211,252,.26);
}
.timeline-live-indicator{
  display:inline-flex;
  align-items:center;
  gap:4px;
  font-size:.64rem;
  letter-spacing:.07em;
  text-transform:uppercase;
  color:#bbf7d0;
  border:1px solid rgba(16,185,129,.65);
  background:rgba(16,185,129,.14);
  border-radius:999px;
  padding:.12rem .46rem;
  margin-right:6px;
}
.timeline-live-indicator i{ font-size:.44rem; }
.timeline-live-progress{
  margin-top:7px;
  height:5px;
  border-radius:999px;
  background:rgba(30,41,59,.55);
  overflow:hidden;
}
.timeline-live-progress-fill{
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg, #22c55e, #06b6d4);
}
.timeline-item.timeline-item-live{
  border-color:rgba(16,185,129,.68);
  box-shadow:0 0 0 1px rgba(16,185,129,.26);
}
.timeline-item.timeline-item-disrupted{
  border-color:rgba(239,68,68,.72);
  box-shadow:0 0 0 1px rgba(239,68,68,.25);
}
.timeline-live-now{
  margin-bottom:11px;
  border:1px solid #204659;
  border-radius:12px;
  padding:9px 10px;
  background:linear-gradient(135deg, rgba(14,20,32,.94), rgba(10,30,38,.92));
  position:sticky;
  top:74px;
  z-index:10;
}
.timeline-live-now-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:8px;
}
.timeline-live-now-count{
  font-size:.72rem;
  color:#9fd6ea;
}
.timeline-live-now .timeline-day{ margin-bottom:8px; }
.timeline-live-now .timeline-day:last-child{ margin-bottom:0; }
.timeline-actions{ margin-top:6px; }
.timeline-trip-controls{ margin-top:6px; display:flex; flex-direction:column; align-items:flex-end; gap:6px; }
.timeline-trip-assign-wrap{ display:flex; justify-content:flex-end; }
.timeline-trip-assign-wrap .form-select{ min-width:170px; max-width:220px; font-size:.72rem; }
.timeline-trip-segment-row{ display:flex; align-items:center; justify-content:flex-end; gap:6px; flex-wrap:wrap; width:100%; }
.timeline-trip-participation-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  border:1px solid #27405b;
  border-radius:999px;
  background:rgba(9,16,28,.55);
  overflow:hidden;
}
.timeline-trip-participation-btn{
  border:0;
  border-radius:0;
  padding:.24rem .55rem;
  font-size:.68rem;
  color:#9fb3c8;
  background:transparent;
  white-space:nowrap;
}
.timeline-trip-participation-btn + .timeline-trip-participation-btn{
  border-left:1px solid #27405b;
}
.timeline-trip-participation-btn:hover{
  color:#e7f0ff;
  background:rgba(148,163,184,.12);
}
.timeline-trip-participation-btn.is-active{
  color:#e7f0ff;
  background:rgba(34,197,94,.18);
}
.timeline-trip-participation-btn.is-disabled,
.timeline-trip-participation-btn:disabled{
  opacity:.55;
  cursor:not-allowed;
}
.timeline-trip-alert-panel{
  display:none;
  width:100%;
  margin-top:1px;
  border:1px solid #27405b;
  border-radius:10px;
  background:rgba(9,16,28,.72);
  padding:7px;
}
.timeline-trip-controls.is-alert-open .timeline-trip-alert-panel{
  display:block;
}
.timeline-trip-alert-panel-title{
  font-size:.64rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:6px;
  text-align:right;
}
.timeline-trip-alert-options{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:5px;
}
.timeline-trip-alert-option{
  border:1px solid #345070;
  border-radius:999px;
  background:rgba(15,23,42,.55);
  color:#b9d1e8;
  font-size:.66rem;
  padding:.18rem .5rem;
}
.timeline-trip-alert-option:hover{
  border-color:#4b78a5;
  color:#e7f0ff;
}
.timeline-trip-alert-option.is-active{
  border-color:rgba(56,189,248,.85);
  color:#e7f8ff;
  background:rgba(14,165,233,.24);
}
.timeline-trip-alert-modal{
  border:1px solid #223247;
  background:linear-gradient(135deg, rgba(14,20,32,.96), rgba(16,23,36,.98));
  color:#e7f0ff;
}
.timeline-trip-alert-modal .modal-header{
  border-bottom-color:#27405b;
}
.timeline-trip-alert-modal .btn-close{
  filter:invert(1) grayscale(1);
}
.train-ticket-ref-modal .modal-footer{
  border-top-color:#27405b;
}
.train-ticket-ref-modal .form-label{
  color:#c8daee;
}
.train-ticket-ref-modal .form-control{
  background:rgba(8,13,24,.72);
  border-color:#2d4865;
  color:#e8f3ff;
}
.train-ticket-ref-modal .form-control::placeholder{
  color:#8fb0cf;
}
.train-ticket-ref-modal .form-control:focus{
  border-color:#38bdf8;
  box-shadow:0 0 0 .2rem rgba(56,189,248,.2);
}
.timeline-trip-alert-options-modal{
  justify-content:flex-start;
}
.timeline-trip-segment-loading{
  color:var(--muted);
}
.timeline-empty{ padding:16px 12px; border:1px dashed #24324a; border-radius:12px; color:#8aa7c7; text-align:center; }
.timeline-trip-group{ margin-bottom:14px; border:1px solid #223247; border-radius:12px; overflow:hidden; background:rgba(12,18,30,.55); }
.timeline-trip-group-head{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  border:0;
  background:linear-gradient(90deg, rgba(14,165,233,.12), rgba(15,23,42,.42));
  color:var(--ink);
  text-align:left;
}
.timeline-trip-group-head .title{ font-weight:700; }
.timeline-trip-group-head .meta{ color:var(--muted); font-size:.78rem; }
.timeline-trip-group-head .chev{ color:#7dd3fc; }
.timeline-trip-group-body{ padding:10px 12px 4px; }

.trips-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:12px; }
.trip-card{
  border:1px solid #223247;
  border-radius:12px;
  background:linear-gradient(135deg, rgba(14,20,32,.85), rgba(16,23,36,.95));
  padding:12px;
}
.trip-card .name{ font-weight:700; color:var(--ink); line-height:1.2; }
.trip-card .date{ color:var(--muted); font-size:.82rem; margin-top:3px; }
.trip-card .meta-row{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:10px; }
.trip-status-pill{
  font-size:.68rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  border:1px solid #28415d;
  border-radius:999px;
  padding:.15rem .5rem;
}
.trip-status-pill.on_time{ color:#86efac; border-color:rgba(34,197,94,.65); background:rgba(34,197,94,.12); }
.trip-status-pill.disrupted{ color:#fca5a5; border-color:rgba(239,68,68,.75); background:rgba(239,68,68,.12); }
.trip-status-pill.completed{ color:#93c5fd; border-color:rgba(59,130,246,.7); background:rgba(59,130,246,.12); }
.trip-status-pill.unknown{ color:#cbd5e1; border-color:#334155; background:rgba(148,163,184,.12); }
.trip-members{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-top:8px; }
.trip-member-avatar{
  width:26px; height:26px; border-radius:50%;
  border:1px solid #2f455f; display:inline-flex; align-items:center; justify-content:center;
  font-size:.66rem; font-weight:700; color:#cfe9ff; background:#13253a;
}
.trip-detail-header{
  border:1px solid #223247;
  border-radius:12px;
  background:linear-gradient(135deg, rgba(14,20,32,.85), rgba(16,23,36,.95));
  padding:12px;
}
.trip-detail-name{ font-size:1.05rem; font-weight:700; color:var(--ink); }
.trip-detail-date{ color:var(--muted); font-size:.84rem; margin-top:2px; }
.trip-detail-next{
  margin-top:10px;
  padding:8px 10px;
  border:1px dashed #2a425e;
  border-radius:10px;
  color:var(--ink);
  background:rgba(10,17,28,.45);
  position:sticky;
  top:74px;
  z-index:8;
}
.trip-next-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:4px;
}
.trip-next-top .label{
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--muted);
}
.trip-next-title{
  font-size:.94rem;
  color:var(--ink);
  line-height:1.2;
}
.trip-next-meta{
  margin-top:6px;
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.trip-next-live-progress{
  flex:1 0 100%;
  width:100%;
  margin-top:2px;
}
.trip-next-status{
  font-size:.68rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  border:1px solid #334155;
  border-radius:999px;
  padding:.16rem .52rem;
}
.trip-next-status.ok{
  color:#86efac;
  border-color:rgba(34,197,94,.65);
  background:rgba(34,197,94,.12);
}
.trip-next-status.warn{
  color:#fbbf24;
  border-color:rgba(245,158,11,.68);
  background:rgba(245,158,11,.14);
}
.trip-next-status.bad{
  color:#fca5a5;
  border-color:rgba(239,68,68,.74);
  background:rgba(239,68,68,.14);
}
.trip-disruption-banner{
  margin-top:10px;
  padding:10px 12px;
  border:1px solid rgba(239,68,68,.58);
  border-radius:10px;
  background:linear-gradient(90deg, rgba(239,68,68,.18), rgba(15,23,42,.4));
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.trip-disruption-copy{
  color:#fecaca;
  font-size:.86rem;
}
.trip-member-settings-card{
  margin-top:10px;
  padding:10px 12px;
  border:1px solid #27405b;
  border-radius:10px;
  background:rgba(9,16,28,.55);
}
.trip-member-settings-title{
  font-size:.78rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:8px;
}
.trip-member-settings-grid{
  display:grid;
  grid-template-columns:auto minmax(140px, 1fr);
  align-items:center;
  gap:8px 10px;
}
.trip-member-settings-label{
  font-size:.76rem;
  color:var(--muted);
}
.trip-member-settings-select{
  min-width:140px;
}
.trip-segment-controls{
  margin-top:8px;
  padding:7px 8px;
  border:1px solid #27405b;
  border-radius:9px;
  background:rgba(9,16,28,.55);
  min-width:215px;
}
.trip-segment-controls-head{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  margin-bottom:7px;
}
.trip-participation-chip{
  display:inline-flex;
  align-items:center;
  padding:.12rem .48rem;
  border-radius:999px;
  border:1px solid #334155;
  font-size:.66rem;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.trip-participation-chip.follow{
  color:#cbd5e1;
  border-color:#475569;
  background:rgba(148,163,184,.14);
}
.trip-participation-chip.traveling{
  color:#86efac;
  border-color:rgba(34,197,94,.62);
  background:rgba(34,197,94,.14);
}
.trip-participation-copy-flag{
  font-size:.66rem;
  color:#93c5fd;
  border:1px solid rgba(59,130,246,.4);
  border-radius:999px;
  padding:.1rem .45rem;
}
.trip-segment-controls-grid{
  display:grid;
  gap:6px;
}
.trip-segment-select{
  min-width:190px;
}
.trip-segment-controls-foot{
  margin-top:7px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.trip-segment-remove-btn{
  white-space:nowrap;
}
.trip-detail-essentials{
  margin-top:12px;
  border:1px solid #223247;
  border-radius:12px;
  background:linear-gradient(135deg, rgba(14,20,32,.8), rgba(16,23,36,.95));
  padding:10px 12px;
}
.trip-essentials-title{
  font-size:.74rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:6px;
}
.trip-essentials-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}
.trip-essentials-countries{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}
.trip-essentials-badge{
  border:1px solid #274563;
  border-radius:999px;
  padding:.14rem .52rem;
  font-size:.72rem;
  color:#bae6fd;
  background:rgba(14,165,233,.14);
}
.timeline-item.disruption-impacted{
  border-color:rgba(239,68,68,.72);
  box-shadow:0 0 0 1px rgba(239,68,68,.25);
}
.timeline-connection.impacted{
  border-color:rgba(239,68,68,.75);
  box-shadow:0 0 0 1px rgba(239,68,68,.22);
}

#pane-timeline.timeline-density-compact .timeline-day,
#pane-trip-detail.timeline-density-compact .timeline-day{ margin-bottom:10px; }
#pane-timeline.timeline-density-compact .timeline-item,
#pane-trip-detail.timeline-density-compact .timeline-item{ padding:6px 8px; margin:5px 0; border-radius:8px; }
#pane-timeline.timeline-density-compact .timeline-addon,
#pane-trip-detail.timeline-density-compact .timeline-addon{ margin:4px 0 6px; padding:5px 7px; border-radius:8px; font-size:.88rem; }
#pane-timeline.timeline-density-compact .timeline-connection,
#pane-trip-detail.timeline-density-compact .timeline-connection{ margin:3px 0 6px 20px; padding:6px 8px; font-size:.69rem; }
#pane-timeline.timeline-density-compact .timeline-trip-group-body,
#pane-trip-detail.timeline-density-compact .timeline-trip-group-body{ padding:7px 9px 2px; }
#pane-trip-detail.timeline-density-compact .trip-detail-header{ padding:9px; }
#pane-trip-detail.timeline-density-compact .trip-detail-next{ margin-top:8px; padding:7px 8px; }
#pane-trip-detail.timeline-density-compact .trip-detail-essentials{ margin-top:9px; padding:8px 9px; }
#pane-trip-detail.timeline-density-compact #tripDetailTimeline{ margin-top:10px !important; }
#pane-timeline.timeline-density-compact .timeline-live-now{ margin-bottom:8px; padding:7px 8px; }
#pane-timeline.timeline-density-compact .timeline-live-progress{ margin-top:5px; height:4px; }
@media (max-width:767.98px){
  .timeline-connection-legend{ gap:6px; font-size:.62rem; }
  .timeline-connection-meta{ white-space:normal; }
  .timeline-trip-filter{ min-width:170px; }
  .timeline-toolbar-actions{ width:100%; justify-content:space-between; margin-left:0; }
  .timeline-density-toggle .btn{ min-width:86px; }
  .timeline-live-now{ top:66px; }
  .trip-detail-next{ top:66px; }
}

/* Timeline light mode */
html[data-theme="light"] .timeline-day-title{ color:#64748b; }
html[data-theme="light"] .timeline-list{ border-left-color:#e2e8f0; }
html[data-theme="light"] .timeline-item{ border-color:#e2e8f0; }
html[data-theme="light"] .timeline-item.flight:hover,
html[data-theme="light"] .timeline-item.train:hover,
html[data-theme="light"] .timeline-item.taxi:hover,
html[data-theme="light"] .timeline-item.manual:not(.timeline-auto-flight):hover{
  border-color:#38bdf8;
  box-shadow:0 0 0 1px rgba(56,189,248,.2);
}
html[data-theme="light"] .timeline-gap{ color:#64748b; }
html[data-theme="light"] .timeline-connection{
  border-color:#bfdbfe;
  background:linear-gradient(90deg, rgba(14,165,233,.12), #ffffff);
}
html[data-theme="light"] .timeline-connection.warn{
  border-color:#f59e0b;
  background:linear-gradient(90deg, rgba(245,158,11,.12), #ffffff);
}
html[data-theme="light"] .timeline-connection.bad{
  border-color:#f87171;
  background:linear-gradient(90deg, rgba(239,68,68,.12), #ffffff);
}
html[data-theme="light"] .timeline-connection-title{ color:#0f172a; }
html[data-theme="light"] .timeline-connection-risk{ border-color:#cbd5e1; color:#334155; }
html[data-theme="light"] .timeline-connection-risk.warn{ border-color:#f59e0b; color:#b45309; }
html[data-theme="light"] .timeline-connection-risk.bad{ border-color:#ef4444; color:#b91c1c; }
html[data-theme="light"] .timeline-connection-risk.ok{ border-color:#22c55e; color:#15803d; background:rgba(34,197,94,.12); }
html[data-theme="light"] .timeline-connection-track{ background:#dbe7f5; }
html[data-theme="light"] .timeline-connection-marker{
  background:#050505;
  border-color:#ffffff;
  box-shadow:0 0 0 1px rgba(15,23,42,.18);
}
html[data-theme="light"] .timeline-connection-legend .sw.available{ background:#0f172a; border-color:#0f172a; }
html[data-theme="light"] .timeline-empty{ border-color:#d7e0ea; color:#64748b; }
html[data-theme="light"] .timeline-tag{ border-color:#cbd5e1; color:#334155; }
html[data-theme="light"] .timeline-tag.timeline-tag-on-time{
  border-color:#86efac;
  color:#15803d;
  background:#f0fdf4;
}
html[data-theme="light"] .timeline-add-btn{
  background:#ffffff;
  border-color:#cbd5e1;
  color:#0369a1;
}
html[data-theme="light"] .timeline-add::before{ background:#e2e8f0; }
html[data-theme="light"] .timeline-add-btn:hover{
  border-color:#38bdf8;
  box-shadow:0 0 0 2px rgba(56,189,248,.18);
}
html[data-theme="light"] .timeline-empty-row{
  border-color:#d7e0ea;
  background:#ffffff;
  color:#64748b;
}
html[data-theme="light"] .timeline-empty-title{ color:#0f172a; }
html[data-theme="light"] .timeline-addon{
  background:linear-gradient(90deg, rgba(14,165,233,.12), rgba(99,102,241,.08));
  border-color:#bae6fd;
}
html[data-theme="light"] .timeline-addon-cta{
  background:linear-gradient(90deg, rgba(35,183,161,.14), rgba(14,165,233,.06));
  border-color:rgba(22,151,133,.42);
}
html[data-theme="light"] .timeline-addon .label{ color:#0f172a; }
html[data-theme="light"] .timeline-addon .meta{ color:#64748b; }
html[data-theme="light"] .timeline-trip-filter-wrap .form-label{ color:#64748b; }
html[data-theme="light"] .timeline-trip-group{
  border-color:#d7e0ea;
  background:#ffffff;
}
html[data-theme="light"] .timeline-trip-group-head{
  background:linear-gradient(90deg, rgba(14,165,233,.10), #ffffff);
  color:#0f172a;
}
html[data-theme="light"] .timeline-trip-group-head .meta{ color:#64748b; }
html[data-theme="light"] .timeline-trip-group-head .chev{ color:#0369a1; }
html[data-theme="light"] .timeline-tag.timeline-tag-disrupted{
  border-color:#fecaca;
  color:#b91c1c;
  background:#fef2f2;
}
html[data-theme="light"] .timeline-trip-origin-link{
  color:#0369a1;
}
html[data-theme="light"] .timeline-trip-origin-link:hover{
  color:#075985;
}
html[data-theme="light"] .timeline-trip-section-header{
  border-color:#d7e0ea;
  background:linear-gradient(90deg, rgba(14,165,233,.08), #ffffff);
}
html[data-theme="light"] .timeline-trip-section-header.has-live{
  border-color:rgba(34,197,94,.45);
}
html[data-theme="light"] .timeline-trip-section-header.has-disrupted{
  border-color:rgba(239,68,68,.5);
}
html[data-theme="light"] .timeline-trip-section-meta{
  color:#64748b;
}
html[data-theme="light"] .timeline-trip-section-alert{
  color:#334155;
  border-color:#cbd5e1;
}
html[data-theme="light"] .timeline-trip-section-alert.live{
  color:#166534;
  border-color:#86efac;
  background:#dcfce7;
}
html[data-theme="light"] .timeline-trip-section-alert.disrupted{
  color:#b91c1c;
  border-color:#fecaca;
  background:#fef2f2;
}
html[data-theme="light"] .timeline-item.timeline-item-in-trip{
  border-color:#d7e0ea;
}
html[data-theme="light"] .timeline-item.timeline-item-trip-breakout{
  box-shadow:0 0 0 1px rgba(14,165,233,.22);
}
html[data-theme="light"] .timeline-live-indicator{
  color:#166534;
  border-color:#86efac;
  background:#dcfce7;
}
html[data-theme="light"] .timeline-live-progress{
  background:#dcfce7;
}
html[data-theme="light"] .timeline-item.timeline-item-live{
  border-color:#22c55e;
  box-shadow:0 0 0 1px rgba(34,197,94,.25);
}
html[data-theme="light"] .timeline-item.timeline-item-disrupted{
  border-color:#ef4444;
  box-shadow:0 0 0 1px rgba(239,68,68,.2);
}
html[data-theme="light"] .timeline-live-now{
  border-color:#bae6fd;
  background:linear-gradient(135deg, #ffffff, #f0f9ff);
}
html[data-theme="light"] .timeline-live-now-count{
  color:#0f766e;
}
html[data-theme="light"] .timeline-trip-assign-wrap .form-select{
  border-color:#cbd5e1;
  color:#0f172a;
  background:#ffffff;
}
html[data-theme="light"] .timeline-trip-participation-toggle{
  border-color:#d7e0ea;
  background:#ffffff;
}
html[data-theme="light"] .timeline-trip-participation-btn{
  color:#334155;
}
html[data-theme="light"] .timeline-trip-participation-btn + .timeline-trip-participation-btn{
  border-left-color:#d7e0ea;
}
html[data-theme="light"] .timeline-trip-participation-btn:hover{
  color:#0f172a;
  background:rgba(148,163,184,.14);
}
html[data-theme="light"] .timeline-trip-participation-btn.is-active{
  color:#0f172a;
  background:rgba(34,197,94,.2);
}
html[data-theme="light"] .timeline-trip-participation-btn.is-disabled,
html[data-theme="light"] .timeline-trip-participation-btn:disabled{
  opacity:.6;
}
html[data-theme="light"] .timeline-trip-alert-panel{
  border-color:#d7e0ea;
  background:#ffffff;
}
html[data-theme="light"] .timeline-trip-alert-option{
  border-color:#cbd5e1;
  background:#f8fafc;
  color:#334155;
}
html[data-theme="light"] .timeline-trip-alert-option:hover{
  border-color:#94a3b8;
  color:#0f172a;
}
html[data-theme="light"] .timeline-trip-alert-option.is-active{
  border-color:#38bdf8;
  background:#e0f2fe;
  color:#0f172a;
}
html[data-theme="light"] .timeline-trip-alert-modal{
  border-color:#d7e0ea;
  background:#ffffff;
  color:#0f172a;
}
html[data-theme="light"] .timeline-trip-alert-modal .modal-header{
  border-bottom-color:#d7e0ea;
}
html[data-theme="light"] .timeline-trip-alert-modal .btn-close{
  filter:none;
}
html[data-theme="light"] .train-ticket-ref-modal .modal-footer{
  border-top-color:#d7e0ea;
}
html[data-theme="light"] .train-ticket-ref-modal .form-label{
  color:#0f172a;
}
html[data-theme="light"] .train-ticket-ref-modal .form-control{
  background:#ffffff;
  border-color:#cbd5e1;
  color:#0f172a;
}
html[data-theme="light"] .train-ticket-ref-modal .form-control::placeholder{
  color:#64748b;
}
html[data-theme="light"] .timeline-density-toggle .btn{
  border-color:#cbd5e1;
  color:#334155;
  background:#ffffff;
}
html[data-theme="light"] .timeline-density-toggle .btn:hover{
  border-color:#38bdf8;
  color:#0f172a;
}
html[data-theme="light"] .timeline-density-toggle .btn.active{
  background:linear-gradient(180deg, rgba(14,165,233,.18), rgba(14,165,233,.08));
  border-color:#38bdf8;
  color:#0f172a;
}
html[data-theme="light"] .trip-card{
  border-color:#d7e0ea;
  background:linear-gradient(135deg, #ffffff, #f8fbff);
}
html[data-theme="light"] .trip-card .name{ color:#0f172a; }
html[data-theme="light"] .trip-card .date{ color:#64748b; }
html[data-theme="light"] .trip-status-pill.completed{
  color:#1d4ed8;
  border-color:#93c5fd;
  background:#eff6ff;
}
html[data-theme="light"] .trip-status-pill.unknown{
  color:#475569;
  border-color:#cbd5e1;
  background:#f8fafc;
}
html[data-theme="light"] .trip-member-avatar{
  color:#0f172a;
  border-color:#cbd5e1;
  background:#f1f5f9;
}
html[data-theme="light"] .trip-detail-header{
  border-color:#d7e0ea;
  background:linear-gradient(135deg, #ffffff, #f8fbff);
}
html[data-theme="light"] .trip-detail-name{ color:#0f172a; }
html[data-theme="light"] .trip-detail-date{ color:#64748b; }
html[data-theme="light"] .trip-detail-next{
  border-color:#cbd5e1;
  background:#f8fafc;
  color:#0f172a;
}
html[data-theme="light"] .trip-next-top .label{ color:#64748b; }
html[data-theme="light"] .trip-next-title{ color:#0f172a; }
html[data-theme="light"] .trip-next-status{
  border-color:#cbd5e1;
  background:#ffffff;
  color:#334155;
}
html[data-theme="light"] .trip-next-status.ok{
  color:#15803d;
  border-color:#22c55e;
  background:#f0fdf4;
}
html[data-theme="light"] .trip-next-status.warn{
  color:#b45309;
  border-color:#f59e0b;
  background:#fffbeb;
}
html[data-theme="light"] .trip-next-status.bad{
  color:#b91c1c;
  border-color:#ef4444;
  background:#fef2f2;
}
html[data-theme="light"] .trip-disruption-banner{
  border-color:#fca5a5;
  background:linear-gradient(90deg, rgba(239,68,68,.12), #ffffff);
}
html[data-theme="light"] .trip-disruption-copy{ color:#991b1b; }
html[data-theme="light"] .trip-detail-essentials{
  border-color:#d7e0ea;
  background:linear-gradient(135deg, #ffffff, #f8fbff);
}
html[data-theme="light"] .trip-member-settings-card{
  border-color:#d7e0ea;
  background:#ffffff;
}
html[data-theme="light"] .trip-segment-controls{
  border-color:#d7e0ea;
  background:#ffffff;
}
html[data-theme="light"] .trip-participation-chip.follow{
  color:#334155;
  border-color:#cbd5e1;
  background:#f8fafc;
}
html[data-theme="light"] .trip-participation-copy-flag{
  color:#1d4ed8;
  border-color:rgba(37,99,235,.35);
}
html[data-theme="light"] .trip-essentials-title{ color:#64748b; }
html[data-theme="light"] .trip-essentials-badge{
  border-color:#7dd3fc;
  background:#e0f2fe;
  color:#075985;
}
html[data-theme="light"] .timeline-item.disruption-impacted{
  border-color:#fca5a5;
  box-shadow:0 0 0 1px rgba(239,68,68,.16);
}
html[data-theme="light"] .timeline-connection.impacted{
  border-color:#fca5a5;
  box-shadow:0 0 0 1px rgba(239,68,68,.14);
}
html[data-theme="light"] .flight-route-label{ color:#64748b; }
html[data-theme="light"] .flight-route-value{ color:#0f172a; }
html[data-theme="light"] .flight-route-sub{ color:#64748b; }
html[data-theme="light"] .flight-route-inline-head{ color:#64748b; }
html[data-theme="light"] .flight-route-inline-item{
  border-color:#d7e0ea;
  background:#ffffff;
}
html[data-theme="light"] .btn-airport-readmore{
  border-color:#7dd3fc;
  color:#0369a1;
  background:#f0f9ff;
}
html[data-theme="light"] .btn-airport-readmore:hover{
  border-color:#0284c7;
  color:#075985;
  background:#e0f2fe;
}
html[data-theme="light"] .flight-time-item{
  border-color:#d7e0ea;
  background:#ffffff;
}
html[data-theme="light"] .flight-time-label{ color:#64748b; }
html[data-theme="light"] .flight-time-old{ color:#64748b; }
html[data-theme="light"] .flight-time-arrow{ color:#94a3b8; }
html[data-theme="light"] .flight-time-new{ color:#0f172a; }
html[data-theme="light"] .flight-time-delta.neutral{
  color:#64748b;
  border-color:#cbd5e1;
  background:#f8fafc;
}
html[data-theme="light"] .flight-time-delta.late{
  color:#b91c1c;
  border-color:#fca5a5;
  background:#fef2f2;
}
html[data-theme="light"] .flight-time-delta.early{
  color:#15803d;
  border-color:#86efac;
  background:#f0fdf4;
}
html[data-theme="light"] .flight-fact{
  border-color:#d7e0ea;
  background:#ffffff;
}
html[data-theme="light"] .flight-fact-icon{
  background:#f1f5f9;
  color:#64748b;
}
html[data-theme="light"] .flight-fact-label{ color:#64748b; }
html[data-theme="light"] .flight-fact-value{ color:#0f172a; }
html[data-theme="light"] .flight-fact-sub{ color:#64748b; }
html[data-theme="light"] .taxi-kpi{
  border-color:#d7e0ea;
  background:linear-gradient(135deg, #ffffff, #f8fbff);
}
html[data-theme="light"] .detail-map-box{
  border-color:#d7e0ea;
  background:#ffffff;
}
html[data-theme="light"] .detail-grid-fields > [class^="col-"],
html[data-theme="light"] .detail-grid-fields > [class*=" col-"]{
  border-color:#d7e0ea;
  background:linear-gradient(135deg, #ffffff, #f8fbff);
}
html[data-theme="light"] .status-detail-card{
  border-color:#d7e0ea;
  background:linear-gradient(135deg, #ffffff, #f8fafc);
  box-shadow:0 10px 22px rgba(148,163,184,.2);
}
html[data-theme="light"] .status-detail-card .card-header{
  background:linear-gradient(90deg, rgba(14,165,233,.12), rgba(245,158,11,.1));
  border-bottom-color:#d7e0ea;
}
html[data-theme="light"] .taxi-kpi .lbl{ color:#64748b; }
html[data-theme="light"] .taxi-kpi .val{ color:#0f172a; }
html[data-theme="light"] .taxi-log-item{
  background:#f8fafc;
  border-left-color:#cbd5e1;
}
html[data-theme="light"] .taxi-log-item .type{ color:#475569; }
html[data-theme="light"] .taxi-log-item .msg{ color:#0f172a; }
html[data-theme="light"] .taxi-log-item .meta{ color:#64748b; }
html[data-theme="light"] .taxi-route-body{
  background:linear-gradient(135deg, #ffffff, #f8fafc);
}
html[data-theme="light"] .taxi-route-row{
  border-color:#d7e0ea;
  background:#ffffff;
}
html[data-theme="light"] .taxi-route-label{ color:#64748b; }
html[data-theme="light"] .taxi-route-value{ color:#0f172a; font-weight:400; }

    @media (max-width:575.98px){ .menu{justify-content:center} }

	 #detailTitle,
	 #trainDetailTitle,
	 #taxiDetailTitle { margin:0; }

/* =========================
   STATUS Rebrand v5 overrides
   Calm, spacing-first, tracking-first
   ========================= */
:root{
  --bg:#0B1220;
  --panel:#111827;
  --ink:#FFFFFF;
  --muted:#94A3B8;
  --line:rgba(255,255,255,.06);
  --brand:#2563EB;
  --brand-strong:#1D4ED8;
  --ok:#10B981;
  --warn:#F59E0B;
  --bad:#EF4444;
}
html[data-theme="light"]{
  --bg:#F8FAFC;
  --panel:#FFFFFF;
  --ink:#111827;
  --muted:#475569;
  --line:#E5E7EB;
}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,"Helvetica Neue",Arial,sans-serif;
}
.mono{
  font-family:"JetBrains Mono",ui-monospace,Menlo,Monaco,Consolas,monospace;
}
.text-secondary{ color:var(--muted) !important; }
.text-cyan,.text-amber{ color:var(--ink) !important; }

/* Compact app chrome */
.app-shell{
  padding:2px 0 12px;
  border-bottom:1px solid var(--line);
}
.app-brand{
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.app-brand-mark{
  width:30px;
  height:30px;
  border-radius:8px;
  object-fit:cover;
  border:0;
  background:transparent;
  box-shadow:none;
}
.app-brand-wordmark{
  font-family:Inter,system-ui,sans-serif;
  font-weight:600;
  letter-spacing:.02em;
  font-size:1.06rem;
  line-height:1;
  color:var(--ink);
}

/* Interaction blue discipline */
a,.btn-link{ color:var(--brand); }
a:hover,.btn-link:hover{ color:var(--brand-strong); }
.form-control:focus,.form-select:focus{
  border-color:var(--brand) !important;
  box-shadow:0 0 0 .2rem rgba(37,99,235,.14) !important;
}
.menu .nav-link,
.flight-split-tabs .nav-link,
.timeline-density-toggle .btn,
.theme-btn,
.auth-btn{
  background:transparent;
  border:1px solid var(--line);
  color:var(--ink);
  box-shadow:none;
}
.menu{
  gap:2px;
}
.menu .nav-link{
  border:0;
  border-bottom:2px solid transparent;
  border-radius:8px 8px 0 0;
  color:var(--muted);
  padding:.5rem .75rem;
  margin-right:0;
}
.menu .nav-link.active,
.flight-split-tabs .nav-link.active,
.timeline-density-toggle .btn.active{
  background:rgba(37,99,235,.08);
  border-color:transparent;
  border-bottom-color:var(--brand);
  color:var(--ink);
  box-shadow:none;
}
.menu .nav-link:hover,
.flight-split-tabs .nav-link:hover,
.timeline-density-toggle .btn:hover,
.theme-btn:hover,
.auth-btn:hover{
  border-color:rgba(37,99,235,.45);
}
.btn-commercial-cta,
.flight-split-add{
  background:var(--brand);
  border:1px solid var(--brand);
  color:#fff;
  box-shadow:none;
}
.btn-commercial-cta:hover,
.btn-commercial-cta:focus-visible,
.flight-split-add:hover{
  background:var(--brand-strong);
  border-color:var(--brand-strong);
  color:#fff;
  box-shadow:none;
  transform:none;
}

/* Borders/elevation: subtle and restrained */
.card,
.status-detail-card,
.trip-card,
.trip-detail-header,
.trip-detail-next,
.trip-detail-essentials,
.timeline-addon,
.timeline-addon-cta,
.trip-disruption-banner,
.timeline-item,
.timeline-live-now,
.timeline-trip-group,
.timeline-trip-section-header,
.timeline-connection,
.esim-hero,
.esim-subnav,
.esim-card,
.esim-hero-card,
.flight-route-inline-item{
  border-color:var(--line) !important;
  background:var(--panel) !important;
  box-shadow:none !important;
}
.card-header,
.site-footer,
.auth-modal .modal-header,
.auth-modal .modal-footer{
  border-color:var(--line) !important;
}
.site-footer a:hover{ color:var(--brand); }

/* Spacing-first rhythm */
.flight-card{
  border-radius:14px;
  padding:2px;
}
.flight-card .card-body{ padding:16px; }
.timeline-item{
  padding:14px 16px;
  margin:14px 0;
  border-radius:12px;
}
.timeline-day{ margin-bottom:26px; }
.timeline-toolbar{ margin-bottom:16px; }
.timeline-connection{ margin:10px 0 12px 28px; padding:10px 12px; }
.timeline-live-now{ margin-bottom:14px; padding:11px 12px; }
.timeline-addon,
.timeline-addon-cta{
  padding:8px 10px;
  margin:8px 0 10px;
  border-radius:10px;
}
.trip-member-avatar{
  color:var(--muted);
  background:transparent;
  border:1px solid var(--line);
}
.trip-essentials-badge{
  color:var(--muted);
  background:transparent;
  border:1px solid var(--line);
}
.timeline-title{
  font-weight:600;
  font-size:1.03rem;
  line-height:1.35;
}
.timeline-sub{
  color:var(--muted);
  font-size:.78rem;
  line-height:1.35;
}
.timeline-tag,
.timeline-live-indicator,
.timeline-trip-section-alert,
.trip-status-pill{
  font-size:.66rem;
  font-weight:600;
  letter-spacing:.04em;
}

/* Semantic status colors */
.status-pill{ font-weight:700; border-radius:.55rem; }
.status-OK{ background:rgba(16,185,129,.14); color:var(--ok); }
.status-EST{ background:rgba(245,158,11,.16); color:var(--warn); }
.status-CNL{ background:rgba(239,68,68,.15); color:var(--bad); }
.status-INFO{ background:rgba(148,163,184,.16); color:var(--ink); }
html[data-theme="light"] .status-INFO{ color:#334155; }

/* Tracking typography + numeric alignment */
.slft-col-time,
.slft-col-flight,
.board-table .mono,
.timeline-time,
.tiny-date,
.flap,
.iata,
.route-iata,
.flight-time-old,
.flight-time-new,
.flight-time-delta,
.trip-detail-date,
.trip-card .date{
  font-variant-numeric:tabular-nums;
}
.timeline-time{
  display:block;
  min-width:96px;
  text-align:right;
  line-height:1.4;
  margin-bottom:2px;
}
.timeline-item .text-end{
  min-width:118px;
}
.flight-card .mono.fw-bold.fs-5{
  font-family:Inter,system-ui,sans-serif !important;
  font-weight:600 !important;
  letter-spacing:.01em;
}
.timeline-actions{
  margin-top:8px;
}
.card-tools,
.transport-card-tools{
  margin-top:1.6rem;
}
.timeline-actions .btn,
.card-tools .btn{
  border:1px solid var(--line) !important;
  background:transparent !important;
  color:var(--muted) !important;
  width:30px;
  height:30px;
  padding:0;
  border-radius:10px !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.timeline-actions .btn:hover,
.card-tools .btn:hover{
  border-color:rgba(37,99,235,.45) !important;
  color:var(--brand) !important;
}
.timeline-actions .btn-outline-danger:hover,
.card-tools .btn-outline-danger:hover{
  border-color:rgba(239,68,68,.45) !important;
  color:var(--bad) !important;
}

/* Live motion constraints: subtle and calm */
@keyframes statusLivePulse{
  0%,100%{ opacity:.95; }
  50%{ opacity:.86; }
}
.timeline-live-indicator i{
  animation:statusLivePulse 1.8s ease-in-out infinite;
}
.timeline-live-progress{
  margin-top:10px;
  height:4px;
  background:rgba(148,163,184,.16);
}
.timeline-live-progress-fill{
  background:rgba(16,185,129,.72);
  transition:width 1.8s linear;
}
.timeline-connection-track{
  height:6px;
  background:rgba(148,163,184,.16);
}
.timeline-connection-band.minimum{ background:rgba(239,68,68,.42); }
.timeline-connection-band.ideal{ background:rgba(245,158,11,.36); }
.timeline-connection-band.comfortable{ background:rgba(16,185,129,.34); }
.timeline-connection-marker{
  width:9px;
  height:9px;
  box-shadow:none;
}
.slft-progress{
  height:6px;
  background:rgba(148,163,184,.14);
}
.slft-progress-fill{
  opacity:.72;
}

/* Remove decorative shimmer/glow effects */
.flight-card.is-loading .skeleton::after{
  animation:none !important;
  display:none !important;
}
.timeline-item.flight:hover,
.timeline-item.train:hover,
.timeline-item.taxi:hover,
.timeline-item.manual:not(.timeline-auto-flight):hover,
.flight-card:hover{
  transform:none;
  box-shadow:none;
  border-color:rgba(37,99,235,.4);
}
.timeline-item.timeline-item-live{
  border-color:rgba(16,185,129,.5);
  box-shadow:none;
}
.timeline-item.timeline-item-disrupted{
  border-color:rgba(239,68,68,.5);
  box-shadow:none;
}

/* Light mode specific calm surfaces */
html[data-theme="light"] .theme-btn,
html[data-theme="light"] .auth-btn,
html[data-theme="light"] .menu .nav-link,
html[data-theme="light"] .flight-split-tabs .nav-link{
  background:#fff;
  border-color:var(--line);
  color:var(--ink);
}
html[data-theme="light"] .menu .nav-link.active,
html[data-theme="light"] .flight-split-tabs .nav-link.active{
  background:rgba(37,99,235,.08);
  border-color:transparent;
  border-bottom-color:var(--brand);
}
html[data-theme="light"] .card,
html[data-theme="light"] .timeline-item,
html[data-theme="light"] .trip-card,
html[data-theme="light"] .trip-detail-header,
html[data-theme="light"] .trip-detail-next,
html[data-theme="light"] .trip-detail-essentials,
html[data-theme="light"] .timeline-live-now,
html[data-theme="light"] .timeline-trip-group{
  border-color:#E5E7EB !important;
}
html[data-theme="light"] .timeline-connection-track{
  background:rgba(100,116,139,.16);
}
html[data-theme="light"] .timeline-connection-band.minimum{ background:rgba(239,68,68,.30); }
html[data-theme="light"] .timeline-connection-band.ideal{ background:rgba(245,158,11,.26); }
html[data-theme="light"] .timeline-connection-band.comfortable{ background:rgba(16,185,129,.24); }

/* Reduce non-essential motion */
@media (prefers-reduced-motion: reduce){
  .live-now-dot,
  .timeline-live-indicator i,
  .timeline-live-progress-fill{
    animation:none !important;
    transition:none !important;
  }
  .flight-card,
  .timeline-item,
  .menu .nav-link,
  .flight-split-tabs .nav-link{
    transition:none !important;
  }
}

/* =========================
   STATUS v3 warmth + mobile nav polish
   ========================= */
.app-shell-row{
  flex-wrap:nowrap;
  min-width:0;
}
.app-shell-controls{
  flex:0 0 auto;
}
.top-menu-scroll{
  position:relative;
}
.top-menu-scroll .menu{
  display:flex;
  flex-wrap:nowrap;
  overflow-x:auto;
  overflow-y:hidden;
  white-space:nowrap;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  gap:10px;
  padding-bottom:2px;
}
.top-menu-scroll .menu::-webkit-scrollbar{ display:none; }
.menu .nav-item{ flex:0 0 auto; }
.menu .nav-link{
  min-height:44px;
  padding:.52rem .8rem;
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.menu .nav-link i{
  opacity:.85;
}
.menu .nav-link .text-info,
.menu .nav-link .text-amber,
.menu .nav-link .text-warning{
  color:currentColor !important;
}

/* Live now: special but calm */
.timeline-live-now{
  border-color:rgba(16,185,129,.22) !important;
}
.timeline-live-now-label{
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-weight:600;
}
.live-now-dot{
  display:inline-block;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#10B981;
  animation:statusLivePulse 1.8s ease-in-out infinite;
}
.timeline-live-indicator{
  color:#bbf7d0;
  border-color:rgba(16,185,129,.45);
  background:rgba(16,185,129,.10);
}
.timeline-item.timeline-item-live{
  border-left:2px solid rgba(16,185,129,.45);
}
.timeline-item.timeline-item-data-pending{
  border-style:dashed !important;
}
.timeline-item.timeline-item-data-ready{
  border-style:solid;
}

/* Hierarchy and warmth in timeline cards */
.timeline-item{
  margin:18px 0;
  padding:16px 18px;
}
.timeline-title{
  font-size:1.08rem;
  font-weight:600;
  line-height:1.4;
}
.timeline-sub{
  font-size:.76rem;
  line-height:1.5;
}
.timeline-time{
  font-size:.86rem;
}
.timeline-tag,
.timeline-live-indicator,
.status-pill{
  border-radius:999px;
}

/* Demote support visuals */
.timeline-live-progress{
  margin-top:12px;
  height:3px;
  background:rgba(148,163,184,.14);
}
.timeline-live-progress-fill{
  background:rgba(16,185,129,.64);
}
.timeline-connection{
  margin-top:12px;
}
.timeline-connection-track{
  height:5px;
  background:rgba(148,163,184,.14);
}
.timeline-connection-band.minimum{ background:rgba(239,68,68,.34); }
.timeline-connection-band.ideal{ background:rgba(245,158,11,.30); }
.timeline-connection-band.comfortable{ background:rgba(16,185,129,.28); }
.slft-progress{
  height:5px;
  background:rgba(148,163,184,.12);
}
.slft-progress-fill{ opacity:.66; }

/* By Air card rhythm + hierarchy */
.flight-card .card-body{
  padding:18px;
}
.flight-card .mono.fw-bold.fs-5{
  font-size:1.12rem !important;
}
.flight-card .small.text-secondary{
  font-size:.78rem;
  line-height:1.45;
}
.flight-card .mono.mt-1{
  font-variant-numeric:tabular-nums;
  line-height:1.45;
}
.flight-card .status-line{
  margin-top:10px;
}
.flight-card .status-pill{
  font-size:.75rem;
  font-weight:600;
}

/* Stronger dark separation without heavy shadows */
html[data-theme="dark"] .card,
html[data-theme="dark"] .timeline-item,
html[data-theme="dark"] .trip-card,
html[data-theme="dark"] .trip-detail-header,
html[data-theme="dark"] .trip-detail-next,
html[data-theme="dark"] .trip-detail-essentials{
  border-color:rgba(255,255,255,.08) !important;
}

/* Mobile specific refinements */
@media (max-width: 767.98px){
  .app-shell-controls{
    gap:6px !important;
  }
  .app-shell-controls #themeToggle .label,
  .app-shell-controls #authBtn .auth-sub{
    display:none;
  }
  .app-shell-controls #authBtn{
    min-width:auto;
    padding:.5rem .62rem;
  }
  .profile-menu-btn .label{
    max-width:92px;
  }
  .top-menu-scroll::after{
    content:'';
    position:absolute;
    right:0;
    top:0;
    width:28px;
    height:100%;
    pointer-events:none;
    background:linear-gradient(90deg, rgba(11,18,32,0), var(--bg));
  }
  html[data-theme="light"] .top-menu-scroll::after{
    background:linear-gradient(90deg, rgba(248,250,252,0), #F8FAFC);
  }
  .timeline-item{
    padding:16px;
    margin:16px 0;
  }
  .timeline-actions .btn:not(:first-child),
  .card-tools .btn:not(:first-child){
    display:none !important;
  }
  .timeline-item .text-end{
    min-width:104px;
  }
}

/* =========================
   STATUS v3.1 warm consumer polish
   ========================= */
:root{
  --bg:#0B1220;
  --panel:#141C2B; /* Dark layering: clearer card/surface separation */
  --line:rgba(255,255,255,.06);
}
html[data-theme="light"]{
  --bg:#F8FAFC;
  --panel:#FFFFFF;
  --line:#E5E7EB;
}

/* Dark layering: card borders slightly stronger than large panels */
html[data-theme="dark"] .card,
html[data-theme="dark"] .timeline-item,
html[data-theme="dark"] .trip-card,
html[data-theme="dark"] .trip-detail-header,
html[data-theme="dark"] .trip-detail-next,
html[data-theme="dark"] .trip-detail-essentials,
html[data-theme="dark"] .flight-card{
  border-color:rgba(255,255,255,.08) !important;
  background:var(--panel) !important;
}
html[data-theme="dark"] .timeline-live-now,
html[data-theme="dark"] .timeline-trip-group,
html[data-theme="dark"] .esim-subnav,
html[data-theme="dark"] .esim-hero,
html[data-theme="dark"] .status-detail-card{
  border-color:rgba(255,255,255,.06) !important;
  background:var(--panel) !important;
}

/* Mobile primary nav: one row, scrollable, consistent rhythm */
.top-menu-scroll{
  overflow:hidden;
}
.top-menu-scroll .menu{
  flex-wrap:nowrap !important;
  overflow-x:auto;
  white-space:nowrap;
  gap:10px;
  -webkit-overflow-scrolling:touch;
}
@media (max-width: 767.98px){
  .top-menu-scroll .menu .nav-link{
    min-height:44px;
    padding:.55rem .85rem;
    border-radius:999px;
    border:1px solid transparent;
  }
  .top-menu-scroll .menu .nav-link i{
    display:none; /* calmer, less noisy rhythm on small screens */
  }
  .top-menu-scroll .menu .nav-link.active{
    background:rgba(37,99,235,.1);
    border-bottom-color:transparent;
    border-color:rgba(37,99,235,.22);
  }
}

/* Comfort-only spacing and readability */
#pane-timeline:not(.timeline-density-compact) .timeline-item,
#pane-trip-detail:not(.timeline-density-compact) .timeline-item{
  padding:20px 22px;
  margin:22px 0;
}
#pane-timeline:not(.timeline-density-compact) .timeline-sub,
#pane-trip-detail:not(.timeline-density-compact) .timeline-sub{
  line-height:1.58;
}
#pane-timeline:not(.timeline-density-compact) .timeline-day,
#pane-trip-detail:not(.timeline-density-compact) .timeline-day{
  margin-bottom:30px;
}
#pane-timeline:not(.timeline-density-compact) .flight-card .card-body,
#pane-trip-detail:not(.timeline-density-compact) .flight-card .card-body{
  padding:22px;
}

/* Primary hierarchy: route/time first, secondary quieter */
.timeline-title{
  font-size:1.12rem;
  font-weight:600;
  line-height:1.4;
}
.timeline-sub{
  font-size:.75rem;
  color:var(--muted);
}
.timeline-time,
.timeline-item .mono,
.timeline-live-now .mono,
.flight-card .mono.mt-1,
.trip-next-time,
.trip-next-live-time{
  font-variant-numeric:tabular-nums;
}
.timeline-item .text-end{
  min-width:122px;
}

/* Micro UI simplification */
.timeline-actions .btn,
.card-tools .btn{
  width:30px;
  height:30px;
  border-radius:10px !important;
  border-color:rgba(148,163,184,.28) !important;
  color:var(--muted) !important;
}
.timeline-tag{
  border:0;
  background:rgba(148,163,184,.12);
  color:var(--muted);
}
@media (max-width: 767.98px){
  .timeline-actions .btn:not(:first-child),
  .card-tools .btn:not(:first-child),
  .transport-card-tools .btn:not(:first-child){
    display:none !important;
  }
}

/* Demoted support bars and calmer dark semantics */
.timeline-live-progress{
  margin-top:16px;
  height:3px;
  background:rgba(148,163,184,.12);
}
.timeline-connection{
  margin-top:16px;
}
.timeline-connection-track{
  height:4px;
  background:rgba(148,163,184,.12);
}
.timeline-connection-band.minimum{ background:rgba(239,68,68,.28); }
.timeline-connection-band.ideal{ background:rgba(245,158,11,.24); }
.timeline-connection-band.comfortable{ background:rgba(16,185,129,.26); }
.slft-progress{
  height:4px !important;
  background:rgba(148,163,184,.1) !important;
}
.slft-progress-fill{
  opacity:.58 !important;
}
html[data-theme="light"] .timeline-connection-track{
  background:rgba(100,116,139,.14);
}
html[data-theme="light"] .timeline-connection-band.minimum{ background:rgba(239,68,68,.24); }
html[data-theme="light"] .timeline-connection-band.ideal{ background:rgba(245,158,11,.22); }
html[data-theme="light"] .timeline-connection-band.comfortable{ background:rgba(16,185,129,.22); }

/* CTA warmth: softer edge, one calm primary */
.btn-commercial-cta,
.flight-split-add{
  border-radius:11px;
}
.btn-commercial-cta:hover,
.btn-commercial-cta:focus-visible,
.flight-split-add:hover{
  filter:saturate(.96);
}

/* Live motion remains subtle and reduced-motion safe */
@keyframes statusLivePulseV31{
  0%,100%{ opacity:.95; }
  50%{ opacity:.86; }
}
.live-now-dot,
.timeline-live-indicator,
.timeline-live-indicator i{
  animation:statusLivePulseV31 1.9s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce){
  .live-now-dot,
  .timeline-live-indicator,
  .timeline-live-indicator i,
  .timeline-live-progress-fill,
  .slft-progress-fill{
    animation:none !important;
    transition:none !important;
  }
}

/* =========================
   STATUS v3.1.1 live visibility + non-sticky live row
   ========================= */
@keyframes statusLivePulseV311{
  0%,100%{ opacity:1; }
  50%{ opacity:.9; } /* 10% delta for clearer visibility */
}
.live-now-dot,
.timeline-live-indicator,
.timeline-live-indicator i{
  animation:statusLivePulseV311 1.8s ease-in-out infinite;
  will-change:opacity;
}

/* Live now should remain at top of flow, not sticky */
.timeline-live-now{
  position:static !important;
  top:auto !important;
  z-index:auto !important;
}

@media (prefers-reduced-motion: reduce){
  .live-now-dot,
  .timeline-live-indicator,
  .timeline-live-indicator i{
    animation:none !important;
    will-change:auto;
  }
}

/* =========================
   STATUS v3.2 final warmth polish
   ========================= */
:root{
  --bg:#0B1220;
  --panel:#111827;
  --card:#141C2B;
  --line:rgba(255,255,255,.06);
}
html[data-theme="light"]{
  --bg:#F8FAFC;
  --panel:#FFFFFF;
  --card:#FFFFFF;
  --line:rgba(229,231,235,.78);
}

/* Dark layering: panel vs card separation without heavy elevation */
html[data-theme="dark"] .timeline-live-now,
html[data-theme="dark"] .timeline-trip-group,
html[data-theme="dark"] .esim-subnav,
html[data-theme="dark"] .esim-hero,
html[data-theme="dark"] .status-detail-card{
  background:var(--panel) !important;
  border-color:rgba(255,255,255,.06) !important;
}
html[data-theme="dark"] .timeline-item,
html[data-theme="dark"] .flight-card{
  background:var(--card) !important;
  border-color:rgba(255,255,255,.08) !important;
  box-shadow:none !important;
}
html[data-theme="dark"] .timeline-item,
html[data-theme="dark"] .flight-card,
html[data-theme="dark"] .card{
  background-image:none !important;
}

/* Timeline and By Air surface consistency */
.timeline-item,
.flight-card{
  border-radius:14px;
  border-width:1px;
  box-shadow:none !important;
}
html[data-theme="light"] .timeline-item,
html[data-theme="light"] .flight-card,
html[data-theme="light"] .card{
  border-color:var(--line) !important;
}

/* Bars: further demoted, especially dark */
.timeline-live-progress,
.timeline-connection{
  margin-top:18px;
}
.timeline-live-progress{
  height:2px;
}
.timeline-connection-track,
.slft-progress{
  height:3px !important;
}
html[data-theme="dark"] .timeline-connection-track,
html[data-theme="dark"] .slft-progress{
  background:rgba(255,255,255,.08) !important;
}
html[data-theme="light"] .timeline-connection-track,
html[data-theme="light"] .slft-progress{
  background:#E5E7EB !important;
}
html[data-theme="dark"] .timeline-connection-band.minimum{ background:rgba(239,68,68,.24); }
html[data-theme="dark"] .timeline-connection-band.ideal{ background:rgba(245,158,11,.21); }
html[data-theme="dark"] .timeline-connection-band.comfortable{ background:rgba(16,185,129,.24); }

/* Comfort vs Compact differentiation */
#pane-timeline:not(.timeline-density-compact) .timeline-item,
#pane-trip-detail:not(.timeline-density-compact) .timeline-item{
  padding:22px 24px;
  margin:24px 0;
}
#pane-timeline:not(.timeline-density-compact) .timeline-sub,
#pane-trip-detail:not(.timeline-density-compact) .timeline-sub{
  line-height:1.62;
}
#pane-timeline.timeline-density-compact .timeline-item,
#pane-trip-detail.timeline-density-compact .timeline-item{
  padding:6px 7px;
}

/* Comfort: hide secondary actions until hover/focus on desktop */
@media (min-width: 768px){
  #pane-timeline:not(.timeline-density-compact) .timeline-actions .btn,
  #pane-trip-detail:not(.timeline-density-compact) .timeline-actions .btn{
    opacity:0;
    visibility:hidden;
    transition:opacity .16s ease;
  }
  .flight-card .card-tools .btn,
  .flight-card .transport-card-tools .btn{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .16s ease;
  }
  #pane-timeline:not(.timeline-density-compact) .timeline-item:hover .timeline-actions .btn,
  #pane-timeline:not(.timeline-density-compact) .timeline-item:focus-within .timeline-actions .btn,
  #pane-trip-detail:not(.timeline-density-compact) .timeline-item:hover .timeline-actions .btn,
  #pane-trip-detail:not(.timeline-density-compact) .timeline-item:focus-within .timeline-actions .btn{
    opacity:1;
    visibility:visible;
  }
  .flight-card:hover .card-tools .btn,
  .flight-card:focus-within .card-tools .btn,
  .flight-card:hover .transport-card-tools .btn,
  .flight-card:focus-within .transport-card-tools .btn{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }
}
@media (max-width: 767.98px){
  .timeline-actions .btn:not(:first-child),
  .card-tools .btn:not(:first-child),
  .transport-card-tools .btn:not(:first-child){
    display:none !important;
  }
}

/* Mobile header/nav: lighter rhythm, no heavy row feel */
.app-shell{
  padding-top:0;
  padding-bottom:8px;
}
.top-menu-scroll{
  margin-top:10px !important;
}
.top-menu-scroll .menu{
  padding-top:1px;
  padding-bottom:1px;
  gap:8px;
  justify-content:flex-start;
  margin-left:0;
  padding-left:0;
}
.menu .nav-link{
  background:transparent !important;
  color:var(--muted);
  border:1px solid transparent;
}
.menu .nav-link:not(.active){
  opacity:.86;
}
.menu .nav-link.active{
  color:var(--ink);
}
@media (max-width: 767.98px){
  .menu .nav-link{
    min-height:44px;
    padding:.52rem .78rem;
  }
}

/* Light mode calmness: fewer harsh lines */
html[data-theme="light"] .card-header,
html[data-theme="light"] .timeline-item .border-top,
html[data-theme="light"] .timeline-item .border-bottom,
html[data-theme="light"] .flight-card .border-top,
html[data-theme="light"] .flight-card .border-bottom{
  border-color:rgba(229,231,235,.55) !important;
}

/* Live state remains subtle and consumer-friendly */
html[data-theme="dark"] .live-now-dot{
  background:#2FBF8A;
}
html[data-theme="dark"] .timeline-live-indicator{
  color:#B9EAD5;
  border-color:rgba(47,191,138,.36);
  background:rgba(47,191,138,.08);
}

/* =========================
   Timeline transport segmented control
   ========================= */
.timeline-mode-shell{
  position:relative;
  padding:2px 0;
}
.timeline-mode-nav{
  display:flex;
  flex-wrap:nowrap !important;
  overflow-x:auto;
  overflow-y:hidden;
  white-space:nowrap;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  gap:8px;
  margin:0;
  padding:0;
}
.timeline-mode-nav::-webkit-scrollbar{ display:none; }
.timeline-mode-nav .nav-link{
  flex:0 0 auto;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:.5rem .82rem;
  border-radius:999px;
  border:1px solid transparent !important;
  background:transparent !important;
  color:var(--muted) !important;
  box-shadow:none !important;
  text-decoration:none;
}
.timeline-mode-nav .nav-link i{
  color:currentColor !important;
  opacity:.96;
}
.timeline-mode-nav .nav-link:hover{
  background:rgba(148,163,184,.05) !important; /* 3-5% tonal shift */
  color:var(--ink) !important;
  border-color:rgba(148,163,184,.2) !important;
}
.timeline-mode-nav .nav-link.active{
  color:var(--ink) !important;
  background:rgba(37,99,235,.08) !important;
  border-color:rgba(37,99,235,.2) !important;
}
.timeline-mode-nav .nav-link.active i{
  color:#2563EB !important;
}

@media (max-width: 767.98px){
  .timeline-mode-shell{
    overflow:hidden;
  }
  .timeline-mode-shell::after{
    content:'';
    position:absolute;
    right:0;
    top:0;
    width:26px;
    height:100%;
    pointer-events:none;
    background:linear-gradient(90deg, rgba(11,18,32,0), var(--panel));
  }
  html[data-theme="light"] .timeline-mode-shell::after{
    background:linear-gradient(90deg, rgba(255,255,255,0), #FFFFFF);
  }
}

/* =========================
   Timeline v3.3 structure polish
   ========================= */

/* Timeline mode segmented control (Today & Upcoming / History) */
.timeline-toolbar{
  align-items:center;
  display:flex;
  flex-wrap:nowrap;
  gap:10px;
}
.timeline-mode-filter-wrap{
  position:relative;
  flex:1 1 auto;
  min-width:0;
}
.timeline-mode-filter{
  display:flex;
  flex-wrap:nowrap;
  gap:8px;
  width:auto;
  overflow-x:auto;
  overflow-y:hidden;
  white-space:nowrap;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding-bottom:2px;
}
.timeline-toolbar-actions{
  flex:0 0 auto;
  width:auto;
  margin-left:auto;
  display:flex;
  align-items:center;
  justify-content:flex-end;
}
.timeline-primary-add{
  min-height:44px;
  border:1px solid #2563EB !important;
  background:#2563EB !important;
  color:#fff !important;
  border-radius:12px !important;
  padding:.5rem .82rem !important;
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-weight:600;
  box-shadow:0 2px 10px rgba(2,6,23,.14);
}
.timeline-primary-add:hover{
  background:#1D4ED8 !important;
  border-color:#1D4ED8 !important;
}
.timeline-mode-filter::-webkit-scrollbar{ display:none; }
.timeline-mode-btn{
  flex:0 0 auto;
  min-height:44px;
  border:1px solid transparent;
  border-radius:999px;
  padding:.5rem .86rem;
  background:transparent;
  color:var(--muted);
  font-weight:600;
}
.timeline-mode-btn:hover{
  background:rgba(148,163,184,.05);
  color:var(--ink);
}
.timeline-mode-btn.active{
  background:rgba(37,99,235,.08);
  color:var(--ink);
  border-color:rgba(37,99,235,.22);
}
@media (max-width: 767.98px){
  .timeline-mode-filter-wrap{
    overflow:hidden;
  }
  .timeline-mode-filter-wrap::after{
    content:'';
    position:absolute;
    right:0;
    top:0;
    width:26px;
    height:100%;
    pointer-events:none;
    background:linear-gradient(90deg, rgba(11,18,32,0), var(--panel));
  }
  html[data-theme="light"] .timeline-mode-filter-wrap::after{
    background:linear-gradient(90deg, rgba(248,250,252,0), #F8FAFC);
  }
  .timeline-primary-add{
    padding:.48rem .72rem !important;
  }
}

/* Remove old insertion markers and decorative left dots */
.timeline-add,
.timeline-empty-row .timeline-add-btn,
.timeline-add-btn,
.timeline-dot{
  display:none !important;
}
.timeline-list{
  margin-left:0 !important;
  padding-left:0 !important;
  border-left:0 !important;
}

/* Trip groups become narrative blocks */
.timeline-trip-group{
  border-radius:14px;
  padding:2px;
  margin-bottom:16px;
}
html[data-theme="dark"] .timeline-trip-group{
  background:rgba(20,28,43,.82) !important;
}
html[data-theme="light"] .timeline-trip-group{
  background:rgba(248,250,252,.86) !important;
}
.timeline-trip-group-head{
  padding:12px 14px !important;
}
.timeline-trip-group-head-main{
  min-width:0;
  text-align:left;
}
.timeline-trip-group-head .title{
  font-size:.96rem;
  letter-spacing:.01em;
}
.timeline-trip-group-head .meta{
  font-size:.78rem;
  line-height:1.45;
}
.timeline-trip-group-head .next{
  margin-top:4px;
  font-size:.74rem;
  color:var(--muted);
}
.timeline-trip-group-body{
  padding:10px 12px 6px !important;
}

/* Promo/ancillary rows become subtle inline sections */
.timeline-item .timeline-addon,
.timeline-item .timeline-addon-cta{
  margin:10px 0 0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  font-size:.76rem;
}
.timeline-item .timeline-addon .label,
.timeline-item .timeline-addon-cta .label{
  font-weight:600;
}
.timeline-item .timeline-addon .meta,
.timeline-item .timeline-addon-cta .meta{
  color:var(--muted);
}
.timeline-item .timeline-addon .btn,
.timeline-item .timeline-addon-cta .btn{
  padding:.26rem .52rem !important;
  min-height:30px;
}

/* Final bar demotion */
.timeline-live-progress{
  height:2px !important;
}
.timeline-connection-track,
.slft-progress{
  height:2px !important;
}
html[data-theme="dark"] .timeline-connection-band.minimum{ background:rgba(239,68,68,.2); }
html[data-theme="dark"] .timeline-connection-band.ideal{ background:rgba(245,158,11,.18); }
html[data-theme="dark"] .timeline-connection-band.comfortable{ background:rgba(16,185,129,.2); }

/* Segment add-on tray (reusable for timeline + by-air cards) */
.timeline-item,
.flight-card{
  overflow:visible;
}
.timeline-item.has-addon-tray{
  margin-bottom:60px;
}
#pane-timeline:not(.timeline-density-compact) .timeline-item.has-addon-tray,
#pane-trip-detail:not(.timeline-density-compact) .timeline-item.has-addon-tray{
  margin-bottom:64px;
}
#pane-timeline.timeline-density-compact .timeline-item.has-addon-tray,
#pane-trip-detail.timeline-density-compact .timeline-item.has-addon-tray{
  margin-bottom:56px;
}
.segment-addon-tray{
  position:absolute;
  left:20px;
  right:20px;
  top:calc(100% + 3px);
  bottom:auto;
  margin:0;
  padding:8px 11px;
  border:1px solid var(--line);
  border-top:0;
  border-radius:0 0 16px 16px;
  background:rgba(148,163,184,.07);
  box-shadow:0 4px 12px rgba(2,6,23,.12);
  z-index:2;
}
html[data-theme="dark"] .segment-addon-tray{
  background:rgba(15,22,34,.9);
  border-color:rgba(255,255,255,.08);
  box-shadow:0 6px 14px rgba(2,6,23,.2);
}
html[data-theme="light"] .segment-addon-tray{
  background:rgba(246,248,252,.96);
  border-color:rgba(229,231,235,.7);
  box-shadow:0 4px 12px rgba(15,23,42,.08);
}
.segment-addon-list{
  display:flex;
  align-items:center;
  flex-wrap:nowrap;
  gap:11px;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  white-space:nowrap;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.segment-addon-list::-webkit-scrollbar{ display:none; }
.segment-addon-chip{
  flex:0 0 auto;
  height:29px;
  min-height:29px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:0 .78rem;
  border-radius:999px;
  border:1px solid rgba(148,163,184,.26);
  background:rgba(148,163,184,.08);
  color:var(--muted);
  text-decoration:none;
  font-size:.71rem;
  font-weight:600;
  line-height:1;
}
.segment-addon-chip i{
  color:currentColor;
  opacity:.9;
  font-size:.74rem;
}
.segment-addon-name{
  color:inherit;
}
.segment-addon-state{
  color:var(--muted);
  font-weight:600;
}
.segment-addon-chip.is-action:hover,
.segment-addon-chip.is-action:focus-visible,
.segment-addon-chip.is-placeholder-action:hover,
.segment-addon-chip.is-placeholder-action:focus-visible{
  color:#2563EB;
  border-color:rgba(37,99,235,.36);
  background:rgba(37,99,235,.08);
  outline:none;
}
.segment-addon-chip.is-placeholder-action{
  opacity:.88;
}
.segment-addon-chip.is-owned{
  color:#10B981;
  font-weight:700;
  border-color:rgba(16,185,129,.34);
  border-bottom-width:3px;
  border-bottom-color:#10B981;
  background:rgba(16,185,129,.08);
}
.segment-addon-chip.is-owned.is-action:hover,
.segment-addon-chip.is-owned.is-action:focus-visible{
  color:#10B981;
  border-color:rgba(16,185,129,.42);
  border-bottom-color:#10B981;
  background:rgba(16,185,129,.12);
}
html[data-theme="light"] .segment-addon-chip.is-owned{
  color:#047857;
  border-color:rgba(16,185,129,.45);
  border-bottom-color:#059669;
  background:rgba(16,185,129,.12);
}
html[data-theme="light"] .segment-addon-chip.is-owned.is-action:hover,
html[data-theme="light"] .segment-addon-chip.is-owned.is-action:focus-visible{
  color:#047857;
  border-color:rgba(16,185,129,.55);
  border-bottom-color:#059669;
  background:rgba(16,185,129,.16);
}
.segment-addon-state.is-active{
  color:#10B981;
}
.segment-addon-dot{
  width:6px;
  height:6px;
  border-radius:50%;
  background:#10B981;
  display:inline-block;
}
.segment-addon-spark{
  width:5px;
  height:5px;
  border-radius:50%;
  background:rgba(148,163,184,.55);
  display:inline-block;
}
@media (max-width: 767.98px){
  .timeline-item.has-addon-tray{
    margin-bottom:56px;
  }
  #pane-timeline:not(.timeline-density-compact) .timeline-item.has-addon-tray,
  #pane-trip-detail:not(.timeline-density-compact) .timeline-item.has-addon-tray{
    margin-bottom:60px;
  }
  #pane-timeline.timeline-density-compact .timeline-item.has-addon-tray,
  #pane-trip-detail.timeline-density-compact .timeline-item.has-addon-tray{
    margin-bottom:52px;
  }
  .segment-addon-tray{
    left:10px;
    right:10px;
    top:calc(100% + 2px);
    bottom:auto;
    padding:8px 10px;
  }
  .segment-addon-list{
    gap:10px;
  }
}

/* =========================
   Section subnav + add action standardization (Timeline + By Air/Rail/Sea/Road)
   ========================= */
.section-subnav .nav-link i,
.timeline-mode-nav .nav-link i,
.flight-split-tabs .nav-link i{
  color:currentColor !important;
}

/* Level 1: app sections (strongest) */
.top-menu-scroll .menu .nav-link{
  font-size:.94rem;
  font-weight:600;
  color:var(--ink) !important;
  opacity:.94;
}
.top-menu-scroll .menu .nav-link:not(.active){
  color:var(--muted) !important;
  opacity:.86;
}
.top-menu-scroll .menu .nav-link.active{
  color:var(--ink) !important;
  border-bottom:2.5px solid #2563EB !important;
  background:rgba(37,99,235,.06) !important;
}

.flight-split-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:nowrap;
}
.flight-split-head .flight-split-tabs{
  flex:1 1 auto;
  min-width:0;
  margin-bottom:0;
  display:flex;
  flex-wrap:nowrap !important;
  overflow-x:auto;
  overflow-y:hidden;
  white-space:nowrap;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  gap:8px;
}
.flight-split-head .flight-split-tabs::-webkit-scrollbar{ display:none; }
.flight-split-head .flight-split-tabs .nav-item{
  flex:0 0 auto;
}
.flight-split-tabs .nav-link{
  min-height:42px;
  border:1px solid transparent !important;
  border-radius:999px !important;
  background:transparent !important;
  color:var(--muted) !important;
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-right:0 !important;
  font-size:.84rem;
  font-weight:560;
  box-shadow:none !important;
  padding:.4rem .72rem !important;
}
.flight-split-tabs .nav-link:hover{
  background:rgba(148,163,184,.04) !important;
  border-color:rgba(148,163,184,.18) !important;
  color:var(--ink) !important;
}
.flight-split-tabs .nav-link.active{
  background:transparent !important;
  border-color:transparent !important;
  box-shadow:inset 0 -1px 0 #2563EB !important;
  color:#2563EB !important;
}
.flight-split-tabs .nav-link.active i{
  color:#2563EB !important;
}
/* Level 3 should be text-only */
.flight-split-tabs .nav-link i{
  display:none !important;
}

.section-add-btn,
.timeline-primary-add,
.flight-split-add{
  min-height:40px;
  border:1px solid #2563EB !important;
  background:#2563EB !important;
  color:#fff !important;
  border-radius:11px !important;
  padding:.43rem .72rem !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  font-size:.84rem;
  font-weight:580;
  line-height:1;
  white-space:nowrap;
  box-shadow:0 1px 4px rgba(2,6,23,.12);
}
.section-add-btn i,
.timeline-primary-add i,
.flight-split-add i{
  color:currentColor !important;
}
.section-add-btn:hover,
.timeline-primary-add:hover,
.flight-split-add:hover{
  background:#1D4ED8 !important;
  border-color:#1D4ED8 !important;
  color:#fff !important;
  box-shadow:0 2px 6px rgba(2,6,23,.14);
}

/* Level 2: view mode tabs (medium) */
.timeline-mode-shell{
  margin-top:6px;
}
.timeline-mode-nav .nav-link{
  min-height:42px;
  font-size:.87rem;
  font-weight:560;
  padding:.44rem .76rem;
}
.timeline-mode-nav .nav-link:hover{
  background:rgba(148,163,184,.04) !important;
  border-color:rgba(148,163,184,.2) !important;
  color:var(--ink) !important;
}
.timeline-mode-nav .nav-link.active{
  background:transparent !important;
  border-color:transparent !important;
  box-shadow:inset 0 -2px 0 #2563EB !important;
  color:#2563EB !important;
}
.timeline-mode-nav .nav-link.active i{
  color:#2563EB !important;
}

/* Level 3: scope filter (lightest) */
.timeline-mode-shell + .tab-content{
  margin-top:.62rem !important;
}
.timeline-toolbar{
  margin-bottom:10px !important;
  gap:8px;
}
.timeline-mode-filter{
  gap:6px;
}
.timeline-mode-btn{
  min-height:36px;
  padding:.31rem .64rem;
  border-radius:999px;
  border:1px solid transparent;
  background:transparent;
  color:var(--muted);
  font-size:.78rem;
  font-weight:560;
  letter-spacing:.01em;
}
.timeline-mode-btn:hover{
  background:rgba(148,163,184,.04);
  color:var(--ink);
}
.timeline-mode-btn.active{
  background:transparent;
  color:#2563EB;
  border-color:transparent;
  box-shadow:inset 0 -1px 0 #2563EB;
}

/* Further demote warning/danger emphasis in light mode */
html[data-theme="light"] .timeline-connection-band.minimum{ background:rgba(239,68,68,.18) !important; }
html[data-theme="light"] .timeline-connection-band.ideal{ background:rgba(245,158,11,.17) !important; }
html[data-theme="light"] .timeline-connection-band.comfortable{ background:rgba(16,185,129,.2) !important; }

#pane-timeline{
  overflow:visible !important;
}
#pane-tracker{
  overflow:visible !important;
}
.tab-content{
  overflow:visible;
}

@media (max-width: 767.98px){
  .section-add-btn,
  .timeline-primary-add,
  .flight-split-add{
    min-height:40px;
    border-radius:10px !important;
    padding:.42rem .66rem !important;
  }
  .timeline-mode-nav .nav-link{
    min-height:42px;
  }
  .timeline-mode-btn{
    min-height:35px;
    font-size:.77rem;
    padding:.3rem .58rem;
  }
}

/* =========================
   STATUS button tiers (canonical)
   ========================= */
:root{
  --btn-tier-primary-bg:#2563EB;
  --btn-tier-primary-bg-hover:#1D4ED8;
  --btn-tier-primary-ink:#FFFFFF;
  --btn-tier-secondary-bg:rgba(148,163,184,.10);
  --btn-tier-secondary-border:rgba(148,163,184,.28);
  --btn-tier-secondary-ink:var(--ink);
  --btn-tier-secondary-bg-hover:rgba(148,163,184,.16);
  --btn-tier-tertiary-ink:var(--muted);
  --btn-tier-tertiary-ink-hover:var(--ink);
  --btn-tier-danger:#EF4444;
  --btn-tier-danger-bg-hover:rgba(239,68,68,.12);
}
html[data-theme="light"]{
  --btn-tier-secondary-bg:rgba(248,250,252,.92);
  --btn-tier-secondary-border:rgba(148,163,184,.34);
  --btn-tier-secondary-ink:#1F2937;
  --btn-tier-secondary-bg-hover:rgba(226,232,240,.75);
  --btn-tier-tertiary-ink:#64748B;
  --btn-tier-tertiary-ink-hover:#334155;
  --btn-tier-danger-bg-hover:rgba(239,68,68,.10);
}

.btn-tier-primary,
.btn.btn-primary:not(.nav-link),
.btn.btn-commercial-cta,
.btn.timeline-primary-add,
.btn.flight-split-add{
  background:var(--btn-tier-primary-bg) !important;
  border:1px solid var(--btn-tier-primary-bg) !important;
  color:var(--btn-tier-primary-ink) !important;
  border-radius:11px !important;
  box-shadow:0 1px 4px rgba(2,6,23,.12) !important;
}
.btn-tier-primary:hover,
.btn-tier-primary:focus-visible,
.btn.btn-primary:not(.nav-link):hover,
.btn.btn-primary:not(.nav-link):focus-visible,
.btn.btn-commercial-cta:hover,
.btn.btn-commercial-cta:focus-visible,
.btn.timeline-primary-add:hover,
.btn.flight-split-add:hover{
  background:var(--btn-tier-primary-bg-hover) !important;
  border-color:var(--btn-tier-primary-bg-hover) !important;
  color:var(--btn-tier-primary-ink) !important;
  box-shadow:0 2px 6px rgba(2,6,23,.14) !important;
}

.btn-tier-secondary,
.btn.btn-outline-light:not(.nav-link):not(.btn-tier-tertiary):not(.btn-tier-destructive),
.btn.btn-outline-info:not(.nav-link):not(.btn-tier-tertiary):not(.btn-tier-destructive),
.btn.btn-outline-secondary:not(.nav-link):not(.btn-tier-tertiary):not(.btn-tier-destructive),
.btn.btn-outline-warning:not(.nav-link):not(.btn-tier-tertiary):not(.btn-tier-destructive),
.btn.btn-outline-success:not(.nav-link):not(.btn-tier-tertiary):not(.btn-tier-destructive){
  background:var(--btn-tier-secondary-bg) !important;
  border:1px solid var(--btn-tier-secondary-border) !important;
  color:var(--btn-tier-secondary-ink) !important;
  border-radius:10px !important;
  box-shadow:none !important;
}
.btn-tier-secondary:hover,
.btn-tier-secondary:focus-visible,
.btn.btn-outline-light:not(.nav-link):not(.btn-tier-tertiary):not(.btn-tier-destructive):hover,
.btn.btn-outline-info:not(.nav-link):not(.btn-tier-tertiary):not(.btn-tier-destructive):hover,
.btn.btn-outline-secondary:not(.nav-link):not(.btn-tier-tertiary):not(.btn-tier-destructive):hover,
.btn.btn-outline-warning:not(.nav-link):not(.btn-tier-tertiary):not(.btn-tier-destructive):hover,
.btn.btn-outline-success:not(.nav-link):not(.btn-tier-tertiary):not(.btn-tier-destructive):hover{
  background:var(--btn-tier-secondary-bg-hover) !important;
  border-color:rgba(37,99,235,.30) !important;
  color:var(--btn-tier-secondary-ink) !important;
}

.btn-tier-tertiary,
.btn.btn-link:not(.nav-link){
  background:transparent !important;
  border:1px solid transparent !important;
  color:var(--btn-tier-tertiary-ink) !important;
  box-shadow:none !important;
}
.btn-tier-tertiary:hover,
.btn-tier-tertiary:focus-visible,
.btn.btn-link:not(.nav-link):hover,
.btn.btn-link:not(.nav-link):focus-visible{
  background:rgba(148,163,184,.08) !important;
  color:var(--btn-tier-tertiary-ink-hover) !important;
}

.btn-tier-destructive,
.btn.btn-outline-danger:not(.nav-link){
  background:transparent !important;
  border:1px solid transparent !important;
  color:var(--btn-tier-danger) !important;
  box-shadow:none !important;
}
.btn-tier-destructive:hover,
.btn-tier-destructive:focus-visible,
.btn.btn-outline-danger:not(.nav-link):hover,
.btn.btn-outline-danger:not(.nav-link):focus-visible{
  background:var(--btn-tier-danger-bg-hover) !important;
  border-color:transparent !important;
  color:var(--btn-tier-danger) !important;
}

.btn-tier-primary i,
.btn-tier-secondary i,
.btn-tier-tertiary i,
.btn-tier-destructive i{
  color:currentColor !important;
}
.btn-tier-primary:disabled,
.btn-tier-secondary:disabled,
.btn-tier-tertiary:disabled,
.btn-tier-destructive:disabled{
  opacity:.56 !important;
  box-shadow:none !important;
}

.hotel-flight-banner{
  margin-top:10px;
  padding:8px 10px;
  border:1px solid #1f2a3a;
  border-radius:10px;
  background:#0c1524;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.hotel-flight-banner .text{
  font-size:1rem;
  font-weight:600;
  color:#cfe6ff;
}
.hotel-flight-banner .btn{
  white-space:nowrap;
}
.hotel-widget-mount{
  min-height:340px;
  border:1px solid rgba(148,163,184,.2);
  border-radius:12px;
  background:rgba(2,6,23,.35);
  padding:10px;
  overflow:auto;
}
.hotel-widget-mount .klk-aff-widget{
  display:block;
  width:100%;
}
html[data-theme="light"] .hotel-flight-banner{
  background:#ffffff;
  border-color:#e2e8f0;
  color:#1f2a44;
  box-shadow:0 6px 18px rgba(15,23,42,.08);
}
html[data-theme="light"] .hotel-flight-banner .text{
  color:#1f2a44;
}
html[data-theme="light"] .hotel-widget-mount{
  background:#f8fafc;
  border-color:#e2e8f0;
}

.hotel-results-shell{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.hotel-results-head{
  font-size:.88rem;
  color:#9fb3cc;
}
.hotel-results-loading{
  min-height:220px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.hotel-results-empty{
  min-height:120px;
  display:flex;
  align-items:center;
  color:#9fb3cc;
  font-size:.92rem;
}
.hotel-results-grid{
  display:grid;
  grid-template-columns:repeat(1, minmax(0, 1fr));
  gap:12px;
}
.hotel-result-card{
  border:1px solid rgba(148,163,184,.25);
  border-radius:12px;
  background:rgba(15,23,42,.55);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  min-height:100%;
}
.hotel-result-image-wrap{
  display:block;
  position:relative;
  height:160px;
  background:#0b1220;
  overflow:hidden;
}
.hotel-result-image{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.hotel-result-image-empty{
  width:100%;
  height:100%;
  background:linear-gradient(135deg,#0b1220,#1e293b);
}
.hotel-result-city{
  position:absolute;
  top:10px;
  left:10px;
  display:inline-flex;
  align-items:center;
  padding:4px 8px;
  border-radius:8px;
  background:rgba(15,23,42,.72);
  color:#e5eefb;
  font-size:.78rem;
  border:1px solid rgba(255,255,255,.2);
}
.hotel-result-body{
  padding:12px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.hotel-result-stay{
  font-size:.82rem;
  color:#78c8ff;
}
.hotel-result-name{
  color:#e8eef9;
  font-weight:700;
  text-decoration:none;
  line-height:1.3;
}
.hotel-result-name:hover{
  color:#9cd7ff;
}
.hotel-result-meta{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  color:#9fb3cc;
  font-size:.82rem;
}
.hotel-result-score{
  display:inline-flex;
  align-items:center;
  gap:4px;
  color:#fbbf24;
  font-weight:700;
}
.hotel-result-price{
  margin-top:4px;
  color:#dbe8fb;
  font-weight:700;
}
.hotel-results-footer{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
}
.hotel-results-more{
  min-width:160px;
  text-align:center;
}
.hotel-results-powered{
  color:#9fb3cc;
  font-size:.88rem;
  text-decoration:none;
}
.hotel-results-powered:hover{
  color:#dbe8fb;
}
@media (min-width:768px){
  .hotel-results-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}
@media (min-width:1200px){
  .hotel-results-grid{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
}
html[data-theme="light"] .hotel-results-head{
  color:#4b5563;
}
html[data-theme="light"] .hotel-result-card{
  background:#ffffff;
  border-color:#e2e8f0;
}
html[data-theme="light"] .hotel-result-city{
  background:rgba(15,23,42,.6);
}
html[data-theme="light"] .hotel-result-stay{
  color:#0ea5e9;
}
html[data-theme="light"] .hotel-result-name{
  color:#0f172a;
}
html[data-theme="light"] .hotel-result-name:hover{
  color:#1d4ed8;
}
html[data-theme="light"] .hotel-result-meta{
  color:#64748b;
}
html[data-theme="light"] .hotel-result-price{
  color:#0f172a;
}
html[data-theme="light"] .hotel-results-powered{
  color:#64748b;
}
html[data-theme="light"] .hotel-results-powered:hover{
  color:#0f172a;
}

/* Track-only segments: subtle visual treatment */
.timeline-item.timeline-item-track-only{
  border-style:dashed !important;
  opacity:.78;
}
.timeline-item.timeline-item-track-only:hover,
.timeline-item.timeline-item-track-only:focus-within{
  opacity:.9;
}
.transport-card.transport-card-track-only{
  border-style:dashed !important;
  opacity:.82;
}
.transport-card.transport-card-track-only:hover,
.transport-card.transport-card-track-only:focus-within{
  opacity:.92;
}
.flight-card-mini.track-only{
  border-style:dashed !important;
  opacity:.82;
}
.flight-card-mini.track-only:hover,
.flight-card-mini.track-only:focus-within{
  opacity:.92;
}

.trip-pane-actions{
  width:100%;
  display:flex;
  justify-content:flex-start;
}
@media (min-width:992px){
  .trip-pane-actions{
    width:auto;
    justify-content:flex-end;
  }
}
.trip-share-links-list{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.trip-share-invites-list,
.trip-share-members-list{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.trip-share-link-row{
  border:1px solid #223247;
  border-radius:10px;
  background:rgba(12,18,30,.55);
  padding:8px 10px;
}
.trip-share-invite-row,
.trip-share-member-row{
  border:1px solid #223247;
  border-radius:10px;
  background:rgba(12,18,30,.55);
  padding:8px 10px;
}
.trip-share-link-url{
  font-size:.78rem;
  word-break:break-all;
}
.trip-share-link-meta{
  font-size:.72rem;
  color:var(--muted);
}
.trip-share-target{
  font-size:.86rem;
}
.trip-share-status{
  display:inline-flex;
  align-items:center;
  padding:.14rem .5rem;
  border-radius:999px;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.01em;
  border:1px solid transparent;
  text-transform:uppercase;
}
.trip-share-status.pending{
  background:rgba(255,193,7,.18);
  color:#ffe39f;
  border-color:rgba(255,193,7,.42);
}
.trip-share-status.accepted{
  background:rgba(25,135,84,.2);
  color:#9de4be;
  border-color:rgba(25,135,84,.38);
}
.trip-share-status.revoked{
  background:rgba(220,53,69,.2);
  color:#ffb3ba;
  border-color:rgba(220,53,69,.35);
}
html[data-theme="light"] .trip-share-link-row{
  border-color:#d7e0ea;
  background:#ffffff;
}
html[data-theme="light"] .trip-share-invite-row,
html[data-theme="light"] .trip-share-member-row{
  border-color:#d7e0ea;
  background:#ffffff;
}
html[data-theme="light"] .trip-share-status.pending{
  color:#8a6d00;
}
html[data-theme="light"] .trip-share-status.accepted{
  color:#0f6b43;
}
html[data-theme="light"] .trip-share-status.revoked{
  color:#9b1c2a;
}

.timeline-time-mobile{
  display:none;
}

/* Mobile: keep timeline trip controls usable and show all card actions */
@media (max-width: 767.98px){
  #pane-timeline .timeline-item > .d-flex.justify-content-between.align-items-start,
  #pane-trip-detail .timeline-item > .d-flex.justify-content-between.align-items-start{
    flex-wrap:wrap;
  }

  #pane-timeline .timeline-item .text-end,
  #pane-trip-detail .timeline-item .text-end{
    width:100%;
    min-width:0;
    margin-top:.45rem;
  }

  #pane-timeline .timeline-item .text-end > .timeline-time,
  #pane-trip-detail .timeline-item .text-end > .timeline-time{
    display:none;
  }

  #pane-timeline .timeline-time-mobile,
  #pane-trip-detail .timeline-time-mobile{
    display:block;
    margin-top:.45rem;
    font-size:.92rem;
    line-height:1.35;
    text-align:left;
  }

  #pane-timeline .timeline-trip-controls,
  #pane-trip-detail .timeline-trip-controls{
    align-items:stretch;
    gap:.5rem;
  }

  #pane-timeline .timeline-trip-assign-wrap,
  #pane-trip-detail .timeline-trip-assign-wrap{
    width:100%;
  }

  #pane-timeline .timeline-trip-assign-wrap .form-select,
  #pane-trip-detail .timeline-trip-assign-wrap .form-select{
    width:100%;
    min-width:0;
    max-width:none;
  }

  #pane-timeline .timeline-trip-segment-row,
  #pane-trip-detail .timeline-trip-segment-row{
    width:100%;
    justify-content:stretch;
  }

  #pane-timeline .timeline-trip-participation-toggle,
  #pane-trip-detail .timeline-trip-participation-toggle{
    width:100%;
    justify-content:stretch;
  }

  #pane-timeline .timeline-trip-participation-btn,
  #pane-trip-detail .timeline-trip-participation-btn{
    flex:1 1 50%;
    text-align:center;
    padding:.32rem .5rem;
  }

  #pane-timeline .timeline-actions,
  #pane-trip-detail .timeline-actions,
  #pane-timeline .transport-card-tools,
  #pane-trip-detail .transport-card-tools{
    width:100%;
    flex-wrap:wrap;
    justify-content:center !important;
  }

  #pane-timeline .timeline-actions .btn,
  #pane-trip-detail .timeline-actions .btn,
  #pane-timeline .transport-card-tools .btn,
  #pane-trip-detail .transport-card-tools .btn{
    display:inline-flex !important;
  }
}
