        /* ============================================================
           ⭐ POINTS MODAL — مكافآتي
           ============================================================ */
        #points-modal { padding: 0 !important; max-height: 92vh; overflow: hidden; display: flex; flex-direction: column; }
        #points-modal::before { display: none; }

        .pt-hero {
            position: relative; overflow: hidden;
            padding: 18px 20px 22px;
            color: #fff;
            background:
                radial-gradient(ellipse at top right, rgba(251,191,36,0.5), transparent 50%),
                radial-gradient(ellipse at bottom left, rgba(217,119,6,0.4), transparent 60%),
                linear-gradient(135deg, #92400e 0%, #d97706 50%, #f59e0b 100%);
            border-radius: 32px 32px 0 0;
            flex-shrink: 0;
        }
        .pt-hero::before {
            content: '\f005'; /* fa-star */
            font-family: 'Font Awesome 6 Free'; font-weight: 900;
            position: absolute; bottom: -28px; left: -16px;
            font-size: 9rem; color: rgba(255,255,255,0.12);
            transform: rotate(-15deg);
            pointer-events: none;
        }
        .pt-hero::after {
            content: ''; position: absolute; top: -50px; right: -40px;
            width: 180px; height: 180px; border-radius: 50%;
            background: radial-gradient(circle, rgba(255,255,255,0.18), transparent 70%);
            pointer-events: none;
        }

        .pt-hero-top {
            position: relative; z-index: 2;
            display: flex; justify-content: space-between; align-items: center;
        }
        .pt-hero-close {
            width: 38px; height: 38px; border-radius: 13px;
            background: rgba(255,255,255,0.22);
            backdrop-filter: blur(10px);
            color: #fff; display: flex; align-items: center; justify-content: center;
            transition: all .25s; border: 1px solid rgba(255,255,255,0.2);
        }
        .pt-hero-close:hover { background: rgba(255,255,255,0.32); transform: rotate(90deg); }

        .pt-hero-tier {
            display: inline-flex; align-items: center; gap: 6px;
            padding: 6px 12px; border-radius: 999px;
            background: rgba(255,255,255,0.22);
            backdrop-filter: blur(10px);
            border: 1px solid rgba(255,255,255,0.25);
            font-size: 0.72rem; font-weight: 800;
            color: #fff;
        }

        .pt-hero-balance {
            text-align: center; position: relative; z-index: 2;
            margin-top: 16px;
        }
        .pt-hero-balance .label {
            display: inline-flex; align-items: center; gap: 6px;
            font-size: 0.78rem; opacity: 0.92; font-weight: 700;
        }
        .pt-hero-balance .value {
            font-size: 3.5rem; font-weight: 900; line-height: 1; letter-spacing: -0.04em;
            margin: 8px 0 4px; text-shadow: 0 4px 24px rgba(0,0,0,0.18);
        }
        .pt-hero-balance .sub {
            font-size: 0.78rem; opacity: 0.92; font-weight: 700;
            display: inline-flex; align-items: center; gap: 6px;
            padding: 4px 11px; border-radius: 999px;
            background: rgba(255,255,255,0.2);
            backdrop-filter: blur(8px);
        }

        /* Body */
        .pt-body, .wal-body {
            flex: 1; overflow-y: auto;
            padding: 16px 16px 8px;
            background: linear-gradient(180deg, #fffbeb 0%, #fafdfb 100%);
        }
        .wal-body { background: linear-gradient(180deg, #eff6ff 0%, #fafdfb 100%); }

        /* Stats grid (shared) */
        .pt-stats, .wal-stats {
            display: grid; grid-template-columns: 1fr 1fr 1fr;
            gap: 8px; margin-bottom: 14px;
        }
        .pt-stat, .wal-stat {
            background: #fff; border: 1px solid #f1f5f9; border-radius: 14px;
            padding: 11px 8px; text-align: center;
            box-shadow: 0 2px 6px rgba(15,23,42,0.04);
        }
        .pt-stat .ico, .wal-stat .ico {
            width: 30px; height: 30px; border-radius: 9px;
            display: inline-flex; align-items: center; justify-content: center;
            margin-bottom: 5px; font-size: 0.78rem;
        }
        .pt-stat .v, .wal-stat .v { font-weight: 900; font-size: 1rem; color: #0f172a; line-height: 1; }
        .pt-stat .v .currency { font-size: 0.55rem; opacity: 0.6; margin-right: 2px; }
        .pt-stat .l, .wal-stat .l { font-size: 0.6rem; color: #64748b; font-weight: 700; margin-top: 4px; }

        /* Section title */
        .pt-section-title, .wal-section-title {
            display: flex; align-items: center; gap: 8px;
            font-weight: 800; font-size: 0.85rem; color: #0f172a;
            margin: 8px 4px 10px;
        }

        /* Redemption card */
        .pt-redeem-card {
            background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
            border: 1.5px solid #fde68a; border-radius: 20px;
            padding: 16px; margin-bottom: 14px;
            position: relative; overflow: hidden;
        }
        .pt-redeem-card::before {
            content: ''; position: absolute; top: -30px; left: -30px;
            width: 120px; height: 120px; border-radius: 50%;
            background: radial-gradient(circle, rgba(245,158,11,0.18), transparent 70%);
        }
        .pt-redeem-row {
            display: flex; justify-content: space-between; align-items: baseline;
            margin-bottom: 10px; position: relative; z-index: 2;
        }
        .pt-redeem-row .lbl { font-size: 0.78rem; color: #92400e; font-weight: 700; }
        .pt-redeem-row .val {
            font-size: 1.6rem; font-weight: 900;
            color: #b45309; letter-spacing: -0.02em;
        }
        .pt-redeem-arrow {
            display: flex; align-items: center; justify-content: center;
            margin: 8px 0; position: relative; z-index: 2;
        }
        .pt-redeem-arrow .line {
            flex: 1; height: 1px; background: rgba(217,119,6,0.3);
        }
        .pt-redeem-arrow .icon {
            width: 28px; height: 28px; border-radius: 50%;
            background: linear-gradient(135deg, #f59e0b, #d97706);
            color: #fff; display: flex; align-items: center; justify-content: center;
            font-size: 0.7rem; margin: 0 8px;
            box-shadow: 0 4px 10px -2px rgba(217,119,6,0.45);
        }
        .pt-redeem-eq {
            display: flex; justify-content: space-between; align-items: baseline;
            position: relative; z-index: 2;
        }
        .pt-redeem-eq .lbl { font-size: 0.78rem; color: #047857; font-weight: 700; }
        .pt-redeem-eq .val {
            font-size: 1.6rem; font-weight: 900;
            color: var(--brand-dark); letter-spacing: -0.02em;
        }
        .pt-redeem-eq .val .currency { font-size: 0.7rem; opacity: 0.7; margin-right: 3px; }

        .pt-redeem-slider-wrap { margin: 14px 0 4px; position: relative; z-index: 2; }
        .pt-redeem-slider-wrap .scale {
            display: flex; justify-content: space-between;
            font-size: 0.62rem; color: #92400e; font-weight: 700;
            margin-top: 4px;
        }
        .pt-slider {
            -webkit-appearance: none; appearance: none;
            width: 100%; height: 8px; border-radius: 999px;
            background: linear-gradient(to left, #fde68a, #fbbf24);
            outline: none; cursor: pointer;
        }
        .pt-slider::-webkit-slider-thumb {
            -webkit-appearance: none; appearance: none;
            width: 26px; height: 26px; border-radius: 50%;
            background: linear-gradient(135deg, #f59e0b, #d97706);
            box-shadow: 0 4px 12px -2px rgba(217,119,6,0.55), 0 0 0 4px rgba(255,255,255,0.95);
            cursor: grab;
        }
        .pt-slider::-moz-range-thumb {
            width: 26px; height: 26px; border-radius: 50%;
            background: linear-gradient(135deg, #f59e0b, #d97706);
            border: 4px solid #fff;
            box-shadow: 0 4px 12px -2px rgba(217,119,6,0.55);
            cursor: grab;
        }

        .pt-redeem-btn {
            width: 100%; margin-top: 14px;
            background: linear-gradient(135deg, #f59e0b, #d97706);
            color: #fff; padding: 13px 16px; border-radius: 14px;
            font-weight: 800; font-size: 0.92rem;
            box-shadow: 0 8px 20px -4px rgba(217,119,6,0.5), inset 0 -2px 0 rgba(0,0,0,0.08);
            transition: all .2s; position: relative; z-index: 2;
            display: flex; align-items: center; justify-content: center; gap: 8px;
        }
        .pt-redeem-btn:hover { transform: translateY(-1px); }
        .pt-redeem-btn:active { transform: scale(0.98); }

        /* Low-points info */
        .pt-low-info {
            background: linear-gradient(135deg, #eff6ff, #dbeafe);
            border: 1px dashed #93c5fd; border-radius: 18px;
            padding: 14px; margin-bottom: 14px;
            display: flex; gap: 12px; align-items: flex-start;
        }
        .pt-low-info .ico {
            width: 38px; height: 38px; border-radius: 12px;
            background: #fff; color: #1d4ed8;
            display: flex; align-items: center; justify-content: center;
            font-size: 0.95rem; flex-shrink: 0;
        }
        .pt-low-info .body { line-height: 1.4; }
        .pt-low-info .body .t { font-weight: 800; font-size: 0.85rem; color: #1e3a8a; }
        .pt-low-info .body .s { font-size: 0.72rem; color: #1d4ed8; font-weight: 600; margin-top: 4px; }
        .pt-low-info .body .progress {
            height: 6px; background: rgba(29,78,216,0.15); border-radius: 999px;
            margin-top: 8px; overflow: hidden;
        }
        .pt-low-info .body .progress .fill {
            height: 100%; background: linear-gradient(to left, #3b82f6, #1d4ed8);
            border-radius: 999px; transition: width .5s ease;
        }
        .pt-low-info .body .progress-label {
            font-size: 0.65rem; color: #1e40af; font-weight: 800; margin-top: 4px;
        }

        /* History row (shared by points + wallet) */
        .hx-row {
            display: flex; align-items: center; gap: 12px;
            background: #fff; border: 1px solid #f1f5f9; border-radius: 14px;
            padding: 11px 12px;
            transition: all .15s;
        }
        .hx-row + .hx-row { margin-top: 6px; }
        .hx-row:hover { border-color: #e2e8f0; box-shadow: var(--shadow-sm); }
        .hx-row .hx-icon {
            width: 38px; height: 38px; border-radius: 12px;
            display: flex; align-items: center; justify-content: center;
            font-size: 0.92rem; flex-shrink: 0;
        }
        .hx-row .hx-body { flex: 1; min-width: 0; line-height: 1.25; }
        .hx-row .hx-title {
            font-weight: 800; font-size: 0.85rem; color: #0f172a;
            overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
        }
        .hx-row .hx-sub {
            font-size: 0.65rem; color: #94a3b8; font-weight: 700; margin-top: 3px;
            display: flex; align-items: center; gap: 6px;
        }
        .hx-row .hx-amount {
            font-weight: 900; font-size: 0.95rem;
            letter-spacing: -0.01em; flex-shrink: 0;
            font-family: 'SF Mono', Menlo, monospace;
        }
        .hx-amount.plus { color: #059669; }
        .hx-amount.minus { color: #dc2626; }

        .hx-empty {
            text-align: center; padding: 36px 16px;
            color: #94a3b8;
        }
        .hx-empty i { font-size: 2.4rem; opacity: 0.25; display: block; margin-bottom: 10px; }
        .hx-empty .t { font-weight: 800; font-size: 0.92rem; color: #475569; }
        .hx-empty .s { font-size: 0.72rem; color: #94a3b8; font-weight: 600; margin-top: 4px; }

        /* ============================================================
           💳 WALLET MODAL — بسطة Pay
           ============================================================ */
        #wallet-modal { padding: 0 !important; max-height: 92vh; overflow: hidden; display: flex; flex-direction: column; }
        #wallet-modal::before { display: none; }

        .wal-hero {
            position: relative; overflow: hidden;
            padding: 18px 20px 26px;
            color: #fff;
            background:
                radial-gradient(ellipse at top right, rgba(59,130,246,0.5), transparent 50%),
                radial-gradient(ellipse at bottom left, rgba(8,145,178,0.4), transparent 60%),
                linear-gradient(135deg, #1e3a8a 0%, #2563eb 50%, #06b6d4 100%);
            border-radius: 32px 32px 0 0;
            flex-shrink: 0;
        }
        .wal-hero::before {
            content: '\f555'; /* fa-wallet */
            font-family: 'Font Awesome 6 Free'; font-weight: 900;
            position: absolute; bottom: -32px; left: -22px;
            font-size: 9rem; color: rgba(255,255,255,0.1);
            transform: rotate(-12deg);
            pointer-events: none;
        }
        .wal-hero::after {
            content: ''; position: absolute; top: -60px; right: -30px;
            width: 200px; height: 200px; border-radius: 50%;
            background: radial-gradient(circle, rgba(255,255,255,0.15), transparent 70%);
            pointer-events: none;
        }
        /* Card chip decoration */
        .wal-hero .chip {
            position: absolute; bottom: 18px; right: 20px;
            width: 36px; height: 26px; border-radius: 6px;
            background: linear-gradient(135deg, #fbbf24, #d97706);
            opacity: 0.45;
            box-shadow: inset 0 -4px 0 rgba(0,0,0,0.15);
        }
        .wal-hero .chip::after {
            content: ''; position: absolute; inset: 4px;
            border: 1px solid rgba(0,0,0,0.18);
            border-radius: 4px;
        }

        .wal-hero-top {
            position: relative; z-index: 2;
            display: flex; justify-content: space-between; align-items: center;
        }
        .wal-hero-close {
            width: 38px; height: 38px; border-radius: 13px;
            background: rgba(255,255,255,0.22);
            backdrop-filter: blur(10px);
            color: #fff; display: flex; align-items: center; justify-content: center;
            transition: all .25s; border: 1px solid rgba(255,255,255,0.2);
        }
        .wal-hero-close:hover { background: rgba(255,255,255,0.32); transform: rotate(90deg); }
        .wal-hero-brand {
            display: inline-flex; align-items: center; gap: 6px;
            padding: 6px 12px; border-radius: 999px;
            background: rgba(255,255,255,0.22);
            backdrop-filter: blur(10px);
            border: 1px solid rgba(255,255,255,0.25);
            font-size: 0.7rem; font-weight: 800; color: #fff;
        }

        .wal-hero-balance { text-align: center; position: relative; z-index: 2; margin-top: 16px; }
        .wal-hero-balance .label { font-size: 0.78rem; opacity: 0.92; font-weight: 700; }
        .wal-hero-balance .value {
            font-size: 3.4rem; font-weight: 900; line-height: 1; letter-spacing: -0.04em;
            margin: 6px 0 4px; text-shadow: 0 4px 24px rgba(0,0,0,0.18);
            font-family: 'SF Mono', Menlo, monospace;
        }
        .wal-hero-balance .currency {
            font-size: 0.78rem; opacity: 0.92; font-weight: 700;
            display: inline-flex; align-items: center; gap: 6px;
            padding: 4px 11px; border-radius: 999px;
            background: rgba(255,255,255,0.2);
            backdrop-filter: blur(8px);
        }

        /* Quick actions */
        .wal-actions {
            display: grid; grid-template-columns: 1fr 1fr;
            gap: 8px; margin-bottom: 14px;
        }
        .wal-action-btn {
            background: #fff; border: 1px solid #f1f5f9; border-radius: 16px;
            padding: 14px 12px;
            display: flex; flex-direction: column; align-items: center; gap: 6px;
            transition: all .2s;
            box-shadow: 0 2px 6px rgba(15,23,42,0.04);
            cursor: pointer;
        }
        .wal-action-btn:hover { transform: translateY(-1px); box-shadow: var(--shadow-md); }
        .wal-action-btn .ico {
            width: 40px; height: 40px; border-radius: 13px;
            display: flex; align-items: center; justify-content: center;
            font-size: 1rem;
        }
        .wal-action-btn.topup .ico { background: linear-gradient(135deg, #2563eb, #1d4ed8); color: #fff; box-shadow: 0 6px 14px -3px rgba(37,99,235,0.45); }
        .wal-action-btn.refund .ico { background: linear-gradient(135deg, #94a3b8, #64748b); color: #fff; }
        .wal-action-btn .lbl { font-weight: 800; font-size: 0.82rem; color: #0f172a; }
        .wal-action-btn .sub { font-size: 0.6rem; color: #94a3b8; font-weight: 700; }

        /* Top-up section */
        .wal-topup-section {
            background: linear-gradient(135deg, #eff6ff, #ffffff);
            border: 1px solid #bfdbfe; border-radius: 20px;
            padding: 16px; margin-bottom: 14px;
            animation: walSlideIn .25s ease-out;
            overflow: hidden;
        }
        @keyframes walSlideIn {
            from { opacity: 0; transform: translateY(-6px); max-height: 0; padding-top: 0; padding-bottom: 0; }
            to { opacity: 1; transform: translateY(0); max-height: 800px; }
        }
        .wal-topup-head {
            display: flex; align-items: center; justify-content: space-between;
            margin-bottom: 12px;
        }
        .wal-topup-head .ttl {
            font-weight: 800; font-size: 0.92rem; color: #1e3a8a;
            display: flex; align-items: center; gap: 6px;
        }
        .wal-topup-close {
            width: 28px; height: 28px; border-radius: 9px;
            background: rgba(37,99,235,0.1); color: #1d4ed8;
            display: flex; align-items: center; justify-content: center;
            font-size: 0.75rem; transition: background .2s;
        }
        .wal-topup-close:hover { background: rgba(37,99,235,0.2); }
        .wal-amount-grid {
            display: grid; grid-template-columns: repeat(4, 1fr);
            gap: 6px; margin-bottom: 10px;
        }
        .wal-amount-btn {
            background: #fff; border: 1.5px solid #e2e8f0; border-radius: 12px;
            padding: 10px 6px; font-weight: 800; font-size: 0.85rem;
            color: #1e3a8a; transition: all .2s; cursor: pointer;
            text-align: center;
        }
        .wal-amount-btn:hover { border-color: #93c5fd; transform: translateY(-1px); }
        .wal-amount-btn.selected {
            background: linear-gradient(135deg, #2563eb, #1d4ed8);
            color: #fff; border-color: #2563eb;
            box-shadow: 0 4px 12px -2px rgba(37,99,235,0.45);
        }
        .wal-custom-input {
            width: 100%; background: #fff; border: 1.5px solid #e2e8f0;
            border-radius: 12px; padding: 10px 14px;
            font-weight: 800; font-size: 0.92rem; color: #0f172a;
            text-align: center; outline: none;
            transition: border-color .2s; margin-bottom: 10px;
        }
        .wal-custom-input:focus { border-color: #2563eb; }
        .wal-custom-input::placeholder { color: #94a3b8; font-weight: 600; font-size: 0.82rem; }

        .wal-topup-cards {
            margin: 10px 0; padding: 10px;
            background: rgba(255,255,255,0.7);
            border-radius: 12px;
        }
        .wal-topup-cards-label {
            font-size: 0.72rem; color: #1e3a8a; font-weight: 800;
            margin-bottom: 6px;
        }

        .wal-topup-submit {
            width: 100%;
            background: linear-gradient(135deg, #2563eb, #1d4ed8);
            color: #fff; padding: 13px 16px; border-radius: 14px;
            font-weight: 800; font-size: 0.92rem;
            box-shadow: 0 8px 20px -4px rgba(37,99,235,0.5), inset 0 -2px 0 rgba(0,0,0,0.08);
            transition: all .2s;
            display: flex; align-items: center; justify-content: center; gap: 8px;
        }
        .wal-topup-submit:hover { transform: translateY(-1px); }

        /* ============================================================
           👑 PRO DETAILS — اشتراك Basta Pro
           ============================================================ */
        #pro-details-modal { padding: 0 !important; max-height: 92vh; overflow: hidden; display: flex; flex-direction: column; }
        #pro-details-modal::before { display: none; }

        .pd-hero {
            position: relative; overflow: hidden;
            padding: 18px 20px 22px;
            color: #fff;
            background:
                radial-gradient(ellipse at top right, rgba(251,191,36,0.4), transparent 50%),
                radial-gradient(ellipse at bottom left, rgba(0,184,148,0.25), transparent 60%),
                linear-gradient(135deg, #022c22 0%, #064e3b 50%, #0f172a 100%);
            border-radius: 32px 32px 0 0;
            flex-shrink: 0;
        }
        .pd-hero::before {
            content: ''; position: absolute; top: -40px; left: -30px;
            width: 180px; height: 180px; border-radius: 50%;
            background: radial-gradient(circle, rgba(251,191,36,0.25), transparent 70%);
            pointer-events: none;
        }
        .pd-hero::after {
            content: ''; position: absolute; bottom: -50px; right: -50px;
            width: 200px; height: 200px; border-radius: 50%;
            background: radial-gradient(circle, rgba(0,184,148,0.15), transparent 70%);
            pointer-events: none;
        }
        .pd-hero-top {
            position: relative; z-index: 2;
            display: flex; justify-content: space-between; align-items: flex-start;
        }
        .pd-close-btn {
            width: 38px; height: 38px; border-radius: 13px;
            background: rgba(255,255,255,0.18);
            backdrop-filter: blur(10px);
            color: #fff; display: flex; align-items: center; justify-content: center;
            transition: all .25s; border: 1px solid rgba(255,255,255,0.18);
        }
        .pd-close-btn:hover { background: rgba(255,255,255,0.3); transform: rotate(90deg); }

        .pd-status-pill {
            display: inline-flex; align-items: center; gap: 6px;
            padding: 5px 11px; border-radius: 999px;
            background: rgba(34,197,94,0.18);
            border: 1px solid rgba(34,197,94,0.4);
            font-size: 0.7rem; font-weight: 800;
            color: #86efac;
        }
        .pd-status-pill.expired { background: rgba(239,68,68,0.2); border-color: rgba(239,68,68,0.4); color: #fca5a5; }
        .pd-status-pill .dot { width: 6px; height: 6px; border-radius: 50%; background: #22c55e; animation: pdPulse 1.5s infinite; }
        .pd-status-pill.expired .dot { background: #ef4444; animation: none; }
        @keyframes pdPulse {
            0%, 100% { box-shadow: 0 0 0 0 rgba(34,197,94,0.55); }
            70% { box-shadow: 0 0 0 6px rgba(34,197,94,0); }
        }

        .pd-crown {
            position: relative; z-index: 2;
            margin: 14px auto 12px;
            width: 76px; height: 76px; border-radius: 22px;
            background: linear-gradient(135deg, #fbbf24, #d97706);
            display: flex; align-items: center; justify-content: center;
            color: #fff; font-size: 2.1rem;
            box-shadow: 0 14px 32px -8px rgba(217,119,6,0.55), inset 0 -4px 8px rgba(0,0,0,0.15);
        }
        .pd-crown::before {
            content: ''; position: absolute; inset: -4px; border-radius: 24px;
            background: linear-gradient(135deg, rgba(251,191,36,0.55), rgba(217,119,6,0.4), rgba(251,191,36,0.2));
            z-index: -1; animation: pdSpin 6s linear infinite;
        }
        @keyframes pdSpin { to { transform: rotate(360deg); } }

        .pd-title { text-align: center; position: relative; z-index: 2; }
        .pd-title h3 { font-weight: 900; font-size: 1.5rem; letter-spacing: -0.025em; }
        .pd-title h3 .gold { color: #fbbf24; }
        .pd-title p { font-size: 0.78rem; opacity: 0.85; margin-top: 4px; font-weight: 600; }

        .pd-countdown {
            margin-top: 16px; position: relative; z-index: 2;
            background: rgba(255,255,255,0.12);
            backdrop-filter: blur(12px);
            border: 1px solid rgba(255,255,255,0.2);
            border-radius: 18px; padding: 14px;
            display: flex; align-items: center; gap: 14px;
        }
        .pd-countdown-circle {
            position: relative; width: 60px; height: 60px; flex-shrink: 0;
        }
        .pd-countdown-circle svg { transform: rotate(-90deg); }
        .pd-countdown-circle .ring-bg { stroke: rgba(255,255,255,0.15); }
        .pd-countdown-circle .ring-fg { stroke: #fbbf24; transition: stroke-dashoffset .8s ease; }
        .pd-countdown-circle .num {
            position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
            font-weight: 900; font-size: 1.05rem;
        }
        .pd-countdown-text { line-height: 1.3; }
        .pd-countdown-text .label { font-size: 0.7rem; font-weight: 700; opacity: 0.85; text-transform: uppercase; letter-spacing: 0.04em; }
        .pd-countdown-text .value { font-size: 1.15rem; font-weight: 900; color: #fbbf24; margin-top: 2px; }

        /* Body scroll area */
        .pd-body {
            flex: 1; overflow-y: auto;
            padding: 18px 18px 8px;
            background: linear-gradient(180deg, #fafdfb 0%, #f1f9f4 100%);
        }

        .pd-section-title {
            display: flex; align-items: center; gap: 8px;
            font-weight: 800; font-size: 0.85rem; color: #0f172a;
            margin: 4px 4px 10px;
        }
        .pd-section-title i { color: var(--brand); font-size: 0.82rem; }

        /* Stats grid */
        .pd-stats {
            display: grid; grid-template-columns: 1fr 1fr 1fr;
            gap: 8px; margin-bottom: 16px;
        }
        .pd-stat {
            background: #fff; border: 1px solid #f1f5f9; border-radius: 16px;
            padding: 12px 8px; text-align: center;
            box-shadow: 0 2px 6px rgba(15,23,42,0.04);
        }
        .pd-stat .ico {
            width: 32px; height: 32px; border-radius: 10px;
            display: inline-flex; align-items: center; justify-content: center;
            margin-bottom: 6px; font-size: 0.85rem;
        }
        .pd-stat .v { font-weight: 900; font-size: 1.05rem; color: #0f172a; line-height: 1; }
        .pd-stat .l { font-size: 0.62rem; color: #64748b; font-weight: 700; margin-top: 4px; text-transform: uppercase; letter-spacing: 0.04em; }

        /* Auto-renew toggle card (HERO of new feature) */
        .pd-renew-card {
            background: #fff; border: 1.5px solid #e2e8f0; border-radius: 20px;
            padding: 14px;
            display: flex; align-items: center; gap: 12px;
            transition: all .25s;
            margin-bottom: 16px;
        }
        .pd-renew-card.on {
            border-color: rgba(0,184,148,0.4);
            background: linear-gradient(135deg, #ecfdf5, #ffffff);
        }
        .pd-renew-card.off {
            border-color: rgba(239,68,68,0.3);
            background: linear-gradient(135deg, #fef2f2, #ffffff);
        }
        .pd-renew-card .ico {
            width: 44px; height: 44px; border-radius: 14px; flex-shrink: 0;
            display: flex; align-items: center; justify-content: center;
            font-size: 1.1rem; transition: all .3s;
        }
        .pd-renew-card.on .ico { background: linear-gradient(135deg, var(--brand), var(--brand-dark)); color: #fff; box-shadow: 0 6px 16px -4px rgba(0,184,148,0.45); }
        .pd-renew-card.off .ico { background: linear-gradient(135deg, #f87171, #dc2626); color: #fff; box-shadow: 0 6px 16px -4px rgba(220,38,38,0.4); }
        .pd-renew-card .body { flex: 1; line-height: 1.25; }
        .pd-renew-card .body .t { font-weight: 800; font-size: 0.92rem; color: #0f172a; }
        .pd-renew-card .body .s { font-size: 0.7rem; color: #64748b; font-weight: 600; margin-top: 3px; }
        .pd-renew-card.on .body .s { color: #047857; }
        .pd-renew-card.off .body .s { color: #b91c1c; }

        /* Toggle switch (premium) */
        .pd-toggle {
            position: relative; width: 52px; height: 30px; flex-shrink: 0;
            border-radius: 999px;
            background: #e2e8f0; cursor: pointer;
            transition: background .25s;
        }
        .pd-toggle.on { background: linear-gradient(135deg, var(--brand), var(--brand-dark)); }
        .pd-toggle .knob {
            position: absolute; top: 3px; right: 3px;
            width: 24px; height: 24px; border-radius: 50%;
            background: #fff;
            box-shadow: 0 3px 8px rgba(0,0,0,0.18);
            transition: transform .25s cubic-bezier(.34,1.56,.64,1);
        }
        .pd-toggle.on .knob { transform: translateX(-22px); }
        .pd-toggle .knob i {
            position: absolute; inset: 0;
            display: flex; align-items: center; justify-content: center;
            font-size: 0.62rem; color: #94a3b8;
            transition: color .2s;
        }
        .pd-toggle.on .knob i { color: var(--brand); }
        .pd-toggle.disabled { opacity: 0.5; cursor: not-allowed; }

        /* Timeline (subscription dates) */
        .pd-timeline {
            background: #fff; border: 1px solid #f1f5f9; border-radius: 20px;
            padding: 16px; margin-bottom: 16px;
            position: relative;
        }
        .pd-timeline-row {
            display: flex; align-items: center; gap: 14px; padding: 8px 0;
            position: relative;
        }
        .pd-timeline-row::before {
            content: ''; position: absolute;
            right: 17px; top: 32px; bottom: -8px;
            width: 2px; background: linear-gradient(to bottom, #cbd5e1, transparent);
        }
        .pd-timeline-row:last-child::before { display: none; }
        .pd-timeline-dot {
            width: 36px; height: 36px; border-radius: 50%;
            display: flex; align-items: center; justify-content: center;
            font-size: 0.85rem; flex-shrink: 0;
            position: relative; z-index: 2;
        }
        .pd-timeline-dot.start { background: #d1fae5; color: var(--brand-dark); }
        .pd-timeline-dot.now { background: linear-gradient(135deg, #fbbf24, #d97706); color: #fff; box-shadow: 0 0 0 4px rgba(251,191,36,0.18), 0 4px 10px -2px rgba(217,119,6,0.4); animation: pdPulseGold 2s infinite; }
        .pd-timeline-dot.next { background: #dbeafe; color: #1e40af; border: 2px dashed #93c5fd; }
        .pd-timeline-dot.next.cancelled { background: #fee2e2; color: #b91c1c; border-color: #fca5a5; }
        @keyframes pdPulseGold {
            0%, 100% { box-shadow: 0 0 0 4px rgba(251,191,36,0.18), 0 4px 10px -2px rgba(217,119,6,0.4); }
            50% { box-shadow: 0 0 0 8px rgba(251,191,36,0.08), 0 4px 10px -2px rgba(217,119,6,0.4); }
        }
        .pd-timeline-body { flex: 1; line-height: 1.25; }
        .pd-timeline-body .l { font-size: 0.65rem; font-weight: 800; color: #94a3b8; text-transform: uppercase; letter-spacing: 0.04em; }
        .pd-timeline-body .v { font-weight: 800; font-size: 0.92rem; color: #0f172a; margin-top: 3px; }
        .pd-timeline-body .v.amber { color: #b45309; }
        .pd-timeline-amount {
            padding: 4px 11px; border-radius: 999px;
            background: var(--brand-soft); color: var(--brand-dark);
            font-size: 0.72rem; font-weight: 800;
            white-space: nowrap;
        }
        .pd-timeline-amount.amber { background: #fef3c7; color: #92400e; }
        .pd-timeline-amount.cancelled { background: #fee2e2; color: #b91c1c; text-decoration: line-through; }

        /* Benefits grid (compact) */
        .pd-benefits {
            display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
            margin-bottom: 16px;
        }
        .pd-benefit {
            background: #fff; border: 1px solid #f1f5f9; border-radius: 16px;
            padding: 12px; display: flex; gap: 10px; align-items: flex-start;
            transition: all .2s;
        }
        .pd-benefit:hover { transform: translateY(-1px); box-shadow: var(--shadow-sm); }
        .pd-benefit .ico {
            width: 36px; height: 36px; border-radius: 10px;
            display: flex; align-items: center; justify-content: center;
            font-size: 0.95rem; flex-shrink: 0;
        }
        .pd-benefit .body { flex: 1; line-height: 1.25; min-width: 0; }
        .pd-benefit .body .t { font-weight: 800; font-size: 0.78rem; color: #0f172a; }
        .pd-benefit .body .s { font-size: 0.65rem; color: #64748b; font-weight: 600; margin-top: 3px; }

        /* Family members section */
        .pd-family-section {
            background: #fff; border: 1px solid #f1f5f9; border-radius: 20px;
            padding: 16px; margin-bottom: 16px;
        }
        .pd-family-head {
            display: flex; justify-content: space-between; align-items: center;
            margin-bottom: 12px;
        }
        .pd-family-head h4 { font-weight: 800; font-size: 0.92rem; color: #0f172a; display: flex; align-items: center; gap: 6px; }
        .pd-family-counter {
            font-size: 0.7rem; font-weight: 800;
            padding: 4px 10px; border-radius: 999px;
            background: var(--brand-soft); color: var(--brand-dark);
        }
        .pd-family-row {
            display: flex; align-items: center; gap: 10px;
            padding: 10px 12px; border-radius: 14px;
            background: #f8fafc; border: 1px solid #f1f5f9;
            margin-bottom: 6px;
            transition: background .2s;
        }
        .pd-family-row:hover { background: #f1f5f9; }
        .pd-family-row .avatar {
            width: 32px; height: 32px; border-radius: 50%;
            background: linear-gradient(135deg, #dbeafe, #bfdbfe);
            color: #1d4ed8; flex-shrink: 0;
            display: flex; align-items: center; justify-content: center;
            font-size: 0.78rem;
        }
        .pd-family-row .phone {
            flex: 1; font-weight: 800; font-size: 0.85rem; color: #0f172a;
            font-family: 'SF Mono', Menlo, Consolas, monospace;
            letter-spacing: 0.02em;
        }
        .pd-family-row .rm-btn {
            width: 30px; height: 30px; border-radius: 9px;
            background: #fef2f2; color: #dc2626;
            display: flex; align-items: center; justify-content: center;
            font-size: 0.72rem; transition: all .15s;
        }
        .pd-family-row .rm-btn:hover { background: #fee2e2; transform: scale(1.05); }

        .pd-family-add {
            display: flex; gap: 8px; margin-top: 10px;
        }
        .pd-family-add input {
            flex: 1; background: #f8fafc; border: 1.5px solid #e2e8f0;
            border-radius: 12px; padding: 10px 12px;
            font-size: 0.85rem; font-weight: 700; color: #0f172a;
            outline: none; transition: border-color .2s;
        }
        .pd-family-add input:focus { border-color: var(--brand); background: #fff; }
        .pd-family-add button {
            background: linear-gradient(135deg, var(--brand), var(--brand-dark));
            color: #fff; padding: 10px 18px; border-radius: 12px;
            font-weight: 800; font-size: 0.82rem;
            box-shadow: 0 4px 12px -3px rgba(0,184,148,0.45);
        }
        .pd-family-empty {
            text-align: center; padding: 16px;
            color: #94a3b8; font-size: 0.82rem; font-weight: 700;
        }
        .pd-family-empty i { font-size: 1.6rem; opacity: 0.4; display: block; margin-bottom: 6px; }
        .pd-family-hint { font-size: 0.65rem; color: #94a3b8; font-weight: 600; margin-top: 6px; text-align: center; }

        /* Footer */
        .pd-footer {
            padding: 14px 18px max(20px, env(safe-area-inset-bottom));
            background: linear-gradient(to top, #fff 75%, rgba(255,255,255,0.92) 100%);
            border-top: 1px solid #f1f5f9;
            display: flex; gap: 10px;
        }
        /* ============ Basta Pro Modal ============ */
        .pro-hero-card {
            position: relative;
            border-radius: 26px;
            padding: 26px 22px 22px;
            margin-bottom: 18px;
            background:
                radial-gradient(ellipse at top, rgba(74,176,79,0.55), transparent 70%),
                linear-gradient(135deg, #022c22 0%, #064e3b 50%, #0f172a 100%);
            box-shadow: 0 20px 50px -15px rgba(2,44,34,0.6), 0 6px 18px rgba(0,184,148,0.18);
            overflow: hidden;
            isolation: isolate;
        }
        .pro-hero-card::before {
            content: '';
            position: absolute; inset: 0;
            background-image:
                radial-gradient(circle at 18% 22%, rgba(255,215,100,0.18), transparent 28%),
                radial-gradient(circle at 88% 78%, rgba(0,184,148,0.32), transparent 35%);
            pointer-events: none;
        }
        .pro-hero-card::after {
            content: '';
            position: absolute; inset: -2px;
            border-radius: inherit;
            padding: 2px;
            background: linear-gradient(135deg, rgba(255,215,100,0.45), rgba(0,184,148,0.4), rgba(255,215,100,0.2));
            -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
            -webkit-mask-composite: xor; mask-composite: exclude;
            pointer-events: none;
        }
        .pro-hero-glow {
            position: absolute;
            top: -40px; left: 50%; transform: translateX(-50%);
            width: 240px; height: 100px;
            background: radial-gradient(ellipse, rgba(255,215,100,0.45), transparent 60%);
            filter: blur(20px);
            pointer-events: none;
        }
        .pro-hero-rays { position: absolute; inset: 0; pointer-events: none; opacity: 0.55; }
        .pro-hero-rays span {
            position: absolute;
            width: 2px; height: 80px;
            background: linear-gradient(to bottom, rgba(255,215,100,0.7), transparent);
            top: -10px;
            transform-origin: top center;
            animation: pro-ray 4.5s ease-in-out infinite;
        }
        .pro-hero-rays span:nth-child(1) { left: 18%; animation-delay: 0s; transform: rotate(-12deg); }
        .pro-hero-rays span:nth-child(2) { left: 42%; animation-delay: 1s; transform: rotate(-4deg); }
        .pro-hero-rays span:nth-child(3) { left: 62%; animation-delay: 1.8s; transform: rotate(6deg); }
        .pro-hero-rays span:nth-child(4) { left: 82%; animation-delay: 2.6s; transform: rotate(14deg); }
        @keyframes pro-ray {
            0%, 100% { opacity: 0.2; transform: scaleY(0.7) rotate(var(--r, 0deg)); }
            50% { opacity: 0.9; transform: scaleY(1.2) rotate(var(--r, 0deg)); }
        }

        .pro-hero-crown {
            width: 72px; height: 72px;
            margin: 0 auto 12px;
            border-radius: 22px;
            background: linear-gradient(135deg, #fde047 0%, #facc15 50%, #ca8a04 100%);
            display: flex; align-items: center; justify-content: center;
            font-size: 2rem; color: #422006;
            box-shadow:
                0 12px 28px -6px rgba(250,204,21,0.55),
                inset 0 -3px 0 rgba(202,138,4,0.4),
                inset 0 2px 0 rgba(255,255,255,0.4);
            animation: pro-crown-bob 3s ease-in-out infinite;
        }
        @keyframes pro-crown-bob {
            0%, 100% { transform: translateY(0) rotate(-3deg); }
            50% { transform: translateY(-4px) rotate(3deg); }
        }

        .pro-hero-title {
            font-size: 1.85rem;
            font-weight: 900;
            letter-spacing: -0.02em;
            line-height: 1.1;
            text-shadow: 0 2px 12px rgba(0,0,0,0.25);
        }
        .pro-hero-pro {
            background: linear-gradient(135deg, #fde047, #facc15, #fef3c7);
            -webkit-background-clip: text; background-clip: text;
            color: transparent;
            font-style: italic;
        }
        .pro-hero-subtitle {
            font-size: 0.85rem;
            opacity: 0.9;
            margin-top: 6px;
            font-weight: 500;
        }
        .pro-hero-badges {
            display: flex; justify-content: center; gap: 10px;
            margin-top: 14px;
            flex-wrap: wrap;
        }
        .pro-hero-badges span {
            background: rgba(255,255,255,0.1);
            backdrop-filter: blur(10px);
            border: 1px solid rgba(255,255,255,0.2);
            padding: 5px 12px;
            border-radius: 999px;
            font-size: 0.7rem;
            font-weight: 700;
            display: inline-flex;
            align-items: center;
            gap: 5px;
        }
        .pro-hero-badges i { color: #fde047; }

        /* Feature Cards */
        .pro-feature-card {
            position: relative;
            background: linear-gradient(180deg, #ffffff 0%, #fafdfb 100%);
            border: 1.5px solid #e6fffa;
            border-radius: 18px;
            padding: 14px 12px;
            text-align: center;
            transition: all .25s;
            overflow: hidden;
        }
        .pro-feature-card::before {
            content: '';
            position: absolute; top: 0; right: 0;
            width: 60px; height: 60px;
            background: radial-gradient(circle at top right, rgba(0,184,148,0.08), transparent 70%);
            pointer-events: none;
        }
        .pro-feature-card:hover {
            transform: translateY(-2px);
            border-color: var(--brand);
            box-shadow: 0 10px 22px -8px rgba(0,184,148,0.25);
        }
        .pro-feature-icon {
            width: 44px; height: 44px;
            margin: 0 auto 8px;
            border-radius: 14px;
            background: linear-gradient(135deg, var(--brand-soft), #d1fae5);
            color: var(--brand-dark);
            display: flex; align-items: center; justify-content: center;
            font-size: 1.1rem;
            box-shadow: inset 0 1px 0 rgba(255,255,255,0.5);
        }
        .pro-feature-title {
            font-size: 0.85rem;
            font-weight: 800;
            color: #1e293b;
            margin-bottom: 3px;
            letter-spacing: -0.01em;
        }
        .pro-feature-desc {
            font-size: 0.7rem;
            color: #64748b;
            line-height: 1.4;
        }

        /* Pricing Card */
        .pro-price-card {
            position: relative;
            background: linear-gradient(135deg, #ecfdf5 0%, #ffffff 50%, #d1fae5 100%);
            border: 1.5px solid var(--brand);
            border-radius: 22px;
            padding: 18px 18px 14px;
            margin-bottom: 18px;
            box-shadow: 0 8px 22px -8px rgba(0,184,148,0.3);
        }
        .pro-price-best-badge {
            position: absolute;
            top: -10px; right: 16px;
            background: linear-gradient(135deg, #facc15, #ca8a04);
            color: #422006;
            font-size: 0.65rem;
            font-weight: 900;
            padding: 4px 10px;
            border-radius: 999px;
            box-shadow: 0 4px 12px -2px rgba(202,138,4,0.5);
            display: inline-flex;
            align-items: center;
            gap: 4px;
        }
        .pro-price-amount {
            font-size: 2.6rem;
            font-weight: 900;
            color: var(--brand-dark);
            letter-spacing: -0.04em;
            line-height: 1;
            background: linear-gradient(135deg, var(--brand), var(--brand-dark));
            -webkit-background-clip: text; background-clip: text;
            color: transparent;
        }
        .pro-price-currency {
            font-size: 1rem;
            font-weight: 800;
            color: var(--brand-dark);
        }
        .pro-price-savings {
            background: rgba(34,197,94,0.12);
            color: #166534;
            font-size: 0.7rem;
            font-weight: 800;
            padding: 5px 10px;
            border-radius: 10px;
            display: inline-block;
            border: 1px solid rgba(34,197,94,0.25);
        }

        /* Pro Subscribe Button */
        .btn-pro-subscribe {
            background: linear-gradient(135deg, #022c22 0%, #064e3b 50%, var(--brand-dark) 100%);
            color: #fde047;
            padding: 15px 20px;
            border-radius: 18px;
            font-weight: 800;
            font-size: 1.05rem;
            box-shadow: 0 10px 28px -6px rgba(2,44,34,0.55), 0 0 0 1px rgba(253,224,71,0.18) inset;
            transition: all .25s;
            position: relative;
            overflow: hidden;
            letter-spacing: -0.01em;
        }
        .btn-pro-subscribe::before {
            content: '';
            position: absolute; inset: 0;
            background: linear-gradient(120deg, transparent 30%, rgba(253,224,71,0.18) 50%, transparent 70%);
            transform: translateX(-100%);
            transition: transform 0.7s;
        }
        .btn-pro-subscribe:hover { transform: translateY(-1px); box-shadow: 0 14px 34px -6px rgba(2,44,34,0.65), 0 0 0 1px rgba(253,224,71,0.3) inset; }
        .btn-pro-subscribe:hover::before { transform: translateX(100%); }
        .btn-pro-subscribe:active { transform: scale(0.98); }
        .btn-pro-subscribe:disabled {
            opacity: 0.55;
            cursor: not-allowed;
            box-shadow: none;
            color: rgba(253,224,71,0.6);
        }
