/* 9000INC Pay feature stylesheet. Loaded only on matching routes/markup. */
.invoice-item-row{display: grid;
    grid-template-columns: 1.4fr 2fr .65fr .8fr;
    gap: .6rem;
    align-items: end;
    padding: .8rem;
    border: var(--border);
    border-radius: var(--radius);
    background: rgba(255,255,255,.35);
    margin-bottom: .65rem;}

@media (max-width: 760px) {
.invoice-item-row{grid-template-columns: 1fr;}
}

.invoice-admin-grid{align-items: start;}

.invoice-item-row{display: grid; grid-template-columns: minmax(180px, 1.2fr) minmax(180px, 1fr) 90px 130px auto; gap: .75rem; align-items: end; padding: .75rem; border: 1px solid var(--border, rgba(0,0,0,.12)); border-radius: 1rem; margin-bottom: .75rem; background: rgba(255,255,255,.55);}

.invoice-remove{white-space: nowrap;}

.invoice-preview-panel{position: sticky; top: 1rem;}

.invoice-preview-lines{display: grid; gap: .6rem;}

.invoice-preview-line{display: flex; justify-content: space-between; gap: 1rem; padding: .7rem .8rem; border-radius: .9rem; background: rgba(0,0,0,.045);}

.invoice-history-card summary{cursor: pointer; display: flex; justify-content: space-between; gap: 1rem; align-items: center;}

@media (max-width: 850px) {
.invoice-item-row{grid-template-columns: 1fr;}
.invoice-preview-panel{position: static;}
.invoice-history-card summary{align-items: flex-start; flex-direction: column;}
}

.invoice-item-row{display: grid;
    grid-template-columns: 1.4fr 2fr .65fr .8fr;
    gap: .6rem;
    align-items: end;
    padding: .8rem;
    border: var(--border);
    border-radius: var(--radius);
    background: rgba(255,255,255,.35);
    margin-bottom: .65rem;}

@media (max-width: 760px) {
.invoice-item-row{grid-template-columns: 1fr;}
}

.invoice-admin-grid{align-items: start;}

.invoice-item-row{display: grid; grid-template-columns: minmax(180px, 1.2fr) minmax(180px, 1fr) 90px 130px auto; gap: .75rem; align-items: end; padding: .75rem; border: 1px solid var(--border, rgba(0,0,0,.12)); border-radius: 1rem; margin-bottom: .75rem; background: rgba(255,255,255,.55);}

.invoice-remove{white-space: nowrap;}

.invoice-preview-panel{position: sticky; top: 1rem;}

.invoice-preview-lines{display: grid; gap: .6rem;}

.invoice-preview-line{display: flex; justify-content: space-between; gap: 1rem; padding: .7rem .8rem; border-radius: .9rem; background: rgba(0,0,0,.045);}

.invoice-history-card summary{cursor: pointer; display: flex; justify-content: space-between; gap: 1rem; align-items: center;}

@media (max-width: 850px) {
.invoice-item-row{grid-template-columns: 1fr;}
.invoice-preview-panel{position: static;}
.invoice-history-card summary{align-items: flex-start; flex-direction: column;}
}

.payment-status-grid, .balance-topup-grid{display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: .9rem;}

.payment-webhook-box{display: grid;
    gap: .45rem;
    padding: .9rem 1rem;
    border: 1px solid rgba(75, 45, 61, .14);
    border-radius: 18px;
    background: rgba(255, 255, 255, .72);
    box-shadow: 0 12px 28px rgba(75, 45, 61, .08);
    overflow-wrap: anywhere;}

.payment-webhook-box code{display: block;
    padding: .65rem .75rem;
    border-radius: 12px;
    background: rgba(35, 215, 255, .12);
    color: var(--ink, #3d2630);
    font-weight: 800;}

.payment-provider-roadmap, .payment-method-list{display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin: .7rem 0 0;}

.payment-provider-roadmap .status-pill, .payment-method-chip{border-radius: 999px;
    border: 1px solid rgba(75, 45, 61, .16);
    background: rgba(255, 255, 255, .72);
    box-shadow: 0 8px 18px rgba(75, 45, 61, .06);}

.invoice-balance-preview{display: grid;
    gap: .5rem;
    margin-top: .75rem;}

.invoice-balance-box{line-height: 1.55;}

.invoice-balance-box.success{border-color: rgba(88, 214, 141, .45);}

.invoice-balance-box.danger{border-color: rgba(255, 99, 132, .65);}

.balance-topup-grid.single{grid-template-columns: minmax(240px, 760px);
    justify-content: start;}

.balance-topup-card{max-width: 760px;}

.invoice-line-summary{display: block;
    margin-top: .25rem;}

.invoice-history-card .receipt-source-pill{margin-left: 0.35rem;}

.payment-method-list .payment-method-chip.good{border-color: rgba(65, 214, 139, 0.5);}

.ninekpay-hero{display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;}

.ninekpay-tabs .tab-panel, .ninekpay-admin-tabs .tab-panel{min-width: 0;}

.ninekpay-preview{border-color: rgba(96, 165, 250, 0.34);
    background: rgba(59, 130, 246, 0.08);}

.ninekpay-preview p:last-child, .ninekpay-request-card p:last-child{margin-bottom: 0;}

.ninekpay-quick-buttons{display: flex;
    flex-wrap: wrap;
    gap: .5rem;}

.ninekpay-request-card{margin-bottom: 1rem;}

.ninekpay-request-card .button-row{align-items: center;
    flex-wrap: wrap;}

.ninekpay-admin-tabs table td form.stack.compact{min-width: 170px;
    margin-bottom: .45rem;}

.ninekpay-admin-tabs table td form.stack.compact:last-child{margin-bottom: 0;}

.ninekpay-admin-tabs input, .ninekpay-admin-tabs textarea, .ninekpay-admin-tabs select{max-width: 100%;}

@media (max-width: 780px) {
.ninekpay-hero{flex-direction: column;}
.ninekpay-admin-tabs table td form.stack.compact{min-width: 0;}
}

.ninekpay-availability-card, .ninekpay-flow-steps span{border: 1px solid rgba(255,255,255,.12);
    border-radius: 18px;
    background: rgba(255,255,255,.045);
    padding: .85rem;}

.ninekpay-availability-card span, .ninekpay-flow-steps span{display: block;
    font-size: .78rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--muted, #9ca3af);}

.ninekpay-availability-card strong{display: block;
    margin-top: .15rem;
    font-size: 1.25rem;
    color: var(--text, #f8fafc);}

.ninekpay-availability-card small{display: block;
    margin-top: .15rem;
    color: var(--muted, #9ca3af);
    font-style: normal;}

.ninekpay-hero-upgraded{align-items: stretch;}

.ninekpay-hero-copy{min-width: 0;
    flex: 1 1 auto;}

.ninekpay-availability-card{flex: 0 0 min(320px, 100%);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: .35rem;
    background: linear-gradient(135deg, rgba(34,197,94,.12), rgba(59,130,246,.10));}

.ninekpay-availability-card strong{font-size: clamp(2rem, 5vw, 3.25rem);
    line-height: 1;}

.ninekpay-progress{position: relative;
    overflow: hidden;
    width: 100%;
    height: 10px;
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.10);}

.ninekpay-progress span{display: block;
    min-width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, rgba(34,197,94,.88), rgba(96,165,250,.88));}

.ninekpay-metrics .stat-card{min-height: 118px;}

.ninekpay-flow-card{margin-top: 1rem;}

.ninekpay-flow-steps{display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;}

.ninekpay-flow-steps strong{display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.65rem;
    height: 1.65rem;
    margin-right: .4rem;
    border-radius: 999px;
    background: rgba(255,255,255,.14);
    color: var(--text, #f8fafc);}

.ninekpay-request-panel, .ninekpay-methods-panel{border-color: rgba(96,165,250,.24);}

.ninekpay-request-form label, .ninekpay-methods-panel label{min-width: 0;}

.ninekpay-method-card{display: grid;
    gap: .45rem;
    align-content: start;}

.ninekpay-method-card .status-pill{width: fit-content;}

.ninekpay-request-card .ninekpay-progress{margin: .85rem 0 .45rem;}

.ninekpay-tabs .tab-links, .ninekpay-admin-tabs .tab-links{align-items: center;}

@media (max-width: 900px) {
.ninekpay-flow-steps{grid-template-columns: 1fr;}
.ninekpay-hero-upgraded{align-items: stretch;}
.ninekpay-availability-card{flex-basis: auto;}
}

.ninekpay-hero-upgraded, .panel.ninekpay-hero-upgraded{display: grid !important;
    grid-template-columns: minmax(0, 1.25fr) minmax(280px, .55fr);
    align-items: stretch;
    gap: 1.25rem;
    overflow: visible !important;
    min-height: auto !important;
    padding: clamp(1.1rem, 2.4vw, 2rem) !important;}

.ninekpay-hero-copy, .ninekpay-hero-copy .lead, .ninekpay-hero-upgraded h1, .ninekpay-hero-upgraded p{min-width: 0;
    max-width: none;
    overflow: visible;
    overflow-wrap: anywhere;
    white-space: normal;}

.ninekpay-hero-copy .button-row, .ninekpay-hero-upgraded .button-row{flex-wrap: wrap;}

.ninekpay-availability-card{min-width: 0;
    overflow: visible;}

.ninekpay-status-grid{align-items: stretch;}

@media (max-width: 920px) {
.ninekpay-hero-upgraded, .panel.ninekpay-hero-upgraded{grid-template-columns: 1fr;}
}

.wallet-reference-link{display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .22rem .55rem;
    border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--brand, #7c3aed) 36%, rgba(255,255,255,.24));
    background: color-mix(in srgb, var(--brand, #7c3aed) 14%, transparent);
    color: var(--ink, #fff);
    font-weight: 900;
    text-decoration: none;
    white-space: nowrap;}

.wallet-reference-link:hover, .wallet-reference-link:focus-visible{transform: translateY(-1px);
    box-shadow: 0 8px 20px color-mix(in srgb, var(--brand, #7c3aed) 22%, transparent);}

.invoice-history-card:target{outline: 3px solid color-mix(in srgb, var(--brand, #7c3aed) 72%, #fff 8%);
    box-shadow: 0 0 0 6px color-mix(in srgb, var(--brand, #7c3aed) 18%, transparent), var(--shadow);}

.payments-invoices-hero .section-head{align-items:flex-start;}

.payments-invoices-hero .lead{max-width:880px;}

.payments-invoices-shell{gap:1.1rem;}

.payments-invoices-shell .admin-tab-content{min-width:0;}

.payments-invoices-shell .invoice-admin-grid{grid-template-columns:minmax(0, 1.35fr) minmax(280px, .65fr);
    align-items:start;}

.payments-invoices-shell .invoice-item-row, .invoice-detail-page .invoice-item-row{display:grid;
    grid-template-columns:minmax(170px, 1.15fr) minmax(170px, 1fr) minmax(72px, .35fr) minmax(120px, .55fr) minmax(210px, .8fr) auto;
    gap:.75rem;
    align-items:end;
    padding:.9rem;
    border:1px solid rgba(148, 163, 184, .26);
    border-radius:18px;
    background:rgba(255,255,255,.62);
    box-shadow:0 12px 28px rgba(15,23,42,.06);}

.payments-invoices-shell .invoice-item-row label, .invoice-detail-page .invoice-item-row label{min-width:0;}

.payments-invoices-shell .invoice-item-row .invoice-remove, .invoice-detail-page .invoice-item-row .invoice-remove{align-self:end;
    min-height:42px;}

.invoice-balance-preview{display:grid;
    gap:.55rem;
    margin-top:.75rem;}

.invoice-balance-box{border:1px solid rgba(148, 163, 184, .28);
    border-radius:16px;
    padding:.75rem .85rem;
    background:rgba(255,255,255,.58);}

.invoice-balance-box strong, .invoice-balance-box span{display:block;}

.invoice-balance-box span{color:var(--muted);
    font-size:.84rem;
    font-weight:850;
    text-transform:uppercase;
    letter-spacing:.04em;}

.invoice-balance-box strong{color:var(--ink);
    font-size:1.05rem;
    margin-top:.15rem;}

.invoice-balance-box.is-danger, .invoice-preview-panel.is-danger, .invoice-preview-panel.has-error{border-color:rgba(239,68,68,.45);
    box-shadow:0 0 0 1px rgba(239,68,68,.14), 0 16px 38px rgba(127,29,29,.12);}

.invoice-preview-panel.has-error .invoice-balance-box:first-child strong{color:var(--danger, #dc2626);}

.payments-invoices-report-cards{margin:1rem 0;}

.invoice-list-card{grid-template-columns:minmax(0, 1fr) auto;}

.wallet-reference-link{font-weight:900;}

.payment-webhook-box code{display:block;
    max-width:100%;
    overflow:auto;
    white-space:nowrap;}

@media (max-width: 1120px) {
.payments-invoices-shell .invoice-admin-grid{grid-template-columns:1fr;}
.payments-invoices-shell .invoice-preview-panel{position:static;}
.payments-invoices-shell .invoice-item-row, .invoice-detail-page .invoice-item-row{grid-template-columns:repeat(2, minmax(0, 1fr));}
.payments-invoices-shell .invoice-item-row .invoice-remove, .invoice-detail-page .invoice-item-row .invoice-remove{width:100%;}
}

@media (max-width: 680px) {
.payments-invoices-shell .invoice-item-row, .invoice-detail-page .invoice-item-row, .invoice-list-card{grid-template-columns:1fr;}
.payments-invoices-metrics{grid-template-columns:1fr;}
}

.transaction-ledger-container{border: 1px solid color-mix(in srgb, var(--brand, #7c3aed) 18%, rgba(255,255,255,.18));
    border-radius: 24px;
    background: linear-gradient(135deg, color-mix(in srgb, var(--surface, #fff) 88%, transparent), color-mix(in srgb, var(--brand, #7c3aed) 6%, transparent));
    box-shadow: 0 16px 42px rgba(31, 23, 65, .08);
    overflow: hidden;}

.transaction-reference-cell .wallet-reference-link{display: inline-flex;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: normal;
    line-height: 1.25;}

.account-balance-transaction-panel .transaction-ledger-container{margin-top: .85rem;}

.ninekpay-queue-panel, .ninekpay-settings-container{border: 1px solid rgba(112, 100, 145, 0.18);
    box-shadow: 0 18px 45px rgba(32, 24, 58, 0.08);}

.ninekpay-queue-table td, .ninekpay-queue-table th{vertical-align: top;}

.ninekpay-queue-table td:nth-child(3), .ninekpay-queue-table td:nth-child(4), .ninekpay-queue-table td:nth-child(5){min-width: 170px;}

.ninekpay-queue-limit{background: linear-gradient(90deg, rgba(255, 236, 170, 0.14), rgba(255,255,255,0));}

.ninekpay-settings-stack{gap: 1rem;}

.ninekpay-settings-container > .section-head{align-items: flex-start;}

.ninekpay-settings-container .admin-form-grid{align-items: end;}

@media (max-width: 900px) {
.ninekpay-queue-table td:nth-child(3), .ninekpay-queue-table td:nth-child(4), .ninekpay-queue-table td:nth-child(5){min-width: 0;}
}

.ninekpay-action-list, .ninekpay-history-feed{display: grid;
    gap: 0.85rem;
    min-width: 0;}

.ninekpay-action-card, .ninekpay-history-card, .ninekpay-empty-card{display: grid;
    gap: 0.85rem;
    min-width: 0;
    width: 100%;
    padding: 1rem;
    border: 1px solid color-mix(in srgb, var(--text, #241b43) 12%, transparent);
    border-radius: 18px;
    background: color-mix(in srgb, var(--panel, #fff) 94%, transparent);
    box-shadow: 0 12px 34px rgba(32, 24, 58, 0.08);}

.ninekpay-action-card{grid-template-columns: minmax(150px, 0.75fr) minmax(135px, 0.7fr) minmax(170px, 0.8fr) minmax(170px, 0.9fr) minmax(220px, 1fr);
    align-items: start;}

.ninekpay-limit-card{background: linear-gradient(90deg, rgba(255, 236, 170, 0.12), rgba(255,255,255,0.85));}

.ninekpay-action-card > div, .ninekpay-history-card > div{min-width: 0;
    overflow-wrap: anywhere;}

.ninekpay-action-summary, .ninekpay-history-card > div:first-child{display: grid;
    gap: 0.25rem;}

.ninekpay-action-summary strong, .ninekpay-history-card strong{font-size: 1rem;
    line-height: 1.15;}

.ninekpay-action-summary small, .ninekpay-action-card small, .ninekpay-history-card small, .ninekpay-history-card time, .ninekpay-card-label{display: block;
    color: var(--muted, #6f6689);
    font-weight: 750;}

.ninekpay-card-label{margin-bottom: 0.28rem;
    text-transform: uppercase;
    letter-spacing: 0.055em;
    font-size: 0.74rem;}

.ninekpay-action-card .form-help, .ninekpay-action-card .small, .ninekpay-history-card .small{margin: 0.35rem 0 0;
    line-height: 1.38;}

.ninekpay-action-controls{display: grid;
    gap: 0.55rem;}

.ninekpay-action-controls form.stack.compact, .ninekpay-admin-tabs .ninekpay-action-controls form.stack.compact{min-width: 0;
    width: 100%;
    margin: 0;}

.ninekpay-action-controls .button, .ninekpay-action-controls input, .ninekpay-action-controls select{width: 100%;}

.ninekpay-history-card{grid-template-columns: minmax(170px, 0.85fr) minmax(260px, 1.4fr) minmax(120px, 0.45fr);
    align-items: start;}

.ninekpay-history-card .status-pill{white-space: normal;
    text-align: left;
    line-height: 1.3;}

.ninekpay-tier-settings-table th, .ninekpay-tier-settings-table td{vertical-align: middle;}

.ninekpay-tier-settings-table td:nth-child(4){min-width: 190px;}

.ninekpay-tier-settings-table td:nth-child(5){min-width: 220px;}

.ninekpay-tier-settings-table input[type="number"]{min-width: 110px;}

.ninekpay-tier-settings-table label.check.compact{display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0;
    font-weight: 800;}

.ninekpay-admin-tabs .table-wrap, .ninekpay-queue-panel{max-width: 100%;
    min-width: 0;}

@media (max-width: 1180px) {
.ninekpay-action-card{grid-template-columns: repeat(2, minmax(0, 1fr));}
.ninekpay-action-controls{grid-column: 1 / -1;}
}

@media (max-width: 760px) {
.ninekpay-action-card, .ninekpay-history-card{grid-template-columns: 1fr;}
}

.transaction-reference-cell .wallet-reference-link{display: inline-flex;
    width: auto;
    max-width: 100%;
    overflow-wrap: break-word;
    word-break: normal;}

.ninekpay-action-card, .ninekpay-limit-card{grid-template-columns: minmax(150px, .75fr) minmax(170px, .85fr) minmax(180px, .9fr) minmax(260px, 1.35fr) minmax(190px, .8fr);
    overflow: hidden;}

.ninekpay-action-card > div, .ninekpay-history-card > div{max-width: 100%;
    overflow-wrap: break-word;
    word-break: normal;}

.ninekpay-limit-card > div:nth-child(4){grid-column: span 1;}

.ninekpay-limit-card > div:nth-child(5){grid-column: span 1;}

.ninekpay-action-controls{min-width: 0;
    max-width: 100%;}

.ninekpay-action-controls input, .ninekpay-action-controls select, .ninekpay-action-controls textarea, .ninekpay-action-controls .button, .ninekpay-action-controls button{min-width: 0;
    max-width: 100%;}

@media (max-width: 1320px) {
.ninekpay-action-card, .ninekpay-limit-card{grid-template-columns: minmax(160px, .8fr) minmax(0, 1fr) minmax(190px, .85fr);}
.ninekpay-action-controls{grid-column: auto;}
}

@media (max-width: 820px) {
.ninekpay-action-card, .ninekpay-limit-card, .ninekpay-history-card{grid-template-columns: 1fr;}
}

/* Patch 613: keep admin invoice item rows inside the card and make item cloning reliable. */
.payments-invoices-shell .invoice-admin-grid,
.invoice-detail-page .invoice-admin-grid{grid-template-columns:minmax(0, 1fr);}

.payments-invoices-shell .invoice-items,
.invoice-detail-page .invoice-items,
.payments-invoices-shell [data-invoice-items],
.invoice-detail-page [data-invoice-items]{min-width:0;max-width:100%;}

.payments-invoices-shell .invoice-item-row,
.invoice-detail-page .invoice-item-row{grid-template-columns:minmax(150px, 1.15fr) minmax(150px, 1fr) minmax(72px, .42fr) minmax(128px, .58fr);max-width:100%;overflow:visible;align-items:end;}

.payments-invoices-shell .invoice-item-row label,
.invoice-detail-page .invoice-item-row label{min-width:0;}

.payments-invoices-shell .invoice-item-row label:nth-of-type(5),
.invoice-detail-page .invoice-item-row label:nth-of-type(5){grid-column:1 / span 3;}

.payments-invoices-shell .invoice-item-row input,
.invoice-detail-page .invoice-item-row input,
.payments-invoices-shell .invoice-item-row select,
.invoice-detail-page .invoice-item-row select,
.payments-invoices-shell .invoice-item-row .hybrid-choice,
.invoice-detail-page .invoice-item-row .hybrid-choice,
.payments-invoices-shell .invoice-item-row .hybrid-choice-button,
.invoice-detail-page .invoice-item-row .hybrid-choice-button{width:100%;max-width:100%;min-width:0;}

.payments-invoices-shell .invoice-item-row .invoice-remove,
.invoice-detail-page .invoice-item-row .invoice-remove{grid-column:4 / 5;align-self:end;justify-self:stretch;width:100%;min-width:0;min-height:44px;padding:.65rem .8rem;line-height:1.1;white-space:nowrap;writing-mode:horizontal-tb;text-orientation:mixed;transform:none;text-align:center;}

@media (max-width: 760px){
    .payments-invoices-shell .invoice-item-row,
    .invoice-detail-page .invoice-item-row{grid-template-columns:1fr;}
    .payments-invoices-shell .invoice-item-row label:nth-of-type(5),
    .invoice-detail-page .invoice-item-row label:nth-of-type(5),
    .payments-invoices-shell .invoice-item-row .invoice-remove,
    .invoice-detail-page .invoice-item-row .invoice-remove{grid-column:1 / -1;}
}

/* Account balance display-currency selector. Conversion is display-only; checkout records retain their charged currency. */
.account-balance-currency-head{align-items:flex-start;gap:1rem;}
.account-balance-currency-actions{display:flex;align-items:flex-end;justify-content:flex-end;gap:.65rem;flex-wrap:wrap;}
.account-balance-currency-form{display:flex;align-items:flex-end;gap:.5rem;flex-wrap:wrap;margin:0;}
.account-balance-currency-control{display:grid;gap:.25rem;min-width:220px;margin:0;}
.account-balance-currency-control > span{font-size:.78rem;font-weight:800;letter-spacing:.02em;color:var(--muted);}
.account-balance-currency-control select{width:100%;min-height:40px;}
.account-balance-currency-status{margin:.8rem 0 0;}
.account-balance-currency-status.is-danger{color:var(--danger, #b42318);font-weight:700;}
[data-account-balance-usd]{font-variant-numeric:tabular-nums;white-space:nowrap;}
@media (max-width:760px){
.account-balance-currency-head{display:grid;}
.account-balance-currency-actions{justify-content:flex-start;align-items:stretch;}
.account-balance-currency-form{width:100%;align-items:stretch;}
.account-balance-currency-control{min-width:0;flex:1 1 220px;}
}
