:root{
  --bg:#0f1620; --card:#182230; --line:#263345; --txt:#e6edf3; --mut:#8ba0b5;
  --brand:#2dd4bf; --pos:#34d399; --danger:#f87171; --warn:#fbbf24; --accent:#3b82f6;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--txt);-webkit-text-size-adjust:100%}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}

.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  padding:.8rem 1.2rem;background:#0b1119;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.brand{font-weight:700;font-size:1.1rem;color:var(--txt)}
.topbar nav{display:flex;gap:1.2rem;align-items:center}
.topbar nav a{color:var(--mut);font-weight:500}
.topbar nav a:hover{color:var(--txt);text-decoration:none}
.topbar nav .salir{color:var(--danger)}

.wrap{max-width:1000px;margin:0 auto;padding:1.4rem}
h1{font-size:1.5rem;margin:.2rem 0 1rem}
h3{margin:1.4rem 0 .6rem}
.meta{color:var(--mut);margin:-.4rem 0 1rem;line-height:1.6}

.rowhead{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.btn{display:inline-block;background:var(--brand);color:#04241a;font-weight:700;padding:.55rem .9rem;border-radius:8px;white-space:nowrap;border:0;cursor:pointer;font-size:.95rem}
.btn:hover{filter:brightness(1.05);text-decoration:none}
.btn.ghost{background:transparent;color:var(--txt);border:1px solid var(--line)}
.btn.ghost:hover{border-color:var(--brand)}
.btn.warn{background:var(--warn);color:#3a2f0b}
.btn.danger{background:transparent;color:var(--danger);border:1px solid var(--danger)}
.btn.danger:hover{background:#3b1618}
.acciones{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin:0 0 1rem}

.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.8rem;margin-bottom:1.2rem}
.tile{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.9rem 1rem}
.tile span{display:block;color:var(--mut);font-size:.8rem;margin-bottom:.3rem}
.tile b{font-size:1.3rem}
.pos{color:var(--pos)}

.tblwrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:12px}
.tbl{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;min-width:560px}
.tbl th,.tbl td{padding:.65rem .8rem;border-bottom:1px solid var(--line);text-align:left;font-size:.92rem;white-space:nowrap}
.tbl th{background:#0e1722;color:var(--mut);font-weight:600}
.tbl tr:last-child td{border-bottom:none}
.tbl .r{text-align:right}
.tbl tr.pagado{opacity:.55}
.empty{color:var(--mut);text-align:center;padding:1.4rem;white-space:normal}
.badge{background:var(--pos);color:#04241a;font-size:.72rem;padding:.15rem .5rem;border-radius:999px;font-weight:700}

.nowrap{white-space:nowrap}
.tag-activo{background:#12303a;color:var(--brand);font-size:.72rem;padding:.15rem .5rem;border-radius:999px;font-weight:700}

.folder{margin:0 0 1.3rem}
.folderhead{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap;
  padding:.6rem .2rem;margin-bottom:.4rem;border-bottom:1px solid var(--line)}
.foldername{font-size:1.1rem;font-weight:700;color:var(--txt)}
.foldername:hover{color:var(--brand);text-decoration:none}
.foldermeta{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;color:var(--mut);font-size:.9rem}
.btn.small{padding:.35rem .7rem;font-size:.85rem}

.corte{padding:.1rem .45rem;border-radius:6px}
.corte.manana{background:#3a2f0b;color:var(--warn);font-weight:700}
.corte.hoy{background:#3b1618;color:#fecaca;font-weight:700}

.del{background:transparent;border:1px solid var(--line);color:var(--danger);border-radius:6px;
  padding:.25rem .5rem;cursor:pointer;font-size:.9rem}
.del:hover{background:#3b1618;border-color:var(--danger)}

.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1.2rem;max-width:560px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.form label{display:block;margin:.8rem 0 .3rem;color:var(--mut);font-size:.85rem}
.form input,.form select{width:100%;padding:.6rem .7rem;background:#0e1722;border:1px solid var(--line);
  border-radius:8px;color:var(--txt);font-size:16px}
.form input:disabled{opacity:.6}
.form button,button[type=submit]{margin-top:1.1rem;width:100%;padding:.8rem;border:0;border-radius:8px;
  background:var(--brand);color:#04241a;font-weight:700;font-size:1rem;cursor:pointer}
.form button:hover{filter:brightness(1.05)}
.hint{color:var(--mut);font-size:.85rem;margin-top:.5rem;line-height:1.5}
.alert{background:#3b1618;border:1px solid var(--danger);color:#fecaca;padding:.6rem .8rem;border-radius:8px}

.login{max-width:340px;margin:12vh auto;background:var(--card);border:1px solid var(--line);
  border-radius:14px;padding:1.6rem;text-align:center}
.login h1{margin:.2rem 0 1rem}
.login input{width:100%;padding:.7rem;background:#0e1722;border:1px solid var(--line);border-radius:8px;color:var(--txt);font-size:16px}
.login button{margin-top:1rem;width:100%;padding:.8rem;border:0;border-radius:8px;background:var(--brand);color:#04241a;font-weight:700;cursor:pointer}
.login label{display:block;text-align:left;color:var(--mut);font-size:.85rem;margin-bottom:.3rem}

/* ── Celular ── */
@media (max-width:640px){
  .wrap{padding:1rem}
  h1{font-size:1.25rem}
  .topbar{padding:.7rem .9rem}
  .topbar nav{gap:.9rem;font-size:.95rem}
  .tiles{grid-template-columns:1fr 1fr;gap:.6rem}
  .tile b{font-size:1.15rem}
  .grid2{grid-template-columns:1fr}
  .card{padding:1rem}
}
@media (max-width:380px){
  .tiles{grid-template-columns:1fr}
}
