/* v-stalls: stall results screen, filter sheet and sort sheet (UI-B). Tokens from app.css only. */
.stalls-bar{position:sticky;top:0;z-index:2;margin:0 -16px;padding:2px 16px 6px;background:var(--bg);transition:box-shadow .2s}
.stalls-bar.is-stuck{box-shadow:0 .5px 0 var(--hair2)}
.stalls-bar__row{display:flex;align-items:center;gap:10px;min-height:44px}
.stalls-n{flex:1;min-width:0;font-weight:680;font-size:16px}
.stalls-sort{flex:none;display:inline-flex;align-items:center;gap:6px;height:44px;padding:0 10px 0 14px;border-radius:999px;background:var(--surface);box-shadow:0 0 0 .5px var(--hair2);font-weight:620;font-size:14px;color:var(--fg)}
.stalls-sort__k{color:var(--muted);font-weight:560}
.stalls-sort svg{width:16px;height:16px;color:var(--muted)}
.stalls-sort:active{background:var(--surface2)}
.stalls-active{display:flex;align-items:center;gap:8px;overflow-x:auto;margin:0 -16px;padding:6px 16px;scrollbar-width:none}
.stalls-active::-webkit-scrollbar{display:none}
.stalls-active[hidden]{display:none}
/* chip text is the accent / phase colour pulled toward --fg: the raw tokens are below 4.5:1 on their soft tints in light mode */
.stalls-chip{--pc:var(--accent);position:relative;flex:none;height:34px;max-width:80vw;display:inline-flex;align-items:center;gap:6px;padding:0 9px 0 13px;border-radius:999px;background:var(--accent-soft);color:color-mix(in srgb,var(--pc) 70%,var(--fg));font-weight:620;font-size:13.5px;white-space:nowrap}
.stalls-chip span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.stalls-chip svg{flex:none;width:15px;height:15px}
.stalls-chip::after{content:"";position:absolute;left:-2px;right:-2px;top:-5px;bottom:-5px}
.stalls-chip[data-p="1"]{background:var(--p1-soft);--pc:var(--p1)}
.stalls-chip[data-p="2"]{background:var(--p2-soft);--pc:var(--p2)}
.stalls-chip[data-p="3"]{background:var(--p3-soft);--pc:var(--p3)}
.stalls-chip[data-p]{color:color-mix(in srgb,var(--pc) 56%,var(--fg))}
.stalls-chip:active{filter:brightness(.94)}
.stalls-clear{position:relative;flex:none;height:34px;padding:0 10px;color:var(--fg2);font-weight:620;font-size:13.5px;white-space:nowrap}
.stalls-clear::after{content:"";position:absolute;left:0;right:0;top:-5px;bottom:-5px}
.stalls-fbadge{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:var(--accent-fg);font-size:11px;font-weight:750;line-height:18px;text-align:center}
.stalls-fbadge[hidden]{display:none}

.stalls-list{margin-top:6px}
.stalls-list .empty .btn{margin-top:14px}
.stalls-more{display:flex;flex-direction:column;align-items:center;padding:14px 0 8px}
.stalls-more .btn{gap:10px}
.stalls-left{font-weight:600;font-size:13.5px}
.stalls-more .btn.sec,.stalls-list .empty .btn.sec{color:color-mix(in srgb,var(--accent) 75%,var(--fg))}
.stalls-reset{height:44px;min-width:44px}
.stalls-end{margin:6px 0 0;color:var(--muted);font-size:13px}
.stalls-tick{flex:none;width:22px;height:22px;color:var(--accent)}

/* filters sheet */
.stalls-sheet [hidden]{display:none!important}
.stalls-sheet>.section__h:first-child{margin-top:6px}
.stalls-sheet .chips{flex-wrap:wrap;overflow:visible;margin:0;padding:0}
.stalls-sheet .chip{height:44px;padding:0 16px}
.stalls-sheet .chip small{opacity:1;font-weight:500}
.stalls-gap{height:10px}
.stalls-sub{margin:14px 2px 8px;color:var(--muted);font-size:12.5px;font-weight:650;letter-spacing:.02em}
.stalls-hallbody{padding:0 14px 14px}
.stalls-hallbody .stalls-hallblk+.stalls-hallblk{box-shadow:none}
.stalls-hallbody .chip{background:var(--surface);height:40px;padding:0 14px}
.stalls-acc__h{display:flex;align-items:center;gap:10px;width:100%;min-height:54px;padding:8px 14px;text-align:left;background:var(--surface);font-weight:650;font-size:15.5px}
.stalls-acc__h:active{background:var(--surface2)}
.stalls-acc__t{flex:1;min-width:0;display:block}
.stalls-acc__t small{display:block;margin-top:1px;color:var(--muted);font-size:12.5px;font-weight:500}
.stalls-acc__b{flex:none;padding:2px 9px;border-radius:999px;background:var(--accent-soft);color:color-mix(in srgb,var(--accent) 75%,var(--fg));font-size:12.5px;font-weight:700}
.stalls-acc__b:empty{display:none}
.stalls-acc__chev{flex:none;width:18px;height:18px;color:var(--muted);transition:transform .2s var(--ease)}
.stalls-acc.is-open .stalls-acc__chev{transform:rotate(180deg)}
.stalls-acc__body{background:var(--surface2)}
.stalls-acc__body>*+*{box-shadow:inset 0 .5px 0 var(--hair2)}
.stalls-hallbody>*+*{box-shadow:none}

.stalls-opt{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:8px 14px;text-align:left;background:transparent}
.stalls-opt:active{background:var(--surface3)}
.stalls-box{flex:none;display:grid;place-items:center;width:22px;height:22px;border-radius:7px;box-shadow:inset 0 0 0 1.5px var(--muted);color:transparent}
.stalls-box svg{width:15px;height:15px;stroke-width:3}
.stalls-opt[aria-checked="true"] .stalls-box{background:var(--accent);color:var(--accent-fg);box-shadow:none}
.stalls-opt__main{flex:1;min-width:0;display:flex;flex-direction:column}
.stalls-opt__t{font-weight:580;font-size:15px;line-height:1.3}
.stalls-opt__t.is-strong{font-weight:680}
.stalls-opt__code{margin-left:8px;color:var(--muted);font-size:11.5px;font-weight:600}
.stalls-opt__cn{color:var(--muted);font-size:12.5px;line-height:1.3}
.stalls-opt__n{flex:none;color:var(--muted);font-size:14px}
/* zero-count options stay selectable, so dim only the title (muted keeps 4.5:1; opacity .5 dropped everything to 2:1) */
.stalls-opt.is-zero .stalls-opt__t{color:var(--muted);font-weight:500}
.stalls-foot{position:sticky;bottom:calc(-24px - var(--sab));z-index:3;margin:20px -16px calc(-24px - var(--sab));padding:10px 16px calc(12px + var(--sab));background:var(--bg);box-shadow:0 -.5px 0 var(--hair2)}

@media (prefers-reduced-motion:reduce){.stalls-bar,.stalls-acc__chev{transition:none}}
