/* ui/graficas.css: lo que pinta ui/graficas.js. Pieza del catálogo (nuvelo-catalogo/base/graficas.css).
   Azul de marca y una rampa de un solo tono comprobada para daltonismo (#7fb6fb → #0055b8). El texto nunca lleva el color de la serie. */
.g-caja{--g-azul:#0080ff;--g-tinta:var(--ink,#0a0b12);--g-medio:var(--muted,#5d6375);--g-suave:var(--faint,#737a8c);--g-linea:var(--line,#e7e9ef);--g-fondo:#fff;--g-gris:#9aa3b5;position:relative;min-width:0}
.g-lienzo{position:relative;width:100%}
.g-lienzo svg{display:block;width:100%;overflow:visible;touch-action:pan-y;outline:none}
.g-lienzo svg:focus-visible{outline:2px solid var(--g-azul);outline-offset:4px;border-radius:6px}
.g-rej{stroke:var(--g-linea);stroke-width:1;shape-rendering:crispEdges}
.g-base{stroke:var(--line-2,#d9dce4);stroke-width:1;shape-rendering:crispEdges}
.g-eje{font:500 10.5px "DM Mono",ui-monospace,monospace;fill:var(--g-suave)}
.g-hoy{fill:var(--g-tinta)}
.g-etq{font:600 12px "DM Sans",system-ui,sans-serif;fill:var(--g-medio);paint-order:stroke;stroke:var(--g-fondo);stroke-width:4px;stroke-linejoin:round}
.g-etq-fin{fill:var(--g-tinta);font-size:13px;font-weight:700}
.g-linea{fill:none;stroke:var(--g-azul);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.g-linea.g-entra{stroke-dasharray:1;stroke-dashoffset:1;animation:g-dibuja 1.1s cubic-bezier(.3,.7,.2,1) forwards}
.g-lavado.g-entra{opacity:0;animation:g-aparece .7s .45s ease forwards}
.g-lav-1{stop-color:var(--g-azul);stop-opacity:.16}.g-lav-2{stop-color:var(--g-azul);stop-opacity:0}
.g-previo{fill:none;stroke:var(--g-gris);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.g-punto{fill:var(--g-azul);stroke:var(--g-fondo);stroke-width:2;paint-order:stroke}
.g-punto-p{fill:var(--g-gris);stroke:var(--g-fondo);stroke-width:2;paint-order:stroke}
.g-cruz{stroke:var(--g-suave);stroke-width:1;shape-rendering:crispEdges;opacity:.6}
.g-zona{cursor:crosshair}
@keyframes g-dibuja{to{stroke-dashoffset:0}}
@keyframes g-aparece{to{opacity:1}}
.g-ley{display:flex;align-items:center;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:var(--g-medio);margin-bottom:10px}
.g-ley span{display:inline-flex;align-items:center;gap:7px}
.g-ley .l-azul,.g-tip .l-azul{width:14px;height:2px;border-radius:2px;background:var(--g-azul);display:inline-block}
.g-ley .l-gris,.g-tip .l-gris{width:14px;height:2px;border-radius:2px;background:var(--g-gris);display:inline-block}
.g-tip{position:absolute;left:0;top:0;z-index:4;pointer-events:none;background:#0a0b12;color:#fff;border-radius:10px;padding:8px 11px;font-size:12.5px;line-height:1.4;white-space:nowrap;box-shadow:0 10px 26px -10px rgba(9,9,15,.55)}
.g-tip[hidden]{display:none}
.g-vacio{position:absolute;left:30px;right:14px;top:32%;z-index:1;text-align:center;font-size:13.5px;color:var(--g-suave);pointer-events:none}
.g-tip b{display:block;font-weight:600;margin-bottom:1px}
.g-tip-f{display:flex;align-items:center;gap:7px;color:#c7ccd8}
.g-tip .l-gris{background:#8d95a8}.g-tip .l-azul{background:#4fa3ff}
.g-datos{margin-top:10px;font-size:12.5px;color:var(--g-medio)}
.g-datos summary{cursor:pointer;width:fit-content;color:var(--g-suave)}
.g-datos summary:hover{color:var(--g-tinta)}
.g-datos-c{max-height:220px;overflow:auto;margin-top:8px;border:1px solid var(--g-linea);border-radius:10px}
.g-datos table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.g-datos th{position:sticky;top:0;background:#fff;text-align:left;font:500 10.5px "DM Mono",monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--g-suave);padding:8px 12px;border-bottom:1px solid var(--g-linea)}
.g-datos td{padding:6px 12px;border-bottom:1px solid var(--g-linea)}
.g-datos tr:last-child td{border-bottom:0}
/* mapa de calor */
.g-c0{fill:#f0f1f5}.g-c1{fill:#7fb6fb}.g-c2{fill:#3f97f5}.g-c3{fill:#0b74e0}.g-c4{fill:#0055b8}
.g-horario{fill:none;stroke:var(--g-tinta);stroke-width:1.5;pointer-events:none}
.g-cursor{fill:none;stroke:var(--g-tinta);stroke-width:2;pointer-events:none}
.g-ley-mapa{justify-content:space-between;margin:12px 0 0;font-size:12px}
.g-caja>.res-frase{margin-bottom:12px}
.g-escala{gap:3px!important}
.g-escala i{width:13px;height:13px;border-radius:3px;display:inline-block}
.g-escala i:first-of-type{margin-left:5px}.g-escala i:last-of-type{margin-right:5px}
.g-m0{background:#f0f1f5}.g-m1{background:#7fb6fb}.g-m2{background:#3f97f5}.g-m3{background:#0b74e0}.g-m4{background:#0055b8}
.g-m-h{width:15px;height:13px;border:1.5px solid var(--g-tinta);border-radius:4px;display:inline-block}
/* embudo */
.g-embudo{display:flex;flex-direction:column;gap:18px}
.g-e-t{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:13.5px;margin-bottom:7px}
.g-e-t b{font-weight:700;font-size:15px;white-space:nowrap}
.g-e-t em{font-style:normal;font-weight:500;font-size:12.5px;color:var(--g-suave)}
.g-e-p{height:20px;background:var(--soft,#f2f3f7);border-radius:0 4px 4px 0}
.g-e-p i{display:block;height:100%;border-radius:0 4px 4px 0;animation:g-crece .8s cubic-bezier(.3,.7,.2,1) both;transform-origin:left}
.g-e0{background:#0055b8}.g-e1{background:#0b74e0}.g-e2{background:#3f97f5}
.g-embudo small{display:block;font-size:12px;color:var(--g-suave);margin-top:5px}
@keyframes g-crece{from{transform:scaleX(0)}to{transform:scaleX(1)}}
/* sparkline y barritas */
.g-spark path{fill:none;stroke:#aeb5c4;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.g-spark circle{fill:var(--blue,#0080ff);stroke:#fff;stroke-width:1.5;paint-order:stroke}
.g-b{fill:#a9d0ff}.g-b-hoy{fill:#0080ff}.g-b-0{fill:#e7e9ef}
.g-oscuro .g-b{fill:rgba(255,255,255,.26)}.g-oscuro .g-b-hoy{fill:#4fa3ff}.g-oscuro .g-b-0{fill:rgba(255,255,255,.1)}
@media (prefers-reduced-motion:reduce){.g-e-p i,.g-linea,.g-lavado{animation:none!important;stroke-dashoffset:0;opacity:1}}
