:root {
  --wmesjw-body-font: "National Park", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --wmesjw-heading-font: "Cabin", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --jw-green: #4c5400;
  --jw-accent: #bdd106;
  --jw-dark: #2b2003;
  --jw-ink: #0d0b08;
  --jw-head: #353605;
  --jw-paper: #f4f2e9;
  --jw-paper-2: #ebe8dc;
  --jw-line: #d5d0c0;
  --jw-muted: #6e6a5e;
  --jw-white: #fafafa;
  --jw-night: #222833;
  --jw-astro: #39485d;
  --jw-nautical: #657386;
  --jw-civil: #b6ab84;
  --jw-day: #e1d59c;
}

.wmesjw, .wmesjw * { box-sizing: border-box; }
.wmesjw { color: var(--jw-ink); background: var(--jw-paper); min-height: 80vh; font-family: var(--wmesjw-body-font); border-top: 4px solid var(--jw-accent); width:min(94vw,1500px) !important; max-width:none !important; margin-left:calc(50% - min(47vw,750px)) !important; margin-right:0 !important; }
.wmesjw button, .wmesjw input { font: inherit; }
.wmesjw button { cursor: pointer; }
.wmesjw-topbar { min-height:82px; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:16px clamp(28px,2.8vw,52px); background:var(--jw-green); color:var(--jw-white); }
.wmesjw-brand { display:flex; align-items:center; gap:12px; }
.wmesjw-brand-mark { width:64px; height:56px; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.wmesjw-brand-logo { display:block; width:auto; height:54px; max-width:92px; object-fit:contain; }
.wmesjw-map-credit a { color:inherit; text-decoration:underline; text-underline-offset:2px; }
.wmesjw-kicker, .wmesjw-eyebrow { font-size:11px; line-height:1.2; letter-spacing:.14em; text-transform:uppercase; font-weight:760; }
.wmesjw-title { margin-top:2px; font-size:26px; font-weight:760; letter-spacing:-.03em; }
.wmesjw-icon-btn, .wmesjw-secondary-btn, .wmesjw-search-row button, .wmesjw-location-editor button:not(.wmesjw-link-btn) { border:0; border-radius:2px; background:var(--jw-accent); color:var(--jw-dark); font-weight:760; min-height:42px; padding:0 16px; }
.wmesjw-icon-btn { background:transparent; color:var(--jw-white); border:1px solid rgba(255,255,255,.42); }
.wmesjw-main { display:block; width:100%; }
.wmesjw-location-panel { padding:clamp(28px,3vw,48px) clamp(24px,4vw,64px) clamp(34px,4vw,58px); border-bottom:1px solid var(--jw-line); background:#efede4; min-width:0; }
.wmesjw-data { padding:clamp(36px,4vw,64px) clamp(24px,5vw,78px) clamp(48px,5vw,76px); min-width:0; }
.wmesjw-section-head { display:block; margin-bottom:24px; }
.wmesjw-section-head .wmesjw-secondary-btn { margin-top:16px; }
.wmesjw-section-head.compact { margin-bottom:22px; }
.wmesjw-section-head.compact .wmesjw-date-nav { margin-top:16px; }
.wmesjw h1, .wmesjw h2, .wmesjw h3 { color:var(--jw-head); letter-spacing:-.03em; margin:0; line-height:1.04; }
.wmesjw h1 { font-size:clamp(32px,2.4vw,42px); margin-top:6px; max-width:none; }
.wmesjw h2 { font-size:clamp(36px,3.2vw,52px); }
.wmesjw h3 { font-size:clamp(27px,2.1vw,34px); }
.wmesjw-eyebrow { color:var(--jw-green); }
.wmesjw-search-row { display:grid; grid-template-columns:minmax(0,1fr) 160px; gap:8px; margin-bottom:10px; max-width:760px; }
.wmesjw-search-row button { width:100%; }
.wmesjw-search-row input, .wmesjw-location-editor input { width:100%; min-height:46px; border:1px solid #aaa590; background:#fff; color:var(--jw-ink); border-radius:2px; padding:0 13px; outline:none; }
.wmesjw-search-row input:focus, .wmesjw-location-editor input:focus { border-color:var(--jw-green); box-shadow:0 0 0 2px rgba(76,84,0,.12); }
.wmesjw-search-results { position:relative; z-index:5; margin-bottom:10px; background:#fff; border:1px solid var(--jw-line); box-shadow:0 8px 22px rgba(43,32,3,.12); }
.wmesjw-search-results button { width:100%; display:block; text-align:left; border:0; border-bottom:1px solid var(--jw-line); background:#fff; padding:11px 13px; }
.wmesjw-search-results button:hover { background:#f6f4eb; }
.wmesjw-search-results strong, .wmesjw-search-results span { display:block; }
.wmesjw-search-results span { margin-top:2px; font-size:12px; color:var(--jw-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.wmesjw-search-state { padding:13px; color:var(--jw-muted); }
.wmesjw-map-wrap { position:relative; }
.wmesjw-map { height:clamp(460px,56vh,680px); min-height:460px; width:100%; background:#d9d7ca; border:1px solid #b5b09f; }
.wmesjw-map-hint { position:absolute; left:12px; bottom:12px; z-index:2; max-width:300px; padding:7px 10px; background:rgba(43,32,3,.9); color:#fff; font-size:12px; line-height:1.3; border-radius:2px; pointer-events:none; }
.wmesjw-marker { width:25px; height:31px; padding:0; border:0; background:transparent; position:relative; }
.wmesjw-marker::before { content:""; position:absolute; width:21px; height:21px; left:2px; top:1px; background:var(--jw-green); border:3px solid #fff; border-radius:50% 50% 50% 0; transform:rotate(-45deg); box-shadow:0 2px 6px rgba(0,0,0,.28); }
.wmesjw-marker span { position:absolute; left:10px; top:8px; width:5px; height:5px; border-radius:50%; background:var(--jw-accent); z-index:2; }
.wmesjw-marker.is-active::before { background:var(--jw-dark); box-shadow:0 0 0 3px var(--jw-accent), 0 2px 7px rgba(0,0,0,.3); }
.wmesjw-marker.is-draft::before { background:#fff; border-color:var(--jw-green); }
.wmesjw-marker.is-draft span { background:var(--jw-green); }
.wmesjw-location-editor { margin-top:12px; display:grid; grid-template-columns:1fr; gap:9px; align-items:stretch; max-width:760px; }
.wmesjw-location-editor button { width:100%; }
.wmesjw-location-editor[hidden] { display:none; }
.wmesjw-location-editor-coords { font-size:12px; font-variant-numeric:tabular-nums; color:var(--jw-muted); }
.wmesjw-link-btn { min-height:40px; border:0; background:transparent; color:var(--jw-green); font-weight:700; }
.wmesjw-location-list { margin-top:24px; border-top:1px solid var(--jw-line); }
.wmesjw-location-row { display:grid; grid-template-columns:1fr auto; border-bottom:1px solid var(--jw-line); }
.wmesjw-location-row.is-active { background:rgba(189,209,6,.12); }
.wmesjw-location-select { display:flex; align-items:center; gap:10px; padding:11px 8px; border:0; background:transparent; text-align:left; min-width:0; }
.wmesjw-location-select span:last-child { min-width:0; }
.wmesjw-location-select strong, .wmesjw-location-select small { display:block; }
.wmesjw-location-select strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.wmesjw-location-select small { margin-top:2px; color:var(--jw-muted); font-variant-numeric:tabular-nums; }
.wmesjw-location-dot { width:10px; height:10px; border-radius:50%; background:var(--jw-green); flex:0 0 auto; }
.wmesjw-delete-location { align-self:center; margin-right:8px; min-height:34px; padding:0 10px; border:1px solid #b9b4a5; border-radius:2px; background:transparent; color:#5e594d; font-size:12px; font-weight:700; }
.wmesjw-delete-location:hover { border-color:#7c3d2d; color:#7c3d2d; background:#fff; }
.wmesjw-no-locations { padding:14px 2px; color:var(--jw-muted); font-size:14px; }
.wmesjw-map-credit { margin-top:9px; font-size:10px; color:#767163; }
.wmesjw-hero { display:grid; grid-template-columns:minmax(0,1.25fr) 320px; gap:40px; align-items:end; min-height:0; padding-bottom:32px; border-bottom:1px solid var(--jw-line); }
.wmesjw-hero-copy { max-width:980px; min-width:0; }
.wmesjw-weather-main { margin-top:22px; display:flex; gap:20px; align-items:flex-end; flex-wrap:wrap; }
.wmesjw-temp { font-size:clamp(78px,7vw,116px); font-weight:700; line-height:.82; letter-spacing:-.075em; color:var(--jw-dark); font-variant-numeric:tabular-nums; }
.wmesjw-condition { font-size:24px; font-weight:700; color:var(--jw-head); }
.wmesjw-updated { margin-top:6px; font-size:12px; color:var(--jw-muted); }
.wmesjw-wind-gauge { text-align:center; margin-top:0; padding-top:8px; border-top:0; }
.wmesjw-wind-ring { position:relative; width:158px; height:158px; margin:0 auto 14px; border:1px solid #bcb6a4; border-radius:50%; background:transparent; }
.wmesjw-wind-ring::before, .wmesjw-wind-ring::after { content:""; position:absolute; background:#c8c2b1; }
.wmesjw-wind-ring::before { width:1px; height:100%; left:50%; }
.wmesjw-wind-ring::after { height:1px; width:100%; top:50%; left:0; }
.wmesjw-wind-ring > span:not(.wmesjw-wind-arrow) { position:absolute; font-size:9px; font-weight:800; color:var(--jw-muted); background:var(--jw-paper); padding:0 3px; z-index:2; }
.wmesjw-north { top:-6px; left:50%; transform:translateX(-50%); }.wmesjw-east { right:-6px; top:50%; transform:translateY(-50%); }.wmesjw-south { bottom:-6px; left:50%; transform:translateX(-50%); }.wmesjw-west { left:-7px; top:50%; transform:translateY(-50%); }
.wmesjw-wind-arrow { position:absolute; left:50%; top:50%; transform:translate(-50%,-56%); transform-origin:50% 56%; font-size:76px; line-height:1; color:var(--jw-green); z-index:3; transition:transform .35s ease; }
.wmesjw-wind-value { font-weight:800; font-size:19px; }.wmesjw-wind-meta { margin-top:4px; font-size:12px; color:var(--jw-muted); }
.wmesjw-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0 22px; border-bottom:1px solid var(--jw-line); }
.wmesjw-facts > div { padding:24px 22px 24px 0; }
.wmesjw-facts span, .wmesjw-sun-facts span, .wmesjw-moon-rise-set span { display:block; font-size:11px; color:var(--jw-muted); text-transform:uppercase; letter-spacing:.08em; }
.wmesjw-facts strong, .wmesjw-sun-facts strong, .wmesjw-moon-rise-set strong { display:block; margin-top:6px; font-size:20px; color:var(--jw-head); font-variant-numeric:tabular-nums; }
.wmesjw-section { padding:42px 0; border-bottom:1px solid var(--jw-line); }
.wmesjw-date-nav { display:flex; align-items:center; gap:8px; color:var(--jw-head); font-weight:700; }
.wmesjw-date-nav button { width:34px; height:34px; border:1px solid var(--jw-line); border-radius:2px; background:transparent; font-size:22px; color:var(--jw-green); }
.wmesjw-light-chart { margin-top:22px; padding-top:18px; }
.wmesjw-light-axis { position:relative; height:86px; overflow:visible; border:1px solid #a9a38f; }
.wmesjw-light-segment { position:absolute; top:0; bottom:0; }.wmesjw-light-segment.night,.wmesjw-light-legend i.night { background:var(--jw-night); }.wmesjw-light-segment.astro,.wmesjw-light-legend i.astro { background:var(--jw-astro); }.wmesjw-light-segment.nautical,.wmesjw-light-legend i.nautical { background:var(--jw-nautical); }.wmesjw-light-segment.civil,.wmesjw-light-legend i.civil { background:var(--jw-civil); }.wmesjw-light-segment.day,.wmesjw-light-legend i.day { background:var(--jw-day); }
.wmesjw-light-event { position:absolute; top:0; bottom:0; transform:translateX(-50%); z-index:3; border-left:1px solid rgba(255,255,255,.52); }
.wmesjw-light-event b { position:absolute; left:7px; top:8px; color:#fff; font-size:20px; }.wmesjw-light-event small { position:absolute; left:7px; bottom:7px; color:#fff; font-size:12px; font-weight:750; white-space:nowrap; }
.wmesjw-moon-event { position:absolute; top:-24px; transform:translateX(-50%); white-space:nowrap; font-size:12px; font-weight:800; color:var(--jw-head); }.wmesjw-moon-event.lower { top:auto; bottom:-23px; }.wmesjw-moon-event small { font-weight:500; }
.wmesjw-light-ticks { position:relative; height:28px; margin-top:7px; color:var(--jw-muted); font-size:11px; }.wmesjw-light-ticks span { position:absolute; transform:translateX(-50%); }.wmesjw-light-ticks span:first-child { transform:none; }.wmesjw-light-ticks span:last-child { transform:translateX(-100%); }
.wmesjw-light-legend { display:flex; flex-wrap:wrap; gap:10px 20px; margin-top:10px; font-size:11px; color:var(--jw-muted); }.wmesjw-light-legend span { display:flex; gap:6px; align-items:center; }.wmesjw-light-legend i { width:16px; height:6px; display:inline-block; }
.wmesjw-sun-facts { display:grid; grid-template-columns:repeat(3,1fr); margin-top:28px; gap:24px; }
.wmesjw-moon-section { display:grid; grid-template-columns:180px minmax(0,1fr); gap:34px; align-items:center; }
.wmesjw-moon-visual { width:172px; height:172px; padding:10px; background:var(--jw-night); border-radius:50%; margin-bottom:0; }
.wmesjw-moon-visual svg { width:100%; height:100%; }.wmesjw-moon-visual .moon-dark { fill:#11161f; }.wmesjw-moon-visual .moon-light { fill:#e7e1bf; }.wmesjw-moon-visual .moon-outline { fill:none; stroke:rgba(255,255,255,.24); stroke-width:1; }
.wmesjw-moon-percent { margin-top:10px; color:var(--jw-muted); font-size:18px; }.wmesjw-moon-percent strong { font-size:34px; color:var(--jw-head); font-family: var(--wmesjw-heading-font); }
.wmesjw-moon-rise-set { display:grid; grid-template-columns:repeat(2,minmax(110px,1fr)); gap:16px; margin-top:16px; max-width:350px; }
.wmesjw-hourly { display:flex; overflow-x:auto; overscroll-behavior-inline:contain; scrollbar-width:thin; border-top:1px solid var(--jw-line); border-bottom:1px solid var(--jw-line); }
.wmesjw-hour-card { min-width:128px; padding:16px 12px; border-right:1px solid var(--jw-line); text-align:left; background:rgba(255,255,255,.18); }.wmesjw-hour-card time, .wmesjw-hour-card span, .wmesjw-hour-card strong { display:block; }.wmesjw-hour-card time { font-size:12px; color:var(--jw-muted); }.wmesjw-hour-card strong { margin:8px 0 6px; font-size:30px; color:var(--jw-head); }.wmesjw-hour-condition { font-size:12px; color:var(--jw-muted); min-height:30px; }.wmesjw-hour-meta { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:10px; }.wmesjw-hour-wind { font-size:13px; font-weight:700; color:var(--jw-green); }.wmesjw-hour-rain { padding:3px 8px; border-radius:999px; background:#ebe6d0; font-size:11px; color:var(--jw-head); }
.wmesjw-daily { border-top:1px solid var(--jw-line); }.wmesjw-day-row { display:grid; grid-template-columns:minmax(0,1.2fr) 160px 160px; gap:20px; align-items:center; padding:18px 0; border-bottom:1px solid var(--jw-line); }.wmesjw-day-main strong,.wmesjw-day-main span { display:block; }.wmesjw-day-main span { margin-top:2px; font-size:13px; color:var(--jw-muted); }.wmesjw-day-rain { font-size:13px; color:var(--jw-muted); }.wmesjw-day-temp { text-align:right; font-variant-numeric:tabular-nums; font-size:24px; font-family: var(--wmesjw-heading-font); color:var(--jw-head); }
.wmesjw-sources { padding:16px 0 4px; font-size:10px; line-height:1.5; color:var(--jw-muted); }
.wmesjw-inline-error { padding:18px; border:1px solid var(--jw-line); background:#fff; color:var(--jw-muted); font-size:14px; }
.wmesjw-toast { position:fixed; right:18px; bottom:18px; z-index:99999; max-width:min(380px,calc(100vw - 36px)); padding:12px 14px; background:var(--jw-dark); color:#fff; border-left:4px solid var(--jw-accent); box-shadow:0 10px 30px rgba(0,0,0,.24); }
.screen-reader-text { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }

@media (max-width: 1120px) {
  .wmesjw { width:96vw !important; margin-left:calc(50% - 48vw) !important; }
  .wmesjw-map { height:52vh; min-height:400px; }
}
@media (max-width: 640px) {
  .wmesjw-topbar { min-height:72px; padding:10px 16px; }.wmesjw-title { font-size:22px; }.wmesjw-brand-mark { width:54px; height:50px; }.wmesjw-brand-logo { height:48px; max-width:78px; }
  .wmesjw { width:100% !important; margin:0 !important; }
  .wmesjw-location-panel,.wmesjw-data { padding:18px 16px 24px; }
  .wmesjw-section-head .wmesjw-secondary-btn { width:100%; margin-top:13px; }
  .wmesjw h1 { font-size:31px; max-width:none; }
  .wmesjw h2 { font-size:34px; }
  .wmesjw h3 { font-size:27px; }
  .wmesjw-map { min-height:315px; height:48vh; }
  .wmesjw-location-editor { max-width:none; }
  .wmesjw-hero { padding-bottom:28px; }.wmesjw-temp { font-size:65px; }.wmesjw-condition { font-size:18px; }
  .wmesjw-wind-gauge { margin-top:28px; padding-top:26px; }.wmesjw-wind-ring { width:118px; height:118px; }.wmesjw-wind-arrow { font-size:56px; }
  .wmesjw-facts { grid-template-columns:repeat(2,1fr); }.wmesjw-facts > div:nth-child(odd) { border-right:1px solid var(--jw-line); }.wmesjw-facts > div { padding:18px 9px; }
  .wmesjw-section { padding:30px 0; }
  .wmesjw-light-chart { margin-top:20px; padding-top:22px; }.wmesjw-light-axis { height:60px; }.wmesjw-light-legend { display:none; }.wmesjw-sun-facts { grid-template-columns:1fr 1fr; gap:12px; }.wmesjw-sun-facts > div:last-child { grid-column:1/-1; }
  .wmesjw-moon-section { display:grid; grid-template-columns:180px minmax(0,1fr); gap:34px; align-items:center; }.wmesjw-moon-visual { width:125px; height:125px; margin-bottom:20px; }.wmesjw-moon-rise-set { gap:10px; }
  .wmesjw-hour-card { min-width:84px; padding:13px 8px; }
  .wmesjw-day-row { grid-template-columns:1.2fr .65fr .8fr; gap:10px; padding:12px 0; }
}

/* Lokale WMES-Kartenengine: keine externe JS-Bibliothek erforderlich. */
.wmesjw-native-map { position:relative; overflow:hidden; touch-action:none; cursor:grab; user-select:none; }
.wmesjw-native-map.is-dragging { cursor:grabbing; }
.wmesjw-native-map__tiles,
.wmesjw-native-map__overlay { position:absolute; inset:0; overflow:hidden; }
.wmesjw-native-map__tiles { z-index:0; background:#d9d7ca; }
.wmesjw-native-map__overlay { z-index:2; pointer-events:none; }
.wmesjw-native-map__tile { position:absolute; width:256px; height:256px; max-width:none !important; border:0; margin:0; padding:0; user-select:none; pointer-events:none; }
.wmesjw-native-marker { position:absolute !important; z-index:3; pointer-events:auto; margin:0 !important; }
.wmesjw-native-map__controls { position:absolute; z-index:4; top:10px; right:10px; }
.wmesjw-native-nav { display:flex; flex-direction:column; border:1px solid #aaa590; background:#fff; box-shadow:0 1px 4px rgba(0,0,0,.18); }
.wmesjw-native-nav button { width:36px; height:36px; min-height:0; padding:0; border:0; border-radius:0; background:#fff; color:#2b2003; font-size:23px; line-height:1; font-weight:600; }
.wmesjw-native-nav button + button { border-top:1px solid #d5d0c0; }
.wmesjw-native-nav button:hover { background:#f2f0e6; }

/* 0.1.9 GUI refinement overrides */
.wmesjw-title,
.wmesjw h1,
.wmesjw h2,
.wmesjw h3,
.wmesjw-temp,
.wmesjw-condition,
.wmesjw-wind-value,
.wmesjw-facts strong,
.wmesjw-sun-facts strong,
.wmesjw-moon-rise-set strong,
.wmesjw-day-temp,
.wmesjw-hour-card strong {
  font-family: var(--wmesjw-heading-font);
}
.wmesjw-kicker,
.wmesjw-eyebrow,
.wmesjw,
.wmesjw button,
.wmesjw input {
  font-family: var(--wmesjw-body-font);
}
@media (max-width: 900px) {
  .wmesjw-hero { grid-template-columns: 1fr; gap: 24px; }
  .wmesjw-moon-section { grid-template-columns: 1fr; gap: 22px; }
}
@media (max-width: 640px) {
  .wmesjw-search-row { grid-template-columns: 1fr; }
  .wmesjw-wind-gauge { margin-top: 0; padding-top: 0; }
  .wmesjw-moon-section { grid-template-columns: 1fr; gap: 18px; }
  .wmesjw-moon-visual { margin-bottom: 0; }
  .wmesjw-hour-card { min-width: 112px; padding: 13px 10px; }
  .wmesjw-hour-condition { min-height: 26px; }
  .wmesjw-day-row { grid-template-columns: 1fr; gap: 6px; padding: 14px 0; }
  .wmesjw-day-temp { text-align: left; font-size: 22px; }
}

/* 0.2.0 stronger visual UI */
.wmesjw-title,
.wmesjw h1,
.wmesjw h2,
.wmesjw h3,
.wmesjw-temp,
.wmesjw-condition,
.wmesjw-wind-value,
.wmesjw-facts strong,
.wmesjw-sun-facts strong,
.wmesjw-moon-rise-set strong,
.wmesjw-day-temp,
.wmesjw-hour-card strong {
  font-family: var(--wmesjw-heading-font);
}
.wmesjw,
.wmesjw button,
.wmesjw input,
.wmesjw-kicker,
.wmesjw-eyebrow {
  font-family: var(--wmesjw-body-font);
}
.wmesjw-data {
  background: linear-gradient(180deg, rgba(255,255,255,.28), rgba(255,255,255,0));
}
.wmesjw-hero {
  grid-template-columns: minmax(0,1.25fr) 320px;
  gap: 36px;
  align-items: center;
}
.wmesjw-weather-main {
  align-items: center;
  gap: 22px;
}
.wmesjw-condition-wrap {
  display: flex;
  align-items: center;
  gap: 16px;
  min-height: 92px;
}
.wmesjw-condition-icon {
  width: 88px;
  height: 88px;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  filter: drop-shadow(0 4px 12px rgba(43,32,3,.12));
}
.wmesjw-condition {
  font-size: 28px;
}
.wmesjw-facts {
  gap: 18px;
  border-bottom: 0;
  margin-top: 18px;
}
.wmesjw-fact-card {
  padding: 20px 18px !important;
  border: 1px solid var(--jw-line);
  background: rgba(255,255,255,.36);
  border-radius: 4px;
  box-shadow: 0 1px 0 rgba(255,255,255,.35) inset;
}
.wmesjw-fact-label {
  display: flex !important;
  align-items: center;
  gap: 10px;
  font-size: 11px !important;
  color: var(--jw-muted) !important;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.wmesjw-metric-icon {
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}
.wmesjw-light-axis {
  height: 92px;
  border-radius: 4px;
  overflow: hidden;
}
.wmesjw-sun-facts > div,
.wmesjw-moon-rise-set > div {
  padding: 12px 14px;
  border: 1px solid var(--jw-line);
  background: rgba(255,255,255,.28);
  border-radius: 4px;
}
.wmesjw-moon-section {
  grid-template-columns: 220px minmax(0,1fr);
  gap: 40px;
}
.wmesjw-moon-visual {
  width: 210px;
  height: 210px;
  padding: 14px;
  background: radial-gradient(circle at 30% 28%, #273043, #171d29 70%, #0e131d 100%);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.06), 0 10px 25px rgba(17,22,31,.16);
}
.wmesjw-moon-percent strong {
  font-size: 38px;
}
.wmesjw-hourly {
  gap: 0;
  border-top: 1px solid var(--jw-line);
  border-bottom: 1px solid var(--jw-line);
  background: rgba(255,255,255,.2);
}
.wmesjw-hour-card {
  min-width: 164px;
  padding: 16px 14px;
  background: rgba(255,255,255,.16);
}
.wmesjw-hour-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.wmesjw-hour-icon {
  width: 40px;
  height: 40px;
  flex: 0 0 auto;
}
.wmesjw-hour-card strong {
  font-size: 32px;
}
.wmesjw-hour-condition {
  font-size: 12px;
  line-height: 1.3;
  min-height: 30px;
  color: var(--jw-muted);
}
.wmesjw-hour-meta {
  align-items: flex-end;
  flex-direction: column;
  gap: 6px;
}
.wmesjw-hour-wind {
  font-size: 12px;
}
.wmesjw-hour-rain {
  margin-top: 0;
  min-height: 0;
  font-size: 11px;
  color: var(--jw-head);
  padding: 3px 8px;
  background: #ebe6d0;
  border-radius: 999px;
}
.wmesjw-daily {
  display: grid;
  gap: 10px;
  border-top: 0;
}
.wmesjw-day-row {
  grid-template-columns: minmax(0,1.2fr) 180px 150px;
  padding: 16px 18px;
  border: 1px solid var(--jw-line);
  border-radius: 4px;
  background: rgba(255,255,255,.26);
}
.wmesjw-day-main {
  display: flex;
  align-items: center;
  gap: 14px;
}
.wmesjw-day-icon {
  width: 46px;
  height: 46px;
  flex: 0 0 auto;
}
.wmesjw-day-rain {
  font-size: 12px;
  color: var(--jw-muted);
  line-height: 1.35;
}
.wmesjw-day-rain strong {
  display: block;
  margin-top: 4px;
  font-size: 20px;
  color: var(--jw-head);
  font-family: var(--wmesjw-heading-font);
}
@media (max-width: 900px) {
  .wmesjw-hero { grid-template-columns: 1fr; }
  .wmesjw-moon-section { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 640px) {
  .wmesjw-search-row { grid-template-columns: 1fr; }
  .wmesjw-condition-wrap { min-height: 0; gap: 12px; }
  .wmesjw-condition-icon { width: 64px; height: 64px; }
  .wmesjw-condition { font-size: 22px; }
  .wmesjw-facts { grid-template-columns: repeat(2,1fr); gap: 12px; }
  .wmesjw-fact-card { padding: 14px 12px !important; }
  .wmesjw-light-legend { display: none; }
  .wmesjw-moon-visual { width: 150px; height: 150px; }
  .wmesjw-hour-card { min-width: 140px; }
  .wmesjw-day-row { grid-template-columns: 1fr; gap: 8px; }
  .wmesjw-day-temp { text-align: left; }
}

/* 0.2.1 light section + moon refinement */
.wmesjw-section-head.light-only {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 18px;
}
.wmesjw-light-chart {
  margin-top: 12px;
}
.wmesjw-light-axis-wrap {
  border: 1px solid var(--jw-line);
  background: rgba(255,255,255,.26);
  border-radius: 4px;
  padding: 16px 16px 12px;
}
.wmesjw-light-axis {
  position: relative;
  height: 96px;
  border-radius: 4px;
  overflow: hidden;
  background: #e9e4cf;
}
.wmesjw-light-segment {
  position: absolute;
  top: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.wmesjw-light-segment-label {
  font-size: 12px;
  line-height: 1.2;
  padding: 0 6px;
  text-align: center;
  color: rgba(255,255,255,.92);
  text-shadow: 0 1px 1px rgba(0,0,0,.25);
}
.wmesjw-light-segment.day .wmesjw-light-segment-label,
.wmesjw-light-segment.civil .wmesjw-light-segment-label {
  color: #2b2003;
  text-shadow: none;
}
.wmesjw-light-segment.night { background:#1c2536; }
.wmesjw-light-segment.astro { background:#435673; }
.wmesjw-light-segment.nautical { background:#677993; }
.wmesjw-light-segment.civil { background:#bba56f; }
.wmesjw-light-segment.day { background:#d9cf93; }
.wmesjw-light-event {
  position: absolute;
  top: 6px;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  color: #2b2003;
  font-size: 11px;
  font-weight: 700;
}
.wmesjw-light-event::before {
  content: '';
  position: absolute;
  top: 18px;
  bottom: -30px;
  width: 2px;
  background: rgba(53,54,5,.35);
}
.wmesjw-light-event.lower { top: 54px; }
.wmesjw-light-event.lower::before { top: -30px; bottom: 18px; }
.wmesjw-light-event.moon { color:#101722; }
.wmesjw-light-event b { font-size: 15px; line-height: 1; background: rgba(255,255,255,.55); padding: 2px 5px; border-radius: 999px; }
.wmesjw-light-event small { font-size: 11px; background: rgba(255,255,255,.7); padding: 2px 6px; border-radius: 999px; }
.wmesjw-light-ticks {
  position: relative;
  display: grid;
  grid-template-columns: repeat(9,1fr);
  margin-top: 10px;
  font-size: 11px;
  color: var(--jw-muted);
}
.wmesjw-light-ticks span { position: static !important; transform: none !important; text-align: center; }
.wmesjw-light-legend { gap: 12px 18px; margin-top: 12px; }
.wmesjw-light-phases {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 10px;
  margin-top: 14px;
}
.wmesjw-phase-card {
  border: 1px solid var(--jw-line);
  background: rgba(255,255,255,.22);
  border-radius: 4px;
  padding: 12px 14px;
}
.wmesjw-phase-card span {
  display: block;
  font-size: 11px;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--jw-muted);
}
.wmesjw-phase-card strong {
  display: block;
  margin-top: 6px;
  font-size: 20px;
  line-height: 1.2;
  color: var(--jw-head);
  font-family: var(--wmesjw-heading-font);
}
.wmesjw-moon-visual {
  background: radial-gradient(circle at 30% 28%, #283144, #161d28 68%, #0b1018 100%);
}
@media (max-width: 900px) {
  .wmesjw-light-phases { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 640px) {
  .wmesjw-light-axis-wrap { padding: 12px 12px 10px; }
  .wmesjw-light-axis { height: 118px; }
  .wmesjw-light-segment-label { display: none; }
  .wmesjw-light-event { font-size: 10px; }
  .wmesjw-light-event b { font-size: 13px; }
  .wmesjw-light-event small { font-size: 10px; }
  .wmesjw-light-ticks { grid-template-columns: repeat(5,1fr); }
  .wmesjw-light-ticks span:nth-child(2),
  .wmesjw-light-ticks span:nth-child(4),
  .wmesjw-light-ticks span:nth-child(6),
  .wmesjw-light-ticks span:nth-child(8) { display:none; }
  .wmesjw-light-phases { grid-template-columns: 1fr; }
}

/* 0.2.2: klarer Lichtfahrplan + fotobasierte Mondansicht */
.wmesjw-light-chart { margin-top: 10px; padding-top: 0; }
.wmesjw-light-board {
  border: 1px solid var(--jw-line);
  background: rgba(255,255,255,.28);
  border-radius: 4px;
  padding: 18px 18px 16px;
}
.wmesjw-light-scale {
  display:grid;
  grid-template-columns: 148px minmax(0,1fr);
  gap:16px;
  align-items:end;
  margin-bottom:8px;
}
.wmesjw-light-scale > div {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  font-size:11px;
  color:var(--jw-muted);
}
.wmesjw-light-scale > div span { text-align:center; }
.wmesjw-light-scale > div span:first-child { text-align:left; }
.wmesjw-light-scale > div span:last-child { text-align:right; }
.wmesjw-light-row {
  display:grid;
  grid-template-columns:148px minmax(0,1fr);
  gap:16px;
  align-items:center;
  min-height:72px;
  padding:8px 0;
  border-top:1px solid rgba(213,208,192,.8);
}
.wmesjw-light-row:first-of-type { border-top:0; }
.wmesjw-light-row-label strong,
.wmesjw-light-row-label small { display:block; }
.wmesjw-light-row-label strong {
  font-family:var(--wmesjw-heading-font);
  font-size:18px;
  color:var(--jw-head);
}
.wmesjw-light-row-label small { margin-top:3px; color:var(--jw-muted); font-size:11px; }
.wmesjw-light-track {
  position:relative;
  height:44px;
  border-radius:4px;
  background:#202737;
  overflow:visible;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);
}
.wmesjw-light-bar {
  position:absolute;
  top:0;
  bottom:0;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.wmesjw-light-bar em {
  font-style:normal;
  font-size:11px;
  font-weight:700;
  white-space:nowrap;
}
.wmesjw-light-bar.daylight { background:#ddd39a; color:#2b2003; }
.wmesjw-light-bar.astro { background:#41516c; color:#fff; }
.wmesjw-light-bar.nautical { background:#687a92; color:#fff; }
.wmesjw-light-bar.civil { background:#b8a36f; color:#2b2003; }
.wmesjw-light-bar.moonvisible { background:rgba(224,227,237,.82); color:#162033; }
.wmesjw-light-marker {
  position:absolute;
  top:-5px;
  bottom:-5px;
  transform:translateX(-50%);
  z-index:4;
  pointer-events:none;
}
.wmesjw-light-marker i {
  display:block;
  position:absolute;
  top:0;
  bottom:0;
  left:50%;
  width:2px;
  background:rgba(53,54,5,.55);
}
.wmesjw-light-marker b,
.wmesjw-light-marker small {
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  white-space:nowrap;
  border-radius:999px;
  padding:2px 6px;
  background:rgba(250,250,250,.92);
  color:#2b2003;
  box-shadow:0 1px 3px rgba(0,0,0,.08);
}
.wmesjw-light-marker b { top:-24px; font-size:10px; }
.wmesjw-light-marker small { bottom:-24px; font-size:10px; font-weight:700; }
.wmesjw-light-key {
  display:flex;
  flex-wrap:wrap;
  gap:8px 16px;
  margin-top:12px;
  font-size:11px;
  color:var(--jw-muted);
}
.wmesjw-light-key span { display:flex; align-items:center; gap:6px; }
.wmesjw-light-key i { width:15px; height:7px; display:inline-block; border-radius:1px; }
.wmesjw-light-key i.astro { background:#41516c; }
.wmesjw-light-key i.nautical { background:#687a92; }
.wmesjw-light-key i.civil { background:#b8a36f; }
.wmesjw-light-key i.daylight { background:#ddd39a; }
.wmesjw-light-key i.moonvisible { background:#dfe3ed; border:1px solid #bbc0cf; }
.wmesjw-light-phases {
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  margin-top:16px;
}
.wmesjw-phase-summary {
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:14px;
  align-items:start;
  padding:14px 16px;
  border:1px solid var(--jw-line);
  background:rgba(255,255,255,.24);
  border-radius:4px;
}
.wmesjw-phase-summary-icon {
  width:38px;
  height:38px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#ebe6cf;
  font-size:20px;
  color:var(--jw-head);
}
.wmesjw-phase-summary strong {
  font-family:var(--wmesjw-heading-font);
  font-size:18px;
  color:var(--jw-head);
}
.wmesjw-phase-summary p {
  margin:4px 0 0;
  color:var(--jw-muted);
  font-size:13px;
  line-height:1.55;
}
.wmesjw-phase-summary p b { color:var(--jw-head); font-weight:700; }
.wmesjw-moon-visual {
  width:220px;
  height:220px;
  padding:10px;
  background:radial-gradient(circle at 50% 50%, #111722, #080c12 76%, #020305 100%);
  border-radius:50%;
  box-shadow:0 14px 36px rgba(10,15,23,.22), inset 0 0 0 1px rgba(255,255,255,.06);
}
.wmesjw-moon-visual svg { width:100%; height:100%; display:block; }
.wmesjw-moon-credit { margin-top:8px; text-align:center; font-size:10px; color:var(--jw-muted); }
@media (max-width: 900px) {
  .wmesjw-light-scale { grid-template-columns:110px minmax(0,1fr); }
  .wmesjw-light-row { grid-template-columns:110px minmax(0,1fr); gap:12px; }
}
@media (max-width: 640px) {
  .wmesjw-light-board { padding:14px 12px 12px; }
  .wmesjw-light-scale { grid-template-columns:1fr; gap:6px; }
  .wmesjw-light-scale > span { display:none; }
  .wmesjw-light-row { grid-template-columns:1fr; gap:8px; min-height:0; padding:12px 0; }
  .wmesjw-light-row-label { display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
  .wmesjw-light-row-label strong { font-size:17px; }
  .wmesjw-light-track { height:48px; margin-top:16px; }
  .wmesjw-light-marker b { top:-22px; }
  .wmesjw-light-marker small { bottom:-22px; }
  .wmesjw-light-key { margin-top:14px; }
  .wmesjw-phase-summary { grid-template-columns:36px minmax(0,1fr); gap:10px; padding:12px; }
  .wmesjw-phase-summary-icon { width:32px; height:32px; font-size:17px; }
  .wmesjw-phase-summary p { font-size:12px; line-height:1.5; }
  .wmesjw-moon-visual { width:176px; height:176px; }
}

/* 0.2.3: Lesbarkeit, Windinstrument, Mondansicht */
.wmesjw-hero {
  grid-template-columns:minmax(0,1.25fr) 390px;
  gap:52px;
  align-items:center;
}
.wmesjw-wind-gauge {
  display:grid;
  grid-template-columns:184px minmax(0,1fr);
  gap:24px;
  align-items:center;
  text-align:left;
  margin:0;
  padding:18px 20px;
  border:1px solid var(--jw-line);
  border-radius:4px;
  background:rgba(255,255,255,.3);
}
.wmesjw-wind-compass {
  position:relative;
  width:174px;
  height:174px;
  border:2px solid #77755f;
  border-radius:50%;
  background:#f7f5ec;
  box-shadow:inset 0 0 0 7px #eeebe0;
}
.wmesjw-wind-compass::before,
.wmesjw-wind-compass::after {
  content:"";
  position:absolute;
  left:50%;
  top:10px;
  bottom:10px;
  width:1px;
  background:#c2bdab;
  transform:translateX(-50%);
}
.wmesjw-wind-compass::after {
  left:10px;
  right:10px;
  top:50%;
  bottom:auto;
  width:auto;
  height:1px;
  transform:translateY(-50%);
}
.wmesjw-wind-diag {
  position:absolute;
  left:50%;
  top:14px;
  bottom:14px;
  width:1px;
  background:#ded9ca;
  transform-origin:50% 50%;
}
.wmesjw-wind-diag.ne { transform:translateX(-50%) rotate(45deg); }
.wmesjw-wind-diag.se { transform:translateX(-50%) rotate(-45deg); }
.wmesjw-wind-n,.wmesjw-wind-e,.wmesjw-wind-s,.wmesjw-wind-w {
  position:absolute;
  z-index:4;
  width:26px;
  height:22px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f7f5ec;
  color:#4c4b3e;
  font-family:var(--wmesjw-heading-font);
  font-weight:700;
  font-size:12px;
}
.wmesjw-wind-n { left:50%; top:-6px; transform:translateX(-50%); }
.wmesjw-wind-s { left:50%; bottom:-6px; transform:translateX(-50%); }
.wmesjw-wind-e { right:-7px; top:50%; transform:translateY(-50%); }
.wmesjw-wind-w { left:-7px; top:50%; transform:translateY(-50%); }
.wmesjw-wind-arrow {
  position:absolute;
  z-index:5;
  left:37px;
  top:37px;
  width:100px;
  height:100px;
  transform-origin:50% 50%;
  transition:transform .3s ease;
  color:var(--jw-green);
}
.wmesjw-wind-arrow svg { width:100%; height:100%; display:block; overflow:visible; }
.wmesjw-wind-arrow line { stroke:currentColor; stroke-width:7; stroke-linecap:round; }
.wmesjw-wind-arrow path,.wmesjw-wind-arrow circle { fill:currentColor; }
.wmesjw-wind-copy { min-width:0; }
.wmesjw-wind-label {
  display:block;
  color:var(--jw-muted);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.11em;
  font-weight:700;
}
.wmesjw-wind-value {
  margin-top:5px;
  font-family:var(--wmesjw-heading-font);
  font-size:32px;
  line-height:1;
  color:var(--jw-head);
}
.wmesjw-wind-direction {
  margin-top:8px;
  color:var(--jw-green);
  font-size:15px;
  font-weight:700;
  line-height:1.25;
}
.wmesjw-wind-meta { margin-top:7px; font-size:12px; line-height:1.4; color:var(--jw-muted); }

.wmesjw-light-section { padding-top:58px; padding-bottom:58px; }
.wmesjw-light-chart { margin-top:22px; }
.wmesjw-light-board {
  padding:24px 24px 22px;
  border-color:#c9c3b1;
}
.wmesjw-light-scale { margin-bottom:16px; }
.wmesjw-light-row {
  min-height:94px;
  padding:20px 0;
  gap:24px;
}
.wmesjw-light-row-label strong { font-size:20px; }
.wmesjw-light-row-label small { margin-top:6px; font-size:12px; line-height:1.35; }
.wmesjw-light-track { height:50px; overflow:hidden; }
.wmesjw-light-marker {
  top:0;
  bottom:0;
  width:14px;
  transform:translateX(-50%);
}
.wmesjw-light-marker i {
  left:50%; top:0; bottom:0; width:2px;
  background:#3d401d;
  transform:translateX(-50%);
}
.wmesjw-light-marker b {
  position:absolute;
  left:50%; top:50%;
  width:10px; height:10px;
  padding:0;
  border:2px solid #fff;
  border-radius:50%;
  background:#4c5400;
  transform:translate(-50%,-50%);
  box-shadow:0 1px 3px rgba(0,0,0,.28);
}
.wmesjw-light-marker small { display:none; }
.wmesjw-light-marker.moonrise i,.wmesjw-light-marker.moonset i { background:#59657c; }
.wmesjw-light-marker.moonrise b,.wmesjw-light-marker.moonset b { background:#59657c; }
.wmesjw-light-key { margin-top:18px; gap:12px 24px; font-size:12px; }
.wmesjw-light-phases { gap:16px; margin-top:24px; }
.wmesjw-phase-summary { padding:18px 20px; gap:16px; }
.wmesjw-phase-summary p { margin-top:7px; font-size:14px; line-height:1.65; }
.wmesjw-sun-facts { margin-top:26px; gap:18px; }
.wmesjw-sun-facts > div { padding:16px 18px; }

.wmesjw-moon-section {
  grid-template-columns:270px minmax(0,1fr);
  gap:52px;
  padding-top:58px;
  padding-bottom:58px;
}
.wmesjw-moon-visual {
  width:260px;
  height:260px;
  padding:0;
  overflow:hidden;
  border-radius:50%;
  background:#05070b;
  box-shadow:0 16px 38px rgba(8,12,18,.24);
}
.wmesjw-moon-visual img,
.wmesjw-moon-visual svg {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  image-rendering:auto;
}
.wmesjw-moon-credit { margin-top:10px; font-size:11px; }

.wmesjw-hourly {
  background:transparent;
  border:0;
  gap:12px;
  padding:2px 2px 14px;
}
.wmesjw-hour-card {
  min-width:178px;
  padding:16px 15px 14px;
  border:1px solid #cbc5b4;
  border-radius:4px;
  background:#faf9f3;
  box-shadow:0 2px 8px rgba(43,32,3,.06);
}
.wmesjw-hour-card:last-child { border-right:1px solid #cbc5b4; }
.wmesjw-hour-top { align-items:center; }
.wmesjw-hour-card time { color:#4e4b40; font-size:13px; font-weight:700; }
.wmesjw-hour-icon {
  width:64px;
  height:64px;
  margin-left:auto;
  display:flex;
  align-items:center;
  justify-content:center;
}
.wmesjw-hour-icon svg { width:58px; height:58px; filter:drop-shadow(0 3px 2px rgba(30,40,55,.15)); }
.wmesjw-hour-card strong { margin:3px 0 7px; font-size:34px; }
.wmesjw-hour-condition { min-height:0; font-size:13px; color:#4e4b40; font-weight:600; }
.wmesjw-hour-meta {
  margin-top:14px;
  display:grid;
  grid-template-columns:1fr;
  gap:7px;
  align-items:stretch;
}
.wmesjw-hour-wind,.wmesjw-hour-rain {
  min-height:32px;
  display:flex !important;
  align-items:center;
  gap:7px;
  padding:5px 8px;
  border:1px solid #ddd7c5;
  border-radius:3px;
  background:#f0ede1;
  color:#384000;
  font-size:12px;
  font-weight:700;
}
.wmesjw-hour-rain { margin:0; }
.wmesjw-hour-mini-icon { display:inline-flex !important; width:20px; height:20px; flex:0 0 auto; }
.wmesjw-hour-mini-icon svg { width:20px; height:20px; }

@media (max-width: 1000px) {
  .wmesjw-hero { grid-template-columns:1fr; gap:30px; }
  .wmesjw-wind-gauge { max-width:520px; }
  .wmesjw-moon-section { grid-template-columns:230px minmax(0,1fr); gap:34px; }
  .wmesjw-moon-visual { width:220px; height:220px; }
}
@media (max-width: 640px) {
  .wmesjw-wind-gauge { grid-template-columns:150px minmax(0,1fr); gap:16px; padding:14px; }
  .wmesjw-wind-compass { width:144px; height:144px; }
  .wmesjw-wind-arrow { left:30px; top:30px; width:84px; height:84px; }
  .wmesjw-wind-value { font-size:27px; }
  .wmesjw-light-section { padding-top:40px; padding-bottom:40px; }
  .wmesjw-light-board { padding:18px 14px 16px; }
  .wmesjw-light-row { grid-template-columns:1fr; gap:12px; min-height:0; padding:18px 0 22px; }
  .wmesjw-light-row-label { display:block; }
  .wmesjw-light-row-label small { margin-top:4px; }
  .wmesjw-light-track { margin-top:0; height:46px; }
  .wmesjw-light-scale { grid-template-columns:1fr; }
  .wmesjw-light-scale > span { display:none; }
  .wmesjw-light-phases { margin-top:20px; }
  .wmesjw-phase-summary { padding:15px; }
  .wmesjw-phase-summary p { font-size:13px; line-height:1.6; }
  .wmesjw-moon-section { grid-template-columns:1fr; gap:24px; padding-top:42px; padding-bottom:42px; }
  .wmesjw-moon-visual { width:210px; height:210px; }
  .wmesjw-hour-card { min-width:166px; }
}

/* 0.2.4 – offizielle MET-Wettersymbole + lokale Mondphasen */
.wmesjw-met-weather-icon {
  display:block;
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  image-rendering:auto;
  filter:drop-shadow(0 2px 2px rgba(25,34,47,.16));
}
.wmesjw-condition-icon {
  width:100px;
  height:100px;
  padding:4px;
  border-radius:4px;
  background:rgba(255,255,255,.34);
}
.wmesjw-hour-icon {
  width:66px;
  height:66px;
  padding:2px;
  border-radius:4px;
  background:rgba(255,255,255,.38);
}
.wmesjw-hour-icon .wmesjw-met-weather-icon {
  width:62px;
  height:62px;
}
.wmesjw-day-icon {
  width:56px;
  height:56px;
  padding:2px;
  border-radius:4px;
  background:rgba(255,255,255,.38);
}
.wmesjw-day-icon .wmesjw-met-weather-icon {
  width:52px;
  height:52px;
}
.wmesjw-moon-visual {
  background:#000;
  padding:0;
}
.wmesjw-moon-visual img {
  width:100%;
  height:100%;
  object-fit:contain;
  image-rendering:auto;
  transform:none;
}
.wmesjw-moon-offline {
  display:flex;
  width:100%;
  height:100%;
  align-items:center;
  justify-content:center;
  padding:24px;
  color:#d9d4bd;
  text-align:center;
  font-size:13px;
  line-height:1.4;
}
@media (max-width:640px) {
  .wmesjw-condition-icon { width:78px; height:78px; }
  .wmesjw-hour-icon { width:58px; height:58px; }
  .wmesjw-hour-icon .wmesjw-met-weather-icon { width:54px; height:54px; }
}

/* 0.2.6 – Light/Dark Mode, feinere Licht-Zeitskala, Karten-Fokus */
.wmesjw-top-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:16px;
  flex-wrap:wrap;
}
.wmesjw-theme-control {
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:rgba(250,250,250,.92);
  font-size:12px;
  font-weight:700;
  user-select:none;
  cursor:pointer;
}
.wmesjw-theme-toggle {
  position:absolute;
  inline-size:1px;
  block-size:1px;
  opacity:0;
  pointer-events:none;
}
.wmesjw-theme-slider {
  position:relative;
  width:52px;
  height:28px;
  flex:0 0 auto;
  border:1px solid rgba(255,255,255,.5);
  border-radius:999px;
  background:rgba(255,255,255,.15);
  box-shadow:inset 0 1px 3px rgba(0,0,0,.18);
  transition:background .2s ease,border-color .2s ease;
}
.wmesjw-theme-slider i {
  position:absolute;
  width:20px;
  height:20px;
  left:3px;
  top:3px;
  border-radius:50%;
  background:#fafafa;
  box-shadow:0 2px 5px rgba(0,0,0,.25);
  transition:transform .2s ease,background .2s ease;
}
.wmesjw-theme-toggle:checked + .wmesjw-theme-slider {
  background:#1a1d13;
  border-color:#c6d719;
}
.wmesjw-theme-toggle:checked + .wmesjw-theme-slider i {
  transform:translateX(24px);
  background:#c6d719;
}
.wmesjw-theme-toggle:focus-visible + .wmesjw-theme-slider {
  outline:2px solid #fafafa;
  outline-offset:3px;
}

/* 2-Stunden-Raster am Desktop, 4-Stunden-Beschriftung auf kleinen Displays. */
.wmesjw-light-scale > div {
  display:flex;
  justify-content:space-between;
  align-items:center;
  grid-template-columns:none;
  gap:0;
  font-variant-numeric:tabular-nums;
}
.wmesjw-light-scale > div span {
  flex:0 0 auto;
  text-align:center;
}
.wmesjw-light-track::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:3;
  pointer-events:none;
  background-image:linear-gradient(to right, rgba(255,255,255,.18) 1px, transparent 1px);
  background-size:calc(100% / 12) 100%;
  background-position:left top;
}

/* Dark Mode */
.wmesjw[data-theme="dark"] {
  --jw-green:#a5b349;
  --jw-accent:#c3d713;
  --jw-dark:#f1ecd5;
  --jw-ink:#ece9df;
  --jw-head:#f6f2df;
  --jw-paper:#151811;
  --jw-paper-2:#20241a;
  --jw-line:#3d4334;
  --jw-muted:#afb2a5;
  color:var(--jw-ink);
  background:var(--jw-paper);
  color-scheme:dark;
}
.wmesjw[data-theme="dark"] .wmesjw-topbar { background:#252b0d; }
.wmesjw[data-theme="dark"] .wmesjw-location-panel { background:#1b1e16; }
.wmesjw[data-theme="dark"] .wmesjw-data { background:#151811; }
.wmesjw[data-theme="dark"] .wmesjw-eyebrow { color:#c3d713; }
.wmesjw[data-theme="dark"] .wmesjw-secondary-btn,
.wmesjw[data-theme="dark"] .wmesjw-search-row button,
.wmesjw[data-theme="dark"] .wmesjw-location-editor button:not(.wmesjw-link-btn) {
  color:#202307;
}
.wmesjw[data-theme="dark"] .wmesjw-icon-btn { color:#fafafa; border-color:rgba(255,255,255,.42); }
.wmesjw[data-theme="dark"] .wmesjw-search-row input,
.wmesjw[data-theme="dark"] .wmesjw-location-editor input,
.wmesjw[data-theme="dark"] .wmesjw-search-results,
.wmesjw[data-theme="dark"] .wmesjw-search-results button {
  background:#23271d;
  color:#f0ede2;
  border-color:#4b5140;
}
.wmesjw[data-theme="dark"] .wmesjw-search-results button:hover { background:#2c3124; }
.wmesjw[data-theme="dark"] .wmesjw-location-row.is-active { background:rgba(195,215,19,.10); }
.wmesjw[data-theme="dark"] .wmesjw-delete-location { color:#c8c8bc; border-color:#555b49; }
.wmesjw[data-theme="dark"] .wmesjw-delete-location:hover { color:#ffb2a0; border-color:#a45f50; background:#2b211e; }
.wmesjw[data-theme="dark"] .wmesjw-link-btn { color:#c3d713; }
.wmesjw[data-theme="dark"] .wmesjw-map { background:#121510; border-color:#444a3a; }
.wmesjw[data-theme="dark"] .wmesjw-native-map__tile {
  filter:invert(.92) hue-rotate(180deg) brightness(.68) contrast(.92) saturate(.75);
}
.wmesjw[data-theme="dark"] .wmesjw-native-nav button {
  background:#252a20;
  color:#f5f1df;
  border-color:#4a503f;
}
.wmesjw[data-theme="dark"] .wmesjw-map-hint { background:rgba(8,10,7,.90); color:#fafafa; }
.wmesjw[data-theme="dark"] .wmesjw-marker::before { border-color:#f0eddf; }
.wmesjw[data-theme="dark"] .wmesjw-marker.is-active::before { background:#11140d; }
.wmesjw[data-theme="dark"] .wmesjw-wind-gauge,
.wmesjw[data-theme="dark"] .wmesjw-fact-card,
.wmesjw[data-theme="dark"] .wmesjw-sun-facts > div,
.wmesjw[data-theme="dark"] .wmesjw-moon-rise-set > div,
.wmesjw[data-theme="dark"] .wmesjw-light-board,
.wmesjw[data-theme="dark"] .wmesjw-phase-summary,
.wmesjw[data-theme="dark"] .wmesjw-hour-card,
.wmesjw[data-theme="dark"] .wmesjw-day-row {
  background:#20241a;
  border-color:#3f4536;
  box-shadow:none;
}
.wmesjw[data-theme="dark"] .wmesjw-condition-icon,
.wmesjw[data-theme="dark"] .wmesjw-hour-icon,
.wmesjw[data-theme="dark"] .wmesjw-day-icon {
  background:#292e22;
}
.wmesjw[data-theme="dark"] .wmesjw-wind-compass {
  background:#20241a;
  border-color:#767d68;
  box-shadow:inset 0 0 0 7px #181b14;
}
.wmesjw[data-theme="dark"] .wmesjw-wind-compass::before,
.wmesjw[data-theme="dark"] .wmesjw-wind-compass::after,
.wmesjw[data-theme="dark"] .wmesjw-wind-diag { background:#4b5140; }
.wmesjw[data-theme="dark"] .wmesjw-wind-n,
.wmesjw[data-theme="dark"] .wmesjw-wind-e,
.wmesjw[data-theme="dark"] .wmesjw-wind-s,
.wmesjw[data-theme="dark"] .wmesjw-wind-w {
  background:#20241a;
  color:#d8d8ca;
}
.wmesjw[data-theme="dark"] .wmesjw-hour-wind,
.wmesjw[data-theme="dark"] .wmesjw-hour-rain {
  background:#292e22;
  border-color:#454b3b;
  color:#dce79a;
}
.wmesjw[data-theme="dark"] .wmesjw-phase-summary-icon { background:#313626; color:#e9e5d2; }
.wmesjw[data-theme="dark"] .wmesjw-light-row { border-color:#373d30; }
.wmesjw[data-theme="dark"] .wmesjw-light-track::after {
  background-image:linear-gradient(to right, rgba(255,255,255,.14) 1px, transparent 1px);
}
.wmesjw[data-theme="dark"] .wmesjw-light-bar.daylight { color:#25230d; }
.wmesjw[data-theme="dark"] .wmesjw-light-bar.civil { color:#25230d; }
.wmesjw[data-theme="dark"] .wmesjw-light-bar.moonvisible { background:#aeb5c4; color:#141923; }
.wmesjw[data-theme="dark"] .wmesjw-moon-visual { box-shadow:0 16px 38px rgba(0,0,0,.42); }
.wmesjw[data-theme="dark"] .wmesjw-toast { background:#0f120c; color:#fff; }

@media (max-width: 700px) {
  .wmesjw-top-actions { gap:10px; }
  .wmesjw-theme-control { gap:6px; font-size:11px; }
  .wmesjw-theme-slider { width:46px; height:26px; }
  .wmesjw-theme-slider i { width:18px; height:18px; }
  .wmesjw-theme-toggle:checked + .wmesjw-theme-slider i { transform:translateX(20px); }
  .wmesjw-light-scale > div span.minor { display:none; }
}
@media (max-width: 460px) {
  .wmesjw-topbar { align-items:flex-start; }
  .wmesjw-top-actions { flex-direction:column; align-items:flex-end; }
  .wmesjw-theme-label { font-size:10px; }
}

/* 0.2.7 – konsistente Niederschlagsanzeige, Stunden-Slider, lesbare Dämmerung */
.wmesjw-hourly-shell {
  position:relative;
  padding:0 44px;
}
.wmesjw-hourly {
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-x;
  scrollbar-width:none;
  cursor:grab;
}
.wmesjw-hourly::-webkit-scrollbar { display:none; }
.wmesjw-hour-card {
  flex:0 0 178px;
  scroll-snap-align:start;
  scroll-snap-stop:normal;
}
.wmesjw-hour-nav {
  position:absolute;
  top:50%;
  z-index:8;
  width:38px;
  height:58px;
  transform:translateY(-50%);
  border:1px solid #bdb6a4;
  border-radius:3px;
  background:rgba(250,249,243,.96);
  color:var(--jw-head);
  font-family:var(--wmesjw-heading-font);
  font-size:32px;
  line-height:1;
  box-shadow:0 3px 12px rgba(43,32,3,.12);
  cursor:pointer;
}
.wmesjw-hour-nav-prev { left:0; }
.wmesjw-hour-nav-next { right:0; }
.wmesjw-hour-nav:hover:not(:disabled) { background:#f2eedf; border-color:#8e876f; }
.wmesjw-hour-nav:disabled { opacity:.25; cursor:default; box-shadow:none; }

/* Dämmerung bewusst in drei getrennten Zeilen: keine kollidierenden Zeitlabels. */
.wmesjw-light-group-title {
  display:grid;
  grid-template-columns:148px minmax(0,1fr);
  gap:24px;
  align-items:end;
  padding:18px 0 4px;
  border-top:1px solid rgba(213,208,192,.8);
}
.wmesjw-light-group-title span {
  font-family:var(--wmesjw-heading-font);
  font-size:20px;
  font-weight:700;
  color:var(--jw-head);
}
.wmesjw-light-group-title small {
  color:var(--jw-muted);
  font-size:11px;
}
.wmesjw-light-row-twilight {
  min-height:72px;
  padding:10px 0;
  border-top:0;
}
.wmesjw-light-row-twilight + .wmesjw-light-row-twilight {
  border-top:1px dashed rgba(213,208,192,.72);
}
.wmesjw-light-row-twilight .wmesjw-light-row-label strong { font-size:16px; }
.wmesjw-light-row-twilight .wmesjw-light-row-label small {
  font-variant-numeric:tabular-nums;
  font-size:12px;
  white-space:nowrap;
}
.wmesjw-light-row-twilight .wmesjw-light-track { height:34px; }
.wmesjw-light-row-twilight .wmesjw-light-marker {
  width:8px;
}
.wmesjw-light-row-twilight .wmesjw-light-marker i {
  width:1px;
  background:rgba(255,255,255,.72);
}
.wmesjw-light-row-twilight .wmesjw-light-marker b {
  width:7px;
  height:7px;
  border-width:1px;
}

/* Höherer Kontrast zwischen bürgerlicher Dämmerung und Tageslicht. */
.wmesjw-light-bar.daylight { background:#efe09a; color:#2b2003; }
.wmesjw-light-bar.civil { background:#d19443; color:#2b2003; }
.wmesjw-light-bar.nautical { background:#6380a4; color:#fff; }
.wmesjw-light-bar.astro { background:#354b6a; color:#fff; }
.wmesjw-light-key i.daylight { background:#efe09a; }
.wmesjw-light-key i.civil { background:#d19443; }
.wmesjw-light-key i.nautical { background:#6380a4; }
.wmesjw-light-key i.astro { background:#354b6a; }

.wmesjw[data-theme="dark"] .wmesjw-hour-nav {
  background:#252a20;
  color:#f5f1df;
  border-color:#535a48;
  box-shadow:0 3px 12px rgba(0,0,0,.30);
}
.wmesjw[data-theme="dark"] .wmesjw-hour-nav:hover:not(:disabled) { background:#30362a; }
.wmesjw[data-theme="dark"] .wmesjw-light-group-title,
.wmesjw[data-theme="dark"] .wmesjw-light-row-twilight + .wmesjw-light-row-twilight { border-color:#373d30; }
.wmesjw[data-theme="dark"] .wmesjw-light-bar.daylight { background:#d8c86f; color:#20210b; }
.wmesjw[data-theme="dark"] .wmesjw-light-bar.civil { background:#ba7735; color:#17180b; }

@media (max-width: 900px) {
  .wmesjw-light-group-title { grid-template-columns:110px minmax(0,1fr); gap:12px; }
  .wmesjw-light-row-twilight .wmesjw-light-row-label small { white-space:normal; }
}

@media (max-width: 700px) {
  .wmesjw-hourly-shell { padding:0; }
  .wmesjw-hour-nav { display:none; }
  .wmesjw-hourly { padding-left:2px; padding-right:18vw; }
  .wmesjw-hour-card { flex:0 0 min(76vw,270px); min-width:0; }
  .wmesjw-light-group-title {
    grid-template-columns:1fr;
    gap:3px;
    padding:16px 0 6px;
  }
  .wmesjw-light-group-title small { display:none; }
  .wmesjw-light-row-twilight {
    grid-template-columns:1fr;
    gap:8px;
    padding:10px 0 14px;
  }
  .wmesjw-light-row-twilight .wmesjw-light-row-label {
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:12px;
  }
  .wmesjw-light-row-twilight .wmesjw-light-row-label small {
    margin:0;
    text-align:right;
    font-size:11px;
  }
  .wmesjw-light-row-twilight .wmesjw-light-track {
    margin-top:0;
    height:30px;
  }
}

@media (max-width: 430px) {
  .wmesjw-hourly { padding-right:12vw; }
  .wmesjw-hour-card { flex-basis:82vw; }
  .wmesjw-light-row-twilight .wmesjw-light-row-label {
    display:block;
  }
  .wmesjw-light-row-twilight .wmesjw-light-row-label small {
    display:block;
    margin-top:4px;
    text-align:left;
  }
}

@media (min-width: 901px) {
  .wmesjw-light-scale,
  .wmesjw-light-row,
  .wmesjw-light-group-title { grid-template-columns:220px minmax(0,1fr); }
}
@media (min-width: 701px) and (max-width: 900px) {
  .wmesjw-light-scale,
  .wmesjw-light-row,
  .wmesjw-light-group-title { grid-template-columns:180px minmax(0,1fr); }
}

/* 0.2.8 – Seiten-Darkmode, Titelbereinigung, Topbar-Typografie, Luftdrucktrend */
body.wmesjw-page .entry-title,
body.wmesjw-page .page-title,
body.wmesjw-page .wp-block-post-title {
  display:none !important;
}
body.wmesjw-page-dark,
html.wmesjw-page-dark {
  background:#10130d !important;
}
body.wmesjw-page-dark #page,
body.wmesjw-page-dark .site,
body.wmesjw-page-dark .site-content,
body.wmesjw-page-dark .content-area,
body.wmesjw-page-dark .site-main,
body.wmesjw-page-dark main,
body.wmesjw-page-dark article,
body.wmesjw-page-dark .entry-content,
body.wmesjw-page-dark .wp-site-blocks {
  background:#10130d !important;
  color:#ece9df;
}
body.wmesjw-page-dark .wmesjw {
  box-shadow:0 0 0 100vmax #10130d;
  clip-path:inset(0 -100vmax);
}

.wmesjw-kicker {
  font-size:13px;
  line-height:1.2;
  letter-spacing:.12em;
  font-weight:500;
}
.wmesjw-title {
  margin-top:4px;
  font-size:30px;
  line-height:1.05;
  font-weight:500;
  letter-spacing:-.02em;
}
.wmesjw-eyebrow {
  font-weight:760;
}
.wmesjw-facts {
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.wmesjw-pressure-section {
  border-top:1px solid var(--jw-line);
  border-bottom:1px solid var(--jw-line);
}
.wmesjw-pressure-head {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:28px;
  margin-bottom:22px;
}
.wmesjw-pressure-current {
  flex:0 0 auto;
  min-width:210px;
  padding:14px 18px;
  border:1px solid var(--jw-line);
  border-radius:4px;
  background:rgba(255,255,255,.28);
}
.wmesjw-pressure-current > span {
  display:block;
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--jw-muted);
}
.wmesjw-pressure-current strong {
  display:block;
  margin-top:4px;
  font-family:var(--wmesjw-heading-font);
  font-size:31px;
  line-height:1.05;
  color:var(--jw-head);
}
.wmesjw-pressure-current em {
  display:block;
  margin-top:7px;
  font-size:13px;
  line-height:1.35;
  font-style:normal;
  font-weight:700;
  color:var(--jw-green);
}
.wmesjw-pressure-chart {
  width:100%;
  border:1px solid var(--jw-line);
  border-radius:4px;
  background:rgba(255,255,255,.22);
  padding:8px 10px 2px;
  overflow:hidden;
}
.wmesjw-pressure-svg {
  display:block;
  width:100%;
  height:auto;
  min-height:260px;
  font-family:var(--wmesjw-body-font);
}
.wmesjw-pressure-past-bg { fill:rgba(76,84,0,.035); }
.wmesjw-pressure-future-bg { fill:rgba(189,209,6,.055); }
.wmesjw-pressure-grid line,
.wmesjw-pressure-grid-x line {
  stroke:var(--jw-line);
  stroke-width:1;
  vector-effect:non-scaling-stroke;
}
.wmesjw-pressure-grid text,
.wmesjw-pressure-grid-x text,
.wmesjw-pressure-zone-label {
  fill:var(--jw-muted);
  font-size:12px;
}
.wmesjw-pressure-zone-label {
  font-weight:700;
  letter-spacing:.04em;
}
.wmesjw-pressure-line {
  fill:none;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}
.wmesjw-pressure-line.past { stroke:#6f7950; }
.wmesjw-pressure-line.future { stroke:var(--jw-green); stroke-dasharray:7 5; }
.wmesjw-pressure-point {
  stroke:var(--jw-paper);
  stroke-width:2;
  vector-effect:non-scaling-stroke;
}
.wmesjw-pressure-point.past { fill:#6f7950; }
.wmesjw-pressure-point.future { fill:var(--jw-accent); }
.wmesjw-pressure-now {
  stroke:var(--jw-head);
  stroke-width:2;
  stroke-dasharray:3 3;
  vector-effect:non-scaling-stroke;
}
.wmesjw-pressure-summary {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:14px;
}
.wmesjw-pressure-summary > div {
  padding:14px 16px;
  border:1px solid var(--jw-line);
  border-radius:4px;
  background:rgba(255,255,255,.22);
}
.wmesjw-pressure-summary span {
  display:block;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--jw-muted);
}
.wmesjw-pressure-summary strong {
  display:block;
  margin-top:5px;
  font-family:var(--wmesjw-heading-font);
  font-size:20px;
  line-height:1.2;
  color:var(--jw-head);
}
.wmesjw-pressure-note {
  margin-top:10px;
  font-size:11px;
  line-height:1.45;
  color:var(--jw-muted);
}

.wmesjw[data-theme="dark"] .wmesjw-pressure-current,
.wmesjw[data-theme="dark"] .wmesjw-pressure-chart,
.wmesjw[data-theme="dark"] .wmesjw-pressure-summary > div {
  background:#20241a;
  border-color:#3f4536;
}
.wmesjw[data-theme="dark"] .wmesjw-pressure-past-bg { fill:rgba(255,255,255,.018); }
.wmesjw[data-theme="dark"] .wmesjw-pressure-future-bg { fill:rgba(195,215,19,.045); }
.wmesjw[data-theme="dark"] .wmesjw-pressure-line.past { stroke:#929a7b; }
.wmesjw[data-theme="dark"] .wmesjw-pressure-point.past { fill:#a1aa89; }
.wmesjw[data-theme="dark"] .wmesjw-pressure-point { stroke:#20241a; }
.wmesjw[data-theme="dark"] .wmesjw-pressure-now { stroke:#f1ecd5; }

@media (max-width:700px) {
  .wmesjw-kicker { font-size:12px; }
  .wmesjw-title { font-size:26px; }
  .wmesjw-facts { grid-template-columns:1fr; gap:10px; }
  .wmesjw-pressure-head { display:block; }
  .wmesjw-pressure-current { margin-top:16px; min-width:0; width:100%; }
  .wmesjw-pressure-chart { padding:4px 4px 0; }
  .wmesjw-pressure-svg { min-height:220px; }
  .wmesjw-pressure-grid-x.minor { display:none; }
  .wmesjw-pressure-summary { grid-template-columns:1fr; }
  .wmesjw-pressure-zone-label { font-size:10px; }
}
@media (max-width:700px) {
  .wmesjw-facts > div:nth-child(odd) { border-right:0; }
}


/* 0.2.9 – Header-Darkmode und Wettertrend */
body.wmesjw-page-dark #masthead,
body.wmesjw-page-dark .site-header,
body.wmesjw-page-dark header.site-header,
body.wmesjw-page-dark .wp-site-blocks > header,
body.wmesjw-page-dark header.wp-block-template-part,
body.wmesjw-page-dark .mc-site-header,
body.wmesjw-page-dark .mister-clever-header {
  background:#14180f !important;
  color:#ece9df !important;
  border-color:#343a2d !important;
}
body.wmesjw-page-dark #masthead a,
body.wmesjw-page-dark .site-header a,
body.wmesjw-page-dark .wp-site-blocks > header a,
body.wmesjw-page-dark header.wp-block-template-part a {
  color:#ece9df !important;
}
body.wmesjw-page-dark #masthead button,
body.wmesjw-page-dark .site-header button,
body.wmesjw-page-dark .wp-site-blocks > header button,
body.wmesjw-page-dark header.wp-block-template-part button {
  background:#20261a !important;
  color:#ece9df !important;
  border-color:#444b3b !important;
}
.wmesjw-pressure-summary { grid-template-columns:repeat(3,minmax(0,1fr)); }
.wmesjw-weather-trend-card strong { text-transform:capitalize; }
.wmesjw-weather-trend-card small {
  display:block;
  margin-top:5px;
  color:var(--jw-muted);
  font-size:12px;
  line-height:1.35;
}
@media (max-width:900px) {
  .wmesjw-pressure-summary { grid-template-columns:1fr; }
}

/* 0.3.0 – Wind- und Niederschlagsentwicklung */
.wmesjw-development-card {
  border:1px solid var(--jw-line);
  border-radius:4px;
  background:rgba(255,255,255,.22);
  padding:18px 18px 16px;
}
.wmesjw-development-chart { width:100%; min-width:0; }
.wmesjw-dev-scroll { width:100%; overflow-x:auto; overflow-y:hidden; scrollbar-width:thin; overscroll-behavior-inline:contain; }
.wmesjw-development-svg { display:block; width:100%; height:auto; min-width:780px; font-family:var(--wmesjw-body-font); }
.wmesjw-dev-grid-y line { stroke:var(--jw-line); stroke-width:1; vector-effect:non-scaling-stroke; }
.wmesjw-dev-grid-y text,
.wmesjw-dev-time,
.wmesjw-dev-unit { fill:var(--jw-muted); font-size:12px; }
.wmesjw-dev-unit { font-weight:700; }
.wmesjw-dev-line { fill:none; stroke-width:3.2; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; }
.wmesjw-dev-line.speed { stroke:var(--jw-green); }
.wmesjw-dev-line.gust { stroke:#99792e; stroke-dasharray:8 5; }
.wmesjw-dev-point { stroke:var(--jw-paper); stroke-width:2; vector-effect:non-scaling-stroke; }
.wmesjw-dev-point.speed { fill:var(--jw-accent); }
.wmesjw-dev-point.gust { fill:#c79b32; }
.wmesjw-dev-direction path { fill:none; stroke:var(--jw-head); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; }
.wmesjw-dev-direction text { fill:var(--jw-muted); font-size:10px; font-weight:700; }
.wmesjw-dev-legend { display:flex; flex-wrap:wrap; gap:10px 20px; margin:0 0 10px; font-size:12px; color:var(--jw-muted); }
.wmesjw-dev-legend span { display:inline-flex; align-items:center; gap:7px; }
.wmesjw-dev-legend span::before { content:""; width:22px; height:4px; border-radius:999px; background:var(--jw-line); flex:0 0 auto; }
.wmesjw-dev-legend .speed::before { background:var(--jw-green); }
.wmesjw-dev-legend .gust::before { background:#c79b32; }
.wmesjw-dev-legend .direction::before { height:2px; background:var(--jw-head); }
.wmesjw-dev-legend .rain-light::before { background:#8fc6e8; }
.wmesjw-dev-legend .rain-medium::before { background:#4e96c7; }
.wmesjw-dev-legend .rain-heavy::before { background:#215e91; }
.wmesjw-rain-bar rect { vector-effect:non-scaling-stroke; }
.wmesjw-rain-bar.dry rect { fill:rgba(91,127,153,.22); }
.wmesjw-rain-bar.light rect { fill:#8fc6e8; }
.wmesjw-rain-bar.medium rect { fill:#4e96c7; }
.wmesjw-rain-bar.heavy rect { fill:#215e91; }
.wmesjw-rain-bar > text:not(.wmesjw-dev-time) { fill:var(--jw-head); font-size:11px; font-weight:700; }
.wmesjw-development-summary {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:14px;
}
.wmesjw-development-summary > div {
  padding:14px 16px;
  border:1px solid var(--jw-line);
  border-radius:4px;
  background:rgba(255,255,255,.26);
}
.wmesjw-development-summary span {
  display:block;
  font-size:11px;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--jw-muted);
}
.wmesjw-development-summary strong {
  display:block;
  margin-top:5px;
  font-family:var(--wmesjw-heading-font);
  font-size:20px;
  line-height:1.2;
  color:var(--jw-head);
}
.wmesjw[data-theme="dark"] .wmesjw-development-card,
.wmesjw[data-theme="dark"] .wmesjw-development-summary > div {
  background:#20241a;
  border-color:#3f4536;
}
.wmesjw[data-theme="dark"] .wmesjw-dev-point { stroke:#20241a; }
.wmesjw[data-theme="dark"] .wmesjw-dev-line.speed { stroke:#c3d713; }
.wmesjw[data-theme="dark"] .wmesjw-dev-line.gust { stroke:#e0b451; }
.wmesjw[data-theme="dark"] .wmesjw-dev-point.speed { fill:#d2e52a; }
.wmesjw[data-theme="dark"] .wmesjw-dev-point.gust { fill:#e0b451; }
.wmesjw[data-theme="dark"] .wmesjw-dev-direction path { stroke:#ece9df; }
.wmesjw[data-theme="dark"] .wmesjw-rain-bar.dry rect { fill:rgba(144,177,201,.2); }
.wmesjw[data-theme="dark"] .wmesjw-rain-bar.light rect { fill:#76b7de; }
.wmesjw[data-theme="dark"] .wmesjw-rain-bar.medium rect { fill:#418ec0; }
.wmesjw[data-theme="dark"] .wmesjw-rain-bar.heavy rect { fill:#2670aa; }

@media (max-width:900px) {
  .wmesjw-development-summary { grid-template-columns:1fr; }
}
@media (max-width:700px) {
  .wmesjw-development-card { padding:14px 10px 12px; }
  .wmesjw-development-svg { min-width:720px; }
  .wmesjw-dev-legend { padding:0 4px; font-size:11px; }
  .wmesjw-development-summary { gap:8px; }
  .wmesjw-development-summary > div { padding:12px 13px; }
  .wmesjw-development-summary strong { font-size:18px; }
}

/* 0.3.1 – PWA-Installation über die App-Leiste */
.wmesjw-install-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:40px;
  padding:0 14px;
  font-weight:600;
  white-space:nowrap;
}
.wmesjw-install-btn[hidden] { display:none !important; }
.wmesjw-install-symbol {
  font-size:18px;
  line-height:1;
  transform:translateY(-1px);
}
.wmesjw-install-dialog[hidden] { display:none !important; }
.wmesjw-install-dialog {
  position:fixed;
  inset:0;
  z-index:100000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}
.wmesjw-install-backdrop {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  background:rgba(13,11,8,.62);
  cursor:default;
}
.wmesjw-install-sheet {
  position:relative;
  z-index:1;
  width:min(520px,100%);
  max-height:min(78vh,680px);
  overflow:auto;
  padding:28px 30px 30px;
  background:var(--jw-paper);
  color:var(--jw-ink);
  border:1px solid var(--jw-line);
  border-radius:4px;
  box-shadow:0 24px 70px rgba(0,0,0,.32);
}
.wmesjw-install-sheet h3 { margin-top:6px; }
.wmesjw-install-close {
  position:absolute;
  top:10px;
  right:10px;
  width:38px;
  height:38px;
  min-height:0;
  padding:0;
  border:1px solid var(--jw-line);
  border-radius:2px;
  background:transparent;
  color:var(--jw-head);
  font-size:25px;
  line-height:1;
}
.wmesjw-install-help {
  margin-top:22px;
  font-size:16px;
  line-height:1.55;
}
.wmesjw-install-help p { margin:0 0 14px; }
.wmesjw-install-help ol { margin:0; padding-left:22px; }
.wmesjw-install-help li + li { margin-top:9px; }
body.wmesjw-install-open { overflow:hidden; }
.wmesjw[data-theme="dark"] .wmesjw-install-sheet {
  background:#181c15;
  color:#f4f2e9;
  border-color:#3a4032;
}
.wmesjw[data-theme="dark"] .wmesjw-install-close {
  color:#f4f2e9;
  border-color:#4a5140;
}
@media (max-width:700px) {
  .wmesjw-topbar { gap:12px; }
  .wmesjw-install-btn { min-height:38px; padding:0 11px; font-size:12px; }
  .wmesjw-install-symbol { font-size:16px; }
  .wmesjw-install-sheet {
    align-self:flex-end;
    width:100%;
    max-height:86vh;
    padding:26px 20px 28px;
    border-radius:6px 6px 0 0;
  }
  .wmesjw-install-dialog { align-items:flex-end; padding:0; }
}
@media (max-width:460px) {
  .wmesjw-top-actions { flex-direction:column; align-items:flex-end; gap:8px; }
  .wmesjw-install-label { font-size:11px; }
}

/* 0.3.2 – Bewölkung + Jagdverhältnisse */
.wmesjw-cloud-development-svg .wmesjw-cloud-area {
  fill:rgba(107,124,148,.18);
}
.wmesjw-cloud-line {
  fill:none;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}
.wmesjw-cloud-line.total { stroke:#43546b; }
.wmesjw-cloud-point {
  fill:#4c5400;
  stroke:var(--jw-paper);
  stroke-width:2;
  vector-effect:non-scaling-stroke;
}
.wmesjw-cloud-legend .cloud-total::before { background:#43546b; }

.wmesjw-hunting-panel {
  border:1px solid var(--jw-line);
  border-radius:4px;
  background:rgba(255,255,255,.22);
  padding:20px;
}
.wmesjw-hunting-overall {
  padding:18px 20px;
  border-left:4px solid var(--jw-green);
  background:rgba(189,209,6,.08);
}
.wmesjw-hunting-overall > span,
.wmesjw-hunting-factors span {
  display:block;
  font-size:11px;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--jw-muted);
}
.wmesjw-hunting-overall > strong {
  display:block;
  margin-top:6px;
  font-family:var(--wmesjw-heading-font);
  font-size:28px;
  font-weight:500;
  line-height:1.1;
  color:var(--jw-head);
}
.wmesjw-hunting-overall p {
  margin:8px 0 0;
  color:var(--jw-muted);
  line-height:1.45;
}
.wmesjw-hunting-factors {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-top:14px;
}
.wmesjw-hunting-factors > div {
  padding:14px 16px;
  border:1px solid var(--jw-line);
  border-radius:4px;
  background:rgba(255,255,255,.24);
}
.wmesjw-hunting-factors strong {
  display:block;
  margin-top:6px;
  font-family:var(--wmesjw-heading-font);
  font-size:18px;
  font-weight:500;
  line-height:1.25;
  color:var(--jw-head);
}
.wmesjw-weather-icon-fallback {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:64px;
  height:64px;
  font-size:40px;
  color:var(--jw-muted);
}
.wmesjw[data-theme="dark"] .wmesjw-cloud-development-svg .wmesjw-cloud-area { fill:rgba(129,153,180,.16); }
.wmesjw[data-theme="dark"] .wmesjw-cloud-line.total { stroke:#a9bed3; }
.wmesjw[data-theme="dark"] .wmesjw-cloud-point { fill:#c3d713; stroke:#20241a; }
.wmesjw[data-theme="dark"] .wmesjw-hunting-panel,
.wmesjw[data-theme="dark"] .wmesjw-hunting-factors > div {
  background:#20241a;
  border-color:#3f4536;
}
.wmesjw[data-theme="dark"] .wmesjw-hunting-overall {
  background:rgba(195,215,19,.07);
  border-left-color:#c3d713;
}
@media (max-width:900px) {
  .wmesjw-hunting-factors { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px) {
  .wmesjw-hunting-panel { padding:14px 12px; }
  .wmesjw-hunting-overall { padding:15px 14px; }
  .wmesjw-hunting-overall > strong { font-size:24px; }
  .wmesjw-hunting-factors { grid-template-columns:1fr; gap:8px; }
  .wmesjw-hunting-factors > div { padding:12px 13px; }
  .wmesjw-cloud-development-svg { min-width:720px; }
}

/* 0.3.5 – Wolkenschichten transparent aus MET-Rohdaten darstellen */
.wmesjw-cloud-line.low { stroke:#6f8498; stroke-width:2; stroke-dasharray:9 5; }
.wmesjw-cloud-line.medium { stroke:#8b795f; stroke-width:2; stroke-dasharray:4 5; }
.wmesjw-cloud-line.high { stroke:#9b9ea5; stroke-width:2; stroke-dasharray:2 5; }
.wmesjw-cloud-legend .cloud-low::before { background:#6f8498; }
.wmesjw-cloud-legend .cloud-medium::before { background:#8b795f; }
.wmesjw-cloud-legend .cloud-high::before { background:#9b9ea5; }
.wmesjw-cloud-development-summary { grid-template-columns:repeat(4,minmax(0,1fr)); }
.wmesjw-cloud-development-summary strong { font-size:18px; }
.wmesjw[data-theme="dark"] .wmesjw-cloud-line.low { stroke:#8da5bb; }
.wmesjw[data-theme="dark"] .wmesjw-cloud-line.medium { stroke:#c2aa84; }
.wmesjw[data-theme="dark"] .wmesjw-cloud-line.high { stroke:#b9bdc5; }
@media (max-width:900px) { .wmesjw-cloud-development-summary { grid-template-columns:1fr; } }

/* 0.3.7 – ausschließlich mobile App-Optimierung: Header/Branding + lesbare Diagramme */
@media (max-width:700px) {
  /* App-Kopf: keine abgeschnittenen Elemente mehr. Branding oben, Bedienung darunter. */
  .wmesjw-topbar {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    align-items:stretch;
    justify-content:stretch;
    gap:12px;
    min-height:0;
    padding:14px 16px 16px;
    overflow:visible;
  }
  .wmesjw-brand {
    width:100%;
    min-width:0;
    gap:14px;
    align-items:center;
  }
  .wmesjw-brand-mark {
    width:88px;
    height:82px;
    flex:0 0 88px;
  }
  .wmesjw-brand-logo {
    width:auto;
    height:80px;
    max-width:108px;
    object-fit:contain;
  }
  .wmesjw-brand > div {
    min-width:0;
  }
  .wmesjw-kicker {
    font-size:12px;
    line-height:1.18;
    letter-spacing:.12em;
    font-weight:500;
    white-space:nowrap;
  }
  .wmesjw-title {
    margin-top:5px;
    font-size:31px;
    line-height:1;
    font-weight:500;
    letter-spacing:-.025em;
    white-space:nowrap;
  }
  .wmesjw-top-actions {
    width:100%;
    min-width:0;
    display:grid;
    grid-template-columns:max-content minmax(0,1fr);
    align-items:center;
    justify-content:stretch;
    gap:10px;
  }
  .wmesjw-theme-control {
    min-width:0;
    justify-self:start;
    gap:6px;
    font-size:11px;
    white-space:nowrap;
  }
  .wmesjw-install-btn {
    width:100%;
    min-width:0;
    max-width:none;
    min-height:42px;
    padding:0 12px;
    overflow:hidden;
  }
  .wmesjw-install-label {
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:12px;
  }

  /* Diagramme: auf Mobil nicht zusammenschrumpfen, sondern als gut lesbare Swipe-Fläche. */
  .wmesjw-development-card {
    padding:14px 8px 12px;
    overflow:hidden;
  }
  .wmesjw-dev-scroll {
    width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    padding-bottom:8px;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
    overscroll-behavior-inline:contain;
    touch-action:pan-x;
  }
  .wmesjw-development-svg,
  .wmesjw-cloud-development-svg {
    width:960px;
    min-width:960px;
    max-width:none;
    height:auto;
  }
  .wmesjw-dev-grid-y text,
  .wmesjw-dev-time,
  .wmesjw-dev-unit {
    font-size:15px;
  }
  .wmesjw-dev-line {
    stroke-width:4.2;
  }
  .wmesjw-cloud-line.total {
    stroke-width:4.2;
  }
  .wmesjw-cloud-line.low,
  .wmesjw-cloud-line.medium,
  .wmesjw-cloud-line.high {
    stroke-width:3;
  }
  .wmesjw-dev-point,
  .wmesjw-cloud-point {
    stroke-width:3;
  }
  .wmesjw-rain-bar > text:not(.wmesjw-dev-time) {
    font-size:14px;
  }
  .wmesjw-dev-direction text {
    font-size:12px;
  }
  .wmesjw-dev-legend {
    gap:8px 12px;
    margin-bottom:12px;
    padding:0 2px;
    font-size:12px;
    line-height:1.25;
  }
  .wmesjw-cloud-legend {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .wmesjw-dev-legend span::before {
    width:26px;
    height:5px;
  }

  /* Auch der Luftdruck bleibt mobil in Originalgröße lesbar und ist horizontal wischbar. */
  .wmesjw-pressure-chart {
    overflow-x:auto;
    overflow-y:hidden;
    padding:6px 6px 4px;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
    overscroll-behavior-inline:contain;
    touch-action:pan-x;
  }
  .wmesjw-pressure-svg {
    display:block;
    width:900px;
    min-width:900px;
    max-width:none;
    height:270px;
    min-height:270px;
  }
  .wmesjw-pressure-grid text,
  .wmesjw-pressure-grid-x text,
  .wmesjw-pressure-zone-label {
    font-size:14px;
  }
  .wmesjw-pressure-line {
    stroke-width:4;
  }
  .wmesjw-pressure-now {
    stroke-width:2.5;
  }
}

@media (max-width:390px) {
  .wmesjw-topbar { padding-left:13px; padding-right:13px; }
  .wmesjw-brand { gap:11px; }
  .wmesjw-brand-mark { width:78px; height:74px; flex-basis:78px; }
  .wmesjw-brand-logo { height:72px; max-width:96px; }
  .wmesjw-kicker { font-size:11px; letter-spacing:.105em; }
  .wmesjw-title { font-size:28px; }
  .wmesjw-top-actions { grid-template-columns:1fr; gap:8px; }
  .wmesjw-theme-control { justify-self:start; }
  .wmesjw-install-btn { width:100%; }
}
