/**
 * ChatLoupe Weather – scoped, responsive, theme-aware styles.
 * @license GPL-2.0-or-later
 */
.chtlp-meteo {
  --meteo-bg: transparent;
  --meteo-panel: color-mix(in srgb, currentColor 6%, transparent);
  --meteo-line: color-mix(in srgb, currentColor 17%, transparent);
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  padding: clamp(.8rem, 2vw, 1.4rem);
  border: 1px solid var(--meteo-line);
  border-radius: 14px;
  background: var(--meteo-bg);
  color: inherit;
  container-type: inline-size;
}
.chtlp-meteo *, .chtlp-meteo *::before, .chtlp-meteo *::after { box-sizing: border-box; }
.chtlp-meteo__city { font-size: clamp(1rem, 2.8cqi, 1.25rem); font-weight: 650; margin: 0 0 .8rem; overflow-wrap: anywhere; }
.chtlp-meteo__top { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.chtlp-meteo__icon, .chtlp-meteo__day-icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.chtlp-meteo__icon svg { width: 3.4rem; height: 3.4rem; }
.chtlp-meteo__day-icon svg { width: 2rem; height: 2rem; }
.chtlp-meteo__temp, .chtlp-meteo__day-temps { font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; font-variant-numeric: lining-nums tabular-nums; font-feature-settings: "tnum" 1, "lnum" 1, "zero" 0; text-decoration: none; }
.chtlp-meteo__temp { font-size: clamp(1.8rem, 6cqi, 2.75rem); font-weight: 700; line-height: 1.15; }
.chtlp-meteo__desc { margin: .3rem 0 0; }
.chtlp-meteo__details { display: flex; flex-wrap: wrap; gap: .35rem 1.2rem; margin-top: .85rem; font-size: .9rem; }
.chtlp-meteo__forecast { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 94px), 1fr)); gap: .55rem; margin-top: 1.1rem; }
.chtlp-meteo__day { min-width: 0; text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: .45rem; padding: .7rem .3rem; border-radius: 10px; background: var(--meteo-panel); }
.chtlp-meteo__day-name { font-size: .86rem; }
.chtlp-meteo__day-temps { display: flex; gap: .5rem; align-items: baseline; justify-content: center; white-space: nowrap; font-size: .95rem; }
.chtlp-meteo__high { font-weight: 700; }
.chtlp-meteo__low { opacity: .7; }
.chtlp-meteo__status { margin: 0; }
.chtlp-meteo__credit { font-size: .73rem; opacity: .76; margin: .9rem 0 0; }
.chtlp-meteo__credit a { color: inherit; text-decoration: underline; }
.chtlp-meteo--compact .chtlp-meteo__forecast { display: none; }
.chtlp-meteo--compact .chtlp-meteo__top { gap: .65rem; }
.chtlp-meteo--compact .chtlp-meteo__icon svg { width: 2.6rem; height: 2.6rem; }
.chtlp-meteo--horizontal .chtlp-meteo__top { display: inline-flex; vertical-align: middle; margin-right: 1rem; }
.chtlp-meteo--horizontal .chtlp-meteo__forecast { display: flex; overflow-x: auto; padding-bottom: .35rem; }
.chtlp-meteo--horizontal .chtlp-meteo__day { flex: 1 0 88px; }
.chtlp-meteo--detailed .chtlp-meteo__day { padding-block: 1rem; }
.chtlp-meteo--light { --meteo-bg: #fff; --meteo-panel: #f0f3f7; --meteo-line: #d3dae4; color: #1c2737; }
.chtlp-meteo--dark { --meteo-bg: #1b2636; --meteo-panel: #2a394d; --meteo-line: #47596d; color: #f2f6fa; }
@container (max-width: 340px) {
  .chtlp-meteo__forecast { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .chtlp-meteo__details { flex-direction: column; gap: .3rem; }
}

/* Beta4: leave breathing space around SVG strokes and prevent clipping. */
.chtlp-meteo__icon,
.chtlp-meteo__day-icon {
  line-height: 0;
  overflow: visible;
}
.chtlp-meteo__icon svg,
.chtlp-meteo__day-icon svg {
  display: block;
  overflow: visible;
  flex-shrink: 0;
}

/* Beta5: presentation-specific responsive arrangements. */
.chtlp-meteo__forecast {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 112px), 1fr));
}
@container (min-width: 910px) {
  .chtlp-meteo--standard .chtlp-meteo__forecast {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
}
.chtlp-meteo--compact { padding: .65rem .85rem; border-radius: 10px; }
.chtlp-meteo--compact .chtlp-meteo__city { margin-bottom: .35rem; font-size: 1rem; }
.chtlp-meteo--compact .chtlp-meteo__temp { font-size: 1.6rem; }
.chtlp-meteo--compact .chtlp-meteo__desc { margin-top: .1rem; font-size: .9rem; }
.chtlp-meteo--compact .chtlp-meteo__details { font-size: .82rem; margin-top: .45rem; }
.chtlp-meteo--compact .chtlp-meteo__credit { margin-top: .4rem; }
.chtlp-meteo--horizontal .chtlp-meteo__forecast {
  display: flex;
  gap: .55rem;
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
  padding: .15rem .15rem .5rem;
}
.chtlp-meteo--horizontal .chtlp-meteo__day {
  flex: 0 0 clamp(96px, 13cqi, 126px);
  scroll-snap-align: start;
}
.chtlp-meteo__forecast-wrap { min-width: 0; }
.chtlp-meteo__nav { display: flex; justify-content: flex-end; align-items: center; gap: .55rem; margin-top: .3rem; }
.chtlp-meteo__nav[hidden] { display: none; }
.chtlp-meteo__hint { margin-right: auto; font-size: .78rem; opacity: .72; }
.chtlp-meteo__arrow {
  appearance: none; display: inline-flex; align-items: center; justify-content: center;
  width: 2rem; height: 2rem; padding: 0; border-radius: 50%;
  border: 1px solid var(--meteo-line); background: var(--meteo-panel);
  color: inherit; font-family: Arial, sans-serif; font-size: 1.45rem;
  cursor: pointer; line-height: 1;
}
.chtlp-meteo__arrow:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.chtlp-meteo__arrow:disabled { opacity: .3; cursor: default; }
.chtlp-meteo--detailed .chtlp-meteo__forecast { grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); }
.chtlp-meteo--detailed .chtlp-meteo__day { padding: .9rem .5rem; }
.chtlp-meteo__day-extra { display: flex; flex-direction: column; gap: .2rem; font-size: .75rem; opacity: .82; }
.chtlp-meteo__sun-times { display: flex; gap: .7rem 1.5rem; flex-wrap: wrap; margin-top: .8rem; font-size: .85rem; }
.chtlp-meteo__day-name, .chtlp-meteo__day-temps {
  font-family: Arial, Helvetica, sans-serif;
  font-feature-settings: "zero" 0, "tnum" 1;
  text-decoration: none;
}

/* Beta6: rich but fluid compact day summary and SVG icon choices. */
.chtlp-meteo--compact .chtlp-meteo__details {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 145px), 1fr));
  gap: .35rem .9rem;
  margin-top: .7rem;
}
.chtlp-meteo--compact .chtlp-meteo__metric {
  padding: .3rem .45rem;
  border-radius: 6px;
  background: var(--meteo-panel);
  overflow-wrap: anywhere;
}
.chtlp-meteo--compact .chtlp-meteo__sun-times {
  margin-top: .6rem;
  font-size: .78rem;
}
.chtlp-meteo__svg--filled { stroke-width: 2.8; }
.chtlp-meteo__svg--color.chtlp-meteo__svg--sun { color: #e9a31a; }
.chtlp-meteo__svg--color.chtlp-meteo__svg--partly { color: #d39a35; }
.chtlp-meteo__svg--color.chtlp-meteo__svg--rain { color: #348fd2; }
.chtlp-meteo__svg--color.chtlp-meteo__svg--snow { color: #70aace; }
.chtlp-meteo__svg--color.chtlp-meteo__svg--storm { color: #b67ad8; }
.chtlp-meteo__svg--color.chtlp-meteo__svg--fog { color: #8696a6; }
.chtlp-meteo__svg--color.chtlp-meteo__svg--cloud { color: #8da0b3; }

/* Beta7 — grouped measurements and distinctive weather artwork. */
.chtlp-meteo .chtlp-meteo__details {
  display: grid;
  grid-template-columns: 1fr;
  gap: .65rem;
  margin-top: .9rem;
}
.chtlp-meteo .chtlp-meteo__details--grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 225px), 1fr));
  align-items: stretch;
}
.chtlp-meteo__metric-group {
  min-width: 0;
  padding: .55rem .7rem;
  border: 1px solid var(--meteo-line);
  border-radius: 9px;
}
.chtlp-meteo__metric-heading {
  display: flex;
  align-items: center;
  gap: .4rem;
  margin: 0 0 .35rem;
  color: inherit;
  font-size: .87rem;
  font-weight: 600;
  line-height: 1.25;
  font-family: Arial, Helvetica, sans-serif;
}
.chtlp-meteo__metric-heading-icon,
.chtlp-meteo__metric-heading-icon svg {
  display: inline-block;
  width: 1.2rem;
  height: 1.2rem;
  flex: 0 0 auto;
}
.chtlp-meteo__metric-items {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem 1rem;
}
.chtlp-meteo__metric {
  display: inline-block;
  font-family: Arial, Helvetica, sans-serif;
  font-variant-numeric: normal;
  font-feature-settings: "zero" 0, "tnum" 1;
  text-decoration: none;
  overflow-wrap: anywhere;
}
.chtlp-meteo__details--grid .chtlp-meteo__metric-items {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr));
  gap: .35rem;
}
.chtlp-meteo__details--grid .chtlp-meteo__metric {
  padding: .28rem .4rem;
  border-radius: 6px;
  background: var(--meteo-panel);
}
.chtlp-meteo--compact .chtlp-meteo__details--line .chtlp-meteo__metric-items {
  gap: .25rem .7rem;
}
.chtlp-meteo .chtlp-meteo__svg--filled { stroke-width: 2.3; }
.chtlp-meteo .chtlp-meteo__svg--color.chtlp-meteo__svg--cloud { color: #587a9f; }
.chtlp-meteo .chtlp-meteo__svg--color.chtlp-meteo__svg--rain { color: #167bd3; }
.chtlp-meteo .chtlp-meteo__svg--color.chtlp-meteo__svg--sun { color: #d18a00; }
.chtlp-meteo .chtlp-meteo__svg--color.chtlp-meteo__svg--storm { color: #9062c7; }
.chtlp-meteo--dark .chtlp-meteo__svg--color.chtlp-meteo__svg--cloud { color: #a9c9e6; }
.chtlp-meteo--dark .chtlp-meteo__svg--color.chtlp-meteo__svg--rain { color: #69b8fa; }
.chtlp-meteo--dark .chtlp-meteo__svg--color.chtlp-meteo__svg--sun { color: #ffd166; }
.chtlp-meteo--dark .chtlp-meteo__svg--color.chtlp-meteo__svg--storm { color: #dab7fa; }
@container (max-width: 360px) {
  .chtlp-meteo .chtlp-meteo__details--grid { grid-template-columns: 1fr; }
  .chtlp-meteo__metric-group { padding: .45rem .5rem; }
}

/* Optional appearance controls, scoped to each individual Joomla module. */
.chtlp-meteo {
  --chtlp-meteo-opacity: .85;
  --chtlp-meteo-custom-radius: 14px;
  --chtlp-meteo-light-rgb: 255, 255, 255;
  --chtlp-meteo-dark-rgb: 27, 38, 54;
  --chtlp-meteo-surface-rgb: var(--chtlp-meteo-light-rgb);
}
.chtlp-meteo--dark,
.chtlp-meteo--text-light { --chtlp-meteo-surface-rgb: var(--chtlp-meteo-dark-rgb); }
.chtlp-meteo--light,
.chtlp-meteo--text-dark { --chtlp-meteo-surface-rgb: var(--chtlp-meteo-light-rgb); }
.chtlp-meteo--bg-opaque {
  background: rgba(var(--chtlp-meteo-surface-rgb), 1);
}
.chtlp-meteo--bg-translucent {
  background: rgba(var(--chtlp-meteo-surface-rgb), var(--chtlp-meteo-opacity));
}
.chtlp-meteo--bg-transparent { background: transparent; }
.chtlp-meteo--text-light { color: #f5f7fc; }
.chtlp-meteo--text-dark { color: #172236; }
.chtlp-meteo--corners-square { --chtlp-meteo-radius: 0px; }
.chtlp-meteo--corners-small { --chtlp-meteo-radius: 5px; }
.chtlp-meteo--corners-medium { --chtlp-meteo-radius: 10px; }
.chtlp-meteo--corners-round { --chtlp-meteo-radius: 22px; }
.chtlp-meteo--corners-custom { --chtlp-meteo-radius: var(--chtlp-meteo-custom-radius); }
.chtlp-meteo:is(.chtlp-meteo--corners-square,.chtlp-meteo--corners-small,.chtlp-meteo--corners-medium,.chtlp-meteo--corners-round,.chtlp-meteo--corners-custom) {
  border-radius: var(--chtlp-meteo-radius);
}
.chtlp-meteo:is(.chtlp-meteo--corners-square,.chtlp-meteo--corners-small,.chtlp-meteo--corners-medium,.chtlp-meteo--corners-round,.chtlp-meteo--corners-custom) .chtlp-meteo__metric-group,
.chtlp-meteo:is(.chtlp-meteo--corners-square,.chtlp-meteo--corners-small,.chtlp-meteo--corners-medium,.chtlp-meteo--corners-round,.chtlp-meteo--corners-custom) .chtlp-meteo__day {
  border-radius: var(--chtlp-meteo-radius);
}
.chtlp-meteo:is(.chtlp-meteo--corners-square,.chtlp-meteo--corners-small,.chtlp-meteo--corners-medium,.chtlp-meteo--corners-round,.chtlp-meteo--corners-custom) .chtlp-meteo__metric {
  border-radius: min(var(--chtlp-meteo-radius), 6px);
}
