:root{
  --bg:#f2f4f9;--card:#ffffff;--ink:#0f172a;--mut:#64748b;--line:#e5e9f2;--field:#f4f6fb;
  --p1:#2d7bff;--p2:#5b2dff;--green:#16a34a;--warn:#e08a00;--bad:#e5484d;
  --shadow:0 6px 24px rgba(15,23,42,.08);--bar:rgba(255,255,255,.82)
}
@media (prefers-color-scheme:dark){:root{--bg:#0b1220;--card:#131c2e;--ink:#eef2fa;--mut:#93a1b8;--line:#22304a;--field:#0f1828;--shadow:0 6px 24px rgba(0,0,0,.35);--bar:rgba(19,28,46,.82)}}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font:16px/1.45 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,sans-serif;padding-bottom:calc(92px + env(safe-area-inset-bottom))}
#app{max-width:720px;margin:0 auto}
svg.i{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* ---- login ---- */
.login{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:24px;background:linear-gradient(155deg,var(--p1),var(--p2));max-width:none}
.login .box{max-width:420px;width:100%;margin:0 auto}
.login .logo{width:132px;height:132px;display:block;margin:0 auto 14px;filter:drop-shadow(0 10px 24px rgba(0,0,0,.35))}
.login h1{color:#fff;text-align:center;font-size:30px;margin:0;letter-spacing:-.5px}
.login .sub{color:rgba(255,255,255,.85);text-align:center;margin:4px 0 22px}
.login .glass{background:rgba(255,255,255,.16);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.28);border-radius:24px;padding:18px}
.login label{color:rgba(255,255,255,.9)}
.login input{background:rgba(255,255,255,.95);color:#0f172a;border-color:transparent}
.login button.main{background:#fff;color:#2d4fff;width:100%;margin-top:8px;font-size:17px}
.login .err{color:#fff;background:rgba(229,72,77,.85);border-radius:12px;padding:8px 12px;margin-top:10px;font-size:14px}

/* ---- header ---- */
.hero{margin:0 0 14px;padding:calc(14px + env(safe-area-inset-top)) 16px 18px;background:linear-gradient(155deg,var(--p1),var(--p2));color:#fff;border-radius:0 0 28px 28px;box-shadow:var(--shadow)}
.hero .row1{display:flex;align-items:center;gap:12px}
.hero .lg{width:46px;height:46px;border-radius:50%;background:#fff;display:grid;place-items:center;overflow:hidden;flex:none;font-weight:800;color:var(--p2);font-size:20px}
.hero .lg img{width:100%;height:100%;object-fit:contain}
.hero .nm{flex:1;min-width:0}.hero .nm b{display:block;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero .nm small{opacity:.85}
.hero .out{background:rgba(255,255,255,.2);border:0;color:#fff;width:40px;height:40px;border-radius:50%;padding:0;display:grid;place-items:center}
.hero h1{margin:14px 0 0;font-size:26px;letter-spacing:-.4px}
.wrap{padding:0 16px}

/* ---- cards & forms ---- */
.card{background:var(--card);border-radius:20px;padding:16px;margin-bottom:14px;box-shadow:var(--shadow)}
label{display:block;font-size:13px;font-weight:600;color:var(--mut);margin:12px 0 5px}
label:first-child{margin-top:0}
input,select{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--field);color:var(--ink);font:inherit;appearance:none;-webkit-appearance:none}
input:focus,select:focus{outline:2px solid var(--p1);outline-offset:1px}
button{font:inherit;font-weight:700;border:0;border-radius:14px;padding:13px 18px;background:linear-gradient(135deg,var(--p1),var(--p2));color:#fff;cursor:pointer}
button:active{transform:scale(.98)}button:disabled{opacity:.5}
button.sec{background:var(--field);color:var(--ink);border:1px solid var(--line)}button.full{width:100%}
.row{display:flex;gap:10px}.row>*{flex:1;min-width:0}
.search{position:relative}.search svg{position:absolute;left:14px;top:13px;color:var(--mut)}.search input{padding-left:44px}
.chips{display:flex;gap:8px;overflow-x:auto;padding:10px 0 2px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}
.chip{flex:none;background:var(--field);color:var(--ink);border:1px solid var(--line);padding:7px 14px;border-radius:99px;font-size:14px;font-weight:600}
.chip.on{background:linear-gradient(135deg,var(--p1),var(--p2));color:#fff;border-color:transparent}

/* ---- tab bar ---- */
.nav{position:fixed;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));max-width:696px;margin:0 auto;display:flex;background:var(--bar);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--line);border-radius:26px;padding:6px;box-shadow:0 10px 30px rgba(0,0,0,.18);z-index:5}
.nav button{flex:1;background:none;color:var(--mut);padding:8px 2px;font-size:11px;font-weight:600;border-radius:20px;display:flex;flex-direction:column;align-items:center;gap:3px}
.nav button.on{color:#fff;background:linear-gradient(135deg,var(--p1),var(--p2))}

/* ---- list ---- */
.item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.item:last-child{border:0;padding-bottom:0}
.av{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--p1),var(--p2));color:#fff;display:grid;place-items:center;font-weight:800;flex:none;overflow:hidden}
.av img{width:100%;height:100%;object-fit:cover}
.item .body{flex:1;min-width:0}.item .t{display:flex;justify-content:space-between;gap:8px;font-weight:700}
.item .t span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.item .s{color:var(--mut);font-size:14px;margin-top:2px}
.badge{display:inline-block;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:800;color:#fff;flex:none;align-self:flex-start}
.b-ok{background:var(--green)}.b-warn{background:var(--warn)}.b-bad{background:var(--bad)}.b-off{background:#64748b}
.mini{margin-top:8px;padding:8px 14px;font-size:14px}
.bar{height:6px;border-radius:9px;background:var(--line);margin-top:8px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--p1),var(--p2))}

/* ---- scanner ---- */
.cam{position:relative;border-radius:24px;overflow:hidden;background:#000;aspect-ratio:1/1;box-shadow:var(--shadow)}
.cam video{width:100%;height:100%;object-fit:cover;display:block}
.cam .frame{position:absolute;inset:18%;pointer-events:none}
.cam .frame i{position:absolute;width:34px;height:34px;border:4px solid #fff;opacity:.95}
.cam .frame i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0;border-radius:12px 0 0 0}
.cam .frame i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0;border-radius:0 12px 0 0}
.cam .frame i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0;border-radius:0 0 0 12px}
.cam .frame i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0;border-radius:0 0 12px 0}
.cam .hint{position:absolute;left:0;right:0;bottom:12px;text-align:center;color:#fff;font-size:14px;text-shadow:0 1px 6px #000}
.res{border-radius:22px;padding:16px;color:#fff;margin-top:14px;display:flex;gap:14px;align-items:center;box-shadow:var(--shadow)}
.res.ok{background:linear-gradient(135deg,#16a34a,#0f8a3c)}.res.bad{background:linear-gradient(135deg,#e5484d,#c93338)}.res.warn{background:linear-gradient(135deg,#f0a000,#d97706)}.res.load{background:linear-gradient(135deg,var(--p1),var(--p2))}
.res .ph{width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.25);display:grid;place-items:center;overflow:hidden;flex:none}.res .ph img{width:100%;height:100%;object-fit:cover}.res .ph svg{width:30px;height:30px}
.res h2{margin:0;font-size:19px}.res p{margin:2px 0;opacity:.95}.res .nm2{font-size:21px;font-weight:800}

/* ---- stats ---- */
.stat{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.stat>div{background:var(--field);border-radius:16px;padding:12px 6px;text-align:center;font-size:13px;color:var(--mut)}.stat b{display:block;font-size:21px;color:var(--ink);letter-spacing:-.4px}
.muted{color:var(--mut)}.center{text-align:center}
#toast{position:fixed;left:50%;transform:translateX(-50%);bottom:110px;background:#0f172a;color:#fff;padding:10px 16px;border-radius:14px;opacity:0;pointer-events:none;transition:.2s;max-width:90%;z-index:9}
#toast.show{opacity:1}

/* ---- etapa 1 ---- */
h2{font-size:17px;margin:0 0 10px;letter-spacing:-.2px}
.sh{font-size:14px;color:var(--mut);margin:18px 4px 8px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}
.card.nopad{padding:4px 14px}.pad{padding:12px 0;margin:0}
.seg{display:flex;background:var(--field);border:1px solid var(--line);border-radius:16px;padding:4px;margin-bottom:14px;gap:2px}
.seg button{flex:1;background:none;color:var(--mut);padding:9px 4px;font-size:14px;border-radius:12px}
.seg button.on{background:var(--card);color:var(--ink);box-shadow:0 2px 8px rgba(15,23,42,.12)}
.seg.small{margin:0 0 12px;width:max-content;max-width:100%}.seg.small button{padding:7px 16px}
.schoolhero{display:flex;gap:14px;align-items:center;background:linear-gradient(135deg,#2d7bff,#5b2dff);color:#fff;border-radius:22px;padding:16px;margin-bottom:14px;box-shadow:var(--shadow)}
.schoolhero .lgx{width:62px;height:62px;border-radius:18px;background:rgba(255,255,255,.2);display:grid;place-items:center;font-weight:800;font-size:22px;overflow:hidden;flex:none}
.schoolhero .lgx img{width:100%;height:100%;object-fit:contain}
.schoolhero b{font-size:19px;display:block}.schoolhero small{opacity:.9}
.revenue{background:var(--card);border-radius:22px;padding:16px;box-shadow:var(--shadow);cursor:pointer}
.rtop{display:flex;align-items:center;gap:8px;color:var(--mut);font-weight:700;font-size:14px}.rtop svg{width:18px;height:18px}.chev{margin-left:auto;font-size:20px}
.revenue .big{font-size:34px;font-weight:800;letter-spacing:-1px;margin:4px 0 0}.rsub{color:var(--mut);font-size:14px;margin-bottom:10px}
.mbar{display:flex;height:10px;border-radius:9px;overflow:hidden;gap:2px;margin-bottom:10px}.mbar i{display:block;height:100%}
.mrow{display:flex;align-items:center;gap:8px;font-size:14px;padding:3px 0}.mrow i{width:10px;height:10px;border-radius:50%}.mrow b{margin-left:auto}
.tiles3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.tile{background:var(--card);color:var(--ink);border-radius:20px;padding:14px 8px;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:13px;font-weight:600;box-shadow:var(--shadow)}
.tile span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 18%,transparent);color:var(--c)}
.tile b{font-size:24px}
.stu{width:100%;display:flex;align-items:center;gap:12px;background:var(--card);color:var(--ink);text-align:left;margin-top:10px;border-radius:20px;padding:14px;box-shadow:var(--shadow)}
.stu .sic{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,var(--p1),var(--p2));color:#fff;display:grid;place-items:center}
.stu .body{flex:1}.stu b{display:block}.stu small{color:var(--mut);font-weight:500}.stu .n{font-size:24px;font-weight:800}
.act{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.act:last-child{border:0}
.act .ai{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;flex:none}
.act .body{flex:1;min-width:0}.act .t{display:flex;justify-content:space-between;gap:8px;font-weight:700}
.act .s{color:var(--mut);font-size:13px}.cap{font-size:11px;white-space:nowrap}
.card.plan{display:flex;gap:12px;align-items:stretch}.card.plan .pc{width:10px;border-radius:8px;background:var(--pc);flex:none}
.card.plan .body{flex:1}.card.plan .t{display:flex;justify-content:space-between;gap:8px}.card.plan .s{color:var(--mut);font-size:14px;margin-top:3px}
.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.kpis.three{grid-template-columns:repeat(3,1fr)}
.kpis>div{background:var(--field);border-radius:16px;padding:12px 8px;text-align:center;font-size:12px;color:var(--mut)}.kpis b{display:block;font-size:20px;color:var(--ink);letter-spacing:-.4px}
.big2{font-size:42px;font-weight:800;letter-spacing:-1px}
.donut{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.donut svg{flex:none}
.leg{flex:1;min-width:150px}.leg>div{display:flex;align-items:center;gap:8px;font-size:14px;padding:3px 0}.leg i{width:10px;height:10px;border-radius:50%;flex:none}.leg b{margin-left:auto}
.bars .b{display:flex;align-items:center;gap:8px;margin:7px 0;font-size:13px}.bl{width:84px;flex:none;color:var(--mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bt{flex:1;height:14px;background:var(--field);border-radius:9px;overflow:hidden}.bt i{display:block;height:100%;background:linear-gradient(90deg,var(--p1),var(--p2));border-radius:9px}
.bars .b b{width:46px;text-align:right}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:20;display:flex;align-items:flex-end;justify-content:center}
.sheet{background:var(--bg);width:100%;max-width:720px;max-height:92vh;overflow:auto;border-radius:26px 26px 0 0;padding:16px 16px calc(24px + env(safe-area-inset-bottom))}
.sh-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.sh-top .mini{margin:0}
.who{display:flex;gap:14px;align-items:center}.who h2{margin:0}.av.big{width:72px;height:72px;font-size:24px}
body.lock{overflow:hidden}
.seg button{white-space:nowrap}
textarea{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--field);color:var(--ink);font:inherit;resize:vertical}
/* En Safari (no instalada) la barra flotante tapa el encabezado y el aviso de Netlify tapa la barra de pestañas */
@media (display-mode: browser){.hero{padding-top:calc(62px + env(safe-area-inset-top))}.nav{bottom:calc(66px + env(safe-area-inset-bottom))}body{padding-bottom:calc(150px + env(safe-area-inset-bottom))}}
.clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.wpass{border-radius:22px;padding:18px;margin-bottom:14px;box-shadow:var(--shadow);min-height:190px;position:relative}
.wpass .wh{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:12px}
.wpass .wnm{font-size:26px;font-weight:800;margin-bottom:12px;letter-spacing:-.4px}
.wpass .ws{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.wpass .ws i{width:28px;height:28px;border-radius:50%;display:block}
.wpass .wqr{width:70px;height:70px;background:#fff;border-radius:10px;margin:12px auto 0;background-image:linear-gradient(45deg,#000 25%,transparent 25%,transparent 75%,#000 75%),linear-gradient(45deg,#000 25%,#fff 25%,#fff 75%,#000 75%);background-size:14px 14px;background-position:0 0,7px 7px}
.login .or{display:flex;align-items:center;gap:10px;color:rgba(255,255,255,.8);margin:14px 0 4px;font-size:13px}.login .or:before,.login .or:after{content:"";flex:1;height:1px;background:rgba(255,255,255,.35)}
.login button.soc{background:rgba(255,255,255,.95);color:#0f172a;width:100%;margin-top:10px;display:flex;gap:10px;align-items:center;justify-content:center;font-weight:600}
.login .links{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:18px}.login .links a{color:#fff;font-weight:600;text-decoration:none}
.login .okm{color:#fff;background:rgba(22,163,74,.85);border-radius:12px;padding:8px 12px;margin-top:10px;font-size:14px}
.lcard{background:linear-gradient(135deg,#6D28D9,#06B6D4);color:#fff;border-radius:22px;padding:16px;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.14)}
.lcard .lh{display:flex;align-items:center;gap:10px;font-weight:600;opacity:.92}.lcard .lh img{width:28px;height:28px;border-radius:8px;object-fit:contain}
.lcard .ln{font-size:22px;font-weight:800;margin:12px 0 2px}.lcard .lm{font-size:17px;opacity:.9;margin-bottom:12px}
.lcard .lp{display:flex;gap:10px;margin-bottom:10px}.lcard .lp>div{flex:1;background:rgba(255,255,255,.12);border-radius:14px;padding:8px 10px;font-weight:600;font-size:14px}
.lcard .lp small{display:block;font-size:10px;opacity:.75}.lcard .lq{text-align:center;margin-top:6px}.lcard .lq svg{background:#fff;padding:10px;border-radius:16px;box-sizing:content-box}
a.btnlink{display:block;text-align:center;background:linear-gradient(135deg,var(--p1),var(--p2));color:#fff;padding:13px;border-radius:14px;font-weight:700;text-decoration:none;margin-bottom:10px}
.wpass .ws i{display:grid!important;place-items:center;font-style:normal;font-size:15px;color:#0f172a}

/* ===== Look iOS (mismo estilo que la app) ===== */
:root{--bg:#f2f2f7;--card:#fff;--ink:#000;--mut:#8e8e93;--line:rgba(60,60,67,.16);--field:#f2f2f7;--p1:#2d7bff;--p2:#2d7bff;--shadow:none;--bar:rgba(249,249,249,.86);--acc:#2d7bff}
:root[data-theme="dark"]{--bg:#000;--card:#1c1c1e;--ink:#fff;--mut:#98989f;--line:rgba(84,84,88,.55);--field:#2c2c2e;--bar:rgba(29,29,31,.86)}
:root[data-theme="light"]{--bg:#f2f2f7;--card:#fff;--ink:#000;--mut:#8e8e93;--line:rgba(60,60,67,.16);--field:#f2f2f7;--bar:rgba(249,249,249,.86)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#000;--card:#1c1c1e;--ink:#fff;--mut:#98989f;--line:rgba(84,84,88,.55);--field:#2c2c2e;--bar:rgba(29,29,31,.86);--shadow:none}}
body{background:var(--bg);padding-bottom:calc(92px + env(safe-area-inset-bottom))}
.card{border-radius:22px;box-shadow:none;background:var(--card)}
input,select,textarea{border-radius:12px;background:var(--field);border:0}
button{border-radius:12px;background:var(--acc);font-weight:600}
button.sec{background:color-mix(in srgb,var(--acc) 12%,transparent);color:var(--acc);border:0}
.chip{background:var(--card);border:0;color:var(--ink);font-weight:600}.chip.on{background:var(--acc);color:#fff}
.seg{background:color-mix(in srgb,var(--mut) 18%,transparent);border:0;border-radius:10px;padding:2px}.seg button{border-radius:8px;color:var(--ink);background:none;font-weight:500}.seg button.on{background:var(--card);box-shadow:0 1px 3px rgba(0,0,0,.15);font-weight:600}
.bar i,.bt i{background:var(--acc)}
.av{background:var(--acc)}
.item{border-bottom:1px solid var(--line)}
/* isla flotante superior */
.island{position:sticky;top:0;z-index:6;margin:0;padding:calc(8px + env(safe-area-inset-top)) 14px 6px}
.island .in{display:flex;align-items:center;gap:10px;background:var(--bar);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.14);border-radius:20px;padding:10px 12px 10px 16px;box-shadow:0 5px 10px rgba(0,0,0,.08)}
.island .tt{flex:1;min-width:0}.island .tt b{display:block;font-size:24px;font-weight:700;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.3px}.island .tt small{display:block;color:var(--mut);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.island .sp{display:flex;align-items:center;gap:7px;background:var(--card);color:var(--ink);border-radius:99px;padding:8px 12px;font-size:12px;font-weight:600;border:0}.island .sp i{width:8px;height:8px;border-radius:50%;background:#34c759;display:block}
.island .ib{position:relative;width:40px;height:40px;border-radius:50%;padding:0;background:none;color:var(--ink);display:grid;place-items:center;overflow:visible}
.island .ib svg{width:20px;height:20px;fill:currentColor;stroke:none}
.island .ib .bd{position:absolute;top:0;right:-4px;background:#ff3b30;color:#fff;font-size:11px;font-weight:700;border-radius:99px;padding:2px 6px;line-height:1.1}
.island .ib img{width:40px;height:40px;border-radius:50%;object-fit:cover}
.island .ib.pf svg{width:30px;height:30px;stroke:none}
.wrap{padding:8px 16px 0}
/* barra de pestañas estilo iOS */
.nav{left:0;right:0;bottom:0;max-width:none;width:100%;margin:0;border-radius:0;border:0;border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom));box-shadow:none;background:var(--bar)}
.nav button{background:none!important;color:var(--mut);border-radius:0;font-size:10px;font-weight:500;padding:4px 2px;gap:2px;max-width:140px;margin:0 auto}
.nav button.on{color:var(--acc);background:none!important}
.nav button svg{width:26px;height:26px;stroke-width:1.8}
@media (display-mode: browser){.nav{bottom:56px;padding-bottom:6px}body{padding-bottom:170px}.island{padding-top:calc(60px + env(safe-area-inset-top))}}
/* Inicio */
.schoolhero{display:block;text-align:center;position:relative;border-radius:28px;padding:22px 18px;color:#fff;box-shadow:0 10px 18px rgba(0,0,0,.18)}
.schoolhero .lgx{width:84px;height:84px;border-radius:50%;margin:0 auto 10px;background:rgba(255,255,255,.22);box-shadow:0 0 30px rgba(255,255,255,.3)}
.schoolhero b{font-size:26px;font-weight:700}.schoolhero small{display:block;opacity:.9;font-size:15px;font-weight:600;margin-top:4px}
.schoolhero .pen{position:absolute;top:12px;right:12px;width:38px;height:38px;border-radius:50%;padding:0;background:rgba(255,255,255,.25);color:#fff;display:grid;place-items:center}
.schoolhero .pen svg{width:16px;height:16px}
.revenue{background:radial-gradient(circle at 90% 0,color-mix(in srgb,var(--acc) 45%,transparent),transparent 55%),linear-gradient(135deg,#12141f,#1f2130);color:#fff;border-radius:26px;padding:20px;box-shadow:0 10px 18px color-mix(in srgb,var(--acc) 25%,transparent);margin-top:18px}
.revenue .rtop{color:rgba(255,255,255,.9)}.revenue .big{font-size:40px;font-weight:700;color:#fff}.revenue .rsub{color:rgba(255,255,255,.75)}.revenue .mrow{color:rgba(255,255,255,.85);font-size:12px}.revenue .mrow b{color:#fff}
.tile{border-radius:20px;box-shadow:none;align-items:flex-start;padding:14px}.tile span{border-radius:50%}
.stu{border-radius:22px;box-shadow:none}.stu .sic{background:color-mix(in srgb,var(--acc) 16%,transparent);color:var(--acc);border-radius:50%}
.sh{text-transform:none;letter-spacing:0;color:var(--ink);font-size:17px;font-weight:700;margin:20px 4px 10px}
.hl{display:flex;justify-content:space-between;align-items:baseline;margin:20px 4px 10px}.hl h3{margin:0;font-size:17px}.hl a{color:var(--acc);font-weight:600;font-size:13px;text-decoration:none}
/* Tarjetas (planes) */
.pfilter{display:flex;gap:10px;margin-bottom:12px}.pfilter .search{flex:1}
.pfilter .act{border-radius:99px;padding:10px 14px;font-size:15px;background:color-mix(in srgb,var(--acc) 12%,transparent);color:var(--acc)}.pfilter .act.on{background:var(--acc);color:#fff}
.pcmd{display:flex;gap:10px;margin-bottom:12px}.pcmd button{flex:1;padding:11px;font-size:15px}
.mstrip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
.mpill{background:var(--card);border-radius:14px;padding:12px}.mpill svg{width:18px;height:18px;color:var(--mut)}.mpill b{display:block;font-size:20px;font-weight:700}.mpill span{font-size:12px;color:var(--mut)}
.pcard{display:flex;align-items:center;gap:14px;border-radius:20px;padding:14px;margin-bottom:12px;color:#fff;box-shadow:0 4px 8px rgba(0,0,0,.08);cursor:pointer;position:relative;background:var(--pc)}
.pcard.off{opacity:.65}
.pcard .pi{width:56px;height:56px;border-radius:14px;background:rgba(255,255,255,.25);display:grid;place-items:center;flex:none;overflow:hidden}.pcard .pi img{width:100%;height:100%;object-fit:contain;padding:4px}
.pcard .pi svg{width:24px;height:24px;color:rgba(255,255,255,.9)}
.pcard .pb{flex:1;min-width:0}.pcard .pb b{display:block;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pcard .pb .a{font-size:15px;opacity:.9}.pcard .pb .c{font-size:12px;font-weight:500;opacity:.85;display:flex;align-items:center;gap:6px;margin-top:2px}.pcard .pb .c i{width:7px;height:7px;border-radius:50%;background:#fff;display:inline-block}.pcard.off .pb .c i{opacity:.4}
.pcard .more{width:38px;height:38px;border-radius:50%;padding:0;background:rgba(255,255,255,.2);color:#fff;display:grid;place-items:center;font-size:20px;line-height:1}
.menu{position:absolute;right:14px;top:56px;background:var(--card);color:var(--ink);border-radius:14px;box-shadow:0 8px 28px rgba(0,0,0,.25);z-index:9;min-width:170px;overflow:hidden}.menu button{display:block;width:100%;text-align:left;background:none;color:var(--ink);border-radius:0;padding:13px 16px;font-weight:500;border-bottom:1px solid var(--line)}.menu button:last-child{border:0}.menu button.d{color:#ff3b30}
.act2{display:flex;gap:12px;align-items:center}
.item .t,.item .t span{color:var(--ink)}.item .s{color:var(--mut)}
#list.muted,#nl.muted{color:var(--ink)}

/* ===== Vista de computadora (pantallas anchas) ===== */
@media (min-width:1024px){
  body{padding-bottom:0!important}
  #app{max-width:none;margin:0}
  #app:has(.nav){padding-left:230px}
  .island{padding:18px 32px 8px!important}
  .island .tt b{font-size:30px}
  .wrap{max-width:1280px;margin:0 auto;padding:12px 32px 48px}
  .nav{position:fixed!important;left:0!important;top:0;bottom:0!important;right:auto!important;width:230px!important;max-width:none!important;flex-direction:column;justify-content:flex-start;gap:4px;padding:84px 14px 14px!important;border-top:0!important;border-right:1px solid var(--line);z-index:7}
  .nav::before{content:"Ranitas Rollers";position:absolute;top:26px;left:22px;font-weight:700;font-size:18px;color:var(--ink)}
  .nav button{flex:none!important;flex-direction:row!important;justify-content:flex-start;gap:12px!important;width:100%;max-width:none!important;margin:0!important;padding:11px 14px!important;font-size:15px!important;font-weight:600!important;border-radius:12px!important}
  .nav button svg{width:22px!important;height:22px!important}
  .nav button:hover{background:var(--field)!important}
  .nav button.on{background:rgba(45,123,255,.12)!important;color:var(--acc)!important}
  #list,#pl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;align-content:start}
  #list>.muted,#pl>.card,#pl>.muted{grid-column:1/-1}
  .tiles3{gap:16px}
  .modal{align-items:center!important;padding:24px}
  .sheet{max-width:760px;border-radius:24px!important;max-height:90vh}
  #toast{bottom:32px}
}
@media (min-width:1500px){
  .wrap{max-width:1480px}
  #list,#pl{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:1024px){#af{max-width:820px;margin:0 auto}}
input[type=checkbox],input[type=radio]{appearance:auto;-webkit-appearance:auto;width:22px!important;height:22px;min-height:0!important;padding:0;accent-color:var(--acc);flex:none}
label.item .body{color:var(--ink);font-size:16px;font-weight:500}
#pv{position:sticky;top:-16px;z-index:3;background:var(--bg);padding:8px 0 2px;margin:0 -2px}
#pv .wpass{padding:12px 14px;margin-bottom:8px}
.seg{position:relative}
.fab{position:fixed;right:18px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:5}
@media (display-mode: browser){.fab{bottom:calc(140px + env(safe-area-inset-bottom))}}
@media (min-width:1024px){.fab,.fab{bottom:32px!important;right:36px}}
.mrow{text-align:left}.mrow b{text-align:left}
#dys .chip{background:var(--field);border:1px solid var(--line);color:var(--ink)}#dys .chip.on{background:var(--acc);color:#fff;border-color:transparent}
@media(max-width:430px){.island .tt b{font-size:20px}}
