:root{--bg:#0b0e12;--panel:#12171e;--panel2:#171d25;--line:#252d38;--text:#eef2f6;--muted:#8d98a7;--accent:#e54545;--good:#38c878;--warn:#e0c945;--orange:#f39a32;--bad:#ff5252;--shadow:0 14px 35px #0006}*{box-sizing:border-box}html{background:var(--bg);color-scheme:dark}body{margin:0;background:radial-gradient(circle at 50% -10%,#202937 0,#0b0e12 38%);color:var(--text);font:14px/1.45 Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}.topbar{height:76px;max-width:1160px;margin:auto;padding:15px 22px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:11px;align-items:center}.bike{font-size:29px}.brand strong{font-size:21px}.brand small{display:block;color:var(--muted);font-size:11px}main{max-width:1160px;margin:auto;padding:8px 20px 40px}.panel{background:linear-gradient(145deg,#151b23,#10151b);border:1px solid var(--line);border-radius:20px;padding:22px;margin-bottom:16px;box-shadow:var(--shadow)}.compact{padding:12px}.searchbar{display:grid;grid-template-columns:1fr auto;gap:10px}input,select{width:100%;background:#0c1117;border:1px solid #2a3441;color:var(--text);padding:12px 13px;border-radius:11px;outline:none;font:inherit}input:focus,select:focus{border-color:#657489}.primary,.ghost{border:0;border-radius:11px;padding:11px 16px;font-weight:750;cursor:pointer}.primary{background:#e64343;color:#fff}.primary:hover{filter:brightness(1.08)}.ghost{background:#1c232c;color:#dce3eb;border:1px solid #303a47}.ghost.small{padding:8px 11px;font-size:12px}.heroTop,.sectionTitle{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.eyebrow,.infoLabel{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.updated{color:var(--muted);font-size:11px}.rideBadge{display:inline-block;margin-top:8px;padding:6px 10px;border-radius:999px;font-size:11px;font-weight:850;letter-spacing:.05em}.rideBadge.good{background:#163c2a;color:#64e39d}.rideBadge.warn{background:#423a17;color:#f1da5a}.rideBadge.bad{background:#482024;color:#ff737b}.heroGrid{display:grid;grid-template-columns:1.15fr 1fr;gap:18px;margin-top:18px}.scoreBox{background:#0d1218;border:1px solid #252d38;border-radius:17px;padding:18px}.scoreBox .label{font-weight:700;color:#b7c0cc}.bigScore{font-size:72px;font-weight:850;line-height:1;margin:9px 0}.scoreBox small,.miniStats small,.radarInfo small{color:var(--muted)}.miniStats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.miniStats>div{background:#0e1319;border:1px solid #252d38;border-radius:15px;padding:14px;display:grid;grid-template-columns:auto 1fr;gap:2px 8px;align-items:center}.miniStats span{grid-row:span 2;font-size:20px}.miniStats b{font-size:20px}.miniStats small{font-size:10px}.recommendation{margin:16px 2px 0;padding-top:14px;border-top:1px solid var(--line);color:#d2d9e2}.sectionTitle h2{font-size:18px;margin:0}.sectionTitle p{margin:4px 0 0;color:var(--muted);font-size:12px}.hourly{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(108px,1fr);gap:8px;overflow-x:auto;margin-top:16px;padding-bottom:4px}.hour{background:#0d1218;border:1px solid var(--line);border-radius:13px;padding:11px}.hour .time{font-weight:700}.hour .risk{font-size:21px;font-weight:850;margin:5px 0}.riskDot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.hour .mm,.hour .t{font-size:11px;color:var(--muted)}.models,.calGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:15px}.models>div,.calGrid>div{background:#0d1218;border:1px solid var(--line);border-radius:13px;padding:13px}.models span{display:block;color:var(--muted);font-size:11px}.models b,.calGrid b{display:block;font-size:22px;margin-top:3px}.notice{margin-top:12px;color:var(--muted);font-size:12px;padding:10px 12px;border-radius:10px;background:#0d1218;border:1px solid var(--line)}#radarMap,#routeMap{height:390px;border-radius:15px;margin-top:15px;overflow:hidden;background:#0b1016}.radarControls{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:12px}.radarInfo{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.radarInfo>div{background:#0d1218;border:1px solid var(--line);padding:12px;border-radius:12px}.radarInfo b{display:block;font-size:18px;margin:3px 0}.routeForm{display:grid;grid-template-columns:1.1fr 1.1fr 1fr .8fr auto;gap:10px;align-items:end;margin-top:16px}.routeForm label>span{display:block;color:var(--muted);font-size:11px;margin:0 0 5px 2px}.routeSummary{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:14px}.routeSummary>div{background:#0d1218;border:1px solid var(--line);border-radius:12px;padding:12px}.routeSummary b{font-size:20px;display:block}.routeSummary small{color:var(--muted)}.routeTimeline{display:flex;gap:7px;overflow-x:auto;margin-top:12px}.routePoint{min-width:94px;background:#0d1218;border:1px solid var(--line);border-radius:12px;padding:10px}.routePoint b{font-size:18px}.routePoint small{display:block;color:var(--muted);font-size:10px}.bestDeparture{margin-top:15px;padding:15px;border:1px solid #245e42;background:#102b1f;border-radius:14px}.bestDeparture strong{font-size:20px;color:#67e5a2}.bestDeparture .alternatives{display:flex;gap:8px;overflow:auto;margin-top:9px}.bestDeparture .alt{background:#0d1612;border:1px solid #264b37;border-radius:9px;padding:7px 9px;white-space:nowrap;font-size:11px}.toast{position:fixed;left:50%;bottom:25px;transform:translateX(-50%);background:#202833;border:1px solid #384452;padding:11px 16px;border-radius:12px;box-shadow:0 12px 30px #0009;z-index:10000;max-width:min(92vw,720px)}.hidden{display:none!important}footer{max-width:1100px;margin:0 auto 35px;padding:0 20px;color:#697482;font-size:10px;text-align:center}.leaflet-container{font-family:inherit}@media(max-width:900px){.routeForm{grid-template-columns:1fr 1fr}.routeForm button{grid-column:span 2}.models,.calGrid{grid-template-columns:1fr 1fr}}@media(max-width:720px){.heroGrid{grid-template-columns:1fr}.radarInfo{grid-template-columns:1fr}.routeSummary{grid-template-columns:1fr 1fr}#radarMap,#routeMap{height:300px}.topbar{padding-inline:14px}.ghost#locateBtn{font-size:0}.ghost#locateBtn::after{content:'📍';font-size:18px}}@media(max-width:480px){main{padding-inline:10px}.panel{padding:15px;border-radius:16px}.searchbar{grid-template-columns:1fr auto}.bigScore{font-size:57px}.models,.calGrid{grid-template-columns:1fr 1fr}.routeForm{grid-template-columns:1fr}.routeForm button{grid-column:auto}.routeSummary{grid-template-columns:1fr 1fr}.sectionTitle{align-items:flex-start;flex-direction:column}.radarControls{width:100%;justify-content:space-between}}
.forecastControls{display:flex;gap:7px}.forecastRange.active{border-color:#e54545;background:#302025}.hour.planning{border-style:dashed}.routeActions{display:flex;gap:8px;align-items:end}.routeActions button{height:43px;white-space:nowrap}@media(max-width:900px){.routeActions{grid-column:span 2}.routeActions button{flex:1}}@media(max-width:480px){.forecastControls{width:100%}.forecastControls button{flex:1}.routeActions{grid-column:auto;flex-direction:column}.routeActions button{width:100%}}
/* v0.3.1: prognoza bez poziomego przewijania na desktopie */
.hourly{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:row;gap:7px;overflow:visible;margin-top:16px;padding-bottom:4px}
.hour{min-width:0;padding:9px 7px;text-align:center}
.hour .day{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;min-height:13px}
.hour .time{font-size:12px}
.hour .risk{font-size:18px;margin:3px 0}
.hour .mm,.hour .t{font-size:10px}
.routeSummary{grid-template-columns:repeat(6,1fr)}
.routePoint .routePos{display:block;color:#b9c3cf;font-size:9px;font-weight:800;letter-spacing:.04em;margin-bottom:3px}
@media(max-width:1000px){.hourly{grid-template-columns:repeat(8,minmax(0,1fr))}.routeSummary{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.hourly{grid-template-columns:repeat(6,minmax(0,1fr))}.routeSummary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.hourly{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.hour{padding:8px 5px}.hour .risk{font-size:17px}}


/* v0.3.2 — analiza planowanej godziny + pogoda i nawierzchnia na trasie */
.routeSummary{grid-template-columns:repeat(4,1fr)}
.bestDeparture .betterPrompt{margin-top:7px}.bestDeparture .switchQuestion{margin-top:10px;color:#cfd8e3;font-weight:700}.switchActions{display:flex;gap:8px;margin-top:9px;flex-wrap:wrap}.switchActions .small{padding:9px 12px}.bestDeparture.accepted{border-color:#2f875c}.bestDeparture.kept{border-color:#556170;background:#17201d}
.routeWeatherBar{margin-top:12px;padding:13px;background:#0d1218;border:1px solid var(--line);border-radius:13px}.dryHeader,.dryLegend{display:flex;justify-content:space-between;gap:12px;align-items:center}.dryHeader span,.dryLegend{color:var(--muted);font-size:10px}.dryTrack{display:flex;height:16px;overflow:hidden;border-radius:999px;border:1px solid #2a333f;margin:9px 0 7px;background:#0a0e13}.drySeg{flex:1;min-width:4px;border-right:1px solid #0004}.drySeg:last-child{border-right:0}.routeWarning{margin-top:10px;padding:9px 11px;border-radius:9px;background:#2e2615;border:1px solid #5b4b20;color:#f3d96b;font-size:11px}.routePoint{min-width:112px}.routePoint small{line-height:1.5}
@media(max-width:1000px){.routeSummary{grid-template-columns:repeat(4,1fr)}}
@media(max-width:720px){.routeSummary{grid-template-columns:repeat(2,1fr)}.dryHeader,.dryLegend{align-items:flex-start;flex-direction:column;gap:3px}}
@media(max-width:480px){.switchActions{flex-direction:column}.switchActions button{width:100%}.routeSummary{grid-template-columns:repeat(2,1fr)}}


/* v0.3.3 — szczegóły trasy bez przewijania + kolor nawierzchni na mapie */
.routeTimeline{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;overflow:visible;margin-top:12px}
.routePoint{min-width:0;width:auto}
.routePoint small b{font-size:inherit;display:inline}
@media(max-width:1000px){.routeTimeline{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){.routeTimeline{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:520px){.routeTimeline{grid-template-columns:repeat(2,minmax(0,1fr))}}

.routeMapLegend{margin:12px 2px -4px;color:var(--muted);font-size:11px}.routeMapLegend b{color:#cfd8e3}.legendWet{color:#ff5252}.legendDamp{color:#e0c945}.legendDry{color:#38c878}

.addressHint{font-size:12px;color:var(--muted);margin-top:6px;padding-left:2px}
@media(max-width:700px){.addressHint{font-size:11px}}

/* v0.5 — stan TERAZ, świeżość radaru, czytelniejsza nawierzchnia i technikalia na dole */
.updatedWrap{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.freshness{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:10px;white-space:nowrap}.freshDot{width:7px;height:7px;border-radius:50%;background:#697482;box-shadow:0 0 0 2px #0002}.freshness.fresh .freshDot{background:var(--good)}.freshness.delayed .freshDot{background:var(--warn)}.freshness.stale .freshDot{background:var(--bad)}.freshness.delayed,.freshness.stale{color:#c9aeb0}
.currentHour{border-color:#e54545!important;box-shadow:inset 0 0 0 1px #e5454538;background:linear-gradient(160deg,#24171a,#0d1218)}.currentHour .day{color:#ff7777;font-weight:800}
.miniStats b{line-height:1.1}.miniStats #dryness,.miniStats #rainNow{font-size:17px;letter-spacing:.01em}.technicalDetails{padding:0;overflow:hidden}.technicalDetails>summary{list-style:none;cursor:pointer;padding:18px 22px;display:flex;justify-content:space-between;align-items:center;gap:12px}.technicalDetails>summary::-webkit-details-marker{display:none}.technicalDetails>summary span:first-child{display:flex;flex-direction:column;gap:2px}.technicalDetails>summary b{font-size:16px}.technicalDetails>summary small{color:var(--muted);font-size:11px}.detailsChevron{font-size:20px;color:var(--muted);transition:transform .2s}.technicalDetails[open] .detailsChevron{transform:rotate(180deg)}.technicalDetails[open]>summary{border-bottom:1px solid var(--line)}.technicalIntro{margin:16px 22px 0;padding:11px 13px;border-radius:11px;background:#0d1218;border:1px solid var(--line);color:#aeb8c4;font-size:12px}.technicalBlock{padding:18px 22px;border-top:1px solid var(--line);margin-top:16px}.technicalBlock h3{margin:0;font-size:16px}.technicalScore{min-width:95px;text-align:right}.technicalScore span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase}.technicalScore b{font-size:24px}.routeSummary>div:nth-child(6) b{font-size:17px}.routePoint small b{font-weight:800}
@media(max-width:720px){.updatedWrap{align-items:flex-end}.technicalDetails>summary{padding:15px}.technicalIntro{margin:14px 15px 0}.technicalBlock{padding:15px}.miniStats #dryness,.miniStats #rainNow{font-size:16px}}


/* v0.5 — dłuższa animacja radaru */
.radarTimeline{margin:12px 2px 2px}
.radarTimeline input[type="range"]{width:100%;padding:0;background:transparent;border:0;accent-color:var(--accent);cursor:pointer}
.radarTimelineLabels{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;margin-top:3px;color:var(--muted);font-size:10px}
.radarTimelineLabels span:nth-child(2){text-align:center;font-weight:800;color:#b8c3cf}
.radarTimelineLabels span:last-child{text-align:right}
footer a{color:#8795a6;text-decoration:none}footer a:hover{text-decoration:underline;color:#aeb8c4}
@media(max-width:520px){.radarControls{flex-wrap:wrap}.radarControls #radarTime{margin-left:auto}.radarTimeline{margin-top:10px}}


/* v0.5.2 — mapy nie przechwytują przewijania strony */
.gestureControlledMap{overscroll-behavior:auto!important}
.mapGestureHint{position:absolute;left:50%;top:12px;transform:translate(-50%,-6px);z-index:1200;pointer-events:none;opacity:0;background:#171e27eF;color:#eef2f6;border:1px solid #3a4655;border-radius:10px;padding:7px 10px;font-size:11px;font-weight:700;white-space:nowrap;box-shadow:0 8px 20px #0008;transition:opacity .15s ease,transform .15s ease}
.mapGestureHint.show{opacity:1;transform:translate(-50%,0)}
@media (pointer:coarse){.gestureControlledMap{touch-action:pan-y!important}.mapGestureHint{font-size:10px;max-width:88%;white-space:normal;text-align:center}}


/* v0.6 — punkty pośrednie, trasa pętlowa i analiza etapami */
.routeForm{display:block;margin-top:16px}
.routeStopsEditor{display:flex;flex-direction:column;gap:9px;padding:13px;background:#0d1218;border:1px solid var(--line);border-radius:14px}
.routeStopRow{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:9px;align-items:end}
.routeStopRow.endpoint{grid-template-columns:34px minmax(0,1fr)}
.routeStopRow label{min-width:0}.routeStopRow label>span{display:block;color:var(--muted);font-size:11px;margin:0 0 5px 2px}
.stopBadge{width:30px;height:30px;margin-bottom:7px;border-radius:50%;display:grid;place-items:center;background:#263342;border:1px solid #415064;color:#e7edf5;font-size:11px;font-weight:900}
.stopBadge.goal{background:#442024;border-color:#713237;color:#ff8a8a}.stopBadge.waypoint{background:#203346;border-color:#315572;color:#83c8ff}
.waypointList{display:flex;flex-direction:column;gap:9px}.waypointRowActions{display:flex;gap:5px;margin-bottom:2px}.ghost.tiny{padding:7px 9px;min-width:34px;height:38px;font-size:14px}.ghost.tiny:disabled{opacity:.35;cursor:default}
.addWaypointBtn{align-self:flex-start;margin-left:43px}.loopOption{display:flex!important;align-items:center;gap:9px;margin:2px 0 0 43px;color:#c9d2dc!important;font-size:12px!important}.loopOption input{width:auto;margin:0;accent-color:var(--accent)}.loopOption span{margin:0!important;color:inherit!important;font-size:inherit!important}
.routeOptions{display:grid;grid-template-columns:1fr .8fr auto;gap:10px;align-items:end;margin-top:10px}.routeOptions label>span{display:block;color:var(--muted);font-size:11px;margin:0 0 5px 2px}.routeActions{grid-column:auto}
.routeStages{margin-top:12px;padding:13px;background:#0d1218;border:1px solid var(--line);border-radius:13px}.stageTitle{display:flex;justify-content:space-between;gap:10px;align-items:flex-end}.stageTitle span{color:var(--muted);font-size:10px}.stageCards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:9px}.stageCard{border:1px solid #27313d;background:#111820;border-radius:11px;padding:11px;min-width:0}.stageNo{font-size:9px;color:#8fa0b3;font-weight:850;letter-spacing:.08em}.stageCard>strong{display:block;margin:3px 0 2px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stageCard>strong span{color:#647181}.stageCard>small{display:block;color:var(--muted);font-size:10px}.stageMetrics{display:grid;grid-template-columns:1fr 1fr;gap:3px 8px;margin-top:7px;font-size:10px;color:#aeb9c5}.stageMetrics b{font-size:inherit}
.routeTimeline{display:block;margin-top:12px}.routeStageDetail{margin-top:10px}.routeStageHead{display:flex;justify-content:space-between;gap:12px;align-items:flex-end;margin:0 2px 6px}.routeStageHead>div{display:flex;flex-direction:column;gap:1px;min-width:0}.routeStageHead span{font-size:9px;color:#8fa0b3;font-weight:850;letter-spacing:.08em}.routeStageHead b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.routeStageHead small{color:var(--muted);font-size:10px;white-space:nowrap}.routeSegmentGrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.routePoint{min-width:0;width:auto}
@media(max-width:1000px){.stageCards{grid-template-columns:repeat(2,minmax(0,1fr))}.routeSegmentGrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){.routeOptions{grid-template-columns:1fr 1fr}.routeActions{grid-column:1/-1}.stageCards{grid-template-columns:1fr}.routeSegmentGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.stageTitle{align-items:flex-start;flex-direction:column;gap:2px}}
@media(max-width:520px){.routeStopRow{grid-template-columns:30px minmax(0,1fr)}.waypointRowActions{grid-column:2;justify-content:flex-end;margin-top:-3px}.addWaypointBtn,.loopOption{margin-left:39px}.routeOptions{grid-template-columns:1fr}.routeActions{grid-column:auto;flex-direction:column}.routeActions button{width:100%}.routeSegmentGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.routeStageHead{align-items:flex-start;flex-direction:column;gap:2px}.routeSummary{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v0.7.3 — prognoza 12/24/48 h oraz polskie kierunki ruchu opadów */
.scoreWhy{margin-top:12px;border:1px solid var(--line);border-radius:12px;background:#0d1218;overflow:hidden}.scoreWhy>summary{cursor:pointer;list-style:none;padding:10px 12px;color:#bfc8d3;font-size:11px;font-weight:800}.scoreWhy>summary::-webkit-details-marker{display:none}.scoreWhy>summary::after{content:'▾';float:right;color:var(--muted);transition:transform .18s}.scoreWhy[open]>summary::after{transform:rotate(180deg)}.scoreWhy[open]>summary{border-bottom:1px solid var(--line)}.scoreWhyBody{padding:10px 12px}.whyGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.whyItem{border:1px solid #27313d;border-radius:10px;padding:9px;background:#111820}.whyItem>span{display:block;color:var(--muted);font-size:9px;font-weight:850;letter-spacing:.06em}.whyItem>b{display:block;margin:2px 0;font-size:12px}.whyItem>small{display:block;color:#8d98a7;font-size:10px;line-height:1.35}.whyItem.good{border-color:#245e42}.whyItem.warn{border-color:#625726}.whyItem.bad{border-color:#6e3037}.whyItem.neutral{border-color:#34404d}
.mapLayers{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:12px;padding:9px 10px;border:1px solid var(--line);background:#0d1218;border-radius:12px}.layerLabel{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-right:2px}.layerToggle{display:flex;align-items:center;gap:6px;border:1px solid #313b48;background:#171e27;border-radius:999px;padding:6px 10px;cursor:pointer;font-size:11px;color:#c9d2dc;user-select:none}.layerToggle input{display:none}.layerToggle.active{border-color:#667586;background:#222c37;color:#fff}.layerToggle small{font-size:8px;color:#9faab6;text-transform:uppercase}.layerStatus{margin-left:auto;color:var(--muted);font-size:10px}.routeAlerts{margin-top:12px;display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;padding:12px;border-radius:13px;border:1px solid #5d5124;background:#262113}.routeAlerts.danger{border-color:#6e3037;background:#2a171a}.routeAlerts.calm{border-color:#245e42;background:#10271d}.routeAlertIcon{font-size:21px;line-height:1}.routeAlerts span{display:block;color:#c6d0da;font-size:10px;text-transform:uppercase;letter-spacing:.05em}.routeAlerts b{display:block;font-size:14px;margin:2px 0}.routeAlerts p{margin:3px 0;color:#e4e8ed;font-size:11px}.routeAlerts small{color:var(--muted);font-size:10px}
.stageAccordions{display:flex;flex-direction:column;gap:8px;margin-top:9px}.stageAccordion{border:1px solid #27313d;background:#111820;border-radius:11px;overflow:hidden}.stageAccordion>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(240px,.9fr) auto;gap:12px;align-items:center;padding:11px}.stageAccordion>summary::-webkit-details-marker{display:none}.stageSummaryMain{min-width:0}.stageSummaryMain>strong{display:block;margin:3px 0 2px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stageSummaryMain>strong span{color:#647181}.stageSummaryMain>small{display:block;color:var(--muted);font-size:10px}.stageAccordion .stageMetrics{margin:0}.stageExpand{font-size:10px;color:#90a0b1;white-space:nowrap}.stageAccordion[open] .stageExpand{font-size:0}.stageAccordion[open] .stageExpand::after{content:'Ukryj szczegóły ▴';font-size:10px}.stageDetailBody{border-top:1px solid #27313d;padding:10px;background:#0d1218}.routeTimeline:empty{display:none}
@media(max-width:800px){.whyGrid{grid-template-columns:1fr}.layerStatus{width:100%;margin-left:0}.stageAccordion>summary{grid-template-columns:1fr auto}.stageAccordion .stageMetrics{grid-column:1/-1}.stageExpand{grid-column:2;grid-row:1;align-self:start}.stageSummaryMain{padding-right:6px}}
@media(max-width:520px){.mapLayers{gap:6px}.layerToggle{padding:6px 8px}.stageAccordion>summary{grid-template-columns:1fr}.stageExpand{grid-column:1;grid-row:auto}.stageAccordion .stageMetrics{grid-column:1}.routeAlerts{grid-template-columns:1fr}.routeAlertIcon{display:none}}

/* v0.7.1 — płynne warstwy modelowe */
.leaflet-overlay-pane img.modelSmoothOverlay{image-rendering:auto;filter:saturate(1.08)}

/* v0.7.4 — drag & drop punktów + gotowy interfejs autouzupełniania */
.autocompleteField{position:relative;min-width:0;width:100%}
.addressSuggestions{position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:5000;background:#10161d;border:1px solid #34404d;border-radius:11px;box-shadow:0 14px 30px #000b;max-height:260px;overflow:auto;padding:5px}
.addressSuggestion{display:flex;width:100%;border:0;background:transparent;color:var(--text);padding:9px 10px;border-radius:8px;text-align:left;cursor:pointer;flex-direction:column;gap:1px;font:inherit}
.addressSuggestion:hover,.addressSuggestion.active{background:#202a35}.addressSuggestion span{font-size:12px}.addressSuggestion small{font-size:9px;color:var(--muted)}
.wpDrag{cursor:grab;touch-action:none;user-select:none;letter-spacing:-2px}.wpDrag:active{cursor:grabbing}.waypointRow.dragging{opacity:.62;outline:1px dashed #66809a;outline-offset:3px;border-radius:10px}
.routeMapHint{margin:12px 2px -5px;color:#aab5c2;font-size:11px}.routeMapHint b{color:#e4eaf1}
.routeStopIconWrap{background:transparent!important;border:0!important}
.routeStopPin{width:34px;height:34px;border-radius:50% 50% 50% 8px;transform:rotate(-45deg);display:grid;place-items:center;background:#253443;border:2px solid #dce6ef;color:#fff;box-shadow:0 4px 12px #0008;font-size:11px;font-weight:900;cursor:grab;touch-action:none}
.routeStopPin::before{content:''}.routeStopPin.start{background:#31566f}.routeStopPin.waypoint{background:#2369a2}.routeStopPin.goal{background:#b13a42}.routeStopPin{line-height:1}.routeStopPin>*{transform:rotate(45deg)}
.routeStopPin{color:transparent;position:relative}.routeStopPin::after{content:attr(title);display:none}.routeStopIconWrap .routeStopPin{color:#fff}.routeStopIconWrap .routeStopPin{font-size:0}.routeStopIconWrap .routeStopPin::before{content:attr(data-label);font-size:11px;transform:rotate(45deg);color:#fff}
@media(max-width:520px){.waypointRowActions{flex-wrap:wrap}.wpDrag{order:-1}.routeMapHint{font-size:10px}}
/* Czytelne, okrągłe znaczniki trasy — etykiety A/1/2/B pozostają prosto. */
.routeStopPin{width:34px;height:34px;border-radius:50%;transform:none;color:#fff!important;font-size:0!important;display:grid;place-items:center;border:2px solid #e6edf5;box-shadow:0 4px 12px #0009;cursor:grab;touch-action:none;position:relative}
.routeStopPin::before{content:attr(data-label)!important;display:block;font-size:11px!important;line-height:1;transform:none!important;color:#fff;font-weight:900}

/* v0.8 — kształtowanie trasy, przeciągalna lokalizacja i aktywne autocomplete */
.mapInlineHint{margin:12px 2px -5px;color:#aab5c2;font-size:11px}.mapInlineHint b{color:#e4eaf1}
.routeShapeIconWrap{background:transparent!important;border:0!important}
.routeShapePin{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#dce8f4;color:#15202b;border:2px solid #243443;box-shadow:0 3px 12px #0009;font-weight:950;font-size:18px;line-height:1;cursor:grab;touch-action:none;user-select:none}
.routeShapePin.fixed{width:22px;height:22px;background:#69b9f1;color:#102334;border-color:#dcecf8;font-size:18px}
.routeShapePin:active{cursor:grabbing}
.shapeRemoveBtn{margin-top:7px;border:1px solid #556270;background:#1b232d;color:#e9eef3;border-radius:8px;padding:6px 9px;font:inherit;font-size:11px;cursor:pointer}
.shapeRemoveBtn:hover{background:#26313d}
.addressSuggestions::before{content:'Podpowiedzi adresów';display:block;color:#7f8c9b;font-size:9px;text-transform:uppercase;letter-spacing:.06em;padding:4px 9px 3px}
@media(max-width:520px){.mapInlineHint{font-size:10px}.routeShapePin{width:32px;height:32px}.routeShapePin.fixed{width:26px;height:26px}}

/* v0.8.2 — opcje trasowania i eksport */
.routeCheckOptions{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:2px}
.routeCheckOptions .loopOption{margin-top:0}
.routeExport{margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#0d1218;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.routeExport>span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:800;margin-right:2px}
.routeExport>small{color:var(--muted);font-size:9px;flex:1 1 220px}
.routeExport.hidden{display:none}
@media(max-width:600px){.routeCheckOptions{flex-direction:column;gap:7px}.routeExport{align-items:stretch}.routeExport button{flex:1 1 auto}.routeExport>small{width:100%;flex-basis:100%}}

/* v0.8.4 — eksport bezpośrednio pod mapą trasy */
#routeMap + .routeExport{margin-top:10px}


/* v0.8.7 — Moto Feel i wskazówki ubioru */
.motoFeelCard{margin-top:12px;display:grid;grid-template-columns:auto minmax(180px,.7fr) minmax(260px,1.3fr);gap:12px;align-items:center;padding:13px 14px;border:1px solid #314050;border-radius:14px;background:linear-gradient(135deg,#111a23,#0d1319)}
.motoFeelIcon{font-size:27px}.motoFeelMain>span,.motoFeelAdvice>span,.routeMotoFeel span{display:block;color:#9fabb9;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.motoFeelMain>b{display:block;font-size:30px;line-height:1.05;margin:2px 0}.motoFeelMain>small{display:block;color:var(--muted);font-size:10px;line-height:1.35}.motoFeelAdvice{border-left:1px solid #2b3541;padding-left:13px}.motoFeelAdvice p{margin:4px 0 0;color:#e0e6ec;font-size:11px;line-height:1.45}.motoFeelInline{color:#8fd0ff!important}
.routeMotoFeel{margin-top:12px;display:grid;grid-template-columns:auto 1fr;gap:11px;padding:13px;border-radius:13px;border:1px solid #31516b;background:#10202c}.routeMotoFeelIcon{font-size:24px}.routeMotoFeel b{display:block;font-size:19px;color:#9ad8ff;margin:2px 0}.routeMotoFeel small{display:block;color:#a5b2c0;font-size:10px}.routeMotoFeel p{margin:6px 0 0;color:#e0e7ee;font-size:11px;line-height:1.45}.routeMotoFeel.hidden{display:none}
@media(max-width:720px){.motoFeelCard{grid-template-columns:auto 1fr}.motoFeelAdvice{grid-column:1/-1;border-left:0;border-top:1px solid #2b3541;padding-left:0;padding-top:10px}}
@media(max-width:480px){.motoFeelCard{padding:11px}.motoFeelMain>b{font-size:26px}.routeMotoFeel{grid-template-columns:1fr}.routeMotoFeelIcon{display:none}}

/* v0.8.6 — Moto Feel jako dodatek obok podstawowych warunków; Rain Score pozostaje najważniejszy */
.miniStats{grid-template-columns:repeat(6,minmax(0,1fr))}
.miniStats>div{grid-column:span 2}
.miniStats>div:nth-last-child(-n+2){grid-column:span 3}
.miniStats .motoFeelMini b{color:#9ad8ff}
.miniStats .motoFeelMini small{line-height:1.25}
.rideAdvice{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rideAdvice>div{background:#0d1218;border:1px solid var(--line);border-radius:12px;padding:11px 12px}
.rideAdvice>div>span{display:block;color:#9fabb9;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}
.rideAdvice p,.rideAdvice .recommendation{margin:4px 0 0;padding:0;border:0;color:#dce3eb;font-size:11px;line-height:1.45}
@media(max-width:900px){.miniStats{grid-template-columns:repeat(2,minmax(0,1fr))}.miniStats>div,.miniStats>div:nth-last-child(-n+2){grid-column:span 1}.miniStats>div:last-child{grid-column:1/-1}}
@media(max-width:720px){.rideAdvice{grid-template-columns:1fr}}


/* v0.8.7 — uproszczone szczegóły techniczne Moto Feel */
.calGrid.motoFeelTechGrid{grid-template-columns:repeat(3,minmax(0,1fr))}
.motoFeelTechGrid b{overflow-wrap:anywhere}
@media(max-width:900px){.calGrid.motoFeelTechGrid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.calGrid.motoFeelTechGrid{grid-template-columns:1fr}}

.motoFeelTechGrid>div>small{display:block;margin-top:5px;color:var(--muted);font-size:10px;line-height:1.35}


/* v0.9.0 — okna pogodowe, ETA opadu, schnięcie drogi, alternatywa pogodowa, wiatr boczny i zachód słońca */
.currentInsights{margin-top:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.currentInsights.hidden{display:none}.decisionHint{background:#111a20;border:1px solid #31404d;border-radius:12px;padding:11px 12px}.decisionHint>span{display:block;color:#a9b4c0;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.decisionHint>b{display:block;margin:3px 0;font-size:16px}.decisionHint>small{display:block;color:var(--muted);font-size:10px;line-height:1.4}.decisionHint.subtle{border-color:#3a3741;background:#17151c}.decisionHint#leaveLaterCard{border-color:#5b4b20;background:#251f13}.decisionHint#rainEtaCard{border-color:#6c3439;background:#28171a}.decisionHint#dryEtaCard{border-color:#315d49;background:#11251d}
.weatherAlternative{margin-top:12px;display:grid;grid-template-columns:auto 1fr;gap:11px;padding:13px 14px;border:1px solid #315d49;background:#10251c;border-radius:14px}.weatherAlternative.hidden{display:none}.weatherAlternative.kept{opacity:.72}.weatherAltIcon{font-size:24px}.weatherAlternative span{display:block;color:#9fabb9;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.weatherAlternative b{display:block;font-size:17px;color:#78e6a9;margin:2px 0}.weatherAlternative p{margin:4px 0;color:#e0e7ee;font-size:11px;line-height:1.45}.weatherAlternative small{color:var(--muted);font-size:10px}.copyright{margin-bottom:5px;color:#8b96a4;font-size:11px;font-weight:700;letter-spacing:.02em}
@media(max-width:720px){.currentInsights{grid-template-columns:1fr}.weatherAlternative{grid-template-columns:1fr}.weatherAltIcon{display:none}}

/* v0.9.2 — odwracanie trasy w planerze */

/* v0.9.4 — czytelny natywny wybór daty/godziny w trybie ciemnym (Android/Chromium) */
input[type="datetime-local"],#departureInput{
  color-scheme:dark!important;
  background-color:#0c1117!important;
  color:#eef2f6!important;
  -webkit-text-fill-color:#eef2f6;
}
input[type="datetime-local"]::-webkit-date-and-time-value{color:#eef2f6;text-align:left}
input[type="datetime-local"]::-webkit-calendar-picker-indicator{filter:invert(1);opacity:.88;cursor:pointer}
@media(prefers-color-scheme:dark){
  input[type="date"],input[type="time"],input[type="datetime-local"]{color-scheme:dark!important;background:#0c1117!important;color:#eef2f6!important;-webkit-text-fill-color:#eef2f6}
}

/* v0.9.7 — widoczność / mgła wielomodelowa */
.decisionHint#fogCard{border-color:#55616d;background:#161d24}.miniStats #visibility{font-size:17px}.routePoint small{overflow-wrap:anywhere}
@media(max-width:720px){.miniStats #visibility{font-size:16px}}

/* v0.9.7 — informacyjne zamglenie (bez alarmu <1 km) */
.decisionHint#fogCard.mist{border-color:#40596a;background:#111d26}.decisionHint#fogCard.mist b{color:#b9d5e8}
