/* roulang page: index */
:root {
      --brand-primary: #9E1A36;
      --brand-secondary: #6A1238;
      --accent-gold: #D97706;
      --accent-teal: #0D9488;
      --bg-slate: #F4F6FA;
      --card-white: #FFFFFF;
      --text-main: #111827;
      --text-body: #374151;
      --text-muted: #6B7280;
      --line-border: #E5E7EB;
      --radius-box: 24px;
      --card-shadow: 0 10px 30px -10px rgba(106, 18, 56, 0.08);
      --card-shadow-hover: 0 20px 40px -12px rgba(106, 18, 56, 0.16);
    }

    body {
      background-color: var(--bg-slate);
      color: var(--text-body);
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
      line-height: 1.75;
      overflow-x: hidden;
    }

    .brand-gradient-bg {
      background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    }

    .brand-gradient-text {
      background: linear-gradient(135deg, #9E1A36 0%, #D97706 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
    }

    .card-modern {
      background-color: var(--card-white);
      border-radius: var(--radius-box);
      border: 1px solid rgba(229, 231, 235, 0.85);
      box-shadow: var(--card-shadow);
      transition: all 0.28s cubic-bezier(0.4, 0, 0.2, 1);
    }

    .card-modern:hover {
      transform: translateY(-4px);
      box-shadow: var(--card-shadow-hover);
      border-color: rgba(158, 26, 54, 0.2);
    }

    .pill-badge {
      display: inline-flex;
      align-items: center;
      gap: 0.375rem;
      padding: 0.25rem 0.75rem;
      border-radius: 9999px;
      font-size: 0.75rem;
      font-weight: 600;
      line-height: 1;
    }

    .pulse-dot {
      width: 6px;
      height: 6px;
      border-radius: 50%;
      animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
    }

    @keyframes pulse {
      0%, 100% { opacity: 1; transform: scale(1); }
      50% { opacity: 0.4; transform: scale(0.85); }
    }

    .no-scrollbar::-webkit-scrollbar {
      display: none;
    }
    .no-scrollbar {
      -ms-overflow-style: none;
      scrollbar-width: none;
    }

    .btn-gradient {
      background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
      color: #FFFFFF;
      transition: all 0.25s ease;
      box-shadow: 0 4px 14px rgba(158, 26, 54, 0.25);
    }
    .btn-gradient:hover {
      transform: scale(1.02);
      box-shadow: 0 6px 20px rgba(158, 26, 54, 0.35);
      color: #FFFFFF;
    }

    .hero-mask {
      background: linear-gradient(180deg, rgba(17, 24, 39, 0.88) 0%, rgba(106, 18, 56, 0.92) 100%);
    }

    .table-custom tr {
      border-bottom: 1px solid var(--line-border);
      transition: background 0.15s ease;
    }
    .table-custom tr:hover {
      background-color: rgba(244, 246, 250, 0.7);
    }

/* roulang page: category1 */
:root {
      --brand-primary: #9E1A36;
      --brand-secondary: #6A1238;
      --accent-gold: #D97706;
      --accent-teal: #0D9488;
      --bg-slate: #F4F6FA;
      --card-white: #FFFFFF;
      --text-main: #111827;
      --text-body: #374151;
      --text-muted: #6B7280;
      --line-border: #E5E7EB;
      --radius-box: 24px;
      --card-shadow: 0 10px 30px -10px rgba(106, 18, 56, 0.08);
      --card-shadow-hover: 0 20px 40px -12px rgba(106, 18, 56, 0.16);
    }
    body {
      background-color: var(--bg-slate);
      color: var(--text-body);
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
      line-height: 1.75;
      overflow-x: hidden;
    }
    .brand-gradient-bg {
      background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    }
    .brand-gradient-text {
      background: linear-gradient(135deg, #9E1A36 0%, #D97706 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
    }
    .card-modern {
      background-color: var(--card-white);
      border-radius: var(--radius-box);
      border: 1px solid rgba(229, 231, 235, 0.85);
      box-shadow: var(--card-shadow);
      transition: all 0.28s cubic-bezier(0.4, 0, 0.2, 1);
    }
    .card-modern:hover {
      transform: translateY(-4px);
      box-shadow: var(--card-shadow-hover);
      border-color: rgba(158, 26, 54, 0.2);
    }
    .pill-badge {
      display: inline-flex;
      align-items: center;
      gap: 0.375rem;
      padding: 0.25rem 0.75rem;
      border-radius: 9999px;
      font-size: 0.75rem;
      font-weight: 600;
      line-height: 1;
    }
    .btn-gradient {
      background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
      color: #FFFFFF;
      transition: all 0.25s ease;
      box-shadow: 0 4px 14px rgba(158, 26, 54, 0.25);
    }
    .btn-gradient:hover {
      transform: scale(1.02);
      box-shadow: 0 6px 20px rgba(158, 26, 54, 0.35);
      color: #FFFFFF;
    }
    .status-pulse {
      width: 6px;
      height: 6px;
      border-radius: 50%;
      display: inline-block;
      animation: pulseDot 2s infinite ease-in-out;
    }
    @keyframes pulseDot {
      0%, 100% { transform: scale(0.9); opacity: 0.6; }
      50% { transform: scale(1.4); opacity: 1; }
    }
    .no-scrollbar::-webkit-scrollbar {
      display: none;
    }
    .no-scrollbar {
      -ms-overflow-style: none;
      scrollbar-width: none;
    }
