﻿html {
    font-size: 14px;
    position: relative;
    min-height: 100%;
}

body {
    font-family: var(--font-family-ui);
    font-size: .875rem;
    line-height: 1.6;
    zoom: var(--app-ui-scale, 1);
}

* {
    box-sizing: border-box;
}

.btn:focus,
.btn:active:focus,
.btn-link.nav-link:focus,
.form-control:focus,
.form-select:focus,
.form-check-input:focus {
    box-shadow: 0 0 0 0.12rem color-mix(in srgb, var(--primary) 22%, transparent) !important;
}

.form-control,
.form-select,
.input-group-text {
    border-color: var(--border);
    color: var(--text);
    background-color: var(--surface-2);
    font-family: var(--font-family-ui);
}

    .form-control::placeholder,
    .form-select::placeholder {
        color: var(--placeholder);
    }

.form-floating > .form-control-plaintext::placeholder,
.form-floating > .form-control::placeholder {
    color: var(--placeholder);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder,
.form-floating > .form-control:focus::placeholder {
    text-align: start;
}

.form-select option,
.select2-container,
.select2-container .select2-selection--single,
.select2-container .select2-selection--multiple,
.select2-container .select2-results__option {
    font-family: var(--font-family-ui) !important;
}


.form-control:disabled,
.form-select:disabled,
input:disabled,
textarea:disabled,
select:disabled {
    background-color: color-mix(in srgb, var(--surface) 90%, transparent) !important;
    color: color-mix(in srgb, var(--text) 70%, var(--muted)) !important;
    border-color: color-mix(in srgb, var(--border) 82%, var(--primary)) !important;
    opacity: 1;
}

body.dark-mode .form-control,
body.dark-mode .form-select,
body.dark-mode input:not([type="checkbox"]):not([type="radio"]),
body.dark-mode textarea,
body.dark-mode select {
    color: var(--text);
}

body.dark-mode .btn,
body.dark-mode button {
    border-color: color-mix(in srgb, var(--primary) 24%, var(--border));
}
:root {
    --select2-border-light: color-mix(in srgb, var(--primary, #2563eb) 42%, #94a3b8);
    --select2-border-light-strong: color-mix(in srgb, var(--primary, #2563eb) 72%, #64748b);
    --select2-dropdown-border-light: color-mix(in srgb, var(--primary, #2563eb) 58%, #64748b);
    --select2-dropdown-shadow-light: 0 12px 28px rgba(15, 23, 42, 0.18);
    --select2-border-dark: color-mix(in srgb, var(--primary, #84a0ff) 44%, #cbd5e1);
    --select2-border-dark-strong: color-mix(in srgb, var(--primary, #84a0ff) 62%, #e2e8f0);
    --select2-dropdown-border-dark: color-mix(in srgb, var(--primary, #84a0ff) 56%, #cbd5e1);
    --select2-dropdown-shadow-dark: 0 16px 34px rgba(2, 6, 23, 0.58);
}

.select2-container--open {
    z-index: 2060;
}

/* Base selection contrast */
.select2-container--default .select2-selection--multiple,
.select2-container--default .select2-selection--single {
    border: 1px solid var(--select2-border-light);
    border-radius: 0.9rem;
    min-height: 2.5rem;
    background: var(--surface-2, var(--color-input-bg, #fff));
    color: var(--text, var(--color-input-text, #111827));
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.select2-container .select2-selection--single {
    height: calc(2.25rem + 2px);
    padding: 0.375rem 0.75rem;
}

    .select2-container .select2-selection--single .select2-selection__rendered {
        line-height: 1.5;
        padding-left: 0;
        padding-right: 0;
    }

    .select2-container .select2-selection--single .select2-selection__arrow {
        height: calc(2.25rem + 2px);
        right: 0.75rem;
    }

.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--single {
    border-color: var(--select2-border-light-strong);
    box-shadow: 0 0 0 0.18rem color-mix(in srgb, var(--primary, #2563eb) 18%, transparent);
}

.select2-container--default .select2-selection__rendered,
.select2-container--default .select2-search--inline .select2-search__field,
.select2-container--default .select2-results__option {
    color: var(--text, var(--color-text-primary, #111827));
}

.select2-container--default .select2-selection__placeholder {
    color: var(--placeholder, #6b7280);
}

.select2-container--default .select2-dropdown {
    background: var(--surface, #fff);
    border: 1px solid var(--select2-dropdown-border-light);
    box-shadow: var(--select2-dropdown-shadow-light);
}

.select2-container--default .select2-search--dropdown .select2-search__field {
    border: 1px solid var(--select2-border-light);
    background: var(--surface-2, #f8fafc);
    color: var(--text, #111827);
}

.select2-container--default .select2-selection--multiple .select2-selection__choice {
    background: color-mix(in srgb, var(--primary, #2563eb) 14%, var(--surface, #fff));
    border: 1px solid color-mix(in srgb, var(--primary, #2563eb) 34%, #94a3b8);
    border-radius: 0.6rem;
    color: var(--primary, #2563eb);
    padding: 0.12rem 0.45rem;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    color: inherit;
}

.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[aria-selected="true"] {
    background: var(--primary, #2563eb);
    color: var(--on-primary, #fff);
}

.select2-container--default .select2-results__option[aria-selected="true"] {
    background: color-mix(in srgb, var(--primary, #2563eb) 18%, var(--surface, #fff));
    color: color-mix(in srgb, var(--primary, #2563eb) 62%, var(--text, #111827));
}

select.select2-hidden-accessible.input-validation-error + .select2 .select2-selection,
select.select2-hidden-accessible.is-invalid + .select2 .select2-selection {
    border-color: #dc3545 !important;
}

/* Dark theme contrast tuning */
[data-theme="dark"] .select2-container--default .select2-selection--multiple,
[data-theme="dark"] .select2-container--default .select2-selection--single,
body.dark-mode .select2-container--default .select2-selection--multiple,
body.dark-mode .select2-container--default .select2-selection--single {
    background: color-mix(in srgb, var(--surface, #0f172a) 88%, #020617);
    border-color: var(--select2-border-dark);
    color: #e2e8f0;
}

[data-theme="dark"] .select2-container--default.select2-container--focus .select2-selection--multiple,
[data-theme="dark"] .select2-container--default.select2-container--focus .select2-selection--single,
[data-theme="dark"] .select2-container--default.select2-container--open .select2-selection--multiple,
[data-theme="dark"] .select2-container--default.select2-container--open .select2-selection--single,
body.dark-mode .select2-container--default.select2-container--focus .select2-selection--multiple,
body.dark-mode .select2-container--default.select2-container--focus .select2-selection--single,
body.dark-mode .select2-container--default.select2-container--open .select2-selection--multiple,
body.dark-mode .select2-container--default.select2-container--open .select2-selection--single {
    border-color: var(--select2-border-dark-strong);
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--primary, #84a0ff) 24%, transparent);
}

[data-theme="dark"] .select2-container--default .select2-selection__rendered,
[data-theme="dark"] .select2-container--default .select2-search--inline .select2-search__field,
[data-theme="dark"] .select2-container--default .select2-results__option,
body.dark-mode .select2-container--default .select2-selection__rendered,
body.dark-mode .select2-container--default .select2-search--inline .select2-search__field,
body.dark-mode .select2-container--default .select2-results__option {
    color: #e2e8f0;
}

[data-theme="dark"] .select2-container--default .select2-selection__placeholder,
body.dark-mode .select2-container--default .select2-selection__placeholder {
    color: rgba(226, 232, 240, 0.72);
}

[data-theme="dark"] .select2-container--default .select2-dropdown,
body.dark-mode .select2-container--default .select2-dropdown {
    background-color: color-mix(in srgb, var(--surface, #0f172a) 86%, #020617);
    border: 1px solid var(--select2-dropdown-border-dark);
    box-shadow: var(--select2-dropdown-shadow-dark);
}

[data-theme="dark"] .select2-container--default .select2-search--dropdown .select2-search__field,
body.dark-mode .select2-container--default .select2-search--dropdown .select2-search__field {
    border-color: var(--select2-border-dark);
    background: color-mix(in srgb, var(--surface-2, #111827) 90%, #020617);
    color: #e2e8f0;
}

[data-theme="dark"] .select2-container--default .select2-selection--multiple .select2-selection__choice,
body.dark-mode .select2-container--default .select2-selection--multiple .select2-selection__choice {
    background-color: color-mix(in srgb, var(--primary, #84a0ff) 26%, #0f172a);
    border-color: color-mix(in srgb, var(--primary, #84a0ff) 56%, #cbd5e1);
    color: #dbeafe;
}


[data-theme="dark"] .select2-container--default .select2-results__option--highlighted[aria-selected],
[data-theme="dark"] .select2-container--default .select2-results__option--highlighted[aria-selected="true"],
body.dark-mode .select2-container--default .select2-results__option--highlighted[aria-selected],
body.dark-mode .select2-container--default .select2-results__option--highlighted[aria-selected="true"] {
    background: var(--primary, #84a0ff);
    color: var(--on-primary, #fff);
}

[data-theme="dark"] .select2-container--default .select2-results__option[aria-selected="true"],
body.dark-mode .select2-container--default .select2-results__option[aria-selected="true"] {
    background: color-mix(in srgb, var(--primary, #84a0ff) 30%, #0f172a);
    color: #f8fafc;
}

/* ensure datepicker sits above modals */
.jdp-overlay {
    z-index: 11040 !important;
}

.jdp-container {
    z-index: 11050 !important;
}

/* icon colors */
.jdp-icon-plus,
.jdp-icon-minus {
    color: var(--text-primary);
}

    .jdp-icon-plus svg,
    .jdp-icon-minus svg {
        fill: currentColor;
    }

    .jdp-icon-plus.not-in-range,
    .jdp-icon-minus.not-in-range {
        color: var(--text-muted);
    }

/* week-day header */
.jdp-day-name {
    color: var(--text-primary) !important;
    background-color: color-mix(in srgb, var(--primary) 14%, transparent) !important;
    border-radius: 0.35rem;
    font-weight: 700;
}


[data-theme="dark"] .jdp-container {
    background-color: var(--panel-bg) !important;
    color: var(--text-primary) !important;
    border-color: var(--panel-border) !important;
}

[data-theme="dark"] .jdp-day,
[data-theme="dark"] .jdp-week-day,
[data-theme="dark"] .jdp-header,
[data-theme="dark"] .jdp-nav,
[data-theme="dark"] .jdp-months,
[data-theme="dark"] .jdp-years {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .jdp-day-name {
    color: var(--text-primary) !important;
    background-color: color-mix(in srgb, var(--primary) 28%, transparent) !important;
}

[data-theme="dark"] .jdp-day.disabled,
[data-theme="dark"] .jdp-day[disabled] {
    color: var(--text-muted) !important;
}


.jdp-container {
    border-radius: 12px !important;
    box-shadow: 0 14px 45px var(--card-shadow) !important;
    border: 1px solid var(--panel-border) !important;
}

.jdp-day:hover {
    background: var(--action-primary-bg) !important;
    color: var(--color-white) !important;
    transform: scale(1.05);
}

.jdp-selected-day {
    background: linear-gradient(135deg, var(--success), var(--success-2)) !important;
    color: var(--color-white) !important;
    box-shadow: 0 6px 16px color-mix(in srgb, var(--success) 35%, transparent) !important;
}

[data-theme="dark"] .jdp-container {
    background: var(--panel-bg) !important;
    border-color: var(--panel-border) !important;
    color: var(--text-primary) !important;
}

[data-theme="dark"] .jdp-day {
    color: var(--text-primary) !important;
}


.jdp-container {
    background-color: var(--panel-bg, #ffffff) !important;
}

.jdp-day,
.jdp-day-name,
.jdp-month,
.jdp-year,
.jdp-btn-today,
.jdp-btn-empty,
.jdp-btn-close {
    color: var(--text-primary, #1f2937) !important;
}

.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
 
    color: var(--primary) !important;
}

.select2-container--default .select2-selection--single {
    border: 1px solid var(--select2-border-light-strong) !important
}