@font-face{font-family:"Poppins";src:url(fonts/Poppins-Regular.ttf) format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"Poppins";src:url(fonts/Poppins-Medium.ttf) format("truetype");font-weight:500 600;font-display:swap}
@font-face{font-family:"Poppins";src:url(fonts/Poppins-Bold.ttf) format("truetype");font-weight:700;font-display:swap}
/* Colores TINGA Benefits */
:root{--teal:#0E9AA7;--teal-d:#0A7480;--deep:#0B4F57;--orange:#E8822A;--orange-d:#C96A16;--bg:#F5F8F8;--surface:#FFFFFF;--surface2:#EEF4F4;--ink:#1F2937;--muted:#5B6474;--line:#DCE6E6;--blue:#2F6FB5;--gold:#E8962C;--coral:#E25C59;--navy2:#0B4F57;--okbg:#E2F4F3;--badbg:#FDE7E6;--midbg:#FFF2E0;color-scheme:light}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0D1A1C;--surface:#132427;--surface2:#1A3034;--ink:#E5EEEF;--muted:#9FB3B6;--line:#24403F;--teal:#2BB8C4;--teal-d:#1E9AA5;--deep:#0B3B41;--orange:#F29A4A;--blue:#6EA3E0;--gold:#F2B25C;--coral:#F08280;--navy2:#13474E;--okbg:#123533;--badbg:#3A1E22;--midbg:#3A2C16;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#0D1A1C;--surface:#132427;--surface2:#1A3034;--ink:#E5EEEF;--muted:#9FB3B6;--line:#24403F;--teal:#2BB8C4;--teal-d:#1E9AA5;--deep:#0B3B41;--orange:#F29A4A;--blue:#6EA3E0;--gold:#F2B25C;--coral:#F08280;--navy2:#13474E;--okbg:#123533;--badbg:#3A1E22;--midbg:#3A2C16;color-scheme:dark}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 "Poppins",system-ui,-apple-system,"Segoe UI",sans-serif;min-height:100vh;display:flex;flex-direction:column}
h1,h2,h3{font-family:"Poppins",system-ui,sans-serif;margin:0;line-height:1.2;letter-spacing:-.01em}
a{color:var(--teal-d)}
.btn{background:var(--orange)!important;color:#fff!important}
.btn:hover{background:var(--orange-d)!important}
.btn.sec{background:var(--surface2)!important;color:var(--ink)!important;border:1px solid var(--line)}
.btn.sec:hover{background:var(--line)!important}
.btn.danger{background:transparent!important;color:var(--coral)!important;border:1px solid var(--coral)}
.firma{margin-top:auto;padding:18px 20px calc(18px + env(safe-area-inset-bottom,0px));text-align:center;font-size:12.5px;color:var(--muted);border-top:1px solid var(--line);background:var(--surface)}
.firma a{color:var(--teal-d);text-decoration:none}
/* Ingreso */
body.auth{background:linear-gradient(160deg,var(--bg) 0%,var(--surface2) 100%)}
.auth-split{flex:1;display:grid;grid-template-columns:1.1fr 1fr;max-width:1040px;width:100%;margin:auto;padding:28px 20px;gap:28px;align-items:center}
.auth-brand .logo{width:230px;height:auto}
.auth-brand h1{font-size:clamp(30px,4vw,44px);color:var(--teal);margin-top:18px}
.auth-brand p{font-size:17px;max-width:42ch}
.auth-brand ul{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:8px}
.auth-brand li{padding-left:26px;position:relative}
.auth-brand li::before{content:"";position:absolute;left:0;top:7px;width:12px;height:12px;border-radius:50%;border:3px solid var(--orange)}
.auth-card{background:var(--surface);border-radius:22px;padding:30px;box-shadow:0 18px 40px -24px rgba(11,79,87,.35);border:1px solid var(--line);width:100%;max-width:440px;margin:auto}
main.auth-card{margin:40px auto}
.auth-card.wide{max-width:620px}
.auth-card .logo{width:170px;display:block;margin-bottom:12px}
.auth-card h1,.auth-card h2{color:var(--teal);font-size:26px;margin-bottom:10px}
.auth-card form{display:grid;gap:14px;margin-top:12px}
.auth-card label{display:grid;gap:6px;font-size:14px;font-weight:500}
.auth-card input{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--surface);font:inherit;color:var(--ink)}
.auth-card input:focus{border-color:var(--teal);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--teal) 25%,transparent)}
.auth-card fieldset{border:1px solid var(--line);border-radius:14px;padding:14px;display:grid;gap:12px}
.auth-card legend{font-weight:600;color:var(--teal-d);padding:0 6px}
.auth-card .btn{justify-content:center;padding:13px 18px;font-size:15px}
.alert{background:var(--badbg);color:var(--coral);border-radius:12px;padding:10px 14px;font-weight:600}
.info{background:var(--okbg);color:var(--teal-d);border-radius:12px;padding:10px 14px}
.warn{background:var(--midbg);border-radius:12px;padding:10px 14px}
.link{display:inline-block;margin-top:6px;text-align:center}
/* Barra superior de la aplicación */
.appbar{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30;padding-top:env(safe-area-inset-top,0px)}
.appbar .in{max-width:1180px;margin:0 auto;padding:10px 22px;display:flex;align-items:center;gap:16px;justify-content:space-between;flex-wrap:wrap}
.appbar .logo{height:46px;width:auto;display:block}
.appbar .ttl{display:flex;align-items:center;gap:14px}
.appbar .ttl span{font-weight:700;color:var(--teal);font-size:18px;border-left:2px solid var(--line);padding-left:14px}
.user{display:flex;align-items:center;gap:10px;font-size:14px;flex-wrap:wrap}
.user .who{display:flex;flex-direction:column;line-height:1.2;text-align:right}
.user .who small{color:var(--muted)}
.user form{margin:0}
.user .btn{padding:8px 14px;font-size:13.5px}
.hero{background:var(--deep);color:#fff;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;width:260px;height:260px;border-radius:50%;border:26px solid var(--orange);right:-80px;top:-120px;opacity:.95}
.hero::after{content:"";position:absolute;width:30px;height:30px;border-radius:50%;background:var(--teal);right:220px;top:30px}
.hero .in{max-width:1180px;margin:0 auto;padding:26px 22px;position:relative;z-index:1;display:flex;gap:18px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap}
.hero h1{font-size:clamp(24px,3.6vw,34px)}
.hero p{margin:6px 0 0;color:#CFE6E8;max-width:60ch}
.sign{display:flex;flex-direction:column;gap:4px;min-width:250px}
.sign label{font-size:12px;color:#CFE6E8}
.sign input{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.28);border-radius:10px;padding:9px 12px;color:#fff;font:inherit}
.hist{display:grid;gap:8px}
.hrow{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;background:var(--surface2);border-radius:14px;padding:12px 14px}
.hrow b{font-size:15px}.hrow small{color:var(--muted);display:block}
.hrow .acts{display:flex;gap:6px;flex-wrap:wrap}
.hrow .btn{padding:7px 12px;font-size:13px}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;align-items:end;margin:10px 0 16px}
.form-grid label{display:grid;gap:4px;font-size:13px;color:var(--muted)}
.form-grid input,.form-grid select{border:1px solid var(--line);border-radius:10px;padding:9px 12px;background:var(--surface);font:inherit;color:var(--ink)}
.badge{font-size:12px;border-radius:999px;padding:2px 9px;background:var(--surface2);color:var(--muted);font-weight:600}
.badge.on{background:var(--okbg);color:var(--teal-d)}.badge.off{background:var(--badbg);color:var(--coral)}
@media (max-width:820px){.auth-split{grid-template-columns:1fr}.auth-brand{text-align:center}.auth-brand ul{display:none}.auth-brand .logo{margin:auto}.appbar .ttl span{display:none}.user .who{display:none}}
:root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*,*::before,*::after{box-sizing:inherit}
button,select,input{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--blue);outline-offset:2px;border-radius:6px}
main{max-width:1180px;margin:0 auto;padding:22px}
.drop{border:2px dashed var(--line);background:var(--surface);border-radius:22px;padding:42px 24px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s}
.drop.over{border-color:var(--teal);background:var(--okbg)}
.drop h2{font-size:22px;margin-bottom:8px}
.drop p{color:var(--muted);margin:0 auto 18px;max-width:60ch}
.btn{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:12px;padding:11px 18px;font-weight:600;cursor:pointer;background:var(--teal);color:#fff}
.btn.sec{background:var(--surface2);color:var(--ink)}
.btn:disabled{opacity:.55;cursor:progress}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:22px;text-align:left}
.steps div{background:var(--surface2);border-radius:14px;padding:12px 14px;font-size:14px;color:var(--muted)}
.steps b{display:block;color:var(--ink);font-family:Poppins,sans-serif;font-size:14px}
.status{margin:14px 0;color:var(--muted);font-size:14px;min-height:1.5em}
.status.err{color:var(--coral);font-weight:600}
.meta{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 18px}
.pill{background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:13px;color:var(--muted)}
.pill b{color:var(--ink)}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.kpi{background:var(--surface);border-radius:16px;padding:16px;border-top:5px solid var(--c)}
.kpi span{font-size:12.5px;color:var(--muted)}
.kpi strong{display:block;font-family:Poppins,sans-serif;font-size:clamp(20px,2.4vw,27px);color:var(--c);line-height:1.2;margin-top:4px;font-variant-numeric:tabular-nums}
.kpi small{color:var(--muted);font-size:12px}
.wall{margin:22px 0;background:var(--surface);border-radius:20px;padding:18px}
.wall h2,.panel h2{font-size:18px}
.wall p.note{margin:4px 0 14px;color:var(--muted);font-size:14px}
.chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(178px,1fr));gap:8px}
.chip{border:0;text-align:left;border-radius:12px;padding:9px 11px;background:var(--okbg);cursor:pointer;display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:13.5px}
.chip .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chip .s{font-weight:700;color:var(--teal);font-variant-numeric:tabular-nums;white-space:nowrap}
.chip.adj{background:var(--midbg)} .chip.adj .s{color:var(--gold)}
.chip.bad{background:var(--badbg)} .chip.bad .s{color:var(--coral)}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 14px;position:sticky;top:env(safe-area-inset-top,0px);background:var(--bg);padding:8px 0;z-index:5}
.tab{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:8px 16px;cursor:pointer;font-weight:600;font-size:14px}
.tab[aria-selected="true"]{background:var(--navy2);border-color:var(--navy2);color:#fff}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--bg)}
.panel{background:var(--surface);border-radius:20px;padding:18px;margin-bottom:16px}
.tw{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:13.5px;font-variant-numeric:tabular-nums}
th{background:var(--navy2);color:#fff;text-align:right;padding:9px 10px;font-weight:600;white-space:nowrap;font-size:12.5px}
th:first-child,th.l{text-align:left}
td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
td.l{text-align:left;white-space:normal;min-width:180px}
tr.click{cursor:pointer} tr.click:hover td{background:var(--surface2)}
tfoot td{font-weight:700;background:var(--surface2)}
.ok{color:var(--teal);font-weight:700}.bad{color:var(--coral);font-weight:700}.adjc{color:var(--gold);font-weight:700}
.det-head{display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:space-between;margin-bottom:14px}
select{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:9px 12px;max-width:100%}
.grid2{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}
.cv{position:relative;height:300px}
.flow{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:12px 0 4px}
.flow div{border-radius:12px;padding:10px;background:var(--surface2);text-align:center;font-size:12px;color:var(--muted)}
.flow b{display:block;font-family:Poppins,sans-serif;font-size:16px;color:var(--ink);font-variant-numeric:tabular-nums}
.hall{display:flex;flex-direction:column;gap:10px}
.h{border-radius:14px;padding:12px 14px;background:var(--surface2);display:grid;grid-template-columns:auto 1fr auto;gap:6px 14px;align-items:start}
.lvl{font-size:12px;font-weight:700;border-radius:999px;padding:3px 10px}
.lvl.Alto{background:var(--badbg);color:var(--coral)}.lvl.Medio{background:var(--midbg);color:var(--gold)}.lvl.Info{background:var(--surface);color:var(--blue)}
.h .t{font-weight:600}.h .d{grid-column:2/4;color:var(--muted);font-size:14px}.h .v{font-weight:700;font-variant-numeric:tabular-nums}
.dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}
.dl .card{background:var(--surface2);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:8px}
.dl .card p{margin:0;color:var(--muted);font-size:14px;flex:1}
.dl h3{font-size:16px}
.hidden{display:none!important}
#chart-scratch{position:fixed;left:-20000px;top:0;width:10px;height:10px;overflow:hidden}
.toast{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--navy2);color:#fff;border-radius:12px;padding:10px 16px;font-size:14px;z-index:20;max-width:90vw}
.muted{color:var(--muted)}.small{font-size:13px}
input[type=search]{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:9px 12px;min-width:200px}
th.sort{cursor:pointer;user-select:none}
.tab.ghost{background:transparent;border-style:dashed}
.opts{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;font-size:13.5px;color:var(--muted);margin:-4px 0 14px}
.opts span{font-weight:700;color:var(--ink)}.opts label{display:flex;gap:6px;align-items:center;cursor:pointer}
input[type=checkbox]{accent-color:var(--teal);width:16px;height:16px}
.rep-head{background:var(--deep);color:#fff;border-radius:20px;padding:22px;margin-bottom:14px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-end;position:relative;overflow:hidden}
.rep-head::after{content:"";position:absolute;width:150px;height:150px;border-radius:50%;background:var(--orange);right:-50px;top:-70px;opacity:.9}
.rep-head h2{font-size:clamp(22px,3vw,30px);position:relative;z-index:1}.rep-head p{margin:6px 0 0;color:#C9D6EA;position:relative;z-index:1}
.rep-act{display:flex;gap:8px;flex-wrap:wrap;position:relative;z-index:1}
.rep-act input,.rep-act select{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.25);color:#fff}.rep-act select option{color:#1F2937}
.rep-head .btn.sec{background:rgba(255,255,255,.14);color:#fff}
#p-det .kpis{margin-bottom:16px}
.flow2{display:flex;flex-wrap:wrap;align-items:stretch;gap:6px;margin:12px 0}
.fl{flex:1 1 120px;border-radius:12px;padding:10px 12px;font-size:12.5px;color:var(--muted);background:var(--surface2)}
.fl b{display:block;font-family:Poppins,sans-serif;font-size:17px;color:var(--ink);font-variant-numeric:tabular-nums}
.fl.n{background:var(--navy2);color:#C9D6EA}.fl.n b{color:#fff}.fl.b b{color:var(--blue)}.fl.c b{color:var(--coral)}.fl.t b{color:var(--teal)}.fl.g b{color:var(--gold)}
.ar{align-self:center;color:var(--muted);font-weight:700}.ar.sep{opacity:.4}
.hls{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:16px}
.hl{border-radius:18px;padding:18px;background:color-mix(in srgb,var(--c) 13%,var(--surface))}
.hl b{display:block;font-family:Poppins,sans-serif;font-size:38px;color:var(--c);line-height:1}.hl span{display:block;margin-top:8px;font-size:14px}
.gauge{display:grid;place-items:center}.gt{position:absolute;inset:0;display:grid;place-content:center;text-align:center;pointer-events:none}
.gt b{font-family:Poppins,sans-serif;font-size:34px;color:var(--teal);line-height:1}.gt span{font-size:12px;color:var(--muted)}
.leg{font-size:13px;margin-top:10px;display:grid;gap:4px}
.tagint{font-size:11px;background:var(--badbg);color:var(--coral);border-radius:999px;padding:3px 9px;vertical-align:middle;font-family:Figtree,sans-serif}
.up{color:var(--teal);font-weight:700}.down{color:var(--coral);font-weight:700}
.dl .card.feature{background:color-mix(in srgb,var(--teal) 12%,var(--surface))}
.dl .row{display:flex;gap:8px;flex-wrap:wrap}
@media (max-width:820px){.kpis{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}.flow{grid-template-columns:repeat(2,1fr)}.top::after{display:none}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
main{width:100%}
.btn{text-decoration:none}
.hero::after{display:none}
.tabs{top:calc(67px + env(safe-area-inset-top,0px))}
@media (max-width:820px){.tabs{top:calc(60px + env(safe-area-inset-top,0px));flex-wrap:nowrap;overflow-x:auto}.tab{white-space:nowrap}.appbar .logo{height:38px}.hero::before{width:160px;height:160px;border-width:18px;right:-70px;top:-80px}}
.rep-act input,.rep-act select{flex:1 1 200px;min-width:0;max-width:100%}
@media (max-width:520px){.user .btn.sec{display:none}.rep-act .btn{flex:1 1 auto}}

/* Pestañas en una sola fila */
.tabs{display:flex;flex-wrap:nowrap;justify-content:space-between;gap:10px;align-items:center}
.tabs-main,.tabs-act{display:flex;gap:6px;flex-wrap:nowrap}
.tabs-main{overflow-x:auto;scrollbar-width:thin;padding-bottom:2px;min-width:0}
.tab{white-space:nowrap}
/* Formulario de usuarios */
.uform{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;background:var(--surface2);border-radius:16px;padding:18px;margin-top:12px}
.uform label{display:grid;gap:6px;font-size:13.5px;font-weight:600;color:var(--ink);align-content:start}
.uform input:not([type=checkbox]),.uform select{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 12px;background:var(--surface);font:inherit;font-weight:400;color:var(--ink)}
.uform input:focus,.uform select:focus{border-color:var(--teal);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--teal) 22%,transparent)}
.uform small{font-weight:400;font-size:12.5px}
.uform-foot{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:14px}
.uform .chk{display:flex;align-items:center;gap:8px;font-weight:500}
#uList td{vertical-align:middle}
@media (max-width:760px){.uform{grid-template-columns:1fr}.tabs{flex-wrap:wrap}.tabs-act{width:100%}.tabs-main{width:100%}}

/* ===== Responsivo total y experiencia tipo app (v2.2) ===== */
*{min-width:0}
img,canvas,svg{max-width:100%}
.kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.kpi strong{overflow-wrap:anywhere}
.grid2{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}
.auth-split{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.install-cta{width:100%;justify-content:center;margin-top:6px}
.ios-hint{font-size:13px;color:var(--muted);background:var(--surface2);border-radius:12px;padding:10px 12px;margin:8px 0 0}
.mob,.bnav{display:none}
.avatar{width:42px;height:42px;border-radius:50%;border:0;background:var(--teal);color:#fff;font-weight:700;font-size:17px;cursor:pointer}
.row select,#cmpSel{width:100%;max-width:420px}
.dl .card .btn{justify-content:center}
.sheet{position:fixed;inset:0;z-index:60}
.sheet-bg{position:absolute;inset:0;background:rgba(6,30,34,.45)}
.sheet-card{position:absolute;left:0;right:0;bottom:0;background:var(--surface);border-radius:22px 22px 0 0;padding:10px 18px calc(18px + env(safe-area-inset-bottom,0px));max-height:85vh;overflow:auto;box-shadow:0 -12px 30px -12px rgba(0,0,0,.25);animation:up .22s ease-out}
@keyframes up{from{transform:translateY(30px);opacity:.6}to{transform:none;opacity:1}}
.grab{width:42px;height:5px;border-radius:3px;background:var(--line);margin:4px auto 12px}
.sheet-user{padding:4px 4px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}
.sheet-user b{display:block;font-size:16px}.sheet-user small{color:var(--muted)}
.sheet-list{display:grid}
.sheet-list form{margin:0}
.sheet-list button,.sheet-list a{display:flex;align-items:center;gap:14px;width:100%;min-height:52px;padding:8px 6px;border:0;background:none;color:var(--ink);font:inherit;font-size:15.5px;text-decoration:none;text-align:left;border-radius:12px;cursor:pointer}
.sheet-list button:hover,.sheet-list a:hover{background:var(--surface2)}
.sheet-list svg{width:22px;height:22px;color:var(--teal);flex:none}
.sheet-list .danger,.sheet-list .danger svg{color:var(--coral)}
body.noscroll{overflow:hidden}
@media (min-width:761px){.sheet{display:none!important}}

@media (max-width:1000px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){
  body{font-size:15px;padding-bottom:calc(68px + env(safe-area-inset-bottom,0px))}
  main{padding:14px}
  .desk{display:none!important}.mob{display:inline-flex;align-items:center;justify-content:center}
  .appbar .in{padding:8px 14px;flex-wrap:nowrap}
  .appbar .logo{height:36px}
  .user{flex-wrap:nowrap}
  .hero .in{padding:16px 14px;gap:12px}
  .hero h1{font-size:21px}.hero p{font-size:13.5px}
  .sign{min-width:0;width:100%}
  .tabs{display:none!important}
  .opts{margin:0 0 12px;gap:6px 14px;font-size:13px}
  .kpis{gap:8px}.kpi{padding:12px;border-radius:14px;border-top-width:4px}
  .kpi strong{font-size:clamp(16px,5vw,21px)}.kpi span,.kpi small{font-size:11.5px}
  .meta{gap:6px}.pill{font-size:12px;padding:4px 10px}
  .wall,.panel{padding:14px;border-radius:16px}
  .chips{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.chip{padding:9px 10px;font-size:12.5px;min-height:44px}
  .det-head{flex-direction:column;align-items:stretch}
  .det-head select,.det-head input,#q{width:100%;min-width:0}
  .rep-head{padding:16px;border-radius:16px}.rep-head h2{font-size:20px}
  .rep-act{width:100%}.rep-act input,.rep-act select,.rep-act .btn{flex:1 1 100%;width:100%;justify-content:center}
  .grid2{grid-template-columns:minmax(0,1fr);gap:12px}
  .cv{height:240px}
  .flow2 .fl{flex:1 1 calc(50% - 6px)}.flow2 .ar{display:none}
  .hls{grid-template-columns:minmax(0,1fr)}.hl b{font-size:30px}
  .dl{grid-template-columns:minmax(0,1fr)}
  .dl .card .btn,.dl .row .btn{width:100%;flex:1 1 0}
  .dl select{width:100%}
  .row{width:100%}
  .hrow{grid-template-columns:minmax(0,1fr)}.hrow .acts .btn{flex:1 1 0;justify-content:center}
  .h{grid-template-columns:auto minmax(0,1fr);}.h .v{grid-column:2}.h .d{grid-column:1/-1}
  .uform{padding:14px}.uform-foot .btn{width:100%;justify-content:center}
  .drop{padding:26px 16px}.drop h2{font-size:19px}.steps{grid-template-columns:minmax(0,1fr)}
  .toast{bottom:calc(80px + env(safe-area-inset-bottom,0px))}
  .firma{padding-bottom:16px}
  /* Navegación inferior */
  .bnav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--surface);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));box-shadow:0 -6px 20px -14px rgba(0,0,0,.3)}
  .bnav button{display:flex;flex-direction:column;align-items:center;gap:3px;border:0;background:none;color:var(--muted);font:inherit;font-size:11px;font-weight:600;padding:6px 2px;border-radius:12px;cursor:pointer;min-height:52px}
  .bnav svg{width:23px;height:23px}
  .bnav button.on{color:var(--teal);background:color-mix(in srgb,var(--teal) 10%,transparent)}
  /* Tablas como tarjetas */
  #app table thead{display:none}
  #app table,#app tbody,#app tfoot,#app tr,#app td{display:block;width:100%}
  #app .tw{overflow:visible}
  #app tbody tr,#app tfoot tr{background:var(--surface2);border-radius:14px;padding:10px 12px;margin-bottom:8px}
  #app tfoot tr{background:var(--okbg)}
  #app td{display:flex;justify-content:space-between;align-items:center;gap:12px;border:0;padding:3px 0;white-space:normal;text-align:right;min-width:0}
  #app td::before{content:attr(data-label);color:var(--muted);font-size:12px;font-weight:500;text-align:left;flex:none;max-width:55%}
  #app td:first-child{font-weight:700;font-size:14.5px;justify-content:flex-start;text-align:left;padding-bottom:6px}
  #app td:first-child::before,#app td[data-label=""]::before{display:none}
  #app td[data-label=""]{justify-content:flex-end}
  #app td.l{min-width:0}
  #app tr.click{cursor:pointer}
}
@media (max-width:420px){.chips{grid-template-columns:minmax(0,1fr)}.auth-card{padding:22px}.auth-brand .logo{width:180px}.auth-brand h1{font-size:28px}}
.is-app .firma{display:none}

@media (max-width:760px){
  body[data-view="app"]:not([data-tab="emp"]) #overview{display:none}
  body[data-view="app"]:not([data-tab="des"]) .hero{display:none}
  body[data-view="app"] main{padding-top:12px}
  #overview .wall{margin:14px 0}
}
.status:empty{display:none}
@media (max-width:760px){
  #app table.keep{display:table;width:max-content;min-width:100%}
  #app table.keep thead{display:table-header-group}
  #app table.keep tbody{display:table-row-group}#app table.keep tfoot{display:table-footer-group}
  #app table.keep tr{display:table-row;background:none;border-radius:0;padding:0;margin:0}
  #app table.keep td{display:table-cell;width:auto;padding:7px 9px;border-bottom:1px solid var(--line);white-space:nowrap;text-align:right;font-size:13px}
  #app table.keep td:first-child{text-align:left;font-size:13px;padding-bottom:7px;position:sticky;left:0;background:var(--surface)}
  #app table.keep td::before{display:none}
  #app .tw:has(table.keep){overflow-x:auto}
}
body[data-view="app"]:not([data-tab="emp"]) #overview{display:none}
.chip .n{flex:1 1 auto;min-width:0}.chip .s{flex:none}
/* Ingreso en celular: una sola columna centrada */
@media (max-width:820px){
  .auth-split{grid-template-columns:minmax(0,1fr);gap:18px;padding:22px 16px;margin:0 auto;align-content:start;max-width:520px}
  .auth-brand{text-align:center}
  .auth-brand .logo{width:190px;margin:0 auto}
  .auth-brand h1{font-size:28px;margin-top:10px}
  .auth-brand p{font-size:15px;margin:6px auto 0}
  .auth-brand ul{display:none}
  .auth-split .auth-card{max-width:none;margin:0;padding:22px}
  main.auth-card{margin:20px 16px;width:auto}
}
/* v2.3 – Evitar desplazamiento lateral en celulares reales */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:clip}
body{overflow-x:clip;max-width:100vw}
/* iPhone hace zoom (y corre la página a la derecha) si un campo tiene letra menor a 16 px */
@media (max-width:1024px){
  input,select,textarea,.auth-card input,.uform input,.uform select,.form-grid input,.form-grid select,input[type=search],.rep-act input,.rep-act select,select#hFil,#cmpSel,#selPdf{font-size:16px!important}
}
