
  :root {
    color-scheme: light;
    --surface:#fcfcfb; --plane:#f2f2ef; --raised:#ffffff;
    --ink:#0b0b0b; --ink-2:#52514e; --ink-muted:#898781;
    --grid:#e1e0d9; --axis:#c3c2b7;
    --hairline:rgba(11,11,11,0.10); --hairline-2:rgba(11,11,11,0.06);
    --accent:#2a78d6; --accent-soft:rgba(42,120,214,0.10); --accent-ink:#1c5cab;
    --good:#0ca30c; --good-ink:#006300; --critical:#d03b3b;
    --s1:#2a78d6; --s2:#eb6834; --s3:#1baf7a; --s4:#eda100;
    --s5:#e87ba4; --s6:#008300; --s7:#4a3aa7; --s8:#e34948; --s-other:#898781;
    --shadow:0 1px 2px rgba(11,11,11,0.05), 0 4px 16px rgba(11,11,11,0.05);
  }
  @media (prefers-color-scheme: dark) {
    :root:where(:not([data-theme="light"])) {
      color-scheme: dark;
      --surface:#1a1a19; --plane:#0d0d0d; --raised:#232322;
      --ink:#ffffff; --ink-2:#c3c2b7; --ink-muted:#898781;
      --grid:#2c2c2a; --axis:#383835;
      --hairline:rgba(255,255,255,0.10); --hairline-2:rgba(255,255,255,0.06);
      --accent:#3987e5; --accent-soft:rgba(57,135,229,0.16); --accent-ink:#86b6ef;
      --good-ink:#0ca30c;
      --s1:#3987e5; --s2:#d95926; --s3:#199e70; --s4:#c98500;
      --s5:#d55181; --s6:#008300; --s7:#9085e9; --s8:#e66767;
      --shadow:0 1px 2px rgba(0,0,0,0.4), 0 4px 16px rgba(0,0,0,0.3);
    }
  }
  :root[data-theme="dark"] {
    color-scheme: dark;
    --surface:#1a1a19; --plane:#0d0d0d; --raised:#232322;
    --ink:#ffffff; --ink-2:#c3c2b7; --ink-muted:#898781;
    --grid:#2c2c2a; --axis:#383835;
    --hairline:rgba(255,255,255,0.10); --hairline-2:rgba(255,255,255,0.06);
    --accent:#3987e5; --accent-soft:rgba(57,135,229,0.16); --accent-ink:#86b6ef;
    --good-ink:#0ca30c;
    --s1:#3987e5; --s2:#d95926; --s3:#199e70; --s4:#c98500;
    --s5:#d55181; --s6:#008300; --s7:#9085e9; --s8:#e66767;
    --shadow:0 1px 2px rgba(0,0,0,0.4), 0 4px 16px rgba(0,0,0,0.3);
  }

  * { box-sizing: border-box; }
  body {
    margin:0; background:var(--plane); color:var(--ink);
    font-family:system-ui, -apple-system, "Segoe UI", sans-serif;
    font-size:15px; line-height:1.5; -webkit-text-size-adjust:100%;
  }
  .wrap { max-width:1180px; margin:0 auto; padding:0 16px 72px; }

  .head { padding:28px 0 18px; display:flex; flex-wrap:wrap; gap:14px; align-items:flex-end; justify-content:space-between; }
  .head h1 { margin:0; font-size:22px; font-weight:640; letter-spacing:-0.012em; text-wrap:balance; }
  .head .sub { margin:4px 0 0; color:var(--ink-2); font-size:13.5px; }
  .stamp { font-size:12.5px; color:var(--ink-muted); display:flex; align-items:center; gap:7px; }
  .dot { width:7px; height:7px; border-radius:50%; background:var(--good); flex:none; }

  .filters {
    position:sticky; top:var(--alto-barra, 0px); z-index:30;
    background:color-mix(in srgb, var(--plane) 88%, transparent);
    backdrop-filter:blur(8px); border-bottom:1px solid var(--hairline);
    margin:0 -16px; padding:10px 16px;
  }
  .frow { display:flex; flex-wrap:wrap; gap:10px 18px; align-items:center; }
  .fgroup { display:flex; align-items:center; gap:8px; min-width:0; }
  .flabel { font-size:10.5px; font-weight:620; letter-spacing:0.07em; text-transform:uppercase; color:var(--ink-muted); white-space:nowrap; }
  .seg { display:inline-flex; background:var(--hairline-2); border-radius:8px; padding:2px; gap:2px; }
  .seg button {
    font:inherit; font-size:13px; font-weight:520; line-height:1; padding:7px 11px;
    border:0; border-radius:6px; background:transparent; color:var(--ink-2); cursor:pointer; white-space:nowrap;
  }
  .seg button:hover { color:var(--ink); }
  .seg button[aria-pressed="true"] { background:var(--raised); color:var(--ink); box-shadow:0 1px 2px rgba(0,0,0,0.10); }
  select {
    font:inherit; font-size:13.5px; color:var(--ink); background:var(--raised);
    border:1px solid var(--hairline); border-radius:8px; padding:7px 9px; cursor:pointer; max-width:100%;
  }
  .chips { display:flex; flex-wrap:wrap; gap:6px; }
  .chip {
    font:inherit; font-size:13px; line-height:1; padding:7px 11px 7px 8px;
    border:1px solid var(--hairline); border-radius:999px; background:var(--raised); color:var(--ink-2);
    cursor:pointer; display:inline-flex; align-items:center; gap:6px; white-space:nowrap;
  }
  .chip .sw { width:9px; height:9px; border-radius:2px; flex:none; opacity:0.35; }
  .chip[aria-pressed="true"] { color:var(--ink); border-color:color-mix(in srgb, var(--accent) 45%, var(--hairline)); background:var(--accent-soft); }
  .chip[aria-pressed="true"] .sw { opacity:1; }
  .linkbtn { font:inherit; font-size:12.5px; background:none; border:0; color:var(--accent-ink); cursor:pointer; padding:4px 2px; text-decoration:underline; text-underline-offset:3px; }
  .mobile-toggle { display:none; }
  button:focus-visible, select:focus-visible, .row-toggle:focus-visible, input:focus-visible + span {
    outline:2px solid var(--accent); outline-offset:2px; border-radius:6px;
  }

  /* opción única de métrica */
  .radios { display:flex; flex-wrap:wrap; gap:2px 4px; }
  .radio { position:relative; display:inline-flex; }
  .radio input { position:absolute; opacity:0; width:0; height:0; }
  .radio span {
    display:inline-flex; align-items:center; gap:7px; cursor:pointer;
    font-size:13px; line-height:1; padding:7px 11px 7px 8px; border-radius:999px;
    border:1px solid transparent; color:var(--ink-2); white-space:nowrap;
  }
  .radio span::before {
    content:""; width:12px; height:12px; border-radius:50%; flex:none;
    border:1.5px solid var(--axis); background:var(--raised);
  }
  .radio span:hover { color:var(--ink); }
  .radio input:checked + span { color:var(--ink); font-weight:560; background:var(--accent-soft); border-color:color-mix(in srgb, var(--accent) 45%, var(--hairline)); }
  .radio input:checked + span::before { border-color:var(--accent); border-width:4px; }

  .kpis { display:grid; grid-template-columns:repeat(auto-fit, minmax(168px,1fr)); gap:12px; margin:18px 0; }
  .kpi { background:var(--surface); border:1px solid var(--hairline); border-radius:12px; padding:13px 14px 12px; box-shadow:var(--shadow); }
  .kpi .k-label { font-size:10.5px; font-weight:620; letter-spacing:0.07em; text-transform:uppercase; color:var(--ink-muted); }
  .kpi .k-val { font-size:26px; font-weight:620; letter-spacing:-0.02em; margin-top:5px; font-variant-numeric:tabular-nums; }
  .kpi .k-delta { font-size:12.5px; color:var(--ink-2); margin-top:3px; font-variant-numeric:tabular-nums; }
  .up { color:var(--good-ink); } .down { color:var(--critical); }

  .card { background:var(--surface); border:1px solid var(--hairline); border-radius:14px; box-shadow:var(--shadow); margin-bottom:18px; overflow:hidden; }
  .card-head { display:flex; flex-wrap:wrap; gap:10px; align-items:baseline; justify-content:space-between; padding:15px 16px 0; }
  .card-head h2 { margin:0; font-size:15px; font-weight:620; letter-spacing:-0.005em; }
  .card-head .note { font-size:12.5px; color:var(--ink-muted); }
  .legend { display:flex; flex-wrap:wrap; gap:4px 14px; padding:10px 16px 0; }
  .lg { display:inline-flex; align-items:center; gap:6px; font-size:12.5px; color:var(--ink-2); background:none; border:0; cursor:pointer; font-family:inherit; padding:2px 0; }
  .lg .sw { width:12px; height:3px; border-radius:2px; flex:none; }
  .lg.off { opacity:0.38; }
  .chart-box { position:relative; padding:6px 8px 4px; }
  svg { display:block; width:100%; height:auto; touch-action:pan-y; }
  .tt {
    position:absolute; pointer-events:none; z-index:20; opacity:0; transition:opacity .1s;
    background:var(--raised); border:1px solid var(--hairline); border-radius:10px;
    box-shadow:var(--shadow); padding:9px 11px; font-size:12.5px; min-width:186px;
  }
  .tt.on { opacity:1; }
  .tt h4 { margin:0 0 6px; font-size:12px; font-weight:640; letter-spacing:0.02em; }
  .tt table { border-collapse:collapse; width:100%; }
  .tt td { padding:1.5px 0; font-variant-numeric:tabular-nums; }
  .tt td:last-child { text-align:right; padding-left:14px; font-weight:560; }
  .tt .sw { display:inline-block; width:12px; height:3px; border-radius:2px; margin-right:6px; vertical-align:middle; }
  .tt .cmp { margin-top:6px; padding-top:5px; border-top:1px solid var(--hairline-2); font-size:12px; }

  .tscroll { overflow-x:auto; }
  table.data { border-collapse:collapse; width:100%; font-size:13.5px; }
  table.data th, table.data td { padding:9px 12px; text-align:right; white-space:nowrap; }
  table.data th { font-size:10.5px; font-weight:620; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-muted); border-bottom:1px solid var(--axis); position:sticky; top:0; background:var(--surface); }
  table.data th:first-child, table.data td:first-child { text-align:left; }
  table.data td { border-bottom:1px solid var(--hairline-2); font-variant-numeric:tabular-nums; }
  table.data tr.grp > td { font-weight:560; }
  table.data tr.child > td { color:var(--ink-2); font-size:13px; }
  table.data tr.child > td:first-child { padding-left:34px; }
  table.data tr.total > td { font-weight:640; border-top:1px solid var(--axis); border-bottom:0; }
  .row-toggle { background:none; border:0; font:inherit; color:inherit; cursor:pointer; display:inline-flex; align-items:center; gap:8px; padding:0; text-align:left; }
  .caret { width:14px; color:var(--ink-muted); flex:none; transition:transform .15s; display:inline-block; }
  .caret.open { transform:rotate(90deg); }
  .swatch { width:10px; height:10px; border-radius:3px; flex:none; }
  .delta-cell { font-variant-numeric:tabular-nums; }

  .movers { padding:4px 16px 16px; display:grid; gap:7px; }
  .mv { display:grid; grid-template-columns:1fr 92px 88px; gap:10px; align-items:center; font-size:13.5px; }
  .mv .name { display:flex; align-items:center; gap:8px; min-width:0; }
  .mv .name span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .bar { height:20px; position:relative; background:var(--hairline-2); border-radius:4px; overflow:hidden; }
  .bar i { position:absolute; top:0; bottom:0; display:block; border-radius:3px; }
  .zero { position:absolute; top:0; bottom:0; width:1px; background:var(--axis); left:50%; }
  .mv .amt { text-align:right; font-variant-numeric:tabular-nums; font-weight:560; }

  .foot { color:var(--ink-muted); font-size:12.5px; padding:4px 2px 0; }
  .foot p { margin:0 0 7px; }

  @media (max-width:860px) { .kpis { grid-template-columns:repeat(2,1fr); gap:10px; } .kpi .k-val { font-size:22px; } }
  @media (max-width:680px) {
    body { font-size:14.5px; }
    .wrap { padding:0 12px 56px; }
    .head { padding:20px 0 14px; } .head h1 { font-size:19px; }
    .filters { margin:0 -12px; padding:9px 12px; }
    .mobile-toggle {
      display:inline-flex; align-items:center; gap:8px; font:inherit; font-size:13.5px; font-weight:560;
      background:var(--raised); border:1px solid var(--hairline); border-radius:9px;
      padding:9px 12px; color:var(--ink); cursor:pointer; width:100%; justify-content:space-between;
    }
    .frow { display:none; padding-top:10px; }
    .filters.open .frow { display:flex; flex-direction:column; align-items:stretch; gap:12px; }
    .fgroup { flex-direction:column; align-items:flex-start; gap:5px; }
    .seg { width:100%; } .seg button { flex:1; padding:9px 6px; }
    select { width:100%; }
    table.data { font-size:13px; }
    table.data th, table.data td { padding:8px 7px; }
    table.data th:first-child, table.data td:first-child { padding-left:10px; }
    table.data th:last-child, table.data td:last-child { padding-right:10px; }
    table.data tr.child > td:first-child { padding-left:26px; }
    .row-toggle { gap:6px; }
    .caret { width:11px; }
    .mv { grid-template-columns:1fr 64px 78px; font-size:13px; }
  }
  @media (prefers-reduced-motion: reduce) { * { transition:none !important; } }
