/* ===== DASHBOARDS PROPIOS (sin Looker) — Jerez (sherry.html, dashboard-jerez.html) y Sparkling (sparkling.html, dashboard-sparkling.html) =====
   Motor: gg-dashboard.js. Datos y textos: jerez-*.js y sparkling-*.js.
   Todo va con el prefijo .jz- para no tocar el resto de la web.
   Color de la barra superior y de los acentos: --jz-sherry (fondo) y --jz-rose (acento). Sparkling los cambia con .jz--sparkling. */
.jz{--jz-paper:#f1f0e9;--jz-card:#faf9f4;--jz-ink:#171715;--jz-ink2:#4f4d47;--jz-muted:#77756d;--jz-line:#d8d5c9;--jz-wine:#9a2f47;--jz-blue:#2a78d6;--jz-amber:#c47f00;--jz-teal:#14946a;--jz-sherry:#2c111c;--jz-rose:#f1b6c0;
  position:relative;background:var(--jz-paper);color:var(--jz-ink);font-family:'DM Sans',Arial,sans-serif;border:1px solid var(--jz-ink)}
.jz *{box-sizing:border-box}
.jz .mono,.jz-mono{font:11px/1.5 'DM Mono',monospace;letter-spacing:.055em;text-transform:uppercase}
.jz-top{display:flex;justify-content:space-between;align-items:center;gap:14px 24px;flex-wrap:wrap;background:var(--jz-sherry);color:#f3e5df;padding:16px clamp(16px,2.4vw,28px)}
.jz-top strong{font:700 clamp(18px,2vw,24px)/1 'Space Grotesk',sans-serif;letter-spacing:-.04em;text-transform:uppercase}
.jz-top a{color:#f3e5df;font:12px 'DM Mono',monospace;text-transform:uppercase;border-bottom:1px solid;padding-bottom:4px;white-space:nowrap}
.jz-top a:hover{color:var(--jz-rose)}
.jz-tabs{display:flex;gap:0;overflow-x:auto;border-bottom:1px solid var(--jz-ink);background:var(--jz-paper);scrollbar-width:thin}
.jz-tab{flex:none;min-height:52px;padding:10px 16px;border:0;border-right:1px solid var(--jz-line);background:transparent;color:var(--jz-ink);font:11px/1.3 'DM Mono',monospace;letter-spacing:.05em;text-transform:uppercase;text-align:left;cursor:pointer}
.jz-tab b{display:block;font-weight:400;color:var(--jz-muted)}
.jz-tab:hover{background:#e7e4dc}
.jz-tab[aria-selected=true]{background:var(--jz-ink);color:var(--jz-paper)}
.jz-tab[aria-selected=true] b{color:var(--jz-rose)}
.jz-tab:focus-visible,.jz button:focus-visible,.jz select:focus-visible,.jz summary:focus-visible,.jz a:focus-visible{outline:3px solid var(--jz-amber);outline-offset:-3px}
.jz-filters{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;padding:12px clamp(16px,2.4vw,28px);border-bottom:1px solid var(--jz-line);font:11px 'DM Mono',monospace;text-transform:uppercase}
.jz-filters[hidden],.jz-filters label[hidden]{display:none}
.jz-filters label{display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.jz-filters select{min-height:36px;padding:0 10px;border:1px solid var(--jz-ink);background:var(--jz-card);color:var(--jz-ink);font:12px 'DM Mono',monospace}
.jz-filters input{width:18px;height:18px;accent-color:var(--jz-wine)}
.jz-panel{padding:clamp(18px,3vw,36px) clamp(16px,2.4vw,28px) clamp(24px,3vw,40px)}
.jz-q{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:12px clamp(20px,4vw,56px);align-items:start;margin-bottom:26px}
.jz-q h3{margin:6px 0 0;font:700 clamp(28px,3.4vw,52px)/.98 'Space Grotesk',sans-serif;letter-spacing:-.055em}
.jz-answer{margin:0;font-size:clamp(17px,1.5vw,21px);line-height:1.45;letter-spacing:-.01em}
.jz-answer strong{font-weight:700}
.jz-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--jz-ink);border:1px solid var(--jz-ink);margin-bottom:26px}
.jz-kpi{background:var(--jz-card);padding:16px 16px 18px;min-width:0}
.jz-kpi .jz-mono{color:var(--jz-ink2)}
.jz-kpi strong{display:block;margin:8px 0 6px;font:700 clamp(26px,2.6vw,40px)/1 'Space Grotesk',sans-serif;letter-spacing:-.05em;white-space:nowrap}
.jz-kpi span{font-size:14px;line-height:1.35;color:var(--jz-ink2)}
.jz-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.jz-fig{margin:0;background:var(--jz-card);border:1px solid var(--jz-line);padding:16px 16px 12px;min-width:0}
.jz-fig--wide{grid-column:1/-1}
.jz-fig h4{margin:0 0 4px;font:600 19px/1.2 'Space Grotesk',sans-serif;letter-spacing:-.03em}
.jz-fig .jz-sub{margin:0 0 10px;font-size:14px;line-height:1.4;color:var(--jz-ink2)}
.jz-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0 0 6px;padding:0;list-style:none;font-size:13px;color:var(--jz-ink2)}
.jz-legend i{display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}
.jz-legend i.jz-sw-dot{width:10px;height:10px;border-radius:50%}
.jz-legend i.jz-sw-ring{width:10px;height:10px;border-radius:50%;background:transparent!important;border:2px solid #8b8a83}
.jz-plot{width:100%;min-height:60px}
.jz-plot svg{display:block;max-width:100%;overflow:visible}
.jz-grid-l{stroke:#e2dfd4;stroke-width:1}
.jz-zero{stroke:var(--jz-ink2);stroke-width:1}
.jz-ref{stroke:var(--jz-ink2);stroke-width:1;stroke-dasharray:3 4}
.jz-ax{fill:var(--jz-muted);font:11px 'DM Mono',monospace}
.jz-axt{fill:var(--jz-ink2);font:11px 'DM Mono',monospace;text-transform:uppercase}
.jz-lab{fill:var(--jz-ink);font:600 12px 'DM Sans',sans-serif}
.jz-lab-m{fill:var(--jz-ink2);font:12px 'DM Sans',sans-serif}
.jz-val{fill:var(--jz-ink);font:12px 'DM Mono',monospace}
.jz-quad{fill:var(--jz-muted);font:10px 'DM Mono',monospace;text-transform:uppercase}
.jz-line{fill:none;stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.jz-cross{stroke:var(--jz-ink);stroke-width:1;stroke-dasharray:2 3}
.jz-dot{stroke:var(--jz-card);stroke-width:2}
.jz-bar{transition:opacity .15s}
.jz-plot svg:hover .jz-bar{opacity:.55}
.jz-plot svg .jz-bar.on{opacity:1}
.jz-pt{stroke:var(--jz-card);stroke-width:2}
.jz-heat-l{display:flex;align-items:center;gap:10px;margin-top:8px;font:11px 'DM Mono',monospace;color:var(--jz-ink2)}
.jz-heat-l i{display:block;width:120px;height:10px;background:linear-gradient(90deg,#f6e6ea,#6d1f31)}
.jz-fig details{margin-top:8px;border-top:1px solid var(--jz-line);padding-top:8px}
.jz-fig summary{cursor:pointer;font:11px 'DM Mono',monospace;text-transform:uppercase;color:var(--jz-ink2);min-height:28px;display:flex;align-items:center}
.jz-table-w{overflow-x:auto;margin-top:8px}
.jz-table{border-collapse:collapse;width:100%;font-size:13px}
.jz-table th,.jz-table td{padding:6px 10px;border-bottom:1px solid var(--jz-line);text-align:right;white-space:nowrap}
.jz-table th:first-child,.jz-table td:first-child{text-align:left}
.jz-table th{font:11px 'DM Mono',monospace;text-transform:uppercase;color:var(--jz-ink2)}
.jz-table a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.jz-note{margin:10px 0 0;font-size:13px;line-height:1.5;color:var(--jz-ink2)}
.jz-read{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:26px;border:1px solid var(--jz-ink)}
.jz-read>div{padding:18px;border-right:1px solid var(--jz-ink);min-width:0}
.jz-read>div:last-child{border-right:0;background:var(--jz-sherry);color:#f3e5df}
.jz-read>div:last-child .jz-mono{color:var(--jz-rose)}
.jz-read p{margin:8px 0 0;font-size:15.5px;line-height:1.5}
.jz-src{margin:18px 0 0;font:11px/1.7 'DM Mono',monospace;text-transform:uppercase;color:var(--jz-ink2)}
.jz-src a{border-bottom:1px solid;color:inherit}
.jz-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.jz-card{background:var(--jz-card);border:1px solid var(--jz-ink);padding:20px;display:flex;flex-direction:column;gap:10px;min-width:0}
.jz-card h4{margin:0;font:700 clamp(22px,2vw,30px)/1.05 'Space Grotesk',sans-serif;letter-spacing:-.045em}
.jz-card dl{margin:0;display:grid;gap:10px}
.jz-card dt{font:11px 'DM Mono',monospace;text-transform:uppercase;color:var(--jz-wine)}
.jz-card dd{margin:2px 0 0;font-size:15px;line-height:1.5}
.jz-card button{align-self:flex-start;margin-top:auto;min-height:40px;padding:0 14px;border:1px solid var(--jz-ink);background:transparent;font:11px 'DM Mono',monospace;text-transform:uppercase;cursor:pointer}
.jz-card button:hover{background:var(--jz-ink);color:var(--jz-paper)}
.jz-limits{margin-top:22px;padding:20px;background:var(--jz-ink);color:var(--jz-paper)}
.jz-limits ul{margin:10px 0 0;padding-left:18px;display:grid;gap:6px;font-size:15px;line-height:1.5}
.jz-tip{position:absolute;top:0;left:0;z-index:20;min-width:150px;max-width:280px;padding:10px 12px;background:var(--jz-ink);color:var(--jz-paper);font-size:13px;line-height:1.45;pointer-events:none;box-shadow:0 6px 18px rgba(0,0,0,.18)}
.jz-tip[hidden]{display:none}
.jz-tip b{display:block;margin-bottom:4px;font:11px 'DM Mono',monospace;text-transform:uppercase;color:var(--jz-rose)}
.jz-tip span{display:flex;align-items:center;gap:8px;justify-content:space-between}
.jz-tip span i{width:9px;height:9px;border-radius:50%;flex:none}
.jz-tip span em{margin-left:auto;font-style:normal;font-family:'DM Mono',monospace}
.jz-noscript{padding:28px;font-size:16px;line-height:1.5}
@media(max-width:1000px){.jz-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.jz-q{grid-template-columns:1fr}}
@media(max-width:760px){.jz-grid,.jz-cards{grid-template-columns:1fr}.jz-read{grid-template-columns:1fr}.jz-read>div{border-right:0;border-bottom:1px solid var(--jz-ink)}.jz-read>div:last-child{border-bottom:0}.jz-fig{padding:12px 10px 10px}}
@media(max-width:420px){.jz-kpi strong{font-size:24px;white-space:normal;overflow-wrap:anywhere}}

/* Tema Sparkling: verde oscuro de la casa y acento ácido */
.jz--sparkling{--jz-sherry:#19231d;--jz-rose:#d5ff54}
.jz-page--sparkling{background:#19231d}
.jz-page--sparkling .jz{border-color:#19231d}
.jz-legend i.jz-sw-dash{background:repeating-linear-gradient(90deg,currentColor 0 4px,transparent 4px 7px)!important}

/* Tema Tenis: azul ATP del dashboard original y amarillo pelota */
.jz--tenis{--jz-sherry:#0d2f6b;--jz-rose:#d5ff54}
.jz-page--tenis{background:#0d2f6b}
.jz-page--tenis .jz{border-color:#0d2f6b}
.jz-picker{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin:0 0 22px;font:11px 'DM Mono',monospace;text-transform:uppercase}
.jz-picker select{min-height:40px;padding:0 12px;border:1px solid var(--jz-ink);background:var(--jz-card);color:var(--jz-ink);font:14px 'DM Sans',sans-serif}
/* Dashboard dentro de un artículo del Cuaderno: más ancho que la columna de texto */
.article-body .jz{margin:34px 0 10px;max-width:none} /* ancho y centrado: encuadrar() en gg-dashboard.js */

/* Integración en sherry.html y sparkling.html */
.jz-section{background:#f1f0e9;color:#171715}
.jz-section .case-two p{font-size:19px;line-height:1.55}
.jz-section .jz{margin-top:10px}
/* Página a pantalla completa: dashboard-jerez.html */
.jz-page{margin:0;background:#2c111c;min-height:100vh}
.jz-page main{width:min(calc(100% - 32px),1600px);margin:16px auto 40px}
.jz-page .jz{border-color:#2c111c}
@media print{.jz-tabs,.jz-filters,.jz-top a{display:none}.jz-tip{display:none}}
