.dwf-app{
  --dwf-primary:#1677ff;
  --dwf-secondary:#38bdf8;
  --dwf-accent:#0ea5e9;
  --dwf-background:#f4f9ff;
  --dwf-gradient-end:#dcebff;
  --dwf-card:#fff;
  --dwf-text:#102a43;
  --dwf-muted:#5f7890;
  --dwf-border:#c9def2;
  --dwf-image-overlay:#eaf4ff;
  --dwf-image-overlay-opacity:.82;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--dwf-text);
  border:1px solid var(--dwf-border);
  border-radius:26px;
  padding:26px;
  box-shadow:0 20px 60px rgba(30,95,170,.16);
  overflow:hidden;
  position:relative;
  isolation:isolate;
}
.dwf-app.dwf-bg-gradient{background:linear-gradient(145deg,var(--dwf-background) 0%,#fff 48%,var(--dwf-gradient-end) 100%)}
.dwf-app.dwf-bg-solid{background:var(--dwf-background)}
.dwf-app.dwf-has-background-image::before{content:"";position:absolute;inset:0;background-image:var(--dwf-background-image);background-size:cover;background-position:center;z-index:-2}
.dwf-app.dwf-has-background-image::after{content:"";position:absolute;inset:0;background:var(--dwf-image-overlay);opacity:var(--dwf-image-overlay-opacity);z-index:-1}
.dwf-app *{box-sizing:border-box}
.dwf-app button,.dwf-app input,.dwf-app select{font:inherit}
.dwf-topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-bottom:18px;border-bottom:1px solid var(--dwf-border)}
.dwf-brand{display:flex;align-items:center;gap:12px}
.dwf-brand-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:linear-gradient(145deg,#fff7bf,#ffd45b);box-shadow:0 9px 24px rgba(234,179,8,.2);font-size:27px}
.dwf-brand strong{display:block;color:var(--dwf-primary);font-size:18px;letter-spacing:.01em}
.dwf-brand span:last-child{display:block;color:var(--dwf-muted);font-size:12px;margin-top:2px}
.dwf-language-label,.dwf-layer-label{display:grid;gap:5px;color:var(--dwf-muted);font-size:12px;font-weight:800}
.dwf-language,.dwf-layer{min-width:184px;border:1px solid var(--dwf-border);background:var(--dwf-card);color:var(--dwf-text);border-radius:13px;padding:10px 36px 10px 12px;outline:none;box-shadow:0 5px 16px rgba(22,119,255,.07)}
.dwf-language:focus,.dwf-layer:focus,.dwf-search input:focus{border-color:var(--dwf-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--dwf-primary) 18%,transparent)}
.dwf-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:28px 0 16px}
.dwf-kicker{display:block;color:var(--dwf-primary);font-size:11px;font-weight:950;letter-spacing:.17em}
.dwf-title{font-size:clamp(31px,5vw,54px);line-height:1.04;margin:7px 0;color:var(--dwf-text)}
.dwf-subtitle,.dwf-map-note,.dwf-data-credit{color:var(--dwf-muted)}
.dwf-subtitle{margin:0;font-size:15px}
.dwf-current-mini{min-width:220px;display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:center;background:var(--dwf-card);border:1px solid var(--dwf-border);padding:16px 19px;border-radius:19px;box-shadow:0 12px 32px rgba(22,119,255,.12)}
.dwf-current-icon{font-size:44px;grid-row:1/3}
.dwf-current-temp{font-size:31px;line-height:1;color:var(--dwf-primary)}
.dwf-current-label{color:var(--dwf-muted);font-size:13px}
.dwf-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:3px 0 9px}
.dwf-locate{border:1px solid color-mix(in srgb,var(--dwf-primary) 38%,#fff);background:color-mix(in srgb,var(--dwf-primary) 9%,#fff);color:var(--dwf-primary);border-radius:14px;padding:11px 16px;font-weight:850;cursor:pointer;transition:transform .2s,background .2s,box-shadow .2s}
.dwf-locate:hover{background:color-mix(in srgb,var(--dwf-primary) 14%,#fff);transform:translateY(-1px);box-shadow:0 9px 20px rgba(22,119,255,.14)}
.dwf-locate:disabled{opacity:.65;cursor:wait;transform:none}
.dwf-location-source{color:var(--dwf-muted);font-size:12px}
.dwf-search{position:relative;display:flex;gap:10px;margin:18px 0}
.dwf-search input{flex:1;min-width:0;background:var(--dwf-card);color:var(--dwf-text);border:1px solid var(--dwf-border);border-radius:14px;padding:14px 16px;font-size:16px;outline:none}
.dwf-search>button,.dwf-play{border:0;border-radius:14px;padding:12px 19px;font-weight:900;cursor:pointer;background:linear-gradient(135deg,var(--dwf-primary),var(--dwf-secondary));color:#fff;box-shadow:0 10px 22px color-mix(in srgb,var(--dwf-primary) 25%,transparent);transition:transform .2s,filter .2s}
.dwf-search>button:hover,.dwf-play:hover{filter:brightness(1.04);transform:translateY(-1px)}
.dwf-search-results{position:absolute;z-index:50;left:0;right:180px;top:58px;background:var(--dwf-card);color:var(--dwf-text);border:1px solid var(--dwf-border);border-radius:14px;box-shadow:0 22px 50px rgba(30,73,120,.22);overflow:hidden}
.dwf-search-results button{display:flex;width:100%;justify-content:space-between;gap:12px;text-align:left;background:var(--dwf-card);color:var(--dwf-text);border:0;border-bottom:1px solid var(--dwf-border);padding:12px 15px;border-radius:0;cursor:pointer}
.dwf-search-results button:hover{background:color-mix(in srgb,var(--dwf-primary) 7%,#fff)}
.dwf-search-results span{color:var(--dwf-muted);font-size:12px}
.dwf-result-empty{padding:15px;color:var(--dwf-muted)}
.dwf-status{min-height:18px;color:#9a6700;margin:6px 0;font-size:13px}.dwf-status.is-error{color:#b42318}
.dwf-days{display:grid;grid-template-columns:repeat(10,minmax(150px,1fr));gap:12px;overflow-x:auto;padding:6px 2px 18px;scrollbar-width:thin}
.dwf-day{appearance:none;width:100%;background:var(--dwf-card);color:var(--dwf-text);border:1px solid var(--dwf-border);border-radius:19px;padding:14px;min-height:235px;box-shadow:0 8px 20px rgba(31,94,155,.07);text-align:left;cursor:pointer;position:relative;transition:transform .2s,border-color .2s,box-shadow .2s,background .2s}
.dwf-day:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--dwf-primary) 62%,var(--dwf-border));box-shadow:0 14px 30px rgba(31,94,155,.15)}
.dwf-day:focus-visible{outline:3px solid color-mix(in srgb,var(--dwf-primary) 26%,transparent);outline-offset:3px}
.dwf-day.is-today{border-color:var(--dwf-primary);box-shadow:0 12px 28px color-mix(in srgb,var(--dwf-primary) 18%,transparent),inset 0 0 0 1px color-mix(in srgb,var(--dwf-primary) 12%,transparent)}
.dwf-day.is-selected{background:linear-gradient(160deg,color-mix(in srgb,var(--dwf-primary) 9%,var(--dwf-card)),var(--dwf-card));border-color:var(--dwf-primary);box-shadow:0 16px 34px color-mix(in srgb,var(--dwf-primary) 23%,transparent),inset 0 0 0 2px color-mix(in srgb,var(--dwf-primary) 16%,transparent)}
.dwf-day-top{display:flex;justify-content:space-between;color:var(--dwf-muted);font-size:12px}
.dwf-day-top strong{color:var(--dwf-primary);font-size:15px;text-transform:capitalize}
.dwf-icon{font-size:42px;margin:18px 0 7px}.dwf-condition{font-size:13px;min-height:38px;color:var(--dwf-text)}
.dwf-temps{display:flex;gap:9px;align-items:baseline;margin:9px 0 14px}.dwf-temps strong{font-size:25px;color:var(--dwf-primary)}.dwf-temps span{color:var(--dwf-muted);font-size:18px}.dwf-meta{display:grid;gap:5px;color:var(--dwf-muted);font-size:12px}
.dwf-temp-blue{color:#1677ff!important}
.dwf-temp-green{color:#159447!important}
.dwf-temp-gold{color:#d6a20a!important}
.dwf-temp-red{color:#dc2626!important}

.dwf-day-expand{position:absolute;right:13px;bottom:10px;color:var(--dwf-primary);font-size:20px;font-weight:900;line-height:1;transition:transform .2s}
.dwf-day.is-selected .dwf-day-expand{transform:rotate(180deg)}
.dwf-hourly-panel{margin:0 2px 20px;padding:18px;border:1px solid color-mix(in srgb,var(--dwf-primary) 34%,var(--dwf-border));border-radius:22px;background:linear-gradient(145deg,color-mix(in srgb,var(--dwf-primary) 8%,var(--dwf-card)),var(--dwf-card));box-shadow:0 16px 38px rgba(30,95,170,.13);animation:dwf-hourly-open .26s ease-out}
.dwf-hourly-panel[hidden]{display:none}
@keyframes dwf-hourly-open{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.dwf-hourly-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.dwf-hourly-head h3{margin:0;color:var(--dwf-text);font-size:22px;text-transform:capitalize}
.dwf-hourly-head p{margin:4px 0 0;color:var(--dwf-muted);font-size:13px}
.dwf-hourly-close{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border:1px solid var(--dwf-border);border-radius:50%;background:var(--dwf-card);color:var(--dwf-primary);font-size:25px;line-height:1;cursor:pointer;box-shadow:0 6px 16px rgba(31,94,155,.1)}
.dwf-hourly-close:hover{border-color:var(--dwf-primary);background:color-mix(in srgb,var(--dwf-primary) 7%,var(--dwf-card))}
.dwf-hourly-scroll{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(126px,1fr);gap:10px;overflow-x:auto;padding:3px 2px 10px;scrollbar-width:thin;scroll-snap-type:x proximity}
.dwf-hour{scroll-snap-align:start;min-height:218px;padding:13px 12px;border:1px solid var(--dwf-border);border-radius:17px;background:var(--dwf-card);box-shadow:0 7px 18px rgba(31,94,155,.07);text-align:center}
.dwf-hour time{display:block;color:var(--dwf-primary);font-weight:900;font-size:14px}
.dwf-hour-icon{font-size:32px;line-height:1.2;margin:11px 0 7px}
.dwf-hour-temp{display:block;font-size:24px;line-height:1.1}
.dwf-hour-feels{display:block;margin:3px 0 10px;color:var(--dwf-muted);font-size:12px}
.dwf-hour-meta{display:grid;gap:5px;color:var(--dwf-muted);font-size:11px;text-align:left}

.dwf-map-card{background:var(--dwf-card);border:1px solid var(--dwf-border);border-radius:23px;padding:18px;margin-top:8px;box-shadow:0 15px 38px rgba(30,95,170,.1)}
.dwf-map-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:15px}.dwf-map-head h3{font-size:25px;margin:5px 0 0;color:var(--dwf-text)}
.dwf-map-wrap{position:relative;border-radius:18px;overflow:hidden;background:#0a3058;border:1px solid color-mix(in srgb,var(--dwf-primary) 38%,var(--dwf-border));box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.dwf-maplibre{width:100%;height:100%}
.dwf-map-loading{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(145deg,#dbeeff,#b9dcff);color:#0756b3;font-weight:850;transition:opacity .3s;z-index:5}.dwf-map-loading.is-hidden{opacity:0;pointer-events:none}
.dwf-map-time{position:absolute;left:14px;bottom:14px;z-index:4;background:rgba(7,34,65,.82);color:#fff;border:1px solid rgba(255,255,255,.38);border-radius:11px;padding:8px 11px;font-weight:900;font-size:13px;box-shadow:0 6px 18px rgba(0,0,0,.25);backdrop-filter:blur(8px)}
.dwf-map-time[hidden]{display:none}
.dwf-timeline[hidden]{display:none}
.dwf-timeline{display:flex;align-items:flex-start;gap:12px;margin-top:14px}.dwf-timeline-play{display:flex;align-items:center;justify-content:center;flex:0 0 46px;width:46px;height:46px;padding:0;border-radius:50%;box-shadow:0 8px 18px color-mix(in srgb,var(--dwf-primary) 28%,transparent)}.dwf-timeline-play:hover{filter:brightness(1.05);transform:translateY(-1px)}.dwf-play-icon{font-size:17px;line-height:1}.dwf-play-label{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}.dwf-timeline-track{flex:1;min-width:0;padding-top:7px}.dwf-time-slider{width:100%;accent-color:var(--dwf-primary);cursor:pointer}.dwf-timeline-labels{display:grid;grid-template-columns:repeat(7,1fr);margin-top:5px;color:var(--dwf-muted);font-size:11px}.dwf-timeline-labels span{text-align:center}.dwf-timeline-labels span:first-child{text-align:left}.dwf-timeline-labels span:last-child{text-align:right}
.dwf-map-note{font-size:12px;margin:12px 2px 0}.dwf-satellite-only .dwf-map-note{margin-top:10px}
.dwf-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px;font-size:11px}.dwf-owner{margin-left:auto;text-decoration:none;color:#fff;background:linear-gradient(135deg,var(--dwf-primary),var(--dwf-secondary));border-radius:999px;padding:7px 11px;font-weight:900;white-space:nowrap;box-shadow:0 6px 16px color-mix(in srgb,var(--dwf-primary) 22%,transparent)}.dwf-owner:hover{color:#fff;filter:brightness(1.05)}
.maplibregl-ctrl-group{border-radius:11px!important;box-shadow:0 4px 15px rgba(0,0,0,.24)!important}.maplibregl-ctrl-attrib{font-size:10px!important}.maplibregl-ctrl-attrib a{color:#0756b3!important}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:780px){.dwf-app{padding:18px;border-radius:19px}.dwf-topbar,.dwf-hero,.dwf-map-head,.dwf-footer{align-items:stretch;flex-direction:column}.dwf-language{width:100%}.dwf-current-mini{min-width:0}.dwf-tools{align-items:stretch;flex-direction:column}.dwf-locate{width:100%}.dwf-search{display:grid}.dwf-search-results{right:0;top:108px}.dwf-layer{width:100%}.dwf-map-wrap{height:480px!important}.dwf-timeline{gap:9px}.dwf-timeline-play{flex-basis:42px;width:42px;height:42px}.dwf-owner{align-self:flex-end}}
@media(max-width:480px){.dwf-app{padding:14px}.dwf-map-card{padding:12px}.dwf-map-wrap{height:420px!important}.dwf-day{min-width:145px}.dwf-hourly-panel{padding:13px;margin-bottom:16px}.dwf-hourly-head h3{font-size:18px}.dwf-hourly-scroll{grid-auto-columns:118px}.dwf-hour{min-height:210px;padding:12px 10px}.dwf-timeline{gap:8px}.dwf-timeline-play{flex-basis:40px;width:40px;height:40px}}

/* Public license lock — no weather data or map scripts run until activation. */
.dwf-public-license-lock{display:flex;align-items:center;gap:12px;flex-wrap:wrap;max-width:920px;margin:18px auto;padding:18px 20px;border:1px solid #b9d6ef;border-left:5px solid #1677ff;border-radius:15px;background:linear-gradient(145deg,#f7fbff,#e8f3ff);color:#173b63;box-shadow:0 10px 28px rgba(20,91,160,.1)}.dwf-public-license-lock strong{font-size:17px}.dwf-public-license-lock span{color:#607b94}.dwf-public-license-lock a{margin-left:auto;padding:8px 12px;border-radius:999px;background:#1677ff;color:#fff!important;text-decoration:none;font-weight:800}.dwf-public-license-lock a:hover{filter:brightness(1.05)}
@media(max-width:600px){.dwf-public-license-lock{align-items:flex-start;flex-direction:column}.dwf-public-license-lock a{margin-left:0}}
