/* ═══════════════════════════════════════════════════════════════
   827 Solutions — Shared Dashboard Stylesheet
   All client dashboards link to this file.
   Design changes here apply to ALL clients automatically.
   DO NOT put client-specific data or colors here.
═══════════════════════════════════════════════════════════════ */

/* ── CORE LAYOUT & COMPONENTS ────────────────────────────────────────── */
:root {
    --bg: #0d0f14;
    --surface: #161a23;
    --surface2: #1e2330;
    --border: #2a3045;
    --accent: #4f8ef7;
    --accent2: #7c5cf7;
    --green: #22c55e;
    --yellow: #f59e0b;
    --red: #ef4444;
    --gray: #6b7280;
    --text: #f0f2f8;
    --text-muted: #a8b0c8;
    --text-dim: #6b7590;
    --radius: 10px;
    --radius-sm: 6px;
    --font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  }
  /* ── ALT THEME ── deep navy gradient, all cards/containers unchanged ── */
  body.theme-light { background: linear-gradient(145deg, #0a0f1e 0%, #0d1528 50%, #0f1e3a 100%); background-attachment: fixed; }
  body.theme-light::after { background: linear-gradient(to bottom, transparent, #0f1e3a); }
  body.theme-light .dash-tab-nav-wrapper { background: transparent; }
  body.theme-light .ramp-bar-wrapper { background: transparent; }

  /* ── THEME TOGGLE BUTTON ── */
  .theme-toggle { width: 32px; height: 32px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.15); background: rgba(255,255,255,0.07); cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 15px; transition: background 0.2s, border-color 0.2s; flex-shrink: 0; }
  .theme-toggle:hover { background: rgba(255,255,255,0.14); border-color: rgba(255,255,255,0.3); }

  * { box-sizing: border-box; margin: 0; padding: 0; }
  /* ── Safari / iOS compatibility (applies to all client dashboards) ── */
  html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
  body { background: var(--bg); color: var(--text); font-family: var(--font); font-size: 16px; line-height: 1.6; min-height: 100vh; -webkit-tap-highlight-color: rgba(0,0,0,0); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; -webkit-overflow-scrolling: touch; }

  /* BOTTOM FADE — masks content peeking at viewport edge on load */
  body::after { content: ''; position: fixed; bottom: 0; left: 0; right: 0; height: 80px; background: linear-gradient(to bottom, transparent, var(--bg)); pointer-events: none; z-index: 50; }

  /* ADMIN BAR */
  .admin-bar { background: #0a0c10; border-bottom: 1px solid rgba(255,255,255,0.06); padding: 0 32px; display: flex; align-items: center; justify-content: space-between; height: 54px; position: -webkit-sticky; position: sticky; top: 0; z-index: 110; }
  .admin-bar-left { display: flex; align-items: center; gap: 12px; }
  .admin-agency-mark { font-size: 14px; font-weight: 800; letter-spacing: 1.5px; text-transform: uppercase; color: #fff; opacity: 0.9; }
  .admin-agency-mark span { color: var(--accent); }
  .admin-divider { width: 1px; height: 20px; background: rgba(255,255,255,0.12); margin: 0 4px; }
  .admin-bar-right { display: flex; align-items: center; gap: 14px; }
  .admin-user { display: flex; align-items: center; gap: 10px; }
  .admin-avatar { width: 32px; height: 32px; border-radius: 50%; background: linear-gradient(135deg, var(--accent), var(--accent2)); display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 800; color: #fff; letter-spacing: -0.3px; flex-shrink: 0; }
  .admin-user-name { font-size: 14px; font-weight: 600; color: rgba(255,255,255,0.85); }
  .admin-role { font-size: 11px; color: rgba(255,255,255,0.4); }

  /* CLIENT SWITCHER DROPDOWN */
  .client-switcher { position: relative; }
  .client-switcher-btn { display: flex; align-items: center; gap: 8px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); border-radius: 6px; padding: 7px 13px; cursor: pointer; transition: background 0.15s, border-color 0.15s; user-select: none; }
  .client-switcher-btn:hover { background: rgba(79,142,247,0.12); border-color: rgba(79,142,247,0.4); }
  .client-switcher-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--green); flex-shrink: 0; }
  .client-switcher-label { font-size: 14px; font-weight: 700; color: #fff; }
  .client-switcher-caret { font-size: 10px; color: rgba(255,255,255,0.4); margin-left: 2px; transition: transform 0.15s; }
  .client-switcher.open .client-switcher-caret { transform: rotate(180deg); }
  .client-dropdown { position: absolute; top: calc(100% + 6px); left: 0; min-width: 220px; background: #13161e; border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; box-shadow: 0 16px 48px rgba(0,0,0,0.6); z-index: 200; overflow: hidden; display: none; }
  .client-switcher.open .client-dropdown { display: block; }
  .client-dropdown-header { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: rgba(255,255,255,0.3); padding: 12px 16px 6px; }
  .client-dropdown-item { display: flex; align-items: center; gap: 10px; padding: 11px 16px; cursor: pointer; transition: background 0.1s; }
  .client-dropdown-item:hover { background: rgba(79,142,247,0.1); }
  .client-dropdown-item.active { background: rgba(79,142,247,0.08); }
  .client-dropdown-item .cdi-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
  .cdi-dot.active { background: var(--green); }
  .cdi-dot.inactive { background: var(--text-dim); }
  .client-dropdown-item .cdi-name { font-size: 14px; font-weight: 600; color: var(--text); flex: 1; }
  .client-dropdown-item .cdi-week { font-size: 11px; color: var(--text-dim); }
  .client-dropdown-item.active .cdi-name { color: var(--accent); }
  .client-dropdown-divider { height: 1px; background: rgba(255,255,255,0.06); margin: 4px 0; }
  .client-dropdown-add { display: flex; align-items: center; gap: 10px; padding: 11px 16px; cursor: pointer; color: var(--text-dim); font-size: 13px; font-weight: 600; transition: color 0.15s; }
  .client-dropdown-add:hover { color: var(--accent); }

  /* CLIENT IDENTITY STRIP */
  /* CLIENT PROFILE CARD */
  .client-strip { background: var(--surface); border-bottom: 1px solid var(--border); padding: 0; position: -webkit-sticky; position: sticky; top: 54px; z-index: 100; transition: top 0.3s ease, opacity 0.3s ease; }
  .client-strip.strip-released { position: relative; top: auto; }
  .client-profile { display: grid; grid-template-columns: auto 1fr auto; align-items: stretch; gap: 0; }

  /* Left — logo */
  .client-profile-logo { display: flex; align-items: center; justify-content: center; padding: 2px 14px; border-right: 1px solid var(--border); background: rgba(0,0,0,0.15); }
  .client-profile-logo img { width: 38px; height: 38px; border-radius: 8px; object-fit: cover; display: block; }

  /* Center — profile fields */
  .client-profile-body { display: flex; align-items: center; padding: 1px 16px; gap: 0; }
  .client-profile-primary { margin-right: 32px; flex-shrink: 0; }
  .client-company-name { font-size: 20px; font-weight: 900; color: #fff; letter-spacing: -0.5px; line-height: 1.1; margin-bottom: 3px; }
  .client-active-badge { display: inline-flex; align-items: center; gap: 5px; background: rgba(34,197,94,0.12); border: 1px solid rgba(34,197,94,0.3); color: var(--green); font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 20px; }
  .client-active-badge::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--green); }

  .client-profile-fields { display: grid; grid-template-columns: repeat(4, auto); gap: 0; flex: 1; }
  .client-field { padding: 1px 16px; border-left: 1px solid var(--border); cursor: pointer; transition: background 0.15s; position: relative; }
  .client-field:hover { background: rgba(255,255,255,0.03); }
  .client-field:hover .client-field-edit { opacity: 1; }
  .client-field-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: rgba(255,255,255,0.62); margin-bottom: 2px; line-height: 1.1; }
  .client-field-value { font-size: 15px; font-weight: 600; color: #fff; line-height: 1.15; white-space: nowrap; }
  .client-field-edit { position: absolute; top: 8px; right: 8px; font-size: 10px; color: rgba(255,255,255,0.2); opacity: 0; transition: opacity 0.15s; }

  /* Ramp progress bar */
  .client-ramp-field { padding: 6px 16px; border-left: 1px solid var(--border); min-width: 140px; }
  .client-ramp-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: rgba(255,255,255,0.35); margin-bottom: 6px; }
  .client-ramp-nums { font-size: 15px; font-weight: 700; color: #fff; margin-bottom: 6px; }
  .client-ramp-nums span { color: rgba(255,255,255,0.4); font-weight: 400; font-size: 13px; }
  .client-ramp-bar-track { width: 100%; height: 5px; background: rgba(255,255,255,0.08); border-radius: 3px; overflow: hidden; }
  .client-ramp-bar-fill { height: 100%; width: 8.9%; background: linear-gradient(90deg, var(--accent), var(--accent2)); border-radius: 3px; }

  /* Right — actions */
  .client-profile-actions { display: flex; flex-direction: column; justify-content: center; gap: 4px; padding: 3px 16px; border-left: 1px solid var(--border); background: rgba(0,0,0,0.1); }
  .client-upload-btn { display: flex; align-items: center; gap: 8px; background: rgba(79,142,247,0.12); border: 1px solid rgba(79,142,247,0.35); color: #fff; font-size: 13px; font-weight: 700; padding: 4px 12px; border-radius: 6px; cursor: pointer; transition: background 0.15s, transform 0.1s; white-space: nowrap; }
  .client-upload-btn:hover { background: rgba(79,142,247,0.22); transform: translateY(-1px); }
  .client-upload-btn svg { flex-shrink: 0; }
  /* "Drop your media here" — live tech feel: breathing glow + floating arrow */
  @keyframes uplGlow { 0%,100% { box-shadow: 0 0 0 0 rgba(45,212,191,0); } 50% { box-shadow: 0 0 16px 1px rgba(45,212,191,0.55); } }
  @keyframes uplFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
  .client-upload-btn { animation: uplGlow 2.4s ease-in-out infinite; }
  .client-upload-btn svg { animation: uplFloat 2.4s ease-in-out infinite; }
  .client-upload-btn:hover { animation-play-state: paused; transform: scale(1.05); box-shadow: 0 0 20px 2px rgba(45,212,191,0.65); }
  /* Upload "tech" button — flowing blue→cyan→green fill + spinning blue border (shared across all clients) */
  @keyframes upSpin { to { transform: rotate(360deg); } }
  @keyframes upFlow { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
  .upload-tech { position: relative; overflow: hidden; isolation: isolate; background: transparent !important; border: none !important; }
  .upload-tech::before { content:''; position:absolute; z-index:-2; inset:-60%; background: conic-gradient(from 0deg, transparent 0deg 250deg, #93c5fd 300deg, #3b82f6 332deg, #60a5fa 352deg, transparent 360deg); animation: upSpin 3.2s linear infinite; }
  .upload-tech::after { content:''; position:absolute; z-index:-1; inset:2px; border-radius:6px; background: linear-gradient(120deg, #2563eb, #06b6d4, #22c55e, #06b6d4, #2563eb); background-size: 300% 100%; animation: upFlow 5s ease-in-out infinite; }
  .client-ticket-btn { display: flex; align-items: center; gap: 8px; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.12); color: rgba(255,255,255,0.75); font-size: 13px; font-weight: 700; padding: 4px 12px; border-radius: 6px; cursor: pointer; transition: background 0.15s, transform 0.1s; white-space: nowrap; }
  .client-ticket-btn:hover { background: rgba(255,255,255,0.08); transform: translateY(-1px); }

  /* HEADER — now hidden, replaced by admin bar + client strip */
  .header { display: none; }
  .header-left { display: flex; align-items: center; gap: 16px; }
  .logo-mark { width: 36px; height: 36px; background: linear-gradient(135deg, var(--accent), var(--accent2)); border-radius: 8px; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 13px; color: #fff; letter-spacing: -0.5px; }
  .header h1 { font-size: 16px; font-weight: 700; color: var(--text); letter-spacing: -0.3px; }
  .header-sub { font-size: 12px; color: var(--text-muted); margin-top: 1px; }
  .header-meta { display: flex; align-items: center; gap: 20px; }
  .week-badge { background: linear-gradient(135deg, var(--accent), var(--accent2)); color: #fff; font-size: 11px; font-weight: 700; padding: 4px 12px; border-radius: 20px; letter-spacing: 0.5px; text-transform: uppercase; }

  /* LAYOUT */
  .main { width: 100%; padding: 28px 40px; }

  /* SECTION HEADERS */
  .section-header { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; margin-top: 32px; }
  .section-header:first-child { margin-top: 0; }

  /* Framed section header — matches platform pill style */
  .section-header-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 12px 18px; display: flex; align-items: center; gap: 12px; margin-bottom: 14px; margin-top: 32px; transition: border-color 0.2s, background 0.2s; }
  .section-header-card:first-child { margin-top: 0; }
  .section-header-card .section-title { font-size: 15px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--text); white-space: nowrap; }
  .section-header-card .section-line { flex: 1; height: 1px; background: var(--accent); opacity: 0.4; }
  .section-header-card .section-accent-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); flex-shrink: 0; box-shadow: 0 0 6px rgba(79,142,247,0.6); }
  .section-title { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--text); white-space: nowrap; }
  .section-line { flex: 1; height: 1px; background: var(--accent); }

  /* HERO SECTION */
  .dash-hero { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 36px 40px 32px; margin-bottom: 28px; min-height: calc(100vh - 250px); display: flex; flex-direction: column; justify-content: center; gap: 28px; }
  .dash-hero-identity { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
  .dash-hero-logo { width: 72px; height: 72px; background: linear-gradient(135deg, var(--accent), var(--accent2)); border-radius: 16px; display: flex; align-items: center; justify-content: center; font-size: 22px; font-weight: 900; color: #fff; letter-spacing: -1px; flex-shrink: 0; box-shadow: 0 8px 32px rgba(79,142,247,0.3); }
  .dash-hero-info { flex-shrink: 0; }
  .dash-hero-name { font-size: 32px; font-weight: 900; color: var(--text); letter-spacing: -1px; line-height: 1.1; }
  .dash-hero-client { font-size: 15px; color: var(--text-muted); margin-top: 4px; font-weight: 500; }
  .dash-hero-stats { display: flex; align-items: center; gap: 0; flex: 1; justify-content: center; background: var(--surface2); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 16px 24px; flex-wrap: wrap; gap: 0; }
  .dash-hero-stat { text-align: center; padding: 0 28px; }
  .dash-hero-stat-val { font-size: 32px; font-weight: 900; color: var(--text); letter-spacing: -1px; line-height: 1; }
  .dash-hero-stat-label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.8px; color: var(--text-dim); margin-top: 4px; }
  .dash-hero-stat-div { width: 1px; height: 36px; background: var(--border); flex-shrink: 0; }
  .dash-hero-badge { background: rgba(34,197,94,0.12); border: 1px solid rgba(34,197,94,0.3); color: var(--green); font-size: 13px; font-weight: 700; padding: 8px 18px; border-radius: 20px; white-space: nowrap; flex-shrink: 0; }
  .dash-hero-divider { height: 1px; background: var(--border); }
  .dash-hero-plat-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--text-dim); margin-bottom: 12px; }

  /* PLATFORM HEALTH */
  .platform-strip-outer { display: flex; align-items: center; gap: 6px; margin-bottom: 28px; }
  .platform-strip-outer .plat-arrow { flex-shrink: 0; background: none; border: none; color: #fff; font-size: 22px; cursor: pointer; padding: 0 4px; }
  .platform-strip { display: flex !important; flex-wrap: nowrap !important; overflow: hidden; flex: 1; gap: 10px; }
  .platform-strip .platform-pill { flex: 0 0 130px !important; width: 130px; height: 130px; display: flex !important; flex-direction: column; align-items: center; justify-content: center; }
  .platform-pill { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 12px 10px; text-align: center; text-decoration: none; display: block; transition: border-color 0.15s, background 0.15s; cursor: pointer; }
  .platform-pill:hover { border-color: var(--accent); background: rgba(79,142,247,0.07); }
  .platform-pill .p-icon { width: 28px; height: 28px; margin: 0 auto 8px; display: block; object-fit: contain; }
  .platform-pill svg.p-icon { display: block; }
  .platform-pill .p-name { font-size: 13px; font-weight: 600; color: var(--text-muted); display: block; margin-bottom: 4px; }
  .p-status-row { display: flex; flex-direction: column; align-items: center; gap: 3px; margin-top: 2px; }
  .platform-pill .p-status { display: inline-block; font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 10px; text-transform: uppercase; letter-spacing: 0.3px; }
  .status-live      { background: rgba(34,197,94,0.15);   color: var(--green); }
  .status-connected { background: rgba(79,142,247,0.15);  color: var(--accent); }
  .status-inactive  { background: rgba(107,114,128,0.15); color: var(--gray);  }

  /* STAT CARDS */
  .stat-row { display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px; }
  .stat-row-2 { display: none; }
  .stat-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 10px 10px; }
  .stat-label { font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.8px; color: var(--text-muted); margin-bottom: 4px; }
  .stat-value { font-size: 20px; font-weight: 800; color: var(--text); letter-spacing: -0.5px; line-height: 1; margin-bottom: 2px; }
  .stat-sub { font-size: 10px; color: var(--text-dim); }
  .stat-accent { color: var(--accent); }
  .stat-green  { color: var(--green);  }

  /* QUICK STATS ROW */
  .qs-row { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; margin: 10px 0 14px; }
  .qs-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 8px 8px; text-align: center; position: relative; overflow: hidden; transition: border-color 0.2s, transform 0.2s; display: flex; align-items: center; gap: 7px; }
  .qs-card:hover { border-color: rgba(79,142,247,0.4); transform: translateY(-1px); }
  .qs-card::before { content:''; position:absolute; top:0; left:0; bottom:0; width:2px; background: linear-gradient(180deg, var(--accent), var(--accent2)); opacity:0; transition: opacity 0.2s; }
  .qs-card:hover::before { opacity: 1; }
  .qs-card.qs-highlight { border-color: rgba(34,197,94,0.3); background: rgba(34,197,94,0.04); }
  .qs-card.qs-highlight::before { background: linear-gradient(180deg, var(--green), #16a34a); opacity: 1; }
  .qs-icon { font-size: 15px; flex-shrink: 0; }
  .qs-body { text-align: left; }
  .qs-value { font-size: 26px; font-weight: 900; color: #fff; letter-spacing: -1px; line-height: 1; }
  #qs-lifetime-val { color: #fbbf24 !important; }
  .qs-card.qs-highlight .qs-value { color: var(--green); }
  .qs-label { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.6px; color: var(--text-muted); margin-top: 2px; }
  .qs-sub { font-size: 11px; color: var(--accent); margin-top: 1px; }

  /* RAMP BAR — STICKY WEEK SELECTOR */
  .ramp-bar-wrapper { background: var(--bg); padding: 12px 0 10px; margin: 0 -40px; padding-left: 40px; padding-right: 40px; border-bottom: 1px solid var(--border); }
  .ramp-bar-label { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--text); margin-bottom: 4px; text-align: center; }
  .ramp-bar-subtitle { font-size: 12px; color: var(--text-muted); text-align: center; margin-bottom: 8px; letter-spacing: 0.4px; }
  .ramp-bar-outer { display: flex; align-items: stretch; gap: 0; border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
  .ramp-arrow { flex-shrink: 0; width: 32px; background: var(--surface2); border: none; color: var(--text-muted); cursor: pointer; font-size: 20px; display: flex; align-items: center; justify-content: center; transition: background 0.15s, color 0.15s; user-select: none; }
  .ramp-arrow:hover { background: rgba(79,142,247,0.15); color: var(--accent); }
  .ramp-arrow-left { border-right: 1px solid var(--border); }
  .ramp-arrow-right { border-left: 1px solid var(--border); }
  .ramp-bar { background: var(--surface); flex: 1; display: flex; overflow-x: scroll; overflow-y: hidden; scroll-behavior: smooth; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .ramp-bar::-webkit-scrollbar { display: none; }
  .ramp-week { flex-shrink: 0; text-align: center; padding: 10px 8px; border-right: 1px solid var(--border); font-size: 11px; cursor: pointer; transition: background 0.15s; user-select: none; }
  .ramp-week:last-child { border-right: none; }
  .ramp-week:hover { background: var(--surface2); }
  .ramp-week-label  { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--text-dim); margin-bottom: 3px; }
  .ramp-week-dates  { font-size: 12px; color: #fff; margin-bottom: 5px; }
  .ramp-week-tracks { font-size: 13px; font-weight: 600; color: var(--accent); }
  .ramp-week.done .ramp-week-label  { color: var(--text-dim); }
  .ramp-week.done .ramp-week-tracks { color: var(--accent); }
  .ramp-week.active .ramp-week-label  { color: var(--green) !important; }
  .ramp-week.active .ramp-week-tracks { color: var(--green) !important; }
  .ramp-week.selected { background: rgba(79,142,247,0.1); box-shadow: inset 0 0 0 1px var(--accent); }
  .ramp-week.selected .ramp-week-label  { color: var(--accent); }
  .ramp-week.selected .ramp-week-dates  { color: var(--text-muted); }
  .ramp-week.selected .ramp-week-tracks { color: var(--text); }

  /* LEGEND */
  .legend { display: flex; align-items: center; gap: 16px; row-gap: 7px; padding: 10px 16px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); margin-bottom: 16px; flex-wrap: wrap; }
  .legend > div { flex-wrap: wrap; }
  .plat-active   { font-size:11px; font-weight:800; letter-spacing:0.5px; padding:3px 9px; border-radius:4px; background:rgba(34,197,94,0.15); color:#fff; border:1px solid rgba(34,197,94,0.5); }
  .plat-inactive { font-size:11px; font-weight:800; letter-spacing:0.5px; padding:3px 9px; border-radius:4px; background:rgba(255,255,255,0.03); color:rgba(255,255,255,0.3); border:1px solid rgba(255,255,255,0.1); }
  .plat-inactive { font-size:10px; font-weight:800; letter-spacing:0.5px; padding:3px 8px; border-radius:4px; background:rgba(255,255,255,0.03); color:var(--text-dim); border:1px solid var(--border); opacity:0.5; }
  .legend-label { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.8px; color: #fff; margin-right: 2px; white-space: nowrap; }
  .legend-divider { flex-basis: 100%; width: 100%; height: 0; background: none; margin: 0; }
  .legend-item { display: flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 600; color: rgba(255,255,255,0.8); white-space: nowrap; }
  .legend-dot { width: 22px; height: 22px; border-radius: 4px; display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 800; flex-shrink: 0; }

  /* WEEK BLOCK — collapsible container */
  .week-block { margin-top: 28px; border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
  .week-block-header { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; background: var(--surface2); cursor: pointer; user-select: none; transition: background 0.15s; }
  .week-block-header:hover { background: rgba(79,142,247,0.08); }
  .week-block-header-left { display: flex; align-items: center; gap: 10px; }
  .week-block-status-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
  .week-block-status-dot.active  { background: var(--accent); box-shadow: 0 0 6px var(--accent); }
  .week-block-status-dot.done    { background: var(--green); }
  .week-block-status-dot.upcoming{ background: var(--text-dim); }
  .week-block-title { font-size: 16px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.8px; color: var(--text); }
  .week-block-header-right { display: flex; align-items: center; gap: 12px; }
  .week-block-meta { font-size: 14px; color: var(--text-dim); }
  .week-block-chevron { width: 12px; height: 8px; color: var(--text-dim); transition: transform 0.25s; flex-shrink: 0; }
  .wk-nav-arrows { display: flex; align-items: center; gap: 4px; margin-right: 10px; }
  .wk-nav-btn { background: var(--surface); border: 1px solid var(--border); color: #fff; border-radius: 4px; width: 26px; height: 26px; font-size: 22px; font-weight: 700; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.15s, color 0.15s, border-color 0.15s; padding: 0; }
  .wk-nav-btn:hover:not(:disabled) { background: rgba(79,142,247,0.12); border-color: var(--accent); color: #fff; }
  .wk-nav-btn:disabled { opacity: 0.25; cursor: default; }
  .week-block.collapsed .week-block-chevron { transform: rotate(-90deg); }
  .week-block-body { padding: 24px 20px 20px; }
  .week-block.collapsed .week-block-body { display: none; }

  /* WEEK GRID */
  .week-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px; align-items: start; }
  .day-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; cursor: pointer; transition: border-color 0.15s, box-shadow 0.15s; }
  .day-card:hover { border-color: rgba(79,142,247,0.5); box-shadow: 0 0 0 1px rgba(79,142,247,0.3); }
  .day-card.today { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
  .day-card.past  { opacity: 0.75; }

  /* DAY MODAL */
  .day-modal-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.65); z-index: 1000; align-items: center; justify-content: center; padding: 24px; }
  .day-modal-overlay.open { display: flex; }
  .day-modal { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); width: 100%; max-width: 560px; max-height: 85vh; display: flex; flex-direction: column; box-shadow: 0 24px 64px rgba(0,0,0,0.6); animation: modalIn 0.18s ease; }
  @keyframes modalIn { from { opacity:0; transform:translateY(12px) scale(0.98); } to { opacity:1; transform:translateY(0) scale(1); } }
  .day-modal-header { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid var(--border); flex-shrink: 0; }
  .day-modal-title { font-size: 15px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.8px; color: var(--text); }
  .day-modal-date { font-size: 12px; color: var(--text-dim); margin-top: 2px; }
  .day-modal-close { width: 28px; height: 28px; border-radius: 6px; border: 1px solid var(--border); background: var(--surface2); color: var(--text-muted); cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 14px; transition: all 0.15s; flex-shrink: 0; }
  .day-modal-close:hover { background: var(--bg); color: var(--text); border-color: var(--accent); }
  .day-modal-body { overflow-y: auto; padding: 16px 20px; display: flex; flex-direction: column; gap: 12px; }
  .day-header { padding: 10px 12px; background: var(--surface2); border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; }
  .day-name { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.8px; color: var(--text-muted); }
  .day-date { font-size: 13px; color: var(--text-muted); }
  .today .day-name { color: var(--accent); }
  .day-posts { padding: 10px; display: flex; flex-direction: column; gap: 6px; }
  .day-empty { padding: 20px 10px; text-align: center; font-size: 11px; color: var(--text-dim); font-style: italic; }

  /* TRACK SUMMARY ROW — the primary day view */
  .track-row { background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 10px 12px; display: flex; align-items: center; gap: 10px; position: relative; }
  .track-row-info { flex: 1; min-width: 0; }
  .track-row-badge { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 3px; }
  .track-pill { font-size: 12px; font-weight: 700; padding: 3px 10px; border-radius: 4px; white-space: nowrap; }
  .track-a { background: #1e3a8a; color: #bfdbfe; border: 1px solid rgba(96,165,250,0.4); }
  .track-b { background: #1e3a8a; color: #bfdbfe; border: 1px solid rgba(96,165,250,0.4); }
  .track-c { background: #1e3a8a; color: #bfdbfe; border: 1px solid rgba(96,165,250,0.4); }
  .track-d { background: #1e3a8a; color: #bfdbfe; border: 1px solid rgba(96,165,250,0.4); }
  .track-e { background: #1e3a8a; color: #bfdbfe; border: 1px solid rgba(96,165,250,0.4); }
  .track-name { font-size: 13px; font-weight: 600; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .track-gbp-tag { font-size: 9px; font-weight: 700; background: rgba(34,197,94,0.12); color: var(--green); border: 1px solid rgba(34,197,94,0.25); padding: 1px 6px; border-radius: 3px; white-space: nowrap; }
  .post-num-badge { position: absolute; top: 8px; right: 10px; font-size: 12px; font-weight: 700; color: #93c5fd; letter-spacing: 0.05em; }
  .track-status-dots { display: flex; flex-wrap: wrap; gap: 3px; margin-top: 5px; }

  /* POST DETAIL DRAWER — hidden, replaced by right panel */
  .day-detail-toggle { display: none; }
  .day-detail-drawer { display: none !important; }

  /* POST ENTRY (inside drawer) */
  .post-entry { background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 10px; }
  .post-slot-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 5px; }
  .post-slot { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--text-muted); }
  .post-time { font-size: 12px; font-weight: 700; color: var(--accent); }
  .post-time.tbd { color: var(--text-muted); font-style: italic; }
  .post-track { display: inline-block; font-size: 12px; font-weight: 700; padding: 2px 7px; border-radius: 4px; margin-bottom: 5px; }
  .post-hook { font-size: 14px; font-weight: 700; color: var(--text); line-height: 1.4; margin-bottom: 4px; }
  .post-hook.tbd { color: var(--text-muted); font-style: italic; font-weight: 400; }
  .post-framework { font-size: 12px; color: var(--text-muted); margin-bottom: 3px; font-style: italic; }
  .post-pillar { font-size: 12px; color: var(--text-muted); margin-bottom: 6px; }

  .platform-dots { display: flex; flex-wrap: wrap; gap: 4px; }
  .pdot { width: 26px; height: 26px; border-radius: 4px; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; cursor: default; }
  .pdot-published    { background: rgba(34,197,94,0.2);   color: var(--green);  border: 1px solid rgba(34,197,94,0.3);   }
  .pdot-scheduled    { background: rgba(79,142,247,0.15);  color: var(--accent); border: 1px solid rgba(79,142,247,0.3);  }
  .pdot-pending      { background: rgba(245,158,11,0.15);  color: var(--yellow); border: 1px solid rgba(245,158,11,0.3);  }
  .pdot-failed       { background: rgba(239,68,68,0.15);   color: var(--red);    border: 1px solid rgba(239,68,68,0.3);   }
  .pdot-rescheduled         { background: rgba(236,72,153,0.15); color: #ec4899; border: 1px solid rgba(236,72,153,0.5); }
  .pdot-rescheduled-here    { background: rgba(245,158,11,0.15); color: var(--yellow); border: 1px solid #ec4899; }
  .pdot-rescheduled-published { background: rgba(34,197,94,0.2); color: var(--green); border: 1px solid #ec4899; }
  .pdot-replaced     { background: rgba(34,197,94,0.2); color: var(--green); border: 2px solid #ef4444; }
  .pdot-empty        { background: var(--surface2); color: var(--text-dim); border: 1px solid var(--border); }

  /* HISTORY TABLE */
  .history-table, .demo-table {
    width: 100%; border-collapse: collapse; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden;
  }
  .history-table th, .demo-table th { background: var(--surface2); padding: 10px 14px; text-align: left; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.8px; color: var(--text-muted); border-bottom: 1px solid var(--border); }
  .history-table td, .demo-table td { padding: 11px 14px; border-bottom: 1px solid var(--border); font-size: 12px; color: var(--text); vertical-align: middle; }
  .history-table tr:last-child td, .demo-table tr:last-child td { border-bottom: none; }
  .history-table tr:hover td, .demo-table tr:hover td { background: var(--surface2); }

  .badge { display: inline-block; font-size: 10px; font-weight: 700; padding: 3px 9px; border-radius: 4px; text-transform: uppercase; letter-spacing: 0.3px; }
  .badge-published { background: rgba(34,197,94,0.15);  color: var(--green);  }
  .badge-scheduled { background: rgba(79,142,247,0.15); color: var(--accent); }
  .badge-pending   { background: rgba(245,158,11,0.15); color: var(--yellow); }
  .badge-none      { background: rgba(107,114,128,0.1); color: var(--gray);   }

  .platforms-cell { display: flex; flex-wrap: wrap; gap: 3px; }
  .pillar-tag { display: inline-block; font-size: 10px; color: var(--text-muted); background: var(--surface2); border: 1px solid var(--border); padding: 2px 8px; border-radius: 4px; }

  /* PULLDOWN TOGGLES */
  .pulldown-toggle { display: flex; align-items: center; gap: 10px; padding: 12px 16px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); cursor: pointer; user-select: none; margin-top: 10px; }
  .pulldown-toggle:hover { background: var(--surface2); }
  .pulldown-toggle-label { font-size: 12px; color: var(--text-muted); font-weight: 600; }
  .pulldown-toggle-arrow { font-size: 10px; color: var(--text-dim); margin-left: auto; transition: transform 0.2s; }
  .pulldown-toggle.open .pulldown-toggle-arrow { transform: rotate(180deg); }
  .pulldown-content { display: none; margin-top: 10px; }
  .pulldown-content.open { display: block; }

  /* COPY DRAWER */
  .copy-toggle { display: flex; align-items: center; gap: 6px; margin-top: 8px; cursor: pointer; user-select: none; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.6px; color: var(--text-dim); padding: 5px 0; border-top: 1px solid var(--border); }
  .copy-toggle:hover { color: var(--accent); }
  .copy-toggle .copy-arrow { font-size: 8px; transition: transform 0.2s; }
  .copy-toggle.open { color: var(--accent); }
  .copy-toggle.open .copy-arrow { transform: rotate(180deg); }
  .copy-drawer { display: none; margin-top: 8px; }
  .copy-drawer.open { display: block; }
  .copy-platform-row { display: flex; gap: 8px; margin-bottom: 8px; align-items: flex-start; }
  .copy-platform-row:last-child { margin-bottom: 0; }
  .copy-plat-badge { flex-shrink: 0; width: 28px; height: 20px; border-radius: 3px; display: flex; align-items: center; justify-content: center; font-size: 9px; font-weight: 700; background: var(--surface2); color: var(--text-muted); border: 1px solid var(--border); margin-top: 1px; }
  .copy-text { font-size: 13px; color: var(--text); line-height: 1.6; flex: 1; }
  .copy-text.tbd { color: var(--text-muted); font-style: italic; }

  /* DEMO */
  .demo-outcome-bar { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 16px; }
  .demo-outcome-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px 20px; text-align: center; }
  .demo-outcome-value { font-size: 32px; font-weight: 800; letter-spacing: -1px; line-height: 1; margin-bottom: 4px; }
  .demo-outcome-label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.8px; color: var(--text-muted); }
  .demo-outcome-sub   { font-size: 11px; color: var(--text-dim); margin-top: 4px; }
  .demo-zero { padding: 32px; text-align: center; color: var(--text-dim); font-size: 13px; }
  .demo-zero-sub { font-size: 11px; margin-top: 4px; color: var(--text-dim); }

  /* OPEN ITEMS */
  .notes-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
  .note-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px 18px; }
  .note-card.warning { border-color: rgba(245,158,11,0.4); background: rgba(245,158,11,0.05); }
  .note-card.info    { border-color: rgba(79,142,247,0.3);  background: rgba(79,142,247,0.04); }
  .note-title { font-size: 12px; font-weight: 700; color: var(--text); margin-bottom: 10px; display: flex; align-items: center; gap: 8px; }
  .note-body { font-size: 12px; color: var(--text-muted); line-height: 1.6; }
  .note-body li { margin-left: 14px; margin-bottom: 4px; }

  code { background: var(--surface2); color: var(--accent); padding: 1px 5px; border-radius: 3px; font-size: 11px; }

  /* PRODUCTION DETAIL */
  .prod-day-row { border: 1px solid var(--border); border-radius: var(--radius); margin-bottom: 8px; overflow: hidden; }
  .prod-day-header { display: flex; align-items: center; justify-content: space-between; padding: 13px 18px; background: var(--surface); cursor: pointer; user-select: none; transition: background 0.15s; }
  .prod-day-header:hover { background: var(--surface2); }
  .prod-day-header.open { background: var(--surface2); border-bottom: 1px solid var(--border); }
  .prod-day-title { font-size: 15px; font-weight: 700; color: var(--text); display: flex; align-items: center; gap: 12px; }
  .prod-day-date { font-size: 13px; color: var(--text-muted); font-weight: 400; }
  .prod-day-tracks-preview { display: flex; gap: 6px; }
  .prod-day-arrow { font-size: 10px; color: var(--text-dim); transition: transform 0.2s; }
  .prod-day-header.open .prod-day-arrow { transform: rotate(180deg); }
  .prod-day-body { display: none; padding: 16px; background: var(--bg); }
  .prod-day-body.open { display: block; }

  .prod-track-block { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; margin-bottom: 14px; }
  .prod-track-block:last-child { margin-bottom: 0; }
  .prod-track-header { padding: 10px 14px; background: var(--surface2); display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--border); }
  .prod-track-name-full { font-size: 14px; font-weight: 600; color: var(--text-muted); }

  .prod-fields { padding: 14px; display: flex; flex-direction: column; gap: 12px; }
  .prod-field { display: flex; flex-direction: column; gap: 4px; }
  .prod-field-label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.8px; color: var(--text-muted); }
  .prod-field-value { font-size: 14px; color: var(--text); line-height: 1.6; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 10px 14px; }
  .prod-field-value.placeholder { color: var(--text-dim); font-style: italic; border-style: dashed; }

  .prod-copy-block { display: flex; flex-direction: column; gap: 8px; }
  .prod-copy-row { display: flex; gap: 10px; align-items: flex-start; }
  .prod-copy-plat { flex-shrink: 0; width: 32px; height: 22px; border-radius: 3px; display: flex; align-items: center; justify-content: center; font-size: 9px; font-weight: 700; background: var(--surface2); color: var(--text-muted); border: 1px solid var(--border); margin-top: 1px; }
  .prod-copy-text { font-size: 11px; color: var(--text-muted); line-height: 1.6; flex: 1; }
  .prod-copy-text.placeholder { color: var(--text-dim); font-style: italic; }

  /* CLIENT HERO BANNER */
  .client-hero { position: relative; width: 100%; border-radius: var(--radius); overflow: hidden; margin-bottom: 28px; border: 1px solid var(--border); }
  .client-hero img { width: 100%; height: 165px; object-fit: cover; object-position: center 30%; display: block; }
  .client-hero-overlay { position: absolute; inset: 0; background: linear-gradient(to bottom, transparent 40%, rgba(10,12,18,0.55) 100%); display: flex; align-items: flex-end; padding: 14px 20px; }
  .client-hero-label { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 1.2px; color: rgba(255,255,255,0.45); }

  /* DAILY ROTATION GRID */
  .rotation-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-bottom: 8px; }
  .rotation-slot { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px; display: flex; flex-direction: column; gap: 6px; }
  .rotation-time { font-size: 18px; font-weight: 700; color: var(--accent); letter-spacing: -0.5px; }
  .rotation-track { display: inline-block; font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 4px; width: fit-content; }
  .rotation-label { font-size: 15px; font-weight: 600; color: var(--text); }
  .rotation-plats { font-size: 14px; color: var(--text-muted); line-height: 1.7; margin-top: 2px; }

  /* 8-WEEK ROADMAP */
  .roadmap-legend { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 18px; }
  .roadmap-legend-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.8px; color: var(--text-dim); margin-right: 4px; }
  .rl-chip { font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 4px; }

  .roadmap-weeks { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 24px; }

  /* ── RW: Rich Week Cards (8-Week Roadmap tab) ── */
  .rw-card { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; margin-bottom: 20px; overflow: hidden; transition: border-color 0.15s, box-shadow 0.15s; }
  .rw-card:last-child { margin-bottom: 0; }
  .rw-card.rw-current { border-color: rgba(79,142,247,0.5); box-shadow: 0 0 0 1px rgba(79,142,247,0.2); }
  .rw-card.rw-goal { border-color: rgba(34,197,94,0.4); }

  .rw-header { background: var(--surface2); padding: 16px 20px; display: flex; align-items: center; gap: 20px; }
  .rw-num { font-size: 28px; font-weight: 900; color: var(--accent); letter-spacing: -1px; min-width: 48px; line-height: 1; }
  .rw-card.rw-goal .rw-num { color: var(--green); }
  .rw-header-mid { display: flex; flex-direction: column; gap: 3px; }
  .rw-theme { font-size: 18px; font-weight: 800; color: var(--text); line-height: 1.2; }
  .rw-dates { font-size: 14px; color: var(--text-dim); }
  .rw-stats { display: flex; gap: 12px; margin-left: auto; flex-wrap: wrap; align-items: center; }
  .rw-stat { background: var(--bg); border: 1px solid var(--border); border-radius: 20px; padding: 5px 14px; font-size: 13px; font-weight: 700; color: var(--text-muted); white-space: nowrap; }
  .rw-stat.rw-stat-vid { color: #ec4899; border-color: rgba(236,72,153,0.3); }
  .rw-stat.rw-stat-img { color: #38bdf8; border-color: rgba(56,189,248,0.3); }
  .rw-stat.rw-stat-car { color: #a855f7; border-color: rgba(168,85,247,0.3); }
  .rw-stat.rw-stat-goal { color: var(--green); border-color: rgba(34,197,94,0.3); font-size: 11px; }

  .rw-tracks { padding: 10px 20px; border-bottom: 1px solid var(--border); display: flex; gap: 8px; align-items: center; flex-wrap: wrap; background: rgba(0,0,0,0.15); }
  .rw-tracks-label { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.8px; color: var(--text-dim); margin-right: 4px; }
  .rw-track-pill { font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 20px; border: 1px solid; }
  .rw-tp-a { color: #22c55e; border-color: rgba(34,197,94,0.4); background: rgba(34,197,94,0.08); }
  .rw-tp-b { color: #38bdf8; border-color: rgba(56,189,248,0.4); background: rgba(56,189,248,0.08); }
  .rw-tp-c { color: #06b6d4; border-color: rgba(6,182,212,0.4); background: rgba(6,182,212,0.08); }
  .rw-tp-d { color: #a855f7; border-color: rgba(168,85,247,0.4); background: rgba(168,85,247,0.08); }
  .rw-tp-e { color: #ec4899; border-color: rgba(236,72,153,0.4); background: rgba(236,72,153,0.08); }

  .rw-days { display: grid; gap: 1px; background: var(--border); }
  .rw-days-6 { grid-template-columns: repeat(6, 1fr); }
  .rw-days-7 { grid-template-columns: repeat(7, 1fr); }
  .rw-day { background: var(--bg); display: flex; flex-direction: column; gap: 0; }
  .rw-day-label { text-align: center; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--text-dim); padding: 10px 4px; background: var(--surface2); border-bottom: 1px solid var(--border); }
  .rw-slot { padding: 10px 12px; display: flex; flex-direction: column; gap: 4px; border-left: 3px solid transparent; border-bottom: 1px solid rgba(42,48,69,0.5); }
  .rw-slot:last-child { border-bottom: none; }
  .rw-slot-a { border-left-color: #22c55e; background: rgba(34,197,94,0.04); }
  .rw-slot-b { border-left-color: #38bdf8; background: rgba(56,189,248,0.04); }
  .rw-slot-c { border-left-color: #06b6d4; background: rgba(6,182,212,0.04); }
  .rw-slot-d { border-left-color: #a855f7; background: rgba(168,85,247,0.04); }
  .rw-slot-e { border-left-color: #ec4899; background: rgba(236,72,153,0.04); }
  .rw-badge { font-size: 10px; font-weight: 800; }
  .rw-badge-a { color: #22c55e; }
  .rw-badge-b { color: #38bdf8; }
  .rw-badge-c { color: #06b6d4; }
  .rw-badge-d { color: #a855f7; }
  .rw-badge-e { color: #ec4899; }
  .rw-name { font-size: 13px; font-weight: 700; color: var(--text); line-height: 1.3; }
  .rw-type { font-size: 12px; color: var(--text-dim); }
  .rw-off { padding: 20px 10px; text-align: center; color: var(--text-dim); font-size: 12px; background: var(--surface); flex: 1; display: flex; align-items: center; justify-content: center; opacity: 0.4; }

  .rw-totals { display: flex; gap: 0; border-top: 1px solid var(--border); }
  .rw-total { flex: 1; padding: 10px 16px; border-right: 1px solid var(--border); text-align: center; }
  .rw-total:last-child { border-right: none; }
  .rw-total-val { font-size: 20px; font-weight: 800; color: var(--accent); display: block; }
  .rw-total-label { font-size: 12px; text-transform: uppercase; color: var(--text-dim); letter-spacing: 0.5px; }

  /* legend at top of roadmap panel */
  .rw-legend { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 24px; padding: 14px 18px; background: var(--surface); border: 1px solid var(--border); border-radius: 10px; align-items: center; }
  .rw-legend-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.8px; color: var(--text-dim); margin-right: 4px; }
  .rw-legend-item { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: var(--text-muted); }
  .rw-legend-dot { width: 10px; height: 10px; border-radius: 2px; flex-shrink: 0; }

  /* WEEK ROADMAP MODAL */
  .wk-modal-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.7); z-index: 1100; align-items: center; justify-content: center; padding: 24px; }
  .wk-modal-overlay.open { display: flex; }
  .wk-modal { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); width: 100%; max-width: 760px; max-height: 90vh; display: flex; flex-direction: column; box-shadow: 0 24px 80px rgba(0,0,0,0.7); animation: modalIn 0.18s ease; }
  .wk-modal-header { display: flex; align-items: flex-start; justify-content: space-between; padding: 20px 24px 16px; border-bottom: 1px solid var(--border); flex-shrink: 0; }
  .wk-modal-week-num { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 4px; }
  .wk-modal-title { font-size: 22px; font-weight: 800; letter-spacing: -0.5px; color: var(--text); line-height: 1.2; }
  .wk-modal-dates { font-size: 13px; color: var(--text-dim); margin-top: 3px; }
  .wk-modal-close { width: 30px; height: 30px; border-radius: 6px; border: 1px solid var(--border); background: var(--surface2); color: var(--text-muted); cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 14px; transition: all 0.15s; flex-shrink: 0; margin-top: 2px; }
  .wk-modal-close:hover { background: var(--bg); color: var(--text); border-color: var(--accent); }
  .wk-modal-body { overflow-y: auto; padding: 20px 24px; display: flex; flex-direction: column; gap: 20px; }

  /* stats bar inside week modal */
  .wk-stat-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
  .wk-stat { background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 12px 14px; }
  .wk-stat-label { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.8px; color: var(--text-dim); margin-bottom: 5px; }
  .wk-stat-val { font-size: 20px; font-weight: 800; letter-spacing: -0.5px; color: var(--text); }
  .wk-stat-sub { font-size: 10px; color: var(--text-dim); margin-top: 2px; }

  /* daily schedule table inside week modal */
  .wk-schedule { width: 100%; border-collapse: collapse; }
  .wk-schedule th { background: var(--surface2); padding: 8px 12px; text-align: left; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.8px; color: var(--text-muted); border-bottom: 1px solid var(--border); }
  .wk-schedule td { padding: 10px 12px; border-bottom: 1px solid var(--border); font-size: 12px; vertical-align: top; }
  .wk-schedule tr:last-child td { border-bottom: none; }
  .wk-schedule tr:hover td { background: rgba(255,255,255,0.02); }
  .wk-day-name { font-weight: 700; color: var(--text); font-size: 12px; white-space: nowrap; }
  .wk-slots { display: flex; flex-direction: column; gap: 5px; }
  .wk-slot { display: flex; align-items: center; gap: 8px; }
  .wk-slot-time { font-size: 11px; color: var(--accent); font-weight: 700; width: 48px; flex-shrink: 0; }
  .wk-slot-track { font-size: 10px; font-weight: 800; padding: 2px 7px; border-radius: 3px; flex-shrink: 0; }
  .wk-slot-desc { font-size: 11px; color: var(--text-muted); }
  .wk-plat-chips { display: flex; flex-wrap: wrap; gap: 3px; }
  .wk-plat-chip { font-size: 9px; font-weight: 700; padding: 2px 5px; border-radius: 3px; background: var(--surface2); color: var(--text-muted); border: 1px solid var(--border); }
  .wk-plat-chip.li  { background: rgba(10,102,194,0.15); color: #4a9eed; border-color: rgba(10,102,194,0.3); }
  .wk-plat-chip.gbp { background: var(--surface2); color: var(--text-muted); border-color: var(--border); }

  /* track legend inside modal */
  .wk-track-legend { display: flex; flex-wrap: wrap; gap: 8px; }
  .wk-track-def { display: flex; align-items: flex-start; gap: 8px; background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 10px 12px; flex: 1; min-width: 200px; }
  .wk-track-pill { font-size: 11px; font-weight: 800; padding: 3px 9px; border-radius: 4px; flex-shrink: 0; margin-top: 1px; }
  .wk-track-info { display: flex; flex-direction: column; gap: 2px; }
  .wk-track-name { font-size: 12px; font-weight: 700; color: var(--text); }
  .wk-track-desc { font-size: 11px; color: var(--text-dim); line-height: 1.5; }

  /* milestone note */
  .wk-milestone { background: rgba(79,142,247,0.06); border: 1px solid rgba(79,142,247,0.2); border-radius: var(--radius-sm); padding: 12px 16px; font-size: 12px; color: var(--text-muted); line-height: 1.6; }
  .wk-milestone.goal { background: rgba(34,197,94,0.05); border-color: rgba(34,197,94,0.2); }
  .wk-milestone strong { color: var(--text); }

  .rm-header { padding: 12px 14px; background: var(--surface2); border-bottom: 1px solid var(--border); }
  .rm-week.rm-active .rm-header { background: rgba(79,142,247,0.1); }
  .rm-week.rm-goal .rm-header { background: rgba(245,158,11,0.07); }

  .rm-num { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--text-dim); margin-bottom: 2px; }
  .rm-week.rm-active .rm-num { color: var(--accent); }
  .rm-week.rm-goal .rm-num { color: var(--yellow); }

  .rm-theme { font-size: 13px; font-weight: 700; color: var(--text); margin-bottom: 4px; line-height: 1.3; }
  .rm-info { display: flex; align-items: center; justify-content: space-between; }
  .rm-dates { font-size: 10px; color: var(--text-dim); }
  .rm-vidcount { display: flex; align-items: center; gap: 4px; }
  .rm-vid-num { font-size: 14px; font-weight: 800; color: var(--red); line-height: 1; }
  .rm-vid-label { font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--text-dim); }

  .rm-days { display: grid; grid-template-columns: repeat(6, 1fr); gap: 4px; padding: 10px; }
  .rm-day { display: flex; flex-direction: column; align-items: center; gap: 3px; }
  .rm-day-label { font-size: 8px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.3px; color: var(--text-dim); margin-bottom: 1px; }
  .rm-block { font-size: 8px; font-weight: 800; width: 22px; height: 18px; border-radius: 3px; display: flex; align-items: center; justify-content: center; letter-spacing: 0; }
  .rm-block.rm-humor { font-size: 7px; }
  .rm-day.rm-day-off { opacity: 0.35; }
  .rm-off-label { font-size: 11px; color: var(--text-dim); margin-top: 4px; }

  .rm-footer { padding: 8px 14px; border-top: 1px solid var(--border); font-size: 10px; color: var(--text-dim); font-style: italic; background: var(--bg); }

  /* FOOTER */
  .footer { text-align: center; padding: 28px 32px; font-size: 11px; color: var(--text-dim); border-top: 1px solid var(--border); margin-top: 40px; }

  /* TAB NAV */
  .dash-tab-nav-wrapper {
    margin: 12px 0 0;
    width: 100%;
    background: var(--surface);
    border-radius: var(--radius-sm);
    padding: 4px 8px;
    border: 1px solid var(--border);
    position: relative;
  }
  .dash-tab-row { display: flex; align-items: center; justify-content: space-evenly; width: 100%; }
  .dash-tab-row-divider { height: 1px; background: rgba(79,142,247,0.12); margin: 1px 0; }
  .dash-tab-row-label { display: none; }
  .dash-tab-nav { display: flex; gap: 0; }
  .dash-tab-row .dash-tab-btn { flex: 1; justify-content: center; }
  .dash-tab-btn {
    padding: 8px 12px; font-size: 13px; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.5px; color: #fff; background: none; border: 1px solid transparent;
    cursor: pointer; border-radius: 6px; transition: all 0.2s ease; font-family: var(--font);
    position: relative; white-space: nowrap; display: flex; align-items: center; gap: 6px;
  }
  .dash-tab-icon { font-size: 15px; line-height: 1; }
  .dash-tab-btn:hover {
    color: #fff;
    background: rgba(79,142,247,0.1);
    border-color: rgba(79,142,247,0.3);
  }
  .dash-tab-btn.active {
    background: rgba(79,142,247,0.1);
    color: rgb(79,142,247);
    border: 1px solid rgb(79,142,247);
    border-radius: var(--radius-sm);
    box-shadow: 0 0 14px rgba(79,142,247,0.25);
  }
  .tab-divider { width: 1px; height: 20px; background: rgba(79,142,247,0.2); margin: 0 2px; flex-shrink: 0; align-self: center; }
  .dash-tab-panel { display: none; }
  .dash-tab-panel.active { min-height: 100vh; }
  .dash-tab-panel.active { display: block; }

/* ── ANALYTICS PANEL ────────────────────────────────────────── */
/* ── ANALYTICS PANEL ───────────────────────────────────────── */
    .an-section { margin-bottom: 48px; }
    .an-section-title { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1.2px; color: var(--text-dim); margin-bottom: 18px; display: flex; align-items: center; gap: 10px; }
    .an-section-title::after { content:''; flex:1; height:1px; background:var(--border); }

    /* Hero stat cards */
    .an-hero { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; margin-bottom: 48px; }
    .an-hero-card { background: var(--surface); border: 1px solid var(--border); border-radius: 14px; padding: 28px 24px; position: relative; overflow: hidden; }
    .an-hero-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; }
    .an-hero-card.accent::before { background: linear-gradient(90deg, var(--accent), var(--accent2)); }
    .an-hero-card.green::before  { background: linear-gradient(90deg, var(--green), #16a34a); }
    .an-hero-card.yellow::before { background: linear-gradient(90deg, var(--yellow), #d97706); }
    .an-hero-card.purple::before { background: linear-gradient(90deg, var(--accent2), #6d28d9); }
    .an-hero-label { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.8px; color: var(--text-dim); margin-bottom: 12px; }
    .an-hero-value { font-size: 52px; font-weight: 900; line-height: 1; letter-spacing: -2px; color: var(--text); margin-bottom: 8px; }
    .an-hero-value.accent { color: var(--accent); }
    .an-hero-value.green  { color: var(--green); }
    .an-hero-value.yellow { color: var(--yellow); }
    .an-hero-value.purple { color: var(--accent2); }
    .an-hero-sub { font-size: 13px; color: var(--text-muted); line-height: 1.4; }
    .an-hero-badge { display: inline-block; font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 20px; margin-top: 10px; }
    .an-hero-badge.up   { background: rgba(34,197,94,0.15); color: var(--green); }
    .an-hero-badge.warm { background: rgba(245,158,11,0.15); color: var(--yellow); }

    /* Platform bar chart */
    .an-platform-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
    .an-platform-card { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 24px; }
    .an-platform-card-title { font-size: 15px; font-weight: 700; color: var(--text); margin-bottom: 20px; }
    .an-bar-row { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
    .an-bar-row:last-child { margin-bottom: 0; }
    .an-bar-label { font-size: 13px; font-weight: 600; color: var(--text-muted); width: 72px; flex-shrink: 0; }
    .an-bar-track { flex: 1; height: 10px; background: rgba(255,255,255,0.05); border-radius: 5px; overflow: hidden; }
    .an-bar-fill { height: 100%; border-radius: 5px; transition: width 1s cubic-bezier(.4,0,.2,1); }
    .an-bar-val { font-size: 13px; font-weight: 700; color: var(--text); width: 52px; text-align: right; flex-shrink: 0; }

    /* Top post spotlight */
    .an-spotlight { background: var(--surface); border: 1px solid var(--border); border-radius: 14px; padding: 32px; display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: center; margin-bottom: 48px; position: relative; overflow: hidden; }
    .an-spotlight::before { content:'⭐ TOP PERFORMER — WEEK 1'; position:absolute; top:16px; right:20px; font-size:10px; font-weight:700; letter-spacing:1px; color:var(--yellow); }
    .an-spotlight-track { display: inline-block; background:#1e3a8a; color:#bfdbfe; border:1px solid rgba(96,165,250,0.4); font-size:12px; font-weight:700; padding:4px 12px; border-radius:4px; margin-bottom:12px; }
    .an-spotlight-hook { font-size: 22px; font-weight: 800; color: var(--text); line-height: 1.3; margin-bottom: 12px; max-width: 600px; }
    .an-spotlight-meta { font-size: 14px; color: var(--text-muted); }
    .an-spotlight-meta strong { color: var(--text); }
    .an-spotlight-stat { text-align: center; }
    .an-spotlight-num { font-size: 72px; font-weight: 900; color: var(--green); line-height: 1; letter-spacing: -3px; }
    .an-spotlight-num-label { font-size: 14px; font-weight: 600; color: var(--text-muted); margin-top: 4px; }

    /* Platform detail cards */
    .an-plat-detail-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
    .an-plat-card { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 20px; }
    .an-plat-card-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
    .an-plat-card-name { font-size: 15px; font-weight: 700; color: var(--text); }
    .an-plat-followers { font-size: 12px; font-weight: 700; background: rgba(255,255,255,0.05); border: 1px solid var(--border); border-radius: 20px; padding: 3px 10px; color: var(--text-muted); }
    .an-plat-stat-row { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px solid rgba(255,255,255,0.04); }
    .an-plat-stat-row:last-child { border-bottom: none; padding-bottom: 0; }
    .an-plat-stat-label { font-size: 12px; color: var(--text-dim); }
    .an-plat-stat-val { font-size: 15px; font-weight: 700; color: var(--text); }
    .an-plat-stat-val.highlight { color: var(--accent); }
    .an-plat-card.standout { border-color: rgba(34,197,94,0.3); }
    .an-plat-card.standout .an-plat-card-name { color: var(--green); }

    /* Signal section */
    .an-signal-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
    .an-signal-card { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 24px; }
    .an-signal-card.working { border-color: rgba(34,197,94,0.25); }
    .an-signal-card.thin    { border-color: rgba(245,158,11,0.2); }
    .an-signal-header { font-size: 14px; font-weight: 700; margin-bottom: 16px; display: flex; align-items: center; gap: 8px; }
    .an-signal-header.working { color: var(--green); }
    .an-signal-header.thin    { color: var(--yellow); }
    .an-signal-item { display: flex; align-items: flex-start; gap: 10px; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,0.04); font-size: 14px; color: var(--text-muted); line-height: 1.5; }
    .an-signal-item:last-child { border-bottom: none; }
    .an-signal-item strong { color: var(--text); }
    .an-signal-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; margin-top: 6px; }
    .an-signal-dot.green  { background: var(--green); }
    .an-signal-dot.yellow { background: var(--yellow); }

    /* Daily activity mini chart */
    .an-daily-chart { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 28px; }
    .an-daily-chart-title { font-size: 15px; font-weight: 700; color: var(--text); margin-bottom: 24px; }
    .an-bars { display: flex; align-items: flex-end; gap: 8px; height: 120px; }
    .an-day-col { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; }
    .an-day-bar-wrap { flex: 1; width: 100%; display: flex; flex-direction: column; justify-content: flex-end; }
    .an-day-bar { width: 100%; border-radius: 4px 4px 0 0; min-height: 3px; transition: height 1s cubic-bezier(.4,0,.2,1); }
    .an-day-label { font-size: 11px; color: var(--text-dim); font-weight: 600; white-space: nowrap; }
    .an-day-val { font-size: 11px; color: var(--text-muted); font-weight: 700; }

    /* Honest assessment box */
    .an-honest { background: rgba(79,142,247,0.05); border: 1px solid rgba(79,142,247,0.2); border-radius: 12px; padding: 24px 28px; margin-bottom: 48px; }
    .an-honest-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--accent); margin-bottom: 10px; }
    .an-honest-text { font-size: 15px; color: var(--text-muted); line-height: 1.7; }
    .an-honest-text strong { color: var(--text); }

    /* Data gaps */
    .an-gaps-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
    .an-gap-item { background: rgba(255,255,255,0.02); border: 1px solid var(--border); border-radius: 8px; padding: 14px 16px; }
    .an-gap-platform { font-size: 13px; font-weight: 700; color: var(--text-muted); margin-bottom: 4px; }
    .an-gap-reason { font-size: 12px; color: var(--text-dim); line-height: 1.4; }

    .an-updated { font-size: 12px; color: var(--text-dim); text-align: right; margin-bottom: 32px; }
    .an-updated strong { color: var(--accent); }

/* ── CONTENT TRACKS PANEL ────────────────────────────────────────── */
.ct-intro { font-size:14px; color:var(--text-muted); line-height:1.8; margin-top:0; margin-bottom:28px; padding:18px 22px; background:var(--surface); border:1px solid var(--border); border-radius:10px; }
      .ct-status-legend { display:flex; align-items:center; gap:24px; flex-wrap:wrap; margin-bottom:24px; }
      .ct-legend-item { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--text-muted); }
      .ct-legend-dot { width:11px; height:11px; border-radius:50%; flex-shrink:0; }
      .ct-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:28px; }
      .ct-card { background:var(--surface); border:1px solid var(--border); border-radius:10px; padding:22px; position:relative; overflow:hidden; }
      .ct-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; }
      .ct-card.active::before { background:var(--green); }
      .ct-card.smoke::before  { background:var(--yellow); }
      .ct-card.dormant::before { background:var(--text-dim); }
      .ct-card-header { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:14px; }
      .ct-track-id { display:flex; align-items:center; gap:12px; }
      .ct-track-letter { width:44px; height:44px; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:20px; font-weight:900; flex-shrink:0; }
      .ct-letter-a { background:#1e3a8a; color:#bfdbfe; border:1px solid rgba(96,165,250,0.4); }
      .ct-letter-b { background:#1e3a8a; color:#bfdbfe; border:1px solid rgba(96,165,250,0.4); }
      .ct-letter-c { background:#1e3a8a; color:#bfdbfe; border:1px solid rgba(96,165,250,0.4); }
      .ct-letter-d { background:#1e3a8a; color:#bfdbfe; border:1px solid rgba(96,165,250,0.4); }
      .ct-letter-e { background:#1e3a8a; color:#bfdbfe; border:1px solid rgba(96,165,250,0.4); }
      .ct-letter-f { background:#1e3a8a; color:#bfdbfe; border:1px solid rgba(96,165,250,0.4); }
      .ct-track-name { font-size:26px; font-weight:800; color:var(--text); margin-bottom:3px; line-height:1.1; }
      .ct-track-type { font-size:12px; color:var(--text-dim); }
      .ct-badge { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; padding:4px 10px; border-radius:20px; white-space:nowrap; }
      .ct-badge.active  { background:rgba(34,197,94,0.15);  color:var(--green);  }
      .ct-badge.smoke   { background:rgba(245,158,11,0.15);  color:var(--yellow); }
      .ct-badge.dormant { background:rgba(107,114,128,0.12); color:var(--text-dim); }
      .ct-desc { font-size:13px; color:var(--text-muted); line-height:1.7; margin-bottom:14px; }
      .ct-tags { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:16px; }
      .ct-tag { font-size:11px; font-weight:600; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.08); border-radius:4px; padding:4px 9px; color:var(--text-muted); }
      .ct-meta { border-top:1px solid var(--border); margin-top:14px; padding-top:14px; display:flex; flex-direction:column; gap:7px; }
      .ct-meta-row { display:flex; gap:10px; font-size:12px; }
      .ct-meta-label { color:var(--text-dim); font-weight:700; min-width:100px; }
      .ct-meta-value { color:var(--text-muted); }
      .ct-dormant-note { margin-top:12px; font-size:12px; color:var(--text-dim); font-style:italic; border-top:1px solid var(--border); padding-top:12px; }
      /* LIVE EXAMPLES */
      .ct-example { margin-top:14px; padding-top:14px; border-top:1px solid var(--border); margin-bottom:0; }
      .ct-example-label { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:0.8px; color:var(--text-dim); margin-bottom:8px; display:flex; align-items:center; gap:5px; }
      .ct-example-label span { opacity:0.5; font-size:9px; }
      .ct-example-thumb { width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:6px; cursor:zoom-in; border:1px solid var(--border); transition:opacity 0.15s, border-color 0.15s, transform 0.15s; display:block; }
      .ct-example-thumb:hover { opacity:0.88; border-color:var(--accent); transform:scale(1.01); }
      .ct-example-placeholder { width:100%; height:110px; border-radius:6px; border:1px dashed rgba(255,255,255,0.1); display:flex; align-items:center; justify-content:center; font-size:11px; color:var(--text-dim); letter-spacing:0.3px; }
      .ct-placeholder-e { width:100%; aspect-ratio:9/16; border-radius:8px; background:linear-gradient(170deg,#0a0d1a 0%,#0d1220 40%,#0a0f1f 100%); border:1px solid rgba(239,68,68,0.2); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; position:relative; overflow:hidden; }
      .ct-placeholder-e::before { content:''; position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(239,68,68,0.015) 3px, rgba(239,68,68,0.015) 4px); pointer-events:none; }
      .ct-placeholder-e .ph-icon { width:56px; height:56px; border-radius:50%; border:2px solid rgba(239,68,68,0.5); display:flex; align-items:center; justify-content:center; }
      .ct-placeholder-e .ph-play { width:0; height:0; border-top:12px solid transparent; border-bottom:12px solid transparent; border-left:20px solid rgba(239,68,68,0.7); margin-left:4px; }
      .ct-placeholder-e .ph-label { font-size:13px; font-weight:800; color:rgba(255,255,255,0.7); text-transform:uppercase; letter-spacing:1.5px; text-align:center; }
      .ct-placeholder-e .ph-sub { font-size:11px; color:rgba(239,68,68,0.6); letter-spacing:0.5px; text-align:center; padding:0 20px; line-height:1.6; }
      .ct-placeholder-f { width:100%; aspect-ratio:4/5; border-radius:8px; background:linear-gradient(160deg,#0a0d1a 0%,#0e1225 60%,#0a0c18 100%); border:1px solid rgba(107,114,128,0.25); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; position:relative; overflow:hidden; padding:28px; }
      .ct-placeholder-f .ph-quote { font-size:72px; line-height:0.8; color:rgba(107,114,128,0.2); font-family:Georgia,serif; align-self:flex-start; margin-left:8px; }
      .ct-placeholder-f .ph-lines { display:flex; flex-direction:column; gap:8px; width:100%; }
      .ct-placeholder-f .ph-line { height:10px; border-radius:20px; background:rgba(107,114,128,0.15); }
      .ct-placeholder-f .ph-line.short { width:65%; }
      .ct-placeholder-f .ph-label { font-size:11px; font-weight:700; color:rgba(107,114,128,0.5); text-transform:uppercase; letter-spacing:1.2px; text-align:center; margin-top:8px; }
      .ct-placeholder-f .ph-sub { font-size:11px; color:rgba(107,114,128,0.4); text-align:center; line-height:1.6; padding:0 8px; }
      /* LIGHTBOX */
      #ct-lightbox { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.93); z-index:9999; align-items:center; justify-content:center; padding:24px; cursor:zoom-out; }
      #ct-lightbox.open { display:flex; }
      #ct-lightbox img { max-width:88vw; max-height:88vh; object-fit:contain; border-radius:10px; box-shadow:0 0 80px rgba(0,0,0,0.9); cursor:default; }
      #ct-lightbox-close { position:fixed; top:20px; right:28px; color:#fff; font-size:26px; cursor:pointer; background:rgba(255,255,255,0.1); border:none; border-radius:50%; width:40px; height:40px; display:flex; align-items:center; justify-content:center; transition:background 0.15s; z-index:10000; }
      #ct-lightbox-close:hover { background:rgba(255,255,255,0.2); }
      #ct-lightbox-caption { position:fixed; bottom:28px; left:50%; transform:translateX(-50%); color:rgba(255,255,255,0.55); font-size:12px; text-align:center; max-width:600px; pointer-events:none; letter-spacing:0.3px; }
      /* CAROUSEL LIGHTBOX */
      .ct-carousel-arrow { position:fixed; top:50%; transform:translateY(-50%); background:rgba(255,255,255,0.1); border:none; color:#fff; font-size:28px; width:52px; height:52px; border-radius:50%; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background 0.15s; z-index:10001; }
      .ct-carousel-arrow:hover { background:rgba(255,255,255,0.25); }
      #ct-carousel-prev { left:20px; }
      #ct-carousel-next { right:20px; }
      #ct-carousel-counter { position:fixed; top:22px; left:50%; transform:translateX(-50%); color:rgba(255,255,255,0.7); font-size:13px; font-weight:700; letter-spacing:1px; z-index:10001; }
      .ct-dist-banner { background:var(--surface); border:1px solid var(--border); border-radius:10px; padding:18px 20px; margin-bottom:20px; }
      .ct-dist-label { font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.8px; color:var(--text-dim); margin-bottom:10px; }
      .ct-dist-pills { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:14px; }
      .ct-dist-pill { font-size:11px; font-weight:600; background:rgba(79,142,247,0.1); border:1px solid rgba(79,142,247,0.2); border-radius:20px; padding:4px 12px; color:var(--accent); }
      .ct-fire-times { display:flex; flex-wrap:wrap; gap:7px; }
      .ct-fire-pill { font-size:11px; background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.08); border-radius:6px; padding:5px 12px; color:var(--text-muted); }


/* ── CLIENT LOGO POPOVER ─────────────────────────────────────── */
  .client-profile-logo { cursor:pointer; }
  #clientLogoPopover {
    position:fixed; width:260px;
    background:#1e2336; border:1px solid rgba(255,255,255,0.13);
    border-radius:14px; padding:16px;
    box-shadow:0 20px 60px rgba(0,0,0,0.85), 0 0 0 1px rgba(255,255,255,0.05);
    transition:opacity 0.18s ease, transform 0.18s ease;
    z-index:99999;
  }
  .clp-header { display:flex; flex-direction:column; align-items:center; text-align:center; padding-bottom:12px; border-bottom:1px solid rgba(255,255,255,0.08); margin-bottom:10px; }
  .clp-logo { width:54px; height:54px; border-radius:10px; object-fit:contain; background:#fff; padding:5px; margin-bottom:9px; }
  .clp-name { font-size:14px; font-weight:800; color:#fff; margin-bottom:3px; line-height:1.3; }
  .clp-contact { font-size:11px; color:rgba(255,255,255,0.45); margin-bottom:6px; }
  .clp-badge { font-size:11px; font-weight:600; color:#22c55e; background:rgba(34,197,94,0.1); border:1px solid rgba(34,197,94,0.25); border-radius:20px; padding:2px 10px; display:inline-block; }
  .clp-section-label { font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:1px; color:rgba(255,255,255,0.3); padding:8px 6px 4px; }
  .clp-divider { height:1px; background:rgba(255,255,255,0.08); margin:8px 0; }
  .clp-link { display:flex; align-items:center; gap:9px; font-size:13px; font-weight:600; color:rgba(255,255,255,0.75); text-decoration:none; padding:8px 10px; border-radius:8px; transition:background 0.15s, color 0.15s; margin:0 -4px; }
  .clp-link:hover { background:rgba(255,255,255,0.07); color:#fff; }
  .clp-footer { text-align:center; font-size:10px; font-weight:700; color:rgba(255,255,255,0.2); letter-spacing:0.8px; text-transform:uppercase; margin-top:12px; padding-top:10px; border-top:1px solid rgba(255,255,255,0.06); }

/* ── OPEN ITEMS PANEL ────────────────────────────────────────── */
  .oi-header { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:24px; padding-bottom:18px; border-bottom:1px solid var(--border); }
  .oi-title { font-size:15px; font-weight:700; color:var(--text); margin-bottom:4px; }
  .oi-subtitle { font-size:12px; color:var(--text-dim); }
  .oi-count { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:0.8px; color:var(--text-dim); background:var(--surface2); border:1px solid var(--border); border-radius:20px; padding:4px 12px; white-space:nowrap; }

  .oi-feed { display:flex; flex-direction:column; gap:12px; }

  .oi-card { display:flex; gap:16px; background:var(--surface); border:1px solid var(--border); border-radius:10px; padding:18px 20px; transition:border-color 0.2s, transform 0.2s; position:relative; overflow:hidden; }
  .oi-card:hover { transform:translateY(-1px); border-color:rgba(79,142,247,0.3); }
  .oi-card::before { content:''; position:absolute; left:0; top:0; bottom:0; width:3px; }
  .oi-card.oi-info::before { background:var(--accent); }
  .oi-card.oi-success::before { background:var(--green); }
  .oi-card.oi-warning::before { background:var(--yellow); }
  .oi-card.oi-alert::before { background:var(--red); }

  .oi-card-left { flex-shrink:0; }
  .oi-icon { font-size:22px; width:40px; height:40px; background:var(--surface2); border-radius:8px; display:flex; align-items:center; justify-content:center; }

  .oi-card-body { flex:1; min-width:0; }
  .oi-card-meta { display:flex; align-items:center; gap:10px; margin-bottom:7px; flex-wrap:wrap; }
  .oi-tag { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:0.6px; padding:2px 9px; border-radius:20px; }
  .oi-tag-update { background:rgba(79,142,247,0.12); color:var(--accent); border:1px solid rgba(79,142,247,0.25); }
  .oi-tag-milestone { background:rgba(34,197,94,0.12); color:var(--green); border:1px solid rgba(34,197,94,0.25); }
  .oi-tag-action { background:rgba(245,158,11,0.12); color:var(--yellow); border:1px solid rgba(245,158,11,0.25); }
  .oi-tag-alert { background:rgba(239,68,68,0.12); color:var(--red); border:1px solid rgba(239,68,68,0.25); }
  .oi-date { font-size:11px; color:var(--text-dim); }
  .oi-from { font-size:11px; color:var(--text-dim); }
  .oi-from::before { content:'·'; margin-right:10px; }

  .oi-card-title { font-size:14px; font-weight:700; color:var(--text); margin-bottom:5px; }
  .oi-card-desc { font-size:13px; color:var(--text-muted); line-height:1.6; }


/* ═══════════════════════════════════════════════════════════════
   MOBILE & TABLET RESPONSIVE
   Breakpoints:
     ≤1024px  — iPad landscape
     ≤768px   — iPad portrait + large phones landscape
     ≤600px   — phones landscape
     ≤480px   — phones portrait
═══════════════════════════════════════════════════════════════ */

/* ── iPad Landscape (≤1024px) ────────────────────────────── */
@media (max-width: 1024px) {

  /* Reduce main padding */
  .main { padding: 20px 24px; }
  .ramp-bar-wrapper { margin: 0 -24px; padding-left: 24px; padding-right: 24px; }

  /* Profile card — reduce to 3 col, reduce font sizes */
  .client-profile { grid-template-columns: auto 1fr auto !important; }
  .client-field-value { font-size: 12px !important; overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important; max-width: 180px !important; }
  .client-company-name { font-size: 16px !important; }
  .client-field-label { font-size: 10px !important; }
  /* Hide account rep column at iPad landscape — not enough room */
  body .client-profile > div:not(.client-profile-logo):not(.client-profile-body):not(.client-profile-actions) { display: none !important; }

  /* Quick stats — 4 columns instead of 7 */
  .qs-row { grid-template-columns: repeat(4, 1fr); }

  /* Analytics grids — 2 col */
  .an-hero { grid-template-columns: repeat(2, 1fr); }
  .an-plat-detail-grid { grid-template-columns: repeat(2, 1fr); }
  .an-gaps-grid { grid-template-columns: repeat(2, 1fr); }

  /* Roadmap — 2 col */
  .roadmap-weeks { grid-template-columns: repeat(2, 1fr); }

  /* Week roadmap cards — slightly smaller */
  .rw-theme { font-size: 15px; }
  .rw-days-7 { grid-template-columns: repeat(4, 1fr); }
  .rw-days-6 { grid-template-columns: repeat(3, 1fr); }
}

/* ── iPad Portrait + Large Phone Landscape (≤768px) ─────── */
@media (max-width: 768px) {

  /* Admin bar */
  .admin-bar { padding: 0 16px; }
  .admin-role { display: none; }
  .admin-user-name { font-size: 12px; }

  /* Main padding */
  .main { padding: 16px 16px; }
  .ramp-bar-wrapper { margin: 0 -16px; padding-left: 16px; padding-right: 16px; }

  /* Profile card — collapse to 2-row stacked layout */
  .client-strip { position: relative; top: auto !important; }
  .client-profile {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: unset !important;
  }
  .client-profile-logo {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    border-right: none;
    border-bottom: 1px solid var(--border);
  }
  .client-profile-logo img { width: 44px; height: 44px; }
  .client-profile-body {
    padding: 12px 16px;
    flex-wrap: wrap;
    border-bottom: 1px solid var(--border);
  }
  .client-profile-primary { margin-right: 16px; margin-bottom: 0; }
  .client-company-name { font-size: 16px; }
  .client-profile-fields {
    display: flex;
    flex-wrap: wrap;
    grid-template-columns: unset;
    gap: 0;
    margin-top: 8px;
    width: 100%;
  }
  .client-field {
    padding: 6px 12px;
    border-left: none;
    border-top: 1px solid var(--border);
    min-width: 50%;
    flex: 1 1 auto;
  }
  .client-field-value { font-size: 13px; word-break: break-word; }
  .client-profile-actions {
    flex-direction: row;
    padding: 10px 16px;
    gap: 8px;
    border-left: none;
    border-top: 1px solid var(--border);
  }
  .client-upload-btn, .client-ticket-btn { flex: 1; justify-content: center; font-size: 12px; padding: 7px 10px; }

  /* Quick stats — 2 columns */
  .qs-row { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .qs-value { font-size: 20px; }
  .qs-label { font-size: 11px; }

  /* Tab nav — make scrollable */
  .dash-tab-nav-wrapper { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .dash-tab-row { justify-content: flex-start; flex-wrap: nowrap; gap: 0; min-width: max-content; }
  .dash-tab-btn { font-size: 11px; padding: 7px 10px; white-space: nowrap; }
  .dash-tab-icon { font-size: 13px; }

  /* Section headers */
  .section-header-card { padding: 10px 14px; }
  .section-header-card .section-title { font-size: 13px; }

  /* Week grid — 3 columns */
  .week-grid { grid-template-columns: repeat(3, 1fr); gap: 8px; }

  /* Platform strip pills */
  .platform-pill { padding: 10px 6px; }
  .platform-pill .p-name { font-size: 11px; }

  /* Analytics */
  .an-hero { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .an-hero-value { font-size: 36px; }
  .an-platform-grid { grid-template-columns: 1fr; }
  .an-spotlight { grid-template-columns: 1fr; gap: 16px; }
  .an-spotlight-num { font-size: 48px; }
  .an-plat-detail-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .an-signal-grid { grid-template-columns: 1fr; }
  .an-gaps-grid { grid-template-columns: 1fr 1fr; }

  /* Roadmap */
  .roadmap-weeks { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .rw-header { padding: 12px 14px; flex-wrap: wrap; gap: 10px; }
  .rw-stats { margin-left: 0; }
  .rw-days-7, .rw-days-6 { grid-template-columns: repeat(3, 1fr); }

  /* Rotation grid */
  .rotation-grid { grid-template-columns: repeat(2, 1fr); }

  /* Demo outcome bar */
  .demo-outcome-bar { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .demo-outcome-value { font-size: 24px; }

  /* Open items */
  .notes-grid { grid-template-columns: 1fr; }
}

/* ── Phone Portrait (≤480px) ─────────────────────────────── */
@media (max-width: 480px) {

  /* Admin bar — compact */
  .admin-bar { padding: 0 12px; height: 48px; }
  .admin-agency-mark { font-size: 12px; }
  .admin-divider { display: none; }
  .client-switcher-label { font-size: 12px; max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .admin-user { gap: 6px; }
  .admin-user-name { display: none; }
  .admin-avatar { width: 28px; height: 28px; font-size: 10px; }
  .theme-toggle { width: 28px; height: 28px; font-size: 13px; }

  /* Client strip — always relative, not sticky on mobile */
  .client-strip { top: 0 !important; }

  /* Profile card logo — inline with name */
  .client-profile-logo { padding: 10px 14px; }
  .client-profile-logo img { width: 36px; height: 36px; }
  .client-company-name { font-size: 14px; }
  .client-active-badge { font-size: 10px; padding: 2px 8px; }

  /* Profile fields — 2 per row max, hide less important ones */
  .client-field { min-width: 50%; }
  .client-field-label { font-size: 10px; }
  .client-field-value { font-size: 12px; }

  /* Main */
  .main { padding: 12px 12px; }
  .ramp-bar-wrapper { margin: 0 -12px; padding-left: 12px; padding-right: 12px; }

  /* Hero section — reduce height, fix text overlap */
  .client-hero img { height: 140px; }
  .client-hero-label { font-size: 9px; }

  /* Quick stats — 2 columns */
  .qs-row { grid-template-columns: repeat(2, 1fr); gap: 6px; margin: 8px 0 10px; }
  .qs-card { padding: 8px 8px; gap: 5px; }
  .qs-value { font-size: 18px; }
  .qs-label { font-size: 10px; letter-spacing: 0.3px; }
  .qs-icon { font-size: 13px; }

  /* Ramp bar */
  .ramp-bar-subtitle { font-size: 11px; }
  .ramp-week { padding: 8px 5px; }
  .ramp-week-label { font-size: 10px; }
  .ramp-week-dates { font-size: 10px; }
  .ramp-week-tracks { font-size: 11px; }

  /* Tabs — scrollable row */
  .dash-tab-btn { font-size: 10px; padding: 6px 8px; gap: 4px; }
  .dash-tab-icon { font-size: 12px; }
  .tab-divider { display: none; }

  /* Week grid — 2 columns */
  .week-grid { grid-template-columns: repeat(2, 1fr); gap: 6px; }
  .week-block-body { padding: 14px 12px 12px; }

  /* Section headers */
  .section-header-card { padding: 8px 12px; margin-top: 20px; }
  .section-header-card .section-title { font-size: 12px; }

  /* Platform pills — 3 visible at a time */
  .platform-pill { padding: 8px 4px; }
  .platform-pill .p-icon { width: 22px; height: 22px; }
  .platform-pill .p-name { font-size: 10px; }
  .platform-pill .p-status { font-size: 9px; padding: 1px 5px; }

  /* Analytics — single column */
  .an-hero { grid-template-columns: 1fr 1fr; gap: 8px; }
  .an-hero-card { padding: 18px 16px; }
  .an-hero-value { font-size: 28px; }
  .an-plat-detail-grid { grid-template-columns: 1fr; }
  .an-gaps-grid { grid-template-columns: 1fr; }
  .an-spotlight { padding: 20px; }
  .an-spotlight-hook { font-size: 16px; }
  .an-spotlight::before { display: none; }

  /* Roadmap — single column */
  .roadmap-weeks { grid-template-columns: 1fr; }
  .rw-days-7, .rw-days-6 { grid-template-columns: repeat(2, 1fr); }
  .rw-num { font-size: 22px; }
  .rw-theme { font-size: 14px; }

  /* Rotation grid */
  .rotation-grid { grid-template-columns: 1fr 1fr; }

  /* Demo */
  .demo-outcome-bar { grid-template-columns: 1fr; gap: 8px; }
  .demo-outcome-value { font-size: 28px; }

  /* Open items */
  .oi-card { padding: 14px 14px; gap: 10px; }
  .oi-icon { width: 32px; height: 32px; font-size: 16px; }
  .oi-card-title { font-size: 13px; }
  .oi-card-desc { font-size: 12px; }

  /* Content tracks — single column */
  .ct-grid { grid-template-columns: 1fr; }

  /* Week block */
  .week-block-title { font-size: 11px; }
  .week-block-meta { display: none; }

  /* Wk stat row */
  .wk-stat-row { grid-template-columns: repeat(2, 1fr); }

  /* Production detail */
  .prod-day-title { font-size: 13px; }
  .prod-day-date { font-size: 11px; }
}

/* ── Small phones (≤360px) ───────────────────────────────── */
@media (max-width: 360px) {
  .client-switcher-label { max-width: 110px; }
  .qs-row { grid-template-columns: repeat(2, 1fr) !important; }
  .qs-value { font-size: 16px; }
  .week-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .main { padding: 10px 10px; }
}

/* ═══════════════════════════════════════════════════════════════
   PASS 2 — CASCADE-SAFE OVERRIDES
   These use !important + high specificity to win over inline
   <style> blocks in individual dashboard HTML files.
═══════════════════════════════════════════════════════════════ */

/* ── iPad Landscape cascade-safe (≤1024px) ───────────────── */
@media screen and (max-width: 1024px) {
  body .qs-row { grid-template-columns: repeat(4, 1fr) !important; }
  body .an-hero { grid-template-columns: repeat(2, 1fr) !important; }
  body .an-plat-detail-grid { grid-template-columns: repeat(2, 1fr) !important; }
  body .roadmap-weeks { grid-template-columns: repeat(2, 1fr) !important; }
}

/* ── iPad Portrait cascade-safe (≤768px) ─────────────────── */
@media screen and (max-width: 768px) {

  /* Admin bar */
  body .admin-bar { padding: 0 14px !important; }
  body .admin-user-name { font-size: 12px !important; }
  body .admin-role { display: none !important; }

  /* Client profile — force flex column */
  body .client-profile {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: unset !important;
  }
  /* Merge logo + company name into one row */
  body .client-profile-logo {
    display: none !important;
  }
  body .client-profile-body {
    padding: 12px 16px !important;
    flex-wrap: wrap !important;
    border-bottom: 1px solid var(--border) !important;
    align-items: center !important;
  }
  body .client-profile-primary {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin-right: 0 !important;
    width: 100% !important;
    margin-bottom: 4px !important;
  }
  /* Re-add logo inline with company name via pseudo-element approach — use body background logo */
  body .client-company-name { font-size: 15px !important; }
  body .client-profile-fields {
    display: flex !important;
    flex-wrap: wrap !important;
    grid-template-columns: unset !important;
    width: 100% !important;
    margin-top: 8px !important;
  }
  body .client-field {
    border-left: none !important;
    border-top: 1px solid var(--border) !important;
    min-width: 48% !important;
    flex: 1 1 48% !important;
    padding: 6px 10px !important;
  }
  body .client-field-value { font-size: 13px !important; overflow-wrap: break-word !important; word-break: break-word !important; max-width: 100% !important; }
  body .client-profile-actions {
    flex-direction: row !important;
    padding: 10px 16px !important;
    gap: 8px !important;
    border-left: none !important;
    border-top: 1px solid var(--border) !important;
  }
  body .client-upload-btn,
  body .client-ticket-btn {
    flex: 1 !important;
    justify-content: center !important;
    font-size: 12px !important;
    padding: 7px 10px !important;
  }

  /* Quick stats — 2 columns */
  body .qs-row { grid-template-columns: repeat(2, 1fr) !important; gap: 8px !important; }
  body .qs-value { font-size: 20px !important; }

  /* Week grid — 2 columns on tablet portrait */
  body .week-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 8px !important; }

  /* Tab nav — horizontal scroll */
  body .dash-tab-nav-wrapper { overflow-x: auto !important; overflow-y: hidden !important; -webkit-overflow-scrolling: touch !important; scrollbar-width: none !important; }
  body .dash-tab-nav-wrapper::-webkit-scrollbar { display: none !important; }
  body .dash-tab-row { flex-wrap: nowrap !important; width: max-content !important; justify-content: flex-start !important; }
  body .dash-tab-btn { font-size: 11px !important; padding: 7px 10px !important; white-space: nowrap !important; }

  /* Ramp bar — smaller cell text */
  body .ramp-week { min-width: 72px !important; }
  body .ramp-week-label { font-size: 9px !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }
  body .ramp-week-dates { font-size: 10px !important; white-space: nowrap !important; }
  body .ramp-week-tracks { font-size: 10px !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; max-width: 70px !important; }

  /* Week block stats row */
  body .wk-stat-row { grid-template-columns: repeat(2, 1fr) !important; gap: 8px !important; }

  /* Analytics */
  body .an-hero { grid-template-columns: repeat(2, 1fr) !important; }
  body .an-platform-grid { grid-template-columns: 1fr !important; }
  body .an-spotlight { grid-template-columns: 1fr !important; }
  body .an-plat-detail-grid { grid-template-columns: repeat(2, 1fr) !important; }
  body .an-signal-grid { grid-template-columns: 1fr !important; }
  body .ct-grid { grid-template-columns: repeat(2, 1fr) !important; }
  body .rw-days-7, body .rw-days-6 { grid-template-columns: repeat(3, 1fr) !important; }
  body .rotation-grid { grid-template-columns: repeat(2, 1fr) !important; }
  body .notes-grid { grid-template-columns: 1fr !important; }
}

/* ── iPhone Landscape cascade-safe (≤820px) ─────────────── */
@media screen and (max-width: 820px) {
  /* Stack profile card on iPhone landscape too */
  body .client-profile {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: unset !important;
  }
  body .client-profile-logo {
    display: none !important;
  }
  body .client-profile-body {
    padding: 10px 14px !important;
    border-bottom: 1px solid var(--border) !important;
    flex-wrap: wrap !important;
  }
  body .client-profile-fields {
    display: flex !important;
    flex-wrap: wrap !important;
    grid-template-columns: unset !important;
    width: 100% !important;
    margin-top: 6px !important;
  }
  body .client-field {
    border-left: none !important;
    border-top: 1px solid var(--border) !important;
    min-width: 48% !important;
    flex: 1 1 48% !important;
    padding: 6px 10px !important;
  }
  body .client-profile-actions {
    flex-direction: row !important;
    padding: 8px 14px !important;
    gap: 8px !important;
    border-left: none !important;
    border-top: 1px solid var(--border) !important;
  }
  body .client-upload-btn,
  body .client-ticket-btn {
    flex: 1 !important;
    justify-content: center !important;
    font-size: 12px !important;
  }
}

/* ── Phone Portrait cascade-safe (≤480px) ────────────────── */
@media screen and (max-width: 480px) {

  /* Admin bar — fully compact */
  body .admin-bar { padding: 0 10px !important; height: 48px !important; }
  body .admin-agency-mark { font-size: 12px !important; }
  body .admin-divider { display: none !important; }
  body .client-switcher-btn {
    padding: 5px 10px !important;
    max-width: 160px !important;
  }
  body .client-switcher-label {
    font-size: 12px !important;
    max-width: 130px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    display: block !important;
  }
  body .admin-user-name { display: none !important; }
  body .admin-role { display: none !important; }
  body .admin-avatar { width: 28px !important; height: 28px !important; font-size: 10px !important; }
  body .theme-toggle { width: 28px !important; height: 28px !important; font-size: 13px !important; }
  body .admin-bar-right { gap: 8px !important; }

  /* Main padding */
  body .main { padding: 12px 12px !important; }
  body .ramp-bar-wrapper { margin: 0 -12px !important; padding-left: 12px !important; padding-right: 12px !important; }

  /* Profile card */
  body .client-profile-logo { padding: 10px 12px !important; }
  body .client-profile-logo img { width: 34px !important; height: 34px !important; }
  body .client-company-name { font-size: 14px !important; }
  body .client-field { min-width: 50% !important; flex: 1 1 50% !important; }
  body .client-field-label { font-size: 10px !important; }
  body .client-field-value { font-size: 12px !important; overflow-wrap: break-word !important; word-break: break-word !important; max-width: 100% !important; }

  /* Quick stats — 2 col */
  body .qs-row { grid-template-columns: repeat(2, 1fr) !important; gap: 6px !important; }
  body .qs-value { font-size: 18px !important; }
  body .qs-label { font-size: 10px !important; }

  /* Week grid — 2 col */
  body .week-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 6px !important; }

  /* Tabs */
  body .dash-tab-btn { font-size: 10px !important; padding: 6px 8px !important; }
  body .dash-tab-icon { font-size: 12px !important; }
  body .tab-divider { display: none !important; }

  /* Analytics single col */
  body .an-hero { grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
  body .an-hero-value { font-size: 28px !important; }
  body .an-plat-detail-grid { grid-template-columns: 1fr !important; }
  body .an-gaps-grid { grid-template-columns: 1fr !important; }
  body .ct-grid { grid-template-columns: 1fr !important; }
  body .rw-days-7, body .rw-days-6 { grid-template-columns: repeat(2, 1fr) !important; }
  body .roadmap-weeks { grid-template-columns: 1fr !important; }
  body .rotation-grid { grid-template-columns: 1fr 1fr !important; }
  body .demo-outcome-bar { grid-template-columns: 1fr !important; }
  body .wk-stat-row { grid-template-columns: repeat(2, 1fr) !important; }

  /* Hero */
  body .client-hero img { height: 140px !important; }

  /* Section headers */
  body .section-header-card { padding: 8px 12px !important; margin-top: 20px !important; }
  body .section-header-card .section-title { font-size: 12px !important; }

  /* Ramp */
  body .ramp-week { padding: 8px 4px !important; }
  body .ramp-week-label, body .ramp-week-dates { font-size: 10px !important; }
  body .ramp-week-tracks { font-size: 11px !important; }

  /* Platform pills */
  body .platform-pill { padding: 8px 4px !important; }
  body .platform-pill .p-icon { width: 22px !important; height: 22px !important; }
  body .platform-pill .p-name { font-size: 10px !important; }

  /* Week block */
  body .week-block-meta { display: none !important; }
  body .week-block-body { padding: 12px 10px 10px !important; }
  body .week-block-title { font-size: 11px !important; }
}


/* ═══════════════════════════════════════════════════════════════
   TARGETED FIXES — pass 4
   Specific overlaps found during full audit
═══════════════════════════════════════════════════════════════ */

/* Fix 1 — Hero banner: hide overlay text on mobile to prevent
   double-text overlap (banner.png already has company name in it) */
@media screen and (max-width: 820px) {
  body .client-hero-overlay { display: none !important; }
  body .client-hero img { height: 160px !important; object-fit: cover !important; }
}
@media screen and (max-width: 480px) {
  body .client-hero img { height: 120px !important; }
}

/* Fix 2 — Weekly snapshot stats row: 2×2 grid on phones
   (4 columns = "CONTENT BUILT" clips at 375px) */
@media screen and (max-width: 480px) {
  /* Stats row inside week block */
  body .wk-stat-row { grid-template-columns: repeat(2, 1fr) !important; gap: 8px !important; }
  body .wk-stat-label { font-size: 9px !important; letter-spacing: 0.3px !important; }
  body .wk-stat-val { font-size: 18px !important; }

  /* Also fix the weekly snapshot stat grid (4 small cards under week header) */
  body .week-stats-row,
  body [class*="snap"] { grid-template-columns: repeat(2, 1fr) !important; }
}

/* Fix 3 — Publishing times rotation grid: 2 col on phone portrait */
@media screen and (max-width: 480px) {
  body .rotation-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 8px !important; }
  body .rotation-time { font-size: 15px !important; }
  body .rotation-label { font-size: 11px !important; }
  body .rotation-plats { font-size: 10px !important; }
}

/* Fix 4 — Ramp bar: ensure no text overflow on smallest screens */
@media screen and (max-width: 480px) {
  body .ramp-week-tracks { display: block !important; overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important; max-width: 65px !important; }
  body .ramp-week-dates { white-space: nowrap !important; }
  body .ramp-week-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }
}

/* Fix 5 — Tab row: prevent any wrapping, ensure true horizontal scroll */
@media screen and (max-width: 820px) {
  body .dash-tab-nav-wrapper {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    padding: 4px 4px !important;
  }
  body .dash-tab-nav-wrapper::-webkit-scrollbar { display: none !important; }
  body .dash-tab-row {
    display: flex !important;
    flex-wrap: nowrap !important;
    width: max-content !important;
    min-width: 100% !important;
    gap: 2px !important;
  }
  body .dash-tab-btn {
    flex-shrink: 0 !important;
    white-space: nowrap !important;
    font-size: 11px !important;
    padding: 7px 10px !important;
  }
  body .dash-tab-row-divider { display: none !important; }
}

/* Fix 6 — Content tracks grid: single col on phone */
@media screen and (max-width: 480px) {
  body .ct-grid { grid-template-columns: 1fr !important; }
  body .ct-track-name { font-size: 20px !important; }
}

/* Fix 7 — Roadmap totals bar: 2 col on phone to prevent overflow */
@media screen and (max-width: 480px) {
  body .rw-totals { flex-wrap: wrap !important; }
  body .rw-total { flex: 1 1 50% !important; border-right: none !important; border-bottom: 1px solid var(--border) !important; }
  body .rw-total:nth-child(odd) { border-right: 1px solid var(--border) !important; }
  body .rw-total-val { font-size: 16px !important; }
  body .rw-total-label { font-size: 10px !important; }
}

/* Fix 8 — Ensure main content never overflows viewport horizontally */
@media screen and (max-width: 820px) {
  body { overflow-x: hidden !important; }
  body .main { overflow-x: hidden !important; }
  body .section-header-card { overflow: hidden !important; }
}

/* Fix 9 — Collapse 2-row tab nav into 1 scrollable strip on mobile */
@media screen and (max-width: 820px) {
  body .dash-tab-nav-wrapper {
    display: flex !important;
    flex-direction: row !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    padding: 3px 4px !important;
    gap: 0 !important;
  }
  body .dash-tab-nav-wrapper::-webkit-scrollbar { display: none !important; }
  body .dash-tab-row {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    flex-shrink: 0 !important;
    gap: 0 !important;
  }
  body .dash-tab-row-divider { display: none !important; }
  body .dash-tab-btn {
    flex-shrink: 0 !important;
    white-space: nowrap !important;
    font-size: 11px !important;
    padding: 7px 9px !important;
  }
}

/* Fix 10 — Hide hero overlay on iPad landscape too (1024px)
   Banner image already has company name — overlay is redundant */
@media screen and (max-width: 1024px) {
  body .client-hero-overlay { display: none !important; }
}

/* Fix 11 — Clean ellipsis truncation on all mobile field values */
@media screen and (max-width: 820px) {
  body .client-field-value {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    max-width: 100% !important;
  }
  body .client-field {
    overflow: hidden !important;
    min-width: 0 !important;
  }
}

/* Fix 12 — Field value font reduction on phones for clean ellipsis room */
@media screen and (max-width: 480px) {
  body .client-field-value { font-size: 11px !important; }
  body .client-field-label { font-size: 9px !important; }
}
