/* hormitec-ui-T.css — Estilo T (Tesla) compartido por las 12 apps. Lo inyecta aplicar-ui.py al final del <head>. Sólo apariencia. */
:root,html[data-theme="dark"]{--t-bg:#0A0A0B;--t-s1:#151517;--t-s2:#1F1F22;--t-tx:#F5F5F7;--t-tx2:#8A8A90;--t-tx3:#4A4A50;--t-rojo:#E31F26}
html[data-theme="light"]{--t-bg:#F4F4F5;--t-s1:#FFFFFF;--t-s2:#E6E6E9;--t-tx:#111113;--t-tx2:#6E6E73;--t-tx3:#C7C7CC}
@media (prefers-color-scheme:light){html:not([data-theme="dark"]){--t-bg:#F4F4F5;--t-s1:#FFFFFF;--t-s2:#E6E6E9;--t-tx:#111113;--t-tx2:#6E6E73;--t-tx3:#C7C7CC}}
html,body{background:var(--t-bg)!important;color:var(--t-tx)!important}
body{font-weight:400!important;letter-spacing:-.005em}
@keyframes tUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.vista:not([hidden])>*{animation:tUp .5s cubic-bezier(.2,.8,.2,1) both}.vista:not([hidden])>*:nth-child(2){animation-delay:.05s}.vista:not([hidden])>*:nth-child(3){animation-delay:.1s}
@media (prefers-reduced-motion:reduce){.vista>*{animation:none!important}}
/* títulos grandes y finos */
main h1,.vista h1,section h1,h1{font-size:40px!important;font-weight:400!important;letter-spacing:-.03em!important;line-height:1.05!important;color:var(--t-tx)!important}
.meta,small,.sub,p.meta{color:var(--t-tx2)!important}
/* menú: lista borde a borde, sin cajas */
.ev-menu{gap:0!important;margin:18px -16px 0!important}
button.ev-btn,button.ev-btn:has(> .i){background:transparent!important;box-shadow:none!important;border:0!important;border-bottom:1px solid var(--t-s2)!important;border-radius:0!important;padding:20px 22px!important;min-height:76px;gap:18px!important}
button.ev-btn > .i{background:transparent!important;width:28px!important;min-width:28px!important;height:28px!important;color:var(--t-tx)}
button.ev-btn > .i svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
button.ev-btn b{font-size:19px!important;font-weight:400!important;color:var(--t-tx)}
button.ev-btn small{color:var(--t-tx2)!important;font-size:13px!important}
button.ev-btn::after{content:"";width:9px;height:9px;border-right:1.5px solid var(--t-tx3);border-top:1.5px solid var(--t-tx3);transform:rotate(45deg);margin-left:auto;flex:0 0 auto}
.ev-badge{background:var(--t-rojo)!important}
/* tarjetas: grandes, de borde a borde, sin bordes ni sombras */
.ev-card,.card{background:var(--t-s1)!important;border:0!important;box-shadow:none!important;border-radius:0!important;margin:14px -16px!important;padding:24px 22px!important}
.ev-card h2{font-size:22px!important;font-weight:400!important}
.ev-item{background:transparent!important;border:0!important;border-bottom:1px solid var(--t-s2)!important;border-radius:0!important;margin:0 -16px!important;padding:18px 22px!important}
.ev-est{background:transparent!important;color:var(--t-tx2)!important;border:1px solid var(--t-tx3);font-weight:500!important;letter-spacing:.04em;text-transform:uppercase;font-size:11px!important}
.ev-est[data-e=despachado],.ev-est[data-e=en_camino]{color:var(--t-rojo)!important;border-color:var(--t-rojo)}
/* progreso Planta → Despacho → En ruta → Obra (lo arma envios-T.js con el estado real) */
.t-prog{margin:22px 0 8px}.t-bar{height:4px;background:var(--t-s2);border-radius:2px;position:relative}
.t-bar i{position:absolute;left:0;top:0;bottom:0;background:var(--t-tx);border-radius:2px;transition:width .8s cubic-bezier(.2,.8,.2,1)}
.t-bar em{position:absolute;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--t-rojo);animation:tPulso 2s infinite}
@keyframes tPulso{0%{box-shadow:0 0 0 0 rgba(227,31,38,.45)}70%{box-shadow:0 0 0 12px rgba(227,31,38,0)}100%{box-shadow:0 0 0 0 rgba(227,31,38,0)}}
.t-et{display:flex;justify-content:space-between;margin-top:12px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--t-tx3)}.t-et .on{color:var(--t-tx)}
/* línea de tiempo fina */
.ev-tl{margin-top:18px!important}.ev-tl li{padding-left:30px!important}
.ev-tl li:before{left:5px!important;width:1px!important;background:var(--t-s2)!important;top:16px!important}
.ev-tl .dot{width:11px!important;height:11px!important;top:5px!important;font-size:0!important;background:var(--t-tx3)!important;box-shadow:none!important}
.ev-tl li.on .dot{background:var(--t-tx)!important}.ev-tl li.on:before{background:var(--t-tx2)!important}
.ev-tl li.act .dot{background:var(--t-rojo)!important;animation:tPulso 2s infinite}
.ev-tl li>b{font-weight:400!important;font-size:17px}.ev-tl li small b{font-weight:500!important;font-size:inherit!important}.ev-tl li.off{opacity:.45}
/* botones */
.btn-primary,button[type=submit]{background:var(--t-rojo)!important;box-shadow:none!important;border-radius:999px!important;min-height:60px!important;font-weight:500!important;letter-spacing:.01em}
.btn-secondary{background:var(--t-s2)!important;color:var(--t-tx)!important;border-radius:999px!important;min-height:56px!important;font-weight:400!important}
.ev-volver{text-decoration:none!important;color:var(--t-tx2)!important;opacity:1!important;font-size:15px}
/* inputs */
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea{background:var(--t-s2)!important;border:0!important;border-radius:14px!important;color:var(--t-tx)!important}
input[type=checkbox]{accent-color:var(--t-rojo)}
table.ev-t th,table.ev-t td{border-color:var(--t-s2)!important}
.ev-alerta,.ev-warn{background:transparent!important;border:1px solid var(--t-rojo)!important;color:var(--t-rojo)!important;border-radius:14px!important}
#hx-salir{background:var(--t-s2)!important;color:var(--t-tx)!important;box-shadow:none!important}

/* —— fondo unificado (header = página) —— */
.app,body>.app,.app-shell,.page,.wrap-app{background:var(--t-bg)!important;background-image:none!important}
html body :is(header.header,header.top,header.topbar,body>header:not(.chapter-head):not(.nav)){background:var(--t-bg)!important;background-image:none!important;border-bottom:0!important;box-shadow:none!important;color:var(--t-tx)!important;padding-top:16px!important;padding-bottom:12px!important}
html body :is(header.header,header.top,header.topbar,body>header:not(.chapter-head):not(.nav)) *{color:var(--t-tx)}
html body :is(header.header,header.top,header.topbar,body>header:not(.chapter-head):not(.nav)) .theme-toggle,html body :is(header.header,header.top,header.topbar,body>header:not(.chapter-head):not(.nav)) button{background:transparent!important;color:var(--t-tx2)!important;border-color:var(--t-s2)!important;box-shadow:none!important}
html body :is(header.header,header.top,header.topbar,body>header:not(.chapter-head):not(.nav)) .brand{padding:0!important;background:none!important;display:flex;align-items:center}
/* —— logo: uno solo, sin caja ni placa. Claro = negro y rojo a color; oscuro = todo blanco —— */
html body .logo-for-dark{display:none!important}
html body img.logo-for-light,html body :is(header.header,header.top,header.topbar,body>header:not(.chapter-head):not(.nav)) img:not(.logo-for-dark){display:block!important;content:url(/_ui/logo-color.png?v=121ae291de)!important;width:auto!important;max-width:none!important;aspect-ratio:1056/149;filter:none!important;opacity:1!important;background:none!important;padding:0!important;border-radius:0!important;box-shadow:none!important;object-fit:contain}
html body :is(header.header,header.top,header.topbar,body>header:not(.chapter-head):not(.nav)) img:not(.logo-for-dark){height:20px!important}
html body img.pin-logo.logo-for-light{height:22px!important;margin:0 auto 34px!important}
html[data-theme="dark"] body img.logo-for-light,html[data-theme="dark"] body :is(header.header,header.top,header.topbar,body>header:not(.chapter-head):not(.nav)) img:not(.logo-for-dark){content:url(/_ui/logo-blanco.png?v=91c4d4ac44)!important}
@media (prefers-color-scheme:dark){html:not([data-theme="light"]) body img.logo-for-light,html:not([data-theme="light"]) body :is(header.header,header.top,header.topbar,body>header:not(.chapter-head):not(.nav)) img:not(.logo-for-dark){content:url(/_ui/logo-blanco.png?v=91c4d4ac44)!important}}
/* —— links de texto (ej. «Ver también…» de Inventario): link discreto, no botón —— */
html body .btn-text{background:none!important;box-shadow:none!important;border:0!important;min-height:0!important;padding:10px 0!important;color:var(--t-tx2)!important;font-size:15px!important;font-weight:400!important;text-decoration:underline;text-underline-offset:3px;border-radius:0!important;width:auto!important;display:inline-block}
/* —— tiles de otras apps (cq/hi/eq/ticket/flow) —— */
:is(.cq-tile,.hi-tile,.eq-card,.tb-card,.flow-btn,.ticket-btn,.app-card,.lista-item){background:var(--t-s1)!important;border:0!important;box-shadow:none!important;border-radius:16px!important}
/* —— PIN propio (Vigilancia y apps con .pin) —— */
.hxpin-tec,.pin .teclado{grid-template-columns:repeat(3,84px)!important;justify-content:center;gap:14px 34px!important;max-width:none!important}
.hxpin-tec button,.pin .teclado button{width:84px!important;height:84px;min-height:84px!important;border-radius:50%!important;border:0!important;background:transparent!important;box-shadow:none!important;font-weight:300!important;font-size:36px!important;color:var(--t-tx)!important}
.hxpin-tec button:active,.pin .teclado button:active{background:var(--t-s2)!important}
.hxpin-dots,.pin-dots{gap:22px!important;margin:36px 0 10px!important}.hxpin-dots i,.pin-dots i{width:12px!important;height:12px!important;border:0!important;background:var(--t-tx3)!important}
.hxpin-dots i.on,.pin-dots i.on{background:var(--t-tx)!important;border-color:var(--t-tx)!important}
/* —— «Salir» discreto abajo a la derecha —— */
#hx-salir{left:auto!important;right:10px!important;bottom:calc(10px + env(safe-area-inset-bottom,0px))!important}

/* ================= T2: refuerzo por app (selectores reales de cada una) ================= */
/* fondo y contenedores */
html body :is(.main,main,.container,.wrap,.contenido,.screen,.step,.vista,.panel-body){background-color:transparent!important;background-image:none!important}
html body{background-image:none!important}
/* tarjetas: sin borde ni sombra, superficie T */
html body :is(.inv-card,.inv-hoja,.inv-lugar,.inv-kpi,.inv-aviso,.pn-card,.pn-modal-card,.card,.eq-card,.modal-card,.modal-caja,.part-card,.stage-card,.unit-card,.box,.ck-card,.cmp-panel,.capa-caja,.who-banner,.manual-docs,.resumen-num,.parte-res,.link-box,.foto-box,.fold,.kpi,.kpis>*,.table-wrap,.prose,.ts-form,.select-list){background:var(--t-s1)!important;border:0!important;box-shadow:none!important;border-radius:18px!important}
/* filas de lista: borde a borde, separador fino, sin caja */
html body :is(.inv-art,.inv-cand,.inv-fila,.inv-efila,.inv-wfila,.pend-item,.proy,.tarea,.item,.order,.choice,.carpeta,.ticket-preview,.prog-unit,.g-cab){background:transparent!important;border:0!important;border-bottom:1px solid var(--t-s2)!important;border-radius:0!important;box-shadow:none!important;padding-top:16px!important;padding-bottom:16px!important}
html body :is(.choice,.order){font-weight:400!important;font-size:18px!important;color:var(--t-tx)!important}
/* tiles de menú → lista tipo Envíos */
html body :is(.pn-tile,.flow-btn,.ticket-btn,.h-tiles>*,html[data-hx-app="vigilancia"] .tile){background:transparent!important;border:0!important;border-bottom:1px solid var(--t-s2)!important;border-radius:0!important;box-shadow:none!important;min-height:72px;text-align:left;font-weight:400!important;color:var(--t-tx)!important}
html[data-hx-app="vigilancia"] body .tile{background:transparent!important;border:0!important;border-bottom:1px solid var(--t-s2)!important;border-radius:0!important;box-shadow:none!important}
html body :is(.pn-tile,.flow-btn,.ticket-btn) :is(b,strong,h3){font-weight:400!important;font-size:19px!important}
html body :is(.flow-ico,.ic,.icon,.pn-tile .i,.t-ic){background:transparent!important;color:var(--t-tx)!important;box-shadow:none!important;border:0!important}
html body .t-ic svg,html body svg.t-ic{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;vertical-align:-6px}
/* botones píldora */
html body :is(.btn,.pn-btn,.btn-primary,.btn-secondary,.ts-submit,.link-pill,.qr-btn,.pv-btn,.acc,.btn-salir,.salir,.modal-ok,.ts-foto-btn,.btn-filtros,.visor-btn,.btn-scan-qr,.btn-tablero,.btn-mapa-fotos,.btn-etiquetas-qr,.btn-manual,.btn-change){border-radius:999px!important;border:0!important;box-shadow:none!important;font-weight:500!important;min-height:52px}
html body :is(.btn-primary,.ts-submit,.modal-ok,.pn-btn.rojo,.pn-btn.primario,.btn.pri,.btn.ok,.btn.rojo,.btn.primario,.btn-scan-qr,.btn.principal,[class*="btn--primary"]){background:var(--t-rojo)!important;color:#fff!important}
html body :is(.btn-secondary,.pn-btn:not(.primario):not(.rojo),.btn:not(.rojo):not(.primario):not(.principal):not(.pri):not(.ok),.link-pill,.qr-btn,.pv-btn,.acc,.btn-filtros,.visor-btn,.btn-tablero,.btn-mapa-fotos,.btn-etiquetas-qr,.btn-manual,.btn-change,.ts-foto-btn){background:var(--t-s2)!important;color:var(--t-tx)!important}
html body :is(.btn-salir,.salir,.volver,.tema){background:transparent!important;color:var(--t-tx2)!important;border:0!important;box-shadow:none!important}
/* chips / tabs */
html body :is(.chip,.pn-chip,.inv-chip,.familia-chip,.tab,.subtab,.seg button,.tabs button,.et-fil,.tb-filtros button,.mapa-filtros button,.filter-bar button,.tag,.hero-tag){background:var(--t-s2)!important;color:var(--t-tx2)!important;border:0!important;box-shadow:none!important;border-radius:999px!important;font-weight:400!important}
html body :is(.chip,.pn-chip,.inv-chip,.familia-chip,.tab,.subtab,.seg button,.tabs button,.et-fil):is(.on,.active,.activo,.sel,.selected,[aria-pressed="true"],[aria-selected="true"]){background:var(--t-tx)!important;color:var(--t-bg)!important}
/* badges: contorno fino */
html body :is(.badge,.pn-badge,.inv-badge,.prog-badge,.cq-badge,.selected-pill,.inv-rolb){background:transparent!important;border:1px solid var(--t-tx3)!important;color:var(--t-tx2)!important;box-shadow:none!important}
html body :is(.pn-badge,.cq-badge,.badge-alerta):not(:empty){border-color:var(--t-rojo)!important;color:var(--t-rojo)!important}
/* inputs */
html body :is(.pn-in,.pn-sel,.ts-field input,.ts-field select,.ts-field textarea,.search,.input-prefix){background:var(--t-s2)!important;border:0!important;box-shadow:none!important;border-radius:14px!important;color:var(--t-tx)!important}
/* títulos */
html body :is(h2,.grupo-tit,.pn-titulo,.sec-tit){font-weight:400!important;letter-spacing:-.01em}
html body :is(.label,.lbl,label,.grupo-tit){color:var(--t-tx2)!important;font-weight:500!important;letter-spacing:.06em;text-transform:uppercase;font-size:12px!important}
html body .pin label,html body .ts-field label{text-transform:none;letter-spacing:0;font-size:14px!important}
/* headers propios */
html body :is(header.nav,.nav){background:var(--t-bg)!important;border-bottom:0!important;box-shadow:none!important;backdrop-filter:none!important}
html body header.nav img{content:url(/_ui/logo-color.png?v=121ae291de)!important;height:18px!important;width:auto!important;aspect-ratio:1056/149}
html[data-theme="dark"] body header.nav img{content:url(/_ui/logo-blanco.png?v=91c4d4ac44)!important}
@media (prefers-color-scheme:dark){html:not([data-theme="light"]) body header.nav img{content:url(/_ui/logo-blanco.png?v=91c4d4ac44)!important}}
html[data-hx-app="vigilancia"] body header.top,html[data-hx-app="partes"] body header.top{background:var(--t-bg)!important}
/* Producción: header en una fila */
html[data-hx-app="produccion"] body header.header{flex-wrap:nowrap!important;gap:12px}
html[data-hx-app="produccion"] body header.header .context{display:flex;gap:6px;align-items:center;font-size:13px;margin-left:auto;min-width:0;overflow:hidden;white-space:nowrap}
/* índice */
html[data-hx-app="apps"] body :is(.app-card,.card,article){background:var(--t-s1)!important;border:0!important;box-shadow:none!important;border-radius:18px!important}
/* tablas */
html body table th,html body table td{border-color:var(--t-s2)!important}
html body table th{color:var(--t-tx2)!important;font-weight:500!important;text-transform:uppercase;font-size:11px;letter-spacing:.06em}

/* ================= T3: Mantenimiento a fondo ================= */
html[data-hx-app="mantenimiento"] body .btn-scan-qr{background:var(--t-s1)!important;color:var(--t-tx)!important;border:0!important;border-radius:0!important;box-shadow:none!important;margin:18px -16px 22px!important;width:calc(100% + 32px)!important;padding:22px!important;min-height:88px}
html[data-hx-app="mantenimiento"] body .btn-scan-qr .scan-ico{width:52px;height:52px;min-width:52px;border-radius:50%;background:var(--t-rojo)!important;color:#fff!important;display:grid;place-items:center}
html[data-hx-app="mantenimiento"] body .btn-scan-qr .scan-ico svg{stroke:#fff}
html[data-hx-app="mantenimiento"] body .btn-scan-qr b{font-size:19px!important;font-weight:400!important;color:var(--t-tx)!important}
html[data-hx-app="mantenimiento"] body .btn-scan-qr .scan-txt span{color:var(--t-tx2)!important}
html[data-hx-app="mantenimiento"] body :is(.select-list,.picker-list){background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;margin:0 -16px!important}
html[data-hx-app="mantenimiento"] body :is(.select-list,.picker-list)>*{background:transparent!important;border:0!important;border-bottom:1px solid var(--t-s2)!important;border-radius:0!important;padding:16px 22px!important;min-height:56px}
html[data-hx-app="mantenimiento"] body :is(.select-list,.picker-list)>* :is(b,strong,.nom,span:first-child){font-weight:400!important;font-size:17px}
html[data-hx-app="mantenimiento"] body :is(.cat-chips button,.tb-sem button){background:var(--t-s2)!important;border:0!important;color:var(--t-tx2)!important;min-height:40px;padding:8px 16px!important;border-radius:999px!important}
html[data-hx-app="mantenimiento"] body :is(.cat-chips button,.tb-sem button):is(.active,.on,[aria-pressed="true"]){background:var(--t-tx)!important;color:var(--t-bg)!important}
html[data-hx-app="mantenimiento"] body .eq-card{background:var(--t-s1)!important;border:0!important;border-radius:0!important;box-shadow:none!important;margin:14px -16px!important;padding:22px!important}
html[data-hx-app="mantenimiento"] body .eq-card :is(.eq-name,h2,h3,.eq-nom){font-size:24px!important;font-weight:400!important;letter-spacing:-.01em}
html[data-hx-app="mantenimiento"] body .who-banner{background:transparent!important;border:0!important;border-bottom:1px solid var(--t-s2)!important;border-radius:0!important;box-shadow:none!important;margin:0 -16px!important;padding:16px 22px!important}
html[data-hx-app="mantenimiento"] body .flow-choice{margin:0 -16px!important}
html[data-hx-app="mantenimiento"] body .flow-btn{padding:20px 22px!important;gap:18px!important}
html[data-hx-app="mantenimiento"] body .flow-ico{font-size:0!important;width:28px!important;min-width:28px!important}
html[data-hx-app="mantenimiento"] body .section-h{font-size:28px!important;font-weight:400!important;letter-spacing:-.02em}
html[data-hx-app="mantenimiento"] body .hi-tile{background:var(--t-s1)!important;border:0!important;border-radius:16px!important;padding:14px!important}
html[data-hx-app="mantenimiento"] body .hi-tile b{font-weight:400!important;font-size:20px!important}
html[data-hx-app="mantenimiento"] body .hi-item{background:transparent!important;border:0!important;border-bottom:1px solid var(--t-s2)!important;border-radius:0!important;margin:0 -16px!important}
html[data-hx-app="mantenimiento"] body .hi-item>summary{padding:16px 40px 16px 22px!important}
html[data-hx-app="mantenimiento"] body .hi-lista{gap:0!important}
html[data-hx-app="mantenimiento"] body .hi-item :is(.hi-nom,b){font-weight:400!important;font-size:17px}
html[data-hx-app="mantenimiento"] body .hi-est{background:transparent!important;border:0!important;padding:0!important}
html[data-hx-app="mantenimiento"] body .hi-est-ok,html[data-hx-app="mantenimiento"] body [class*="hi-est-real"]{color:#30D158!important}
html[data-hx-app="mantenimiento"] body .tb-acc,html[data-hx-app="mantenimiento"] body .link-portal-fotos{background:var(--t-s2)!important;border:0!important;border-radius:999px!important;color:var(--t-tx)!important;min-height:48px;box-shadow:none!important;text-decoration:none!important}
html[data-hx-app="mantenimiento"] body :is(.tb-kpis>*,.tb-alertas,.tb-card){background:var(--t-s1)!important;border:0!important;border-radius:16px!important;box-shadow:none!important}
html[data-hx-app="mantenimiento"] body .hi-filtros select{background:var(--t-s2)!important;border:0!important;border-radius:14px!important}

/* ================= U: sistema único (misma empresa) + usabilidad móvil ================= */
:root{--u-font:Satoshi,-apple-system,system-ui,"Segoe UI",Roboto,sans-serif;--u-h1:clamp(32px,9.5vw,40px);--u-h2:22px;--u-h3:18px;--u-txt:16px;--u-sm:13px;--u-lbl:12px;--u-btn:52px;--u-inp:52px;--u-tap:48px;--u-pad:16px}
/* tipografía: una familia, pesos 400/500/700 */
html body,html body :is(h1,h2,h3,h4,h5,h6,p,span,a,b,strong,small,label,li,dt,dd,td,th,div,button,input,select,textarea,summary,legend){font-family:var(--u-font)!important}
html body{font-size:var(--u-txt)!important;line-height:1.45}
html body :is(h1,.page-title,.titulo){font-size:var(--u-h1)!important;font-weight:400!important;letter-spacing:-.03em!important;line-height:1.08!important;overflow-wrap:anywhere}
html body :is(h2,.section-h){font-size:var(--u-h2)!important;font-weight:400!important;letter-spacing:-.01em!important;line-height:1.2!important;text-transform:none!important}
html body h3{font-size:var(--u-h3)!important;font-weight:500!important;line-height:1.3!important}
html body :is(small,.meta,.sub,.hint,.pin-hint){font-size:var(--u-sm)!important}
html body :is(label,.label,.lbl,.grupo-tit,legend){font-size:var(--u-lbl)!important;font-weight:500!important;letter-spacing:.06em!important;text-transform:uppercase}
/* botones: mismo alto, radio y colores */
html body :is(.btn,.pn-btn,.btn-primary,.btn-secondary,.ts-submit,.modal-ok,button[type=submit],.tb-acc,.link-pill,.ts-foto-btn,.qr-btn,.pv-btn){min-height:var(--u-btn)!important;border-radius:999px!important;font-size:16px!important;font-weight:500!important;padding:0 22px!important;border:0!important;box-shadow:none!important;line-height:1.2}
html body :is(.btn.chico,.btn-sm,.chico){min-height:var(--u-tap)!important}
/* chips: tocables */
html body :is(.chip,.pn-chip,.inv-chip,.cat-chips button,.tb-sem button,.tab,.subtab,.seg button,.tabs button,.et-fil,.familia-chip,.filter-bar button){min-height:44px!important;padding:0 16px!important;font-size:14px!important;display:inline-flex;align-items:center}
/* inputs */
html body :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]):not([type=hidden]),select){min-height:var(--u-inp)!important;font-size:16px!important;border-radius:14px!important;border:0!important;background:var(--t-s2)!important;color:var(--t-tx)!important;padding:0 16px!important}
html body textarea{font-size:16px!important;border-radius:14px!important;border:0!important;background:var(--t-s2)!important;color:var(--t-tx)!important;padding:14px 16px!important}
/* header idéntico */
html body :is(header.header,header.top,header.topbar,header.nav){min-height:64px!important;padding:14px 16px 12px 20px!important;display:flex!important;align-items:center!important;gap:12px!important;position:sticky;top:0;z-index:100}
html body :is(header.header,header.top,header.topbar) :is(.brand,a.brand,#nav-logo){flex:0 0 auto!important;min-width:auto!important}
html body :is(header.header,header.top,header.topbar,header.nav) img:not(.logo-for-dark){height:20px!important}
html body .theme-toggle{min-width:var(--u-tap)!important;min-height:var(--u-tap)!important;border-radius:50%!important;flex:0 0 auto}
/* Producción: logo + tema arriba, contexto debajo (sin superponerse) */
html[data-hx-app="produccion"] body header.header{flex-wrap:wrap!important}
html[data-hx-app="produccion"] body header.header .brand{order:1;flex:1 1 auto!important}
html[data-hx-app="produccion"] body header.header .theme-toggle{order:2}
html[data-hx-app="produccion"] body header.header .context{order:3;flex:1 0 100%!important;margin-left:0!important;white-space:normal!important;overflow:visible!important;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
html[data-hx-app="produccion"] body header.header .context[hidden]{display:none!important}
/* tarjetas y espaciado */
html body :is(.card,.ev-card,.pn-card,.inv-card,.modal-card,.eq-card,.box,.part-card){padding:20px!important}
/* usabilidad: nada tapado por Salir / DEV, sin scroll horizontal */
html,body{overflow-x:clip!important;max-width:100%}
html body{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))!important}
#hx-disp{pointer-events:none!important;opacity:.7}
#hx-salir{min-height:40px!important;display:inline-flex!important;align-items:center;padding:0 16px!important;border-radius:999px!important;font-size:13px!important}
html body img,html body video,html body canvas,html body table{max-width:100%}
html body :is(.table-wrap,.hi-tabla){overflow-x:auto}
html body :is(.modal-card,.pn-modal-card,.modal-caja){max-height:calc(100dvh - 32px);overflow-y:auto}
/* U: áreas táctiles mínimas */
html body :is(#nav-logo,a.brand,#logo,.nav-brand){min-height:var(--u-tap)!important;display:inline-flex!important;align-items:center}
html body :is(#tema,#theme-toggle,.tema,.nav-hours,#nav-toggle,#btn-salir,.btn-salir){min-width:var(--u-tap)!important;min-height:var(--u-tap)!important;display:inline-flex!important;align-items:center;justify-content:center}
html body :is(#tab-origen,#tab-galeria,.tab,.subtab,.scroll-cue){min-height:var(--u-tap)!important;display:inline-flex;align-items:center;justify-content:center}
html body #q{min-height:var(--u-inp)!important}
html body #hx-salir{min-height:44px!important}
html body .btn-text{min-height:var(--u-tap)!important}
html[data-hx-app="fotos"] body .tabs{overflow-x:auto!important;scrollbar-width:none;flex-wrap:nowrap!important;background:transparent!important;border:0!important;padding:0!important}
html[data-hx-app="fotos"] body .tabs .tab{flex:0 0 auto!important;padding:0 14px!important}
html[data-hx-app="fotos"] body :is(.miga a,.breadcrumb a,nav a,.ruta a){min-height:var(--u-tap);display:inline-flex;align-items:center}
