.auth-pending .app-shell,.auth-required .app-shell{display:none!important}
.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(360px,.85fr) minmax(500px,1.15fr);background:#f5f6f3;color:#17221d}
.auth-shell[hidden]{display:none}
.auth-brand{position:relative;overflow:hidden;display:flex;flex-direction:column;padding:48px clamp(38px,5vw,76px);color:#fff;background:radial-gradient(circle at 12% 82%,rgba(85,143,111,.28),transparent 28%),radial-gradient(circle at 84% 10%,rgba(216,191,146,.13),transparent 25%),linear-gradient(145deg,#17221d,#22352b 62%,#18261f)}
.auth-brand:after{content:"";position:absolute;width:440px;height:440px;border:1px solid rgba(255,255,255,.08);border-radius:50%;right:-280px;bottom:-150px;box-shadow:0 0 0 70px rgba(255,255,255,.025),0 0 0 145px rgba(255,255,255,.018)}
.auth-brand-name{display:flex;align-items:center;gap:12px;position:relative;z-index:1}.auth-brand-name>span{width:38px;height:38px;border:1px solid #7f998b;border-radius:11px;display:grid;place-items:center;font:700 19px Manrope}.auth-brand-name p{margin:0}.auth-brand-name strong,.auth-brand-name small{display:block}.auth-brand-name strong{font:700 18px Manrope;letter-spacing:.14em}.auth-brand-name small{font-size:11px;color:#a9bbb1}
.auth-brand-copy{margin:auto 0;max-width:540px;position:relative;z-index:1}.auth-kicker{margin:0 0 13px;font-size:10px;font-weight:700;letter-spacing:.16em;color:#668174}.auth-brand .auth-kicker{color:#a8c0b4}.auth-brand-copy h1{font:700 clamp(37px,4.2vw,63px)/1.08 Manrope;margin:0;letter-spacing:-.035em}.auth-brand-copy>p:last-child{max-width:470px;color:#b9c7bf;font-size:16px;line-height:1.7;margin:24px 0 0}
.auth-security-note{position:relative;z-index:1;margin:0;color:#a9bbb1;font-size:12px}.auth-security-note span{display:inline-grid;place-items:center;width:22px;height:22px;margin-right:8px;border-radius:50%;background:#395646;color:#bce0cc}
.auth-content{display:flex;align-items:center;justify-content:center;flex-direction:column;padding:50px 30px}.auth-card{width:min(440px,100%);background:#fff;border:1px solid #e1e6e2;border-radius:20px;box-shadow:0 28px 75px rgba(23,34,29,.08);padding:38px}.auth-panel h2{font:700 30px/1.2 Manrope;margin:0}.auth-intro{color:#6b7670;font-size:13px;line-height:1.55;margin:10px 0 25px}.auth-panel>label{display:block;font-size:11px;font-weight:700;margin:17px 0;color:#46504b}.auth-panel input:not([type=checkbox]){display:block;width:100%;margin-top:7px;border:1px solid #d8dfdb;border-radius:10px;padding:12px 13px;outline:0;background:#fff;font-size:13px;color:#17221d;transition:.15s}.auth-panel input:focus{border-color:#39745a;box-shadow:0 0 0 3px rgba(35,99,74,.1)}.password-field{display:flex;position:relative}.password-field input{padding-right:65px!important}.password-field button{position:absolute;right:5px;top:12px;border:0;background:transparent;color:#23634a;font-size:10px;font-weight:700;cursor:pointer}
.auth-primary,.auth-secondary{width:100%;border-radius:10px;padding:12px 15px;font-weight:700;font-size:12px;cursor:pointer}.auth-primary{border:1px solid #23634a;background:#23634a;color:#fff;margin-top:5px}.auth-primary:hover{background:#194d39}.auth-primary:disabled{opacity:.5;cursor:not-allowed}.auth-secondary{border:1px solid #d4dcd7;background:#fff;color:#23634a;margin:12px 0}.auth-error{min-height:18px;margin:10px 0 3px;color:#a43f36;font-size:11px}.auth-help{font-size:11px;color:#78817d;margin:18px 0 0}.auth-help a{color:#23634a;font-weight:700}
.auth-hint{font-size:10px;line-height:1.5;color:#6b7670;background:#f3f6f4;border-radius:9px;padding:10px 12px;margin:16px 0 4px}
.auth-success-message{color:#23634a}
.auth-loading{text-align:center;padding:70px 0;color:#6b7670;font-size:12px}.auth-spinner{width:31px;height:31px;border-radius:50%;border:3px solid #e2e8e4;border-top-color:#23634a;display:block;margin:0 auto 14px;animation:auth-spin .8s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}
.auth-back,.auth-link{border:0;background:transparent;color:#23634a;cursor:pointer;padding:0;font-size:11px;font-weight:700}.auth-back{margin-bottom:24px}.auth-link{display:block;margin:2px auto 10px}.auth-step-icon{display:grid;place-items:center;width:46px;height:46px;margin-bottom:20px;border-radius:13px;background:#e7f0eb;color:#23634a;font:700 18px Manrope}.auth-success{border-radius:50%}.auth-code{text-align:center;font:700 24px/1 Manrope!important;letter-spacing:.25em;padding-left:calc(13px + .25em)!important}.auth-code-label{text-align:center}.auth-qr{display:grid;place-items:center;margin:18px auto;width:222px;height:222px;border:1px solid #dfe5e1;border-radius:15px;padding:10px}.auth-qr img{width:100%;height:100%}.auth-manual{font-size:11px;text-align:center;margin:0 0 16px}.auth-manual summary{color:#23634a;font-weight:700;cursor:pointer}.auth-manual code{display:block;margin-top:8px;padding:9px;background:#f2f4f2;border-radius:8px;word-break:break-all;color:#35433c}.recovery-codes{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:13px;background:#f3f5f3;border-radius:11px}.recovery-codes code{text-align:center;padding:7px 3px;border-radius:7px;background:#fff;border:1px solid #e1e6e2;font-size:11px}.auth-confirm{display:flex!important;align-items:flex-start;gap:9px;padding:12px;background:#f6f7f5;border-radius:9px}.auth-confirm input{margin:2px 0 0}.auth-confirm span{line-height:1.4}
@media(max-width:900px){.auth-shell{grid-template-columns:1fr}.auth-brand{min-height:240px;padding:30px}.auth-brand-copy{margin:55px 0 30px}.auth-brand-copy h1{font-size:36px}.auth-brand-copy>p:last-child{display:none}.auth-security-note{display:none}.auth-content{padding:35px 20px}.auth-card{padding:30px}}

/* Acceso legible en escritorio y móvil. */
.auth-brand-name small{font-size:13px}.auth-kicker{font-size:12px;letter-spacing:.1em}.auth-security-note{font-size:14px}.auth-card{width:min(480px,100%)}.auth-panel h2{font-size:32px}.auth-intro{font-size:16px;line-height:1.55}.auth-panel>label{font-size:14px}.auth-panel input:not([type=checkbox]){min-height:48px;font-size:16px}.password-field button{font-size:13px}.auth-primary,.auth-secondary{min-height:46px;font-size:15px}.auth-error,.auth-help{font-size:13px}.auth-hint{font-size:13px}.auth-loading{font-size:14px}.auth-back,.auth-link,.auth-manual{font-size:13px}.recovery-codes code{font-size:13px}
@media(max-width:480px){.auth-brand{min-height:190px}.auth-brand-copy{margin:38px 0 10px}.auth-brand-copy h1{font-size:28px}.auth-content{padding:22px 14px}.auth-card{padding:25px 20px;border-radius:15px}.recovery-codes{grid-template-columns:1fr}}
