
  :root{
    --bg:#f5f6fa;
    --surface:#ffffff;
    --border:#e7e8f0;
    --text:#171923;
    --text-soft:#6b7080;
    --text-faint:#9698a8;
    --primary:#4f46e5;
    --primary-600:#4338ca;
    --primary-light:#eef0fe;
    --green:#0f9d58;
    --green-light:#e6f6ee;
    --red:#e0403a;
    --red-light:#fdeceb;
    --amber:#d99a1b;
    --amber-light:#fdf3e0;
    --sidebar:#14152b;
    --sidebar-hover:#20223f;
    --sidebar-active:#2a2c52;
    --shadow: 0 1px 2px rgba(20,21,43,0.04), 0 4px 14px rgba(20,21,43,0.05);
    --radius:14px;
  }
  *{box-sizing:border-box;}
  body{margin:0;background:var(--bg);color:var(--text);font-family:'Inter',sans-serif;-webkit-font-smoothing:antialiased;}
  /* Prevent mobile browsers from auto-zooming on form input focus (iOS Safari behavior) */
  body{ -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; }
  ::selection{background:var(--primary-light);color:var(--primary-600);}
  svg{display:block;}

  /* ---------- SHELL ---------- */
  .shell{display:flex;min-height:100vh;align-items:stretch;}
  .pwa-install-banner{
    position:fixed;
    left:16px;
    right:16px;
    bottom:16px;
    z-index:1300;
    display:none;
    border-radius:16px;
    background:rgba(255,255,255,0.98);
    box-shadow:0 18px 38px rgba(20,21,43,0.16);
    border:1px solid rgba(79,70,229,0.16);
  }
  .pwa-install-banner.visible{display:block;}
  .pwa-install-banner-content{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;}
  .pwa-install-banner-content strong{display:block;font-size:14px;color:var(--text);margin-bottom:4px;}
  .pwa-install-banner-content p{margin:0;font-size:13px;color:var(--text-soft);line-height:1.4;}
  .pwa-banner-checkbox{margin-top:10px;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-soft);}
  .pwa-banner-checkbox input[type="checkbox"]{cursor:pointer;width:16px;height:16px;accent-color:var(--primary);}
  .pwa-banner-checkbox label{cursor:pointer;margin:0;}
  .pwa-install-banner-actions{display:flex;gap:10px;flex-wrap:wrap;}
  @media (min-width:900px){
    .pwa-install-banner{display:none !important;}
  }
  .sidebar{
    width:248px;flex-shrink:0;background:var(--sidebar);color:#c7c9dd;
    display:flex;flex-direction:column;padding:20px 14px;position:sticky;top:0;align-self:flex-start;
    min-height:100vh;
  }
  .brand{display:flex;align-items:center;gap:10px;padding:6px 8px 22px 8px;}
  .brand .mark{
    width:44px;height:44px;border-radius:9px;background:none;flex-shrink:0;object-fit:cover;display:block;
  }
  .brand .txt h1{font-size:14.5px;font-weight:700;color:#fff;margin:0;letter-spacing:-.01em;}
  .brand .txt p{font-size:11px;color:#8688a3;margin:1px 0 0 0;}

  .nav-group-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:#5c5e78;
    padding:14px 12px 6px 12px;font-weight:600;}
  .nav-item{
    display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:9px;
    font-size:13.5px;font-weight:500;cursor:pointer;color:#b6b8cf;margin-bottom:1px;
    transition:background .15s,color .15s;
  }
  .nav-item svg{width:17px;height:17px;stroke:#8688a3;flex-shrink:0;transition:stroke .15s;}
  .nav-item:hover{background:var(--sidebar-hover);color:#fff;}
  .nav-item:hover svg{stroke:#fff;}
  .nav-item.active{background:var(--sidebar-active);color:#fff;}
  .nav-item.active svg{stroke:var(--primary);}

  .sidebar-foot{margin-top:auto;padding:14px 12px 4px 12px;border-top:1px solid #26284a;}
  .period-pill{
    display:flex;align-items:center;justify-content:space-between;background:#1d1f3d;
    border:1px solid #2b2d54;border-radius:10px;padding:9px 12px;
  }
  .period-pill .lbl{font-size:10px;color:#8688a3;text-transform:uppercase;letter-spacing:.04em;}
  .period-pill .val{font-family:'JetBrains Mono',monospace;font-size:12.5px;color:#fff;font-weight:600;}

  /* ---------- MAIN ---------- */
  main{flex:1;min-width:0;}
  .topbar{
    position:sticky;top:0;z-index:5;background:rgba(245,246,250,0.85);backdrop-filter:blur(8px);
    display:flex;align-items:center;justify-content:space-between;padding:18px 32px;border-bottom:1px solid var(--border);
  }
  .topbar .crumb{font-size:12px;color:var(--text-faint);margin-bottom:2px;}
  .topbar h2{font-size:20px;font-weight:700;margin:0;letter-spacing:-.01em;}
  .topbar .actions{display:flex;gap:10px;}

  .page{max-width:1100px;margin:0 auto;padding:28px 32px 70px 32px;}
  section{display:none;}
  section.active{display:block;animation:fade .2s ease;}
  @keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}

  /* ---------- CARDS / STATS ---------- */
  .grid4{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px;}
  .card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;}
  .stat .top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
  .stat label{font-size:12px;color:var(--text-soft);font-weight:500;}
  .icon-badge{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;}
  .icon-badge svg{width:16px;height:16px;stroke-width:2.2;}
  .icon-badge.blue{background:var(--primary-light);}
  .icon-badge.blue svg{stroke:var(--primary);}
  .icon-badge.green{background:var(--green-light);}
  .icon-badge.green svg{stroke:var(--green);}
  .icon-badge.red{background:var(--red-light);}
  .icon-badge.red svg{stroke:var(--red);}
  .icon-badge.amber{background:var(--amber-light);}
  .icon-badge.amber svg{stroke:var(--amber);}
  .stat .value{font-family:'JetBrains Mono',monospace;font-size:22px;font-weight:700;letter-spacing:-.01em;}
  .stat .delta{font-size:11.5px;color:var(--text-faint);margin-top:4px;}
  .sa-stat-heading{display:flex;align-items:center;gap:8px;min-width:0;}
  .sa-period-badge{display:inline-flex;align-items:center;flex-shrink:0;padding:3px 8px;border-radius:999px;background:var(--primary-light);color:var(--primary-600);font-size:10px;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums;white-space:nowrap;}
  .sa-editable-balance{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
  .sa-editable-balance.is-editing>.value,.sa-editable-balance.is-editing>.sa-edit-button{display:none;}
  .sa-edit-button{padding:5px 9px!important;font-size:11px!important;white-space:nowrap;}
  .sa-balance-editor{display:flex;align-items:center;gap:6px;flex-wrap:wrap;width:100%;margin-top:2px;}
  .sa-balance-editor[hidden]{display:none;}
  .sa-balance-editor input{flex:1 1 120px;min-width:0;max-width:180px;padding:7px 9px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;font-size:12px;font-variant-numeric:tabular-nums;}
  .sa-balance-editor input:focus{outline:2px solid var(--primary);outline-offset:1px;}
  .sa-balance-editor button{padding:6px 9px;font-size:11px;}
  .sa-net-opening{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;padding-top:9px;border-top:1px solid var(--border);}
  .sa-net-opening span{font-size:11px;color:var(--text-soft);}
  .sa-net-opening strong{font-family:'JetBrains Mono',monospace;font-size:14px;font-weight:700;white-space:nowrap;}
  #saldo-anterior .stat.saldo-positivo{background:var(--green-light);border-color:var(--green);}
  #saldo-anterior .stat.saldo-negativo{background:var(--red-light);border-color:var(--red);}
  #saldo-anterior .stat.saldo-positivo .sa-period-badge{background:var(--green);color:#fff;}
  #saldo-anterior .stat.saldo-negativo .sa-period-badge{background:var(--red);color:#fff;}

  .row2{display:grid;grid-template-columns:1.3fr 1fr;gap:12px;margin-bottom:18px;align-items:start;}
  #repasses .row2{align-items:stretch;}
  #repasses .form-card{display:flex;flex-direction:column;justify-content:space-between;}
  #repasses .form-card .form-grid{gap:14px;}
  .panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
  .panel-title h3{font-size:14.5px;font-weight:700;margin:0;}
  .panel-title .badge{font-size:11px;background:var(--primary-light);color:var(--primary-600);padding:3px 9px;border-radius:20px;font-weight:600;}

  /* donut */
  .donut-wrap{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
  .donut-wrap > #donut-holder,
  .donut-wrap > #donut-saidas-holder{width:150px;height:150px;flex:0 0 auto;}
  .donut-empty{width:100%;height:100%;border-radius:18px;background:#f5f6fa;display:flex;align-items:center;justify-content:center;padding:10px;text-align:center;color:var(--text-faint);font-size:12px;}
  .donut-legend{flex:1;display:flex;flex-direction:column;gap:8px;min-width:160px;}
  .legend-item{display:flex;align-items:center;gap:8px;font-size:12px;}
  .legend-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
  .legend-item .amt{margin-left:auto;font-family:'JetBrains Mono',monospace;font-weight:600;font-size:12.5px;}

  .annual-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;}
  .annual-wrap{display:grid;grid-template-columns:1.5fr 1fr;gap:24px;align-items:start;}
  .annual-chart{display:flex;flex-direction:column;gap:14px;padding:18px 0;}
  .annual-chart-row{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:14px;align-items:center;width:100%;}
  .annual-chart-label{font-size:12px;color:var(--text-faint);}
  .annual-chart-bars{position:relative;width:100%;height:19px;min-width:0;}
  .annual-chart-bar{position:absolute;left:0;border-radius:999px;flex-shrink:0;}
  .annual-chart-bar-in{top:0;height:8px;background:var(--green);}
  .annual-chart-bar-out{bottom:0;height:8px;background:var(--red);}
  .annual-chart-values{display:flex;flex-direction:column;gap:4px;font-size:12px;text-align:right;}
  .annual-chart-value.in{color:var(--green);}
  .annual-chart-value.out{color:var(--red);}
  /* Global coloring for annual summary values (entradas/saídas) across all pages */
  .annual-summary-row .num.in{color:var(--green);} 
  .annual-summary-row .num.out{color:var(--red);} 
  .annual-summary{display:flex;flex-direction:column;gap:8px;}
  .annual-summary-row{display:grid;grid-template-columns:minmax(70px,95px) 1.5fr 1.5fr 1fr;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border);font-size:13px;}
  .annual-summary-header{font-weight:700;color:var(--text-soft);}

  /* stewardship ring */
  .ring-card{display:flex;flex-direction:column;align-items:center;text-align:center;}
  .ring-num{font-family:'JetBrains Mono',monospace;font-size:26px;font-weight:700;margin-top:-92px;}
  .ring-sub{font-size:11.5px;color:var(--text-soft);margin-top:2px;margin-bottom:18px;}
  .ring-detail{width:100%;display:flex;flex-direction:column;gap:8px;font-size:12px;border-top:1px solid var(--border);padding-top:12px;}
  .ring-detail div{display:flex;justify-content:space-between;color:var(--text-soft);}
  .ring-detail span{color:var(--text);font-weight:600;font-family:'JetBrains Mono',monospace;}

  /* ---------- FORMS ---------- */
  .form-card{margin-bottom:18px;}
  .form-grid{display:grid;grid-template-columns:130px 1fr 140px auto;gap:10px;}
  .form-grid.saida{grid-template-columns:130px 1fr 140px 130px auto;}
  .form-grid.cfg{display:grid;grid-template-columns:minmax(240px,1fr) 140px auto;align-items:end;gap:10px;margin-bottom:12px;}
  .form-grid.cfg label{font-size:13px;color:var(--text-soft);}
  .form-grid.cfg select{max-width:140px;}
  label.field-label{font-size:11px;color:var(--text-faint);font-weight:600;text-transform:uppercase;letter-spacing:.03em;display:block;margin-bottom:5px;}
  input,select{
    font-family:'Inter',sans-serif;font-size:13.5px;padding:9px 12px;border:1.5px solid var(--border);
    border-radius:9px;background:#fff;color:var(--text);width:100%;
  }
  input:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);}
  button{font-family:'Inter',sans-serif;font-weight:600;font-size:13px;border:none;border-radius:9px;padding:10px 16px;cursor:pointer;transition:filter .12s,transform .05s,background .12s;display:inline-flex;align-items:center;gap:7px;}
  button svg{width:14px;height:14px;}
  button:active{transform:scale(.97);}
  .btn-primary{background:var(--primary);color:#fff;}
  .btn-primary:hover{background:var(--primary-600);}
  .btn-outline{background:#fff;color:var(--text);border:1.5px solid var(--border);}
  .btn-outline:hover{border-color:var(--primary);color:var(--primary);}
  .btn-outline.btn-user{border-color:var(--border);color:var(--text);pointer-events:none;}
  .btn-outline.btn-user svg{stroke:var(--text);}
  .btn-outline.btn-logout{border-color:rgba(224,64,58,0.35);color:rgba(224,64,58,0.95);}
  .btn-outline.btn-logout:hover{border-color:rgba(224,64,58,0.7);color:rgba(224,64,58,1);}
  /* Month navigation inside Relatórios Personalizados */
  #rc-month-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
  #rc-month-nav .btn-outline{padding:8px 12px;border-radius:10px;font-size:13px}
  #rc-month-nav .btn-outline.active{background:var(--primary);color:#fff;border-color:var(--primary-600);box-shadow:0 6px 18px rgba(79,70,229,0.12)}
  #rc-month-nav .btn-outline:focus{outline:none;box-shadow:0 0 0 4px rgba(79,70,229,0.08)}
  .btn-icon-ghost{background:transparent;color:var(--text-faint);padding:6px;border-radius:7px;transition:background .2s,color .2s;}
  .btn-icon-ghost:hover{background:rgba(255,255,255,.12);}
  .btn-icon-ghost.red{color:var(--red);}
  .btn-icon-ghost.red:hover{background:rgba(248,113,113,.12);color:var(--red);}
  .btn-icon-ghost.orange{color:#f59e0b;}
  .btn-icon-ghost.orange:hover{background:rgba(251,146,60,.12);color:#f59e0b;}
  .btn-actions{display:flex;gap:8px;justify-content:flex-end;}
  .table-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;}
  .table-toolbar input{width:100%;max-width:280px;padding:9px 12px;border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--text);}
  .table-config-congregacoes { table-layout: fixed; }
  .table-config-congregacoes th:nth-child(1),
  .table-config-congregacoes td:nth-child(1) { min-width: 220px; }
  .table-config-congregacoes th:nth-child(2),
  .table-config-congregacoes td:nth-child(2) { width: 130px; white-space: nowrap; }
  .table-config-congregacoes th:nth-child(3),
  .table-config-congregacoes td:nth-child(3) { width: 80px; }
  .pagination-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px;}
  .btn-pager{padding:7px 12px;border-radius:8px;border:1px solid var(--border);background:#fff;color:var(--text);cursor:pointer;transition:background .2s,border-color .2s;}
  .btn-pager:hover{border-color:var(--primary);background:var(--primary-light);}
  .pager-label{font-size:13px;color:var(--text-soft);}

  .toast-container{
    position:fixed;top:18px;right:18px;z-index:1200;display:flex;flex-direction:column;gap:10px;max-width:320px;
  }
  .toast{
    opacity:0;transform:translateX(18px);padding:14px 16px;border-radius:14px;box-shadow:0 18px 38px rgba(20,21,43,0.16);color:#fff;font-size:13px;font-weight:600;
    border-left:4px solid transparent;transition:opacity .24s ease,transform .24s ease,box-shadow .24s ease;
    background:rgba(16,24,40,.96);backdrop-filter:blur(8px);
  }
  .toast.visible{opacity:1;transform:translateX(0);}
  .toast.success{background:linear-gradient(135deg,#0f9d58,#198754);border-color:#0f9d58;}
  .toast.warning{background:linear-gradient(135deg,#d99a1b,#f59e0b);border-color:#d99a1b;}
  .toast.error{background:linear-gradient(135deg,#e0403a,#ff5f5f);border-color:#d62828;}

  .confirm-modal{position:fixed;inset:0;display:grid;place-items:center;padding:12px;z-index:1300;background:rgba(9,11,34,0.45);opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;}
  .confirm-modal.visible{opacity:1;visibility:visible;}
  .confirm-modal.hidden{opacity:0;visibility:hidden;}
  .confirm-modal-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:0 24px 54px rgba(20,21,43,0.16);padding:20px;}
  .confirm-modal-title{margin:0 0 8px 0;font-size:17px;font-weight:700;color:var(--text);}
  .confirm-modal-message{margin:0 0 16px 0;color:var(--text-soft);line-height:1.5;}
  .confirm-modal-actions{display:flex;justify-content:flex-end;gap:12px;}
  .confirm-modal .btn-outline{background:#fff;color:var(--text);border-color:var(--border);}
  .confirm-modal .confirm-button{background:#e0403a;color:#fff;}
  .confirm-modal .confirm-button:hover{background:#c5302d;}

  /* ---------- TABLES ---------- */
  table{width:100%;border-collapse:collapse;font-size:13.5px;}
  th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);
    padding:10px 8px;font-weight:600;border-bottom:1px solid var(--border);}
  td{padding:11px 8px;border-bottom:1px solid var(--border);color:var(--text);}
  #comparativos th:first-child,
  #comparativos td:first-child{width:95px;max-width:95px;white-space:nowrap;}
  td.mono{font-family:'JetBrains Mono',monospace;font-size:13px;}
  tr:last-child td{border-bottom:none;}
  tbody tr:hover td{background:#fafafe;}
  td.num{text-align:right;font-weight:600;font-family:'JetBrains Mono',monospace;}
  .num.red{color:var(--red);}
  tfoot td{border-top:1.5px solid var(--text);font-weight:700;padding-top:12px;}
  .status-pill{font-size:11px;padding:3px 9px;border-radius:20px;font-weight:600;display:inline-block;}
  .status-pill.ok{background:var(--green-light);color:var(--green);}
  .status-pill.pending{background:var(--amber-light);color:var(--amber);}
  .status-pill.error{background:var(--red-light);color:var(--red);}
  .status-pill.active{background:#dbe7ff;color:var(--primary-600);}
  .summary-highlights{border-radius:12px;}
  .summary-highlights--red td{background:rgba(248,113,113,0.12);}
  .summary-highlights--green td{background:rgba(52,211,153,0.12);}
  .summary-highlights--blue td{background:rgba(59,130,246,0.12);}
  .summary-highlights td{padding:10px 14px;}
  .status-pill.inactive{background:#f1f3f6;color:var(--text-faint);}
  .empty{text-align:center;padding:26px;color:var(--text-faint);font-size:13px;}

  /* ---------- REPORT (impressão) ---------- */
  .report{background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
  .report-cover{text-align:center;padding:44px 30px 34px 30px;border-bottom:1px solid var(--border);background:none;}
  .report-cover .mark{width:52px;height:52px;border-radius:14px;background:var(--primary);
    display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;font-size:20px;margin:0 auto 16px auto;}
  .report-cover h1{font-size:20px;margin:0 0 3px 0;font-weight:700;}
  .report-cover h2{font-size:13px;color:var(--text-soft);font-weight:500;margin:0 0 16px 0;}
  .report-cover .title{font-size:15px;font-weight:700;letter-spacing:.02em;color:var(--primary-600);}
  .report-cover .period-badge{display:inline-block;margin-top:10px;background:var(--primary);color:#fff;
    padding:5px 14px;border-radius:20px;font-family:'JetBrains Mono',monospace;font-size:12.5px;font-weight:600;}
  .report-section{padding:24px 34px;border-bottom:1px solid var(--border);}
  .report-section h3{font-size:14px;font-weight:700;margin:0 0 14px 0;display:flex;align-items:center;gap:8px;}
  .report-section h3 .n{font-family:'JetBrains Mono',monospace;color:var(--primary);font-size:12px;background:var(--primary-light);padding:2px 7px;border-radius:6px;}
  .sig-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px 20px;margin-top:54px;}
  .sig-line{position:relative;min-height:140px;padding-top:24px;padding-bottom:18px;font-size:12px;color:var(--text-soft);text-align:center;display:flex;flex-direction:column;justify-content:flex-end;}
  .sig-line::before{content:'';position:absolute;top:70px;left:0;right:0;height:1px;background:var(--text);}
  .toolbar{display:flex;justify-content:flex-end;gap:10px;margin-bottom:16px;}

  /* compact two-up layout for report pages (two months per PDF page) */
  .report-page.two-up{display:flex;flex-direction:column;gap:10px;padding:10px 12px}
  .report-page.two-up .month-block{background:transparent;border:none}
  .report-page.two-up .report-section{padding:14px 18px;border-bottom:1px solid var(--border);}
  .report-page.two-up h3{font-size:13px}
  .report-page.two-up table td{padding:6px 8px;font-size:13px}
  .sa-print-report{display:none;}

  @media print{
    @page relatorio-completo{size:A4 portrait;margin:14mm 12mm;}
    .sidebar,.topbar,.toolbar,.bottom-nav,.form-card,#relatorio .report-period-filter{display:none !important;}
    body{background:#fff;}
    .page{padding:0;max-width:none;}
    section{display:none !important;}
    section.active{display:block !important;}
    .card{box-shadow:none;border:none;}
    #relatorio .report{page:relatorio-completo;}
    .report-page{page-break-after:always;}

     /* Print-safe signature area: use a border-top so printing engines render the
       signature line reliably (some engines clip positioned pseudo-elements). */
     .sig-line{padding-top:24px;min-height:120px;display:flex;flex-direction:column;justify-content:flex-end;border-top:1px solid #000;margin-top:12px;color:#000;}
     .sig-line::before{display:none !important;}
     .sig-grid{page-break-inside:avoid;page-break-after:avoid;}

    /* Avoid breaking report sections and keep table headers/footers on each page */
    .report-cover,
    .report-cover h1,
    .report-cover h2,
    .report-cover .title,
    .report-cover .period-badge,
    .report-cover .mark {
      display: block !important;
      visibility: visible !important;
      color: #000 !important;
    }

    .report-cover { page-break-after:avoid;break-after:avoid; }
    .report-section{page-break-inside:auto;break-inside:auto;overflow:visible !important;}
    .report-section h3{page-break-after:avoid;break-after:avoid;}
    .report{page-break-inside:auto;break-inside:auto;overflow:visible !important;}

    /* Let tables break across pages but repeat headers/footers */
    table{page-break-inside:auto;break-inside:auto;}
    .report-section table{page-break-inside:auto;break-inside:auto;}
    thead{display:table-header-group;}
    tfoot{display:table-footer-group;}
    tr{page-break-inside:avoid;break-inside:avoid;}

    body.printing-saldo-anterior > :not(#sa-print-report){display:none !important;visibility:hidden !important;}
    body.printing-saldo-anterior > #sa-print-report{
      display:block !important;
      visibility:visible !important;
      box-sizing:border-box !important;
      width:182mm !important;
      max-width:182mm !important;
      margin:0 auto !important;
      padding:12mm 0 !important;
      color:#20243a !important;
      font:10pt/1.35 Arial,sans-serif !important;
    }
    body.printing-saldo-anterior #sa-print-report header{text-align:center;padding:0 0 18px;border-bottom:2px solid #344054;}
    body.printing-saldo-anterior #sa-print-report h1{font-size:17pt;margin:0 0 5px;}
    body.printing-saldo-anterior #sa-print-report header p{margin:0;color:#5f6878;}
    body.printing-saldo-anterior #sa-print-report h2{font-size:13pt;text-align:center;margin:24px 0 6px;}
    body.printing-saldo-anterior #sa-print-report h3{font-size:11pt;margin:20px 0 7px;break-after:avoid;}
    body.printing-saldo-anterior #sa-print-report .period{text-align:center;color:#5f6878;margin:0 0 18px;}
    body.printing-saldo-anterior #sa-print-report table{width:100%;border-collapse:collapse;margin-bottom:12px;}
    body.printing-saldo-anterior #sa-print-report th{text-align:left;padding:7px 8px;background:#f1f3f7;border-bottom:1px solid #d8dde5;font-size:8pt;}
    body.printing-saldo-anterior #sa-print-report td{padding:7px 8px;border-bottom:1px solid #d8dde5;font-size:9pt;}
    body.printing-saldo-anterior #sa-print-report td:last-child{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;}
    body.printing-saldo-anterior #sa-print-report > table tbody tr:last-child td{border-top:2px solid #344054;font-size:10pt;font-weight:700;}
    body.printing-saldo-anterior #sa-print-report article{break-inside:auto;}
    body.printing-saldo-anterior #sa-print-report .empty{color:#778091;font-size:8pt;}
    body.printing-saldo-anterior #sa-print-report footer{margin-top:28px;color:#778091;font-size:8pt;text-align:right;}
  }
  .report-page{page-break-after:always;}
  /* ---------- BOTTOM NAV (mobile / PWA) ---------- */
  .bottom-nav{
    display:none;position:fixed;left:0;right:0;bottom:0;z-index:100;
    gap:10px;padding:18px 0 24px;border-radius:0;
    background:linear-gradient(180deg, rgba(15,20,40,0.98), rgba(24,31,58,0.98));
    backdrop-filter:none;-webkit-backdrop-filter:none;
    border-top:1px solid rgba(255,255,255,0.08);
    box-shadow:0 -2px 14px rgba(10,15,35,0.18);
    width:100%;max-width:none;overflow-x:auto;scrollbar-width:none;
    justify-content:space-between;
    padding-bottom:calc(env(safe-area-inset-bottom) + 10px);
  }
  .bottom-nav::-webkit-scrollbar{display:none;}
  .bn-item{
    flex:1 1 0;min-width:70px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
    height:46px;padding:0 10px;border-radius:18px;color:rgba(255,255,255,0.88);cursor:pointer;
    transition:background .18s, color .18s, transform .18s;
  }
  .bn-item svg{width:18px;height:18px;stroke-width:2;}
  .bn-item span{font-size:10px;font-weight:600;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  @media (max-width:420px){
    .topbar{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:10px;}
    .topbar .actions{width:100%;justify-content:flex-start;gap:8px;flex-wrap:wrap;}
    .topbar .actions button{font-size:12px !important;padding:8px 11px;}
    .topbar .actions button svg{width:12px;height:12px;}
    .topbar .actions button:last-child{margin-left:0;}

    .page{padding:16px 10px 110px;max-width:100%;}
    .card{width:98%;max-width:none;margin:0 auto;}
    .card table{width:100%;table-layout:fixed;word-break:break-word;}
    .card table th,
    .card table td{min-width:0;}

    .btn-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;}
    .btn-actions button{padding:5px 8px;min-width:36px;flex:0 0 auto;}
    .btn-actions button svg{width:14px;height:14px;}
    .btn-icon-ghost{padding:5px;border-radius:8px;}

    .table-config-congregacoes{table-layout:auto;}
    .table-config-congregacoes th:nth-child(1),
    .table-config-congregacoes td:nth-child(1){min-width:140px;width:auto;white-space:normal;}
    .table-config-congregacoes th:nth-child(2),
    .table-config-congregacoes td:nth-child(2){width:auto;min-width:90px;white-space:nowrap;text-align:center;}
    .table-config-congregacoes th:nth-child(3),
    .table-config-congregacoes td:nth-child(3){width:64px;white-space:nowrap;text-align:center;}
    .table-config-congregacoes tbody td{word-break:break-word;}

    .bn-item span{display:block;font-size:9px;}
    .bn-item{height:auto;padding:6px 8px;}
  }

  @media (max-width:600px){
    #saldo-anterior .panel-title{flex-direction:column;align-items:stretch;gap:14px;}
    #saldo-anterior .panel-title h3{font-size:16px;}
    #saldo-anterior .panel-title .filter-bar{width:100%;margin-left:0 !important;}
    #saldo-anterior .grid4 > .card:first-child,
    #saldo-anterior .grid4 > .sa-accumulated-stat,
    #saldo-anterior .grid4 > .sa-net-stat{grid-column:1 / -1;}
    #saldo-anterior .grid4 > .card:nth-child(2) .value,
    #saldo-anterior .grid4 > .card:nth-child(3) .value{font-size:16px;}
  }

  #saldo-anterior .grid4{grid-template-columns:repeat(2,minmax(0,1fr));}
  #saldo-anterior .grid4 > .card{width:100%;margin:0;}
  #saldo-anterior .grid4 > .sa-net-stat{grid-column:1 / -1;}

  @media (max-width:350px){
    #saldo-anterior .grid4{grid-template-columns:minmax(0,1fr);}
    #saldo-anterior .grid4 > .card{grid-column:1;}
  }

  @media (max-width:480px){
    .topbar .actions button{font-size:12px !important;padding:8px 11px;}
  }
  @media (max-width:390px){
    .bottom-nav{width:100%;gap:6px;padding:10px 0 18px;}
    .bn-item{min-width:50px;padding:6px 6px 4px;height:auto;border-radius:14px;gap:4px;}
    .bn-item svg{width:16px;height:16px;}
    .table-toolbar{gap:6px;}
    .table-toolbar input{padding:7px 8px;font-size:11px;}
    .btn-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;}
    .btn-actions button{padding:5px;min-width:32px;}
    .btn-icon-ghost{padding:5px;border-radius:8px;}
    .btn-icon-ghost svg{width:14px;height:14px;}
    .page{padding:16px 14px 110px;max-width:none;}
    .topbar{padding:14px 14px;}
    .card{width:100%;max-width:none;}
    table{font-size:11px;}
    th{font-size:9px;padding:6px 4px;}
    td{padding:6px 4px;}
    td.mono{font-size:11px;}
    .annual-summary-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:8px 0;}
    .annual-summary-row > div{padding:6px 8px;font-size:11px;border-radius:12px;}
    .annual-summary-row > div::before{font-size:9px;margin-bottom:2px;}
    .annual-summary-row .num{font-size:12px;}
    .annual-chart-label{font-size:10px;}
    .annual-chart-bars{height:14px;}
    .annual-chart-row{gap:8px;}
  }
+  @media (max-width:484px){
    .donut-wrap{flex-direction:column !important;align-items:stretch !important;}
    .donut-wrap > #donut-holder,
    .donut-wrap > #donut-saidas-holder,
    .donut-wrap > .donut-legend{width:100% !important;}
    .donut-wrap > #donut-holder,
    .donut-wrap > #donut-saidas-holder{min-height:150px;height:auto;flex:1 1 auto;}
+    .donut-empty{height:150px;}
+    .donut-legend{min-width:0;}
+  }

  /* Make comparativos table responsive: two items per row on narrow screens */
  @media (max-width:360px){
    #comparativos table thead{display:none;}
    #comparativos table, #comparativos tbody, #comparativos tr, #comparativos td{width:100%;}
    #comparativos tbody tr{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px 0;border-bottom:1px solid var(--border);align-items:center;}
    #comparativos tbody tr td{display:block;padding:4px 6px;white-space:normal;}
    #comparativos tbody tr td:nth-child(1){order:1;grid-column:1 / 2;font-size:12px;color:var(--text-soft);}
    #comparativos tbody tr td:nth-child(2){order:2;grid-column:2 / 2;text-align:left;font-weight:700;color:var(--green);}
    #comparativos tbody tr td:nth-child(3){order:3;grid-column:1 / 2;text-align:left;font-weight:700;color:var(--red);}
    #comparativos tbody tr td:nth-child(4){order:4;grid-column:2 / 2;text-align:left;font-weight:700;color:var(--text);}
    #comparativos tbody tr td.num{font-family:'JetBrains Mono',monospace;}
  }

  @media (max-width:337px){
    /* Very small screens: force 2 items per line and allow breaks */
    .annual-summary-header{display:none !important;}
    .annual-summary-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:6px 0;border-bottom:1px solid var(--border);align-items:center;}
    .annual-summary-row > div{display:flex;flex-direction:column;align-items:flex-start;padding:4px 6px;font-size:11px;background:transparent;border-radius:8px;}
    .annual-summary-row > div::before{content:attr(data-label);font-size:10px;color:var(--text-soft);margin-bottom:4px;display:block;}
    .annual-summary-row .num{font-size:12px;white-space:normal;word-break:break-word;overflow-wrap:anywhere;}
    table{font-size:10px;}
    th{font-size:8px;padding:4px 3px;}
    td{padding:4px 3px;}
    td.mono{font-size:10px;}
    .table-toolbar input{padding:6px 6px;font-size:10px;}
    .annual-chart-label{font-size:9px;}
    .annual-chart-bars{height:12px;}
    .bottom-nav{width:100%;}
    .bn-item{min-width:44px;padding:0 4px;height:34px;}
    .bn-item svg{width:14px;height:14px;}
  }

  @media (max-width:357px){
    .annual-summary-row{grid-template-columns:repeat(2,minmax(0,1fr));}
    .annual-summary-row > div{padding:5px 6px;font-size:10px;}
    .annual-summary-row > div::before{font-size:9px;}
    .annual-summary-row .num{font-size:11px;}
    table{font-size:10px;}
    th{font-size:8.5px;padding:5px 4px;}
    td{padding:5px 4px;}
    td.mono{font-size:10px;}
    .table-toolbar input{padding:6px 8px;font-size:10px;}
    .annual-chart-label{font-size:9px;}
    .annual-chart-bars{height:12px;}
    .bottom-nav{width:100%;}
    .bn-item{min-width:48px;padding:0 4px;height:36px;}
    .bn-item svg{width:14px;height:14px;}
  }

  @media (max-width:490px){
    table{font-size:12px;}
    th{font-size:10px;padding:8px 6px;}
    td{padding:8px 6px;}
    td.mono{font-size:12px;}
    .table-toolbar{gap:8px;}
    .table-toolbar input{padding:8px 10px;font-size:12px;}
    .annual-summary-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:10px 0;}
    .annual-summary-row > div{padding:8px 10px;font-size:12px;border-radius:14px;}
    .annual-summary-row > div::before{font-size:10px;margin-bottom:2px;}
    .annual-summary-row .num{font-size:13px;}
    .annual-chart-label{font-size:11px;}
    .annual-chart-bars{height:16px;}
    .annual-chart-row{gap:12px;}
  }

  .bn-item:active{transform:scale(.96);}
  .bn-item.active{background:rgba(255,255,255,0.22);color:#fff;}
  .bn-item.active svg{stroke:#fff;}

  .category-modal{
    position:fixed;inset:0;display:grid;align-items:start;justify-items:center;padding:18px 14px 100px;
    z-index:1200;background:rgba(9,11,34,0.45);opacity:0;visibility:hidden;transition:opacity .1s ease,visibility .1s ease;
  }
  .category-modal.visible{opacity:1;visibility:visible;}
  .category-modal.hidden{opacity:0;visibility:hidden;}
  .category-modal-card{
    width:100%;max-width:760px;height:calc(100vh - 118px);
    background:var(--surface);border:1px solid var(--border);
    border-radius:22px;box-shadow:0 24px 54px rgba(20,21,43,0.16);overflow:hidden;
  }
  .category-modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--border);}
  .category-modal-title{margin:0;font-size:18px;font-weight:700;color:var(--text);}
  .category-modal-close{background:transparent;border:none;color:var(--text);font-size:28px;line-height:1;cursor:pointer;padding:0;}
  .category-modal-body{display:grid;gap:16px;padding:18px 20px;justify-items:center;}
  .category-group{
    width:100%;max-width:480px;background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:12px;
    display:grid;gap:12px;
  }
  .category-group button{
    width:100%;text-align:center;padding:14px 16px;border:none;border-radius:14px;background:var(--bg);
    color:var(--text);font-size:15px;font-weight:700;cursor:pointer;transition:background .18s,transform .18s,box-shadow .18s;
    box-shadow:0 8px 20px rgba(15,20,45,0.05);
  }
  .category-group button:hover{background:#f3f4fb;}
  .category-group button:active{transform:scale(.98);}

  @media (max-width:760px){
    .shell{flex-direction:column;}
    .sidebar{display:none;}
    .bottom-nav{display:flex;}
    .row2{grid-template-columns:1fr;}
    .page{padding:20px;padding-bottom:110px;}
    .form-grid,.form-grid.saida{grid-template-columns:1fr;}
    .topbar{padding:14px 20px;}
    #relatorios-custom .filter-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:12px;}
    #relatorios-custom .filter-bar .filter-field{min-width:0;width:100%;align-items:stretch !important;}
    #relatorios-custom .filter-bar > .filter-field:nth-child(-n+2),
    #relatorios-custom .filter-bar > button{grid-column:1 / -1;}
    #relatorios-custom .filter-bar select,
    #relatorios-custom .filter-bar input{width:100%;max-width:none !important;min-width:0;}
    #relatorios-custom .filter-bar > button{width:100%;justify-content:center;}
  }

  @media (max-width:680px){
    #rc-output-card .panel-title{display:flex;flex-direction:column;align-items:flex-start;gap:10px;}
    #rc-output-card .panel-title > div{width:100%;}
    #rc-output-card .rc-actions{width:100%;justify-content:flex-start;gap:8px;flex-wrap:wrap;}
    #rc-output-card .rc-actions button{font-size:12px !important;padding:8px 10px;min-width:0;white-space:normal;}
    #rc-output-card .rc-actions button svg{width:14px;height:14px;}
  }

  @media (max-width:570px){
    section#config .filter-bar{display:flex !important;flex-direction:column;align-items:stretch;gap:12px;}
    section#config .filter-bar .filter-field{flex:1 1 auto;min-width:0;width:100%;}
    section#config .filter-bar > button{width:100%;justify-content:center;}
    section#config .form-grid.cfg{grid-template-columns:1fr;align-items:stretch;gap:10px;}
    section#config .form-grid.cfg > div{width:100%;}
    section#config .form-grid.cfg > div:last-child{align-self:stretch;}
    section#config .form-grid.cfg select{max-width:none;}
    section#config .form-grid.cfg button{width:100%;font-size:13px;padding:10px 12px;}
    section#config .form-grid.cfg > div:nth-child(2) select{width:auto;max-width:180px;}
  }

  @media (max-width:530px){
    section#usuarios .form-grid.cfg{grid-template-columns:1fr !important;align-items:stretch;gap:10px;}
    section#usuarios .form-grid.cfg > div{width:100%;}
    section#usuarios .form-grid.cfg > div:last-child{align-self:stretch;}
    section#usuarios .form-grid.cfg input,
    section#usuarios .form-grid.cfg select{width:100%;max-width:100%;}
    section#usuarios .form-grid.cfg select{max-width:none;}
    section#usuarios .form-grid.cfg > div:nth-child(5){max-width:240px;}
    section#usuarios .form-grid.cfg > div:nth-child(6){display:flex;flex-direction:column;gap:10px;align-items:stretch;}
    section#usuarios .form-grid.cfg > div:nth-child(6) .btn-primary,
    section#usuarios .form-grid.cfg > div:nth-child(6) .btn-outline{width:100%;}

    section#usuarios .filter-bar > div[style],
    section#usuarios .filter-bar > div[style] input{width:100%;}
    section#usuarios .filter-bar > div[style]{flex-direction:column;align-items:stretch;}
    section#usuarios .filter-bar > div[style] input{min-width:0;}
    section#usuarios .filter-bar > div[style] .btn-primary,
    section#usuarios .filter-bar > div[style] .btn-outline{width:100%;}
  }

  @media (max-width:670px){
    .grid4{grid-template-columns:1fr;}
    .annual-wrap{grid-template-columns:1fr;gap:18px;}
    .annual-chart-row{grid-template-columns:1fr;}
    .annual-chart-label{margin-bottom:8px;}
    .annual-summary{padding:0;}
    .annual-summary-header{display:none !important;}
    .annual-summary-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:12px 0;border-bottom:1px solid var(--border);}
    .annual-summary-row > div{display:flex;flex-direction:column;gap:6px;padding:8px 10px;background:rgba(255,255,255,0.8);border-radius:16px;font-size:13px;}
    .annual-summary-row > div::before{content:attr(data-label);font-size:11px;color:var(--text-soft);font-weight:700;margin-bottom:4px;}
    .annual-summary-row .num{font-size:14px;font-weight:700;}
  }

  @media (max-width:662px){
    .panel-title h3{font-size:13px;}
    .panel-title .badge{font-size:10px;}
    .donut-empty{font-size:11px;}
    .legend-item{font-size:11px;}
    .legend-item .amt{font-size:11px;}
    .annual-summary-row > div{font-size:12px;padding:7px 8px;}
    .annual-summary-row > div::before{font-size:10px;}
    .annual-summary-row .num{font-size:13px;}
    .annual-chart-label{font-size:11px;}
    .annual-chart-values{font-size:11px;}
    .table-toolbar input{font-size:11px;}
    #comparativos table{font-size:12px;}
    #comparativos th{font-size:10px;}
    #comparativos td{font-size:11px;padding:8px 6px;}
    #comparativos td.mono{font-size:11px;}
  }

  @media (max-width:446px){
    .panel-title h3{font-size:12px;}
    .panel-title .badge{font-size:9px;}
    .donut-empty{font-size:10px;}
    .legend-item{font-size:10px;}
    .legend-item .amt{font-size:10px;}
    .annual-summary-row > div{font-size:11px;padding:7px 8px;}
    .annual-summary-row > div::before{font-size:9px;}
    .annual-summary-row .num{font-size:12px;}
    .annual-chart-label{font-size:10px;}
    .annual-chart-values{font-size:10px;}
    .table-toolbar input{font-size:10px;}
    #comparativos table{font-size:11px;}
    #comparativos th{font-size:9px;}
    #comparativos td{font-size:10px;}
    #comparativos td.mono{font-size:10px;}
  }

  /* Overrides for very small screens are defined in the standard breakpoints above. */

  @media (max-width:1160px){
    .row2{grid-template-columns:1fr 1fr;}
    .donut-wrap{flex-direction:row;align-items:center;}
    #donut-holder,
    #donut-saidas-holder{min-width:auto;min-height:150px;}
  }

  @media (max-width:484px){
    .row2{grid-template-columns:1fr !important;}
    .row2 > .card{width:100% !important;}
    .donut-wrap{flex-direction:column !important;align-items:stretch !important;}
    .donut-wrap > #donut-holder,
    .donut-wrap > #donut-saidas-holder,
    .donut-wrap > .donut-legend{width:100% !important;}
    .donut-wrap > #donut-holder,
    .donut-wrap > #donut-saidas-holder{min-height:150px;height:auto;flex:1 1 auto;}
    .donut-empty{height:150px;}
    .donut-legend{min-width:0;}
  }

  /* Target dashboard and comparativos specifically for very small screens */
  @media (max-width:337px){
    #dashboard .annual-summary-header,
    #comparativos .annual-summary-header,
    .annual-summary-row.annual-summary-header{display:none !important;}

    #dashboard .annual-card .annual-summary-row,
    #comparativos .annual-card .annual-summary-row{
      display:grid !important;
      grid-template-columns:1fr 1fr !important;
      gap:6px !important;
      padding:6px 0 !important;
      border-bottom:1px solid var(--border) !important;
      align-items:center !important;
    }

    #dashboard .annual-card .annual-summary-row > div,
    #comparativos .annual-card .annual-summary-row > div{
      display:flex !important;
      flex-direction:column !important;
      align-items:flex-start !important;
      padding:4px 6px !important;
      font-size:11px !important;
      background:transparent !important;
      border-radius:8px !important;
    }

    #dashboard .annual-card .annual-summary-row > div::before,
    #comparativos .annual-card .annual-summary-row > div::before{
      content:attr(data-label) !important;
      font-size:10px !important;
      color:var(--text-soft) !important;
      margin-bottom:4px !important;
      display:block !important;
    }

    #dashboard .annual-card .annual-summary-row .num,
    #comparativos .annual-card .annual-summary-row .num{
      font-size:12px !important;
      white-space:normal !important;
      word-break:break-word !important;
      overflow-wrap:anywhere !important;
    }
  }

  /* ---------- COMPARATIVOS ---------- */
  .chart-wrap{display:flex;align-items:flex-end;gap:18px;height:200px;padding:10px 6px 0 6px;border-bottom:1.5px solid var(--text);}
  .chart-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px;}
  .chart-bars{display:flex;align-items:flex-end;gap:4px;height:100%;width:100%;justify-content:center;}
  .chart-bar{width:20px;border-radius:5px 5px 0 0;transition:height .3s ease;}
  .chart-col .lbl{font-size:11px;color:var(--text-soft);margin-top:8px;font-weight:600;}
  .insight-box{display:flex;gap:12px;align-items:flex-start;background:var(--primary-light);border:1px solid #dcdfff;
    border-radius:12px;padding:14px 16px;margin-top:16px;}
  .insight-box svg{width:18px;height:18px;stroke:var(--primary-600);flex-shrink:0;margin-top:1px;}
  .insight-box p{margin:0;font-size:13px;color:var(--primary-600);line-height:1.5;}

/* Final overrides: ensure dashboard summary renders 2 items per row on very narrow screens */
@media (max-width:360px){
  section#dashboard .annual-card .annual-summary-header,
  #comparativos .annual-card .annual-summary-header{display:none !important;}
  section#dashboard .annual-card .annual-summary-row,
  #comparativos .annual-card .annual-summary-row{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:8px !important;
    padding:8px 0 !important;
    border-bottom:1px solid var(--border) !important;
    align-items:center !important;
  }
  section#dashboard .annual-card .annual-summary-row > div{
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    padding:6px 8px !important;
    font-size:11px !important;
  }
  section#dashboard .annual-card .annual-summary-row > div::before{
    content:attr(data-label) !important;
    font-size:10px !important;
    color:var(--text-soft) !important;
    margin-bottom:4px !important;
    display:block !important;
  }
  section#dashboard .annual-card .annual-summary-row .num{
    font-size:12px !important;
    white-space:normal !important;
    word-break:break-word !important;
    overflow-wrap:anywhere !important;
  }
  /* Colorize entries and exits like comparativos */
  section#dashboard .annual-card .annual-summary-row .num.in{color:var(--green) !important;}
  section#dashboard .annual-card .annual-summary-row .num.out{color:var(--red) !important;}
}

  /* ---------- FILTROS DE RELATÓRIO ---------- */
  .filter-bar{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;}
  .filter-field{display:flex;flex-direction:column;gap:5px;min-width:160px;flex:1 1 220px;}
  #relatorio .report-period-filter{margin-bottom:12px;}
  #relatorio .report-period-filter .filter-bar{display:grid;grid-template-columns:minmax(140px,1fr) minmax(140px,1fr) auto;align-items:end;width:100%;}
  #relatorio .report-period-filter .filter-field{min-width:0;}
  #relatorio .report-period-filter select{width:100%;}
  #relatorio .report-period-filter button{justify-self:end;white-space:nowrap;}
  @media (max-width:760px){
    #relatorio .report-period-filter .filter-bar{grid-template-columns:repeat(2,minmax(0,1fr));}
    #relatorio .report-period-filter button{grid-column:1 / -1;width:100%;justify-content:center;}
  }
  #comprovantes .filter-bar{display:grid;grid-template-columns:minmax(220px,1.6fr) minmax(220px,1.2fr) minmax(140px,1fr) minmax(140px,1fr) minmax(150px,1fr);gap:12px;align-items:flex-end;width:100%;}
  #comprovantes .filter-bar .filter-field{min-width:0;}
  #comprovantes .filter-bar button{min-width:0;justify-self:end;}
  #comprovantes .filter-bar #cp-datas,
  #comprovantes .filter-bar #cp-datas2{width:100%;}
  #comprovantes .filter-bar #cp-periodo,
  #comprovantes .filter-bar #cp-data-ini,
  #comprovantes .filter-bar #cp-data-fim{width:100%;}
  @media(max-width:1160px){
    #comprovantes .filter-bar{display:flex;flex-wrap:wrap;}
    #comprovantes .filter-bar .filter-field{flex:1 1 220px;}
    #comprovantes .filter-bar button{flex:1 1 200px;justify-self:auto;}
  }
  .filter-field label{font-size:11px;color:var(--text-faint);font-weight:600;text-transform:uppercase;letter-spacing:.03em;}
  #auditoria-seguranca .audit-toolbar{display:flex;align-items:flex-end;gap:10px;margin:12px 0;}
  #auditoria-seguranca .audit-search-label{font-size:11px;color:var(--text-faint);font-weight:600;}
  #auditoria-seguranca .audit-toolbar input{max-width:360px;}
  #auditoria-seguranca .audit-note{font-size:12px;color:var(--text-soft);margin:12px 0;}
  #auditoria-seguranca .audit-table-wrap{width:100%;overflow-x:auto;}
  #auditoria-seguranca .audit-table{min-width:920px;}
  #auditoria-seguranca .audit-table td{vertical-align:top;}
  #auditoria-seguranca .audit-action,#auditoria-seguranca .audit-action-name{display:block;white-space:nowrap;}
  #auditoria-seguranca .audit-action-name{font-size:11px;color:var(--text-faint);margin-top:3px;}
  #auditoria-seguranca .audit-user-agent{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  #auditoria-seguranca .audit-pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:16px;font-size:12px;color:var(--text-soft);}
  #auditoria-seguranca .audit-pagination button:disabled{opacity:.45;cursor:not-allowed;}
  .search-select{position:relative;cursor:pointer;width:100%;}
  .search-select-control{width:100%;min-width:0;height:42px;padding:9px 12px;border:1.5px solid var(--border);border-radius:9px;background:#fff;color:var(--text);display:flex;align-items:center;justify-content:flex-start;padding-right:36px;position:relative;overflow:hidden;font-family:'Inter',sans-serif;font-size:13.5px;line-height:1.4;}
  .search-select-control.placeholder{color:var(--text-faint);}
  .search-select-control::after{content:'▾';position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--text-soft);font-size:12px;}
  .search-select-control .search-select-value{display:block;min-width:0;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
  .search-select-menu{position:absolute;z-index:20;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);overflow:hidden;}
  .search-select-menu.hidden{display:none;}
  .search-select-menu input{width:100%;border:none;border-bottom:1px solid var(--border);padding:10px 12px;outline:none;font-size:13px;color:var(--text);}
  .search-select-options{max-height:220px;overflow:auto;}
  .search-select-option{width:100%;text-align:left;padding:10px 12px;border:none;background:transparent;color:var(--text);cursor:pointer;font-size:13px;}
  .search-select-option:hover{background:var(--primary-light);}
  .search-select-menu .empty{padding:12px;color:var(--text-faint);font-size:13px;}
  .search-select:focus-within .search-select-control{border-color:var(--primary);}
  .individual-name-autocomplete{position:relative;width:100%;}
  .individual-name-suggestions{position:absolute;z-index:40;top:calc(100% + 5px);left:0;right:0;max-height:240px;overflow-y:auto;padding:4px;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);}
  .individual-name-suggestions[hidden]{display:none;}
  .individual-name-suggestion{display:block;width:100%;padding:9px 10px;border:0;border-radius:6px;background:#fff;color:var(--text);font-size:13px;font-weight:500;text-align:left;cursor:pointer;}
  .individual-name-suggestion:hover,.individual-name-suggestion[aria-selected="true"]{background:var(--primary-light);color:var(--primary-600);}
  .individual-name-suggestion-empty{padding:10px;color:var(--text-faint);font-size:12px;}

  /* ---------- COMPROVANTE ---------- */
  .receipt-card{background:#fff;border-radius:18px;border:1px solid var(--border);max-width:460px;margin:0 auto;overflow:hidden;}
  .receipt-head{background:linear-gradient(135deg,var(--primary),#8b7ff5);padding:28px 26px 22px 26px;color:#fff;text-align:center;}
  .receipt-head .mark{width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,0.18);border:1px solid rgba(255,255,255,0.4);
    display:flex;align-items:center;justify-content:center;font-weight:800;margin:0 auto 10px auto;}
  .receipt-head h4{margin:0 0 2px 0;font-size:13px;font-weight:600;opacity:.95;}
  .receipt-head p{margin:0;font-size:11px;opacity:.8;}
  .receipt-head .title{margin-top:14px;font-size:15px;font-weight:700;letter-spacing:.02em;}
  .receipt-body{padding:24px 26px;}
  .receipt-name{font-size:17px;font-weight:700;margin-bottom:2px;}
  .receipt-period{font-size:12px;color:var(--text-soft);margin-bottom:18px;}
  .receipt-total{background:var(--primary-light);border-radius:12px;padding:14px 16px;text-align:center;margin-bottom:18px;}
  .receipt-total .lbl{font-size:11px;color:var(--primary-600);text-transform:uppercase;letter-spacing:.04em;font-weight:600;}
  .receipt-total .amt{font-family:'JetBrains Mono',monospace;font-size:24px;font-weight:700;color:var(--primary-600);margin-top:3px;}
  .receipt-list{border-top:1px dashed var(--border);padding-top:12px;}
  .receipt-list .r-row{display:flex;justify-content:space-between;font-size:12.5px;padding:5px 0;color:var(--text-soft);}
  .receipt-list .r-row span:last-child{font-family:'JetBrains Mono',monospace;color:var(--text);font-weight:600;}
  .receipt-list .r-row.month-separator{border-top:1px dashed var(--border);padding:0;margin:12px 0;min-height:0;height:0;}
  .receipt-foot{border-top:1px solid var(--border);padding:16px 26px;font-size:10.5px;color:var(--text-faint);line-height:1.5;text-align:center;}
  @media print {
    @page { margin: 8mm 0 8mm 0; size: A4 portrait; }
    html, body {
      margin: 0 !important;
      padding: 0 !important;
      background: #fff !important;
      -webkit-print-color-adjust: exact;
      print-color-adjust: exact;
    }

    .print-only-card {
      display: block !important;
      width: 100% !important;
      background: transparent !important;
    }

    .print-only-card #cp-output-wrap {
      display: flex !important;
      justify-content: center !important;
      align-items: flex-start !important;
      width: 100% !important;
      margin: 0 auto !important;
    }

    .print-only-card #cp-output,
    .print-only-card #cp-output-wrap > .receipt-card {
      display: block !important;
      visibility: visible !important;
      width: 100mm !important;
      max-width: 100mm !important;
      min-width: 100mm !important;
      margin: 0 auto !important;
      position: static !important;
      left: auto !important;
      top: auto !important;
      transform: none !important;
      border-radius: 12px !important;
      box-shadow: none !important;
      -webkit-print-color-adjust: exact;
      print-color-adjust: exact;
    }

    .print-only-card #cp-output .receipt-head {
      padding: 18px 16px 14px !important;
    }
    .print-only-card #cp-output .receipt-head .mark {
      width: 32px !important;
      height: 32px !important;
      margin-bottom: 8px !important;
    }
    .print-only-card #cp-output .receipt-head h4 {
      font-size: 10.5px !important;
    }
    .print-only-card #cp-output .receipt-head p {
      font-size: 8.5px !important;
    }
    .print-only-card #cp-output .receipt-head .title {
      margin-top: 10px !important;
      font-size: 11.5px !important;
    }
    .print-only-card #cp-output .receipt-body {
      padding: 12px 15px !important;
    }
    .print-only-card #cp-output .receipt-name {
      font-size: 13px !important;
    }
    .print-only-card #cp-output .receipt-period {
      font-size: 9.5px !important;
      margin-bottom: 12px !important;
    }
    .print-only-card #cp-output .receipt-total {
      padding: 10px 12px !important;
      margin-bottom: 12px !important;
      background:#f1ecff !important;
      -webkit-print-color-adjust:exact !important;
      print-color-adjust:exact !important;
    }
    .print-only-card #cp-output .receipt-total .lbl {
      font-size: 8.5px !important;
    }
    .print-only-card #cp-output .receipt-total .amt {
      font-size: 18px !important;
    }
    .print-only-card #cp-output .receipt-list {
      padding-top: 8px !important;
    }
    .print-only-card #cp-output .receipt-list .r-row {
      font-size: 9.5px !important;
      padding: 4px 0 !important;
    }
    .print-only-card #cp-output .receipt-foot {
      padding: 10px 14px !important;
      font-size: 7.5px !important;
      line-height: 1.4 !important;
    }

    .print-only-card #cp-output .receipt-head,
    .print-only-card #cp-output .receipt-head *{
      background:linear-gradient(135deg, #5c2b90 0%, #8b7ff5 100%) !important;
      color:#ffffff !important;
      -webkit-print-color-adjust:exact !important;
      print-color-adjust:exact !important;
    }
    .print-only-card #cp-output .receipt-head .title,
    .print-only-card #cp-output .receipt-head h4,
    .print-only-card #cp-output .receipt-head p,
    .print-only-card #cp-output .receipt-head .mark{
      color:#ffffff !important;
    }

    .print-only-card .toolbar,
    .print-only-card .filter-bar,
    .print-only-card .card:not(#cp-output):not(#rc-output-card),
    .print-only-card .nav-item,
    .print-only-card .sidebar,
    .print-only-card .topbar,
    .print-only-card .bottom-nav,
    .print-only-card .toast-container,
    .print-only-card #cp-output-wrap > .toolbar,
    .print-only-card #cp-output-wrap > .card,
    .print-only-card .filter-field,
    .print-only-card .search-select,
    .print-only-card select,
    .print-only-card input,
    .print-only-card button,
    .print-only-card #rc-output-card,
    .print-only-card #rc-output-card *{
      display:none !important;
      visibility:hidden !important;
    }

    .print-only-card #cp-output,
    .print-only-card #cp-output *{
      display:block !important;
      visibility:visible !important;
    }
  }
  /* ---------- LOGIN ---------- */
  body.logged-in .shell{display:flex;}
  body:not(.logged-in) .shell{display:none;}
  body.logged-in #login-screen{display:none;}
  body.js-loading #login-screen,
  body.js-loading .shell {
    visibility: hidden;
    opacity: 0;
  }

  #login-screen{
    position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;
    padding:24px;overflow:hidden;
    background:
      radial-gradient(60% 60% at 15% 15%, rgba(139,127,245,0.55), transparent 60%),
      radial-gradient(55% 55% at 85% 85%, rgba(67,56,202,0.55), transparent 60%),
      linear-gradient(160deg, #14152b 0%, #1c1d3d 55%, #2a2c52 100%);
  }
  .login-blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.35;pointer-events:none;}
  .login-blob.b1{width:340px;height:340px;background:#8b7ff5;top:-90px;left:-90px;}
  .login-blob.b2{width:280px;height:280px;background:#4f46e5;bottom:-80px;right:-60px;}

  .login-card{
    position:relative;width:100%;max-width:380px;background:rgba(255,255,255,0.98);
    border-radius:22px;padding:38px 32px 30px 32px;box-shadow:0 24px 60px rgba(10,10,30,0.45);
    border:1px solid rgba(255,255,255,0.5);
  }
  .login-seal{
    width:56px;height:56px;border-radius:16px;margin:0 auto 16px auto;
    background:linear-gradient(135deg,var(--primary),#8b7ff5);
    display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:22px;
    box-shadow:0 8px 20px rgba(79,70,229,0.35);
  }
  .login-card h1{text-align:center;font-size:19px;font-weight:700;margin:0 0 4px 0;color:var(--text);}
  .login-card p.sub{text-align:center;font-size:12.5px;color:var(--text-soft);margin:0 0 26px 0;}

  .login-field{margin-bottom:14px;}
  .login-field label{display:block;font-size:11px;font-weight:600;color:var(--text-faint);text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px;}
  .login-input{position:relative;display:flex;align-items:center;}
  .login-input svg{position:absolute;left:12px;width:16px;height:16px;stroke:var(--text-faint);pointer-events:none;}
  .login-input input{padding-left:38px;}
  .login-row-between{display:flex;justify-content:space-between;align-items:center;margin:2px 0 20px 0;font-size:12px;}
  .login-row-between label{display:flex;align-items:center;gap:6px;color:var(--text-soft);cursor:pointer;}
  .login-row-between a{color:var(--primary);text-decoration:none;font-weight:600;}
  .login-row-between a:hover{text-decoration:underline;}
  .login-error{display:none;margin:0 0 18px 0;padding:12px 14px;border-radius:14px;background:rgba(224,64,58,0.12);border:1px solid rgba(224,64,58,0.3);color:#8b1d18;font-size:13px;font-weight:600;}
  .login-error.visible{display:block;}
  .btn-login{width:100%;justify-content:center;background:var(--primary);color:#fff;padding:12px;font-size:14px;border-radius:11px;}
  .btn-login:hover{background:var(--primary-600);}
  .btn-login svg{width:16px;height:16px;}
  .login-foot{text-align:center;font-size:11px;color:var(--text-faint);margin-top:20px;}

  @media (max-width:420px){
    .login-card{padding:30px 22px 24px 22px;border-radius:18px;}
  }

  /* Increase form control font-size on small screens to avoid iOS auto-zoom */
  @media (max-width:480px){
    input, select, textarea, button { font-size:16px !important; }
    .table-toolbar input{font-size:15px !important;}
  }
