/* Look of nice-select.js; colours come from --ns-* set by the owner app or the site skin. */
.ns { position: relative; width: 100%; }
.ns__native { position: absolute !important; left: 0; bottom: 0; width: 1px !important; height: 1px !important; min-height: 0 !important; padding: 0 !important; border: 0 !important; opacity: 0; pointer-events: none; }
.ns__button { display: flex; align-items: center; gap: .6rem; width: 100%; min-height: var(--ns-height, 48px); padding: .6rem .9rem; text-align: left; cursor: pointer;
  font: inherit; font-size: 1rem; font-weight: 400; color: var(--ns-ink); background: var(--ns-bg); border: 1px solid var(--ns-line); border-radius: var(--ns-radius, 12px);
  transition: border-color .15s ease, box-shadow .15s ease; }
.ns__button:hover { border-color: var(--ns-accent); }
.ns__button:focus-visible, .ns.is-open .ns__button { outline: none; border-color: var(--ns-accent); box-shadow: 0 0 0 3px var(--ns-ring); }
.ns__button:disabled { opacity: .5; cursor: default; }
.ns__text { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ns.is-placeholder .ns__text { color: var(--ns-muted); }
.ns__chevron { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; opacity: .7; transition: transform .2s ease; }
.ns.is-open .ns__chevron { transform: rotate(180deg); }
.ns__list { position: absolute; z-index: 300; left: 0; right: 0; top: calc(100% + 6px); max-height: 280px; overflow-y: auto; margin: 0; padding: 6px; list-style: none;
  background: var(--ns-panel); border: 1px solid var(--ns-line); border-radius: var(--ns-radius, 12px); box-shadow: 0 18px 40px rgba(0, 0, 0, .35);
  backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); animation: ns-in .14s ease-out; }
.ns.is-up .ns__list { top: auto; bottom: calc(100% + 6px); }
@keyframes ns-in { from { opacity: 0; transform: translateY(-4px); } }
.ns__option { display: flex; align-items: center; gap: .5rem; padding: .6rem .7rem; border-radius: calc(var(--ns-radius, 12px) - 4px); cursor: pointer; color: var(--ns-ink); font-size: .97rem; line-height: 1.3; }
.ns__option span { flex: 1; }
.ns__option.is-focus { background: var(--ns-hover); }
.ns__option[aria-selected] { color: var(--ns-accent); font-weight: 600; }
.ns__option[aria-disabled] { opacity: .4; cursor: default; }
.ns__check { width: 16px; height: 16px; flex: none; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; visibility: hidden; }
.ns__option[aria-selected] .ns__check { visibility: visible; }
@media (prefers-reduced-motion: reduce) { .ns__list { animation: none; } .ns__chevron { transition: none; } }
/* A card holding an open list sits above the cards after it (they make their own stacking contexts). */
.ns-raised { position: relative; z-index: 60; }
