.taypay-app{--tp-primary:#143c6b;--tp-accent:#1b7f6b;--tp-bg:#f4f7fb;--tp-border:#dfe6ee;--tp-text:#172033;--tp-muted:#687386;font-family:Tahoma,Arial,sans-serif;color:var(--tp-text);max-width:920px;margin:32px auto}.taypay-app *{box-sizing:border-box}.taypay-shell{background:#fff;border:1px solid var(--tp-border);border-radius:22px;box-shadow:0 18px 60px rgba(20,60,107,.10);overflow:hidden}.taypay-header{display:flex;align-items:center;justify-content:space-between;padding:26px 30px;background:linear-gradient(135deg,#143c6b,#245a91);color:#fff}.taypay-header h2{margin:5px 0 0;font-size:26px}.taypay-kicker{font-size:13px;opacity:.8}.taypay-secure{background:rgba(255,255,255,.14);padding:8px 12px;border-radius:999px;font-size:13px}.taypay-content{padding:30px;background:var(--tp-bg);min-height:380px}.taypay-footer{text-align:center;padding:15px;color:var(--tp-muted);font-size:12px;background:#fff}.taypay-step,.taypay-panel,.taypay-profile,.taypay-result{background:#fff;border:1px solid var(--tp-border);border-radius:16px;padding:24px;max-width:680px;margin:0 auto 18px}.taypay-step-number{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#e9f1fa;color:var(--tp-primary);font-weight:bold;margin-bottom:14px}.taypay-step h3,.taypay-panel h3,.taypay-profile h3,.taypay-result h3{margin:0 0 8px}.taypay-muted,.taypay-panel p,.taypay-profile p{color:var(--tp-muted);margin:0 0 20px}.taypay-app label{display:block;font-weight:bold;margin:0 0 8px}.taypay-app input[type=text],.taypay-app input[type=password],.taypay-app input[type=number],.taypay-app input:not([type]){width:100%;height:52px;border:1px solid #cbd5e1;border-radius:11px;padding:0 14px;font-size:18px;background:#fff;outline:none}.taypay-app input:focus{border-color:var(--tp-primary);box-shadow:0 0 0 3px rgba(20,60,107,.10)}.taypay-button{border:0;border-radius:11px;padding:13px 22px;font-size:16px;font-weight:bold;cursor:pointer;margin-top:15px}.taypay-primary{background:var(--tp-primary);color:#fff;width:100%}.taypay-primary:hover{filter:brightness(1.05)}.taypay-link-button{border:0;background:none;color:var(--tp-primary);cursor:pointer;text-decoration:underline;padding:10px}.taypay-otp-input{text-align:center;letter-spacing:10px;font-size:25px!important}.taypay-alert{padding:13px 16px;border-radius:11px;margin:0 auto 18px;max-width:680px}.taypay-alert-error{background:#fff1f2;color:#9f1239;border:1px solid #fecdd3}.taypay-alert-success{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}.taypay-debug{background:#fff8db;border:1px dashed #d4a72c;padding:10px;border-radius:9px;margin-bottom:14px}.taypay-loading{text-align:center;padding:90px 20px;color:var(--tp-muted)}.taypay-spinner{display:inline-block;width:34px;height:34px;border:4px solid #dbe6f1;border-top-color:var(--tp-primary);border-radius:50%;animation:taypay-spin .8s linear infinite}@keyframes taypay-spin{to{transform:rotate(360deg)}}.taypay-profile{display:flex;justify-content:space-between;align-items:center;max-width:none}.taypay-profile p{margin:0}.taypay-panel{max-width:none}.taypay-panel-title{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:16px}.taypay-panel-title p{margin:5px 0 0}.taypay-panel-title>strong{font-size:22px;color:var(--tp-accent);white-space:nowrap}.taypay-fees{display:grid;gap:10px}.taypay-fee-row{display:flex!important;align-items:center;gap:13px;border:1px solid var(--tp-border);padding:15px;border-radius:12px;margin:0!important;cursor:pointer}.taypay-fee-row:hover{border-color:#9eb4ca}.taypay-fee-row input{width:19px;height:19px}.taypay-fee-main{display:flex;flex-direction:column;flex:1}.taypay-fee-main small{font-weight:normal;color:var(--tp-muted);margin-top:4px}.taypay-fee-amount{font-weight:bold;white-space:nowrap}.taypay-providers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.taypay-provider{display:flex;align-items:center;gap:13px;text-align:right;border:1px solid var(--tp-border);background:#fff;border-radius:14px;padding:17px;cursor:pointer;color:var(--tp-text)}.taypay-provider:hover{border-color:var(--tp-primary);box-shadow:0 7px 22px rgba(20,60,107,.08)}.taypay-provider-mark{width:42px;height:42px;border-radius:12px;background:var(--tp-primary);color:#fff;display:grid;place-items:center;font-weight:bold;font-size:20px}.taypay-provider span:last-child{display:flex;flex-direction:column}.taypay-provider small{color:var(--tp-muted);margin-top:5px}.taypay-empty{padding:24px;text-align:center;color:var(--tp-muted);background:#f8fafc;border-radius:10px}.taypay-result{text-align:center}.taypay-result-icon{margin:0 auto 15px;width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:#fff4e5;color:#a15c00;font-size:34px;font-weight:bold}.taypay-result.is-success .taypay-result-icon{background:#dcfce7;color:#15803d}@media(max-width:640px){.taypay-app{margin:12px}.taypay-header,.taypay-content{padding:20px}.taypay-header h2{font-size:21px}.taypay-secure{display:none}.taypay-providers{grid-template-columns:1fr}.taypay-panel-title{align-items:flex-start;flex-direction:column}.taypay-fee-row{align-items:flex-start;flex-wrap:wrap}.taypay-fee-amount{margin-right:32px}.taypay-profile{align-items:flex-start}}
.taypay-selection-cell{display:flex;align-items:center;justify-content:center;min-width:70px}.taypay-required-badge,.taypay-optional-note{display:inline-flex;align-items:center;width:max-content;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:bold}.taypay-required-badge{background:#eef2f7;color:#475569}.taypay-optional-note{background:#ecfdf5;color:#047857;margin-top:7px}.taypay-amount-editor{width:245px;display:flex;flex-direction:column;gap:5px}.taypay-amount-editor label{font-size:12px;color:var(--tp-muted);margin:0}.taypay-money-input{display:flex;align-items:center;border:1px solid #cbd5e1;border-radius:10px;background:#fff;overflow:hidden}.taypay-money-input input{border:0!important;border-radius:0!important;height:44px!important;font-size:16px!important;min-width:0}.taypay-money-input span{padding:0 10px;color:var(--tp-muted);white-space:nowrap}.taypay-amount-editor small{font-weight:normal;color:var(--tp-muted);line-height:1.5}.taypay-fee-row.is-unselected{opacity:.55;background:#f8fafc}.taypay-provider:disabled,.taypay-provider.is-disabled{opacity:.5;cursor:not-allowed;background:#f8fafc;box-shadow:none;border-color:var(--tp-border)}.taypay-provider:disabled:hover{border-color:var(--tp-border);box-shadow:none}.taypay-item-checkbox{width:20px!important;height:20px!important}.taypay-fee-row .taypay-fee-main{min-width:220px}@media(max-width:640px){.taypay-selection-cell{min-width:auto}.taypay-amount-editor{width:100%;margin-right:32px}.taypay-fee-row .taypay-fee-main{min-width:calc(100% - 50px)}.taypay-fee-amount{margin-right:auto}}
.taypay-alert-info{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.taypay-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:680px;margin:0 auto 18px}.taypay-progress span{background:#e8edf4;color:#64748b;border-radius:999px;padding:8px 10px;text-align:center;font-size:13px;font-weight:bold}.taypay-progress span.is-active{background:var(--tp-primary);color:#fff}.taypay-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.taypay-actions .taypay-button{width:auto;min-width:180px}.taypay-secondary{background:#eef2f7;color:var(--tp-primary);border:1px solid #cbd5e1}.taypay-actions-split{justify-content:space-between}.taypay-review-items{display:grid;gap:10px;margin:15px 0}.taypay-review-item{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px;border:1px solid var(--tp-border);border-radius:12px}.taypay-review-item>div:first-child{display:flex;flex-direction:column;gap:4px}.taypay-review-item small{color:var(--tp-muted)}.taypay-review-item-values{display:flex;flex-direction:column;align-items:flex-end;gap:4px;white-space:nowrap}.taypay-review-item-values small{color:#b45309}.taypay-summary{border-top:1px solid var(--tp-border);margin-top:18px;padding-top:12px;display:grid;gap:9px}.taypay-summary>div,.taypay-discount-row{display:flex;justify-content:space-between;gap:20px}.taypay-discount-row strong{color:#047857}.taypay-summary-total{font-size:19px;border-top:1px dashed #cbd5e1;padding-top:12px;color:var(--tp-primary)}@media(max-width:640px){.taypay-progress{font-size:11px}.taypay-actions,.taypay-actions-split{flex-direction:column}.taypay-actions .taypay-button{width:100%}.taypay-review-item{align-items:flex-start}.taypay-review-item-values{font-size:13px}}

/* TAYPay 0.1.5: responsive fee rows and deferred minimum-payment validation. */
.taypay-fee-row{display:grid!important;grid-template-columns:auto minmax(0,1fr) minmax(190px,245px);align-items:center;gap:14px;cursor:default;overflow:hidden}
.taypay-selection-cell{min-width:0}
.taypay-fee-row .taypay-fee-main{min-width:0;overflow-wrap:anywhere}
.taypay-fee-main strong,.taypay-fee-main small{max-width:100%;overflow-wrap:anywhere}
.taypay-amount-editor{width:100%;min-width:0;margin:0}
.taypay-money-input{width:100%;min-width:0;direction:ltr}
.taypay-money-input input{width:100%;min-width:0;text-align:left}
.taypay-money-input span{flex:0 0 auto}
.taypay-fee-amount{min-width:0;text-align:left;margin:0!important}
.taypay-validation-message:empty{display:none}
.taypay-validation-message .taypay-alert{margin-top:16px;margin-bottom:0}
.taypay-item-amount.is-invalid{box-shadow:inset 0 0 0 2px #dc2626!important;background:#fff7f7!important}
@media(max-width:720px){
  .taypay-fee-row{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"selection main" "amount amount";align-items:start}
  .taypay-selection-cell{grid-area:selection;align-self:start;padding-top:2px}
  .taypay-fee-main{grid-area:main}
  .taypay-amount-editor,.taypay-fee-amount{grid-area:amount;width:100%;margin:8px 0 0!important}
  .taypay-fee-amount{text-align:right}
}
@media(max-width:420px){
  .taypay-content{padding:14px}
  .taypay-panel,.taypay-profile{padding:18px}
  .taypay-fee-row{padding:13px;gap:10px}
}


/* TAYPay 0.1.6: customer-facing discount terms in the review step. */
.taypay-discount-terms{margin-top:16px;padding:14px 16px;border:1px solid #cfe8d8;border-radius:12px;background:#f4fbf6;color:#334155;line-height:1.8;overflow-wrap:anywhere}
.taypay-discount-terms>strong{display:block;margin-bottom:4px;color:#047857}
.taypay-discount-terms p{margin:0}
.taypay-discount-terms p+p{margin-top:7px;padding-top:7px;border-top:1px dashed #cfe8d8}

/* 0.2.3: arrears details, provider consent and recoverable errors. */
.taypay-arrears-details {
    margin-top: 10px;
    border: 1px solid #d7e0eb;
    border-radius: 10px;
    background: #f8fafc;
    overflow: hidden;
}
.taypay-arrears-details summary {
    cursor: pointer;
    padding: 9px 12px;
    font-weight: 700;
    color: #1f4b7d;
}
.taypay-arrears-breakdown { padding: 0 12px 10px; }
.taypay-arrears-breakdown > div {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 7px 0;
    border-top: 1px solid #e4eaf1;
}
.taypay-consent-box {
    margin-top: 18px;
    padding: 16px;
    border: 1px solid #ccd8e6;
    border-radius: 12px;
    background: #f7f9fc;
}
.taypay-consent-box h4 { margin: 0 0 8px; }
.taypay-consent-box ul { margin: 10px 18px 0 0; }
.taypay-consent-check {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin-top: 14px;
    padding: 12px;
    border-radius: 9px;
    background: #fff;
    font-weight: 700;
}
.taypay-consent-check input { margin-top: 3px; flex: 0 0 auto; }
.taypay-error-reference { text-align: center; color: #63758a; font-size: 12px; }
.taypay-email-prompt form { margin-top: 18px; }
.taypay-email-prompt input[type="email"] { direction: ltr; text-align: left; }

/* TAYPay 0.2.3.1: full-width arrears heading and readable student breakdown. */
.taypay-fee-row--arrears {
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas:
        "selection main amount"
        "details details details";
    align-items: center;
    gap: 10px 14px;
    padding-top: 12px;
    padding-bottom: 12px;
}
.taypay-fee-row--arrears .taypay-fee-main {
    grid-area: main;
    width: 100%;
    min-width: 0;
}
.taypay-fee-row--arrears .taypay-fee-main > strong {
    display: block;
    width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.45;
}
.taypay-fee-row--arrears .taypay-fee-main > small {
    display: block;
    margin-top: 2px;
}
.taypay-fee-row--arrears .taypay-selection-cell {
    grid-area: selection;
    justify-self: start;
}
.taypay-fee-row--arrears > .taypay-fee-amount,
.taypay-fee-row--arrears > .taypay-amount-editor {
    grid-area: amount;
    justify-self: end;
    margin: 0 !important;
}
.taypay-fee-row--arrears .taypay-arrears-details {
    grid-area: details;
    width: 100%;
    min-width: 0;
    margin-top: 0;
}
.taypay-arrears-details summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    font-size: 14px;
    line-height: 1.5;
}
.taypay-arrears-details summary small {
    color: var(--tp-muted);
    font-size: 11px;
    font-weight: 400;
    white-space: nowrap;
}
.taypay-arrears-breakdown {
    width: 100%;
    min-width: 0;
    padding: 0 10px 10px;
    font-size: 13px;
}
.taypay-arrears-breakdown > .taypay-arrears-breakdown-head,
.taypay-arrears-breakdown > .taypay-arrears-breakdown-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    width: 100%;
}
.taypay-arrears-breakdown > .taypay-arrears-breakdown-head {
    padding: 7px 8px;
    border-top: 0;
    color: var(--tp-muted);
    font-size: 11px;
    font-weight: 700;
}
.taypay-arrears-breakdown > .taypay-arrears-breakdown-row {
    padding: 9px 8px;
    border-top: 1px solid #e4eaf1;
    background: #fff;
}
.taypay-arrears-student {
    min-width: 0;
    overflow-wrap: anywhere;
    line-height: 1.55;
}
.taypay-arrears-amount {
    white-space: nowrap;
    font-size: 13px;
    color: var(--tp-primary);
    direction: rtl;
}
@media(max-width: 420px) {
    .taypay-fee-row--arrears {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "main main"
            "selection amount"
            "details details";
    }
    .taypay-fee-row--arrears .taypay-fee-main > strong {
        font-size: 15px;
    }
    .taypay-arrears-details summary {
        padding: 9px 10px;
        font-size: 13px;
    }
    .taypay-arrears-breakdown {
        padding-right: 8px;
        padding-left: 8px;
        font-size: 12px;
    }
    .taypay-arrears-breakdown > .taypay-arrears-breakdown-row {
        gap: 8px;
        padding: 8px 5px;
    }
    .taypay-arrears-amount {
        font-size: 12px;
    }
}


/* TAYPay 0.2.4: configurable typography and grouped payment channels. */
.taypay-app {
    font-family: var(--tp-font-family, "Noto Kufi Arabic", Tahoma, Arial, sans-serif);
    font-size: var(--tp-font-size-base, 16px);
}
.taypay-app button,
.taypay-app input,
.taypay-app select,
.taypay-app textarea {
    font-family: inherit;
}
.taypay-button {
    font-size: var(--tp-font-size-base, 16px);
}
.taypay-app input[type=text],
.taypay-app input[type=password],
.taypay-app input[type=number],
.taypay-app input[type=email],
.taypay-app input:not([type]) {
    font-size: calc(var(--tp-font-size-base, 16px) + 1px);
}
.taypay-header h2 { font-size: var(--tp-font-size-title, 26px); }
.taypay-step h3,
.taypay-panel h3,
.taypay-profile h3,
.taypay-result h3 { font-size: var(--tp-font-size-heading, 20px); }
.taypay-kicker,
.taypay-secure,
.taypay-footer,
.taypay-muted,
.taypay-provider-note,
.taypay-amount-editor label,
.taypay-amount-editor small { font-size: var(--tp-font-size-small, 12px); }
.taypay-discount-terms,
.taypay-consent-box {
    font-size: var(--tp-font-size-small, 12px);
    line-height: 1.75;
}
.taypay-consent-box h4 {
    font-size: calc(var(--tp-font-size-small, 12px) + 2px);
}
.taypay-consent-box p,
.taypay-consent-box details,
.taypay-consent-check,
.taypay-discount-terms p { font-size: inherit; }

.taypay-provider-groups {
    display: grid;
    gap: 22px;
    margin-top: 18px;
}
.taypay-provider-group {
    border: 1px solid var(--tp-border);
    border-radius: 15px;
    padding: 16px;
    background: #fbfdff;
}
.taypay-provider-group-head {
    margin-bottom: 12px;
}
.taypay-provider-group-head h4 {
    margin: 0 0 4px;
    color: var(--tp-primary);
    font-size: calc(var(--tp-font-size-heading, 20px) - 2px);
}
.taypay-provider-group-head p {
    margin: 0;
    color: var(--tp-muted);
    font-size: var(--tp-font-size-small, 12px);
}
.taypay-provider-group .taypay-providers {
    margin-top: 0;
}
.taypay-provider {
    min-height: 82px;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    text-align: center;
}
.taypay-provider-visual {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-width: 0;
}
.taypay-provider-copy,
.taypay-provider-name-only {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
}
.taypay-provider-copy strong,
.taypay-provider-name-only strong {
    overflow-wrap: anywhere;
}
.taypay-provider-logo {
    display: block;
    max-width: 150px;
    width: auto;
    height: 44px;
    object-fit: contain;
}
.taypay-provider--logo_only {
    min-height: 94px;
    align-items: center;
}
.taypay-provider--logo_only .taypay-provider-logo {
    max-width: 180px;
    height: 54px;
}
.taypay-provider--name_only {
    min-height: 70px;
}
.taypay-provider-note {
    display: block;
    text-align: center;
    line-height: 1.55;
}
.taypay-sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
@media (max-width: 640px) {
    .taypay-provider-group { padding: 13px; }
    .taypay-provider-group-head h4 { font-size: 16px; }
    .taypay-provider-logo { max-width: 130px; height: 40px; }
    .taypay-provider--logo_only .taypay-provider-logo { max-width: 155px; height: 48px; }
}

/* TAYPay 0.2.4.1: separate, configurable font for monetary values. */
.taypay-fee-amount,
.taypay-arrears-amount,
#taypay-total,
.taypay-money-input,
.taypay-money-input input,
.taypay-money-input span,
.taypay-review-item-values,
.taypay-discount-row > strong,
.taypay-summary > div > strong,
.taypay-result-amount {
    font-family: var(--tp-money-font-family, Tahoma, Arial, sans-serif);
    font-variant-numeric: tabular-nums;
    letter-spacing: 0;
}


/* TAYPay 0.2.4.2: preserve masked mobile number order inside RTL layouts. */
.taypay-mobile-masked {
    direction: ltr;
    unicode-bidi: isolate;
    display: inline-block;
    white-space: nowrap;
    font-family: var(--tp-money-font-family, Tahoma, Arial, sans-serif);
    font-variant-numeric: tabular-nums;
}

.taypay-payment-modes{margin:16px 0;padding:14px;border:1px solid #d8e0e8;border-radius:12px;background:#f8fafc;display:grid;gap:10px}.taypay-payment-modes h4{margin:0}.taypay-payment-modes label{display:flex;gap:8px;align-items:center}.taypay-payment-modes input[type=number]{width:100px;margin-inline:8px}


/* TAYPay 0.2.5.1: per-student payment amount mode. */
.taypay-item-payment-mode {
    display: grid;
    gap: 5px;
    margin-bottom: 9px;
}
.taypay-item-payment-mode label,
.taypay-amount-editor > label {
    font-size: var(--tp-font-size-small, 12px);
    color: #526071;
}
.taypay-item-payment-mode-select {
    width: 100%;
    min-height: 38px;
    border: 1px solid #cfd9e4;
    border-radius: 8px;
    background: #fff;
    padding: 6px 10px;
    font: inherit;
}
.taypay-item-amount[readonly] {
    background: #f4f7fa;
    color: #24364b;
    cursor: default;
}

/* TAYPay 0.2.5.2: remove the obsolete global amount selector and align the per-student selector. */
.taypay-payment-modes {
    display: none !important;
}
.taypay-fee-options {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 7px;
}
.taypay-fee-options .taypay-optional-note {
    margin-top: 0;
    flex: 0 0 auto;
}
.taypay-fee-options .taypay-item-payment-mode-select {
    width: auto;
    min-width: 155px;
    max-width: 210px;
    min-height: 34px;
    padding: 4px 9px;
    font-size: var(--tp-font-size-small, 12px);
}
.taypay-amount-editor .taypay-item-payment-mode {
    display: none !important;
}
@media (max-width: 520px) {
    .taypay-fee-options {
        align-items: stretch;
    }
    .taypay-fee-options .taypay-item-payment-mode-select {
        width: min(100%, 220px);
        max-width: 100%;
    }
}

/* TAYPay 0.2.5.4: keep the fee description on one regular-weight line, then show student and amount on the next row. */
.taypay-fee-row--student {
    grid-template-columns: auto minmax(0, 1fr) minmax(190px, 245px);
    grid-template-areas:
        "selection title title"
        "selection student amount";
    align-items: center;
}
.taypay-fee-row--student > .taypay-selection-cell { grid-area: selection; }
.taypay-fee-row--student > .taypay-fee-title {
    grid-area: title;
    min-width: 0;
    font-weight: 400;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.taypay-fee-row--student > .taypay-fee-student-line {
    grid-area: student;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.taypay-fee-student-name {
    color: var(--tp-muted);
    font-size: var(--tp-font-size-small, 12px);
    white-space: nowrap;
}
.taypay-fee-row--student > .taypay-amount-editor,
.taypay-fee-row--student > .taypay-fee-amount {
    grid-area: amount;
    width: 100%;
}
.taypay-fee-row--student .taypay-fee-options { margin-top: 0; }

@media (max-width: 640px) {
    .taypay-fee-row--student {
        grid-template-columns: auto minmax(0, 1fr);
        grid-template-areas:
            "selection title"
            "selection student"
            "amount amount";
        align-items: start;
    }
    .taypay-fee-row--student > .taypay-amount-editor,
    .taypay-fee-row--student > .taypay-fee-amount {
        margin-top: 8px !important;
    }
}

/* TAYPay 0.3.1 payment-plan portal */
.taypay-plan-offer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px;margin-bottom:16px;border:1px solid var(--tp-border);border-radius:16px;background:var(--tp-surface)}
.taypay-plan-offer h3{margin:3px 0 5px}.taypay-plan-offer p{margin:0;color:var(--tp-muted)}
.taypay-plan-panel{max-width:760px;margin-inline:auto}.taypay-plan-count-row{display:flex;gap:10px;align-items:center;margin:8px 0 16px}.taypay-plan-count-row input{max-width:120px}
.taypay-plan-installments{display:grid;gap:8px;margin:14px 0}.taypay-plan-installment{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;padding:12px;border:1px solid var(--tp-border);border-radius:12px}.taypay-plan-installment.is-due{border-width:2px}.taypay-plan-installment small{display:block;color:var(--tp-muted);font-size:11px;margin-top:3px}.taypay-plan-terms{padding:14px;border:1px solid var(--tp-border);border-radius:12px;max-height:220px;overflow:auto;margin:14px 0}.taypay-plan-terms h4{margin-top:0}.taypay-plan-current-invoice{display:flex;flex-direction:column;gap:5px;padding:16px;border:1px solid var(--tp-border);border-radius:12px;margin:14px 0}.taypay-plan-current-invoice strong{font-size:1.4em}.taypay-plan-current-invoice small{color:var(--tp-muted)}
@media(max-width:600px){.taypay-plan-offer{align-items:stretch;flex-direction:column}.taypay-plan-installment{grid-template-columns:1fr auto}.taypay-plan-installment strong{grid-column:1/-1}}

.taypay-eligible-discounts{margin:18px 0;padding:18px;border:1px solid #d8e5db;border-radius:14px;background:#fbfefc}.taypay-eligible-discounts h3{margin:0 0 12px}.taypay-eligible-discount{display:flex;flex-direction:column;gap:4px;padding:10px 0;border-bottom:1px solid #e7eee9}.taypay-eligible-discount:last-child{border-bottom:0}.taypay-eligible-discount span{font-size:.9em;color:#5a665e}.taypay-plan-offer{margin-top:18px}


/* 0.3.3.2 payment-plan and numeric theme refinements */
.taypay-amount,.taypay-fee-amount,.taypay-arrears-amount,.taypay-plan-installment strong,.taypay-plan-current-invoice strong,.taypay-summary-total strong,.taypay-panel-title>strong{font-family:var(--taypay-numeric-font-family,var(--taypay-font-family,inherit));font-size:var(--taypay-amount-font-size,var(--taypay-font-size-large,20px));font-weight:var(--taypay-amount-font-weight,700);font-variant-numeric:tabular-nums}
.taypay-plan-activate-button{font-size:var(--taypay-font-size-base,14px)!important;line-height:1.6;white-space:normal}
.taypay-plan-installment-head{font-weight:700;background:var(--taypay-table-header-background,#f1f5f9);color:var(--taypay-table-header-text,#111827)}
.taypay-plan-installment-row,.taypay-plan-installment-head{display:grid!important;grid-template-columns:1fr 1.25fr 1fr;gap:12px;align-items:center}
.taypay-plan-terms-card{border:1px solid var(--taypay-border-color,#dbe2ea);border-radius:14px;padding:16px;margin-top:18px;background:var(--taypay-card-background,#fff)}
.taypay-plan-terms-card h4{margin-top:0}.taypay-eligible-discounts{margin:18px 0;padding:16px;border:1px solid var(--taypay-border-color,#dbe2ea);border-radius:14px;background:var(--taypay-card-background,#fff)}

/* 0.3.3.3 — locally confirmed payments awaiting ERP registration. */
.taypay-pending-erp{margin:18px 0;padding:16px;border:1px solid var(--taypay-warning-color,#b45309);border-radius:12px;background:#fffaf0}
.taypay-pending-erp h3{margin:0 0 8px;font-size:1rem}
.taypay-pending-erp p{margin:0 0 12px;line-height:1.8}
.taypay-pending-erp-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:9px 0;border-top:1px solid rgba(0,0,0,.08)}
.taypay-pending-erp-row small{color:var(--taypay-warning-color,#b45309)}
@media(max-width:640px){.taypay-pending-erp-row{grid-template-columns:1fr auto}.taypay-pending-erp-row small{grid-column:1/-1}}

.taypay-pending-erp-summary{display:grid;gap:8px;margin:12px 0}.taypay-pending-erp-summary>div{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid var(--taypay-border-color,#dbe2ea)}

.taypay-financial-history{margin-top:18px;padding:18px;border:1px solid var(--taypay-border,#dbe2ea);border-radius:12px;background:var(--taypay-card,#fff)}
.taypay-financial-history-list{display:grid;gap:10px}
.taypay-financial-history-row{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--taypay-border,#dbe2ea)}
.taypay-financial-history-row:last-child{border-bottom:0}
.taypay-financial-history-row>div{display:flex;flex-direction:column;gap:4px}
.taypay-financial-history-row>div:last-child{text-align:left;align-items:flex-end}
.taypay-financial-history-row b{font-size:.85em;padding:3px 8px;border-radius:999px}
.taypay-financial-history-row b.is-registered{background:#dcfce7;color:#166534}
.taypay-financial-history-row b.is-pending{background:#fef3c7;color:#92400e}

/* TayPay 0.4.2 */
.taypay-eligible-discounts{margin:14px 0;padding:10px 12px;border-right:3px solid #f59e0b;background:#fff7ed;border-radius:8px;color:#9a3412;font-size:.82rem;line-height:1.7}
.taypay-eligible-discounts>strong{display:block;margin-bottom:4px;color:#c2410c}
.taypay-eligible-discount{display:flex;flex-wrap:wrap;gap:4px 8px;padding:3px 0}.taypay-eligible-discount b{font-size:.84rem}.taypay-eligible-discount span{font-size:.78rem;color:#9a3412}
.taypay-pending-custom{margin-top:14px;padding-top:12px;border-top:1px solid rgba(180,83,9,.2)}.taypay-pending-custom>small{display:block;margin-top:6px;color:#92400e}
.taypay-last-event{display:flex;flex-direction:column;gap:3px;text-decoration:none}.taypay-last-event small{color:#64748b;font-weight:400}

/* TayPay 0.4.2.5 — simplified active payment-plan table. */
.taypay-plan-title-simple p{margin-bottom:0}
.taypay-plan-payment-table{margin:16px 0;border:1px solid var(--taypay-border-color,#dbe2ea);border-radius:14px;overflow:hidden;background:#fff}
.taypay-plan-payment-head,.taypay-plan-payment-row{display:grid;grid-template-columns:minmax(110px,1.2fr) minmax(84px,.95fr) minmax(92px,1fr) minmax(92px,1fr);align-items:center;gap:10px;padding:12px 14px}
.taypay-plan-payment-head{font-weight:700;background:var(--taypay-table-header-background,#f1f5f9);color:var(--taypay-table-header-text,#111827);border-bottom:1px solid var(--taypay-border-color,#dbe2ea)}
.taypay-plan-payment-row{font-weight:400;border-bottom:1px solid var(--taypay-border-color,#dbe2ea)}
.taypay-plan-payment-row:last-child{border-bottom:0}
.taypay-plan-payment-row.is-paid{background:#f0fdf4}
.taypay-plan-payment-row.is-overdue{background:#fef2f2}
.taypay-plan-payment-row.is-due{background:#eff6ff}
.taypay-plan-payment-row.is-scheduled{background:#fff}
.taypay-plan-payment-cell{min-width:0;font-weight:400}
.taypay-plan-payment-cell.taypay-amount{font-size:1em;font-weight:600;white-space:nowrap}
.taypay-plan-payment-installment{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.taypay-plan-payment-installment input{width:18px;height:18px;margin:0;accent-color:var(--taypay-primary-color,#1d4ed8)}
.taypay-plan-payment-number{font-weight:600}
.taypay-plan-status{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;font-size:.75rem;font-weight:600;line-height:1.5}
.taypay-plan-status.is-paid{background:#dcfce7;color:#166534}
.taypay-plan-status.is-scheduled{background:#f3f4f6;color:#111827}
.taypay-plan-status.is-due{background:#dbeafe;color:#1d4ed8}
.taypay-plan-status.is-overdue{background:#fee2e2;color:#b91c1c}
.taypay-plan-status.is-cancelled{background:#f3f4f6;color:#6b7280}
.taypay-plan-custom-payment{margin-top:18px}
.taypay-plan-custom-payment>small{display:block;margin-top:6px;color:var(--tp-muted,#64748b);font-size:.78rem}
@media(max-width:620px){
  .taypay-plan-payment-head,.taypay-plan-payment-row{grid-template-columns:1.2fr .95fr 1fr 1fr;gap:6px;padding:10px 8px;font-size:.78rem}
  .taypay-plan-payment-cell.taypay-amount{font-size:.82rem}
  .taypay-plan-payment-installment{gap:5px}
  .taypay-plan-status{padding:2px 6px;font-size:.66rem}
}

/* 0.4.4.2: clearer discount blocks and eligible payment-channel names. */
.taypay-eligible-discount{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:7px 0;border-bottom:1px solid rgba(194,65,12,.14)}
.taypay-eligible-discount:last-child{border-bottom:0}
.taypay-eligible-discount-channels{display:block;font-size:.78rem;font-weight:700;color:#7c2d12;line-height:1.65}

.taypay-sadad-instructions{width:100%;text-align:right}
.taypay-sadad-instructions h3{margin:0 0 4px;line-height:1.5}
.taypay-sadad-instructions>p{margin:0 0 8px;line-height:1.65}
.taypay-sadad-instructions dl{margin:10px 0 8px;display:grid;gap:0}
.taypay-sadad-instructions dl div{
    display:grid;
    grid-template-columns:minmax(0,57%) minmax(118px,43%);
    grid-template-rows:auto;
    align-items:center;
    column-gap:12px;
    min-height:42px;
    padding:7px 0;
    border-bottom:1px solid var(--taypay-border,#dbe2ea);
    direction:ltr;
}
.taypay-sadad-instructions dt{
    grid-column:2;
    grid-row:1;
    margin:0;
    color:var(--taypay-muted,#6b7280);
    direction:rtl;
    text-align:right;
    justify-self:stretch;
    line-height:1.4;
}
.taypay-sadad-instructions dd{
    grid-column:1;
    grid-row:1;
    margin:0;
    min-width:0;
    font-weight:700;
    direction:rtl;
    text-align:right;
    justify-self:stretch;
    line-height:1.4;
}
.taypay-sadad-instructions dd bdi{
    display:inline-block;
    direction:ltr;
    unicode-bidi:isolate;
    text-align:right;
}

/* TayPay 0.5.2.2 — compact two-button SADAD actions. */
.taypay-actions-stack{display:grid;gap:10px;margin-top:18px}
.taypay-actions-stack .taypay-button{width:100%;margin-top:0}
.taypay-button.taypay-danger{background:#b42318;color:#fff}
.taypay-button.taypay-danger:hover{filter:brightness(1.05)}
.taypay-button.taypay-warning{
    background:#fff1dc;
    color:#914b00;
    border:1px solid #efb66e;
}
.taypay-button.taypay-warning:hover{background:#ffe5bf}
.taypay-sadad-active-card{max-width:720px}
.taypay-error-actions-panel{max-width:680px;margin-inline:auto}
.taypay-sadad-order-number{margin:10px 0 0}
.taypay-sadad-actions{
    display:flex;
    flex-wrap:nowrap;
    align-items:center;
    justify-content:flex-start;
    gap:10px;
    width:auto;
    margin-top:14px;
}
.taypay-sadad-actions .taypay-button{
    width:auto;
    min-width:104px;
    min-height:38px;
    margin:0;
    padding:8px 15px;
    border-radius:8px;
    font-size:.82rem;
    line-height:1.2;
    font-weight:700;
    white-space:nowrap;
    box-shadow:none;
}
.taypay-sadad-refresh-button{
    background:#e8edf7;
    color:#234d78;
    border:1px solid #cbd6e5;
}
.taypay-sadad-refresh-button:hover{background:#dce5f2}
.taypay-sadad-cancel-button{
    background:#fff;
    color:#9a5b16;
    border:1px solid #dca75b;
}
.taypay-sadad-cancel-button:hover{background:#fff7eb}
@media(max-width:520px){
    .taypay-sadad-instructions dl div{
        grid-template-columns:minmax(0,56%) minmax(108px,44%);
        column-gap:8px;
        min-height:40px;
        padding:6px 0;
    }
    .taypay-sadad-instructions dt,.taypay-sadad-instructions dd{font-size:.86rem}
    .taypay-sadad-actions{gap:8px}
    .taypay-sadad-actions .taypay-button{
        min-width:0;
        padding:8px 12px;
        font-size:.78rem;
    }
}
@media(max-width:360px){
    .taypay-sadad-actions{gap:6px}
    .taypay-sadad-actions .taypay-button{padding-inline:10px;font-size:.74rem}
}
.taypay-secure-warning{background:rgba(185,28,28,.22)}

.taypay-recaptcha{margin:14px 0;min-height:78px}.taypay-recaptcha>div{max-width:100%}
\n\n/* 1.2.5 — guardian payment-plan cancellation payment choices */\n.taypay-plan-cancel-options{display:grid;gap:12px;margin:20px 0}\n.taypay-plan-cancel-option{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;border:1px solid var(--taypay-border,#dbe2ea);border-radius:14px;padding:16px;background:#fff;cursor:pointer}\n.taypay-plan-cancel-option:has(input:checked){border-width:2px}\n.taypay-plan-cancel-option span{display:grid;gap:4px}\n.taypay-plan-cancel-option small{color:var(--taypay-muted,#6b7280)}\n.taypay-plan-cancel-option b{white-space:nowrap}\n@media(max-width:640px){.taypay-plan-cancel-option{grid-template-columns:auto 1fr}.taypay-plan-cancel-option b{grid-column:2}}\n
/* 1.2.5.1 — cancellation choice amounts use the configured money font. */
.taypay-plan-cancel-option .taypay-amount{font-family:var(--tp-money-font-family,Tahoma,Arial,sans-serif);font-variant-numeric:tabular-nums}
/* 1.6.1: unified interactive cards and actions. Inspired by the supplied panel theme,
   implemented locally to avoid importing an old Bootstrap dependency. */
.taypay-eligible-discounts{margin:18px 0;padding:0;background:transparent;border:0}.taypay-offers-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}.taypay-offers-heading>strong{font-size:.98rem;color:#9a4b13}.taypay-offers-heading>span{font-size:.76rem;color:var(--taypay-muted,#6b7280)}.taypay-offer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.taypay-offer-card{appearance:none;width:100%;padding:0;border:1px solid #f0c98c;border-radius:11px;overflow:hidden;background:#fffdf9;color:#4a2b12;text-align:right;cursor:pointer;box-shadow:0 2px 7px rgba(41,51,67,.05);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease}.taypay-offer-card:hover,.taypay-offer-card:focus-visible{transform:translateY(-2px);box-shadow:0 7px 18px rgba(41,51,67,.12);border-color:#e7a94a;outline:0}.taypay-offer-card.is-selected{background:#fff5e4;border-color:#dc941f;box-shadow:0 7px 20px rgba(180,112,12,.14)}.taypay-offer-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:#fff3d8;border-bottom:1px solid #f3d39e}.taypay-offer-card.is-selected .taypay-offer-head{background:#f5b453;color:#fff}.taypay-offer-head>strong{font-size:.9rem}.taypay-offer-head>b{font-size:1rem;white-space:nowrap}.taypay-offer-body{display:grid;gap:6px;padding:11px 12px;min-height:112px}.taypay-offer-saving{display:flex;align-items:baseline;gap:7px;color:#116f4a}.taypay-offer-saving span{font-size:.76rem}.taypay-offer-saving strong{font-size:1rem}.taypay-offer-condition,.taypay-offer-expiry{font-size:.78rem;line-height:1.55}.taypay-offer-expiry{color:#a84d1d}.taypay-offer-meta{display:flex;gap:7px;align-items:flex-start;font-size:.75rem}.taypay-offer-meta span{color:var(--taypay-muted,#6b7280)}.taypay-offer-meta strong{color:#7c2d12}.taypay-offer-footer{display:block;padding:8px 12px;background:#f7f7f7;border-top:1px solid #e8e8e8;font-size:.78rem;font-weight:800;color:#825014}.taypay-offer-card.is-selected .taypay-offer-footer{background:#fff0d3;color:#8d5200}.taypay-offer-note{margin-top:8px;padding:9px 11px;border:1px solid #f1cd8e;border-radius:9px;background:#fff8e9;color:#83500d;font-size:.8rem}.taypay-provider-offer{display:block;margin-top:8px;padding:6px 9px;border-radius:8px;background:#f3f8f4;font-size:12px;font-weight:700}
.taypay-plan-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}.taypay-plan-option{appearance:none;position:relative;display:grid;align-content:start;gap:0;text-align:right;padding:0;border:1px solid #b9d3ea;border-radius:12px;overflow:hidden;background:#fff;color:#17324d;cursor:pointer;box-shadow:0 2px 8px rgba(38,70,103,.06);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease}.taypay-plan-option:hover,.taypay-plan-option:focus-visible{transform:translateY(-3px);box-shadow:0 9px 22px rgba(38,70,103,.15);border-color:#3b83bd;outline:0}.taypay-plan-option-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px;background:#eaf3fb;border-bottom:1px solid #c8deef}.taypay-plan-option-head strong{font-size:.94rem}.taypay-plan-option-head b{font-size:.78rem;white-space:nowrap}.taypay-plan-description{padding:10px 13px 2px;color:#52677a;font-size:.77rem;line-height:1.6;min-height:36px}.taypay-plan-facts{display:block;padding:10px 13px 12px}.taypay-plan-facts-list{display:grid;gap:7px;padding:10px 11px;border-radius:8px;background:#f7fafc}.taypay-plan-facts-list>span{display:flex;align-items:baseline;gap:6px;line-height:1.55;min-width:0}.taypay-plan-facts small{font-size:.73rem;color:#6b7f91;white-space:nowrap}.taypay-plan-facts b{font-size:.78rem;line-height:1.55;overflow-wrap:anywhere}.taypay-plan-option-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:40px;margin-top:auto;padding:7px 13px;background:#f5f7f9;border-top:1px solid #e1e7ec;font-size:.78rem;font-weight:800;color:#245b87}.taypay-plan-option.is-recommended{background:#f1f8f2;border-color:#78bd7d}.taypay-plan-option.is-recommended .taypay-plan-option-head{background:#5cb85c;border-color:#4da34d;color:#fff}.taypay-plan-option.is-recommended .taypay-plan-facts-list{background:#f8fcf8}.taypay-plan-option.is-recommended .taypay-plan-option-footer{background:#e7f5e8;color:#2f7d36}.taypay-plan-recommended{display:inline-flex;width:max-content;margin:0;padding:4px 8px;border-radius:999px;background:#dff1e1;color:#2d7434;font-size:.7rem;font-weight:800;white-space:nowrap}.taypay-plan-recommended-placeholder{display:inline-block;min-width:1px}.taypay-plan-option-custom{border-style:dashed;border-color:#7bb8c9}.taypay-plan-option-custom .taypay-plan-option-head{background:#e8f7fb}.taypay-custom-row{display:grid;grid-template-columns:auto 1fr 1fr 1fr;gap:8px;align-items:center;margin:10px 0}.taypay-custom-row input,.taypay-custom-row select{min-width:0}
.taypay-actions,.taypay-actions-split{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px}.taypay-actions .taypay-button,.taypay-actions-split .taypay-button{width:auto;min-width:118px;margin:0;min-height:40px;padding:9px 16px;border-radius:8px;font-size:.83rem;font-weight:800;line-height:1.2}.taypay-button.taypay-tertiary{background:#fff;color:#667788;border:1px solid #ccd5dd}.taypay-button.taypay-tertiary:hover{background:#f6f8fa}.taypay-plan-review-actions{justify-content:flex-start}.taypay-plan-review-actions #taypay-plan-confirm{order:1}.taypay-plan-review-actions #taypay-plan-back-options{order:2}.taypay-plan-review-actions #taypay-plan-cancel{order:3;margin-inline-start:auto}
@media(max-width:700px){.taypay-offer-grid,.taypay-plan-options{grid-template-columns:1fr}.taypay-custom-row{grid-template-columns:1fr 1fr}.taypay-custom-row strong{grid-column:1/-1}.taypay-plan-facts{grid-template-columns:1fr}.taypay-plan-review-actions #taypay-plan-cancel{margin-inline-start:0}.taypay-actions .taypay-button,.taypay-actions-split .taypay-button{flex:1 1 140px}}

/* 1.6.2: one-column plan facts and a consistent RTL action-bar convention.
   Back/secondary actions stay on the right, destructive cancel sits immediately
   before the main action, and the primary Next/Confirm action anchors the left. */
.taypay-actions,.taypay-actions-split{direction:rtl;justify-content:flex-start;width:100%}
.taypay-actions .taypay-primary,.taypay-actions-split .taypay-primary{order:100;margin-inline-start:auto}
.taypay-actions button[id*="cancel"],.taypay-actions-split button[id*="cancel"],.taypay-actions .taypay-danger,.taypay-actions-split .taypay-danger{order:90}
.taypay-actions button[id*="cancel"]:hover,.taypay-actions-split button[id*="cancel"]:hover,.taypay-actions .taypay-danger:hover,.taypay-actions-split .taypay-danger:hover{background:#d9534f!important;border-color:#d43f3a!important;color:#fff!important;filter:none}
.taypay-plan-review-actions #taypay-plan-confirm,.taypay-plan-review-actions #taypay-plan-back-options,.taypay-plan-review-actions #taypay-plan-cancel{order:initial;margin-inline-start:0}
.taypay-plan-review-actions #taypay-plan-confirm{order:100;margin-inline-start:auto}
.taypay-plan-review-actions #taypay-plan-cancel{order:90}
@media(max-width:700px){.taypay-actions,.taypay-actions-split{direction:rtl}.taypay-actions .taypay-primary,.taypay-actions-split .taypay-primary{margin-inline-start:0}.taypay-plan-review-actions #taypay-plan-confirm{margin-inline-start:0}}

/* TayPay 1.7.2 — Legal & Compliance */
.taypay-login-privacy{display:block;margin:14px auto 0}.taypay-legal-gate,.taypay-legal-public{max-width:900px;margin:0 auto}.taypay-legal-gate-heading{margin-bottom:18px}.taypay-legal-gate-heading h2{margin:4px 0 8px}.taypay-legal-document{background:#fff;border:1px solid var(--tp-border,#dbe2ea);border-radius:14px;padding:20px;margin:14px 0}.taypay-legal-document-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:12px;margin-bottom:14px;border-bottom:1px solid var(--tp-border,#dbe2ea)}.taypay-legal-document-head h3{margin:0}.taypay-legal-document-head span{font-size:12px;color:var(--tp-muted,#6b7280);white-space:nowrap}.taypay-legal-content{line-height:1.9;max-height:48vh;overflow:auto;padding-inline-end:8px}.taypay-legal-content h1,.taypay-legal-content h2,.taypay-legal-content h3{line-height:1.5}.taypay-legal-content ul,.taypay-legal-content ol{padding-inline-start:24px}.taypay-legal-privacy-link{margin:10px 0 18px}.taypay-legal-accept-check{display:flex;align-items:flex-start;gap:10px;padding:15px;border:1px solid var(--tp-border,#dbe2ea);border-radius:12px;background:#fff;margin:16px 0}.taypay-legal-accept-check input{margin-top:5px;min-width:18px;min-height:18px}.taypay-ai-consent-card{border:1px solid var(--tp-border,#dbe2ea);border-radius:14px;background:#f8fafc;padding:16px;margin:18px 0}.taypay-ai-consent-card.is-enabled{background:#f0fdf4}.taypay-ai-consent-row{display:flex;justify-content:space-between;align-items:center;gap:18px}.taypay-ai-consent-row p{margin:6px 0 0;color:var(--tp-muted,#6b7280)}.taypay-ai-terms-wrap[hidden]{display:none}.taypay-ai-terms-wrap .taypay-legal-document{margin-bottom:0}.taypay-switch{position:relative;width:52px;height:30px;display:inline-block;flex:0 0 auto}.taypay-switch input{opacity:0;width:0;height:0}.taypay-switch-slider{position:absolute;inset:0;border-radius:999px;background:#cbd5e1;cursor:pointer;transition:.18s}.taypay-switch-slider:before{content:"";position:absolute;width:24px;height:24px;right:3px;top:3px;background:#fff;border-radius:50%;box-shadow:0 1px 4px rgba(0,0,0,.18);transition:.18s}.taypay-switch input:checked + .taypay-switch-slider{background:#15803d}.taypay-switch input:checked + .taypay-switch-slider:before{transform:translateX(-22px)}.taypay-profile-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.taypay-ai-launcher{border:0;border-radius:999px;padding:7px 11px;display:inline-flex;align-items:center;gap:6px;font-weight:700;cursor:pointer}.taypay-ai-launcher span{font-size:10px;font-weight:500}.taypay-ai-launcher.is-disabled{background:#e5e7eb;color:#6b7280;filter:grayscale(1)}.taypay-ai-launcher.is-enabled{background:#dcfce7;color:#166534}.taypay-legal-status-list{display:grid;gap:10px}.taypay-legal-status-list>div{display:grid;grid-template-columns:minmax(160px,1fr) minmax(120px,.8fr) auto;align-items:center;gap:12px;padding:14px;border:1px solid var(--tp-border,#dbe2ea);border-radius:12px;background:#fff}.taypay-ai-disabled-panel{max-width:650px;margin:20px auto}.taypay-button:disabled{opacity:.5;cursor:not-allowed}
@media (max-width:700px){.taypay-legal-document{padding:15px}.taypay-legal-document-head{align-items:flex-start;flex-direction:column}.taypay-ai-consent-row{align-items:flex-start}.taypay-profile-actions{width:100%;justify-content:flex-start}.taypay-legal-status-list>div{grid-template-columns:1fr}.taypay-legal-content{max-height:52vh}}
.taypay-retention-table-wrap{overflow-x:auto;margin:12px 0}.taypay-retention-table{width:100%;border-collapse:collapse;font-size:.93em}.taypay-retention-table th,.taypay-retention-table td{border:1px solid var(--tp-border,#dbe2ea);padding:10px;vertical-align:top;text-align:start}.taypay-retention-table th{background:#f8fafc;font-weight:700}.taypay-legal-missing-ref{display:inline-block;padding:2px 6px;border-radius:6px;background:#fff1f2;color:#b91c1c;font-weight:700}
.taypay-powered-by{margin-top:10px;display:flex;justify-content:center;align-items:center;gap:7px;font-size:11px;direction:ltr}.taypay-powered-by a{display:inline-flex;align-items:center;gap:7px;color:inherit;text-decoration:none}.taypay-powered-by img{display:block;max-height:22px;max-width:90px;width:auto;height:auto;object-fit:contain}.taypay-powered-by strong{font-size:13px;color:var(--tp-primary)}

/* TayPay 1.7.10 — final payment impact disclosure. */
.taypay-summary-remaining{margin-top:4px;padding:13px 12px;border:1px solid var(--taypay-border-color,#dbe2ea);border-radius:10px;background:var(--taypay-table-header-background,#f1f5f9);font-size:1.05rem}
.taypay-summary-remaining strong{font-family:var(--taypay-numeric-font-family,var(--taypay-font-family,inherit));font-size:var(--taypay-amount-font-size,var(--taypay-font-size-large,20px));font-weight:700;font-variant-numeric:tabular-nums}

/* 1.7.10 financial-context presentation: compact by default, detailed on demand. */
.taypay-financial-summary{margin:16px 0;padding:18px;border:1px solid #e3e7ee;border-radius:16px;background:#fff}
.taypay-financial-summary-head h3{margin:3px 0 12px;font-size:1.05rem}
.taypay-financial-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.taypay-financial-summary-grid>div{padding:11px 12px;border-radius:12px;background:#f7f9fc;display:flex;flex-direction:column;gap:4px}
.taypay-financial-summary-grid span{font-size:.82rem;color:#657184}
.taypay-financial-summary-grid strong{font-size:1rem;color:#182235}
.taypay-financial-summary-grid small{font-size:.72rem;line-height:1.35;color:#7d8796}
.taypay-financial-details{grid-column:1/-1;margin-top:8px;border-top:1px solid #edf0f4;padding-top:8px}
.taypay-financial-details summary{cursor:pointer;color:#315b86;font-weight:600;list-style-position:inside}
.taypay-financial-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;margin-top:10px}
.taypay-financial-detail-grid>div{display:flex;justify-content:space-between;gap:12px;padding:8px 10px;background:#f8fafc;border-radius:9px}
.taypay-financial-detail-grid span{display:flex;flex-direction:column;font-size:.82rem;color:#596679}
.taypay-financial-detail-grid span small{font-size:.69rem;color:#8a94a3;margin-top:2px}
.taypay-financial-detail-grid strong{white-space:nowrap;font-size:.84rem}
.taypay-financial-discounts{margin-top:10px;padding:10px;background:#fafbfc;border-radius:9px;font-size:.82rem}
.taypay-financial-discounts>span{font-weight:600}
.taypay-financial-discounts ul{margin:7px 18px 0 0;padding:0}
.taypay-financial-discounts li{margin:3px 0}
@media (max-width:640px){.taypay-financial-summary-grid,.taypay-financial-detail-grid{grid-template-columns:1fr}.taypay-financial-summary{padding:14px}}

/* 1.8.0 student-centric financial view */
.taypay-student-financial-card{border:1px solid #dce4ed;border-radius:12px;background:#fff;margin:12px 0;overflow:hidden}.taypay-student-financial-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:#f8fafc;border-bottom:1px solid #e7edf4}.taypay-student-financial-head>div{display:flex;flex-direction:column;gap:3px}.taypay-student-financial-head small{color:#718096}.taypay-student-financial-body{padding:10px}.taypay-badge-warning{background:#fff3cd;color:#7a5a00}.taypay-badge-success{background:#e8f7ed;color:#0f7a39}.taypay-badge-muted{background:#eef1f4;color:#5e6873}.taypay-fee-main small{display:block;color:#697586;margin-top:4px}

/* TayPay 1.8.0: explain server-calculated due amount. */
.taypay-due-explanation{grid-column:1/-1;margin-top:-4px;padding:10px 12px;border-radius:10px;background:#f8fafc;border:1px solid #e2e8f0;display:grid;gap:6px}.taypay-due-explanation[hidden]{display:none}.taypay-due-explanation>small{color:var(--tp-muted);font-weight:700}.taypay-due-explanation>div{display:flex;justify-content:space-between;gap:12px;font-size:13px}.taypay-due-explanation>div strong{white-space:nowrap;color:var(--tp-primary)}

/* 1.8.4 — OTP multi-channel resend */
.taypay-otp-resend{margin-top:16px;padding-top:14px;border-top:1px solid var(--tp-border,#dfe6ee)}
.taypay-otp-resend .taypay-muted{margin-bottom:8px}
.taypay-otp-resend-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.taypay-otp-resend-actions .taypay-muted{flex:1 0 100%}
.taypay-otp-resend-actions .taypay-button{margin-top:0;flex:1 1 220px}
@media(max-width:640px){.taypay-otp-resend-actions .taypay-button{width:100%;flex-basis:100%}}
.taypay-otp-resend-primary-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.taypay-otp-resend-primary-row .taypay-muted{margin:0;flex:1 1 220px}
#taypay-otp-immediate-actions{flex:0 1 auto}
#taypay-otp-immediate-actions .taypay-button{margin-top:0}
@media(max-width:640px){.taypay-otp-resend-primary-row{align-items:stretch}.taypay-otp-resend-primary-row .taypay-muted,#taypay-otp-immediate-actions,#taypay-otp-immediate-actions .taypay-button{width:100%;flex-basis:100%}}

/* TayPay 1.8.11: provider-owned on-site messaging must remain responsive. */
.taypay-provider-messaging {
    width: 100%;
    max-width: 100%;
    overflow: visible;
    margin: 14px 0;
}
.taypay-provider-messaging > div {
    max-width: 100%;
}
.taypay-tamara-widget-wrap tamara-widget {
    display: block;
    width: 100%;
    max-width: 100%;
}
