/* Escopo exclusivo do login. Política: docs/design/LOGIN_FREEZE.md. */
.approved-login { --login-navy:#0d2058; --login-ink:#080f32; --login-blue:#005bea; --login-muted:#45577e; --login-bg:#f1f6fe; --login-border:#cbd4e5; width:100%; min-height:100svh; display:flex; align-items:center; background:radial-gradient(ellipse at 76% 45%,#dfedff,transparent 58%),var(--login-bg); color:var(--login-ink); font-family:Arial,Helvetica,sans-serif; }
.public-page:has(.approved-login) { display:block; width:100%; max-width:none; padding:0; margin:0; }
.approved-login * { box-sizing:border-box; }
.approved-scene { position:relative; width:100%; max-width:1920px; aspect-ratio:1672/941; min-height:740px; margin:auto; isolation:isolate; overflow:hidden; }
.login-mask-definitions { position:absolute; }
.approved-photo { position:absolute; left:23.923445%; top:0; width:36.602871%; height:75.664187%; background-image:url("../img/login-modern-family.d45f6dbca84a.webp"); background-size:cover; background-position:60% center; background-repeat:no-repeat; clip-path:url('#login-photo-shape'); mask-image:linear-gradient(90deg,transparent,black 25%,black 94%,transparent),linear-gradient(90deg,transparent,rgba(0,0,0,.2) 35%,black 60%,black 94%,transparent),linear-gradient(180deg,transparent 67%,black 80%); mask-composite:intersect,add; z-index:-2; }
.approved-wave { position:absolute; top:61.5%; left:0; width:100%; height:19%; z-index:-1; pointer-events:none; }
.approved-brand { position:absolute; left:5.98%; top:9.35%; display:flex; align-items:center; gap:clamp(17px,1.45vw,25px); color:var(--login-navy); text-decoration:none; }
.approved-logo { display:flex; align-items:center; justify-content:center; width:clamp(65px,5.38vw,95px); aspect-ratio:1; background:linear-gradient(145deg,#0679f5,#0053d9); border-radius:31%; overflow:hidden; }
.approved-logo img { width:22%; height:22%; transform:scale(14.5); filter:brightness(0) invert(1); }
.approved-brand-copy > span { display:flex; align-items:baseline; gap:9px; }
.approved-brand-copy strong { font-size:clamp(38px,3vw,54px); line-height:1; letter-spacing:-.055em; font-weight:800; }
.approved-brand-copy .erp-word { font-size:clamp(23px,1.84vw,33px); font-weight:400; letter-spacing:-.04em; }
.approved-brand-copy small { display:block; font-size:clamp(16px,1.3vw,23px); margin-top:10px; letter-spacing:-.025em; }
.approved-intro { position:absolute; left:5.98%; top:26.35%; width:36%; color:var(--login-navy); }
.approved-intro h1 { max-width:none; color:var(--login-navy); font-size:clamp(34px,2.75vw,51px); line-height:1.23; font-weight:750; letter-spacing:-.035em; margin:0 0 28px; }
.approved-intro p { font-size:clamp(15px,1.25vw,22px); line-height:1.5; letter-spacing:-.025em; color:var(--login-muted); margin:0; }
.approved-accent { display:block; width:clamp(44px,3.7vw,66px); height:7px; border-radius:6px; background:var(--login-blue); margin-top:32px; }
.approved-panel { position:absolute; top:9.45%; right:4.55%; width:34.87%; border-radius:clamp(27px,2.4vw,42px); background:#fffffffa; box-shadow:0 22px 46px #436da21b; padding:clamp(30px,3.05vw,55px); }
.approved-panel-heading { text-align:center; margin-bottom:32px; }
.approved-panel-heading p { font-size:clamp(12px,1.05vw,19px); color:var(--login-blue); letter-spacing:.14em; font-weight:700; margin:5px 0 15px; }
.approved-panel-heading h2 { font-size:clamp(29px,2.4vw,43px); line-height:1.22; font-weight:750; letter-spacing:-.045em; margin:0; color:var(--login-ink); }
.approved-field { margin-bottom:24px; }
.approved-field label { display:block; font-size:clamp(15px,1.2vw,22px); color:var(--login-ink); font-weight:700; margin-bottom:8px; }
.approved-input-wrap { position:relative; }
.approved-input-wrap > svg { position:absolute; width:25px; height:25px; left:20px; top:50%; transform:translateY(-50%); stroke:#5e7093; fill:none; stroke-width:1.8; pointer-events:none; }
.approved-login .approved-input-wrap input { display:block; width:100%; height:clamp(51px,3.47vw,64px); font:inherit; font-size:clamp(16px,1.2vw,22px); line-height:1.3; color:var(--login-ink); background:#ffffff80; border:1.5px solid var(--login-border); border-radius:11px; padding:12px 48px 12px 68px; }
.approved-input-wrap input::placeholder { color:#617095; opacity:1; }
.approved-input-wrap input:focus { outline:3px solid #005bea40; outline-offset:2px; border-color:var(--login-blue); box-shadow:none; }
.login-password-toggle { position:absolute; right:13px; top:50%; transform:translateY(-50%); height:34px; width:34px; display:flex; align-items:center; justify-content:center; padding:5px; border:0; background:transparent; cursor:pointer; color:#617095; border-radius:5px; }
.login-password-toggle[hidden] { display:none; }
.login-password-toggle svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.8; }
.approved-submit { display:block; width:100%; min-height:clamp(52px,3.53vw,65px); border:0; border-radius:12px; background:var(--login-blue); color:white; font:inherit; font-size:clamp(17px,1.25vw,23px); font-weight:700; cursor:pointer; margin-top:28px; box-shadow:0 3px 8px #005bea09; }
.approved-submit:hover { background:#004fd0; }
.approved-recovery { display:inline-block; font-size:clamp(15px,1.17vw,21px); line-height:1.4; color:var(--login-blue); margin-top:23px; text-decoration:none; }
.approved-recovery:hover { text-decoration:underline; }
.approved-login a:focus-visible,.approved-login button:focus-visible { outline:3px solid #327de7; outline-offset:4px; }
.login-auth-error { border-left:3px solid #c16a70; background:#fff5f5; color:#8c3541; border-radius:5px; padding:10px 12px; font-size:13px; line-height:1.5; margin:-12px 0 20px; }
.login-field-errors { font-size:12px; color:#8c3541; margin-top:7px; }
.login-field-errors ul { list-style:none; margin:0; padding:0; }
.approved-modules { position:absolute; bottom:8.9%; left:11.05%; right:7.25%; display:grid; grid-template-columns:24.4% 25.1% 25.1% 25.4%; }
.approved-module { display:flex; gap:clamp(13px,1.4vw,25px); align-items:flex-start; padding:0 0 0 clamp(16px,3vw,51px); border-left:1px solid #cbdff9; min-width:0; }
.approved-module:first-child { padding-left:0; border-left:0; }
.approved-module-icon { display:flex; justify-content:center; align-items:center; width:clamp(47px,4.08vw,73px); aspect-ratio:1; border-radius:29%; background:#d9eaff; color:var(--login-blue); flex-shrink:0; }
.approved-module-icon svg { width:53%; height:53%; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.approved-module h3 { margin:5px 0 6px; font-size:clamp(17px,1.25vw,23px); line-height:1.15; font-weight:700; letter-spacing:-.035em; color:var(--login-navy); }
.approved-module p { margin:0; color:var(--login-muted); font-size:clamp(12px,1.03vw,19px); line-height:1.45; letter-spacing:-.025em; }
@media(max-width:1150px) and (min-width:761px) { .approved-scene{min-height:800px} .approved-intro{top:27%;width:43%} .approved-intro h1{font-size:34px} .approved-intro p{font-size:15px;max-width:350px} .desktop-copy-break{display:none} .approved-panel{width:40%;top:11%;right:3%;padding:30px} .approved-panel-heading{margin-bottom:30px} .approved-brand{left:5%} .approved-modules{left:5%;right:3%;bottom:8%} .approved-module{padding:0 12px;gap:10px} .approved-module p{font-size:12px} .approved-photo{left:18%;width:43%;height:75.7%} }
@media(max-width:760px) { .approved-login{display:block} .approved-scene{aspect-ratio:auto;min-height:100svh;padding:28px 20px 36px;display:flex;flex-direction:column;gap:28px;overflow:hidden} .approved-brand{position:relative;left:auto;top:auto;gap:16px;order:1;align-self:flex-start} .approved-logo{width:62px} .approved-brand-copy strong{font-size:36px} .approved-brand-copy .erp-word{font-size:23px} .approved-brand-copy small{font-size:15px;margin-top:5px} .approved-panel{position:relative;inset:auto;order:2;width:100%;padding:30px 24px;border-radius:28px;box-shadow:0 12px 32px #436da217} .approved-panel-heading{margin-bottom:28px} .approved-panel-heading p{font-size:12px;margin-bottom:13px} .approved-panel-heading h2{font-size:31px} .approved-field label{font-size:15px} .approved-input-wrap input{height:53px;font-size:16px} .approved-submit{font-size:17px;min-height:53px} .approved-recovery{font-size:15px;margin-top:22px} .approved-intro{position:relative;inset:auto;order:3;width:100%;padding:10px 5px 14px;min-height:300px} .approved-intro h1{font-size:31px;max-width:340px;line-height:1.13;margin-bottom:20px} .approved-intro p{font-size:15px;max-width:290px;line-height:1.6} .desktop-copy-break{display:none} .approved-accent{height:5px;margin-top:23px} .approved-photo{left:22%;top:570px;width:83%;height:420px;opacity:.25;z-index:-2} .approved-wave{top:890px;height:170px;width:190%} .approved-modules{position:relative;inset:auto;order:4;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 12px} .approved-module,.approved-module:first-child{border:0;padding:0;gap:10px} .approved-module-icon{width:42px} .approved-module h3{font-size:16px;margin:2px 0 7px} .approved-module p{font-size:11px} .approved-module p br{display:none} }

@media(min-width:1151px) { .approved-module:last-child { padding-left:clamp(18px,3.8vw,65px); } }
