﻿/* Local assets and system fonts keep the interface independent of CDNs. */
:root, [data-bs-theme="light"] {
    --bs-primary: #245cdb;
    --bs-primary-rgb: 36, 92, 219;
    --bs-link-color: #245cdb;
    --bs-link-color-rgb: 36, 92, 219;
    --bs-link-hover-color-rgb: 25, 65, 158;
    --bs-body-color: #25334a;
    --bs-body-bg: #f7f9fc;
    --bs-secondary-color: #627086;
    --bs-tertiary-bg: #f0f4f9;
    --bs-border-color: #e0e6ef;
}
body { font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
h1, h2, h3, .navbar-brand { letter-spacing: -.035em; color: #17253d; }
.navbar { background: #fff !important; min-height: 76px; box-shadow: 0 1px 8px #20385905; }
.navbar-brand { font-size: 1.3rem; margin-right: 2rem; }
.navbar .nav-link { font-size: .9rem; font-weight: 500; }
.navbar .nav-link.active { color: #245cdb; background: #edf3ff; border-radius: .5rem; }
.card { --bs-card-bg: #fff; --bs-card-cap-bg: #fff; border-radius: .85rem; box-shadow: 0 3px 16px #20385905; overflow: hidden; }
.card-header, .card-footer { padding: 1rem 1.25rem; }
.card-body { padding: 1.25rem; }
.btn { border-radius: .5rem; font-weight: 500; }
.btn-primary { --bs-btn-bg: #245cdb; --bs-btn-border-color: #245cdb; --bs-btn-hover-bg: #1947b0; --bs-btn-hover-border-color: #1947b0; --bs-btn-active-bg: #1947b0; }
.btn-outline-secondary { --bs-btn-color: #526078; --bs-btn-border-color: #d5deeb; --bs-btn-hover-bg: #edf3ff; --bs-btn-hover-color: #1947b0; --bs-btn-hover-border-color: #b5c9ed; --bs-btn-active-bg: #edf3ff; --bs-btn-active-color: #1947b0; --bs-btn-active-border-color: #b5c9ed; }
.form-control, .form-select { background-color: #fff; border-color: #d5deeb; border-radius: .5rem; }
.form-control:focus, .form-select:focus { border-color: #7ca1ef; box-shadow: 0 0 0 .2rem #245cdb15; }
.hero { background: radial-gradient(ellipse at 15% 0%, #eaf1ff, transparent 65%), #fff; }
.section-eyebrow { font-size: .7rem; font-weight: 700; letter-spacing: .13em; color: #627086; }
.results-page { max-width: 1540px; }
.summary-card { padding: 1.4rem 1.5rem; border: 1px solid #e0e6ef; border-radius: .85rem; background: #fff; box-shadow: 0 3px 16px #20385905; }
.summary-card-new { background: linear-gradient(120deg, #edf3ff, #fff); border-color: #cbdaf7; }
.summary-label { display: flex; align-items: center; gap: .5rem; font-size: .8rem; font-weight: 600; color: #526078; }
.summary-dot { width: .5rem; height: .5rem; border-radius: 50%; background: #245cdb; }
.summary-value { display: block; margin: .5rem 0 .35rem; font-size: 2.25rem; line-height: 1.2; font-weight: 700; letter-spacing: -.04em; font-variant-numeric: tabular-nums; color: #17253d; }
.summary-card-new .summary-value { color: #245cdb; }
.summary-time { font-size: 1.4rem; line-height: 1.93; letter-spacing: -.025em; }
.summary-note { font-size: .75rem; color: #627086; }
.new-label { display: inline-block; margin-right: .4rem; padding: .15rem .3rem; border-radius: .25rem; background: #e8f5ee; color: #247347; font-size: .6rem; letter-spacing: .04em; vertical-align: middle; }
.results-scroll { max-height: 70vh; }
#results-table { table-layout: fixed; width: 100%; min-width: 1456px; font-size: .84rem; --bs-table-bg: #fff; --bs-table-hover-bg: #f5f8fe; }
#results-table .result-selected { --bs-table-bg: #edf3ff; }
#results-table th, #results-table td { padding: .85rem .75rem; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; border-color: #edf0f5; }
#results-table th { position: sticky; top: 0; z-index: 2; background: #f8fafd; font-size: .72rem; font-weight: 600; color: #627086; }
#results-table th[data-sort] { cursor: pointer; }
#results-table th[data-sort]::after { content: ' ↕'; color: #8a99b0; }
#results-table th[aria-sort="ascending"]::after { content: ' ↑'; color: #245cdb; }
#results-table th[aria-sort="descending"]::after { content: ' ↓'; color: #245cdb; }
#results-table .listing-title a { display: block; overflow: hidden; text-overflow: ellipsis; text-decoration: none; font-weight: 600; }
#results-table .listing-title a:hover { text-decoration: underline; }
#results-table .badge { background: #edf2f8 !important; color: #526078 !important; font-weight: 500; padding: .45rem .55rem; }
#results-table .photo-cell { padding-top: .6rem; padding-bottom: .6rem; }
.car-thumbnail { position: relative; display: block; width: 84px; height: 60px; border-radius: .5rem; overflow: hidden; background: #edf2f7; }
.car-thumbnail img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.photo-placeholder { display: flex; height: 100%; flex-direction: column; justify-content: center; align-items: center; gap: 1px; font-size: .6rem; color: #687990; }
.btn-check + .btn { white-space: nowrap; }
:focus-visible { outline: 3px solid #7ca1ef; outline-offset: 2px; }
.legal-body { max-width: 70ch; }
.legal-body p, .legal-body ul { line-height: 1.7; }
.legal-body h2 { margin-top: 2rem; }
.site-choices { padding: 1rem; background: #f7f9fc; border: 1px solid #e0e6ef; border-radius: .65rem; }
.site-choice { font-size: .85rem; background: #fff; }
.btn-check:checked + .site-choice::before { content: '\2713'; margin-right: .4rem; }
.criteria-site-card .card-header { background: #f8fafd; border-left: 3px solid #245cdb; }
.criteria-site-card .table { font-size: .85rem; }
.criteria-site-card th { color: #627086; font-size: .75rem; white-space: nowrap; }
.criteria-site-card td, .criteria-site-card th { padding: .8rem; }
.criteria-site-card td:not([colspan]) { white-space: nowrap; }
@media (max-width: 575.98px) {
    .summary-card { padding: 1rem; }
    .summary-label { align-items: flex-start; font-size: .75rem; }
    .summary-dot { flex-shrink: 0; margin-top: .3rem; }
    .summary-value { font-size: 1.8rem; }
    .summary-time { font-size: 1.25rem; line-height: 1.5; }
    .results-page { padding-left: 12px; padding-right: 12px; }
    .results-page .card-body { padding: 1rem; }
    #search-box { min-width: 0; }
    .navbar-brand { margin-right: .5rem; }
}
