/* ==========================================================================
   OFFICIAL VTC MOBILE FESTIVAL TYPEFACE SYSTEM: FZ POPPINS
   Synced from AwardsWeb & VotingModule ecosystem
   (Tuned for slim, elegant, balanced weights: max weight clamped to SemiBold)
   ========================================================================== */

/* FZ Poppins Thin (100) */
@font-face {
    font-family: 'FZ Poppins';
    src: url('../font/FZ%20Poppins-Thin.ttf') format('truetype'),
         url('/festival-checkin/font/FZ%20Poppins-Thin.ttf') format('truetype'),
         url('/font/FZ%20Poppins-Thin.ttf') format('truetype');
    font-weight: 100;
    font-style: normal;
    font-display: swap;
}

/* FZ Poppins Light (300) */
@font-face {
    font-family: 'FZ Poppins';
    src: url('../font/FZ%20Poppins-Light.ttf') format('truetype'),
         url('/festival-checkin/font/FZ%20Poppins-Light.ttf') format('truetype'),
         url('/font/FZ%20Poppins-Light.ttf') format('truetype');
    font-weight: 200 300;
    font-style: normal;
    font-display: swap;
}

/* FZ Poppins Regular (400) */
@font-face {
    font-family: 'FZ Poppins';
    src: url('../font/FZ%20Poppins-Regular.ttf') format('truetype'),
         url('/festival-checkin/font/FZ%20Poppins-Regular.ttf') format('truetype'),
         url('/font/FZ%20Poppins-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/* FZ Poppins Medium (500) */
@font-face {
    font-family: 'FZ Poppins';
    src: url('../font/FZ%20Poppins-Medium.ttf') format('truetype'),
         url('/festival-checkin/font/FZ%20Poppins-Medium.ttf') format('truetype'),
         url('/font/FZ%20Poppins-Medium.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

/* FZ Poppins SemiBold (600, 700, 800) -> Giảm độ dày/đậm, dùng SemiBold thanh thoát thay vì ExtraBold */
@font-face {
    font-family: 'FZ Poppins';
    src: url('../font/FZ%20Poppins-SemiBold.ttf') format('truetype'),
         url('/festival-checkin/font/FZ%20Poppins-SemiBold.ttf') format('truetype'),
         url('/font/FZ%20Poppins-SemiBold.ttf') format('truetype');
    font-weight: 600 800;
    font-style: normal;
    font-display: swap;
}

/* FZ Poppins Bold (900) -> Dùng file Bold (700) thay vì Black để không bao giờ bị thô */
@font-face {
    font-family: 'FZ Poppins';
    src: url('../font/FZ%20Poppins-Bold.ttf') format('truetype'),
         url('/festival-checkin/font/FZ%20Poppins-Bold.ttf') format('truetype'),
         url('/font/FZ%20Poppins-Bold.ttf') format('truetype');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

/* Aliases for cross-module compatibility (AwardsWeb & VotingModule) */
@font-face {
    font-family: 'fzpopinsregular';
    src: url('../font/FZ%20Poppins-Regular.ttf') format('truetype'),
         url('/festival-checkin/font/FZ%20Poppins-Regular.ttf') format('truetype'),
         url('/font/FZ%20Poppins-Regular.ttf') format('truetype');
    font-display: swap;
}
@font-face {
    font-family: 'fzpopinsmedium';
    src: url('../font/FZ%20Poppins-Medium.ttf') format('truetype'),
         url('/festival-checkin/font/FZ%20Poppins-Medium.ttf') format('truetype'),
         url('/font/FZ%20Poppins-Medium.ttf') format('truetype');
    font-display: swap;
}
@font-face {
    font-family: 'fzpopinssemibold';
    src: url('../font/FZ%20Poppins-SemiBold.ttf') format('truetype'),
         url('/festival-checkin/font/FZ%20Poppins-SemiBold.ttf') format('truetype'),
         url('/font/FZ%20Poppins-SemiBold.ttf') format('truetype');
    font-display: swap;
}
@font-face {
    font-family: 'fzpopinsbold';
    src: url('../font/FZ%20Poppins-SemiBold.ttf') format('truetype'),
         url('/festival-checkin/font/FZ%20Poppins-SemiBold.ttf') format('truetype'),
         url('/font/FZ%20Poppins-SemiBold.ttf') format('truetype');
    font-display: swap;
}

/* ==========================================================================
   GLOBAL TYPOGRAPHY RULES: FZ POPPINS & POPPINS
   ========================================================================== */
:root {
    --bs-body-font-family: 'FZ Poppins', 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font: 'FZ Poppins', 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font-heading: 'FZ Poppins', 'Poppins', sans-serif;
}

* {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

html, body, button, input, select, textarea,
h1, h2, h3, h4, h5, h6,
.form-control, .form-select, .btn,
.navbar, .nav-link, .modal-title, .modal-body,
p, label, .card-title, .badge {
    font-family: 'FZ Poppins', 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
}

/* Giảm độ đậm toàn diện cho tiêu đề và chữ in đậm */
h1, h2, h3, h4, h5, h6,
.cx-status-title,
.gallery-title, .screen-title, .hero-title, .card-title,
.ticket-title, .lucky-title,
.checkin-copy strong,
.staff-brand h1, .staff-form-title, .staff-result-title, .staff-section-title,
.status-title, .event-title, .item-gate-name,
.customer-ticket-code, .section-title {
    font-weight: 600 !important;
    letter-spacing: -0.01em;
}

strong, b, .fw-bold, .font-bold {
    font-weight: 600 !important;
}

body, p, span, div, a, label, input, select, textarea {
    font-weight: 400;
}

/* Nút bấm cân đối */
.btn, button, input[type="button"], input[type="submit"],
.staff-action-submit-btn, .btn-history-scan-continue, .secondary-btn {
    font-weight: 600 !important;
}

/* Preserving icons from being broken */
.bi, [class^="bi-"], [class*=" bi-"] {
    font-family: "bootstrap-icons" !important;
}
.fa, .fas, .far, .fab, [class^="fa-"], [class*=" fa-"] {
    font-family: "Font Awesome 6 Free", "Font Awesome 6 Brands", "FontAwesome" !important;
}

/* Monospace chips for tickets / OTP */
.ticket-code-chip, .customer-ticket-code {
    font-family: 'FZ Poppins', ui-monospace, SFMono-Regular, monospace !important;
    font-feature-settings: "tnum";
    font-variant-numeric: tabular-nums;
}
