/* 公共表单元件：自定义选单。所有尺寸与颜色采直接值，方便维护。 */
.sh-select { position: relative; display: block; width: 100%; min-width: 0; text-align: left; }
select.sh-select-native { position: absolute !important; width: 1px !important; height: 1px !important; min-width: 0 !important; min-height: 0 !important; padding: 0 !important; border: 0 !important; margin: 0 !important; clip: rect(0, 0, 0, 0) !important; clip-path: inset(50%) !important; overflow: hidden !important; white-space: nowrap !important; pointer-events: none !important; }
.sh-select-trigger { display: flex; align-items: center; justify-content: space-between; gap: 14px; width: 100%; min-width: 0; min-height: 52px; padding: 13px 16px; border: 1px solid #d3d8e5; border-radius: 8px; background: #fff; color: #303644; font-family: inherit; font-size: 16px; font-weight: 500; line-height: 1.5; letter-spacing: 0; text-align: left; cursor: pointer; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; }
.sh-select-trigger:hover { border-color: #626e9c; background: #fafbfe; }
.sh-select-trigger:focus-visible { outline: 3px solid #9aa6c8; outline-offset: 3px; }
.sh-select-trigger[aria-expanded='true'] { border-color: #626e9c; box-shadow: 0 0 0 3px #626e9c14; }
.sh-select-trigger[aria-invalid='true'] { border-color: #c95b2d; box-shadow: 0 0 0 3px #e5773f14; }
.sh-select-trigger:disabled { background: #f1f2f6; color: #7d869d; border-color: #dfe3ed; cursor: not-allowed; box-shadow: none; }
.sh-select-value { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sh-select.is-placeholder .sh-select-value { color: #606c83; }
.sh-select-chevron { display: block; flex: 0 0 9px; width: 9px; height: 9px; border-right: 1.8px solid #626e9c; border-bottom: 1.8px solid #626e9c; transform: translateY(-2px) rotate(45deg); transition: transform .22s ease; }
.sh-select.is-open .sh-select-chevron { transform: translateY(2px) rotate(225deg); }
.sh-select.is-disabled .sh-select-chevron { border-color: #a0a8ba; }
.sh-select-menu { position: fixed; z-index: 1000; display: block; list-style: none; margin: 0; padding: 6px; border: 1px solid #dfe3ed; border-radius: 10px; background: #fff; color: #303644; box-shadow: 0 12px 36px #30364426, 0 3px 8px #3036440a; font-family: inherit; font-size: 16px; font-weight: 400; line-height: 1.5; text-align: left; max-height: 330px; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #b3bdd1 #fff; transform-origin: center top; animation: sh-select-enter .18s ease both; -webkit-overflow-scrolling: touch; }
.sh-select-menu.opens-up { transform-origin: center bottom; }
.sh-select-menu[hidden] { display: none !important; }
.sh-select-option { display: block; position: relative; padding: 11px 35px 11px 13px; margin: 0; min-height: 46px; border-radius: 6px; color: #424b66; cursor: pointer; overflow-wrap: anywhere; transition: background .12s ease, color .12s ease; }
.sh-select-option[hidden] { display: none; }
.sh-select-option.is-active { background: #f1f2f8; color: #52618b; }
.sh-select-option[aria-selected='true'] { background: #eff1f8; color: #52618b; font-weight: 600; }
.sh-select-option[aria-selected='true']::after { content: ''; position: absolute; right: 16px; top: 17px; width: 6px; height: 11px; border: solid #626e9c; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.sh-select-option[aria-disabled='true'] { color: #a0a8ba; background: transparent; font-weight: 400; cursor: not-allowed; }
.sh-select-group { padding: 11px 13px 6px; color: #6f7c97; font-size: 14px; font-weight: 600; letter-spacing: .04em; }
.plan-step .sh-select { margin-top: 8px; }
.catalog-toolbar .sh-select { display: inline-block; width: 178px; max-width: 100%; margin-left: 8px; vertical-align: middle; }
.catalog-toolbar .sh-select-trigger { min-height: 48px; padding: 11px 13px; }
.filter-group .sh-select { margin-top: 6px; }
@keyframes sh-select-enter { from { opacity: 0; transform: translateY(-5px) scale(.99); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (max-width: 760px) {
  .sh-select-trigger { min-height: 52px; font-size: 16px; }
  .sh-select-option { min-height: 48px; padding-block: 12px; }
  .sh-select-option[aria-selected='true']::after { top: 18px; }
  .catalog-toolbar .sh-select { width: 158px; margin-left: 6px; }
}
@media (prefers-reduced-motion: reduce) {
  .sh-select-trigger, .sh-select-chevron, .sh-select-option { transition: none; }
  .sh-select-menu { animation: none; }
}
