/* ============================================================
   Barrilete · identidad visual
   Tema oscuro con el rojo del logo. Colores en variables.
   ============================================================ */

:root{
  --bg:#0d0d0d;
  --surface:#161616;
  --surface-2:#1d1d1d;
  --text:#ffffff;
  --muted:#9ca3af;
  --primary:#e0282e;        /* rojo del logo */
  --primary-text:#ffffff;
  --border:#2a2a2a;
  --danger:#e0282e;
  --ok:#22c55e;
  --radius:12px;
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{
  background:var(--bg);
  color:var(--text);
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  -webkit-font-smoothing:antialiased;
}
body{min-height:100vh;display:flex;flex-direction:column}

/* Barra superior con logo */
.topbar{
  position:sticky;top:0;z-index:10;
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 16px;background:var(--bg);border-bottom:1px solid var(--border);
}
.logo{display:flex;align-items:center;gap:10px}
.logo-img{height:34px !important;width:34px !important;object-fit:contain;display:block;flex:0 0 auto}
.login-logo{width:120px !important;height:120px !important;object-fit:contain;display:block;margin:0 auto 16px}
.logo-mark{
  width:36px;height:36px;border-radius:50%;border:2px solid #fff;
  display:flex;align-items:center;justify-content:center;position:relative;
  font-weight:800;font-size:17px;color:#fff;
}
.logo-mark::after{
  content:"";position:absolute;width:7px;height:7px;border-radius:50%;
  background:var(--primary);right:6px;top:7px;
}
.brand{font-weight:700;font-size:18px}
.logout{color:var(--muted);text-decoration:underline;font-size:14px}

/* Contenido */
.content{flex:1;padding:20px 16px;max-width:560px;width:100%;margin:0 auto}
h1{font-size:24px;margin-bottom:6px;font-weight:800}
.muted{color:var(--muted)}
.small{font-size:13px}

/* Tarjetas */
.card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius);padding:18px;margin-top:16px;
}
.card-label{color:var(--muted);font-size:13px;margin-bottom:4px}
.card-big{font-size:32px;font-weight:800;margin-bottom:6px}

/* Barra inferior */
.tabbar{
  position:sticky;bottom:0;z-index:10;
  display:flex;background:var(--bg);border-top:1px solid var(--border);
}
.tabbar a{
  flex:1;text-align:center;padding:13px 4px;
  font-size:13px;color:var(--muted);text-decoration:none;
}
.tabbar a.on{color:var(--text);font-weight:600}

/* Login */
.login-box{
  max-width:360px;margin:8vh auto 0;
  background:var(--surface);border:1px solid var(--border);
  border-radius:16px;padding:30px 22px;text-align:center;
}
.login-box h1{font-size:28px;margin-bottom:4px}
form{display:flex;flex-direction:column;gap:12px;margin-top:18px}
input,select{
  padding:12px 14px;border:1px solid var(--border);background:var(--surface-2);
  color:var(--text);border-radius:10px;font-size:16px;width:100%;
}
input::placeholder{color:#6b7280}
input:focus,select:focus{outline:none;border-color:var(--primary)}
button{
  padding:13px;border:none;border-radius:10px;
  background:var(--primary);color:var(--primary-text);
  font-size:16px;font-weight:700;cursor:pointer;
}
button:active{transform:scale(.98)}
.error{color:var(--danger);font-size:14px;min-height:18px;margin:0}

/* Panel de admin */
.banner{padding:12px 14px;border-radius:10px;font-size:14px;margin-bottom:14px}
.banner.ok{background:rgba(34,197,94,.12);color:#4ade80;border:1px solid rgba(34,197,94,.3)}
.banner.err{background:rgba(224,40,46,.12);color:#f87171;border:1px solid rgba(224,40,46,.3)}

.admin-form{display:flex;flex-direction:column;gap:14px;margin-top:8px;text-align:left}
.field{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted)}
.field input,.field select{font-size:16px}
.field-label{font-size:14px;color:var(--muted);margin-top:6px;margin-bottom:2px}
.hint{font-size:12px;color:var(--muted)}
.check{display:flex;align-items:center;gap:8px;font-size:15px;color:var(--text)}
.check input{width:auto}
.cancel{text-align:center;color:var(--muted);text-decoration:none;font-size:14px;padding:6px}

.section{font-size:16px;margin:26px 0 10px;font-weight:700}
.user-list{display:flex;flex-direction:column;gap:8px}
.user-row{
  display:flex;align-items:center;justify-content:space-between;
  background:var(--surface);border:1px solid var(--border);border-radius:10px;
  padding:12px 14px;text-decoration:none;color:var(--text);
}
.user-name{display:block;font-weight:600}
.user-sub{display:block;font-size:13px;color:var(--muted);margin-top:2px}
.user-state{font-size:12px;padding:3px 9px;border-radius:20px}
.user-state.a{background:rgba(34,197,94,.15);color:#4ade80}
.user-state.i{background:#2a2a2a;color:var(--muted)}
.user-num{
  display:inline-block;min-width:22px;text-align:center;
  color:var(--muted);font-weight:700;margin-right:8px;
}

/* Link a estadísticas públicas desde el login */
.ver-publico{
  display:inline-block;margin-top:18px;color:var(--muted);
  text-decoration:underline;font-size:14px;
}

/* Panel de números */
.subnav{display:flex;gap:6px;margin:4px 0 18px}
.subnav a{
  flex:1;text-align:center;padding:9px 4px;font-size:13px;
  color:var(--muted);text-decoration:none;border:1px solid var(--border);
  border-radius:8px;background:var(--surface);
}
.subnav a.on{color:#fff;border-color:var(--primary);background:rgba(224,40,46,.12)}
.row2{display:flex;gap:10px}
.row2 .field{flex:1}
.resumen-row{display:flex;align-items:center;justify-content:space-between}
.resumen-big{font-size:20px;font-weight:800;color:#fff}
.resumen-big.ok{color:#4ade80}

/* Home del jugador */
.home{position:relative;overflow:hidden}
.bignum{position:absolute;right:-6px;top:30px;font-size:130px;font-weight:800;color:#1b1b1b;line-height:1;letter-spacing:-5px;z-index:0;pointer-events:none}
.home-in{position:relative;z-index:1}
.estado{padding:14px 16px;border-radius:12px;font-size:17px;font-weight:700;margin:12px 0}
.estado.ok{background:rgba(34,197,94,.12);color:#4ade80;border:1px solid rgba(34,197,94,.3)}
.estado.deuda{background:rgba(224,40,46,.12);color:#f87171;border:1px solid rgba(224,40,46,.3)}
.est-ic{font-style:normal;margin-right:6px}
.desglose{margin:-4px 0 8px}
.desglose-row{display:flex;justify-content:space-between;font-size:14px;color:var(--muted);padding:6px 4px;border-bottom:1px solid var(--border)}
.cuota-cap{font-size:13px;color:var(--muted);margin:18px 0 8px}
.cuota-card{border:1px solid var(--border);border-radius:16px;padding:16px;background:var(--surface)}
.cuota-franja{font-size:12px;color:var(--muted);margin-bottom:6px}
.cuota-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cuota-monto{font-size:32px;font-weight:800;color:#fff}
.paga-hoy{background:var(--primary);color:#fff;font-size:14px;font-weight:700;padding:10px 18px;border-radius:10px;text-decoration:none;white-space:nowrap}
.cuota-otras{display:flex;gap:6px;margin-top:14px}
.franja-chica{flex:1;text-align:center;padding:8px 2px;border-radius:8px;background:var(--surface-2)}
.fc-monto{font-size:14px;font-weight:600;color:#bbb}
.franja-chica.pasada .fc-monto{color:#666;text-decoration:line-through}

/* Confirmación de pagos y caja */
.pago-row{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:8px}
.pago-info{min-width:0}
.pago-acc{display:flex;gap:6px;flex:0 0 auto}
.pago-acc form{margin:0}
.btn-ok{background:#16a34a;border:none;color:#fff;font-size:13px;font-weight:700;padding:9px 12px;border-radius:8px;cursor:pointer}
.btn-no{background:transparent;border:1px solid var(--border-strong, #444);color:var(--muted);font-size:13px;padding:9px 12px;border-radius:8px;cursor:pointer}
.mov-monto{font-size:15px;font-weight:700;white-space:nowrap}
.tag-extra{font-size:10px;color:#fbbf24;background:rgba(251,191,36,.14);border-radius:20px;padding:1px 7px;margin-left:4px}
