/* Estilos portados del prototipo */
/* Layout: una sola app con tres tratamientos (Claro, Ejecutiva, Libreta) y selector de rol para probar privacidad. */
:root{--bg:#f4f6f8;--card:#fff;--ink:#16202c;--mute:#5a6878;--line:#d9e0e8;--acc:#1f5fa6;--accbg:#e7effa;--ok:#176a3a;--okbg:#e5f5ea;--warn:#9a4a0a;--warnbg:#fdf0e1;--r:12px;--fs:15px;--fd:system-ui,-apple-system,"Segoe UI",sans-serif}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0f151c;--card:#18212b;--ink:#eef2f6;--mute:#a4b0be;--line:#2c3947;--acc:#8db8f0;--accbg:#1d2e44;--ok:#6fd194;--okbg:#14301f;--warn:#f0b070;--warnbg:#3a2612;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#0f151c;--card:#18212b;--ink:#eef2f6;--mute:#a4b0be;--line:#2c3947;--acc:#8db8f0;--accbg:#1d2e44;--ok:#6fd194;--okbg:#14301f;--warn:#f0b070;--warnbg:#3a2612;color-scheme:dark}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--fd);font-size:var(--fs);line-height:1.45;margin:0;padding-block:0 84px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.sim{display:flex;gap:10px 16px;flex-wrap:wrap;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px;color:var(--mute);max-width:820px;margin:0 auto}
.sim select{font:inherit;padding:5px 8px;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--ink)}
.app{max-width:820px;margin:0 auto;padding-top:18px;display:grid;gap:16px}
:root{--fs:17px;--r:16px}
.v-exec{--r:8px;--acc:#0f4c81}
.v-lib{--r:6px;--fd:'Public Sans',system-ui,sans-serif}
.v-lib h1,.v-lib .big{font-family:'Fraunces',Georgia,serif}
h1{font-size:1.3em;margin:0}h2{font-size:1.05em;margin:0}h3{margin:0;font-size:1em}
.mut{color:var(--mute)}.sm{font-size:.82em}.n{font-variant-numeric:tabular-nums;white-space:nowrap}
.top{display:flex;justify-content:space-between;gap:10px;align-items:center}
.pill{border:1px solid var(--line);border-radius:99px;padding:3px 10px;font-size:.8em;background:var(--card)}
.hero{background:var(--accbg);border:1px solid var(--line);border-radius:var(--r);padding:20px;display:grid;gap:8px}
.hero small{text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--acc);font-size:.75em}
.big{font-size:clamp(34px,9vw,48px);font-weight:800;line-height:1.05;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.v-exec .hero{background:var(--card)}
.prog{height:8px;background:var(--line);border-radius:5px;overflow:hidden}.prog i{display:block;height:100%;background:var(--acc)}
.row2{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.box{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}
.box small{display:block;color:var(--mute);font-size:.72em;text-transform:uppercase;letter-spacing:.05em;font-weight:700}
.box b{font-size:1.2em;font-variant-numeric:tabular-nums}
.badge{display:inline-block;font-size:.72em;font-weight:700;padding:2px 8px;border-radius:5px;text-transform:uppercase;letter-spacing:.03em}
.b-pen{background:var(--warnbg);color:var(--warn)}.b-ok{background:var(--okbg);color:var(--ok)}
.hn{display:flex;justify-content:space-between;gap:10px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}
.list{display:grid;gap:8px}
.lock{background:var(--card);border:1px dashed var(--line);border-radius:var(--r);padding:12px 14px;color:var(--mute);font-size:.9em}
details.m{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
details.m>summary{list-style:none;cursor:pointer;display:flex;gap:12px;align-items:center;justify-content:space-between;padding:14px 16px;min-height:56px}
.v-claro details.m>summary{min-height:80px}
details.m>summary::-webkit-details-marker{display:none}
details.m>summary .ch{color:var(--mute);transition:transform .15s}details.m[open]>summary .ch{transform:rotate(90deg)}
.mt{flex:1;min-width:0}.mt b{display:block}
.mq{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}.mq small{display:block;font-weight:400;color:var(--mute);font-size:.75em}
.dt{border-top:1px solid var(--line);padding:6px 16px 14px}
.grp h4{display:flex;justify-content:space-between;margin:14px 0 4px;font-size:.78em;text-transform:uppercase;letter-spacing:.05em;color:var(--mute)}
.tag{border:1px solid var(--line);border-radius:6px;padding:1px 7px;font-size:.9em;text-transform:none;letter-spacing:0}
.ex{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.ex:last-child{border:0}
.ex span:first-child{min-width:0;overflow-wrap:anywhere}
.tw{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:420px}th,td{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left}th{font-size:.72em;text-transform:uppercase;color:var(--mute);letter-spacing:.05em}td.n,th.n{text-align:right}
.btn{font:inherit;font-weight:600;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:10px;padding:10px 14px;cursor:pointer;min-height:44px}
.btn.p{background:var(--acc);color:var(--bg);border-color:var(--acc)}
.cp{display:flex;justify-content:space-between;gap:10px;align-items:center;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-top:6px}
.cp span{overflow-wrap:anywhere;min-width:0}
.in{font:inherit;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink)}
.ph{height:84px;border-radius:8px;border:1px solid var(--line);background:repeating-linear-gradient(0deg,var(--bg) 0 8px,var(--line) 8px 9px);display:grid;place-items:center;color:var(--mute);font-size:.8em}
.nav{position:fixed;bottom:0;left:0;right:0;background:var(--card);border-top:1px solid var(--line);padding:8px max(12px,env(safe-area-inset-right,0px)) max(8px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));display:flex;gap:6px;justify-content:center}
.nav button{flex:1;max-width:180px;font:inherit;font-size:.8em;font-weight:600;border:0;background:none;color:var(--mute);padding:8px 4px;border-radius:10px;min-height:48px;cursor:pointer}
.nav button[aria-current="true"]{background:var(--accbg);color:var(--acc)}
button:focus-visible,select:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid var(--acc);outline-offset:2px}
.toast{position:fixed;left:50%;bottom:80px;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:9px 16px;border-radius:10px;font-size:.85em;opacity:0;pointer-events:none;transition:opacity .2s}.toast.on{opacity:1}
.sim-note{background:var(--warnbg);color:var(--warn);border-radius:8px;padding:8px 10px;font-size:.8em}

.shell{max-width:1040px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:0}
.side{display:none}
.main{min-width:0}
.dtab{display:none}
@media (min-width:820px){
 body{padding-block:0 24px}
 .shell{grid-template-columns:230px 1fr;gap:28px;padding-top:18px}
 .side{display:flex;flex-direction:column;gap:18px;position:sticky;top:18px;align-self:start}
 .side .brand{font-weight:800;font-size:1.05em}
 .side button{display:block;width:100%;text-align:left;font:inherit;font-weight:600;border:0;background:none;color:var(--mute);padding:11px 12px;border-radius:10px;cursor:pointer}
 .side button[aria-current="true"]{background:var(--accbg);color:var(--acc)}
 .nav{display:none}
 .app{padding-top:0}
 .dlist{display:none}.dtab{display:block}
 .toast{bottom:24px}
}
button.box{font:inherit;color:inherit;text-align:left;cursor:pointer;width:100%}
button.box:hover{border-color:var(--acc)}button.box .go{color:var(--acc);font-size:.78em;font-weight:700;display:block;margin-top:2px}
.back{font:inherit;font-weight:600;color:var(--acc);background:none;border:0;padding:6px 0;cursor:pointer;text-align:left}
.doc{display:grid;gap:8px}
.doc .top{align-items:flex-start}
.form{display:grid;gap:10px}.form label{font-weight:700;font-size:.85em;display:block;margin-bottom:3px}
.sbar{display:flex;gap:10px 16px;flex-wrap:wrap;align-items:center;padding:8px 0;font-size:12px;color:var(--mute);max-width:1040px;margin:0 auto}
.sbar select{font:inherit;padding:4px 8px;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--ink)}
button.box[aria-pressed="true"]{border-color:var(--acc);background:var(--accbg)}
tfoot td{border-top:1px solid var(--line)}
.hero[role=button]:hover{border-color:var(--acc)}
.ov{position:fixed;inset:0;background:rgba(10,16,22,.6);display:grid;place-items:center;padding:16px;z-index:50}
.dlg{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:var(--r);padding:18px;width:100%;max-width:420px;max-height:90vh;overflow:auto}
.shell.nosb{grid-template-columns:1fr}
.cs{display:inline-flex;gap:5px;align-items:center;font-size:.76em;font-weight:700;padding:3px 9px;border-radius:99px;white-space:nowrap;border:1px solid transparent}
.cs.lg{font-family:inherit;cursor:pointer}.cs.lg.off{opacity:.45}.cs.lg[aria-pressed="true"]{box-shadow:0 0 0 2px currentColor}.cs.lg:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.cs-paid{background:var(--okbg);color:var(--ok)}.cs-part{background:var(--warnbg);color:var(--warn)}.cs-pen{background:var(--bg);color:var(--mute);border-color:var(--line)}.cs-rev{background:var(--accbg);color:var(--acc)}
.seg{display:flex;gap:4px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:4px}
.seg button{flex:1;font:inherit;font-weight:700;border:0;background:none;color:var(--mute);padding:10px;border-radius:9px;min-height:44px;cursor:pointer}
.seg button[aria-selected="true"]{background:var(--accbg);color:var(--acc)}
.mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}
.mb{border:1px solid var(--line);border-radius:10px;padding:8px 4px;text-align:center;display:grid;gap:1px;min-height:72px;align-content:center;font-size:.82em}
.mb small{color:var(--mute);font-size:.82em}
.mb-paid{background:var(--okbg);border-color:var(--ok);color:var(--ok)}.mb-paid small{color:var(--ok)}
.mb-part{background:var(--warnbg);border-color:var(--warn);color:var(--warn)}.mb-part small{color:var(--warn)}
.mb-pen{background:var(--bg)}
.mrow{display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--card)}
.mrow.hi{border-color:var(--ok);background:var(--okbg)}
.ab{display:flex;justify-content:space-between;gap:10px;align-items:center}
.rv{background:var(--accbg);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}
.rule{border-left:3px solid var(--acc);background:var(--accbg);padding:10px 12px;border-radius:0 10px 10px 0;font-size:.88em}
.steps{padding-left:20px;display:grid;gap:8px;margin:10px 0}
button.mb{font-family:inherit;font-size:.82em;line-height:1.35;color:inherit;cursor:pointer;width:100%}
button.mrow{font:inherit;color:inherit;text-align:left;width:100%;cursor:pointer}
.mi{font-weight:800;font-size:.8em;line-height:1}
.fl{position:fixed;left:50%;transform:translateX(-50%);bottom:max(16px,env(safe-area-inset-bottom,0px));z-index:40;font:inherit;font-weight:700;background:var(--ink);color:var(--bg);border:0;border-radius:99px;padding:12px 20px;min-height:48px;box-shadow:0 6px 20px rgba(0,0,0,.3);cursor:pointer}
details.m.hl{border-color:var(--acc);box-shadow:0 0 0 2px var(--accbg)}
.dlg.wide{max-width:680px}.rpm{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-top:8px;display:grid;gap:6px}.rps{display:grid;gap:8px;margin-top:10px}h3{font-size:.95em}tfoot td{border-top:1px solid var(--line)}
.dlg table{min-width:0!important;font-size:.84em}.dlg th,.dlg td{padding:6px 4px}.dlg td{overflow-wrap:anywhere}

/* Animaciones y detalles visuales */
body,.box,.hero,.dlg,details.m,.btn,.cs,.mb,.mrow,.hn,.seg,.seg button,.nav,.nav button,.side button,.cp,.in,.pill,.rule,.rv,.lock,.fl{transition:background-color .25s ease,border-color .25s ease,color .25s ease,box-shadow .22s ease,transform .18s ease,opacity .2s ease}
.box,.hn,details.m,.mrow,.mb{box-shadow:0 1px 2px rgba(16,32,48,.05)}
.hero{background:linear-gradient(135deg,var(--accbg),var(--card) 120%);box-shadow:0 2px 10px rgba(16,32,48,.07)}
.v-exec .hero{background:var(--card)}
.btn,.pill,.seg button,.nav button,.side button,.fl{-webkit-tap-highlight-color:transparent}
.btn:active,.mb:active,.mrow:active,button.box:active,.cs.lg:active,.fl:active{transform:scale(.97)}
@media (hover:hover){
 .btn:hover{transform:translateY(-2px);box-shadow:0 6px 14px rgba(16,32,48,.14);border-color:var(--acc)}
 .btn.p:hover{filter:brightness(1.1);box-shadow:0 8px 18px rgba(31,95,166,.35)}
 button.pill:hover{transform:translateY(-1px);border-color:var(--acc);box-shadow:0 3px 8px rgba(16,32,48,.12)}
 .seg button:hover:not([aria-selected="true"]){background:var(--bg);color:var(--ink)}
 .nav button:hover:not([aria-current="true"]),.side button:hover:not([aria-current="true"]){background:var(--bg);color:var(--ink)}
 .mb:hover,.mrow:hover,button.box:hover{transform:translateY(-2px);box-shadow:0 6px 14px rgba(16,32,48,.12);border-color:var(--acc)}
 details.m>summary:hover{background:var(--bg)}
 details.m:hover{border-color:var(--acc)}
 .cs.lg:hover{transform:translateY(-1px);box-shadow:0 0 0 2px currentColor}
 .fl:hover{transform:translateX(-50%) translateY(-3px);box-shadow:0 10px 24px rgba(0,0,0,.35)}
 .hero[role=button]:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(16,32,48,.14)}
}
.fl:active{transform:translateX(-50%) scale(.97)}
details.m>summary{transition:background-color .2s ease}
details.m>summary .ch{transition:transform .25s cubic-bezier(.3,.7,.3,1)}
details.m{interpolate-size:allow-keywords}
details.m::details-content{block-size:0;overflow:hidden;transition:block-size .3s ease,content-visibility .3s allow-discrete}
details.m[open]::details-content{block-size:auto}
@supports not selector(::details-content){details.m[open]>.dt{animation:dtIn .28s ease}}
.toast{transform:translate(-50%,12px);transition:opacity .25s ease,transform .25s ease}.toast.on{transform:translate(-50%,0)}
@keyframes rise{from{opacity:.35;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes dtIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes pop{from{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:none}}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes up{from{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translateX(-50%)}}
.app.e-modal .ov{animation:fadeIn .2s ease both}.app.e-modal .dlg{animation:pop .26s cubic-bezier(.2,.8,.3,1) both}
.fl{animation:up .3s ease both}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-delay:0s!important;transition-duration:.001ms!important}}

.tp{display:inline-flex;align-items:center;justify-content:center;width:142px;min-height:36px;padding:3px 10px;font-size:.8em;line-height:1;font-weight:600}
[hidden]{display:none!important}
#bv{display:grid;gap:16px}
.dd{position:relative}.dd-b{display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left;cursor:pointer}
.dd-c{transition:transform .25s ease;color:var(--mute)}.dd.open .dd-c{transform:rotate(180deg)}.dd.open .dd-b{border-color:var(--acc);box-shadow:0 0 0 3px var(--accbg)}
.dd-l{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:30;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 30px rgba(16,32,48,.2);max-height:268px;overflow:auto;padding:6px;opacity:0;transform:translateY(-8px) scale(.97);transform-origin:top;visibility:hidden;pointer-events:none;transition:opacity .2s ease,transform .24s cubic-bezier(.2,.8,.3,1),visibility 0s .24s}
.dd.open .dd-l{opacity:1;transform:none;visibility:visible;pointer-events:auto;transition-delay:0s}
.dd-o{display:flex;justify-content:space-between;align-items:center;width:100%;font:inherit;text-align:left;background:none;border:0;color:var(--ink);padding:10px 12px;border-radius:8px;cursor:pointer;transition:background-color .15s ease,padding-left .18s ease}
.dd-o:hover,.dd-o:focus-visible{background:var(--bg);padding-left:16px}.dd-o[aria-selected="true"]{background:var(--accbg);color:var(--acc);font-weight:700}.dd-o[aria-selected="true"]::after{content:"✓"}
.dd-s{height:1px;background:var(--line);margin:4px 6px}
.mail{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--card)}.mail .mh{padding:10px 14px;background:var(--bg);border-bottom:1px solid var(--line);display:grid;gap:2px;font-size:.88em}.mail .mbd{padding:14px;white-space:pre-wrap;font-size:.92em;line-height:1.5}.mail .att{margin:0 14px 14px;display:inline-flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:.84em;background:var(--bg)}
.chk{display:flex;gap:12px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:12px;cursor:pointer;transition:border-color .2s ease,background-color .2s ease,transform .15s ease}.chk:hover{border-color:var(--acc);transform:translateY(-1px)}.chk:has(input:checked){border-color:var(--acc);background:var(--accbg)}.chk input{width:20px;height:20px;accent-color:var(--acc);flex:none}
#pj,#pj .box,#pj .row2>*{min-width:0;max-width:100%}#pj .tw{overflow-x:auto;max-width:100%}#pj .row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pbar{opacity:.55;height:4px;border-radius:99px;background:var(--line);overflow:hidden}.pbar i{display:block;height:100%;background:var(--acc);border-radius:99px}
.rc{display:flex;gap:6px;flex-wrap:wrap}.rc button{font:inherit;font-weight:600;border:1px solid var(--line);background:var(--card);color:var(--ink);padding:7px 12px;border-radius:99px;cursor:pointer;transition:all .18s ease}.rc button[aria-pressed="true"]{background:var(--acc);color:var(--bg);border-color:var(--acc)}
.dlg .stepin{animation:rise .3s ease both}
