/* Shared form controls. Canonical controls stay in FormData; no-JS stays native. */
.shared-select, .shared-date { position: relative; min-width: 0; }
.shared-select [hidden], .shared-date [hidden] { display: none !important; }
.shared-native-select { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip-path: inset(50%); white-space: nowrap; }
.shared-select-input { padding-right: 2rem; text-overflow: ellipsis; }
.shared-select-chevron { position: absolute; right: .8rem; top: .5rem; pointer-events: none; color: var(--tblr-secondary); }
.shared-control-popup { position: absolute; z-index: 1060; top: calc(100% + 3px); left: 0; width: 100%; max-height: min(20rem, 50dvh); overflow: auto; overscroll-behavior: contain; border: 1px solid var(--tblr-border-color); border-radius: .4rem; background: var(--tblr-bg-surface); color: var(--tblr-body-color); box-shadow: 0 8px 20px rgba(0,0,0,.18); padding: .2rem; }
.shared-control-popup.popup-above { top: auto; bottom: calc(100% + 3px); }
.shared-select-option { display: block; padding: .5rem .6rem; min-height: 2.5rem; border-radius: .3rem; cursor: pointer; overflow-wrap: anywhere; }
.shared-select-option[aria-selected="true"] { font-weight: 600; }
.shared-select-option.is-active, .shared-select-option:hover { background: var(--tblr-primary-lt); color: var(--tblr-primary); }
.shared-select-empty { padding: .8rem; color: var(--tblr-secondary); }
.shared-date-entry { display: flex; align-items: stretch; }
.shared-date-entry > input { min-width: 0; border-top-right-radius: 0; border-bottom-right-radius: 0; }
.shared-date-toggle { flex: 0 0 2.75rem; padding: .4rem; border-top-left-radius: 0; border-bottom-left-radius: 0; }
.shared-date-popup { width: min(20rem, calc(100vw - 2rem)); max-width: calc(100vw - 2rem); max-height: min(32rem, 70dvh); padding: .4rem; }
.shared-date-popup [data-vc="calendar"] { width: 100%; min-width: 0; box-shadow: none; border: 0; padding: .2rem; }
.shared-date-popup [data-vc-date-btn] { min-height: 2rem; }
.shared-date-actions { display: flex; justify-content: space-between; gap: .4rem; padding-top: .4rem; }
.shared-date-actions button { min-height: 2.5rem; }
.shared-date-popup button:focus-visible, .shared-select-input:focus-visible { outline: 2px solid var(--tblr-primary); outline-offset: 2px; }

.shared-date.is-invalid + .invalid-feedback, .shared-select.is-invalid + .invalid-feedback { display: block; }
