/* 移动端UI优化样式 - 计算机考研学习平台 */

/* 基础移动端适配 */
@media (max-width: 768px) {
    /* 通用文本大小调整 */
    html {
        font-size: 14px;
    }
    
    body {
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
    }

    /* 导航栏移动端优化 */
    .navbar-mobile-optimized {
        padding: 0.5rem 1rem !important;
    }
    
    .navbar-mobile-optimized .flex {
        align-items: center;
        justify-content: space-between;
    }
    
    .navbar-mobile-optimized h1 {
        font-size: 1.1rem !important;
        font-weight: 600;
    }
    
    .navbar-mobile-optimized .mobile-menu-btn {
        padding: 0.5rem;
        border-radius: 0.375rem;
        transition: background-color 0.2s;
    }
    
    .navbar-mobile-optimized .mobile-menu-btn:hover {
        background-color: rgba(99, 102, 241, 0.1);
    }

    /* 移动端菜单优化 */
    .mobile-menu-optimized {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: white;
        border-top: 1px solid #e5e7eb;
        box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
        z-index: 50;
    }
    
    .mobile-menu-optimized .nav-link {
        display: block;
        padding: 1rem;
        color: #374151;
        text-decoration: none;
        border-bottom: 1px solid #f3f4f6;
        font-weight: 500;
        transition: all 0.2s;
    }
    
    .mobile-menu-optimized .nav-link:hover,
    .mobile-menu-optimized .nav-link.active {
        background-color: #f8fafc;
        color: #6366f1;
        border-left: 4px solid #6366f1;
    }

    /* 按钮和表单元素优化 */
    .btn-mobile-optimized {
        min-height: 44px !important; /* iOS推荐的最小触摸区域 */
        padding: 0.75rem 1.5rem !important;
        font-size: 1rem !important;
        font-weight: 500;
        border-radius: 0.5rem;
        transition: all 0.2s;
        touch-action: manipulation; /* 避免双击缩放 */
    }
    
    .btn-primary-mobile {
        background: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);
        color: white;
        border: none;
        box-shadow: 0 2px 4px rgba(99, 102, 241, 0.3);
    }
    
    .btn-primary-mobile:hover {
        transform: translateY(-1px);
        box-shadow: 0 4px 8px rgba(99, 102, 241, 0.4);
    }
    
    .btn-secondary-mobile {
        background: white;
        color: #6366f1;
        border: 2px solid #e5e7eb;
    }
    
    .btn-secondary-mobile:hover {
        border-color: #6366f1;
        background: #f8fafc;
    }

    /* 输入框优化 */
    .input-mobile-optimized {
        min-height: 44px !important;
        padding: 0.75rem 1rem !important;
        font-size: 1rem !important;
        border: 2px solid #e5e7eb;
        border-radius: 0.5rem;
        transition: all 0.2s;
        -webkit-appearance: none; /* 移除iOS默认样式 */
    }
    
    .input-mobile-optimized:focus {
        border-color: #6366f1;
        box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);
        outline: none;
    }

    /* 卡片布局优化 */
    .card-mobile-optimized {
        margin: 0.5rem !important;
        padding: 1rem !important;
        border-radius: 0.75rem;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
        background: white;
        border: 1px solid #f3f4f6;
    }
    
    .card-mobile-optimized:hover {
        transform: translateY(-2px);
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    }

    /* 网格布局移动端调整 */
    .grid-mobile-single {
        grid-template-columns: 1fr !important;
        gap: 0.75rem !important;
    }
    
    .grid-mobile-double {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 0.5rem !important;
    }

    /* 文本大小调整 */
    .text-mobile-title {
        font-size: 1.5rem !important;
        font-weight: 700;
        line-height: 1.3;
    }
    
    .text-mobile-subtitle {
        font-size: 1.125rem !important;
        font-weight: 600;
        line-height: 1.4;
    }
    
    .text-mobile-body {
        font-size: 0.95rem !important;
        line-height: 1.6;
    }

    /* 间距调整 */
    .space-mobile-compact > * + * {
        margin-top: 0.5rem !important;
    }
    
    .space-mobile-normal > * + * {
        margin-top: 1rem !important;
    }
    
    .space-mobile-loose > * + * {
        margin-top: 1.5rem !important;
    }

    /* 滚动优化 */
    .scroll-mobile-optimized {
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }
    
    .scroll-mobile-optimized::-webkit-scrollbar {
        display: none;
    }

    /* 模态框移动端优化 */
    .modal-mobile-optimized {
        margin: 0 !important;
        width: 100% !important;
        height: 100% !important;
        max-width: none !important;
        max-height: none !important;
        border-radius: 0 !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
    }
    
    .modal-content-mobile {
        padding: 1rem;
        height: 100%;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* AI助手浮动按钮移动端优化 */
    .ai-assistant-float-mobile {
        bottom: 20px !important;
        right: 16px !important;
        width: 56px !important;
        height: 56px !important;
        box-shadow: 0 4px 12px rgba(99, 102, 241, 0.4) !important;
    }

    /* 题目练习界面移动端优化 */
    .question-container-mobile {
        padding: 1rem;
        margin: 0.5rem;
    }
    
    .option-button-mobile {
        width: 100%;
        text-align: left;
        padding: 1rem;
        margin: 0.5rem 0;
        border: 2px solid #e5e7eb;
        border-radius: 0.5rem;
        background: white;
        transition: all 0.2s;
        min-height: 44px;
    }
    
    .option-button-mobile:hover {
        border-color: #6366f1;
        background: #f8fafc;
    }
    
    .option-button-mobile.selected {
        border-color: #6366f1;
        background: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);
        color: white;
    }

    /* 统计图表移动端优化 */
    .chart-container-mobile {
        padding: 0.5rem;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* 底部导航栏 */
    .bottom-nav-mobile {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        background: white;
        border-top: 1px solid #e5e7eb;
        padding: 0.5rem;
        display: flex;
        justify-content: space-around;
        z-index: 50;
        box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.1);
    }
    
    .bottom-nav-item {
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: 0.5rem;
        color: #6b7280;
        text-decoration: none;
        font-size: 0.75rem;
        transition: color 0.2s;
        min-width: 44px;
    }
    
    .bottom-nav-item.active,
    .bottom-nav-item:hover {
        color: #6366f1;
    }
    
    .bottom-nav-item .material-symbols-outlined {
        font-size: 1.5rem;
        margin-bottom: 0.25rem;
    }
}

/* 小屏手机适配 (iPhone SE等) */
@media (max-width: 375px) {
    html {
        font-size: 13px;
    }
    
    .card-mobile-optimized {
        margin: 0.25rem !important;
        padding: 0.75rem !important;
    }
    
    .btn-mobile-optimized {
        padding: 0.625rem 1.25rem !important;
        font-size: 0.9rem !important;
    }
    
    .navbar-mobile-optimized h1 {
        font-size: 1rem !important;
    }
}

/* 大屏手机适配 (iPhone Pro Max等) */
@media (max-width: 768px) and (min-width: 415px) {
    .grid-mobile-adaptive {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 1rem !important;
    }
    
    .text-mobile-title {
        font-size: 1.75rem !important;
    }
}

/* 横屏模式优化 */
@media (max-width: 968px) and (orientation: landscape) {
    .modal-mobile-optimized {
        height: 100vh !important;
    }
    
    .navbar-mobile-optimized {
        padding: 0.25rem 1rem !important;
    }
    
    .bottom-nav-mobile {
        padding: 0.25rem;
    }
    
    .bottom-nav-item {
        padding: 0.25rem;
        font-size: 0.7rem;
    }
    
    .bottom-nav-item .material-symbols-outlined {
        font-size: 1.25rem;
    }
}

/* Touch优化 */
@media (hover: none) and (pointer: coarse) {
    .card-hover:hover {
        transform: none;
    }
    
    .card-hover:active {
        transform: translateY(-2px);
        transition: transform 0.1s;
    }
    
    .btn-mobile-optimized:hover {
        transform: none;
    }
    
    .btn-mobile-optimized:active {
        transform: translateY(-1px);
        transition: transform 0.1s;
    }
}