/* Uiverse component adaptation: Switch by m1her (Maher Nas),
   https://uiverse.io/m1her/odd-fireant-56 — MIT License, Copyright 2026 m1her.
   Its clear active state is adapted into Freev's accessible, keyboard-first select component. */
.freev-select-native { display: none !important; }
.freev-select { position: relative; width: 100%; min-width: 0; }
.freev-select-trigger { display: flex; width: 100%; min-height: 2.8rem; align-items: center; justify-content: space-between; gap: .75rem; padding: .65rem .8rem .65rem .9rem; border: 1px solid var(--border-color, #cbd5e1); border-radius: .78rem; background: linear-gradient(135deg, var(--bg-card, #fff), color-mix(in srgb, #2563eb 5%, var(--bg-card, #fff))); color: var(--text-primary, #0f172a); cursor: pointer; font: 650 .78rem/1.25 Inter, sans-serif; text-align: left; transition: border-color .2s ease, box-shadow .2s ease, transform .2s cubic-bezier(.22, 1, .36, 1), background .2s ease; }
.freev-select-trigger > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.freev-select-trigger > i { flex: 0 0 auto; color: #2563eb; font-size: .7rem; transition: transform .22s cubic-bezier(.22, 1, .36, 1); }
.freev-select:not(.is-disabled) .freev-select-trigger:hover { border-color: rgba(37, 99, 235, .55); box-shadow: 0 7px 17px rgba(37, 99, 235, .1); transform: translateY(-1px); }
.freev-select.is-open .freev-select-trigger { border-color: #2563eb; background: linear-gradient(135deg, color-mix(in srgb, #2563eb 9%, var(--bg-card, #fff)), color-mix(in srgb, #14b8a6 8%, var(--bg-card, #fff))); box-shadow: 0 0 0 3px rgba(37, 99, 235, .14), 0 9px 20px rgba(37, 99, 235, .1); }
.freev-select.is-open .freev-select-trigger > i { transform: rotate(180deg); }
.freev-select-trigger:focus-visible,
.freev-select-option:focus-visible { outline: 3px solid rgba(20, 184, 166, .4); outline-offset: 2px; }
.freev-select.is-disabled .freev-select-trigger { cursor: not-allowed; opacity: .55; }
.freev-select-list { display: grid; position: absolute; z-index: 1200; top: calc(100% + .42rem); right: 0; left: 0; max-height: min(18rem, 48vh); gap: .18rem; overflow-y: auto; padding: .35rem; border: 1px solid rgba(37, 99, 235, .2); border-radius: .85rem; background: var(--bg-card, #fff); box-shadow: 0 18px 35px rgba(15, 23, 42, .19); animation: freevSelectReveal .2s cubic-bezier(.22, 1, .36, 1) both; }
.freev-select-list[hidden] { display: none; }
.freev-select-option { width: 100%; min-height: 2.45rem; padding: .55rem .65rem; border: 0; border-radius: .58rem; background: transparent; color: var(--text-secondary, #475569); cursor: pointer; font: 600 .73rem/1.3 Inter, sans-serif; text-align: left; transition: background .16s ease, color .16s ease, transform .16s ease; }
.freev-select-option:hover,
.freev-select-option:focus-visible { background: rgba(37, 99, 235, .09); color: #1d4ed8; transform: translateX(.16rem); }
.freev-select-option[aria-selected="true"] { background: linear-gradient(90deg, rgba(37, 99, 235, .14), rgba(20, 184, 166, .1)); color: #1d4ed8; font-weight: 800; }
.freev-select-option[aria-selected="true"]::after { content: '✓'; float: right; color: #059669; }
.freev-select-option:disabled { cursor: not-allowed; opacity: .46; }
body.dark-mode .freev-select-trigger,
body.dark-mode .freev-select-list { background-color: var(--bg-input, #0f172a); }
body.dark-mode .freev-select-option { color: var(--text-secondary, #cbd5e1); }
@keyframes freevSelectReveal { from { opacity: 0; transform: translateY(-.35rem) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (max-width: 768px) { .freev-select-trigger { min-height: 2.9rem; } .freev-select-list { max-height: min(15rem, 42vh); } }
@media (prefers-reduced-motion: reduce) { .freev-select-trigger, .freev-select-trigger > i, .freev-select-option, .freev-select-list { animation: none; transition: none; transform: none !important; } }
