/* Associação Clube v23 — visual profissional unificado */
:root{
  --v23-primary:#1457d9;--v23-primary-2:#0b3eaa;--v23-accent:#19b6d8;
  --v23-navy:#071a3c;--v23-ink:#10213e;--v23-muted:#65738b;
  --v23-bg:#f3f6fb;--v23-card:#fff;--v23-line:#dfe7f3;
  --v23-success:#159a62;--v23-warning:#d58b14;--v23-danger:#d84242;
  --v23-radius:20px;--v23-radius-sm:14px;--v23-shadow:0 18px 48px rgba(20,42,82,.10);
}
html{scroll-behavior:smooth}body{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--v23-ink);background:var(--v23-bg);-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}a{transition:.2s ease}.button,.input,.textarea,.select select{border-radius:12px}.button{font-weight:800;min-height:42px}.button.is-link,.button.is-primary{background:linear-gradient(135deg,var(--v23-primary),var(--v23-primary-2));border:0;box-shadow:0 10px 22px rgba(20,87,217,.22)}
.input,.textarea,.select select{border:1px solid #d7e0ee;box-shadow:none;background:#fff}.input:focus,.textarea:focus,.select select:focus{border-color:var(--v23-primary);box-shadow:0 0 0 4px rgba(20,87,217,.10)}
.box,.card,.panel-admin,.glass-card,.table-card{border:1px solid var(--v23-line);border-radius:var(--v23-radius);box-shadow:var(--v23-shadow);background:var(--v23-card)}
.table{background:transparent}.table thead th{color:#536178;text-transform:uppercase;font-size:.72rem;letter-spacing:.06em;border-bottom:1px solid var(--v23-line)}.table td{vertical-align:middle;border-color:#edf1f7}.table tbody tr:hover{background:#f8faff}
.notification{border-radius:14px;border:1px solid rgba(0,0,0,.06)}

/* Admin Associação */
body.admin-associacao-mobile{background:linear-gradient(180deg,#edf3ff 0,#f7f9fc 240px,#f3f6fb 100%)}
.topbar-admin{position:sticky;top:0;z-index:120;min-height:74px;padding:12px 22px;background:rgba(255,255,255,.92)!important;backdrop-filter:blur(18px);border-bottom:1px solid rgba(207,219,237,.9);box-shadow:0 8px 30px rgba(16,33,62,.06)}
.topbar-branding{gap:12px}.topbar-logo,.topbar-logo-fallback{width:44px!important;height:44px!important;border-radius:14px!important}.topbar-branding strong{font-size:1rem;color:var(--v23-navy)}.topbar-subtitle{color:var(--v23-muted)!important}
.sidebar-admin,#sideMenu{background:linear-gradient(180deg,#071a3c,#0a285c 58%,#0d3b86)!important;border:0!important;box-shadow:18px 0 50px rgba(4,18,45,.18)}
.sidebar-admin a,#sideMenu a{border-radius:12px!important;color:#dbe7ff!important;margin:3px 10px;padding:11px 13px!important;font-weight:700}.sidebar-admin a:hover,#sideMenu a:hover,.sidebar-admin a.is-active,#sideMenu a.is-active{background:rgba(255,255,255,.13)!important;color:#fff!important;transform:translateX(2px)}
.admin-main-content,.main-content,.conteudo-admin{padding:26px!important}.container{max-width:1320px!important}.title{color:var(--v23-navy)}
.admin-grid,.dashboard-grid{gap:18px}.stat-card,.metric-card,.kpi-card{border-radius:18px!important;border:1px solid var(--v23-line)!important;box-shadow:0 12px 30px rgba(19,44,84,.08)!important;transition:.2s}.stat-card:hover,.metric-card:hover,.kpi-card:hover{transform:translateY(-2px);box-shadow:0 18px 38px rgba(19,44,84,.12)!important}
.assoc-app-bottom-nav{background:rgba(255,255,255,.95)!important;backdrop-filter:blur(18px);border-top:1px solid var(--v23-line)!important;box-shadow:0 -12px 34px rgba(20,42,82,.10)!important}.assoc-app-bottom-nav a,.assoc-app-bottom-nav button{color:#62708a!important}.assoc-app-bottom-nav .is-active{color:var(--v23-primary)!important}

/* Admin Portal */
.admin-shell{min-height:100vh;background:var(--v23-bg)}.admin-sidebar{background:linear-gradient(180deg,#061a3d,#0a2b63 58%,#0d438f)!important;border-right:0!important;box-shadow:18px 0 55px rgba(4,18,45,.18)}
.admin-brand{margin:10px 10px 18px;padding:16px!important;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:18px}.admin-brand h2,.admin-brand p,.admin-brand small{color:#fff!important}.admin-brand-icon{background:linear-gradient(135deg,#2f78ff,#24c4dd)!important;box-shadow:0 12px 28px rgba(36,196,221,.24)}
.admin-nav a{margin:3px 9px;border-radius:12px!important;color:#dbe7ff!important;font-weight:700}.admin-nav a:hover,.admin-nav a.is-active{background:rgba(255,255,255,.13)!important;color:#fff!important}.admin-nav a.is-active:before{content:"";width:4px;height:20px;background:#42d6ec;border-radius:999px;position:absolute;left:4px}
.admin-sidebar-box{margin:16px 12px!important;border-radius:16px!important;background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.12)!important;color:#fff}.admin-sidebar-box a,.admin-sidebar-box strong{color:#fff!important}
.admin-main{background:linear-gradient(180deg,#edf3ff 0,#f7f9fc 240px,#f3f6fb 100%)}.admin-header{margin:18px 22px 0!important;padding:20px 24px!important;border-radius:22px!important;background:rgba(255,255,255,.9)!important;backdrop-filter:blur(18px)}.admin-page-title{color:var(--v23-navy)!important;letter-spacing:-.03em}.admin-page-subtitle{color:var(--v23-muted)!important}.admin-content{padding:22px!important}.admin-badge{background:#e9f1ff!important;color:var(--v23-primary)!important;border:1px solid #cfe0ff!important}
.panel-head h2{color:var(--v23-navy)}.admin-table{border-radius:16px;overflow:hidden}.table-tag{border-radius:999px;padding:6px 10px;font-weight:800}

/* Área do membro */
.membro-app{min-height:100vh;background:linear-gradient(180deg,#edf3ff,#f8faff 230px,#f3f6fb)}.membro-sidebar{background:linear-gradient(180deg,#071a3c,#0b2e69 58%,#0d438f)!important;box-shadow:18px 0 55px rgba(4,18,45,.18)}.membro-sidebar a{color:#dce8ff!important;border-radius:12px!important;font-weight:700}.membro-sidebar a:hover,.membro-sidebar a.is-active{background:rgba(255,255,255,.13)!important;color:#fff!important}.sidebar-brand{border-bottom:1px solid rgba(255,255,255,.14)!important}.sidebar-brand strong,.sidebar-brand span{color:#fff!important}.brand-avatar{box-shadow:0 10px 24px rgba(0,0,0,.22)}
.membro-main{background:transparent!important}.membro-header{background:rgba(255,255,255,.90)!important;backdrop-filter:blur(18px);border:1px solid var(--v23-line)!important;border-radius:22px!important;margin:18px 20px 0!important;box-shadow:var(--v23-shadow)!important}.membro-content{padding:22px!important}.membro-page-title{color:var(--v23-navy)!important}.membro-card,.member-card{border-radius:20px!important;border:1px solid var(--v23-line)!important;box-shadow:var(--v23-shadow)!important}

/* Logins */
.admin-login-body,.login-admin-body{min-height:100vh;background:radial-gradient(circle at 15% 10%,#1d67df 0,#0b2a63 28%,#06142f 70%)}.admin-login-hero,.login-admin-shell{min-height:100vh}.admin-login-copy h1,.login-admin-hero h1{color:#fff!important;letter-spacing:-.04em}.admin-login-copy p,.login-admin-hero p{color:#d9e7ff!important}.admin-login-box,.login-admin-card{border-radius:26px!important;border:1px solid rgba(255,255,255,.22)!important;box-shadow:0 30px 80px rgba(0,0,0,.28)!important;background:rgba(255,255,255,.97)!important}.login-admin-hero{background:transparent!important}.premium-chip,.admin-badge{border-radius:999px}
.tenant-login{background:radial-gradient(circle at 12% 10%,#1f6be4 0,#0b2a63 30%,#06142f 72%)!important}.tenant-card{border:1px solid rgba(255,255,255,.22)!important;box-shadow:0 34px 90px rgba(0,0,0,.32)!important}.tenant-brand{background:linear-gradient(145deg,#0b4bd4,#071d4d 72%)!important;position:relative;overflow:hidden}.tenant-brand:after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;right:-170px;bottom:-170px;background:rgba(255,255,255,.09)}.tenant-form{background:#fff}

/* Portal público */
.v20-body{background:#f7f9fc;color:var(--v23-ink)}.v20-header{background:rgba(7,26,60,.94)!important;backdrop-filter:blur(18px);box-shadow:0 8px 30px rgba(4,18,45,.16)}.v20-nav{min-height:82px}.v20-brand img{background:#fff;border-radius:16px;padding:5px;box-shadow:0 8px 20px rgba(0,0,0,.18)}.v20-brand-copy strong{font-size:1.08rem}.v20-desktop-menu a{border-radius:10px;font-weight:800}.v20-member-btn{background:linear-gradient(135deg,#2f78ff,#19b6d8)!important;box-shadow:0 10px 24px rgba(25,182,216,.25)}
.v20-hero{border-radius:0 0 32px 32px!important;overflow:hidden;box-shadow:0 18px 45px rgba(7,26,60,.14)}.v20-container{max-width:1220px!important}.v20-quick-grid,.v20-card-grid{gap:18px!important}.v20-quick-item,.v20-card,.v20-event-item{border:1px solid var(--v23-line)!important;border-radius:18px!important;box-shadow:0 12px 28px rgba(20,42,82,.08)!important;transition:.22s}.v20-quick-item:hover,.v20-card:hover,.v20-event-item:hover{transform:translateY(-3px);box-shadow:0 18px 38px rgba(20,42,82,.13)!important}.v20-section-title h2{color:var(--v23-navy)!important}.v20-drawer{background:#071a3c!important;border-left:1px solid rgba(255,255,255,.12)}.v20-drawer-links a{color:#e0eaff!important;background:rgba(255,255,255,.05)!important;border:1px solid rgba(255,255,255,.08)!important}.v20-drawer-links a:hover,.v20-drawer-links a.is-active{background:rgba(255,255,255,.14)!important;color:#fff!important}.v20-drawer-brand strong,.v20-drawer-brand span{color:#fff!important}.v20-footer{background:linear-gradient(180deg,#071a3c,#04112a)!important}.v20-bottom{background:rgba(255,255,255,.96)!important;backdrop-filter:blur(18px);border-top:1px solid var(--v23-line)!important;box-shadow:0 -12px 32px rgba(20,42,82,.12)!important}.v20-bottom .is-active{color:var(--v23-primary)!important}

/* responsivo */
@media(max-width:900px){.admin-header,.membro-header{margin:10px 10px 0!important;padding:16px!important}.admin-content,.membro-content,.admin-main-content,.main-content,.conteudo-admin{padding:14px!important}.topbar-admin{padding:10px 12px}.topbar-actions .button span{display:none}.box,.card,.panel-admin,.glass-card,.table-card{border-radius:16px}.table-card{overflow-x:auto}.table{min-width:720px}.v20-header{position:sticky;top:0;z-index:100}.v20-nav{min-height:68px}.v20-brand-copy span{display:none}.v20-hero{border-radius:0 0 24px 24px!important}.v20-bottom{padding-bottom:max(8px,env(safe-area-inset-bottom))}.tenant-card{border-radius:0!important;min-height:100dvh}.tenant-form{padding:30px 22px!important}}
@media(max-width:520px){.admin-page-title,.membro-page-title{font-size:1.35rem!important}.admin-page-subtitle{font-size:.86rem!important}.topbar-branding strong{font-size:.9rem}.topbar-subtitle{font-size:.72rem}.button{min-height:44px}.columns{margin-left:0!important;margin-right:0!important}.column{padding:.5rem!important}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* v23.1 — autenticação unificada e estrutural */
.auth-portal-login .hero-body{width:100%;padding:42px 24px}
.auth-portal-login .admin-login-copy{max-width:680px}
.auth-portal-login .admin-login-copy h1{margin:.85rem 0 .7rem;font-size:clamp(2.35rem,5vw,4rem);font-weight:800;line-height:1.02}
.auth-portal-login .tenant-login-name{margin-bottom:.65rem!important;font-size:1.02rem;font-weight:700;color:#fff!important}
.auth-portal-login .admin-login-box{max-width:520px;margin-left:auto;padding:34px}
.auth-login-icon{display:grid;place-items:center;width:58px;height:58px;margin-bottom:18px;border-radius:18px;background:linear-gradient(135deg,var(--v23-primary),var(--v23-accent));color:#fff;font-size:1.35rem;box-shadow:0 14px 30px rgba(20,87,217,.25)}
.auth-login-description{margin:-.15rem 0 1.35rem;color:var(--v23-muted);line-height:1.6}
.login-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:24px;max-width:620px}
.login-feature-grid span{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:rgba(255,255,255,.08);color:#edf5ff;font-weight:700;backdrop-filter:blur(8px)}
.login-feature-grid i{width:18px;color:#55d8ed;text-align:center}
.auth-switch-links .button{border:1px solid rgba(255,255,255,.16)}
.auth-security-note{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:18px;color:#718099;font-size:.78rem;text-align:center}
@media(max-width:768px){.auth-portal-login .hero-body{padding:22px 14px}.auth-portal-login .admin-login-copy{text-align:center}.auth-portal-login .admin-login-box{margin:0 auto;padding:24px 20px}.login-feature-grid{grid-template-columns:1fr;text-align:left}.auth-switch-links{justify-content:center}.auth-switch-links .button{width:100%;justify-content:center}.auth-login-icon{margin-left:auto;margin-right:auto}}

/* v23.2 — autenticação com contraste e recuperação do membro */
.admin-login-body,
.admin-login-body .admin-login-hero,
.admin-login-body .login-admin-shell,
.auth-portal-login{
  min-height:100vh!important;
  background:radial-gradient(circle at 14% 10%,#216ee8 0,#0b2a63 31%,#06142f 74%)!important;
}
.admin-login-body .hero-body{background:transparent!important}
.admin-login-copy{position:relative;z-index:1}
.admin-login-copy h1{color:#fff!important;text-shadow:0 2px 18px rgba(0,0,0,.25)!important}
.admin-login-copy p,.admin-login-copy .tenant-login-name{color:#e8f1ff!important;opacity:1!important}
.admin-login-copy .admin-badge{color:#0b4bd4!important;background:#fff!important;border:1px solid rgba(255,255,255,.8)!important}
.admin-login-copy .login-feature-grid span{color:#f4f8ff!important;background:rgba(255,255,255,.10)!important;border-color:rgba(255,255,255,.22)!important}
.admin-login-copy .buttons .button.is-link,
.admin-login-copy .buttons .button.is-link.is-light,
.auth-switch-links .button.is-link,
.auth-switch-links .button.is-link.is-light{background:#1457d9!important;color:#fff!important;border-color:#3d7bec!important}
.admin-login-copy .buttons .button.is-link:hover,.auth-switch-links .button.is-link:hover{background:#0d47bd!important;color:#fff!important}
.admin-login-copy .buttons .button.is-light,.auth-switch-links .button.is-light{background:#fff!important;color:#10213f!important;border-color:#fff!important}
.admin-login-box .button.is-link,.admin-login-box .button.is-primary{color:#fff!important}

.member-recovery-page{min-height:100dvh}
.member-recovery-page .tenant-card{width:min(980px,100%)}
.member-recovery-page .tenant-form{align-self:center}
.member-recovery-page .tenant-form h2{margin-bottom:.45rem;color:#0f172a!important;font-size:2rem;font-weight:800;letter-spacing:-.03em}
.member-recovery-page .tenant-form .input{height:52px;border:1px solid #cbd8ee!important;background:#f5f8fe!important;color:#14213d!important;box-shadow:none!important}
.member-recovery-page .tenant-form .input:focus{border-color:#2167df!important;box-shadow:0 0 0 4px rgba(33,103,223,.12)!important}
.member-recovery-page .tenant-form .button{height:52px;color:#fff!important}
.member-recovery-page .auth-login-icon{margin-bottom:18px}
.member-recovery-page .auth-help-box,.auth-email-hint{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;border:1px solid #d8e4f7;border-radius:14px;background:#f4f8ff;color:#52627c;font-size:.88rem;line-height:1.5}
.member-recovery-page .auth-help-box i,.auth-email-hint i{margin-top:3px;color:#2167df}
.member-recovery-page .auth-help-box code{padding:2px 6px;border-radius:6px;background:#e8effb;color:#b4235a}
.member-recovery-page .auth-code-input{font-size:1.35rem!important;font-weight:800;letter-spacing:.28em;text-align:center}

@media(max-width:768px){
 .admin-login-body .admin-login-copy{text-align:center;padding:12px 8px 2px}
 .admin-login-body .admin-login-copy h1{font-size:2.25rem!important}
 .member-recovery-page .tenant-form{padding:30px 22px!important}
 .member-recovery-page .tenant-form h2{font-size:1.65rem}
}


/* v23.4 — layout de autenticação do membro realmente compartilhado */
html,body{min-height:100%}
body:has(.tenant-login){margin:0;min-height:100dvh;background:#06142f}
.tenant-login{
  min-height:100dvh!important;
  width:100%;
  display:grid!important;
  place-items:center!important;
  padding:clamp(18px,3vw,42px)!important;
  background:radial-gradient(circle at 12% 10%,#1f6be4 0,#0b2a63 30%,#06142f 72%)!important;
}
.tenant-card{
  width:min(1080px,100%)!important;
  min-height:min(650px,calc(100dvh - 84px));
  display:grid!important;
  grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr)!important;
  overflow:hidden!important;
  background:#fff!important;
  border:1px solid rgba(255,255,255,.24)!important;
  border-radius:30px!important;
  box-shadow:0 34px 90px rgba(0,0,0,.34)!important;
}
.tenant-brand{
  position:relative!important;
  isolation:isolate;
  min-width:0;
  min-height:100%;
  padding:clamp(34px,4vw,58px)!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:space-between!important;
  color:#fff!important;
  background:linear-gradient(145deg,#0b4bd4 0%,#082b72 54%,#071d4d 100%)!important;
  overflow:hidden!important;
}
.tenant-brand::before{content:"";position:absolute;z-index:-1;inset:auto auto -180px -160px;width:390px;height:390px;border-radius:50%;background:rgba(255,255,255,.07)}
.tenant-brand::after{content:"";position:absolute;z-index:-1;right:-150px;top:-155px;width:360px;height:360px;border-radius:50%;background:rgba(255,255,255,.10)}
.tenant-brand>div{position:relative;z-index:1}
.tenant-logo{
  width:88px!important;height:88px!important;margin-bottom:22px;
  border-radius:24px!important;background:#fff!important;
  display:grid!important;place-items:center!important;overflow:hidden!important;
  color:#0b4bd4!important;font-size:1.9rem!important;font-weight:800!important;
  box-shadow:0 16px 34px rgba(0,0,0,.24)!important;
}
.tenant-logo img{display:block;width:100%!important;height:100%!important;object-fit:contain!important;padding:4px}
.tenant-chip{display:inline-flex!important;align-items:center;gap:8px;padding:8px 13px!important;margin:0 0 22px!important;border-radius:999px!important;background:rgba(255,255,255,.13)!important;border:1px solid rgba(255,255,255,.24)!important;color:#fff!important;font-weight:800!important;font-size:.86rem;backdrop-filter:blur(8px)}
.tenant-brand h1{max-width:640px;margin:0 0 18px!important;color:#fff!important;font-size:clamp(2rem,4vw,3.35rem)!important;line-height:1.06!important;letter-spacing:-.045em;font-weight:800!important;text-shadow:0 3px 22px rgba(0,0,0,.22)}
.tenant-brand p{max-width:600px;margin:0!important;color:#e3edff!important;font-size:1.04rem!important;line-height:1.72!important;opacity:1!important}
.tenant-back{position:relative;z-index:1;display:inline-flex!important;align-items:center;gap:9px;width:max-content;max-width:100%;margin-top:28px;color:#e5efff!important;font-weight:700;text-decoration:none!important}
.tenant-back:hover{color:#fff!important;transform:translateX(-2px)}
.tenant-form{
  min-width:0;
  padding:clamp(34px,4.2vw,58px)!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-self:stretch!important;
  background:#fff!important;
}
.tenant-form>p.has-text-link{color:#1457d9!important;text-transform:uppercase;letter-spacing:.07em;font-size:.78rem}
.tenant-form h2{margin:0 0 .55rem!important;color:#0f172a!important;font-size:clamp(1.75rem,2.5vw,2.2rem)!important;line-height:1.15!important;letter-spacing:-.035em;font-weight:800!important}
.tenant-form p.has-text-grey{color:#65738b!important;line-height:1.65}
.tenant-form .field{margin-bottom:1.15rem}
.tenant-form .label{color:#17243c!important;font-weight:800!important}
.tenant-form .control.has-icons-left .icon{height:52px;color:#8aa0bf}
.tenant-form .input{height:52px!important;border-radius:14px!important;border:1px solid #cbd8ee!important;background:#f5f8fe!important;color:#14213d!important;box-shadow:none!important;padding-left:2.75em!important}
.tenant-form .input:focus{border-color:#2167df!important;box-shadow:0 0 0 4px rgba(33,103,223,.12)!important;background:#fff!important}
.tenant-form .button{min-height:52px!important;border-radius:14px!important;color:#fff!important;font-weight:800!important}
.tenant-form a{color:#1457d9;font-weight:700}
.tenant-form .notification{border-radius:14px}
.member-recovery-page .auth-login-icon{flex:0 0 auto}
.auth-help-box,.auth-email-hint{width:100%}

@media(max-width:900px){
  .tenant-login{padding:0!important;place-items:stretch!important;background:#eef4ff!important}
  .tenant-card{display:block!important;width:100%!important;min-height:100dvh!important;border:0!important;border-radius:0!important;box-shadow:none!important}
  .tenant-brand{min-height:auto!important;padding:28px 24px 32px!important}
  .tenant-logo{width:68px!important;height:68px!important;border-radius:20px!important;margin-bottom:16px}
  .tenant-chip{margin-bottom:14px!important}
  .tenant-brand h1{font-size:clamp(1.7rem,8vw,2.25rem)!important;margin-bottom:10px!important}
  .tenant-brand p{font-size:.94rem!important;line-height:1.55!important}
  .tenant-back{margin-top:18px;font-size:.9rem}
  .tenant-form{min-height:auto;padding:30px 24px 42px!important}
}
@media(max-width:480px){
  .tenant-brand{padding:22px 18px 26px!important}
  .tenant-brand p{display:none}
  .tenant-back{margin-top:14px}
  .tenant-form{padding:26px 18px 36px!important}
  .auth-login-icon{width:52px;height:52px;border-radius:16px}
}
