:root {
 --bg-primary: #0a0a1a;
 --bg-card: #111128;
 --bg-card-alt: rgba(255,255,255,0.03);
 --accent-red: #e94560;
 --accent-teal: #00d4aa;
 --accent-gold: #f0c040;
 --accent-purple: #a78bfa;
 --text-primary: #ffffff;
 --text-secondary: rgba(255,255,255,0.7);
 --text-muted: rgba(255,255,255,0.5);
 --border: rgba(255,255,255,0.08);
 --border-strong: rgba(255,255,255,0.16);
 --alaska-blue: #1d4ed8;
 --venturex-purple: #6d28d9;
 --amex-green: #065f46;
 --chase-navy: #0f3b82;
 --citi-blue: #004a8f;
 --delta-red: #b91c1c;
 --united-blue: #1e40af;
 }

 *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
 html { scroll-behavior: smooth; }

 body {
 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
 background: var(--bg-primary);
 color: var(--text-primary);
 line-height: 1.6;
 font-size: 15px;
 -webkit-font-smoothing: antialiased;
 min-height: 100vh;
 }

 a { color: inherit; text-decoration: none; }
 button { font-family: inherit; cursor: pointer; }
 img { max-width: 100%; display: block; }

 /* ─── NAV ─── */
 .site-nav {
 position: sticky; top: 0; z-index: 50;
 background: rgba(10,10,26,0.95);
 backdrop-filter: blur(12px);
 border-bottom: 1px solid var(--border);
 }
 .nav-inner {
 max-width: 1280px; margin: 0 auto; padding: 0 24px;
 display: flex; align-items: center; justify-content: space-between; height: 60px;
 }
 .nav-logo { font-size: 1.35rem; font-weight: 900; letter-spacing: -0.02em; }
 .nav-logo span { color: var(--accent-red); }
 .nav-links { display: flex; align-items: center; gap: 28px; font-size: 0.875rem; font-weight: 600; }
 .nav-links a { color: var(--text-secondary); transition: color .15s; }
 .nav-links a:hover { color: #fff; }
 .nav-links a.active { color: #fff; border-bottom: 2px solid var(--accent-red); padding-bottom: 2px; }
 .nav-right { display: flex; align-items: center; gap: 12px; }
 .nav-user {
 font-size: .875rem; color: var(--text-secondary);
 padding: 6px 12px; border-radius: 8px;
 background: rgba(255,255,255,0.05);
 }
 .btn-signout {
 font-size: .8rem; color: var(--text-secondary);
 background: none; border: none; padding: 6px 0;
 }
 .btn-signout:hover { color: #fff; }

 @media (max-width: 768px) { .nav-links { display: none; } }

 /* ─── LAYOUT ─── */
 .dash-wrapper { max-width: 1280px; margin: 0 auto; padding: 32px 24px 80px; }

 .dash-header {
 display: flex; align-items: flex-end; justify-content: space-between;
 gap: 24px; margin-bottom: 32px; flex-wrap: wrap;
 }
 .dash-header h1 {
 font-size: clamp(1.8rem, 3.5vw, 2.5rem);
 font-weight: 800; letter-spacing: -0.02em;
 margin-bottom: 6px;
 }
 .dash-header p { color: var(--text-secondary); font-size: .95rem; }

 .dash-actions { display: flex; gap: 10px; flex-wrap: wrap; }

 .btn {
 display: inline-flex; align-items: center; gap: 8px;
 padding: 10px 20px; border-radius: 10px;
 font-weight: 700; font-size: .875rem;
 border: 1px solid var(--border); background: rgba(255,255,255,0.04);
 color: #fff; transition: background .15s, border-color .15s, transform .1s;
 }
 .btn:hover { background: rgba(255,255,255,0.08); border-color: var(--border-strong); }
 .btn:active { transform: translateY(1px); }
 .btn-primary {
 background: var(--accent-gold); color: #0a0a1a; border-color: transparent;
 }
 .btn-primary:hover { background: #e6b636; border-color: transparent; }
 .btn-red {
 background: var(--accent-red); color: #fff; border-color: transparent;
 }
 .btn-red:hover { background: #d63a54; }

 /* ─── KPI STRIP ─── */
 .kpi-strip {
 display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
 margin-bottom: 32px;
 }
 .kpi {
 background: var(--bg-card); border: 1px solid var(--border);
 border-radius: 14px; padding: 20px;
 }
 .kpi-label {
 font-size: .7rem; text-transform: uppercase; letter-spacing: 0.1em;
 color: var(--text-muted); margin-bottom: 6px; font-weight: 600;
 }
 .kpi-value { font-size: 1.75rem; font-weight: 800; letter-spacing: -0.02em; }
 .kpi-sub { font-size: .75rem; color: var(--text-muted); margin-top: 4px; }
 .kpi-value.teal { color: var(--accent-teal); }
 .kpi-value.gold { color: var(--accent-gold); }
 .kpi-value.muted { color: var(--text-muted); text-decoration: line-through; }
 .kpi-value.danger { color: #f87171; }
 #kpi-recovered.teal { color: #34d399; }
 #kpi-remaining.gold { color: #fbbf24; }
 #kpi-remaining.teal { color: #34d399; }
 #kpi-expiring.danger { color: #f87171; }

 @media (max-width: 860px) { .kpi-strip { grid-template-columns: repeat(2, 1fr); } }

 /* ─── SECTION ─── */
 .section {
 background: var(--bg-card); border: 1px solid var(--border);
 border-radius: 16px; padding: 24px; margin-bottom: 24px;
 }
 .section-header {
 display: flex; align-items: center; justify-content: space-between;
 margin-bottom: 16px; gap: 12px; flex-wrap: wrap;
 }
 .section-header h2 {
 font-size: 1.15rem; font-weight: 800; letter-spacing: -0.01em;
 }
 .section-header .count {
 font-size: .75rem; color: var(--text-muted);
 padding: 3px 10px; border-radius: 999px;
 background: rgba(255,255,255,0.06); margin-left: 10px;
 }

 .cards-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
 .card-item { background: var(--bg-card-alt); border: 1px solid var(--border); border-radius: 14px; padding: 18px; position: relative; transition: border-color .15s, transform .15s; cursor: pointer; }
 .card-item:hover { border-color: var(--border-strong); transform: translateY(-2px); }
 .card-item-head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
 .card-issuer-dot { width: 40px; height: 40px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: .75rem; font-weight: 800; color: #fff; letter-spacing: 0.05em; flex-shrink: 0; }
 .card-item-title { font-weight: 700; font-size: .95rem; line-height: 1.3; margin-bottom: 2px; }
 .card-item-sub { font-size: .75rem; color: var(--text-muted); }
 .card-progress-row { display: flex; justify-content: space-between; font-size: .75rem; margin-bottom: 6px; }
 .card-progress-row-tight { margin-bottom: 4px; }
 .card-progress-row .label { color: var(--text-muted); }
 .card-progress-row .val { color: #fff; font-weight: 600; }
 .card-progress-row .val.success { color: var(--accent-teal); }
 .card-progress-row .val.warn { color: var(--accent-gold); }
 .card-progress-row .val.danger { color: #ff9eae; }
 .progress-bar { height: 4px; background: rgba(255,255,255,0.08); border-radius: 4px; overflow: hidden; margin-bottom: 10px; }
 .progress-bar-thick { height: 8px; margin-bottom: 10px; }
 .progress-bar-fill { height: 100%; border-radius: 4px; transition: width .3s ease; }
 .progress-bar-fill.success { background: var(--accent-teal); }
 .progress-bar-fill.warn { background: var(--accent-gold); }
 .progress-bar-fill.danger { background: var(--accent-red); }

 .empty { text-align: center; padding: 48px 24px; }
 .empty-emoji { font-size: 2.5rem; margin-bottom: 10px; }
 .empty h3 { font-size: 1.15rem; font-weight: 700; margin-bottom: 6px; }
 .empty p { color: var(--text-secondary); font-size: .98rem; max-width: 420px; margin: 0 auto 20px; }
 .trips-list { display: flex; flex-direction: column; gap: 12px; }
 .trip-item { background: var(--bg-card-alt); border: 1px solid var(--border); border-radius: 12px; padding: 16px 20px; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; transition: border-color .15s, transform .15s; cursor: pointer; }
 .trip-item:hover { border-color: var(--border-strong); transform: translateY(-1px); }
 .trip-item-main { flex: 1; min-width: 200px; }
 .trip-item-name { font-weight: 700; font-size: 1rem; margin-bottom: 2px; }
 .trip-item-dates { font-size: .8rem; color: var(--text-muted); }
 .trip-item-stats { display: flex; gap: 20px; flex-wrap: wrap; }
 .trip-stat-label { font-size: .7rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: .05em; }
 .trip-stat-val { font-size: 1rem; font-weight: 700; }
 .trip-stat-val.teal { color: var(--accent-teal); }
 #world-map { height: 420px; width: 100%; min-height: 260px; border-radius: 12px; background: #0d0d22; }
 .leaflet-container { background: #0d0d22 !important; }
 .map-legend { display: flex; gap: 16px; flex-wrap: wrap; font-size: .75rem; color: var(--text-secondary); margin-top: 10px; }
 .map-legend .swatch { display: inline-block; width: 14px; height: 3px; border-radius: 2px; margin-right: 6px; vertical-align: middle; }
 .toast-host { position: fixed; bottom: 24px; right: 24px; z-index: 200; display: flex; flex-direction: column; gap: 10px; pointer-events: none; }
 .toast { background: #1a1a30; border: 1px solid var(--border-strong); border-radius: 10px; padding: 12px 18px; font-size: .875rem; color: #fff; box-shadow: 0 8px 24px rgba(0,0,0,0.4); pointer-events: auto; animation: slideIn .25s ease; }
 .toast.success { border-color: rgba(0,212,170,0.4); }
 .toast.error { border-color: rgba(233,69,96,0.4); }
 @keyframes slideIn { from { transform: translateX(20px); opacity: 0; } to { transform: translateX(0); opacity: 1; } }

 .auth-gate { max-width: 1280px; margin: 0 auto; padding: 32px 24px 80px; }
 .preview-hero { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 24px; align-items: stretch; margin-bottom: 24px; }
 .preview-copy, .preview-visual { background: var(--bg-card); border: 1px solid var(--border); border-radius: 18px; padding: 28px; }
 .preview-badge { display: inline-flex; align-items: center; padding: 5px 10px; border-radius: 999px; background: rgba(240,192,64,0.12); border: 1px solid rgba(240,192,64,0.25); color: var(--accent-gold); font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 14px; }
 .auth-gate h2 { font-size: clamp(2rem, 4vw, 3rem); margin-bottom: 10px; font-weight: 800; letter-spacing: -0.03em; line-height: 1.05; }
 .auth-gate p { color: var(--text-secondary); max-width: 640px; margin: 0 0 20px; font-size: .98rem; }
 .preview-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 8px; }
 .preview-actions-centered { justify-content: center; }
 .preview-micro { color: var(--text-muted); font-size: .84rem; margin-top: 10px; }
 .preview-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 26px 0 0; }
 .preview-kpi { background: var(--bg-card-alt); border: 1px solid var(--border); border-radius: 12px; padding: 14px; }
 .preview-kpi .label { font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; color: var(--text-muted); margin-bottom: 5px; font-weight: 700; }
 .preview-kpi .value { font-size: 1.2rem; font-weight: 800; }
 .preview-kpi .value.teal { color: var(--accent-teal); }
 .preview-kpi .value.gold { color: var(--accent-gold); }
 .preview-panel-title { font-size: 1rem; font-weight: 800; margin-bottom: 10px; }
 .preview-card-list, .preview-trip-list { display: grid; gap: 12px; }
 .preview-card, .preview-trip { background: var(--bg-card-alt); border: 1px solid var(--border); border-radius: 14px; padding: 14px; }
 .preview-card-head { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
 .preview-dot { width: 36px; height: 36px; border-radius: 9px; display:flex; align-items:center; justify-content:center; font-size: .75rem; font-weight: 800; color: #fff; }
 .preview-card-title, .preview-trip-title { font-weight: 700; font-size: .94rem; }
 .preview-card-sub, .preview-trip-sub { color: var(--text-muted); font-size: .78rem; }
 .preview-progress { height: 4px; background: rgba(255,255,255,0.08); border-radius: 999px; overflow: hidden; margin: 8px 0 6px; }
 .preview-progress > span { display:block; height:100%; background: var(--accent-gold); }
 .preview-chip-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
 .preview-chip { display: inline-flex; align-items: center; padding: 6px 10px; border-radius: 999px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.08); color: #fff; font-size: .74rem; font-weight: 700; }
 .preview-chip.gold { color: var(--accent-gold); border-color: rgba(240,192,64,0.18); background: rgba(240,192,64,0.10); }
 .preview-chip.teal { color: var(--accent-teal); border-color: rgba(0,212,170,0.18); background: rgba(0,212,170,0.10); }
 .preview-chip.red { color: #ff8fa3; border-color: rgba(233,69,96,0.20); background: rgba(233,69,96,0.10); }
 .tracker-hub-grid { display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap:16px; }
 .tracker-hub-card { display:block; background: var(--bg-card-alt); border:1px solid var(--border); border-radius:18px; padding:22px; }
 .tracker-hub-icon { font-size: 1.75rem; margin-bottom: 10px; }
 .tracker-hub-title { font-size: 1.2rem; font-weight: 800; margin-bottom: 8px; }
 .tracker-hub-copy { color: var(--text-secondary); font-size: .92rem; margin-bottom: 14px; }
 @media (max-width: 920px) { .preview-hero { grid-template-columns: 1fr; } }
 @media (max-width: 640px) {
 .dash-wrapper, .auth-gate { padding: 20px 16px 60px; }
 .section, .preview-copy, .preview-visual, .preview-bottom { padding: 18px; }
 .dash-header { flex-direction: column; align-items: flex-start; }
 .dash-actions, .preview-actions { width: 100%; }
 .dash-actions .btn, .preview-actions .btn { flex: 1; justify-content: center; }
 .preview-kpis, .tracker-hub-grid { grid-template-columns: 1fr; }
 }

 /* TRACKER HUB REDESIGN */
 body[data-tracker-view="hub"] { background: #0a0d14; color: #ffffff; }
 body[data-tracker-view="hub"] .site-nav { display: none; }
 .hub-mobile-shell,
 .cards-mobile-shell,
 .trips-mobile-shell {
  width: 100%;
  max-width: 480px;
  margin: 0 auto;
  padding: 18px 18px 120px;
  box-sizing: border-box;
 }
 body[data-tracker-view="hub"] .hub-mobile-shell {
  max-width: 1280px;
  padding: 16px 20px 96px;
 }
 .hub-mobile-topbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
 .hub-mobile-brand { font-family:'Fraunces', Georgia, serif; font-weight:700; font-size:1.6rem; letter-spacing:-0.03em; color:#fff; }
 .hub-mobile-brand span { color:#f0c040; font-style:italic; }
 .hub-mobile-avatar { width:38px; height:38px; border-radius:999px; display:flex; align-items:center; justify-content:center; font-size:.72rem; font-weight:700; color:#f0c040; background:linear-gradient(135deg,#2a3355 0%,#1a1f33 100%); border:1px solid rgba(255,255,255,.10); }
 .hub-mobile-greeting { margin-bottom:16px; }
 .hub-mobile-greeting-label { font-size:.72rem; color:rgba(255,255,255,.42); font-weight:500; letter-spacing:.04em; margin-bottom:4px; text-transform:uppercase; }
 .hub-mobile-greeting-text { font-family:'Fraunces', Georgia, serif; font-size:clamp(1.7rem,6vw,2rem); font-weight:600; letter-spacing:-.02em; line-height:1.15; color:#fff; }
 .hub-mobile-greeting-text em { font-style:italic; color:#f0c040; font-weight:700; }
 .hub-mobile-hero { position:relative; overflow:hidden; border-radius:28px; padding:24px 22px 22px; margin-bottom:24px; background:radial-gradient(circle at 90% 10%, rgba(240,192,64,.22), transparent 55%), radial-gradient(circle at 10% 90%, rgba(0,212,170,.14), transparent 55%), linear-gradient(145deg,#1a2040,#10162b); border:1px solid rgba(255,255,255,.10); }
 .hub-mobile-hero::before { content:""; position:absolute; inset:0; background-image:radial-gradient(rgba(255,255,255,.04) 1px, transparent 1px); background-size:18px 18px; opacity:.5; pointer-events:none; }
 .hub-mobile-hero-label,.hub-mobile-hero-amount,.hub-mobile-hero-sub,.hub-mobile-hero-row { position:relative; z-index:1; }
 .hub-mobile-hero-label { font-size:.66rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:#f0c040; margin-bottom:10px; }
 .hub-mobile-hero-amount { font-family:'Fraunces', Georgia, serif; font-size:clamp(2.8rem,11vw,3.4rem); font-weight:700; line-height:1; letter-spacing:-.04em; background:linear-gradient(135deg,#ffffff 0%,#f0c040 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; margin-bottom:8px; }
 .hub-mobile-hero-sub { font-size:.84rem; color:rgba(255,255,255,.72); font-weight:500; margin-bottom:20px; }
 .hub-mobile-hero-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; padding-top:18px; border-top:1px solid rgba(255,255,255,.08); }
 .hub-mobile-hero-stat-label { font-size:.66rem; font-weight:600; color:rgba(255,255,255,.42); text-transform:uppercase; letter-spacing:.08em; margin-bottom:5px; }
 .hub-mobile-hero-stat-value { font-family:'Fraunces', Georgia, serif; font-size:1.25rem; font-weight:700; letter-spacing:-.02em; color:#fff; }
 .hub-mobile-hero-stat-value.paid { color:#e94560; }
 .hub-mobile-section-head { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin:0 2px 14px; }
 .hub-mobile-section-title { font-family:'Fraunces', Georgia, serif; font-size:1.2rem; font-weight:700; letter-spacing:-.02em; }
 .hub-mobile-section-link { font-size:.8rem; font-weight:600; color:rgba(255,255,255,.42); }
 .hub-mobile-section-link::after { content:" ›"; color:#f0c040; }
 .hub-mobile-module,.hub-mobile-trip-module,.hub-mobile-bridge { border-radius:22px; border:1px solid rgba(255,255,255,.06); background:#151a2b; }
 .hub-mobile-module { padding:18px 18px 14px; margin-bottom:26px; position:relative; overflow:hidden; }
 .hub-mobile-module::before { content:""; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,transparent,#f0c040,transparent); opacity:.4; }
 .hub-mobile-module-top { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
 .hub-mobile-module-titlewrap { display:flex; align-items:center; gap:10px; min-width:0; }
 .hub-mobile-module-icon { width:38px; height:38px; border-radius:11px; display:flex; align-items:center; justify-content:center; font-size:18px; background:linear-gradient(135deg, rgba(240,192,64,.12), transparent); border:1px solid rgba(240,192,64,.22); }
 .hub-mobile-module-title { font-weight:700; font-size:.98rem; letter-spacing:-.01em; }
 .hub-mobile-module-subtitle { font-size:.72rem; color:rgba(255,255,255,.42); margin-top:2px; }
 .hub-mobile-badge { font-size:.66rem; font-weight:700; padding:5px 10px; border-radius:999px; background:rgba(233,69,96,.12); color:#e94560; text-transform:uppercase; letter-spacing:.04em; border:1px solid rgba(233,69,96,.25); white-space:nowrap; }
 .hub-mobile-cards-peek,.hub-mobile-trips-peek { display:flex; flex-direction:column; gap:10px; }
 .hub-mobile-cards-peek .peek-row,.hub-mobile-trips-peek .peek-row { display:grid; grid-template-columns:38px 1fr auto; gap:12px; align-items:center; min-height:62px; padding:10px 12px; border-radius:14px; background:#1c2239; border:1px solid rgba(255,255,255,.06); }
 .hub-mobile-cards-peek .peek-row.urgent,.hub-mobile-trips-peek .peek-row.urgent { border-color:rgba(233,69,96,.25); }
 .hub-mobile-cards-peek .peek-icon,.hub-mobile-trips-peek .peek-icon { width:38px; height:38px; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:1rem; background:linear-gradient(135deg, rgba(240,192,64,.15), rgba(0,212,170,.10)); border:1px solid rgba(255,255,255,.10); }
 .hub-mobile-cards-peek .peek-text,.hub-mobile-trips-peek .peek-text { font-size:.84rem; color:rgba(255,255,255,.72); line-height:1.35; }
 .hub-mobile-cards-peek .peek-text strong,.hub-mobile-trips-peek .peek-text strong { color:#fff; font-weight:600; display:block; margin-bottom:2px; }
 .hub-mobile-cards-peek .peek-muted,.hub-mobile-trips-peek .peek-muted { font-size:.68rem; color:rgba(255,255,255,.42); text-transform:uppercase; letter-spacing:.08em; text-align:right; }
 .hub-mobile-module-cta-row { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:14px; }
 .hub-mobile-module-cta,.hub-mobile-inline-link,.hub-mobile-trip-cta,.hub-mobile-bridge-cta { display:inline-flex; align-items:center; justify-content:center; min-height:44px; border-radius:14px; font-size:.84rem; font-weight:600; letter-spacing:-.01em; }
 .hub-mobile-module-cta { flex:1; color:#f0c040; background:rgba(240,192,64,.12); border:1px solid rgba(240,192,64,.20); }
 .hub-mobile-inline-link { color:rgba(255,255,255,.72); padding:0 12px; }
 .hub-mobile-trip-module { margin-bottom:26px; }
 .hub-mobile-trip-feature { position:relative; overflow:hidden; border-radius:22px; border:1px solid rgba(255,255,255,.10); min-height:220px; margin-bottom:12px; display:block; }
 .hub-mobile-trip-feature-bg { position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,13,20,.2) 0%, rgba(10,13,20,.92) 100%), linear-gradient(135deg,#1a3a4a 0%,#0f2235 60%,#0a0d14 100%); }
 .hub-mobile-trip-feature-svg { position:absolute; inset:0; width:100%; height:100%; opacity:.75; }
 .hub-mobile-trip-feature-content { position:relative; z-index:1; min-height:220px; padding:20px; display:flex; flex-direction:column; justify-content:space-between; }
 .hub-mobile-trip-feature-top { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
 .hub-mobile-trip-feature-label { display:inline-flex; align-items:center; gap:6px; padding:5px 10px; border-radius:999px; font-size:.62rem; font-weight:700; color:#00d4aa; background:rgba(0,212,170,.12); border:1px solid rgba(0,212,170,.25); text-transform:uppercase; letter-spacing:.2em; }
 .hub-mobile-trip-feature-label::before { content:""; width:5px; height:5px; border-radius:999px; background:#00d4aa; box-shadow:0 0 8px #00d4aa; }
 .hub-mobile-trip-feature-saved { font-family:'Fraunces', Georgia, serif; font-size:.9rem; font-weight:700; color:#00d4aa; }
 .hub-mobile-trip-feature-name { font-family:'Fraunces', Georgia, serif; font-size:1.5rem; font-weight:700; line-height:1.15; letter-spacing:-.025em; margin-bottom:4px; }
 .hub-mobile-trip-feature-meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:12px; font-size:.76rem; color:rgba(255,255,255,.72); }
 .hub-mobile-trip-feature-meta .dot { width:3px; height:3px; border-radius:999px; background:rgba(255,255,255,.42); }
 .hub-mobile-trip-feature-stats { display:flex; gap:18px; }
 .hub-mobile-trip-feature-stat-label { font-size:.6rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.42); margin-bottom:2px; }
 .hub-mobile-trip-feature-stat-value { font-family:'Fraunces', Georgia, serif; font-size:1.05rem; font-weight:700; letter-spacing:-.02em; }
 .hub-mobile-trip-feature-stat-value.teal { color:#00d4aa; }
 .hub-mobile-trip-feature-stat-value.gold { color:#f0c040; }
 .hub-mobile-trip-cta { display:block; width:100%; text-align:center; color:#00d4aa; background:rgba(0,212,170,.12); border:1px solid rgba(0,212,170,.20); }
 .hub-mobile-bridge { padding:20px; background:linear-gradient(145deg, rgba(233,69,96,.08), rgba(240,192,64,.04)), #151a2b; border-color:rgba(233,69,96,.20); }
 .hub-mobile-bridge-label { font-size:.7rem; font-weight:700; color:#e94560; text-transform:uppercase; letter-spacing:.15em; margin-bottom:8px; }
 .hub-mobile-bridge h3 { font-family:'Fraunces', Georgia, serif; font-size:1.25rem; font-weight:700; letter-spacing:-.02em; margin-bottom:8px; }
 .hub-mobile-bridge p { font-size:.9rem; line-height:1.55; color:rgba(255,255,255,.72); margin-bottom:16px; }
 .hub-mobile-bridge-cta { width:100%; color:#0a0d14; background:linear-gradient(135deg,#f0c040,#d9a830); box-shadow:0 4px 16px rgba(240,192,64,.24); }

 /* TRACKER CARDS REDESIGN */
 body[data-tracker-view="cards"] {
  --ct-bg: #0b0d12;
  --ct-surface-1: #17191f;
  --ct-surface-2: #1d2028;
  --ct-surface-hi: #252933;
  --ct-border: rgba(255,255,255,0.10);
  --ct-border-strong: rgba(255,255,255,0.18);
  --ct-text: #f5f6fa;
  --ct-text-dim: rgba(245,246,250,0.68);
  --ct-text-faint: rgba(245,246,250,0.48);
  --ct-success: #22c55e;
  --ct-success-soft: rgba(34,197,94,0.16);
  --ct-success-line: rgba(34,197,94,0.38);
  --ct-danger: #f87171;
  --ct-danger-soft: rgba(248,113,113,0.16);
  --ct-danger-line: rgba(248,113,113,0.36);
  --ct-warn: #fbbf24;
  --ct-warn-soft: rgba(251,191,36,0.15);
  --ct-warn-line: rgba(251,191,36,0.34);
  --ct-radius-md: 10px;
  --ct-radius-lg: 14px;
  background: #0a0d14;
  color: #ffffff;
 }
 body[data-tracker-view="cards"] .site-nav { display: none; }
 .cards-mobile-nav { display:flex; align-items:center; justify-content:space-between; margin-bottom: 12px; }
 .cards-mobile-nav-btn { width:40px; height:40px; border-radius:12px; background:#151a2b; border:1px solid rgba(255,255,255,.06); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.68); }
 .cards-mobile-nav-btn svg { width:18px; height:18px; stroke-width:2; }
 .cards-mobile-nav-btn.add { background:rgba(240,192,64,.12); border-color:rgba(240,192,64,.25); color:#f0c040; }
 .cards-mobile-nav-title { font-family:'Fraunces', Georgia, serif; font-size:1.12rem; font-weight:700; letter-spacing:-.02em; }
 .cards-mobile-hero { position:relative; border-radius:28px; padding:24px 22px 20px; margin-bottom:14px; background:radial-gradient(circle at 90% 10%, rgba(240,192,64,.24), transparent 55%), radial-gradient(circle at 5% 95%, rgba(0,212,170,.10), transparent 55%), linear-gradient(145deg,#1a2040,#10162b); border:1px solid rgba(255,255,255,.10); overflow:hidden; }
 .cards-mobile-hero::before { content:""; position:absolute; inset:0; background-image:radial-gradient(rgba(255,255,255,.04) 1px, transparent 1px); background-size:18px 18px; opacity:.5; pointer-events:none; }
 .cards-mobile-hero-label,.cards-mobile-hero-amount,.cards-mobile-hero-sub,.cards-mobile-hero-bar-wrap { position:relative; z-index:1; }
 .cards-mobile-hero-label { font-size:.66rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:#f0c040; margin-bottom:10px; display:flex; align-items:center; gap:8px; }
 .cards-mobile-hero-label .pill { font-family:inherit; padding:3px 8px; font-size:.6rem; letter-spacing:.06em; background:rgba(0,212,170,.14); color:#00d4aa; border:1px solid rgba(0,212,170,.25); border-radius:999px; }
 .cards-mobile-hero-amount { font-family:'Fraunces', Georgia, serif; font-weight:700; font-size:clamp(2.8rem,11vw,3.25rem); letter-spacing:-.035em; line-height:1; background:linear-gradient(135deg,#fff 0%,#f0c040 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; margin-bottom:6px; }
 .cards-mobile-hero-sub { font-size:.84rem; color:rgba(255,255,255,.72); font-weight:500; margin-bottom:18px; }
 .cards-mobile-hero-sub strong { color:#fff; font-weight:600; }
 .cards-mobile-hero-bar-wrap { padding-top:18px; border-top:1px solid rgba(255,255,255,.06); }
 .cards-mobile-hero-bar-labels { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:8px; }
 .cards-mobile-hero-bar-title { font-size:.68rem; color:rgba(255,255,255,.42); font-weight:600; text-transform:uppercase; letter-spacing:.1em; }
 .cards-mobile-hero-bar-ratio { font-family:'Fraunces', Georgia, serif; font-size:.92rem; font-weight:700; color:#00d4aa; }
 .cards-mobile-hero-bar { height:6px; background:rgba(255,255,255,.06); border-radius:999px; overflow:hidden; }
 .cards-mobile-hero-bar-fill { height:100%; background:linear-gradient(90deg,#00d4aa 0%, #f0c040 100%); border-radius:999px; box-shadow:0 0 12px rgba(0,212,170,.35); }
 .cards-mobile-hero-bar-foot { margin-top:9px; font-size:.74rem; color:rgba(255,255,255,.54); }
 .cards-mobile-kpi-row { margin:0 -18px 26px; padding:0 18px 4px; display:flex; gap:10px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
 .cards-mobile-kpi-row::-webkit-scrollbar { display:none; }
 .cards-mobile-kpi { flex:0 0 auto; min-width:138px; padding:14px 16px; background:#151a2b; border:1px solid rgba(255,255,255,.06); border-radius:16px; scroll-snap-align:start; }
 .cards-mobile-kpi-icon { width:26px; height:26px; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:13px; margin-bottom:10px; }
 .cards-mobile-kpi-icon.gold { background:rgba(240,192,64,.12); border:1px solid rgba(240,192,64,.25); color:#f0c040; }
 .cards-mobile-kpi-icon.teal { background:rgba(0,212,170,.12); border:1px solid rgba(0,212,170,.25); color:#00d4aa; }
 .cards-mobile-kpi-icon.red { background:rgba(233,69,96,.12); border:1px solid rgba(233,69,96,.25); color:#e94560; }
 .cards-mobile-kpi-icon.neutral { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.06); color:rgba(255,255,255,.68); }
 .cards-mobile-kpi-value { font-family:'Fraunces', Georgia, serif; font-size:1.35rem; font-weight:700; letter-spacing:-.02em; line-height:1; margin-bottom:4px; }
 .cards-mobile-kpi-value.gold { color:#f0c040; }
 .cards-mobile-kpi-value.teal { color:#00d4aa; }
 .cards-mobile-kpi-value.red { color:#e94560; }
 .cards-mobile-kpi-value.white { color:#fff; }
 .cards-mobile-kpi-label { font-size:.66rem; color:rgba(255,255,255,.42); font-weight:600; letter-spacing:.06em; text-transform:uppercase; }
 .cards-mobile-kpi-sub { margin-top:4px; font-size:.72rem; color:rgba(255,255,255,.42); }
 .cards-mobile-section-head { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:14px; padding:0 2px; gap:12px; }
 .cards-mobile-section-title { font-family:'Fraunces', Georgia, serif; font-size:1.2rem; font-weight:700; letter-spacing:-.02em; color:#fff; }
 .cards-mobile-section-title .count { font-family:Inter, sans-serif; font-size:.72rem; color:rgba(255,255,255,.42); font-weight:500; margin-left:6px; }
 .cards-mobile-section-link { font-size:.8rem; font-weight:600; color:rgba(255,255,255,.42); }
 .cards-mobile-section-link::after { content:" ›"; color:#f0c040; }
 .cards-mobile-attention { background:#151a2b; border:1px solid rgba(255,255,255,.06); border-radius:20px; padding:6px; margin-bottom:28px; position:relative; overflow:hidden; }
 .cards-mobile-attention::before { content:""; position:absolute; top:0; left:0; right:0; height:1.5px; background:linear-gradient(90deg, transparent, #e94560 30%, #e94560 70%, transparent); opacity:.5; }
 .cards-mobile-alert-list { display:flex; flex-direction:column; }
 .cards-alert-row { display:grid; grid-template-columns: 38px minmax(0,1fr) auto; gap:12px; align-items:center; padding:14px; border-bottom:1px solid rgba(255,255,255,.06); min-height:68px; }
 .cards-alert-row:last-child { border-bottom:none; }
 .cards-alert-dot { width:38px; height:38px; border-radius:11px; display:flex; align-items:center; justify-content:center; position:relative; background:rgba(255,255,255,.05); }
 .cards-alert-dot::before { content:""; width:16px; height:16px; border-radius:999px; background:currentColor; opacity:.2; }
 .cards-alert-dot.urgent { background:rgba(233,69,96,.12); color:#e94560; border:1px solid rgba(233,69,96,.25); }
 .cards-alert-dot.ok { background:rgba(240,192,64,.12); color:#f0c040; border:1px solid rgba(240,192,64,.25); }
 .cards-alert-dot.urgent::after { content:""; position:absolute; top:-3px; right:-3px; width:9px; height:9px; background:#e94560; border:2px solid #151a2b; border-radius:50%; }
 .cards-alert-tag,.cards-alert-amount,.cards-alert-timer { display:none; }
 .cards-alert-name { font-size:.9rem; font-weight:600; color:#fff; line-height:1.35; }
 .cards-alert-actions { display:flex; flex-direction:column; gap:8px; align-items:flex-end; }
 .cards-btn-sm { font-size:.72rem; font-weight:600; padding:7px 12px; border-radius:10px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.10); color:#fff; white-space:nowrap; }
 .cards-mobile-featured { position:relative; border-radius:24px; padding:0; margin-bottom:20px; overflow:hidden; border:1px solid rgba(0,212,170,.3); background:radial-gradient(circle at 100% 0%, rgba(0,212,170,.2), transparent 55%), radial-gradient(circle at 0% 100%, rgba(240,192,64,.12), transparent 55%), linear-gradient(145deg,#0f2a2e,#0f1320); cursor:pointer; }
 .cards-mobile-featured-inner { padding:20px 20px 18px; position:relative; }
 .cards-mobile-featured-watermark { position:absolute; top:14px; right:14px; width:90px; height:58px; border-radius:10px; border:1px solid rgba(0,212,170,.25); background:linear-gradient(135deg, rgba(0,212,170,.15), rgba(0,212,170,.02)); transform:rotate(-14deg); opacity:.45; pointer-events:none; }
 .cards-mobile-featured-watermark::before { content:""; position:absolute; top:10px; left:10px; width:16px; height:12px; border-radius:3px; background:rgba(240,192,64,.5); }
 .cards-mobile-featured-label { font-size:.62rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:#00d4aa; display:inline-flex; align-items:center; gap:6px; margin-bottom:14px; }
 .cards-mobile-featured-label::before { content:"★"; color:#00d4aa; font-size:11px; }
 .cards-mobile-featured-row { display:flex; align-items:center; gap:14px; margin-bottom:14px; }
 .cards-mobile-featured-chip { width:48px; height:48px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:12px; letter-spacing:.04em; color:#fff; flex-shrink:0; background:linear-gradient(135deg,#0c447c 0%, #062f5b 100%); box-shadow:0 4px 14px rgba(12,68,124,.4); }
 .cards-mobile-featured-title { font-family:'Fraunces', Georgia, serif; font-size:1.05rem; font-weight:700; letter-spacing:-.02em; line-height:1.2; margin-bottom:3px; }
 .cards-mobile-featured-sub { font-size:.72rem; color:rgba(255,255,255,.42); }
 .cards-mobile-featured-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; padding-top:14px; border-top:1px solid rgba(255,255,255,.07); }
 .cards-mobile-stack-head { margin-top: 28px; }
 .cards-mobile-tracking-group { display:flex; flex-direction:column; gap:8px; margin-bottom:28px; }
 .cards-mobile-tracking-empty { padding:14px; border:1px solid rgba(255,255,255,.06); border-radius:14px; color:rgba(255,255,255,.42); font-size:.84rem; }
 .cards-mobile-add-cta { display:flex; align-items:center; justify-content:center; gap:8px; padding:16px; font-size:.9rem; font-weight:600; color:#f0c040; background:rgba(240,192,64,.12); border:1px dashed rgba(240,192,64,.25); border-radius:16px; letter-spacing:-.01em; margin-bottom:20px; }
 .cards-mobile-add-cta svg { width:18px; height:18px; stroke-width:2.4; }
 .card-redesign {
  background: var(--ct-surface-2);
  border: 1px solid var(--ct-border);
  border-radius: var(--ct-radius-lg);
  padding: 16px;
  cursor: pointer;
  transition: border-color .15s, transform .12s, box-shadow .15s;
 }
 .card-redesign:hover {
  border-color: var(--ct-border-strong);
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(0,0,0,0.35);
 }
 .card-redesign.card-winning {
  border-color: var(--ct-success-line) !important;
  box-shadow: 0 0 0 1px var(--ct-success-line) inset, 0 6px 24px rgba(34,197,94,0.10);
 }
 .card-redesign-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
 }
 .card-redesign-issuer {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
 }
 .card-redesign-dot {
  width: 36px;
  height: 36px;
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  flex-shrink: 0;
  color: #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
 }
 .card-redesign-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--ct-text) !important;
  line-height: 1.3;
 }
 .card-redesign-fee {
  font-size: 12px;
  color: var(--ct-text-dim);
  margin-top: 2px;
 }
 .card-redesign-status {
  font-size: 11px;
  padding: 3px 10px;
  border-radius: 999px;
  white-space: nowrap;
  border: 1px solid transparent;
  font-weight: 600;
  flex-shrink: 0;
 }
 .card-redesign-status.ahead {
  background: var(--ct-success-soft);
  color: var(--ct-success);
  border-color: var(--ct-success-line);
 }
 .card-redesign-status.behind {
  background: var(--ct-danger-soft);
  color: var(--ct-danger);
  border-color: var(--ct-danger-line);
 }
 .card-redesign-status.neutral {
  background: var(--ct-surface-hi);
  color: var(--ct-text-dim);
  border-color: var(--ct-border);
 }
 .card-redesign-bonus {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  font-size: 12px;
 }
 .card-redesign-bonus-check { color: var(--ct-success); font-weight: 700; }
 .card-redesign-bonus-label { color: var(--ct-text-dim); flex: 1; }
 .card-redesign-bonus-val { font-weight: 600; color: var(--ct-text) !important; }
 .card-redesign-progress-wrap { margin: 8px 0 12px; }
 .card-redesign-progress-labels {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: var(--ct-text-dim);
  margin-bottom: 6px;
 }
 .card-redesign-bar {
  height: 5px;
  border-radius: 999px;
  background: rgba(255,255,255,0.08);
  overflow: hidden;
 }
 .card-redesign-bar-fill {
  height: 100%;
  border-radius: 999px;
  transition: width .3s ease;
 }
 .card-redesign-bar-fill.green { background: var(--ct-success) !important; }
 .card-redesign-bar-fill.amber { background: var(--ct-warn); }
 .card-redesign-bar-fill.danger { background: var(--ct-danger) !important; }
 .card-redesign-divider {
  border: 0;
  border-top: 1px solid var(--ct-border);
  margin: 10px 0;
 }
 .card-redesign-credits-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--ct-text-faint);
  margin-bottom: 8px;
  font-weight: 600;
 }
 .card-redesign-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
 }
 .card-redesign-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  padding: 4px 9px;
  border-radius: 7px;
  border: 1px solid transparent;
  font-weight: 500;
 }
 .card-redesign-pill.urgent {
  background: var(--ct-danger-soft);
  color: var(--ct-danger);
  border-color: var(--ct-danger-line);
 }
 .card-redesign-pill.soon {
  background: var(--ct-warn-soft);
  color: var(--ct-warn);
  border-color: var(--ct-warn-line);
 }
 .card-redesign-pill.ok {
  background: var(--ct-surface-hi);
  color: var(--ct-text-dim);
  border-color: var(--ct-border);
 }
 .card-redesign-pill.more {
  background: transparent;
  color: var(--ct-text-faint);
  border-color: var(--ct-border);
  cursor: pointer;
 }
 .card-redesign-footer {
  margin-top: 12px;
  display: flex;
  gap: 8px;
 }
 .card-redesign-btn-view,
 .card-redesign-btn-trip {
  flex: 1;
  text-align: center;
  font-size: 12px;
  padding: 8px 10px;
  border-radius: 9px;
  text-decoration: none;
  border: 1px solid var(--ct-border-strong);
  font-weight: 500;
  transition: background .12s, border-color .12s;
 }
 .card-redesign-btn-view {
  background: transparent;
  color: var(--ct-text);
 }
 .card-redesign-btn-view:hover {
  background: rgba(255,255,255,0.06);
  border-color: rgba(255,255,255,0.28);
 }
 .card-redesign-btn-trip {
  background: rgba(255,255,255,0.04);
  color: var(--ct-text);
 }
 .card-redesign-btn-trip:hover {
  background: rgba(255,255,255,0.10);
  border-color: rgba(255,255,255,0.28);
 }
 @media (min-width: 641px) and (max-width: 960px) { .cards-redesign-grid { grid-template-columns: 1fr; } }

 /* TRACKER TRIPS REDESIGN */
 body[data-tracker-view="trips"] { background: #0a0d14; color: #ffffff; }
 body[data-tracker-view="trips"] .site-nav { display: none; }
 .trips-mobile-nav { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
 .trips-mobile-nav-btn { width:40px; height:40px; border-radius:12px; background:#151a2b; border:1px solid rgba(255,255,255,.06); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.68); }
 .trips-mobile-nav-btn svg { width:18px; height:18px; stroke-width:2; }
 .trips-mobile-nav-btn.add { background:rgba(0,212,170,.12); border-color:rgba(0,212,170,.25); color:#00d4aa; }
 .trips-mobile-nav-title { font-family:'Fraunces', Georgia, serif; font-size:1.12rem; font-weight:700; letter-spacing:-.02em; }
 .trips-world-hero { position:relative; border-radius:28px; overflow:hidden; margin-bottom:14px; border:1px solid rgba(255,255,255,.10); background:radial-gradient(circle at 70% 20%, rgba(0,212,170,.18), transparent 50%), radial-gradient(circle at 30% 80%, rgba(240,192,64,.12), transparent 50%), linear-gradient(165deg,#0f2235 0%, #0a0d14 70%); min-height:280px; }
 .trips-world-hero::before { content:""; position:absolute; inset:0; background-image:radial-gradient(rgba(255,255,255,.05) 1px, transparent 1px); background-size:14px 14px; opacity:.4; pointer-events:none; }
 .trips-world-hero-inner { position:relative; padding:20px 22px 18px; min-height:280px; display:flex; flex-direction:column; justify-content:space-between; }
 .trips-world-top { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; position:relative; z-index:2; }
 .trips-world-label { font-size:.66rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:#00d4aa; display:inline-flex; align-items:center; gap:8px; margin-bottom:8px; }
 .trips-world-label::before { content:""; width:5px; height:5px; border-radius:50%; background:#00d4aa; box-shadow:0 0 8px #00d4aa; }
 .trips-world-title { font-family:'Fraunces', Georgia, serif; font-size:1.45rem; font-weight:700; letter-spacing:-.025em; line-height:1.12; margin-bottom:2px; }
 .trips-world-title em { font-style:italic; color:#f0c040; }
 .trips-world-sub { font-size:.76rem; color:rgba(255,255,255,.42); margin-bottom:16px; }
 .trips-world-fullscreen { width:36px; height:36px; border-radius:10px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.10); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.68); flex-shrink:0; }
 .trips-world-fullscreen svg { width:16px; height:16px; stroke-width:2; }
 .trips-world-map-wrap { position:relative; flex:1; min-height:140px; margin:0 -4px 14px; border-radius:20px; overflow:hidden; }
 .trips-world-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; padding-top:14px; border-top:1px solid rgba(255,255,255,.07); position:relative; z-index:2; }
 .trip-card { background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.08); border-radius:22px; padding:16px; margin-bottom:14px; overflow:hidden; }
 .trip-card .tc-top { display:grid; grid-template-columns:auto 1fr auto; gap:14px; align-items:flex-start; }
 .trip-card .tc-thumb { width:56px; height:56px; border-radius:16px; display:flex; align-items:center; justify-content:center; position:relative; font-size:1.4rem; flex-shrink:0; }
 .trip-card .tc-thumb.cruise { background:linear-gradient(180deg, rgba(0,212,170,.18), rgba(0,212,170,.06)); }
 .trip-card .tc-thumb.beach { background:linear-gradient(180deg, rgba(240,192,64,.18), rgba(240,192,64,.06)); }
 .trip-card .tc-thumb.city { background:linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.04)); }
 .trip-card .tc-thumb.mountain { background:linear-gradient(180deg, rgba(233,69,96,.18), rgba(233,69,96,.06)); }
 .trip-card .tc-legs-badge { position:absolute; right:-4px; bottom:-4px; min-width:24px; height:24px; padding:0 6px; border-radius:999px; display:flex; align-items:center; justify-content:center; background:#0a0d14; border:1px solid rgba(255,255,255,.10); color:#fff; font-size:.68rem; font-weight:700; }
 .trip-card .tc-info { min-width:0; }
 .trip-card .tc-countdown { font-size:.72rem; font-weight:700; color:#f0c040; margin-bottom:4px; letter-spacing:.04em; text-transform:uppercase; }
 .trip-card .tc-name { font-family:'Fraunces', Georgia, serif; font-size:1.15rem; font-weight:700; line-height:1.15; color:#fff; word-break:break-word; overflow-wrap:anywhere; }
 .trip-card .tc-meta { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-top:6px; font-size:.74rem; color:rgba(255,255,255,.58); }
 .trip-card .tc-meta .dot { width:4px; height:4px; border-radius:999px; background:rgba(255,255,255,.24); }
 .trip-card .tc-destinations { margin-top:6px; font-size:.8rem; color:rgba(255,255,255,.68); line-height:1.35; word-break:break-word; overflow-wrap:anywhere; }
 .trip-card .tc-saved-block { text-align:right; min-width:74px; }
 .trip-card .tc-saved-val { font-family:'Fraunces', Georgia, serif; font-size:1.2rem; font-weight:700; color:#00d4aa; line-height:1; }
 .trip-card .tc-saved-lbl { font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; color:rgba(255,255,255,.42); margin-top:5px; }
 .trip-card .tc-route { margin:14px 0 12px; opacity:.92; overflow:hidden; }
 .trip-card .tc-route svg { width:100%; height:42px; display:block; }
 .trip-card .tc-stats { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:10px; padding-top:12px; border-top:1px solid rgba(255,255,255,.07); align-items:end; }
 .trip-card .tcs-item { min-width:0; }
 .trip-card .tcs-val { font-family:'Fraunces', Georgia, serif; font-size:1rem; font-weight:700; color:#fff; line-height:1.1; word-break:break-word; overflow-wrap:anywhere; }
 .trip-card .tcs-val.teal { color:#00d4aa; }
 .trip-card .tcs-val.gold { color:#f0c040; }
 .trip-card .tcs-label { font-size:.64rem; text-transform:uppercase; letter-spacing:.08em; color:rgba(255,255,255,.42); margin-top:4px; }
 .trip-card .tc-stats-link { justify-self:end; align-self:center; font-size:.82rem; font-weight:700; color:#f0c040; white-space:nowrap; }
 .trips-world-stat-val { font-family:'Fraunces', Georgia, serif; font-size:1.25rem; font-weight:700; letter-spacing:-.02em; line-height:1; margin-bottom:4px; }
 .trips-world-stat-val.teal { color:#00d4aa; }
 .trips-world-stat-val.gold { color:#f0c040; }
 .trips-world-stat-val.white { color:#fff; }
 .trips-world-stat-label { font-size:.6rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.42); }
 .trips-map-legend { padding: 0 22px 16px; position:relative; z-index:2; }
 .trips-map-legend .map-legend { margin-top:0; }
 .trips-mobile-kpi-row { margin:0 -18px 26px; padding:0 18px 4px; display:flex; gap:10px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
 .trips-mobile-kpi-row::-webkit-scrollbar { display:none; }
 .trips-mobile-kpi { flex:0 0 auto; min-width:130px; padding:14px 16px; background:#151a2b; border:1px solid rgba(255,255,255,.06); border-radius:16px; scroll-snap-align:start; }
 .trips-mobile-kpi-icon { width:26px; height:26px; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:13px; margin-bottom:10px; }
 .trips-mobile-kpi-icon.teal { background:rgba(0,212,170,.12); border:1px solid rgba(0,212,170,.25); color:#00d4aa; }
 .trips-mobile-kpi-icon.gold { background:rgba(240,192,64,.12); border:1px solid rgba(240,192,64,.25); color:#f0c040; }
 .trips-mobile-kpi-icon.red { background:rgba(233,69,96,.12); border:1px solid rgba(233,69,96,.25); color:#e94560; }
 .trips-mobile-kpi-icon.neutral { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.06); color:rgba(255,255,255,.68); }
 .trips-mobile-kpi-value { font-family:'Fraunces', Georgia, serif; font-size:1.35rem; font-weight:700; letter-spacing:-.02em; line-height:1; margin-bottom:4px; }
 .trips-mobile-kpi-value.teal { color:#00d4aa; }
 .trips-mobile-kpi-value.gold { color:#f0c040; }
 .trips-mobile-kpi-value.red { color:#e94560; }
 .trips-mobile-kpi-value.white { color:#fff; }
 .trips-mobile-kpi-label { font-size:.66rem; color:rgba(255,255,255,.42); font-weight:600; letter-spacing:.06em; text-transform:uppercase; }
 .trips-mobile-kpi-sub { margin-top:4px; font-size:.72rem; color:rgba(255,255,255,.42); }
 .trips-mobile-section-head { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:14px; padding:0 2px; gap:12px; }
 .trips-mobile-section-title { font-family:'Fraunces', Georgia, serif; font-size:1.2rem; font-weight:700; letter-spacing:-.02em; color:#fff; }
 .trips-mobile-section-title .count { font-family:Inter, sans-serif; font-size:.72rem; color:rgba(255,255,255,.42); font-weight:500; margin-left:6px; }
 .trips-mobile-section-link { font-size:.8rem; font-weight:600; color:rgba(255,255,255,.42); }
 .trips-mobile-section-link::after { content:" ›"; color:#f0c040; }
 .trips-mobile-filters { display:flex; gap:8px; margin-bottom:16px; overflow-x:auto; scrollbar-width:none; padding:0 2px 2px; margin-left:-2px; margin-right:-2px; }
 .trips-mobile-filters::-webkit-scrollbar { display:none; }
 .trips-mobile-filters .filter { flex:0 0 auto; padding:7px 14px; font-size:12px; font-weight:600; border-radius:999px; background:transparent; border:1px solid rgba(255,255,255,.10); color:rgba(255,255,255,.42); white-space:nowrap; }
 .trips-mobile-filters .filter.active { background:#1c2239; border-color:#fff; color:#fff; }
 .trips-mobile-featured { position:relative; border-radius:24px; overflow:hidden; margin-bottom:14px; border:1px solid rgba(255,255,255,.10); min-height:260px; cursor:pointer; background:#0f2235; }
 .trips-mobile-featured .featured-trip-bg { position:absolute; inset:0; background:radial-gradient(ellipse at 30% 40%, rgba(255,180,120,.3), transparent 60%), radial-gradient(ellipse at 80% 60%, rgba(240,120,150,.25), transparent 50%), linear-gradient(180deg,#3d2a4a 0%, #1a1b3a 50%, #0a0d14 100%); }
 .trips-mobile-featured .featured-trip-bg::before { content:""; position:absolute; inset:0; background-image:linear-gradient(180deg, rgba(10,13,20,.15) 0%, rgba(10,13,20,.5) 60%, rgba(10,13,20,.95) 100%); }
 .trips-mobile-log-cta { display:flex; align-items:center; justify-content:center; gap:8px; padding:16px; font-size:.9rem; font-weight:600; color:#00d4aa; background:rgba(0,212,170,.12); border:1px dashed rgba(0,212,170,.25); border-radius:16px; letter-spacing:-.01em; margin-bottom:20px; }
 .trips-mobile-log-cta svg { width:18px; height:18px; stroke-width:2.4; }

 /* unified responsive shell rules */
 /* tablet — keep the focused single-column reading width */
 @media (min-width: 641px) {
  body[data-tracker-view="hub"] .site-nav,
  body[data-tracker-view="cards"] .site-nav,
  body[data-tracker-view="trips"] .site-nav { display:block; }
  .hub-mobile-shell,
  .cards-mobile-shell,
  .trips-mobile-shell {
   max-width: 960px;
   padding: 28px 28px 100px;
  }
  .hub-mobile-topbar { display:flex; }
 }

 /* desktop — true desktop container + multi-column card stack */
 @media (min-width: 961px) {
  .hub-mobile-shell,
  .cards-mobile-shell,
  .trips-mobile-shell {
   max-width: 1400px;
   padding: 36px 40px 120px;
  }
  #cards-container,
  #cards-tracking-group {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 14px;
  }
  .cards-mobile-kpi-row {
   overflow-x: visible;
   margin: 0 0 26px;
   padding: 0;
   display: grid;
   grid-template-columns: repeat(4, minmax(0, 1fr));
   gap: 12px;
  }
  .cards-mobile-kpi { min-width: 0; }
 }

 /* large desktop — a touch more breathing room and a third card column */
 @media (min-width: 1280px) {
  .hub-mobile-shell,
  .cards-mobile-shell,
  .trips-mobile-shell {
   max-width: 1600px;
   padding: 44px 48px 140px;
  }
  #cards-container { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #cards-tracking-group { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 }
 .tracker-mobile-bottomnav {
  display: none;
 }
 @media (max-width: 640px) {
  body[data-tracker-view="hub"] .site-nav,
  body[data-tracker-view="cards"] .site-nav,
  body[data-tracker-view="trips"] .site-nav { display:none !important; }
  .hub-mobile-shell,
  .cards-mobile-shell,
  .trips-mobile-shell {
   width: 100%;
   max-width: 480px;
   margin: 0 auto;
   padding: 14px 16px 110px;
   box-sizing: border-box;
  }
  .tracker-mobile-bottomnav {
   position: fixed;
   left: 0;
   right: 0;
   bottom: 0;
   z-index: 1000;
   display: grid;
   grid-template-columns: repeat(4, minmax(0, 1fr));
   align-items: stretch;
   gap: 0;
   min-height: 74px;
   padding: 8px max(12px, env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
   background: rgba(11, 13, 18, 0.98);
   border-top: 1px solid rgba(255,255,255,0.08);
   box-shadow: 0 -10px 28px rgba(0,0,0,0.28);
   backdrop-filter: blur(14px);
  }
  .tracker-mobile-bottomnav-tab {
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center;
   gap: 4px;
   min-width: 0;
   padding: 6px 4px;
   color: rgba(255,255,255,0.58);
   text-decoration: none;
   font-size: .68rem;
   font-weight: 700;
   letter-spacing: .01em;
  }
  .tracker-mobile-bottomnav-tab svg {
   width: 19px;
   height: 19px;
   stroke: currentColor;
   flex-shrink: 0;
  }
  .tracker-mobile-bottomnav-tab span {
   display: block;
   max-width: 100%;
   overflow: hidden;
   text-overflow: ellipsis;
   white-space: nowrap;
  }
  .tracker-mobile-bottomnav-tab.active,
  .tracker-mobile-bottomnav-tab[aria-current="page"] {
   color: #f0c040;
  }
 }
 @media (min-width: 641px) {
  .tracker-mobile-bottomnav {
   display: none !important;
  }
 }
  body[data-tracker-view="hub"],
  body[data-tracker-view="cards"],
  body[data-tracker-view="trips"] { font-size: 16px; }
  .cards-redesign-grid, .trip-list { grid-template-columns: 1fr; }
  .cards-mobile-kpi, .trips-mobile-kpi { min-width: 148px; }
  .cards-alert-row { grid-template-columns: 38px minmax(0, 1fr); }
  .cards-alert-actions { grid-column: 2; flex-direction: row; justify-content: flex-start; margin-top: 6px; }
  .hub-mobile-module-cta-row { flex-wrap: wrap; }
  #world-map { height: 260px; min-height: 260px; }
  .trips-world-hero { min-height: 0; }
  .trips-world-hero-inner { padding: 18px 18px 16px; min-height: 0; }
  .trips-world-map-wrap { min-height: 0; margin: 0 -2px 12px; }
  .trips-world-stats { gap: 10px; padding-top: 12px; }
  .trips-world-stat-val { font-size: 1.5rem; }
  .trips-world-stat-label { font-size: .58rem; }
  .trip-card { padding: 14px; border-radius: 18px; }
  .trip-card .tc-top { grid-template-columns: 48px 1fr; gap: 12px; }
  .trip-card .tc-thumb { width: 48px; height: 48px; border-radius: 14px; font-size: 1.2rem; }
  .trip-card .tc-legs-badge { min-width: 22px; height: 22px; font-size: .64rem; }
  .trip-card .tc-name { font-size: 1rem; }
  .trip-card .tc-meta { gap: 6px; font-size: .7rem; }
  .trip-card .tc-destinations { font-size: .76rem; }
  .trip-card .tc-saved-block { grid-column: 2; text-align: left; min-width: 0; }
  .trip-card .tc-saved-val { font-size: 1.05rem; }
  .trip-card .tc-saved-lbl { font-size: .62rem; }
  .trip-card .tc-route { margin: 12px 0 10px; }
  .trip-card .tc-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .trip-card .tc-stats-link { grid-column: 1 / -1; justify-self: start; margin-top: 2px; }
 }

 .cards-alert-icon { width:44px; height:44px; border-radius:12px; display:flex; align-items:center; justify-content:center; position:relative; flex-shrink:0; }
 .cards-alert-icon svg { width:20px; height:20px; stroke-width:2; }
 .cards-alert-icon.urgent { background:rgba(233,69,96,.12); color:#e94560; border:1px solid rgba(233,69,96,.25); }
 .cards-alert-icon.soon { background:rgba(240,192,64,.12); color:#f0c040; border:1px solid rgba(240,192,64,.25); }
 .cards-alert-icon.later { background:rgba(255,255,255,.05); color:rgba(255,255,255,.55); border:1px solid rgba(255,255,255,.08); }
 .cards-alert-pulse { position:absolute; top:-3px; right:-3px; width:10px; height:10px; background:#e94560; border:2px solid #151a2b; border-radius:50%; box-shadow:0 0 0 0 rgba(233,69,96,.7); animation:cards-alert-pulse 2s infinite; }
 @keyframes cards-alert-pulse { 0%{box-shadow:0 0 0 0 rgba(233,69,96,.55);} 70%{box-shadow:0 0 0 6px rgba(233,69,96,0);} 100%{box-shadow:0 0 0 0 rgba(233,69,96,0);} }
 .cards-alert-body { min-width:0; }
 .cards-alert-title { font-size:.92rem; font-weight:600; color:#fff; line-height:1.3; margin-bottom:3px; overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
 .cards-alert-sub { font-size:.76rem; color:rgba(255,255,255,.5); line-height:1.3; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
 .cards-alert-action-btn { font-size:.78rem; font-weight:600; padding:8px 16px; border-radius:10px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); color:#fff; white-space:nowrap; text-decoration:none; cursor:pointer; display:inline-block; transition:background .12s, border-color .12s; }
 .cards-alert-action-btn:hover { background:rgba(255,255,255,.10); border-color:rgba(255,255,255,.20); }
 .cards-alert-action-btn.primary { background:#f0c040; border-color:#f0c040; color:#0b0d12; }
 .cards-alert-action-btn.primary:hover { background:#e6b330; border-color:#e6b330; }
 .cards-alert-action-btn:disabled { opacity:.5; cursor:not-allowed; }
 .cards-alert-action-link { font-size:.76rem; font-weight:500; color:rgba(255,255,255,.5); text-decoration:none; white-space:nowrap; }
 .cards-alert-action-link:hover { color:#fff; }
 .cards-alert-tag,.cards-alert-amount,.cards-alert-timer,.cards-alert-name,.cards-alert-dot { display:none; }
 @media (max-width: 420px) {
  .cards-alert-row { gap:10px; padding:12px 10px; }
  .cards-alert-action-link { display:none; }
  .cards-alert-action-btn { padding:7px 14px; font-size:.76rem; }
 }

/* =====================================================================
   TRACKER HUB LANDING-SHAPED REBUILD (signed-in)
   Append at the end of tracker/tracker.css.
   Scoped to body[data-tracker-view="hub"] so other pages are unaffected.
   Cache-bust: bump the ?v= on the <link rel="stylesheet"> in tracker/index.html
   ===================================================================== */
.credit-history-toggle {
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:8px;
  padding:0;
  border:none;
  background:transparent;
  color:var(--text-muted);
  font-size:.78rem;
  font-weight:600;
  cursor:pointer;
  text-decoration:none;
}
.credit-history-toggle:hover { color:#fff; }
.credit-history-toggle .chev { transition: transform .18s ease; }
.credit-history-toggle[aria-expanded="true"] .chev { transform: rotate(90deg); }
.credit-history-block {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed rgba(255,255,255,0.08);
}

body[data-tracker-view="hub"] #dashboard.hub-mobile-shell {
  max-width: 1280px;
  padding: 16px 20px 96px;
}

/* — Ticker — */
.hub-landing-ticker {
  background: linear-gradient(90deg, rgba(233,69,96,0.18), rgba(240,192,64,0.10));
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 999px;
  padding: 8px 16px;
  margin-bottom: 16px;
  overflow: hidden;
  white-space: nowrap;
}
.hub-landing-ticker-track {
  display: flex; gap: 14px; align-items: center;
  font-size: .76rem; font-weight: 700; letter-spacing: .04em;
  color: rgba(255,255,255,.85);
}
.hub-landing-ticker-tag {
  color: #f0c040; letter-spacing: .14em; text-transform: uppercase;
}
.hub-landing-ticker-sep { color: rgba(255,255,255,.25); }

/* — Topbar — */
.hub-landing-topbar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; flex-wrap: wrap; margin-bottom: 24px;
}
.hub-landing-brand {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 700; font-size: 1.5rem; letter-spacing: -.03em; color: #fff;
}
.hub-landing-brand span { color: #e94560; }
.hub-landing-nav { display: flex; gap: 18px; font-size: .85rem; font-weight: 600; }
.hub-landing-nav a { color: rgba(255,255,255,.65); }
.hub-landing-nav a.active { color: #fff; border-bottom: 2px solid #e94560; padding-bottom: 2px; }
.hub-landing-nav-actions { display: flex; gap: 8px; }
.hub-landing-pill {
  font-size: .8rem; font-weight: 700; padding: 8px 14px; border-radius: 999px;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); color: #fff;
}
.hub-landing-pill.gold {
  background: rgba(240,192,64,.12); border-color: rgba(240,192,64,.3); color: #f0c040;
}

/* — Hero grid — */
.hub-landing-hero-grid {
  display: grid; grid-template-columns: 1.4fr 1fr; gap: 18px; margin-bottom: 22px;
}
.hub-landing-hero {
  position: relative; overflow: hidden; border-radius: 24px;
  padding: 26px 26px 22px;
  background: radial-gradient(circle at 90% 10%, rgba(240,192,64,.18), transparent 55%),
              radial-gradient(circle at 10% 90%, rgba(0,212,170,.12), transparent 55%),
              linear-gradient(145deg, #1a2040, #10162b);
  border: 1px solid rgba(255,255,255,.10);
}
.hub-landing-hero-eyebrow {
  display: flex; align-items: center; gap: 8px;
  font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: rgba(255,255,255,.55); margin-bottom: 14px;
}
.hub-landing-hero-eyebrow-dot {
  width: 6px; height: 6px; border-radius: 999px; background: #00d4aa;
  box-shadow: 0 0 8px #00d4aa;
}
.hub-landing-hero-amount {
  font-family: 'Fraunces', Georgia, serif;
  font-size: clamp(3rem, 8vw, 4.6rem);
  font-weight: 700; line-height: 1; letter-spacing: -.045em;
  background: linear-gradient(135deg, #ffffff 0%, #f0c040 100%);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  margin-bottom: 12px;
}
.hub-landing-hero-copy {
  color: rgba(255,255,255,.7); font-size: .92rem; max-width: 540px; margin-bottom: 22px;
}
.hub-landing-hero-copy strong { color: #fff; font-weight: 700; }

.hub-landing-hero-tiles {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px;
  padding-top: 16px; border-top: 1px solid rgba(255,255,255,.08);
}
.hub-landing-hero-tile {
  background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.06);
  border-radius: 14px; padding: 12px;
}
.hub-landing-hero-tile-label {
  font-size: .65rem; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: rgba(255,255,255,.45); margin-bottom: 4px;
}
.hub-landing-hero-tile-value {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.5rem; font-weight: 700; letter-spacing: -.02em; color: #fff;
}
.hub-landing-hero-tile-value.gold { color: #f0c040; }
.hub-landing-hero-tile-value.teal { color: #00d4aa; }
.hub-landing-hero-tile-sub {
  font-size: .72rem; color: rgba(255,255,255,.5); margin-top: 2px;
}

/* — Right-side goal panel — */
.hub-landing-goal {
  border-radius: 24px;
  padding: 22px;
  background: linear-gradient(160deg, rgba(0,212,170,.08), rgba(240,192,64,.04)), #151a2b;
  border: 1px solid rgba(0,212,170,.18);
  display: flex; flex-direction: column;
}
.hub-landing-goal-eyebrow {
  font-size: .68rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: #00d4aa; margin-bottom: 8px;
}
.hub-landing-goal-title {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.4rem; font-weight: 700; letter-spacing: -.02em; margin-bottom: 14px;
}
.hub-landing-goal-progress { margin-bottom: 16px; }
.hub-landing-goal-progress-bar {
  height: 6px; border-radius: 999px; background: rgba(255,255,255,.06); overflow: hidden;
}
.hub-landing-goal-progress-bar > span {
  display: block; height: 100%;
  background: linear-gradient(90deg, #00d4aa, #f0c040);
  transition: width .4s ease;
}
.hub-landing-goal-progress-pct {
  font-size: .76rem; color: rgba(255,255,255,.6); margin-top: 6px;
}
.hub-landing-goal-stats {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 8px; margin: 0 0 16px;
}
.hub-landing-goal-stats > div { min-width: 0; }
.hub-landing-goal-stats dt {
  font-size: .65rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: rgba(255,255,255,.45); margin-bottom: 2px;
}
.hub-landing-goal-stats dd {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1rem; font-weight: 700; letter-spacing: -.02em; color: #fff;
}
.hub-landing-goal-stats dd.teal { color: #00d4aa; }
.hub-landing-goal-stats dd.paid { color: #e94560; }
.hub-landing-goal-cta {
  margin-top: auto; display: inline-flex; align-items: center; justify-content: center;
  min-height: 42px; padding: 0 14px; border-radius: 12px;
  background: rgba(0,212,170,.14); border: 1px solid rgba(0,212,170,.3);
  color: #00d4aa; font-weight: 700; font-size: .88rem;
}

/* — Section heads (shared) — */
.hub-landing-section { margin-bottom: 28px; }
.hub-landing-section-head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 12px; margin-bottom: 14px;
}
.hub-landing-section-title {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.25rem; font-weight: 700; letter-spacing: -.02em; color: #fff;
}
.hub-landing-section-sub {
  font-family: inherit; font-weight: 500; color: rgba(255,255,255,.45); font-size: .95rem;
}
.hub-landing-section-link {
  font-size: .82rem; font-weight: 600; color: rgba(255,255,255,.55);
}
.hub-landing-section-link:hover { color: #fff; }

/* — Urgency — */
.hub-landing-urgency {
  border-radius: 22px;
  padding: 18px 18px 14px;
  background: linear-gradient(160deg, rgba(233,69,96,.10), rgba(240,192,64,.04)), #151a2b;
  border: 1px solid rgba(233,69,96,.22);
  margin-bottom: 28px;
}
.hub-landing-urgency-head {
  display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 12px;
}
.hub-landing-urgency-label {
  font-size: .72rem; font-weight: 800; color: #ff8fa3;
  letter-spacing: .14em; text-transform: uppercase;
}
.hub-landing-urgency-body { display: flex; flex-direction: column; gap: 10px; }
.hub-landing-urgency-row {
  display: grid;
  grid-template-columns: 38px 1fr auto auto auto;
  gap: 12px; align-items: center; min-height: 60px;
  padding: 10px 14px; border-radius: 14px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.06);
  color: #fff;
}
.hub-landing-urgency-row.is-urgent {
  background: rgba(233,69,96,.08);
  border-color: rgba(233,69,96,.32);
}
.hub-landing-urgency-init {
  width: 38px; height: 38px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, rgba(240,192,64,.18), rgba(0,212,170,.10));
  border: 1px solid rgba(255,255,255,.10);
  font-size: .72rem; font-weight: 800; letter-spacing: .04em;
}
.hub-landing-urgency-name { font-weight: 700; font-size: .94rem; line-height: 1.2; }
.hub-landing-urgency-card { font-size: .74rem; color: rgba(255,255,255,.55); margin-top: 2px; }
.hub-landing-urgency-amount {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 700; font-size: 1rem; color: #f0c040;
}
.hub-landing-urgency-countdown {
  font-family: 'JetBrains Mono', ui-monospace, Menlo, monospace;
  font-size: .8rem; color: rgba(255,255,255,.6);
  display: flex; gap: 2px; align-items: center;
}
.hub-landing-urgency-countdown i { color: rgba(255,255,255,.25); font-style: normal; }
.hub-landing-urgency-action {
  font-size: .78rem; font-weight: 700; color: #00d4aa; white-space: nowrap;
}

/* — Card stack — */
.hub-landing-cardstack { display: flex; flex-direction: column; gap: 8px; }
.hub-landing-cardrow {
  display: grid; grid-template-columns: 38px 1fr auto;
  gap: 12px; align-items: center; min-height: 64px;
  padding: 10px 14px; border-radius: 14px;
  background: #151a2b;
  border: 1px solid rgba(255,255,255,.06);
  color: #fff;
}
.hub-landing-cardrow:hover { border-color: rgba(255,255,255,.18); }
.hub-landing-cardrow-init {
  width: 38px; height: 38px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, #1d4ed8, #0f3b82);
  font-size: .72rem; font-weight: 800;
}
.hub-landing-cardrow-name { font-weight: 700; font-size: .94rem; }
.hub-landing-cardrow-meta { font-size: .76rem; color: rgba(255,255,255,.55); margin-top: 2px; }
.hub-landing-cardrow-net {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 700; font-size: 1rem; text-align: right;
}
.hub-landing-cardrow-net small {
  display: block; font-family: -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: .62rem; font-weight: 600; color: rgba(255,255,255,.42);
  text-transform: uppercase; letter-spacing: .08em;
}
.hub-landing-cardrow-net.pos { color: #00d4aa; }
.hub-landing-cardrow-net.neg { color: #ff8fa3; }
.hub-landing-cardstack-foot {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  margin-top: 14px; font-size: .8rem; color: rgba(255,255,255,.6);
}
.hub-landing-cardstack-foot-sep { color: rgba(255,255,255,.2); }
.hub-landing-cardstack-foot-add {
  margin-left: auto; padding: 6px 12px; border-radius: 999px;
  background: rgba(240,192,64,.12); border: 1px solid rgba(240,192,64,.28);
  color: #f0c040; font-weight: 700; font-size: .78rem;
}

/* — Trip stats row — */
.hub-landing-trips-stats {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 10px; margin-bottom: 14px;
  padding: 14px 16px; border-radius: 14px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.06);
}
.hub-landing-trips-stat-value {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.5rem; font-weight: 700; letter-spacing: -.02em; color: #fff;
}
.hub-landing-trips-stat-value.teal { color: #00d4aa; }
.hub-landing-trips-stat-value.gold { color: #f0c040; }
.hub-landing-trips-stat-label {
  font-size: .68rem; font-weight: 700; color: rgba(255,255,255,.45);
  letter-spacing: .08em; text-transform: uppercase; margin-top: 2px;
}

/* — Trip list — */
.hub-landing-triplist { display: flex; flex-direction: column; gap: 8px; }
.hub-landing-triprow {
  display: grid; grid-template-columns: 1fr auto;
  gap: 12px; align-items: center; min-height: 60px;
  padding: 12px 14px; border-radius: 14px;
  background: #151a2b;
  border: 1px solid rgba(255,255,255,.06);
  color: #fff;
}
.hub-landing-triprow:hover { border-color: rgba(255,255,255,.18); }
.hub-landing-triprow-name { font-weight: 700; font-size: .94rem; display: flex; gap: 8px; align-items: center; }
.hub-landing-triprow-flag {
  font-size: .58rem; font-weight: 800; padding: 2px 6px; border-radius: 4px;
  background: rgba(0,212,170,.16); color: #00d4aa; letter-spacing: .12em;
}
.hub-landing-triprow-meta { font-size: .76rem; color: rgba(255,255,255,.55); margin-top: 2px; }
.hub-landing-triprow-saved {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 700; font-size: 1rem; color: #00d4aa;
}

/* — Milestones — */
.hub-landing-milestones {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.hub-landing-milestone {
  border-radius: 14px;
  padding: 14px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.06);
  text-align: center;
}
.hub-landing-milestone.is-earned {
  background: linear-gradient(160deg, rgba(240,192,64,.10), rgba(255,255,255,.03));
  border-color: rgba(240,192,64,.28);
}
.hub-landing-milestone-icon {
  font-size: 1.4rem; color: #f0c040; margin-bottom: 6px;
}
.hub-landing-milestone-label {
  font-size: .82rem; font-weight: 700; margin-bottom: 4px;
}
.hub-landing-milestone-state {
  font-size: .68rem; font-weight: 800; letter-spacing: .08em;
  color: rgba(255,255,255,.55); text-transform: uppercase;
}
.hub-landing-milestone.is-earned .hub-landing-milestone-state {
  color: #00d4aa;
}

/* — Bottom CTA — */
.hub-landing-bottom-cta {
  margin-top: 36px; padding: 32px 24px;
  border-radius: 24px; text-align: center;
  background: linear-gradient(160deg, rgba(233,69,96,.08), rgba(240,192,64,.06)), #151a2b;
  border: 1px solid rgba(255,255,255,.08);
}
.hub-landing-bottom-cta-eyebrow {
  font-size: .7rem; font-weight: 800; letter-spacing: .16em;
  text-transform: uppercase; color: #f0c040; margin-bottom: 10px;
}
.hub-landing-bottom-cta-title {
  font-family: 'Fraunces', Georgia, serif;
  font-size: clamp(1.6rem, 4vw, 2.2rem); font-weight: 700; letter-spacing: -.02em;
  margin-bottom: 8px;
}
.hub-landing-bottom-cta-copy {
  color: rgba(255,255,255,.7); max-width: 540px; margin: 0 auto 22px;
  font-size: .95rem;
}
.hub-landing-bottom-cta-actions {
  display: flex; gap: 10px; justify-content: center; flex-wrap: wrap;
}
.hub-landing-btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 42px; padding: 0 18px; border-radius: 12px;
  font-weight: 700; font-size: .88rem;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); color: #fff;
}
.hub-landing-btn.primary {
  background: linear-gradient(135deg, #f0c040, #d9a830); color: #0a0d14; border-color: transparent;
}
.hub-landing-btn.ghost {
  background: transparent; border-color: rgba(255,255,255,.16);
}
.hub-landing-bottom-cta-foot {
  font-size: .78rem; color: rgba(255,255,255,.45); margin-top: 14px;
}

/* — Empty state (shared by urgency / cards / trips) — */
.hub-landing-empty {
  text-align: center; padding: 24px 18px;
  background: rgba(255,255,255,.02);
  border: 1px dashed rgba(255,255,255,.12);
  border-radius: 14px;
}
.hub-landing-empty-icon {
  font-size: 1.6rem; color: rgba(255,255,255,.35); margin-bottom: 8px;
}
.hub-landing-empty-title {
  font-weight: 700; font-size: 1rem; margin-bottom: 6px;
}
.hub-landing-empty-copy {
  font-size: .85rem; color: rgba(255,255,255,.55);
  max-width: 380px; margin: 0 auto 14px;
}
.hub-landing-empty-cta {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 8px 16px; border-radius: 999px;
  background: rgba(240,192,64,.12); border: 1px solid rgba(240,192,64,.28);
  color: #f0c040; font-weight: 700; font-size: .82rem;
}

/* — Responsive — */
@media (max-width: 920px) {
  .hub-landing-hero-grid { grid-template-columns: 1fr; }
  .hub-landing-nav { display: none; }
  .hub-landing-milestones { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  body[data-tracker-view="hub"] #dashboard.hub-mobile-shell {
    padding: 12px 14px 80px;
  }
  .hub-landing-hero { padding: 22px 18px 18px; }
  .hub-landing-hero-tiles { grid-template-columns: 1fr 1fr; }
  .hub-landing-urgency-row {
    grid-template-columns: 38px 1fr auto;
    grid-template-areas:
      "init text amount"
      "init countdown action";
  }
  .hub-landing-urgency-init      { grid-area: init; }
  .hub-landing-urgency-text      { grid-area: text; }
  .hub-landing-urgency-amount    { grid-area: amount; }
  .hub-landing-urgency-countdown { grid-area: countdown; }
  .hub-landing-urgency-action    { grid-area: action; text-align: right; }
  .hub-landing-trips-stats { grid-template-columns: 1fr 1fr 1fr; }
}

/* =====================================================================
   TRACKER CARDS LANDING-SHAPED REBUILD (signed-in)
   Append AFTER the hub-landing-* block in tracker.css.
   Most layout is reused from .hub-landing-* rules (already scoped to
   body[data-tracker-view="hub"]). We mirror those base rules under
   body[data-tracker-view="cards"] and add cards-specific extensions.
   ===================================================================== */

/* ── Make the hub-landing layout primitives apply on the cards page ── */
body[data-tracker-view="cards"] {
  background: #0a0d14;
  color: #ffffff;
}
body[data-tracker-view="cards"] .site-nav { display: none; }
body[data-tracker-view="cards"] #dashboard.cards-mobile-shell {
  max-width: 1280px;
  padding: 16px 20px 96px;
}

/* The hub-landing-* rules are body[data-tracker-view="hub"]-scoped where
   it matters (the shell padding above). Everything else uses unscoped
   classes (.hub-landing-ticker, .hub-landing-hero, etc.) so they apply
   on the cards page automatically. No duplication needed. */


/* — Fee-recovery bar in the hero — */
.cards-landing-feebar {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,.08);
}
.cards-landing-feebar-labels {
  display: flex; align-items: baseline; justify-content: space-between;
  margin-bottom: 8px;
}
.cards-landing-feebar-label {
  font-size: .68rem; font-weight: 700; color: rgba(255,255,255,.55);
  text-transform: uppercase; letter-spacing: .1em;
}
.cards-landing-feebar-ratio {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1rem; font-weight: 700; color: #00d4aa;
}
.cards-landing-feebar-track {
  height: 6px; border-radius: 999px;
  background: rgba(255,255,255,.06); overflow: hidden;
}
.cards-landing-feebar-fill {
  height: 100%;
  background: linear-gradient(90deg, #00d4aa 0%, #f0c040 100%);
  border-radius: 999px;
  box-shadow: 0 0 12px rgba(0,212,170,.35);
  transition: width .4s ease;
}
.cards-landing-feebar-foot {
  font-size: .72rem; color: rgba(255,255,255,.5);
  margin-top: 8px;
}


/* — Inline claim/view actions in urgency rows ──────────────────────── */
.cards-landing-urgency-row .cards-landing-urgency-actions {
  display: flex; gap: 6px; align-items: center;
  white-space: nowrap;
}
.cards-landing-urgency-claim {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 32px; padding: 0 14px; border-radius: 999px;
  background: #00d4aa; color: #0a0d14;
  border: none; cursor: pointer;
  font-size: .76rem; font-weight: 800; letter-spacing: -.01em;
  transition: filter .15s ease;
}
.cards-landing-urgency-claim:hover:not(:disabled) { filter: brightness(1.08); }
.cards-landing-urgency-claim:disabled {
  opacity: .55; cursor: progress;
}
.cards-landing-urgency-view {
  font-size: .74rem; font-weight: 700; color: rgba(255,255,255,.55);
  padding: 0 4px;
}
.cards-landing-urgency-view:hover { color: #fff; }

/* On the cards page, override the urgency-row grid template so the
   action stack fits at the right end. */
body[data-tracker-view="cards"] .hub-landing-urgency-row {
  grid-template-columns: 38px 1fr auto auto auto;
}


/* — Featured (best performer) tile ──────────────────────────────────── */
.cards-landing-featured {
  position: relative; overflow: hidden;
  border-radius: 22px;
  border: 1px solid rgba(0,212,170,.22);
  background: linear-gradient(160deg, rgba(0,212,170,.10), rgba(240,192,64,.05)), #151a2b;
  margin-bottom: 4px;
}
.cards-landing-featured-link {
  display: block;
  padding: 22px 22px 18px;
  color: #fff;
}
.cards-landing-featured-link:hover { background: rgba(255,255,255,.02); }
.cards-landing-featured-watermark {
  position: absolute; inset: 0;
  background-image: radial-gradient(circle at 90% 10%, rgba(240,192,64,.18), transparent 55%);
  pointer-events: none;
}
.cards-landing-featured-inner { position: relative; z-index: 1; }
.cards-landing-featured-label {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: .66rem; font-weight: 800; letter-spacing: .14em;
  text-transform: uppercase; color: #00d4aa;
  padding: 5px 10px; border-radius: 999px;
  background: rgba(0,212,170,.12); border: 1px solid rgba(0,212,170,.25);
  margin-bottom: 14px;
}
.cards-landing-featured-row {
  display: flex; align-items: center; gap: 14px; margin-bottom: 18px;
}
.cards-landing-featured-chip {
  width: 48px; height: 48px; border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: .9rem; font-weight: 800; color: #fff;
}
.cards-landing-featured-name-block { min-width: 0; }
.cards-landing-featured-title {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.3rem; font-weight: 700; letter-spacing: -.02em;
  margin-bottom: 2px;
}
.cards-landing-featured-sub {
  font-size: .82rem; color: rgba(255,255,255,.6);
}
.cards-landing-featured-stats {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,.06);
}
.cards-landing-featured-stat .val {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.35rem; font-weight: 700; letter-spacing: -.02em;
  color: #fff;
}
.cards-landing-featured-stat .val.teal { color: #00d4aa; }
.cards-landing-featured-stat .val.gold { color: #f0c040; }
.cards-landing-featured-stat .val.white { color: #fff; }
.cards-landing-featured-stat .lbl {
  font-size: .66rem; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: rgba(255,255,255,.45);
  margin-top: 2px;
}


/* — Stack rows: extend hub's cardrow with progress bar + pills ─────── */
.cards-landing-cardrow {
  /* Override the hub's strict 3-column grid so meta column can stack
     the progress bar + pills below the headline */
  grid-template-columns: 38px 1fr auto;
  align-items: start;
  padding: 12px 14px;
  min-height: 0;
}
.cards-landing-cardrow .hub-landing-cardrow-body {
  /* allow vertical content stacking */
  display: flex; flex-direction: column; gap: 8px;
  min-width: 0;
}
.cards-landing-cardrow-bar {
  height: 4px; border-radius: 999px;
  background: rgba(255,255,255,.06); overflow: hidden;
  margin-top: 2px;
}
.cards-landing-cardrow-bar-fill {
  height: 100%; border-radius: 999px;
  transition: width .4s ease;
}
.cards-landing-cardrow-bar-fill.green  { background: linear-gradient(90deg, #00d4aa, #34d399); }
.cards-landing-cardrow-bar-fill.amber  { background: linear-gradient(90deg, #f0c040, #fbbf24); }
.cards-landing-cardrow-bar-fill.danger { background: linear-gradient(90deg, #ff8fa3, #e94560); }

.cards-landing-cardrow-pills {
  display: flex; flex-wrap: wrap; gap: 6px;
  margin-top: 2px;
}
.cards-landing-pill {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: .68rem; font-weight: 700;
  padding: 4px 9px; border-radius: 999px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  color: rgba(255,255,255,.78);
}
.cards-landing-pill i {
  font-style: normal; opacity: .55;
  font-family: 'JetBrains Mono', ui-monospace, Menlo, monospace;
}
.cards-landing-pill.urgent {
  color: #ff8fa3; background: rgba(233,69,96,.08); border-color: rgba(233,69,96,.32);
}
.cards-landing-pill.soon {
  color: #fbbf24; background: rgba(240,192,64,.08); border-color: rgba(240,192,64,.28);
}
.cards-landing-pill.ok {
  color: #00d4aa; background: rgba(0,212,170,.08); border-color: rgba(0,212,170,.28);
}
.cards-landing-pill.more {
  color: rgba(255,255,255,.5);
}

.cards-landing-cardrow-status {
  font-family: 'Fraunces', Georgia, serif;
  font-size: .85rem; font-weight: 700;
  text-align: right; white-space: nowrap;
  align-self: center;
  padding: 6px 10px; border-radius: 999px;
}
.cards-landing-cardrow-status.pos {
  color: #00d4aa; background: rgba(0,212,170,.10); border: 1px solid rgba(0,212,170,.28);
}
.cards-landing-cardrow-status.neg {
  color: #ff8fa3; background: rgba(233,69,96,.10); border: 1px solid rgba(233,69,96,.28);
}
.cards-landing-cardrow-status.neutral {
  color: rgba(255,255,255,.55); background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08);
}


/* — Just tracking rows ─────────────────────────────────────────────── */
.cards-landing-tracking {
  display: flex; flex-direction: column; gap: 6px;
}
.cards-landing-trackrow {
  display: grid;
  grid-template-columns: 32px 1fr auto auto;
  gap: 12px; align-items: center; min-height: 52px;
  padding: 8px 14px; border-radius: 12px;
  background: rgba(255,255,255,.02);
  border: 1px solid rgba(255,255,255,.04);
  color: #fff;
}
.cards-landing-trackrow:hover {
  background: rgba(255,255,255,.04);
  border-color: rgba(255,255,255,.10);
}
.cards-landing-trackrow-chip {
  width: 32px; height: 32px; border-radius: 9px;
  display: flex; align-items: center; justify-content: center;
  font-size: .68rem; font-weight: 800;
}
.cards-landing-trackrow-name {
  font-weight: 600; font-size: .88rem;
}
.cards-landing-trackrow-meta {
  font-size: .72rem; color: rgba(255,255,255,.5); margin-top: 2px;
}
.cards-landing-trackrow-pts {
  font-family: 'Fraunces', Georgia, serif;
  font-size: .92rem; font-weight: 700; color: rgba(255,255,255,.7);
  text-align: right;
}
.cards-landing-trackrow-pts small {
  display: block; font-family: -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: .58rem; font-weight: 600; color: rgba(255,255,255,.38);
  text-transform: uppercase; letter-spacing: .08em;
  margin-top: 1px;
}
.cards-landing-trackrow-chev {
  color: rgba(255,255,255,.3); font-size: 1.2rem; line-height: 1;
}


/* — Responsive overrides for the cards page ───────────────────────── */
@media (max-width: 920px) {
  body[data-tracker-view="cards"] .hub-landing-hero-grid { grid-template-columns: 1fr; }
  body[data-tracker-view="cards"] .hub-landing-nav { display: none; }
  body[data-tracker-view="cards"] .hub-landing-milestones { grid-template-columns: repeat(2, 1fr); }
  .cards-landing-featured-stats { grid-template-columns: 1fr 1fr 1fr; }
}

@media (max-width: 640px) {
  body[data-tracker-view="cards"] #dashboard.cards-mobile-shell {
    padding: 12px 14px 80px;
  }
  /* On mobile the urgency row stacks: keep claim button visible at the bottom. */
  body[data-tracker-view="cards"] .hub-landing-urgency-row {
    grid-template-columns: 38px 1fr auto;
    grid-template-areas:
      "init text amount"
      "init countdown actions";
  }
  body[data-tracker-view="cards"] .hub-landing-urgency-row .hub-landing-urgency-init      { grid-area: init; }
  body[data-tracker-view="cards"] .hub-landing-urgency-row .hub-landing-urgency-text      { grid-area: text; }
  body[data-tracker-view="cards"] .hub-landing-urgency-row .hub-landing-urgency-amount    { grid-area: amount; }
  body[data-tracker-view="cards"] .hub-landing-urgency-row .hub-landing-urgency-countdown { grid-area: countdown; }
  body[data-tracker-view="cards"] .hub-landing-urgency-row .cards-landing-urgency-actions { grid-area: actions; justify-content: flex-end; }

  /* Stack-row status pill drops to a small badge on mobile */
  .cards-landing-cardrow {
    grid-template-columns: 38px 1fr;
    grid-template-areas:
      "init body"
      "status status";
    gap: 10px;
  }
  .cards-landing-cardrow .hub-landing-cardrow-init { grid-area: init; }
  .cards-landing-cardrow .hub-landing-cardrow-body { grid-area: body; }
  .cards-landing-cardrow-status                    {
    grid-area: status;
    align-self: stretch;
    text-align: center;
    margin-top: 2px;
  }

  .cards-landing-trackrow {
    grid-template-columns: 32px 1fr auto;
  }
  .cards-landing-trackrow-chev { display: none; }
}
