/* Desktop presentation only: keep touch/tablet and financial state unchanged. */
@media (min-width:1100px) and (hover:hover) and (pointer:fine) {
  #page-finance { flex-direction:column!important; }
  #page-finance .finance-content { padding:16px 20px!important;min-width:0; }
  #page-finance .finance-content > .settings-section { max-width:none!important;width:100%!important; }
  #page-finance .fw-heading { margin-bottom:12px; }
  #page-finance .fw-heading h2 { font-size:18px;margin-bottom:4px; }
  #page-finance .fw-heading p { margin:4px 0; }
  #page-finance .fw-toolbar { gap:8px 12px;margin-bottom:12px; }
  #page-finance .fw-toolbar label { gap:4px; }
  #page-finance .fw-summary { grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px; }
  #page-finance .fw-summary > div { padding:12px;min-width:0; }
  #page-finance .fw-summary strong { font-size:18px;white-space:nowrap;margin-top:4px; }
  #page-finance .fw-row { padding:10px 0; }
  #page-finance .fw-row small { margin-top:4px; }
  #page-finance .fw-group { margin:12px 0; }
  #page-finance .fw-group h3 { margin:12px 0 8px; }
  #page-finance .microcredit-summary { gap:12px;margin-bottom:16px; }
  #page-finance .debt-calendar-block { padding:12px!important; }
  #page-finance .debt-calendar-head { gap:12px;margin-bottom:8px; }
  #page-finance #debt-calendar { overflow:auto;max-height:calc(100dvh - 280px);min-height:260px;overscroll-behavior:contain; }
  #page-finance .debt-calendar-grid { min-width:1120px;grid-template-columns:repeat(7,minmax(160px,1fr))!important;overflow:visible; }
  #page-finance .debt-calendar-dow { position:sticky;top:0;z-index:3; }
  #page-finance .debt-calendar-day { min-width:0; }
  #page-finance .debt-calendar-event { display:flex!important;flex-wrap:wrap;gap:4px 6px;padding:6px;min-width:0; }
  #page-finance .debt-calendar-event b { flex:1 1 80px;white-space:normal!important;overflow-wrap:anywhere;line-height:1.35; }
  #page-finance .debt-calendar-event em { display:block!important;flex:0 0 100%;white-space:nowrap;text-align:right;font-size:12px!important; }
  #page-finance .debt-calendar-day-total { white-space:nowrap;overflow:visible; }
  #page-finance #debt-calendar.fc-workspace { max-height:none;min-height:0;overflow:visible; }
  #page-finance .debt-calendar-block:has(.fc-workspace) { border:0!important;box-shadow:none!important;background:transparent!important;border-radius:0!important;padding:0!important; }
  #page-finance .debt-calendar-block:has(.fc-workspace) > .debt-calendar-head { display:none; }
  #page-finance [data-debt-calendar-density-toggle][hidden] { display:none!important; }
  .fc-workspace { color:var(--text-primary);font-size:13px; }
  .fc-tools,.fc-switch,.fc-agenda-tools,.fc-actions { display:flex;align-items:end;gap:8px;flex-wrap:wrap; }
  .fc-tools label,.fc-agenda-tools label { display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-secondary); }
  .fc-tools input,.fc-tools select,.fc-agenda-tools input { min-height:36px;border:1px solid var(--border-control);border-radius:8px;padding:6px 8px;background:var(--bg-surface);color:var(--text-primary);font:inherit; }
  .fc-search { flex:1;min-width:200px;max-width:360px; }
  .fc-workspace .btn { min-height:36px;white-space:nowrap; }
  .fc-workspace [aria-pressed="true"] { background:var(--accent-light);border-color:var(--accent);color:var(--accent); }
  .fc-switch .btn[aria-pressed="true"] { background:var(--accent-light)!important;border-color:var(--accent)!important;color:var(--accent)!important; }
  .fc-workspace button:focus-visible,.fc-workspace input:focus-visible,.fc-workspace select:focus-visible { outline:2px solid var(--accent);outline-offset:2px; }
  .fc-note { color:var(--text-secondary);line-height:1.5;margin:12px 0; }
  .fc-summary { display:flex;gap:24px;flex-wrap:wrap;border-bottom:1px solid var(--border);padding:16px 0;margin-bottom:16px; }
  .fc-summary div { display:flex;flex-direction:column;gap:4px; }
  .fc-summary span,.fc-summary p { font-size:12px;color:var(--text-secondary);margin:0; }
  .fc-summary strong { font-size:18px;font-variant-numeric:tabular-nums;white-space:nowrap; }
  .fc-layout,.fc-agenda { min-width:0; }
  .fc-month { display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--border);border-left:1px solid var(--border);margin-bottom:20px; }
  .fc-date,.fc-blank,.fc-weekday { border:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--bg-surface);min-width:0; }
  .fc-weekday { padding:8px;text-align:center;color:var(--text-secondary);position:sticky;top:0;z-index:3; }
  .fc-date { container-type:inline-size;text-align:left;padding:8px;min-height:112px;color:var(--text-primary);font:inherit;display:flex;flex-direction:column;gap:8px; }
  .fc-date-heading { border:0;background:transparent;color:var(--text-primary);font:inherit;display:flex;align-items:center;justify-content:space-between;min-height:32px;padding:4px;cursor:pointer;border-radius:var(--control-radius); }
  .fc-date-heading:hover { background:var(--accent-light); }
  .fc-date-heading span { font-size:12px;color:var(--text-secondary); }
  .fc-date.is-today { background:var(--accent-light); }
  .fc-date.is-today .fc-date-heading b { background:var(--action-primary,var(--accent));color:var(--action-primary-contrast,#fff);border-radius:var(--control-radius);padding:4px 8px; }
  .fc-chips { display:flex;flex-direction:column;gap:8px; }
  .fc-chip { display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:19px 19px 18px 16px 16px;align-content:start;align-items:center;column-gap:6px;row-gap:2px;width:100%;height:116px;box-sizing:border-box;min-width:0;padding:8px;text-align:left;font:inherit;color:var(--text-primary);background:var(--bg-surface-2);border:1px solid transparent;border-left:3px solid var(--border-control);border-radius:var(--control-radius);cursor:pointer; }
  .fc-chip:hover { border-color:var(--accent);background:var(--accent-light); }
  .fc-more { min-height:36px;padding:8px;text-align:left;font:inherit;font-size:12px;font-weight:600;color:var(--accent);background:transparent;border:1px solid var(--border);border-radius:var(--control-radius);cursor:pointer; }
  .fc-more:hover { background:var(--accent-light);border-color:var(--accent); }
  .fc-more:focus-visible { outline:2px solid var(--accent);outline-offset:2px; }
  .fc-chip strong { min-width:0;white-space:nowrap;text-overflow:ellipsis;font-size:13px;line-height:19px;overflow:hidden; }
  .fc-chip .fc-chip-borrower { text-align:right;white-space:nowrap;max-width:64px;overflow:hidden;text-overflow:ellipsis; }
  .fc-chip b { grid-column:1;grid-row:2;font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums; }
  .fc-chip small { grid-column:1/-1;grid-row:5;justify-self:start;text-align:left;white-space:nowrap; }
  .fc-chip .fc-chip-type { grid-column:1/-1;grid-row:3;justify-self:start;max-width:100%;overflow:hidden;text-overflow:ellipsis;padding:2px 5px;border-radius:5px;background:var(--accent-light);color:var(--text-secondary);font-size:10px;font-weight:700;line-height:15px;white-space:nowrap; }
  .fc-chip .fc-chip-contract { grid-column:1/-1;grid-row:4;justify-self:start;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:16px; }
  @container (max-width:190px) {
    .fc-chip { height:116px; }
    .fc-chip b { grid-column:1/-1; }
  }
  .fc-chip span,.fc-chip small { color:var(--text-secondary);font-size:12px;line-height:16px; }
  .fc-chip.is-paid { border-left-color:var(--status-success); }
  .fc-chip.is-paid small { color:var(--status-success); }
  .fc-chip.is-overdue { border-left-color:var(--status-danger); }
  .fc-chip.is-overdue small { color:var(--status-danger); }
  .fc-day-total { font-size:12px;color:var(--text-secondary);display:flex;flex-wrap:wrap;gap:4px;margin-top:auto;padding-top:4px; }
  .fc-day-total strong { white-space:nowrap;color:var(--text-primary);font-variant-numeric:tabular-nums; }
  .fc-agenda-tools { padding-bottom:12px;border-bottom:1px solid var(--border); }
  .fc-agenda-tools h3 { flex:1;min-width:200px;margin:0;font-size:17px;align-self:center; }
  .fc-day>header { display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 0;background:var(--bg-surface);position:sticky;top:0;z-index:2;border-bottom:1px solid var(--border); }
  .fc-day h4 { font-size:14px;margin:0; }
  .fc-day>header span { flex:1;font-size:12px;color:var(--text-secondary); }
  .fc-row { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;padding:12px 0;border-bottom:1px solid var(--border-light); }
  .fc-row-main { display:flex;flex-direction:column;gap:5px;min-width:0; }
  .fc-row-main strong { white-space:normal;overflow-wrap:anywhere;font-size:14px; }
  .fc-row-main span,.fc-row-main small,.fc-money small { color:var(--text-secondary);line-height:1.45;overflow-wrap:anywhere; }
  .fc-row-main summary { cursor:pointer;font-size:12px;color:var(--text-secondary); }
  .fc-row-main details small { display:block;margin-top:4px; }
  .fc-status.is-paid { color:var(--status-success); }
  .fc-status.is-overdue { color:var(--status-danger); }
  .fc-money { display:flex;flex-direction:column;align-items:end;gap:4px;font-variant-numeric:tabular-nums;white-space:nowrap; }
  .fc-actions { grid-column:1/-1; }
  .fc-agenda .fc-row { grid-template-columns:minmax(240px,1fr) minmax(100px,auto) auto;align-items:center; }
  .fc-agenda .fc-actions { grid-column:auto;justify-content:flex-end;max-width:380px; }
  .fc-day-modal { max-width:640px;width:calc(100vw - 32px);max-height:88dvh; }
  .fc-day-modal header { padding:14px 20px 10px; }
  .fc-day-modal header h2 { margin:0 0 2px;font-size:17px; }
  .fc-day-modal header p { margin:0;font-size:11px; }
  .fc-day-modal .fw-modal-body { padding:0 20px; }
  .fc-day-modal footer { padding:8px 20px; }
  .fc-day-modal .fc-row { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;padding:10px 0; }
  .fc-day-modal .fc-row-main { display:flex;flex-direction:column;gap:3px;overflow-wrap:anywhere; }
  .fc-day-modal .fc-row-main small { line-height:1.25; }
  .fc-day-modal .fc-money { white-space:nowrap;text-align:right; }
  .fc-day-modal .fc-row-progress { grid-column:1/-1;min-width:0; }
  .fc-day-modal .fc-row-progress .fw-payment-progress { width:100%; }
  .fc-day-modal .fc-actions { display:flex;gap:6px;flex-wrap:wrap;grid-column:1/-1; }
  .fc-day-modal .btn { min-height:32px;padding:6px 10px;font-size:11px; }
  .fc-empty { color:var(--text-secondary);padding:20px 0; }
  #page-finance .debt-contracts-wrap { max-height:calc(100dvh - 330px);min-height:240px;overflow:auto; }
  #page-finance .debt-contracts-table { border-collapse:separate;border-spacing:0; }
  #page-finance .debt-contracts-table th { position:sticky;top:0;z-index:3;background:var(--bg-surface-2); }
  #page-finance .debt-contracts-table th:last-child,
  #page-finance .debt-contracts-table td:last-child { position:sticky;right:0;background:var(--bg-surface);box-shadow:-1px 0 var(--border);z-index:2; }
  #page-finance .debt-contracts-table th:last-child { z-index:4;background:var(--bg-surface-2); }
  #modal-generic > .debt-schedule-modal { width:min(1040px,calc(100vw - 48px))!important;max-width:calc(100vw - 48px)!important; }
  .debt-schedule-modal { width:100%;max-width:100%; }
  .debt-schedule-table-wrap { overflow:auto;max-height:calc(100dvh - 240px); }
  .debt-schedule-table th:last-child,.debt-schedule-table td:last-child { position:sticky;right:0;z-index:2;background:var(--bg-surface);box-shadow:-1px 0 var(--border); }
}

/* Paid payments are readable at a glance in the month calendar. */
.fc-chip.is-paid {
  color:#153729;
  background:#daf1e3;
  border-color:#a8d7ba;
  border-left-color:#27875a;
}
.fc-chip.is-paid:hover { background:#c9e9d6;border-color:#27875a; }
.fc-chip.is-paid span,
.fc-chip.is-paid .fc-chip-contract { color:#355f49; }
.fc-chip.is-paid .fc-chip-type { color:#205b3d;background:#bfe4cd; }
.fc-chip.is-paid small { color:#206a46;font-weight:700; }
.fc-chip.is-paid:focus-visible { outline:2px solid #27875a;outline-offset:2px; }
body.dark .fc-chip.is-paid {
  color:#f2fff6;
  background:#24543b;
  border-color:#377a55;
  border-left-color:#83d5a3;
}
body.dark .fc-chip.is-paid:hover { background:#2b6446;border-color:#83d5a3; }
body.dark .fc-chip.is-paid span,
body.dark .fc-chip.is-paid .fc-chip-contract { color:#d0e9d9; }
body.dark .fc-chip.is-paid .fc-chip-type { color:#e0f7e8;background:#386e4e; }
body.dark .fc-chip.is-paid small { color:#b6f1ca; }
body.dark .fc-chip.is-paid:focus-visible { outline-color:#b6f1ca; }
@media (min-width:1100px) and (max-width:1600px) and (hover:hover) and (pointer:fine) {
  #page-finance > .finance-shell { flex-direction:column!important;min-height:0; }
  #page-finance .finance-subnav { width:100%!important;height:auto!important;min-height:52px!important;flex:0 0 auto!important;display:flex!important;flex-direction:row!important;align-items:center;gap:4px;overflow-x:auto!important;overflow-y:hidden!important;padding:6px 16px!important;border-right:0;border-bottom:1px solid var(--border); }
  #page-finance .finance-subnav > * { flex:0 0 auto; }
  #page-finance .finance-subnav > div { display:none; }
  #page-finance .finance-subnav .settings-nav-btn { width:auto!important;white-space:nowrap;min-height:40px;margin:0!important;padding:8px 12px!important; }
  #page-finance .finance-content { flex:1 1 auto!important;width:100%!important;min-height:0!important;overflow:auto!important; }
}
