/* Custom Font Size Reduction - 10% smaller (more conservative) */

/* Base font size reduction */
:root {
    /* Original default-font-size was 0.813rem, reducing by 10% = 0.732rem */
    --custom-font-size: 0.732rem;
    --custom-font-size-sm: 0.659rem; /* 90% of custom */
    --custom-font-size-lg: 0.878rem; /* 120% of custom */
}

/* Override body and html font size */
html {
    font-size: 15px !important; /* Slightly reduced from 16px base */
}

body {
    font-size: var(--custom-font-size) !important;
}

/* Typography overrides */
h1, .h1 { font-size: calc(1.375rem * 0.9) !important; }
h2, .h2 { font-size: calc(1.325rem * 0.9) !important; }
h3, .h3 { font-size: calc(1.3rem * 0.9) !important; }
h4, .h4 { font-size: calc(1.275rem * 0.9) !important; }
h5, .h5 { font-size: calc(1.25rem * 0.9) !important; }
h6, .h6 { font-size: calc(1rem * 0.9) !important; }

/* Form controls */
.form-control,
.form-select {
    font-size: var(--custom-font-size) !important;
}

.form-control-sm {
    font-size: var(--custom-font-size-sm) !important;
}

.form-control-lg {
    font-size: var(--custom-font-size-lg) !important;
}

/* Buttons */
.btn {
    font-size: var(--custom-font-size) !important;
}

.btn-sm {
    font-size: var(--custom-font-size-sm) !important;
}

.btn-lg {
    font-size: var(--custom-font-size-lg) !important;
}

/* Tables */
.table {
    font-size: var(--custom-font-size) !important;
}

.table-sm {
    font-size: var(--custom-font-size-sm) !important;
}

/* Cards */
.card {
    font-size: var(--custom-font-size) !important;
}

.card-title {
    font-size: calc(1rem * 0.75) !important;
}

.card-subtitle {
    font-size: calc(0.875rem * 0.75) !important;
}

/* Badges */
.badge {
    font-size: calc(0.65em * 0.75) !important;
}

/* Dropdowns */
.dropdown-menu {
    font-size: var(--custom-font-size) !important;
}

.dropdown-item {
    font-size: var(--custom-font-size) !important;
}

/* Navigation */
.navbar {
    font-size: var(--custom-font-size) !important;
}

.nav-link {
    font-size: var(--custom-font-size) !important;
}

/* Sidebar menu */
.side-menu__label {
    font-size: var(--custom-font-size) !important;
}

.side-menu__item {
    font-size: var(--custom-font-size) !important;
}

/* Breadcrumb */
.breadcrumb {
    font-size: var(--custom-font-size-sm) !important;
}

/* Modals */
.modal-title {
    font-size: calc(1rem * 0.75) !important;
}

.modal-body {
    font-size: var(--custom-font-size) !important;
}

/* Alerts */
.alert {
    font-size: var(--custom-font-size) !important;
}

/* Pagination */
.pagination {
    font-size: var(--custom-font-size) !important;
}

/* List groups */
.list-group-item {
    font-size: var(--custom-font-size) !important;
}

/* Tooltips and Popovers */
.tooltip {
    font-size: var(--custom-font-size-sm) !important;
}

.popover {
    font-size: var(--custom-font-size) !important;
}

/* Small text elements */
small,
.small {
    font-size: calc(0.875em * 0.75) !important;
}

/* Text utilities */
.fs-1 { font-size: calc(2.5rem * 0.75) !important; }
.fs-2 { font-size: calc(2rem * 0.75) !important; }
.fs-3 { font-size: calc(1.75rem * 0.75) !important; }
.fs-4 { font-size: calc(1.5rem * 0.75) !important; }
.fs-5 { font-size: calc(1.25rem * 0.75) !important; }
.fs-6 { font-size: calc(1rem * 0.75) !important; }

/* Custom classes used in the template */
.fs-10 { font-size: calc(0.625rem * 0.75) !important; }
.fs-11 { font-size: calc(0.6875rem * 0.75) !important; }
.fs-12 { font-size: calc(0.75rem * 0.75) !important; }
.fs-13 { font-size: calc(0.8125rem * 0.75) !important; }
.fs-14 { font-size: calc(0.875rem * 0.75) !important; }
.fs-15 { font-size: calc(0.9375rem * 0.75) !important; }
.fs-16 { font-size: calc(1rem * 0.75) !important; }
.fs-17 { font-size: calc(1.0625rem * 0.75) !important; }
.fs-18 { font-size: calc(1.125rem * 0.75) !important; }
.fs-19 { font-size: calc(1.1875rem * 0.75) !important; }
.fs-20 { font-size: calc(1.25rem * 0.75) !important; }

/* Page headers */
.page-title {
    font-size: calc(1.25rem * 0.75) !important;
}

/* Statistics cards */
.custom-card h4 {
    font-size: calc(1.5rem * 0.75) !important;
}

.custom-card h6 {
    font-size: calc(1rem * 0.75) !important;
}

/* Input groups */
.input-group-text {
    font-size: var(--custom-font-size) !important;
}

/* Labels */
.form-label {
    font-size: var(--custom-font-size) !important;
}

/* Help text */
.form-text {
    font-size: var(--custom-font-size-sm) !important;
}

/* Icon sizes - reduce slightly to match text */
.side-menu__icon {
    font-size: calc(1.25rem * 0.75) !important;
}

.ri-1x { font-size: calc(1em * 0.75) !important; }
.ri-2x { font-size: calc(2em * 0.75) !important; }
.ri-3x { font-size: calc(3em * 0.75) !important; }
.ri-4x { font-size: calc(4em * 0.75) !important; }
.ri-5x { font-size: calc(5em * 0.75) !important; }

/* Avatar sizes adjustments */
.avatar-sm {
    height: calc(2rem * 0.75) !important;
    width: calc(2rem * 0.75) !important;
    font-size: calc(0.75rem * 0.75) !important;
}

.avatar-md {
    height: calc(3rem * 0.75) !important;
    width: calc(3rem * 0.75) !important;
    font-size: calc(1rem * 0.75) !important;
}

.avatar-lg {
    height: calc(4rem * 0.75) !important;
    width: calc(4rem * 0.75) !important;
    font-size: calc(1.25rem * 0.75) !important;
}

/* Toast notifications */
.toast {
    font-size: var(--custom-font-size) !important;
}

/* Tab content */
.nav-tabs .nav-link {
    font-size: var(--custom-font-size) !important;
}

/* Offcanvas */
.offcanvas-title {
    font-size: calc(1rem * 0.75) !important;
}

/* Switcher specific */
.switcher-style-head {
    font-size: calc(0.875rem * 0.75) !important;
}

/* Adjust line heights proportionally */
body {
    line-height: 1.5 !important;
}

/* Ensure consistent spacing with smaller fonts */
.mb-1 { margin-bottom: calc(0.25rem * 0.75) !important; }
.mb-2 { margin-bottom: calc(0.5rem * 0.75) !important; }
.mb-3 { margin-bottom: calc(1rem * 0.75) !important; }
.mb-4 { margin-bottom: calc(1.5rem * 0.75) !important; }
.mb-5 { margin-bottom: calc(3rem * 0.75) !important; }

.mt-1 { margin-top: calc(0.25rem * 0.75) !important; }
.mt-2 { margin-top: calc(0.5rem * 0.75) !important; }
.mt-3 { margin-top: calc(1rem * 0.75) !important; }
.mt-4 { margin-top: calc(1.5rem * 0.75) !important; }
.mt-5 { margin-top: calc(3rem * 0.75) !important; }

.p-1 { padding: calc(0.25rem * 0.75) !important; }
.p-2 { padding: calc(0.5rem * 0.75) !important; }
.p-3 { padding: calc(1rem * 0.75) !important; }
.p-4 { padding: calc(1.5rem * 0.75) !important; }
.p-5 { padding: calc(3rem * 0.75) !important; }

/* Special large text elements */
.fs-48 { font-size: calc(3rem * 0.75) !important; }

/* Data tables */
.dataTables_wrapper {
    font-size: var(--custom-font-size) !important;
}

/* Charts and legends */
.apexcharts-text {
    font-size: var(--custom-font-size-sm) !important;
}

/* Calendar */
.fc-event {
    font-size: var(--custom-font-size-sm) !important;
}

.fc-daygrid-day-number,
.fc-col-header-cell-cushion {
    font-size: var(--custom-font-size) !important;
}

/* ==================================================
   BUTTON SPINNER STANDARDIZATION
   ================================================== */

/* Ensure all spinners inside buttons are small and don't break layout */
.btn .spinner-border {
    width: 1rem !important;
    height: 1rem !important;
    border-width: 0.1em !important;
}

/* Small button spinners should be even smaller */
.btn-sm .spinner-border {
    width: 0.75rem !important;
    height: 0.75rem !important;
    border-width: 0.08em !important;
}

/* Large button spinners can be slightly bigger but still contained */
.btn-lg .spinner-border {
    width: 1.25rem !important;
    height: 1.25rem !important;
    border-width: 0.12em !important;
}

/* Ensure spinner-border-sm is consistent */
.spinner-border-sm {
    width: 1rem !important;
    height: 1rem !important;
    border-width: 0.1em !important;
}

/* Loading overlays and standalone spinners should use default sizes */
.loading-overlay .spinner-border,
.loading-container .spinner-border,
.d-flex .spinner-border:not(.btn .spinner-border) {
    width: 2rem !important;
    height: 2rem !important;
    border-width: 0.25em !important;
}

/* Fix for specific cases where spinner might be too big */
button:disabled .spinner-border {
    width: 1rem !important;
    height: 1rem !important;
    border-width: 0.1em !important;
}