.ff-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;padding-bottom:0;border-bottom:0}.filter-foot{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.filter-foot input{margin:0;width:270px;max-width:100%}.ff-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}.ff-card{background:white;border:1px solid #a9c8be;min-width:0}.ff-race{display:flex;align-items:stretch;background:#dcefe9;border-bottom:1px solid #c2ddd5}.ff-time{display:grid;place-items:center;min-width:68px;background:var(--deep);color:white;font-size:18px;font-weight:800}.ff-race>div{padding:10px 14px;min-width:0}.ff-race strong{display:block;font-size:13px}.ff-race small{display:block;margin-top:3px;font-size:10px;color:var(--muted)}.ff-horse{padding:17px 18px;display:flex;gap:12px;align-items:center}.ff-number{display:grid;place-items:center;width:33px;height:33px;background:#e7f7f0;color:var(--dark);font-size:14px;font-weight:800;flex-shrink:0}.ff-horse h3{font-size:19px;margin:0 0 5px;line-height:1.2}.ff-horse a{color:var(--deep);text-decoration:none}.ff-horse a:hover{color:var(--mid);text-decoration:underline}.ff-horse p{font-size:10px;color:var(--muted);margin:3px 0;line-height:1.5}.ff-last{margin:0 18px 16px;padding:12px 14px;background:#f1f7f7;border-left:3px solid var(--mid);display:flex;justify-content:space-between;gap:12px}.ff-label{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:700}.ff-last strong{display:block;font-size:13px;margin:5px 0}.ff-last small{font-size:10px;color:var(--muted)}.ff-age{font-size:10px;white-space:nowrap;color:var(--dark);align-self:flex-start;border:1px solid #c6ded5;padding:4px 6px}.ff-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.ff-metric{padding:15px 16px;border-left:1px solid var(--line)}.ff-metric:first-child{border-left:0}.ff-metric strong{font-size:27px;font-weight:900;display:block;margin:7px 0 3px;letter-spacing:-.03em;color:var(--dark)}.ff-metric small{font-size:10px;color:var(--muted)}.ff-meter{height:3px;background:#e1efea;margin-top:10px}.ff-meter i{display:block;height:100%;background:var(--mid)}.ff-evidence summary{padding:13px 18px;font-size:11px;font-weight:700;color:var(--dark);cursor:pointer;display:flex;justify-content:space-between;list-style:none;gap:8px}.ff-evidence summary::after{content:'+';font-size:16px;line-height:12px}.ff-evidence[open] summary::after{content:'−'}.ff-evidence summary small{color:var(--muted);font-size:10px;font-weight:400;margin-left:auto}.ff-evidence-body{padding:0 18px 16px}.ff-evidence-body>p{color:var(--muted);font-size:10px;line-height:1.6}.ff-evidence table{width:100%;border-collapse:collapse;font-size:11px;text-align:left}.ff-evidence th{font-size:9px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);padding:10px 5px;border-bottom:1px solid var(--line)}.ff-evidence td{padding:10px 5px;border-bottom:1px solid #e9f1ee;vertical-align:top}.ff-evidence td small{display:block;font-size:9px;margin-top:4px;color:var(--muted)}.finish{display:inline-block;min-width:27px;text-align:center;padding:4px;background:#eef3f1;font-weight:800}.finish.top{background:#d9f3ea;color:var(--dark)}.finish.won{background:var(--deep);color:var(--mint)}.ff-mobile-menu{height:100dvh;max-height:100dvh;width:min(84vw,330px);margin:0 0 0 auto;padding:26px 22px;max-width:100%;border:0}.ff-mobile-menu>a,.ff-mobile-menu details summary,.ff-mobile-menu button.mobile-action,.ff-mobile-menu details a{display:block;width:100%;padding:18px 0;border-bottom:1px solid var(--line);font-size:16px;color:var(--deep);text-decoration:none;cursor:pointer}.ff-mobile-menu details a{font-size:13px;padding-left:12px}.ff-mobile-menu h2{font-size:18px;padding-bottom:20px;border-bottom:1px solid var(--mid)}#saved-angles{margin-top:20px}.saved-row{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:12px 0}.saved-row b{font-size:13px;flex:1;overflow-wrap:anywhere}.saved-row button{font-size:11px;color:var(--dark);border:1px solid var(--line);padding:7px;background:white}#angle-status{font-size:12px;color:var(--muted)}.method-note{line-height:1.7}#angle-form input{font:inherit;display:block;width:100%;padding:12px;margin:8px 0 16px;border:1px solid var(--line)}.heroStat{align-self:flex-end}button{touch-action:manipulation}
@media(min-width:1600px){.ff-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1000px){.ff-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.ff-cards{grid-template-columns:1fr}.ff-metric strong{font-size:25px}}
@media(max-width:700px){.ff-filters{gap:14px 10px}.filter-foot{flex-direction:column;align-items:stretch;gap:12px;font-size:10px}.filter-foot input{width:100%;height:40px}.filter-foot label{width:100%}.ff-last{margin:0 12px 12px;padding:10px;gap:8px}.ff-horse{padding:14px 12px}.ff-horse h3{font-size:18px}.ff-metric{padding:12px 9px}.ff-label{font-size:8px;letter-spacing:.04em}.ff-metric strong{font-size:25px}.ff-metric small{font-size:9px}.ff-age{font-size:9px}.ff-evidence summary{padding:13px 12px}.ff-evidence-body{padding:0 12px 12px}.ff-evidence table{font-size:10px}.ff-evidence th{font-size:8px}.heroStat{display:none}.countPill{display:none}.results-actions{justify-content:space-between}.ff-race small{line-height:1.4}.filterTop .step{font-size:8px;padding:6px}.ff-evidence summary small{font-size:9px}}

.ff-unique{font-size:10px;color:var(--muted);padding:9px 18px;background:#f8fcfa;border-bottom:1px solid var(--line)}.daySwitch button:disabled{opacity:.4;cursor:not-allowed}.record-bar{flex-wrap:wrap}.record-bar label{min-width:180px}.record-bar p{font-size:10px}@media(max-width:700px){.record-bar label{min-width:0;max-width:none}.ff-unique{padding:9px 12px}}

.race-selectors{display:grid;grid-template-columns:1fr 1.6fr 1fr;gap:18px;margin-bottom:20px}.comparison-heading{display:flex;flex-direction:column;gap:6px;margin-top:18px;padding:15px 18px;background:var(--deep);color:white}.comparison-heading strong{font-size:17px}.comparison-heading span{font-size:11px;color:#c9ddd7}.comparison-scroll{overflow-x:auto;border:1px solid var(--line);background:white}.comparison-table{border-collapse:collapse;width:100%;min-width:1000px;text-align:left;font-size:12px}.comparison-table th{font-size:9px;letter-spacing:.06em;text-transform:uppercase;background:#dcefe9;color:var(--deep);padding:13px 12px;white-space:nowrap}.comparison-table td{padding:14px 12px;border-top:1px solid var(--line);vertical-align:middle}.comparison-table td:first-child{min-width:200px}.comparison-table a{color:var(--deep);font-size:14px;font-weight:800;text-decoration:none}.comparison-table a:hover{text-decoration:underline}.comparison-table small{display:block;color:var(--muted);font-size:10px;line-height:1.5;margin-top:5px}.comparison-table b{font-size:20px;color:var(--dark)}.comparison-table .textBtn{padding:7px 0 0;font-size:10px}.comparison-table .is-qualifier{background:#edf9f3}.comparison-table .is-nr{color:var(--muted);background:#f4f5f4}.comparison-badge{font-size:10px;line-height:1.4;display:block}.is-qualifier .comparison-badge{font-weight:800;color:var(--dark)}#runner-dialog{width:min(760px,95vw);padding-top:52px}#runner-dialog .ff-card{border:0}select:disabled,input:disabled{opacity:.55;cursor:not-allowed}@media(max-width:700px){.race-selectors{grid-template-columns:1fr;gap:12px;margin-bottom:16px}.comparison-table td:first-child,.comparison-table th:first-child{position:sticky;left:0;background:#fff;z-index:1;min-width:165px;max-width:175px}.comparison-table th:first-child{background:#dcefe9}.comparison-table .is-qualifier td:first-child{background:#edf9f3}.comparison-table .is-nr td:first-child{background:#f4f5f4}.comparison-table td{padding:12px 10px}.comparison-heading span{line-height:1.5}}

.ff-horse>div:not(.ff-price){min-width:0}.ff-price{margin-left:auto;flex:0 0 auto;text-align:right;min-width:58px;color:var(--deep)}.ff-price>span{display:block;font-size:8px;font-weight:800;line-height:1.4}.ff-price>strong{display:block;font-size:25px;line-height:1.2;margin:4px 0;font-weight:800;letter-spacing:-.03em}.ff-price>small{display:block;font-size:10px;color:var(--muted);max-width:90px;line-height:1.4}.comparison-table .ff-price{margin:0;text-align:left}.ff-horse h3{overflow-wrap:anywhere}@media(max-width:700px){.ff-horse{gap:9px}.ff-price{min-width:46px}.ff-price>strong{font-size:23px}.ff-price>small{font-size:9px;max-width:64px}}

.evidence-group{margin-top:18px}.evidence-group h4{margin:0 0 5px;font-size:12px}.evidence-group>p{font-size:10px;color:var(--muted);margin:5px 0 10px}

/* Keep the filters close to the introduction. */
.filterShell{margin-top:12px}
@media(max-width:700px){.filterShell{margin-top:8px}}

.ff-combined-label{padding:10px 18px;background:#f1f7f7;color:var(--deep);font-size:11px;font-weight:700;border-top:1px solid var(--line)}
@media(max-width:700px){.ff-combined-label{padding:10px 12px}}
/* Compact filter spacing without shrinking the controls. */
.filterTop{min-height:56px;padding-top:10px;padding-bottom:10px}
.filterBody{padding-top:14px;padding-bottom:14px}
.race-selectors{gap:14px;margin-bottom:12px}
.record-bar{padding:12px 16px;gap:16px;margin-bottom:12px}
.ff-filters{gap:12px}
.filter-foot{margin-top:12px;padding-top:10px;gap:16px}
.filterBody .filter-foot input{margin-top:0}
@media(max-width:700px){
 .filterTop{min-height:52px;padding-top:8px;padding-bottom:8px}
 .filterBody{padding:10px 12px}
 .race-selectors{gap:10px;margin-bottom:10px}
 .record-bar{padding:10px 12px;gap:10px;margin-bottom:10px}
 .ff-filters{gap:10px}
 .filter-foot{margin-top:10px;padding-top:10px;gap:10px}
}
/* Readable supporting text in desktop runner cards and their evidence popup. */
@media(min-width:701px){
 .ff-card .ff-race small,
 .ff-card .ff-horse p,
 .ff-card .ff-label,
 .ff-card .ff-last small,
 .ff-card .ff-age,
 .ff-card .ff-metric small,
 .ff-card .ff-unique,
 .ff-card .ff-price>small,
 .ff-card .ff-evidence summary,
 .ff-card .ff-evidence summary small,
 .ff-card .ff-evidence-body>p,
 .ff-card .ff-evidence table,
 .ff-card .ff-evidence th,
 .ff-card .ff-evidence td small,
 .ff-card .evidence-group>p,
 .ff-card .ff-combined-label{font-size:12px}
 .ff-card .ff-label{letter-spacing:.04em;line-height:1.4}
 .ff-card .ff-evidence summary{flex-wrap:wrap}
}
/* Match desktop comparison supporting text to the runner cards. */
@media(min-width:701px){
 .comparison-heading span,
 .comparison-table th,
 .comparison-table small,
 .comparison-table .textBtn,
 .comparison-table .comparison-badge,
 .comparison-table .ff-price>span,
 .comparison-table .ff-price>small{font-size:12px}
 .comparison-table th{letter-spacing:.04em;line-height:1.4;white-space:normal}
}

/* Race type shares the existing race selection row. */
.race-selectors{grid-template-columns:1fr 1fr 1.6fr 1fr}
@media(max-width:1000px){.race-selectors{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.race-selectors{grid-template-columns:1fr}}

.ff-quick-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ff-quick-filters>span{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin-right:4px;color:var(--deep)}
.ff-quick-filters button{font:inherit;font-size:12px;font-weight:700;padding:9px 12px;border:1px solid var(--line);background:white;color:var(--deep);cursor:pointer;min-height:36px}
.ff-quick-filters button:hover{border-color:var(--deep)}
.ff-quick-filters button[aria-pressed=true]{background:var(--deep);color:white;border-color:var(--deep)}
.ff-quick-filters button:focus-visible{outline:2px solid var(--mid);outline-offset:3px}

.ff-quick-filters #quick-help{width:30px;height:36px;padding:0;border:1px solid var(--mid);color:var(--mid);font-size:18px;font-weight:800;background:transparent}
.ff-quick-filters #quick-help:hover{background:var(--deep);color:var(--mint)}
#quick-help-dialog{position:fixed;inset:0;margin:auto;border-top-color:var(--mint)}
#quick-help-dialog h2{padding-right:30px}

.ff-label-mobile{display:none}
@media(max-width:700px){.ff-label-desktop{display:none}.ff-label-mobile{display:inline;white-space:nowrap;letter-spacing:0}}

/* Bring results closer to the filters and remove excess heading space. */
.results{padding-top:14px}
.resultsHead{min-height:0;padding-top:0;padding-bottom:10px}
.context-row{gap:0}
.context-row>span{margin-top:8px}
.comparison-heading{margin-top:10px}
.ff-cards{margin-top:10px}
@media(max-width:700px){
 .results{padding-top:12px}
 .resultsHead{padding-top:0;padding-bottom:8px;gap:8px}
 .context-row>span{margin-top:6px}
 .comparison-heading{margin-top:8px}
}
/* Centre the quick-filter group within its available row space. */
.ff-quick-filters{flex:1;justify-content:center}
@media(max-width:700px){.ff-quick-filters{width:100%}}

/* Match the collection header logo widths used by A Touch of Class. */
.ts-collection-header .brand{flex:0 1 220px;min-width:0}
.ts-collection-header .brand img.tool-logo{display:block;width:100%;max-width:220px;height:auto;object-fit:contain}
@media(min-width:900px) and (max-width:1100px) and (orientation:landscape){.ts-collection-header .brand{flex-basis:160px}}
@media(max-width:899px),(max-width:1199px) and (orientation:portrait){
 .ts-collection-header .brand{flex-basis:230px}
 .ts-collection-header .brand img.tool-logo{max-width:230px}
}

/* Match shared navigation and centre quick filters only on mobile. */
.ff-quick-filters{justify-content:flex-start}
@media(max-width:700px){.ff-quick-filters{justify-content:center}}
.ts-toolkit-navigation-list{z-index:100;max-height:calc(100dvh - 100px);overflow-y:auto}
.ts-toolkit-navigation-trigger button svg{color:#00ad69}
.ts-toolkit-navigation-trigger button[aria-expanded=true] svg{transform:rotate(180deg)}

/* Mobile filter actions match the compact Toolkit header. */
.ff-mobile-save{display:none}
@media(max-width:700px){
 .filterTop>div:first-child{display:none}
 .filterTop{min-height:46px;padding:4px 12px;justify-content:flex-end}
 .filterTop .filterActions{margin-left:auto;flex-direction:row;align-items:center;gap:16px}
 .filterTop .filterActions button{padding:0;min-height:36px;border:0;background:none;font-size:10px;font-weight:700;text-decoration:underline;white-space:nowrap;color:var(--deep)}
 .filterTop .collapse::after,.filterTop .collapse[aria-expanded=false]::after{content:none}
 .filterTop .ff-mobile-save{display:inline-block}
 .results-actions>[data-angles]{display:none}
 .results-actions{justify-content:flex-end}
}
@media(max-width:700px){.filterTop .filterActions button{text-transform:none;letter-spacing:normal}}
/* Keep the mobile shortlist heading and sorting control on one row. */
@media(max-width:700px){
 .resultsHead{flex-direction:row;flex-wrap:nowrap;align-items:center;gap:8px}
 .resultsHead>div:first-child{flex:1 1 auto;gap:6px;min-width:0}
 .resultsHead h2{font-size:14px;white-space:nowrap}
 .resultsHead .resultCount{font-size:10px;padding:5px 6px}
 .resultsHead .results-actions{flex:0 0 auto;width:auto;margin-left:auto;flex-wrap:nowrap}
 .resultsHead label{gap:5px;font-size:8px}
 .resultsHead select{width:108px;height:36px;padding:0 6px;font-size:11px}
}
@media(max-width:360px){
 .resultsHead{gap:5px}
 .resultsHead h2{font-size:13px}
 .resultsHead select{width:88px}
 .resultsHead .resultCount{padding:4px}
}
@media(max-width:700px){.context-row{display:none}}
@media(max-width:700px){.resultsHead{padding-bottom:4px}.ff-cards,.comparison-heading{margin-top:4px}.results .tool-preview{margin-top:4px}}
@media(max-width:700px){.results{padding-top:0}.resultsHead{padding-top:10px;padding-bottom:10px;border-bottom:0}.ff-cards,.comparison-heading,.results .tool-preview{margin-top:0}}

.comparison-rotate{display:none}
@media(max-width:700px),(max-width:1000px) and (pointer:coarse){
 .comparison-rotate{display:block;margin:0;padding:8px 0 12px;font-size:11px;line-height:1.4;color:var(--muted)}
 .comparison-table{min-width:740px;table-layout:fixed;font-size:11px}
 .comparison-table th{font-size:9px;letter-spacing:0;line-height:1.3;white-space:normal;padding:9px 5px;overflow-wrap:anywhere}
 .comparison-table td{padding:10px 5px;overflow-wrap:anywhere}
 .comparison-table th:nth-child(1){width:20%}
 .comparison-table th:nth-child(2){width:7%}
 .comparison-table th:nth-child(3){width:16%}
 .comparison-table th:nth-child(4){width:7%}
 .comparison-table th:nth-child(5){width:8%}
 .comparison-table th:nth-child(6){width:7%}
 .comparison-table th:nth-child(7){width:7%}
 .comparison-table th:nth-child(8){width:8%}
 .comparison-table th:nth-child(9){width:7%}
 .comparison-table th:nth-child(10){width:13%}
 .comparison-table td:first-child,.comparison-table th:first-child{min-width:0;max-width:none}
 .comparison-table a{font-size:12px}
 .comparison-table small,.comparison-table .textBtn,.comparison-table .comparison-badge{font-size:10px}
 .comparison-table b{font-size:17px}
 .comparison-table .ff-price{min-width:0}
 .comparison-table .ff-price>strong{font-size:18px}
 .comparison-table .ff-price>span{font-size:8px}
 .comparison-table .ff-price>small{font-size:9px}
}
