:root{font-family:Arial,Helvetica,sans-serif;color:#1f211d;background:#eee8dd;font-synthesis:none;--ink:#1f211d;--cream:#f7f0e4;--rust:#c94d2d;--gold:#e5a83f}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%}body{background:#eee8dd}button,a{font:inherit}.landing{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:760px;margin:auto;padding:22px 14px 30px}.brand{width:100%;background:var(--ink);color:var(--cream);border-radius:22px;padding:26px 18px 22px;text-align:center;box-shadow:0 14px 40px #33281c2b;position:relative;overflow:hidden}.brand:before{content:"";position:absolute;inset:auto -8% -48px;height:110px;background:var(--rust);transform:rotate(-4deg)}.edition{position:relative;font-size:13px;font-weight:900;letter-spacing:.18em;color:var(--gold)}.brand h1{position:relative;margin:5px 0 0;font-size:clamp(45px,14vw,88px);line-height:.88;letter-spacing:-.075em;text-transform:uppercase}.brand p{position:relative;margin:13px 0 0;font-size:14px;font-weight:800;letter-spacing:.08em}.choose{margin:18px 0 10px;font-size:13px;font-weight:900;letter-spacing:.16em}.route-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}.route-card{border:0;border-radius:18px;min-height:176px;padding:18px 10px;cursor:pointer;color:#fff;text-align:left;box-shadow:0 7px 20px #33281c20;transition:transform .18s}.route-card:active{transform:scale(.98)}.route-card.curta{background:var(--rust)}.route-card.llarga{background:var(--ink)}.route-card small{display:block;font-size:12px;font-weight:900;letter-spacing:.12em;opacity:.78}.route-card strong{display:block;margin-top:4px;font-size:clamp(27px,8vw,42px);letter-spacing:-.055em}.route-card span{display:block;margin-top:28px;font-size:14px;font-weight:900}.route-card em{display:block;margin-top:5px;font-size:12px;font-style:normal;font-weight:700;opacity:.78}.landing-note{margin:14px 0 0;text-align:center;font-size:13px;font-weight:700;color:#625e56}.viewer{min-height:100vh;background:#eee8dd}.compact-header{height:68px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;position:relative;padding:7px 105px;border-bottom:4px solid var(--race)}.compact-header .mini-brand{text-align:center;line-height:1}.mini-brand b{display:block;font-size:22px;letter-spacing:-.04em}.mini-brand span{display:block;margin-top:4px;color:var(--gold);font-size:11px;font-weight:900;letter-spacing:.12em}.back{position:absolute;left:6px;top:14px;border:0;background:transparent;color:#fff;font-weight:900;font-size:13px;cursor:pointer;padding:10px}.route-badge{position:absolute;right:10px;top:16px;background:var(--race);color:#fff;border-radius:999px;padding:9px 11px;font-size:12px;font-weight:900}.notice,.loading{margin:8px 10px;padding:10px 12px;border-radius:10px;background:#fff;border-left:4px solid var(--race,#333);font-weight:800;font-size:14px}.map-shell{height:42vh;min-height:300px;max-height:420px;background:#d8d6d0}.map{height:100%;width:100%}.profile-wrap{width:100%;max-width:920px;margin:0 auto;padding:0 10px}.profile-card{background:#fff;border-radius:14px;padding:12px;margin:8px 0}.section-title{font-size:13px;font-weight:900;letter-spacing:.1em;margin-bottom:3px}.profile-hint{color:#6c6962;font-size:11px;font-weight:800;letter-spacing:.035em}.elevation-profile{display:block;width:100%;height:auto;overflow:visible}.profile-area{opacity:.19}.profile-line{fill:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.profile-axis{stroke:#aaa;stroke-width:1}.profile-label{font-size:20px;fill:#555;font-family:Arial,Helvetica,sans-serif}.profile-cursor{stroke:#20211e;stroke-width:3;stroke-dasharray:7 5;pointer-events:none}.profile-dot{fill:var(--race);stroke:#fff;stroke-width:5;pointer-events:none}.profile-hit{fill:transparent;cursor:crosshair;touch-action:none}.profile-readout{min-height:25px;margin-top:1px;color:var(--race);font-size:15px;font-weight:900;text-align:center}.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:2px 10px 10px;max-width:920px;margin:auto}.action{display:flex;min-height:50px;min-width:0;align-items:center;justify-content:center;border:0;border-radius:12px;background:var(--ink);color:#fff;font-weight:900;text-align:center;text-decoration:none;padding:12px 7px;font-size:13px;line-height:1.15;cursor:pointer}.action.primary{background:var(--race)}.content{padding:0 10px 30px;max-width:920px;margin:auto}.stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px}.stats>div{background:#fff;border-radius:12px;padding:12px}.stats span{display:block;font-size:11px;font-weight:900;color:#6c6962;margin-bottom:3px}.stats strong{font-size:18px}.info-card{background:#fff;border-radius:14px;padding:14px;margin-top:10px}.info-card p{margin:5px 0 0;font-size:14px;line-height:1.45}.footer-brand{text-align:center;margin:20px 0 0;font-size:12px;font-weight:900;letter-spacing:.1em;color:#6c6962}.race-marker-wrap,.user-marker-wrap,.direction-wrap{background:transparent!important;border:0!important}.race-marker{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:900;color:#fff;border:3px solid #fff;box-shadow:0 2px 7px #00000059}.start-marker{background:#10863f}.finish-marker{background:#111}.direction-arrow{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;background:#0009;border:2px solid #fff;font-size:22px;font-weight:900;line-height:1;box-shadow:0 1px 5px #0006}.user-dot{width:24px;height:24px;background:#1479ff;border:4px solid #fff;border-radius:50%;box-shadow:0 0 0 4px #1479ff47,0 2px 8px #00000059}.user-label{margin-top:6px;background:#1479ff;color:#fff;display:inline-block;padding:4px 7px;border-radius:7px;font-size:12px;font-weight:900;white-space:nowrap;box-shadow:0 2px 7px #00000038}.leaflet-container img{max-width:none!important;max-height:none!important}.leaflet-control-layers label{font-size:14px}@media(min-width:700px){.landing{padding-top:36px}.route-card{min-height:205px}.map-shell{height:580px;max-height:650px}.action-grid{grid-template-columns:repeat(4,1fr)}.stats{grid-template-columns:repeat(4,1fr)}}@media(max-width:390px){.compact-header{padding-left:88px;padding-right:80px}.mini-brand b{font-size:19px}.route-badge{font-size:11px;padding:8px}.brand h1{font-size:48px}}
