.pricing-shell, #checkoutModal { --coupon-ink: #3658bd; --coupon-tint: #edf1fe; }
html[data-theme="dark"] .pricing-shell, html[data-theme="dark"] #checkoutModal { --coupon-ink: #93b8ff; --coupon-tint: #202b51; }
.pricing-header {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 16px;
}
.pricing-header::before { content: ''; }
.pricing-header .coupon-wallet-trigger { justify-self: end; }
.coupon-wallet-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 9px 13px;
    border: 1px solid var(--border-color);
    border-radius: 11px;
    background: var(--bg-primary);
    color: var(--text-primary);
    font: inherit;
    font-size: .83rem;
    font-weight: 600;
    white-space: nowrap;
    transition: border-color .18s, background .18s;
}
.coupon-wallet-trigger:hover { border-color: var(--accent-primary); background: var(--bg-tertiary); }
.coupon-wallet-trigger > i { color: var(--coupon-ink); font-size: 1.05rem; }
.coupon-wallet-count {
    display: grid;
    place-items: center;
    min-width: 20px;
    height: 20px;
    border-radius: 6px;
    background: var(--coupon-tint);
    color: var(--coupon-ink);
    font-size: .72rem;
    font-variant-numeric: tabular-nums;
}
.coupon-wallet-count[hidden] { display: none; }
.checkout-modal [hidden] { display: none !important; }
.checkout-header-title { display: flex; align-items: center; gap: 10px; min-width: 0; }
.checkout-header-actions { display: flex; align-items: center; gap: 17px; margin-left: auto; }
.checkout-header-actions .btn-close { margin: 0; padding: 6px; flex-shrink: 0; }
html[data-theme="dark"] .checkout-header-actions .btn-close { filter: invert(1) grayscale(1); opacity: .65; }
.coupon-wallet-back { border: 0; background: transparent; color: var(--text-primary); padding: 6px; border-radius: 8px; }
.coupon-wallet-back:hover { background: var(--bg-tertiary); }
.checkout-modal.is-wallet .modal-body { max-height: 74dvh; overflow-y: auto; }
.checkout-coupon-picker { grid-column: 1 / -1; min-width: 0; padding-top: 2px; }
.coupon-picker-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.coupon-picker-heading > span { color: var(--text-secondary); font-size: .78rem; font-weight: 600; }
.coupon-clear-choice { border: 0; background: transparent; color: var(--text-secondary); font-size: .76rem; padding: 3px 0 3px 8px; }
.coupon-clear-choice:hover { color: var(--accent-primary); }
.coupon-ticket-rail { display: flex; gap: 12px; overflow-x: auto; padding: 3px 2px 7px; scrollbar-width: thin; scroll-snap-type: x proximity; }
.coupon-ticket {
    position: relative;
    display: flex;
    flex: 0 0 152px;
    align-items: stretch;
    height: 88px;
    padding: 0;
    border: 1px solid color-mix(in srgb, #4975ed 25%, var(--border-color));
    border-radius: 12px;
    color: var(--coupon-ink);
    background: color-mix(in srgb, #4975ed 7%, var(--bg-primary));
    scroll-snap-align: start;
    transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.coupon-ticket::before, .coupon-ticket::after {
    content: '';
    position: absolute;
    right: 29px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--bg-primary);
    z-index: 1;
}
.coupon-ticket::before { top: -7px; }
.coupon-ticket::after { bottom: -7px; }
.coupon-ticket:hover { transform: translateY(-2px); border-color: var(--accent-primary); }
.coupon-ticket.is-selected {
    color: #fff;
    border-color: #4169ed;
    background: linear-gradient(120deg, #4169ed, #294ec9);
    box-shadow: 0 6px 14px rgba(45, 83, 205, .22);
}
.coupon-ticket-body { flex: 1; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 4px; padding: 9px 15px; }
.coupon-face { display: inline-flex; align-items: baseline; gap: 3px; line-height: 1; white-space: nowrap; }
.coupon-face strong { font-size: 2.15rem; font-weight: 800; letter-spacing: -.055em; font-variant-numeric: tabular-nums; }
.coupon-face small { font-size: .8rem; font-weight: 700; }
.coupon-ticket-caption { font-size: .64rem; letter-spacing: .08em; opacity: .8; }
.coupon-ticket-stub { display: grid; place-items: center; flex: 0 0 35px; border-left: 1px dashed currentColor; border-color: color-mix(in srgb, currentColor 32%, transparent); }
.coupon-ticket-stub i { font-size: 1rem; }
.coupon-ticket:focus-visible, .coupon-wallet-trigger:focus-visible, .coupon-clear-choice:focus-visible, .coupon-wallet-back:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--accent-primary) 45%, transparent);
    outline-offset: 3px;
}
.checkout-discount-chip { display: inline-flex; align-items: center; gap: 6px; color: var(--coupon-ink); font-size: .78rem; font-weight: 600; margin-top: 12px; }
.coupon-wallet-toolbar { display: flex; gap: 5px; padding: 4px; background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: 12px; width: fit-content; margin-bottom: 20px; }
.coupon-wallet-filter { display: inline-flex; align-items: center; gap: 9px; border: 0; border-radius: 8px; padding: 8px 15px; background: transparent; color: var(--text-secondary); font-size: .84rem; }
.coupon-wallet-filter.is-active { color: var(--text-primary); background: var(--bg-secondary); box-shadow: 0 2px 6px rgba(0, 0, 0, .06); font-weight: 700; }
.coupon-wallet-filter span { font-size: .72rem; color: var(--text-muted); font-variant-numeric: tabular-nums; }
.coupon-wallet-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.coupon-wallet-card { overflow: hidden; border: 1px solid var(--border-color); border-radius: 15px; background: var(--bg-primary); }
.coupon-wallet-card-main { display: flex; align-items: center; gap: 16px; padding: 20px 18px; background: color-mix(in srgb, #4975ed 6%, var(--bg-primary)); }
.coupon-wallet-card-face { color: var(--coupon-ink); padding-right: 16px; border-right: 1px dashed color-mix(in srgb, var(--coupon-ink) 30%, transparent); }
.coupon-wallet-card-face .coupon-face strong { font-size: 2.7rem; }
.coupon-wallet-card-title { font-size: .91rem; font-weight: 700; color: var(--text-primary); margin-bottom: 6px; }
.coupon-wallet-card-status { font-size: .74rem; color: var(--text-secondary); }
.coupon-wallet-card.is-history .coupon-wallet-card-main { background: var(--bg-tertiary); }
.coupon-wallet-card.is-history .coupon-wallet-card-face { color: var(--text-muted); }
.coupon-wallet-card-bottom { padding: 14px 18px; display: grid; gap: 12px; }
.coupon-wallet-card-expiry { color: var(--text-secondary); font-size: .75rem; font-variant-numeric: tabular-nums; }
.coupon-wallet-card-footer { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.coupon-wallet-use { border: 0; border-radius: 7px; background: #365ee2; color: #fff; padding: 6px 15px; font-size: .77rem; font-weight: 600; white-space: nowrap; }
.coupon-wallet-use:disabled { opacity: .4; cursor: not-allowed; }
.coupon-wallet-card details { font-size: .74rem; color: var(--text-secondary); }
.coupon-wallet-card details summary { cursor: pointer; }
.coupon-wallet-card dl { display: grid; gap: 6px; margin: 10px 0 0; }
.coupon-wallet-card dl div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 10px; }
.coupon-wallet-card dt { font-weight: 400; }
.coupon-wallet-card dd { margin: 0; font-variant-numeric: tabular-nums; }
.coupon-wallet-rules { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--border-color); color: var(--text-secondary); font-size: .8rem; line-height: 1.8; }
.coupon-wallet-rules summary { cursor: pointer; font-weight: 600; }
.coupon-wallet-rules ul { margin: 12px 0 0; padding-left: 20px; }
.coupon-wallet-student { margin-top: 12px; font-size: .78rem; }
.coupon-wallet-empty { grid-column: 1 / -1; text-align: center; padding: 48px 15px; color: var(--text-muted); }
.coupon-wallet-empty > i { display: block; font-size: 2.5rem; color: var(--accent-primary); opacity: .6; margin-bottom: 16px; transform: rotate(-10deg); }
.coupon-wallet-empty p { margin: 0; font-size: .88rem; }
.coupon-wallet-loading { opacity: .65; }
@media (max-width: 600px) {
    .pricing-header { display: flex; justify-content: space-between; gap: 8px; }
    .pricing-header::before { display: none; }
    .coupon-wallet-trigger { padding: 8px 10px; gap: 6px; font-size: .75rem; }
    .checkout-header-actions { gap: 12px; }
    .checkout-header-title { gap: 6px; }
    .coupon-ticket { flex-basis: 140px; height: 82px; }
    .coupon-wallet-list { grid-template-columns: 1fr; }
    .coupon-wallet-card-main { padding: 18px; }
    .checkout-summary { padding: 20px 18px 16px; grid-template-columns: minmax(0, 1fr) auto; }
    .checkout-summary h3 { font-size: 1.15rem; }
    .checkout-price strong { font-size: 2.1rem; }
}
@media (prefers-reduced-motion: reduce) {
    .coupon-ticket, .coupon-wallet-trigger { transition: none; }
    .coupon-ticket:hover { transform: none; }
}
