:root{--blue:#14213D;--ink:#14213D;--copper:#B5622C;--copper-soft:#F1E1D3;--bg:#F6F4EF;--line:#D9D2C3;--muted:#5B6472;--good:#2F7D5C}
*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:var(--bg);color:#14213D}
#login{max-width:420px;margin:12vh auto;background:#fff;padding:28px;border:1px solid var(--line);border-radius:10px;box-shadow:0 1px 3px rgba(20,33,61,.06)}
#login h2{margin:0 0 4px;font-size:21px}
input,select,textarea{width:100%;padding:10px;border:1px solid #dbe2ec;border-radius:8px;margin-top:6px}
input[type="checkbox"]{width:auto;padding:0;margin:0;flex:0 0 auto}
select{
  -webkit-appearance:none;
  appearance:none;
  background-color:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%235B6472' stroke-width='2'%3E%3Cpath d='M5 7l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 10px center;
  background-size:15px;
  padding-right:32px;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
input[type="number"]{-moz-appearance:textfield}
button{border:0;background:var(--copper);color:#fff;padding:10px 13px;border-radius:8px;font-weight:700;cursor:pointer}
button:hover{background:#9F5225}
.app{display:none;grid-template-columns:248px 1fr;min-height:100vh}
aside{background:var(--ink);color:#C9CEDA;padding:18px 14px;position:sticky;top:0;height:100vh;box-sizing:border-box;display:flex;flex-direction:column;overflow-y:auto}
aside nav{flex:0 0 auto;display:flex;flex-direction:column}
.navgroup-label{font-size:11px;font-weight:700;color:#7C86A0;letter-spacing:.3px;margin:14px 10px 6px;text-transform:none}
.navgroup-label:first-child{margin-top:2px}
.storageSidebar{margin-top:10px;padding-top:0}
.storageSidebarBox{background:#ffffff0f;border:1px solid #ffffff1f;border-radius:10px;padding:14px}
.storageSidebarTitle{font-size:12.5px;font-weight:700;margin-bottom:9px;color:#C9CEDA}
.storageSidebarTotal{font-size:17px;font-weight:800;color:#fff}
.storageSidebarSmall{font-size:10px;opacity:.78;margin-top:4px;line-height:1.45}
.storageSidebarTrack{height:6px;background:#ffffff22;border-radius:999px;overflow:hidden;margin:10px 0 8px}
.storageSidebarFill{height:100%;width:0%;background:var(--copper);border-radius:999px;transition:width .3s ease}
.brand{font-size:15px;font-weight:800;margin-bottom:14px;padding:10px 10px 18px;border-bottom:1px solid #ffffff17;line-height:1.35}
.brand #brand{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.brand small{display:block;font-size:11.5px;font-weight:400;opacity:.6;margin-top:2px}
nav button{width:100%;background:transparent;text-align:left;margin:1px 0;color:#C9CEDA;border-radius:6px;padding:8px 10px;font-weight:600;font-size:13.5px;border-left:3px solid transparent;display:flex;align-items:center;gap:10px}
nav button svg{width:16px;height:16px;stroke:#96A0B7;flex:0 0 auto}
nav button.active{background:rgba(181,98,44,.18);border-left:3px solid var(--copper);color:#fff}
nav button.active svg{stroke:var(--copper)}
nav button:hover{background:#ffffff12}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 22px;background:#fff;border-bottom:1px solid var(--line);margin:-16px -16px 16px}
.topbar .who{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--muted)}
.topbar .avatar{width:30px;height:30px;border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:700}
.topbar b{font-size:14px;color:#14213D;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:50vw;display:inline-block;vertical-align:middle}
main{padding:16px;min-width:0;overflow-x:hidden}.section{display:none}.section.active{display:block}.top{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
h1{margin:0}.muted{color:var(--muted);font-size:12px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:15px 0}
.card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:15px;box-shadow:0 1px 2px rgba(20,33,61,.04)}.kpi{position:relative;overflow:hidden}.kpi::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--copper)}.kpi b{display:block;font-size:24px;margin-top:5px}
.tablewrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 1px 2px rgba(20,33,61,.04)}table{border-collapse:collapse;width:100%;min-width:900px;font-size:12px}th,td{padding:9px;border-bottom:1px solid #edf0f4;text-align:right}th{background:#F1EEE6;color:#14213D}th:first-child,td:first-child{text-align:left}
.modal{position:fixed;inset:0;background:#0006;display:none;align-items:center;justify-content:center}.modal.open{display:flex}.modalbox{background:#fff;width:min(760px,94vw);max-height:90vh;overflow:auto;border-radius:12px;padding:20px}
.close{float:right;background:#eef2f7;color:#14213D;border-radius:50%;width:32px;height:32px}.occgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px}.occcard{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px}.badge{display:inline-block;padding:5px 8px;border-radius:20px;background:var(--copper-soft);color:var(--copper);font-size:11px;font-weight:800}.occimgs{display:flex;gap:8px;margin-top:10px}.occimgs img{width:130px;height:100px;object-fit:cover;border-radius:10px}
@media(max-width:900px){.app{grid-template-columns:1fr}aside{height:auto;position:static}.grid{grid-template-columns:1fr 1fr}.topbar{margin:-16px -16px 16px}}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,nav button:focus-visible{outline:2px solid var(--copper);outline-offset:2px}
table tbody tr:hover td{background:#FBF7F1}
#login{position:relative;overflow:hidden}
#login::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--copper)}
#login .logomark{width:40px;height:40px;border-radius:10px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;margin-bottom:14px}



/* X fixo dentro das janelas Fração e Conta corrente */
#modalFracao .closeFixo,
#modalExtrato .closeFixo{
  position:sticky;
  top:0;
  z-index:500;
  margin-left:auto;
  margin-bottom:-38px;

  width:38px;
  height:38px;
  min-width:38px;
  padding:0;

  display:flex;
  align-items:center;
  justify-content:center;

  float:none;
  border-radius:50%;
  background:#eef2f7;
  color:#162033;
  font-size:20px;
  line-height:1;

  box-shadow:0 2px 8px rgba(0,0,0,.10);
}

/* ============================================= */

/* Tabelas do Financeiro: Resumo anual, Receitas — Quotas, Quotas extraordinárias */
#financeiro .card{max-width:100%;box-sizing:border-box}

#financeiro .financeiroCompacto{
  width:100%;
  table-layout:auto;
  font-size:11.5px;
  border-collapse:collapse;
}

#financeiro .financeiroCompacto th,
#financeiro .financeiroCompacto td{
  padding:7px 8px;
  line-height:1.3;
  overflow-wrap:anywhere;
  white-space:nowrap;
}

#financeiro .financeiroCompacto th{
  font-size:11px;
  font-weight:700;
}

#financeiro .financeiroCompacto th:first-child,
#financeiro .financeiroCompacto td:first-child{
  min-width:84px;
  white-space:normal;
  font-size:11.5px;
}

#financeiro .financeiroCompacto button{
  font-size:11px;
}

#financeiro .financeiroCompacto td div{
  font-size:11px;
}

#financeiro .financeiroCompacto td:first-child{
  white-space:normal;
}

#financeiro .financeiroCompacto th:nth-last-child(-n+3),
#financeiro .financeiroCompacto td:nth-last-child(-n+3){
  min-width:98px;
}

#financeiro .financeiroCompacto th:nth-last-child(-n+3){
  white-space:normal;
}

#financeiro .financeiroCompacto tbody tr:nth-child(even) td{
  background:#FBF9F5;
}

/* Quotas extraordinárias: mesma base + colunas de totais um pouco mais largas */
#financeiro .quotaExtraCompacta{
  width:100%;
  min-width:0;
  table-layout:auto;
  font-size:11px;
}

#financeiro .quotaExtraCompacta th:first-child,
#financeiro .quotaExtraCompacta td:first-child{
  min-width:74px;
}

#financeiro .quotaExtraCompacta th:nth-last-child(-n+3),
#financeiro .quotaExtraCompacta td:nth-last-child(-n+3){
  min-width:88px;
  font-size:10.5px;
  text-align:center;
}

#financeiro .quotaExtraCompacta th:nth-last-child(-n+3){
  white-space:normal;
}

#financeiro .finScroll{
  padding-bottom:14px;
  background:
    linear-gradient(to right,#fff 30%,rgba(255,255,255,0)),
    linear-gradient(to right,rgba(255,255,255,0),#fff 70%) 0 100%,
    radial-gradient(farthest-side at 0 50%,rgba(20,33,61,.18),rgba(20,33,61,0)),
    radial-gradient(farthest-side at 100% 50%,rgba(20,33,61,.18),rgba(20,33,61,0)) 0 100%;
  background-repeat:no-repeat;
  background-color:#fff;
  background-size:36px 100%,36px 100%,12px 100%,12px 100%;
  background-position:0 0,100% 0,0 0,100% 0;
  background-attachment:local,local,scroll,scroll;
}

#financeiro .quotaExtraCompacta button{
  font-size:10.5px;
  padding:5px 6px;
}

/* ============================================= */

/* Correção da sobreposição das tabelas sobre os modais */
#modal{
  z-index:20000 !important;
}

#modal .modalbox{
  position:relative;
  z-index:20001;
  overflow-x:hidden;
}

<style>
/* Dashboard — Ponto 2 */
#dashboard .dashboardGrid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:15px 0;
}
#dashboard .dashboardKpi{
  min-height:118px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
#dashboard .dashboardKpi .kpiLabel{
  font-size:12px;
  color:var(--muted);
  font-weight:700;
}
#dashboard .dashboardKpi b{
  font-size:25px;
  margin-top:6px;
}
#dashboard .dashboardKpi .kpiFoot{
  font-size:11px;
  color:var(--muted);
  margin-top:7px;
}
#dashboard .dashboardTwoCols{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:14px;
  margin-top:14px;
}
#dashboard .dashboardSectionTitle{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:10px;
}
#dashboard .dashboardSectionTitle h3{margin:0}
#dashboard .actionItem,
#dashboard .recentItem{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:11px 0;
  border-top:1px solid #edf0f4;
}
#dashboard .actionItem:first-child,
#dashboard .recentItem:first-child{border-top:0}
#dashboard .actionCount{
  min-width:34px;
  height:28px;
  padding:0 9px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:12px;
  font-weight:800;
  background:#F1E1D3;
  color:#9F5225;
}
#dashboard .actionCount.danger{
  background:#fee2e2;
  color:#b91c1c;
}
#dashboard .actionCount.good{
  background:#dcfce7;
  color:#15803d;
}
#dashboard .dashboardLink{
  background:#fff;
  color:#14213D;
  border:1px solid var(--line);
  padding:7px 10px;
  font-size:12px;
  font-weight:700;
}
#dashboard .dashboardLink:hover{
  background:#F6F4EF;
}
@media(max-width:1100px){
  #dashboard .dashboardGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #dashboard .dashboardTwoCols{grid-template-columns:1fr}
}
@media(max-width:650px){
  #dashboard .dashboardGrid{grid-template-columns:1fr}
}

/* ============================================= */

/* Ponto 3 — Conta corrente / Frações */
#conta .contaResumoGrid,
#modalFracao .fracaoResumoGrid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:14px 0;
}
#conta .contaResumoCard,
#modalFracao .fracaoResumoCard{
  border:1px solid var(--line);
  border-radius:12px;
  padding:14px;
  background:#fff;
}
#conta .contaResumoCard span,
#modalFracao .fracaoResumoCard span{
  display:block;
  font-size:12px;
  color:var(--muted);
  font-weight:700;
}
#conta .contaResumoCard b,
#modalFracao .fracaoResumoCard b{
  display:block;
  margin-top:7px;
  font-size:21px;
}
#conta .contaFiltros{
  display:grid;
  grid-template-columns:minmax(220px,1fr) 220px 180px;
  gap:10px;
  align-items:end;
  margin:14px 0;
}
#conta .estadoConta{
  display:inline-block;
  padding:5px 9px;
  border-radius:999px;
  font-size:12px;
  font-weight:800;
  white-space:nowrap;
}
#conta .estadoConta.atraso{
  background:#fee2e2;
  color:#b91c1c;
}
#conta .estadoConta.credito{
  background:#dcfce7;
  color:#15803d;
}
#conta .estadoConta.regular{
  background:#eef2f7;
  color:#475569;
}
#modalFracao .fracaoFinanceiroTopo{
  margin:4px 0 18px;
  padding:15px;
  border:1px solid #e5e7eb;
  border-radius:12px;
  background:#fafafa;
}
#modalFracao .fracaoFinanceiroAcoes{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:12px;
}
#modalFracao .fracaoUltimoPagamento{
  margin-top:10px;
  font-size:12px;
  color:var(--muted);
}
@media(max-width:900px){
  #conta .contaResumoGrid,
  #modalFracao .fracaoResumoGrid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  #conta .contaFiltros{
    grid-template-columns:1fr;
  }
}
@media(max-width:560px){
  #conta .contaResumoGrid,
  #modalFracao .fracaoResumoGrid{
    grid-template-columns:1fr;
  }
}

/* ============================================= */

/* Ponto 4 — Receitas e despesas */
#financeiro .movResumoGrid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:14px 0;
}
#financeiro .movResumoCard{
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  padding:14px;
}
#financeiro .movResumoCard span{
  display:block;
  font-size:12px;
  color:var(--muted);
  font-weight:700;
}
#financeiro .movResumoCard b{
  display:block;
  margin-top:7px;
  font-size:21px;
}
#financeiro .movFiltros{
  display:grid;
  grid-template-columns:1.2fr 1fr 1fr 1fr;
  gap:10px;
  margin-top:12px;
}
#financeiro .movFiltrosAcoes{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
  margin-top:10px;
}
#financeiro .movFiltroInfo{
  font-size:12px;
  color:var(--muted);
}
#financeiro .tipoMovimento{
  display:inline-block;
  padding:4px 8px;
  border-radius:999px;
  font-size:11px;
  font-weight:800;
}
#financeiro .tipoMovimento.receita{
  background:#dcfce7;
  color:#15803d;
}
#financeiro .tipoMovimento.despesa{
  background:#fee2e2;
  color:#b91c1c;
}
@media(max-width:1050px){
  #financeiro .movResumoGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #financeiro .movFiltros{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
  #financeiro .movResumoGrid,
  #financeiro .movFiltros{grid-template-columns:1fr}
}

/* ============================================= */

#auditoria .auditFiltros{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:10px;
  align-items:end;
}
#auditoria .auditResumo{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:14px 0;
}
#auditoria .auditResumo .card b{
  display:block;
  font-size:22px;
  margin-top:6px;
}
#auditoria .auditAcao{
  display:inline-block;
  padding:4px 8px;
  border-radius:999px;
  background:#eef2f7;
  color:#334155;
  font-size:11px;
  font-weight:800;
}
#auditoria .auditDetalhes{
  max-width:520px;
  white-space:normal;
  word-break:break-word;
}
@media(max-width:900px){
  #auditoria .auditFiltros{grid-template-columns:1fr 1fr}
  #auditoria .auditResumo{grid-template-columns:1fr}
}
@media(max-width:600px){
  #auditoria .auditFiltros{grid-template-columns:1fr}
}

/* ===== Utilizador / logout no topo ===== */
.userMenuWrap{
  position:relative;
  display:inline-block;
}
.userMenuBtn{
  display:flex;
  align-items:center;
  gap:8px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--ink);
  border-radius:10px;
  padding:7px 10px;
  cursor:pointer;
  font-weight:700;
}
.userMenuBtn:hover{background:var(--bg)}
.userMenuAvatar{
  width:26px;
  height:26px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--copper-soft);
  color:var(--copper);
  font-size:12px;
}
.userMenuChevron{font-size:11px;opacity:.7}
.userMenuDropdown{
  position:absolute;
  right:0;
  top:calc(100% + 6px);
  min-width:170px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:10px;
  box-shadow:0 12px 30px rgba(0,0,0,.12);
  padding:6px;
  z-index:9999;
}
.userMenuDropdown button{
  width:100%;
  text-align:left;
  background:transparent;
  border:0;
  padding:9px 10px;
  border-radius:7px;
  cursor:pointer;
}
.userMenuDropdown button:hover{background:var(--bg)}

/* ===== Gestão compacta de administradores ===== */
.adminAccessHeader{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-end;
  flex-wrap:wrap;
}
.adminAccessTools{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.adminAccessTools input,
.adminAccessTools select{
  min-height:38px;
}
.adminAccessTools input{
  min-width:220px;
}
.adminAccessTableWrap{
  overflow-x:auto;
  border:1px solid var(--line);
  border-radius:10px;
}
.adminAccessTable{
  width:100%;
  border-collapse:collapse;
  background:#fff;
}
.adminAccessTable th,
.adminAccessTable td{
  padding:11px 12px;
  border-bottom:1px solid var(--line);
  vertical-align:middle;
}
.adminAccessTable th{
  text-align:left;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--muted);
  background:#faf9f6;
}
.adminAccessTable tr:last-child td{border-bottom:0}
.adminAccessState{
  display:inline-block;
  padding:5px 8px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
  background:#f3f4f6;
}
.adminAccessState.is-admin{
  background:var(--copper-soft);
  color:var(--copper);
}
.adminAccessAction{
  white-space:nowrap;
  text-align:right;
}
.adminAccessAction button{
  padding:7px 10px;
}
.adminAccessEmpty{
  text-align:center;
  color:var(--muted);
  padding:20px !important;
}
@media (max-width:700px){
  .adminAccessTools{width:100%}
  .adminAccessTools input,
  .adminAccessTools select{flex:1;min-width:0}
}


/* esconder avatar antigo do topo, se existir */
.topbar .avatar{display:none !important}


/* Correção do menu do utilizador */
.userMenuWrap{position:relative;display:block}
.userMenuBtn{
  display:flex;
  align-items:center;
  gap:12px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--ink);
  border-radius:16px;
  padding:10px 16px;
  cursor:pointer;
  font-weight:700;
  min-height:52px;
}
.userMenuBtn:hover{background:#fcfbf8}
.userMenuAvatar{
  width:40px;
  height:40px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--copper-soft);
  color:var(--copper);
  font-size:16px;
  font-weight:800;
  flex:0 0 40px;
}
.userMenuLabel{font-size:16px;line-height:1;color:var(--ink)}
.userMenuChevron{font-size:12px;opacity:.7;margin-left:2px}
.userMenuDropdown{
  position:absolute;
  right:0;
  top:calc(100% + 8px);
  min-width:220px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow:0 12px 30px rgba(0,0,0,.12);
  padding:8px;
  z-index:9999;
}
.userMenuDropdown button{
  width:100%;
  text-align:left;
  background:transparent;
  color:var(--ink);
  border:0;
  padding:10px 12px;
  border-radius:10px;
  cursor:pointer;
  font-weight:600;
}
.userMenuDropdown button:hover{background:var(--bg);color:var(--ink)}


/* ===== Cabeçalho de utilizador simplificado ===== */
.userMenuSimple{
  display:flex;
  align-items:center;
  gap:10px;
}

.userMenuIdentity{
  display:flex;
  align-items:center;
  gap:10px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--ink);
  border-radius:14px;
  padding:8px 12px;
  min-height:48px;
}

.userMenuIdentity .userMenuAvatar{
  width:36px;
  height:36px;
  flex:0 0 36px;
  font-size:15px;
}

.userMenuIdentity .userMenuLabel{
  font-size:15px;
  font-weight:800;
}

.logoutBtnTop{
  background:#fff !important;
  color:var(--ink) !important;
  border:1px solid var(--line) !important;
  border-radius:10px !important;
  padding:9px 12px !important;
  font-weight:700 !important;
  white-space:nowrap;
}

.logoutBtnTop:hover{
  background:var(--bg) !important;
  color:var(--copper) !important;
}

@media(max-width:700px){
  .userMenuSimple{gap:6px}
  .userMenuIdentity{padding:7px 9px}
  .logoutBtnTop{padding:8px 9px !important;font-size:12px}
}


/* ===== Nome real do administrador no topo ===== */
.userMenuText{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  line-height:1.15;
}
.userMenuRole{
  font-size:11px;
  color:var(--muted);
  font-weight:600;
  margin-top:3px;
}


/* ===== Modal Extrato ===== */
.extratoModalHeader{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
}

.extratoModalActions{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
}

.extratoPrintBtn{
  white-space:nowrap;
}

.extratoCloseBtn{
  width:36px !important;
  height:36px !important;
  min-width:36px !important;
  padding:0 !important;
  border-radius:50% !important;
  background:#eef2f7 !important;
  color:var(--ink) !important;
  font-size:22px !important;
  line-height:1 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}

.extratoCloseBtn:hover{
  background:#e2e8f0 !important;
}

@media(max-width:600px){
  .extratoModalHeader{align-items:flex-start}
  .extratoModalActions{gap:6px}
  .extratoPrintBtn{font-size:12px;padding:8px 9px !important}
}


/* ===== Modal adicionar proprietário / morador ===== */
.novoUtilizadorModal{
  display:none;
  position:fixed;
  inset:0;
  z-index:13000;
  background:rgba(0,0,0,.50);
  align-items:center;
  justify-content:center;
  padding:20px;
}

.novoUtilizadorModalCard{
  width:min(650px,95vw);
  max-height:90vh;
  overflow:auto;
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow:0 20px 50px rgba(0,0,0,.18);
  padding:22px;
}

.novoUtilizadorModalHeader{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding-bottom:14px;
  margin-bottom:16px;
  border-bottom:1px solid var(--line);
}

.novoUtilizadorModalBody label{
  display:block;
}

.novoUtilizadorModalFooter{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top:20px;
  padding-top:14px;
  border-top:1px solid var(--line);
}
