:root{
  --rojo:#7B1113; --rojo2:#93282a; --navy:#1F2A44;
  --suave:#F6EDED; --gris:#666; --ok:#1a7a1a; --rev:#b05a00;
}
*{box-sizing:border-box}
body{font-family:-apple-system,Helvetica,Arial,sans-serif;margin:0;
  background:#faf9f8;color:#222}
a{color:var(--rojo);text-decoration:none}

/* Barra superior */
.barra{background:var(--rojo);color:#fff;padding:12px 20px;display:flex;
  align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20}
.barra .marca{color:#fff;font-weight:700;font-size:1.15em;letter-spacing:.5px}
.barra nav a{color:#fff;margin-left:16px;opacity:.9;font-size:.95em}
.barra nav a:hover{opacity:1;text-decoration:underline}

main{padding:0}
.contenedor{max-width:1300px;margin:0 auto;padding:18px 20px}
h1{font-size:1.4em;color:var(--navy)}
h2{font-size:1.1em;color:var(--navy);margin-top:24px}
.sub{color:var(--gris);font-size:.9em}

.avisos-flash{max-width:420px;margin:14px auto 0}
.flash{background:#fdeaea;border:1px solid var(--rojo);color:var(--rojo);
  padding:10px 14px;border-radius:8px;margin-bottom:8px;font-size:.9em}

/* Login */
.login{max-width:340px;margin:8vh auto;background:#fff;padding:28px;
  border-radius:12px;box-shadow:0 3px 18px rgba(0,0,0,.1);text-align:center}
.login h1{color:var(--rojo);margin:0}
.login .sub{margin:4px 0 20px}
.login label{display:block;text-align:left;font-size:.85em;color:var(--gris);
  margin-bottom:12px}
.login input{width:100%;padding:10px;border:1px solid #ccc;border-radius:8px;
  font-size:1em;margin-top:4px}
.login button{width:100%;padding:11px;background:var(--rojo);color:#fff;
  border:none;border-radius:8px;font-size:1em;cursor:pointer;margin-top:6px}
.login button:hover{background:var(--rojo2)}

/* KPIs */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:12px;margin:16px 0}
.kpi{background:#fff;border-radius:10px;padding:14px;
  box-shadow:0 1px 4px rgba(0,0,0,.08)}
.kpi .n{font-size:1.6em;font-weight:700;color:var(--rojo)}
.kpi .l{color:var(--gris);font-size:.78em;margin-top:4px}

/* Acciones */
.acciones{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0}
.btn-primario{background:var(--rojo);color:#fff;border:none;padding:10px 18px;
  border-radius:8px;font-size:.95em;cursor:pointer}
.btn-primario:hover{background:var(--rojo2)}
.btn-primario:disabled{opacity:.6;cursor:default}
.btn-sec{display:inline-block;background:#fff;border:1px solid var(--rojo);
  color:var(--rojo);padding:9px 15px;border-radius:8px;font-size:.9em}
.btn-sec:hover{background:var(--suave)}
.msg{margin:8px 0;font-size:.9em;min-height:1.2em}
.msg.ok{color:var(--ok)}.msg.error{color:var(--rojo)}

/* Tabla índice de fechas */
table.lista{width:100%;border-collapse:collapse;background:#fff;
  border-radius:10px;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.08)}
table.lista th{background:var(--rojo);color:#fff;text-align:left;padding:10px}
table.lista td{padding:10px;border-bottom:1px solid #eee}
.pill{padding:3px 10px;border-radius:20px;font-size:.82em;font-weight:600}
.pill.completo{background:#e3f5e3;color:var(--ok)}
.pill.parcial{background:#fdf0e0;color:var(--rev)}
.pill.cero{background:#f0f0f0;color:var(--gris)}
.vacio{color:var(--gris);background:#fff;padding:20px;border-radius:10px}

/* Página de revisión */
.rev-cabecera{background:#fff;padding:14px 20px;border-bottom:1px solid #e5e5e5}
.rev-cabecera h1{margin:0 0 4px}
.aviso{display:flex;gap:20px;margin:20px auto;max-width:1300px;padding:16px;
  background:#fff;border:1px solid #ddd;border-radius:10px}
.col-img{flex:0 0 44%}
.col-img img{width:100%;border:1px solid #999;border-radius:4px}
.col-datos{flex:1;min-width:0}
table.campos{border-collapse:collapse;width:100%;font-size:.86em}
table.campos td{border:1px solid #e3e3e3;padding:5px 7px;vertical-align:top}
table.campos td.etq{font-weight:bold;width:32%;background:#f7f4ef}
table.campos td.fijo{color:#333}
table.campos input[type=text],table.campos textarea{width:100%;box-sizing:border-box;
  font:inherit;border:1px solid #bbb;border-radius:4px;padding:5px 6px;background:#fffef7}
table.campos textarea{min-height:80px;resize:vertical}
table.campos input:focus,table.campos textarea:focus{outline:2px solid var(--rojo);background:#fff}
.estado-guardado{display:inline-block;font-size:.78em;margin-top:2px;min-height:1em}
.estado-guardado.ok{color:var(--ok)}
.estado-guardado.guardando{color:var(--gris)}
.estado-guardado.error{color:var(--rojo);font-weight:bold}
.validar{display:block;margin-top:12px;padding:10px;background:var(--suave);
  border-radius:8px;font-size:.95em;cursor:pointer}
.validar input{margin-right:6px;transform:scale(1.3)}
/* Bloques de aviso compartido + inmuebles (lotes) */
.bloque{font-size:.95em;color:var(--navy);margin:14px 0 6px;
  border-bottom:1px solid #e5e5e5;padding-bottom:4px}
.tenue{font-weight:normal;color:var(--gris);font-size:.85em}
.lote{border:1px solid #e5e0d8;border-radius:8px;padding:10px 12px;margin-top:12px;
  background:#fcfbf9}
.lote.validado{border-color:var(--ok);box-shadow:0 0 0 2px rgba(26,122,26,.12)}
.lote-tit{display:flex;align-items:center;gap:10px;margin-top:0}
.btn-add{margin-top:14px;background:#fff;border:1px dashed var(--rojo);
  color:var(--rojo);padding:9px 15px;border-radius:8px;font-size:.9em;cursor:pointer}
.btn-add:hover{background:var(--suave)}
.btn-add:disabled{opacity:.6;cursor:default}
.btn-elim{margin-left:auto;background:#fff;border:1px solid #c9302c;color:#c9302c;
  padding:3px 9px;border-radius:6px;font-size:.78em;cursor:pointer}
.btn-elim:hover{background:#fdecea}

/* Dashboard */
.filtros{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}
.filtros select,.filtros input{padding:8px 10px;border:1px solid #ccc;
  border-radius:6px;font-size:.9em;background:#fff}
.chk-futuras{align-self:center;font-size:.85em;color:var(--gris)}
.paneles{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.panel{background:#fff;border-radius:10px;padding:14px;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.panel h3{margin:0 0 8px;color:var(--navy);font-size:.95em}
.tabla-scroll{overflow-x:auto}
#tabla{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;
  overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.08);font-size:.82em}
#tabla th{background:var(--rojo);color:#fff;padding:9px 8px;text-align:left;
  cursor:pointer;user-select:none;white-space:nowrap}
#tabla th:hover{background:var(--rojo2)}
#tabla td{padding:8px;border-bottom:1px solid #eee;vertical-align:top}
#tabla tr:nth-child(even) td{background:var(--suave)}
.flecha{font-size:.75em;opacity:.9}

@media(max-width:850px){
  .aviso{flex-direction:column}
  .col-img{flex:none}
  .paneles{grid-template-columns:1fr}
  .barra nav a{margin-left:10px;font-size:.88em}
}
