/* Associação Clube v27 — acabamento profissional compartilhado */
:root{
  --v27-primary:#1557d6;--v27-primary-2:#0ea5e9;--v27-ink:#0f172a;--v27-muted:#64748b;
  --v27-bg:#f4f7fb;--v27-card:#fff;--v27-line:#dbe5f2;--v27-success:#15803d;--v27-danger:#dc2626;
  --v27-radius:18px;--v27-shadow:0 14px 36px rgba(15,23,42,.10)
}
html{scroll-behavior:smooth;background:var(--v27-bg)}
body{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--v27-ink);text-rendering:optimizeLegibility}
*,*:before,*:after{box-sizing:border-box}
img{max-width:100%;height:auto}
a,button,input,select,textarea{transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background-color .18s ease}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(14,165,233,.35)!important;outline-offset:2px!important}
.button,.btn,button[type=submit]{min-height:44px;border-radius:12px;font-weight:800}
.input,.textarea,.select select,input:not([type=checkbox]):not([type=radio]),textarea,select{min-height:44px;border-radius:12px;border-color:var(--v27-line);box-shadow:none}
.input:focus,.textarea:focus,.select select:focus,input:focus,textarea:focus,select:focus{border-color:var(--v27-primary-2);box-shadow:0 0 0 4px rgba(14,165,233,.12)}
.box,.card,.panel,.notification,.table-container{border-radius:var(--v27-radius)}
.card,.box{border:1px solid rgba(219,229,242,.85);box-shadow:var(--v27-shadow)}
.table-container{overflow:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--v27-line);background:#fff}
table.table{width:100%;background:transparent}table.table th{color:#475569;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}table.table td,table.table th{vertical-align:middle}
.notification{border:1px solid currentColor;border-color:color-mix(in srgb,currentColor 18%,transparent)}

/* Admin Associação e Admin Portal */
.admin-layout,.dashboard-layout,.portal-admin-layout{background:var(--v27-bg)}
.main-content,.dashboard-main,.admin-main{min-width:0}
.page-header,.dashboard-header,.admin-header,.topbar{backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.page-title,.dashboard-title,.admin-title{letter-spacing:-.035em}
.sidebar a,.menu-list a{min-height:46px;display:flex;align-items:center;gap:.75rem;border-radius:12px}
.sidebar a:hover,.menu-list a:hover{transform:translateX(2px)}
.kpi-grid,.stats-grid,.dashboard-grid{gap:14px}
.kpi-card,.stat-card,.metric-card{border:1px solid rgba(219,229,242,.85);box-shadow:0 10px 28px rgba(15,23,42,.08)}

/* Portal público */
.portal-v235 main,.v20-body main{min-height:54vh}
.portal-v235 .portal-container,.v20-body .portal-container{width:min(1180px,calc(100% - 32px));margin-inline:auto}
.portal-v235 .portal-section,.v20-body .portal-section{padding-block:clamp(32px,6vw,72px)}
.portal-v235 .portal-card,.v20-body .portal-card{background:#fff;border:1px solid var(--v27-line);border-radius:20px;box-shadow:var(--v27-shadow);overflow:hidden}
.portal-v235 .empty-state,.v20-body .empty-state{padding:clamp(34px,7vw,72px) 20px;text-align:center;background:#fff;border:1px solid var(--v27-line);border-radius:20px}
.portal-v235 .empty-state i,.v20-body .empty-state i{font-size:2rem;color:var(--v27-primary)}

/* Área do membro */
.member-main,.membro-main{min-width:0}
.member-card,.membro-card{border:1px solid var(--v27-line);border-radius:18px;box-shadow:var(--v27-shadow)}
.tenant-card{overflow:hidden;box-shadow:0 26px 70px rgba(2,8,23,.28)}
.tenant-form{background:rgba(255,255,255,.985)}

/* Estados e utilidades */
.v27-empty{display:grid;place-items:center;text-align:center;min-height:220px;padding:32px;border:1px dashed #b9c8dc;border-radius:18px;background:linear-gradient(180deg,#fff,#f8fbff)}
.v27-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .7rem;border-radius:999px;background:#e8f1ff;color:#174ea6;font-weight:800;font-size:.78rem}
.v27-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}

@media (max-width:768px){
  body{overflow-x:hidden}
  .container,.section,.main-content,.dashboard-main,.admin-main{max-width:100%}
  .section{padding:1rem}
  .columns{margin-left:0!important;margin-right:0!important}.column{padding:.55rem}
  .page-header,.dashboard-header,.admin-header{padding:14px!important;border-radius:0 0 18px 18px!important}
  .page-title,.dashboard-title,.admin-title{font-size:clamp(1.45rem,7vw,2rem)!important;line-height:1.12!important}
  .page-subtitle,.dashboard-subtitle{font-size:.95rem!important;line-height:1.45!important;white-space:normal!important}
  .kpi-grid,.stats-grid,.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .kpi-card,.stat-card,.metric-card{min-width:0;padding:14px!important}
  .kpi-card strong,.stat-card strong,.metric-card strong{font-size:1.55rem!important}
  .button,.btn,button[type=submit]{min-height:48px}
  .v27-actions>.button,.v27-actions>.btn{flex:1 1 145px}
  .table-container{border-radius:14px}
  .tenant-login{padding:12px!important}.tenant-card{border-radius:22px!important}
}
@media (max-width:420px){
  .kpi-grid,.stats-grid,.dashboard-grid{gap:10px!important}
  .kpi-card,.stat-card,.metric-card{padding:12px!important}
  .kpi-card small,.stat-card small,.metric-card small{font-size:.72rem!important}
}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media (prefers-color-scheme:dark){
  body[data-theme="dark"],body.theme-dark{--v27-bg:#071225;--v27-card:#0f1e35;--v27-ink:#e5eefb;--v27-muted:#a8b8ce;--v27-line:#263852;background:var(--v27-bg);color:var(--v27-ink)}
  body[data-theme="dark"] .card,body[data-theme="dark"] .box,body.theme-dark .card,body.theme-dark .box{background:var(--v27-card);border-color:var(--v27-line)}
}
