/* XP Socio — hoja de estilos única.
   Sin frameworks, sin fuentes externas, sin imágenes.
   Nombres de clase cortos a propósito: cada byte se paga en datos móviles. */

:root{
--bg:#0e1116;--sf:#161b22;--sf2:#1c232d;--bd:#272e3a;
--tx:#e6edf3;--mu:#8b949e;--ac:#22c55e;--ac2:#16a34a;
--wa:#f59e0b;--da:#ef4444;--in:#3b82f6;
--r:10px;--w:34rem
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
background:var(--bg);color:var(--tx);
font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
padding-bottom:64px;overflow-wrap:break-word
}
a{color:var(--ac);text-decoration:none}
img,svg{max-width:100%}

/* ---------- estructura ---------- */
.w{max-width:var(--w);margin:0 auto;padding:0 12px}
header{
position:sticky;top:0;z-index:20;background:var(--bg);
border-bottom:1px solid var(--bd)
}
.hd{display:flex;align-items:center;gap:10px;height:48px}
.hd h1{font-size:17px;font-weight:700;flex:1;overflow:hidden;
text-overflow:ellipsis;white-space:nowrap}
.hd a{color:var(--tx)}
main{padding-top:14px;padding-bottom:20px}

/* ---------- barra inferior ---------- */
nav{
position:fixed;bottom:0;left:0;right:0;z-index:20;
background:var(--sf);border-top:1px solid var(--bd);
display:flex;padding-bottom:env(safe-area-inset-bottom)
}
nav a{
flex:1;text-align:center;padding:7px 2px 8px;color:var(--mu);
font-size:10px;line-height:1.2;letter-spacing:.02em
}
nav a i{display:block;font-size:19px;font-style:normal;line-height:1.35}
nav a.on{color:var(--ac)}

/* ---------- tarjetas ---------- */
.c{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r);
padding:13px;margin-bottom:11px}
.c.p0{padding:0;overflow:hidden}
.ct{font-size:12px;font-weight:700;text-transform:uppercase;
letter-spacing:.06em;color:var(--mu);margin-bottom:9px;
display:flex;align-items:center;gap:6px}
.ct a{margin-left:auto;font-size:11px;text-transform:none;letter-spacing:0}

/* ---------- utilidades ---------- */
.r{display:flex;align-items:center;gap:9px}
.r.tp{align-items:flex-start}
.sp{margin-left:auto}
.g{display:grid;gap:9px}
.g2{grid-template-columns:1fr 1fr}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.m{color:var(--mu)}
.s{font-size:13px}
.xs{font-size:11.5px}
.bo{font-weight:700}
.ce{text-align:center}
.mb{margin-bottom:11px}
.mt{margin-top:11px}
.hide{display:none}
hr{border:0;border-top:1px solid var(--bd);margin:11px 0}

/* ---------- botones ---------- */
.b{
display:inline-block;background:var(--sf2);color:var(--tx);
border:1px solid var(--bd);border-radius:8px;padding:9px 14px;
font:inherit;font-size:14px;cursor:pointer;text-align:center;
-webkit-tap-highlight-color:transparent
}
.b:active{transform:scale(.98)}
.bp{background:var(--ac);border-color:var(--ac);color:#06210f;font-weight:700}
.bd{background:transparent;border-color:var(--da);color:var(--da)}
.bw{display:block;width:100%}
.bs{padding:5px 10px;font-size:12.5px;border-radius:7px}
.b[disabled]{opacity:.45}

/* ---------- formularios ---------- */
label{display:block;font-size:12.5px;color:var(--mu);margin:0 0 4px}
input,select,textarea{
width:100%;background:var(--bg);color:var(--tx);
border:1px solid var(--bd);border-radius:8px;padding:10px;
font:inherit;font-size:16px /* 16px evita el zoom automático en iOS */
}
textarea{resize:vertical;min-height:78px;line-height:1.45}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--ac)}
.f{margin-bottom:11px}
.er{color:var(--da);font-size:12.5px;margin-top:4px}

/* ---------- fichas / listas ---------- */
.li{display:flex;align-items:center;gap:10px;padding:10px 13px;
border-bottom:1px solid var(--bd)}
.li:last-child{border-bottom:0}
.li.dn .tt{color:var(--mu);text-decoration:line-through}
.tt{flex:1;font-size:14.5px;line-height:1.35}

/* casilla de marcado (es un <button>, no un checkbox: funciona sin JS) */
.k{
width:26px;height:26px;flex:none;border-radius:7px;
border:2px solid var(--bd);background:transparent;cursor:pointer;
color:transparent;font-size:15px;font-weight:700;line-height:1;padding:0
}
.k.on{background:var(--ac);border-color:var(--ac);color:#06210f}

/* ---------- indicadores ---------- */
.pb{height:6px;background:var(--sf2);border-radius:3px;overflow:hidden}
.pb i{display:block;height:100%;background:var(--ac);border-radius:3px}
.chip{
display:inline-block;padding:2px 7px;border-radius:20px;font-size:11px;
background:var(--sf2);color:var(--mu);border:1px solid var(--bd);
white-space:nowrap
}
.av{
width:32px;height:32px;flex:none;border-radius:50%;display:grid;
place-items:center;font-size:12px;font-weight:700;color:#fff
}
.av.lg{width:52px;height:52px;font-size:19px}
.dot{width:7px;height:7px;border-radius:50%;flex:none}

/* estadística compacta */
.st{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r);
padding:9px 6px;text-align:center}
.st b{display:block;font-size:19px;line-height:1.25}
.st span{font-size:10.5px;color:var(--mu);text-transform:uppercase;
letter-spacing:.04em}

/* ---------- avisos ---------- */
.al{border-radius:8px;padding:9px 12px;font-size:13.5px;margin-bottom:11px;
border:1px solid}
.al.ok{background:#0d2818;border-color:#1b5e34;color:#8ee5ab}
.al.no{background:#2b1113;border-color:#6b2226;color:#f0a3a6}
.al.wa{background:#2a2011;border-color:#6b4d16;color:#f3ce89}
.al.in{background:#111e2e;border-color:#1e4470;color:#9dc7f5}

/* aviso de sin conexión, lo enciende a.js */
#off{
position:fixed;bottom:64px;left:0;right:0;z-index:30;display:none;
background:var(--wa);color:#241a04;font-size:12.5px;font-weight:600;
text-align:center;padding:5px
}
body.of #off{display:block}

/* toast de XP ganado */
#xp{
position:fixed;top:56px;left:50%;transform:translateX(-50%);z-index:40;
background:var(--ac);color:#06210f;font-weight:700;font-size:13.5px;
padding:7px 15px;border-radius:20px;box-shadow:0 3px 14px rgba(0,0,0,.5);
animation:xp 2.6s forwards}
@keyframes xp{
0%{opacity:0;transform:translate(-50%,-12px)}
10%,80%{opacity:1;transform:translate(-50%,0)}
100%{opacity:0;transform:translate(-50%,-12px)}}

/* ---------- prosa de artículos y lecciones ---------- */
.px{font-size:15.5px;line-height:1.65}
.px p{margin-bottom:13px}
.px h2{font-size:15px;margin:19px 0 8px;color:var(--ac)}
.px ul{margin:0 0 13px 17px}
.px li{margin-bottom:5px}
.px blockquote{
border-left:3px solid var(--ac);padding-left:11px;margin:15px 0;
color:var(--mu);font-style:italic}

/* ---------- chat y feed ---------- */
.ms{padding:7px 0;border-bottom:1px solid var(--bd)}
.ms:last-child{border-bottom:0}
.ms .hh{display:flex;gap:6px;align-items:baseline;font-size:12px;
color:var(--mu);margin-bottom:2px}
.ms .hh b{color:var(--tx);font-size:13px}
.ms p{font-size:14.5px;line-height:1.45;white-space:pre-wrap}

/* ---------- tablas compactas (ranking) ---------- */
table{width:100%;border-collapse:collapse;font-size:14px}
td,th{padding:8px 6px;border-bottom:1px solid var(--bd);text-align:left}
th{font-size:11px;color:var(--mu);text-transform:uppercase;letter-spacing:.05em}
tr:last-child td{border-bottom:0}
td.n{text-align:right;font-variant-numeric:tabular-nums}

/* ---------- modo ahorro extremo ----------
   Quita todo lo decorativo. La app queda en texto puro y el navegador
   pinta menos, que en teléfonos viejos también se nota. */
body.sv .av,body.sv .rad,body.sv nav a i{display:none}
body.sv .c{border-radius:0;border-left:0;border-right:0;padding:11px 0;
background:transparent}
body.sv nav a{padding:12px 2px;font-size:12px}
body.sv *{animation:none!important;transition:none!important}
