@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/IBMPlexMono-400.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/IBMPlexMono-500.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/IBMPlexSans-400.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/IBMPlexSans-500.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/IBMPlexSans-600.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/IBMPlexSans-700.woff2) format('woff2')}

:root{color-scheme:dark;--bg:#181818;--panel:#252525;--panel2:#303030;--chart-bg:#1d1d1d;--temperature:#ffa85c;--comparison:#69c9ba;--comparison-band:#549b90;--rain:#65a9ea;--rain-mean:#c3d9f5;--frost:#65a9ea;--summer:#d8bc60;--heat:#ed8767;--border:#555555;--text:#ededed;--muted:#b5b5b5;--ink:#ededed;--sans:"IBM Plex Sans",Helvetica,Arial,sans-serif;--mono:"IBM Plex Mono","SFMono-Regular",Consolas,monospace}
*{box-sizing:border-box}html{scroll-padding-top:85px}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.6 var(--sans);font-variant-numeric:tabular-nums}a{color:inherit;text-underline-offset:3px}button,select{font:inherit}button{cursor:pointer}button,select,a{outline-offset:4px}:focus-visible{outline:2px solid #ededed}.wrap{max-width:1360px;width:calc(100% - 64px);margin-inline:auto}.skip{position:absolute;top:-100px;left:16px;background:var(--chart-bg);padding:10px;z-index:20}.skip:focus{top:10px}.topbar{position:sticky;top:0;background:#303030;border-bottom:2px solid #888;z-index:10}.topinner{display:flex;align-items:center;gap:24px;min-height:70px}.brand{display:flex;gap:12px;align-items:center;font:600 19px/1.15 var(--sans);text-decoration:none}.brand small{display:block;font-size:10px;letter-spacing:.08em;font-weight:400;margin-top:5px;color:#b8b8b8}.brand-icon{display:grid;place-items:center;width:40px;height:40px;border:2px solid #888;font-size:20px;background:#333333}.topinner nav{margin-left:auto;display:flex;gap:24px;font:12px var(--mono)}.topinner nav a{text-decoration:none;border-bottom:1px solid transparent;padding-block:8px}.topinner nav a:hover{border-color:#ededed}.hero{padding:38px 0 24px;border-bottom:1px solid #555}.overline{font:11px var(--mono);letter-spacing:.13em}.signal{display:inline-block;width:7px;height:7px;background:#ccc;margin-right:9px}.hero-row{display:flex;align-items:end;justify-content:space-between;gap:24px}.hero h1{font:500 clamp(26px,3.4vw,40px)/1.15 var(--sans);letter-spacing:-.035em;margin:12px 0}.hero p{margin:0;color:#b8b8b8;max-width:70ch}.hero .updated{font:12px/1.6 var(--mono);white-space:nowrap;border:1px solid #555;padding:9px 12px;background:#353535}.main-section{margin-top:38px}.section-head{display:flex;gap:14px;align-items:start;margin-bottom:14px}.section-head .number{font:500 13px var(--mono);border:1px solid #555;padding:6px 9px;background:#353535}.section-head h2{font:500 23px/1.3 var(--sans);letter-spacing:-.04em;margin:0 0 4px}.section-head p{margin:0;color:var(--muted);font-size:13px}.panel{border:1px solid var(--border);background:var(--panel);padding:24px;min-width:0}.panel h3{font:600 16px/1.4 var(--sans);margin:0}.panel p{margin:6px 0 0;color:var(--muted);font-size:13px}.panel-top{display:flex;align-items:start;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:18px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid #555;background:var(--panel)}.kpi{min-width:0;padding:20px;border-right:1px solid #555}.kpi:last-child{border:0}.kpi span{display:block;font:11px/1.5 var(--mono);letter-spacing:.04em;min-height:33px;color:#b8b8b8}.kpi strong{display:block;font:500 clamp(22px,2.8vw,38px)/1.3 var(--mono);letter-spacing:-.04em;margin:7px 0 10px}.kpi small{display:block;font:11px/1.6 var(--mono);color:#b5b5b5}.segmented{display:flex;border:1px solid #666;background:#333333}.segmented button{padding:10px 16px;border:0;border-right:1px solid #555;background:transparent;color:#ededed;font:500 12px var(--mono);min-height:42px}.segmented button:last-child{border-right:0}.segmented button:hover{background:#444}.segmented button.active{background:#d8d8d8;color:#181818}.plot{width:100%;overflow-x:auto;overscroll-behavior-x:contain;border:1px solid #555;background:var(--chart-bg)}.plot svg{display:block;width:100%;min-width:760px;height:auto;touch-action:pan-x pan-y}.axis{font:12px var(--mono);fill:#d2d2d2}.gridline{stroke:#3e3e3e;stroke-width:1;shape-rendering:crispEdges}.gridline.major{stroke:#737373}.gridline.zero{stroke:#888;stroke-width:1.5}.chart-axis{stroke:#737373;stroke-width:1;shape-rendering:crispEdges}svg path,svg circle{vector-effect:non-scaling-stroke}.readout{font:12px/1.75 var(--mono);border:1px solid #555;border-left:4px solid #999;background:#303030;min-height:45px;padding:10px 14px;margin-top:12px;overflow-wrap:anywhere}.legend{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:14px;font:11px/1.6 var(--mono);color:#d2d2d2}.legend>span{display:flex;align-items:center;gap:8px}.swatch{display:inline-block;width:26px;height:0;border-top:3px solid var(--temperature)}.swatch.dotted{border-top:2px dotted var(--comparison)}.swatch.estimated{border-top:2px dashed var(--temperature)}.swatch.band{height:12px;border:1px solid var(--comparison-band);background:#2c403c}.swatch.rain{height:12px;width:13px;border:1px solid var(--rain);background:var(--rain)}.panel-divider{height:1px;background:#999;margin:26px 0}.footnote{font-size:12px!important;line-height:1.7;color:#b5b5b5!important}.muted{color:#b5b5b5!important}.choose{display:flex;align-items:center;gap:10px;font:12px var(--mono)}.choose select{border:1px solid #555;background:var(--chart-bg);color:#ededed;min-height:42px;padding:9px 12px;font:13px var(--mono)}.year-controls{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px}.year-controls .muted{font:11px var(--mono)}.year-scroll{width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-color:#777 #252525;background:var(--chart-bg);border:1px solid #555}.year-scroll svg{display:block;width:100%;min-width:1100px;height:auto;aspect-ratio:1140/390;touch-action:pan-x pan-y}.stats{display:flex;flex-direction:column;margin-top:20px}.stat-row{display:grid;grid-template-columns:65px minmax(0,1fr);gap:20px;border-top:1px solid #555;padding:18px 0;align-items:start}.stat-year{font:500 21px var(--mono)}.stat-bars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.bar-item{min-width:0}.bar-caption{font:12px var(--mono);color:#d2d2d2}.bar-track{height:30px;background:#333;border:1px solid #555;margin:7px 0}.bar-fill{height:100%;min-width:0;display:flex;align-items:center;padding:0 7px;color:#ededed;font:500 13px var(--mono)}.stat-small{font:10px/1.6 var(--mono);color:#b5b5b5;display:block}.method-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.method-grid p{line-height:1.8}.footer{border-top:2px solid #666;margin-top:45px}.foot{display:flex;justify-content:space-between;gap:20px;padding-block:24px;font:11px/1.6 var(--mono);color:#b8b8b8}.forecast-scroll{width:800px;max-width:100%;margin-inline:auto;overflow-x:auto;overscroll-behavior-x:contain}.forecast-scroll iframe{display:block;filter:saturate(.85)}.forecast-scroll>div{position:sticky;left:0;margin-top:8px;font:12px var(--mono)}
@media(max-width:850px){.wrap{width:calc(100% - 28px)}.topinner{min-height:64px}.topinner nav{display:none}.hero{padding-top:25px}.hero-row{display:block}.hero .updated{display:inline-block;margin-top:18px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi{padding:16px;border-bottom:1px solid #555}.kpi:nth-child(2){border-right:0}.kpi:nth-child(n+3){border-bottom:0}.panel{padding:18px 13px}.main-section{margin-top:30px}.section-head h2{font-size:20px}.section-head p{font-size:12px}.panel-top .segmented{width:100%;display:grid;grid-template-columns:repeat(4,1fr)}.segmented button{padding:10px 5px}.year-scroll svg{min-width:1500px;aspect-ratio:1500/390}.stat-bars{grid-template-columns:1fr;gap:16px}.stat-row{grid-template-columns:52px minmax(0,1fr);gap:14px}.method-grid{grid-template-columns:1fr}.foot{flex-wrap:wrap}.plot svg{min-width:760px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
@media print{.topbar,.segmented,.year-controls,.forecast-panel{display:none}.wrap{width:100%;max-width:none}body{background:white}.panel,.kpi-grid{break-inside:avoid}.plot svg{min-width:0}.year-scroll svg{min-width:0;height:auto}.main-section{margin-top:20px}}

.bar-caption{display:flex;justify-content:space-between;gap:12px}.bar-caption strong{color:#ededed;font-size:15px}

.swatch.rolling{border-color:var(--rain-mean)}

@media print{:root{color-scheme:light;--bg:#fff;--panel:#fff;--panel2:#eee;--chart-bg:#fff;--text:#111;--muted:#444;--temperature:#7a4010;--comparison:#24665c;--rain:#2c6596;--rain-mean:#172e47}.axis{fill:#222}.legend,.footnote,.muted,.stat-small,.bar-caption,.bar-caption strong{color:#333!important}.readout{background:#eee;color:#111}}

/* Kombinierte Wetterdiagramme: Zeitfenster, Ein-Grad-Raster und Kurvenauswahl. */
:root{--maximum:#f27878;--minimum:#73b9fa;--record-max:#d0a5ee;--record-min:#75d8c3}
.kpi strong .kpi-number{display:inline;min-height:0;font:inherit;letter-spacing:inherit}
.plot.compact svg{min-width:0;width:100%;max-width:100%}
.plot.long svg{max-width:none}
.year-scroll svg{max-width:none;aspect-ratio:auto}
.gridline{stroke:#3d3d3d}.gridline.major{stroke:#636363}.gridline.zero{stroke:#a0a0a0;stroke-width:1.5}.gridline.day-grid{stroke:#333;stroke-width:.6}
.axis{font-size:11px}.rain-axis{fill:var(--rain)}
.chart-tooltip-text{font:11px var(--mono);fill:var(--text)}
.chart-selection{pointer-events:none}.temperature-series path{stroke-linejoin:round;stroke-linecap:round}
.swatch.maximum{border-color:var(--maximum)}.swatch.minimum{border-color:var(--minimum)}
.swatch.historical{border-top-style:dashed;opacity:.6}.swatch.mean{border-color:var(--temperature)}
.swatch.record-max{border-color:var(--record-max);border-top-style:dotted}.swatch.record-min{border-color:var(--record-min);border-top-style:dotted}
.year-legend{gap:10px 22px}.year-legend>span{min-width:210px}
@media(max-width:850px){.year-legend{font-size:10px}.year-legend>span{min-width:0}.readout{font-size:11px}}

svg rect[role="slider"]{outline:none}svg rect[role="slider"]:focus-visible{outline:1px solid var(--text);outline-offset:-2px}

@media(max-width:850px){.wrap{width:calc(100% - 12px)}#verlauf>.panel{padding-inline:3px}#verlauf .panel-top,#verlauf .legend,#verlauf .readout,#verlauf .footnote{margin-inline:5px}.plot.compact svg{max-width:100%}}

#jahr{--temperature:#f2eadc;--maximum:#e88973;--minimum:#78b7d0;--record-max:#e88973;--record-min:#78b7d0}#jahr .swatch.orange{border-color:var(--temperature)}

#year-chart .gridline{stroke:#333;stroke-opacity:.4;stroke-width:.6}#year-chart .gridline.major{stroke:#555;stroke-opacity:.45;stroke-width:.7}#year-chart .gridline.zero{stroke:#777;stroke-opacity:.6;stroke-width:.8}#year-chart .gridline.day-grid{stroke-opacity:.15;stroke-width:.4}

.year-zoom{display:flex;align-items:center;gap:8px;font:12px var(--mono)}.year-zoom button{min-height:42px;min-width:42px;padding:8px;border:1px solid var(--border);background:var(--panel2);color:var(--text);font:inherit}.year-zoom output{min-width:45px;text-align:center}

.climate-panel{margin-top:18px}.climate-scroll{overflow-x:auto;margin-top:18px;background:var(--chart-bg);border:1px solid var(--border)}.climate-scroll svg{display:block;width:100%;min-width:760px;height:auto}.climate-scroll svg [role="button"]{cursor:pointer}.climate-matrix{border-collapse:collapse;width:100%;min-width:760px;font:12px var(--mono);font-variant-numeric:tabular-nums}.climate-matrix th,.climate-matrix td{border:1px solid #555;text-align:center;padding:10px 4px}.climate-matrix th{background:var(--panel2)}.climate-matrix button{color:inherit;background:none;border:0;font:inherit;padding:6px;width:100%;min-height:30px}.climate-classes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:18px}.climate-class h4{font:500 13px var(--sans);min-height:38px;margin:0 0 10px}.climate-count-row{display:grid;grid-template-columns:40px 1fr 34px;align-items:center;gap:8px;font:11px var(--mono);margin:8px 0}.climate-count-track{height:15px;background:#333}.climate-count-track>div{height:100%}.climate-count-row strong{text-align:right}@media(max-width:850px){.climate-classes{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.climate-scroll svg{min-width:760px}.climate-panel{padding-inline:8px}}@media(max-width:420px){.climate-classes{grid-template-columns:1fr}.climate-count-track{height:18px}}

.climate-count-row{grid-template-columns:40px 1fr}.climate-count-track{position:relative;height:23px}.climate-count-track strong{position:absolute;inset:0;text-align:left;padding:2px 6px;color:#fff;text-shadow:none;line-height:19px}.climate-matrix button{white-space:pre-line}.climate-matrix tbody th{position:sticky;left:0;z-index:1}.anomaly-bar{transform-box:view-box}

.climate-count-track strong{inset:auto;left:2px;top:2px;width:auto;min-width:22px;padding:1px 5px;line-height:17px;color:#181818;background:#dedede;border:1px solid #555;font-weight:500;text-shadow:none}.climate-matrix-tooltip{position:fixed;z-index:40;pointer-events:none;max-width:calc(100vw - 16px);padding:12px 14px;border:1px solid var(--muted);background:var(--panel2);color:var(--text);white-space:pre-line;font:12px/1.7 var(--mono)}

.rain-overview-kpis{margin-bottom:18px}.rain-overview-kpis strong{color:var(--rain)}#rain-next-wet{font-size:20px;letter-spacing:-.03em}.rain-overview-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.rain-overview-controls>.muted{font:11px var(--mono)}.rain-overview-scroll{width:100%;overflow-x:auto;background:var(--chart-bg);border:1px solid var(--border);overscroll-behavior-x:contain}.rain-overview-scroll svg{display:block;max-width:none;touch-action:pan-x pan-y}.rain-forecast-swatch{display:inline-block;width:13px;height:12px;border:1px dashed #b7d6f0;background:#33485b}@media(max-width:850px){#niederschlag>.panel{padding-inline:4px}#niederschlag .panel-top,#niederschlag .rain-overview-controls,#niederschlag .legend,#niederschlag .footnote,#niederschlag .readout{margin-inline:5px}.rain-overview-controls .choose{flex-wrap:wrap}.rain-overview-controls select{max-width:100%}.rain-overview-kpis .kpi{padding:12px}#rain-next-wet{font-size:17px}}

.rain-line-options{display:flex;flex-wrap:wrap;gap:10px 20px;font:12px var(--mono)}.rain-line-options label{display:flex;align-items:center;gap:7px;min-height:38px;cursor:pointer}.rain-line-options input{accent-color:var(--rain);width:16px;height:16px}

.rain-overview-frame{position:relative;background:var(--chart-bg);border:1px solid var(--border);isolation:isolate}.rain-overview-frame .rain-overview-scroll{border:0}.rain-fixed-axis{position:absolute;top:0;height:500px;pointer-events:none;z-index:1}.rain-fixed-axis.left{left:0;width:30px}.rain-fixed-axis.right{right:0;width:58px}.rain-fixed-axis .axis{font-size:10px;letter-spacing:-.3px}

.year-frame{position:relative;border:1px solid #555;background:var(--chart-bg);isolation:isolate}.year-frame .year-scroll{border:0}.year-fixed-axis{position:absolute;top:0;left:0;width:44px;pointer-events:none;z-index:1}

.temp-frame{position:relative;border:1px solid #555;background:var(--chart-bg);isolation:isolate}.temp-frame .plot{border:0}.temp-fixed-axis{position:absolute;top:0;height:500px;pointer-events:none;z-index:1}.temp-fixed-axis.left{left:0;width:32px}.temp-fixed-axis.right{right:0;width:30px}
.climate-frame{position:relative;overflow:hidden;margin-top:18px;background:var(--chart-bg);border:1px solid var(--border);isolation:isolate}.climate-frame .climate-scroll{margin-top:0;border:0;overscroll-behavior-x:contain}.climate-fixed-axis{position:absolute;top:0;left:0;width:100%;min-width:760px;height:auto;pointer-events:none;z-index:1}.climate-matrix{table-layout:fixed}.climate-matrix th:first-child{width:54px;min-width:54px}.climate-matrix tbody th{position:static}.climate-matrix-years{position:absolute;left:0;top:0;border-collapse:collapse;width:54px;background:var(--panel2);font:12px var(--mono);pointer-events:none;z-index:1}.climate-matrix-years th{border:1px solid #555;text-align:center;padding:10px 4px}.climate-matrix thead tr,.climate-matrix-years thead tr{height:40px}.climate-matrix tbody tr,.climate-matrix-years tbody tr{height:51px}

.rain-model-controls{margin-bottom:16px}.rain-model-controls .choose{flex-wrap:wrap}.rain-model-controls select{max-width:100%}@media(max-width:850px){#niederschlag .rain-model-controls{margin-inline:5px}}

.brand-icon{flex-shrink:0;color:#e0ded4}.brand-icon svg{display:block;width:34px;height:34px}.hero h1{margin-bottom:0}
