/* ==========================================================================
   OXIN RTL v3 — billing: invoices list, mass pay, add funds.
   ========================================================================== */
.ox-inv-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s6);align-items:center;overflow:hidden;isolation:isolate;
  margin-block-end:var(--s4);padding:var(--s6);border-radius:var(--r-lg);color:#E2E8F0;background:linear-gradient(135deg,#0B1424,#0E1B33 60%,#0B2230)}
.ox-inv-hero.is-due{background:linear-gradient(135deg,#0B1424,#1F1A2E 55%,#2A1A1A)}
.ox-inv-hero-grid{position:absolute;inset:0;z-index:-1;opacity:.4;background:repeating-linear-gradient(0deg,transparent 0 22px,rgba(255,255,255,.05) 22px 23px);
  -webkit-mask-image:linear-gradient(to left,#000,transparent 70%);mask-image:linear-gradient(to left,#000,transparent 70%)}
.ox-body .ox-inv-title{margin:var(--s3) 0 0;font-size:var(--fs-800);font-weight:800;color:#F8FAFC}
.ox-inv-sub{margin:4px 0 0;color:#94A3B8;max-inline-size:52ch}
.ox-inv-hero-actions{display:flex;flex-wrap:wrap;gap:8px;margin-block-start:var(--s4)}
.ox-inv-meter{display:grid;grid-template-columns:auto auto;gap:10px}
.ox-inv-meter-i{display:flex;flex-direction:column;gap:2px;min-inline-size:170px;padding:var(--s4);border-radius:14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1)}
.ox-inv-meter-i span{font-size:var(--fs-100);color:#94A3B8;font-weight:600}
.ox-inv-meter-i b{font-size:var(--fs-700);font-weight:900;color:#fff;line-height:1.3;font-variant-numeric:tabular-nums}
.ox-inv-meter-i small{font-size:var(--fs-100);color:#94A3B8}
.ox-inv-hero.is-due .ox-inv-meter-i.is-due{background:rgba(248,113,113,.12);border-color:rgba(248,113,113,.35)}
.ox-inv-hero.is-due .ox-inv-meter-i.is-due b{color:#FCA5A5}

.ox-receipts{display:grid;gap:12px}
.ox-receipt{--c:var(--ink-3);position:relative;display:flex;align-items:stretch;border-radius:16px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-1);
  transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .2s;animation:ox-up .45s var(--ease) both}
.ox-receipt:nth-child(2){animation-delay:.04s}.ox-receipt:nth-child(3){animation-delay:.08s}.ox-receipt:nth-child(n+4){animation-delay:.12s}
.ox-receipt[hidden]{display:none}
.ox-receipt:hover{transform:translateY(-2px);box-shadow:var(--sh-2);border-color:var(--line-2)}
.ox-receipt.is-unpaid,.ox-receipt.is-overdue,.ox-receipt.is-payment-pending{--c:var(--red)}
.ox-receipt.is-paid{--c:var(--teal)}
.ox-receipt::before{content:"";position:absolute;inset-block:14px;inset-inline-start:-1px;inline-size:4px;border-radius:0 4px 4px 0;background:var(--c)}
.ox-receipt-main{flex:1;min-inline-size:0;display:grid;grid-template-columns:auto minmax(110px,.8fr) minmax(0,1.6fr) minmax(0,1fr) auto;align-items:center;gap:var(--s4);
  padding:16px 20px;color:var(--ink)!important;text-decoration:none!important}
.ox-receipt-ic{display:grid;place-items:center;inline-size:44px;block-size:44px;border-radius:12px;background:color-mix(in srgb,var(--c) 12%,var(--surface));color:var(--c);font-size:var(--fs-500)}
.ox-receipt-no,.ox-receipt-amt{display:flex;flex-direction:column;line-height:1.5}
.ox-receipt small{font-size:var(--fs-100);color:var(--ink-3);font-weight:600}
.ox-receipt-no b{font-size:var(--fs-500);font-weight:900}
.ox-receipt-amt b{font-size:var(--fs-400);font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums}
.ox-receipt-dates{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}
.ox-receipt-dates>span{display:flex;flex-direction:column;line-height:1.5}
.ox-receipt-dates b{font-size:var(--fs-200);font-weight:700}
.ox-receipt-dates em{font-style:normal;font-size:var(--fs-100);font-weight:700;color:var(--amber-ink)}
.ox-receipt-dates em.is-late{color:var(--red-ink)}
/* the perforation between the receipt body and its stub */
.ox-receipt-cut{position:relative;flex:none;inline-size:0;border-inline-start:2px dashed var(--line-2);margin-block:12px}
.ox-receipt-cut::before,.ox-receipt-cut::after{content:"";position:absolute;inset-inline-start:-11px;inline-size:20px;block-size:20px;border-radius:50%;background:var(--bg);border:1px solid var(--line)}
.ox-receipt-cut::before{inset-block-start:-24px;clip-path:inset(50% 0 0 0)}
.ox-receipt-cut::after{inset-block-end:-24px;clip-path:inset(0 0 50% 0)}
.ox-receipt-acts{flex:none;display:flex;align-items:center;gap:8px;padding:12px 18px}
.ox-receipt-pay,.ox-receipt-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;block-size:40px;padding-inline:14px;border-radius:10px;font-size:var(--fs-200);font-weight:800;text-decoration:none!important;white-space:nowrap;transition:filter .15s,background .15s,color .15s}
.ox-receipt-pay{background:var(--red);color:#fff!important;box-shadow:0 10px 20px -12px var(--red)}
.ox-receipt-pay:hover{filter:brightness(1.08)}
.ox-receipt-btn{background:var(--surface-2);color:var(--ink-2)!important}
.ox-receipt-btn:hover{background:var(--blue-tint);color:var(--blue)!important}
.ox-receipt-btn.is-icon{inline-size:40px;padding:0}

/* mass pay / add funds */
.ox-pay-head{display:flex;align-items:center;gap:var(--s4);margin-block-end:var(--s5)}
.ox-body .ox-pay-head h1{margin:0;font-size:var(--fs-700)}
.ox-pay-head p{margin:4px 0 0;color:var(--ink-3)}
.ox-cancel-ic.is-blue{background:var(--blue-tint);color:var(--blue)}
.ox-pay-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--s5);align-items:start}
.ox-pay-grid.is-funds{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.ox-pay-list{display:grid;gap:12px}
.ox-pay-inv{border-radius:16px;background:var(--surface);border:1px solid var(--line);overflow:hidden;box-shadow:var(--sh-1)}
.ox-pay-inv header{display:flex;align-items:center;gap:12px;padding:12px 16px;border-block-end:1px dashed var(--line-2);background:var(--surface-2)}
.ox-pay-inv header b{flex:1;font-weight:800}
.ox-pay-inv header .ox-receipt-ic{--c:var(--red);inline-size:36px;block-size:36px;font-size:var(--fs-300)}
.ox-pay-inv ul{margin:0;padding:6px 16px;list-style:none}
.ox-pay-inv li{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-block-end:1px solid var(--line);font-size:var(--fs-300)}
.ox-pay-inv li:last-child{border-block-end:0}
.ox-pay-inv li b{white-space:nowrap}
.ox-pay-side{position:sticky;inset-block-start:96px}
.ox-pay-card{padding:var(--s5)!important}
.ox-body .ox-pay-card h2{margin:0 0 var(--s3);font-size:var(--fs-500)}
.ox-pay-sum{margin:0}
.ox-pay-sum div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-block-end:1px dashed var(--line);font-size:var(--fs-200)}
.ox-pay-sum dt{font-weight:500;color:var(--ink-3)}
.ox-pay-sum dd{margin:0;font-weight:700}
.ox-pay-total{display:flex;flex-direction:column;align-items:center;gap:2px;margin-block:var(--s4);padding:var(--s4);border-radius:14px;background:linear-gradient(135deg,#0B1424,#13284A);color:#94A3B8;font-size:var(--fs-200)}
.ox-pay-total b{font-size:var(--fs-800);font-weight:900;color:#fff;line-height:1.3}
.ox-gw{display:grid;gap:8px;margin:0 0 var(--s4);padding:0;border:0}
.ox-gw legend{margin-block-end:8px;font-size:var(--fs-200);font-weight:700;color:var(--ink-2)}
.ox-gw-i{position:relative;margin:0;cursor:pointer}
.ox-gw-i input{position:absolute;opacity:0}
.ox-gw-i span{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;border:1.5px solid var(--line-2);background:var(--surface);transition:all .15s}
.ox-gw-i span i{display:grid;place-items:center;inline-size:34px;block-size:34px;border-radius:10px;background:var(--surface-2);color:var(--ink-3)}
.ox-gw-i span::after{content:"";margin-inline-start:auto;inline-size:18px;block-size:18px;border-radius:50%;border:2px solid var(--line-2);transition:all .15s}
.ox-gw-i input:checked+span{border-color:var(--blue);background:var(--blue-tint);box-shadow:0 0 0 1px var(--blue)}
.ox-gw-i input:checked+span i{background:var(--blue);color:#fff}
.ox-gw-i input:checked+span::after{border:5px solid var(--blue);background:#fff}
.ox-gw-i input:focus-visible+span{outline:2px solid var(--ring);outline-offset:2px}
.ox-body .ox-pay-btn{inline-size:100%;block-size:54px;border-radius:14px}

.ox-wallet{position:relative;overflow:hidden;isolation:isolate;padding:var(--s6);border-radius:22px;color:#E2E8F0;min-block-size:300px;
  background:radial-gradient(120% 90% at 100% 0%,#1463D8 0%,transparent 55%),radial-gradient(90% 80% at 0% 100%,#0E9384 0%,transparent 55%),linear-gradient(135deg,#0B1424,#13284A);
  box-shadow:0 30px 60px -30px rgba(20,99,216,.55)}
.ox-wallet::after{content:"";position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(115deg,transparent 0 18px,rgba(255,255,255,.035) 18px 19px)}
.ox-wallet-chip{inline-size:46px;block-size:34px;border-radius:8px;background:linear-gradient(135deg,#F7D774,#C9962B);box-shadow:inset 0 0 0 1px rgba(0,0,0,.2)}
.ox-wallet-brand{position:absolute;inset-block-start:var(--s6);inset-inline-end:var(--s6);font-weight:800;color:#fff}
.ox-wallet-brand small{display:block;font:700 9px/1 var(--mono);color:#94A3B8;letter-spacing:.3em;text-align:end}
.ox-body .ox-wallet h1{margin:var(--s5) 0 0;font-size:var(--fs-800);color:#fff}
.ox-wallet p{margin:4px 0 var(--s4);color:#CBD5E1}
.ox-wallet-limits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}
.ox-wallet-limits div{padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1)}
.ox-wallet-limits dt{font-size:var(--fs-100);font-weight:600;color:#94A3B8}
.ox-wallet-limits dd{margin:2px 0 0;font-size:var(--fs-200);font-weight:800;color:#fff}
.ox-fund-l{font-size:var(--fs-300);font-weight:700}
.ox-fund-in{display:flex;align-items:center;gap:8px;margin-block:6px 10px;padding-inline:16px;border-radius:14px;border:1.5px solid var(--line-2);background:var(--surface);transition:border-color .15s,box-shadow .15s}
.ox-fund-in:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-tint)}
.ox-fund-in input{flex:1;min-inline-size:0;block-size:58px;border:0;background:none;outline:0;color:var(--ink);font:900 var(--fs-700) var(--font);text-align:start}
.ox-fund-in span{font-weight:700;color:var(--ink-3)}
.ox-fund-picks{display:flex;flex-wrap:wrap;gap:6px;margin-block-end:var(--s4)}
.ox-fund-picks button{block-size:34px;padding-inline:12px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface-2);color:var(--ink-2);font:700 var(--fs-200) var(--font);cursor:pointer;transition:all .15s}
.ox-fund-picks button:hover,.ox-fund-picks button.is-on{border-color:var(--blue);background:var(--blue-tint);color:var(--blue)}

/* Virtualizor's own loading bar while its panel boots */
#virtualizor_load_div .progress-bar-value{background:linear-gradient(90deg,var(--teal),var(--blue))!important;border-radius:4px}
.ox-module-area #virtualizor_manager{min-block-size:420px}

@media (max-width:1100px){
  .ox-pay-grid,.ox-pay-grid.is-funds{grid-template-columns:1fr}
  .ox-pay-side{position:static}
  .ox-inv-hero{grid-template-columns:1fr}
  .ox-receipt-main{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"ic no st" "dates dates amt"}
  .ox-receipt-ic{grid-area:ic}.ox-receipt-no{grid-area:no}.ox-receipt-st{grid-area:st}.ox-receipt-dates{grid-area:dates}.ox-receipt-amt{grid-area:amt}
}
@media (max-width:640px){
  .ox-receipt{flex-direction:column}
  .ox-receipt-cut{inline-size:auto;border-inline-start:0;border-block-start:2px dashed var(--line-2);margin:0 12px}
  .ox-receipt-cut::before,.ox-receipt-cut::after{display:none}
  .ox-receipt-acts{justify-content:flex-end}
  .ox-receipt-main{grid-template-areas:"ic no st" "dates dates dates" "amt amt amt"}
  .ox-inv-meter{grid-template-columns:1fr 1fr}
  .ox-inv-meter-i{min-inline-size:0}
  .ox-wallet-limits{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){.ox-receipt{animation:none}}
.ox-body .ox-pay-btn{display:flex!important;flex-direction:row!important;align-items:center;justify-content:center;gap:10px}
.ox-pay-card .ox-help{display:flex;gap:6px;margin:var(--s3) 0 0;font-size:var(--fs-100);color:var(--ink-3);line-height:1.8}
.ox-receipt-acts{min-inline-size:220px;justify-content:flex-end}
@media (max-width:640px){.ox-receipt-acts{min-inline-size:0}}
