html {
    font-size: 14.5px; /* Fine-tuned root scale */
    box-sizing: border-box;
}

*, *::before, *::after {
    box-sizing: inherit;
}

body, input, button, select, textarea, optgroup, .form-control, .form-select, .btn, .card, .table, h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6, p, span, a, div, label, li {
    font-family: var(--font-family);
}

body {
    font-family: var(--font-family);
    background-color: var(--bg-color);
    color: var(--text-primary);
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    transition: background-color var(--transition-normal), color var(--transition-normal);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--font-heading);
    font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.01em;
}

.font-monospace {
    font-family: var(--bs-font-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace) !important;
}

i.bi, .bi {
    font-family: "bootstrap-icons" !important;
}

a {
    color: var(--secondary-color);
    text-decoration: none;
    transition: color var(--transition-fast);
}

a:hover {
    color: var(--secondary-hover);
}

/* Base text classes */
.text-primary-theme { color: var(--text-primary) !important; }
.text-secondary-theme { color: var(--text-secondary) !important; }
.text-muted-theme { color: var(--text-muted) !important; }

/* Custom primary colors overrides for Bootstrap */
.bg-primary { background-color: var(--primary-color) !important; }
.text-primary { color: var(--primary-color) !important; }
.border-primary { border-color: var(--primary-color) !important; }

/* Scrollbar styling - Sleek minimalist */
::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}
::-webkit-scrollbar-track {
    background: transparent;
}
::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 10px;
}
::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}
[data-bs-theme="dark"] ::-webkit-scrollbar-thumb {
    background: #334155;
}
[data-bs-theme="dark"] ::-webkit-scrollbar-thumb:hover {
    background: #475569;
}

/* ── Compact Translucent Notification Toasts ── */
#toastContainer {
    pointer-events: none;
    z-index: 1090 !important;
}

.app-compact-toast {
    pointer-events: auto;
    transition: opacity 0.2s ease, transform 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.app-compact-toast.slide-up {
    animation: toastSlideIn 0.25s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes toastSlideIn {
    from {
        opacity: 0;
        transform: translateY(-8px) scale(0.97);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* ── Global Modal & Backdrop Stacking Order ── */
#modalContainer {
    position: relative;
    z-index: 1080;
}
.modal-backdrop {
    z-index: 1060 !important;
}
.modal {
    z-index: 1090 !important;
}
