@import url('./portal-shell.css?v=mobile1');
.portal-gate{min-height:100svh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at top right,#ffdc7590,transparent 60%),var(--bg,#fff7e6);font-family:Arial,Helvetica,sans-serif;color:var(--text,#2b1f16)}
.portal-login{box-sizing:border-box;width:min(100%,430px);display:grid;gap:17px;padding:36px;background:var(--panel,#fffdf8);border:1px solid var(--line,#f1d7a8);border-top:5px solid #d71920;border-radius:18px;box-shadow:0 18px 55px #59351018}
.portal-login-logo{width:120px;height:70px;object-fit:contain;justify-self:center}
.portal-login h1{font-size:27px;margin:0;line-height:1.2}.portal-login p{margin:0;color:var(--muted,#705d4a);line-height:1.5}
.portal-login .portal-login-eyebrow{font-size:11px;font-weight:700;letter-spacing:1.3px;color:var(--brand,#d71920)}
.portal-login label{display:grid;gap:7px;font-size:14px;font-weight:700;color:var(--text,#2b1f16)}
.portal-login input{box-sizing:border-box;width:100%;min-height:46px;border:1px solid var(--line-strong,#d6aa5a);border-radius:9px;padding:10px 12px;font:inherit;background:var(--panel,#fffdf8);color:var(--text,#2b1f16)}
.portal-login button{font:inherit;border-radius:9px;padding:12px;cursor:pointer;background:#d71920;color:white;border:1px solid #d71920;font-weight:700;min-height:46px}
.portal-login button:disabled{opacity:.65;cursor:wait}.portal-login button:focus-visible,.portal-login input:focus-visible{outline:3px solid #ffbf00;outline-offset:3px}
.portal-login #portalSwitch{background:transparent;color:var(--text,#2b1f16);border-color:var(--line-strong,#d6aa5a)}
#portalStatus{font-size:14px;min-height:22px}#portalHome{color:var(--brand,#d71920)}
[hidden],.portal-denied{display:none!important}
.portal-shortcuts{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-top:20px}.portal-shortcuts a,.portal-shortcuts button{padding:20px;border:1px solid var(--line);border-radius:10px;color:var(--text);background:var(--panel);text-decoration:none;text-align:left;font:inherit;cursor:pointer}
#view-inicio{align-content:start}#view-inicio h1{margin:0}#view-inicio>p{margin:0;color:var(--muted)}.portal-shortcuts{align-content:start}
#portalAuthenticated button:is(#loginBtn,#logoutBtn,#logout,#loginOpen,#login){display:none!important}
.portal-session{font:13px Arial,sans-serif;display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 18px;background:var(--panel,#fffdf8);color:var(--text,#2b1f16);border-bottom:1px solid var(--line,#f1d7a8)}.portal-session button{margin-left:auto;cursor:pointer;padding:7px 16px;border-radius:8px;border:1px solid var(--line-strong,#d6aa5a);background:var(--panel);color:var(--text)}
@media(max-width:480px){.portal-gate{padding:16px}.portal-login{padding:25px;gap:16px}.portal-login h1{font-size:24px}}

/* Hide credentials at first paint, including while the module is downloading. */
#portalGate:not([data-state="login"]) #portalLogin{display:none!important}
#portalGate[data-state="login"] .portal-access-loading{display:none!important}
#portalGate:not([data-state="login"]){background:var(--bg,#fff7e6)}
#portalGate:not([data-state="login"])::before{content:"";position:fixed;top:0;left:0;height:3px;width:35%;background:#d71920;animation:portal-access-progress 1.2s ease-in-out infinite}
#portalGate[data-state="error"]::before{animation:none;width:100%}
.portal-access-loading{display:grid;gap:16px;justify-items:center;max-width:430px;text-align:center;font:14px Arial,sans-serif;color:var(--muted,#705d4a)}
.portal-access-loading p{margin:0;line-height:1.5}
#portalGate:not([data-state="error"]) .portal-access-loading p{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.portal-access-loading button,.portal-access-loading a{font:inherit;color:var(--text,#2b1f16);background:var(--panel,#fffdf8);border:1px solid var(--line-strong,#d6aa5a);border-radius:8px;padding:12px 20px;cursor:pointer;text-decoration:none}
@keyframes portal-access-progress{from{transform:translateX(-110%)}to{transform:translateX(390%)}}
@media(prefers-reduced-motion:reduce){#portalGate:not([data-state="login"])::before{animation:none;width:100%;opacity:.65}}
