/* Estilo de diseno_referencia.html, mobile-first. Solo las 7 funciones del bot. */
/* Geist servida desde la app (sin Google Fonts: RGPD). @fontsource-variable 5.3.0, OFL: fonts/OFL.txt */
@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:100 900;src:url(/static/fonts/geist-latin-wght-normal.woff2) format("woff2-variations")}
@font-face{font-family:"Geist Mono";font-style:normal;font-display:swap;font-weight:100 900;src:url(/static/fonts/geist-mono-latin-wght-normal.woff2) format("woff2-variations")}
#m-sab{position:fixed;left:0;bottom:0;width:0;height:var(--sab);visibility:hidden;pointer-events:none}
:root{
  --bg:#0b0b0d;--bg2:#111114;--card:rgba(255,255,255,.035);--card-b:rgba(255,255,255,.08);--card-h:rgba(255,255,255,.06);
  --t1:#f5f5f4;--t2:#b9b8b0;--t3:#7d7c76;--grid:rgba(255,255,255,.07);
  --accent:#34A936;--accent-t:#34A936;--on-accent:#0b0b0d;--glow:rgba(52,169,54,.32);
  --down:#e66767;--good:#0ca30c;--warn:#fab219;
  --up:#3987e5;--mid:#383835;--up-t:#6aa9f2;--down-t:#f08080;
  color-scheme:dark;
}
:root{--bg3:#1c1c20;--tab:rgba(20,20,23,.72);--sab:env(safe-area-inset-bottom,0px)}
:root[data-theme="light"]{--bg3:#f0efec;--tab:rgba(255,255,255,.78)}
:root[data-theme="light"]{
  --bg:#f6f5f2;--bg2:#fff;--card:#fff;--card-b:rgba(0,0,0,.08);--card-h:#fafaf8;
  --t1:#0b0b0b;--t2:#52514e;--t3:#8a8983;--grid:rgba(0,0,0,.07);
  --accent:#34A936;--accent-t:#1d7a20;--glow:rgba(52,169,54,.24);--down:#e34948;--warn:#c98400;--up:#2a78d6;--mid:#dcdad4;--up-t:#1f63b8;--down-t:#b83232;
  color-scheme:light;
}
*{box-sizing:border-box;margin:0}
html,body{background:var(--bg);color:var(--t1);font-family:Geist,system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
body{min-height:100vh;min-height:100dvh;overflow-x:hidden}
body::before{content:"";position:fixed;inset:-20% -10% auto auto;width:700px;height:700px;background:radial-gradient(closest-side,var(--glow),transparent);opacity:.5;pointer-events:none;z-index:0}
.mono,code{font-family:"Geist Mono",ui-monospace,monospace}
button,input{font:inherit;color:inherit}
button{cursor:pointer;border:0;background:none}
[hidden]{display:none!important}
.oculto{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}

/* Cabecera: Drive, Salir y el interruptor de tema */
.top{position:sticky;top:0;z-index:30;padding:env(safe-area-inset-top) 16px 0;border-bottom:1px solid var(--card-b);background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.top .in{max-width:480px;margin:0 auto;display:flex;align-items:center;gap:8px;padding:12px 0}
.brand{font-weight:600;font-size:17px;letter-spacing:-.02em;display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none}
.marca{width:28px;height:28px;border-radius:8px;display:block;box-shadow:0 2px 10px var(--glow)}
.top .sp{flex:1}
.icon-btn{height:36px;min-width:36px;padding:0 10px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--card-b);background:var(--card);color:var(--t2);font-size:13px;transition:background .2s,color .2s}
.icon-btn{position:relative}
.icon-btn:hover{color:var(--t1)}
[data-tip]::after{content:attr(data-tip);position:absolute;z-index:40;top:calc(100% + 8px);right:0;width:max-content;max-width:min(250px,80vw);padding:8px 10px;border-radius:10px;background:var(--bg2);border:1px solid var(--card-b);color:var(--t1);font-size:12px;line-height:1.4;font-weight:400;text-align:left;box-shadow:0 12px 30px rgba(0,0,0,.3);opacity:0;transform:translateY(-4px);pointer-events:none;transition:opacity .15s,transform .15s}
[data-tip]:hover::after,[data-tip]:focus-visible::after{opacity:1;transform:none}
.icon-btn:active{background:var(--card-h)}
#tema .sol{display:none}
:root[data-theme="light"] #tema .sol{display:block}
:root[data-theme="light"] #tema .luna{display:none}

main{position:relative;padding:20px 16px calc(104px + var(--sab));max-width:512px;margin:0 auto}
.view{animation:fade .45s cubic-bezier(.2,.8,.2,1)}
@keyframes fade{from{opacity:0;transform:translateY(10px)}}
.hello{margin-bottom:16px}
.hello h1{font-size:30px;font-weight:600;letter-spacing:-.035em;line-height:1.1}
.hello h1 em{font-style:normal;color:var(--accent-t)}
.hello h2{font-size:22px;font-weight:600;letter-spacing:-.03em}
.hello p{color:var(--t2);margin-top:6px;font-size:14.5px;line-height:1.45}
.hello.sub{margin-top:30px}

/* Barra de pestañas inferior (cristal) */
.tabs{position:fixed;z-index:40;left:0;right:0;bottom:0;display:flex;justify-content:space-around;padding:6px 8px calc(6px + var(--sab));border-top:1px solid var(--card-b);background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:blur(24px) saturate(1.6);-webkit-backdrop-filter:blur(24px) saturate(1.6)}
.tabs button{flex:1;max-width:120px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 4px;border-radius:12px;color:var(--t3);font-size:11px;font-weight:500;transition:color .2s,transform .15s}
.tabs button:active{transform:scale(.93)}
.tabs button.on{color:var(--accent-t)}
.tabs button.on svg{filter:drop-shadow(0 0 8px var(--glow))}
@media (min-width:640px){
  .tabs{left:50%;right:auto;transform:translateX(-50%);width:480px;bottom:16px;border:1px solid var(--card-b);border-radius:22px;padding-bottom:6px;box-shadow:0 18px 50px rgba(0,0,0,.25)}
}

.card{background:var(--card);border:1px solid var(--card-b);border-radius:20px;padding:18px;position:relative}
.card+.card,.bloque+.card{margin-top:14px}
.card h3{font-size:15px;font-weight:600;letter-spacing:-.01em;display:flex;align-items:center;gap:8px;margin-bottom:4px}
.ayuda{color:var(--t3);font-size:13px;margin-bottom:12px}

/* Buscadores con autocompletado */
label.l{display:block;font-size:13px;color:var(--t2);margin:0 0 8px}
.campo{width:100%;padding:13px 14px;border-radius:14px;background:var(--bg2);border:1px solid var(--card-b);outline:0;font-size:16px;transition:border-color .2s,box-shadow .2s}
.campo:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}
.buscar{display:flex;gap:8px;align-items:stretch;margin-bottom:16px}
.buscar .buscador{flex:1;min-width:0}
.buscar .primario{width:auto;margin:0;padding:0 20px}
.buscador{position:relative}
.buscador .lupa{position:absolute;left:14px;top:14px;color:var(--t3);pointer-events:none}
.buscador .campo{padding-left:40px}
.sugerencias{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 6px);list-style:none;padding:6px;max-height:260px;overflow:auto;border-radius:14px;background:var(--bg2);border:1px solid var(--card-b);box-shadow:0 18px 40px rgba(0,0,0,.3)}
.sugerencias li{padding:11px 12px;border-radius:9px;font-size:15px;color:var(--t2);cursor:pointer}
.sugerencias li:active,.sugerencias li.act{background:var(--card-h);color:var(--t1)}
.sugerencias .nada{color:var(--t3);cursor:default}

/* Chips */
.chips-caja{margin:0 -16px 14px}
.chips-scroll{--mi:0px;--md:0px;display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-inline:16px;padding:2px 16px 6px;scrollbar-width:none;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 var(--mi),#000 calc(100% - var(--md)),transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 var(--mi),#000 calc(100% - var(--md)),transparent 100%)}
.chips-caja.mas-izq .chips-scroll{--mi:36px}
.chips-caja.mas-der .chips-scroll{--md:64px}
.chips-scroll::-webkit-scrollbar{display:none}
.chips-scroll button{flex:none;scroll-snap-align:start;padding:9px 14px;border-radius:99px;font-size:13.5px;color:var(--t2);background:var(--card);border:1px solid var(--card-b);transition:background .2s,color .2s,border-color .2s}
.m-fila{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px}
.m-fila .chips-scroll{padding:2px 0;overflow:visible;-webkit-mask-image:none;mask-image:none}
.m-fila select{padding:9px 14px;border-radius:99px;font:inherit;font-size:13.5px;color:var(--t1);background:var(--card);border:1px solid var(--card-b);color-scheme:dark}
:root[data-theme="light"] .m-fila select{color-scheme:light}
.m-fila select option{background:var(--bg2);color:var(--t1)}
.m-fila select[hidden]{display:none}
.chips-scroll button.on{background:var(--t1);color:var(--bg);border-color:var(--t1);font-weight:500}
.rapidos{display:flex;flex-wrap:wrap;gap:6px;margin:-6px 0 16px}
.rapidos:empty{display:none}
.rapidos button{padding:7px 12px;border-radius:99px;font-size:13px;color:var(--t2);background:var(--card);border:1px solid var(--card-b);transition:border-color .2s,color .2s}
.rapidos button:hover{color:var(--t1)}
.rapidos button.on{color:var(--accent-t);border-color:var(--accent);font-weight:500}
.sel{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.sel:empty{display:none}
.sel span{display:inline-flex;align-items:center;gap:6px;padding:6px 6px 6px 12px;border-radius:99px;font-size:13px;background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--t1);animation:pop .25s}
@keyframes pop{from{transform:scale(.85);opacity:0}}
.sel span button{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:var(--t2)}

.primario{width:100%;margin-top:14px;padding:14px;border-radius:14px;background:var(--accent);color:var(--on-accent);font-weight:600;font-size:15px;box-shadow:0 10px 30px var(--glow);transition:transform .15s,opacity .2s}
.primario:active{transform:scale(.98)}
.primario:disabled{opacity:.45;box-shadow:none}
.secundario{width:100%;margin-top:10px;padding:12px;border-radius:14px;border:1px solid var(--card-b);background:var(--bg2);color:var(--t2);font-size:14px;transition:border-color .2s,color .2s}
.secundario.on{border-color:var(--accent);color:var(--t1)}

/* Respuestas */
.salida{margin-top:14px;display:flex;flex-direction:column;gap:10px}
.salida:empty{display:none}
.msg{white-space:pre-wrap;font-size:15px;line-height:1.55;color:var(--t1);background:var(--card);border:1px solid var(--card-b);border-radius:16px;padding:14px;overflow-wrap:anywhere}
.msg code{font-size:13px;padding:1px 5px;border-radius:5px;background:var(--card-h)}
.msg.espera{color:var(--t2);display:flex;align-items:center;gap:10px}
.msg.espera::before{content:"";flex:none;width:16px;height:16px;border-radius:50%;border:2px solid var(--card-b);border-top-color:var(--accent);animation:gira .8s linear infinite}
@keyframes gira{to{transform:rotate(360deg)}}

/* Tarjetas de datos (Resumen / Consultar) */
.titulo{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:2px 2px 2px}
.titulo b{font-size:17px;font-weight:600;letter-spacing:-.02em}
.titulo small{color:var(--t3);font-size:13px}
.rejilla{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rejilla.tres{grid-template-columns:repeat(3,1fr);gap:8px}
.dato{background:var(--card);border:1px solid var(--card-b);border-radius:18px;padding:14px;min-width:0;animation:sube .5s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i,0)*45ms)}
@keyframes sube{from{opacity:0;transform:translateY(12px) scale(.98)}}
.dato .nom{display:block;font-size:12px;font-weight:500;color:var(--t2);line-height:1.25}
.dato .val{display:block;margin-top:8px;font-size:25px;font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.1;overflow-wrap:anywhere}
.dato .val .u{font-size:.55em;font-weight:500;color:var(--t2);letter-spacing:0}
.dato .fecha{display:block;margin-top:6px;font-size:11.5px;color:var(--t3)}
.rejilla.tres .dato{padding:12px 10px}
.rejilla.tres .dato .val{font-size:19px;margin-top:6px}
.rejilla.tres .dato .fecha{margin:0 0 0;font-size:11.5px;color:var(--t2);font-weight:500}
.dato.aviso{grid-column:1/-1;border-color:color-mix(in srgb,var(--warn) 55%,transparent);background:color-mix(in srgb,var(--warn) 10%,var(--card))}
.dato.aviso .nom{color:var(--warn);font-weight:600}
.dato.aviso p{margin-top:6px;font-size:14px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--t1)}
.dato.total{background:color-mix(in srgb,var(--accent) 12%,var(--card));border-color:color-mix(in srgb,var(--accent) 40%,transparent)}

/* Tarjetas de archivo y bloques de descarga */
.archivo{display:flex;align-items:center;gap:12px;padding:14px;border-radius:18px;background:var(--card);border:1px solid var(--card-b);text-align:left;width:100%;transition:border-color .2s,transform .15s}
.archivo:active{transform:scale(.99);border-color:var(--accent)}
.archivo .ic{font-size:22px;flex:none}
.archivo .txt{flex:1;min-width:0}
.archivo b{display:block;font-size:14.5px;font-weight:600;overflow-wrap:anywhere}
.archivo small{display:block;color:var(--t3);font-size:12px;margin-top:2px;line-height:1.4}
.archivo:disabled{opacity:.9;cursor:progress}
.archivo .aviso{color:var(--t2);margin-top:4px}
.archivo .flecha{flex:none;color:var(--t3)}
.bloque{margin-bottom:12px}
.err{color:var(--down) !important}
.barra{display:block;width:100%;height:6px;margin-top:8px;border:0;border-radius:3px;overflow:hidden;accent-color:var(--accent)}

/* Actualizar: en pro solo el enlace a la app de producción */
.centro{text-align:center}
.ultima{font-size:13px;color:var(--t2);margin-bottom:6px;min-height:1.2em;overflow-wrap:anywhere}
a.primario{display:block;text-align:center;text-decoration:none}

.error{color:var(--down);font-size:14px;margin-top:10px;min-height:1em}
.toast{position:fixed;left:50%;bottom:calc(84px + var(--sab));transform:translateX(-50%) translateY(120px);max-width:calc(100vw - 32px);background:var(--bg2);border:1px solid var(--card-b);padding:12px 16px;border-radius:14px;font-size:14px;z-index:70;transition:.35s cubic-bezier(.2,.9,.3,1.2);box-shadow:0 20px 50px rgba(0,0,0,.4);white-space:pre-wrap;opacity:0}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}

.login{max-width:380px;margin:8vh auto 0}
.login .logo{display:block;width:52px;height:52px;border-radius:15px;margin-bottom:18px;box-shadow:0 8px 30px var(--glow)}
.login .campo{margin-bottom:12px}
.login .check{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--t2);line-height:1.4;margin:4px 0 12px}
.login .check input{margin-top:2px;accent-color:var(--accent);flex:none}
.login a{color:var(--accent-t)}
.login .alt{margin-top:16px;font-size:14px;color:var(--t2);text-align:center;line-height:1.5}
.login .ok{color:var(--accent-t);font-size:14px;margin-top:10px;min-height:1em}
.login h2.sec{font-size:18px;font-weight:600;margin:22px 0 10px}
.login .card h3{font-size:15px;font-weight:600;margin-bottom:12px}
.login .card + .card{margin-top:12px}
.sesiones{list-style:none;padding:0;margin:0 0 4px}
.sesiones li{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--card-b)}
.sesiones li:last-child{border-bottom:0}
.sesiones .txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.sesiones b{font-size:14px;font-weight:500}
.sesiones small{font-size:12px;color:var(--t3)}
.secundario.mini{width:auto;margin:0;padding:7px 12px;font-size:13px}
.login .qr svg{display:block;margin:6px auto 10px;max-width:220px;width:100%;height:auto;border-radius:8px}
.login .secreto{text-align:center;font-size:15px;letter-spacing:.06em;margin:0 0 14px;word-break:break-all;color:var(--t1)}
.login .codigos{font-size:16px;line-height:1.8;text-align:center;padding:10px;background:var(--bg3);border-radius:10px;margin:0 0 10px;white-space:pre}
.login .ayuda{font-size:13.5px;color:var(--t2);margin:0 0 10px;line-height:1.45}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-delay:0s!important;transition-duration:.001ms!important}
}

/* ── Mercado ─────────────────────────────────────────────────────────────── */
.m-cab{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px}
.m-cab b{font-size:15px;font-weight:600;letter-spacing:-.01em}
.fuente{color:var(--t3);font-size:11.5px;font-weight:400;white-space:nowrap}
.nota{display:block;color:var(--t3);font-size:11.5px;margin-top:10px}
.m-principal .card+.card{margin-top:14px}
.mapa-caja{position:relative}
#m-mapa{display:block;width:100%}
#m-mapa path.prov{stroke:var(--bg);stroke-width:.7;cursor:pointer;transition:opacity .2s,filter .2s;outline:0}
#m-mapa path.prov:hover,#m-mapa path.prov:focus-visible{filter:brightness(1.22)}
#m-mapa path.prov.sindato{fill:var(--card-b);cursor:default}
#m-mapa path.prov.elegida{stroke:var(--t1);stroke-width:2}
#m-mapa .bordes-comp{stroke:var(--t3);stroke-dasharray:3 3;stroke-width:.8}
.m-tip{position:absolute;z-index:5;pointer-events:none;min-width:150px;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--bg2) 94%,transparent);backdrop-filter:blur(10px);border:1px solid var(--card-b);box-shadow:0 12px 30px rgba(0,0,0,.3);font-size:12.5px;opacity:0;transition:opacity .12s}
.m-tip.on{opacity:1}
.m-tip b{display:block;font-size:13.5px;margin-bottom:2px}
.m-tip span{color:var(--t2)}
.leyenda{margin-top:10px;font-size:11.5px;color:var(--t3)}
.barra-ley{height:8px;border-radius:4px;margin-bottom:4px}
.leyenda .lab{display:flex;justify-content:space-between;margin-bottom:6px}
.ranking{display:flex;flex-direction:column;gap:2px}
.rk{display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:10px;text-align:left;width:100%;transition:background .15s}
.rk:hover{background:var(--card-h)}
.rk.act{background:color-mix(in srgb,var(--accent) 14%,transparent)}
.rk .pos{flex:none;width:24px;font-size:12px;color:var(--t3);font-variant-numeric:tabular-nums}
.rk .nom{flex:1;min-width:0;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rk .val{flex:none;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}
.rk-sep{text-align:center;color:var(--t3);font-size:12px;letter-spacing:.3em;padding:2px 0}
.m-resumen p{font-size:14px;line-height:1.55;color:var(--t1);margin:0 0 8px}
.m-resumen p:last-child{margin-bottom:0}

/* panel de la provincia */
.m-panel{background:var(--bg2);border:1px solid var(--card-b);border-radius:24px 24px 0 0;padding:6px 18px calc(24px + var(--sab));position:fixed;left:0;right:0;bottom:0;max-height:86dvh;overflow:auto;overscroll-behavior:contain;z-index:60;box-shadow:0 -20px 60px rgba(0,0,0,.35);transform:translateY(105%);visibility:hidden;transition:transform .38s cubic-bezier(.2,.9,.25,1),visibility 0s .38s}
.asa{display:flex;justify-content:center;width:100%;padding:8px 0 10px;touch-action:none;cursor:grab;background:none;border:0}
.asa i{width:42px;height:5px;border-radius:3px;background:var(--card-b);filter:brightness(1.6)}
.m-panel h2{font-size:26px;font-weight:600;letter-spacing:-.03em;line-height:1.1;padding-right:44px}
.m-panel .sub{display:block;color:var(--t2);font-size:13px;margin-top:4px}
.p-valor{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;margin-top:14px}
.p-valor b{font-size:38px;font-weight:600;letter-spacing:-.04em;font-variant-numeric:tabular-nums;line-height:1}
.delta{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}
.m-panel>.fuente{display:block;margin-top:6px}
.p-rank{display:flex;align-items:baseline;gap:8px;margin-top:14px;padding:10px 12px;border-radius:14px;background:var(--card);border:1px solid var(--card-b)}
.p-rank b{font-size:20px;font-weight:600;color:var(--accent-t)}
.p-rank span{font-size:12.5px;color:var(--t2)}
.p-comp{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.p-comp:empty{display:none}
.comp{padding:5px 10px;border-radius:99px;font-size:12.5px;color:var(--t2);background:var(--card);border:1px solid var(--card-b)}
.p-graf{margin-top:14px;touch-action:pan-y}
#p-graf{display:block;width:100%;overflow:visible}
#p-graf .eje{fill:var(--t3);font-size:11px}
#p-graf .gl{stroke:var(--grid);display:none}
.p-scrub,.p-mov{display:none}
#p-graf .sindato-mes{stroke:var(--down);stroke-width:2;stroke-linecap:round;opacity:.7}
#p-graf .regla{stroke:var(--t3);stroke-dasharray:3 3}
#p-graf .punto{fill:var(--accent);stroke:var(--bg2);stroke-width:2}
#p-graf .rotulo{fill:var(--t1);font-size:12.5px;font-weight:600}
.p-otras{font-size:13px;font-weight:600;color:var(--t2);margin:18px 0 8px}
.tr-fila{display:grid;grid-template-columns:70px minmax(0,1fr) 48px;gap:8px;align-items:center;padding:3px 0;font-size:12.5px}
.tr-nom{color:var(--t2);font-variant-numeric:tabular-nums;white-space:nowrap}
.tr-barra{height:8px;border-radius:99px;background:var(--grid);overflow:hidden}
.tr-barra i{display:block;height:100%;border-radius:99px;background:var(--accent);transition:width .5s}
.tr-pct{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}
.tiles{display:grid;gap:8px}
.tile{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;background:var(--card);border:1px solid var(--card-b);text-align:left;width:100%;transition:border-color .2s}
.tile:hover{border-color:var(--accent)}
.tile .izq{display:flex;flex-direction:column;gap:2px;min-width:0}
.tile .l{font-size:12px;color:var(--t2)}
.tile .v{font-size:19px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.tile .dv{font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums}
.tile .spark{flex:none;width:76px;height:34px}

@media (min-width:900px){
  body.v-mercado main,body.v-mercado .top .in{max-width:1180px}
  body.v-mercado .hello{max-width:none}
  .mercado{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:20px;align-items:start}
  /* escritorio: el panel crece con su contenido y se desplaza con la página (nada de barra interna ni sticky) */
  .m-panel{position:relative;left:auto;right:auto;bottom:auto;max-height:none;overflow-y:visible;border-radius:22px;padding-top:18px;transform:none;visibility:visible;z-index:1;box-shadow:none;transition:none}
  .m-panel .asa{display:none}
  body.v-mercado .tabs{width:520px}
}

/* ═══ Vista móvil: ajustes según diseno_movil.html (verde Rebs en lugar del morado; el escritorio no cambia) ═══ */
@keyframes desliza{from{opacity:0;transform:translateX(24px)}}
@keyframes fadeop{from{opacity:0}}

@media (max-width:639px){
  :root{--bg2:#141417;--card:rgba(255,255,255,.045)}
  :root[data-theme="light"]{--bg:#f4f3f0;--card:#fff;--card-b:rgba(0,0,0,.07)}
  body::before{inset:-180px -160px auto auto;width:460px;height:460px;opacity:.6}
  .view{animation:desliza .35s cubic-bezier(.2,.8,.2,1)}
  .hello h1{font-size:32px;letter-spacing:-.04em}
  .card{border-radius:22px}
  .icon-btn{border-radius:99px}
  main{padding-bottom:calc(112px + var(--sab))}

  /* barra inferior flotante de cristal, con la pestaña activa en una píldora */
  .tabs{left:14px;right:14px;bottom:calc(var(--sab) + 10px);height:66px;padding:6px;border:1px solid var(--card-b);border-radius:26px;background:var(--tab);box-shadow:0 12px 40px rgba(0,0,0,.35);display:grid;grid-template-columns:repeat(5,1fr);justify-content:stretch}
  .tabs button{max-width:none;position:relative;justify-content:center;gap:3px;padding:0;border-radius:20px;font-size:10px}
  .tabs button *{position:relative}
  .tabs button.on{color:var(--t1)}
  .tabs button.on svg{color:var(--accent-t);filter:none}
  .tabs button.on::before{content:"";position:absolute;inset:0;border-radius:20px;background:color-mix(in srgb,var(--t1) 8%,transparent);border:1px solid var(--card-b);animation:fadeop .3s}

  /* aviso que baja desde arriba */
  .toast{top:calc(env(safe-area-inset-top) + 64px);bottom:auto;border-radius:18px;transform:translate(-50%,-140px)}
  .toast.on{transform:translate(-50%,0)}

  /* Resumen, Consultar y Descargas: tarjetas con el toque de la maqueta */
  .dato{border-radius:22px;background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 12%,transparent),transparent 60%),var(--card)}
  .rejilla.tres .dato{border-radius:18px}
  .archivo{border-radius:20px}
  .archivo>.ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:19px;background:color-mix(in srgb,var(--accent) 14%,transparent)}
  .bloque .flecha{color:var(--accent-t)}
}

/* Mercado en móvil: mapa a pantalla y hoja arrastrable (recogida ↔ completa) como en la maqueta */
@media (max-width:899px){
  body.v-mercado{overflow:hidden}
  body.v-mercado main{padding-bottom:0}
  #v-mercado{animation-name:fadeop}
  #v-mercado .hello{margin-bottom:6px}
  #v-mercado .hello p{display:none}
  #v-mercado .chips-caja{margin-bottom:6px}
  .m-principal>.card:not(.mapa-card){display:none}
  .mapa-card{background:none;border:0;padding:0;overflow:visible}
  .mapa-card .m-cab{margin:0}
  .mapa-card .m-cab b{font-size:13px;font-weight:500;color:var(--t2)}
  #m-mapa{touch-action:manipulation;margin:0 auto}
  .mapa-caja{margin:0;line-height:0}
  .leyenda{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin-top:2px;font-size:10px;font-variant-numeric:tabular-nums}
  .barra-ley{grid-column:2;grid-row:1;height:6px;margin:0}
  .leyenda .lab{display:contents}
  #m-lim-menos{grid-column:1;grid-row:1}
  #m-lim-mas{grid-column:3;grid-row:1}
  .leyenda .lab span:nth-child(2){display:none}
  .leyenda small{grid-column:1/-1;grid-row:2;font-size:10px}

  .m-panel{--hdr:calc(env(safe-area-inset-top) + 66px);position:fixed;left:0;right:0;bottom:0;top:auto;height:calc(100dvh - var(--hdr));max-height:none;z-index:25;visibility:visible;overflow:hidden;overscroll-behavior:contain;display:grid;grid-template-columns:1fr auto;column-gap:12px;align-content:start;padding:0 18px calc(120px + var(--sab));border-radius:28px 28px 0 0;border-bottom:0;background:var(--bg2);box-shadow:0 -20px 60px rgba(0,0,0,.35);transform:translateY(calc(100% - var(--peek,calc(250px + var(--sab)))));transition:transform .45s cubic-bezier(.2,.9,.25,1)}
  /* recogida: cabecera + cifra + variación/puesto + comparativa; lo demás no ocupa sitio ni se ve (nada tras la barra inferior) */
  .m-panel:not(.completa):not(.arrastrando) :is(.p-graf,.p-scrub,#p-graf-fuente,.p-tramos,.p-otras,.tiles,.p-mov){display:none}
  .m-panel.completa{transform:none;overflow-y:auto;scrollbar-width:none}
  .m-panel.completa::-webkit-scrollbar{display:none}
  .m-panel.arrastrando{transition:none}
  .m-panel>*{grid-column:1/-1}
  .m-panel .asa{position:sticky;top:0;z-index:3;background:var(--bg2);padding:10px 0 6px;border-radius:28px 28px 0 0}
  .asa i{background:var(--grid);filter:none}
  .m-panel h2,.m-panel .sub,.m-panel .p-rank{touch-action:none;cursor:grab}
  .m-panel h2{grid-column:1;grid-row:2;padding-right:0;font-size:26px}
  .m-panel .sub{grid-column:1;grid-row:3;font-size:12px;margin-top:2px;color:var(--t3)}
  .m-panel .p-rank{grid-column:2;grid-row:2/4;align-self:start;display:block;text-align:right;background:none;border:0;padding:0;margin:0}
  .p-rank b{display:block;font-size:24px;line-height:1.1;font-variant-numeric:tabular-nums}
  .p-rank span{display:block;font-size:11px;color:var(--t3)}
  .p-valor{margin-top:12px;gap:10px}
  .p-valor b{font-size:40px;letter-spacing:-.045em}
  .delta{padding:4px 9px;border-radius:99px;font-size:12px;font-weight:500;background:color-mix(in srgb,currentColor 15%,transparent)}
  .p-comp{margin-top:8px;order:1}
  #p-graf-fuente,.p-tramos,.p-otras,.tiles,.p-mov{order:2}
  .p-graf{margin-top:12px}
  #p-graf .gl{display:block}
  #p-graf .rotulo{display:none}
  #p-graf .foco{opacity:0;transition:opacity .12s}
  #p-graf .foco.activo{opacity:1}
  #p-graf .punto{r:6px}
  .p-scrub{display:block;min-height:16px;margin-top:4px;font-size:12px;color:var(--t3);font-variant-numeric:tabular-nums}
  .p-scrub b{color:var(--t1);font-weight:600}
  .tiles{grid-template-columns:1fr 1fr;gap:8px}
  .tile{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px;padding:12px;border-radius:16px;background:var(--bg3);border:0}
  .tile:last-child:nth-child(odd){grid-column:1/-1}
  .tile .spark{width:100%;height:26px}
  .tile .v{font-size:18px}
  .p-mov{display:block}
  .p-mov .card{margin-top:12px;padding:14px;border:0;border-radius:18px;background:var(--bg3)}
  .p-mov .rk.act{background:color-mix(in srgb,var(--accent) 16%,transparent)}
}

/* Panel de Mercado: el texto de fuente cambia de línea y nada provoca scroll horizontal */
.m-panel{overflow-x:clip}
.m-panel .fuente{white-space:normal;overflow-wrap:anywhere}

/* Consultar: variación interanual, gráfico de 13 periodos y fila anual */
.dato .yoy{display:block;margin-top:6px;font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums}
.yoy.sube{color:var(--accent-t)}
.yoy.baja{color:var(--down-t)}
.atip{color:var(--warn);cursor:help}
.nota-atip{display:block;color:var(--t3);font-size:12px}
.cons-graf{padding:14px 14px 10px;margin-top:10px;min-width:0}
.cons-graf svg{display:block;width:100%;height:176px}
.cons-graf .gl{stroke:var(--card-b);stroke-width:1}
.cons-graf .eje{fill:var(--t3);font-size:10.5px}
.cons-ley{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:6px;font-size:11.5px;color:var(--t3)}
.cons-ley i{display:inline-block;width:16px;border-top:3px solid var(--accent-t);vertical-align:middle;margin-right:6px}
.cons-ley i.prev{border-top:2px dashed var(--accent-t);opacity:.45}
.cons-anual{margin-top:10px;font-size:13.5px;line-height:1.6;overflow-wrap:anywhere}
.login .captcha{margin:4px 0 12px}
.adm-lista{list-style:none;display:grid;gap:10px;margin:10px 0}
.adm-lista .ayuda{margin-top:4px}
.adm-acciones{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.adm-acciones .campo{width:auto;margin:0}
.adm-estado{min-height:1.4em;margin:10px 0;font-size:14px;color:var(--t2)}
.adm-estado.err{color:var(--down)}
.adm-tabla{overflow-x:auto;margin-top:10px}
.adm-tabla table{width:100%;border-collapse:collapse;font-size:13px}
.adm-tabla th,.adm-tabla td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--card-b);vertical-align:top}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.adm-confirmar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid var(--card-b)}
.adm-confirmar .l{flex-basis:100%;margin:0}
.adm-confirmar .campo{width:8.5em;margin:0;letter-spacing:.15em}
.adm-confirmar .error{flex-basis:100%;margin:0}
