/* TeacherSheba select: styles for js/select.js (trigger, popup, bottom sheet). Tokens come from styles.css. */
select.tbs-native{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;margin:-1px!important;padding:0!important;border:0!important;opacity:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;pointer-events:none!important}
.tbs{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-width:0;min-height:48px;padding:0 14px;border:1.5px solid var(--line-field);border-radius:14px;background:var(--field-bg);color:var(--ink);font:inherit;font-size:1rem;line-height:1.3;text-align:left;cursor:pointer;scroll-margin-top:96px;-webkit-tap-highlight-color:transparent;transition:border-color .15s,box-shadow .15s,background .15s}
.tbs::after{content:"";flex:none;width:8px;height:8px;margin:-4px 2px 0 0;border:solid var(--primary);border-width:0 2px 2px 0;transform:rotate(45deg);transition:transform .2s,margin .2s}
.tbs[aria-expanded=true]::after{transform:rotate(225deg);margin-top:4px}
.tbs-v{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tbs.tbs-ph .tbs-v{color:var(--muted)}
.tbs:hover{border-color:var(--primary)}
.tbs:focus-visible,.tbs[aria-expanded=true]{outline:0;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 30%,transparent)}
.tbs[aria-invalid=true],.fld.bad .tbs{border-color:var(--coral)}
.tbs[aria-invalid=true]:focus-visible,.fld.bad .tbs:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--coral) 30%,transparent)}
.tbs[aria-disabled=true]{opacity:.55;cursor:not-allowed;background:color-mix(in srgb,var(--field-bg) 70%,var(--line-field));border-color:var(--line-field);box-shadow:none}
.tbs[hidden]{display:none}
.tbs-lock{overflow:hidden!important}

.tbs-pop{position:fixed;z-index:520;display:flex;flex-direction:column;min-width:0;overflow:hidden;border-radius:16px;background:var(--card);color:var(--ink);border:1px solid var(--line-field);box-shadow:var(--shadow-lg);font-family:inherit;font-size:1rem;line-height:1.35;transform-origin:top center;animation:tbs-in .16s cubic-bezier(.2,.8,.2,1)}
.tbs-pop.tbs-up{transform-origin:bottom center}
.tbs-s{flex:none;padding:8px 8px 4px}
.tbs-si{width:100%;min-height:44px;padding:0 12px;border:1.5px solid var(--line-field);border-radius:12px;background:var(--field-bg);color:var(--ink);font:inherit;font-size:.95rem}
.tbs-si:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 25%,transparent)}
.tbs-l{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:6px;outline:0;-webkit-overflow-scrolling:touch}
.tbs-o{position:relative;display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 40px 8px 12px;border-radius:10px;cursor:pointer;overflow-wrap:anywhere;transition:background .1s}
.tbs-o[hidden],.tbs-g[hidden],.tbs-none[hidden]{display:none}
.tbs-o.tbs-op{color:var(--muted)}
.tbs-o.tbs-a,.tbs-o:hover{background:var(--tint)}
.tbs-l:hover .tbs-a:not(:hover){background:none}
.tbs-o:active{background:color-mix(in srgb,var(--primary) 18%,var(--tint))}
.tbs-o[aria-selected=true]{color:var(--primary);font-weight:600}
.tbs-o[aria-selected=true]::after{content:"";position:absolute;right:16px;top:50%;width:6px;height:11px;margin-top:-8px;border:solid var(--primary);border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.tbs-o[aria-disabled=true]{opacity:.45;cursor:not-allowed;background:none!important}
.tbs-gh{padding:10px 12px 4px;font-family:var(--font-head);font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.tbs-g+.tbs-g,.tbs-o+.tbs-g{border-top:1px solid var(--line);margin-top:4px}
.tbs-none{padding:16px 12px;text-align:center;color:var(--muted)}

.tbs-bd{position:fixed;inset:0;z-index:510;background:var(--backdrop);animation:tbs-fade .2s}
.tbs-hd{flex:none;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 16px 4px}
.tbs-hb{width:64px;height:28px;margin:-4px 0 0;border:0;background:none;cursor:pointer;position:relative}
.tbs-hb::after{content:"";position:absolute;left:12px;right:12px;top:12px;height:5px;border-radius:99px;background:var(--line-field)}
.tbs-t{font-family:var(--font-head);font-weight:700;font-size:1.05rem;color:var(--ink);text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tbs-t:empty{display:none}
.tbs-hb:focus-visible{outline:2px solid var(--primary);border-radius:8px}
@media (max-width:639px){
  .tbs-pop.tbs-sheet{left:0!important;right:0;top:auto!important;bottom:0!important;width:100%!important;max-height:78vh!important;max-height:78dvh!important;border-radius:24px 24px 0 0;border-width:1px 0 0;padding-bottom:env(safe-area-inset-bottom,0px);transform-origin:bottom center;animation:tbs-up .26s cubic-bezier(.2,.8,.2,1)}
  .tbs-sheet .tbs-o{min-height:48px;padding-block:10px;font-size:1.05rem}
  .tbs-sheet .tbs-si{min-height:48px;font-size:1rem}
}
@keyframes tbs-in{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}
.tbs-pop.tbs-up{animation-name:tbs-inup}
@keyframes tbs-inup{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}
@keyframes tbs-up{from{transform:translateY(100%)}to{transform:none}}
@keyframes tbs-fade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.tbs,.tbs::after,.tbs-o{transition:none}.tbs-pop,.tbs-bd,.tbs-pop.tbs-up{animation:none}}
/* inline sort controls: trigger sized to content, full width on phones */
@media (max-width:479px){.tf-sort .tbs{width:100%!important;max-width:none!important}}
