/* roulang page: index */
:root {
            --sidebar-width: 256px;
            --color-brand: #3b82f6;
            --color-brand-dark: #1d4ed8;
            --color-accent: #f59e0b;
            --color-bg: #f4f5f7;
            --color-surface: #ffffff;
            --color-text: #1f2937;
            --color-text-secondary: #6b7280;
            --color-border: #e5e7eb;
            --color-sidebar-bg: #0a1019;
            --radius-sm: 6px;
            --radius-md: 10px;
            --radius-lg: 16px;
            --radius-xl: 20px;
            --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
            --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08);
            --shadow-lg: 0 8px 30px rgba(0, 0, 0, 0.12);
            --shadow-xl: 0 16px 48px rgba(0, 0, 0, 0.16);
            --transition-fast: 0.15s ease;
            --transition-normal: 0.25s ease;
            --transition-slow: 0.35s cubic-bezier(0.4, 0, 0.2, 1);
        }

        *,
        *::before,
        *::after {
            box-sizing: border-box;
        }

        html {
            scroll-behavior: smooth;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
        }

        body {
            margin: 0;
            padding: 0;
            font-family: "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
            line-height: 1.7;
            color: var(--color-text);
            background-color: var(--color-bg);
            min-height: 100vh;
            overflow-x: hidden;
        }

        a {
            text-decoration: none;
            color: inherit;
            transition: color var(--transition-fast);
        }

        img {
            max-width: 100%;
            height: auto;
            display: block;
        }

        button,
        input {
            font-family: inherit;
            font-size: inherit;
        }

        button {
            cursor: pointer;
            border: none;
            outline: none;
        }

        button:focus-visible,
        a:focus-visible,
        input:focus-visible {
            outline: 2px solid var(--color-brand);
            outline-offset: 2px;
            border-radius: 4px;
        }

        /* ===== 侧边栏 ===== */
        .sidebar {
            position: fixed;
            top: 0;
            left: 0;
            bottom: 0;
            width: var(--sidebar-width);
            background-color: var(--color-sidebar-bg);
            z-index: 30;
            display: flex;
            flex-direction: column;
            overflow-y: auto;
            overflow-x: hidden;
            border-right: 1px solid rgba(255, 255, 255, 0.06);
            transition: transform var(--transition-slow);
        }

        .sidebar::-webkit-scrollbar {
            width: 4px;
        }

        .sidebar::-webkit-scrollbar-track {
            background: transparent;
        }

        .sidebar::-webkit-scrollbar-thumb {
            background: rgba(255, 255, 255, 0.12);
            border-radius: 4px;
        }

        .sidebar-logo {
            padding: 28px 24px 20px;
            border-bottom: 1px solid rgba(255, 255, 255, 0.06);
            display: flex;
            align-items: center;
            gap: 12px;
        }

        .sidebar-logo-icon {
            width: 40px;
            height: 40px;
            border-radius: var(--radius-sm);
            background: linear-gradient(135deg, #3b82f6, #1d4ed8);
            display: flex;
            align-items: center;
            justify-content: center;
            color: #ffffff;
            font-size: 20px;
            flex-shrink: 0;
        }

        .sidebar-logo-text {
            font-size: 1.05rem;
            font-weight: 700;
            color: #ffffff;
            letter-spacing: 0.02em;
            line-height: 1.3;
        }

        .sidebar-search {
            padding: 16px 20px;
            border-bottom: 1px solid rgba(255, 255, 255, 0.06);
        }

        .sidebar-search-inner {
            display: flex;
            align-items: center;
            background: rgba(255, 255, 255, 0.06);
            border-radius: 8px;
            padding: 0 12px;
            transition: background var(--transition-fast), box-shadow var(--transition-fast);
            border: 1px solid transparent;
        }

        .sidebar-search-inner:focus-within {
            background: rgba(255, 255, 255, 0.1);
            border-color: rgba(255, 255, 255, 0.2);
            box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.2);
        }

        .sidebar-search-inner input {
            flex: 1;
            background: transparent;
            border: none;
            outline: none;
            color: #ffffff;
            padding: 10px 0;
            font-size: 0.9rem;
            min-width: 0;
        }

        .sidebar-search-inner input::placeholder {
            color: rgba(255, 255, 255, 0.4);
        }

        .sidebar-search-inner button {
            background: transparent;
            border: none;
            color: rgba(255, 255, 255, 0.55);
            padding: 8px;
            cursor: pointer;
            transition: color var(--transition-fast);
            flex-shrink: 0;
        }

        .sidebar-search-inner button:hover {
            color: #ffffff;
        }

        .sidebar-nav {
            flex: 1;
            padding: 12px 12px;
            display: flex;
            flex-direction: column;
            gap: 2px;
        }

        .sidebar-nav a {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 11px 16px;
            border-radius: 8px;
            color: var(--sidebar-text, #b0bec5);
            font-size: 0.95rem;
            font-weight: 500;
            transition: all var(--transition-fast);
            position: relative;
        }

        .sidebar-nav a:hover {
            background-color: var(--sidebar-hover, #141e2d);
            color: #ffffff;
        }

        .sidebar-nav a.active {
            background-color: var(--sidebar-active, #1a2744);
            color: #ffffff;
            font-weight: 600;
            box-shadow: inset 3px 0 0 var(--color-brand);
        }

        .sidebar-nav a i {
            width: 20px;
            text-align: center;
            font-size: 1rem;
            flex-shrink: 0;
        }

        .sidebar-footer {
            padding: 16px 20px;
            border-top: 1px solid rgba(255, 255, 255, 0.06);
            font-size: 0.78rem;
            color: rgba(255, 255, 255, 0.35);
            text-align: center;
        }

        /* ===== 主内容区 ===== */
        .main-content {
            margin-left: var(--sidebar-width);
            min-height: 100vh;
            display: flex;
            flex-direction: column;
        }

        /* ===== 移动端顶部导航 ===== */
        .mobile-header {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            z-index: 40;
            background: #ffffff;
            border-bottom: 1px solid var(--color-border);
            padding: 0 16px;
            height: 56px;
            align-items: center;
            justify-content: space-between;
            box-shadow: var(--shadow-sm);
        }

        .mobile-logo {
            display: flex;
            align-items: center;
            gap: 10px;
            font-weight: 700;
            font-size: 1rem;
            color: #0f1b2d;
        }

        .mobile-logo-icon {
            width: 34px;
            height: 34px;
            border-radius: 6px;
            background: linear-gradient(135deg, #3b82f6, #1d4ed8);
            display: flex;
            align-items: center;
            justify-content: center;
            color: #fff;
            font-size: 16px;
            flex-shrink: 0;
        }

        .hamburger-btn {
            width: 40px;
            height: 40px;
            border-radius: 8px;
            background: transparent;
            border: none;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.3rem;
            color: #1f2937;
            cursor: pointer;
            transition: background var(--transition-fast);
        }

        .hamburger-btn:hover {
            background: #f3f4f6;
        }

        /* 移动端菜单覆盖层 */
        .mobile-overlay {
            position: fixed;
            inset: 0;
            background: rgba(0, 0, 0, 0.55);
            z-index: 45;
            opacity: 0;
            pointer-events: none;
            transition: opacity var(--transition-normal);
        }

        .mobile-overlay.open {
            opacity: 1;
            pointer-events: auto;
        }

        .mobile-side-panel {
            position: fixed;
            top: 0;
            left: 0;
            bottom: 0;
            width: 280px;
            max-width: 85vw;
            background: var(--color-sidebar-bg);
            z-index: 50;
            transform: translateX(-100%);
            transition: transform var(--transition-slow);
            display: flex;
            flex-direction: column;
            overflow-y: auto;
            box-shadow: var(--shadow-xl);
        }

        .mobile-side-panel.open {
            transform: translateX(0);
        }

        .mobile-panel-close {
            position: absolute;
            top: 12px;
            right: 12px;
            width: 36px;
            height: 36px;
            border-radius: 50%;
            background: rgba(255, 255, 255, 0.08);
            border: none;
            color: #ffffff;
            font-size: 1rem;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: background var(--transition-fast);
            z-index: 2;
        }

        .mobile-panel-close:hover {
            background: rgba(255, 255, 255, 0.18);
        }

        /* ===== 板块通用样式 ===== */
        .section-padding {
            padding: 72px 0;
        }

        .section-title {
            font-size: 2rem;
            font-weight: 700;
            color: #111827;
            text-align: center;
            margin-bottom: 12px;
            letter-spacing: 0.01em;
        }

        .section-subtitle {
            font-size: 1.05rem;
            color: #6b7280;
            text-align: center;
            max-width: 600px;
            margin: 0 auto 48px;
            line-height: 1.6;
        }

        /* ===== 卡片hover效果 ===== */
        .card-hover {
            transition: transform var(--transition-normal), box-shadow var(--transition-normal);
        }

        .card-hover:hover {
            transform: translateY(-4px);
            box-shadow: var(--shadow-lg);
        }

        /* ===== FAQ details样式 ===== */
        .faq-item {
            border: 1px solid var(--color-border);
            border-radius: var(--radius-md);
            background: #ffffff;
            overflow: hidden;
            transition: box-shadow var(--transition-fast);
        }

        .faq-item:hover {
            box-shadow: var(--shadow-sm);
        }

        .faq-item summary {
            padding: 18px 24px;
            font-weight: 600;
            font-size: 1rem;
            color: #1f2937;
            cursor: pointer;
            list-style: none;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 16px;
            user-select: none;
        }

        .faq-item summary::-webkit-details-marker {
            display: none;
        }

        .faq-item summary::after {
            content: '\f078';
            font-family: 'Font Awesome 6 Free';
            font-weight: 900;
            font-size: 0.8rem;
            color: #9ca3af;
            transition: transform var(--transition-normal);
            flex-shrink: 0;
        }

        .faq-item[open] summary::after {
            transform: rotate(180deg);
            color: var(--color-brand);
        }

        .faq-item .faq-answer {
            padding: 0 24px 20px;
            color: #6b7280;
            font-size: 0.95rem;
            line-height: 1.7;
        }

        /* ===== 统计数字动画 ===== */
        .stat-number {
            font-variant-numeric: tabular-nums;
            font-feature-settings: "tnum";
        }

        /* ===== CTA按钮样式 ===== */
        .btn-primary {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 14px 28px;
            background: linear-gradient(135deg, #3b82f6, #2563eb);
            color: #ffffff;
            font-weight: 600;
            font-size: 1rem;
            border-radius: 10px;
            border: none;
            cursor: pointer;
            transition: all var(--transition-fast);
            box-shadow: 0 4px 14px rgba(37, 99, 235, 0.3);
            text-decoration: none;
            white-space: nowrap;
        }

        .btn-primary:hover {
            background: linear-gradient(135deg, #2563eb, #1d4ed8);
            box-shadow: 0 6px 20px rgba(37, 99, 235, 0.4);
            transform: translateY(-1px);
        }

        .btn-primary:active {
            transform: translateY(0);
            box-shadow: 0 2px 8px rgba(37, 99, 235, 0.25);
        }

        .btn-outline {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 13px 26px;
            background: transparent;
            color: #1f2937;
            font-weight: 600;
            font-size: 1rem;
            border-radius: 10px;
            border: 2px solid #d1d5db;
            cursor: pointer;
            transition: all var(--transition-fast);
            text-decoration: none;
            white-space: nowrap;
        }

        .btn-outline:hover {
            border-color: #3b82f6;
            color: #3b82f6;
            background: #f8faff;
        }

        .btn-accent {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 14px 28px;
            background: linear-gradient(135deg, #f59e0b, #d97706);
            color: #ffffff;
            font-weight: 600;
            font-size: 1rem;
            border-radius: 10px;
            border: none;
            cursor: pointer;
            transition: all var(--transition-fast);
            box-shadow: 0 4px 14px rgba(245, 158, 11, 0.3);
            text-decoration: none;
            white-space: nowrap;
        }

        .btn-accent:hover {
            box-shadow: 0 6px 20px rgba(245, 158, 11, 0.45);
            transform: translateY(-1px);
        }

        /* ===== 标签样式 ===== */
        .tag {
            display: inline-block;
            padding: 4px 12px;
            border-radius: 20px;
            font-size: 0.8rem;
            font-weight: 600;
            letter-spacing: 0.02em;
        }

        .tag-blue {
            background: #eff6ff;
            color: #2563eb;
        }

        .tag-green {
            background: #ecfdf5;
            color: #059669;
        }

        .tag-amber {
            background: #fffbeb;
            color: #d97706;
        }

        .tag-red {
            background: #fef2f2;
            color: #dc2626;
        }

        /* ===== 响应式 ===== */
        @media (max-width: 1024px) {
            .sidebar {
                transform: translateX(-100%);
            }

            .main-content {
                margin-left: 0;
            }

            .mobile-header {
                display: flex;
            }

            .main-content {
                padding-top: 56px;
            }

            .section-padding {
                padding: 48px 0;
            }

            .section-title {
                font-size: 1.6rem;
            }

            .section-subtitle {
                font-size: 0.95rem;
                margin-bottom: 32px;
                padding: 0 16px;
            }
        }

        @media (max-width: 768px) {
            .section-padding {
                padding: 40px 0;
            }

            .section-title {
                font-size: 1.4rem;
            }

            .section-subtitle {
                font-size: 0.9rem;
                margin-bottom: 28px;
            }

            .btn-primary,
            .btn-accent,
            .btn-outline {
                padding: 12px 20px;
                font-size: 0.9rem;
                border-radius: 8px;
            }
        }

        @media (max-width: 520px) {
            .section-title {
                font-size: 1.25rem;
            }

            .section-subtitle {
                font-size: 0.85rem;
            }

            .mobile-side-panel {
                width: 100%;
                max-width: 100vw;
            }
        }
