/* MoradaOS | Contraste e legibilidade global | 2.0.0
   Aplicado por último nas interfaces. Preserva fundo, estados e identidade azul.
   Não altera permissões, formulários ou dados. */
:root {
  --moradaos-strong-text: #111827;
  --moradaos-title-text: #081c3f;
  --moradaos-muted-text: #1f2937;
}
body, body.resident-body, body.public-form-page {
  color: var(--moradaos-strong-text);
  font-size: 17px !important;
  line-height: 1.55;
}
body :is(.content,.resident-content,.public-form-page,.form-side) {
  color: var(--moradaos-strong-text);
}
:is(.content,.resident-content,.form-side,.public-form-page,.container)
  :is(p,small,dt,dd,li,label,.help,.muted,.helper,.empty-panel,.empty-compact,.role-hint,
  .page-subtitle,.resident-section-head p,.profile-item span,.profile-item strong,
  .profile-data dt,.profile-data dd,.resident-unit,.resident-contact,.addon-row small,
  .document-row small,.timeline-copy small,.timeline-date,.list-main small,
  .metric-card small,.metric-card-top,.table td,.table th,.field label,.pagination,
  .resident-stat span,.resident-stat small,.summary-cell span,.notice-card p,
  .plan-card p,.feature p,.benefit p,.fact,.form .intro-copy) {
  color: var(--moradaos-muted-text) !important;
  opacity: 1 !important;
}
:is(.content,.resident-content,.form-side,.public-form-page)
  :is(h1,h2,h3,h4,h5,h6,.panel-header h2,.resident-section h2,.resident-section-head h2,
  .profile-data strong,.addon-row strong,.list-main strong,.resident-stat strong) {
  color: var(--moradaos-title-text);
}
.content :is(.page-head h1,.dashboard-head h1) {font-size:clamp(29px,2.4vw,36px)!important;line-height:1.2}
.content :is(.page-head p,.dashboard-head p) {font-size:17px!important;color:#111827!important}
.content :is(.panel-header h2,.resident-section h2,.resident-section-head h2,.people-card h2) {font-size:21px!important;line-height:1.3}
.content :is(.table td,.profile-data dd,.list-main strong,.addon-row small,.timeline-copy small,.profile-item strong) {
  font-size:16px!important;line-height:1.55;
}
.content :is(.table th,.field label,.profile-data dt,.profile-item span,.resident-stat span,.summary-cell span) {
  font-size:14px!important;font-weight:700;
}
.content :is(.help,.helper,.empty,.empty-panel,.empty-compact,.list-main small,.metric-card small,
  .resident-stat small,.document-row small,.timeline-date,.panel-header p) {
  font-size:15px!important;line-height:1.55;
}
.content :is(.badge,.status) {font-size:13px!important;line-height:1.3}
.content :is(.button,.select-look) {font-size:15px!important;line-height:1.3;min-height:40px}
.content :is(input:not([type=checkbox]):not([type=radio]),select,textarea) {
  font-size:16px!important;color:#111827!important;
}
.content :is(input,select,textarea)::placeholder {color:#374151!important;opacity:1}
.content :is(.field label,.addon-row strong,.resident-stat strong,.metric-card strong,
 .summary-cell strong,.people-card strong) {color:#111827!important}
.content :is(.addon-row,.document-row,.list-row) {line-height:1.55}
.content .table th {color:#111827!important}
.content .table td {color:#111827!important}
.content .metric-card strong,.content .resident-stat strong {font-size:clamp(23px,2vw,29px)!important}

/* Menus escuros e botões preenchidos permanecem claros e legíveis. */
.sidebar .nav-link {font-size:16px!important;line-height:1.4;color:#f3f7ff!important}
.sidebar .nav-section {font-size:13px!important;color:#d4e5ff!important}
.sidebar .sidebar-bottom {font-size:14px!important;color:#ebf3ff!important}
.sidebar .nav-icon {color:#d4e5ff!important}
.sidebar :is(.nav-link.active,.nav-link:hover),.sidebar .nav-link.active .nav-icon {color:#fff!important}
.topbar .page-title {font-size:19px!important;color:#081c3f!important}
.topbar :is(.page-subtitle,.account-copy small,.logout,.condo-pill) {font-size:14px!important;color:#1f2937!important}
.topbar .account-copy strong {font-size:15px!important;color:#081c3f!important}
.button-primary,.btn-primary {color:#fff!important}
.button-primary :is(span,small,strong),.btn-primary :is(span,small,strong) {color:inherit!important}

/* Os significados de sucesso, alerta e erro conservam suas cores. */
.content :is(.badge.success,.status.ok,.flash.success) {color:#08613f!important}
.content :is(.badge.danger,.status.danger,.flash.error,.error-text) {color:#a11e2b!important}
.content :is(.badge.warning,.status.warn) {color:#805000!important}
.content :is(.badge.info) {color:#124d92!important}

/* Área pública e autenticação. */
.login-shell .form :is(p,label,.remember,.back,.footer,.intro-copy) {color:#111827!important;font-size:16px!important}
.login-shell .form :is(input,.button) {font-size:16px!important}
.login-shell .intro :is(p,.fact,.eyebrow) {color:#fff!important;font-size:15px!important}
.login-shell .form h2 {font-size:30px!important}
.site-header .header-nav {font-size:16px!important;color:#111827!important}
.container :is(.feature p,.benefit p,.plan-card p,.plan-card .hint,.testimonial small) {font-size:15px!important;color:#111827!important}
.container :is(.feature h3,.benefit h3,.plan-card h3) {font-size:20px!important}
.container :is(.header-nav a,.btn) {font-size:15px!important}
.public-form-page :is(p,label,.help,.lead) {color:#111827!important;font-size:16px!important}

/* Portal do morador: leitura clara com navegação móvel preservada. */
.resident-body :is(.resident-page-head p,.resident-section-head p,.resident-empty,
 .resident-info-banner,.resident-article-body,.resident-list-main small,
 .resident-notice-card p,.resident-profile-card small,.resident-more-card small,
 .resident-data-list span,.resident-field label,.resident-summary-card span) {
  color:#111827!important;font-size:15px!important;opacity:1;
}
.resident-body :is(.resident-section-head h2,.resident-list-main strong,
 .resident-notice-card strong,.resident-profile-card strong,.resident-more-card strong) {
  color:#081c3f!important;font-size:18px!important;
}
.resident-body :is(.resident-button,.resident-back,.resident-text-button) {font-size:15px!important}
.resident-body :is(input,textarea,select) {font-size:16px!important;color:#111827!important}
.resident-bottom-nav a {font-size:13px!important}

/* Telas pequenas: manter campos confortáveis sem estourar cartões. */
@media(max-width:790px) {
  body,body.resident-body,body.public-form-page {font-size:16px!important}
  .content :is(.page-head h1,.dashboard-head h1) {font-size:28px!important}
  .content :is(.panel-header h2,.resident-section h2,.people-card h2) {font-size:20px!important}
  .content :is(.table td,.addon-row small,.profile-data dd) {font-size:15px!important}
  .content :is(.button,.field input,.field select,.field textarea) {font-size:16px!important}
  .sidebar .nav-link {font-size:16px!important}
  .topbar .page-title {font-size:17px!important}
  .resident-bottom-nav a {font-size:12px!important}
}
