/* fundd-table.css — reusable data table (PAGE C02 Transactions first). Round 2: fundd gold, bigger/clearer type,
   one tidy toolbar, totals split Approved/Pending, details panel slides in from the right (left on RTL), card list on phones. */
.ft,.ft-top,.ft-panel,.ft-drawer{--g:#c3912e;--gd:#8a6418;--gb:#b8862a;--gs:#fbf5e8;--gl:#f0e2c2;--ink:#1c1f23;--ink2:#3d434b;--line:#e7e1d4;--in:#13804a;--out:#c62828}
.ft{position:relative;margin-bottom:24px;color:var(--ink);font-size:15px;font-weight:500}
.ft *{box-sizing:border-box}
/* row 1: view toggle */
.ft-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 14px}
.ft-zoom{display:inline-flex;border:2px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;margin-left:auto}
.ft-zoom button{border:0;background:#fff;height:44px;min-width:40px;font-size:20px;font-weight:700;color:var(--ink);cursor:pointer;line-height:1}
.ft-zoom .ft-z-pct{min-width:78px;font-size:14px;border-left:2px solid var(--line);border-right:2px solid var(--line);font-variant-numeric:tabular-nums}
.ft-zoom .ft-z-pct.on{color:var(--gd)}
.ft-zoom button:hover:not(:disabled){background:var(--gs)}.ft-zoom button:disabled{color:#b9b2a3;cursor:default}
.ft-seg{display:inline-flex;background:#fff;border:2px solid var(--g);border-radius:12px;padding:0;gap:0;height:48px;overflow:hidden}
.ft-seg-btn{border:0;background:transparent;color:var(--gd);font-weight:700;font-size:15px;padding:0 22px;height:100%;border-radius:0;cursor:pointer;white-space:nowrap;line-height:1.2}
.ft-seg-btn+.ft-seg-btn{border-left:2px solid var(--g)}
.ft-seg-btn:hover{background:var(--gs)}
.ft-seg-btn.on{background:var(--g);color:#fff}
.ft-collist li.ft-viewoff label{color:#8a8173}.ft-collist li.ft-viewoff em{font-style:normal;font-size:13px;font-weight:600;color:var(--gd);margin-left:4px}
/* row 2: search + 5 equal buttons */
.ft-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:stretch;margin-bottom:12px}
.ft-search{display:flex;align-items:center;gap:10px;margin:0;background:#fff;border:2px solid var(--line);border-radius:12px;padding:0 14px;height:48px;cursor:text}
.ft-search:focus-within{border-color:var(--g);box-shadow:0 0 0 3px rgba(195,145,46,.18)}
.ft-search i{color:var(--gd);font-size:16px}
.ft-search input{flex:1;min-width:0;border:0!important;outline:0;box-shadow:none!important;background:transparent;font-size:16px;font-weight:500;color:var(--ink);height:44px;padding:0}
.ft-search input::placeholder{color:#6b6252}
.ft-btns{display:grid;grid-template-columns:repeat(5,104px);gap:8px}
.ft-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;height:48px;padding:0 10px;border-radius:12px;border:2px solid var(--g);background:#fff;color:var(--gd);font-weight:700;font-size:15px;cursor:pointer;white-space:nowrap;line-height:1}
.ft-btn:hover{background:var(--gs)}
.ft-btn i{font-size:15px}
.ft-btn-gold{background:var(--g);color:#fff}.ft-btn-gold:hover{background:var(--gb)}
.ft-btn:disabled{opacity:.4;cursor:default}
.ft-btn-sm{height:38px;font-size:14px;border-radius:10px;padding:0 14px}
.ft-fcount{position:absolute;top:-8px;right:-8px;min-width:22px;height:22px;border-radius:11px;background:var(--ink);color:#fff;font-style:normal;font-size:12px;line-height:22px;text-align:center;padding:0 5px}
/* chips */
.ft-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;align-items:center}
.ft-chips:empty{display:none}
.ft-chip{display:inline-flex;align-items:center;gap:6px;background:var(--gs);border:1.5px solid var(--gl);border-radius:999px;padding:5px 6px 5px 14px;font-size:14px;font-weight:600;color:var(--ink)}
.ft-chip i{color:var(--gd)}
.ft-chip button{border:0;background:#fff;border-radius:50%;width:24px;height:24px;font-size:16px;line-height:1;color:var(--ink);cursor:pointer;padding:0}
.ft-clear{border:0;background:none;color:var(--gd);font-weight:700;font-size:14px;text-decoration:underline;cursor:pointer}
/* totals: In / Fees / Effective / Out, each split Approved / Pending */
.ft-totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
@media (min-width:1200px){ .ft-totals:has(> .ft-tot:nth-child(5)){grid-template-columns:repeat(5,minmax(0,1fr))} }   /* round 8: 5 boxes (C02 + Running balance) stay on one row on laptops */
.ft-tot{background:#fff;border:1.5px solid var(--line);border-top:4px solid var(--g);border-radius:12px;padding:12px 14px 10px}
.ft-tot-l{display:block;font-size:14px;font-weight:700;color:var(--ink2);text-transform:uppercase;letter-spacing:.03em}
.ft-tot-v{display:block;font-size:24px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;margin:2px 0 8px;line-height:1.15}
.ft-tot-sub{display:block;white-space:pre-line;line-height:1.35;font-size:14px;font-weight:700;color:var(--ink2);margin:-4px 0 2px}.ft-tot.ft-pend{border-top-color:#e0a100}.ft-tot.ft-pend .ft-tot-v{color:#7a5200}
.ft-tot.ft-in .ft-tot-v{color:var(--in)}.ft-tot.ft-out .ft-tot-v{color:var(--out)}.ft-tot.ft-fee .ft-tot-v{color:var(--gd)}
.ft-tot-parts{display:grid;grid-template-columns:1fr 1fr;gap:6px;border-top:1px solid var(--line);padding-top:8px}
.ft-part span{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:700;color:var(--ink2)}
.ft-part span:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--in)}
.ft-part.ft-pend span:before{background:#e0a100}
.ft-part b{display:block;font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}
.ft-count{font-size:14px;font-weight:600;color:var(--ink2);margin:-4px 0 10px}
/* table */
.ft-scroll{background:#fff;border:1.5px solid var(--line);border-radius:12px;overflow:auto}
.ft-table{margin-bottom:0;font-size:14.5px;width:100%;border-collapse:separate;border-spacing:0}
.ft-table thead th{position:sticky;top:0;background:var(--gs);white-space:normal;line-height:1.2;cursor:pointer;user-select:none;border-bottom:2px solid var(--g);font-weight:800;font-size:13.5px;color:var(--ink);vertical-align:middle;padding:10px 5px}
.ft-table thead th:hover{background:#f6ead0}
.ft-arrow{display:inline-block;width:10px;margin-left:2px;font-size:11px;color:var(--gd)}
.ft-th:not(.ft-asc):not(.ft-desc) .ft-arrow:after{content:"⇅";opacity:.5}
.ft-asc .ft-arrow:after{content:"▲"}.ft-desc .ft-arrow:after{content:"▼"}
.ft-dragging{opacity:.4}.ft-over{box-shadow:inset 3px 0 0 var(--g)}
.ft-table td{vertical-align:middle;white-space:nowrap;padding:9px 5px;border-top:1px solid #f1ece2;color:var(--ink)}
.ft-table tbody tr:first-child td{border-top:0}
.ft-table tbody tr:hover td{background:#fffaf0}
.ft-table td.ft-c-name{white-space:normal;min-width:128px;max-width:230px}
.ft-table td.ft-c-gateway{white-space:nowrap;line-height:1.25}
/* round 3: tighter cells so all 12 columns fit at 100% on a 1440px desktop (Fit only zooms out on narrower screens) */
.ft-table th:first-child,.ft-table td:first-child{padding-left:12px}.ft-table th:last-child,.ft-table td:last-child{padding-right:12px}
.ft-sub{display:block;font-size:14px;font-weight:500;color:var(--ink2);margin-top:1px}
.ft-num{font-variant-numeric:tabular-nums}
.ft-table th.ft-left,.ft-table td.ft-left{text-align:left!important}
.ft-dim{color:var(--ink2)}
.ft-row{cursor:pointer}.ft-row:focus{outline:2px solid var(--g);outline-offset:-2px}
.ft-row.ft-deleted td{background:#fbfaf8}.ft-row.ft-deleted td.ft-c-amount b{text-decoration:line-through;text-decoration-thickness:1.5px}
.ft-empty{text-align:center;color:var(--ink2);padding:32px!important;white-space:normal!important;font-size:16px}
/* type (in/out) + status + gift aid */
.ft-type{display:inline-flex;align-items:center;gap:4px;font-weight:700;font-size:14px}
.ft-type i{line-height:1;display:inline-flex;align-items:center;justify-content:center;width:21px;height:21px;border-radius:50%;font-style:normal;font-size:15px;font-weight:800}
.ft-type.in{color:var(--in)}.ft-type.in i{background:#e2f4e9}
.ft-type.out{color:var(--out)}.ft-type.out i{background:#fde7e7}
.ft-badge{display:inline-block;padding:4px 9px;border-radius:999px;font-size:13px;font-weight:700;line-height:1.2}
.ft-st-approved{background:#e2f4e9;color:#0f6a3c}.ft-st-pending{background:#fff1cc;color:#7a5200}.ft-st-refunded{background:#e3effa;color:#14548a}.ft-st-rejected,.ft-st-deleted{background:#fde7e7;color:#a61f1f}
.ft-ga{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:700}
.ft-ga i{font-size:15px}.ft-ga-pending i{color:#c98a00}.ft-ga-submitted i{color:#1f6fb5}.ft-ga-allocated i{color:var(--in)}
/* pager */
.ft-pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding:14px 2px;font-size:15px;font-weight:600;color:var(--ink)}
.ft-nav{display:flex;align-items:center;gap:10px}
.ft-pp{display:flex;align-items:center;gap:8px;margin:0;font-weight:600}
.ft-select{height:38px;border:2px solid var(--line);border-radius:10px;padding:0 8px;font-weight:600;font-size:15px;background:#fff;color:var(--ink)}
.ft-link{border:0;background:none;color:var(--gd);font-weight:700;font-size:14px;text-decoration:underline;cursor:pointer;padding:0}
.ft-link:disabled{text-decoration:none;color:var(--in);cursor:default}
.ft-msort{display:none}
/* dropdown panels (dates / filters / columns) */
.ft-panel{position:absolute;z-index:1060;background:#fff;border:1.5px solid var(--gl,#f0e2c2);border-radius:14px;box-shadow:0 14px 34px rgba(40,30,10,.18);padding:14px;max-height:72vh;overflow:auto;font-size:15px;color:#1c1f23}
.ft-panel .btn{border-radius:10px;font-weight:700}
.ft-panel .btn-primary{background:#c3912e!important;border-color:#c3912e!important;color:#fff!important}
.ft-panel .btn-link{color:#8a6418!important;font-weight:700}
.ft-panel .btn-outline-primary,.ft-panel .btn-light,.ft-panel .btn-outline-secondary{border:2px solid #c3912e!important;color:#8a6418!important;background:#fff!important}
.ft-panel .form-control{font-size:15px;height:40px;border-radius:9px}
.ft-ph{font-weight:800;margin-bottom:10px;color:#1c1f23;font-size:16px}.ft-ph small{font-weight:600;color:#3d434b;margin-left:4px;font-size:13px}.ft-ph2{margin-top:14px}
.ft-collist{list-style:none;margin:0;padding:0}
.ft-collist li{display:flex;align-items:center;gap:8px;padding:7px 2px;border-bottom:1px solid #f1ece2}
.ft-collist label{flex:1;margin:0;cursor:pointer;font-weight:600}
.ft-grip{color:#8a6418;cursor:grab;font-size:13px}
.ft-mv button{border:1.5px solid #e7e1d4;background:#fff;border-radius:7px;width:30px;height:28px;line-height:1;margin-left:3px}
.ft-mv button:disabled{opacity:.3}
.ft-pf{display:flex;justify-content:space-between;align-items:center;margin-top:12px}
.ft-presets{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.ft-row2{display:flex;align-items:center;gap:6px;margin-bottom:10px}
.ft-row2 .form-control{min-width:0}
.ft-n{width:70px!important;flex:0 0 70px}
.ft-radio{margin:0;min-width:60px;white-space:nowrap;font-weight:600}
.ft-fg{margin-bottom:12px}.ft-fl{font-weight:800;font-size:14px;color:#1c1f23;margin-bottom:5px}
.ft-vals{display:flex;flex-wrap:wrap;gap:6px 14px}.ft-val{margin:0;font-weight:600;white-space:nowrap}
.ft-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:#1c1f23;color:#fff;padding:12px 18px;border-radius:10px;font-size:15px;font-weight:600;opacity:0;transition:.25s;z-index:2000;max-width:90vw}
.ft-toast.ft-show{opacity:1;transform:translate(-50%,0)}
.ft-noscroll{overflow:hidden}
/* side panel: from the RIGHT (like the Billing for Mosdos drawer); from the LEFT on right-to-left (Hebrew) pages */
.ft-drawer-bg{position:fixed;inset:0;background:rgba(17,24,39,.32);z-index:1070;opacity:0;transition:opacity .18s ease}
.ft-drawer-bg.open{opacity:1}
.ft-drawer{position:fixed;top:0;bottom:0;left:0;width:min(460px,100%);background:#fff;z-index:1071;box-shadow:8px 0 30px rgba(0,0,0,.18);display:flex;flex-direction:column;transform:translateX(-100%);transition:transform .2s ease;color:#1c1f23;font-size:15px}
.ft-drawer.ft-right{left:auto;right:0;transform:translateX(100%);box-shadow:-8px 0 30px rgba(0,0,0,.18)}
.ft-drawer.open{transform:none}
.ft-dr-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 18px;border-bottom:3px solid #c3912e;background:#fbf5e8}
.ft-dr-head h2{margin:0;font-size:19px;font-weight:800;color:#1c1f23}
.ft-x{border:0;background:#fff;border-radius:50%;width:38px;height:38px;font-size:26px;line-height:1;color:#1c1f23;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.ft-dr-body{overflow:auto;padding:16px 18px 28px;flex:1}
/* centred popup kept for other pages */
.ft-modal-bg{position:fixed;inset:0;background:rgba(15,23,35,.45);z-index:1070;display:flex;align-items:flex-start;justify-content:center;padding:40px 12px;overflow:auto}
.ft-modal{background:#fff;border-radius:12px;max-width:640px;width:100%;padding:22px 22px 18px;position:relative;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.ft-modal .ft-x{position:absolute;right:10px;top:8px}
/* details panel content */
.tx-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px}
.tx-amt{font-size:30px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.1}
.tx-amt.in{color:#13804a}.tx-amt.out{color:#c62828}.tx-amt.del{color:#3d434b;text-decoration:line-through;text-decoration-thickness:2px}
.tx-sub{color:#1c1f23;font-size:16px;font-weight:600;margin-top:4px}
.tx-sec{border:1.5px solid #e7e1d4;border-radius:12px;padding:12px 14px;margin-bottom:12px}
.tx-h{font-weight:800;font-size:15px;margin:0 0 8px;color:#8a6418;text-transform:uppercase;letter-spacing:.04em}
.tx-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;font-size:15px;font-weight:600}
.tx-grid div.tx-wide{grid-column:1/-1}
.tx-grid div span{display:block;color:#3d434b;font-size:13px;font-weight:700;margin-bottom:1px}
.tx-fees{width:100%;font-size:15px;font-weight:600}
.tx-fees td{padding:6px 0;border-bottom:1px solid #f1ece2}.tx-fees td:last-child{text-align:right;font-variant-numeric:tabular-nums}
.tx-fees tr.tx-sum td{font-weight:800;border-bottom:0;border-top:2px solid #c3912e;font-size:16px}
.tx-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tx-btn{display:flex;align-items:center;justify-content:center;gap:8px;height:46px;border-radius:12px;border:2px solid #c3912e;background:#fff;color:#8a6418;font-weight:700;font-size:15px;cursor:pointer;text-decoration:none!important}
.tx-btn:hover{background:#fbf5e8}
.tx-btn.gold{background:#c3912e;color:#fff}.tx-btn.gold:hover{background:#b8862a}
.tx-btn.danger{border-color:#e3a0a0;color:#a61f1f}
.tx-btn.wide{grid-column:1/-1}
.tx-alert{border-radius:12px;padding:12px 14px;margin-bottom:12px;font-size:15px;font-weight:600;line-height:1.45;background:#fff6e0;border:1.5px solid #f0d58a;color:#3a2a00}
.tx-alert b{display:block;font-size:16px;margin-bottom:4px}
.tx-alert.ok{background:#eaf6ee;border-color:#a9dbb9;color:#0d3d22}
.tx-alert.warn{background:#fdecec;border-color:#efb3b3;color:#5a1010}
.tx-alert ol{margin:6px 0 0 18px;padding:0}
.tx-note{font-size:14px;font-weight:600;color:#3d434b;margin-top:12px}
.tx-sim{display:flex;flex-direction:column;gap:6px}
.tx-sim label{display:flex;align-items:center;gap:8px;font-weight:600;margin:0}
/* tablet */
@media (max-width:1180px){
  .ft-bar{grid-template-columns:1fr}
  .ft-btns{grid-template-columns:repeat(5,minmax(0,1fr))}
  .ft-totals{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* phone: card list instead of a wide table */
@media (max-width:640px){
  .ft{font-size:15px}
  .ft-top{margin-bottom:12px}
  .ft-seg{display:flex;width:100%;height:48px}.ft-seg-btn{flex:1;padding:0 4px;font-size:14px}
  .ft-btns{gap:6px}
  .ft-btn{flex-direction:column;gap:4px;height:58px;font-size:13px;padding:0 2px}
  .ft-btn i{font-size:17px}
  .ft-totals{gap:8px}
  .ft-tot{padding:10px 10px 8px}
  .ft-tot-l{font-size:12.5px}
  .ft-tot-v{font-size:19px;margin-bottom:6px}
  .ft-tot-parts{grid-template-columns:1fr;gap:3px;padding-top:6px}
  .ft-part{display:flex;justify-content:space-between;align-items:center}
  .ft-part span{font-size:12.5px}.ft-part b{font-size:14px}
  .ft-zoom{display:none}
  .ft-msort{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-weight:700;font-size:14px}
  .ft-msort select{flex:1}
  .ft.ft-mobile .ft-scroll{border:0;background:transparent;overflow:visible}
  .ft.ft-mobile .ft-table thead{display:none}
  .ft.ft-mobile .ft-table,.ft.ft-mobile .ft-table tbody,.ft.ft-mobile .ft-table tr,.ft.ft-mobile .ft-table td{display:block;width:100%}
  .ft.ft-mobile .ft-table td{padding:0;border:0;white-space:normal;background:transparent!important}
  .ft.ft-mobile .ft-table tr.ft-row{background:#fff;border:1.5px solid #e7e1d4;border-radius:12px;margin-bottom:8px;padding:12px 14px}
  .ft-pager{justify-content:center;font-size:14px}
  .ft-pp{width:100%;justify-content:center}
  .tx-grid{gap:10px 12px}
  .tx-amt{font-size:27px}
}
.ft-mc{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;align-items:center}
.ft-mc .mc-name{font-weight:800;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ft-mc .mc-amt{font-weight:800;font-size:17px;text-align:right;font-variant-numeric:tabular-nums}
.ft-mc .mc-amt.in{color:#13804a}.ft-mc .mc-amt.out{color:#c62828}
.ft-mc .mc-sub{font-size:14px;font-weight:600;color:#3d434b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ft-mc .mc-right{text-align:right}
@media print{.ft-bar,.ft-pager,.ft-chips,.ft-top{display:none}}

/* ===== Round 4 (2 Nov 2026): clearer type — Inter (self-hosted, latin, variable 400–700), near-black text,
   500 body / 600 amounts + headers, tabular figures for money, no thin or condensed text. ===== */
@font-face{font-family:"Inter";font-style:normal;font-weight:400 700;font-display:swap;src:url("../fonts/inter/inter-latin-var.woff2") format("woff2")}
.ft,.ft-top,.ft-panel,.ft-drawer,.ft-toast,.c02-jumbo h1{font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.ft,.ft-top,.ft-panel,.ft-drawer{--ink:#111111;--ink2:#2e3238}
.ft-table{font-size:14px;font-variant-numeric:tabular-nums;line-height:1.35}
.ft-table td{font-weight:500;color:#111}
.ft-table thead th{font-weight:600;font-size:13px;color:#111;letter-spacing:0}
.ft-table td b,.ft-table td.ft-c-amount,.ft-table td.ft-c-effective,.ft-table td.ft-c-balance,.ft-table td.ft-c-fee{font-weight:600}
.ft-sub{font-size:13px;font-weight:500;color:#2e3238}
.ft-badge,.ft-ga,.ft-type{font-weight:600}
.ft-btn,.ft-seg-btn,.ft-zoom button,.ft-chip,.ft-clear,.ft-link{font-weight:600}
.ft-tot-l{font-weight:600;letter-spacing:.02em}.ft-tot-v{font-weight:700}.ft-tot-sub{font-weight:500}
.ft-pager,.ft-pp,.ft-select,.ft-count{font-weight:500}
.tx-amt{font-weight:700}.tx-h{font-weight:700}.tx-grid{font-weight:500}.tx-grid div span{font-weight:600;color:#2e3238}
.tx-fees{font-weight:500;font-variant-numeric:tabular-nums}.tx-fees tr.tx-sum td{font-weight:700}
.ft-dr-head h2{font-weight:700}.c02-jumbo h1{font-weight:700!important;letter-spacing:-.01em}

/* ===== Round 4: Dates / Filters / Columns popups — one look: title + ×, sections, gold chips, Clear | Apply footer ===== */
.ft-panel{padding:0;border-radius:14px;border:1.5px solid var(--gl);box-shadow:0 18px 40px rgba(40,30,10,.20);max-height:min(78vh,640px);display:flex;flex-direction:column;overflow:hidden;color:#111}
.ft-panel>*{flex-shrink:0}
.ft-panel .ft-ph{position:sticky;top:0;z-index:2;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0;padding:12px 12px 10px 16px;font-size:17px;font-weight:700;border-bottom:1.5px solid #f1ece2}
.ft-panel .ft-ph small{flex:1;font-size:13px;font-weight:500;color:#2e3238}
.ft-px{border:0;background:transparent;width:34px;height:34px;border-radius:50%;font-size:24px;line-height:1;color:#111;cursor:pointer}.ft-px:hover{background:var(--gs)}
.ft-panel-date,.ft-panel-filters{overflow:auto}
.ft-panel-date>:not(.ft-ph):not(.ft-pf),.ft-panel-filters>:not(.ft-ph):not(.ft-pf){margin-left:16px;margin-right:16px}
.ft-panel .ft-collist{padding:4px 16px;overflow:auto;flex-shrink:1}
.ft-sec{font-size:13px;font-weight:700;color:var(--gd);text-transform:uppercase;letter-spacing:.05em;margin:14px 0 8px}
.ft-plist{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
@media (max-width:420px){ .ft-plist{grid-template-columns:1fr 1fr} }
.ft-opt{display:flex;align-items:center;gap:6px;height:40px;padding:0 10px;border:1.5px solid var(--line);border-radius:10px;background:#fff;color:#111;font:inherit;font-size:15px;font-weight:500;text-align:left;cursor:pointer}
.ft-opt:hover{border-color:var(--g);background:#fffaf0}
.ft-opt.on{border-color:var(--g);background:var(--gs);box-shadow:inset 0 0 0 1px var(--g);font-weight:600}
.ft-opt.on:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--g);flex:0 0 8px}
.ft-opt-wide{grid-column:1/-1}.ft-plist .ft-opt-wide[data-m="all"]{grid-column:auto}
@media (max-width:420px){ .ft-plist .ft-opt-wide[data-m="all"]{grid-column:1/-1} }
.ft-lastn{gap:8px}.ft-lastn .ft-inp{height:32px;padding:0 8px;font-size:15px}.ft-lastn .ft-n{width:62px!important;flex:0 0 62px}.ft-lastn .ft-unit{width:auto}
.ft-inp{height:42px;border:1.5px solid var(--line);border-radius:10px;padding:0 10px;font:inherit;font-size:15px;font-weight:500;color:#111;background:#fff;min-width:0;width:100%}
.ft-inp:focus{outline:0;border-color:var(--g);box-shadow:0 0 0 3px rgba(195,145,46,.18)}
.ft-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ft-pair label{margin:0;display:block}.ft-pair label span{display:block;font-size:13px;font-weight:600;color:#2e3238;margin-bottom:4px}
.ft-addtime{display:inline-flex;align-items:center;gap:7px;margin-top:12px;border:0;background:none;padding:4px 0;color:var(--gd);font:inherit;font-size:15px;font-weight:600;cursor:pointer}
.ft-addtime:hover{text-decoration:underline}
.ft-timebox{margin-top:8px}
.ft-hint{font-size:13.5px;font-weight:500;color:#2e3238;margin-top:6px;line-height:1.35}
.ft-fchips{display:flex;flex-wrap:wrap;gap:8px}
.ft-fchip{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border:1.5px solid var(--line);border-radius:999px;background:#fff;color:#111;font:inherit;font-size:14.5px;font-weight:500;cursor:pointer;white-space:nowrap}
.ft-fchip:hover{border-color:var(--g)}
.ft-fchip.on{background:var(--g);border-color:var(--g);color:#fff;font-weight:600}.ft-fchip.on i{font-size:12px}
.ft-panel .ft-fg{margin-bottom:4px}
.ft-panel .ft-pf{position:sticky;bottom:0;display:flex;gap:10px;margin:16px 0 0;padding:12px 16px;border-top:1.5px solid #f1ece2;background:#fff}
.ft-pbtn{height:44px;border-radius:10px;font:inherit;font-size:15px;font-weight:600;cursor:pointer;padding:0 16px}
.ft-pbtn-ghost{flex:0 0 auto;min-width:96px;background:#fff;border:2px solid var(--g);color:var(--gd)}.ft-pbtn-ghost:hover{background:var(--gs)}
.ft-pbtn-gold{flex:1;background:var(--g);border:2px solid var(--g);color:#fff}.ft-pbtn-gold:hover{background:var(--gb);border-color:var(--gb)}
@media (max-width:640px){ .ft-panel{max-height:82vh} }

/* ===== Round 4: Gift Aid timeline in the details panel ===== */
.ga-tl{list-style:none;margin:4px 0 12px;padding:0;display:grid;grid-template-columns:repeat(3,1fr);position:relative}
.ga-tl:before{content:"";position:absolute;left:16.6%;right:16.6%;top:15px;height:3px;background:#ece5d6}
.ga-tl li{position:relative;text-align:center;padding:0 4px}
.ga-tl li i{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;font-style:normal;font-weight:700;font-size:14px;background:#fff;border:2px solid #d9d0bd;color:#2e3238}
.ga-tl li b{display:block;margin-top:6px;font-size:14.5px;font-weight:600;color:#111}
.ga-tl li .ga-d{display:block;font-size:13.5px;font-weight:500;color:#2e3238;font-variant-numeric:tabular-nums}
.ga-tl li i em{font-style:normal;font-size:14px;color:#fff}
.ga-tl li.ga-done i{background:var(--in);border-color:var(--in);color:#fff}
.ga-tl li.ga-now i{background:var(--g);border-color:var(--g);color:#fff;box-shadow:0 0 0 4px rgba(195,145,46,.22)}
.ga-tl li.ga-todo b,.ga-tl li.ga-todo .ga-d{color:#5a5f66}
.ga-upd{display:flex;align-items:center;gap:8px;background:var(--gs);border-radius:9px;padding:8px 10px;font-size:14px;font-weight:600;color:#111;margin-bottom:8px}.ga-upd i{color:var(--gd)}
.tx-fees tr.tx-ga td{color:var(--in);font-weight:600}
.ft-panel[hidden]{display:none!important}

/* ===== Round 5 (2 Nov 2026): calmer sheet ===== */
/* Date & time columns one step down, regular weight, dark grey (#3d434b on white ≈ 10:1, passes AA/AAA) */
.ft-table td.ft-c-date,.ft-table td.ft-c-settled{font-size:13px;font-weight:400;color:#3d434b;line-height:1.3}
.ft-table td.ft-c-date .ft-sub,.ft-table td.ft-c-settled .ft-sub{font-size:12px;font-weight:400;color:#5b6168}
/* Toggle: segmented control — light grey track, the active side a raised gold block (still 48px, rectangular) */
.ft-seg{background:#efede8;border:1.5px solid #e1ddd4;border-radius:12px;padding:4px;gap:4px;height:48px;box-shadow:inset 0 1px 2px rgba(0,0,0,.06)}
.ft-seg-btn{border-radius:9px;color:#2e3238;padding:0 20px;transition:background .15s,color .15s,box-shadow .15s}
.ft-seg-btn+.ft-seg-btn{border-left:0}
.ft-seg-btn:hover{background:rgba(255,255,255,.7)}
.ft-seg-btn.on,.ft-seg-btn.on:hover{background:var(--g);color:#fff;box-shadow:0 1px 3px rgba(60,40,0,.28),0 0 0 1px rgba(138,100,24,.25)}
/* Total boxes: no gold top line; secondary words sit to the RIGHT of the figure (same height in both views) */
.ft-tot,.ft-tot.ft-pend{border-top:1.5px solid var(--line)}
.ft-tot{padding:12px 14px}
.ft-tot-row{display:flex;align-items:center;gap:10px;min-height:44px}
.ft-tot-v{margin:0;white-space:nowrap}
.ft-tot-sub{margin:0;font-size:12.5px;font-weight:500;line-height:1.3;color:#3d434b;white-space:pre-line}
@media (max-width: 760px){
  .ft-tot-row{min-height:40px;gap:6px}
  .ft-tot-sub{font-size:11.5px}
}
/* round 5b: the figure keeps one size in every box; words beside it may wrap to 3 short lines inside a fixed-height row */
.ft-tot-v{font-size:22px}
.ft-tot-row{min-height:48px;gap:9px}
.ft-tot-sub{flex:1 1 auto;min-width:0;font-size:12px;line-height:1.25;white-space:normal}
.ft-tot-sub .ft-sep{display:none}
@media (max-width: 640px){
  /* phones: one row per total — label | figure | words, so nothing sits underneath and the height never changes */
  .ft-totals{grid-template-columns:1fr;gap:6px}
  .ft-tot{display:flex;align-items:center;gap:8px;padding:6px 12px;min-height:50px}
  .ft-tot-l{flex:0 0 92px;font-size:12px}
  .ft-tot-row{flex:1;min-height:36px;gap:8px}
  .ft-tot-v{font-size:18px;margin:0}
  .ft-tot-sub{font-size:11.5px}
}

/* ===== Round 6 (2 Nov 2026): totals never spill out of their box; clearer row separation ===== */
/* The words beside a figure sit on its right while there is room; when there isn't (tablets, narrow laptops,
   phones) they drop neatly under the figure and the box grows. Each phrase ("incl. £166.50 fees", "23 donations",
   "+£8,758.69", "Gift Aid") stays whole, so numbers are never split, clipped or cut with "…". */
.ft-tot{min-width:0;overflow-wrap:anywhere}
.ft-tot-row{flex-wrap:wrap;align-items:center;align-content:center;column-gap:10px;row-gap:2px}
.ft-tot-v{flex:0 1 auto;max-width:100%}
.ft-tot-sub{flex:1 1 0%;min-width:min-content;max-width:100%;white-space:normal;display:flex;flex-wrap:wrap;column-gap:.35em;row-gap:0}
.ft-tot-sub .ft-frag{white-space:nowrap;max-width:100%}
/* fallback for a figure wider than its box (very long amounts on a tiny screen): let it shrink a step rather than spill */
@media (max-width: 1400px){ .ft-tot-v{font-size:21px} }
@media (max-width: 640px){
  .ft-tot{align-items:center}
  .ft-tot-v{font-size:18px}
}
@media (max-width: 380px){
  .ft-tot-l{flex-basis:78px}
  .ft-tot-v{font-size:17px}
}

/* Row separation: soft zebra stripes (white / warm grey) plus a faint divider. Chosen over thicker lines because a row
   that wraps to two or three lines (long names, gateway, notes) reads as one block of colour; 2px lines made the sheet busier. */
.ft-table td{border-top:1px solid #ece6da}
.ft-table tbody tr:first-child td{border-top:0}
.ft-table tbody tr.ft-row:nth-child(even) td{background:#f6f4ef}
.ft-table tbody tr.ft-row.ft-deleted td{background:#efede8}
.ft-table tbody tr.ft-row:hover td{background:#fdf5e2}
.ft-table tbody tr.ft-row.ft-sel td,.ft-table tbody tr.ft-row.ft-sel:hover td{background:#fbecc6}
.ft-table tbody tr.ft-row.ft-sel td:first-child{box-shadow:inset 3px 0 0 var(--g)}
/* phone cards: a touch more space between cards; the selected card gets a gold edge */
@media (max-width: 760px){
  .ft.ft-mobile .ft-table tr.ft-row{margin-bottom:10px;border-color:#e3dccc}
  .ft.ft-mobile .ft-table tr.ft-row:nth-child(even){background:#fff}
  .ft.ft-mobile .ft-table tr.ft-row.ft-sel{border-color:var(--g);box-shadow:0 0 0 1px var(--g)}
  .ft.ft-mobile .ft-table tr.ft-row.ft-deleted{background:#f4f2ee}
}
@media (max-width: 760px){ .ft.ft-mobile .ft-table tbody tr.ft-row.ft-sel td:first-child{box-shadow:none} }
@media (max-width: 380px){ .ft-btns .ft-btn{font-size:12px} }

/* round 7: Gateway = one clean label as a small neutral tag (details live in Name / description, line 2) */
.ft-gw{display:inline-block;padding:2px 6px;border:1px solid #e0dbcf;border-radius:6px;background:#f4f2ec;color:#2e3238;font-size:12.5px;font-weight:600;line-height:1.35;white-space:nowrap;letter-spacing:0}
.ft-table tr:hover .ft-gw{background:#fff}
.ft-gw-other{color:#5b6168}
.ft-mc .mc-det{grid-column:1 / -1;font-size:13.5px;font-weight:500;color:#3d434b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:-1px}
.ft-mc .mc-sub .ft-gw{font-size:12px;padding:1px 6px;margin-right:4px;vertical-align:1px}
.tx-drawer .ft-gw{width:max-content;max-width:100%}
.tx-raw{font-size:12.5px;color:#6b7078;font-weight:500}

/* card line 2 (gateway tag · date · status): wraps onto a second line instead of cutting the date ("02 Nov 20…") */
.ft-mc .mc-sub:not(.mc-right){white-space:normal;text-overflow:clip;display:flex;flex-wrap:wrap;align-items:center;column-gap:5px;row-gap:2px}
.ft-mc .mc-sub:not(.mc-right) .ft-gw{margin-right:0}
