/* blank.css — Login e páginas públicas */
html,body{height:100%;overflow:hidden}

.layout-blank{
    background: var(--bg-base);
    position:relative;
}
.layout-blank::before{
    content:'';position:fixed;inset:0;z-index:0;
    background:
        radial-gradient(ellipse 70% 55% at 15% 0%,rgba(122,12,202,.18),transparent 60%),
        radial-gradient(ellipse 55% 45% at 85% 100%,rgba(246,3,80,.12),transparent 55%);
    pointer-events:none;
}

/* Orbes */
.bg-orbe{position:fixed;border-radius:50%;filter:blur(90px);opacity:.15;pointer-events:none;animation:orbeFloat 14s ease-in-out infinite}
.bg-orbe-1{width:450px;height:450px;background:var(--c-roxo-500);top:-180px;left:-130px;animation-delay:0s}
.bg-orbe-2{width:360px;height:360px;background:var(--c-pink-500);bottom:-130px;right:-90px;animation-delay:-5s}
.bg-orbe-3{width:220px;height:220px;background:#b010ef;top:40%;left:55%;animation-delay:-10s}
@keyframes orbeFloat{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(25px,-35px) scale(1.05)}66%{transform:translate(-18px,18px) scale(.95)}}

/* Login layout */
.login-page{position:relative;z-index:10;min-height:100vh;display:grid;grid-template-columns:1fr 440px 1fr;align-items:center}
.login-page--centered{grid-template-columns:1fr;justify-items:center;padding:32px 20px}
.login-page--centered .login-card{grid-column:1;width:100%;max-width:420px}

/* Aside */
.login-aside{grid-column:1;padding:48px;z-index:10;animation:sL .8s cubic-bezier(.16,1,.3,1) both}
@keyframes sL{from{opacity:0;transform:translateX(-35px)}to{opacity:1;transform:translateX(0)}}
.aside-tagline h2{font-family:var(--font-display);font-size:clamp(1.8rem,2.8vw,2.6rem);font-weight:800;line-height:1.1;letter-spacing:-.02em;margin-bottom:12px;color:var(--c-white)}
.aside-tagline h2 span{background:linear-gradient(135deg,var(--c-pink-500),var(--c-roxo-400));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.aside-tagline p{color:var(--c-text-muted);font-size:.9rem;line-height:1.65;max-width:300px;margin-bottom:20px}
.aside-features{list-style:none;display:flex;flex-direction:column;gap:9px}
.aside-features li{display:flex;align-items:center;gap:9px;color:var(--c-text-dim);font-size:.84rem}
.feat-dot{width:5px;height:5px;border-radius:50%;background:linear-gradient(var(--c-pink-500),var(--c-roxo-500));box-shadow:0 0 6px var(--c-pink-500);flex-shrink:0}

/* Card */
.login-card{
    grid-column:2;z-index:10;
    background:var(--bg-surface);
    border:1px solid var(--borda);
    border-radius:var(--radius-xl);
    padding:28px 36px 40px;
    position:relative;overflow:hidden;
    box-shadow:var(--shadow-lg);
    animation:fadeUp .7s cubic-bezier(.16,1,.3,1) .1s both;
}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.login-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--c-pink-500),var(--c-roxo-400) 60%,transparent)}

/* Logo */
.login-logo{text-align:center;margin-bottom:24px}
.login-logo img{width:110px;height:110px;object-fit:contain;margin:0 auto;filter:drop-shadow(0 0 20px rgba(122,12,202,.55));animation:logoPulse 4s ease-in-out infinite alternate}
@keyframes logoPulse{from{filter:drop-shadow(0 0 14px rgba(122,12,202,.45))}to{filter:drop-shadow(0 0 28px rgba(246,3,80,.5))}}
.login-logo span{display:none}

.login-title{font-family:var(--font-display);font-size:1.5rem;font-weight:800;letter-spacing:-.02em;margin-bottom:3px;color:var(--c-white)}
.login-sub{color:var(--c-text-muted);font-size:.85rem;margin-bottom:22px}

/* Botão primário — disponível em todos os layouts */
.btn-primary,.btn-full{--btn-bg:linear-gradient(135deg,var(--c-pink-500) 0%,#c0006e 45%,var(--c-roxo-500) 100%)}
/* ver components.css para definição completa */

.link-forgot{color:var(--c-text-muted);text-decoration:none;transition:color var(--duration-fast)}
.link-forgot:hover{color:var(--c-pink-400)}

/* Form */
.form-group{margin-bottom:14px}
.form-group label{display:block;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--c-text-muted);margin-bottom:6px}
.form-input-wrap{position:relative}
.form-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:.9rem;color:var(--c-text-muted);pointer-events:none;transition:color var(--duration-med)}
.form-input-wrap:focus-within .form-icon{color:var(--c-roxo-400)}
.form-input-wrap input{width:100%;background:var(--bg-surface2);border:1px solid var(--borda);border-radius:var(--radius-md);color:var(--c-text);font-size:.88rem;padding:11px 14px 11px 38px;outline:none;transition:border var(--duration-med),box-shadow var(--duration-med)}
.form-input-wrap input::placeholder{color:var(--c-text-muted)}
.form-input-wrap input:focus{border-color:var(--c-roxo-500);box-shadow:0 0 0 3px rgba(122,12,202,.15);background:var(--bg-surface3)}
.toggle-senha{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--c-text-muted);font-size:.95rem;cursor:pointer;padding:3px;transition:color var(--duration-fast)}
.toggle-senha:hover{color:var(--c-text)}

/* Extras */
.form-extras{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;font-size:.82rem}
.checkbox-label{display:flex;align-items:center;gap:7px;color:var(--c-text-muted);cursor:pointer;user-select:none}
.checkbox-label input{display:none}
.checkbox-box{width:15px;height:15px;border:1px solid var(--borda-hover);border-radius:3px;display:grid;place-items:center;transition:all var(--duration-fast)}
.checkbox-label input:checked~.checkbox-box{background:var(--c-roxo-500);border-color:var(--c-roxo-500)}
.checkbox-box::after{content:'✓';font-size:.6rem;color:white;display:none}
.checkbox-label input:checked~.checkbox-box::after{display:block}

/* Footer */
.login-footer{text-align:center;margin-top:22px;padding-top:18px;border-top:1px solid var(--borda);font-size:.7rem;color:var(--c-text-muted)}

/* Botão full */
.btn-full{width:100%}
.btn-text{display:block}
.btn-spinner{display:none;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:white;border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.btn-primary.loading .btn-text{display:none}
.btn-primary.loading .btn-spinner{display:block}

/* Alertas */
.alert{border-radius:var(--radius-md);padding:10px 14px;font-size:.84rem;margin-bottom:14px;display:flex;align-items:flex-start;gap:7px;line-height:1.5}
.alert-error{background:rgba(232,69,69,.1);border:1px solid rgba(232,69,69,.22);border-left:3px solid var(--c-red);color:#ff9999;animation:shake .4s ease}
.alert-warning{background:rgba(240,165,0,.1);border:1px solid rgba(240,165,0,.22);color:var(--c-yellow)}
.alert-info{background:rgba(122,12,202,.1);border:1px solid rgba(122,12,202,.22);color:var(--c-roxo-300)}
@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-5px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(3px)}}

@media(max-width:900px){html,body{overflow:auto}.login-page{grid-template-columns:1fr;padding:20px;overflow:auto}.login-aside{display:none}.login-card{grid-column:1}}
