/* ===== 全局点击反馈 ===== */
.cat-chip:active { transform: scale(0.95); }
.sort-tab:active { transform: scale(0.95); }
.pts-tab:active { transform: scale(0.95); }
.pts-shop-row:active { transform: scale(0.98); }
.pts-ach-card:active { transform: scale(0.97); }
.checkin-btn:active { transform: scale(0.95); }
.reply-action:active { opacity: 0.6; }
.post-card:active { transform: scale(0.99); }
.nav-item:active .ni-icon { transform: scale(0.9); }

/* ===== 键盘弹出适配 ===== */
/* 键盘弹出时隐藏底部导航 */
body.keyboard-open .bottom-nav {
    transform: translateY(100%);
    transition: transform 0.2s ease;
}
/* 键盘弹出时减少页面底部padding（导航栏已隐藏） */
body.keyboard-open .page {
    padding-bottom: 16px;
}
/* 键盘弹出时，模态框/悬浮窗适配：让输入框可见 */
body.keyboard-open .modal-overlay {
    align-items: flex-end;
}
body.keyboard-open .modal-box {
    max-height: 70vh;
    margin-bottom: 0;
    border-radius: 16px 16px 0 0;
}
body.keyboard-open .edit-overlay {
    align-items: flex-end;
}
body.keyboard-open .edit-sheet {
    height: 70vh;
    border-radius: 16px 16px 0 0;
}
/* 键盘弹出时，帖子详情页评论输入区固定在键盘上方 */
body.keyboard-open .reply-input-area {
    position: sticky;
    bottom: 0;
    background: var(--bg-primary);
    z-index: 10;
    padding: 8px 0;
}

/* 滑块验证 */
.slider-captcha-wrap { margin: 8px 0; }
.slider-captcha-track {
    position: relative; width: 100%; height: 40px;
    background: var(--bg-hover, #f0f0f0); border-radius: 20px;
    overflow: hidden; user-select: none; touch-action: none;
}
.slider-captcha-fill {
    position: absolute; left: 0; top: 0; height: 100%; width: 0;
    background: linear-gradient(90deg, #6366f1, #8b5cf6); border-radius: 20px;
    transition: none;
}
.slider-captcha-text {
    position: absolute; width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    font-size: 0.8em; color: var(--text-secondary, #999);
    pointer-events: none; z-index: 1;
}
.slider-captcha-thumb {
    position: absolute; left: 0; top: 0; width: 40px; height: 40px;
    background: #fff; border-radius: 50%; cursor: grab;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 2px 6px rgba(0,0,0,0.2); z-index: 2;
    font-size: 16px; transition: none;
}
.slider-captcha-thumb:active { cursor: grabbing; }
.slider-captcha-wrap.success .slider-captcha-fill { background: linear-gradient(90deg, #22c55e, #16a34a); }
.slider-captcha-wrap.success .slider-captcha-thumb { background: #22c55e; color: #fff; }
.slider-captcha-wrap.success .slider-captcha-text { color: #fff; }

/* 用户协议 */
.agreement-label {
    display: flex; align-items: center; gap: 6px;
    font-size: 0.8em; color: var(--text-secondary, #999);
    margin: 4px 0 8px; cursor: pointer;
}
.agreement-label input[type="checkbox"] { width: 16px; height: 16px; cursor: pointer; }
.agreement-label a { color: #6366f1; text-decoration: none; }
.agreement-label a:hover { text-decoration: underline; }

/* 创作者激励活动 */
.event-page { padding: 16px; max-width: 480px; margin: 0 auto; }
.event-header { text-align: center; margin-bottom: 20px; }
.event-header h2 { margin: 0 0 4px; font-size: 1.3em; }
.event-subtitle { color: var(--text-secondary); font-size: 0.85em; margin: 0; }
.event-card {
    display: flex; align-items: center; gap: 12px;
    padding: 14px; margin-bottom: 10px; border-radius: 12px;
    background: var(--card-bg); border: 1px solid var(--border-color);
    transition: border-color 0.2s;
}
.event-card.ready { border-color: #6366f1; }
.event-card.claimed { opacity: 0.6; }
.ec-icon { font-size: 1.8em; flex-shrink: 0; }
.ec-info { flex: 1; min-width: 0; }
.ec-title { font-weight: 700; font-size: 0.95em; }
.ec-desc { color: var(--text-secondary); font-size: 0.8em; margin: 2px 0; }
.ec-progress { height: 6px; background: var(--bg-hover); border-radius: 3px; margin: 6px 0 2px; overflow: hidden; }
.ec-bar { height: 100%; background: linear-gradient(90deg, #6366f1, #8b5cf6); border-radius: 3px; transition: width 0.3s; }
.ec-count { font-size: 0.75em; color: var(--text-secondary); }
.ec-reward { font-size: 0.8em; color: #f59e0b; font-weight: 600; }
.ec-action { flex-shrink: 0; }
.ec-btn {
    display: inline-block; padding: 6px 14px; border-radius: 8px; border: none;
    background: #6366f1; color: #fff; font-size: 0.8em; cursor: pointer;
    font-weight: 600; text-decoration: none;
}
.ec-btn:hover { background: #5558e6; }
.ec-claimed { color: #22c55e; font-size: 0.85em; font-weight: 600; }
.ec-wait { color: var(--text-secondary); font-size: 0.8em; }
.invite-code-row { display: flex; align-items: center; gap: 8px; padding: 8px 0; border-bottom: 1px solid var(--border-color); }
.invite-code-row code { background: var(--bg-hover); padding: 4px 10px; border-radius: 6px; font-size: 1.1em; letter-spacing: 2px; font-weight: 700; }
