/* Styles of the races calendar pages (/carreras/*), rendered by the
   carreras-page function. The shared look (tokens, header, footer) comes from
   /site.css; this file only has what is specific to the calendar. */
a{text-decoration:none;color:inherit;}
[hidden]{display:none !important;}

.mini-lang a[aria-current]{color:var(--text);font-weight:700;}
.cr-disclaimer{max-width:560px;margin:0 auto 14px;font-size:11.5px;color:var(--muted2);line-height:1.6;}

/* page */
main{max-width:980px;margin:0 auto;padding:28px 16px 40px;}
h1{font-size:25px;font-weight:800;letter-spacing:-.4px;line-height:1.2;margin-bottom:8px;}
.cr-sub{font-size:14px;color:var(--muted);max-width:680px;margin-bottom:22px;line-height:1.6;}
.cr-crumbs{font-size:12px;color:var(--muted2);margin-bottom:14px;}
.cr-crumbs a:hover{color:var(--orange-ink);}

/* filters: on phones the four selects live behind a "Filtros" button so the
   first race is on screen right away (without JS they simply stay visible) */
.cr-controls{display:flex;flex-direction:column;margin-bottom:6px;}
.cr-search{order:0;position:relative;margin-bottom:12px;}
.cr-search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted2);pointer-events:none;}
.cr-search input{width:100%;height:44px;background:var(--s1);border:1px solid var(--border2);border-radius:12px;padding:0 14px 0 40px;font-size:16px;color:var(--text);font-family:inherit;-webkit-appearance:none;appearance:none;}
.cr-search input:focus{outline:2px solid var(--orange);outline-offset:1px;border-color:var(--orange);}
.cr-quick{order:1;display:flex;gap:8px;overflow-x:auto;margin:0 -16px 12px;padding:0 16px;scrollbar-width:none;}
.cr-quick::-webkit-scrollbar{display:none;}
.cr-chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;border-radius:20px;border:1px solid var(--border2);background:var(--s1);color:var(--text);font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;}
.cr-chip-n{font-size:11px;font-weight:800;color:var(--muted);}
.cr-chip[aria-pressed="true"]{background:var(--orange-btn);border-color:var(--orange-btn);color:#fff;}
.cr-chip[aria-pressed="true"] .cr-chip-n{color:#fff;}
.cr-note{color:var(--muted);}
.cr-bar{order:2;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 12px;font-size:13px;color:var(--muted);min-height:36px;}
.cr-bar-actions{display:flex;align-items:center;gap:6px;}
.cr-views{display:inline-flex;border:1px solid var(--border2);border-radius:20px;overflow:hidden;background:var(--s1);}
.cr-view{border:none;background:none;height:34px;padding:0 13px;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer;}
.cr-view[aria-pressed="true"]{background:var(--text);color:#fff;}
.cr-map{height:62vh;min-height:360px;border:1px solid var(--border);border-radius:14px;overflow:hidden;margin-bottom:8px;background:#e9e6dc;z-index:0;}
.cr-map-note{font-size:11.5px;color:var(--muted2);margin:0 2px 18px;}
.cr-pop b{display:block;font-size:14px;margin-bottom:2px;}
.cr-pop span{display:block;font-size:12px;color:var(--muted);}
.cr-pop a{display:inline-block;margin-top:6px;font-weight:700;color:var(--orange-ink);font-size:12.5px;}
.cr-clear{background:none;border:none;color:var(--orange-ink);font-weight:700;font-size:12.5px;cursor:pointer;padding:8px 6px;}
.cr-toggle{display:inline-flex;align-items:center;gap:7px;background:var(--s1);border:1px solid var(--border2);border-radius:20px;height:36px;padding:0 14px;font-size:13px;font-weight:700;color:var(--text);cursor:pointer;}
.cr-toggle[aria-expanded="true"]{border-color:var(--orange);color:var(--orange-ink);}
.cr-active{min-width:18px;height:18px;border-radius:9px;background:var(--orange-btn);color:#fff;font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;padding:0 5px;}
.cr-filters{order:3;display:grid;grid-template-columns:1fr 1fr;gap:10px;background:var(--s1);border:1px solid var(--border);border-radius:14px;padding:14px;margin-bottom:16px;}
.cr-js .cr-filters{display:none;}
.cr-js .cr-filters.open{display:grid;}
.cr-filters label{display:flex;flex-direction:column;gap:4px;font-size:10.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;}
.cr-filters select{background:var(--bg);border:1px solid var(--border2);border-radius:9px;padding:0 10px;height:40px;font-size:13.5px;color:var(--text);width:100%;}
@media(min-width:700px){
  main{padding:40px 24px 56px;}
  h1{font-size:30px;}
  .cr-filters,.cr-js .cr-filters{order:2;display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:10px;}
  .cr-bar{order:3;margin:6px 2px 18px;}
  .cr-quick{margin:0 0 12px;padding:0;flex-wrap:wrap;overflow:visible;}
  .cr-toggle{display:none;}
}
@media(max-width:699px){
  h1{font-size:22px;margin-bottom:6px;}
  .cr-sub{font-size:13.5px;margin-bottom:14px;}
  main{padding-top:20px;}
}

/* month groups and cards */
.cr-month{margin-bottom:28px;}
.cr-month h2{font-size:12.5px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:1.2px;margin-bottom:12px;display:flex;align-items:center;gap:12px;}
.cr-month h2::after{content:'';flex:1;height:1px;background:var(--border);}
.cr-list{display:flex;flex-direction:column;gap:12px;}
.cr-card{display:grid;grid-template-columns:58px 1fr;gap:14px;background:var(--s1);border:1px solid var(--border);border-radius:14px;padding:16px;}
.cr-card.is-past{opacity:.8;}
/* each race type gets its own accent, so a long list can be scanned by colour */
.cr-card{--tc:var(--muted2);border-left:4px solid var(--tc);}
.cr-card[data-tipo="trail"]{--tc:#2f9e44;--tcx:#237a35;}
.cr-card[data-tipo="ultra"]{--tc:#c0392b;--tcx:#b03225;}
.cr-card[data-tipo="aventura"]{--tc:#0d47a1;}
.cr-card[data-tipo="multietapa"]{--tc:#7b3fa0;--tcx:#6a3490;}
.cr-card[data-tipo="bici"]{--tc:#0b7a75;--tcx:#0b6b66;}
.cr-card .b-tipo{color:var(--tcx,var(--tc));background:color-mix(in srgb,var(--tc) 12%,#fff);}
.cr-body{position:relative;}
.cr-thumb{position:absolute;top:0;right:0;width:64px;height:64px;object-fit:cover;border-radius:10px;border:1px solid var(--border);background:var(--bg);}
.has-thumb .cr-name{padding-right:76px;}
.cr-banner{display:block;width:100%;max-height:220px;object-fit:cover;border-radius:12px;margin-bottom:16px;border:1px solid var(--border);background:var(--bg);}
.cr-date{text-align:center;padding-top:2px;}
.cr-date .d{font-size:25px;font-weight:800;line-height:1;letter-spacing:-.5px;}
.cr-date .m{font-size:11px;font-weight:800;text-transform:uppercase;color:var(--orange-ink);letter-spacing:.7px;margin-top:3px;}
.cr-body{min-width:0;display:flex;flex-direction:column;gap:7px;}
.cr-name{font-size:16px;font-weight:800;line-height:1.25;letter-spacing:-.2px;}
.cr-name a:hover{color:var(--orange-ink);}
.cr-when{font-size:12.5px;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;}
.cr-where{font-size:12.5px;color:var(--muted);}
.cr-chips{display:flex;flex-wrap:wrap;gap:6px;}
.cr-dists{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0;}
.cr-dt{display:inline-flex;flex-direction:column;justify-content:center;min-width:56px;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:6px 12px;line-height:1.15;}
.cr-dt b{font-size:18px;font-weight:800;letter-spacing:-.3px;}
.cr-dt b i{font-style:normal;font-size:12px;font-weight:700;color:var(--muted);margin-left:2px;}
.cr-dt small{font-size:11px;color:var(--muted);font-weight:600;margin-top:1px;}
.badge{display:inline-block;font-size:10.5px;font-weight:800;padding:3px 9px;border-radius:20px;white-space:nowrap;letter-spacing:.2px;}
.b-tipo{background:#f1f0ec;color:var(--muted);}
.b-est{background:#fff7e6;color:#8a5c00;border:1px dashed #e0b45a;}
.b-open{background:#e8f5e9;color:#1e7a32;}
.b-soon{background:#fdeee9;color:#b83b0a;}
.b-closed{background:#efeeea;color:var(--muted);}
.b-next{background:#e8f0fb;color:var(--down2);}
.b-cancel{background:#fbeae8;color:var(--up2);}
.cr-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:4px;}
.cr-price{font-size:13px;color:var(--muted);}
.cr-price b{color:var(--text);font-size:14px;}
.cr-actions{display:flex;gap:8px;align-items:center;}
.btn-official{display:inline-flex;align-items:center;gap:6px;background:var(--orange-btn);color:#fff;font-size:12.5px;font-weight:700;padding:8px 14px;border-radius:8px;}
.btn-official:hover{background:var(--orange-btn-hover);}
.btn-secondary{display:inline-flex;align-items:center;gap:6px;background:var(--s1);color:var(--orange-ink);border:1px solid var(--orange);font-size:12.5px;font-weight:700;padding:7px 14px;border-radius:8px;}
.btn-secondary:hover{background:#fff4ec;}
.cr-hero .cr-actions{flex-wrap:wrap;}
.btn-official,.btn-secondary,.btn-more{white-space:nowrap;}
.cr-analyze{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 18px;background:#fff4ec;border:1px solid #f3cfb4;border-radius:14px;padding:16px 18px;margin-bottom:16px;}
.cr-analyze div{display:flex;flex-direction:column;gap:2px;flex:1 1 260px;}
.cr-analyze b{font-size:14.5px;}
.cr-analyze span{font-size:13px;color:var(--muted);line-height:1.5;}
.cr-cal{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 16px;}
.cr-gcal{font-size:12.5px;font-weight:700;color:var(--orange-ink);}
.cr-cal-note{font-size:12px;color:var(--muted2);flex-basis:100%;}
.btn-more{font-size:12.5px;font-weight:700;color:var(--orange-ink);padding:8px 4px;}
.cr-empty .state-ic{margin-bottom:6px;}
.cr-empty .state-actions{margin-top:14px;}
.cr-empty{background:var(--s1);border:1px dashed var(--border2);border-radius:14px;padding:28px 18px;text-align:center;color:var(--muted);font-size:14px;line-height:1.6;}
.cr-past{margin-top:30px;}
.cr-past summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--muted);padding:10px 2px;}
.cr-past .cr-list{margin-top:12px;}

/* race detail */
.cr-hero{background:var(--s1);border:1px solid var(--border);border-radius:16px;padding:22px 20px;margin-bottom:16px;}
.cr-hero .cr-when{font-size:15px;font-weight:700;color:var(--text);margin:6px 0 4px;}
.cr-hero .cr-chips{margin:10px 0 16px;}
.cr-facts{display:grid;grid-template-columns:1fr;gap:12px;background:var(--s1);border:1px solid var(--border);border-radius:16px;padding:18px 20px;margin-bottom:16px;}
.cr-fact dt{font-size:10.5px;font-weight:800;color:var(--muted2);text-transform:uppercase;letter-spacing:.7px;}
.cr-fact dd{font-size:14px;margin-top:2px;}
.cr-table{width:100%;border-collapse:collapse;font-size:13.5px;background:var(--s1);border:1px solid var(--border);border-radius:14px;overflow:hidden;margin-bottom:16px;}
.cr-table th{font-size:10.5px;font-weight:800;color:var(--muted2);text-transform:uppercase;letter-spacing:.7px;text-align:left;padding:10px 14px;border-bottom:1px solid var(--border);}
.cr-table td{padding:10px 14px;border-bottom:1px solid var(--border);}
.cr-table tr:last-child td{border-bottom:none;}
.cr-notes{background:var(--s1);border:1px solid var(--border);border-radius:16px;padding:16px 20px;font-size:14px;color:var(--text);line-height:1.6;margin-bottom:16px;}
.cr-alert{background:#fbeae8;border:1px solid #f0c4be;color:var(--up2);border-radius:12px;padding:12px 16px;font-size:13.5px;font-weight:700;margin-bottom:16px;}
.cr-source{font-size:11.5px;color:var(--muted2);margin:6px 2px 0;}
.cr-source a{text-decoration:underline;}
@media(min-width:700px){
  .cr-card{grid-template-columns:72px 1fr;padding:18px 20px;}
  .cr-facts{grid-template-columns:repeat(2,1fr);}
}
.cr-report{margin-top:26px;background:var(--s1);border:1px solid var(--border);border-radius:14px;padding:0 16px;}
.cr-report summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--muted);padding:14px 0;}
.cr-report[open] summary{color:var(--text);}
.cr-fb{display:flex;flex-direction:column;gap:12px;padding:2px 0 16px;}
.cr-fb label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;}
.cr-fb input,.cr-fb textarea{border:1px solid var(--border2);border-radius:9px;padding:10px 12px;font-size:16px;font-family:inherit;text-transform:none;letter-spacing:0;font-weight:400;color:var(--text);background:var(--bg);width:100%;}
.cr-hp{position:absolute !important;left:-9999px;width:1px;height:1px;opacity:0;}
.cr-fb-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.cr-fb-row button{border:none;cursor:pointer;}
.cr-fb-row button:disabled{opacity:.6;cursor:default;}
.cr-fb-status{font-size:12.5px;color:var(--muted);}
.cr-fb-status.ok{color:var(--flat);font-weight:700;}
.cr-fb-status.bad{color:var(--up2);font-weight:700;}
@media(max-width:699px){
  .cr-card{grid-template-columns:46px 1fr;gap:12px;padding:14px 14px 14px 12px;}
  .cr-date .d{font-size:23px;}
  .cr-actions{width:100%;justify-content:space-between;}
  .cr-foot{gap:8px;}
}
main:focus{outline:none;}
