:root { 
    --primary:#5b7cfa; 
    --muted:#6b7280; 
    --border:#e5e7eb; 
    --bg:#f8fafc; 
}

body { 
    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto; 
    margin:0; 
    background:linear-gradient(135deg,#7dd3fc, #c084fc) no-repeat 0 0/100% 280px, var(--bg); 
}

.container { 
    max-width: 1180px; 
    margin: 0 auto; 
    padding: 32px 20px 56px; 
}

.hero { 
    text-align:center; 
    color:#fff; 
    padding:60px 12px 30px; 
}

.hero h1 { 
    margin:0 0 10px; 
    font-size:40px; 
    letter-spacing:.2px; 
}

.hero p { 
    margin:0; 
    opacity:.92; 
}

.grid { 
    display:grid; 
    grid-template-columns: repeat(auto-fit,minmax(300px,1fr)); 
    gap:24px; 
    margin-top:22px; 
    align-items:stretch; 
}

.card { 
    background:#fff; 
    border:1px solid var(--border); 
    border-radius:16px; 
    padding:24px; 
    box-shadow:0 10px 24px rgba(2,6,23,.06); 
    transition: box-shadow .2s ease, border-color .2s ease; 
    cursor: pointer; 
}

.card.featured { 
    border-top:5px solid var(--primary); 
}

.card.selected { 
    border-color: var(--primary); 
    box-shadow:0 0 0 4px rgba(91,124,250,.20), 0 16px 36px rgba(2,6,23,.16); 
    transform: translateY(-4px); 
}

.card:hover { 
    box-shadow:0 12px 28px rgba(2,6,23,.10); 
}

.title { 
    display:flex; 
    align-items:baseline; 
    justify-content:space-between; 
}

.title h3 { 
    margin:0; 
    font-size:22px; 
}

.badge { 
    background:#eef2ff; 
    color:#4338ca; 
    font-size:12px; 
    padding:4px 8px; 
    border-radius:999px; 
}

.price { 
    margin:12px 0 8px; 
    font-weight:800; 
    font-size:32px; 
    letter-spacing:.2px; 
}

.sub { 
    color:var(--muted); 
    font-size:13px; 
}

ul { 
    margin:14px 0 0; 
    padding:0; 
    list-style:none; 
}

li { 
    display:flex; 
    align-items:flex-start; 
    gap:8px; 
    padding:6px 0; 
    color:#111827; 
}

li:before { 
    content:"✔"; 
    color:#10b981; 
    margin-top:2px; 
}

.footer { 
    text-align:center; 
    margin-top:30px; 
}

.pay { 
    display:flex; 
    flex-direction:column; 
    align-items:center; 
    gap:8px; 
}

.pay-row { 
    display:flex; 
    align-items:center; 
    gap:18px; 
    width:100%; 
    max-width:840px; 
}

.pay-label { 
    color:#111827; 
    font-weight:700; 
    white-space:nowrap; 
    padding-left:2px; 
    font-size:18px; 
}

.pay-options { 
    display:flex; 
    gap:14px; 
    flex-wrap:nowrap; 
    justify-content:space-between; 
    flex:1; 
}

.pay-option { 
    position:relative; 
    display:flex; 
    align-items:center; 
    gap:12px; 
    padding:12px 14px; 
    border:1.5px solid #e5e7eb; 
    border-radius:14px; 
    background:#fff; 
    flex:1; 
    min-height:56px; 
    cursor:pointer; 
    transition: box-shadow .18s, border-color .18s, background .18s; 
}

.pay-option:hover { 
    border-color:#cfd6df; 
    box-shadow:0 8px 22px rgba(2,6,23,.08); 
}

.pay-option.active { 
    border-color:#3b82f6; 
    box-shadow:0 0 0 3px rgba(59,130,246,.18), 0 12px 28px rgba(2,6,23,.10); 
}

.radio { 
    width:22px; 
    height:22px; 
    border:2px solid #d1d5db; 
    border-radius:999px; 
    display:inline-flex; 
    align-items:center; 
    justify-content:center; 
    flex:0 0 22px; 
    background:#fff; 
}

.pay-option.active .radio { 
    border-color:#2563eb; 
}

.radio-dot { 
    width:10px; 
    height:10px; 
    border-radius:999px; 
    background:transparent; 
}

.pay-option.active .radio-dot { 
    background:#2563eb; 
}

.pay-logo { 
    height:32px; 
    width:auto; 
    max-width:120px; 
    object-fit:contain; 
    display:block; 
    flex:0 0 auto;
}

.pay-text { 
    flex:1; 
    text-align:left; 
    color:#111827; 
    font-weight:600; 
}

.badge-rec { 
    position:relative; 
    width:24px; 
    height:16px; 
    margin-left:8px; 
    pointer-events:none; 
}

.btn { 
    appearance:none; 
    border:0; 
    background:#2563eb; 
    color:#fff; 
    padding:14px 26px; 
    border-radius:12px; 
    cursor:pointer; 
    font-weight:700; 
    box-shadow:0 10px 24px rgba(37,99,235,.25); 
    letter-spacing:.5px; 
    transition: all 0.2s ease; 
}

.btn:hover { 
    background:#1d4ed8; 
    box-shadow:0 12px 28px rgba(37,99,235,.28); 
    transform: translateY(-2px); 
}

.btn:disabled { 
    background:#9ca3af; 
    box-shadow:0 4px 12px rgba(156,163,175,.25); 
    transition: none; 
}

.btn:disabled:hover { 
    background:#9ca3af; 
    box-shadow:0 4px 12px rgba(156,163,175,.25); 
    transform: none; 
}

/* 确保cursor样式正确显示 */
.btn-cursor-pointer { 
    cursor: pointer !important; 
}

.btn-cursor-disabled { 
    cursor: not-allowed !important; 
}

.btn-secondary { 
    background:#6b7280; 
    box-shadow:0 10px 24px rgba(107,114,128,.25); 
}

.btn-secondary:hover { 
    background:#4b5563; 
    box-shadow:0 12px 28px rgba(107,114,128,.28); 
}

.btn-secondary:disabled { 
    background:#9ca3af; 
    cursor:not-allowed; 
    box-shadow:0 4px 12px rgba(156,163,175,.25); 
}

.btn-success { 
    background:#10b981; 
    box-shadow:0 10px 24px rgba(16,185,129,.25); 
}

.btn-success:hover { 
    background:#059669; 
    box-shadow:0 12px 28px rgba(16,185,129,.28); 
}

.btn-success:disabled { 
    background:#9ca3af; 
    cursor:not-allowed; 
    box-shadow:0 4px 12px rgba(156,163,175,.25); 
}

.hidden { 
    display:none; 
}

/* benefits section */
.benefits { 
    width:100%; 
    max-width:840px; 
    margin:0 auto 12px; 
    text-align:left; 
}

.benefit-title { 
    color:#111827; 
    font-weight:700; 
    margin-bottom:8px; 
    font-size:16px; 
}

.benefit-grid { 
    display:grid; 
    grid-template-columns: repeat(2, minmax(0,1fr)); 
    gap:12px; 
    align-items:start; 
}

.benefit-card { 
    background:#fff; 
    border:1px solid var(--border); 
    border-radius:14px; 
    padding:14px; 
    box-shadow:0 6px 16px rgba(2,6,23,.05); 
    cursor:pointer; 
    transition: box-shadow .18s, border-color .18s; 
}

.benefit-card:hover { 
    border-color:#cfd6df; 
    box-shadow:0 8px 20px rgba(2,6,23,.08); 
}

.benefit-card.active { 
    border-color:#2563eb; 
    box-shadow:0 0 0 3px rgba(37,99,235,.18), 0 10px 26px rgba(2,6,23,.08); 
}

.benefit-card h4 { 
    margin:0 0 6px; 
    font-size:16px; 
}

.benefit-card p { 
    margin:0; 
    color:var(--muted); 
    font-size:13px; 
}

.benefit-details { 
    background:#fff; 
    border:1px dashed #dbe2ea; 
    border-radius:12px; 
    padding:12px 14px; 
    margin-top:10px; 
    color:#374151; 
    font-size:14px; 
    grid-column:1 / -1; 
}

.benefit-note { 
    color:#6b7280; 
    font-size:13px; 
    margin-top:10px; 
}

.pay-title { 
    color:#111827; 
    font-weight:700; 
    margin:8px auto 0; 
    font-size:16px; 
    width:100%; 
    max-width:840px; 
    text-align:left; 
}

#pay-now { 
    margin-top:24px; 
}

@media (max-width: 640px) { 
    .benefit-grid { 
        grid-template-columns: 1fr; 
    } 
}

/* Modal styles */
.modal-overlay { 
    position:fixed; 
    top:0; 
    left:0; 
    right:0; 
    bottom:0; 
    background:rgba(0,0,0,0.5); 
    display:none; 
    align-items:center; 
    justify-content:center; 
    z-index:1000; 
}

.modal-overlay.show { 
    display:flex; 
}

.modal { 
    background:#fff; 
    border-radius:16px; 
    padding:32px; 
    max-width:480px; 
    width:90%; 
    box-shadow:0 20px 40px rgba(0,0,0,0.15); 
    text-align:center; 
}

.modal h3 { 
    margin:0 0 16px; 
    font-size:24px; 
    color:#111827; 
}

.modal p { 
    margin:0 0 24px; 
    color:#6b7280; 
    font-size:16px; 
    line-height:1.5; 
}

.modal-buttons { 
    display:flex; 
    gap:12px; 
    justify-content:center; 
}

.modal-buttons .btn { 
    min-width:120px; 
}

/* 兑换码弹窗样式 */
#redemptionModal .modal {
    max-width: 400px;
    text-align: left;
}

#redemptionModal .modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid #e5e7eb;
}

#redemptionModal .modal-header h3 {
    margin: 0;
    font-size: 20px;
    color: #111827;
}

#redemptionModal .close {
    font-size: 24px;
    font-weight: bold;
    color: #9ca3af;
    cursor: pointer;
    line-height: 1;
    transition: color 0.2s ease;
}

#redemptionModal .close:hover {
    color: #6b7280;
}

#redemptionModal .modal-body {
    margin-bottom: 24px;
}

#redemptionModal .form-group {
    margin-bottom: 0;
}

#redemptionModal .form-group label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    color: #374151;
    font-size: 14px;
}

#redemptionModal .form-group input {
    width: 100%;
    padding: 12px 16px;
    border: 1.5px solid #d1d5db;
    border-radius: 8px;
    font-size: 16px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    box-sizing: border-box;
}

#redemptionModal .form-group input:focus {
    outline: none;
    border-color: #3b82f6;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

#redemptionModal .form-group input::placeholder {
    color: #9ca3af;
}

#redemptionModal .error-message {
    margin-top: 8px;
    color: #ef4444;
    font-size: 14px;
    min-height: 20px;
}

#redemptionModal .modal-footer {
    display: flex;
    gap: 12px;
    justify-content: flex-end;
}

#redemptionModal .modal-footer .btn {
    min-width: 80px;
    padding: 10px 20px;
    font-size: 14px;
}

#redemptionModal .btn-primary {
    background: #3b82f6;
    color: white;
    border: none;
}

#redemptionModal .btn-primary:hover {
    background: #2563eb;
}

#redemptionModal .btn-primary:disabled {
    background: #9ca3af;
    cursor: not-allowed;
}

#redemptionModal .btn-secondary {
    background: #f3f4f6;
    color: #374151;
    border: 1px solid #d1d5db;
}

#redemptionModal .btn-secondary:hover {
    background: #e5e7eb;
}

/* 移动端响应式设计 */
@media (max-width: 768px) {
    /* 容器和整体布局 */
    .container {
        padding: 16px;
        max-width: 100%;
    }
    
    /* 标题区域 */
    .hero {
        text-align: center;
        padding: 20px 0;
        margin-bottom: 24px;
    }
    
    .hero h1 {
        font-size: 24px;
        line-height: 1.3;
        margin-bottom: 12px;
    }
    
    .hero p {
        font-size: 14px;
        line-height: 1.5;
        margin-bottom: 8px;
    }
    
    /* 套餐卡片网格 */
    .grid {
        grid-template-columns: 1fr;
        gap: 16px;
        margin-bottom: 24px;
    }
    
    .card {
        padding: 20px;
        min-height: auto;
    }
    
    .card .title h3 {
        font-size: 18px;
        margin-bottom: 8px;
    }
    
    .card .price {
        font-size: 28px;
        margin: 12px 0;
    }
    
    .card .sub {
        font-size: 14px;
        margin-bottom: 16px;
    }
    
    .card ul {
        font-size: 14px;
        line-height: 1.6;
    }
    
    .card ul li {
        margin-bottom: 8px;
        padding-left: 20px;
    }
    
    /* 权益区域 */
    .benefit-title {
        font-size: 18px;
        margin-bottom: 16px;
    }
    
    .benefit-grid {
        grid-template-columns: 1fr;
        gap: 12px;
        margin-bottom: 20px;
    }
    
    .benefit-card {
        padding: 16px;
        text-align: center;
    }
    
    .benefit-card h4 {
        font-size: 16px;
        margin-bottom: 8px;
    }
    
    .benefit-card p {
        font-size: 14px;
        line-height: 1.5;
    }
    
    .benefit-note {
        font-size: 13px;
        line-height: 1.5;
        padding: 12px;
        margin-bottom: 20px;
    }
    
    /* 支付区域 */
    .pay-title {
        font-size: 16px;
        margin-bottom: 16px;
    }
    
    .pay-row {
        max-width: 100%;
        width: 100%;
        box-sizing: border-box;
    }
    
    .pay-options {
        flex-direction: column;
        gap: 12px;
        width: 100%;
        box-sizing: border-box;
    }
    
    .pay-option {
        min-height: 50px;
        padding: 12px 16px;
        justify-content: flex-start;
        width: 100%;
        flex: none;
        box-sizing: border-box;
        max-width: 100%;
    }
    
    .pay-logo {
        height: 28px;
        max-width: 100px;
    }
    
    .pay-text {
        font-size: 14px;
        font-weight: 600;
        text-align: left;
    }
    
    .badge-rec {
        width: 20px;
        height: 14px;
        margin-left: 6px;
    }
    
    /* 支付按钮 */
    .btn {
        width: 100%;
        padding: 16px 24px;
        font-size: 16px;
        margin-top: 20px;
    }
    
    /* 客服说明 */
    .customer-service {
        font-size: 13px;
        padding: 12px;
        margin-top: 16px;
    }
    
    /* 弹窗优化 */
    .modal {
        margin: 20px;
        padding: 24px;
        max-width: calc(100vw - 40px);
        width: auto;
    }
    
    .modal h3 {
        font-size: 20px;
        margin-bottom: 16px;
    }
    
    .modal p {
        font-size: 14px;
        margin-bottom: 20px;
    }
    
    .modal-buttons {
        flex-direction: column;
        gap: 12px;
    }
    
    .modal-buttons .btn {
        width: 100%;
        min-width: auto;
    }
    
    /* 兑换码弹窗 */
    #redemptionModal .modal {
        padding: 20px;
        max-width: calc(100vw - 40px);
    }
    
    #redemptionModal .modal-header h3 {
        font-size: 18px;
    }
    
    #redemptionModal .form-group input {
        font-size: 16px;
        padding: 14px 16px;
    }
    
    #redemptionModal .modal-footer {
        flex-direction: column;
        gap: 12px;
    }
    
    #redemptionModal .modal-footer .btn {
        width: 100%;
        min-width: auto;
    }
}

/* 小屏幕手机优化 */
@media (max-width: 480px) {
    .container {
        padding: 12px;
    }
    
    .hero {
        padding: 16px 0;
    }
    
    .hero h1 {
        font-size: 20px;
    }
    
    .card {
        padding: 16px;
    }
    
    .card .price {
        font-size: 24px;
    }
    
    .pay-option {
        padding: 10px 12px;
        min-height: 48px;
        justify-content: flex-start;
        box-sizing: border-box;
        max-width: 100%;
    }
    
    .pay-logo {
        height: 24px;
        max-width: 80px;
    }
    
    .btn {
        padding: 14px 20px;
        font-size: 15px;
    }
    
    .modal {
        margin: 16px;
        padding: 20px;
        max-width: calc(100vw - 32px);
    }
    
    #redemptionModal .modal {
        padding: 16px;
        max-width: calc(100vw - 32px);
    }
}

/* 客服说明样式 */
.customer-service { 
    text-align: center; 
    margin-top: 20px; 
    padding: 16px; 
    background: #f8fafc; 
    border: 1px solid #e5e7eb; 
    border-radius: 12px; 
    color: #6b7280; 
    font-size: 14px; 
    line-height: 1.5;
}

.customer-service strong { 
    color: #111827; 
    font-weight: 600; 
}

/* 兑换码提示样式 */
.redemption-tips {
    margin-top: 16px;
    padding: 12px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
}

.tip-item {
    display: flex;
    align-items: center;
    margin-bottom: 8px;
    font-size: 13px;
    color: #6b7280;
    line-height: 1.4;
}

.tip-item:last-child {
    margin-bottom: 0;
}

.tip-item .icon-info {
    margin-right: 8px;
    font-size: 14px;
    flex-shrink: 0;
}

/* 兑换码错误信息样式优化 */
#codeError {
    margin-top: 8px;
    font-size: 13px;
    line-height: 1.4;
}

#codeError div {
    padding: 8px 12px;
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 6px;
    margin-top: 4px;
}
