:root {
    --bg-main: #f8fbff;
    --bg-card: #ffffff;
    --accent-blue: #007bff;
    --accent-teal: #00d28d;
    --text-main: #001a3d;
    --text-secondary: #7a869a;
    --muted-color: #7a869a;
    --glass-border: #e1e8f0;
    --focus-ring: rgba(0, 123, 255, 0.28);
    --shadow-sm: 0 2px 10px rgba(0, 26, 61, 0.06);
    --shadow-md: 0 8px 32px rgba(0, 26, 61, 0.08), 0 2px 8px rgba(0, 26, 61, 0.04);
    --radius: 12px;
    --page-gutter: 16px;
    --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

* {
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
}

body {
    margin: 0;
    font-family: var(--font-sans);
    background: var(--bg-main);
    color: var(--text-main);
    padding-bottom: 100px;
}

.app-container {
    max-width: 520px;
    margin: 0 auto;
}

.donate-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 12px 0 8px;
    color: var(--accent-blue);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}

.donate-back svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
}

.ps-page-head {
    padding: 0 var(--page-gutter);
}

.ps-page-head .donate-back {
    margin-left: 0;
    margin-right: 0;
}

.ps-hero {
    position: relative;
    margin: 0;
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid rgba(225, 232, 240, 0.95);
    box-shadow: var(--shadow-sm);
    background: linear-gradient(145deg, #001a3d 0%, #003087 55%, #0070d1 100%);
    line-height: 0;
}

.ps-hero::after {
    content: '';
    position: absolute;
    inset: 0 0 auto 0;
    height: 52%;
    pointer-events: none;
    z-index: 1;
    background: linear-gradient(
        180deg,
        rgba(0, 26, 61, 0.42) 0%,
        rgba(0, 26, 61, 0.12) 45%,
        transparent 100%
    );
}

.ps-hero::before {
    content: '';
    position: absolute;
    inset: auto 0 0 0;
    height: 52%;
    pointer-events: none;
    z-index: 1;
    background: linear-gradient(
        0deg,
        rgba(0, 26, 61, 0.58) 0%,
        rgba(0, 26, 61, 0.2) 50%,
        transparent 100%
    );
}

.ps-hero-img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
    object-position: center;
    vertical-align: top;
    position: relative;
    z-index: 0;
}

.ps-hero-img[hidden] {
    display: none !important;
}

.ps-banner-brand-corner {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    padding: 10px 12px;
    pointer-events: none;
}

.ps-banner-brand-corner .ps-banner-h1 {
    margin: 0;
    font-size: inherit;
    font-weight: inherit;
}

.ps-banner-brand-wrap {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: clamp(33px, 9.3vw, 45px);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1;
}

.ps-banner-brand-wrap .ps-banner-title-icon {
    height: 1em;
    width: auto;
    max-width: 1.15em;
    flex-shrink: 0;
    display: block;
    object-fit: contain;
    filter: drop-shadow(0 1px 3px rgba(0, 26, 61, 0.92));
}

.ps-banner-brand {
    font-size: 1em;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1;
    color: #ffffff;
    text-shadow:
        0 1px 3px rgba(0, 26, 61, 0.92),
        0 0 26px rgba(0, 26, 61, 0.5);
}

.ps-banner-bottom-copy {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 2;
    padding: 8px 12px 10px;
    margin: 0;
    pointer-events: none;
    line-height: normal;
}

.ps-banner-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    max-width: 100%;
}

.ps-banner-tagline {
    margin: 0;
    font-size: clamp(16px, 5.2vw, 28px);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.12;
    color: #ffffff;
    white-space: nowrap;
    text-shadow:
        0 1px 3px rgba(0, 26, 61, 0.92),
        0 0 26px rgba(0, 26, 61, 0.5);
}

.ps-banner-delivery {
    margin: 4px 0 0;
    padding: 0;
    font-size: clamp(11px, 3.1vw, 12px);
    font-weight: 400;
    color: #fff;
    line-height: 1.35;
    text-align: left;
    text-shadow: 0 1px 2px rgba(0, 26, 61, 0.55);
}

.ps-hero-actions {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 8px;
    margin: 8px 0 10px;
    padding: 0;
}

.ps-hero-help-btn {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 5px 12px;
    min-height: 30px;
    border-radius: 10px;
    border: 1px solid rgba(0, 123, 255, 0.2);
    box-sizing: border-box;
    background: rgba(0, 123, 255, 0.1);
    color: #2a3a4a;
    font-family: inherit;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.25;
    text-align: center;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    backdrop-filter: blur(10px) saturate(1.05);
    -webkit-backdrop-filter: blur(10px) saturate(1.05);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.7) inset;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.12s ease;
}

.ps-hero-help-btn:hover {
    background: rgba(0, 123, 255, 0.16);
    border-color: rgba(0, 123, 255, 0.28);
    color: #1a2533;
}

.ps-hero-help-btn:active {
    transform: scale(0.98);
    background: rgba(0, 123, 255, 0.12);
}

.ps-hero-help-btn:focus-visible {
    outline: 2px solid var(--accent-blue);
    outline-offset: 2px;
}

@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    .ps-hero-help-btn {
        background: #e8f2ff;
        box-shadow: none;
    }
}

.ps-block {
    margin: 0 var(--page-gutter) 10px;
    padding: 12px;
    background: var(--bg-card);
    border: 1px solid rgba(225, 232, 240, 0.95);
    border-radius: 14px;
    box-shadow: var(--shadow-sm);
}

.ps-block-title {
    margin: 0 0 10px;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-main);
}

.ps-region-row,
.ps-product-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.ps-product-card {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ps-denom-area {
    min-height: 0;
}

.ps-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 40px;
    padding: 6px 10px;
    border-radius: 10px;
    border: 1px solid var(--glass-border);
    background: #fff;
    font-size: 12px;
    font-weight: 700;
    color: var(--text-secondary);
    cursor: pointer;
    font-family: inherit;
    flex: 1 1 calc(50% - 6px);
    min-width: 0;
    max-width: 100%;
}

@media (min-width: 360px) {
    .ps-chip {
        flex: 1 1 auto;
    }
}

.ps-chip.is-active {
    background: linear-gradient(180deg, #dbeafe 0%, #eff6ff 100%);
    color: var(--text-main);
    border-color: #93c5fd;
}

.ps-chip-flag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 18px;
    flex-shrink: 0;
    line-height: 1;
}

.ps-chip-flag--all {
    width: 21px;
    height: 21px;
}

.ps-chip-flag-img {
    width: 24px;
    height: 18px;
    object-fit: contain;
    display: block;
    flex-shrink: 0;
}

.ps-chip-flag--all .ps-chip-flag-img {
    width: 21px;
    height: 21px;
}

.ps-chip-flag--emoji {
    width: auto;
    height: auto;
    font-size: 16px;
    line-height: 1;
}

.ps-country-group-title {
    margin: 12px 0 6px;
    font-size: 12px;
    font-weight: 700;
    color: var(--text-secondary);
}

.ps-country-group-title:first-child {
    margin-top: 0;
}

.ps-denom-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
}

.ps-denom-btn {
    border: 1px solid var(--glass-border);
    background: #fff;
    color: var(--text-main);
    font-family: inherit;
    font-size: 12px;
    font-weight: 600;
    padding: 8px 6px;
    border-radius: var(--radius);
    cursor: pointer;
    width: 100%;
    min-width: 0;
    min-height: 40px;
    box-sizing: border-box;
}

@media (max-width: 320px) {
    .ps-denom-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.ps-denom-btn.is-active {
    border-color: var(--accent-blue);
    box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.18);
    background: linear-gradient(180deg, #f5f9ff 0%, #fff 100%);
}

.ps-empty {
    margin: 0;
    padding: 16px 12px;
    text-align: center;
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.45;
}

.ps-email-field {
    margin-bottom: 4px;
}

.ps-email-field label {
    display: block;
    margin-bottom: 6px;
    font-size: 12px;
    color: var(--text-main);
}

.email-label-main {
    font-weight: 700;
}

.email-label-optional {
    font-weight: 400;
    color: var(--muted-color);
}

.ps-email-field input {
    width: 100%;
    border: 1px solid var(--glass-border);
    border-radius: 12px;
    padding: 10px 12px;
    font-family: inherit;
    font-size: 14px;
    background: #fafcfe;
}

.ps-email-field input:focus {
    outline: none;
    border-color: var(--accent-blue);
    box-shadow: 0 0 0 3px var(--focus-ring);
}

.ps-email-error {
    margin: 6px 0 0;
    font-size: 12px;
    color: #c2410c;
    font-weight: 600;
}

.ps-email-error[hidden] {
    display: none !important;
}

.ps-checkout-card {
    margin: 0 var(--page-gutter) 16px;
    padding: 12px;
    background: var(--bg-card);
    border: 1px solid rgba(225, 232, 240, 0.95);
    border-radius: 14px;
    box-shadow: var(--shadow-sm);
}

.checkout-total {
    margin: 10px 0 8px;
    font-size: 15px;
    font-weight: 800;
}

.checkout-pay {
    width: 100%;
    min-height: 44px;
    border: none;
    border-radius: 14px;
    background: #00cf8f;
    color: #fff;
    font-size: 14px;
    font-weight: 800;
    font-family: inherit;
    cursor: pointer;
}

.checkout-pay:disabled {
    opacity: 0.52;
    cursor: not-allowed;
}

.checkout-pay-legal {
    margin: 8px 0 0;
    font-size: 11px;
    color: var(--text-secondary);
    line-height: 1.35;
}

.checkout-pay-legal[hidden] {
    display: none !important;
}

.payment-methods {
    margin: 0 0 8px;
    border: 1px solid var(--glass-border);
    border-radius: 10px;
    background: #fafcfe;
    padding: 8px;
}

.payment-methods-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}

.payment-methods-title {
    margin: 0;
    font-size: 13px;
    font-weight: 800;
}

.payment-methods .qb-promo-field {
    flex: 1 1 auto;
    min-width: 0;
    max-width: min(200px, 52%);
    display: flex;
    align-items: center;
    gap: 8px;
    background: #fff;
    border: 1px solid var(--glass-border);
    border-radius: 12px;
    padding: 0 10px;
    min-height: 40px;
}

.payment-methods .qb-promo {
    flex: 1;
    border: none;
    background: transparent;
    font-family: inherit;
    font-size: 14px;
    outline: none;
    min-width: 0;
}

.payment-methods-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px;
}

.payment-method-btn {
    border: 1.5px solid var(--glass-border);
    background: #fff;
    border-radius: 8px;
    padding: 4px;
    cursor: pointer;
    position: relative;
}

.payment-method-btn.is-active {
    border-color: #00cf8f;
    box-shadow: 0 0 0 2px rgba(0, 207, 143, 0.18);
}

.payment-method-btn img {
    width: 100%;
    height: 30px;
    object-fit: contain;
}

.payment-method-btn--soon {
    opacity: 0.55;
    cursor: not-allowed;
}

.payment-method-soon-badge {
    position: absolute;
    top: 2px;
    right: 2px;
    font-size: 8px;
    font-weight: 800;
    background: #fff;
    border-radius: 4px;
    padding: 1px 3px;
    color: var(--text-secondary);
}

.crypto-usdt-panel {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--glass-border);
}

.crypto-usdt-panel[hidden] {
    display: none !important;
}

.crypto-usdt-lead {
    margin: 0 0 8px;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
}

.crypto-usdt-route-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
}

.crypto-route-btn {
    border: 1.5px solid var(--glass-border);
    background: #fff;
    border-radius: 10px;
    padding: 10px;
    font-family: inherit;
    font-weight: 700;
    font-size: 13px;
    cursor: pointer;
}

.crypto-route-btn.is-active {
    border-color: #00cf8f;
    box-shadow: 0 0 0 2px rgba(0, 207, 143, 0.18);
    background: #f5fffb;
}

.crypto-usdt-detail {
    margin-top: 10px;
    padding: 10px;
    border-radius: 10px;
    background: #ffffff;
    border: 1px solid var(--glass-border);
}

.crypto-usdt-detail.crypto-usdt-detail--bybit-stack {
    padding: 0;
    border: none;
    background: transparent;
}

.crypto-usdt-detail.crypto-usdt-detail--bybit-stack[hidden] {
    display: none !important;
}

.crypto-bybit-combined-plate {
    padding: 10px;
    border-radius: 10px;
    background: #fafcfe;
    border: 1px dashed rgba(0, 123, 255, 0.22);
}

.crypto-bybit-section-gap {
    border: none;
    border-top: 1px solid var(--glass-border);
    margin: 12px 0;
}

.crypto-bybit-section-gap[hidden] {
    display: none !important;
}

.crypto-other-combined-plate {
    margin-top: 12px;
    padding: 10px;
    border-radius: 10px;
    background: #fafcfe;
    border: 1px dashed rgba(0, 123, 255, 0.22);
}

.crypto-other-addr-amount-divider {
    border: none;
    border-top: 1px solid var(--glass-border);
    margin: 12px 0;
}

.crypto-other-addr-amount-divider[hidden] {
    display: none !important;
}

.crypto-detail-label {
    margin: 0 0 6px;
    font-size: 12px;
    font-weight: 700;
    color: var(--text-main);
}

.crypto-detail-hint {
    margin: 0 0 8px;
    font-size: 11px;
    color: var(--text-secondary);
}

.crypto-detail-value {
    font-size: 13px;
    font-weight: 800;
    font-family: ui-monospace, 'Cascadia Mono', 'Segoe UI Mono', monospace;
    word-break: break-all;
}

.crypto-bybit-uid-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.crypto-detail-value--bybit-row {
    flex: 1;
    min-width: 0;
    margin: 0;
}

.crypto-copy-icon-btn {
    position: relative;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 1px solid rgba(0, 123, 255, 0.35);
    background: rgba(0, 123, 255, 0.06);
    border-radius: 8px;
    cursor: pointer;
    color: #0056b3;
}

.crypto-copy-icon-btn svg {
    width: 18px;
    height: 18px;
}

.copy-feedback-tip {
    position: absolute;
    bottom: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%);
    padding: 4px 8px;
    border-radius: 6px;
    background: rgba(0, 0, 0, 0.88);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    z-index: 5;
}

.copy-feedback-tip.is-visible {
    opacity: 1;
    visibility: visible;
}

.crypto-usdt-plate-divider {
    border: none;
    border-top: 1px solid var(--glass-border);
    margin: 8px 0;
}

.crypto-usdt-send-title {
    margin: 0;
    font-size: 12px;
    font-weight: 700;
}

.crypto-usdt-send-title-muted {
    font-weight: 500;
    color: var(--text-secondary);
}

.crypto-usdt-send-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.crypto-usdt-send-amount-wrap--inline {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px;
    flex: 1;
    min-width: 0;
}

.crypto-usdt-send-amount {
    font-size: 13px;
    font-weight: 800;
    font-family: ui-monospace, 'Cascadia Mono', 'Segoe UI Mono', monospace;
}

.crypto-usdt-send-rub {
    font-size: 11px;
    font-weight: 600;
    color: var(--text-secondary);
}

.crypto-usdt-send-block[hidden],
.crypto-bybit-send-section[hidden] {
    display: none !important;
}

.crypto-net-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
}

.crypto-net-card {
    padding: 8px 3px 6px;
    border: 1.5px solid var(--glass-border);
    background: #fff;
    border-radius: 12px;
    cursor: pointer;
    font-family: inherit;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

.crypto-net-card.is-active {
    border-color: #00cf8f;
    box-shadow: 0 0 0 2px rgba(0, 207, 143, 0.18);
    background: #f5fffb;
}

.crypto-net-card-img {
    width: 36px;
    height: 36px;
    object-fit: contain;
}

.crypto-net-card-label {
    font-size: 9px;
    font-weight: 700;
    text-align: center;
    line-height: 1.2;
}

.crypto-net-selected[hidden] {
    display: none !important;
}

.crypto-net-addr-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.crypto-net-alert {
    padding: 5px 8px;
    background: #fff4e5;
    border: 1px solid #ffc107;
    border-radius: 8px;
    margin-top: 10px;
}

.crypto-net-alert[hidden] {
    display: none !important;
}

.crypto-net-alert-text {
    margin: 0;
    font-size: 10px;
    font-weight: 600;
    color: #5d4037;
}

.crypto-net-addr {
    flex: 1;
    min-width: 0;
    font-size: 11px;
    font-weight: 600;
    font-family: ui-monospace, 'Cascadia Mono', 'Segoe UI Mono', monospace;
    word-break: break-all;
    color: var(--text-secondary);
}

.crypto-usdt-error {
    margin: 8px 0 0;
    font-size: 12px;
    color: #c2410c;
    font-weight: 600;
}

.crypto-usdt-error[hidden] {
    display: none !important;
}

.checkout-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 26, 61, 0.45);
    z-index: 4000;
    display: none;
    align-items: flex-end;
    justify-content: center;
    padding: 12px;
}

.checkout-overlay.is-open {
    display: flex;
}

.checkout-sheet {
    width: 100%;
    max-width: 480px;
    background: #fff;
    border-radius: 16px 16px 0 0;
    max-height: 85vh;
    overflow: auto;
}

.checkout-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    border-bottom: 1px solid var(--glass-border);
}

.checkout-close {
    border: none;
    background: transparent;
    font-size: 24px;
    cursor: pointer;
    line-height: 1;
}

.post-payment-body {
    padding: 12px 16px 20px;
}

.post-payment-lead {
    margin: 0 0 10px;
    font-size: 14px;
    line-height: 1.45;
}

.post-payment-total {
    margin: 0 0 10px;
    font-weight: 800;
}

.post-payment-lines {
    margin: 0 0 12px;
    padding: 0;
    list-style: none;
}

.post-payment-lines li {
    font-size: 13px;
    padding: 8px 10px;
    border: 1px solid var(--glass-border);
    border-radius: 8px;
    margin-bottom: 6px;
}

.post-payment-ok {
    width: 100%;
    min-height: 44px;
    border-radius: 14px;
    border: 1px solid rgba(0, 123, 255, 0.35);
    background: #fff;
    color: var(--accent-blue);
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
}

.ps-loading {
    text-align: center;
    padding: 20px;
    color: var(--text-secondary);
    font-size: 13px;
}

/* PS Plus subcategories & product cards */
.ps-plus-sub-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    margin-bottom: 10px;
}

.ps-plus-sub-btn {
    width: 100%;
    min-height: 34px;
    border: 1px solid var(--glass-border);
    border-radius: 10px;
    background: #fff;
    color: var(--text-main);
    font-family: inherit;
    font-size: clamp(10px, 2.8vw, 11px);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.2;
    padding: 5px 6px;
    cursor: pointer;
    white-space: nowrap;
}

.ps-plus-sub-btn.is-active {
    background: linear-gradient(180deg, #dbeafe 0%, #eff6ff 100%);
    border-color: rgba(0, 123, 255, 0.28);
}

.ps-plus-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.ps-plus-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 100%;
    border: 1px solid var(--glass-border);
    border-radius: 14px;
    background: #fff;
    box-shadow: var(--shadow-sm);
    overflow: hidden;
}

.ps-plus-card-art {
    position: relative;
    aspect-ratio: 16 / 10;
    background: linear-gradient(145deg, #eef4ff 0%, #dce8f8 55%, #c8d9f0 100%);
    line-height: 0;
}

.ps-plus-card-art::after {
    content: 'PS Plus';
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.04em;
    color: rgba(0, 26, 61, 0.28);
    pointer-events: none;
}

.ps-plus-card-art--has-image::after {
    display: none;
}

.ps-plus-card-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.ps-plus-region-flag {
    position: absolute;
    top: 6px;
    left: 6px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 2px 4px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 1px 4px rgba(0, 26, 61, 0.12);
    line-height: 0;
}

.ps-plus-region-flag img {
    display: block;
    width: 22px;
    height: 16px;
    object-fit: cover;
    border-radius: 2px;
}

.ps-plus-cart-fab {
    position: absolute;
    right: 6px;
    bottom: 6px;
    z-index: 3;
    width: 34px;
    height: 34px;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 2px 8px rgba(0, 26, 61, 0.14);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
}

.ps-plus-cart-fab-icon {
    width: 18px;
    height: 18px;
    display: block;
}

.ps-plus-cart-badge {
    position: absolute;
    top: -4px;
    right: -4px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 999px;
    background: var(--accent-blue);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    line-height: 16px;
    text-align: center;
}

.ps-plus-cart-badge[hidden] {
    display: none !important;
}

.ps-plus-cart-stepper {
    position: absolute;
    right: 6px;
    bottom: 6px;
    z-index: 3;
    display: none;
    align-items: center;
    gap: 4px;
    padding: 3px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 2px 8px rgba(0, 26, 61, 0.14);
}

.ps-plus-cart-stepper.is-active {
    display: inline-flex;
}

.ps-plus-card.is-cart-open .ps-plus-cart-fab {
    display: none;
}

.ps-plus-cart-step-btn {
    width: 28px;
    height: 28px;
    border: 1px solid var(--glass-border);
    border-radius: 50%;
    background: #fff;
    color: var(--text-main);
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    padding: 0;
}

.ps-plus-cart-step-qty {
    min-width: 18px;
    text-align: center;
    font-size: 12px;
    font-weight: 700;
    color: var(--text-main);
}

.ps-plus-card-inner {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    gap: 4px;
    padding: 8px 8px 10px;
}

.ps-plus-price-row {
    display: flex;
    align-items: baseline;
    gap: 6px;
    min-height: 18px;
}

.ps-plus-price {
    font-size: 14px;
    font-weight: 800;
    color: var(--text-main);
    letter-spacing: -0.02em;
}

.ps-plus-card-inner h3 {
    margin: 0;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.25;
    color: var(--text-main);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ps-cart-sticky {
    position: fixed;
    left: 50%;
    bottom: calc(72px + env(safe-area-inset-bottom, 0px));
    transform: translateX(-50%);
    z-index: 35;
    width: min(488px, calc(100vw - 24px));
    padding: 10px 14px;
    border-radius: 14px;
    border: 1px solid rgba(0, 123, 255, 0.22);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 8px 28px rgba(0, 26, 61, 0.12);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.ps-cart-sticky:not(.is-visible) {
    display: none;
}

.ps-cart-sticky.is-visible {
    display: block;
}

.ps-cart-sticky-title {
    margin: 0;
    text-align: center;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-main);
}

.ps-cart-toast {
    position: fixed;
    left: 50%;
    bottom: calc(130px + env(safe-area-inset-bottom, 0px));
    transform: translateX(-50%) translateY(12px);
    z-index: 36;
    max-width: min(420px, calc(100vw - 32px));
    padding: 10px 14px;
    border-radius: 12px;
    background: rgba(0, 26, 61, 0.92);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.ps-cart-toast.is-visible {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}
