.admin-login-page{--admin-ink:#18201f;--admin-muted:#6f7973;--admin-green:#268174;min-height:100vh;background:#f3f6f6;display:grid;grid-template-columns:minmax(360px,44%) 1fr;color:var(--admin-ink)}
.admin-login-aside{position:relative;overflow:hidden;background:#102421;color:#fff;padding:42px 54px;display:flex;flex-direction:column;justify-content:space-between}.admin-login-aside:before{content:'';position:absolute;width:520px;height:520px;border-radius:50%;border:1px solid #ffffff12;right:-310px;top:-210px;box-shadow:0 0 0 80px #ffffff05,0 0 0 160px #ffffff03}
.admin-brand{position:relative;display:flex;align-items:center;gap:11px;font:700 19px 'Bricolage Grotesque'}.admin-brand-mark{width:34px;height:34px;border-radius:10px;background:#298f7f;display:grid;place-items:center;color:#fff}.admin-brand-badge{font:600 9px 'DM Sans';letter-spacing:1.1px;color:#d2f47c;border:1px solid #3b5b56;border-radius:5px;padding:4px 6px;margin-left:5px}
.admin-aside-copy{position:relative;max-width:430px;margin:auto 0}.admin-aside-copy span{display:inline-flex;align-items:center;gap:7px;color:#cbf366;font-size:11px;font-weight:700;letter-spacing:1.3px;text-transform:uppercase;margin-bottom:18px}.admin-aside-copy h1{font:700 38px/1.18 'Bricolage Grotesque';margin:0 0 18px;letter-spacing:-1px}.admin-aside-copy p{color:#abc0bd;font-size:14px;line-height:1.65;margin:0;max-width:390px}.admin-security-note{position:relative;display:flex;align-items:center;gap:10px;color:#83988d;font-size:10px;border-top:1px solid #263b38;padding-top:20px}
.admin-login-main{display:grid;place-items:center;padding:50px}.admin-login-card{width:100%;max-width:400px}.admin-login-heading{margin-bottom:28px}.admin-login-heading small{display:block;color:var(--admin-green);font-size:10px;font-weight:700;letter-spacing:1.25px;margin-bottom:10px;text-transform:uppercase}.admin-login-heading h2{font:700 27px 'Bricolage Grotesque';margin:0 0 8px}.admin-login-heading p{margin:0;color:var(--admin-muted);font-size:13px}
.admin-field{margin:17px 0}.admin-field label{display:block;font-size:11px;font-weight:700;margin-bottom:7px}.admin-input{height:46px;border:1px solid #d9e0dc;border-radius:9px;background:#fff;display:flex;align-items:center;padding:0 13px;gap:10px;transition:.2s}.admin-input:focus-within{border-color:var(--admin-green);box-shadow:0 0 0 3px #0d9a6016}.admin-input svg{width:17px;color:#859089;flex:none}.admin-input input{border:0;outline:0;background:transparent;width:100%;height:100%;font:13px 'DM Sans';color:var(--admin-ink)}.admin-password-toggle{border:0;background:none;color:#748078;cursor:pointer;padding:5px;font-size:15px}
.admin-login-options{display:flex;justify-content:space-between;align-items:center;margin:12px 0 21px;font-size:11px;color:var(--admin-muted)}.admin-login-options label{display:flex;align-items:center;gap:7px;cursor:pointer}.admin-login-options input{accent-color:var(--admin-green)}.admin-login-options a{color:#1d564e;text-decoration:none}.admin-submit{height:46px;width:100%;border:0;border-radius:9px;background:#237a6d;color:#fff;font:700 12px 'DM Sans';cursor:pointer;box-shadow:0 8px 20px #118c5b22;transition:.2s}.admin-submit:hover{background:#1d6258;transform:translateY(-1px)}
.admin-login-error{display:none;color:#b5413b;background:#fff0ef;border:1px solid #f3d1ce;border-radius:8px;padding:10px 12px;margin-bottom:14px;font-size:11px}.admin-login-error.show{display:block}.admin-back{display:block;margin:24px auto 0;border:0;background:none;color:#76817a;font:500 11px 'DM Sans';cursor:pointer}.admin-back:hover{color:#1d564e}
@media(max-width:780px){.admin-login-page{grid-template-columns:1fr}.admin-login-aside{min-height:220px;padding:28px}.admin-aside-copy{margin:35px 0 10px}.admin-aside-copy h1{font-size:28px}.admin-aside-copy p,.admin-security-note{display:none}.admin-login-main{padding:42px 24px}}
.admin-dashboard{min-height:100vh;background:#f3f6f6}.admin-dashboard>header{height:70px;background:#102421;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 34px}.admin-dashboard>header>div:last-child{display:flex;align-items:center;gap:18px;font-size:12px}.admin-dashboard>header button{border:1px solid #ffffff30;background:transparent;color:#fff;border-radius:7px;padding:8px 13px;cursor:pointer}.admin-dashboard main{padding:48px;max-width:1180px;margin:auto}.admin-dashboard main>small{color:#23786b;font-weight:700;letter-spacing:1.2px}.admin-dashboard h1{font:700 30px 'Bricolage Grotesque';margin:12px 0 5px}.admin-dashboard main>p{color:#6f7973}.admin-dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:35px}.admin-dashboard-grid article{background:#fff;border:1px solid #e1e7e3;border-radius:12px;padding:22px}.admin-dashboard-grid article>span,.admin-dashboard-grid article>small{display:block;color:#7b867f;font-size:11px}.admin-dashboard-grid strong{display:block;font:700 27px 'Bricolage Grotesque';margin:12px 0}.admin-dashboard-grid strong.online{color:#237a6d;font-size:20px}@media(max-width:700px){.admin-dashboard main{padding:30px 20px}.admin-dashboard-grid{grid-template-columns:1fr}}

/* ---------- login administrativo com cena animada ---------- */
.admin-stage{position:relative;display:block;min-height:100vh;height:100vh;overflow:hidden;background:#081513;color:#e4f1ef;grid-template-columns:none}
.as-svg{position:absolute;inset:0;display:block;width:100%;height:100%}
.admin-stage.is-playing .admin-cta{pointer-events:none}
.admin-stage-copy{position:absolute;left:clamp(24px,4vw,58px);top:clamp(24px,4vh,46px);right:auto;max-width:min(460px,42vw);z-index:2;pointer-events:none;display:grid;gap:22px}
.admin-stage-copy .admin-brand{display:flex;align-items:center;gap:10px;font:700 20px 'Bricolage Grotesque';color:#fff}
.admin-stage-copy .admin-brand-mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#2f8a7c,#1d564e);display:grid;place-items:center;color:#fff;font-size:17px;box-shadow:0 8px 20px rgba(47,138,124,.35)}
.admin-stage-copy .admin-brand-badge{font:700 9px 'DM Sans';letter-spacing:1.4px;border:1px solid rgba(200,246,83,.45);color:#c8f653;border-radius:6px;padding:3px 7px}
.admin-aside-copy span{display:inline-block;font:700 10.5px 'DM Sans';letter-spacing:1.6px;text-transform:uppercase;color:#c8f653;margin-bottom:12px}
.admin-aside-copy h1{font:800 clamp(30px,3.4vw,46px)/1.08 'Bricolage Grotesque';margin:0 0 14px;letter-spacing:-.02em;color:#fff;text-wrap:balance}
.admin-aside-copy p{margin:0;font-size:14px;line-height:1.65;color:#a9c4c0;max-width:44ch}
.admin-security-note{font-size:11.5px;color:#7fa39e;border-top:1px solid rgba(255,255,255,.08);padding-top:16px}

/* botão que dispara a cena */
.admin-cta{position:absolute;left:clamp(24px,17vw,300px);bottom:clamp(80px,18vh,190px);z-index:3;display:grid;justify-items:center;gap:3px;padding:14px 26px;border:0;border-radius:16px;background:linear-gradient(135deg,#2f8a7c,#1d564e);color:#fff;cursor:pointer;font-family:inherit;box-shadow:0 16px 40px rgba(39,112,101,.45);transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s,opacity .4s}
.admin-cta-label{font:700 15px 'Bricolage Grotesque'}
.admin-cta small{font-size:10.5px;opacity:.85}
.admin-cta-ring{position:absolute;inset:-6px;border-radius:22px;border:1.5px solid rgba(200,246,83,.5);animation:admin-ring 2.4s ease-out infinite}
.admin-cta:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 22px 52px rgba(39,112,101,.6)}
.admin-cta:active{transform:scale(.97)}
.admin-cta:focus-visible{outline:2px solid #c8f653;outline-offset:4px}
.admin-cta.is-gone{opacity:0;transform:translateY(14px) scale(.94);pointer-events:none}

/* cartão de acesso: entra vazio e só abre os campos quando a mão encosta */
.admin-login-card{position:absolute;right:clamp(20px,6vw,90px);top:50%;translate:0 -50%;z-index:2;width:min(392px,42vw);max-width:392px;max-height:calc(100vh - 48px);overflow:auto;padding:26px 28px;border:1px solid rgba(200,246,83,.28);border-radius:22px;background:rgba(14,38,34,.82);backdrop-filter:blur(14px);box-shadow:0 30px 80px rgba(0,0,0,.5);color:#e4f1ef;opacity:0;transition:border-color .5s,box-shadow .5s;pointer-events:none}
.admin-login-card.is-visible{pointer-events:none}
.admin-login-card.is-touched{border-color:rgba(200,246,83,.6);box-shadow:0 30px 80px rgba(0,0,0,.55),0 0 0 6px rgba(200,246,83,.12),0 0 60px rgba(200,246,83,.25)}
.admin-login-card.is-open{pointer-events:auto}
.admin-card-mark{display:grid;place-items:center;width:44px;height:44px;margin:0 auto 14px;border-radius:14px;background:linear-gradient(135deg,#2f8a7c,#1d564e);color:#fff;font:700 21px 'Bricolage Grotesque';box-shadow:0 10px 26px rgba(47,138,124,.4)}
.admin-login-card .admin-login-heading{margin-bottom:0;text-align:center}
.admin-login-card .admin-login-heading small{color:#c8f653}
.admin-login-card .admin-login-heading h2{color:#fff;font-size:22px;margin:0 0 6px}
.admin-login-card .admin-login-heading p{color:#a9c4c0;font-size:12.5px}
/* os campos entram um a um depois do toque */
.admin-card-fields{display:grid;gap:0;overflow:hidden;max-height:0;opacity:0;transition:max-height .7s cubic-bezier(.2,.8,.2,1),opacity .5s ease,margin-top .5s}
.admin-login-card.is-open .admin-card-fields{max-height:460px;opacity:1;margin-top:20px}
.admin-card-fields>*{opacity:0;transform:translateY(10px);transition:opacity .45s ease,transform .5s cubic-bezier(.2,.8,.2,1)}
.admin-login-card.is-open .admin-card-fields>*{opacity:1;transform:none}
.admin-login-card.is-open .admin-field:nth-of-type(1){transition-delay:.1s}
.admin-login-card.is-open .admin-field:nth-of-type(2){transition-delay:.22s}
.admin-login-card.is-open .admin-login-options{transition-delay:.34s}
.admin-login-card.is-open .admin-submit{transition-delay:.44s}
.admin-login-card.is-open .admin-back{transition-delay:.54s}
.admin-login-card .admin-field label{color:#a9c4c0}
.admin-login-card .admin-input{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);color:#e4f1ef}
.admin-login-card .admin-input:focus-within{border-color:#c8f653;box-shadow:0 0 0 4px rgba(200,246,83,.16);background:rgba(200,246,83,.08)}
.admin-login-card .admin-input input{color:#fff;background:transparent}
.admin-login-card .admin-input input::placeholder{color:rgba(228,241,239,.42)}
/* preenchimento automático do navegador continua escuro */
.admin-login-card .admin-input input:-webkit-autofill,.admin-login-card .admin-input input:-webkit-autofill:hover,.admin-login-card .admin-input input:-webkit-autofill:focus{-webkit-text-fill-color:#fff;caret-color:#fff;-webkit-box-shadow:0 0 0 1000px #17302c inset;box-shadow:0 0 0 1000px #17302c inset;border-radius:8px;transition:background-color 9999s ease-out}
.admin-login-card .admin-input:has(input:-webkit-autofill){background:#17302c}
.admin-login-card .admin-input svg{stroke:#7fa39e}
.admin-login-card .admin-password-toggle{color:#7fa39e;background:none}
.admin-login-card .admin-login-options{color:#a9c4c0}
.admin-login-card .admin-login-options a{color:#c8f653}
.admin-login-card .admin-submit{background:linear-gradient(135deg,#2f8a7c,#1d564e);box-shadow:0 10px 26px rgba(39,112,101,.4)}
.admin-login-card .admin-back{color:#7fa39e;background:none;border:0}
.admin-login-card .admin-login-error{background:rgba(226,87,74,.16);border-color:rgba(255,138,122,.35);color:#ff9c92}

@keyframes admin-ring{0%{transform:scale(.96);opacity:.7}100%{transform:scale(1.25);opacity:0}}
@media(max-width:900px){
  .admin-stage{height:auto;min-height:100vh;overflow:visible}
  .admin-scene{height:56vh;position:relative}
  .admin-stage-copy{position:static;max-width:none;padding:24px 20px 0}
  .admin-cta{position:static;margin:18px auto 0}
  .admin-login-card{position:static;width:auto;max-width:none;translate:none;max-height:none;margin:20px;opacity:1}
}
@media(prefers-reduced-motion:reduce){
  .admin-cta-ring{animation:none}
  .admin-cta,.admin-login-card,.admin-card-fields,.admin-card-fields>*{transition:none}
}
