html, body {
    height: 100vh;
    overflow: hidden;
}

/* Radzen dropdown popup above Bootstrap modals */
.rz-popup {
    z-index: 1060 !important;
}

/* ===== Design Tokens ===== */
:root {
    /* --- Radius --- */
    --radius-xs: 4px;
    --radius-sm: 6px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --radius-xl: 16px;
    --radius-2xl: 20px;
    --radius-full: 999px;

    /* --- Shadows --- */
    --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.05);
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
    --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08);
    --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
    --shadow-focus: 0 0 0 3px rgba(13, 72, 112, 0.15);

    /* --- Brand / Primary --- */
    --primary-color: #0d4870;
    --primary-hover: #0a3a5a;
    --primary-light: #d5e9f7;
    --primary-lighter: #e8f2fb;
    --primary-subtle: #f0f6fb;
    --brand-gradient-start: #0D4970;
    --brand-gradient-end: #1a6fa3;

    /* --- Semantic status --- */
    --secondary-color: #eaebec;
    --success-bg: #e6f4e6;
    --success-border: #4caf50;
    --success-text: #2e4a1e;
    --warning-bg: #fff2e6;
    --warning-border: #ff9800;
    --warning-text: #5a4209;
    --danger-bg: #ffe6e6;
    --danger-border: #dc3545;
    --danger-text: #8b0000;

    /* --- Surface / Background --- */
    --bg-body: #ffffff;
    --bg-secondary: #f4f4f4;
    --bg-tertiary: #f8fafc;
    --bg-surface: #ffffff;
    --bg-surface-hover: #f3f6fa;
    --bg-surface-active: #e8f2fb;
    --bg-muted: #eaebec;
    --bg-input: #eaeaea;
    --bg-overlay: rgba(0, 0, 0, 0.5);

    /* --- Text --- */
    --text-dark: #333333;
    --text-light: #666666;
    --text-primary: #333333;
    --text-secondary: #666666;
    --text-muted: #8896a6;
    --text-brand: #0D4970;
    --text-on-primary: #ffffff;

    /* --- Borders --- */
    --border-color: #d0d0d0;
    --border-light: #e5e7eb;
    --border-card: #e8ecf0;
    --border-focus: #0D496F;

    /* --- Card --- */
    --card-bg: #ffffff;
    --card-border: #e8ecf0;

    /* --- Sidebar --- */
    --sidebar-bg: #f4f4f4;
    --sidebar-card-bg: #f8fafc;

    /* --- Scrollbar --- */
    --scrollbar-thumb: #c5cdd6;
    --scrollbar-track: transparent;
}

/* ===== Dark Theme ===== */
[data-theme="dark"] {
    --primary-color: #60a5fa;
    --primary-hover: #93c5fd;
    --primary-light: #1e3a5f;
    --primary-lighter: #172554;
    --primary-subtle: #0f1729;
    --brand-gradient-start: #1e3a5f;
    --brand-gradient-end: #2563eb;

    --secondary-color: #27272a;
    --success-bg: #052e16;
    --success-border: #22c55e;
    --success-text: #86efac;
    --warning-bg: #422006;
    --warning-border: #f59e0b;
    --warning-text: #fcd34d;
    --danger-bg: #450a0a;
    --danger-border: #f87171;
    --danger-text: #fca5a5;

    --bg-body: #09090b;
    --bg-secondary: #18181b;
    --bg-tertiary: #1c1c20;
    --bg-surface: #141416;
    --bg-surface-hover: #27272a;
    --bg-surface-active: #1e3a5f;
    --bg-muted: #27272a;
    --bg-input: #1c1c20;
    --bg-overlay: rgba(0, 0, 0, 0.75);

    --text-dark: #fafafa;
    --text-light: #a1a1aa;
    --text-primary: #e4e4e7;
    --text-secondary: #a1a1aa;
    --text-muted: #71717a;
    --text-brand: #60a5fa;
    --text-on-primary: #ffffff;

    --border-color: #27272a;
    --border-light: #1f1f23;
    --border-card: #27272a;
    --border-focus: #60a5fa;

    --card-bg: #141416;
    --card-border: #27272a;

    --sidebar-bg: #0f0f12;
    --sidebar-card-bg: #18181b;

    --scrollbar-thumb: #3f3f46;
    --scrollbar-track: transparent;

    --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.3);
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.4);
    --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.4);
    --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.5);
    --shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.5);
    --shadow-focus: 0 0 0 3px rgba(96, 165, 250, 0.2);

    color-scheme: dark;
}

/* Dark theme global overrides */
[data-theme="dark"] body {
    background-color: var(--bg-body);
    color: var(--text-primary);
}

[data-theme="dark"] .bg-light {
    background-color: var(--bg-secondary) !important;
}

[data-theme="dark"] .bg-white {
    background-color: var(--bg-surface) !important;
}

[data-theme="dark"] .text-muted {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .border-end {
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .border-start {
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .border {
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .card {
    background-color: var(--card-bg);
    border-color: var(--card-border);
    color: var(--text-primary);
}

[data-theme="dark"] .card-header {
    background-color: var(--bg-surface) !important;
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .card-body {
    background-color: var(--sidebar-card-bg);
    color: var(--text-primary);
}

[data-theme="dark"] .list-group-item {
    background-color: var(--bg-surface);
    color: var(--text-primary);
    border-color: var(--border-color);
}

[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select {
    background-color: var(--bg-input);
    color: var(--text-primary);
    border-color: var(--border-color);
}

[data-theme="dark"] .form-control:focus,
[data-theme="dark"] .form-select:focus {
    background-color: var(--bg-input);
    color: var(--text-primary);
    border-color: var(--border-focus);
    box-shadow: 0 0 0 0.2rem rgba(91, 155, 213, 0.25);
}

[data-theme="dark"] .form-label {
    color: var(--text-secondary);
}

[data-theme="dark"] .table {
    color: var(--text-primary);
    --bs-table-color: var(--text-primary);
    --bs-table-bg: var(--bg-surface);
    --bs-table-border-color: var(--border-color);
    --bs-table-striped-color: var(--text-primary);
    --bs-table-striped-bg: var(--bg-tertiary);
    --bs-table-hover-color: var(--text-primary);
    --bs-table-hover-bg: var(--bg-surface-hover);
    --bs-table-active-color: var(--text-primary);
    --bs-table-active-bg: var(--bg-surface-active);
}

[data-theme="dark"] .table > :not(caption) > * > * {
    color: var(--text-primary);
    background-color: var(--bg-surface);
    border-bottom-color: var(--border-color);
}

[data-theme="dark"] .modal-content {
    background-color: var(--bg-surface);
    color: var(--text-primary);
    border-color: var(--border-color);
}

[data-theme="dark"] .alert-info {
    background-color: var(--primary-subtle) !important;
    border-color: var(--primary-color) !important;
    color: var(--primary-color) !important;
}

[data-theme="dark"] .dropdown-menu {
    background-color: var(--bg-surface);
    border-color: var(--border-color);
}

[data-theme="dark"] .dropdown-item {
    color: var(--text-primary);
}

[data-theme="dark"] .dropdown-item:hover {
    background-color: var(--bg-surface-hover);
    color: var(--text-primary);
}

/* Dark theme Radzen overrides */
[data-theme="dark"] .rz-textbox,
[data-theme="dark"] .rz-password,
[data-theme="dark"] .rz-inputtext,
[data-theme="dark"] .rz-dropdown,
[data-theme="dark"] .rz-multiselect,
[data-theme="dark"] .rz-datepicker-input {
    background-color: var(--bg-input) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .rz-textbox:focus,
[data-theme="dark"] .rz-password:focus,
[data-theme="dark"] .rz-inputtext:focus {
    border-color: var(--border-focus) !important;
    box-shadow: 0 0 0 0.2rem rgba(91, 155, 213, 0.25) !important;
}

[data-theme="dark"] .rz-datatable .rz-datatable-thead > tr > th {
    background-color: var(--bg-tertiary);
    color: var(--text-secondary);
    border-color: var(--border-color);
}

[data-theme="dark"] .rz-datatable .rz-datatable-tbody > tr {
    background-color: var(--bg-surface);
    color: var(--text-primary);
    border-color: var(--border-color);
}

[data-theme="dark"] .rz-datatable .rz-datatable-tbody > tr:hover {
    background-color: var(--bg-surface-hover);
}

[data-theme="dark"] .rz-popup {
    background-color: var(--bg-surface) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

[data-theme="dark"] .rz-dropdown-item {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .rz-dropdown-item:hover {
    background-color: var(--bg-surface-hover) !important;
}

[data-theme="dark"] .rz-panel {
    background-color: var(--bg-surface);
    color: var(--text-primary);
}

[data-theme="dark"] .rz-scheduler {
    background-color: var(--bg-surface);
    color: var(--text-primary);
}

[data-theme="dark"] .rz-button.rz-variant-text {
    color: var(--text-primary);
}

/* Dark: border-bottom on header/sections */
[data-theme="dark"] .border-bottom {
    border-color: var(--border-color) !important;
}

/* Dark: Radzen button base style */
[data-theme="dark"] .rz-button.rz-variant-flat,
[data-theme="dark"] .rz-button.rz-base {
    color: var(--text-primary);
}

/* Dark: Sidebar navigation buttons — muted, not bright */
[data-theme="dark"] .navigation-card .card-body .rz-button {
    color: var(--text-secondary) !important;
    background: transparent !important;
    border: none !important;
    border-radius: 10px !important;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
    position: relative !important;
}

[data-theme="dark"] .navigation-card .card-body .rz-button:hover {
    color: #e2e8f0 !important;
    background: linear-gradient(135deg, rgba(96, 165, 250, 0.1), rgba(37, 99, 235, 0.08)) !important;
    box-shadow: 0 0 12px rgba(96, 165, 250, 0.1), inset 0 0 0 1px rgba(96, 165, 250, 0.15) !important;
    transform: translateX(4px) !important;
}

[data-theme="dark"] .navigation-card .card-body .rz-button:active {
    background: linear-gradient(135deg, rgba(96, 165, 250, 0.18), rgba(37, 99, 235, 0.14)) !important;
    transform: translateX(2px) !important;
    box-shadow: 0 0 8px rgba(96, 165, 250, 0.12), inset 0 0 0 1px rgba(96, 165, 250, 0.2) !important;
}

[data-theme="dark"] .navigation-card .card-body .rz-button .rz-button-icon-left {
    color: var(--text-muted) !important;
    transition: color 0.25s ease, filter 0.25s ease !important;
}

[data-theme="dark"] .navigation-card .card-body .rz-button:hover .rz-button-icon-left {
    color: #60a5fa !important;
    filter: drop-shadow(0 0 4px rgba(96, 165, 250, 0.4)) !important;
}

/* Dark: Sidebar logout button — subtle, not bright */
[data-theme="dark"] .logout-card {
    border-color: var(--border-light) !important;
    background-color: transparent !important;
}

[data-theme="dark"] .logout-card:hover {
    border-color: rgba(248, 113, 113, 0.25) !important;
    background-color: rgba(69, 10, 10, 0.4) !important;
}

[data-theme="dark"] .logout-card .rz-button {
    color: var(--text-secondary) !important;
    background: transparent !important;
}

[data-theme="dark"] .logout-card .rz-button .rz-button-icon-left {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .logout-card:hover .rz-button {
    color: var(--danger-text) !important;
}

[data-theme="dark"] .logout-card:hover .rz-button .rz-button-icon-left {
    color: var(--danger-text) !important;
}

/* Dark: Sidebar navigation card — blend into dark sidebar */
[data-theme="dark"] .navigation-card {
    background: transparent !important;
    border: 1px solid var(--border-light) !important;
    box-shadow: none !important;
}

[data-theme="dark"] .navigation-card .card-body {
    background-color: transparent !important;
}

[data-theme="dark"] .navigation-card .bg-gradient-primary {
    background: linear-gradient(135deg, #1e3a5f 0%, #172554 100%) !important;
}

/* Dark: Sidebar theme toggle — subtle */
[data-theme="dark"] .theme-toggle-card {
    background-color: transparent !important;
    border-color: var(--border-light) !important;
}

[data-theme="dark"] .theme-toggle-label {
    color: var(--text-secondary) !important;
}

/* Dark: Radzen date picker, calendar popup */
[data-theme="dark"] .rz-datepicker-calendar {
    background-color: var(--bg-surface);
    color: var(--text-primary);
}

[data-theme="dark"] .rz-datepicker-calendar .rz-datepicker-header {
    color: var(--text-primary);
}

[data-theme="dark"] .rz-datepicker-calendar td span {
    color: var(--text-primary);
}

[data-theme="dark"] .rz-datepicker-calendar td span:hover {
    background-color: var(--bg-surface-hover);
}

/* Dark: accordion, collapse panels */
[data-theme="dark"] .accordion-item {
    background-color: var(--card-bg);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .accordion-button {
    background-color: var(--bg-surface);
    color: var(--text-primary);
}

[data-theme="dark"] .accordion-button:not(.collapsed) {
    background-color: var(--bg-surface-active);
    color: var(--text-brand);
}

/* Dark: generic white bg overrides for inline styles */
[data-theme="dark"] .p-3,
[data-theme="dark"] .p-4 {
    color: var(--text-primary);
}

/* Dark: overflow panels, detail scroll areas */
[data-theme="dark"] .overflow-auto,
[data-theme="dark"] .overflow-y-auto {
    color: var(--text-primary);
}

/* Dark: h1-h6 headings */
[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3,
[data-theme="dark"] h4,
[data-theme="dark"] h5,
[data-theme="dark"] h6 {
    color: var(--text-primary);
}

/* Dark: small, label, span text */
[data-theme="dark"] small {
    color: var(--text-muted);
}

[data-theme="dark"] label {
    color: var(--text-secondary);
}

/* Dark: tab/nav pills */
[data-theme="dark"] .nav-link {
    color: var(--text-secondary);
}

[data-theme="dark"] .nav-link.active {
    background-color: var(--primary-color);
    color: var(--text-on-primary);
}

/* Dark: Radzen tooltip */
[data-theme="dark"] .rz-tooltip {
    background-color: var(--bg-surface) !important;
    color: var(--text-primary) !important;
    border: 1px solid var(--border-color) !important;
}

/* Dark: Radzen dialog */
[data-theme="dark"] .rz-dialog {
    background-color: var(--bg-surface);
    color: var(--text-primary);
}

[data-theme="dark"] .rz-dialog-titlebar {
    background-color: var(--bg-tertiary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

/* Dark: general bg-primary override for Bootstrap — keep brand gradient */
[data-theme="dark"] .bg-primary {
    background-color: var(--primary-color) !important;
}

/* Dark: Radzen notification */
[data-theme="dark"] .rz-notification {
    background-color: var(--bg-surface) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-color) !important;
}

/* Dark: Radzen state overrides */
[data-theme="dark"] .rz-state-highlight {
    background-color: var(--primary-light) !important;
    color: var(--primary-color) !important;
}

[data-theme="dark"] .rz-multiselect-chip {
    background-color: var(--primary-light) !important;
    color: var(--primary-color) !important;
    border-color: var(--border-color) !important;
}

/* Dark: Radzen pager */
[data-theme="dark"] .rz-paginator {
    background-color: var(--bg-surface) !important;
    color: var(--text-primary) !important;
}

/* Dark: progress track */
[data-theme="dark"] .rz-progressbar {
    background-color: var(--bg-muted) !important;
}

/* Dark: dialog detail-value wrappers (used inline as bg #eaeaea) */
[data-theme="dark"] .detail-value {
    background-color: var(--bg-tertiary) !important;
}

/* Dark: inline alert with teal/red accent (used in create dialogs) */
[data-theme="dark"] .alert[style*="#00a99d"] {
    background-color: rgba(0, 169, 157, 0.1) !important;
}

[data-theme="dark"] .alert[style*="#cf5954"] {
    background-color: rgba(207, 89, 84, 0.1) !important;
}

/* Dark: attempt-item cards (EmployeeCard inline) */
[data-theme="dark"] .attempt-item {
    background-color: var(--bg-tertiary) !important;
    border-color: var(--border-color) !important;
}

/* Dark: inline route stat blocks */
[data-theme="dark"] .segment-cost-time {
    border-left-color: var(--border-color) !important;
}

/* Dark: placeholder text for all inputs */
[data-theme="dark"] ::placeholder {
    color: var(--text-muted) !important;
    opacity: 1;
}

[data-theme="dark"] .rz-placeholder {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .rz-multiselect-label {
    color: var(--text-muted) !important;
}

/* Dark: Bootstrap table overrides */
[data-theme="dark"] .table-light {
    --bs-table-bg: var(--bg-tertiary) !important;
    --bs-table-color: var(--text-primary) !important;
    background-color: var(--bg-tertiary) !important;
    color: var(--text-primary) !important;
}

[data-theme="dark"] .table-light th {
    background-color: var(--bg-tertiary) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .table-active {
    --bs-table-bg: var(--bg-surface-active) !important;
    --bs-table-color: var(--text-primary) !important;
}

[data-theme="dark"] .table-hover > tbody > tr:hover {
    --bs-table-hover-bg: var(--bg-surface-hover) !important;
    --bs-table-hover-color: var(--text-primary) !important;
}

/* Dark: Bootstrap input-group */
[data-theme="dark"] .input-group-text {
    background-color: var(--bg-input) !important;
    border-color: var(--border-color) !important;
    color: var(--text-secondary) !important;
}

/* Dark: Bootstrap text utilities */
[data-theme="dark"] .text-dark {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .text-primary {
    color: var(--primary-color) !important;
}

/* Dark: Bootstrap form controls */
[data-theme="dark"] .form-check-label {
    color: var(--text-primary);
}

[data-theme="dark"] .form-control-plaintext {
    color: var(--text-primary);
}

/* Dark: Bootstrap container bg */
[data-theme="dark"] .container-fluid {
    color: var(--text-primary);
}

/* ===== Mobile responsive ===== */
@media (max-width: 768px) {
    .mobile-hidden {
        display: none !important;
    }

    .mobile-full-width {
        width: 100% !important;
    }
}

.btn-new-appeal {
    background-color: var(--bg-body) !important;
    color: var(--primary-color) !important;
    border: 1.5px solid var(--primary-color) !important;
    font-weight: 600;
    border-radius: var(--radius-md) !important;
    box-shadow: var(--shadow-xs);
    transition: all 0.2s ease;
}

.btn-new-appeal:hover {
    background-color: var(--primary-light) !important;
    box-shadow: var(--shadow-md);
    transform: translateY(-1px);
}

.btn-new-appeal:active {
    transform: translateY(0);
    box-shadow: var(--shadow-xs);
}

.project-card {
    transition: all 0.3s ease;
    cursor: pointer;
    background-color: var(--card-bg);
    border-color: var(--card-border);
}

    .project-card:hover {
        transform: translateY(-2px);
        box-shadow: var(--shadow-md);
    }

.project-status {
    padding: 4px 12px;
    border-radius: var(--radius-md);
    font-weight: 500;
    font-size: 11px;
}

.status-active {
    background-color: var(--primary-light);
    border: 1px solid var(--primary-color);
    color: var(--primary-color);
}

.status-completed {
    background-color: var(--success-bg);
    border: 1px solid var(--success-border);
    color: var(--success-text);
}

.status-waiting {
    background-color: var(--warning-bg);
    border: 1px solid var(--warning-border);
    color: var(--warning-text);
}

.status-suspended {
    background-color: var(--danger-bg);
    border: 1px solid var(--danger-border);
    color: var(--danger-text);
}

/* ===== Attempt status badges (global) ===== */
.attempt-status-new {
    background-color: #e0e7ff;
    color: #3730a3;
}

.attempt-status-in-progress {
    background-color: #dbeafe;
    color: #1e40af;
}

.attempt-status-employed {
    background-color: #dcfce7;
    color: #166534;
}

.attempt-status-fired {
    background-color: #fee2e2;
    color: #991b1b;
}

.attempt-status-dropped {
    background-color: #fef3c7;
    color: #92400e;
}

[data-theme="dark"] .attempt-status-new {
    background-color: #1e1b4b;
    color: #a5b4fc;
}

[data-theme="dark"] .attempt-status-in-progress {
    background-color: #172554;
    color: #93c5fd;
}

[data-theme="dark"] .attempt-status-employed {
    background-color: #052e16;
    color: #86efac;
}

[data-theme="dark"] .attempt-status-fired {
    background-color: #450a0a;
    color: #fca5a5;
}

[data-theme="dark"] .attempt-status-dropped {
    background-color: #422006;
    color: #fcd34d;
}

/* Mobile details panel */
@media (max-width: 767.98px) {
    .sidebar {
        display: none;
    }

    .projects-grid {
        overflow-x: auto;
    }

    .details-panel {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        width: 100%;
        z-index: 1050;
        background-color: var(--bg-body);
        box-shadow: -2px 0 5px rgba(0,0,0,0.1);
    }
}

/* Badge styles */
.badge-primary {
    background-color: var(--primary-color) !important;
    color: var(--text-on-primary);
    border: 1px solid var(--primary-color);
}

.badge-success {
    background-color: var(--success-border) !important;
    color: #144214;
    border: 1px solid var(--success-border);
}

.badge-warning {
    background-color: #FFC107 !important;
    color: #856404;
    border: 1px solid #FFC107;
}

.badge-danger {
    background-color: var(--danger-border) !important;
    color: var(--text-on-primary);
    border: 1px solid var(--danger-border);
}

.badge-archived {
    background-color: #78909c !important;
    color: #ffffff;
    border: 1px solid #78909c;
}

[data-theme="dark"] .badge-success {
    color: #e6f4e6;
}

[data-theme="dark"] .badge-warning {
    color: #3a2a00;
}

/* Radzen component overrides */
.rz-card {
    border-radius: var(--radius-lg) !important;
}

[data-theme="dark"] .rz-card.rz-variant-filled {
    background-color: var(--card-bg) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-color) !important;
}

.rz-button {
    border-radius: var(--radius-md) !important;
}

/* Animations */
.fade-in {
    animation: fadeIn 0.3s ease-in;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes rowFlash {
    0% { background-color: rgba(255, 235, 59, 0.00); }
    20% { background-color: rgba(255, 235, 59, 0.60); }
    100% { background-color: rgba(255, 235, 59, 0.00); }
}

.row-flash {
    animation: rowFlash 900ms ease-in-out 1;
    transition: background-color 150ms ease-in-out;
    display: block;
}

/* ===== Responsive adjustments for small monitors ===== */
@media (max-width: 1400px) {
    .details-panel {
        font-size: 0.9rem;
    }

    .details-panel .form-label {
        font-size: 0.82rem;
        margin-bottom: 0.25rem;
    }

    .details-panel .form-control {
        font-size: 0.85rem;
        padding: 0.375rem 0.5rem;
    }

    .details-panel .mb-4 {
        margin-bottom: 0.75rem !important;
    }

    .details-panel .mb-3 {
        margin-bottom: 0.5rem !important;
    }

    .details-panel h4 {
        font-size: 1.1rem;
    }
}

/* ===== Content appearance animations ===== */
.content-appear {
    animation: contentAppear 0.35s ease-out;
}

@keyframes contentAppear {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Page transition wrapper */
.page-transition {
    animation: pageTransition 0.3s ease-out;
}

@keyframes pageTransition {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* Small height screens - tighten vertical spacing */
@media (max-height: 768px) {
    .details-panel .mb-4 {
        margin-bottom: 0.5rem !important;
    }

    .details-panel .mb-3 {
        margin-bottom: 0.375rem !important;
    }

    .details-panel .p-3 {
        padding: 0.75rem !important;
    }
}

/* ===== Details panel animation ===== */
.details-panel-wrapper {
    transition: flex 0.35s cubic-bezier(0.4, 0, 0.2, 1),
                opacity 0.3s ease,
                max-width 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
    will-change: flex, opacity, max-width;
}

.details-panel-wrapper.panel-visible {
    flex: 0 0 25%;
    max-width: 25%;
    opacity: 1;
}

.details-panel-wrapper.panel-hidden {
    flex: 0 0 0%;
    max-width: 0%;
    opacity: 0;
    pointer-events: none;
}

/* ===== Panel content change animation ===== */
.panel-content-enter {
    animation: panelContentFadeIn 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}

@keyframes panelContentFadeIn {
    0% {
        opacity: 0;
        transform: translateX(16px);
    }
    60% {
        opacity: 1;
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

.main-content-wrapper {
    transition: flex 0.35s cubic-bezier(0.4, 0, 0.2, 1),
                max-width 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: flex, max-width;
}

/* ===== Global scrollbar styling ===== */
* {
    scrollbar-width: thin;
    scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
}

*::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

*::-webkit-scrollbar-track {
    background: var(--scrollbar-track);
}

*::-webkit-scrollbar-thumb {
    background-color: var(--scrollbar-thumb);
    border-radius: var(--radius-full);
}
