/* Propuesta independiente: azul del maillot, amarillo y rojo del escudo. */
:root, :root[data-theme="light"] {
  --color-bg:#f3f6fb; --color-surface:#fff; --color-surface-alt:#eaf2fc;
  --color-text:#122945; --color-muted:#52677e; --color-border:#d9e4f1;
  --color-primary:#0076c8; --color-primary-dark:#005b9e; --color-primary-contrast:#fff;
  --color-accent:#f6c600; --club-stripe:linear-gradient(90deg,#008bd4 0 74%,#f6cc00 74% 93.76%,#dd303b 93.76% 100%); --shadow-sm:0 5px 18px rgba(15,52,91,.05);
  --shadow-md:0 16px 40px rgba(15,52,91,.13); --radius-md:18px;
}
:root[data-theme="dark"] {
  --color-bg:#081827; --color-surface:#10283e; --color-surface-alt:#17364f;
  --color-text:#f0f6fc; --color-muted:#afc3d7; --color-border:#294760;
  --color-primary:#4eb7ff; --color-primary-dark:#2a9fea; --color-primary-contrast:#061c2e;
}
@media(prefers-color-scheme:dark) {
  :root:not([data-theme="light"]) {
    --color-bg:#081827; --color-surface:#10283e; --color-surface-alt:#17364f;
    --color-text:#f0f6fc; --color-muted:#afc3d7; --color-border:#294760;
    --color-primary:#4eb7ff; --color-primary-dark:#2a9fea; --color-primary-contrast:#061c2e;
  }
}
body { font-family:"Segoe UI",Inter,system-ui,sans-serif; }
h1,h2,h3 { letter-spacing:-.035em; text-wrap:balance; }
h1 { line-height:1.08; }
h2 { line-height:1.2; }
.site-header { background:#063960; color:#fff; border:0; padding-block:4px; box-shadow:0 4px 20px #001b3b25; }
.site-header::before,.site-header::after,.site-footer::before,.site-footer::after,.admin-footer::before,.admin-footer::after { content:""; position:absolute; left:0; right:0; height:4px; background:var(--club-stripe); pointer-events:none; }
.site-header::before,.site-footer::before,.admin-footer::before { top:0; }
.site-header::after,.site-footer::after,.admin-footer::after { bottom:0; }
.site-header .brand { color:#fff; }
.site-header .brand-logo { height:46px; max-width:120px; border-radius:4px; }
.site-header .brand-name { letter-spacing:-.025em; }
.site-header .site-nav { border-color:#ffffff20; padding:.45rem 0 .6rem; }
.site-header .site-nav a { color:#d8eafa; border-radius:7px; min-height:42px; }
.site-header .site-nav a:hover { background:#ffffff12; color:#fff; }
.site-header .site-nav a.is-active { background:#fff; color:#005b9e; box-shadow:inset 0 -3px #f6c600; }
.header-actions .header-account { background:#0785cd; border-color:#37a2dc; color:#fff; }
.header-actions .header-account:hover { background:#0093df; }
.header-actions .nav-admin-access,.site-header .theme-toggle,.site-header .nav-toggle { background:#ffffff0d; border-color:#ffffff35; color:#fff; }
.header-actions .nav-admin-access:hover { color:#fff; border-color:#f6c600; }
.site-header .nav-toggle span { background:#fff; }
.page-hero { padding:3.2rem 0 2.3rem; background:linear-gradient(120deg,var(--color-surface-alt),var(--color-bg)); border-bottom:1px solid var(--color-border); }
.page-hero h1 { font-size:clamp(2rem,4.5vw,3.4rem); max-width:100%; }
.page-hero p { max-width:720px; line-height:1.7; }
.home-cover { position:relative; isolation:isolate; background-size:cover; background-position:center; background-color:#242a2e; }
.home-cover::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(0,0,0,.38),rgba(0,0,0,.16) 50%,rgba(0,0,0,.62)); }
.home-cover .page-hero.has-image { padding:6rem 0 3rem; background:none; border:0; }
.home-cover .page-hero.has-image::before { display:none; }
.home-cover-links { padding-top:1rem; }
.home-cover-links > .container > h2 { color:#fff; text-shadow:0 2px 12px #0009; }
.home-cover-links .card { background:var(--color-surface); }
.page-hero.has-image .container { padding-left:1.5rem; border-left:4px solid #f6c600; }
.page-hero.has-image h1 { max-width:850px; font-size:clamp(2.4rem,6vw,4.8rem); letter-spacing:-.05em; }
.page-hero.has-image #homeTagline { color:#ffe069; font-size:.85rem; letter-spacing:.07em; }
.page-hero.has-image p { max-width:610px; }
.page-hero.has-image .btn-secondary { background:#fff; color:#063960; border-color:#fff; }
.btn { min-height:44px; border-radius:10px; font-size:.88rem; padding:.75rem 1.2rem; transition:background .16s,box-shadow .16s; }
.btn-primary { box-shadow:0 4px 12px #0076c824; }
.btn-secondary { box-shadow:0 2px 5px #06396005; }
.btn:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid var(--focus-ring); outline-offset:3px; }
.card,.detail-panel,.ranking-panel,.account-panel,.orders-panel,.member-access-card { border-color:var(--color-border); border-radius:18px; box-shadow:var(--shadow-sm); }
.card-grid > a.card { position:relative; border-top:3px solid var(--color-primary); padding:1.5rem; transition:border-color .16s,box-shadow .16s; }
.card-grid > a.card:hover { border-top-color:#f6c600; box-shadow:var(--shadow-md); }
.card-grid > a.card h3 { color:var(--color-primary); }
.card-grid > a.card p { font-size:.9rem; line-height:1.65; }
.ride-card-horizontal { border-radius:16px; box-shadow:var(--shadow-sm); }
.ride-card-content h3 { font-weight:800; }
.ride-card-facts .ride-metric { border-radius:7px; background:var(--color-surface-alt); }
.ride-registration { border-top-style:dashed; }
.ride-registration .btn { min-height:36px; border-radius:8px; }
.detail-hero { background:linear-gradient(115deg,#063960,#006fac); color:#fff; padding:2.5rem 0; }
.detail-hero h1,.detail-hero p { color:#fff; }
.detail-chip { color:var(--color-text); }
.detail-stats { border-top:3px solid var(--color-primary); box-shadow:var(--shadow-sm); }
.gallery-grid,.documents-grid { gap:1.2rem; }
.album-card { border-radius:18px; overflow:hidden; box-shadow:var(--shadow-sm); }
.album-card img { transition:transform .25s; }
@media(hover:hover) { .album-card:hover img { transform:scale(1.025); } }
.ranking-table thead th,table thead th { background:var(--color-surface-alt); color:var(--color-primary); font-size:.7rem; letter-spacing:.07em; padding-top:1rem; padding-bottom:1rem; }
tbody td { border-color:var(--color-border); }
tbody tr:hover { background:var(--color-surface-alt); }
input:not([type="radio"]):not([type="checkbox"]),select,textarea { border-radius:9px; accent-color:var(--color-primary); }
input[type="radio"],input[type="checkbox"] { accent-color:var(--color-primary); }
.account-stat { border-top:3px solid var(--color-primary); }
.account-hero { border-left:4px solid var(--color-primary); }
.site-footer { position:relative; background:#06304f; border:0; padding-block:4px; color:#dbeaf8; margin-top:4rem; }
.admin-body .admin-footer { position:relative; border-top:0; }
.site-footer p,.site-footer .footer-copy,.site-footer .footer-links a { color:#c7dced; }
.site-footer .footer-links a:hover { color:#ffe069; }
.footer-logo { height:54px; border-radius:4px; }
.footer-links { gap:.5rem 1.4rem; }
.footer-links a { padding:.65rem .2rem; }
.admin-sidebar { background:linear-gradient(180deg,#063960,#05253f); border-right:1px solid #ffffff15; }
.admin-brand { border-bottom:1px solid #ffffff20; margin-bottom:.5rem; }
.admin-brand img { border-radius:3px; }
.admin-nav-label { color:#9fc8e7; }
.admin-nav-link { min-height:44px; border-radius:9px; }
.admin-nav-link:hover { background:#ffffff10; }
.admin-nav-link.is-active { background:#007ac2; color:#fff; box-shadow:inset 3px 0 #f6c600; }
.admin-nav-dot,.admin-mode-dot { background:#f6c600; }
.admin-mode-badge { background:#0066a6; border-radius:6px; }
.admin-topbar { box-shadow:0 3px 12px #06396006; }
.kpi-card { border-radius:16px; border-top:3px solid var(--color-primary); box-shadow:var(--shadow-sm); padding:1.35rem; }
.kpi-card:nth-child(4) { border-top-color:#e2b600; }
.kpi-card .kpi-value { letter-spacing:-.04em; font-variant-numeric:tabular-nums; }
.admin-page-head h1 { font-size:clamp(1.8rem,3vw,2.6rem); }
.admin-toolbar { padding:1rem; background:var(--color-surface); border:1px solid var(--color-border); border-radius:14px; }
.admin-modal { border-top:4px solid var(--color-primary); }
.admin-body .card { box-shadow:var(--shadow-sm); }
@media(max-width:1000px) {
  .site-header .site-nav { background:var(--color-surface); color:var(--color-text); border:1px solid var(--color-border); padding:.8rem; box-shadow:0 18px 35px #001c3d30; }
  .site-header .site-nav a { color:var(--color-text); min-height:48px; border-radius:9px; padding:.85rem; }
  .site-header .site-nav a:hover { background:var(--color-surface-alt); color:var(--color-primary); }
  .site-header .site-nav a.is-active { background:var(--color-surface-alt); color:var(--color-primary); box-shadow:inset 3px 0 #0076c8; }
}
@media(max-width:640px) {
  .container { width:calc(100% - 2rem); }
  .page-hero { padding:1.7rem 0 1.3rem; }
  .page-hero h1 { font-size:2rem; margin-bottom:.7rem; }
  .page-hero p { font-size:.9rem; line-height:1.6; }
  .home-cover .page-hero.has-image { padding:3.4rem 0 1.7rem; }
  .page-hero.has-image .container { padding-left:1rem; }
  .page-hero.has-image h1 { font-size:clamp(2rem,8vw,3rem); overflow-wrap:anywhere; }
  .page-hero.has-image #homeTagline { font-size:.72rem; }
  .page-hero.has-image .form-actions { gap:.65rem; }
  section { padding:1.65rem 0; }
  .card-grid { grid-template-columns:minmax(0,1fr); gap:.8rem; }
  .card-grid > a.card { padding:1.15rem; }
  .card-grid > a.card h3 { margin-bottom:.45rem; }
  .card-grid > a.card p { margin-bottom:0; }
  .btn { min-height:44px; font-size:.85rem; padding:.7rem 1rem; }
  .ride-card-horizontal { border-radius:14px; }
  .ride-card-content { padding:.8rem; }
  .ride-registration .btn { min-height:40px; }
  .detail-hero { padding:1.8rem 0; }
  .detail-panel,.account-panel,.orders-panel { padding:1rem; border-radius:14px; }
  .member-access-card { padding:2rem 1.2rem; }
  .site-footer { margin-top:2rem; }
  .footer-inner { padding:2rem 0; }
  .admin-body .container { width:calc(100% - 1.5rem); }
  .admin-toolbar { padding:.8rem; gap:.8rem; }
  .admin-filters { width:100%; }
  .admin-filters select,.admin-filters input { flex:1; min-width:0; min-height:44px; }
  .kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
  .kpi-card { padding:1rem; min-width:0; }
  .kpi-card .kpi-value { font-size:1.55rem; overflow-wrap:anywhere; }
  .kpi-card .kpi-label { font-size:.78rem; }
  .admin-topbar-actions { gap:.5rem; }
  .admin-modal { padding:1rem; }
  input:not([type="radio"]):not([type="checkbox"]),select,textarea { font-size:16px; }
}
@media(max-width:360px) {
  .site-header .site-nav { grid-template-columns:1fr; }
  .header-actions { gap:.3rem; }
}
@media(prefers-reduced-motion:reduce) {
  .btn,.card-grid > a.card,.album-card img { transition:none; }
}
