/* Paleta copiada dos valores de /opt/unifi-branding/theme.css, sem alterar o UniFi. */
:root{--ibr-blue:#087fda;--ibr-cyan:#16aee4;--ibr-royal:#123fae;--ibr-navy:#071e50;--ibr-ink:#15171a;--ibr-copy:#5f6d83;--accent:#087fda}
.login-body,.admin-body{position:relative;background:radial-gradient(circle at 85% 78%,#1259c8 0,#0c367f 34%,#061d4b 76%);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ibr-ink)}
.login-body:before,.admin-body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.17;background-image:radial-gradient(circle,#3a92e4 1.2px,transparent 1.5px);background-size:31px 31px}
.login-body{display:grid;place-items:center;padding:20px;min-height:100dvh}
.login-body .portal-shell{position:relative;z-index:1;width:min(1120px,calc(100vw - 40px));min-height:520px;grid-template-columns:minmax(0,1.18fr) minmax(350px,.82fr);border:1px solid rgba(76,156,255,.6);border-radius:22px;box-shadow:0 28px 75px rgba(0,10,45,.42);animation:loginPanel .75s cubic-bezier(.2,.75,.25,1) both}
.login-body .hero{padding:52px clamp(44px,5vw,72px);gap:28px;justify-content:center;min-height:min(650px,calc(100dvh - 40px))}
.login-body .hero:after{background:linear-gradient(90deg,var(--ibr-blue),var(--ibr-cyan),#a3dcf2)}
.login-body .brand-logo{width:215px;max-height:55px;margin:0;animation:loginRise .65s .18s ease-out both}
.login-body .hero-copy{margin:36px 0 0;animation:loginRise .7s .28s ease-out both}
.login-body .hero-copy h1{font-size:clamp(34px,4vw,53px);line-height:1.02;letter-spacing:-.055em;font-weight:720;color:var(--ibr-ink)}
.login-accent{color:#0875d1}
.login-body .hero-copy>p{margin:18px 0 25px;color:var(--ibr-copy);font-size:13px;line-height:1.6}
.login-body .eyebrow{color:#096fc5;background:#eef7fd;font-size:9px;letter-spacing:.15em;margin-bottom:18px;padding:9px 14px}
.login-body .dot{background:var(--ibr-cyan);box-shadow:0 0 0 4px rgba(22,174,228,.12)}
.login-body .benefits{grid-template-columns:repeat(3,1fr);gap:13px;margin-top:0}
.login-body .benefits article{padding:17px 15px 16px;border:1px solid #e8edf1;border-radius:12px;box-shadow:0 10px 26px rgba(25,59,82,.055)}
.login-body .benefit-icon{background:linear-gradient(145deg,var(--ibr-cyan),var(--ibr-blue));width:31px;height:31px;border-radius:9px;font-size:14px}
.login-body .benefits strong{color:#23364a;font-size:11px}.login-body .benefits small{color:#8391a0;font-size:9px;line-height:1.45}
.login-body .operator{font-size:9px;color:#8391a0}
.login-body .form-panel{position:relative;overflow:hidden;padding:38px;background:linear-gradient(145deg,#0a2f78 0%,#123fae 50%,#0759bd 100%);align-items:center}
.login-body .form-panel:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.18;background-image:radial-gradient(circle,#4aaeff 1.3px,transparent 1.6px);background-size:31px 31px}
.login-body .form-panel>*{position:relative;z-index:1;max-width:310px;width:100%;animation:loginForm .7s .35s cubic-bezier(.2,.75,.25,1) both}
.login-body .form-panel .wifi-icon{width:52px;height:52px;border-radius:14px;margin:0 auto 14px;color:white}
.login-body .form-panel h2{font-size:23px;font-weight:630;margin-bottom:7px}
.login-body .form-subtitle{color:#bed6ff;font-size:10px;margin-bottom:27px}
.login-body .form-panel label{font-size:10px;font-weight:600;margin:0 0 7px;line-height:1.2}
.login-body .form-panel input{height:40px;font-size:12px;color:#263a50;border:1px solid rgba(255,255,255,.35);border-radius:5px;padding:0 13px;margin-bottom:15px;box-shadow:0 7px 18px rgba(0,20,83,.13)}
.login-body .form-panel input:focus{border-color:#82d2ff;box-shadow:0 0 0 3px rgba(130,210,255,.22)}
.login-body .form-panel button,.admin-content button{background:#078af1;border:1px solid rgba(255,255,255,.16);border-radius:5px;box-shadow:0 11px 24px rgba(0,21,92,.24)}
.login-body .form-panel button{height:40px;min-height:40px;padding:0;font-size:11px;font-weight:750;letter-spacing:.09em;text-transform:uppercase;margin:9px 0 0}
.login-body .form-panel button:hover,.admin-content button:hover{background:#11a0ff}
.login-body .panel-footer{margin-top:19px;padding-top:14px;border-top:1px solid rgba(255,255,255,.14);color:#a9c5ee;font-size:9px}
.admin-frame{position:relative;z-index:1;border-color:rgba(76,156,255,.6);box-shadow:0 28px 75px rgba(0,10,45,.42);animation:loginPanel .75s cubic-bezier(.2,.75,.25,1) both}
.admin-sidebar{background-image:radial-gradient(circle,rgba(74,174,255,.18) 1.3px,transparent 1.6px),linear-gradient(145deg,#0a2f78 0%,#123fae 50%,#0759bd 100%);background-size:31px 31px,100% 100%}
.admin-content a{color:#0875d1}.section-marker{background:linear-gradient(var(--ibr-blue),var(--ibr-cyan))}.summary-icon{color:var(--ibr-blue)}
@keyframes loginPanel{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}@keyframes loginRise{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}@keyframes loginForm{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
@media(max-width:760px){.login-body{padding:10px}.login-body .portal-shell{width:calc(100vw - 20px);grid-template-columns:1fr;min-height:0;border-radius:16px}.login-body .hero{padding:24px 25px;min-height:0;gap:20px}.login-body .brand-logo{width:170px;max-height:43px}.login-body .hero-copy{margin:0}.login-body .hero-copy h1{font-size:clamp(24px,7vw,34px)}.login-body .eyebrow{margin-bottom:9px;padding:6px 10px;font-size:7px}.login-body .hero-copy>p{margin:8px 0 0;font-size:10px;line-height:1.35}.login-body .benefits{display:none}.login-body .form-panel{padding:25px}.login-body .form-panel>*{max-width:300px}.login-body .form-panel .wifi-icon{width:40px;height:40px;margin-bottom:7px}.login-body .form-panel h2{font-size:18px}.login-body .form-subtitle{font-size:8px;margin-bottom:16px}.login-body .form-panel input{height:35px;margin-bottom:12px}.login-body .form-panel button{height:36px;min-height:36px}.login-body .panel-footer{margin-top:14px;padding-top:10px}}
@media(prefers-reduced-motion:reduce){.login-body .portal-shell,.login-body .brand-logo,.login-body .hero-copy,.login-body .form-panel>*,.admin-frame{animation:none}}
