/* Acceso administrativo · Garza Nova. Estructura y tipografía; los acabados (botón con brillo, anillo dorado del escudo, modo oscuro) viven en nova-lux.css, que carga al final. */
:root{font-family:'Segoe UI Variable','Segoe UI',Inter,system-ui,-apple-system,sans-serif;color:#182f3d;background:#eef3f2}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;display:grid;place-items:center;padding:36px 22px 62px;background:radial-gradient(900px 520px at 12% -10%,#d7ebe3 0,transparent 62%),radial-gradient(800px 480px at 100% 110%,#e6dfc9 0,transparent 60%),#eef3f2}
.login-shell{width:min(1120px,100%);min-height:660px;display:grid;grid-template-columns:1.14fr 1fr;border:1px solid #d6e0e1;border-radius:28px;overflow:hidden;background:#fff;box-shadow:0 30px 80px -30px rgba(12,40,50,.45)}
/* Columna izquierda: portada a sangre completa + degradado para que el texto siempre se lea */
.intro{position:relative;isolation:isolate;display:flex;flex-direction:column;color:#fff;background:#0d2230;min-height:660px;overflow:hidden}
.gn-cover{position:absolute;inset:0;z-index:-2;display:block}
.gn-cover img{display:block;width:100%;height:100%;object-fit:cover;object-position:62% 34%}
.intro::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(7,22,33,.82) 0,rgba(7,22,33,.46) 34%,rgba(7,22,33,.08) 58%,rgba(7,22,33,.78) 100%)}
.intro-body{display:flex;flex-direction:column;flex:1;padding:44px 46px 36px}
.brand{display:flex;gap:14px;align-items:center;color:#fff;text-decoration:none;margin-bottom:54px}
.brand span{font-size:13px;letter-spacing:.2em;font-weight:700;color:#fff;line-height:1.35}
.brand small{display:block;margin:2px 0 0;font-size:11px;letter-spacing:.02em;font-weight:500;color:#cfe2dc}
.brand .business-logo{width:64px;height:64px;padding:8px;border-radius:18px;background:#fff;border:1px solid rgba(255,255,255,.4);box-shadow:0 10px 24px -10px rgba(0,0,0,.5)}
.eyebrow{font-size:10.5px;font-weight:700;letter-spacing:.2em;color:#0b7b71}
.intro .eyebrow{color:#e0cb9a}
h1{font-size:clamp(32px,3.6vw,44px);letter-spacing:-.03em;font-weight:600;line-height:1.1;margin:14px 0 14px;text-wrap:balance}
.intro h1{color:#fff;text-shadow:0 2px 24px rgba(5,18,28,.55)}
p{font-size:14px;line-height:1.75;color:#5d7079}
.intro p{color:#dbe8e5;max-width:236px;text-shadow:0 1px 14px rgba(5,18,28,.6)}
.features{display:grid;gap:10px;font-size:12.5px;margin:auto 0 22px;padding-top:30px}
.features span{display:flex;align-items:center;gap:10px;color:#e8f1ee;font-weight:600;letter-spacing:.01em}
.features span::before{content:"";width:6px;height:6px;border-radius:50%;background:#d6bd86;box-shadow:0 0 0 4px rgba(214,189,134,.2);flex:none}
.intro-body>small{color:#bcd0cc;font-size:10.5px;letter-spacing:.04em}
/* Columna derecha: el acceso */
.access{position:relative;padding:50px 54px 38px;display:flex;flex-direction:column;justify-content:center}
.gn-badge{width:96px;height:96px;border-radius:26px;overflow:hidden;background:#0f2230;margin-bottom:22px;flex:none}
.gn-badge img{display:block;width:100%;height:100%;object-fit:cover}
h2{font-size:30px;letter-spacing:-.03em;font-weight:600;margin:10px 0 4px;color:#14283a}
.access p{margin:6px 0 20px}
form{display:grid;gap:8px;margin:12px 0 18px}form[hidden]{display:none}
label{font-size:12px;font-weight:650;letter-spacing:.01em}
input{font:inherit;font-size:14.5px;border:1px solid #cbd7dc;border-radius:12px;padding:0 14px;margin-bottom:8px;width:100%;min-height:48px;background:#fff;color:inherit}@media (pointer:coarse){input{font-size:16px}}
button[type=submit]{margin-top:8px;min-height:50px;width:100%;font-size:14px}
button:disabled{opacity:.6;cursor:wait}
#error{font-size:12.5px;color:#a02a3a;margin:0;font-weight:600}
#error:empty{display:none}
.access .help{font-size:11.5px;line-height:1.7;margin:2px 0 22px}
.access a{display:inline-flex;align-items:center;min-height:32px;font-size:12.5px;font-weight:600;color:#0b776c;text-decoration:none;margin-top:6px}
@media (hover:hover) and (pointer:fine){.access a:hover{text-decoration:underline;text-underline-offset:3px}}
a:focus-visible,input:focus-visible,button:focus-visible{outline:3px solid #139f95;outline-offset:3px}
/* Teléfono: la portada pasa a ser un banner y el escudo se monta sobre su borde inferior */
@media(max-width:760px){
 body{padding:14px 12px 62px;place-items:start center}
 .login-shell{grid-template-columns:1fr;max-width:520px;min-height:0;border-radius:24px}
 .intro{min-height:0}
 .intro::before{background:linear-gradient(180deg,rgba(7,22,33,.72) 0,rgba(7,22,33,.5) 55%,rgba(7,22,33,.8) 100%)}
 .intro-body{padding:22px 22px 70px}
 .brand{margin-bottom:22px}.brand .business-logo{width:52px;height:52px}
 h1{font-size:28px}.intro h1 br{display:none}.intro p{max-width:min(62%,260px)}
 .features,.intro-body>small{display:none}
 .access{padding:0 24px 28px}
 .gn-badge{margin-top:-52px;margin-bottom:14px;position:relative;z-index:1}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
@media(forced-colors:active){.intro::before{display:none}.gn-badge{border:2px solid CanvasText}}