:root {
    --primary-color: #3b82f6; /* Blue 500 */
    --primary-light: #dbeafe; /* Blue 100 */
    --primary-hover: #2563eb; /* Blue 600 */
    --hero-bg: linear-gradient(135deg, var(--primary-color) 0%, #1e3a8a 100%); /* Blue 900 */
    --font-family-base: 'Pretendard', sans-serif;
}

body {
    font-family: var(--font-family-base);
}

.hero-section {
    background: var(--hero-bg);
    padding: 60px 0;
    position: relative;
    overflow: hidden;
    border-bottom-left-radius: 2rem;
    border-bottom-right-radius: 2rem;
    margin-bottom: 2rem;
}

.hero-title span {
    color: #fef08a; /* Yellow for highlight */
}

.text-primary {
    color: var(--primary-color) !important;
}

.bg-primary {
    background-color: var(--primary-color) !important;
}

.btn-primary {
    background-color: var(--primary-color);
    border-color: var(--primary-color);
    color: white;
}

.btn-primary:hover {
    background-color: var(--primary-hover);
    border-color: var(--primary-hover);
    color: white;
}

.btn-outline-primary {
    color: var(--primary-color);
    border-color: var(--primary-color);
}

.btn-outline-primary:hover, .btn-check:checked + .btn-outline-primary {
    background-color: var(--primary-color);
    color: white;
    border-color: var(--primary-color);
}

/* Dropdown custom height */
.premium-select {
    height: 50px;
    font-size: 1.1rem;
    border-radius: 0.5rem;
}

/* TomSelect Customizations */
.ts-control {
    border-radius: 0.5rem;
    border: none;
    min-height: 50px;
    padding: 10px 15px;
    font-size: 1.1rem;
    box-shadow: 0 .125rem .25rem rgba(0,0,0,.075) !important;
}
.ts-control.multi .ts-item {
    background-color: var(--primary-light);
    color: var(--primary-hover);
    border: 1px solid var(--primary-color);
    border-radius: 4px;
    padding: 4px 8px;
    font-size: 0.95rem;
    font-weight: 600;
}

/* Grid.js Customizations for tighter UI */
.gridjs-container {
    font-size: 0.95rem;
}
.gridjs-th {
    background-color: #f8f9fa !important;
    font-weight: bold;
    text-align: center !important;
    min-width: 80px;
}
.gridjs-th-content {
    text-overflow: clip !important;
    white-space: nowrap !important;
    overflow: visible !important;
}
.gridjs-td {
    text-align: right;
}
.gridjs-td[data-column-id="region"],
.gridjs-td[data-column-id="age"],
.gridjs-td[data-column-id="category"],
.gridjs-td[data-column-id="gender"] {
    text-align: left;
    font-weight: 600;
}

/* Hide Grid.js sort icons but keep sorting functionality */
button.gridjs-sort {
    display: none !important;
}

/* Hide Grid.js search clear icon glitch */
.gridjs-search-input {
    border-radius: 20px;
}

/* Stat Panels Transition */
.stat-panel {
    animation: fadeIn 0.3s ease-in-out;
}
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Table of Contents Modern Styling */
.toc-btn {
    position: relative;
    overflow: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03) !important;
}

.toc-btn:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04) !important;
    border-color: var(--primary-color) !important;
}

.toc-btn i {
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.toc-btn:hover i {
    transform: scale(1.2);
}

.transition-all {
    transition: all 0.3s ease;
}
\n\n/* Responsive Hero Title */\n.hero-title {\n    white-space: nowrap;\n    font-size: clamp(1.5rem, 5vw, 3rem);\n}\n\n.hero-title span {\n    display: inline-block;\n    white-space: nowrap;\n    font-size: clamp(1.1rem, 4vw, 1.8rem);\n}\n