.ranking-provenance{display:flex;flex-wrap:wrap;gap:5px 18px;font-size:12px;color:var(--muted);line-height:1.7;margin-top:16px}
.ranking-provenance a{color:var(--accent)}
.ranking-provenance>span{display:inline-block}
.top50-intro-actions .intro-find{font-size:14px;min-height:48px;text-decoration:underline}
.score-number{display:inline-flex!important;align-items:baseline;white-space:nowrap;color:var(--ink)!important;margin:0!important;gap:3px}
.score-number>b,.score-number>strong{font:600 40px/1.1 var(--display);font-variant-numeric:tabular-nums}
.feature-score .score-number>strong{font-size:34px}
.score-denominator{font:400 14px/1.3 var(--body);color:var(--muted);letter-spacing:0}
.closing-score .score-denominator{display:inline!important;font-size:12px;margin-left:3px}
.dish-source{display:inline-block;color:var(--accent);font-size:13px;line-height:1.6;margin-top:14px;min-height:44px;padding-top:5px}
.listing-practical>.dish-source{margin:0 0 20px}
.page-top50 .lrow,.page-top50 #ranked-restaurants{scroll-margin-top:24px}
.page-top50 .lr-name:focus{outline:2px solid var(--accent);outline-offset:5px}
.page-top50 .t50chips button{min-height:44px}
@media(max-width:600px){.ranking-provenance{gap:4px 12px}.ranking-provenance>.ranking-date{flex-basis:100%}.ranking-provenance>a:last-child{margin-top:1px}.top50-intro-actions .intro-find{font-size:14px}.listing-title .lr-score{align-items:baseline}.listing-title .score-number>b{font-size:27px}.listing-title .score-denominator{font-size:13px}.closing-score{white-space:nowrap}.closing-score .score-denominator{font-size:11px}.page-top50 .t50chips button{min-height:44px}}

/* Compact list controls. Search is the primary action; details expand inline. */
.page-top50 .top50-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;padding:0 0 18px;margin:0;scroll-margin-top:24px}
.controls-label,.search-label{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;border:0}
.page-top50 .list-tools{display:block;position:relative;width:100%;margin:0}
.page-top50 .find-field{position:relative;display:block;margin:0 118px 0 0}
.page-top50 .find-field input{margin:0;width:100%;height:48px;font-size:16px;padding:12px 15px 12px 45px;background:var(--paper);border:1px solid var(--line);border-radius:3px}
.search-icon{position:absolute;top:14px;left:14px;width:20px;height:20px;color:var(--muted);pointer-events:none}
.page-top50 .filter-disclosure,.page-top50 .filter-disclosure[open]{display:block;margin:0;padding:0;background:transparent}
.page-top50 .filter-disclosure>summary,.page-top50 .filter-disclosure[open]>summary{position:absolute;top:0;right:0;width:106px;display:flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:10px 18px;background:var(--surface);border-radius:3px;font-size:14px;color:var(--ink);list-style:none;cursor:pointer}
.page-top50 .filter-disclosure>summary::-webkit-details-marker{display:none}
.page-top50 .filter-disclosure>summary svg{width:19px;height:19px;color:var(--accent)}
.page-top50 .filter-disclosure[open]>summary{color:var(--accent)}
.page-top50 .filter-options{background:var(--surface);padding:20px;margin-top:12px}
.page-top50 .filter-disclosure:not([open])>.filter-options{display:none}
.page-top50 .filter-options .extra-filters{margin:0;max-width:680px}
.page-top50 #ranking-count{margin:0;font-size:12px;color:var(--muted)}
.page-top50 #ranking-clear{margin:0;padding:0;min-height:30px;font-size:12px}
.page-top50 .entry-filter-link{display:inline-flex;align-items:center;gap:4px;margin-left:15px;min-height:32px;font-size:12px;color:var(--accent);text-decoration:none;white-space:nowrap}
.entry-filter-link svg{width:13px;height:13px}
.page-top50 .entry-filter-link:hover{text-decoration:underline}
.page-top50 .find-field input:focus{outline:2px solid var(--accent);outline-offset:2px}
@media(max-width:600px){.page-top50 .find-field{margin-right:100px}.page-top50 .filter-disclosure>summary,.page-top50 .filter-disclosure[open]>summary{width:92px;padding:10px 12px;gap:7px}.page-top50 .filter-options{padding:16px}.page-top50 .entry-filter-link{margin-left:10px}}

/* Production port 2026-11-02: William's standing rule (2026-10-21) sizes the Tripadvisor photo credit the same as Yelp (14px), overriding the 20px rule in top50.css. */
.lr-cred img[alt="Tripadvisor"]{height:14px!important;max-width:55px}

/* Production port 2026-11-02 (William: keep every feature he built): ranking index sidebar beside the list,
   Quick view and the jump link. Layout follows the live V7 page; colours use the November tokens. */
.page-top50 .list-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:48px;align-items:start}
.page-top50 .tmain{min-width:0}
.page-top50 .ranking-index{position:sticky;top:20px;max-height:calc(100vh - 40px);overflow:auto;min-width:0;background:var(--surface);padding:18px 20px;border-radius:4px;font-size:13px}
.page-top50 .ranking-index details{scroll-margin-top:24px;margin:0;padding:0;background:none}
.page-top50 .ranking-index summary{list-style:none;font:600 15px var(--body);cursor:pointer;display:flex;justify-content:space-between;gap:10px;min-height:32px;align-items:center}
.page-top50 .ranking-index summary::-webkit-details-marker{display:none}
.page-top50 .ranking-index summary span{color:var(--muted);font-weight:400;font-size:12px}
.page-top50 .ranking-index ol{list-style:none;margin:10px 0 0;padding:0}
.page-top50 .ranking-index li{margin:0;padding:0}
.page-top50 .ranking-index li a{display:flex;gap:10px;padding:7px 0;text-decoration:none;color:var(--ink);line-height:1.35}
.page-top50 .ranking-index li a:hover,.page-top50 .ranking-index li a:focus-visible{color:var(--accent)}
.page-top50 .ranking-index li a span{color:var(--accent);font-weight:600;min-width:1.6em}
.page-top50 .ranking-index>p{margin:14px 0 0;line-height:2}
.page-top50 .ranking-index>p a{color:var(--accent)}
.page-top50 #quick-view{margin-right:20px}.page-top50 .index-jump{font-size:14px;color:var(--accent)}
.page-top50 #ranked-restaurants.is-quick .listing-reading{display:none}
@media(max-width:920px){.page-top50 .list-layout{display:flex;flex-direction:column;gap:22px}.page-top50 .ranking-index{position:static;width:100%;max-height:none;order:-1}.page-top50 .ranking-index ol{display:grid;grid-template-columns:1fr 1fr;column-gap:25px;max-height:330px;overflow:auto;overscroll-behavior:contain}.page-top50 .ranking-index details:not([open]) ol{display:none}.page-top50 .ranking-index>p,.page-top50 .index-jump{display:none}}
@media(max-width:600px){.page-top50 .ranking-index ol{display:block}}
