/* Castillo Corporate — sistema visual compartido (alta, acceso, portal, panel) */
:root{
  --tinta:#0F1B2D; --azul:#1E3350; --papel:#FFFFFF; --niebla:#F4F3F0; --piedra:#5F5B51; --linea:#E3E2DD; --oro:#9A7B4F;
  --ok:#2F6B4F; --ok-f:#E6F0EA; --aviso:#8A5A12; --aviso-f:#F7EEDC; --alerta:#9B2C2C; --alerta-f:#F6E4E2; --info-f:#E7ECF3;
  --serif:"Libre Caslon Text",Georgia,"Times New Roman",serif;
  --sans:"Hanken Grotesk","Helvetica Neue",Arial,sans-serif;
  --logo-claro:block; --logo-oscuro:none; --sombra:0 1px 2px rgba(15,27,45,.04),0 8px 24px rgba(15,27,45,.06);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --tinta:#EEF0F3; --azul:#9DB3D3; --papel:#0E141D; --niebla:#151D2A; --piedra:#A6A296; --linea:#26303F; --oro:#C9A974;
  --ok:#7FC4A0; --ok-f:#17302A; --aviso:#E0B45E; --aviso-f:#33291A; --alerta:#E58C86; --alerta-f:#3A1F1F; --info-f:#1B2638;
  --logo-claro:none; --logo-oscuro:block; --sombra:0 1px 2px rgba(0,0,0,.3); color-scheme:dark}}
:root[data-theme="dark"]{
  --tinta:#EEF0F3; --azul:#9DB3D3; --papel:#0E141D; --niebla:#151D2A; --piedra:#A6A296; --linea:#26303F; --oro:#C9A974;
  --ok:#7FC4A0; --ok-f:#17302A; --aviso:#E0B45E; --aviso-f:#33291A; --alerta:#E58C86; --alerta-f:#3A1F1F; --info-f:#1B2638;
  --logo-claro:none; --logo-oscuro:block; --sombra:0 1px 2px rgba(0,0,0,.3); color-scheme:dark}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{background:var(--papel);color:var(--tinta)}
body{font:16px/1.55 var(--sans);margin:0;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.2;text-wrap:balance;margin:0}
p{margin:0}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--azul);outline-offset:2px}
.logo-c{display:var(--logo-claro)}.logo-o{display:var(--logo-oscuro)}
.logo img{height:19px;width:auto}
.mut{color:var(--piedra)}
.num{font-variant-numeric:tabular-nums}
.chico{font-size:14px}
.eti{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--piedra);font-weight:600}
.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:99px;font-size:13px;font-weight:500;white-space:nowrap}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.p-ok{background:var(--ok-f);color:var(--ok)}.p-av{background:var(--aviso-f);color:var(--aviso)}
.p-al{background:var(--alerta-f);color:var(--alerta)}.p-in{background:var(--info-f);color:var(--azul)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;background:var(--tinta);color:var(--papel);padding:13px 24px;border-radius:5px;font-weight:600;text-decoration:none;transition:opacity .15s}
.btn:hover{opacity:.88}
.btn[disabled]{opacity:.35;cursor:not-allowed}
.btn2{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--linea);background:var(--papel);padding:12px 20px;border-radius:5px;font-weight:500;text-decoration:none}
.btn2:hover{border-color:var(--piedra)}
.enlace{background:none;border:0;padding:0;color:var(--azul);font-weight:500;text-decoration:underline;text-underline-offset:3px}
.campo{display:grid;gap:6px;margin-bottom:16px}
.campo label{font-size:14px;font-weight:600}
.campo input,.campo select,.campo textarea{border:1px solid var(--linea);background:var(--papel);border-radius:5px;padding:12px 13px;width:100%;min-width:0}
.campo input:focus,.campo select:focus{border-color:var(--tinta);outline:none;box-shadow:0 0 0 3px var(--info-f)}
.campo .ayuda{font-size:13px;color:var(--piedra)}
.error{background:var(--alerta-f);color:var(--alerta);border-radius:5px;padding:11px 14px;font-size:14px;margin:0 0 16px}
.tarjeta{border:1px solid var(--linea);border-radius:10px;background:var(--papel);padding:22px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.cabecera{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid var(--linea)}
.cabecera nav{display:flex;gap:18px;align-items:center;font-size:14px}
.cabecera nav a{text-decoration:none;color:var(--piedra)}
.spinner{width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:gira .7s linear infinite;display:inline-block}
@keyframes gira{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
