:root{--mar:#0c1a2d;--mar-o:#0f172a;--oro:#d4af37;--oro-o:#b8962c;--crema:#f7f2e4;--marino:#0f172a;--fondo:#f6f6f4;--panel:#fff;--borde:#e6e4de;--txt:#212121;--suave:#6b7280;
--ok:#1f9d61;--aviso:#c98a1c;--mal:#c0392b;--r:4px;--titulo:Montserrat,sans-serif}
*{box-sizing:border-box}body{margin:0;font:15px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background:var(--fondo);color:var(--txt)}
a{color:var(--mar);font-weight:500;text-decoration:none}a:hover{text-decoration:underline}
.app{display:flex;min-height:100vh}
nav.lado{width:210px;background:var(--marino);color:#d5dbe3;padding:18px 12px;position:sticky;top:0;height:100vh;flex-shrink:0}
nav.lado .marca{text-align:center;padding:4px 10px 22px}nav.lado .marca img{width:64px;display:block;margin:0 auto 6px}nav.lado .marca b{display:block;font-family:'Playfair Display',Georgia,serif;letter-spacing:.18em;color:var(--oro);font-size:18px;font-weight:400}nav.lado .marca small{color:#8d9aab;letter-spacing:.3em;font-size:10px}
nav.lado a{display:block;color:rgba(255,255,255,.88);padding:10px 12px;border-radius:2px;margin-bottom:2px;font-family:var(--titulo);font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
nav.lado a:hover{background:#1d2c3f;text-decoration:none}nav.lado a.activo{background:#1d2c3f;color:var(--oro);box-shadow:inset 3px 0 0 var(--oro)}
nav.lado form{margin-top:24px}nav.lado .yo{font-size:13px;color:#8d9aab;padding:0 10px}
main{flex:1;padding:24px 28px;min-width:0}
h1{font-family:var(--titulo);font-size:22px;font-weight:700;margin:0 0 18px;color:var(--mar)}h2{font-family:var(--titulo);font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;margin:0 0 14px;color:var(--mar)}
.panel{background:var(--panel);border:1px solid var(--borde);border-radius:var(--r);padding:18px 20px;margin-bottom:18px;box-shadow:0 1px 3px rgba(15,23,42,.05)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:18px}
.kpi{background:var(--marino);border-radius:var(--r);padding:16px 18px;color:#fff}
.kpi b{display:block;font-family:var(--titulo);font-size:26px;font-weight:700;margin-top:6px;color:var(--oro)}.kpi small{font-family:var(--titulo);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.rejilla{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:18px}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--borde);vertical-align:top}
th{font-family:var(--titulo);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--suave);font-weight:600}
tr:last-child td{border-bottom:0}.tabla{overflow-x:auto}
.chip{display:inline-block;padding:2px 9px;border-radius:2px;font-size:11px;font-family:var(--titulo);font-weight:600;letter-spacing:.04em;background:var(--crema);color:#7a6421;white-space:nowrap}
.chip.reservado,.chip.repetidor{background:#e3f5ec;color:#16784a}.chip.perdido{background:#fbe7e7;color:#a53434}
.chip.esperando_pago,.chip.consultando_colaborador{background:#fdf1df;color:#9a5f0c}.chip.equipo{background:#fbe7e7;color:#a53434}
.suave{color:var(--suave)}.der{text-align:right}
form.filtros{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
input,select,textarea{font:inherit;padding:9px 11px;border:1px solid #d9d6cd;border-radius:var(--r);background:#fff;color:var(--txt);max-width:100%}
textarea{width:100%;min-height:70px}
label{display:block;font-size:13px;color:var(--suave);margin-bottom:10px}label input,label select,label textarea{display:block;width:100%;margin-top:3px}
.campos{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0 14px}
.btn{display:inline-block;background:var(--oro);color:var(--mar);border:0;border-radius:var(--r);padding:10px 18px;font-family:var(--titulo);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.btn:hover{background:var(--oro-o);text-decoration:none}.btn.sec{background:transparent;color:var(--mar);box-shadow:inset 0 0 0 1px var(--mar)}.btn.sec:hover{background:var(--mar);color:#fff}
.barra{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}.barra h1{margin:0}
.aviso{background:#fdf1df;border:1px solid #f3d29c;color:#7a4b08;border-radius:8px;padding:10px 14px;margin-bottom:16px}
.error{background:#fbe7e7;border:1px solid #f0b4b4;color:#8c2a2a;border-radius:8px;padding:10px 14px;margin-bottom:14px}
.historial .item{padding:10px 0;border-bottom:1px solid var(--borde)}.historial .item:last-child{border:0}
.historial small{color:var(--suave)}
/* Embudo */
.embudo{display:flex;gap:12px;overflow-x:auto;padding-bottom:10px;align-items:flex-start}
.col{background:var(--crema);border-radius:var(--r);min-width:240px;width:240px;flex-shrink:0;padding:10px}
.col h3{font-family:var(--titulo);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mar);margin:2px 4px 10px;display:flex;justify-content:space-between}
.lista{min-height:60px}.tarjeta{background:#fff;border-radius:8px;padding:10px;margin-bottom:8px;border:1px solid var(--borde);cursor:grab;font-size:14px}
.tarjeta b{display:block}.tarjeta small{color:var(--suave);display:block}
/* Login */
.centro{max-width:380px;margin:12vh auto;padding:0 16px}.centro .panel{padding:26px}
.cabecera-login{background:var(--marino);border-radius:var(--r) var(--r) 0 0;margin:-26px -26px 20px;padding:24px;text-align:center}.cabecera-login img{width:84px}.cabecera-login b{display:block;font-family:'Playfair Display',Georgia,serif;letter-spacing:.2em;color:var(--oro);font-size:22px;font-weight:400;margin-top:6px}.cabecera-login small{color:#8d9aab;letter-spacing:.3em;font-size:11px}
/* Calendario */
.fc .sin-punto{border-left:4px solid var(--aviso)!important}.fc{font-size:13px}
@media (max-width:820px){
 .app{display:block}nav.lado{position:fixed;bottom:0;top:auto;left:0;right:0;width:auto;height:auto;display:flex;justify-content:space-around;padding:6px;z-index:10}
 nav.lado .marca,nav.lado form,nav.lado .yo,nav.lado a.externo{display:none}nav.lado a{font-size:10px;letter-spacing:.06em;padding:9px 6px;margin:0}nav.lado a.activo{box-shadow:inset 0 -2px 0 var(--oro)}
 main{padding:16px 16px 80px}
}

input:focus,select:focus,textarea:focus{outline:2px solid var(--oro);outline-offset:-1px;border-color:var(--oro)}
