/* ECP sign-in follows the Troca Pontos Design System signin composition. */
body.internal-login{margin:0;background:#fff;color:#25002d;font-family:var(--tp-font-family);font-size:14px;line-height:1.5}
.login-shell[hidden],#login-form[hidden],.password-reset-panel[hidden]{display:none!important}
.login-shell{position:relative;display:flex;width:100%;min-height:100vh;overflow:hidden;background:#fff;color:#25002d}
.login-form-panel{display:flex;flex:1;flex-direction:column;min-width:0;min-height:100vh;padding:0 clamp(28px,7vw,96px);background:#fff}
.login-topbar{width:100%;max-width:444px;margin:0 auto;padding:38px 0 18px}
.login-context{display:inline-flex;align-items:center;gap:6px;color:#6f6677;font-size:14px}
.login-form-content{display:flex;flex:1;flex-direction:column;justify-content:center;width:100%;max-width:448px;margin:0 auto;padding:34px 0 44px}
.login-card{width:100%;max-width:none;min-width:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.login-mobile-brand{display:none;flex-direction:column;align-items:flex-start;margin:0 0 28px;color:#25002d}
.login-heading{margin:0 0 38px}
.login-card h1,.login-card h2{margin:0 0 10px;color:#25002d;font-size:clamp(2rem,4vw,2.35rem);font-weight:600;line-height:1.1;letter-spacing:-.025em}
.login-intro{margin:0;color:#726b78;font-size:.9rem;line-height:1.5}
@media(min-width:600px){.login-card>.login-heading .login-intro{width:max-content;white-space:nowrap}}
.login-card form{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
.password-reset-panel{width:100%}
.password-reset-panel .login-heading{margin-bottom:24px}
.login-field-group{min-width:0}
.login-card .form-label{display:block;margin:0 0 7px;color:#514659;font-size:.875rem;font-weight:600;line-height:1.35}
.login-card form .login-field-group+.login-field-group,.login-card form>label:not(:first-child){margin-top:20px}
.auth-required{color:#b0003b}
.login-card .field{display:block;width:100%;min-width:0;height:44px;min-height:44px;margin:0;padding:10px 16px;border:1px solid #c6c6c6;border-radius:8px;background:#fff;box-shadow:0 1px 2px rgb(37 0 45 / 4%);color:#25002d;font:400 14px/22px var(--tp-font-family);transition:border-color .15s,box-shadow .15s}
.login-card .field::placeholder{color:#9b9b9b;opacity:1}
.login-card .field:hover{border-color:#9b9b9b}
.login-card .field:focus{border-color:#d58ae3;outline:0;box-shadow:0 0 0 3px rgb(107 0 128 / 10%)}
.password-field{position:relative}
.password-field .field{padding-right:48px}
.password-field .admin-login-password-toggle{position:absolute;top:50%;right:5px;display:grid;width:38px;height:38px;min-height:38px;place-items:center;padding:0;transform:translateY(-50%);border:0;border-radius:6px;background:transparent;color:#726b78;cursor:pointer}
.password-field .admin-login-password-toggle:hover{background:#f4f4f4;color:#6b0080}
.admin-login-password-toggle svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.admin-login-password-toggle .admin-login-eye-hide{display:none}
.password-field .admin-login-password-toggle[aria-pressed=true] .admin-login-eye-show{display:none}
.password-field .admin-login-password-toggle[aria-pressed=true] .admin-login-eye-hide{display:block}
.login-options{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}
.remember-option{position:relative;display:inline-flex;min-height:24px;align-items:center;gap:10px;color:#514659;font-size:14px;cursor:pointer;user-select:none}
.remember-option input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}
.remember-check{display:grid;width:20px;height:20px;flex:none;place-items:center;border:1.25px solid #c6c6c6;border-radius:5px;background:transparent;color:#fff;transition:background .15s,border-color .15s}
.remember-check svg{width:14px;height:14px;opacity:0}
.remember-option input:checked+.remember-check{border-color:#6b0080;background:#6b0080}
.remember-option input:checked+.remember-check svg{opacity:1}
.remember-option input:focus-visible+.remember-check{outline:3px solid rgb(107 0 128 / 20%);outline-offset:2px}
.login-forgot,.login-secondary{display:inline-flex;min-height:28px;align-items:center;justify-content:center;padding:4px 0;border:0;background:transparent;color:#6b0080;font:500 14px/20px var(--tp-font-family);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.login-forgot:hover,.login-secondary:hover{color:#81009b}
.login-submit{display:flex;width:100%;min-height:44px;align-items:center;justify-content:center;margin:20px 0 0;padding:10px 16px;border:0;border-radius:8px;background:#6b0080;color:#fff;box-shadow:0 1px 2px rgb(37 0 45 / 10%);font:500 14px/20px var(--tp-font-family);cursor:pointer;transition:background .15s,box-shadow .15s}
.login-submit:hover:not(:disabled){background:#81009b}
.login-submit:focus-visible{outline:3px solid rgb(107 0 128 / 24%);outline-offset:2px}
.login-submit:disabled{cursor:wait;opacity:.65}
.login-error,.password-reset-message{margin:0;padding:12px 14px;border:1px solid #b0003b;border-radius:8px;background:#ffdbE7;color:#b0003b;font-size:13px;line-height:20px}
.password-reset-message{border-color:#00664e;background:#e8f7f0;color:#205f49}
.password-reset-panel .login-submit{margin-top:4px}
.password-reset-panel .login-secondary{width:100%;margin-top:6px}
.tp-brand-panel{position:relative;display:grid;width:50%;min-width:0;min-height:100vh;place-items:center;overflow:hidden;padding:40px;background:linear-gradient(135deg,#4b005a 0%,#6b0080 58%,#81009b 100%);isolation:isolate}
.tp-graphics{position:absolute;z-index:-1;inset:0;overflow:hidden}
.tp-orb{position:absolute;top:-240px;left:-130px;width:420px;height:420px;border-radius:50%;background:color-mix(in srgb,#81009b 14%,transparent)}
.tp-arc-outline{position:absolute;right:-120px;bottom:-330px;width:620px;height:620px;border:2px solid color-mix(in srgb,#81009b 35%,transparent);border-radius:50%}
.tp-accent-line{position:absolute;top:22%;right:64px;width:120px;height:3px;transform:rotate(-18deg);border-radius:999px;background:#d500ff}
.tp-dots{position:absolute;bottom:48px;left:48px;display:grid;grid-template-columns:repeat(3,8px);grid-auto-rows:8px;gap:8px}
.tp-dots i{display:block;width:8px;height:8px;border-radius:50%;background:rgb(255 255 255 / 45%)}
.login-brand-content{position:relative;z-index:2;display:block;width:min(calc(100% - 48px),448px);margin:0 auto;text-align:center}
.login-brand-tagline{margin:0 0 16px;color:#fff;font-size:clamp(1.8rem,3vw,2.25rem);font-weight:600;line-height:1.15;letter-spacing:-.025em}
.login-brand-description{max-width:470px;margin:0 auto;color:rgb(255 255 255 / 82%);font-size:clamp(1rem,1.7vw,1.18rem);line-height:1.5}
.login-theme-control{position:fixed;right:24px;bottom:24px;z-index:20}
.login-theme-toggle{display:inline-grid;width:56px;height:56px;place-items:center;border:0;border-radius:50%;background:#6b0080;color:#fff;box-shadow:0 4px 14px rgb(37 0 45 / 18%);cursor:pointer;transition:color .16s,background .16s,box-shadow .16s,transform .16s}
.login-theme-toggle:hover{background:#81009b;box-shadow:0 6px 18px rgb(37 0 45 / 24%);transform:translateY(-1px)}
.login-theme-toggle svg{display:block;width:20px;height:20px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.login-theme-toggle:focus-visible{outline:3px solid rgb(107 0 128 / 24%);outline-offset:3px}
.login-shell :is(input,button):focus-visible{outline-offset:2px}
html[data-theme=dark] .login-shell,html[data-theme=dark] .login-form-panel{background:#19151c;color:#f4f0f5}
html[data-theme=dark] .login-card h1,html[data-theme=dark] .login-card h2{color:#fff}
html[data-theme=dark] .login-intro,html[data-theme=dark] .login-context{color:#c6bccb}
html[data-theme=dark] .login-card .form-label,html[data-theme=dark] .remember-option{color:#c6bccb}
html[data-theme=dark] .login-card .field{border-color:#514757;background:#251f29;color:#fff}
html[data-theme=dark] .login-card .field::placeholder{color:#a79aaf}
html[data-theme=dark] .login-card .field:focus{border-color:#ca70dc;box-shadow:0 0 0 3px rgb(202 112 220 / 15%)}
html[data-theme=dark] .password-field .admin-login-password-toggle{color:#c6bccb}
html[data-theme=dark] .password-field .admin-login-password-toggle:hover{background:#332a39;color:#e5acef}
html[data-theme=dark] .remember-check{border-color:#938697}
html[data-theme=dark] .login-forgot,html[data-theme=dark] .login-secondary{color:#e5acef}
html[data-theme=dark] .login-forgot:hover,html[data-theme=dark] .login-secondary:hover{color:#f3cefa}
html[data-theme=dark] .login-submit{background:#6b0080}
html[data-theme=dark] .login-submit:hover:not(:disabled){background:#81009b}
html[data-theme=dark] .login-error{border-color:#ff80aa;background:#33212a;color:#ffb4ce}
html[data-theme=dark] .password-reset-message{border-color:#00aa83;background:#20352f;color:#a4e3c6}
html[data-theme=dark] .login-theme-toggle{background:#6b0080}
@media(max-width:1023px){.login-shell{display:block;max-width:100vw;overflow-x:hidden}.login-reference-panel{display:none}.login-form-panel{width:100%;max-width:100vw;padding-inline:clamp(24px,8vw,72px)}.login-form-content{max-width:448px}.login-mobile-brand{display:flex}}
@media(max-width:620px){.login-form-panel{padding-inline:24px}.login-topbar{padding-top:22px}.login-form-content{padding-top:22px;padding-bottom:100px}.login-heading{margin-bottom:30px}.login-mobile-brand{margin-bottom:28px}.login-options{align-items:flex-start}.remember-option,.login-forgot{font-size:13px}.login-theme-control{right:18px;bottom:18px}}
@media(max-width:360px){.login-options{gap:6px}.remember-option{gap:7px;font-size:12px}.login-forgot{font-size:12px}}
