.topic-picker { display:grid; gap:8px; min-width:0; }
.topic-picker-label { font-weight:650; }
.topic-picker [data-picker-trigger] { display:flex; align-items:center; gap:14px; width:100%; min-height:78px; padding:14px 16px; box-sizing:border-box; text-align:left; border:1px solid var(--color-border,#ded5ed); border-radius:12px; background:var(--color-surface,#fff); color:var(--color-text,#201b2d); font:inherit; letter-spacing:normal; cursor:pointer; }
.topic-picker-copy { display:grid; gap:4px; flex:1; min-width:0; }
.topic-picker-copy small { font-size:12px; font-weight:400; color:var(--color-text-muted,#74658d); overflow-wrap:anywhere; }
.topic-picker [data-picker-caption] { min-width:0; overflow-wrap:anywhere; font-weight:650; }
.topic-picker-icon { display:grid; place-items:center; flex:0 0 44px; height:44px; border-radius:11px; background:var(--color-primary-wash,#f5effc); color:var(--color-primary,#642bd4); }
.topic-picker svg,.topic-picker-panel svg { width:20px; height:20px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.topic-picker [data-picker-trigger]:focus-visible { outline:2px solid var(--color-primary,#642bd4); outline-offset:2px; }
.topic-picker [data-picker-trigger]:disabled { cursor:default; opacity:.6; }
.topic-picker-panel { position:fixed; inset:auto; margin:0; padding:20px; box-sizing:border-box; overflow:hidden; background:var(--color-surface,#fff); color:var(--color-text,#201b2d); border:0; border-radius:16px; box-shadow:0 12px 44px rgb(35 24 53 / .18); font-family:inherit; font-size:14px; line-height:1.5; text-align:left; grid-template-rows:auto auto auto minmax(0,1fr) auto; gap:16px; }
.topic-picker-panel:popover-open { display:grid; }
.topic-picker-panel,.topic-picker-panel * { -webkit-tap-highlight-color:transparent; }
.topic-picker-panel [hidden] { display:none; }
.topic-picker-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.topic-picker-heading h2 { margin:0; color:inherit; font-family:inherit; font-weight:750; font-size:22px; line-height:1.2; letter-spacing:-.025em; }
.topic-picker-close { display:grid; place-items:center; flex:0 0 40px; min-height:40px; padding:0; border:0; border-radius:10px; background:var(--color-primary-wash,#f5effc); color:inherit; cursor:pointer; }
.topic-picker-panel .topic-picker-search { display:flex; align-items:center; gap:10px; min-width:0; min-height:46px; padding:0 12px; border:1px solid var(--color-border,#ded5ed); border-radius:9px; color:var(--color-text-muted,#74658d); font:inherit; }
.topic-picker-search:focus-within { outline:2px solid var(--color-primary,#642bd4); outline-offset:1px; }
.topic-picker-search input { width:100%; max-width:none; min-width:0; min-height:44px; margin:0; padding:0; border:0; outline:none; box-shadow:none; color:var(--color-text,#201b2d); background:transparent; font:inherit; font-size:16px; }
.topic-picker-scroll { min-height:0; overflow:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; scrollbar-width:thin; padding:2px; }
.topic-picker-panel ul,.topic-picker-panel li { list-style:none; padding:0; margin:0; outline:none; }
.topic-picker-panel [role=tree] > li + li { border-top:1px solid var(--color-border,#eee9f3); }
.topic-picker-panel [role=group] { position:relative; }
.topic-picker-panel [role=group]::before { content:""; position:absolute; top:0; bottom:18px; left:calc(20px + var(--group-depth,0) * 18px); border-left:1px solid #e4d7f6; pointer-events:none; }
.topic-picker-row { display:flex; align-items:center; gap:8px; min-height:48px; padding:2px 8px 2px calc(var(--topic-depth) * 18px); border-radius:8px; cursor:pointer; box-sizing:border-box; }
.topic-picker-node-label { flex:1; min-width:0; overflow-wrap:anywhere; padding-block:9px; }
.topic-picker-panel [role=tree] > li > .topic-picker-row .topic-picker-node-label { font-weight:650; }
.topic-picker-row:hover { background:var(--color-primary-wash,#f6f2fc); }
.topic-picker-row:active { background:var(--color-primary-soft,#eee5fc); }
.topic-picker-panel [aria-checked=true] > .topic-picker-row { background:var(--color-primary-soft,#eee5fc); }
.topic-picker-panel li:focus-visible > .topic-picker-row { outline:2px solid var(--color-primary,#642bd4); outline-offset:-2px; }
.topic-picker-checkbox { display:grid; place-items:center; box-sizing:border-box; width:20px; height:20px; flex:0 0 20px; border:1.5px solid #aaa1b5; border-radius:4px; }
.topic-picker-panel [aria-checked=true] > .topic-picker-row > .topic-picker-checkbox,
.topic-picker-panel [aria-checked=mixed] > .topic-picker-row > .topic-picker-checkbox { position:relative; border-color:var(--color-primary,#642bd4); background:var(--color-primary,#642bd4); }
.topic-picker-checkbox svg { display:none; width:16px; height:16px; color:#fff; stroke-width:2.3; }
.topic-picker-panel [aria-checked=true] > .topic-picker-row > .topic-picker-checkbox .topic-picker-checkmark,
.topic-picker-panel [aria-checked=mixed] > .topic-picker-row > .topic-picker-checkbox .topic-picker-dash { display:block; }
.topic-picker-expand { display:grid; place-items:center; flex:0 0 36px; width:36px; min-height:44px; padding:0; border:0; border-radius:7px; background:transparent; color:var(--color-primary,#642bd4); cursor:pointer; }
.topic-picker-expand.is-leaf { visibility:hidden; }
.topic-picker-panel .topic-picker-expand:hover,.topic-picker-panel .topic-picker-close:hover { background:rgb(100 43 212 / .08); transform:none; filter:none; }
.topic-picker-expand svg { transition:none; }
.topic-picker-panel [aria-expanded=true] > .topic-picker-row > .topic-picker-expand svg { transform:rotate(90deg); }
.topic-picker-footer { display:grid; gap:12px; padding-top:14px; border-top:1px solid var(--color-border,#eee9f3); }
.topic-picker-path { display:flex; align-items:flex-start; gap:10px; min-width:0; font-size:12px; color:var(--color-text-muted,#74658d); }
.topic-picker-path svg { color:var(--color-primary,#642bd4); }
.topic-picker-path span { overflow-wrap:anywhere; }
.topic-picker-panel .topic-picker-confirm { min-height:46px; padding:10px 16px; border:0; border-radius:9px; background:var(--color-ai,#1960e7); color:#fff; font-family:inherit; font-weight:700; font-size:15px; line-height:1.3; letter-spacing:normal; cursor:pointer; }
.topic-picker-panel .topic-picker-confirm:hover { background:var(--color-ai-strong,#104dbd); transform:none; filter:none; }
.topic-picker-panel .topic-picker-confirm:disabled { opacity:.45; cursor:default; }
.topic-picker-panel button:focus-visible { outline:2px solid var(--color-primary,#642bd4); outline-offset:2px; }
.topic-picker-empty { padding:20px 12px; color:var(--color-text-muted,#74658d); text-align:center; }
@media(max-width:760px) {
 .topic-picker-panel[data-presentation=sheet] { max-width:none; max-height:none; border-radius:22px 22px 0 0; padding:16px 16px max(16px,env(safe-area-inset-bottom)); gap:14px; }
 .topic-picker-panel[data-presentation=sheet]::backdrop { background:rgb(25 19 40 / .35); }
 .topic-picker-row { min-height:50px; }
 .topic-picker-expand { flex-basis:44px; width:44px; }
 .topic-picker-close { flex-basis:44px; min-height:44px; }
}
/* Match the practice menu and feedback panel, including the closing transition. */
@media(prefers-reduced-motion:no-preference) {
 .topic-picker-panel { opacity:0; transform:translateY(8px); transition:opacity 240ms ease,transform 280ms cubic-bezier(.22,1,.36,1),display 280ms allow-discrete,overlay 280ms allow-discrete; }
 .topic-picker-panel:popover-open { opacity:1; transform:translateY(0); }
 .topic-picker-panel::backdrop { opacity:0; transition:opacity 280ms ease,display 280ms allow-discrete,overlay 280ms allow-discrete; }
 .topic-picker-panel:popover-open::backdrop { opacity:1; }
 @starting-style {
  .topic-picker-panel:popover-open { opacity:0; transform:translateY(8px); }
  .topic-picker-panel:popover-open::backdrop { opacity:0; }
 }
 @media(max-width:760px) {
  .topic-picker-panel { transform:translateY(32px); }
  .topic-picker-panel:popover-open { transform:translateY(0); }
  @starting-style { .topic-picker-panel:popover-open { opacity:0; transform:translateY(32px); } }
 }
}
@media(prefers-reduced-motion:reduce) {
 .topic-picker-panel,.topic-picker-panel::backdrop { transition:none; }
}
@media(max-width:760px) and (max-height:480px) {
 .topic-picker-panel[data-presentation=sheet] { padding:12px; gap:8px; }
 .topic-picker-heading h2 { font-size:18px; }
 .topic-picker-close { min-height:36px; flex-basis:36px; }
 .topic-picker-search,.topic-picker-search input { min-height:38px; }
 .topic-picker-footer { grid-template-columns:minmax(0,1fr) auto; align-items:center; padding-top:8px; }
 .topic-picker-panel .topic-picker-confirm { min-height:40px; }
}

.topic-picker-copy small { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.topic-picker-copy small[hidden] { display:none; }
.topic-picker-path > span { flex:1; min-width:0; }
.topic-picker-bulk { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.topic-picker-panel .topic-picker-bulk button { min-height:36px; padding:2px 4px; border:0; border-radius:5px; background:transparent; color:var(--color-primary,#642bd4); font:inherit; font-size:13px; cursor:pointer; letter-spacing:normal; }
.topic-picker-panel .topic-picker-bulk button:hover { background:var(--color-primary-wash,#f6f2fc); transform:none; filter:none; }
.topic-picker-panel .topic-picker-bulk button:disabled { color:var(--color-text-muted,#74658d); opacity:.55; cursor:default; }

@media(min-width:761px) {
 .topic-picker-panel[data-presentation=popover] { padding:12px; gap:10px; border-radius:10px; grid-template-rows:auto auto minmax(0,1fr) auto; }
 .topic-picker-panel[data-presentation=popover] .topic-picker-heading { display:none; }
 .topic-picker-panel[data-presentation=popover] .topic-picker-footer { padding-top:10px; gap:8px; }
}
@media(max-width:760px) { .topic-picker-panel .topic-picker-bulk button { min-height:44px; } }
