/* Readable dashboard surfaces. The legal footer is the only small-text exception. */
:root { --text:#243a32; --text-2:#475b50; --text-muted:#475b50; --brass:#68512c; --border:#cbd5cd; }
body { font-size:18px; line-height:1.6; }
button,input,select { font:inherit; }
a { text-underline-offset:4px; }
:focus-visible { outline:3px solid #1747aa; outline-offset:4px; }
.skip-link { position:absolute;top:-100px;left:24px;z-index:100;background:#fff;color:#234d38;padding:12px 20px;font-weight:600; }
.skip-link:focus { top:12px; }
.dashboard-brand { text-decoration:none;display:inline-block;font-size:1.75rem; }
.site-tagline { font-size:1rem;letter-spacing:0;text-transform:none; }
.sf-header-actions { gap:12px; }
.header-auth button,.sf-nav-link { min-height:48px;font-size:1rem; }
.header-user-email { font-size:1rem;overflow-wrap:anywhere; }
#app { max-width:1400px;padding:0 32px 48px; }
.primary-nav { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:22px 0;border:0;overflow:visible; }
.primary-nav a { display:flex;align-items:center;justify-content:center;gap:10px;min-height:60px;padding:14px 18px;border:1px solid #9aad9f;border-radius:7px;background:#fff;color:#28563e;font-size:1.2rem;font-weight:600;line-height:1.4;text-align:center;text-decoration:none;white-space:normal; }
.primary-nav a:hover { background:#eaf0e8; }
.primary-nav a[aria-current] { background:#285d45;color:#fff;border-color:#285d45; }
.primary-nav .pro-badge { display:none; }
.explorer-top { padding:18px 0 28px;gap:32px; }
.eyebrow { font-size:1rem;letter-spacing:0; }
#page-heading { font-size:2.25rem; }
#page-description { font-size:1.125rem;line-height:1.65; }
.quick-search { flex-basis:320px;min-width:0; }
body[data-view=overview] .quick-search { flex-basis:280px; }
body[data-view=sale] .explorer-top { display:none; }
.quick-search label,.overview-breed-label,.directory-filters label,.directory-query,.control-label,.paid-filter-group label,.lot-tools label { font-size:1rem;font-weight:600;line-height:1.5;letter-spacing:0;text-transform:none; }
.quick-search input,.overview-toolbar select,#directory-form input,#directory-form select,.date-input,.filter-text-input,.select-input,.lot-tools input,.lot-tools select { min-height:52px;height:auto;font-size:1.125rem;padding:12px;border:1px solid #829488;background:#fff;color:var(--text);border-radius:6px;max-width:100%; }
input::placeholder { color:#526157;opacity:1; }
#quick-results span { font-size:1.125rem; }
#quick-results small,#quick-all { font-size:1rem; }
#quick-results li { padding:16px; }
#directory-form { padding:24px; }
.directory-filters { gap:18px; }
.btn-primary,.btn-secondary,.back-btn,.btn-filter,.tab-btn,.landing-tab-btn,.date-preset-btn,.link-btn { min-height:48px;font-size:1rem;padding:10px 16px;line-height:1.5; }
button { touch-action:manipulation; }
.directory-caption,#directory-pagination { font-size:1rem; }
.sale-row { display:grid;grid-template-columns:86px minmax(0,1fr) minmax(280px,360px);gap:18px 24px;padding:26px; }
.sale-date { width:auto;font-size:1rem;color:var(--text-2); }
.sale-date strong { font-size:1.125rem; }
.sale-row h3 { font-size:1.3rem;line-height:1.4; }
.sale-row h3 a { text-decoration:underline; }
.sale-row p,.sale-tags span { font-size:1rem; }
.sale-tags { gap:8px; }
.sale-tags span { padding:3px 8px; }
.sale-row-action { grid-column:2/-1;justify-self:start;margin:0;min-height:48px;padding:10px 0;font-size:1.125rem;text-decoration:underline; }
.directory-stats { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0; }
.directory-stats dt { font-size:1rem;color:var(--text-2); }
.directory-stats dd { margin:6px 0 0;font-size:1.3rem;font-weight:600;color:#234f3a;font-variant-numeric:tabular-nums; }
.overview-toolbar { gap:22px;flex-wrap:wrap;padding:24px; }
.overview-breed-label { min-width:180px; }
.reporting-period-label { flex:1;min-width:260px; }
#market-more-filters { margin-left:0; }
summary { font-size:1rem;min-height:48px;line-height:1.5;padding:12px 0;color:var(--text); }
.market-filter-summary,.collection-freshness,.reporting-coverage,.reporting-scope { font-size:1rem;line-height:1.6;color:var(--text-2); }
.market-filter-summary { font-weight:600; }
.landing-section { padding:28px 0; }
.landing-section-title,.section-title { font-size:1.5rem;line-height:1.35;color:var(--text);letter-spacing:0;text-transform:none; }
.stats-grid.landing-stats,.stats-grid.report-stats { grid-template-columns:repeat(4,minmax(0,1fr));gap:18px; }
.stat-card { padding:24px; }
.stat-label { font-size:1rem;letter-spacing:0;text-transform:none;font-weight:500;color:var(--text-2); }
.stat-value,.stat-value.sm { font-size:clamp(1.5rem,2.2vw,2rem);line-height:1.3;overflow-wrap:anywhere; }
.stat-sub { font-size:1rem;line-height:1.6;color:var(--text-2); }
.stat-sub .rights-note { display:block; }
.leaderboard-grid { grid-template-columns:minmax(0,1fr);gap:36px; }
.lb-table-title { font-size:1.25rem;color:var(--text);margin:10px 0 16px; }
.table-wrap,.table-container { max-width:100%; }
.data-table { width:100%;table-layout:auto; }
.data-table th,.data-table td { padding:16px;font-size:1rem;line-height:1.6;white-space:normal;overflow-wrap:anywhere; }
.data-table th { font-weight:600;color:var(--text-2);text-transform:none;letter-spacing:0; }
.data-table td { color:var(--text); }
.data-table td.num { white-space:normal; }
.data-table td a { font-weight:600;color:#28563e; }
.table-detail { display:block;margin-top:6px;font-size:1rem;color:var(--text-2);font-weight:400; }
.data-table .table-detail { font-size:1rem !important; }
.rights-note { font-size:1rem !important;color:var(--text-2);white-space:normal;max-width:40ch; }
.data-table .num .rights-note { margin-left:auto; }
.rank-num { font-size:1.125rem; }
.report-jumps { display:flex;flex-wrap:wrap;gap:12px;margin:20px 0; }
.report-jumps button { padding:10px 18px;min-height:48px;border:1px solid #98ac9d;background:white;border-radius:6px;color:#28563e;font-weight:600;font-size:1rem;cursor:pointer; }
.report-jumps button:hover { background:#eaf0e8; }
.report-section { margin:36px 0;scroll-margin-top:24px; }
.report-section h2 { font:600 1.65rem/1.4 'Bitter',Georgia,serif;margin:0 0 16px;color:var(--text); }
.report-section h2.report-subheading { margin-top:36px; }
.report-note { font-size:1rem;line-height:1.65;color:var(--text-2);margin:16px 0; }
.lot-tools { display:flex;gap:20px;flex-wrap:wrap;margin:24px 0 16px; }
.lot-tools label { display:flex;flex-direction:column;gap:8px;flex:1;min-width:220px; }
.lot-tools label:first-child { flex:2; }
.report-lot-table th:first-child { width:100px; }
.report-lot-table th:last-child { width:220px; }
.report-lot-table td { vertical-align:top; }
.report-extra,.sale-analysis-options { border:1px solid var(--border);border-radius:7px;background:#fff;padding:0 20px;margin:20px 0; }
.sale-analysis-options .tabs { flex-wrap:wrap;gap:8px;padding:12px 0; }
.tabs .tab-btn { font-size:1rem;white-space:normal;text-transform:none; }
.sale-name-bar h1 { font-size:2rem;line-height:1.3; }
.sale-meta-bar,.meta-chip { font-size:1rem;line-height:1.6; }
.back-btn { font-size:1.125rem; }
.chart-bar-count,.chart-bar-label,.chart-label { font-size:1rem; }
.chart-bars { min-width:0; }
#analytics-intro { margin:20px 0 24px; }
#analytics-intro h2 { font:600 1.65rem/1.4 'Bitter',Georgia,serif;margin-bottom:12px; }
#analytics-intro p { max-width:850px; }
body[data-view=analytics] #landing-tabs { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;overflow:visible; }
body[data-view=analytics] .landing-tab-btn { text-align:left;display:flex;flex-direction:column;align-items:flex-start;gap:12px;white-space:normal;padding:24px;border:1px solid #9cad9d;border-radius:8px;background:white;color:#28563e; }
body[data-view=analytics] .landing-tab-btn.active { background:#285d45;color:#fff;border-color:#285d45; }
body[data-view=analytics] .landing-tab-btn strong { font:600 1.25rem/1.35 'Bitter',Georgia,serif; }
.analysis-description { font-size:1rem;font-weight:400;line-height:1.6;text-transform:none; }
body[data-view=analytics] .landing-tab-btn[data-panel=overview] { display:none; }
.paid-filter-row { gap:18px;flex-wrap:wrap; }
.paid-filter-group { min-width:180px; }
.locked-panel { padding:32px;text-align:left; }
.locked-icon { display:none; }
.locked-message { font-size:1.125rem;color:var(--text);line-height:1.7;max-width:800px; }
.locked-panel .link-btn { margin:12px !important; }
/* Older analysis renderers contain inline small labels; keep those readable too. */
#app :is(.data-table,.stat-card,.pro-teaser,.paid-panel,.consignor-card,.top-seller-row,.buyer-split-card) :is(p,small,span,div,label) { font-size:max(1rem,1em); }
#app [style*="font-size:0."],#app [style*="font-size: 0."] { font-size:1rem !important; }
.consignor-stat-label,.consignor-stat-value,.seller-details,.seller-price,.buyer-split-label,.buyer-split-count,.geo-name,.geo-count,.teaser-login-row,.pro-teaser-feature-desc,.pro-badge { font-size:1rem; }
#app .stat-card .stat-value { font-size:clamp(1.5rem,2.2vw,2rem); }
#app .stat-card .stat-label,#app .stat-card .stat-sub { font-size:1rem; }
.tab-panel { padding:0; }
.meta-divider,.bucket-count,.bucket-label { font-size:1rem; }
.bucket-label { white-space:normal;overflow:visible;line-height:1.4; }
.bucket-count { height:24px;line-height:24px; }
.sf-sale-promo-copy > p:last-child,.sf-sale-promo p,.sf-sale-promo .sf-eyebrow,.sf-sale-promo-action p,.sf-sale-promo .sf-button { font-size:1rem; }
.pro-teaser-heading,.consignor-name,.seller-name { font-size:1.25rem; }
.loading,.empty-state { font-size:1.125rem; }
.form-label,.form-input,.auth-toggle,.pricing-footer-note { font-size:1rem; }
footer p { font-size:1rem; }
footer .footer-disclaimer { font-size:.875rem;color:#56605a;line-height:1.65; }
@media(max-width:1050px) {
  .sale-row { grid-template-columns:80px minmax(0,1fr); }
  .directory-stats { grid-column:2;max-width:480px;width:100%; }
  .sale-row-action { grid-column:2; }
  .stats-grid.landing-stats,.stats-grid.report-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .quick-search { flex-basis:280px; }
  body[data-view=analytics] #landing-tabs { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:800px) {
  #app { padding:0 20px 32px; }
  .primary-nav { grid-template-columns:minmax(0,1fr);gap:8px;padding:18px 0; }
  .primary-nav a { justify-content:flex-start;min-height:52px;font-size:1.125rem;padding:12px 18px; }
  .explorer-top { display:block;padding:12px 0 24px; }
  .quick-search { max-width:100%;margin-top:24px; }
  #page-heading { font-size:2rem; }
  .table-wrap { overflow:visible; }
  .data-table,.data-table tbody,.data-table tr { display:block;width:100%; }
  .data-table thead { position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0); }
  .data-table tbody tr { padding:18px;border-bottom:1px solid var(--border); }
  .data-table tbody td { display:grid;grid-template-columns:minmax(95px,1fr) minmax(0,2fr);gap:6px 14px;width:auto !important;min-width:0 !important;padding:6px 0;border:0;text-align:left; }
  .data-table td::before { content:attr(data-label);font-weight:600;color:var(--text-2); }
  .data-table td.num { text-align:left; }
  .data-table td > * { grid-column:2;min-width:0; }
  .data-table td > :first-child { grid-row:1; }
  .data-table td[colspan] { display:block; }
  .data-table td[colspan]::before { display:none; }
  .data-table .num .rights-note { margin-left:0; }
  .report-lot-table tbody td { grid-template-columns:85px minmax(0,1fr); }
  .directory-filters { flex-wrap:wrap; }
  .overview-toolbar { padding:20px;gap:16px; }
  .overview-breed-label,.reporting-period-label { flex:1 1 100%;min-width:0;width:100%; }
  #market-more-filters { width:100%; }
  #market-more-filters .date-filter-bar { position:static;box-shadow:none;min-width:0;width:100%;margin-top:12px; }
  .paid-filter-group { min-width:0;flex:1 1 100% !important; }
  .paid-filter-bar { padding:18px; }
  .paid-filter-row { display:flex; }
  .chart-bars { gap:8px; }
  .bucket-bars { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));height:auto;gap:24px 12px; }
  .bucket-col { height:160px; }
  .chart-bar-label { font-size:1rem; }
  .sf-header-actions { width:100%; }
  .header-auth { flex-wrap:wrap; }
  .sf-sale-promo { padding:20px; }
  .sf-sale-promo-copy > p:last-child,.sf-sale-promo p,.sf-sale-promo .sf-eyebrow,.sf-sale-promo-action p { font-size:1rem; }
}
@media(max-width:480px) {
  .sale-row { padding:20px;grid-template-columns:minmax(0,1fr);gap:12px; }
  .sale-date { display:flex;gap:8px;border:0;padding:0; }
  .sale-date strong { margin:0; }
  .directory-stats,.sale-row-action { grid-column:1; }
  .directory-stats { gap:12px;grid-template-columns:repeat(2,minmax(0,1fr)); }
  .directory-stats div:first-child { grid-column:1/-1;display:flex;gap:12px;align-items:center; }
  .directory-stats div:first-child dd { margin:0; }
  .sale-row-copy { flex-basis:auto; }
  .directory-caption { flex-wrap:wrap; }
  #directory-pagination { padding:24px 0;gap:12px;flex-wrap:wrap; }
  .stat-card { padding:18px; }
  .stats-grid.landing-stats,.stats-grid.report-stats { grid-template-columns:minmax(0,1fr); }
  .lot-tools label { min-width:0;flex:1 1 100%; }
  .sale-name-bar h1 { font-size:1.65rem; }
  .report-jumps { gap:8px; }
  .report-jumps button { padding:10px 12px; }
  .data-table tbody td { grid-template-columns:85px minmax(0,1fr); }
}
