/* roulang page: index */
:root {
      --primary: #0A7045;
      --primary-light: #10B981;
      --accent: #F59E0B;
      --alert: #EF4444;
      --text-main: #0F172A;
      --text-body: #334155;
      --text-muted: #64748B;
      --bg-page: #F8FAFC;
      --bg-card: #FFFFFF;
      --border-color: #E2E8F0;
      --radius: 12px;
      --shadow-sm: 0 2px 8px -1px rgba(0, 0, 0, 0.05);
      --shadow-md: 0 8px 24px -4px rgba(10, 112, 69, 0.08);
      --shadow-lg: 0 16px 36px -6px rgba(0, 0, 0, 0.12);
    }

    * {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
      scroll-behavior: smooth;
    }

    body {
      font-family: system-ui, -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;
      background-color: var(--bg-page);
      color: var(--text-body);
      line-height: 1.8;
      overflow-x: hidden;
    }

    .tabular-nums {
      font-variant-numeric: tabular-nums;
    }

    .pulse-dot {
      width: 8px;
      height: 8px;
      background-color: #10B981;
      border-radius: 50%;
      box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
      animation: pulse 1.8s infinite cubic-bezier(0.66, 0, 0, 1);
    }

    @keyframes pulse {
      to {
        box-shadow: 0 0 0 10px rgba(16, 185, 129, 0);
      }
    }

    .card-hover {
      transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
    }

    .card-hover:hover {
      transform: translateY(-4px);
      box-shadow: 0 14px 28px rgba(10, 112, 69, 0.12);
      border-color: rgba(16, 185, 129, 0.4);
    }

    .coupon-ticket {
      position: relative;
      background: radial-gradient(circle at left, transparent 12px, #ffffff 13px) left,
                  radial-gradient(circle at right, transparent 12px, #ffffff 13px) right;
      background-size: 51% 100%;
      background-repeat: no-repeat;
    }

    .hide-scrollbar::-webkit-scrollbar {
      display: none;
    }
    .hide-scrollbar {
      -ms-overflow-style: none;
      scrollbar-width: none;
    }
