/**
 * 移动端响应式适配样式
 * 设计原则：移动优先、触控友好、清晰易读
 */

/* ==================== 移动端基础适配 ==================== */

/* 视口设置 */
@viewport {
    width: device-width;
    initial-scale: 1.0;
}

/* 全局触摸优化 */
html {
    touch-action: pan-y;
    -webkit-overflow-scrolling: touch;
}

body {
    overflow-x: hidden;
    overflow-y: auto;
}

/* 移动端优先的媒体查询 */
@media (max-width: 768px) {
    
    /* ==================== 全局样式 ==================== */
    html {
        font-size: 14px;
        touch-action: pan-y;
        -webkit-overflow-scrolling: touch;
    }
    
    body {
        font-size: 14px;
        line-height: 1.5;
        padding-top: 56px !important;
        overflow-x: hidden;
        overflow-y: auto;
        position: relative;
        min-height: 100vh;
        -webkit-overflow-scrolling: touch;
    }
    
    /* ==================== 容器和布局 ==================== */
    .container {
        padding: 0 12px !important;
        margin: 0 auto !important;
        max-width: 100% !important;
    }
    
    .page-header {
        padding: 16px !important;
        margin-bottom: 16px !important;
        flex-direction: column !important;
        gap: 12px !important;
        text-align: center;
    }
    
    .page-header h1 {
        font-size: 1.4rem !important;
    }
    
    /* ==================== 导航栏 ==================== */
    .navbar {
        height: 56px !important;
        padding: 0 8px !important;
    }
    
    .navbar-container {
        padding: 0 12px !important;
    }
    
    .navbar-brand {
        margin-right: 0 !important;
    }
    
    .brand-text {
        font-size: 0.85rem !important;
    }
    
    .brand-icon {
        font-size: 1.2rem !important;
    }
    
    .navbar-menu {
        position: fixed !important;
        top: 56px !important;
        left: 0 !important;
        right: 0 !important;
        background: linear-gradient(135deg, #1e1b4b 0%, #312e81 100%) !important;
        flex-direction: column !important;
        padding: 12px !important;
        gap: 4px !important;
        box-shadow: 0 4px 12px rgba(0,0,0,0.2) !important;
        display: none !important;
    }
    
    .navbar-menu.active {
        display: flex !important;
    }
    
    .navbar-menu .nav-link {
        padding: 12px 16px !important;
        font-size: 0.9rem !important;
        border-radius: 8px !important;
        text-align: left !important;
    }
    
    /* 移动端菜单按钮 */
    .mobile-menu-btn {
        display: flex !important;
        flex-direction: column !important;
        gap: 4px !important;
        width: 32px !important;
        height: 32px !important;
        padding: 6px !important;
        background: rgba(255,255,255,0.1) !important;
        border: none !important;
        border-radius: 8px !important;
        cursor: pointer !important;
    }
    
    .mobile-menu-btn span {
        width: 20px !important;
        height: 2px !important;
        background: white !important;
        border-radius: 1px !important;
    }
    
    /* 下拉菜单 */
    .dropdown-content {
        position: static !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        margin-top: 4px !important;
        padding-left: 16px !important;
        background: rgba(255,255,255,0.05) !important;
    }
    
    .dropdown-content a {
        color: rgba(255,255,255,0.8) !important;
        padding: 10px 16px !important;
    }
    
    /* ==================== 卡片和面板 ==================== */
    .card, .package-card {
        padding: 16px !important;
        margin-bottom: 12px !important;
        border-radius: 12px !important;
    }
    
    .package-card h3 {
        font-size: 1.2rem !important;
        margin-bottom: 8px !important;
    }
    
    .package-card .price {
        font-size: 2rem !important;
    }
    
    .package-card .features {
        padding: 12px !important;
        margin: 12px 0 !important;
    }
    
    .package-card .features li {
        font-size: 13px !important;
        padding: 6px 0 !important;
    }
    
    /* ==================== 按钮 ==================== */
    .btn {
        width: 100% !important;
        padding: 14px 24px !important;
        font-size: 15px !important;
        border-radius: 10px !important;
        min-height: 48px !important;
    }
    
    .btn-primary {
        font-weight: 600 !important;
    }
    
    /* ==================== 表单 ==================== */
    form {
        padding: 0 !important;
    }
    
    .form-group {
        margin-bottom: 16px !important;
    }
    
    .form-group label {
        font-size: 14px !important;
        margin-bottom: 8px !important;
        display: block !important;
    }
    
    .form-control, input, select, textarea {
        width: 100% !important;
        padding: 14px 16px !important;
        font-size: 15px !important;
        border-radius: 10px !important;
        border: 2px solid #E2E8F0 !important;
        background: white !important;
        box-sizing: border-box !important;
    }
    
    .form-control:focus, input:focus, select:focus, textarea:focus {
        border-color: #6366F1 !important;
        outline: none !important;
        box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1) !important;
    }
    
    /* ==================== 网格和布局 ==================== */
    .packages-grid {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }
    
    .benefits-grid {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }
    
    .tabs {
        flex-wrap: wrap !important;
        gap: 8px !important;
        margin-bottom: 16px !important;
    }
    
    .tab {
        flex: 1 !important;
        min-width: calc(50% - 4px) !important;
        padding: 12px !important;
        font-size: 14px !important;
    }
    
    /* ==================== 统计信息 ==================== */
    .user-stats {
        gap: 16px !important;
        justify-content: center !important;
    }
    
    .stat-item .stat-value {
        font-size: 1.3rem !important;
    }
    
    .stat-item .stat-label {
        font-size: 11px !important;
    }
    
    /* ==================== 表格 ==================== */
    .table-container {
        overflow-x: auto !important;
        border-radius: 12px !important;
        border: 1px solid #E2E8F0 !important;
    }
    
    table {
        min-width: 600px !important;
    }
    
    th, td {
        padding: 10px 12px !important;
        font-size: 13px !important;
    }
    
    /* ==================== 消息提示 ==================== */
    .message {
        padding: 12px 16px !important;
        border-radius: 10px !important;
        font-size: 14px !important;
    }
    
    /* ==================== 模态框 ==================== */
    .modal-content {
        margin: 12px !important;
        width: calc(100% - 24px) !important;
        max-width: none !important;
        border-radius: 16px !important;
        padding: 20px !important;
    }
    
    /* ==================== 登录/注册页面 ==================== */
    .login-container, .register-container {
        padding: 16px !important;
        margin: 12px !important;
        border-radius: 16px !important;
    }
    
    .login-container h1, .register-container h1 {
        font-size: 1.5rem !important;
        margin-bottom: 8px !important;
    }
    
    .login-container p, .register-container p {
        font-size: 14px !important;
        margin-bottom: 20px !important;
    }
    
    .verification-code-row {
        flex-direction: column !important;
        gap: 12px !important;
    }
    
    .verification-code-row input {
        width: 100% !important;
    }
    
    .verification-code-row button {
        width: 100% !important;
    }
    
    /* ==================== 首页 ==================== */
    .hero-section {
        padding: 30px 16px !important;
        text-align: center !important;
    }
    
    .hero-title {
        font-size: 1.8rem !important;
        line-height: 1.3 !important;
        margin-bottom: 12px !important;
    }
    
    .hero-subtitle {
        font-size: 14px !important;
        margin-bottom: 20px !important;
    }
    
    .hero-stats {
        flex-direction: column !important;
        gap: 12px !important;
        margin-top: 20px !important;
    }
    
    .hero-stat-item {
        text-align: center !important;
    }
    
    .features-section {
        padding: 20px 0 !important;
    }
    
    .features-grid {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }
    
    .feature-card {
        padding: 16px !important;
    }
    
    .feature-card h3 {
        font-size: 1.1rem !important;
    }
    
    /* ==================== 题目列表 ==================== */
    .question-filter {
        flex-direction: column !important;
        gap: 10px !important;
        padding: 12px !important;
    }
    
    .question-filter select,
    .question-filter input {
        padding: 12px !important;
        font-size: 14px !important;
    }
    
    .question-item {
        padding: 12px !important;
        margin-bottom: 10px !important;
    }
    
    .question-item .question-text {
        font-size: 14px !important;
        line-height: 1.5 !important;
        margin-bottom: 8px !important;
    }
    
    .question-item .question-meta {
        flex-wrap: wrap !important;
        gap: 6px !important;
        font-size: 12px !important;
    }
    
    /* ==================== 试卷预览 ==================== */
    .paper-preview {
        padding: 12px !important;
    }
    
    .paper-header {
        padding: 16px !important;
        margin-bottom: 12px !important;
    }
    
    .paper-title {
        font-size: 1.3rem !important;
    }
    
    .paper-info {
        flex-wrap: wrap !important;
        gap: 8px !important;
        font-size: 13px !important;
    }
    
    .question-block {
        padding: 12px !important;
        margin-bottom: 10px !important;
    }
    
    .question-block .question-number {
        font-size: 14px !important;
        padding: 4px 10px !important;
    }
    
    .question-block .question-content {
        font-size: 14px !important;
        line-height: 1.6 !important;
    }
    
    .option-item {
        padding: 10px !important;
        font-size: 14px !important;
    }
    
    /* ==================== 个人中心 ==================== */
    .profile-header {
        padding: 20px 16px !important;
        flex-direction: column !important;
        text-align: center !important;
        gap: 12px !important;
    }
    
    .profile-avatar {
        width: 80px !important;
        height: 80px !important;
    }
    
    .profile-name {
        font-size: 1.3rem !important;
    }
    
    .profile-stats {
        flex-direction: column !important;
        gap: 8px !important;
        margin-top: 12px !important;
    }
    
    .profile-stat-item {
        padding: 12px !important;
    }
    
    .menu-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 10px !important;
    }
    
    .menu-item {
        padding: 16px !important;
        border-radius: 12px !important;
    }
    
    .menu-item .menu-icon {
        font-size: 1.5rem !important;
    }
    
    .menu-item .menu-text {
        font-size: 14px !important;
    }
    
    /* ==================== 管理员后台 ==================== */
    .admin-sidebar {
        position: fixed !important;
        left: -260px !important;
        top: 56px !important;
        bottom: 0 !important;
        width: 260px !important;
        z-index: 1000 !important;
        transition: left 0.3s !important;
    }
    
    .admin-sidebar.active {
        left: 0 !important;
    }
    
    .admin-content {
        margin-left: 0 !important;
        padding: 12px !important;
    }
    
    .admin-header {
        padding: 12px !important;
        gap: 12px !important;
    }
    
    .admin-title {
        font-size: 1.2rem !important;
    }
    
    .admin-menu-btn {
        display: flex !important;
        padding: 8px !important;
        background: rgba(255,255,255,0.1) !important;
        border: none !important;
        border-radius: 8px !important;
        color: white !important;
        cursor: pointer !important;
    }
    
    .data-cards {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }
    
    .data-card {
        padding: 16px !important;
    }
    
    .data-card .data-value {
        font-size: 1.5rem !important;
    }
    
    .data-card .data-label {
        font-size: 13px !important;
    }
    
    /* ==================== 在线答题 ==================== */
    .quiz-container {
        padding: 12px !important;
    }
    
    .quiz-progress {
        height: 6px !important;
        border-radius: 3px !important;
    }
    
    .quiz-header {
        padding: 12px !important;
        margin-bottom: 12px !important;
    }
    
    .quiz-question {
        padding: 16px !important;
        margin-bottom: 12px !important;
    }
    
    .quiz-question .question-text {
        font-size: 15px !important;
        line-height: 1.6 !important;
    }
    
    .quiz-options {
        display: flex !important;
        flex-direction: column !important;
        gap: 10px !important;
    }
    
    .quiz-option {
        padding: 14px 16px !important;
        font-size: 14px !important;
        border-radius: 10px !important;
        border: 2px solid #E2E8F0 !important;
        cursor: pointer !important;
        transition: all 0.2s !important;
    }
    
    .quiz-option:hover, .quiz-option.selected {
        border-color: #6366F1 !important;
        background: #EEF2FF !important;
    }
    
    .quiz-controls {
        padding: 12px !important;
        gap: 10px !important;
        position: fixed !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        background: white !important;
        box-shadow: 0 -2px 10px rgba(0,0,0,0.05) !important;
    }
    
    .quiz-controls button {
        flex: 1 !important;
        padding: 14px !important;
        font-size: 15px !important;
    }
    
    /* ==================== 积分和VIP显示 ==================== */
    .vip-badge {
        font-size: 12px !important;
        padding: 4px 10px !important;
    }
    
    .points-display {
        font-size: 14px !important;
    }
    
    /* ==================== 支付页面 ==================== */
    .benefit-item {
        padding: 12px !important;
    }
    
    .benefit-item .icon {
        font-size: 1.3rem !important;
        margin-bottom: 6px !important;
    }
    
    .benefit-item .text {
        font-size: 12px !important;
    }
    
    .order-info {
        padding: 14px !important;
        margin-bottom: 16px !important;
    }
    
    .order-info p {
        font-size: 14px !important;
        margin: 6px 0 !important;
    }
    
    .payment-section {
        padding: 16px !important;
    }
    
    /* ==================== 页脚 ==================== */
    .footer {
        padding: 20px 16px !important;
        text-align: center !important;
    }
    
    .footer-links {
        flex-direction: column !important;
        gap: 8px !important;
        margin-bottom: 16px !important;
    }
    
    .footer-links a {
        font-size: 14px !important;
    }
    
    .footer-copyright {
        font-size: 12px !important;
    }
    
    /* ==================== 响应式图片 ==================== */
    img {
        max-width: 100% !important;
        height: auto !important;
    }
    
    /* ==================== 触控友好 ==================== */
    [role="button"], button, input[type="button"], input[type="submit"], input[type="checkbox"], input[type="radio"] {
        min-height: 44px !important;
        min-width: 44px !important;
    }
    
    /* ==================== 隐藏移动端不需要的元素 ==================== */
    .desktop-only {
        display: none !important;
    }
}

/* ==================== 平板适配 (768px - 1024px) ==================== */
@media (min-width: 769px) and (max-width: 1024px) {
    
    .container {
        padding: 0 20px !important;
    }
    
    .packages-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    
    .benefits-grid {
        grid-template-columns: repeat(3, 1fr) !important;
    }
    
    .menu-grid {
        grid-template-columns: repeat(3, 1fr) !important;
    }
    
    .data-cards {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

/* ==================== 大屏适配 ==================== */
@media (min-width: 1025px) {
    .mobile-only {
        display: none !important;
    }
}

/* ==================== 横屏模式优化 ==================== */
@media (max-width: 768px) and (orientation: landscape) {
    .packages-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    
    .benefits-grid {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

/* ==================== 超小屏幕适配 (320px以下) ==================== */
@media (max-width: 320px) {
    html {
        font-size: 13px;
    }
    
    .container {
        padding: 0 8px !important;
    }
    
    .brand-text {
        display: none !important;
    }
    
    .tab {
        font-size: 12px !important;
        padding: 10px 8px !important;
    }
}

/* ==================== 高对比度模式 ==================== */
@media (prefers-contrast: high) {
    :root {
        --border: #000000;
        --text-secondary: #000000;
    }
    
    .form-control, input, select, textarea {
        border-width: 2px !important;
    }
}

/* ==================== 减少动画模式 ==================== */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}