:root{
  --crema:#fbf3e7;
  --masa:#e8d3ad;
  --canela:#a9622f;
  --caramelo:#c9762c;
  --cafe-oscuro:#3d2b1f;
  --verde-ok:#3f7d4f;
  --verde-ok-fondo:#eef7ef;
  --rojo-no:#b1452e;
  --rojo-no-fondo:#fbeeeb;
  --gris-texto:#8a7563;
  --borde:#e8d3ad;
}
*{ box-sizing:border-box; }
body{
  margin:0;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  background: var(--crema);
  color: var(--cafe-oscuro);
}
.contenedor{
  max-width: 1080px;
  margin: 0 auto;
  padding: 28px 24px 60px;
}
.barra-superior{
  background: linear-gradient(135deg, var(--canela), var(--caramelo));
  color:#fff;
  padding: 18px 24px;
}
.barra-superior .contenedor-nav{
  max-width: 1080px;
  margin: 0 auto;
  display:flex;
  align-items:center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
}
.barra-superior h1{
  font-size: 1.15rem;
  margin:0;
  font-weight:700;
}
.nav-links{
  display:flex;
  gap: 18px;
}
.nav-links a{
  color:#fff;
  text-decoration:none;
  font-size: 0.9rem;
  opacity: 0.9;
  padding: 6px 0;
  border-bottom: 2px solid transparent;
}
.nav-links a:hover, .nav-links a.activo{
  opacity: 1;
  border-bottom-color: #fff;
}
.tarjeta{
  background:#fff;
  border-radius: 14px;
  border: 1px solid var(--borde);
  box-shadow: 0 4px 16px rgba(61,43,31,0.06);
  padding: 24px;
  margin-bottom: 22px;
}
.tarjeta h2{
  margin-top:0;
  font-size: 1.15rem;
}
.grid-resumen{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 14px;
  margin-bottom: 8px;
}
.resumen-item{
  background: var(--crema);
  border: 1px solid var(--borde);
  border-radius: 10px;
  padding: 14px 16px;
  text-align:center;
}
.resumen-item .numero{
  font-size: 1.6rem;
  font-weight: 700;
  display:block;
}
.resumen-item .etiqueta{
  font-size: 0.78rem;
  color: var(--gris-texto);
}
table{
  width:100%;
  border-collapse: collapse;
  font-size: 0.88rem;
}
th, td{
  text-align:left;
  padding: 10px 12px;
  border-bottom: 1px solid var(--borde);
}
th{
  background: var(--crema);
  font-weight: 600;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--gris-texto);
}
tr:hover td{ background: #fffaf2; }
input[type=text], input[type=file], select{
  width:100%;
  padding: 10px 12px;
  border: 1.5px solid var(--borde);
  border-radius: 8px;
  font-size: 0.92rem;
  font-family: inherit;
  outline:none;
}
input[type=text]:focus, select:focus{ border-color: var(--caramelo); }
label{
  display:block;
  font-size: 0.82rem;
  font-weight:600;
  margin-bottom: 6px;
}
.boton{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background: var(--cafe-oscuro);
  color:#fff;
  border:none;
  border-radius: 9px;
  padding: 11px 20px;
  font-size: 0.9rem;
  font-weight:600;
  cursor:pointer;
  text-decoration:none;
  font-family: inherit;
}
.boton:hover{ background:#2a1d15; }
.boton.secundario{
  background:#fff;
  color: var(--cafe-oscuro);
  border: 1.5px solid var(--borde);
}
.boton.secundario:hover{ background: var(--crema); }
.boton.pequeno{
  padding: 6px 12px;
  font-size: 0.8rem;
}
.etiqueta-estado{
  display:inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight:600;
}
.estado-ok{ background: var(--verde-ok-fondo); color: var(--verde-ok); }
.estado-mal{ background: var(--rojo-no-fondo); color: var(--rojo-no); }
.estado-pendiente{ background: #fdf2e2; color: var(--caramelo); }
.alerta{
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 16px;
  font-size: 0.9rem;
}
.alerta.ok{ background: var(--verde-ok-fondo); border: 1px solid #bfe0c6; color: var(--verde-ok); }
.alerta.error{ background: var(--rojo-no-fondo); border: 1px solid #f0c4b8; color: var(--rojo-no); }
.alerta.info{ background: var(--crema); border: 1px solid var(--borde); color: var(--cafe-oscuro); }
.ayuda{
  font-size: 0.8rem;
  color: var(--gris-texto);
  margin-top: 6px;
}
.fila-form{
  display:grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 12px;
  align-items:end;
  margin-bottom: 12px;
}
@media (max-width: 700px){
  .fila-form{ grid-template-columns: 1fr; }
}
.badge-conteo{
  background: var(--masa);
  color: var(--cafe-oscuro);
  border-radius: 999px;
  padding: 2px 9px;
  font-size: 0.75rem;
  font-weight:700;
}
