/* Gestão Associativa V6.15.0 — utilização diária, acessibilidade e acabamento */
:root{
  --focus-ring:#0b63ce;
  --surface:var(--card);
  --surface-subtle:var(--soft2);
  --surface-interactive:var(--soft);
  --text:var(--txt);
  --text-muted:var(--muted);
  --border:var(--line);
}

html{scroll-behavior:smooth;color-scheme:light}
body.dark{color-scheme:dark}
body{background:var(--bg)!important;min-height:100vh}
body.dark{background:#161310!important}

h1,h2,h3,h4,h5,h6,
label,th,nav button,.brand small,.premiumNavLabel{
  text-transform:none!important;
}
h1,h2,h3,h4{font-weight:800!important;letter-spacing:0!important}
h2{line-height:1.2}
label{font-weight:700!important}
th{font-weight:800!important}

.skipLink{
  position:fixed;left:16px;top:10px;z-index:100000;
  transform:translateY(-160%);background:var(--card);color:var(--txt);
  border:2px solid var(--brand);border-radius:10px;padding:10px 14px;
  font-weight:800;text-decoration:none;box-shadow:var(--shadow)
}
.skipLink:focus{transform:translateY(0)}
.srOnly,.rcamSrOnly{
  position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;
  overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important
}

:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:3px solid var(--focus-ring)!important;outline-offset:2px!important;
}
button,.btn,.headerBtn,.premiumNavItem{touch-action:manipulation}
.btn.small,.rowActions .btn,.docTableActions .btn{min-height:40px}

main{width:100%;max-width:none!important;min-width:0;overflow-x:clip}
.pageHead h2{margin-bottom:3px}
.pageHead .muted{line-height:1.45}
.card{min-width:0}

/* Cabeçalho mais limpo */
#userEmail{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#themeToggleBtn{min-width:42px}
#themeToggleBtn[aria-pressed="true"]{background:#ffffff26}

/* Estados e mensagens */
.notice{line-height:1.5}
.toast{line-height:1.4}
.toast[role="alert"]{border-left-width:6px}

/* Formulários */
input,select,textarea{transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
input:focus,select:focus,textarea:focus{border-color:var(--brand)}
input[aria-invalid="true"],select[aria-invalid="true"],textarea[aria-invalid="true"]{border-color:var(--bad)!important}
.fieldHint,.rcamFieldHint{display:block;margin-top:5px;color:var(--muted);font-size:13px;line-height:1.35}

/* Tabelas acessíveis */
.rcamTableRegion{width:100%;overflow-x:auto;overscroll-behavior-inline:contain;border-radius:14px}
.rcamTableRegion:focus-visible{outline-offset:4px!important}
.rcamResponsiveTable{min-width:100%}
.rcamResponsiveTable th{white-space:nowrap}
.rcamResponsiveTable td{overflow-wrap:anywhere}
.rcamResponsiveTable .rowActions,.rcamResponsiveTable .docTableActions{display:flex;gap:6px;flex-wrap:wrap}

/* Diálogos */
[role="dialog"].modalOverlay,.modalOverlay[aria-modal="true"]{isolation:isolate}
.modalBox,.mobileSearchPanel,.passwordResetDialog{background:var(--card);color:var(--txt)}

/* Modo escuro completo — elimina superfícies claras residuais */
body.dark :where(.card,.modalBox,.mobileSearchPanel,.loginUnifiedCard,.passwordResetDialog,table,input,select,textarea){
  background-color:var(--card)!important;color:var(--txt)!important;border-color:var(--line)!important
}
body.dark :where(th,.metaItem,.filePickBox,.invoiceLargePreviewEmpty,.notice,.pill,.btn.light){
  background-color:var(--soft)!important;color:var(--txt)!important;border-color:var(--line)!important
}
body.dark :where(.invoiceViewer,.invoiceLargePreview,.photoPreview,.nativeFile){background:#201a16!important}
body.dark input::placeholder,body.dark textarea::placeholder{color:#b8a99b!important;opacity:1}
body.dark .status.ok{background:#173a25;color:#b8f0c8}
body.dark .status.warn{background:#3a2b14;color:#ffd99c}
body.dark .status.bad{background:#432020;color:#ffc1bd}
body.dark .searchResults mark{background:#6d5121;color:#fff4d6}

/* Arquivo */
.premiumArchivePage .premiumArchiveEmpty{text-align:center;padding:28px 16px}
.premiumArchivePage .premiumArchiveEmpty h3{margin-top:10px}

/* Mobile: tabelas operacionais transformam-se em cartões legíveis. O POS fica excluído por JS. */
@media(max-width:760px){
  body{font-size:16px}
  main{padding-left:10px!important;padding-right:10px!important}
  .pageHead{gap:8px;flex-direction:column}
  .pageHead>.toolbar{width:100%}
  .toolbar>.btn{flex:0 1 auto}
  .btn,.headerBtn,.premiumNavItem{min-height:44px}
  .btn.small,.rowActions .btn,.docTableActions .btn{min-height:44px;font-size:14px!important}
  #userEmail{display:none!important}

  .rcamTableRegion{overflow:visible;border-radius:0}
  table.rcamResponsiveTable{display:block;border:0;background:transparent!important;min-width:0!important}
  table.rcamResponsiveTable thead{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
  table.rcamResponsiveTable tbody{display:grid;gap:10px;width:100%}
  table.rcamResponsiveTable tbody tr{display:block;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:8px 12px;box-shadow:var(--shadow)}
  table.rcamResponsiveTable tbody tr[hidden]{display:none!important}
  table.rcamResponsiveTable tbody td{display:grid;grid-template-columns:minmax(112px,38%) minmax(0,1fr);gap:10px;align-items:start;border-bottom:1px solid var(--line);padding:10px 2px!important;min-height:40px}
  table.rcamResponsiveTable tbody td:last-child{border-bottom:0}
  table.rcamResponsiveTable tbody td::before{content:attr(data-label);font-weight:800;color:var(--muted);font-size:13px;line-height:1.35}
  table.rcamResponsiveTable tbody td[colspan]::before{content:'';display:none}
  table.rcamResponsiveTable .rowActions,table.rcamResponsiveTable .docTableActions{justify-content:flex-start}
  table.rcamResponsiveTable .rowActions .btn,table.rcamResponsiveTable .docTableActions .btn{flex:1 1 120px;margin:0}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}
