/*
 * PADDOCK SQUARE Public Design System Polish Layer v0.8.42
 * Scope: public-page content only. Header / footer are intentionally excluded.
 * Goal: raise visual quality without changing page IA, data contracts, or responsive structure.
 */

.paddock-square-public-page{
  --ps-ui-surface:#fff;
  --ps-ui-surface-soft:#F7F9F8;
  --ps-ui-surface-soft-2:#FBFCFB;
  --ps-ui-text:#1D2A25;
  --ps-ui-muted:#65736D;
  --ps-ui-border:#D8E0DC;
  --ps-ui-border-strong:#BAC8C1;
  --ps-ui-shadow-card:0 1px 2px rgba(19,45,36,.035),0 8px 24px rgba(19,45,36,.045);
  --ps-ui-shadow-hover:0 2px 4px rgba(19,45,36,.05),0 12px 28px rgba(19,45,36,.07);
  --ps-ui-radius-xs:6px;
  --ps-ui-radius-sm:8px;
  --ps-ui-radius-md:12px;
  --ps-ui-radius-lg:16px;
  --ps-ui-focus:rgba(4,51,44,.18);
  --ps-ui-accent:var(--main,#04332C);
  --ps-ui-accent-soft:#EDF5F2;
}
.paddock-square-public-page.ps-mode-local,
.paddock-square-public-page[data-mode="local"],
.paddock-square-public-page[data-theme="local"]{
  --ps-ui-focus:rgba(74,51,38,.18);
  --ps-ui-accent-soft:#F6F0EB;
}

/* ---------- Core type & rhythm ---------- */
.paddock-square-public-page main{
  color:var(--ps-ui-text);
  font-kerning:normal;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
.paddock-square-public-page main p,
.paddock-square-public-page main li,
.paddock-square-public-page main dd{
  line-height:1.72;
}
.paddock-square-public-page main h1,
.paddock-square-public-page main h2,
.paddock-square-public-page main h3{
  text-wrap:balance;
}
.paddock-square-public-page main .page-head h1,
.paddock-square-public-page main .page-title h1,
.paddock-square-public-page main .race-summary h1,
.paddock-square-public-page main .race-head h1{
  letter-spacing:.005em!important;
  font-weight:800!important;
}
.paddock-square-public-page main .section-heading h2,
.paddock-square-public-page main .section-head h2,
.paddock-square-public-page main .panel-head h2,
.paddock-square-public-page main .table-headline h2,
.paddock-square-public-page main .section-title{
  letter-spacing:.005em!important;
  font-weight:800!important;
}
.paddock-square-public-page main .breadcrumb,
.paddock-square-public-page main .crumb{
  color:var(--ps-ui-muted)!important;
  font-weight:600;
}

/* ---------- Links & keyboard focus ---------- */
.paddock-square-public-page main a{
  text-underline-offset:3px;
  text-decoration-thickness:1px;
}
@media(hover:hover){
  .paddock-square-public-page main a:hover{
    opacity:1!important;
  }
  .paddock-square-public-page main .text-link:hover,
  .paddock-square-public-page main .subtle-link:hover,
  .paddock-square-public-page main .card-link:hover,
  .paddock-square-public-page main .guide-link:hover{
    text-decoration:underline;
  }
}
.paddock-square-public-page main :is(a,button,input,select,textarea,summary):focus-visible,
.ps-view-top :is(.flash-section,.content-section,.db-section) :is(a,button,input,select,textarea):focus-visible{
  outline:3px solid var(--ps-ui-focus)!important;
  outline-offset:2px!important;
}

/* ---------- Standard surfaces ---------- */
.paddock-square-public-page main :is(
  .race-selector,.search-panel,.horse-search,.filter-section,.selected-panel,
  .condition-box,.panel,.venue-card,.route-card,.summary-card,.chart-card,
  .comparison-table-card,.help-panel,.privacy-box,.complete-panel,.auth-card,
  .intro-panel,.brand-panel,.definition,.feature,.square-note,.start-panel,
  .note-box,.important-box,.toc,.rules,.page-guide-item,.after-card
){
  border-color:var(--ps-ui-border)!important;
  border-radius:var(--ps-ui-radius-md)!important;
}
.paddock-square-public-page main :is(
  .panel,.venue-card,.route-card,.summary-card,.chart-card,.comparison-table-card,
  .help-panel,.complete-panel,.auth-card,.feature,.page-guide-item
){
  box-shadow:var(--ps-ui-shadow-card);
}
@media(hover:hover){
  .paddock-square-public-page main :is(.venue-card,.route-card,.page-guide-item){
    transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease;
  }
  .paddock-square-public-page main :is(.venue-card,.route-card,.page-guide-item):hover{
    border-color:var(--ps-ui-border-strong)!important;
    box-shadow:var(--ps-ui-shadow-hover);
  }
}

/* ---------- Tables: neutral, readable, data-first ---------- */
.paddock-square-public-page main table{
  font-variant-numeric:tabular-nums;
}
.paddock-square-public-page main :is(
  .table-wrap,.data-table-wrap,.comparison-table-card,.desktop-results,
  .desktop-history,.stats-table-wrap
){
  border-color:var(--ps-ui-border)!important;
  border-radius:var(--ps-ui-radius-md)!important;
}
.paddock-square-public-page main :is(
  .race-table,.recent-table,.quick-table,.results-table,.data-table,.ps-compare-table,.payout,.stats-table
) th{
  background:#F4F7F5!important;
  color:#42514B!important;
  border-color:var(--ps-ui-border)!important;
  font-weight:800!important;
  letter-spacing:.01em;
}
.paddock-square-public-page main :is(
  .race-table,.recent-table,.quick-table,.results-table,.data-table,.ps-compare-table,.payout,.stats-table
) td{
  border-color:#E4EAE7!important;
}
.paddock-square-public-page main :is(.race-table,.recent-table,.quick-table,.results-table,.data-table,.ps-compare-table) tbody tr:nth-child(even) td{
  background:#FBFCFB;
}
@media(hover:hover){
  .paddock-square-public-page main :is(.race-table,.recent-table,.quick-table,.results-table,.data-table,.ps-compare-table) tbody tr:hover td{
    background:#F5F8F6!important;
  }
}

/* Keep sticky horse-number columns visually connected to their row. */
.paddock-square-public-page main .race-table tbody tr:nth-child(even) td:first-child{
  background:#FBFCFB!important;
}
@media(hover:hover){
  .paddock-square-public-page main .race-table tbody tr:hover td:first-child{
    background:#F5F8F6!important;
  }
}

/* ---------- Frame number badges ---------- */
.paddock-square-public-page main :is(.frame-no,.frame-badge){
  border-radius:7px!important;
  border-width:1px!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),0 1px 2px rgba(0,0,0,.05);
  font-variant-numeric:tabular-nums;
}

/* ---------- Evaluation marks ---------- */
.paddock-square-public-page main .eval,
.ps-view-top :is(.flash-section,.content-section) .eval{
  font-weight:850!important;
  letter-spacing:-.02em;
}

/* ---------- Buttons ---------- */
.paddock-square-public-page main :is(
  .primary-btn,.primary-link,.search-btn,.search-button,.submit-button,
  .button-primary,.route-button.primary,.empty-action.primary
),
.paddock-square-public-page main .auth-button:not(.secondary),
.ps-view-top :is(.content-section,.db-section) :is(.primary-btn,.search-btn){
  border:1px solid var(--ps-ui-accent)!important;
  border-radius:9px!important;
  background:var(--ps-ui-accent)!important;
  color:#fff!important;
  font-weight:800!important;
  box-shadow:0 1px 2px rgba(15,40,32,.08);
  transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.paddock-square-public-page main :is(
  .secondary-btn,.secondary-link,.reset-button,.button-secondary,.route-button
),
.paddock-square-public-page main .auth-button.secondary{
  border:1px solid var(--ps-ui-border-strong)!important;
  border-radius:9px!important;
  background:#fff!important;
  color:var(--ps-ui-accent)!important;
  font-weight:750!important;
  box-shadow:none!important;
}
@media(hover:hover){
  .paddock-square-public-page main :is(
    .primary-btn,.primary-link,.search-btn,.search-button,.submit-button,
    .button-primary,.route-button.primary,.empty-action.primary
  ):hover,
  .paddock-square-public-page main .auth-button:not(.secondary):hover,
  .ps-view-top :is(.content-section,.db-section) :is(.primary-btn,.search-btn):hover{
    filter:none!important;
    box-shadow:0 4px 12px rgba(15,40,32,.14);
  }
  .paddock-square-public-page main :is(.secondary-btn,.secondary-link,.reset-button,.button-secondary,.route-button):hover,
  .paddock-square-public-page main .auth-button.secondary:hover{
    background:var(--ps-ui-accent-soft)!important;
    border-color:var(--ps-ui-accent)!important;
  }
}

/* Compact utility buttons remain compact, but share the same finish. */
.paddock-square-public-page main :is(.icon-btn,.comment-btn,.month-nav,.mobile-more,.clear-search){
  border-radius:var(--ps-ui-radius-sm)!important;
  border-color:var(--ps-ui-border-strong)!important;
  box-shadow:none!important;
}

/* ---------- Form controls ---------- */
.paddock-square-public-page main input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.paddock-square-public-page main select,
.paddock-square-public-page main textarea,
.ps-view-top :is(.content-section,.db-section) input,
.ps-view-top :is(.content-section,.db-section) select{
  border-color:var(--ps-ui-border-strong)!important;
  border-radius:9px!important;
  background:#fff!important;
  color:var(--ps-ui-text)!important;
  box-shadow:inset 0 1px 1px rgba(18,38,31,.025)!important;
  transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease;
}
.paddock-square-public-page main input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):focus,
.paddock-square-public-page main select:focus,
.paddock-square-public-page main textarea:focus,
.ps-view-top :is(.content-section,.db-section) input:focus,
.ps-view-top :is(.content-section,.db-section) select:focus{
  border-color:var(--ps-ui-accent)!important;
  outline:0!important;
  box-shadow:0 0 0 3px var(--ps-ui-focus)!important;
}
.paddock-square-public-page main :is(.field-label,.selector-label,.selected-label){
  color:#34443D;
  font-weight:800!important;
}

/* ---------- Tabs, selectors and chips ---------- */
.paddock-square-public-page main :is(.venue-tab,.race-chip,.view-tabs .tab-btn,.quick-period-button,.choice span,.racecourse-choice span){
  border-radius:8px!important;
}
.paddock-square-public-page main :is(.condition-chip,.selected-chip,.chip,.status-chip,.status-pill,.result-chip,.venue-pill){
  border-radius:999px!important;
  font-weight:750!important;
}
.paddock-square-public-page main .main-tabs{
  gap:0!important;
}
.paddock-square-public-page main .main-tabs .tab-btn{
  min-height:44px;
  padding-inline:16px!important;
}
.paddock-square-public-page main .main-tabs .tab-btn.active{
  font-weight:850!important;
}

/* ---------- Race page refinement ---------- */
.paddock-square-public-page main .race-summary{
  border-bottom-color:var(--ps-ui-border)!important;
}
.paddock-square-public-page main :is(.mobile-card,.recent-card){
  border-color:var(--ps-ui-border)!important;
  border-radius:var(--ps-ui-radius-md)!important;
  box-shadow:0 1px 3px rgba(19,45,36,.035);
}
.paddock-square-public-page main :is(.horse-name,.quick-horse,.recent-card-name,.m-horse1){
  font-weight:800!important;
}
.paddock-square-public-page main :is(.horse-sub,.m-horse2,.race-meta,.selector-label){
  color:var(--ps-ui-muted)!important;
}
.paddock-square-public-page main .shortbox{
  border-color:var(--ps-ui-border)!important;
  border-radius:9px!important;
  background:var(--ps-ui-surface-soft)!important;
}
.paddock-square-public-page main .modal{
  border:1px solid var(--ps-ui-border);
  border-radius:var(--ps-ui-radius-lg)!important;
  box-shadow:0 24px 70px rgba(12,31,25,.20)!important;
}

/* ---------- Result / condition result data ---------- */
.paddock-square-public-page main .summary-card{
  background:#fff!important;
}
.paddock-square-public-page main .summary-card.primary,
.paddock-square-public-page main .summary-card.emphasis{
  background:var(--ps-ui-accent-soft)!important;
  border-color:var(--ps-ui-border-strong)!important;
}
.paddock-square-public-page main .summary-value{
  letter-spacing:-.025em!important;
}
.paddock-square-public-page main :is(.result-count,.history-count,.count-label){
  color:var(--ps-ui-muted)!important;
  font-weight:700;
}

/* ---------- Watchlist ---------- */
.paddock-square-public-page main .watch-list-head{
  background:#F4F7F5!important;
  border-color:var(--ps-ui-border)!important;
}
.paddock-square-public-page main .watch-list > *{
  border-color:#E4EAE7!important;
}

/* ---------- DB / search ---------- */
.paddock-square-public-page main :is(.search-panel,.horse-search,.filter-section,.condition-box){
  background:#fff!important;
}
.paddock-square-public-page main .selected-panel{
  background:var(--ps-ui-surface-soft)!important;
}
.paddock-square-public-page main .route-card{
  background:#fff!important;
}

/* ---------- Long-form / editorial pages ---------- */
.paddock-square-public-page main .read-wrap{
  line-height:1.82;
}
.paddock-square-public-page main .read-wrap :is(.section,.term-section){
  border-bottom-color:#E7ECE9!important;
}
.paddock-square-public-page main .read-wrap :is(.section,.term-section) h2{
  letter-spacing:.005em!important;
  line-height:1.45!important;
}
.paddock-square-public-page main .read-wrap :is(.terms-lead,.terms-sub,.disclaimer-lead,.disclaimer-sub,.section-lead,.contact-lead){
  color:var(--ps-ui-muted)!important;
}
.paddock-square-public-page main :is(.policy-note,.important-box,.note-box,.privacy-box){
  background:var(--ps-ui-surface-soft)!important;
  border-color:var(--ps-ui-border)!important;
}
.paddock-square-public-page main .toc{
  background:#FAFBFA!important;
  box-shadow:none!important;
}
.paddock-square-public-page main .toc a{
  text-decoration:none;
}
@media(hover:hover){
  .paddock-square-public-page main .toc a:hover{text-decoration:underline}
}

/* ---------- Top page (content only; header/footer/mode switch untouched) ---------- */
.ps-view-top :is(.flash-section,.content-section,.db-section){
  --ps-ui-accent:var(--main,#04332C);
  --ps-ui-border:#D8E0DC;
  --ps-ui-border-strong:#BAC8C1;
  --ps-ui-focus:rgba(4,51,44,.18);
}
.ps-view-top[data-mode="local"] :is(.flash-section,.content-section,.db-section),
.ps-view-top[data-theme="local"] :is(.flash-section,.content-section,.db-section){
  --ps-ui-focus:rgba(74,51,38,.18);
}
.ps-view-top :is(.flash-section,.content-section,.db-section) .race-card,
.ps-view-top :is(.content-section,.db-section) :is(.panel,.db-box,.update-wrap){
  border-color:var(--ps-ui-border)!important;
  border-radius:var(--ps-ui-radius-md,12px)!important;
  box-shadow:var(--ps-ui-shadow-card,0 1px 2px rgba(19,45,36,.035),0 8px 24px rgba(19,45,36,.045));
}
.ps-view-top .flash-section .race-card{
  box-shadow:0 4px 18px rgba(18,38,31,.09)!important;
}
.ps-view-top .flash-section .horse-row{
  border-bottom-color:#E8EDEB!important;
}
.ps-view-top :is(.content-section,.db-section) .panel-head h2,
.ps-view-top .db-section .db-title{
  letter-spacing:.005em!important;
}
.ps-view-top .content-section .stats-table th{
  background:#F4F7F5!important;
  color:#42514B!important;
  font-weight:800!important;
}
.ps-view-top .content-section .stats-table td{
  border-color:#E4EAE7!important;
  font-variant-numeric:tabular-nums;
}
.ps-view-top .db-section .db-box{
  background:#fff!important;
}

/* ---------- Responsive polish ---------- */
@media(max-width:767px){
  .paddock-square-public-page main{
    font-size:14px;
  }
  .paddock-square-public-page main :is(.page-head h1,.page-title h1){
    letter-spacing:0!important;
  }
  .paddock-square-public-page main :is(.panel,.venue-card,.route-card,.summary-card,.chart-card,.comparison-table-card,.help-panel,.auth-card,.feature,.page-guide-item){
    box-shadow:0 1px 2px rgba(19,45,36,.035);
  }
  .paddock-square-public-page main :is(.primary-btn,.secondary-btn,.submit-button,.reset-button,.search-button,.auth-button,.button){
    min-height:44px;
  }
  .paddock-square-public-page main input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  .paddock-square-public-page main select{
    min-height:44px;
  }
  .paddock-square-public-page main :is(.mobile-card,.recent-card){
    margin-bottom:10px!important;
  }
  .ps-view-top :is(.flash-section,.content-section,.db-section) .race-card,
  .ps-view-top :is(.content-section,.db-section) :is(.panel,.db-box,.update-wrap){
    box-shadow:0 1px 2px rgba(19,45,36,.04)!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .paddock-square-public-page main *,
  .ps-view-top :is(.flash-section,.content-section,.db-section) *{
    transition-duration:.01ms!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
  }
}
