/* /courses — the star atlas */
.ca-head{padding-top:clamp(40px,7vw,88px);padding-bottom:clamp(28px,4vw,48px)}
.ca-coord,.ca-plate__code{font:500 .8rem/1.4 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--teal);margin:0 0 14px}
.ca-head h1{max-width:18ch}
.ca-lead{max-width:62ch;font-size:clamp(1.05rem,1.5vw,1.2rem);color:var(--muted)}

.ca-search{margin:28px 0 22px;max-width:640px}
.ca-search label{display:block;font:500 .8rem/1.4 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--teal);margin-bottom:8px}
.ca-search__row{display:flex;gap:10px}
.ca-search input[type=search]{flex:1;min-width:0;min-height:48px;padding:10px 14px;background:var(--bg-2);color:var(--text);border:1px solid var(--line-2);border-radius:2px;font:400 1rem/1.4 var(--font-body)}
.ca-search input[type=search]::placeholder{color:var(--muted);opacity:.8}
.ca-search input[type=search]:focus-visible{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold)}

.ca-filters{display:grid;gap:12px;padding-top:18px;border-top:1px solid var(--line)}
.ca-filters__row{display:grid;grid-template-columns:72px 1fr;gap:10px;align-items:start}
.ca-filters__label{font:500 .8rem/44px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.ca-filters ul{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.ca-chipcode{color:var(--gold)}

/* results */
.ca-results{padding-bottom:clamp(56px,8vw,104px)}
.ca-count{font-size:clamp(1.4rem,2.6vw,2rem);margin:12px 0 4px}
.ca-count__q{color:var(--gold);font-style:italic;font-weight:400}
.ca-reset{margin:0 0 28px}
.ca-empty{max-width:60ch;padding:28px;border:1px dashed var(--line-2);border-radius:var(--r);background:var(--bg-2)}

/* shelf plates */
.ca-plate{padding-block:clamp(48px,7vw,96px)}
.ca-plate--alt{background:var(--bg-2);border-block:1px solid var(--line)}
.ca-plate__head{position:relative;display:grid;grid-template-columns:minmax(0,1fr);max-width:760px;margin-bottom:clamp(28px,4vw,44px);padding-top:clamp(24px,4vw,48px)}
.ca-plate__num{position:absolute;right:0;top:-.15em;font:600 clamp(7rem,18vw,15rem)/1 var(--font-head);color:var(--gold);opacity:.15;pointer-events:none;user-select:none}
.ca-plate__head h2{position:relative;margin-bottom:.35em}
.ca-plate__lead{position:relative;max-width:58ch;font-size:1.1rem}
.ca-plate__meta{position:relative;margin:0;font:400 .85rem var(--font-mono);font-variant-numeric:tabular-nums;color:var(--muted)}

/* asymmetric grid: the route opens wide, courses fill around it */
.ca-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,24px);align-items:stretch}
.ca-grid .ca-tile--route{grid-column:span 2}
.ca-grid--flat .ca-tile--route{grid-column:span 2}
.ca-tile .chips{gap:6px}
.ca-tile__value{margin:0;font-size:.98rem}
.ca-tile__value .price{font-size:1.05rem}
.ca-tile__acts{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px 14px}

@media (max-width:980px){
  .ca-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .ca-grid{grid-template-columns:minmax(0,1fr)}
  .ca-grid .ca-tile--route,.ca-grid--flat .ca-tile--route{grid-column:auto}
  .ca-filters__row{grid-template-columns:1fr;gap:4px}
  .ca-filters__label{line-height:1.4}
  .ca-search__row{flex-wrap:wrap}
  .ca-search__row .btn{flex:1 0 100%}
}
