:root{--bg: #f4f2ee;--surface: #fffdfa;--ink: #1d2733;--muted: #586472;--line: #e2ddd5;--line-strong: #d3ccc1;--brand: #1f3b57;--brand-soft: #e8edf2;--in: #22663f;--in-soft: #e6f2ea;--out: #9a3030;--out-soft: #f8e9e7;--focus: #2b5f99;--radius: 14px;--font: "IBM Plex Sans Arabic", "Noto Sans Arabic", "Segoe UI", Tahoma, sans-serif;--fs-meta: .875rem;--fs-body: 1rem;--fs-h2: 1.125rem}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;font-family:var(--font);font-size:var(--fs-body);background:var(--bg);color:var(--ink);line-height:1.7;min-height:100vh;caret-color:var(--brand);-webkit-font-smoothing:antialiased}::selection{background:#cfdbe8;color:var(--ink)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:6px}h1,h2,p{margin:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.page{max-width:50rem;margin:0 auto;padding:2rem 1rem 3rem}.header{margin-bottom:1.75rem}.title{font-size:clamp(2.5rem,9vw,3.25rem);font-weight:700;line-height:1.1;color:var(--brand);font-variant-numeric:tabular-nums}.subtitle{margin-top:.35rem;font-size:var(--fs-h2);font-weight:600;color:var(--ink)}.trust-note{margin-top:.15rem;font-size:var(--fs-meta);color:var(--muted)}.balance{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem 1.25rem 1.35rem;margin-bottom:1.25rem}.balance-label{font-size:var(--fs-meta);font-weight:500;color:var(--muted)}.balance-figure{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .6rem;margin-top:.25rem}.balance-value{font-size:clamp(2.5rem,10vw,3.5rem);font-weight:700;line-height:1.15;font-variant-numeric:tabular-nums;color:var(--brand);unicode-bidi:isolate}.balance-value.is-loading{color:var(--line-strong)}.balance-value.negative{color:var(--out)}.balance-value.positive{color:var(--in)}.balance-unit{font-size:var(--fs-body);font-weight:500;color:var(--muted)}.balance-status{display:inline-block;margin-top:.6rem;padding:.15rem .7rem;border-radius:999px;font-size:var(--fs-meta);font-weight:600}.balance-status[hidden]{display:none}.balance-status.is-deficit{background:var(--out-soft);color:var(--out)}.balance-status.is-surplus{background:var(--in-soft);color:var(--in)}.balance-status.is-zero{background:var(--brand-soft);color:var(--brand)}.ledger{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem 1.25rem .75rem}.ledger-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.ledger-head h2{font-size:var(--fs-h2);font-weight:700;color:var(--ink);line-height:1.4}.status{min-height:1.5em;font-size:var(--fs-meta);color:var(--muted);font-variant-numeric:tabular-nums}.btn{appearance:none;flex-shrink:0;min-height:44px;padding:.4rem 1.1rem;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--brand);font:inherit;font-size:.9375rem;font-weight:600;cursor:pointer;transition:background-color .16s cubic-bezier(.16,1,.3,1),border-color .16s cubic-bezier(.16,1,.3,1)}.btn:hover{background:var(--brand-soft);border-color:#b9c6d4}.btn:active{background:#dbe3ec}.btn:disabled{opacity:.55;cursor:progress}.error-panel{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;padding:1rem 1.1rem 1.1rem;margin-bottom:.75rem;background:var(--out-soft);border-radius:10px}.error-panel[hidden]{display:none}.error-text{color:var(--out);font-weight:600}.error-hint{color:#6e3a36;font-size:var(--fs-meta)}.btn-retry{margin-top:.5rem;color:var(--out);border-color:#dfb7b2}.btn-retry:hover{background:#fff;border-color:#cf9a94}.skel{display:block;border-radius:6px;background:linear-gradient(90deg,#ece8e1 25%,#f6f3ee,#ece8e1 75%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite}.skel-block{height:1.1rem;width:100%}.skeleton-row td{padding:.9rem .5rem}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media(prefers-reduced-motion:reduce){.skel{animation:none;background:#ece8e1}.btn{transition:none}}.table-wrap{overflow-x:auto}.tx-table{width:100%;border-collapse:collapse;font-size:.9375rem}.tx-table th,.tx-table td{padding:.8rem .5rem;border-bottom:1px solid var(--line);vertical-align:top;text-align:start}.tx-table th{padding-top:.5rem;padding-bottom:.5rem;font-size:var(--fs-meta);font-weight:600;color:var(--muted);border-bottom-color:var(--line-strong)}.tx-table .num{text-align:end;font-variant-numeric:tabular-nums;white-space:nowrap}.tx-table tbody tr:last-child td{border-bottom:none}.date-cell{white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}.desc{max-width:24rem;overflow-wrap:anywhere;font-weight:500}.notes{display:block;margin-top:.15rem;font-size:var(--fs-meta);font-weight:400;color:var(--muted)}.amount-in{color:var(--in);font-weight:600}.amount-out{color:var(--out);font-weight:600}.dash{color:var(--line-strong)}.bal-neg{color:var(--out);font-weight:600}.bal-pos{color:var(--ink);font-weight:600}.tx-list{list-style:none;margin:0;padding:0}.tx-item{padding:.9rem 0;border-bottom:1px solid var(--line)}.tx-item:first-child{padding-top:.25rem}.tx-item:last-child{border-bottom:none}.tx-item-top{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem}.tx-item-desc{font-weight:600;overflow-wrap:anywhere}.tx-item-amt{flex-shrink:0;font-weight:700;font-variant-numeric:tabular-nums;unicode-bidi:isolate}.tx-item-amt.in{color:var(--in)}.tx-item-amt.out{color:var(--out)}.tx-item-notes{margin-top:.1rem;font-size:var(--fs-meta);color:var(--muted)}.tx-item-meta{display:flex;justify-content:space-between;gap:.75rem;margin-top:.35rem;font-size:var(--fs-meta);color:var(--muted);font-variant-numeric:tabular-nums}.tx-item-meta strong{font-weight:600;color:var(--ink)}.tx-item-meta strong.neg{color:var(--out)}.list-skel{height:4.25rem;margin:.6rem 0;border-radius:8px}.empty-state{padding:2rem 1rem;text-align:center;color:var(--muted)}.empty-state strong{display:block;margin-bottom:.25rem;color:var(--ink);font-size:var(--fs-body)}.footer{margin-top:2rem;max-width:60ch;font-size:var(--fs-meta);color:var(--muted)}.footer-meta{margin-top:.5rem}@media(max-width:640px){.page{padding:1.5rem .875rem 2.5rem}.table-wrap{display:none}.balance{padding:1.25rem 1rem 1.15rem}.ledger{padding:1rem 1rem .5rem}}@media(min-width:641px){.page{padding:3rem 1.5rem 3.5rem}.tx-list{display:none}}
