    /* ═══════════════════════════════════════════════════════════
       CSS LAYERS — Organized architecture (Bloque C)
       ═══════════════════════════════════════════════════════════ */


    /* ═══════════════════════════════════════════════════════════
       DESIGN TOKENS — Atmospheric Precision
       ═══════════════════════════════════════════════════════════ */
    :root {
      --bg: #FAF8FF;
      --surface-lowest: #FFFFFF;
      --surface-low: #F2F3FF;
      --surface: #EAEDFF;
      --surface-high: #E2E7FF;
      --surface-highest: #DAE2FD;
      --primary: #002657;
      --primary-container: #1B3C71;
      --brand-blue: #1B3C71;
      --brand-red: #E43524;
      --secondary: #B91007;
      --tertiary: #755B00;
      --tertiary-container: #D3A600;
      --tertiary-fixed: #F1C02B;
      --on-surface: #131B2E;
      --on-surface-variant: #43474F;
      --outline-variant: #C4C6D1;
      --inverse-surface: #283044;
      --primary-gradient: linear-gradient(135deg, #002657 0%, #1B3C71 100%);
      --hero-gradient: linear-gradient(135deg, #002657 0%, #1B3C71 60%, #1F6069 100%);
      --shadow-subtle: 0 4px 30px rgba(19,27,46,0.04);
      --shadow-md: 0 8px 40px rgba(19,27,46,0.07);
      --shadow-lg: 0 16px 56px rgba(19,27,46,0.10);
      --ghost-border: 1px solid rgba(196,198,209,0.15);
      --glass-bg: rgba(255,255,255,0.70);
      --glass-blur: blur(20px);
      --radius-sm: 8px;
      --radius-md: 12px;
      --radius-lg: 16px;
      --radius-xl: 24px;
      --sidebar-w: 220px;
      --sidebar-collapsed: 64px;
      --topbar-h: 64px;
      --green: #0D7C3D;
      --green-bg: #E8F5E9;
      --red: #C62828;
      --red-bg: #FFEBEE;
      --blue-accent: #1565C0;
      --blue-bg: #E3F2FD;
      --orange: #E65100;
      --orange-bg: #FFF3E0;
      --shadow-xs: 0 1px 4px rgba(19,27,46,0.03);
      --ease-snappy: cubic-bezier(0.2, 0, 0, 1);
      --color-m1: #0D7C3D;
      --color-m2: #1B3C71;
      --color-m3: #E43524;
      --color-m4: #F1A80B;
    }

    [data-theme="dark"] {
      --bg: #0F1320;
      --surface-lowest: #181D2E;
      --surface-low: #1E2438;
      --surface: #252B40;
      --surface-high: #2C3348;
      --surface-highest: #343B50;
      --on-surface: #E2E4F0;
      --on-surface-variant: #9BA0B0;
      --outline-variant: #3A3F50;
      --inverse-surface: #E2E4F0;
      --glass-bg: rgba(24,29,46,0.80);
      --shadow-subtle: 0 4px 30px rgba(0,0,0,0.20);
      --shadow-md: 0 8px 40px rgba(0,0,0,0.28);
      --shadow-lg: 0 16px 56px rgba(0,0,0,0.35);
      --ghost-border: 1px solid rgba(58,63,80,0.40);
      --green: #4CAF50;
      --green-bg: rgba(76,175,80,0.12);
      --red: #EF5350;
      --red-bg: rgba(239,83,80,0.12);
      --blue-accent: #42A5F5;
      --blue-bg: rgba(66,165,245,0.12);
      --orange: #FF9800;
      --orange-bg: rgba(255,152,0,0.12);
      --color-m1: #34D399;
      --color-m2: #4A7ABF;
      --color-m3: #EF5350;
      --color-m4: #FFD54F;
    }

    /* ═══════ RESET ═══════ */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    *:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; border-radius: var(--radius-sm); }
    html { scroll-behavior: smooth; touch-action: manipulation; overflow-x: hidden; }
    body {
      font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
      background: var(--bg);
      color: var(--on-surface);
      line-height: 1.6;
      -webkit-font-smoothing: antialiased;
      overflow-x: hidden;
      max-width: 100vw;
    }
    img { display: block; max-width: 100%; }
    button { cursor: pointer; border: none; background: none; font-family: inherit; }
    a { text-decoration: none; color: inherit; }

    /* ═══════ LAYOUT ═══════ */
    .app { display: flex; min-height: 100vh; overflow-x: hidden; }
    .main { flex: 1; margin-left: var(--sidebar-collapsed); padding-top: var(--topbar-h); overflow-x: hidden; min-width: 0; }
    .main-content { max-width: 1280px; margin: 0 auto; padding: 32px 40px 64px; overflow-x: hidden; }

    .mobile-only-actions {
      display: none !important;
    }

    /* ═══════ SIDEBAR (Collapsible CSS-only) ═══════ */
    .sidebar {
      position: fixed; top: 0; left: 0; bottom: 0;
      width: var(--sidebar-collapsed);
      background: var(--surface-lowest);
      box-shadow: var(--shadow-subtle);
      z-index: 100;
      display: flex; flex-direction: column;
      padding: 0;
      overflow: hidden;
      transition: width 0.28s cubic-bezier(0.4, 0, 0.2, 1);
    }
    .sidebar:hover {
      width: var(--sidebar-w);
      box-shadow: var(--shadow-lg);
    }
    .sidebar:hover .sidebar-section-label {
      transition: opacity 0.2s var(--ease-snappy) 0.05s;
    }
    .sidebar:hover .sidebar-footer-card {
      transition: opacity 0.2s var(--ease-snappy) 0.05s;
    }
    .sidebar-logo {
      padding: 18px 0;
      display: flex; align-items: center; justify-content: center;
      min-height: 64px;
      flex-shrink: 0;
    }
    .sidebar-divider {
      height: 1px;
      background: rgba(196,198,209,0.15);
      margin: 0 12px;
      flex-shrink: 0;
    }
    .sidebar-section {
      padding: 12px 12px 4px;
    }
    .sidebar-section-label {
      font-size: 11px; font-weight: 600; letter-spacing: 0.08em;
      text-transform: uppercase; color: var(--on-surface-variant);
      padding: 0 8px; margin-bottom: 8px;
      white-space: nowrap;
      opacity: 0;
      transition: opacity 0.12s var(--ease-snappy);
    }
    .sidebar:hover .sidebar-section-label {
      opacity: 1;
    }
    .sidebar-nav { list-style: none; }
    .sidebar-nav li { margin-bottom: 1px; }
    .sidebar-link {
      display: flex; align-items: center; gap: 12px;
      padding: 8px 12px; border-radius: var(--radius-sm);
      font-size: 13.5px; font-weight: 500;
      color: var(--on-surface-variant);
      transition: background-color 0.2s var(--ease-snappy), color 0.2s var(--ease-snappy);
      white-space: nowrap;
      overflow: hidden;
      position: relative;
    }
    .sidebar-link:hover {
      background: var(--surface-low);
      color: var(--on-surface);
    }
    .sidebar-link.active {
      background: var(--surface-high);
      color: var(--primary);
      font-weight: 600;
    }
    .sidebar-link.active::before {
      content: '';
      position: absolute;
      left: 0; top: 25%; height: 50%; width: 3px;
      background: var(--brand-red, #E43524);
      border-radius: 0 3px 3px 0;
    }
    .sidebar-link .material-symbols-outlined {
      font-size: 20px; font-variation-settings: 'FILL' 0, 'wght' 400;
      flex-shrink: 0;
    }
    .sidebar-link.active .material-symbols-outlined {
      font-variation-settings: 'FILL' 1, 'wght' 500;
      color: var(--primary);
    }
    /* Sidebar text labels */
    .sidebar-link-text {
      opacity: 0;
      width: 0;
      overflow: hidden;
      display: inline-block;
      transition: opacity 0.2s var(--ease-snappy) 0.05s, width 0.2s var(--ease-snappy);
    }
    .sidebar:hover .sidebar-link-text {
      opacity: 1;
      width: auto;
    }
    .sidebar-badge {
      margin-left: auto;
      background: var(--primary);
      color: #fff;
      font-size: 10px; font-weight: 700;
      padding: 2px 7px; border-radius: 10px;
      opacity: 0;
      width: 0;
      overflow: hidden;
      display: inline-block;
      transition: opacity 0.2s var(--ease-snappy) 0.05s, width 0.2s var(--ease-snappy);
    }
    .sidebar:hover .sidebar-badge {
      opacity: 1;
      width: auto;
    }
    .sidebar-footer {
      margin-top: auto;
      padding: 16px 10px 20px;
    }
    .sidebar-footer-card {
      background: linear-gradient(135deg, #E43524 0%, #C62828 100%);
      border-radius: var(--radius-md);
      padding: 16px;
      color: #fff;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.12s var(--ease-snappy);
    }
    .sidebar:hover .sidebar-footer-card {
      opacity: 1;
      pointer-events: auto;
    }
    .sidebar-footer-card h4 {
      font-family: 'Plus Jakarta Sans', sans-serif;
      font-size: 13px; font-weight: 700; margin-bottom: 4px;
    }
    .sidebar-footer-card p {
      font-size: 11.5px; opacity: 0.8; line-height: 1.5; margin-bottom: 12px;
    }
    .sidebar-footer-btn {
      display: inline-flex; align-items: center; gap: 6px;
      background: rgba(255,255,255,0.18);
      color: #fff; font-size: 12px; font-weight: 600;
      padding: 7px 14px; border-radius: var(--radius-xl);
      -webkit-backdrop-filter: blur(8px);
      backdrop-filter: blur(8px);
      transition: background-color 0.2s var(--ease-snappy);
    }
    .sidebar-footer-btn:hover { background: rgba(255,255,255,0.28); }
    .sidebar-footer-btn .material-symbols-outlined { font-size: 15px; }

    /* Center icons when collapsed */

    .sub-navbar {
      display: none !important;
    }

    /* ═══════ TOP BAR ═══════ */
    .topbar {
      position: fixed; top: 0; left: 64px; right: 0;
      height: var(--topbar-h);
      background: var(--glass-bg);
      backdrop-filter: var(--glass-blur);
      -webkit-backdrop-filter: var(--glass-blur);
      z-index: 90;
      display: flex; align-items: center; justify-content: space-between;
      padding: 0 40px;
      box-shadow: 0 1px 0 rgba(196,198,209,0.15);
    }
    .topbar-left { display: flex; align-items: center; gap: 16px; }
    .topbar-title {
      font-family: 'Plus Jakarta Sans', sans-serif;
      font-size: 18px; font-weight: 700; color: var(--on-surface);
      display: flex; align-items: center; gap: 8px;
      letter-spacing: -0.02em;
    }
    .topbar-title .material-symbols-outlined {
      font-size: 22px; color: var(--primary);
      font-variation-settings: 'FILL' 1;
    }
    .topbar-subtitle {
      font-size: 13px; color: var(--on-surface-variant); font-weight: 400;
    }
    .topbar-right { display: flex; align-items: center; gap: 12px; }
    .date-badge {
      display: flex; align-items: center; gap: 6px;
      background: var(--surface-low);
      padding: 7px 14px; border-radius: var(--radius-xl);
      font-size: 12.5px; font-weight: 500; color: var(--on-surface-variant);
    }
    .date-badge .material-symbols-outlined { font-size: 16px; }
    .topbar-btn {
      width: 36px; height: 36px; border-radius: 50%;
      min-width: 44px; min-height: 44px;
      display: flex; align-items: center; justify-content: center;
      background: var(--surface-low);
      color: var(--on-surface-variant);
      transition: background-color 0.2s var(--ease-snappy), color 0.2s var(--ease-snappy);
    }
    .topbar-btn:hover { background: var(--surface-high); color: var(--on-surface); }
    .topbar-btn .material-symbols-outlined { font-size: 19px; }
    .mobile-menu-btn {
      display: none; align-items: center; justify-content: center;
      width: 40px; height: 40px; border-radius: var(--radius-md);
      background: none; color: var(--on-surface-variant);
      cursor: pointer; flex-shrink: 0;
      transition: background-color 0.2s var(--ease-snappy);
    }
    .mobile-menu-btn:hover { background: var(--surface-high); }
    .mobile-menu-btn .material-symbols-outlined { font-size: 22px; }
    .export-btn {
      display: flex; align-items: center; gap: 6px;
      background: var(--primary);
      color: #fff; font-size: 12.5px; font-weight: 600;
      padding: 8px 16px; border-radius: var(--radius-xl);
      transition: background-color 0.2s var(--ease-snappy), color 0.2s var(--ease-snappy);
    }
    .export-btn:hover { background: var(--primary-container); }
    .export-btn .material-symbols-outlined { font-size: 16px; }

    /* ═══════ SECTION TITLES ═══════ */
    .section-label {
      font-size: 11px; font-weight: 600; letter-spacing: 0.06em;
      text-transform: uppercase; color: var(--on-surface-variant);
      margin-bottom: 6px;
    }
    .section-title {
      font-family: 'Plus Jakarta Sans', sans-serif;
      font-size: 22px; font-weight: 700; color: var(--on-surface);
      letter-spacing: -0.02em; margin-bottom: 4px;
    }
    .section-desc {
      font-size: 14px; color: var(--on-surface-variant); margin-bottom: 24px;
    }
    .section-header {
      display: flex; align-items: center; justify-content: space-between;
      margin-bottom: 24px;
    }
    .section-header-left { display: flex; align-items: center; gap: 12px; }
    .section-icon {
      width: 40px; height: 40px; border-radius: var(--radius-md);
      display: flex; align-items: center; justify-content: center;
      font-size: 20px;
    }
    .section-icon--blue { background: var(--blue-bg); color: var(--blue-accent); }
    .section-icon--green { background: var(--green-bg); color: var(--green); }

    /* ═══════ HERO AREA (hero + side cards) ═══════ */
    .hero-area {
      display: grid;
      grid-template-columns: 1fr 320px;
      gap: 20px;
      margin-bottom: 32px;
      align-items: stretch;
    }
    .hero-side {
      display: flex; flex-direction: column; gap: 16px;
    }
    .hero-block {
      background: #002657;
      border-radius: var(--radius-lg);
      box-shadow: var(--shadow-md);
      padding: 0;
      display: flex;
      flex-direction: column;
      position: relative;
      overflow: hidden;
    }
    .hero-block::before {
      content: '';
      position: absolute;
      inset: 0;
      background-image: radial-gradient(circle, rgba(255,255,255,0.04) 1px, transparent 1px);
      background-size: 12px 12px;
      pointer-events: none;
      z-index: 0;
    }
    .hero-left { /* placeholder removed */ }
    .hero-narrative-label {
      font-size: 11px; font-weight: 600; letter-spacing: 0.06em;
      text-transform: uppercase; color: rgba(255,255,255,0.9);
      margin-bottom: 12px;
      display: flex; align-items: center; gap: 6px;
    }
    .hero-narrative-label .material-symbols-outlined { font-size: 16px; }
    .hero-narrative {
      font-family: 'Plus Jakarta Sans', sans-serif;
      font-size: 17px; font-weight: 500; color: rgba(255,255,255,0.92);
      line-height: 1.7; letter-spacing: -0.01em;
      margin-bottom: 28px;
      max-width: 65ch;
    }
    .hero-narrative strong {
      color: #fff;
      font-weight: 700;
    }
    .momento-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 16px;
    }
    .momento-card {
      background: rgba(255,255,255,0.12);
      -webkit-backdrop-filter: blur(12px);
      backdrop-filter: blur(12px);
      border-radius: var(--radius-md);
      padding: 18px 16px;
      position: relative;
      overflow: hidden;
    }
    .momento-card::before {
      content: '';
      position: absolute;
      top: 0; left: 0; width: 4px; height: 100%;
      border-radius: 4px 0 0 4px;
    }
    .momento-card--blue::before { background: rgba(255,255,255,0.5); }
    .momento-card--yellow::before { background: var(--tertiary-fixed); }
    .momento-card--red::before { background: var(--brand-red); }

    .momento-label {
      font-size: 11px; font-weight: 600; letter-spacing: 0.05em;
      text-transform: uppercase; color: rgba(255,255,255,0.85);
      margin-bottom: 10px;
    }
    .momento-stat {
      font-family: 'Inter', sans-serif;
      font-size: 22px; font-weight: 700; color: #fff;
      letter-spacing: -0.02em;
    }
    .momento-sub {
      font-size: 12px; color: rgba(255,255,255,0.85);
      margin-top: 2px;
    }

    /* Side Cards (outside hero, white bg) */
    .featured-card {
      background: var(--surface-lowest);
      border-radius: var(--radius-md);
      padding: 20px;
      box-shadow: var(--shadow-subtle);
      border: var(--ghost-border);
      flex: 1;
    }
    .featured-label {
      font-size: 11px; font-weight: 600; letter-spacing: 0.05em;
      text-transform: uppercase; color: var(--on-surface-variant);
      margin-bottom: 12px;
      display: flex; align-items: center; gap: 6px;
    }
    .featured-label .material-symbols-outlined { font-size: 16px; color: var(--tertiary-container); }
    .featured-article-title {
      font-family: 'Plus Jakarta Sans', sans-serif;
      font-size: 15px; font-weight: 700; color: var(--on-surface);
      margin-bottom: 6px; line-height: 1.4;
    }
    .featured-url {
      font-size: 11.5px; color: var(--on-surface-variant); font-weight: 500;
      margin-bottom: 12px; display: block; opacity: 0.7;
    }
    .featured-stats {
      display: flex; gap: 20px;
    }
    .featured-stat-item {
      display: flex; flex-direction: column;
    }
    .featured-stat-value {
      font-size: 18px; font-weight: 700; color: var(--primary);
    }
    .featured-stat-label {
      font-size: 11px; color: var(--on-surface-variant); font-weight: 500;
    }

    /* Reader Profile Card (white, outside hero) */
    .reader-profile {
      background: var(--surface-lowest);
      border-radius: var(--radius-md);
      padding: 20px;
      box-shadow: var(--shadow-subtle);
      border: var(--ghost-border);
    }
    .reader-profile-label {
      font-size: 11px; font-weight: 600; letter-spacing: 0.05em;
      text-transform: uppercase; color: var(--on-surface-variant);
      margin-bottom: 14px;
      display: flex; align-items: center; gap: 6px;
    }
    .reader-profile-label .material-symbols-outlined { font-size: 16px; color: var(--primary); }
    .device-bar {
      display: flex; height: 8px; border-radius: 4px; overflow: hidden;
      margin-bottom: 8px; background: var(--surface);
    }
    .device-bar-fill {
      height: 100%; transition: width 0.8s var(--ease-snappy);
    }
    .device-bar-fill--mobile { background: var(--primary); }
    .device-bar-fill--desktop { background: var(--surface-highest); }
    .device-legend {
      display: flex; gap: 16px; margin-bottom: 14px;
    }
    .device-legend-item {
      display: flex; align-items: center; gap: 5px;
      font-size: 12px; color: var(--on-surface-variant); font-weight: 500;
    }
    .device-legend-dot {
      width: 8px; height: 8px; border-radius: 50%;
    }
    .device-legend-dot--mobile { background: var(--primary); }
    .device-legend-dot--desktop { background: var(--surface-highest); }
    .reader-meta-grid {
      display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
    }
    .reader-meta-item {
      display: flex; align-items: center; gap: 8px;
    }
    .reader-meta-icon {
      width: 30px; height: 30px; border-radius: var(--radius-sm);
      display: flex; align-items: center; justify-content: center;
      background: var(--surface-low);
    }
    .reader-meta-icon .material-symbols-outlined { font-size: 16px; color: var(--primary); }
    .reader-meta-text { display: flex; flex-direction: column; }
    .reader-meta-value { font-size: 13px; font-weight: 600; color: var(--on-surface); }
    .reader-meta-label { font-size: 10.5px; color: var(--on-surface-variant); }

    /* ═══════ KPI GRID — Compact Metrics ═══════ */
    .kpi-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 12px;
      margin-bottom: 20px;
    }
    .kpi-card {
      background: var(--surface-lowest);
      border-radius: 8px;
      padding: 14px 16px 10px;
      box-shadow: var(--shadow-xs);
      position: relative;
      overflow: hidden;
      transition: transform 0.15s var(--ease-snappy), box-shadow 0.15s var(--ease-snappy);
      border-left: 3px solid var(--primary);
      display: flex;
      flex-direction: column;
      min-height: 80px;
    }
    .kpi-card:hover {
      box-shadow: var(--shadow-md);
      transform: translateY(-2px);
    }
    .kpi-header {
      display: flex; align-items: center; gap: 10px;
      margin-bottom: 0;
      flex-direction: row;
    }
    .kpi-label {
      font-size: 12px; font-weight: 600; color: var(--on-surface-variant);
      text-transform: uppercase; letter-spacing: 0.04em;
      line-height: 1.2;
    }
    .kpi-icon {
      width: 28px; height: 28px; border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
      margin-left: auto;
    }
    .kpi-icon .material-symbols-outlined { font-size: 15px; }
    .kpi-icon--blue { background: #E3F2FD; color: var(--blue-accent); }
    .kpi-icon--green { background: #E8F5E9; color: var(--green); }
    .kpi-icon--orange { background: #FFF3E0; color: var(--orange); }
    .kpi-icon--pink { background: #FCE4EC; color: #C2185B; }
    .kpi-icon--purple { background: #F3E8FF; color: #7C3AED; }
    .kpi-icon--navy { background: #E8EAF6; color: #1B3C71; }
    .kpi-icon--teal { background: #E0F2F1; color: #00796B; }
    .kpi-icon--yellow { background: #FFF8E1; color: #F9A825; }
    .kpi-icon--amber { background: #FFF3E0; color: #EF6C00; }
    .kpi-icon--olive { background: #F1F8E9; color: #558B2F; }
    .kpi-icon--magenta { background: #F3E5F5; color: #8E24AA; }
    .kpi-body {
      display: flex; align-items: baseline; gap: 8px;
      margin-top: 6px;
      flex-wrap: wrap;
    }
    .kpi-value {
      font-family: 'Inter', sans-serif;
      font-size: 20px; font-weight: 700; color: var(--on-surface);
      letter-spacing: -0.03em;
      line-height: 1;
      font-variant-numeric: tabular-nums;
    }
    .kpi-change {
      display: inline-flex; align-items: center; gap: 2px;
      font-size: 11px; font-weight: 600; padding: 2px 8px;
      border-radius: 20px;
      width: fit-content;
    }
    .kpi-change--up { background: var(--green-bg); color: var(--green); }
    .kpi-change--down { background: var(--red-bg); color: var(--red); }
    .kpi-change .material-symbols-outlined { font-size: 12px; }
    .kpi-spark {
      margin-top: auto; height: 30px;
      border-top: 1px solid rgba(196,198,209,0.08);
      padding-top: 4px;
    }
    .kpi-gauge {
      margin-top: auto; height: 30px;
    }
    .kpi-progress {
      margin-top: 8px;
    }
    .kpi-progress-bar {
      height: 4px; border-radius: 2px; background: var(--surface);
      overflow: hidden;
    }
    .kpi-progress-fill {
      height: 100%; border-radius: 2px;
      background: var(--primary-gradient);
      transition: width 0.8s var(--ease-snappy);
    }
    .kpi-progress-labels {
      display: flex; justify-content: space-between;
      font-size: 10px; color: var(--on-surface-variant); margin-top: 3px;
    }
    .kpi-sub-label {
      font-size: 11px; color: var(--on-surface-variant); margin-top: 2px;
    }

    /* Per-momento border colors */
    .momento-m1 .kpi-card { border-left-color: var(--color-m1); }
    .momento-m2 .kpi-card { border-left-color: var(--color-m2); }
    .momento-m3 .kpi-card { border-left-color: var(--color-m3); }
    .momento-m4 .kpi-card { border-left-color: var(--color-m4); }
    .momento-m3 .kpi-grid { grid-template-columns: repeat(4, 1fr); }

    /* ═══════ TWO-COL SECTION — Compact ═══════ */
    .two-col {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
      margin-bottom: 20px;
    }
    .three-col {
      display: grid;
      grid-template-columns: 1fr 1fr 1fr;
      gap: 12px;
      margin-bottom: 20px;
    }
    .card {
      background: var(--surface-lowest);
      border-radius: 8px;
      padding: 20px;
      box-shadow: var(--shadow-xs);
      transition: transform 0.15s var(--ease-snappy), box-shadow 0.15s var(--ease-snappy);
    }
    .card:hover {
      box-shadow: var(--shadow-md);
      transform: translateY(-2px);
    }
    .card-title {
      font-family: 'Plus Jakarta Sans', sans-serif;
      font-size: 14px; font-weight: 700; color: var(--on-surface);
      margin-bottom: 4px; letter-spacing: -0.01em;
      display: flex; align-items: center; gap: 8px;
    }
    .card-title::before {
      content: '';
      width: 6px; height: 6px;
      border-radius: 50%;
      background: var(--primary);
      flex-shrink: 0;
    }
    .momento-m2 .card-title::before { background: var(--color-m2); }
    .momento-m3 .card-title::before { background: var(--color-m3); }
    .momento-m4 .card-title::before { background: var(--color-m4); }
    .card-subtitle {
      font-size: 12px; color: var(--on-surface-variant); margin-bottom: 16px;
      padding-left: 14px;
    }
    .chart-container { height: 220px; }
    .chart-container-sm { height: 180px; }

    /* Device card specifics */
    .device-main-bar {
      display: flex; height: 32px; border-radius: var(--radius-sm);
      overflow: hidden; margin-bottom: 16px;
    }
    .device-main-bar-fill {
      display: flex; align-items: center; justify-content: center;
      font-size: 12px; font-weight: 600; color: #fff;
      transition: width 0.8s var(--ease-snappy);
    }
    .device-main-bar-fill--mobile { background: var(--primary); }
    .device-main-bar-fill--desktop { background: var(--primary-container); }
    .returning-metric {
      display: flex; align-items: center; gap: 12px;
      background: var(--surface-low);
      border-radius: var(--radius-sm);
      padding: 14px 16px; margin-top: 16px;
    }
    .returning-metric-icon {
      width: 36px; height: 36px; border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      background: var(--green-bg);
    }
    .returning-metric-icon .material-symbols-outlined { font-size: 18px; color: var(--green); }
    .returning-metric-text { flex: 1; }
    .returning-metric-value { font-size: 20px; font-weight: 700; color: var(--on-surface); }
    .returning-metric-label { font-size: 12px; color: var(--on-surface-variant); }

    /* ═══════ SEARCH CONSOLE — Compact ═══════ */
    .gsc-section {
      margin-bottom: 20px;
    }
    .gsc-header {
      display: flex; align-items: center; gap: 10px;
      margin-bottom: 16px;
    }
    .gsc-icon {
      width: 36px; height: 36px; border-radius: 8px;
      background: var(--surface-low);
      display: flex; align-items: center; justify-content: center;
    }
    .gsc-icon svg { width: 20px; height: 20px; }
    .gsc-mini-kpis {
      display: grid; grid-template-columns: repeat(4, 1fr);
      gap: 10px; margin-bottom: 16px;
    }
    .gsc-mini-kpi {
      background: var(--surface-lowest);
      border-radius: 8px;
      padding: 12px 10px;
      box-shadow: var(--shadow-xs);
      text-align: center;
      transition: transform 0.15s var(--ease-snappy), box-shadow 0.15s var(--ease-snappy);
    }
    .gsc-mini-kpi:hover {
      box-shadow: 0 2px 8px rgba(19,27,46,0.06);
      transform: translateY(-1px);
    }
    .gsc-mini-kpi-value {
      font-size: 20px; font-weight: 700; color: var(--on-surface);
      letter-spacing: -0.02em;
    }
    .gsc-mini-kpi-label {
      font-size: 10px; font-weight: 600; color: var(--on-surface-variant);
      text-transform: uppercase; letter-spacing: 0.04em;
      margin-top: 3px;
    }
    .gsc-mini-kpi-change {
      display: inline-flex; align-items: center; gap: 2px;
      font-size: 10px; font-weight: 600; margin-top: 4px;
      padding: 2px 5px; border-radius: 4px;
    }
    .gsc-body {
      display: grid;
      grid-template-columns: 1.2fr 1fr;
      gap: 16px;
    }

    /* ═══════ TABLE ═══════ */
    .table-card {
      background: var(--surface-lowest);
      border-radius: 8px;
      box-shadow: var(--shadow-xs);
      overflow: hidden;
      margin-bottom: 20px;
    }
    .table-header {
      padding: 14px 16px;
      display: flex; align-items: center; justify-content: space-between;
    }
    .table-search {
      display: flex; align-items: center; gap: 6px;
      background: var(--surface-low);
      border-radius: var(--radius-xl);
      padding: 5px 12px;
    }
    .table-search .material-symbols-outlined { font-size: 16px; color: var(--on-surface-variant); }
    .table-search input {
      border: none; background: none; outline: none;
      font-family: 'Inter', sans-serif; font-size: 12px;
      color: var(--on-surface); width: 160px;
    }
    .table-search input::placeholder { color: var(--on-surface-variant); }
    table {
      width: 100%;
      border-collapse: collapse;
    }
    thead th {
      font-size: 10.5px; font-weight: 700; color: var(--on-surface-variant);
      text-transform: uppercase; letter-spacing: 0.04em;
      padding: 8px 12px; text-align: left;
      background: var(--surface-high);
      cursor: pointer; user-select: none;
      white-space: nowrap;
    }
    thead th:hover { color: var(--on-surface); }
    thead th .material-symbols-outlined {
      font-size: 13px; vertical-align: middle; margin-left: 2px;
    }
    tbody td {
      padding: 8px 12px; font-size: 12.5px;
      color: var(--on-surface);
      vertical-align: middle;
    }
    tbody tr { transition: background-color 0.15s var(--ease-snappy); }
    tbody tr:hover { background: var(--surface-low); }
    tbody tr:nth-child(even) { background: rgba(234,237,255,0.3); }
    tbody tr:nth-child(even):hover { background: var(--surface-low); }
    tbody tr:not(:last-child) td {
      box-shadow: inset 0 -1px 0 rgba(196,198,209,0.08);
    }
    .td-page { max-width: 300px; }
    .td-page-title {
      font-weight: 600; font-size: 12.5px; color: var(--on-surface);
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
      max-width: 280px; display: block;
    }
    .td-page-url {
      font-size: 10.5px; color: var(--primary); font-weight: 500;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
      max-width: 280px; display: block; margin-top: 1px;
    }
    .td-num { font-weight: 600; font-variant-numeric: tabular-nums; }
    .engagement-bar {
      width: 50px; height: 5px; border-radius: 3px;
      background: var(--surface); display: inline-block; vertical-align: middle;
      margin-right: 5px;
    }
    .engagement-bar-fill {
      height: 100%; border-radius: 3px;
      background: var(--primary-gradient);
    }
    .table-pagination {
      padding: 12px 16px;
      display: flex; align-items: center; justify-content: space-between;
      font-size: 12px; color: var(--on-surface-variant);
    }
    .table-pagination-btns { display: flex; gap: 4px; }
    .table-pagination-btn {
      width: 28px; height: 28px; border-radius: 6px;
      min-width: 44px; min-height: 44px;
      display: flex; align-items: center; justify-content: center;
      background: var(--surface-low);
      color: var(--on-surface-variant);
      font-size: 12px; font-weight: 600;
      transition: background-color 0.15s var(--ease-snappy), color 0.15s var(--ease-snappy);
    }
    .table-pagination-btn:hover,
    .table-pagination-btn.active {
      background: var(--primary); color: #fff;
    }

    /* ═══════ GSC TABLE — Compact ═══════ */
    .gsc-table-wrap {
      background: var(--surface-lowest);
      border-radius: 8px;
      box-shadow: var(--shadow-xs);
      overflow: hidden;
    }
    .gsc-table-header {
      padding: 12px 14px;
    }
    .gsc-chart-card {
      background: var(--surface-lowest);
      border-radius: 8px;
      box-shadow: var(--shadow-xs);
      padding: 16px;
      transition: transform 0.15s var(--ease-snappy), box-shadow 0.15s var(--ease-snappy);
    }
    .gsc-chart-card:hover {
      box-shadow: 0 2px 8px rgba(19,27,46,0.06);
      transform: translateY(-1px);
    }
    .gsc-chart-title {
      font-family: 'Plus Jakarta Sans', sans-serif;
      font-size: 13px; font-weight: 700; color: var(--on-surface);
      margin-bottom: 12px;
      display: flex; align-items: center; gap: 6px;
    }
    .gsc-chart-title::before {
      content: '';
      width: 6px; height: 6px;
      border-radius: 50%;
      background: var(--color-m3);
      flex-shrink: 0;
    }

    /* ═══════ DEMOGRAPHICS — Compact ═══════ */
    .demo-city-section {
      margin-bottom: 2px;
    }
    .demo-city-header {
      font-size: 10px; font-weight: 700; letter-spacing: 0.05em;
      text-transform: uppercase; color: var(--on-surface-variant);
      padding: 6px 0 4px; margin-bottom: 1px;
      display: flex; align-items: center; gap: 5px;
    }
    .demo-city-header .material-symbols-outlined { font-size: 12px; }
    .demo-city-row {
      display: flex; align-items: center; justify-content: space-between;
      padding: 4px 0;
    }
    .demo-city-row:not(:last-child) {
      box-shadow: inset 0 -1px 0 rgba(196,198,209,0.08);
    }
    .demo-city-name {
      font-size: 11px; font-weight: 500; color: var(--on-surface);
    }
    .demo-city-pct {
      font-size: 11px; font-weight: 700; color: var(--on-surface);
      font-variant-numeric: tabular-nums;
    }

    /* ═══════ ANIMATIONS — Snappier ═══════ */
    @keyframes fadeUp {
      from { opacity: 0; transform: translateY(10px); filter: blur(4px); }
      to { opacity: 1; transform: translateY(0); filter: blur(0); }
    }
    .animate-in {
      animation: fadeUp 0.3s var(--ease-snappy) forwards;
      opacity: 0;
    }

    /* ═══════ RESPONSIVE ═══════ */
    @media (max-width: 1200px) {
      .hero-area { grid-template-columns: 1fr; }
      .gsc-body { grid-template-columns: 1fr; }
      .three-col { grid-template-columns: repeat(3, 1fr); }
    }
    @media (max-width: 1024px) {
      .sidebar {
        transform: translateX(-100%);
        transition: transform 0.25s var(--ease-snappy);
        z-index: 1500;
        width: 240px;
        top: calc(var(--topbar-h) + 44px);
        height: calc(100% - var(--topbar-h) - 44px);
      }
      .sidebar.mobile-open {
        transform: translateX(0);
      }
      .sidebar.mobile-open .sidebar-link-text,
      .sidebar.mobile-open .sidebar-badge {
        opacity: 1; width: auto;
      }
      .mobile-only-actions {
        display: block !important;
      }
      
      /* Estilos para botones del Drawer Móvil */
      .drawer-cta {
        background: linear-gradient(135deg, var(--primary) 0%, var(--primary-container) 100%);
        color: white;
        padding: 12px;
        border: none;
        border-radius: 12px;
        font-family: var(--font-body);
        font-weight: 700;
        font-size: 13px;
        display: flex; align-items: center; justify-content: center; gap: 8px;
        cursor: pointer;
        box-shadow: 0 4px 12px rgba(0, 38, 87, 0.1);
        transition: transform 0.15s var(--ease-snappy);
        width: 100%;
      }
      .drawer-cta:active {
        transform: scale(0.97);
      }
      .drawer-secondary {
        border: 1.5px solid var(--outline-variant);
        background: transparent;
        color: var(--primary);
        padding: 11px;
        border-radius: 12px;
        font-family: var(--font-body);
        font-weight: 600;
        font-size: 13px;
        display: flex; align-items: center; justify-content: center; gap: 8px;
        cursor: pointer;
        transition: background 0.15s var(--ease-snappy), transform 0.15s var(--ease-snappy);
        width: 100%;
      }
      .drawer-secondary:active {
        transform: scale(0.97);
        background: rgba(0, 38, 87, 0.03);
      }
      [data-theme="dark"] .drawer-secondary {
        border-color: rgba(255,255,255,0.15);
        color: rgba(255,255,255,0.9);
      }
      [data-theme="dark"] .drawer-secondary:active {
        background: rgba(255,255,255,0.05);
      }

      /* Forzar justificación a la izquierda en móvil y padding adecuado */
      .sidebar .sidebar-link {
        justify-content: flex-start !important;
        padding: 10px 16px !important;
        gap: 12px !important;
        width: 100% !important;
      }
      .sidebar .sidebar-link-text {
        opacity: 1 !important;
        width: auto !important;
        display: inline-block !important;
      }
      .sidebar:not(:hover) .sidebar-link {
        justify-content: flex-start !important;
        padding: 10px 16px !important;
        gap: 12px !important;
      }
      .sidebar:not(:hover) .sidebar-link .material-symbols-outlined,
      .sidebar:not(:hover) .sidebar-link svg {
        margin: 0 !important;
        min-width: 20px !important;
        text-align: left !important;
      }
      .sidebar:not(:hover) .sidebar-section {
        padding: 8px 16px 2px !important;
      }
      .sidebar-section {
        padding: 8px 16px 2px !important;
      }
      .sidebar-section-label {
        text-align: left !important;
        margin-left: 0 !important;
      }

      /* Flecha de chevron a la derecha en los enlaces del drawer */
      .sidebar-link::after {
        content: 'chevron_right';
        font-family: 'Material Symbols Outlined';
        font-size: 16px;
        opacity: 0.4;
        margin-left: auto;
        font-weight: normal;
        display: block;
      }

      .topbar-left > div {
        display: none !important;
      }
      .topbar-right .date-badge,
      .topbar-right .topbar-btn,
      .topbar-right .export-btn {
        display: none !important;
      }
      #date-picker-container {
        display: none !important;
      }
      /* Ensure logo is shown on mobile topbar */
      .topbar-right .header-logo {
        display: block !important;
      }
      .desktop-sidebar-actions {
        display: none !important;
      }
      .sidebar-overlay {
        display: none;
        position: fixed;
        top: calc(var(--topbar-h) + 44px);
        bottom: 0;
        left: 0;
        right: 0;
        background: rgba(0,0,0,0.5);
        z-index: 1000;
      }
      .sidebar-overlay.active { display: block; }
      .mobile-menu-btn { display: flex; }
      .main {
        margin-left: 0;
        width: 100%;
        max-width: 100vw;
        padding-top: calc(var(--topbar-h) + 44px) !important;
      }
      .topbar { left: 0; width: 100%; max-width: 100vw; z-index: 2000; }
      
      /* Habilitar y dar estilo a la sub-navbar móvil */
      .sub-navbar {
        display: flex !important;
        position: fixed;
        top: var(--topbar-h);
        left: 0;
        width: 100%;
        height: 44px;
        background: var(--surface-lowest);
        border-bottom: 1px solid var(--outline-variant);
        z-index: 1400;
        align-items: center;
        justify-content: space-between;
        padding: 0 16px;
        box-shadow: 0 1px 2px rgba(0,0,0,0.03);
      }
      .sub-navbar-left {
        display: flex;
        align-items: center;
        gap: 8px;
        color: var(--primary);
        font-weight: 700;
        font-size: 13px;
      }
      .sub-navbar-left .material-symbols-outlined {
        font-size: 18px;
      }
      .sub-navbar-right {
        display: flex;
        align-items: center;
      }
      .sub-navbar-right .date-badge {
        display: flex !important;
        font-size: 11px;
        padding: 4px 10px;
        background: var(--surface-low);
        border: 1px solid var(--outline-variant);
        border-radius: 8px;
        color: var(--on-surface-variant);
        align-items: center;
        gap: 6px;
      }
      .sub-navbar-right .date-badge .material-symbols-outlined {
        font-size: 14px;
        color: var(--primary);
      }
      
      .kpi-grid { grid-template-columns: repeat(2, 1fr); }
      .gsc-mini-kpis { grid-template-columns: repeat(2, 1fr); }
    }
    @media (max-width: 768px) {
      /* === GLOBAL WIDTH LOCK === */
      .app, .main, .main-content, .hero-area, .hero-block,
      .hero-side, .card, .kpi-card, .gsc-chart-card,
      .momento-m1, .momento-m2, .momento-m3, .momento-m4,
      .editorial-body, .editorial-ai-analysis, .editorial-teasers,
      .editorial-top-rule, .editorial-callouts,
      .hero-collapsible, .hero-collapsible-ext {
        max-width: 100%;
        min-width: 0;
      }
      .main-content { padding: 20px 12px 40px; width: 100%; box-sizing: border-box; }
      .topbar { padding: 0 12px; gap: 8px; width: 100%; box-sizing: border-box; }
      .topbar-left { min-width: 0; flex: 1; overflow: hidden; }
      .topbar-title { font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 180px; }
      .topbar-subtitle { display: none; }
      .topbar-right { gap: 6px; flex-shrink: 0; }
      .date-badge { font-size: 11px; padding: 4px 8px; }
      .export-btn { padding: 6px 10px; font-size: 11px; }
      .export-btn .material-symbols-outlined { font-size: 14px; }
      .kpi-grid { grid-template-columns: repeat(2, 1fr); }
      .two-col { grid-template-columns: 1fr; }
      .three-col { grid-template-columns: repeat(2, 1fr); }
      .three-col > .card:last-child { grid-column: span 2; }
      .momento-grid { grid-template-columns: repeat(2, 1fr); }
      .hero-block { padding: 0; border-radius: var(--radius-md); overflow: hidden; }
      .gsc-mini-kpis { grid-template-columns: repeat(2, 1fr); }
      .hero-side { flex-direction: column; width: 100%; max-width: 100%; gap: 16px; }
      .featured-card, .reader-profile { width: 100%; max-width: 100%; box-sizing: border-box; }
      .card { overflow: hidden; }
    }
    @media (max-width: 480px) {
      .topbar { padding: 0 8px; }
      .topbar-title { font-size: 11px; max-width: 140px; }
      .topbar-title .material-symbols-outlined { font-size: 14px; }
      .date-badge { display: none; }
      .export-btn span:not(.material-symbols-outlined) { display: none; }
      .export-btn { padding: 6px 8px; min-width: 36px; }
      .topbar-right img { height: 18px; margin-left: 4px; }
      .topbar-right { gap: 4px; }
      .main-content { padding: 14px 8px 28px; }
      .editorial-body { overflow: hidden; }
      .editorial-ai-analysis { overflow: hidden; word-wrap: break-word; overflow-wrap: break-word; }
      .editorial-ai-text { word-wrap: break-word; overflow-wrap: break-word; font-size: 11px; line-height: 1.5; }
      .editorial-callouts { grid-template-columns: repeat(3, 1fr); gap: 4px; }
      .editorial-callout { padding-left: 6px; }
      .editorial-callout-value { font-size: 18px; }
      .editorial-callout-label { font-size: 10px; letter-spacing: 0.03em; }
      .editorial-callout-desc { font-size: 10px; }
      .editorial-teasers { grid-template-columns: 1fr; gap: 10px; }
      .editorial-teaser-title { font-size: 11px; }
      .editorial-teaser-desc { font-size: 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
      .editorial-big-number { font-size: 32px; }
      .editorial-big-sub { font-size: 14px; }
      .editorial-masthead { font-size: 10px; }
      .editorial-issue-label { font-size: 10px; }
      .editorial-pill { font-size: 10px; padding: 3px 8px; }
      .editorial-ai-label { font-size: 10px; }
      .kpi-card { padding: 12px; }
      .kpi-value { font-size: 20px; }
      .kpi-label { font-size: 11px; }
      .card { padding: 12px; }
      .card-title { font-size: 13px; }
      .gsc-mini-kpi { padding: 10px; }
      .gsc-table-wrap { overflow: hidden; }
      .gsc-table-wrap table { width: 100%; table-layout: fixed; }
      .gsc-table-wrap th, .gsc-table-wrap td { font-size: 11px; padding: 6px 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
      .gsc-table-wrap th:first-child, .gsc-table-wrap td:first-child { width: 40%; }
      .gsc-table-wrap th:nth-child(n+4), .gsc-table-wrap td:nth-child(n+4) { display: none; }
      .featured-card { padding: 12px; overflow: hidden; }
      .featured-card-title { font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
      .reader-profile { padding: 12px; overflow: hidden; }
      .section-title { font-size: 18px; }
      .momento-header h2 { font-size: 15px; }
      .momento-header { margin-top: 24px; }
      .table-pagination-btn { min-width: 36px; min-height: 36px; font-size: 11px; }
      .two-col { gap: 10px; }
      .three-col { gap: 10px; grid-template-columns: 1fr; }
      .three-col > .card:last-child { grid-column: auto; }
    }
    @media (max-width: 375px) {
      .topbar-title { max-width: 100px; font-size: 10px; }
      .topbar-btn { min-width: 36px; min-height: 36px; }
      .main-content { padding: 10px 6px 20px; }
      .kpi-card { padding: 10px; }
      .kpi-value { font-size: 18px; }
      .editorial-big-number { font-size: 28px; }
      .editorial-callout-value { font-size: 16px; }
      .editorial-callouts { gap: 4px; }
      .editorial-ai-analysis { padding: 10px 12px 6px; }
      .hero-block { border-radius: var(--radius-sm); }
    }

    /* ═══════ SKIP LINK + SR-ONLY ═══════ */
    .skip-link {
      position: absolute; left: -9999px; top: auto;
      width: 1px; height: 1px; overflow: hidden;
      z-index: 9999;
      padding: 12px 24px;
      background: var(--primary); color: #fff;
      font-weight: 600; text-decoration: none;
      border-radius: 0 0 var(--radius-sm) var(--radius-sm);
    }
    .skip-link:focus {
      position: fixed; left: 50%; top: 0;
      transform: translateX(-50%);
      width: auto; height: auto;
    }
    .sr-only {
      position: absolute; width: 1px; height: 1px;
      padding: 0; margin: -1px; overflow: hidden;
      clip: rect(0,0,0,0); white-space: nowrap; border: 0;
    }

    /* ═══════ DARK MODE — KPI ICON BACKGROUNDS ═══════ */
    [data-theme="dark"] .kpi-icon--blue { background: rgba(33,150,243,0.15); }
    [data-theme="dark"] .kpi-icon--green { background: rgba(76,175,80,0.15); }
    [data-theme="dark"] .kpi-icon--orange { background: rgba(255,152,0,0.15); }
    [data-theme="dark"] .kpi-icon--pink { background: rgba(194,24,91,0.15); }
    [data-theme="dark"] .kpi-icon--purple { background: rgba(124,58,237,0.15); }
    [data-theme="dark"] .kpi-icon--navy { background: rgba(27,60,113,0.2); }
    [data-theme="dark"] .kpi-icon--teal { background: rgba(0,121,107,0.15); }
    [data-theme="dark"] .kpi-icon--yellow { background: rgba(249,168,37,0.15); }
    [data-theme="dark"] .kpi-icon--amber { background: rgba(239,108,0,0.15); }
    [data-theme="dark"] .kpi-icon--olive { background: rgba(85,139,47,0.15); }
    [data-theme="dark"] .kpi-icon--magenta { background: rgba(142,36,170,0.15); }

    /* ═══════ HERO RETENTION — Extracted inline styles ═══════ */
    .hero-retention {
      background: rgba(255,255,255,0.14); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
      border-radius: 12px; padding: 20px 24px; text-align: center;
      min-width: 160px; flex-shrink: 0;
    }
    .hero-retention-label {
      font-size: 10px; font-weight: 600; letter-spacing: 0.08em;
      text-transform: uppercase; color: rgba(255,255,255,0.85);
      margin-bottom: 8px;
    }
    .hero-retention-value {
      font-family: 'Plus Jakarta Sans', sans-serif;
      font-size: 28px; font-weight: 800; color: #fff;
      letter-spacing: -0.03em; line-height: 1;
    }
    .hero-retention-badge {
      margin-top: 12px; display: inline-flex; align-items: center; gap: 5px;
      background: rgba(255,255,255,0.15); border-radius: 20px;
      padding: 4px 12px; font-size: 11px; font-weight: 600;
      color: rgba(255,255,255,0.85);
    }

    /* ═══════ CHART SKELETON ═══════ */
    @keyframes shimmer {
      0% { background-position: -200% 0; }
      100% { background-position: 200% 0; }
    }
    .chart-container:empty {
      background: linear-gradient(90deg, var(--surface-highest) 25%, var(--outline-variant) 50%, var(--surface-highest) 75%);
      background-size: 200% 100%;
      animation: shimmer 1.5s infinite;
      border-radius: var(--radius-sm);
    }

    /* ═══════ REDUCED MOTION ═══════ */
    @media (prefers-reduced-motion: reduce) {
      *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
      }
    }

    /* ═══════ THEME TOGGLE SMOOTH TRANSITION ═══════ */
    body, .sidebar, .topbar, .card, .kpi-card, .gsc-mini-kpi, .gsc-chart-card {
      transition: background-color 0.2s var(--ease-snappy), color 0.2s var(--ease-snappy);
    }

    /* ═══════ CONTENT-VISIBILITY FOR OFFSCREEN SECTIONS ═══════ */
    .momento-m2, .momento-m3, .momento-m4 {
      content-visibility: auto;
      contain-intrinsic-size: auto 800px;
    }

    /* ═══════ EDITORIAL HERO — Trade Publication Cover ═══════ */
    .editorial-accent-bar {
      height: 5px;
      background: #E43524;
      width: 100%;
      flex-shrink: 0;
    }
    .editorial-top-rule {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 16px 32px 12px;
      position: relative;
      z-index: 1;
    }
    .editorial-masthead {
      font-family: 'Plus Jakarta Sans', sans-serif;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.80);
    }
    .editorial-date {
      font-family: 'Plus Jakarta Sans', sans-serif;
      font-size: 13px;
      font-weight: 800;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: #fff;
      background: rgba(255,255,255,0.08);
      padding: 5px 14px;
      border-radius: 2px;
    }
    .editorial-thin-rule {
      height: 1px;
      background: rgba(255,255,255,0.10);
      margin: 0 32px;
      position: relative;
      z-index: 1;
    }
    .editorial-body {
      padding: 24px 32px 20px;
      position: relative;
      z-index: 1;
      display: grid;
      grid-template-columns: 1.2fr 1fr;
      gap: 40px;
      align-items: end;
    }
    .editorial-headline-block { /* placeholder removed */ }
    .editorial-issue-label {
      font-family: 'Inter', sans-serif;
      font-size: 10px;
      font-weight: 600;
      letter-spacing: 0.10em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.80);
      margin-bottom: 6px;
    }
    .editorial-big-number {
      font-family: 'Plus Jakarta Sans', sans-serif;
      font-size: 64px;
      font-weight: 800;
      color: #fff;
      line-height: 1;
      letter-spacing: -0.03em;
    }
    .editorial-big-sub {
      font-family: 'Plus Jakarta Sans', sans-serif;
      font-size: 18px;
      font-weight: 600;
      color: rgba(255,255,255,0.75);
      letter-spacing: -0.01em;
      margin-top: 4px;
    }
    .editorial-pill {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      background: rgba(13,124,61,0.30);
      color: #6AE69C;
      font-family: 'Inter', sans-serif;
      font-size: 12px;
      font-weight: 700;
      padding: 5px 14px;
      border-radius: 20px;
      margin-top: 12px;
      letter-spacing: 0.01em;
    }
    .editorial-pill .material-symbols-outlined {
      font-size: 15px;
    }
    .editorial-callouts {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 0;
    }
    .editorial-callout {
      padding: 0 20px;
      border-left: 1px solid rgba(255,255,255,0.10);
    }
    .editorial-callout:first-child {
      padding-left: 0;
      border-left: none;
    }
    .editorial-callout-label {
      font-family: 'Inter', sans-serif;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.10em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.80);
      margin-bottom: 4px;
    }
    .editorial-callout-value {
      font-family: 'Plus Jakarta Sans', sans-serif;
      font-size: 24px;
      font-weight: 800;
      color: #fff;
      letter-spacing: -0.02em;
      line-height: 1.1;
    }
    .editorial-callout-desc {
      font-family: 'Inter', sans-serif;
      font-size: 11px;
      font-weight: 500;
      color: rgba(255,255,255,0.80);
      margin-top: 2px;
    }
    .editorial-thin-rule-bottom {
      height: 1px;
      background: rgba(255,255,255,0.10);
      margin: 0 32px;
      position: relative;
      z-index: 1;
    }
    .editorial-teasers {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 0;
      padding: 16px 32px 20px;
      position: relative;
      z-index: 1;
    }
    .editorial-teaser {
      padding: 0 20px;
      border-left: 1px solid rgba(255,255,255,0.08);
      display: flex;
      align-items: flex-start;
      gap: 10px;
    }
    .editorial-teaser:first-child {
      padding-left: 0;
      border-left: none;
    }
    .editorial-teaser-dot {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      margin-top: 3px;
      flex-shrink: 0;
    }
    .editorial-teaser-text { /* placeholder removed */ }
    .editorial-teaser-title {
      font-family: 'Plus Jakarta Sans', sans-serif;
      font-size: 12px;
      font-weight: 700;
      color: rgba(255,255,255,0.90);
      letter-spacing: -0.01em;
      text-transform: uppercase;
      line-height: 1.3;
    }
    .editorial-teaser-desc {
      font-family: 'Inter', sans-serif;
      font-size: 11px;
      font-weight: 400;
      color: rgba(255,255,255,0.80);
      margin-top: 2px;
      line-height: 1.4;
    }

    /* ═══════ AI ANALYSIS SECTION ═══════ */
    .editorial-ai-analysis {
      position: relative;
      z-index: 1;
      padding: 16px 32px 8px;
    }
    .editorial-ai-label {
      font-family: 'Inter', sans-serif;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.10em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.80);
      margin-bottom: 8px;
      display: flex;
      align-items: center;
      gap: 6px;
    }
    .editorial-ai-label .material-symbols-outlined {
      font-size: 14px;
      color: var(--tertiary-fixed);
    }
    .editorial-ai-text {
      font-family: 'Inter', sans-serif;
      font-size: 13px;
      font-weight: 400;
      color: rgba(255,255,255,0.80);
      line-height: 1.6;
      max-width: 75ch;
    }
    .editorial-ai-text strong {
      color: #fff;
      font-weight: 600;
    }

    /* ═══════ HERO ACCORDION (mobile only) ═══════ */
    .hero-expand-btn {
      display: none; /* hidden on desktop */
    }
    .hero-collapsible, .hero-collapsible-ext {
      /* visible on desktop */
    }
    @media (max-width: 768px) {
      .hero-expand-btn {
        display: flex; align-items: center; justify-content: center; gap: 6px;
        width: 100%; padding: 10px 16px; margin-top: 12px;
        background: rgba(255,255,255,0.08);
        border: 1px solid rgba(255,255,255,0.12);
        border-radius: 8px;
        color: rgba(255,255,255,0.85);
        font-family: 'Inter', sans-serif;
        font-size: 12px; font-weight: 600;
        letter-spacing: 0.03em;
        cursor: pointer;
        transition: background 0.2s var(--ease-snappy);
      }
      .hero-expand-btn:hover { background: rgba(255,255,255,0.12); }
      .hero-expand-icon {
        font-size: 18px;
        transition: transform 0.25s var(--ease-snappy);
      }
      .hero-expand-btn[aria-expanded="true"] .hero-expand-icon {
        transform: rotate(180deg);
      }
      .hero-collapsible {
        max-height: 0; overflow: hidden;
        transition: max-height 0.35s var(--ease-snappy);
      }
      .hero-collapsible.expanded {
        max-height: 1000px;
      }
      .hero-collapsible-ext {
        max-height: 0; overflow: hidden;
        transition: max-height 0.35s var(--ease-snappy) 0.1s;
      }
      .hero-collapsible-ext.expanded {
        max-height: 2000px;
      }
    }

    /* ═══════ EDITORIAL RESPONSIVE ═══════ */
    @media (max-width: 900px) {
      .editorial-body {
        grid-template-columns: 1fr;
        gap: 20px;
      }
      .editorial-callouts {
        grid-template-columns: repeat(3, 1fr);
      }
      .editorial-big-number {
        font-size: 48px;
      }
      .editorial-teasers {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
      }
      .editorial-teaser {
        padding-left: 0;
        border-left: none;
        border-top: 1px solid rgba(255,255,255,0.08);
        padding-top: 10px;
      }
      .editorial-teaser:first-child,
      .editorial-teaser:nth-child(2) {
        border-top: none;
        padding-top: 0;
      }
    }
    @media (max-width: 600px) {
      .editorial-top-rule,
      .editorial-body,
      .editorial-teasers,
      .editorial-ai-analysis {
        padding-left: 16px;
        padding-right: 16px;
      }
      .editorial-thin-rule,
      .editorial-thin-rule-bottom {
        margin: 0 16px;
      }
      .editorial-callouts {
        grid-template-columns: repeat(3, 1fr);
        gap: 8px;
      }
      .editorial-callout {
        padding-left: 8px;
        padding-top: 0;
        border-top: none;
      }
      .editorial-callout-value {
        font-size: 20px;
      }
      .editorial-callout-label {
        font-size: 10px;
      }
      .editorial-callout-desc {
        font-size: 10px;
      }
      .editorial-teasers {
        grid-template-columns: 1fr;
        gap: 12px;
      }
      .editorial-teaser {
        padding-left: 0;
        border-left: none;
        border-top: 1px solid rgba(255,255,255,0.08);
        padding-top: 12px;
      }
      .editorial-teaser:first-child {
        border-top: none;
        padding-top: 0;
      }
      .editorial-teaser-title {
        font-size: 11px;
      }
      .editorial-teaser-desc {
        font-size: 10px;
      }
      .editorial-big-number {
        font-size: 36px;
      }
      .editorial-big-sub {
        font-size: 13px;
      }
      .editorial-pill {
        font-size: 11px;
        padding: 4px 10px;
      }
      .editorial-ai-text {
        font-size: 12px;
        line-height: 1.5;
      }
      .editorial-ai-label {
        font-size: 10px;
      }
      .editorial-masthead {
        font-size: 10px;
      }
      .editorial-issue-label {
        font-size: 10px;
      }
    }

    /* ═══════ D3: KPI ICON COLORS PER MOMENTO ═══════ */
    .momento-m1 .kpi-icon { background: rgba(13,124,61,0.10); color: #0D7C3D; }
    .momento-m2 .kpi-icon { background: rgba(27,60,113,0.10); color: #1B3C71; }
    .momento-m3 .kpi-icon { background: rgba(228,53,36,0.10); color: #E43524; }
    .momento-m4 .kpi-icon { background: rgba(241,168,11,0.10); color: #F1A80B; }
    [data-theme="dark"] .momento-m1 .kpi-icon { background: rgba(52,211,153,0.15); color: #34D399; }
    [data-theme="dark"] .momento-m2 .kpi-icon { background: rgba(74,122,191,0.15); color: #4A7ABF; }
    [data-theme="dark"] .momento-m3 .kpi-icon { background: rgba(239,83,80,0.15); color: #EF5350; }
    [data-theme="dark"] .momento-m4 .kpi-icon { background: rgba(255,213,79,0.15); color: #FFD54F; }

    /* ═══════ D4: SIDEBAR RED DOT IN COLLAPSED STATE ═══════ */
    .sidebar-link.active .sidebar-link-icon {
      position: relative;
    }
    .sidebar-link.active .sidebar-link-icon::after {
      content: '';
      position: absolute;
      top: 4px;
      right: 4px;
      width: 6px;
      height: 6px;
      background: var(--brand-red, #E43524);
      border-radius: 50%;
    }

    /* ═══════ D6: ACTIVE PRESS FEEDBACK ═══════ */
    .topbar-btn:active, .export-btn:active, .table-pagination-btn:active {
      transform: scale(0.97);
    }
    .kpi-card:active {
      transform: scale(0.99);
    }

    /* ═══════ O6: MOMENTO HEADER CLASS ═══════ */
    .momento-header {
      padding-left: 16px;
      margin-bottom: 16px;
      margin-top: 32px;
    }
    .momento-header h2 {
      margin: 0;
      font-family: 'Plus Jakarta Sans', sans-serif;
      font-size: 18px;
      font-weight: 700;
      letter-spacing: -0.02em;
    }
    .momento-header p {
      margin: 4px 0 0;
      font-size: 13px;
      color: var(--on-surface-variant);
    }
    .momento-m1 .momento-header { border-left: 4px solid var(--color-m1); }
    .momento-m1 .momento-header h2 { color: var(--color-m1); }
    .momento-m2 .momento-header { border-left: 4px solid var(--color-m2); }
    .momento-m2 .momento-header h2 { color: var(--color-m2); }
    .momento-m3 .momento-header { border-left: 4px solid var(--color-m3); }
    .momento-m3 .momento-header h2 { color: var(--color-m3); }
    .momento-m4 .momento-header { border-left: 4px solid var(--color-m4); }
    .momento-m4 .momento-header h2 { color: var(--color-m4); }

    /* ═══════ O3: PRINT RULES ═══════ */
    @media print {
      .sidebar, .topbar, .skip-link { display: none !important; }
      .main { margin-left: 0 !important; padding-top: 0 !important; }
      .main-content { max-width: 100%; padding: 20px; }
      .hero-block { break-inside: avoid; }
      .card, .kpi-card { break-inside: avoid; box-shadow: none; border: 1px solid #ddd; }
    }

    /* Tooltip styles */
    .tooltip-container {
      display: inline-flex;
      align-items: center;
      position: relative;
      margin-left: 6px;
      vertical-align: middle;
      cursor: help;
    }
    .tooltip-icon {
      font-size: 15px !important;
      color: currentColor;
      opacity: 0.6;
      transition: opacity 0.2s, transform 0.2s;
    }
    .tooltip-icon:hover {
      opacity: 1;
      transform: scale(1.15);
    }
    .tooltip-bubble {
      visibility: hidden;
      width: 220px;
      background-color: #1a2233;
      color: #ffffff;
      text-align: left;
      border-radius: 6px;
      padding: 8px 12px;
      position: absolute;
      z-index: 100;
      bottom: 130%;
      left: 50%;
      transform: translateX(-50%);
      opacity: 0;
      transition: opacity 0.2s, visibility 0.2s;
      box-shadow: 0 4px 12px rgba(0,0,0,0.25);
      font-size: 11px;
      font-weight: normal;
      line-height: 1.4;
      text-transform: none;
      letter-spacing: normal;
      pointer-events: none;
      border: 1px solid rgba(255,255,255,0.1);
    }
    .tooltip-bubble::after {
      content: "";
      position: absolute;
      top: 100%;
      left: 50%;
      transform: translateX(-50%);
      border-width: 5px;
      border-style: solid;
      border-color: #1a2233 transparent transparent transparent;
    }
    .tooltip-container:hover .tooltip-bubble {
      visibility: visible;
      opacity: 1;
    }

/* Footer Styles Extracted */
    .oa-footer { background: #001a3d; padding: 40px 0 0; font-family: 'Inter', sans-serif; color: #EEF0FF; overflow-x: hidden; max-width: 100vw; }
    .oa-footer a { color: inherit; text-decoration: none; }
    .oa-footer__container { max-width: 1200px; margin: 0 auto; padding: 0 24px; box-sizing: border-box; overflow: hidden; }
    .oa-footer__main { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.5fr; gap: 40px; padding-bottom: 20px; }
    .oa-footer__logo { height: 28px; object-fit: contain; margin-bottom: 12px; filter: brightness(0) invert(1); }
    .oa-footer__title { font-size: 13px; font-weight: 700; text-transform: uppercase; color: #EEF0FF; margin-bottom: 18px; letter-spacing: 0.05em; cursor: pointer; user-select: none; position: relative; padding-right: 30px; }
    .oa-footer__accordion-icon { position: absolute; right: 0; top: 50%; transform: translateY(-50%); font-size: 20px; font-weight: 300; display: none; }
    .oa-footer__list { list-style: none; padding: 0; margin: 0; }
    .oa-footer__list li { margin-bottom: 10px; }
    .oa-footer__list a { color: rgba(238,240,255,0.7); font-size: 14px; transition: color 0.2s; }
    .oa-footer__list a:hover { color: #E43524; }
    .oa-footer__brief { font-size: 13px; line-height: 1.6; color: rgba(238,240,255,0.55); margin: 8px 0; max-width: 280px; }
    .oa-footer__social-list { display: flex; flex-wrap: wrap; gap: 12px; margin: 8px 0 0; padding: 0; }
    .oa-footer__social-list a { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,0.08); color: rgba(238,240,255,0.6); transition: background 0.3s, color 0.3s, transform 0.3s; }
    .oa-footer__social-list a:hover { background: #E43524; color: #fff; transform: translateY(-2px); }
    .observauto-slogan-wrapper { display: flex; align-items: baseline; gap: 5px; font-size: 14px; color: rgba(238,240,255,0.55); }
    .slogan-dynamic-container { position: relative; display: inline-block; overflow: hidden; height: 1.3em; vertical-align: baseline; }
    .slogan-word { display: block; position: absolute; top: 0; left: 0; opacity: 0; transform: translateY(100%); transition: all 0.4s ease; font-weight: 700; color: #E43524; }
    .slogan-word.active { opacity: 1; transform: translateY(0); position: relative; }
    .slogan-word.exit { opacity: 0; transform: translateY(-100%); }
    .oa-footer__tags { display: flex; flex-wrap: wrap; gap: 6px; padding: 20px 0; border-top: 1px solid rgba(255,255,255,0.06); }
    .oa-footer__tag { display: inline-block; padding: 4px 10px; font-size: 11px; font-weight: 500; color: rgba(238,240,255,0.4); background: rgba(255,255,255,0.04); border-radius: 12px; transition: background 0.2s, color 0.2s; border: 1px solid rgba(255,255,255,0.06); }
    .oa-footer__tag:hover { background: #E43524; color: #fff; border-color: #E43524; }
    .oa-footer__bottom { border-top: 1px solid rgba(255,255,255,0.06); padding: 20px 0; }
    .oa-footer__bottom-inner { display: flex; justify-content: space-between; align-items: center; font-size: 12px; color: rgba(238,240,255,0.35); }
    .oa-footer__legal { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 0; }
    .oa-footer__legal span { margin-right: 20px; font-weight: 600; }
    .oa-footer__legal a { margin-right: 15px; transition: color 0.2s; }
    .oa-footer__legal a:hover { color: rgba(238,240,255,0.7); }
    .oa-footer__newsletter-text { font-size: 13px; color: rgba(238,240,255,0.55); margin-bottom: 12px; line-height: 1.5; }
    .oa-footer__newsletter-form { display: flex; flex-direction: column; gap: 10px; }
    .oa-footer__newsletter-input { padding: 12px 16px; border: 1px solid rgba(255,255,255,0.1); border-radius: 6px; font-size: 14px; font-family: inherit; background: rgba(255,255,255,0.06); color: #EEF0FF; transition: border-color 0.2s; }
    .oa-footer__newsletter-input::placeholder { color: rgba(238,240,255,0.3); }
    .oa-footer__newsletter-input:focus { outline: none; border-color: #E43524; }
    .oa-footer__newsletter-button { padding: 12px 24px; background: #E43524; color: #fff; border: none; border-radius: 6px; font-size: 14px; font-weight: 600; text-transform: uppercase; cursor: pointer; transition: background 0.3s, transform 0.3s; font-family: inherit; }
    .oa-footer__newsletter-button:hover { background: #b50102; transform: translateY(-1px); }
    @media (max-width: 1024px) {
      .oa-footer__main { grid-template-columns: repeat(2, 1fr); gap: 2rem; }
    }
    @media (max-width: 768px) {
      .oa-footer { padding: 24px 0 0; }
      .oa-footer__container { padding: 0 16px; }
      .oa-footer__main { grid-template-columns: 1fr; gap: 0; padding-bottom: 0; }
      .oa-footer__col-brand { padding-bottom: 15px; }
      .oa-footer__accordion-icon { display: block; }
      .oa-footer__accordion-content { max-height: 0; overflow: hidden; transition: max-height 0.3s ease; }
      .oa-footer__col--accordion { border-top: 1px solid rgba(255,255,255,0.06); padding: 12px 0; }
      .oa-footer__col--accordion.is-open .oa-footer__accordion-content { max-height: 300px; }
      .oa-footer__bottom-inner { flex-direction: column; gap: 8px; text-align: center; }
      .oa-footer__legal { justify-content: center; flex-wrap: wrap; }
      .oa-footer__legal span { margin-right: 0; display: block; width: 100%; text-align: center; }
      .oa-footer__legal a { margin-right: 8px; font-size: 11px; }
      .oa-footer__tags { gap: 4px; padding: 16px 0; }
      .oa-footer__tag { font-size: 10px; padding: 3px 8px; }
      .oa-footer__brief { max-width: 100%; }
      .oa-footer__social-list { gap: 8px; }
      .oa-footer__social-list a { width: 32px; height: 32px; }
    }
