/* Theme Specific Overrides */

:root {
    --bs-body-font-family: 'Plus Jakarta Sans', sans-serif !important;
    --bs-font-sans-serif: 'Plus Jakarta Sans', sans-serif !important;
    --bs-headings-font-family: 'Plus Jakarta Sans', sans-serif !important;
}

body, input, select, textarea, button, .btn, .form-control, .form-select, .table, .card, .dropdown-menu, h1, h2, h3, h4, h5, h6 {
    font-family: 'Plus Jakarta Sans', sans-serif;
}

/* Hide HTML5 number input spinners */
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
}

input[type=number] {
    -moz-appearance: textfield !important;
}

/* Page Layout & Container Spacing */
.page-container {
    padding: 24px 28px !important;
    max-width: 1500px !important;
}

.page-container h3.fw-bold {
    font-size: 1.35rem !important;
    font-weight: 700 !important;
    letter-spacing: -0.01em;
}

.page-container h4.fw-bold {
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    letter-spacing: -0.01em;
}

/* Metrics & Metric Cards */
.glass-card .card-body .text-uppercase,
.glass-card .card-header span.uppercase,
.glass-card .card-header .extra-small.uppercase {
    font-size: 0.68rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.05em !important;
    opacity: 0.7;
}

.glass-card .card-body .h4,
.glass-card .card-body .h5 {
    font-size: 1.1rem !important;
    font-weight: 700 !important;
}

/* Table Design and Spacing */
.custom-table th {
    padding: 10px 14px !important;
    font-size: 0.68rem !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
}

.custom-table td {
    padding: 10px 14px !important;
    font-size: 0.82rem !important;
}

.custom-table td .fs-6 {
    font-size: 0.85rem !important;
    font-weight: 600 !important;
}

.custom-table td .fs-5 {
    font-size: 0.95rem !important;
    font-weight: 700 !important;
}

.custom-table td .sn-badge-info.fs-6 {
    font-size: 0.78rem !important;
    padding: 4px 8px !important;
    border-radius: 6px !important;
}

/* Totals Box / Calculator Card */
.sn-card-subtle {
    padding: 16px 20px !important;
}

.sn-card-subtle .uppercase {
    font-size: 0.68rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.05em !important;
}

.sn-card-subtle .font-monospace.fs-5 {
    font-size: 0.9rem !important;
    font-weight: 600 !important;
}

.sn-card-subtle .fs-3.font-monospace {
    font-size: 1.15rem !important;
    font-weight: 700 !important;
}

/* Customer Profile & Sidebar widgets */
.glass-card .card-body h5 {
    font-size: 0.95rem !important;
    font-weight: 700 !important;
}

.glass-card .card-body .extra-small {
    font-size: 0.68rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.03em !important;
}

.glass-card .card-body .sn-card-subtle {
    padding: 10px 14px !important;
}

.glass-card .card-body .sn-card-subtle .small {
    font-size: 0.78rem !important;
}

.glass-card .card-body .font-monospace.fs-5 {
    font-size: 0.9rem !important;
    font-weight: 700 !important;
}

/* Version History list */
.glass-card .list-group-item .small.uppercase {
    font-size: 0.75rem !important;
    font-weight: 600 !important;
}

.glass-card .list-group-item .fs-5.font-monospace {
    font-size: 0.9rem !important;
    font-weight: 700 !important;
}

/* Bootstrap Overrides */
[data-bs-theme="dark"] .dropdown-menu {
    background-color: var(--bg-surface-2);
    border-color: var(--border);
}

[data-bs-theme="dark"] .card {
    background-color: var(--bg-surface);
    border-color: var(--border);
}

/* Scrollbar */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: var(--bg-primary);
}

::-webkit-scrollbar-thumb {
    background: var(--border);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--text-secondary);
}

/* Selection */
::selection {
    background-color: var(--accent-gold-soft);
    color: var(--accent-gold);
}
