.ex-nav { display:flex; align-items:center; gap:23px; font-size:12px; }
.ex-nav a { color:var(--muted); padding:20px 0; position:relative; }
.ex-nav a[aria-current="page"] { color:var(--petrol); font-weight:600; }
.ex-nav a[aria-current="page"]:after { content:""; position:absolute; bottom:0; left:0; right:0; height:2px; background:var(--petrol); }
.fi-topbar-actions .ex-clinic-link { margin-left:12px; }
.ex-month-picker { display:flex; gap:5px; align-items:center; border:1px solid var(--line); border-radius:8px; padding:5px; background:white; }
.ex-month-picker input { width:148px; padding:3px 5px; border:0; background:transparent; font-size:13px; cursor:pointer; }
.ex-month-picker .fi-icon-action { width:26px; height:26px; }
.ex-month-picker .icon { width:15px; height:15px; }
.ex-page .fi-page-heading { margin-bottom:25px; }
.ex-page .fi-actions { gap:15px; }
.ex-expense-total { display:flex; justify-content:space-between; align-items:center; gap:18px; margin:0 0 24px; padding:21px 23px; background:white; border:1px solid var(--line); border-radius:12px; }
.ex-expense-total > span:first-child { display:flex; align-items:center; gap:22px; color:var(--muted); font-size:12px; }
.ex-expense-total strong { color:var(--ink); font-size:27px; font-weight:600; letter-spacing:-.03em; font-variant-numeric:tabular-nums; white-space:nowrap; }
.ex-expense-total > span:last-child:not(:first-child) { color:var(--muted); font-size:11px; }
.ex-filters { display:flex; align-items:center; gap:9px; }
.ex-filters select { padding:9px 30px 9px 11px; border:1px solid var(--line); border-radius:8px; background:white; font-size:12px; max-width:230px; }
.ex-toolbar .fi-search { max-width:360px; }
.ex-table { min-width:720px; }
.ex-table td:first-child { min-width:105px; }
.ex-record-name { min-width:180px; max-width:400px; }
.ex-record-name strong { display:block; font-size:12px; font-weight:550; overflow-wrap:anywhere; }
.ex-table .fi-void-row .ex-record-name strong { text-decoration:line-through; text-decoration-color:#c7cfca; }
.ex-table td:nth-child(3),.ex-table td:nth-child(4) { white-space:nowrap; }
.ex-monthly-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-bottom:24px; }
.ex-monthly-cards section { display:flex; flex-direction:column; border:1px solid var(--line); border-radius:12px; padding:22px 24px 19px; background:white; min-width:0; }
.ex-monthly-cards span { color:var(--muted); font-size:12px; }
.ex-monthly-cards strong { margin-top:9px; font-size:30px; font-weight:600; letter-spacing:-.035em; white-space:nowrap; font-variant-numeric:tabular-nums; }
.ex-monthly-cards small { margin-top:9px; font-size:11px; color:var(--muted); }
.ex-monthly-cards .ex-net strong { color:var(--petrol); }
.ex-monthly-cards .ex-net.negative strong { color:#9d6056; }
.ex-breakdowns { display:grid; grid-template-columns:1fr 1fr; gap:22px; align-items:start; }
.ex-breakdown { background:white; border:1px solid var(--line); border-radius:12px; padding:22px 24px; min-width:0; }
.ex-breakdown > header { display:flex; justify-content:space-between; align-items:center; gap:15px; margin-bottom:20px; }
.ex-breakdown h2,.ex-daily h2 { font-size:15px; }
.ex-breakdown .fi-text-action { font-size:11px; white-space:nowrap; }
.ex-breakdown .fi-text-action .icon { width:13px; height:13px; margin-left:4px; }
.ex-categories { display:grid; gap:19px; }
.ex-category > div:first-child { display:flex; justify-content:space-between; align-items:center; gap:14px; font-size:12px; }
.ex-category strong { font-weight:500; font-variant-numeric:tabular-nums; white-space:nowrap; }
.ex-category-track { margin-top:8px; height:4px; background:#eef3f0; overflow:hidden; border-radius:2px; }
.ex-category-track > span { display:block; height:100%; background:#72ada5; border-radius:2px; }
.ex-breakdown-empty { display:grid; place-items:center; min-height:130px; color:var(--muted); font-size:12px; }
.ex-methods { border-collapse:collapse; width:100%; font-size:12px; }
.ex-methods thead th { padding:0 0 13px; color:var(--muted); font-size:10px; font-weight:500; text-align:right; }
.ex-methods thead th:first-child { text-align:left; }
.ex-methods tbody th { text-align:left; font-weight:400; padding:14px 8px 14px 0; white-space:nowrap; }
.ex-methods tbody td { text-align:right; padding:14px 0 14px 10px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.ex-methods tbody tr { border-top:1px solid var(--line); }
.ex-methods tbody tr:last-child td,.ex-methods tbody tr:last-child th { padding-bottom:0; }
.ex-daily { background:white; border:1px solid var(--line); border-radius:12px; padding:21px 23px 12px; margin-top:23px; }
.ex-daily > header { display:flex; justify-content:space-between; align-items:center; gap:15px; }
.ex-chart-legend { display:flex; gap:18px; color:var(--muted); font-size:10px; }
.ex-chart-legend > span { display:flex; align-items:center; gap:6px; }
.ex-chart-legend i { width:6px; height:6px; border-radius:2px; background:var(--petrol); }
.ex-chart-legend > span:last-child i { background:#b78e7d; }
.ex-daily-chart { display:block; width:100%; max-height:300px; margin-top:24px; overflow:visible; }
.ex-daily-chart line { stroke:#dce5df; stroke-width:1; }
.ex-daily-chart .ex-grid-line { stroke:#edf2ee; }
.ex-daily-chart text { fill:var(--muted); font-size:10px; }
.ex-daily-chart .ex-chart-scale { font-size:10px; }
.ex-daily-chart rect.income { fill:var(--petrol); }
.ex-daily-chart rect.expense { fill:#b78e7d; }
.ex-modal { width:510px; }
.ex-modal input[name="amount"] { font-size:22px; }
.ex-modal .fi-error { margin-top:16px; }
#ex-error-retry { margin-bottom:17px; }
#ex-error-retry[hidden] { display:none; }
@media(max-width:1100px) {
  .ex-nav { gap:17px; }
  .fi-topbar-actions .ex-clinic-link { margin-left:0; }
  .ex-monthly-cards { gap:14px; }
  .ex-monthly-cards section { padding:20px 18px 18px; }
  .ex-monthly-cards strong { font-size:27px; }
  .ex-breakdowns { gap:18px; }
  .ex-breakdown { padding:20px 18px; }
  .ex-methods { font-size:11px; }
  .ex-table th,.ex-table td { padding-left:12px; padding-right:12px; }
  .ex-table .ex-record-name { min-width:160px; }
}
@media(max-width:800px) {
  .fi-topbar-actions .ex-clinic-link { display:none; }
  .ex-table { min-width:700px; }
  .ex-page .fi-page-heading { flex-direction:column; gap:17px; }
  .ex-page .fi-actions { width:100%; justify-content:space-between; }
  .ex-toolbar { align-items:stretch; }
  .ex-filters { justify-content:flex-end; }
  .ex-filters select { max-width:180px; font-size:11px; }
  .ex-monthly-cards strong { font-size:25px; }
  .ex-breakdowns { grid-template-columns:1fr; }
  .ex-methods { font-size:12px; }
}
@media(max-width:520px) {
  .ex-nav { gap:13px; font-size:10px; }
  .fi-topbar:has(.ex-nav) { padding:0 16px; }
  .fi-topbar:has(.ex-nav) .fi-brand { font-size:23px; }
  .fi-topbar:has(.ex-nav) .fi-topbar-actions { gap:10px; }
  .ex-month-picker { gap:1px; }
  .ex-month-picker input { width:129px; font-size:12px; }
  .ex-page .fi-actions { gap:10px; }
  .ex-page .fi-actions > .button { padding:10px 12px; }
  .ex-expense-total { padding:18px; margin-bottom:18px; align-items:flex-start; flex-direction:column; gap:9px; }
  .ex-expense-total > span:first-child { width:100%; justify-content:space-between; gap:12px; }
  .ex-expense-total strong { font-size:25px; }
  .ex-filters { justify-content:stretch; }
  .ex-filters > label { flex:1; min-width:0; }
  .ex-filters select { width:100%; max-width:none; font-size:11px; padding-left:9px; }
  .ex-toolbar .fi-search { max-width:none; }
  .ex-monthly-cards { grid-template-columns:1fr; gap:10px; }
  .ex-monthly-cards section { padding:15px 18px; flex-direction:row; align-items:center; flex-wrap:wrap; gap:4px 12px; }
  .ex-monthly-cards strong { font-size:24px; margin:0 0 0 auto; }
  .ex-monthly-cards small { width:100%; text-align:right; margin-top:0; font-size:10px; }
  .ex-breakdown,.ex-daily { padding-left:18px; padding-right:18px; }
  .ex-daily > header { align-items:flex-start; flex-direction:column; gap:10px; }
  .ex-daily-chart { margin-top:20px; }
}
