/* ── CoroSuite Custom Theme ── */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');

/* ── CSS Variables ── */
:root {
    --cs-primary:       #6366f1;
    --cs-primary-dark:  #4f46e5;
    --cs-primary-rgb:   99, 102, 241;
    --bs-font-sans-serif: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
    --bs-border-radius:    0.5rem;
    --bs-border-radius-lg: 0.75rem;
    --bs-border-radius-xl: 1rem;
}

[data-bs-theme="dark"] {
    --cs-primary:      #818cf8;
    --cs-primary-dark: #6366f1;
    --cs-primary-rgb:  129, 140, 248;
}

/* ── Base ── */
body {
    font-family: var(--bs-font-sans-serif);
    font-size: 0.925rem;
    letter-spacing: -0.01em;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
    letter-spacing: -0.02em;
    font-weight: 600;
}

/* ── Navbar ── */
[data-bs-theme="light"] .navbar.navbar-dark.bg-dark {
    background: linear-gradient(135deg, #1e1b4b 0%, #312e81 100%) !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.18);
}
[data-bs-theme="dark"] .navbar.navbar-dark.bg-dark {
    background: #1a1a2e !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.5);
}
.navbar-brand {
    font-weight: 700;
    letter-spacing: -0.03em;
    font-size: 1.25rem;
}

/* ── Cards ── */
[data-bs-theme="light"] .card {
    border: 1px solid rgba(0,0,0,0.07);
    box-shadow: 0 1px 3px rgba(0,0,0,0.05), 0 4px 16px rgba(0,0,0,0.04);
}
[data-bs-theme="dark"] .card {
    border: 1px solid rgba(255,255,255,0.07);
    box-shadow: 0 1px 3px rgba(0,0,0,0.3), 0 4px 16px rgba(0,0,0,0.25);
}
.card {
    border-radius: var(--bs-border-radius-lg);
    transition: box-shadow 0.2s;
}
.card:hover {
    box-shadow: 0 4px 20px rgba(var(--cs-primary-rgb), 0.12), 0 2px 8px rgba(0,0,0,0.06);
}
.card-header {
    border-radius: var(--bs-border-radius-lg) var(--bs-border-radius-lg) 0 0 !important;
    font-weight: 600;
    font-size: 0.9rem;
}

/* ── Buttons ── */
.btn {
    font-weight: 500;
    letter-spacing: -0.01em;
    border-radius: 0.5rem;
}
.btn-primary {
    background-color: var(--cs-primary);
    border-color: var(--cs-primary);
    box-shadow: 0 2px 8px rgba(var(--cs-primary-rgb), 0.35);
}
.btn-primary:hover, .btn-primary:focus {
    background-color: var(--cs-primary-dark);
    border-color: var(--cs-primary-dark);
    box-shadow: 0 4px 14px rgba(var(--cs-primary-rgb), 0.45);
}
.btn-outline-primary {
    color: var(--cs-primary);
    border-color: var(--cs-primary);
}
.btn-outline-primary:hover {
    background-color: var(--cs-primary);
    border-color: var(--cs-primary);
}

/* ── Tables ── */
.table {
    font-size: 0.9rem;
}
.table thead th {
    font-weight: 600;
    font-size: 0.8rem;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

/* ── Form controls ── */
.form-control, .form-select {
    border-radius: 0.5rem;
    font-size: 0.9rem;
}
.form-control:focus, .form-select:focus {
    border-color: var(--cs-primary);
    box-shadow: 0 0 0 0.2rem rgba(var(--cs-primary-rgb), 0.2);
}
.form-label {
    font-weight: 500;
    font-size: 0.85rem;
}

/* ── Badges ── */
.badge {
    font-weight: 500;
    letter-spacing: 0.01em;
}

/* ── Alerts ── */
.alert {
    border-radius: var(--bs-border-radius-lg);
    border: none;
}
[data-bs-theme="light"] .alert {
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}

/* ── Nav links ── */
.nav-link {
    font-weight: 500;
    font-size: 0.9rem;
}

/* ── Theme toggle button ── */
#theme-toggle {
    background: none;
    border: none;
    color: rgba(255,255,255,0.8);
    font-size: 1.1rem;
    padding: 0.35rem 0.55rem;
    border-radius: 0.5rem;
    cursor: pointer;
    transition: color 0.15s, background 0.15s;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
#theme-toggle:hover {
    color: #fff;
    background: rgba(255,255,255,0.14);
}

/* ── Launcher FAB — override colore in dark ── */
[data-bs-theme="dark"] #launcher-fab {
    background: #312e81;
    box-shadow: 0 4px 18px rgba(0,0,0,0.65);
}
[data-bs-theme="dark"] #launcher-fab:hover {
    background: var(--cs-primary);
}

/* ── Container ── */
.container {
    padding-top: 0.5rem;
}

/* ── Page header utility ── */
.page-header {
    margin-bottom: 1.5rem;
}

/* ── Dropdown ── */
.dropdown-menu {
    border-radius: var(--bs-border-radius-lg);
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    border: 1px solid rgba(0,0,0,0.07);
    font-size: 0.9rem;
}
[data-bs-theme="dark"] .dropdown-menu {
    box-shadow: 0 8px 24px rgba(0,0,0,0.4);
    border: 1px solid rgba(255,255,255,0.08);
}

/* ── Global dark mode — bg-light / bg-white / table-light overrides ── */
[data-bs-theme="dark"] .bg-light {
    background-color: var(--bs-tertiary-bg) !important;
}
[data-bs-theme="dark"] .bg-white {
    background-color: var(--bs-body-bg) !important;
}
[data-bs-theme="dark"] .table-light,
[data-bs-theme="dark"] .table-light > th,
[data-bs-theme="dark"] .table-light > td,
[data-bs-theme="dark"] thead.table-light th {
    --bs-table-bg: var(--bs-tertiary-bg);
    background-color: var(--bs-tertiary-bg) !important;
    color: var(--bs-body-color) !important;
    border-color: var(--bs-border-color) !important;
}

/* ── Quota management — dark mode overrides ── */
[data-bs-theme="dark"] .col-sticky-1,
[data-bs-theme="dark"] .col-sticky-2 {
    background: var(--bs-body-bg) !important;
}
[data-bs-theme="dark"] thead .col-sticky-1,
[data-bs-theme="dark"] thead .col-sticky-2 {
    background: #212529 !important;
}
[data-bs-theme="dark"] tfoot .col-sticky-foot {
    background: var(--bs-tertiary-bg) !important;
}
[data-bs-theme="dark"] .bg-light.p-1 {
    background: var(--bs-body-bg) !important;
}
[data-bs-theme="dark"] td.bg-light {
    background: var(--bs-body-bg) !important;
}
[data-bs-theme="dark"] .qtile.tile-due {
    background: #4a1520;
    color: #f8bdc1;
    border-color: #6b2030;
}
[data-bs-theme="dark"] .qtile.tile-unpaid {
    background: #2b2f33;
    color: #adb5bd;
    border-color: #495057;
}
[data-bs-theme="dark"] .qtile.tile-exempt {
    background: #3d3010;
    border-color: #7a6520;
}
[data-bs-theme="dark"] .cell-exempt {
    background-color: #2a2200 !important;
}
[data-bs-theme="dark"] .qexempt-btn {
    color: #6c757d;
}
[data-bs-theme="dark"] tr.table-warning {
    --bs-table-bg: #3d3010;
    --bs-table-color: #e9d8a6;
}
[data-bs-theme="dark"] td.bg-warning-subtle {
    background-color: #3d3010 !important;
    color: #e9d8a6;
}

/* ── Note admin — dark mode ── */
[data-bs-theme="dark"] .admin-notes-card {
    background: #2a2500 !important;
    border-color: #854d0e !important;
}
[data-bs-theme="dark"] .admin-notes-card .admin-notes-header {
    background: #2a2500 !important;
    border-color: #854d0e !important;
}
[data-bs-theme="dark"] .admin-notes-card textarea,
[data-bs-theme="dark"] .admin-notes-field {
    background: #2a2500 !important;
    border-color: #854d0e !important;
    color: #fef08a !important;
}
