/* Gusanía — estilo de las páginas de cuenta, administración y reglas */
:root{
  --ink:#0a1619; --ink-2:#0f2125; --ink-3:#14292e; --line:#27464d;
  --text:#ecf6f3; --muted:#93b3ad; --accent:#ffcf3f; --danger:#ff5a6e; --ok:#86e36f;
  --display:"Bungee","Arial Black",Impact,system-ui,sans-serif;
  --body:"Nunito",ui-rounded,system-ui,-apple-system,"Segoe UI",sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{background:var(--ink)}
body{margin:0;background:var(--ink);color:var(--text);font-family:var(--body);font-size:16px;line-height:1.5;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:0 48px}
a{color:var(--accent)}
.wrap{max-width:860px;margin:0 auto;display:grid;gap:20px}
header.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:18px;flex-wrap:wrap}
.logo{font-family:var(--display);font-size:26px;color:var(--accent);text-decoration:none;text-shadow:0 3px 0 #b9851a}
nav.links{display:flex;gap:16px;font-weight:800;font-size:15px;flex-wrap:wrap}
nav.links a{text-decoration:none}
h1,h2,h3{margin:0;line-height:1.2;text-wrap:balance}
h1{font-family:var(--display);font-weight:400;font-size:clamp(26px,6vw,36px)}
h2{font-size:20px;font-weight:900}
.panel{background:var(--ink-2);border:1px solid var(--line);border-radius:16px;padding:20px;display:grid;gap:14px;min-width:0}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:20px}
.muted{color:var(--muted)}
.small{font-size:14px}
.lbl{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
form{display:grid;gap:12px}
.field{display:grid;gap:4px}
.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:12px}
input,select{font:inherit;font-size:16px;font-weight:700;color:var(--text);background:var(--ink);border:2px solid var(--line);border-radius:10px;padding:10px 12px;width:100%;min-width:0}
input:focus,select:focus{outline:none;border-color:var(--accent)}
input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);flex:none;margin-top:2px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;font-weight:700;color:var(--muted)}
button{font:inherit;cursor:pointer}
.btn{font-weight:900;font-size:16px;color:var(--ink);background:var(--accent);border:0;border-radius:12px;padding:12px 18px;box-shadow:0 4px 0 #b9851a}
.btn:active{transform:translateY(2px);box-shadow:0 2px 0 #b9851a}
.btn:disabled{opacity:.5;cursor:wait}
.btn.ok{background:var(--ok);box-shadow:0 4px 0 #4f9a3f}
.btn.ghost{background:transparent;color:var(--text);border:2px solid var(--line);box-shadow:none}
.btn.danger{background:transparent;color:var(--danger);border:2px solid var(--danger);box-shadow:none}
.btn.sm{font-size:14px;padding:6px 12px}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.tabs{display:flex;gap:8px}
.tabs button{flex:1;font-weight:900;background:var(--ink);color:var(--muted);border:2px solid var(--line);border-radius:10px;padding:10px}
.tabs button[aria-selected=true]{color:var(--ink);background:var(--accent);border-color:var(--accent)}
.msg{border-radius:10px;padding:10px 12px;font-weight:700;font-size:15px}
.msg.err{background:rgba(255,90,110,.12);border:1px solid var(--danger);color:#ffc2cb}
.msg.ok{background:rgba(134,227,111,.12);border:1px solid var(--ok);color:#d3f7c9}
.msg.info{background:rgba(255,207,63,.1);border:1px solid #8a7330;color:#ffe9a8}
.saldo{font-family:var(--display);font-size:clamp(32px,8vw,48px);color:var(--accent);line-height:1;font-variant-numeric:tabular-nums}
.datos{display:grid;gap:6px;margin:0}
.datos div{display:flex;justify-content:space-between;gap:10px;align-items:center;background:var(--ink);border:1px solid var(--line);border-radius:10px;padding:8px 12px;min-width:0}
.datos dt{color:var(--muted);font-size:14px;font-weight:700}
.datos dd{margin:0;font-weight:900;display:flex;gap:8px;align-items:center;min-width:0;overflow-wrap:anywhere;text-align:right}
.copy{background:none;border:1px solid var(--line);color:var(--muted);border-radius:8px;font-size:12px;font-weight:800;padding:2px 8px}
.tabla{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}
th{text-align:left;color:var(--muted);font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:8px;border-bottom:1px solid var(--ink-3);vertical-align:middle}
td.num{text-align:right;white-space:nowrap}
td.pos{color:var(--ok)} td.neg{color:var(--danger)}
.chip{display:inline-block;font-size:12px;font-weight:900;border-radius:99px;padding:2px 10px;white-space:nowrap}
.chip.pendiente{background:rgba(255,207,63,.15);color:var(--accent)}
.chip.aprobado,.chip.pagado,.chip.si{background:rgba(134,227,111,.15);color:var(--ok)}
.chip.rechazado,.chip.no{background:rgba(255,90,110,.15);color:var(--danger)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));gap:12px}
.kpi{background:var(--ink);border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;gap:2px}
.kpi b{font-size:22px;font-weight:900;font-variant-numeric:tabular-nums}
.acciones{display:flex;gap:6px;flex-wrap:wrap}
.reglas li{margin-bottom:8px}
