:root{--bg:#eef4f1;--card:#fff;--ink:#15231e;--muted:#697a72;--line:#dce7e2;--green:#0b7257;--green2:#16a176;--soft:#e7f5ef;--danger:#c55148;--amber:#d99b1f;--shadow:0 18px 45px rgba(21,54,43,.10);--radius:22px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,Segoe UI,Roboto,Arial,sans-serif}.weather-app{max-width:1500px;margin:auto;min-height:100vh;padding:18px}.hero{position:relative;overflow:hidden;border-radius:28px;background:linear-gradient(125deg,#083c31 0%,#0b7759 58%,#24a678 100%);color:#fff;box-shadow:0 22px 55px rgba(8,64,48,.18)}.hero:after{content:"";position:absolute;width:420px;height:420px;border-radius:50%;right:-120px;top:-220px;background:rgba(255,255,255,.08)}.hero-inner{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:28px 32px 8px;position:relative;z-index:1}.eyebrow,.section-label{text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:800;opacity:.78}.hero h1{font-size:clamp(28px,4vw,46px);margin:6px 0 6px;letter-spacing:-.03em}.station-meta{display:flex;gap:8px;flex-wrap:wrap;color:rgba(255,255,255,.78);font-size:13px}.live-badge{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);padding:9px 13px;border-radius:999px;font-size:12px;font-weight:700}.live-badge i{width:8px;height:8px;border-radius:50%;background:#82edaa;box-shadow:0 0 0 5px rgba(130,237,170,.14)}.live-badge.stale i{background:#ffd26a}.live-badge.bad i{background:#ff827a}.hero-current{display:grid;grid-template-columns:auto minmax(230px,1fr) repeat(3,minmax(120px,auto));align-items:center;gap:22px;padding:14px 32px 28px;position:relative;z-index:1}.big-temp{display:flex;align-items:flex-start;font-size:clamp(48px,7vw,78px);font-weight:750;line-height:1;letter-spacing:-.06em}.big-temp small{font-size:22px;margin:8px 0 0 5px;font-weight:600}.hero-condition{display:flex;align-items:center;gap:13px}.weather-symbol{font-size:42px}.hero-condition b,.hero-condition span{display:block}.hero-condition span{font-size:12px;color:rgba(255,255,255,.72);margin-top:3px}.hero-mini{border-left:1px solid rgba(255,255,255,.18);padding-left:18px}.hero-mini span,.hero-mini b{display:block}.hero-mini span{font-size:11px;color:rgba(255,255,255,.7);margin-bottom:4px}.hero-mini b{font-size:17px}.app-tabs{display:flex;gap:7px;overflow:auto;margin:18px 0 14px;padding:5px;background:rgba(255,255,255,.62);border:1px solid rgba(13,74,56,.08);border-radius:15px;backdrop-filter:blur(10px)}.tab{border:0;background:transparent;padding:11px 18px;border-radius:11px;font-weight:750;color:#52665e;cursor:pointer;white-space:nowrap}.tab:hover{background:#fff}.tab.active{background:#fff;color:var(--green);box-shadow:0 5px 16px rgba(14,70,53,.08)}.tab-page{display:none}.tab-page.active{display:block}.metric-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.metric-card,.panel{background:var(--card);border:1px solid rgba(13,74,56,.07);box-shadow:var(--shadow);border-radius:var(--radius)}.metric-card{padding:16px;display:flex;gap:12px;align-items:center;min-height:96px}.metric-icon{width:40px;height:40px;display:grid;place-items:center;background:var(--soft);border-radius:12px;font-size:19px;color:var(--green)}.metric-card span,.metric-card strong,.metric-card small{display:block}.metric-card span{font-size:11px;color:var(--muted);font-weight:700}.metric-card strong{font-size:20px;margin:3px 0;letter-spacing:-.02em}.metric-card small{font-size:10px;color:#809087}.layout-main{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(280px,.9fr);gap:14px;margin-top:14px}.panel{padding:20px}.side-stack{display:grid;gap:14px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}.panel-head h2{margin:3px 0 0;font-size:20px}.panel-head p{color:var(--muted);margin:6px 0 0;font-size:12px;max-width:700px}.link-btn,#refreshBtn{border:0;background:transparent;color:var(--green);font-weight:750;cursor:pointer}.chart-wrap{position:relative;width:100%;overflow:hidden}.chart-wrap.compact{height:330px}.chart-wrap.large{height:560px}.chart-wrap canvas{width:100%;height:100%;display:block}.chart-quick,.metric-switches{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}.switch{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:#f8fbfa;font-size:11px;font-weight:700;color:#52665e;cursor:pointer}.switch input{accent-color:var(--green);margin:0}.switch:has(input:checked){background:var(--soft);border-color:#b9ddcf;color:#145640}.today-list,.status-list{display:grid;gap:8px}.list-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #edf2ef;font-size:12px}.list-row:last-child{border-bottom:0}.list-row span{color:var(--muted)}.list-row b{text-align:right}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;background:#38ae74}.status-dot.warn{background:#e2a927}.status-dot.bad{background:#d55d54}.range-badge{font-size:12px;font-weight:800;background:var(--soft);color:var(--green);padding:8px 11px;border-radius:10px}.chart-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}.summary-item{padding:8px;border:1px solid #bdd8cd;border-radius:10px}.summary-item span,.summary-item b{display:block}.summary-item span{font-size:10px;color:var(--muted)}.summary-item b{font-size:14px;margin-top:3px}.archive-controls{display:flex;gap:8px}.archive-controls select{border:1px solid var(--line);border-radius:10px;padding:9px 12px;background:#fff;color:var(--ink)}.heatmap-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:#fbfcfb}.heatmap-scroll canvas{display:block}.heatmap-legend{display:flex;align-items:center;gap:10px;margin:8px 0 12px;font-size:10px;color:var(--muted)}.heatmap-legend div{height:8px;flex:1;max-width:280px;border-radius:8px;background:linear-gradient(90deg,#e3edf0,#8ccac1,#f0d15b,#e87a4d)}.archive-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}.records-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.record-card{background:#fff;border-radius:20px;padding:20px;border:1px solid rgba(13,74,56,.07);box-shadow:var(--shadow)}.record-card span,.record-card strong,.record-card small{display:block}.record-card span{font-size:11px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.06em}.record-card strong{font-size:30px;margin:10px 0 4px}.record-card small{color:#73837b}footer{display:flex;justify-content:space-between;gap:10px;align-items:center;color:#6d7c75;font-size:11px;padding:18px 4px 4px;flex-wrap:wrap}.toast{position:fixed;right:22px;bottom:22px;background:#153d31;color:#fff;border-radius:12px;padding:12px 15px;box-shadow:0 16px 35px rgba(0,0,0,.18);transform:translateY(100px);opacity:0;transition:.25s;z-index:100}.toast.show{transform:none;opacity:1}
@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(3,1fr)}.hero-current{grid-template-columns:auto 1fr repeat(2,minmax(120px,auto))}.hero-mini:last-child{display:none}.layout-main{grid-template-columns:1fr}.side-stack{grid-template-columns:1fr 1fr}.records-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.weather-app{padding:8px}.hero{border-radius:20px}.hero-inner{padding:22px 20px 5px}.hero-current{padding:12px 20px 22px;grid-template-columns:1fr 1fr;gap:14px}.hero-condition{justify-self:end}.hero-mini{border-left:0;padding-left:0}.live-badge{position:absolute;right:14px;top:14px}.station-meta{padding-right:110px}.metric-grid{grid-template-columns:repeat(2,1fr)}.metric-card{min-height:86px;padding:12px}.layout-main{margin-top:10px}.side-stack{grid-template-columns:1fr}.panel{padding:15px;border-radius:17px}.chart-wrap.compact{height:300px}.chart-wrap.large{height:440px}.chart-summary,.archive-stats{grid-template-columns:repeat(2,1fr)}.archive-head{display:block}.archive-controls{margin-top:12px}.records-grid{grid-template-columns:1fr}.hero-mini b{font-size:14px}}
@media(prefers-color-scheme:dark){:root{--bg:#0f1714;--card:#16211d;--ink:#edf5f1;--muted:#9bad9f;--line:#2a3a34;--soft:#17382d;--shadow:0 18px 45px rgba(0,0,0,.22)}.metric-card,.panel,.record-card{background:var(--card)}.app-tabs{background:#15201c}.tab:hover,.tab.active{background:#1e2b26}.archive-controls select{background:#16211d;color:var(--ink)}.switch{background:#15201c}.summary-item{background:#111b17}.heatmap-scroll{background:#111713}.list-row{border-color:#24332e}}

/* Light page embedding: keep dashboard consistently light */
body{background:#f4f6f5}
.chart-wrap.compact,.chart-wrap.large,.heatmap-scroll{background:#fbfcfb;border-radius:16px}
:root{--bg:#eef4f1;--card:#fff;--ink:#15231e;--muted:#697a72;--line:#dce7e2;--green:#0b7257;--green2:#16a176;--soft:#e7f5ef;--danger:#c55148;--amber:#d99b1f;--shadow:0 18px 45px rgba(21,54,43,.10);--radius:22px}
.metric-card,.panel,.record-card{background:var(--card)}
.app-tabs{background:rgba(255,255,255,.62)}
.tab:hover,.tab.active{background:#fff}
.archive-controls select,.switch,.summary-item{background:#fff;color:var(--ink)}
/* Diagramm- und Klimaarchiv-Optimierung 1.3 */
.weather-app{width:100%;overflow-x:hidden}
.chart-wrap,.heatmap-scroll{width:100%;max-width:100%;overflow:hidden}
.chart-wrap canvas,.heatmap-scroll canvas{display:block;max-width:100%}
.archive-controls{flex-wrap:wrap}
.compare-block{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.compare-head h3{margin:3px 0 4px;font-size:18px}.compare-head p{margin:0 0 12px;color:var(--muted);font-size:12px}
.year-switches{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 8px}.year-switch{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;padding:7px 10px;background:#fff;color:#52665e;font-size:11px;font-weight:750;cursor:pointer}.year-switch input{margin:0;accent-color:var(--green)}.year-switch.active{background:var(--soft);border-color:#b9ddcf;color:#145640}
.compare-legend{display:flex;flex-wrap:wrap;gap:12px;min-height:24px;margin:7px 0 2px}.compare-legend-item{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:#53665e}.compare-legend-item i{display:inline-block;width:18px;height:3px;border-radius:3px}
.chart-wrap.compare{height:780px;margin-top:4px}.compare-note{margin-top:7px;color:var(--muted);font-size:11px}
@media(max-width:700px){.chart-wrap.compare{height:560px}.archive-controls{width:100%}.archive-controls select{flex:1 1 140px;min-width:0}.year-switch{padding:6px 8px}.compare-block{margin-top:16px}}

.compare-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.compare-controls{flex:0 0 auto}.compare-controls select{border:1px solid var(--line);border-radius:10px;padding:9px 12px;background:#fff;color:var(--ink);min-width:190px}@media(max-width:700px){.compare-head{display:block}.compare-controls{margin-top:10px}.compare-controls select{width:100%;min-width:0}.archive-stats{grid-template-columns:repeat(2,1fr)}}

/* v1.6 - Mehrjahresvergleich auch im Jahresstreifen */
.heat-compare-tools{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:3px 0 10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fbfcfb}.heat-compare-tools>div:first-child{min-width:180px}.heat-compare-tools b,.heat-compare-tools span{display:block}.heat-compare-tools b{font-size:11px;color:#32473e}.heat-compare-tools span{font-size:10px;color:var(--muted);margin-top:2px}.heat-year-switches{justify-content:flex-end;margin:0}.heatmap-scroll{overflow:hidden}.heat-compare-note{font-size:10px;color:var(--muted);margin:6px 2px 0}.heatmap-scroll canvas{width:100%;max-width:100%}
@media(max-width:700px){.heat-compare-tools{display:block}.heat-year-switches{justify-content:flex-start;margin-top:8px}.heat-compare-tools>div:first-child{min-width:0}}

/* v1.7 - gemeinsames Klimaarchiv: eine Auswahl fuer beide Darstellungen */
.climate-tools{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:3px 0 10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fbfcfb}
.climate-tools>div:first-child{min-width:190px;max-width:240px}
.climate-tools b,.climate-tools span{display:block}.climate-tools b{font-size:11px;color:#32473e}.climate-tools span{font-size:10px;color:var(--muted);margin-top:2px;line-height:1.35}
.climate-year-switches{justify-content:flex-end;margin:0}
.heatmap-scroll{position:relative;overflow:hidden}
.heatmap-scroll canvas{cursor:default}
.archive-tooltip{position:absolute;display:none;z-index:20;min-width:180px;max-width:250px;padding:9px 11px;border:1px solid #cfdcd6;border-radius:9px;background:rgba(255,255,255,.97);box-shadow:0 9px 24px rgba(23,57,45,.16);color:#263a32;font-size:10px;line-height:1.35;pointer-events:none}
.archive-tooltip.show{display:block}
.archive-tooltip>b{display:block;margin-bottom:5px;font-size:11px;color:#0b7257}
.archive-tooltip span{display:flex;justify-content:space-between;gap:14px;padding:2px 0;white-space:nowrap}
.archive-tooltip span strong{font-weight:800;color:#172a22}
.compare-block{margin-top:18px}
.compare-head{margin-bottom:6px}
@media(max-width:700px){.climate-tools{display:block}.climate-tools>div:first-child{min-width:0;max-width:none}.climate-year-switches{justify-content:flex-start;margin-top:8px}.archive-tooltip{max-width:220px}.archive-tooltip span{gap:9px}}

/* v1.9 - Sonnenschein wie Client + Umschaltung Klassisch/Kreisdiagramm */
.compare-controls label{display:block;font-size:10px;font-weight:800;color:var(--muted);margin:0 0 4px}.compare-controls select{min-width:150px}.compare-legend-item{white-space:nowrap}

.compare-tooltip{position:absolute;z-index:30}.compare-tooltip span i{display:inline-block;width:14px;height:3px;border-radius:3px;margin-right:6px;flex:0 0 auto}.compare-tooltip span strong{margin-left:auto}.compare-tooltip span{align-items:center}

/* v1.16 - Website-News */
.news-section{margin-top:14px}.news-head{margin-bottom:12px}.news-latest{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.news-card{border:1px solid var(--line);border-radius:15px;background:#fbfcfb;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr);min-height:130px}.news-card.has-image{grid-template-columns:minmax(0,1fr) minmax(150px,.42fr)}.news-card-body{padding:15px 16px}.news-date{font-size:10px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.news-card h3{margin:5px 0 7px;font-size:17px;color:var(--ink)}.news-card p{margin:0;color:#52665e;font-size:12px;line-height:1.5;white-space:pre-line}.news-card img{width:100%;height:100%;min-height:130px;object-fit:cover}.news-archive{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.news-archive-item{display:grid;grid-template-columns:120px 1fr;gap:15px;padding:10px 4px;border-bottom:1px solid #edf2ef}.news-archive-item:last-child{border-bottom:0}.news-archive-item time{font-size:10px;color:var(--muted)}.news-archive-item b{display:block;font-size:12px}.news-archive-item p{margin:3px 0 0;color:#65776f;font-size:11px;line-height:1.4}.news-archive-item img{width:96px;height:58px;object-fit:cover;border-radius:8px;margin-top:6px}@media(max-width:800px){.news-latest{grid-template-columns:1fr}.news-card.has-image{grid-template-columns:1fr}.news-card img{max-height:220px}.news-archive-item{grid-template-columns:1fr;gap:3px}}


/* v1.16.2 - Impressum */
.footer-actions{display:inline-flex;align-items:center;gap:14px}.footer-link{color:var(--green);font-weight:750;text-decoration:none}.footer-link:hover{text-decoration:underline}.legal-shell{max-width:980px;margin:0 auto;padding:18px}.legal-hero{border-radius:24px;background:linear-gradient(125deg,#083c31 0%,#0b7759 68%,#24a678 100%);color:#fff;padding:25px 28px;box-shadow:var(--shadow)}.legal-hero .eyebrow{opacity:.78}.legal-hero h1{margin:5px 0 5px;font-size:clamp(27px,5vw,42px);letter-spacing:-.03em}.legal-hero p{margin:0;color:rgba(255,255,255,.76);font-size:13px}.legal-nav{margin:14px 0}.legal-nav a{display:inline-flex;align-items:center;gap:6px;padding:9px 13px;border-radius:11px;background:#fff;border:1px solid var(--line);color:var(--green);font-size:12px;font-weight:750;text-decoration:none}.legal-card{background:#fff;border:1px solid rgba(13,74,56,.07);box-shadow:var(--shadow);border-radius:22px;padding:26px 28px}.legal-card h2{margin:0 0 14px;font-size:22px}.legal-card h3{margin:24px 0 8px;font-size:15px}.legal-card p{margin:7px 0;color:#445850;line-height:1.65;font-size:13px}.legal-placeholder{display:inline-block;border-radius:6px;background:#fff1c8;color:#6e4a00;padding:1px 5px;font-weight:750}.legal-note{margin-top:22px;padding:12px 14px;border:1px solid #e6d5a3;border-radius:11px;background:#fff9e8;color:#644e16;font-size:12px;line-height:1.5}.legal-footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:11px;padding:17px 4px}.legal-footer a{color:var(--green);font-weight:750;text-decoration:none}@media(max-width:600px){.legal-shell{padding:10px}.legal-card{padding:20px}.footer-actions{width:100%;justify-content:space-between}}


/* v1.17 - Wetterradar */
.radar-panel{padding-bottom:16px}.radar-head{align-items:center}.radar-live{flex:0 0 auto;padding:8px 11px;border-radius:999px;background:#eef4f1;color:#667970;font-size:11px;font-weight:800}.radar-live.ok{background:#e6f5ee;color:#0b7257}.radar-live.bad{background:#fde9e6;color:#a54039}.radar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:2px 0 10px}.radar-buttons{display:flex;flex-wrap:wrap;gap:7px}.radar-btn{border:1px solid var(--line);border-radius:10px;background:#fff;color:#315247;padding:8px 12px;font-size:12px;font-weight:750;cursor:pointer}.radar-btn:hover{background:var(--soft);border-color:#b9ddcf}.radar-play{min-width:108px}.radar-time{font-size:15px;color:#173b30;white-space:nowrap}.radar-map-wrap{position:relative;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#edf3f0}.radar-map-wrap #radarMap{height:620px;width:100%;z-index:1}.radar-error{position:absolute;inset:0;display:grid;place-items:center;padding:30px;background:#f7faf8;color:#6b7d74;font-size:13px;z-index:5}.radar-error[hidden]{display:none}.radar-timeline{display:grid;grid-template-columns:70px minmax(0,1fr) 70px;align-items:center;gap:10px;margin:12px 3px 6px;color:var(--muted);font-size:10px}.radar-timeline span:last-child{text-align:right}.radar-timeline input{width:100%;accent-color:var(--green)}.radar-meta{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:8px;color:var(--muted);font-size:10px;flex-wrap:wrap}.radar-legend{display:flex;align-items:center;gap:7px}.radar-legend i{display:inline-block;width:170px;height:8px;border-radius:99px;background:linear-gradient(90deg,#80dbe9,#0092cd,#004a70,#ffe000,#ff8100,#c10000,#ff77ff)}.radar-source a{color:var(--green);font-weight:750;text-decoration:none}.radar-source a:hover{text-decoration:underline}.radar-note{margin:8px 2px 0;color:#75867e;font-size:10px;line-height:1.45}.leaflet-control-attribution{font-size:9px!important}.leaflet-popup-content{font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;font-size:12px;line-height:1.4}@media(max-width:700px){.radar-head{display:block}.radar-live{display:inline-flex;margin-top:10px}.radar-toolbar{align-items:flex-start;flex-direction:column}.radar-time{order:-1}.radar-map-wrap #radarMap{height:500px}.radar-timeline{grid-template-columns:55px minmax(0,1fr) 55px}.radar-legend i{width:110px}.radar-meta{align-items:flex-start;flex-direction:column;gap:8px}}



/* v1.17.9 - Jahresvergleich und klickbare Tagesdetails */
.summary-item{min-width:0;min-height:82px;display:flex;flex-direction:column;justify-content:flex-start}.summary-item b{font-size:15px;white-space:nowrap}.summary-item .summary-extra{margin-top:2px;color:#50645b;font-size:10px;font-weight:650}.summary-item>span:first-child{font-weight:750}.summary-item>span:not(:first-child){line-height:1.35}@media(max-width:1000px){.chart-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:430px){.chart-summary{grid-template-columns:1fr}}


/* Website 1.17.9 - Jahresvergleich wie im Client + Tagesdetail-Dialog */
.annual-block{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}.annual-chart-wrap{position:relative;height:330px;margin-top:10px}.annual-chart-wrap canvas{width:100%;height:100%;display:block}.annual-tooltip{pointer-events:none}.annual-table-wrap{margin-top:12px;overflow-x:auto;border:1px solid var(--line);border-radius:13px;background:#fff}.annual-table{width:100%;border-collapse:collapse;min-width:760px;font-size:11px}.annual-table th,.annual-table td{padding:9px 10px;border-right:1px solid #e5ebe8;border-bottom:1px solid #e5ebe8;text-align:center;white-space:nowrap}.annual-table th:first-child,.annual-table td:first-child{text-align:left;font-weight:800}.annual-table th{background:#f4f8f6;color:#53675e;font-size:10px;text-transform:uppercase;letter-spacing:.04em}.annual-table tr:last-child td{border-bottom:0}.annual-table th:last-child,.annual-table td:last-child{border-right:0}.day-detail-modal[hidden]{display:none}.day-detail-modal{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;padding:20px}.day-detail-backdrop{position:absolute;inset:0;background:rgba(22,39,33,.55);backdrop-filter:blur(2px)}.day-detail-dialog{position:relative;z-index:1;width:min(760px,calc(100vw - 32px));max-height:min(86vh,780px);overflow:auto;background:#fff;border-radius:20px;border:1px solid #d8e2dd;box-shadow:0 24px 70px rgba(14,35,27,.28);padding:24px}.day-detail-dialog h3{margin:5px 40px 18px 0;font-size:21px;color:#183c30}.day-detail-close{position:absolute;right:14px;top:12px;width:36px;height:36px;border:0;border-radius:50%;background:#edf4f1;color:#315247;font-size:24px;line-height:1;cursor:pointer}.day-detail-close:hover{background:#dcebe5}.day-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.day-detail-item{padding:11px 12px;border:1px solid #e0e8e4;border-radius:12px;background:#f9fbfa}.day-detail-item span{display:block;font-size:10px;color:#708079;margin-bottom:4px}.day-detail-item b{display:block;font-size:14px;color:#213d34}.day-detail-quality{margin-top:13px;padding:10px 12px;border-radius:11px;background:#f4f1e4;color:#665f43;font-size:10px;line-height:1.45}.heatmap-scroll canvas{cursor:crosshair}@media(max-width:620px){.annual-chart-wrap{height:290px}.day-detail-dialog{padding:19px}.day-detail-grid{grid-template-columns:1fr}}

/* Website 1.17.11 - Fusszeile */

/* Website 1.18.1 - Blau-Design, Webcam und einheitlicher Grafik-Hover */
:root{
  --bg:#eef4f8;
  --card:#ffffff;
  --ink:#1b2d3d;
  --muted:#687d8e;
  --line:#d8e4ec;
  --green:#215f9a;
  --green2:#2f7db9;
  --soft:#e8f1f8;
  --shadow:0 18px 45px rgba(34,74,110,.10);
}
body{background:#eef4f8}
.hero,.legal-hero{background:linear-gradient(125deg,#173b63 0%,#215f9a 60%,#4a88bd 100%);box-shadow:0 22px 55px rgba(23,59,99,.18)}
.metric-card,.panel,.record-card,.legal-card{border-color:rgba(34,74,110,.09)}
.metric-icon{background:#e8f1f8;color:#215f9a}
.app-tabs{background:rgba(255,255,255,.78);border-color:rgba(34,74,110,.10)}
.tab{color:#5a7082}.tab:hover{background:#f4f8fb;color:#274b68}.tab.active{color:#215f9a;background:#fff;box-shadow:0 5px 16px rgba(34,74,110,.09)}
.link-btn,#refreshBtn,.footer-link,.legal-nav a,.legal-footer a,.radar-source a{color:#215f9a}
.switch{background:#f5f9fc;border-color:#d2e0ea;color:#536e83}.switch input{accent-color:#215f9a}.switch:has(input:checked){background:#e5f0f8;border-color:#a9c8df;color:#215f9a}
.range-badge{background:#e5f0f8;color:#215f9a}
.chart-wrap.compact,.chart-wrap.large{background:#eef4f8;border:1px solid #c7d9e7}
.side-stack .panel{background:#fbfdff}.list-row{border-color:#e4edf3}
.summary-item{background:#f8fbfd;border-color:#c7d9e7}.summary-item .summary-extra{color:#587185}
.news-card{background:#fbfdff}.news-card p{color:#5a7082}.news-archive-item{border-color:#e4edf3}
.radar-live{background:#edf4f9;color:#5f7486}.radar-btn{color:#315a79}.radar-btn:hover{background:#e9f1f7;border-color:#a9c8df}.radar-time{color:#173b63}.radar-map-wrap{background:#edf4f9}.radar-error{background:#f7fafc;color:#687d8e}.radar-timeline input{accent-color:#215f9a}
.archive-controls select,.compare-controls select{border-color:#d2e0ea}.heatmap-scroll,.annual-table-wrap{border-color:#d2e0ea}.annual-table th{background:#edf4f9;color:#587185}.day-detail-dialog{border-color:#d2e0ea}.day-detail-dialog h3{color:#173b63}.day-detail-close{background:#e9f1f7;color:#315a79}.day-detail-close:hover{background:#dbe8f1}.day-detail-item{border-color:#dce7ef;background:#f8fbfd}
.legal-card p{color:#50677a}

/* Webcam */
.webcam-panel{padding-bottom:16px}.webcam-head{align-items:center}.webcam-live{flex:0 0 auto;padding:8px 11px;border-radius:999px;background:#edf4f9;color:#5f7486;font-size:11px;font-weight:800}.webcam-live.ok{background:#e6f5ee;color:#0b7257}.webcam-live.bad{background:#fde9e6;color:#a54039}
.webcam-image-wrap{position:relative;display:grid;place-items:center;min-height:360px;border:1px solid #c7d9e7;border-radius:16px;overflow:hidden;background:#e9f1f7}.webcam-image-wrap img{display:block;width:100%;height:auto;max-height:72vh;object-fit:contain;background:#e9f1f7}.webcam-error{position:absolute;inset:0;display:grid;place-items:center;padding:30px;background:#f7fafc;color:#687d8e;font-size:13px;text-align:center}.webcam-error[hidden]{display:none}.webcam-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;color:var(--muted);font-size:10px;flex-wrap:wrap}.webcam-refresh{border:1px solid #d2e0ea;border-radius:10px;background:#fff;color:#315a79;padding:8px 12px;font-size:11px;font-weight:750;cursor:pointer}.webcam-refresh:hover{background:#e9f1f7;border-color:#a9c8df}

/* Grafik-Hover wie im Client */
.history-tooltip{display:none;position:absolute;z-index:40;pointer-events:none;min-width:220px;max-width:360px;padding:11px 13px;border-radius:11px;background:rgba(17,38,52,.96);color:#fff;font-size:13px;line-height:1.5;box-shadow:0 8px 24px rgba(0,0,0,.24)}.history-tooltip.show{display:block}.history-tooltip>b{display:block;margin-bottom:5px;font-size:13px}.history-tooltip .tip-row{display:flex;align-items:center;gap:8px;white-space:nowrap}.history-tooltip .tip-row.active{font-weight:800}.history-tooltip .tip-dot{width:9px;height:9px;border-radius:50%;flex:0 0 9px}.history-tooltip .tip-val{margin-left:auto;padding-left:14px;font-variant-numeric:tabular-nums}
.chart-wrap.compact canvas,.chart-wrap.large canvas{cursor:crosshair}
@media(max-width:700px){.webcam-image-wrap{min-height:220px}.history-tooltip{min-width:190px;max-width:280px;font-size:12px}}


/* Website 1.18.3 - Vorhersage + DWD Warnungen */
.forecast-panel,.warnings-panel{padding-bottom:17px}.forecast-head,.warnings-head{align-items:center}
.forecast-live,.warning-live{flex:0 0 auto;padding:8px 11px;border-radius:999px;background:#edf4f9;color:#5f7486;font-size:11px;font-weight:800}.forecast-live.ok,.warning-live.ok{background:#e6f5ee;color:#0b7257}.forecast-live.bad,.warning-live.bad{background:#fde9e6;color:#a54039}
.forecast-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;margin-top:4px}.forecast-day{border:1px solid #d6e4ee;background:#f8fbfd;border-radius:15px;padding:13px 10px;text-align:center;min-width:0}.forecast-day.today{border-color:#8bb7d7;background:#edf5fb}.forecast-day .day-name{font-size:11px;font-weight:850;color:#315a79}.forecast-day .day-date{font-size:9px;color:#7a8d9d;margin-top:2px}.forecast-day .wx-icon{font-size:30px;margin:8px 0 5px}.forecast-day .wx-text{font-size:10px;font-weight:750;min-height:26px;color:#465f72}.forecast-day .temps{margin:8px 0 6px;font-size:14px;font-weight:850}.forecast-day .temps .min{color:#4e7fa5;margin-left:5px}.forecast-day .details{font-size:9px;line-height:1.55;color:#6b7e8d}.forecast-loading,.warning-empty{grid-column:1/-1;padding:38px 20px;text-align:center;color:#718595;background:#f8fbfd;border:1px dashed #c9dbe8;border-radius:14px}
.forecast-hourly-head{margin-top:20px;border-top:1px solid #e0e9f0;padding-top:17px}.forecast-hourly-head h3{font-size:16px;margin:3px 0 0}.forecast-chart-wrap{position:relative;height:330px;margin-top:10px;border:1px solid #c7d9e7;border-radius:16px;background:#eef4f8;overflow:hidden}.forecast-chart-wrap canvas{width:100%;height:100%;display:block;cursor:crosshair}.forecast-source,.warning-source{margin-top:10px;color:#718595;font-size:10px}.forecast-source a,.warning-source a{color:#215f9a;font-weight:750;text-decoration:none}.forecast-source a:hover,.warning-source a:hover{text-decoration:underline}
.warnings-list{display:grid;gap:10px}.warning-card{border-radius:15px;border:1px solid #d8e4ec;background:#f8fbfd;padding:15px 16px;border-left-width:6px}.warning-card.level-1{border-left-color:#8ea7ba}.warning-card.level-2{border-left-color:#e7b63f;background:#fffaf0}.warning-card.level-3{border-left-color:#e07b35;background:#fff6ef}.warning-card.level-4,.warning-card.level-5{border-left-color:#cf4f47;background:#fff1ef}.warning-card .warning-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.warning-card h3{margin:0;font-size:15px}.warning-card .warning-level{font-size:10px;font-weight:850;white-space:nowrap}.warning-card .warning-time{font-size:10px;color:#708494;margin-top:4px}.warning-card p{font-size:11px;line-height:1.55;margin:10px 0 0;color:#465c6d}.warning-card .warning-instruction{margin-top:8px;padding-top:8px;border-top:1px solid rgba(0,0,0,.06);font-size:10px;color:#5d7181}
@media(max-width:1000px){.forecast-days{grid-template-columns:repeat(4,1fr)}}@media(max-width:650px){.forecast-head,.warnings-head{display:block}.forecast-live,.warning-live{display:inline-flex;margin-top:10px}.forecast-days{grid-template-columns:repeat(2,1fr)}.forecast-chart-wrap{height:300px}.warning-card .warning-top{display:block}.warning-card .warning-level{display:block;margin-top:5px}}

/* Klimaarchiv 1.18.5 - Unterreiter und Monatsuebersicht */
.climate-subtabs{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 14px;padding:5px;border:1px solid var(--line);border-radius:14px;background:#f4f8fb}
.climate-subtab{border:0;border-radius:10px;padding:9px 14px;background:transparent;color:#5c7182;font:700 11px/1.2 Inter,Segoe UI,Arial,sans-serif;cursor:pointer;transition:.15s ease}
.climate-subtab:hover{background:#eaf2f7;color:#173b63}.climate-subtab.active{background:#173b63;color:#fff;box-shadow:0 4px 12px rgba(23,59,99,.16)}
.climate-subpage{display:none}.climate-subpage.active{display:block}
.monthly-head h3{margin:3px 0 5px;font-size:18px}.monthly-head p{margin:0;color:var(--muted);font-size:12px}
.monthly-legend{display:grid;grid-template-columns:auto minmax(120px,1fr) auto;align-items:center;gap:9px;margin:16px 2px 10px;color:var(--muted);font-size:10px;font-weight:700}
.monthly-legend>div{height:8px;border-radius:99px;background:#dce7ed}
.monthly-table-wrap{position:relative;overflow:auto;max-width:100%;border:1px solid #d2e0ea;border-radius:14px;background:#fff}
.monthly-table{width:100%;min-width:980px;border-collapse:separate;border-spacing:0;font-size:10px}
.monthly-table th,.monthly-table td{height:44px;padding:5px 6px;text-align:center;border-right:1px solid rgba(210,224,234,.82);border-bottom:1px solid rgba(210,224,234,.82);white-space:nowrap}
.monthly-table thead th{position:sticky;top:0;z-index:4;height:36px;background:#edf4f9;color:#587185;font-size:9px;text-transform:uppercase;letter-spacing:.04em}
.monthly-table tbody th{position:sticky;left:0;z-index:3;min-width:58px;background:#f7fafc;color:#173b63;font-size:11px;font-weight:800}
.monthly-table thead th:first-child{position:sticky;left:0;z-index:5}
.monthly-table tr:last-child th,.monthly-table tr:last-child td{border-bottom:0}.monthly-table th:last-child,.monthly-table td:last-child{border-right:0}
.monthly-value{min-width:64px;cursor:crosshair;text-shadow:0 1px 1px rgba(0,0,0,.08)}.monthly-value b{display:block;font-size:11px}.monthly-value small{display:block;margin-top:2px;font-size:7px;line-height:1;text-transform:uppercase;letter-spacing:.04em;opacity:.82}.monthly-value.partial{outline:2px solid rgba(23,59,99,.55);outline-offset:-2px}
.monthly-empty{background:#f7f9fa;color:#a1ada8}.monthly-year-value{min-width:68px;background:#edf4f9;color:#173b63;font-size:11px}.monthly-note{margin:7px 2px 0;color:var(--muted);font-size:10px}
.monthly-tooltip{position:fixed;z-index:60}
[data-climate-page="annual"] .annual-block{margin-top:0;padding-top:0;border-top:0}
@media(max-width:700px){.climate-subtabs{gap:5px}.climate-subtab{flex:1 1 auto;padding:8px 9px}.monthly-table{min-width:900px}.monthly-table th,.monthly-table td{height:40px;padding:4px 5px}}
@media(prefers-color-scheme:dark){.climate-subtabs{background:#15201c}.climate-subtab{color:#a9bbb3}.climate-subtab:hover{background:#1e2b26;color:#edf5f1}.climate-subtab.active{background:#215f9a;color:#fff}.monthly-table-wrap{background:#16211d;border-color:#2a3a34}.monthly-table thead th,.monthly-table tbody th,.monthly-year-value{background:#1b2924;color:#dfece6}.monthly-empty{background:#121b18;color:#708079}}

/* Klimaarchiv 1.18.6 - monatliche Extremwertstatistik */
.extremes-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:14px}.extremes-period{flex:0 0 auto;padding:7px 12px;border-radius:999px;background:#edf4f9;color:#173b63;font-size:11px;font-weight:800}.extremes-wrap{border-radius:12px}.extremes-table{min-width:1320px;font-size:10px}.extremes-table th,.extremes-table td{height:36px;padding:4px 6px}.extremes-table thead th{position:sticky;top:0;z-index:4;text-transform:none;letter-spacing:0;font-size:9px}.extremes-table thead tr:nth-child(2) th{top:36px}.extremes-table .extreme-month-head{left:0;z-index:7;background:#edf4f9}.extremes-table tbody th{min-width:76px;background:#eef9ec;color:#164f2c}.extremes-table .extreme-year{font-weight:800}.extremes-table .extreme-value{font-variant-numeric:tabular-nums}.extremes-table .extreme-empty{color:#9aa7a1}.group-temp-min,.cell-temp-min{background:#6f82d5!important;color:#fff!important}.group-temp-mean-min,.cell-temp-mean-min{background:#9dbbe8!important;color:#173b63!important}.group-temp-mean-max,.cell-temp-mean-max{background:#ef9f7b!important;color:#5b2617!important}.group-temp-max,.cell-temp-max{background:#f3a0a6!important;color:#5b2028!important}.group-rain-min,.cell-rain-min{background:#edf2f4!important;color:#30454f!important}.group-rain-max,.cell-rain-max{background:#20c7dc!important;color:#073b46!important}.group-sun-min,.cell-sun-min{background:#f5edb0!important;color:#51470b!important}.group-sun-max,.cell-sun-max{background:#f4df2f!important;color:#4b4100!important}.extremes-table tbody tr:hover td,.extremes-table tbody tr:hover th{box-shadow:inset 0 0 0 999px rgba(255,255,255,.12)}
@media(max-width:700px){.extremes-head{align-items:flex-start;flex-direction:column}.extremes-table{min-width:1260px}}
@media(prefers-color-scheme:dark){.extremes-period{background:#1b2924;color:#dfece6}.extremes-table tbody th{background:#183024;color:#d9f0df}.extremes-table .extreme-month-head{background:#1b2924;color:#dfece6}}
/* 1.18.10 Erweiterte Jahresstatistik + saisonale Grünlandtemperatur */
.seasonal-mini small{display:block;font-size:10px;color:rgba(255,255,255,.72);margin-top:3px}
.yearstats-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin:4px 0 14px}.yearstats-head h3{margin:3px 0 0;font-size:19px}.yearstats-head p{margin:6px 0 0;color:var(--muted);font-size:12px;max-width:760px}.yearstats-nav{display:flex;align-items:center;gap:7px;flex-wrap:nowrap}.yearstats-nav select,.yearstats-btn{height:38px;border:1px solid var(--line);background:#fff;border-radius:10px;color:var(--ink);font-weight:750}.yearstats-nav select{padding:0 12px;min-width:96px}.yearstats-btn{width:38px;font-size:22px;line-height:1;cursor:pointer}.yearstats-btn:hover{background:var(--soft);color:var(--green)}.yearstats-btn:disabled{opacity:.35;cursor:default}.yearstats-card{border:1px solid var(--line);border-radius:15px;background:#fbfcfb;overflow:hidden}.yearstats-title{display:flex;justify-content:space-between;align-items:center;padding:13px 15px;border-bottom:1px solid var(--line);background:#f5f9f7}.yearstats-title span{font-size:11px;color:var(--muted);font-weight:750;text-transform:uppercase;letter-spacing:.06em}.yearstats-title b{font-size:18px;color:var(--green)}.yearstats-table-wrap{overflow-x:auto}.yearstats-table{width:100%;border-collapse:collapse;min-width:620px}.yearstats-table th,.yearstats-table td{padding:10px 12px;border-bottom:1px solid #e7eeea;text-align:left;font-size:12px}.yearstats-table th{background:#f8fbfa;color:#5b6e65;font-size:10px;text-transform:uppercase;letter-spacing:.05em}.yearstats-table td:nth-child(2){font-weight:800;color:#173e33;white-space:nowrap}.yearstats-table tr:last-child td{border-bottom:0}.yearstats-table tr.yearstats-highlight td{background:#eef8f4}.yearstats-note{padding:10px 14px;color:var(--muted);font-size:11px;border-top:1px solid var(--line);background:#fff}.yearstats-value-good{color:#14795b}.yearstats-value-cold{color:#315f9b}.yearstats-value-hot{color:#b7533e}
@media(max-width:980px){.yearstats-head{flex-direction:column}.yearstats-nav{width:100%}.yearstats-nav select{flex:1}.hero-current{grid-template-columns:auto minmax(210px,1fr) repeat(2,minmax(115px,auto))}}
.hero-status-stack{display:flex;flex-direction:column;align-items:flex-end;gap:7px;position:relative;z-index:2}.grassland-badge{display:flex;align-items:baseline;gap:7px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);padding:8px 12px;border-radius:12px;color:#fff}.grassland-badge span{font-size:10px;color:rgba(255,255,255,.72);font-weight:700}.grassland-badge b{font-size:14px}.grassland-badge small{font-size:10px;color:rgba(255,255,255,.72)}.grassland-badge[hidden]{display:none!important}
@media(max-width:700px){.hero-status-stack{position:absolute;right:14px;top:14px;align-items:flex-end}.hero-status-stack .live-badge{position:static}.grassland-badge{max-width:190px;flex-wrap:wrap;justify-content:flex-end;padding:6px 9px}.grassland-badge span{width:100%;text-align:right}.station-meta{padding-right:200px}}

.annual-tooltip span em{font-style:normal;color:#52675e}.annual-tip-note{margin-top:7px;padding-top:7px;border-top:1px solid #dfe8e4;white-space:normal;color:#65766d;line-height:1.4}.annual-tip-note.provisional{color:#7a6527}.annual-current-row td{background:#fffaf0}
