body{font-family:system-ui,sans-serif;margin:0;background:#f8fafc;color:#0f172a}
.nav{display:flex;gap:1rem;align-items:center;background:#0f172a;color:#fff;padding:.6rem 1rem}
.nav a{color:#fff;text-decoration:none}.nav .off{color:#64748b}.nav .salir{margin-left:auto}
main{padding:1rem;max-width:1000px;margin:auto}
.kpis{display:flex;gap:1rem;flex-wrap:wrap}.kpi{background:#fff;border-radius:8px;padding:1rem;min-width:140px;box-shadow:0 1px 3px #0001}
.kpi span{display:block;color:#64748b;font-size:.8rem}.kpi b{font-size:1.5rem}
.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.dia{background:#fff;border-radius:6px;padding:.4rem;min-height:48px}
.dia .n{font-size:.7rem;color:#64748b}.dia .o{display:block;font-weight:700}
.dia.alta{background:#bbf7d0}.dia.media{background:#fde68a}.dia.baja{background:#fecaca}.dia.sin{background:#f1f5f9}
.dia.proy{opacity:.6;border:1px dashed #94a3b8}.big{font-size:2rem;font-weight:700;color:#16a34a}
.login{max-width:300px;margin:10vh auto;display:flex;flex-direction:column;gap:.6rem;background:#fff;padding:2rem;border-radius:10px}
.error{color:#dc2626}
.tabla{width:100%;border-collapse:collapse}.tabla th,.tabla td{padding:.4rem .6rem;border-bottom:1px solid #e2e8f0;text-align:right}.tabla th:first-child,.tabla td:first-child{text-align:left}
.filtro{display:flex;gap:1rem;margin:.5rem 0}
