/* roulang page: index */
:root {
            --color-primary: #2563EB;
            --color-secondary: #10B981;
            --color-bg-base: #F8FAFC;
            --color-text-main: #0F172A;
            --color-text-body: #334155;
            --color-text-muted: #64748B;
            --color-card-border: #E2E8F0;
        }
        body {
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
            background-color: var(--color-bg-base);
            color: var(--color-text-body);
            line-height: 1.6;
        }
        .custom-glass {
            background: rgba(255, 255, 255, 0.92);
            backdrop-filter: blur(12px);
            border-bottom: 1px solid rgba(226, 232, 240, 0.8);
        }
        .card-hover {
            transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
            border: 1px solid #F1F5F9;
        }
        .card-hover:hover {
            transform: translateY(-4px);
            box-shadow: 0 12px 30px rgba(37, 99, 235, 0.08);
            border-color: #CBD5E1;
        }
        .badge-pulse {
            position: relative;
        }
        .badge-pulse::after {
            content: '';
            position: absolute;
            width: 6px;
            height: 6px;
            top: 50%;
            left: 8px;
            transform: translateY(-50%);
            border-radius: 50%;
            background-color: #10B981;
            box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
            animation: pulseRing 1.8s infinite;
        }
        @keyframes pulseRing {
            0% { transform: translateY(-50%) scale(0.95); box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7); }
            70% { transform: translateY(-50%) scale(1); box-shadow: 0 0 0 6px rgba(16, 185, 129, 0); }
            100% { transform: translateY(-50%) scale(0.95); box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); }
        }
