/* roulang page: index */
:root {
      --primary: #0F172A;
      --accent-green: #059669;
      --accent-blue: #0EA5E9;
      --accent-purple: #6366F1;
      --bg-light: #F8FAFC;
      --bg-alt: #F1F5F9;
      --text-main: #1E293B;
      --text-muted: #475569;
      --card-shadow: 0 10px 30px -10px rgba(15, 23, 42, 0.06);
      --card-hover-shadow: 0 20px 35px -8px rgba(14, 165, 233, 0.15);
    }

    html {
      scroll-behavior: smooth;
      font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Inter, sans-serif;
    }

    body {
      background-color: var(--bg-light);
      color: var(--text-main);
      overflow-x: hidden;
      line-height: 1.65;
    }

    .brand-gradient-text {
      background: linear-gradient(135deg, #059669 0%, #0EA5E9 50%, #6366F1 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
    }

    .brand-gradient-bg {
      background: linear-gradient(135deg, #059669 0%, #0EA5E9 50%, #6366F1 100%);
    }

    .card-transition {
      transition: all 0.28s cubic-bezier(0.4, 0, 0.2, 1);
    }

    .card-transition:hover {
      transform: translateY(-4px);
      box-shadow: var(--card-hover-shadow);
    }

    .status-pulse {
      display: inline-block;
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background-color: #10B981;
      box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
      animation: pulse-green 2s infinite cubic-bezier(0.66, 0, 0, 1);
    }

    @keyframes pulse-green {
      to {
        box-shadow: 0 0 0 8px rgba(16, 185, 129, 0);
      }
    }

    details > summary {
      list-style: none;
    }
    details > summary::-webkit-details-marker {
      display: none;
    }
