.daily-forecast-widget {
  color: var(--daily-forecast-text, var(--profile-widget-text, #e8eef8));
  background: var(--daily-forecast-surface, var(--profile-widget-surface, #17243a));
  font: 14px/1.55 system-ui, sans-serif;
}
main.daily-forecast-widget { max-width: 960px; margin: 0 auto; min-height: 100vh; }
.daily-forecast-header { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; border-bottom: 1px solid #8293aa40; }
.daily-forecast-header h2 { margin: 0; font-size: 18px; }
.daily-forecast-body { padding: 16px 18px; }
.daily-forecast-toolbar { display: flex; align-items: end; flex-wrap: wrap; gap: 12px; margin-bottom: 18px; }
.daily-forecast-toolbar label { display: flex; flex-direction: column; gap: 4px; }
.daily-forecast-toolbar select, .daily-forecast-toolbar button, .daily-forecast-close {
  min-height: 34px; border: 1px solid #8293aa70; border-radius: 6px; padding: 6px 10px;
  color: inherit; background: var(--daily-forecast-surface, var(--profile-widget-surface, #17243a)); font: inherit;
}
.daily-forecast-close { cursor: pointer; font-size: 20px; line-height: 1; }
.daily-forecast-toolbar button { cursor: pointer; }
.daily-forecast-meta { font-size: 12px; opacity: .75; margin: 6px 0; overflow-wrap: anywhere; }
.daily-forecast-notice { padding: 10px 12px; background: #e6b85b14; border-left: 3px solid #c9a454; }
.daily-forecast-current { font-weight: 600; }
.daily-forecast-day { padding: 16px 0; border-top: 1px solid #8293aa40; }
.daily-forecast-day h3 { margin: 0 0 5px; font-size: 16px; }
.daily-forecast-text { margin: 8px 0 12px; }
.daily-forecast-numbers summary { cursor: pointer; font-size: 13px; }
.daily-forecast-table-wrap { overflow: auto; }
.daily-forecast-numbers table { width: 100%; border-collapse: collapse; font-size: 12px; margin-top: 10px; }
.daily-forecast-numbers th, .daily-forecast-numbers td { padding: 6px; text-align: left; border-bottom: 1px solid #8293aa30; white-space: nowrap; }
.daily-forecast-error { color: #ef9292; }
.daily-forecast-modal .weather-airspace-dialog { width: min(680px, calc(100vw - 24px)); }
.daily-forecast-modal { --daily-forecast-text: #edf5ff; --daily-forecast-surface: #0f1a29; }
.daily-forecast-widget .weather-point-loading { display: flex; align-items: center; gap: 14px; padding: 24px 0; }
.daily-forecast-widget .weather-point-loading-ring { position: relative; display: grid; place-items: center; flex-shrink: 0; width: 56px; height: 56px; border-radius: 50%; background: conic-gradient(#5d9df5 var(--progress), #8293aa30 0); }
.daily-forecast-widget .weather-point-loading-ring::before { content: ''; position: absolute; inset: 5px; border-radius: 50%; background: var(--daily-forecast-surface, var(--profile-widget-surface, #17243a)); }
.daily-forecast-widget .weather-point-loading-ring span { position: relative; font-size: 12px; }
.weather-point-popup-daily-forecast-toggle { grid-column: 1 / -1; }
@media (max-width: 520px) {
  .daily-forecast-body, .daily-forecast-header { padding: 12px; }
  .daily-forecast-toolbar select, .daily-forecast-toolbar button { min-height: 40px; max-width: 100%; }
  .daily-forecast-toolbar label { max-width: 100%; }
  .daily-forecast-numbers thead { display: none; }
  .daily-forecast-numbers tbody, .daily-forecast-numbers tr, .daily-forecast-numbers td { display: block; }
  .daily-forecast-numbers tr { border-bottom: 1px solid #8293aa50; padding: 6px 0; }
  .daily-forecast-numbers td { display: flex; justify-content: space-between; border: 0; gap: 10px; }
  .daily-forecast-numbers td::before { content: attr(data-label); opacity: .75; white-space: normal; }
}
.daily-forecast-widget {
  --daily-forecast-control-border: #8293aa70;
  --daily-forecast-focus: #5d9df5;
  --daily-forecast-control-gap: 8px;
  --daily-forecast-date-spacing: 16px;
}
.daily-forecast-date-editor { margin-bottom: var(--daily-forecast-date-spacing); }
.daily-forecast-date-editor[hidden] { display: none; }
.daily-forecast-date-tools { display: flex; flex-wrap: wrap; align-items: end; gap: var(--daily-forecast-control-gap); }
.daily-forecast-date-tools label { display: flex; flex-direction: column; gap: 4px; }
.daily-forecast-date-tools input,
.daily-forecast-date-tools button {
  min-height: 36px; box-sizing: border-box; padding: 4px 8px;
  border: 1px solid var(--daily-forecast-control-border); border-radius: 4px;
  color: inherit; font: inherit; background: var(--daily-forecast-surface, var(--profile-widget-surface, #17243a));
}
.daily-forecast-date-tools button { cursor: pointer; }
.daily-forecast-date-tools button:disabled { cursor: default; opacity: .55; }
.daily-forecast-date-tools :focus-visible { outline: 2px solid var(--daily-forecast-focus); outline-offset: 2px; }
.daily-forecast-date-tools input[aria-invalid='true'] { border-color: currentColor; }
.daily-forecast-date-choices {
  display: flex; flex-wrap: wrap; gap: var(--daily-forecast-control-gap);
  margin: var(--daily-forecast-control-gap) 0 0; padding: 4px 0; border: 0;
}
.daily-forecast-date-choice { display: flex; align-items: center; gap: 4px; min-height: 32px; }
.daily-forecast-date-choice input { accent-color: var(--daily-forecast-focus); }
@media (max-width: 520px) {
  .daily-forecast-date-tools input, .daily-forecast-date-tools button { min-height: 40px; max-width: 100%; }
}
