/* roulang page: index */
:root {
            --primary: #1D4ED8;
            --primary-dark: #1E40AF;
            --accent: #0284C7;
            --accent-light: #DBEAFE;
            --bg-light: #F4F7FB;
            --text-main: #0F172A;
            --text-muted: #475569;
            --border-color: #E2E8F0;
            --shadow-card: 0 10px 25px -5px rgba(30, 64, 175, 0.06), 0 8px 10px -6px rgba(30, 64, 175, 0.04);
            --shadow-hover: 0 20px 30px -10px rgba(30, 64, 175, 0.12), 0 10px 15px -5px rgba(30, 64, 175, 0.08);
        }

        body {
            background-color: var(--bg-light);
            color: var(--text-main);
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
            -webkit-font-smoothing: antialiased;
        }

        /* Dot Grid Sandbox Background */
        .dot-grid {
            background-image: radial-gradient(#CBD5E1 1px, transparent 1px);
            background-size: 24px 24px;
        }

        /* Slanted Hero Background */
        .slanted-hero {
            position: relative;
            background: linear-gradient(135deg, #1E40AF 0%, #1D4ED8 60%, #0284C7 100%);
            clip-path: polygon(0 0, 100% 0, 100% 92%, 0 100%);
        }

        @media (max-width: 768px) {
            .slanted-hero {
                clip-path: polygon(0 0, 100% 0, 100% 96%, 0 100%);
            }
        }

        .card-custom {
            background: #FFFFFF;
            border: 1px solid #E2E8F0;
            border-radius: 12px;
            box-shadow: var(--shadow-card);
            transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
        }

        .card-custom:hover {
            transform: translateY(-6px);
            box-shadow: var(--shadow-hover);
            border-color: #BFDBFE;
        }

        .node-badge {
            font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
            font-size: 0.75rem;
            letter-spacing: 0.05em;
        }

        .nav-item-active {
            color: #1D4ED8;
            font-weight: 600;
            border-bottom: 2px solid #1D4ED8;
        }

        /* Custom Scrollbar for Region Picker */
        .custom-scroll::-webkit-scrollbar {
            width: 4px;
        }
        .custom-scroll::-webkit-scrollbar-thumb {
            background: #CBD5E1;
            border-radius: 4px;
        }

/* roulang page: category1 */
:root {
      --primary: #1D4ED8;
      --primary-dark: #1E40AF;
      --accent: #0284C7;
      --accent-light: #DBEAFE;
      --bg-light: #F4F7FB;
      --text-main: #0F172A;
      --text-muted: #475569;
      --border-color: #E2E8F0;
      --shadow-card: 0 10px 25px -5px rgba(30, 64, 175, 0.06), 0 8px 10px -6px rgba(30, 64, 175, 0.04);
      --shadow-hover: 0 20px 30px -10px rgba(30, 64, 175, 0.12), 0 10px 15px -5px rgba(30, 64, 175, 0.08);
    }
    body {
      background-color: var(--bg-light);
      color: var(--text-main);
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
      -webkit-font-smoothing: antialiased;
    }
    .dot-grid {
      background-image: radial-gradient(#CBD5E1 1px, transparent 1px);
      background-size: 24px 24px;
    }
    .card-custom {
      background: #FFFFFF;
      border: 1px solid #E2E8F0;
      border-radius: 12px;
      box-shadow: var(--shadow-card);
      transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .card-custom:hover {
      transform: translateY(-6px);
      box-shadow: var(--shadow-hover);
      border-color: #BFDBFE;
    }
    .node-badge {
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
      font-size: 0.75rem;
      letter-spacing: 0.05em;
    }
    .nav-item-active {
      color: #1D4ED8;
      font-weight: 600;
      border-bottom: 2px solid #1D4ED8;
    }
    .filter-btn-active {
      background-color: #1D4ED8;
      color: #FFFFFF;
      border-color: #1D4ED8;
    }
