{"version":3,"file":"select.css.cjs","names":[],"sources":["../../../src/inputs/select/select.css?inline"],"sourcesContent":["@layer refine.base {\n  :host {\n    display: inline-block;\n    min-width: var(--select-min-width, 12rem);\n  }\n\n  :host([fullwidth]) {\n    display: block;\n    width: 100%;\n  }\n\n  /* Hide native <option> elements — we render our own UI */\n  ::slotted(option),\n  ::slotted(optgroup) {\n    display: none;\n  }\n\n  /* ore-input is readonly so pointer defaults to text — override to pointer.\n     `width: 100%` matters just as much: `:host` is `display: inline-block`, which — unlike a\n     flex/grid container with `align-items`/`justify-items: stretch` — never stretches its own\n     children to fill its own box. Without this, `.trigger` (an `ore-input`, whose own `:host`\n     only guarantees a 12rem *minimum*) stays shrink-wrapped to that minimum even when this\n     select's own host has already been stretched wider by an ancestor grid/flex track — visibly\n     narrower than a sibling field (e.g. `ore-number-input`) occupying the same-width track. */\n  .trigger {\n    width: 100%;\n    cursor: pointer;\n  }\n\n  .trigger::part(input) {\n    cursor: pointer;\n    caret-color: transparent;\n    user-select: none;\n  }\n\n  /* Chips slot inside ore-input prefix */\n  .chips-row {\n    display: flex;\n    flex-wrap: wrap;\n    gap: var(--size-1);\n    align-items: center;\n    min-width: 0;\n  }\n\n  .chips-row[hidden] {\n    display: none;\n  }\n\n  /* Suffix: loader (left) + chevron (right) */\n  .trigger-suffix {\n    display: flex;\n    gap: var(--size-1);\n    align-items: center;\n    color: var(--color-contrast-500);\n  }\n\n  .trigger-icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition: transform var(--transition-fast);\n  }\n\n  :host([open]) .trigger-icon {\n    transform: rotate(180deg);\n  }\n\n  .loader {\n    display: none;\n    flex-shrink: 0;\n    width: 1em;\n    height: 1em;\n    border: 2px solid currentcolor;\n    border-inline-end-color: transparent;\n    border-radius: 50%;\n    animation: var(--_motion-animation, spin var(--transition-loader) infinite);\n  }\n\n  /* Keyframe must live in shadow DOM — @keyframes don't inherit across shadow roots */\n  @keyframes spin {\n    to {\n      transform: rotate(360deg);\n    }\n  }\n\n  :host([loading]) .loader {\n    display: inline-block;\n  }\n\n  /* ========================================\n       Dropdown Listbox\n       ======================================== */\n\n  .dropdown {\n    position: fixed;\n    inset: 0 auto auto 0;\n    z-index: var(--z-dropdown, 8000);\n    box-sizing: border-box;\n    display: flex;\n    flex-direction: column;\n    gap: var(--size-0-5);\n    max-height: 260px;\n    padding: var(--size-1);\n    margin: 0;\n    overflow-y: auto;\n    overscroll-behavior: contain;\n    text-align: start;\n    pointer-events: none;\n    background: var(--color-canvas);\n    border: var(--border) solid var(--color-contrast-200);\n    border-radius: var(--_radius);\n    box-shadow: var(--shadow-lg);\n\n    /* Hidden by default */\n    opacity: 0;\n    backdrop-filter: blur(var(--blur-md));\n    transform: translateY(var(--overlay-enter-translate-y));\n    transition: var(\n      --_motion-transition,\n      opacity var(--transition-fast),\n      transform var(--transition-fast),\n      display var(--transition-fast) allow-discrete\n    );\n  }\n\n  .dropdown[data-open] {\n    pointer-events: auto;\n    opacity: 1;\n    transform: translateY(0);\n\n    @starting-style {\n      opacity: 0;\n      transform: translateY(var(--overlay-enter-translate-y));\n    }\n  }\n\n  .options-list {\n    display: flex;\n    flex-direction: column;\n    gap: 0;\n  }\n\n  /* ========================================\n       Option Items\n       ======================================== */\n\n  .option {\n    display: flex;\n    gap: var(--size-2);\n    align-items: center;\n    padding: var(--size-1-5) var(--size-2-5);\n    font-size: var(--text-sm);\n    line-height: var(--leading-normal);\n    cursor: pointer;\n    border-radius: var(--rounded-sm);\n    transition:\n      background var(--transition-fast),\n      color var(--transition-fast);\n  }\n\n  /* Truncate long labels to keep option rows compact and readable. */\n  .option > span:first-child {\n    flex: 1;\n    min-width: 0;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n\n  .option:hover:not([data-disabled]) {\n    background: var(--color-contrast-100);\n  }\n\n  .option[data-focused]:not([data-disabled]) {\n    color: var(--_theme-base);\n    background: color-mix(in oklch, var(--_theme-base) 12%, var(--color-contrast-100));\n  }\n\n  .option[data-selected] {\n    font-weight: var(--font-medium);\n    color: var(--_theme-base);\n    background: color-mix(in oklch, var(--_theme-base) 10%, var(--color-contrast-50));\n  }\n\n  .option[data-selected][data-focused] {\n    background: color-mix(in oklch, var(--_theme-base) 20%, var(--color-contrast-100));\n  }\n\n  .option[data-disabled] {\n    color: var(--color-contrast-400);\n    cursor: not-allowed;\n    opacity: 0.6;\n  }\n\n  .option-check {\n    display: inline-flex;\n    flex-shrink: 0;\n    margin-inline-start: auto;\n    color: var(--_theme-base);\n    opacity: 0;\n    transition: opacity var(--transition-fast);\n  }\n\n  .option[data-selected] .option-check {\n    opacity: 1;\n  }\n\n  /* ========================================\n       Option Groups\n       ======================================== */\n\n  .optgroup-label {\n    padding: var(--size-1-5) var(--size-2-5) var(--size-1);\n    font-size: var(--text-xs);\n    font-weight: var(--font-semibold);\n    color: var(--color-contrast-500);\n    text-transform: uppercase;\n    letter-spacing: var(--tracking-wide, 0.05em);\n  }\n\n  /* ========================================\n       Loading / No-Results\n       ======================================== */\n\n  .dropdown-loading,\n  .dropdown-empty {\n    padding: var(--size-3) var(--size-2-5);\n    font-size: var(--text-sm);\n    color: var(--color-contrast-500);\n    text-align: center;\n  }\n}\n"],"mappings":""}