/* ICELAB — hoja de estilo común (público + portal) */

:root{
  --verde:#1d4034;
  --verde-claro:#2f6b56;
  --hielo:#2b7fa8;
  --hielo-claro:#e8f4f9;
  --tinta:#1a1a1a;
  --gris:#6b7280;
  --gris-claro:#9aa1a8;
  --linea:#dcdfdd;
  --papel:#fbfaf7;
  --alerta:#8a4b1f;
  --alerta-bg:#fdf3e7;
  --ok:#1d6b45;
  --ok-bg:#e9f5ee;
}
*{box-sizing:border-box}
body{
  margin:0;background:var(--papel);color:var(--tinta);
  font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  -webkit-text-size-adjust:100%;
}
.wrap{max-width:720px;margin:0 auto;padding:0 20px 80px}
.wrap.ancho{max-width:1120px}

/* ── Encabezado ─────────────────────────────────────────── */
header.ice{background:#000;color:#fff;padding:34px 0 30px;margin-bottom:28px}
header.ice .wrap{padding-bottom:0}
.logo-encabezado{width:190px;max-width:52vw;display:block;margin-bottom:24px}
header.ice h1{margin:0 0 8px;font-size:27px;line-height:1.2;font-weight:700}
header.ice .sub{margin:0;opacity:.85;font-size:15px}
header.ice a{color:#fff}

/* Barra del portal */
.barra{background:var(--verde);color:#fff;padding:0}
.barra .wrap{display:flex;align-items:center;gap:22px;padding-top:14px;padding-bottom:14px;flex-wrap:wrap}
.barra .logo{font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:13px}
.barra nav{display:flex;gap:18px;flex:1;flex-wrap:wrap}
.barra nav a{color:rgba(255,255,255,.82);text-decoration:none;font-size:14.5px;padding:4px 0;border-bottom:2px solid transparent}
.barra nav a:hover{color:#fff}
.barra nav a.on{color:#fff;border-bottom-color:rgba(255,255,255,.8)}
.barra .salir{color:rgba(255,255,255,.7);text-decoration:none;font-size:13.5px}
.barra .salir:hover{color:#fff}

/* ── Bloques ────────────────────────────────────────────── */
.intro{background:#fff;border:1px solid var(--linea);border-left:4px solid var(--verde-claro);
  border-radius:6px;padding:18px 20px;margin-bottom:30px;font-size:15px;color:#374151}
.intro p{margin:0 0 10px}.intro p:last-child{margin:0}

.tarjeta{background:#fff;border:1px solid var(--linea);border-radius:6px;padding:20px 22px;margin-bottom:18px}
.tarjeta h2{margin:0 0 4px;font-size:18px;color:var(--verde)}
.tarjeta .meta{margin:0 0 14px;color:var(--gris);font-size:14px}

fieldset{border:0;padding:0;margin:0 0 38px}
legend{padding:0;width:100%}
.titulo{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--verde-claro);
  font-weight:700;border-bottom:1px solid var(--linea);padding-bottom:9px;margin-bottom:6px;width:100%}
.nota-seccion{font-size:14px;color:var(--gris);margin:10px 0 20px}

/* ── Campos ─────────────────────────────────────────────── */
.campo{margin-bottom:20px}
label.et{display:block;font-weight:600;font-size:15px;margin-bottom:6px}
.ayuda{display:block;font-weight:400;color:var(--gris);font-size:13.5px;margin-top:3px}
.req{color:#b3261e;font-weight:400}
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=date],
input[type=password],select,textarea{
  width:100%;padding:11px 12px;border:1px solid #c9cdca;border-radius:5px;background:#fff;font:inherit;color:inherit}
textarea{min-height:92px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--verde-claro);outline-offset:1px;border-color:var(--verde-claro)}
.par{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.tres{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:640px){.par,.tres{grid-template-columns:1fr}}

.opciones{display:flex;flex-direction:column;gap:9px;margin-top:8px}
.opciones.fila{flex-direction:row;flex-wrap:wrap;gap:10px}
.op{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;border:1px solid var(--linea);
  border-radius:5px;background:#fff;cursor:pointer;font-size:15px}
.op:hover{border-color:var(--verde-claro)}
.op input{margin:3px 0 0;flex:0 0 auto;accent-color:var(--verde)}
.opciones.fila .op{flex:1 1 130px}
.consentimiento .op{align-items:flex-start;font-size:14.5px;line-height:1.5}

.bloque-hielo{background:var(--hielo-claro);border:1px solid #bfdced;border-radius:6px;padding:18px 20px;margin-bottom:20px}
.bloque-hielo h3{margin:0 0 6px;font-size:16px;color:var(--hielo)}
.bloque-hielo p{margin:0;font-size:14px;color:#31556b}

.aviso{display:none;background:var(--alerta-bg);border:1px solid #e6c9a4;border-left:4px solid var(--alerta);
  border-radius:5px;padding:15px 17px;margin-top:16px;font-size:14.5px;color:var(--alerta)}
.aviso.visible,.aviso.fijo{display:block}
.aviso strong{display:block;margin-bottom:5px;font-size:15px}
.aviso.bien{background:var(--ok-bg);border-color:#b9dcc7;border-left-color:var(--ok);color:var(--ok)}

/* ── Botones ────────────────────────────────────────────── */
.btn{display:inline-block;padding:13px 22px;border:0;border-radius:6px;background:var(--verde);color:#fff;
  font:600 15px/1 inherit;cursor:pointer;text-decoration:none;text-align:center}
.btn:hover{background:var(--verde-claro)}
.btn.bloque{width:100%;padding:16px;font-size:17px}
.btn.fantasma{background:#fff;color:var(--verde);border:1px solid var(--verde)}
.btn.fantasma:hover{background:var(--verde);color:#fff}
.btn.chico{padding:8px 14px;font-size:13.5px}
.pie{text-align:center;font-size:13px;color:var(--gris);margin-top:16px}
.error{color:#b3261e;font-size:14px;margin-top:10px;display:none}
.error.visible,.error.fijo{display:block}

/* ── Tablas del portal ──────────────────────────────────── */
table.datos{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--linea);border-radius:6px}
table.datos th{background:var(--verde);color:#fff;text-align:left;font-size:12px;letter-spacing:.08em;
  text-transform:uppercase;padding:11px 12px;font-weight:600}
table.datos td{padding:11px 12px;border-top:1px solid var(--linea);font-size:14.5px;vertical-align:top}
table.datos tr:hover td{background:#f7f9f8}
table.datos a{color:var(--verde);font-weight:600;text-decoration:none}
table.datos a:hover{text-decoration:underline}
.envoltura-tabla{overflow-x:auto;-webkit-overflow-scrolling:touch}

.etiqueta{display:inline-block;padding:3px 9px;border-radius:20px;font-size:12px;font-weight:600;white-space:nowrap}
.etiqueta.gris{background:#eef0ef;color:var(--gris)}
.etiqueta.alerta{background:var(--alerta-bg);color:var(--alerta)}
.etiqueta.ok{background:var(--ok-bg);color:var(--ok)}
.etiqueta.frio{background:var(--hielo-claro);color:var(--hielo)}

.filtros{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:20px}
.filtros .campo{margin:0;flex:1 1 170px}
.filtros label.et{font-size:13px;color:var(--gris);font-weight:600}

.cifras{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin-bottom:26px}
.cifra{background:#fff;border:1px solid var(--linea);border-radius:6px;padding:16px 18px}
.cifra .n{font-size:28px;font-weight:700;color:var(--verde);line-height:1.1}
.cifra .t{font-size:13px;color:var(--gris);margin-top:3px}
.cifra.marcada .n{color:var(--alerta)}

dl.detalle{margin:0}
dl.detalle dt{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--gris);
  font-weight:700;margin-top:18px}
dl.detalle dt:first-child{margin-top:0}
dl.detalle dd{margin:5px 0 0;font-size:15px;white-space:pre-wrap}
.vacio{color:var(--gris-claro)}

.migas{font-size:13.5px;color:var(--gris);margin:0 0 18px}
.migas a{color:var(--verde-claro);text-decoration:none}
.migas a:hover{text-decoration:underline}
