@charset "UTF-8";

/* ==========================================================================
   CMRU English Proficiency Dashboard - Main Stylesheet
   ========================================================================== */

/* --- 1. Font Definitions (@font-face) --- */
@font-face {
    font-family: 'FC Iconic';
    src: url('../fonts/fc-iconic-light.woff2') format('woff2'),
        url('../fonts/fc-iconic-light.otf') format('opentype');
    font-weight: 300 400 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'FC Iconic';
    src: url('../fonts/fc-iconic-bold.woff2') format('woff2'),
        url('../fonts/fc-iconic-bold.otf') format('opentype');
    font-weight: 600 700 800 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'FC Iconic Light';
    src: url('../fonts/fc-iconic-light.woff2') format('woff2'),
        url('../fonts/fc-iconic-light.otf') format('opentype');
    font-weight: 300 400;
    font-style: normal;
    font-display: swap;
}

/* --- 2. Typography & Base Layout --- */
:root {
    --header-h: 76px;
}

html {
    font-size: 17px;
    -webkit-text-size-adjust: 100%;
}

html,
body {
    overflow-x: clip;
    max-width: 100vw;
}

body {
    font-family: 'FC Iconic', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    letter-spacing: 0.01em;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

h1,
h2,
h3,
h4,
h5,
h6,
.font-heading {
    font-family: 'FC Iconic', sans-serif;
    font-weight: 700;
}

#app {
    overflow-x: clip;
    width: 100%;
    max-width: 100vw;
}

/* Light Typography Utilities for Data Tables */
.fc-iconic-light,
.font-iconic-light {
    font-family: 'FC Iconic Light', 'FC Iconic', sans-serif !important;
    font-weight: 300 !important;
}

table tbody td,
table tbody td p,
table tbody td span,
table tbody td div {
    font-family: 'FC Iconic Light', 'FC Iconic', sans-serif;
    font-weight: 300;
}

table tbody td .font-bold,
table tbody td strong,
table tbody td b,
table tbody td [class*="font-bold"],
table tbody td [class*="font-extrabold"],
table tbody td [class*="font-black"] {
    font-family: 'FC Iconic', sans-serif !important;
    font-weight: 700 !important;
}

@media (max-width: 640px) {
    html {
        font-size: 15px;
    }

    .overflow-x-auto table {
        min-width: 640px;
    }
}

/* --- 3. Component & UI Effects --- */
.glass-card {
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

/* Full-Screen Modal Backdrop (Guaranteed 100vw x 100dvh) */
.chart-modal-backdrop {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
    max-width: 100vw !important;
    max-height: 100vh !important;
    margin: 0 !important;
    padding: 0.5rem;
    z-index: 9999 !important;
    background-color: rgba(15, 23, 42, 0.65) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
    box-sizing: border-box !important;
}

/* Custom Thin Scrollbar */
.custom-scroll::-webkit-scrollbar {
    width: 6px;
}

.custom-scroll::-webkit-scrollbar-track {
    background: #f8fafc;
}

.custom-scroll::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 9999px;
}

.custom-scroll::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}

/* Vue & Alpine Cloak Directives */
[v-cloak],
[x-cloak] {
    display: none !important;
}

/* Tabular Number Typography */
.stat-number-anim {
    display: inline-block;
    font-variant-numeric: tabular-nums;
}

/* ApexCharts Styling Enhancements */
.apexcharts-tooltip {
    z-index: 999999 !important;
    pointer-events: none !important;
    overflow: visible !important;
}

.apexcharts-canvas {
    overflow: visible !important;
}

.modal-chart-scroll {
    position: relative;
    z-index: 10;
}

.modal-header-panel {
    position: relative;
    z-index: 5;
}
