/* Only the signed-in ledger owns the viewport; other routes keep normal page scrolling. */
html.credits-ledger-route[data-auth="user"],html.credits-ledger-route[data-auth="user"] body { height:100%; overflow:hidden; }
html.credits-ledger-route[data-auth="user"] .app-shell { height:100dvh; min-height:0; }
.credits-ledger-page { display:flex; flex-direction:column; flex:1; min-height:0; min-width:0; padding:20px; }
.credits-ledger-toolbar { flex:none; min-width:0; }
.credits-ledger-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; }
.credits-ledger-heading h2 { margin:0; font-size:22px; }
.credits-ledger-actions { display:flex; align-items:center; gap:16px; min-width:0; }
.credits-ledger-balance { color:var(--muted); font-size:12px; }
.credits-ledger-balance strong { color:var(--text); font-size:20px; font-weight:600; font-variant-numeric:tabular-nums; }
.credits-ledger-page .icon-button { display:inline-flex; align-items:center; justify-content:center; flex:none; width:36px; height:36px; min-height:36px; padding:8px; border-radius:8px; }
.credits-ledger-page .icon-button svg { width:18px; height:18px; }
.credits-ledger-page .icon-button[aria-busy="true"] svg { animation:credits-ledger-spin 1s linear infinite; }
.credits-ledger-filters { display:flex; align-items:flex-end; flex-wrap:wrap; gap:12px; margin:0; }
.credits-ledger-filters label { display:grid; gap:6px; min-width:0; width:175px; color:var(--text); font-size:12px; }
.credits-ledger-filters input,.credits-ledger-filters select { width:100%; min-width:0; min-height:38px; padding:8px 10px; font-size:12px; border-radius:8px; }
.credits-ledger-filter-actions { display:flex; gap:8px; }
.credits-ledger-filter-actions button { min-height:38px; font-size:12px; border-radius:8px; }
.credits-ledger-message { max-height:60px; overflow:auto; margin:8px 0 0; color:var(--error-text); font-size:12px; overflow-wrap:anywhere; }
.credits-ledger-message:empty { display:none; }
.credits-ledger-table-wrap { flex:1; min-height:0; min-width:0; margin-top:16px; overflow:auto; overscroll-behavior:contain; border-block:1px solid var(--border); }
.credits-ledger-table-wrap:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.credits-ledger-table { width:100%; min-width:830px; table-layout:fixed; border-collapse:separate; border-spacing:0; font-size:13px; }
.credits-ledger-table th { position:sticky; top:0; z-index:1; text-align:left; font-weight:500; font-size:12px; color:var(--muted); background:var(--solid-surface); box-shadow:inset 0 -1px var(--border); }
.credits-ledger-table th,.credits-ledger-table td { padding:13px 16px; vertical-align:middle; }
.credits-ledger-table th:nth-child(1) { width:21%; }
.credits-ledger-table th:nth-child(2) { width:13%; }
.credits-ledger-table th:nth-child(3) { width:12%; text-align:right; }
.credits-ledger-table th:nth-child(4) { width:32%; }
.credits-ledger-table th:nth-child(5) { width:22%; }
.credits-ledger-table td { border-bottom:1px solid var(--border); overflow-wrap:anywhere; }
.credits-ledger-table tbody tr:last-child td { border-bottom:0; }
.credits-ledger-table tbody tr:hover { background:var(--hover-bg); }
.credits-ledger-time { display:block; white-space:nowrap; font-variant-numeric:tabular-nums; }
.credits-ledger-id { display:block; margin-top:3px; color:var(--muted); font-size:10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.credits-ledger-type { display:inline-block; padding:3px 7px; border-radius:5px; color:var(--muted); background:var(--surface-soft); white-space:nowrap; font-size:11px; }
.credits-ledger-type[data-type="recharge"] { color:var(--success-text); background:var(--success-bg); }
.credits-ledger-type[data-type="task_charge"] { color:var(--accent-text); background:var(--accent-soft); }
.credits-ledger-type[data-type="task_refund"] { color:var(--pending-text); background:var(--pending-bg); }
.credits-ledger-delta { text-align:right; font-weight:600; font-variant-numeric:tabular-nums; white-space:nowrap; }
.credits-ledger-delta.is-positive { color:var(--success-text); }
.credits-ledger-delta.is-negative { color:var(--error-text); }
.credits-ledger-reference { display:block; color:var(--text); font-family:ui-monospace,Consolas,monospace; font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.credits-ledger-attempt { display:block; color:var(--muted); font-size:10px; margin-top:3px; }
.credits-ledger-remark { white-space:pre-wrap; line-height:1.6; }
.credits-ledger-empty { display:grid; place-items:center; align-content:center; gap:10px; min-height:100%; padding:24px; color:var(--muted); text-align:center; }
.credits-ledger-empty svg { width:25px; height:25px; }
.credits-ledger-empty strong { color:var(--text); font-size:14px; font-weight:500; }
.credits-ledger-empty button { margin-top:6px; font-size:12px; }
.credits-ledger-pagination { display:flex; flex:none; align-items:center; justify-content:space-between; gap:16px; padding-top:12px; color:var(--muted); font-size:12px; }
.credits-ledger-pagination>div { display:flex; gap:8px; }
@keyframes credits-ledger-spin { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) { .credits-ledger-page .icon-button[aria-busy="true"] svg { animation:none; } }
@media(max-width:760px) {
  .credits-ledger-page { padding:12px; }
  .credits-ledger-heading { margin-bottom:14px; gap:10px; }
  .credits-ledger-heading h2 { font-size:20px; }
  .credits-ledger-actions { gap:10px; }
  .credits-ledger-balance { max-width:140px; text-align:right; }
  .credits-ledger-balance strong { font-size:17px; overflow-wrap:anywhere; }
  .credits-ledger-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 10px; }
  .credits-ledger-filters label { width:auto; }
  .credits-ledger-filters label:first-child { grid-column:1/-1; }
  .credits-ledger-filter-actions { grid-column:1/-1; }
  .credits-ledger-table th,.credits-ledger-table td { padding:12px; }
  .credits-ledger-table th:nth-child(1) { width:156px; }
  .credits-ledger-table th:nth-child(2) { width:96px; }
  .credits-ledger-table th:nth-child(3) { width:82px; }
  .credits-ledger-table th:nth-child(4) { width:260px; }
  .credits-ledger-table th:nth-child(5) { width:auto; }
  .credits-ledger-pagination { gap:8px; font-size:11px; }
}
/* Short viewports keep filters reachable on a single horizontal rail. */
@media(max-height:520px) {
  html.credits-ledger-route[data-auth="user"] .app-shell { padding-top:10px; padding-bottom:10px; gap:8px; }
  .credits-ledger-page { margin-top:0; padding:8px 12px; }
  .credits-ledger-heading { margin-bottom:8px; }
  .credits-ledger-filters { display:flex; flex-wrap:nowrap; gap:10px; overflow-x:auto; padding-bottom:4px; }
  .credits-ledger-filters label { flex:0 0 140px; width:140px; gap:4px; }
  .credits-ledger-filter-actions { flex:none; }
  .credits-ledger-table-wrap { margin-top:8px; }
  .credits-ledger-pagination { padding-top:6px; }
}
