/* roulang page: index */
:root {
      --primary-color: #0EA5E9;
      --heading-color: #0F172A;
      --text-muted: #475569;
      --bg-light: #FBFBFC;
      --bg-alt: #F4F5F7;
      --border-color: rgba(15, 23, 42, 0.08);
      --font-stack: system-ui, -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;
    }
    body {
      font-family: var(--font-stack);
      background-color: var(--bg-light);
      color: #334155;
      line-height: 1.7;
      -webkit-font-smoothing: antialiased;
    }
    .custom-card {
      background: #FFFFFF;
      border: 1px solid var(--border-color);
      transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .custom-card:hover {
      transform: translateY(-4px);
      box-shadow: 0 16px 32px rgba(15, 23, 42, 0.06);
      border-color: rgba(14, 165, 233, 0.3);
    }
    .flash-pulse {
      animation: pulseAlert 2s infinite ease-in-out;
    }
    @keyframes pulseAlert {
      0%, 100% { opacity: 1; }
      50% { opacity: 0.6; }
    }
    .btn-gradient {
      background: linear-gradient(135deg, #0EA5E9 0%, #2563EB 100%);
      transition: all 0.25s ease;
    }
    .btn-gradient:hover {
      box-shadow: 0 8px 20px rgba(14, 165, 233, 0.35);
      transform: translateY(-1px);
    }
    .btn-gradient:active {
      transform: scale(0.97);
    }
    .accordion-content {
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.35s ease-out;
    }
    .accordion-active .accordion-content {
      max-height: 240px;
    }
    .accordion-active .accordion-icon {
      transform: rotate(180deg);
    }
