/**
 * KWSSIP global typography + readability.
 * Theme colors unchanged (purple #5c4b9b / orange #f0a33a).
 * Loaded on every portal layout.
 */
@import url('https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&family=Source+Sans+3:ital,wght@0,500;0,600;0,700;0,800;1,600&display=swap');

:root {
    --kw-font-display: "Libre Baskerville", "Times New Roman", Georgia, serif;
    --kw-font-ui: "Source Sans 3", "Barlow", "Nunito", sans-serif;
    --kw-text: #111827;
    --kw-text-strong: #0b1220;
    --kw-muted: #4b5563;
    --kw-p: #5c4b9b;
    --kw-o: #f0a33a;
}

html {
    font-size: 16px;
}

body,
body.vertical,
body.light {
    font-family: var(--kw-font-ui) !important;
    font-size: 1.05rem !important;
    font-weight: 600 !important;
    color: var(--kw-text) !important;
    letter-spacing: 0.01em;
    -webkit-font-smoothing: antialiased;
}

/* Headings / brand voice */
h1, h2, h3, h4, h5, h6,
.page-title,
.kw-title,
.kw-admin .kw-title,
.card-title,
.modal-title,
.navbar-brand,
.kw-sidebar-brand-text {
    font-family: var(--kw-font-display) !important;
    font-weight: 700 !important;
    color: var(--kw-text-strong) !important;
    letter-spacing: -0.01em;
}

h1, .h1 { font-size: 1.85rem !important; }
h2, .h2, .page-title { font-size: 1.55rem !important; }
h3, .h3 { font-size: 1.3rem !important; }
h4, .h4 { font-size: 1.15rem !important; }
h5, .h5 { font-size: 1.05rem !important; }
h6, .h6 { font-size: 0.98rem !important; }

p, li, td, th, label, .form-control, .btn, .nav-link, .dropdown-item,
.small, small, .text-muted, .form-text {
    font-family: var(--kw-font-ui) !important;
}

p, li, td, .form-control, .nav-link, .dropdown-item {
    font-size: 1.02rem !important;
    font-weight: 600 !important;
    color: var(--kw-text) !important;
}

label,
.form-group label,
.col-form-label,
.kw-admin .form-group label,
.kw-admin .kw-label {
    font-size: 0.82rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase;
    color: var(--kw-muted) !important;
}

.text-muted,
.form-text,
small,
.small {
    font-size: 0.92rem !important;
    font-weight: 600 !important;
    color: var(--kw-muted) !important;
}

.btn,
button,
.kw-btn {
    font-family: var(--kw-font-ui) !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
}

.table,
.table td,
.table th,
.kw-table td,
.kw-table th {
    font-size: 1rem !important;
    font-weight: 600 !important;
    color: var(--kw-text) !important;
}

.table thead th,
.kw-table thead th {
    font-size: 0.84rem !important;
    font-weight: 800 !important;
    color: var(--kw-muted) !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered,
.select2-results__option {
    font-family: var(--kw-font-ui) !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    color: var(--kw-text) !important;
}

.form-control,
.custom-select,
textarea.form-control {
    font-size: 1.02rem !important;
    font-weight: 600 !important;
    color: var(--kw-text-strong) !important;
    min-height: 44px;
}

/* Light text on dark / branded surfaces (do not force dark color) */
.kw-sidebar .kw-sidebar-brand-text,
.kw-sidebar .nav-item .nav-link,
.kw-sidebar .nav-item .item-name,
.sidebar-left .nav-link,
.kw-admin .kw-panel-h,
.kw-admin .kw-panel-h *,
.kw-public .card-header,
.kw-public .card-header *,
.kw-public .bg-main-page,
.kw-public .bg-main-page *,
.kw-public .desktop-header h5,
.kw-public .mobile-heading,
#trackComplaintModal .modal-title,
#successModal .modal-title,
.kw-track-card__head,
.kw-track-card__head h1,
.kw-track-card__head p,
.modal-header.bg-primary .modal-title,
.btn-primary,
.btn-danger,
.kw-btn-orange,
.kw-btn-purple,
.kw-status {
    color: #fff !important;
}

.kw-sidebar .kw-sidebar-brand-text,
.kw-sidebar .nav-item .nav-link,
.kw-sidebar .nav-item .item-name,
.sidebar-left .nav-link {
    font-family: var(--kw-font-ui) !important;
}

.kw-sidebar .kw-sidebar-brand-text {
    color: rgba(255, 255, 255, 0.88) !important;
    font-size: 0.78rem !important;
}

.kw-sidebar .nav-item .nav-link,
.kw-sidebar .item-name {
    font-size: 0.98rem !important;
    font-weight: 700 !important;
}

/* Public portal */
.kw-public,
.kw-public body,
body.kw-public {
    font-family: var(--kw-font-ui) !important;
}

.kw-public h1,
.kw-public h2,
.kw-public h3,
.kw-public h5,
.kw-public .kw-action-card__title,
.kw-public .desktop-header h5,
.kw-public .mobile-heading {
    font-family: var(--kw-font-display) !important;
}

/* Login */
.wrapper.vh-100 h1,
.wrapper.vh-100 .h1 {
    font-family: var(--kw-font-display) !important;
    font-weight: 700 !important;
}
