/* Comunidade Bless v49 — sistema visual definitivo: Claro Grafite / Escuro Grafite */

html[data-theme="claro"]{
  color-scheme:light;
  --v48-page:#cbd2d6;
  --v48-page-2:#c2c9cd;
  --v48-surface:#e2e6e8;
  --v48-surface-raised:#edf0f2;
  --v48-surface-soft:#d5dce0;
  --v48-surface-active:#c2ccd1;
  --v48-input:#f1f3f4;
  --v48-ink:#1d272d;
  --v48-muted:#5f6d75;
  --v48-faint:#7b888f;
  --v48-border:#9ca9b0;
  --v48-border-strong:#7f8d95;
  --v48-accent:#46535a;
  --v48-accent-hover:#39464c;
  --v48-accent-text:#f6f8f9;
  --v48-danger:#a84343;
  --v48-shadow:0 1px 2px rgba(18,28,34,.08),0 8px 22px rgba(18,28,34,.08);
  --v48-shadow-hover:0 2px 4px rgba(18,28,34,.10),0 13px 28px rgba(18,28,34,.12);
  --v48-header:rgba(226,230,232,.97);
}
html[data-theme="escuro"]{
  color-scheme:dark;
  --v48-page:#0e1418;
  --v48-page-2:#0a0f12;
  --v48-surface:#182126;
  --v48-surface-raised:#1d282e;
  --v48-surface-soft:#202c32;
  --v48-surface-active:#29373e;
  --v48-input:#202b31;
  --v48-ink:#eef3f6;
  --v48-muted:#a9b5bc;
  --v48-faint:#87959d;
  --v48-border:#334149;
  --v48-border-strong:#485861;
  --v48-accent:#cbd6dc;
  --v48-accent-hover:#e1e8ec;
  --v48-accent-text:#11181c;
  --v48-danger:#ef8b8b;
  --v48-shadow:0 1px 2px rgba(0,0,0,.45),0 10px 28px rgba(0,0,0,.24);
  --v48-shadow-hover:0 2px 4px rgba(0,0,0,.50),0 15px 34px rgba(0,0,0,.31);
  --v48-header:rgba(15,21,25,.96);
}

/* Map every legacy color variable to the two-mode system. */
html[data-theme="claro"],html[data-theme="escuro"]{
  --surface:var(--v48-surface);
  --surface-2:var(--v48-surface-raised);
  --paper:var(--v48-page);
  --ink:var(--v48-ink);
  --muted:var(--v48-muted);
  --line:var(--v48-border);
  --green:var(--v48-accent);
  --green-2:var(--v48-accent);
  --green-soft:var(--v48-surface-soft);
  --warm:var(--v48-accent);
  --danger:var(--v48-danger);
  --body-a:var(--v48-page);
  --body-b:var(--v48-page-2);
  --nav-bg:var(--v48-header);
  --nav-bg-2:var(--v48-header);
  --control-bg:var(--v48-input);
  --on-accent:var(--v48-accent-text);
}

html[data-theme="claro"] body,html[data-theme="escuro"] body{
  background:linear-gradient(180deg,var(--v48-page) 0%,var(--v48-page-2) 100%)!important;
  color:var(--v48-ink)!important;
}
html[data-theme="claro"] main,html[data-theme="escuro"] main{color:var(--v48-ink)!important}

/* Header / primary navigation */
html[data-theme="claro"] .topbar,html[data-theme="escuro"] .topbar{
  background:var(--v48-header)!important;
  border-bottom:1px solid var(--v48-border)!important;
  box-shadow:0 3px 14px rgba(0,0,0,.08)!important;
}
html[data-theme="claro"] .brand-logo-frame,html[data-theme="escuro"] .brand-logo-frame,
html[data-theme="claro"] .auth-logo-frame,html[data-theme="escuro"] .auth-logo-frame{
  background:var(--v48-surface-raised)!important;border:1px solid var(--v48-border)!important;box-shadow:none!important;
}
html[data-theme="claro"] .brand-copy h1,html[data-theme="escuro"] .brand-copy h1{color:var(--v48-ink)!important}
html[data-theme="claro"] .brand-copy .eyebrow,html[data-theme="escuro"] .brand-copy .eyebrow,
html[data-theme="claro"] .eyebrow,html[data-theme="escuro"] .eyebrow{color:var(--v48-muted)!important}
html[data-theme="claro"] .topbar .top-nav button,html[data-theme="escuro"] .topbar .top-nav button,
html[data-theme="claro"] .topbar .admin-shortcut,html[data-theme="escuro"] .topbar .admin-shortcut,
html[data-theme="claro"] .topbar .top-signout,html[data-theme="escuro"] .topbar .top-signout,
html[data-theme="claro"] .theme-toggle-btn,html[data-theme="escuro"] .theme-toggle-btn{
  background:var(--v48-surface-raised)!important;color:var(--v48-ink)!important;border:1px solid var(--v48-border)!important;box-shadow:none!important;
}
html[data-theme="claro"] .topbar .top-nav button:hover,html[data-theme="escuro"] .topbar .top-nav button:hover,
html[data-theme="claro"] .topbar .admin-shortcut:hover,html[data-theme="escuro"] .topbar .admin-shortcut:hover,
html[data-theme="claro"] .topbar .top-signout:hover,html[data-theme="escuro"] .topbar .top-signout:hover,
html[data-theme="claro"] .theme-toggle-btn:hover,html[data-theme="escuro"] .theme-toggle-btn:hover{
  background:var(--v48-surface-soft)!important;color:var(--v48-ink)!important;border-color:var(--v48-border-strong)!important;
}
html[data-theme="claro"] .topbar .top-nav button.active,html[data-theme="escuro"] .topbar .top-nav button.active{
  background:var(--v48-surface-active)!important;color:var(--v48-ink)!important;border-color:var(--v48-border-strong)!important;
}
html[data-theme="claro"] .topbar .admin-shortcut.active,html[data-theme="escuro"] .topbar .admin-shortcut.active{
  background:var(--v48-accent)!important;color:var(--v48-accent-text)!important;border-color:var(--v48-accent)!important;
}

/* Every main window must read as a window. */
html[data-theme="claro"] :is(.card,.post,.theme-card,dialog,.chat-panel,.conversation-list,.community-dashboard,.home-hero-panel,.admin-section,.profile),
html[data-theme="escuro"] :is(.card,.post,.theme-card,dialog,.chat-panel,.conversation-list,.community-dashboard,.home-hero-panel,.admin-section,.profile){
  background:var(--v48-surface)!important;color:var(--v48-ink)!important;border:1px solid var(--v48-border)!important;box-shadow:var(--v48-shadow)!important;
}
html[data-theme="claro"] :is(.card,.post,.theme-card,.admin-section,.profile):hover,
html[data-theme="escuro"] :is(.card,.post,.theme-card,.admin-section,.profile):hover{border-color:var(--v48-border-strong)!important}

/* Main navigation cards — explicitly override all legacy white hover rules. */
html[data-theme="claro"] .community-main-menu .quick,html[data-theme="escuro"] .community-main-menu .quick{
  background:var(--v48-surface)!important;color:var(--v48-ink)!important;border:1px solid var(--v48-border)!important;box-shadow:var(--v48-shadow)!important;outline:none!important;
}
html[data-theme="claro"] .community-main-menu .quick:hover,
html[data-theme="claro"] .community-main-menu .quick:focus-visible,
html[data-theme="escuro"] .community-main-menu .quick:hover,
html[data-theme="escuro"] .community-main-menu .quick:focus-visible{
  background:var(--v48-surface-soft)!important;color:var(--v48-ink)!important;border-color:var(--v48-border-strong)!important;box-shadow:var(--v48-shadow-hover)!important;outline:none!important;
}
html[data-theme="claro"] .community-main-menu .quick.filter-active,
html[data-theme="claro"] .community-main-menu .quick[aria-pressed="true"],
html[data-theme="escuro"] .community-main-menu .quick.filter-active,
html[data-theme="escuro"] .community-main-menu .quick[aria-pressed="true"]{
  background:var(--v48-surface-active)!important;color:var(--v48-ink)!important;border-color:var(--v48-border-strong)!important;box-shadow:var(--v48-shadow-hover)!important;
}
html[data-theme="claro"] .community-main-menu .quick b,html[data-theme="escuro"] .community-main-menu .quick b{color:var(--v48-ink)!important}
html[data-theme="claro"] .community-main-menu .quick span,html[data-theme="escuro"] .community-main-menu .quick span{color:var(--v48-muted)!important}
html[data-theme="claro"] .community-main-menu .quick.filter-active::after,
html[data-theme="claro"] .community-main-menu .quick[aria-pressed="true"]::after,
html[data-theme="escuro"] .community-main-menu .quick.filter-active::after,
html[data-theme="escuro"] .community-main-menu .quick[aria-pressed="true"]::after{background:var(--v48-accent)!important}

/* Dashboard metrics */
html[data-theme="claro"] .community-stats,html[data-theme="escuro"] .community-stats{background:transparent!important;border:0!important;gap:10px!important;overflow:visible!important}
html[data-theme="claro"] .community-stat,html[data-theme="escuro"] .community-stat{
  background:var(--v48-surface-raised)!important;color:var(--v48-ink)!important;border:1px solid var(--v48-border)!important;border-radius:11px!important;box-shadow:none!important;
}
html[data-theme="claro"] .community-stat:hover,html[data-theme="escuro"] .community-stat:hover{background:var(--v48-surface-soft)!important;border-color:var(--v48-border-strong)!important}
html[data-theme="claro"] .community-stat.selected,html[data-theme="escuro"] .community-stat.selected{background:var(--v48-surface-active)!important;border-color:var(--v48-border-strong)!important}
html[data-theme="claro"] .community-stat b,html[data-theme="escuro"] .community-stat b,
html[data-theme="claro"] .community-stat.selected b,html[data-theme="escuro"] .community-stat.selected b{color:var(--v48-ink)!important}
html[data-theme="claro"] .community-stat :is(span,small,strong),html[data-theme="escuro"] .community-stat :is(span,small,strong){color:var(--v48-muted)!important}

/* Hero */
html[data-theme="claro"] .home-hero-panel,html[data-theme="escuro"] .home-hero-panel{background:linear-gradient(135deg,var(--v48-surface),var(--v48-surface-raised))!important}
html[data-theme="claro"] .welcome h2,html[data-theme="escuro"] .welcome h2{color:var(--v48-ink)!important}
html[data-theme="claro"] .welcome p,html[data-theme="escuro"] .welcome p,
html[data-theme="claro"] .welcome .hero-note,html[data-theme="escuro"] .welcome .hero-note{color:var(--v48-muted)!important}
html[data-theme="claro"] .welcome .hero-note,html[data-theme="escuro"] .welcome .hero-note{font-weight:700!important}
html[data-theme="claro"] .building-visual,html[data-theme="escuro"] .building-visual{background:var(--v48-surface-soft)!important;border:1px solid var(--v48-border)!important;box-shadow:none!important}
html[data-theme="escuro"] .building-visual img{filter:saturate(.58) brightness(.72) contrast(1.02)!important}
html[data-theme="claro"] .building-visual img{filter:saturate(.72) contrast(.98)!important}

/* Buttons and form controls */
html[data-theme="claro"] :is(.primary,.admin-home-button),html[data-theme="escuro"] :is(.primary,.admin-home-button){background:var(--v48-accent)!important;color:var(--v48-accent-text)!important;border:1px solid var(--v48-accent)!important;box-shadow:none!important}
html[data-theme="claro"] :is(.primary,.admin-home-button):hover,html[data-theme="escuro"] :is(.primary,.admin-home-button):hover{background:var(--v48-accent-hover)!important;border-color:var(--v48-accent-hover)!important}
html[data-theme="claro"] :is(.secondary,.mini-btn),html[data-theme="escuro"] :is(.secondary,.mini-btn){background:var(--v48-surface-raised)!important;color:var(--v48-ink)!important;border:1px solid var(--v48-border)!important}
html[data-theme="claro"] :is(.secondary,.mini-btn):hover,html[data-theme="escuro"] :is(.secondary,.mini-btn):hover{background:var(--v48-surface-soft)!important;border-color:var(--v48-border-strong)!important}
html[data-theme="claro"] :is(.text-btn,.icon-btn),html[data-theme="escuro"] :is(.text-btn,.icon-btn){background:transparent!important;color:var(--v48-ink)!important;border:1px solid transparent!important}
html[data-theme="claro"] :is(.text-btn,.icon-btn):hover,html[data-theme="escuro"] :is(.text-btn,.icon-btn):hover{background:var(--v48-surface-soft)!important;border-color:var(--v48-border)!important}
html[data-theme="claro"] .danger,html[data-theme="escuro"] .danger{background:var(--v48-surface-raised)!important;color:var(--v48-danger)!important;border:1px solid color-mix(in srgb,var(--v48-danger) 36%,var(--v48-border))!important}
html[data-theme="claro"] :is(.form input,.form select,.form textarea,.admin-search,.admin-filters select,#feedSort,.profile input,.message-form input,.group-thread-form textarea),
html[data-theme="escuro"] :is(.form input,.form select,.form textarea,.admin-search,.admin-filters select,#feedSort,.profile input,.message-form input,.group-thread-form textarea){background:var(--v48-input)!important;color:var(--v48-ink)!important;border:1px solid var(--v48-border)!important;box-shadow:none!important}
html[data-theme="claro"] :is(.form input,.form select,.form textarea,.admin-search,.admin-filters select,#feedSort,.profile input,.message-form input,.group-thread-form textarea):focus,
html[data-theme="escuro"] :is(.form input,.form select,.form textarea,.admin-search,.admin-filters select,#feedSort,.profile input,.message-form input,.group-thread-form textarea):focus{border-color:var(--v48-border-strong)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--v48-accent) 12%,transparent)!important;outline:none!important}
html[data-theme="claro"] fieldset,html[data-theme="escuro"] fieldset{background:var(--v48-surface-raised)!important;color:var(--v48-ink)!important;border:1px solid var(--v48-border)!important;box-shadow:none!important}
html[data-theme="claro"] input[type="checkbox"],html[data-theme="escuro"] input[type="checkbox"]{accent-color:var(--v48-accent)!important}

/* Text hierarchy */
html[data-theme="claro"] :is(.hint,.post-meta,.post-contact,.conversation span,.feed-sort-label,.msg,.meta,.admin-nav-card span,.theme-card p),
html[data-theme="escuro"] :is(.hint,.post-meta,.post-contact,.conversation span,.feed-sort-label,.msg,.meta,.admin-nav-card span,.theme-card p){color:var(--v48-muted)!important}
html[data-theme="claro"] :is(.section-head h2,.section-head h3,.post h4,.admin-nav-card b,.theme-card b),
html[data-theme="escuro"] :is(.section-head h2,.section-head h3,.post h4,.admin-nav-card b,.theme-card b){color:var(--v48-ink)!important}

/* Chips / metrics / messages */
html[data-theme="claro"] :is(.badge,.category-chip,.owner-chip,.admin-role,.status-chip,.metric),
html[data-theme="escuro"] :is(.badge,.category-chip,.owner-chip,.admin-role,.status-chip,.metric){background:var(--v48-surface-soft)!important;color:var(--v48-ink)!important;border:1px solid var(--v48-border)!important;box-shadow:none!important}
html[data-theme="claro"] .conversation,html[data-theme="escuro"] .conversation{background:transparent!important;color:var(--v48-ink)!important;border:1px solid transparent!important}
html[data-theme="claro"] .conversation:hover,html[data-theme="escuro"] .conversation:hover{background:var(--v48-surface-soft)!important;border-color:var(--v48-border)!important}
html[data-theme="claro"] .bubble,html[data-theme="escuro"] .bubble{background:var(--v48-surface-raised)!important;color:var(--v48-ink)!important;border:1px solid var(--v48-border)!important}
html[data-theme="claro"] .bubble.mine,html[data-theme="escuro"] .bubble.mine{background:var(--v48-accent)!important;color:var(--v48-accent-text)!important;border-color:var(--v48-accent)!important}

/* Admin tabs and panels */
html[data-theme="claro"] .admin-nav-card,html[data-theme="escuro"] .admin-nav-card{background:var(--v48-surface)!important;color:var(--v48-ink)!important;border:1px solid var(--v48-border)!important;box-shadow:none!important}
html[data-theme="claro"] .admin-nav-card:hover,html[data-theme="escuro"] .admin-nav-card:hover{background:var(--v48-surface-soft)!important;border-color:var(--v48-border-strong)!important}
html[data-theme="claro"] .admin-nav-card.active,html[data-theme="escuro"] .admin-nav-card.active{background:var(--v48-surface-active)!important;border-color:var(--v48-border-strong)!important}
html[data-theme="claro"] .admin-metric,html[data-theme="escuro"] .admin-metric{background:var(--v48-surface-raised)!important;border:1px solid var(--v48-border)!important;color:var(--v48-ink)!important;box-shadow:none!important}
html[data-theme="claro"] .admin-metric b,html[data-theme="escuro"] .admin-metric b{color:var(--v48-ink)!important}

/* Dialogs / empty states / footer */
html[data-theme="claro"] dialog,html[data-theme="escuro"] dialog{background:var(--v48-surface)!important;color:var(--v48-ink)!important;border:1px solid var(--v48-border-strong)!important;box-shadow:var(--v48-shadow-hover)!important}
html[data-theme="claro"] dialog::backdrop,html[data-theme="escuro"] dialog::backdrop{background:rgba(4,8,11,.52)!important;backdrop-filter:blur(4px)}
html[data-theme="claro"] .empty,html[data-theme="escuro"] .empty{background:var(--v48-surface-raised)!important;color:var(--v48-muted)!important;border:1px dashed var(--v48-border-strong)!important}
html[data-theme="claro"] .app-footer,html[data-theme="escuro"] .app-footer{color:var(--v48-muted)!important}
html[data-theme="claro"] .footer-feedback,html[data-theme="escuro"] .footer-feedback{color:var(--v48-ink)!important}

/* Safety net: legacy dark-theme rules must never introduce white panels. */
html[data-theme="escuro"] :is(.quick,.community-stat,.admin-nav-card,.card,.post,.theme-card,.admin-section,.profile,.home-hero-panel,.community-dashboard,.chat-panel,.conversation-list){color:var(--v48-ink)!important}
html[data-theme="escuro"] :is(.quick,.community-stat,.admin-nav-card,.card,.post,.theme-card,.admin-section,.profile,.home-hero-panel,.community-dashboard,.chat-panel,.conversation-list):hover{color:var(--v48-ink)!important}
html[data-theme="escuro"] a,html[data-theme="escuro"] button{color:inherit}

@media(max-width:780px){
  html[data-theme="claro"] .topbar,html[data-theme="escuro"] .topbar{background:var(--v48-header)!important}
}


/* v49 — Privacidade padrão: switches funcionais e legíveis */
html[data-theme="claro"] .privacy-defaults,
html[data-theme="escuro"] .privacy-defaults{
  margin:4px 0 2px!important;
  padding:14px!important;
  border:1px solid var(--v48-border)!important;
  border-radius:14px!important;
  background:var(--v48-surface-raised)!important;
  box-shadow:none!important;
}
html[data-theme="claro"] .privacy-defaults legend,
html[data-theme="escuro"] .privacy-defaults legend{
  padding:0 7px!important;
  color:var(--v48-ink)!important;
  font-size:13px!important;
  font-weight:800!important;
}
html[data-theme="claro"] .privacy-defaults-intro,
html[data-theme="escuro"] .privacy-defaults-intro{
  margin:0 0 10px!important;
  color:var(--v48-muted)!important;
  font-size:12.5px!important;
  line-height:1.45!important;
}
html[data-theme="claro"] .privacy-toggle,
html[data-theme="escuro"] .privacy-toggle{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:16px!important;
  margin:0!important;
  padding:12px 13px!important;
  border:1px solid var(--v48-border)!important;
  border-radius:11px!important;
  background:var(--v48-surface)!important;
  color:var(--v48-ink)!important;
  cursor:pointer!important;
  transition:background .16s ease,border-color .16s ease,box-shadow .16s ease!important;
}
html[data-theme="claro"] .privacy-toggle+ .privacy-toggle,
html[data-theme="escuro"] .privacy-toggle+ .privacy-toggle{margin-top:8px!important}
html[data-theme="claro"] .privacy-toggle:hover,
html[data-theme="escuro"] .privacy-toggle:hover{
  border-color:var(--v48-border-strong)!important;
  box-shadow:0 4px 14px rgba(0,0,0,.06)!important;
}
html[data-theme="claro"] .privacy-toggle.is-on,
html[data-theme="escuro"] .privacy-toggle.is-on{
  background:var(--v48-surface-soft)!important;
  border-color:var(--v48-border-strong)!important;
}
html[data-theme="claro"] .privacy-toggle-copy,
html[data-theme="escuro"] .privacy-toggle-copy{display:grid!important;gap:3px!important;min-width:0!important}
html[data-theme="claro"] .privacy-toggle-copy b,
html[data-theme="escuro"] .privacy-toggle-copy b{color:var(--v48-ink)!important;font-size:13px!important;line-height:1.25!important}
html[data-theme="claro"] .privacy-toggle-copy small,
html[data-theme="escuro"] .privacy-toggle-copy small{color:var(--v48-muted)!important;font-size:11.5px!important;line-height:1.35!important;font-weight:500!important}
html[data-theme="claro"] .privacy-toggle-control,
html[data-theme="escuro"] .privacy-toggle-control{display:flex!important;align-items:center!important;gap:8px!important;min-width:108px!important;justify-content:flex-end!important}
html[data-theme="claro"] .profile .privacy-toggle input[type="checkbox"][data-privacy-default],
html[data-theme="escuro"] .profile .privacy-toggle input[type="checkbox"][data-privacy-default]{
  position:absolute!important;
  opacity:0!important;
  width:1px!important;
  min-width:1px!important;
  height:1px!important;
  min-height:1px!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  box-shadow:none!important;
  appearance:none!important;
  -webkit-appearance:none!important;
  pointer-events:none!important;
}
html[data-theme="claro"] .privacy-switch,
html[data-theme="escuro"] .privacy-switch{
  position:relative!important;
  width:42px!important;
  min-width:42px!important;
  height:24px!important;
  border-radius:999px!important;
  background:var(--v48-surface-active)!important;
  border:1px solid var(--v48-border-strong)!important;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.08)!important;
  transition:background .16s ease,border-color .16s ease!important;
}
html[data-theme="claro"] .privacy-switch>span,
html[data-theme="escuro"] .privacy-switch>span{
  position:absolute!important;
  top:3px!important;
  left:3px!important;
  width:16px!important;
  height:16px!important;
  border-radius:50%!important;
  background:var(--v48-surface)!important;
  border:1px solid var(--v48-border)!important;
  box-shadow:0 1px 3px rgba(0,0,0,.16)!important;
  transition:transform .16s ease,background .16s ease!important;
}
html[data-theme="claro"] .privacy-toggle input:checked + .privacy-switch,
html[data-theme="escuro"] .privacy-toggle input:checked + .privacy-switch{
  background:var(--v48-accent)!important;
  border-color:var(--v48-accent)!important;
}
html[data-theme="claro"] .privacy-toggle input:checked + .privacy-switch>span,
html[data-theme="escuro"] .privacy-toggle input:checked + .privacy-switch>span{
  transform:translateX(18px)!important;
  background:var(--v48-accent-text)!important;
  border-color:transparent!important;
}
html[data-theme="claro"] .privacy-toggle input:focus-visible + .privacy-switch,
html[data-theme="escuro"] .privacy-toggle input:focus-visible + .privacy-switch{
  outline:3px solid color-mix(in srgb,var(--v48-accent) 24%,transparent)!important;
  outline-offset:2px!important;
}
html[data-theme="claro"] .privacy-state,
html[data-theme="escuro"] .privacy-state{
  width:57px!important;
  text-align:right!important;
  color:var(--v48-muted)!important;
  font-size:10.5px!important;
  font-weight:750!important;
}
html[data-theme="claro"] .privacy-toggle.is-on .privacy-state,
html[data-theme="escuro"] .privacy-toggle.is-on .privacy-state{color:var(--v48-ink)!important}
.privacy-defaults-status,.profile-form-status{min-height:18px!important;margin:9px 0 0!important;font-size:11.5px!important;line-height:1.35!important}
html[data-theme="claro"] :is(.privacy-defaults-status,.profile-form-status),
html[data-theme="escuro"] :is(.privacy-defaults-status,.profile-form-status){color:var(--v48-muted)!important}
html[data-theme="claro"] :is(.privacy-defaults-status,.profile-form-status)[data-state="saved"],
html[data-theme="escuro"] :is(.privacy-defaults-status,.profile-form-status)[data-state="saved"]{color:#4f8062!important}
html[data-theme="claro"] :is(.privacy-defaults-status,.profile-form-status)[data-state="error"],
html[data-theme="escuro"] :is(.privacy-defaults-status,.profile-form-status)[data-state="error"]{color:var(--v48-danger)!important}
@media(max-width:560px){
  html[data-theme="claro"] .privacy-toggle,
  html[data-theme="escuro"] .privacy-toggle{grid-template-columns:1fr!important;gap:9px!important}
  html[data-theme="claro"] .privacy-toggle-control,
  html[data-theme="escuro"] .privacy-toggle-control{justify-content:flex-start!important;min-width:0!important}
  html[data-theme="claro"] .privacy-state,
  html[data-theme="escuro"] .privacy-state{text-align:left!important}
}


/* =========================================================
   v50 — controles de privacidade isolados do CSS de inputs
   ========================================================= */
html[data-theme="claro"] .privacy-defaults,
html[data-theme="escuro"] .privacy-defaults{
  padding:14px 15px 15px!important;
  border:1px solid var(--v48-border)!important;
  border-radius:14px!important;
  background:var(--v48-surface-raised)!important;
  box-shadow:none!important;
}
html[data-theme="claro"] .privacy-defaults legend,
html[data-theme="escuro"] .privacy-defaults legend{
  padding:0 7px!important;
  color:var(--v48-ink)!important;
  font-size:13px!important;
  font-weight:800!important;
}
html[data-theme="claro"] .privacy-defaults-intro,
html[data-theme="escuro"] .privacy-defaults-intro{
  margin:1px 0 11px!important;
  color:var(--v48-muted)!important;
  font-size:12px!important;
  line-height:1.45!important;
}
.privacy-native[hidden]{display:none!important;width:0!important;height:0!important;min-width:0!important;min-height:0!important;padding:0!important;margin:0!important;border:0!important}
.privacy-switch-list{display:grid!important;gap:8px!important}
html[data-theme="claro"] .privacy-choice,
html[data-theme="escuro"] .privacy-choice{
  appearance:none!important;
  -webkit-appearance:none!important;
  width:100%!important;
  min-height:64px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:18px!important;
  margin:0!important;
  padding:11px 13px!important;
  border:1px solid var(--v48-border)!important;
  border-radius:11px!important;
  background:var(--v48-surface)!important;
  color:var(--v48-ink)!important;
  text-align:left!important;
  font:inherit!important;
  cursor:pointer!important;
  box-shadow:none!important;
  transform:none!important;
  transition:background .16s ease,border-color .16s ease,box-shadow .16s ease!important;
}
html[data-theme="claro"] .privacy-choice:hover,
html[data-theme="escuro"] .privacy-choice:hover{
  background:var(--v48-surface-soft)!important;
  border-color:var(--v48-border-strong)!important;
  box-shadow:0 4px 14px rgba(0,0,0,.06)!important;
}
html[data-theme="claro"] .privacy-choice:focus-visible,
html[data-theme="escuro"] .privacy-choice:focus-visible{
  outline:3px solid color-mix(in srgb,var(--v48-accent) 24%,transparent)!important;
  outline-offset:2px!important;
}
html[data-theme="claro"] .privacy-choice.is-on,
html[data-theme="escuro"] .privacy-choice.is-on{
  background:var(--v48-surface-soft)!important;
  border-color:var(--v48-border-strong)!important;
}
.privacy-toggle-copy{display:grid!important;gap:3px!important;min-width:0!important}
html[data-theme="claro"] .privacy-toggle-copy b,
html[data-theme="escuro"] .privacy-toggle-copy b{
  color:var(--v48-ink)!important;
  font-size:13px!important;
  line-height:1.25!important;
  font-weight:800!important;
}
html[data-theme="claro"] .privacy-toggle-copy small,
html[data-theme="escuro"] .privacy-toggle-copy small{
  color:var(--v48-muted)!important;
  font-size:11.5px!important;
  line-height:1.35!important;
  font-weight:500!important;
}
.privacy-choice-control{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:9px!important;min-width:112px!important}
html[data-theme="claro"] .privacy-track,
html[data-theme="escuro"] .privacy-track{
  position:relative!important;
  display:block!important;
  width:46px!important;
  min-width:46px!important;
  height:26px!important;
  min-height:26px!important;
  border-radius:999px!important;
  background:var(--v48-surface-active)!important;
  border:1px solid var(--v48-border-strong)!important;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.10)!important;
  transition:background .16s ease,border-color .16s ease!important;
}
html[data-theme="claro"] .privacy-knob,
html[data-theme="escuro"] .privacy-knob{
  position:absolute!important;
  display:block!important;
  top:3px!important;
  left:3px!important;
  width:18px!important;
  height:18px!important;
  border-radius:50%!important;
  background:var(--v48-surface)!important;
  border:1px solid var(--v48-border)!important;
  box-shadow:0 1px 3px rgba(0,0,0,.18)!important;
  transform:translateX(0)!important;
  transition:transform .16s ease,background .16s ease!important;
}
html[data-theme="claro"] .privacy-choice.is-on .privacy-track,
html[data-theme="escuro"] .privacy-choice.is-on .privacy-track{
  background:var(--v48-accent)!important;
  border-color:var(--v48-accent)!important;
}
html[data-theme="claro"] .privacy-choice.is-on .privacy-knob,
html[data-theme="escuro"] .privacy-choice.is-on .privacy-knob{
  transform:translateX(20px)!important;
  background:var(--v48-accent-text)!important;
  border-color:transparent!important;
}
html[data-theme="claro"] .privacy-state,
html[data-theme="escuro"] .privacy-state{
  width:58px!important;
  color:var(--v48-muted)!important;
  font-size:10.5px!important;
  line-height:1!important;
  font-weight:800!important;
  text-align:right!important;
}
html[data-theme="claro"] .privacy-choice.is-on .privacy-state,
html[data-theme="escuro"] .privacy-choice.is-on .privacy-state{color:var(--v48-ink)!important}
@media(max-width:560px){
  html[data-theme="claro"] .privacy-choice,
  html[data-theme="escuro"] .privacy-choice{gap:12px!important;padding:11px!important}
  .privacy-choice-control{min-width:104px!important;gap:7px!important}
  html[data-theme="claro"] .privacy-toggle-copy small,
  html[data-theme="escuro"] .privacy-toggle-copy small{font-size:11px!important}
}


/* =========================================================
   v51 — auth shell hardening: nenhum recurso privado sem sessão
   ========================================================= */
#topNav.hidden,
#adminNav.hidden,
#signoutBtn.hidden,
#appFooter.hidden{display:none!important}

html:not([data-auth-state="authenticated"]) #topNav,
html:not([data-auth-state="authenticated"]) #adminNav,
html:not([data-auth-state="authenticated"]) #signoutBtn,
html:not([data-auth-state="authenticated"]) #appFooter{display:none!important;visibility:hidden!important;pointer-events:none!important}

html:not([data-auth-state="authenticated"]) #homeView,
html:not([data-auth-state="authenticated"]) #messagesView,
html:not([data-auth-state="authenticated"]) #profileView,
html:not([data-auth-state="authenticated"]) #adminView{display:none!important;visibility:hidden!important;pointer-events:none!important}

html[data-auth-state="guest"] #authView,
html[data-auth-state="checking"] #authView{visibility:visible!important}

html[data-auth-state="guest"] .topbar #topNav,
html[data-auth-state="checking"] .topbar #topNav{display:none!important}


/* =========================================================
   v52 — switches de publicação, aceite seguro e alertas reversíveis
   ========================================================= */
/* Inputs nativos auxiliares nunca podem herdar altura/largura dos campos de formulário. */
.form .privacy-native[hidden],
.profile .privacy-native[hidden]{
  display:none!important;width:0!important;min-width:0!important;height:0!important;min-height:0!important;
  margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;appearance:none!important;-webkit-appearance:none!important;
}
/* Switches de nova publicação e edição usam exatamente o mesmo componente visual do perfil. */
.post-privacy-defaults{padding:14px 15px 15px!important;border-radius:14px!important}
.post-privacy-defaults .privacy-defaults-intro{margin:1px 0 11px!important}
.post-privacy-choice{min-height:58px!important}
/* Checkbox legal: override completo do CSS genérico de .form input. */
.form .signup-legal-check input[type="checkbox"],
.form .legal-check input[type="checkbox"]{
  appearance:none!important;-webkit-appearance:none!important;
  width:21px!important;min-width:21px!important;max-width:21px!important;
  height:21px!important;min-height:21px!important;max-height:21px!important;
  margin:1px 9px 0 0!important;padding:0!important;
  border:2px solid var(--v48-border-strong)!important;border-radius:6px!important;
  background:var(--v48-input)!important;display:grid!important;place-content:center!important;
  box-shadow:none!important;flex:0 0 21px!important;
}
.form .signup-legal-check input[type="checkbox"]::before,
.form .legal-check input[type="checkbox"]::before{
  content:""!important;width:11px!important;height:11px!important;transform:scale(0)!important;
  box-shadow:inset 1em 1em var(--v48-accent-text)!important;
  clip-path:polygon(14% 44%,0 59%,40% 100%,100% 20%,84% 6%,39% 70%)!important;
}
.form .signup-legal-check input[type="checkbox"]:checked,
.form .legal-check input[type="checkbox"]:checked{background:var(--v48-accent)!important;border-color:var(--v48-accent)!important}
.form .signup-legal-check input[type="checkbox"]:checked::before,
.form .legal-check input[type="checkbox"]:checked::before{transform:scale(1)!important}
.form .signup-legal-check input[type="checkbox"]:disabled,
.form .legal-check input[type="checkbox"]:disabled{opacity:.55!important;cursor:not-allowed!important}
/* O botão de cadastro deve parecer e permanecer indisponível até TODOS os requisitos estarem satisfeitos. */
#submitSignupBtn:disabled,
#submitSignupBtn[aria-disabled="true"]{
  background:var(--v48-surface-active)!important;color:var(--v48-muted)!important;
  border-color:var(--v48-border)!important;opacity:.62!important;cursor:not-allowed!important;
  pointer-events:none!important;box-shadow:none!important;
}
#submitSignupBtn:not(:disabled){opacity:1!important;cursor:pointer!important}
/* Alertas: switch compacto, reversível no nível do portal. */
.notification-choice{
  appearance:none!important;-webkit-appearance:none!important;
  display:flex!important;align-items:center!important;gap:10px!important;
  min-height:38px!important;padding:5px 8px 5px 10px!important;
  border:1px solid var(--v48-border)!important;border-radius:10px!important;
  background:var(--v48-surface-raised)!important;color:var(--v48-ink)!important;
  font:inherit!important;cursor:pointer!important;box-shadow:none!important;
}
.notification-choice:hover{background:var(--v48-surface-soft)!important;border-color:var(--v48-border-strong)!important}
.notification-choice.is-on{background:var(--v48-surface-active)!important;border-color:var(--v48-border-strong)!important}
.notification-choice.is-blocked{opacity:.78!important}
.notification-choice-copy{display:grid!important;gap:1px!important;text-align:left!important;line-height:1.05!important}
.notification-choice-copy b{font-size:11.5px!important;color:var(--v48-ink)!important}
.notification-choice-copy small{font-size:9.5px!important;color:var(--v48-muted)!important;font-weight:600!important;white-space:nowrap!important}
.notification-choice .privacy-choice-control{min-width:auto!important;gap:7px!important}
.notification-choice .privacy-track{width:40px!important;min-width:40px!important;height:22px!important;min-height:22px!important}
.notification-choice .privacy-knob{width:16px!important;height:16px!important;top:2px!important;left:2px!important}
.notification-choice.is-on .privacy-track{background:var(--v48-accent)!important;border-color:var(--v48-accent)!important}
.notification-choice.is-on .privacy-knob{transform:translateX(18px)!important;background:var(--v48-accent-text)!important;border-color:transparent!important}
.notification-choice .privacy-state{width:55px!important}
@media(max-width:620px){
  .messages-head-actions{width:100%!important;justify-content:space-between!important}
  .notification-choice-copy small{white-space:normal!important}
  .notification-choice .privacy-state{display:none!important}
}


/* =========================================================
   v53 — aceite legal robusto + mensagens internas + som opcional
   ========================================================= */
#messagesUnreadBadge.nav-unread-badge{
  display:inline-grid!important;
  place-items:center!important;
  min-width:19px!important;
  height:19px!important;
  padding:0 5px!important;
  margin-left:2px!important;
  border-radius:999px!important;
  background:#d93434!important;
  color:#fff!important;
  border:2px solid var(--v48-surface-raised)!important;
  box-shadow:0 2px 6px rgba(217,52,52,.28)!important;
  font-size:10.5px!important;
  font-weight:900!important;
  line-height:1!important;
}
#messagesUnreadBadge.hidden{display:none!important}
.messages-nav-btn.has-unread{border-color:color-mix(in srgb,#d93434 42%,var(--v48-border))!important}
.notification-choice{min-width:190px!important}
.notification-choice.is-on .privacy-track{background:var(--v48-accent)!important;border-color:var(--v48-accent)!important}
.notification-choice.is-on .privacy-knob{transform:translateX(18px)!important;background:var(--v48-accent-text)!important;border-color:transparent!important}
.legal-end-marker{height:2px!important;width:100%!important;display:block!important;pointer-events:none!important}
.signup-legal-check input[type="checkbox"]:disabled{opacity:.55!important;cursor:not-allowed!important}
.signup-legal-check input[type="checkbox"]:not(:disabled){cursor:pointer!important}
@media(max-width:640px){.notification-choice{min-width:0!important}.messages-head-actions{flex-wrap:wrap!important}}


/* v54 — Mensagens na dashboard */
html[data-theme="claro"] .community-stats,
html[data-theme="escuro"] .community-stats{grid-template-columns:repeat(6,minmax(0,1fr))!important}
html[data-theme="claro"] .dashboard-messages-stat,
html[data-theme="escuro"] .dashboard-messages-stat{position:relative!important}
html[data-theme="claro"] .dashboard-messages-stat.has-unread,
html[data-theme="escuro"] .dashboard-messages-stat.has-unread{border-color:#c64d55!important;box-shadow:0 0 0 1px color-mix(in srgb,#c64d55 28%,transparent)!important}
html[data-theme="claro"] .dashboard-messages-stat.has-unread::after,
html[data-theme="escuro"] .dashboard-messages-stat.has-unread::after{content:"";position:absolute;top:10px;right:10px;width:8px;height:8px;border-radius:999px;background:#d64545;box-shadow:0 0 0 3px color-mix(in srgb,#d64545 14%,transparent)}
html[data-theme="claro"] .dashboard-messages-stat.has-unread b,
html[data-theme="escuro"] .dashboard-messages-stat.has-unread b{color:#c53f48!important}
@media(max-width:1040px){html[data-theme="claro"] .community-stats,html[data-theme="escuro"] .community-stats{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:780px){html[data-theme="claro"] .community-stats,html[data-theme="escuro"] .community-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:520px){html[data-theme="claro"] .community-stats,html[data-theme="escuro"] .community-stats{grid-template-columns:1fr!important}}


/* =========================================================
   v55 — revisão de UX, acessibilidade e hardening visual
   ========================================================= */
.ui-message-error{color:#a43d3d!important}
.ui-message-ok{color:#2f6a4e!important}
html[data-theme="escuro"] .ui-message-error{color:#ff9b9b!important}
html[data-theme="escuro"] .ui-message-ok{color:#8fd0a9!important}

/* Aceite legal usa o mesmo padrão de switch do portal e não depende mais de checkbox clicável. */
.legal-native[hidden]{display:none!important;width:0!important;height:0!important;min-width:0!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important}
html[data-theme="claro"] .legal-accept-choice,
html[data-theme="escuro"] .legal-accept-choice{
  appearance:none!important;-webkit-appearance:none!important;width:100%!important;
  display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:16px!important;
  padding:11px 12px!important;margin:0!important;border:1px solid var(--v48-border)!important;border-radius:11px!important;
  background:var(--v48-surface)!important;color:var(--v48-ink)!important;text-align:left!important;font:inherit!important;cursor:pointer!important;
  box-shadow:none!important;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease!important;
}
html[data-theme="claro"] .legal-accept-choice:hover,
html[data-theme="escuro"] .legal-accept-choice:hover{background:var(--v48-surface-soft)!important;border-color:var(--v48-border-strong)!important}
html[data-theme="claro"] .legal-accept-choice:focus-visible,
html[data-theme="escuro"] .legal-accept-choice:focus-visible{outline:3px solid color-mix(in srgb,var(--v48-accent) 24%,transparent)!important;outline-offset:2px!important}
.legal-accept-copy{display:grid!important;gap:3px!important;min-width:0!important}
.legal-accept-copy b{font-size:12.5px!important;line-height:1.35!important;color:var(--v48-ink)!important}
.legal-accept-copy small{font-size:11px!important;line-height:1.35!important;color:var(--v48-muted)!important;font-weight:500!important}
.legal-accept-control{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:8px!important;min-width:116px!important}
.legal-accept-choice:not(.is-ready) .privacy-track{opacity:.55!important}
.legal-accept-choice:not(.is-ready) .privacy-state{color:var(--v48-faint)!important}
.legal-accept-choice.is-on{background:var(--v48-surface-soft)!important;border-color:var(--v48-border-strong)!important}
.legal-accept-choice.is-on .privacy-track{background:var(--v48-accent)!important;border-color:var(--v48-accent)!important}
.legal-accept-choice.is-on .privacy-knob{transform:translateX(20px)!important;background:var(--v48-accent-text)!important;border-color:transparent!important}
.legal-accept-choice.is-on .privacy-state{color:var(--v48-ink)!important}

/* O texto explicativo de privacidade fica dentro do bloco, separado do último switch. */
#postInteractionHint,#editInteractionHint{
  position:static!important;display:block!important;margin:11px 1px 0!important;padding:10px 2px 0!important;
  border-top:1px solid var(--v48-border)!important;line-height:1.45!important;min-height:0!important;overflow:visible!important;
}
.post-privacy-defaults{padding-bottom:14px!important;overflow:visible!important}
.post-privacy-defaults .privacy-switch-list{margin-bottom:0!important}

/* Consistência de formulários e diálogos. */
dialog .form{min-width:0!important}
dialog .form>fieldset,dialog .form>section{min-width:0!important}
.signup-legal-block{overflow:visible!important}
.signup-legal-scroll{overscroll-behavior:contain!important}
#signupLegalStatus{line-height:1.35!important}
#submitSignupBtn:disabled{filter:none!important}

@media(max-width:560px){
  html[data-theme="claro"] .legal-accept-choice,
  html[data-theme="escuro"] .legal-accept-choice{grid-template-columns:1fr!important;gap:9px!important}
  .legal-accept-control{justify-content:flex-start!important;min-width:0!important}
}
