:root { --portal-sidebar: 228px; --portal-header: 72px; }

body.has-portal-shell,
html[data-portal-page] body { padding-top: var(--portal-header); padding-left: var(--portal-sidebar); }
body.has-portal-shell.has-portal-menu { overflow: hidden; }

.has-portal-shell .site-header,
html[data-portal-page] .site-header {
  position: fixed;
  z-index: 70;
  top: 0;
  right: 0;
  left: var(--portal-sidebar);
  width: auto;
  height: var(--portal-header);
  margin: 0;
  padding-inline: max(24px, calc((100vw - var(--portal-sidebar) - 1420px) / 2));
  border-bottom: 1px solid var(--line);
  background: rgba(6, 16, 14, .9);
  box-shadow: 0 12px 36px rgba(0, 0, 0, .16);
  backdrop-filter: blur(18px);
}

/* Col·laboracions: una pàgina pública de patrocini discret i transparent. */
.collaboration-page{padding-bottom:5rem}
.collaboration-hero{align-items:flex-end}
.collaboration-hero>div:first-child{max-width:850px}
.collaboration-hero h1{max-width:18ch}
.collaboration-principles{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.55rem;max-width:360px}
.collaboration-principles span,.collaboration-status__badge{padding:.55rem .8rem;border:1px solid color-mix(in srgb,var(--green) 48%,transparent);border-radius:999px;color:var(--green);font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;background:color-mix(in srgb,var(--green) 8%,transparent)}
.collaboration-callout{display:grid;grid-template-columns:auto 1fr;gap:1.2rem;align-items:start;margin:1.4rem 0;padding:1.5rem}
.collaboration-callout__mark{display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;background:var(--green);color:#072019;font-size:1.35rem;font-weight:900}
.collaboration-callout h2,.collaboration-status h2{margin:.15rem 0 .45rem}
.collaboration-callout p:last-child,.collaboration-status p:last-child{max-width:82ch;margin-bottom:0}
.collaboration-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.collaboration-grid .panel{position:relative;min-height:230px;padding:1.45rem;overflow:hidden}
.collaboration-grid h3{max-width:16ch;margin:.35rem 0 .8rem;font-size:1.2rem}
.collaboration-grid p{margin:0;color:var(--muted);line-height:1.65}
.collaboration-number{display:block;color:var(--green);font:800 .78rem/1 Manrope,sans-serif;letter-spacing:.14em}
.collaboration-grid--seek .panel{min-height:205px;border-style:dashed}
.collaboration-process{padding:1.6rem}
.collaboration-process ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:0;padding:0;list-style:none}
.collaboration-process li{display:grid;grid-template-columns:auto 1fr;gap:.8rem;align-items:start;padding:1rem;border-top:1px solid var(--border)}
.collaboration-process li>span{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:color-mix(in srgb,var(--green) 18%,transparent);color:var(--green);font-weight:800}
.collaboration-process h3{margin:.2rem 0 .45rem}.collaboration-process p{margin:0;color:var(--muted);line-height:1.55}
.collaboration-status,.collaboration-cta{display:flex;justify-content:space-between;align-items:center;gap:2rem;margin-top:1.4rem;padding:1.6rem}
.collaboration-status>div,.collaboration-cta>div{max-width:760px}
.collaboration-cta{margin-bottom:2rem;background:linear-gradient(135deg,color-mix(in srgb,var(--green) 15%,var(--panel-bg)),var(--panel-bg))}
.collaboration-cta .btn-back{flex:0 0 auto}
@media(max-width:900px){.collaboration-grid,.collaboration-process ol{grid-template-columns:1fr}.collaboration-grid .panel,.collaboration-grid--seek .panel{min-height:0}.collaboration-status,.collaboration-cta{align-items:flex-start;flex-direction:column}.collaboration-principles{justify-content:flex-start;max-width:none}}
@media(max-width:600px){.collaboration-callout{grid-template-columns:1fr}.collaboration-hero h1{font-size:clamp(2rem,11vw,3.2rem)}.collaboration-principles span{font-size:.68rem}.collaboration-cta .btn-back{width:100%;justify-content:center;text-align:center}}

.has-portal-shell .site-header .nav { display: none; }
.has-portal-shell > .mobile-nav, .has-portal-shell > .mobile-more { display: none !important; }
.portal-menu-button { display: none; }
.header-context { margin: 0; color: var(--muted); font-size: 12px; }
.header-tools { display: flex; min-width: 0; align-items: center; gap: 8px; margin-left: auto; }
.header-place-search { position: relative; display: flex; width: clamp(210px, 23vw, 360px); height: 40px; align-items: center; gap: 8px; padding: 0 12px; border: 1px solid rgba(137,214,163,.24); border-radius: 999px; background: rgba(8,25,20,.82); transition: border-color .18s ease, box-shadow .18s ease, width .18s ease; }
.header-place-search:focus-within { border-color: rgba(137,214,163,.68); box-shadow: 0 0 0 3px rgba(137,214,163,.09); }
.header-place-search.is-loading::after { position: absolute; right: 11px; width: 12px; height: 12px; border: 2px solid rgba(137,214,163,.2); border-top-color: var(--green); border-radius: 50%; content: ''; animation: header-search-spin .7s linear infinite; }
.header-place-search > span { flex: none; color: var(--green); font-size: 21px; line-height: 1; transform: rotate(-18deg); }
.header-place-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--text); font: 650 12px/1 var(--font-body); }
.header-place-search input::placeholder { color: rgba(180,202,192,.72); }
.header-place-suggestions { position: absolute; z-index: 110; top: calc(100% + 9px); right: 0; left: 0; max-height: min(390px,55vh); overflow-y: auto; border: 1px solid rgba(137,214,163,.38); border-radius: 15px; background: #0b211a; box-shadow: 0 24px 58px rgba(0,0,0,.66); }
.header-place-suggestions button { display: flex; width: 100%; min-height: 54px; align-items: flex-start; flex-direction: column; justify-content: center; gap: 2px; padding: 9px 14px; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.header-place-suggestions button:last-child { border-bottom: 0; }
.header-place-suggestions button:hover,.header-place-suggestions button:focus-visible,.header-place-suggestions button[aria-selected="true"] { outline: 0; background: #16372b; }
.header-place-suggestions b { font-size: 12px; }
.header-place-suggestions small { color: var(--muted); font-size: 9px; }
.header-language { display: flex; height: 40px; flex: none; align-items: center; gap: 3px; padding: 0 7px 0 9px; border: 1px solid rgba(137,214,163,.24); border-radius: 999px; background: rgba(8,25,20,.82); color: var(--green); }
.header-language > span:first-child { font-size: 15px; }
.header-language select { border: 0; outline: 0; background: transparent; color: var(--text); font: 800 10px var(--font-body); cursor: pointer; }
.header-language option { background: #0b211a; color: var(--text); }
@keyframes header-search-spin { to { transform: rotate(360deg); } }

.portal-sidebar {
  position: fixed;
  z-index: 60;
  inset: 0 auto 0 0;
  width: var(--portal-sidebar);
  display: flex;
  flex-direction: column;
  padding: 12px 12px 14px;
  overflow: hidden;
  border-right: 1px solid var(--line);
  background: rgba(7, 17, 15, .96);
  backdrop-filter: blur(18px);
}

.portal-sidebar__brand { display: flex; align-items: center; gap: 11px; min-height: 70px; margin: 0 3px 8px; padding: 8px 7px 13px; border-bottom: 1px solid var(--line); border-radius: 0; color: var(--text); text-decoration: none; }
.portal-sidebar__brand-mark { display: grid; width: 52px; height: 52px; flex: 0 0 52px; place-items: center; overflow: hidden; border: 1px solid rgba(163,229,181,.65); border-radius: 50%; background: #4d9e8f; box-shadow: 0 0 0 3px rgba(137,214,163,.055); }
.portal-sidebar__brand-mark img { display: block; width: 100%; height: 100%; object-fit: cover; }
.portal-sidebar__brand-copy { display: grid; min-width: 0; gap: 3px; }
.portal-sidebar__brand-copy strong { color: var(--text); font: 750 17px/1 var(--font-display); letter-spacing: -.02em; }
.portal-sidebar__brand-copy small { color: var(--muted); font-size: 10px; line-height: 1.2; }
.portal-sidebar > nav { display: grid; gap: 1px; min-height: 0; padding: 1px 2px 8px 0; overflow-y: auto; scrollbar-color: rgba(137,214,163,.22) transparent; scrollbar-width: thin; }
.portal-sidebar > nav::-webkit-scrollbar { width: 5px; }
.portal-sidebar > nav::-webkit-scrollbar-thumb { border-radius: 99px; background: rgba(137,214,163,.22); }
.portal-nav-group { display: grid; gap: 1px; }
.portal-nav-group + .portal-nav-group { margin-top: 9px; padding-top: 8px; border-top: 1px solid rgba(137,214,163,.08); }
.portal-nav-group > p { margin: 0; padding: 4px 10px 3px; color: rgba(167,194,181,.64); font-size: 8px; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.portal-sidebar > nav a {
  display: grid;
  grid-template-columns: 32px 1fr;
  align-items: center;
  min-height: 40px;
  padding: 6px 9px;
  border-radius: 12px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}
.portal-sidebar > nav a span { display: grid; width: 28px; height: 28px; place-items: center; border: 1px solid var(--line); border-radius: 9px; color: var(--green); }
.portal-sidebar > nav a span svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.portal-sidebar > nav a:hover, .portal-sidebar > nav a.is-active { background: rgba(137, 214, 163, .1); color: var(--text); }
.portal-sidebar > nav a.is-active span { border-color: rgba(137, 214, 163, .42); background: rgba(137, 214, 163, .12); }
.portal-sidebar__footer { display: grid; gap: 9px; margin-top: auto; padding: 11px 3px 0; border-top: 1px solid var(--line); }
.portal-sidebar__copyright { display: grid; gap: 3px; padding-inline: 3px; }
.portal-sidebar__copyright > small { color: var(--text); font-size: 9px; font-weight: 750; }
.portal-sidebar__copyright > span { color: var(--muted); font-size: 8px; }

.portal-backdrop { display: none; }
.portal-mobile-nav { display: none; }
[data-portal-page][hidden] { display: none !important; }
.portal-main, .comparison-page, #metodologia { padding-top: 24px; }
.portal-main > [data-portal-page].is-page-content-start.section-block { padding-top: 24px; }
.has-portal-shell #metodologia > .section-block:first-child { padding-top: 0; }
.has-portal-shell #metodologia > .portal-view-header + .section-block { padding-top: 0; }
.portal-placeholder .panel { min-height: 300px; padding: 48px; }
.portal-placeholder h1 { margin: 8px 0 16px; font: 700 clamp(34px, 5vw, 64px)/1 var(--font-display); }
.portal-placeholder p:last-child { max-width: 760px; color: var(--muted); font-size: 17px; line-height: 1.7; }
.hero__insight .quick-alert { grid-template-columns: 30px minmax(0, 1fr); }
.hero__insight .quick-alert em { grid-column: 2; margin-top: 2px; }

.current-temp { align-self: center; min-width: 0; }
.hero-webcam-preview { position: relative; display: block; width: min(420px, 100%); aspect-ratio: 16 / 7; margin: 0 auto 28px; overflow: hidden; border: 1px solid rgba(137, 214, 163, .3); border-radius: 18px; background: rgba(0, 0, 0, .2); color: var(--text); text-decoration: none; opacity: .86; box-shadow: 0 18px 44px rgba(0, 0, 0, .2); transition: opacity .2s ease, transform .2s ease, border-color .2s ease; }
.hero-webcam-preview:hover { opacity: 1; transform: translateY(-2px); border-color: rgba(137, 214, 163, .48); }
.hero-webcam-preview img { width: 100%; height: 100%; display: block; object-fit: cover; }
.hero-webcam-preview span { position: absolute; right: 9px; bottom: 8px; display: flex; align-items: center; gap: 5px; padding: 4px 7px; border: 1px solid rgba(255,255,255,.08); border-radius: 999px; background: rgba(5, 15, 12, .86); font-size: 8px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; backdrop-filter: blur(8px); }
.hero-webcam-preview i { width: 5px; height: 5px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 3px rgba(137, 214, 163, .13); }

.data-center-overview { display: grid; gap: 16px; }
.data-center-hero { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr); gap: 36px; align-items: end; padding: 42px; }
.data-center-hero h2 { max-width: 720px; margin: 8px 0 16px; font: 700 clamp(28px, 4vw, 46px)/1 var(--font-display); letter-spacing: -.045em; }
.data-center-hero__intro > p:last-child { max-width: 680px; margin: 0; color: var(--muted); font-size: 16px; line-height: 1.65; }
.data-center-controls { display: grid; justify-items: end; gap: 12px; }
.data-center-controls p { margin: 0; color: var(--muted); font-size: 12px; text-align: right; }
.data-center-tabs { position: sticky; top: calc(var(--header-height, 76px) + 8px); z-index: 12; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 7px; padding: 8px; border: 1px solid rgba(137,214,163,.22); border-radius: 18px; background: rgba(5,24,19,.94); box-shadow: 0 16px 36px rgba(0,0,0,.22); backdrop-filter: blur(16px); }
.data-center-tabs button { min-width: 0; padding: 12px 14px; border: 1px solid transparent; border-radius: 12px; background: transparent; color: var(--muted); font: 750 12px/1.2 var(--font-body); cursor: pointer; transition: color .2s ease,background .2s ease,border-color .2s ease; }
.data-center-tabs button:hover,.data-center-tabs button:focus-visible { color: var(--text); border-color: rgba(137,214,163,.28); outline: none; }
.data-center-tabs button.is-active { border-color: rgba(137,214,163,.42); background: rgba(137,214,163,.14); color: var(--green); box-shadow: inset 0 0 0 1px rgba(137,214,163,.05); }
body[data-page="centre-dades"] [data-data-center-panel]:not(.is-active) { display: none !important; }
body[data-page="centre-dades"] [data-data-center-panel].is-active { animation: data-center-panel-in .24s ease both; }
@keyframes data-center-panel-in { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }
.data-center-scope { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 0 8px; color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.data-center-scope b { padding: 7px 10px; border: 1px solid rgba(137,214,163,.2); border-radius: 999px; background: rgba(137,214,163,.06); color: var(--green); font-size: 9px; }
.data-summary-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.data-summary-grid article { min-height: 150px; padding: 24px; }
.data-summary-grid article > span { color: var(--muted); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.data-summary-grid strong { display: block; margin: 16px 0 10px; font: 700 36px/1 var(--font-display); letter-spacing: -.045em; }
.data-summary-grid strong small { font-size: 14px; letter-spacing: 0; }
.data-summary-grid article > small { color: var(--muted); line-height: 1.45; }
.home-records-link{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:16px;margin-top:16px;padding:18px 22px;color:var(--text);text-decoration:none}.home-records-link>span{display:grid;width:42px;height:42px;place-items:center;border-radius:14px;background:rgba(137,214,163,.12);color:var(--green);font-size:20px}.home-records-link b,.home-records-link small{display:block}.home-records-link small{margin-top:4px;color:var(--muted);font-size:11px}.home-records-link>strong,.station-records-summary a{color:var(--green);font-size:11px;text-decoration:none}.home-records-link:hover,.home-records-link:focus-visible{border-color:rgba(137,214,163,.5)}
.station-records-summary,.station-records-complete{padding:clamp(24px,4vw,38px);scroll-margin-top:100px}.station-records-summary{margin-top:16px}.station-records-summary>header,.station-records-complete>header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.station-records-summary h2,.station-records-complete h2{margin:5px 0 0;font:700 clamp(23px,3vw,34px)/1.1 var(--font-display);letter-spacing:-.035em}.station-records-complete header p:last-child{margin:8px 0 0;color:var(--muted)}
.station-records-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:22px}.station-records-grid--main{grid-template-columns:repeat(3,minmax(0,1fr))}.station-record-card{min-width:0;padding:20px;border:1px solid rgba(137,214,163,.18);border-radius:18px;background:rgba(6,27,21,.58)}.station-record-card>span,.station-record-card time,.station-record-card small{display:block}.station-record-card>span{color:var(--muted);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.station-record-card>strong{display:block;margin:12px 0 9px;font:700 clamp(24px,3vw,34px)/1 var(--font-display);letter-spacing:-.03em;overflow-wrap:anywhere}.station-record-card time{color:var(--text);font-size:11px}.station-record-card small{margin-top:5px;color:var(--green);font-size:10px}.station-records-status{margin:18px 0 0;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:11px;line-height:1.5}.station-records-empty{grid-column:1/-1;margin:0;color:var(--muted)}
.data-export--period { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 28px; padding: 26px 30px; }
.data-export--period h2 { margin: 5px 0 8px; font-size: 23px; }.data-export--period p:not(.eyebrow) { max-width: 690px; margin: 0; color: var(--muted); line-height: 1.55; }
.data-export--period .data-export__actions { justify-content: flex-end; margin-top: 0; }
.data-calendar-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 34px 8px 4px; }
.data-calendar-heading h2 { margin: 6px 0 8px; font: 700 30px/1.05 var(--font-display); letter-spacing: -.035em; }.data-calendar-heading p:last-child { max-width: 720px; margin: 0; color: var(--muted); line-height: 1.55; }
.rain-dashboard { padding: 30px; }
.rain-dashboard > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; margin-bottom: 22px; }
.rain-dashboard h2 { margin: 6px 0 8px; font: 700 27px/1.1 var(--font-display); letter-spacing: -.035em; }
.rain-dashboard header p:last-child { max-width: 720px; margin: 0; color: var(--muted); line-height: 1.55; }
.rain-dashboard__grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.rain-dashboard__grid article { min-width: 0; padding: 17px; border: 1px solid var(--line); border-radius: 13px; background: rgba(137,214,163,.035); }
.rain-dashboard__grid article > span,.rain-dashboard__grid article > small { display: block; color: var(--muted); }
.rain-dashboard__grid article > span { min-height: 28px; font-size: 9px; font-weight: 800; letter-spacing: .075em; line-height: 1.35; text-transform: uppercase; }
.rain-dashboard__grid article > strong { display: block; margin: 10px 0 7px; color: var(--text); font: 750 22px/1 var(--font-display); letter-spacing: -.035em; }
.rain-dashboard__grid article > small { font-size: 9px; line-height: 1.4; }
.rain-dashboard__wide { grid-column: span 2; }
.rain-dashboard__note { margin: 16px 2px 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.data-center-grid { display: grid; grid-template-columns: 1.35fr .8fr; gap: 14px; }
.data-center-grid > article { padding: 30px; }
.data-center-grid h2 { margin: 6px 0 16px; font-size: 24px; }
.data-periods { grid-row: span 2; }
.data-periods__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 28px; }
.data-periods__grid div { padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255, 255, 255, .018); }
.data-periods__grid span, .data-periods__grid small { display: block; color: var(--muted); }
.data-periods__grid strong { display: block; margin: 14px 0 8px; font-size: clamp(21px,1.5vw,28px); white-space: nowrap; }
.data-center-grid--calendar { grid-template-columns: repeat(2,minmax(0,1fr)); align-items: stretch; }
.data-center-grid--calendar .data-periods { grid-row: auto; }
.data-center-grid--calendar > .panel { min-width: 0; }
.data-ephemeris > p { color: var(--muted); line-height: 1.6; }
.data-ephemeris-list { display: grid; gap: 8px; margin-top: 18px; }
.data-ephemeris-list article { padding: 13px 14px; border: 1px solid var(--line); border-radius: 12px; background: rgba(163,226,238,.035); }
.data-ephemeris-list span,.data-ephemeris-list strong,.data-ephemeris-list a { display: block; }
.data-ephemeris-list span { color: #a3e2ee; font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.data-ephemeris-list strong { margin-top: 5px; font-size: 11px; }
.data-ephemeris-list p { margin: 6px 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.data-ephemeris-list a { color: var(--green); font-size: 8px; font-weight: 750; text-decoration: none; }
.data-ephemeris-note { display: block; margin-top: 13px; color: var(--muted); font-size: 8px; line-height: 1.5; }
.learning-section { display: grid; gap: 18px; }
.learning-intro { align-items: end; }
.learning-trust { display: grid; max-width: 260px; padding: 14px 16px; border: 1px solid rgba(137,214,163,.28); border-radius: 16px; background: rgba(137,214,163,.07); color: var(--green); }
.learning-trust small { margin-top: 4px; color: var(--muted); line-height: 1.45; }
.learning-paths { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.learning-paths button { display: grid; grid-template-columns: auto 1fr; gap: 2px 12px; align-items: center; min-width: 0; padding: 18px; border: 1px solid var(--line); border-radius: 18px; background: linear-gradient(145deg,rgba(31,75,59,.54),rgba(10,31,25,.76)); color: var(--text); text-align: left; font: inherit; cursor: pointer; transition: border-color .2s ease,transform .2s ease,background .2s ease; }
.learning-paths button:hover,.learning-paths button:focus-visible { transform: translateY(-2px); border-color: rgba(137,214,163,.62); background: linear-gradient(145deg,rgba(44,104,80,.62),rgba(12,38,30,.82)); }
.learning-paths span { grid-row: 1 / 3; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; background: rgba(255,255,255,.1); font-size: 23px; }
.learning-paths b { font-size: 15px; }
.learning-paths small { overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.learning-local { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(260px,.75fr); gap: 28px; align-items: center; padding: 28px; background: radial-gradient(circle at 90% 15%,rgba(118,202,229,.13),transparent 35%),linear-gradient(145deg,rgba(20,59,46,.84),rgba(8,30,24,.88)); }
.learning-local h3,.learning-library h3,.learning-criteria h3 { margin: 8px 0 10px; font-size: clamp(22px,2vw,30px); }
.learning-local p,.learning-library header p { color: var(--muted); line-height: 1.6; }
.learning-local > div:last-child { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.learning-local a { padding: 11px 12px; border: 1px solid var(--line); border-radius: 12px; color: var(--green); font-size: 12px; font-weight: 780; text-decoration: none; }
.learning-local a:hover,.learning-local a:focus-visible { border-color: var(--green); background: rgba(137,214,163,.09); }
.learning-challenges { display: grid; gap: 14px; }
.learning-challenges > header h3 { margin: 6px 0 0; font-size: clamp(22px,2vw,30px); }
.learning-challenges > div { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.learning-challenges button { display: grid; grid-template-columns: auto 1fr; gap: 5px 13px; min-width: 0; padding: 20px; border: 1px solid var(--line); border-radius: 18px; background: linear-gradient(150deg,rgba(19,60,46,.72),rgba(7,27,21,.88)); color: var(--text); font: inherit; text-align: left; cursor: pointer; transition: transform .2s ease,border-color .2s ease,background .2s ease; }
.learning-challenges button:hover,.learning-challenges button:focus-visible { transform: translateY(-2px); border-color: rgba(137,214,163,.62); background: linear-gradient(150deg,rgba(32,84,63,.74),rgba(9,35,27,.9)); }
.learning-challenges button > span { grid-row: 1 / 4; display: grid; width: 44px; height: 44px; place-items: center; border-radius: 14px; background: rgba(137,214,163,.1); font-size: 23px; }
.learning-challenges button b { font-size: 16px; }
.learning-challenges button small { color: var(--muted); line-height: 1.5; }
.learning-challenges button em { color: var(--green); font-size: 10px; font-style: normal; font-weight: 850; }
.learning-library { padding: clamp(22px,3vw,36px); }
.learning-library > header { display: flex; justify-content: space-between; gap: 24px; align-items: end; }
#learning-result-count { flex: none; padding: 8px 12px; border-radius: 999px; background: rgba(137,214,163,.1); color: var(--green); font-size: 12px; }
.learning-filters { display: grid; grid-template-columns: minmax(210px,1.2fr) repeat(2,minmax(150px,.7fr)) auto; gap: 10px; align-items: end; margin: 24px 0; padding: 16px; border: 1px solid var(--line); border-radius: 18px; background: rgba(3,20,16,.42); }
.learning-filters label { display: grid; gap: 7px; color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.learning-filters input,.learning-filters select { width: 100%; min-width: 0; min-height: 42px; padding: 0 12px; border: 1px solid var(--line); border-radius: 11px; background: rgba(8,29,23,.96); color: var(--text); font: inherit; font-size: 13px; }
.learning-filters input:focus,.learning-filters select:focus { outline: 2px solid rgba(137,214,163,.32); border-color: var(--green); }
.learning-filters button { min-height: 42px; padding: 0 14px; border: 1px solid var(--line); border-radius: 11px; background: transparent; color: var(--green); font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.learning-resource-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.learning-resource { display: flex; flex-direction: column; min-width: 0; min-height: 285px; padding: 20px; border: 1px solid var(--line); border-radius: 18px; background: linear-gradient(155deg,rgba(24,58,47,.76),rgba(7,27,21,.82)); }
.learning-resource__top { display: flex; gap: 12px; align-items: center; }
.learning-resource__icon { display: grid; flex: none; place-items: center; width: 46px; height: 46px; border: 1px solid rgba(137,214,163,.26); border-radius: 15px; background: linear-gradient(145deg,rgba(137,214,163,.2),rgba(118,202,229,.14)); font-size: 24px; filter: saturate(1.12) brightness(1.08); }
.learning-resource__top > div { min-width: 0; }
.learning-resource__top small { display: block; overflow: hidden; color: #9fd8c4; font-size: 9px; font-weight: 800; letter-spacing: .06em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.learning-resource h4 { margin: 5px 0 0; font-size: 17px; line-height: 1.2; }
.learning-resource > p { flex: 1; margin: 16px 0; color: var(--muted); font-size: 12px; line-height: 1.58; }
.learning-resource__meta { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 15px; }
.learning-resource__meta span { padding: 5px 8px; border-radius: 999px; background: rgba(118,202,229,.09); color: #a8dce6; font-size: 9px; font-weight: 800; }
.learning-resource > a { align-self: flex-start; color: var(--green); font-size: 12px; font-weight: 850; text-decoration: none; }
.learning-resource > a:hover,.learning-resource > a:focus-visible { text-decoration: underline; text-underline-offset: 4px; }
.learning-empty { padding: 26px; border: 1px dashed var(--line); border-radius: 16px; color: var(--muted); text-align: center; }
.learning-criteria { display: grid; grid-template-columns: minmax(240px,.7fr) minmax(0,1.3fr); gap: 30px; padding: 28px; }
.learning-criteria ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.learning-criteria li { display: grid; grid-template-columns: 105px 1fr; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.learning-criteria li:last-child { border-bottom: 0; }
.learning-criteria b { color: var(--green); }
.learning-criteria span { color: var(--muted); line-height: 1.5; }
.privacy-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.privacy-grid > article { min-width: 0; padding: 28px; }
.privacy-grid h2 { margin: 8px 0 12px; }
.privacy-grid p,.privacy-note p { color: var(--muted); line-height: 1.7; }
.privacy-grid a,.privacy-note a { color: var(--green); font-weight: 750; }
.privacy-note { display: flex; justify-content: space-between; align-items: center; gap: 22px; margin-bottom: 22px; padding: 24px 28px; }
.privacy-note p { max-width: 850px; margin: 0; }
.data-export > p:not(.eyebrow) { color: var(--muted); line-height: 1.6; }
.weather-timeline { padding: 30px; }
.weather-timeline > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 28px; margin-bottom: 24px; }
.weather-timeline h2 { margin: 6px 0 8px; font: 750 27px/1.1 var(--font-display); letter-spacing: -.035em; }
.weather-timeline header p:last-child { max-width: 720px; margin: 0; color: var(--muted); line-height: 1.55; }
.weather-timeline__filters { display: flex; flex: none; gap: 5px; padding: 4px; border: 1px solid var(--line); border-radius: 12px; background: rgba(0,0,0,.1); }
.weather-timeline__filters button { min-height: 36px; padding: 8px 11px; border: 0; border-radius: 9px; background: transparent; color: var(--muted); font: 750 9px var(--font-body); cursor: pointer; }
.weather-timeline__filters button.is-active { background: #286d55; color: #f3fff7; }
.weather-timeline__list { display: grid; }
.weather-timeline__list article { display: grid; grid-template-columns: 105px 13px minmax(0,1fr); gap: 13px; min-height: 105px; }
.weather-timeline__list time { padding-top: 4px; color: var(--muted); font-size: 9px; text-align: right; }
.weather-timeline__list article > i { position: relative; width: 9px; height: 9px; margin-top: 4px; border: 2px solid #a3e2ee; border-radius: 50%; background: #0b1c17; box-shadow: 0 0 0 4px rgba(163,226,238,.07); }
.weather-timeline__list article > i::after { position: absolute; top: 11px; bottom: -91px; left: 2px; width: 1px; background: var(--line); content: ''; }
.weather-timeline__list article:last-child > i::after { display: none; }
.weather-timeline__list article.is-alert > i { border-color: #efc46b; }.weather-timeline__list article.is-rain > i { border-color: #78c6df; }.weather-timeline__list article.is-extreme > i { border-color: #89d6a3; }
.weather-timeline__list article > div { padding: 0 0 20px 2px; }
.weather-timeline__list span,.weather-timeline__list strong,.weather-timeline__list a { display: block; }
.weather-timeline__list span { color: var(--green); font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.weather-timeline__list strong { margin-top: 5px; font-size: 12px; }
.weather-timeline__list p { margin: 5px 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
.weather-timeline__list a { color: #a3e2ee; font-size: 8px; text-decoration: none; }
.weather-timeline__empty { padding: 30px; border: 1px dashed var(--line); border-radius: 13px; color: var(--muted); font-size: 10px; }
.weather-timeline > footer { display: flex; justify-content: space-between; gap: 18px; padding-top: 15px; border-top: 1px solid var(--line); color: var(--muted); font-size: 9px; }
.weather-timeline > footer a { color: var(--green); text-decoration: none; }
.data-export__actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 14px; }
.data-export__actions button { min-width: 72px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 10px; background: rgba(137, 214, 163, .08); color: var(--green); font-weight: 800; cursor: pointer; }
.data-export__actions button:hover { border-color: rgba(137, 214, 163, .48); background: rgba(137, 214, 163, .15); }
.data-export > small { color: var(--muted); }
.data-linked-period { display: inline-flex; margin-top: 10px; padding: 7px 10px; border: 1px solid rgba(137,214,163,.2); border-radius: 999px; background: rgba(137,214,163,.06); color: var(--green); font-size: 9px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
body[data-page="centre-dades"] .extremes-archive .segmented--archive,body[data-page="centre-dades"] .evolution-heading > .segmented { display: none; }

.push-level-preferences { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin: 0 0 12px; padding: 16px; border: 1px solid var(--line); border-radius: 15px; }
.push-level-preferences legend { padding: 0 7px; color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.push-level-preferences label { display: flex; gap: 8px; min-width: 0; padding: 11px; border: 1px solid var(--line); border-radius: 11px; background: rgba(255,255,255,.02); cursor: pointer; }
.push-level-preferences input { accent-color: var(--green); }
.push-level-preferences span,.push-level-preferences b,.push-level-preferences small { display: block; }
.push-level-preferences b { color: var(--text); font-size: 10px; }.push-level-preferences small { margin-top: 3px; color: var(--muted); font-size: 8px; line-height: 1.35; }
.push-preference-summary { margin: 0 0 17px; padding: 10px 12px; border-radius: 10px; background: rgba(137,214,163,.07); color: var(--green); font-size: 9px; line-height: 1.45; }
.push-preference-summary.is-error { border: 1px solid rgba(255,156,145,.3); background: rgba(255,156,145,.08); color: #ffb0a7; }

.portal-view-header { display: flex; align-items: center; justify-content: space-between; gap: 28px; min-height: 0; padding: 30px 34px; }
.portal-view-header h1 { max-width: 940px; margin: 6px 0 10px; font: 700 clamp(32px, 3.8vw, 52px)/1.02 var(--font-display); letter-spacing: -.045em; }
.portal-view-header p:last-child { max-width: 760px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.55; }
.portal-view-header--static { margin-bottom: 18px; }
.portal-view-header--static .comparison-periods { flex: none; margin: 0; }
body[data-page="estacio"] .metrics-grid { margin-top: 16px; }

.nearby-webcams { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--line); }
.nearby-webcams > div:first-child { display: flex; align-items: end; justify-content: space-between; gap: 24px; }
.nearby-webcams h3 { margin: 5px 0 0; font-size: 22px; }
.nearby-webcams > div:first-child > p:last-child { max-width: 520px; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; text-align: right; }
.nearby-webcams__links { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; margin-top: 16px; }
.nearby-webcams__links a { display: flex; min-width: 0; min-height: 112px; flex-direction: column; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.018); color: var(--text); text-decoration: none; transition: .2s ease; }
.nearby-webcams__links a:hover { border-color: rgba(137,214,163,.45); background: rgba(137,214,163,.07); transform: translateY(-2px); }
.nearby-webcams__links span { color: var(--green); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.nearby-webcams__links b { margin: 8px 0; font-size: 12px; line-height: 1.35; }
.nearby-webcams__links small { margin-top: auto; color: var(--muted); font-size: 10px; }

.lightning-integrated { padding: 24px; border: 1px solid var(--line); border-radius: 18px; background: linear-gradient(145deg,rgba(137,214,163,.06),rgba(255,255,255,.018)); }
.lightning-integrated > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 18px; }
.lightning-integrated h3 { margin: 5px 0 8px; font: 700 clamp(23px,3vw,36px)/1.08 var(--font-display); }
.lightning-integrated header p:last-child { max-width: 760px; margin: 0; color: var(--muted); line-height: 1.55; }
.lightning-integrated__frame { overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #f4f7f5; }
.lightning-integrated__frame iframe { display: block; width: 100%; height: 560px; border: 0; background: #e9f0ec; }
.lightning-integrated__fallback { display: flex; align-items: center; gap: 10px; padding: 12px 15px; border-top: 1px solid var(--line); background: #091813; color: var(--muted); font-size: 11px; }
.lightning-integrated__fallback span { color: var(--green); font-size: 18px; }
.lightning-integrated__fallback strong { color: var(--text); }
.lightning-integrated__fallback a { margin-left: auto; color: var(--green); text-decoration: none; }
.lightning-integrated__facts { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; margin-top: 12px; overflow: hidden; border: 1px solid var(--line); border-radius: 13px; background: var(--line); }
.lightning-integrated__facts span { padding: 12px; background: #091813; }
.lightning-integrated__facts b,.lightning-integrated__facts small { display: block; }
.lightning-integrated__facts b { font-size: 13px; }
.lightning-integrated__facts small { margin-top: 3px; color: var(--muted); font-size: 10px; }

.environment-section { display: grid; gap: 14px; }
.environment-status { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 4px 4px; color: var(--muted); font-size: 11px; }
.environment-status p { display: flex; align-items: center; gap: 8px; margin: 0; }
.environment-status p span { width: 7px; height: 7px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 5px rgba(137,214,163,.1); }
.environment-overview { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(300px,.65fr); gap: 14px; }
.environment-aqi,.environment-health { padding: 32px; }
.environment-aqi header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.environment-aqi h2,.environment-health h2,.pollen-panel h2,.environment-official h2 { margin: 6px 0 0; font: 700 25px/1.1 var(--font-display); letter-spacing: -.035em; }
.environment-aqi__reading { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 24px; margin: 36px 0 24px; }
.environment-aqi__reading > strong { min-width: 120px; font: 700 clamp(74px,9vw,126px)/.78 var(--font-display); letter-spacing: -.075em; }
.environment-aqi__reading b { display: block; color: var(--green); font-size: 18px; }
.environment-aqi__reading p { max-width: 460px; margin: 8px 0 0; color: var(--muted); line-height: 1.55; }
.environment-aqi__scale { position: relative; display: grid; grid-template-columns: repeat(6,1fr); gap: 3px; height: 8px; margin: 20px 0 14px; }
.environment-aqi__scale i { border-radius: 999px; background: #6fd08c; }.environment-aqi__scale i:nth-child(2){background:#b9d96b}.environment-aqi__scale i:nth-child(3){background:#f0c35f}.environment-aqi__scale i:nth-child(4){background:#ed8a5f}.environment-aqi__scale i:nth-child(5){background:#d66568}.environment-aqi__scale i:nth-child(6){background:#9b5c8f}
.environment-aqi__scale span { position: absolute; top: 50%; left: 0; width: 15px; height: 15px; border: 3px solid #f5f8f5; border-radius: 50%; background: #07110f; transform: translate(-50%,-50%); box-shadow: 0 3px 12px rgba(0,0,0,.35); transition: left .4s ease; }
.environment-aqi > small { color: var(--muted); font-size: 9px; line-height: 1.5; }
.environment-health { display: flex; flex-direction: column; }
.environment-health > p:not(.eyebrow) { color: var(--muted); line-height: 1.65; }
.environment-health__meta { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: auto; padding-top: 24px; }
.environment-health__meta span { padding: 16px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.018); }
.environment-health__meta small,.environment-health__meta b { display: block; }.environment-health__meta small { color: var(--muted); font-size: 9px; text-transform: uppercase; }.environment-health__meta small em { color: var(--green); font-style: normal; }.environment-health__meta b { margin-top: 8px; font-size: 16px; }
.environment-metrics { display: grid; grid-template-columns: repeat(6,1fr); gap: 10px; }
.environment-metrics article { min-width: 0; padding: 20px; }
.environment-metrics article > span { color: var(--green); font-size: 10px; letter-spacing: .08em; }
.environment-metrics strong { display: block; margin: 14px 0 8px; font: 700 25px/1 var(--font-display); }
.environment-metrics strong small { font: 500 9px var(--font-body); color: var(--muted); }.environment-metrics p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.4; }
.environment-level { display: inline-flex; align-items: center; width: max-content; min-height: 22px; margin-top: 14px; padding: 4px 8px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted) !important; font-size: 8px !important; font-weight: 800; letter-spacing: .06em !important; text-transform: uppercase; }
.environment-level.is-good { border-color: rgba(111,208,140,.42); background: rgba(111,208,140,.1); color: #8ce0a5 !important; }
.environment-level.is-none { border-color: rgba(140,185,195,.38); background: rgba(140,185,195,.08); color: #a8d3dc !important; }
.environment-level.is-fair { border-color: rgba(185,217,107,.42); background: rgba(185,217,107,.1); color: #c6e778 !important; }
.environment-level.is-moderate { border-color: rgba(240,195,95,.46); background: rgba(240,195,95,.1); color: #f0c35f !important; }
.environment-level.is-poor,.environment-level.is-very-poor,.environment-level.is-extreme { border-color: rgba(237,138,95,.5); background: rgba(237,138,95,.11); color: #f09a74 !important; }
.environment-mini-meter { height: 4px; margin-top: 9px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.06); }
.environment-mini-meter i { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#6fd08c,#f0c35f,#d66568); transition: width .35s ease; }
.environment-mini-meter i[hidden],.environment-aqi__scale span[hidden] { display: none; }
.pollen-panel { padding: 30px; }.pollen-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.pollen-summary { display: flex; align-items: center; gap: 12px; margin-top: 20px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; background: rgba(137,214,163,.055); }.pollen-summary > span { display: grid; flex: none; width: 32px; height: 32px; place-items: center; border-radius: 50%; background: rgba(137,214,163,.12); color: var(--green); }.pollen-summary strong,.pollen-summary p { display: block; margin: 0; }.pollen-summary strong { color: var(--text); font-size: 12px; }.pollen-summary p { margin-top: 3px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.pollen-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 8px; margin: 24px 0 16px; }
.pollen-grid > div { min-width: 0; padding: 16px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.018); }.pollen-grid span,.pollen-grid strong { display: block; }.pollen-grid span { color: var(--muted); font-size: 10px; }.pollen-grid strong { margin-top: 10px; font-size: 22px; }.pollen-grid strong small { color: var(--muted); font-size: 8px; font-weight: 600; }.pollen-grid em { font-style: normal; }
.pollen-panel > p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }.pollen-panel > p a { color: var(--green); font-weight: 700; text-decoration: none; }
.pollen-panel--xac > header > div > p:last-child { margin: 8px 0 0; color: var(--muted); font-size: 11px; }
.pollen-panel--xac .tag.is-warning { border-color: rgba(240,195,95,.45); color: #f0c35f; }
.pollen-summary--xac { margin-bottom: 18px; }
.xac-stations { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.xac-station { min-width: 0; padding: 20px; border: 1px solid var(--line); border-radius: 16px; background: linear-gradient(150deg,rgba(137,214,163,.055),rgba(255,255,255,.012)); }
.xac-station[hidden] { display: none; }
.xac-station > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.xac-station > header span { color: var(--green); font-size: 9px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.xac-station h3 { margin: 5px 0 0; font: 700 22px/1 var(--font-display); }
.xac-station > header small { max-width: 160px; color: var(--muted); font-size: 9px; line-height: 1.4; text-align: right; }
.xac-taxa { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin: 14px 0; }
.xac-taxon { min-width: 0; padding: 12px; border-radius: 12px; background: rgba(0,0,0,.13); }
.xac-taxon > span,.xac-taxon > strong,.xac-taxon > small { display: block; }
.xac-taxon > span { overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.xac-taxon > strong { margin: 7px 0 0; font-size: 17px; }
.xac-taxon > .environment-level { margin-top: 9px; }
.xac-taxon > small { margin-top: 7px; color: var(--muted); font-size: 8px; }
.xac-empty { grid-column: 1/-1; margin: 0; padding: 16px; color: var(--muted); font-size: 10px; }
.xac-station details { border-top: 1px solid var(--line); }
.xac-station summary { padding: 13px 0 0; color: var(--green); font-size: 10px; font-weight: 750; cursor: pointer; }
.xac-table-wrap { max-height: 330px; margin-top: 12px; overflow: auto; }
.xac-table-wrap table { width: 100%; border-collapse: collapse; font-size: 9px; }
.xac-table-wrap th,.xac-table-wrap td { padding: 8px 5px; border-bottom: 1px solid var(--line); text-align: left; }
.xac-table-wrap th { position: sticky; top: 0; background: #0b1d17; color: var(--muted); }
.xac-method { display: grid; grid-template-columns: 150px 1fr; gap: 14px; margin: 16px 0; padding: 16px; border: 1px solid rgba(137,214,163,.2); border-radius: 13px; background: rgba(137,214,163,.04); }
.xac-method strong { color: var(--green); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.xac-method p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.environment-official { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.environment-official a { display: flex; min-height: 245px; flex-direction: column; padding: 28px; color: var(--text); text-decoration: none; transition: transform .2s ease,border-color .2s ease; }
.environment-official a:hover { transform: translateY(-3px); border-color: rgba(137,214,163,.46); }.environment-official a > span { color: var(--green); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }.environment-official p { color: var(--muted); line-height: 1.6; }.environment-official b { margin-top: auto; color: var(--green); font-size: 11px; }
.environment-note { display: flex; gap: 10px; margin: 2px 0 0; color: var(--muted); font-size: 10px; line-height: 1.55; }.environment-note span { display: grid; width: 20px; height: 20px; flex: none; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--green); }
.environment-viewers { padding: 28px; }
.environment-viewers > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; margin-bottom: 18px; }
.environment-viewers h2 { margin: 5px 0 8px; font: 700 27px/1.08 var(--font-display); }
.environment-viewers header p:last-child { max-width: 720px; margin: 0; color: var(--muted); line-height: 1.55; }
.environment-viewer-tabs { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 12px; }
.environment-viewer-tabs button { min-height: 40px; padding: 9px 14px; border: 1px solid var(--line); border-radius: 999px; background: transparent; color: var(--muted); font: 700 11px var(--font-body); cursor: pointer; }
.environment-viewer-tabs button:hover,.environment-viewer-tabs button.is-active { border-color: rgba(137,214,163,.48); background: rgba(137,214,163,.1); color: var(--green); }
.environment-viewer-tabs button:focus-visible,.environment-viewer-panel:focus-visible { outline: 3px solid rgba(137,214,163,.65); outline-offset: 3px; }
.environment-viewer-panel[hidden] { display: none; }
.environment-viewer-frame { overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #eef2ef; }
.environment-viewer-frame iframe { display: block; width: 100%; height: 620px; border: 0; background: #fff; }
.environment-viewer-mobile-launch { display: none; }
.environment-viewer-frame--image { background: #07110f; }
.environment-viewer-frame--image > img { display: block; width: auto; max-width: 100%; max-height: 640px; margin: 0 auto; background: #fff; object-fit: contain; }
.environment-viewer-meta { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-top: 1px solid var(--line); background: #091813; color: var(--muted); font-size: 10px; line-height: 1.45; }
.environment-viewer-meta strong { color: var(--text); }
.environment-viewer-meta .environment-viewer-links { display: flex; gap: 12px; margin-left: auto; white-space: nowrap; }
.environment-viewer-meta a { color: var(--green); text-decoration: none; }

.alert-history-panel__actions { display: flex; justify-content: flex-end; margin-top: 14px; }
.alert-history-panel__actions a { display: inline-flex; min-height: 38px; align-items: center; padding: 8px 13px; border: 1px solid rgba(137,214,163,.35); border-radius: 999px; color: var(--green); font-size: 10px; font-weight: 800; text-decoration: none; }
.alert-history-list--preview { max-height: 430px; overflow-y: auto; overscroll-behavior: contain; scrollbar-color: rgba(137,214,163,.32) transparent; }
.history-page { display: grid; gap: 16px; }
.history-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.history-stats article { min-height: 142px; padding: 21px; border-top: 3px solid rgba(137,214,163,.4); }
.history-stats span,.history-stats small { display: block; color: var(--muted); }
.history-stats span { font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.history-stats strong { display: block; overflow: hidden; margin: 17px 0 7px; color: var(--text); font: 750 clamp(24px,3vw,35px)/1 var(--font-display); text-overflow: ellipsis; white-space: nowrap; }
.history-stats small { font-size: 9px; line-height: 1.4; }
.history-controls { display: grid; gap: 17px; padding: 22px; }
.history-controls__heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.history-controls__heading h2 { margin: 4px 0 0; font: 750 22px/1 var(--font-display); }
.history-controls__heading button,.history-results__tools button,.history-pagination button { min-height: 38px; padding: 8px 12px; border: 1px solid rgba(137,214,163,.25); border-radius: 10px; background: rgba(137,214,163,.06); color: var(--green); font: 800 9px var(--font-body); cursor: pointer; }
.history-controls__grid { display: grid; grid-template-columns: minmax(210px,1.35fr) repeat(5,minmax(120px,.55fr)); gap: 9px; }
.history-controls label { display: grid; gap: 7px; color: var(--muted); font-size: 10px; font-weight: 700; }
.history-controls input,.history-controls select { width: 100%; min-height: 43px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 11px; background: #0b1c17; color: var(--text); font: 600 12px var(--font-body); }
.history-filter-summary,.history-export-status { min-height: 17px; margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.history-analytics { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.history-chart { min-width: 0; padding: 24px; }
.history-chart > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 20px; }
.history-chart h2 { margin: 5px 0 0; font: 750 22px/1.1 var(--font-display); }
.history-chart header > small { color: var(--muted); font-size: 8px; text-align: right; }
.history-month-chart,.history-bar-chart { display: grid; gap: 9px; }
.history-bar { display: grid; grid-template-columns: minmax(72px,.7fr) minmax(100px,1.8fr) 35px; align-items: center; gap: 10px; }
.history-bar > span { overflow: hidden; color: #c8d6d1; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.history-bar > i { height: 8px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.045); }
.history-bar > i > b { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#64bfa1,#a3e2ee); }
.history-bar > strong { color: var(--text); font-size: 9px; text-align: right; }
.history-chart-empty { padding: 28px 0; color: var(--muted); font-size: 10px; }
.history-results { padding: 26px; }
.history-results > header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.history-results h2 { margin: 0; font-size: 22px; }
.history-results__tools { display: flex; align-items: center; gap: 7px; }
.history-results__tools button { min-width: 48px; }
.history-results .alert-history-item em { display: block; margin-top: 7px; color: var(--muted); font-size: 8px; font-style: normal; }
.history-pagination { display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 12px; margin-top: 18px; padding-top: 17px; border-top: 1px solid var(--line); }
.history-pagination > span { color: var(--muted); font-size: 10px; text-align: center; }
.history-pagination label { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 9px; }
.history-pagination select { min-height: 36px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 9px; background: #0b1c17; color: var(--text); }
.history-pagination button:disabled { opacity: .35; cursor: default; }
.history-export-status { margin-top: 10px; text-align: right; }

.alert-invite-modal { position: fixed; z-index: 9998; inset: 0; display: flex; align-items: center; justify-content: center; padding: 18px; background: rgba(0,5,4,.78); backdrop-filter: blur(10px); }
.alert-invite-modal[hidden] { display: none; }
.alert-invite-card { display: grid; grid-template-columns: 54px 1fr; gap: 20px; width: min(540px,94vw); padding: 28px; border: 1px solid rgba(137,214,163,.4); border-radius: 22px; background: #091813; box-shadow: 0 30px 90px rgba(0,0,0,.72); }
.alert-invite-card__icon { display: grid; width: 54px; height: 54px; place-items: center; border: 1px solid rgba(137,214,163,.45); border-radius: 17px; background: rgba(137,214,163,.1); color: var(--green); font-size: 23px; font-weight: 800; }
.alert-invite-card h3 { margin: 6px 0 10px; font: 700 28px/1.05 var(--font-display); }.alert-invite-card div > p:last-child { margin: 0; color: var(--muted); line-height: 1.55; }
.alert-invite-card footer { grid-column: 2; display: flex; justify-content: flex-end; gap: 8px; }.alert-invite-card button { min-height: 42px; padding: 10px 15px; border: 1px solid var(--line); border-radius: 11px; color: var(--text); font: 700 11px var(--font-body); cursor: pointer; }.alert-invite-card button.secondary { background: transparent; }.alert-invite-card button.primary { border-color: rgba(137,214,163,.45); background: rgba(137,214,163,.15); color: var(--green); }

#shareModal { background: rgba(0, 5, 4, .84) !important; backdrop-filter: blur(10px); padding: 18px; }
#shareModal > [role="dialog"] { width: min(760px, 94vw) !important; max-height: min(880px,92vh); overflow-y: auto; padding: 26px !important; border: 1px solid rgba(137,214,163,.42) !important; background: #091813 !important; box-shadow: 0 30px 90px rgba(0,0,0,.72) !important; }
#shareModal [data-share] { border-color: rgba(137,214,163,.18) !important; background: #10251e !important; color: #f3f7f3 !important; }
#shareModal [data-share]:hover { border-color: rgba(137,214,163,.52) !important; background: #163127 !important; }
.share-intro { margin: -8px 0 17px; color: var(--muted); font-size: 12px; line-height: 1.5; }.share-premium { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(145px,.55fr); gap: 14px; margin-bottom: 18px; }.share-premium canvas { display: block; width: 100%; height: auto; border: 1px solid rgba(137,214,163,.25); border-radius: 14px; background: #10251e; }.share-premium__actions { display: grid; align-content: center; gap: 9px; }.share-premium__actions button,.share-actions button { min-height: 43px; padding: 10px; border: 1px solid var(--line); border-radius: 10px; font: 750 10px/1.2 var(--font-body); cursor: pointer; }.share-premium__actions button:first-child { border-color: rgba(137,214,163,.55) !important; background: #286d55 !important; }.share-actions { display: grid !important; grid-template-columns: repeat(4,1fr) !important; gap: 8px !important; }

.admin-body { min-height: 100vh; padding-top: 92px; }.admin-site-header { position: fixed; z-index: 100; top: 0; right: 0; left: 0; border-bottom: 1px solid var(--line); background: rgba(6,16,14,.97); box-shadow: 0 14px 36px rgba(0,0,0,.22); backdrop-filter: blur(20px); }.admin-header-label { margin-left: auto; color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }.admin-back { padding: 10px 14px; border: 1px solid var(--line); border-radius: 999px; color: var(--green); font-size: 11px; font-weight: 800; text-decoration: none; }.admin-page { display: grid; gap: 16px; padding-top: 28px; }.admin-hero { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 34px; }.admin-hero h1 { margin: 6px 0 12px; font: 750 clamp(34px,5vw,58px)/1 var(--font-display); letter-spacing: -.05em; }.admin-hero p:last-child { max-width: 780px; margin: 0; color: var(--muted); line-height: 1.6; }.admin-lock-badge { flex: none; padding: 11px 14px; border: 1px solid rgba(137,214,163,.35); border-radius: 999px; background: rgba(137,214,163,.08); color: var(--green); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.admin-login { display: grid; grid-template-columns: 70px minmax(0,600px); justify-content: center; gap: 24px; padding: 50px 34px; }.admin-login__mark { display: grid; width: 70px; height: 70px; place-items: center; border: 1px solid rgba(137,214,163,.35); border-radius: 22px; background: rgba(137,214,163,.08); color: var(--green); font-size: 20px; letter-spacing: .12em; }.admin-login h2 { margin: 5px 0 10px; font: 750 29px/1.1 var(--font-display); }.admin-login p:not(.eyebrow) { margin: 0; color: var(--muted); line-height: 1.55; }.admin-login form { display: grid; gap: 8px; margin-top: 24px; }.admin-login label { color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; }.admin-login form > div { display: grid; grid-template-columns: 1fr auto; gap: 8px; }.admin-login input { min-width: 0; min-height: 46px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 11px; background: #071713; color: var(--text); }.admin-login button,.admin-toolbar button { min-height: 42px; padding: 10px 15px; border: 1px solid rgba(137,214,163,.3); border-radius: 11px; background: rgba(137,214,163,.1); color: var(--green); font-weight: 800; cursor: pointer; }.admin-login form small { min-height: 18px; color: var(--muted); }.admin-login form small.is-error { color: #ff9c91; }
.admin-dashboard { display: grid; gap: 14px; }.admin-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 22px; }.admin-toolbar > div { display: flex; align-items: center; gap: 9px; }.admin-toolbar small { color: var(--muted); }.admin-live-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 5px rgba(137,214,163,.1); }.admin-toolbar button:last-child { border-color: rgba(255,156,145,.25); background: rgba(255,156,145,.06); color: #ffb0a7; }.admin-overview { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }.admin-overview article { min-height: 145px; padding: 22px; border-top: 3px solid var(--line); }.admin-overview article.is-ok { border-top-color: #89d6a3; }.admin-overview article.is-warning { border-top-color: #efc46b; }.admin-overview article.is-error { border-top-color: #ff8c80; }.admin-overview article > span { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.admin-overview strong { display: block; margin: 18px 0 8px; font: 750 26px/1 var(--font-display); }.admin-overview small { color: var(--muted); line-height: 1.4; }
.admin-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }.admin-panel { padding: 26px; }.admin-panel > header,.admin-incidents > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 20px; }.admin-panel h2,.admin-incidents h2 { margin: 5px 0 0; font: 750 24px/1.1 var(--font-display); }.admin-status-pill { padding: 7px 10px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }.admin-status-pill.is-ok { border-color: rgba(137,214,163,.35); color: var(--green); }.admin-status-pill.is-warning { border-color: rgba(239,196,107,.35); color: #efc46b; }.admin-status-pill.is-error { border-color: rgba(255,126,112,.4); color: #ffb0a7; }.admin-detail-list { margin: 0; }.admin-detail-list > div,.admin-service-list > div { display: flex; justify-content: space-between; gap: 18px; padding: 12px 0; border-top: 1px solid var(--line); }.admin-detail-list dt,.admin-service-list span { color: var(--muted); }.admin-detail-list dd { margin: 0; color: var(--text); font-weight: 750; text-align: right; }.admin-service-list b { color: var(--muted); }.admin-service-list b.is-ok { color: var(--green); }.admin-service-list b.is-muted { color: #efc46b; }.admin-note { margin: 18px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }.admin-incidents { padding: 26px; }.admin-incidents header p:last-child { margin: 8px 0 0; color: var(--muted); }.admin-incidents ol { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }.admin-incidents li { display: grid; grid-template-columns: 150px 100px 1fr; gap: 12px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 10px; color: var(--muted); font-size: 11px; }.admin-incidents li b { color: #ffb0a7; }

.comparison-map-panel { margin-bottom: 18px; padding: 28px; }
.station-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.station-card { min-height: 230px; padding: 16px; }
.station-card header { gap: 8px; }
.station-card h3 { margin-top: 3px; font-size: .95rem; line-height: 1.2; }
.station-card header small,.station-source { font-size: .62rem; line-height: 1.35; }
.station-status { gap: 4px; font-size: .61rem; }
.station-temp { padding: 14px 0 12px; }
.station-temp strong { font-size: 2.05rem; }
.station-temp strong small { font-size: .72rem; }
.station-temp > span { font-size: .64rem; }
.station-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; }
.station-metrics span { min-width: 0; padding: 7px; }
.station-metrics small { font-size: .57rem; }
.station-metrics b { margin-top: 2px; overflow: hidden; font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.station-unavailable { min-height: 130px; }
.comparison-map-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 18px; }
.comparison-map-panel h2 { margin: 5px 0 7px; }
.comparison-map-panel header p:last-child { margin: 0; color: var(--muted); }
.comparison-map-layout { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(230px,.55fr); min-height: 430px; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: #081713; }
#comparison-map { min-height: 430px; background: #0b1b17; }
#comparison-map .leaflet-popup-content-wrapper, #comparison-map .leaflet-popup-tip { background: #10251e; color: #f3f7f3; }
#comparison-map .leaflet-popup-content { line-height: 1.55; }
#comparison-map .leaflet-control-attribution { background: rgba(255,255,255,.82); color: #24342f; }
.comparison-map-tooltip { border: 1px solid rgba(137,214,163,.35) !important; border-radius: 8px !important; background: rgba(7,17,15,.92) !important; color: #f3f7f3 !important; box-shadow: 0 8px 24px rgba(0,0,0,.28) !important; font-size: 10px; font-weight: 700; }
.comparison-map-tooltip::before { border-top-color: rgba(7,17,15,.92) !important; }
#comparison-map-list { display: grid; align-content: start; gap: 1px; padding: 12px; overflow-y: auto; background: var(--line); }
#comparison-map-list > span { padding: 16px; background: #091813; color: var(--muted); }
.comparison-map-item { display: grid; grid-template-columns: 9px 1fr auto; align-items: center; gap: 10px; padding: 14px 12px; background: #091813; }
.comparison-map-item > i { width: 9px; height: 9px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 4px rgba(137,214,163,.1); }
.comparison-map-item.is-offline > i { background: #6f7d78; box-shadow: none; }
.comparison-map-item b,.comparison-map-item small { display: block; }
.comparison-map-item b { font-size: 11px; }
.comparison-map-item small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.comparison-map-item > strong { color: var(--green); font-size: 14px; }
.comparison-variable-tabs { display: flex; flex-wrap: wrap; gap: 7px; margin: -8px 0 12px; }
.comparison-variable-tabs button { min-height: 40px; padding: 9px 14px; border: 1px solid var(--line); border-radius: 999px; background: transparent; color: var(--muted); font: 700 11px var(--font-body); cursor: pointer; }
.comparison-variable-tabs button:hover,.comparison-variable-tabs button.is-active { border-color: rgba(137,214,163,.45); background: rgba(137,214,163,.1); color: var(--green); }
.comparison-variable-chart { padding: 22px; }
.comparison-variable-chart .chart-wrap { height: 360px; margin-top: 0; }
.comparison-variable-chart > p { margin: 14px 0 0; color: var(--muted); font-size: 10px; }
.municipality-search{display:grid;grid-template-columns:minmax(220px,.65fr) minmax(0,1.35fr);gap:34px;padding:28px;margin-bottom:18px}.municipality-search h2,.municipality-summary h2,.municipality-stations h2,.municipality-method h2{margin:5px 0 7px}.municipality-search>div>p:last-child,.municipality-summary header p,.municipality-stations .section-heading p,.municipality-method>p{margin:0;color:var(--muted)}.municipality-search form{position:relative}.municipality-search label{display:block;margin-bottom:8px;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.municipality-search form>div:first-of-type{display:grid;grid-template-columns:1fr auto;gap:8px}.municipality-search input{min-width:0;height:52px;padding:0 16px;border:1px solid var(--line);border-radius:13px;background:#071712;color:var(--text);font:600 15px var(--font-body);outline:none}.municipality-search input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(137,214,163,.1)}.municipality-search form button{padding:0 20px;border:1px solid rgba(137,214,163,.45);border-radius:13px;background:rgba(137,214,163,.12);color:var(--green);font:700 12px var(--font-body);cursor:pointer}.municipality-search-status{margin:9px 0 0;color:var(--muted);font-size:10px}.municipality-suggestions{position:absolute;z-index:12;top:78px;right:0;left:0;overflow:hidden;border:1px solid rgba(137,214,163,.35);border-radius:14px;background:#0b1d17;box-shadow:0 18px 50px rgba(0,0,0,.42)}.municipality-suggestions button{display:flex;width:100%;min-height:56px;align-items:flex-start;flex-direction:column;justify-content:center;gap:3px;padding:10px 15px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:#0b1d17;text-align:left}.municipality-suggestions button:hover,.municipality-suggestions button:focus{background:#153026}.municipality-suggestions small{color:var(--muted);font-weight:500}.municipality-result{display:grid;gap:18px;margin-bottom:18px}.municipality-loading{display:flex;flex-direction:column;gap:5px;padding:30px}.municipality-loading span{color:var(--muted)}.municipality-loading.is-error strong{color:#ffb8a8}.municipality-summary{padding:28px}.municipality-summary>header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.municipality-now{display:grid;grid-template-columns:minmax(220px,.65fr) minmax(0,1.35fr);gap:20px;margin:25px 0 18px}.municipality-now>div,.municipality-now dl{padding:20px;border:1px solid var(--line);border-radius:16px;background:#081914}.municipality-now>div{display:flex;align-items:flex-start;flex-direction:column;justify-content:center}.municipality-now>div small,.municipality-now>div span,.municipality-now dt{color:var(--muted)}.municipality-now>div strong{margin:7px 0;font:800 clamp(38px,6vw,68px)/1 var(--font-display);letter-spacing:-.06em}.municipality-now dl{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0}.municipality-now dl div{padding:10px;border-bottom:1px solid var(--line)}.municipality-now dt{font-size:10px}.municipality-now dd{margin:5px 0 0;font-weight:700}.municipality-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.municipality-days article{display:flex;min-width:0;flex-direction:column;gap:8px;padding:14px;border:1px solid var(--line);border-radius:13px;background:#081914}.municipality-days time,.municipality-days em{color:var(--muted);font-size:9px;font-style:normal}.municipality-days strong{min-height:34px;font-size:11px}.municipality-days span{display:flex;align-items:baseline;gap:6px}.municipality-days span b{font-size:20px}.municipality-days span small{color:var(--muted)}.municipality-source{margin:17px 0 0;color:var(--muted);font-size:9px}.municipality-stations.panel{padding:28px}.municipality-stations>.section-heading{margin-bottom:12px}.municipality-station-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.municipality-station{padding:18px;border:1px solid var(--line);border-radius:16px;background:#081914}.municipality-station header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.municipality-station header b,.municipality-station header small{display:block}.municipality-station header small,.municipality-station>p,.municipality-station footer{margin-top:4px;color:var(--muted);font-size:9px}.municipality-station header>span{color:var(--green);font-size:10px;font-weight:700;white-space:nowrap}.municipality-station>strong{display:block;margin:18px 0;font:800 34px var(--font-display)}.municipality-station dl{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:0}.municipality-station dl div{padding:8px;border-radius:8px;background:rgba(255,255,255,.025)}.municipality-station dt{color:var(--muted);font-size:8px}.municipality-station dd{margin:3px 0 0;font-size:10px;font-weight:700}.municipality-station footer{margin-top:13px;padding-top:10px;border-top:1px solid var(--line)}.municipality-station.is-offline{opacity:.62}.municipality-method{padding:28px}.municipality-method>div{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.municipality-method span{display:flex;flex-direction:column;gap:5px;padding:15px;border-radius:12px;background:#081914}.municipality-method b{color:var(--green)}.municipality-method small{color:var(--muted);line-height:1.45}

.meteo-ai-section { padding-top: 18px; }
.meteo-ai-layout { display: grid; grid-template-columns: minmax(260px,.55fr) minmax(0,1.45fr); gap: 18px; align-items: stretch; }
.meteo-ai-guide { position: relative; overflow: hidden; padding: 30px; background: linear-gradient(155deg,rgba(40,109,85,.38),rgba(9,24,19,.96) 58%); }
.meteo-ai-guide::after { position: absolute; width: 260px; height: 260px; right: -120px; bottom: -120px; border: 1px solid rgba(163,226,238,.15); border-radius: 50%; content: ''; box-shadow: 0 0 0 42px rgba(163,229,181,.035),0 0 0 84px rgba(163,229,181,.025); }
.meteo-ai-orb { position: relative; display: grid; width: 72px; height: 72px; margin-bottom: 25px; place-items: center; border: 1px solid rgba(193,243,206,.75); border-radius: 23px; background: linear-gradient(145deg,#347f64,#205846); color: #f3fff7; box-shadow: 0 18px 45px rgba(10,54,40,.35); }
.meteo-ai-orb span { font: 800 20px var(--font-display); letter-spacing: -.04em; }
.meteo-ai-orb i { position: absolute; width: 6px; height: 6px; border-radius: 50%; background: #e6c56c; box-shadow: 0 0 10px rgba(230,197,108,.7); }
.meteo-ai-orb i:nth-child(2) { top: 11px; right: 13px; }.meteo-ai-orb i:nth-child(3) { right: 9px; bottom: 17px; width: 3px; height: 3px; background: #a3e2ee; }.meteo-ai-orb i:nth-child(4) { left: 12px; bottom: 12px; width: 4px; height: 4px; background: #c1f3ce; }
.meteo-ai-guide h2 { margin: 7px 0 10px; font: 750 31px/1.08 var(--font-display); }.meteo-ai-guide > p:not(.eyebrow) { margin: 0; color: var(--muted); line-height: 1.6; }
.meteo-ai-suggestions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 24px; }
.meteo-ai-suggestions button,.meteo-ai-followups button { min-height: 41px; padding: 9px 11px; border: 1px solid rgba(163,229,181,.2); border-radius: 11px; background: rgba(163,229,181,.06); color: #cfe7d8; font: 700 10px/1.25 var(--font-body); text-align: left; cursor: pointer; transition: border-color .18s ease,background .18s ease,color .18s ease; }
.meteo-ai-suggestions button:hover,.meteo-ai-suggestions button:focus-visible,.meteo-ai-followups button:hover,.meteo-ai-followups button:focus-visible { border-color: rgba(193,243,206,.62); background: rgba(163,229,181,.14); color: #f3fff7; outline: none; }
.meteo-ai-privacy { position: relative; z-index: 1; display: flex; gap: 10px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }.meteo-ai-privacy > span { display: grid; width: 24px; height: 24px; flex: none; place-items: center; border-radius: 50%; background: rgba(163,229,181,.13); color: #c1f3ce; font-size: 11px; }.meteo-ai-privacy p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }.meteo-ai-privacy b { color: var(--text); }
.meteo-ai-chat { display: grid; min-height: 650px; grid-template-rows: auto auto minmax(360px,1fr) auto auto; overflow: hidden; background: linear-gradient(180deg,#0c201a,#081510); }
.meteo-ai-chat__header { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 20px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.015); }.meteo-ai-chat__header > div { display: grid; gap: 4px; }.meteo-ai-chat__header small { color: var(--muted); font-size: 9px; }.meteo-ai-chat__header > button { padding: 8px 11px; border: 1px solid var(--line); border-radius: 9px; background: transparent; color: var(--muted); font: 700 9px var(--font-body); cursor: pointer; }
.meteo-ai-context { display: flex; min-width: 0; min-height: 42px; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 18px; border-bottom: 1px solid rgba(163,229,181,.14); background: rgba(163,229,181,.07); color: #c1f3ce; font-size: 9px; font-weight: 700; }
.meteo-ai-context[hidden] { display: none; }.meteo-ai-context span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.meteo-ai-context button { width: auto; min-width: max-content; flex: 0 0 auto; align-self: center; padding: 6px 8px; border: 1px solid rgba(163,229,181,.22); border-radius: 8px; background: transparent; color: var(--muted); font: 700 8px var(--font-body); white-space: nowrap; cursor: pointer; }
.meteo-ai-live { display: inline-flex; align-items: center; gap: 7px; color: #c1f3ce; font: 800 12px var(--font-display); }.meteo-ai-live i { width: 7px; height: 7px; border-radius: 50%; background: #89d6a3; box-shadow: 0 0 0 5px rgba(137,214,163,.09); }
.meteo-ai-messages { display: flex; min-height: 0; max-height: 560px; flex-direction: column; gap: 12px; padding: 22px; overflow-y: auto; overscroll-behavior: contain; scrollbar-color: rgba(163,229,181,.28) transparent; }
.meteo-ai-message { max-width: min(88%,720px); padding: 16px 17px; border: 1px solid var(--line); border-radius: 16px; }
.meteo-ai-message.is-user { align-self: flex-end; border-color: rgba(163,229,181,.28); border-bottom-right-radius: 5px; background: #205846; color: #f3fff7; }.meteo-ai-message.is-user p { margin: 0; line-height: 1.5; }
.meteo-ai-message.is-assistant { align-self: flex-start; border-bottom-left-radius: 5px; background: #10251e; }.meteo-ai-message.is-assistant.is-safe { border-color: rgba(137,214,163,.38); }.meteo-ai-message.is-assistant.is-caution { border-color: rgba(230,197,108,.45); }.meteo-ai-message.is-assistant.is-warning { border-color: rgba(238,142,115,.5); }
.meteo-ai-message > header { display: flex; align-items: center; gap: 9px; margin-bottom: 9px; }.meteo-ai-message > header > span { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 9px; background: #286d55; color: #eaffef; font: 800 9px var(--font-display); }.meteo-ai-message > header strong { color: var(--text); font: 750 14px/1.3 var(--font-display); }.meteo-ai-message > p { margin: 0; color: #c6d3ce; font-size: 12px; line-height: 1.62; }
.meteo-ai-facts { display: flex; flex-wrap: wrap; gap: 7px; margin: 13px 0 0; padding: 0; list-style: none; }.meteo-ai-facts li { padding: 7px 9px; border: 1px solid rgba(255,255,255,.07); border-radius: 8px; background: rgba(255,255,255,.025); color: #e3eee8; font-size: 9px; font-weight: 700; }
.meteo-ai-sources { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 13px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.07); }.meteo-ai-sources > span { color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.meteo-ai-sources small,.meteo-ai-sources a { padding: 5px 7px; border-radius: 7px; background: rgba(163,226,238,.07); color: #a3e2ee; font-size: 8px; text-decoration: none; }.meteo-ai-sources a:hover,.meteo-ai-sources a:focus-visible { background: rgba(163,226,238,.16); color: #d9f7fc; outline: none; }
.meteo-ai-followups { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }.meteo-ai-followups button { min-height: 34px; padding: 7px 9px; }
.meteo-ai-typing { align-self: flex-start; padding: 10px 13px; border-radius: 12px; background: rgba(163,229,181,.06); color: var(--muted); font-size: 10px; }
.meteo-ai-form { padding: 15px 18px 17px; border-top: 1px solid var(--line); }.meteo-ai-form > label { display: block; margin-bottom: 7px; color: var(--muted); font-size: 9px; font-weight: 700; }.meteo-ai-form > div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; }.meteo-ai-form input { min-width: 0; min-height: 48px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: #07130f; color: var(--text); font: 600 12px var(--font-body); }.meteo-ai-form input:focus { border-color: rgba(193,243,206,.55); outline: 2px solid rgba(163,229,181,.08); }.meteo-ai-form button { min-width: 105px; border: 1px solid #a3e5b5; border-radius: 12px; background: #286d55; color: #f3fff7; font: 800 11px var(--font-body); cursor: pointer; }.meteo-ai-form button:disabled { opacity: .55; cursor: wait; }
.meteo-ai-disclaimer { display: flex; gap: 8px; margin: 0; padding: 0 18px 17px; color: var(--muted); font-size: 9px; line-height: 1.45; }.meteo-ai-disclaimer span { display: grid; width: 18px; height: 18px; flex: none; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: #a3e2ee; }

.meteo-ai-widget { position: fixed; z-index: 80; right: 22px; bottom: 20px; display: grid; justify-items: end; gap: 10px; pointer-events: none; }.meteo-ai-widget > * { pointer-events: auto; }
.has-portal-menu .meteo-ai-widget { opacity: 0; pointer-events: none; }
.meteo-ai-widget__toggle { display: flex; min-height: 48px; align-items: center; gap: 9px; padding: 7px 13px 7px 7px; border: 1px solid rgba(193,243,206,.72); border-radius: 999px; background: linear-gradient(135deg,#347f64,#205846); color: #f3fff7; box-shadow: 0 14px 38px rgba(0,0,0,.4); font-family: var(--font-body); cursor: pointer; }.meteo-ai-widget__toggle > span { display: grid; width: 33px; height: 33px; place-items: center; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; background: rgba(255,255,255,.1); color: #fff; font: 800 11px var(--font-display); }.meteo-ai-widget__toggle b { font-size: 10px; }.meteo-ai-widget__toggle:hover,.meteo-ai-widget__toggle:focus-visible { background: linear-gradient(135deg,#438f72,#286d55); outline: 3px solid rgba(163,229,181,.12); }

.long-range { margin-top: 18px; padding: 28px; }
.long-range > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; margin-bottom: 20px; }
.long-range h3 { margin: 6px 0 8px; font: 700 27px/1.08 var(--font-display); letter-spacing: -.035em; }
.long-range header p:last-child { max-width: 760px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.55; }
.long-range-weeks { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.long-range-week { min-width: 0; padding: 17px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.018); }
.long-range-week header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.long-range-week header span { color: var(--green); font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.long-range-week header strong { font-size: 13px; }
.long-range-week__mean { margin: 14px 0; }.long-range-week__mean small,.long-range-week__mean b { display: block; }.long-range-week__mean small { color: var(--muted); font-size: 12px; }.long-range-week__mean b { margin-top: 6px; font: 750 24px var(--font-display); }
.long-range-signals { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }.long-range-signals > span { position: relative; min-width: 0; padding: 11px 9px 11px 25px; border-radius: 9px; background: rgba(255,255,255,.025); }.long-range-signals i { position: absolute; top: 14px; left: 10px; width: 7px; height: 7px; border-radius: 50%; background: var(--muted); }.long-range-signals b,.long-range-signals small { display: block; }.long-range-signals b { font-size: 11px; line-height: 1.3; }.long-range-signals small { margin-top: 4px; color: var(--muted); font-size: 10px; line-height: 1.4; }.long-range-signals .is-warm i { background: var(--amber); }.long-range-signals .is-cool i { background: var(--blue); }.long-range-signals .is-wet i { background: #77b7c8; }.long-range-signals .is-dry i { background: #d9b977; }
.long-range-sources { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-top: 15px; }.long-range-sources a { min-width: 0; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: rgba(137,214,163,.035); text-decoration: none; }.long-range-sources span,.long-range-sources b,.long-range-sources small { display: block; }.long-range-sources span { color: var(--green); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.long-range-sources b { margin: 6px 0; color: var(--text); font-size: 13px; line-height: 1.35; }.long-range-sources small { color: var(--muted); font-size: 11px; line-height: 1.45; }
.long-range-note { display: flex; gap: 9px; margin: 16px 2px 0; color: var(--muted); font-size: 12px; line-height: 1.55; }.long-range-note span { display: grid; width: 21px; height: 21px; flex: none; place-items: center; border: 1px solid var(--line-bright); border-radius: 50%; color: var(--green); }.long-range-fallback { grid-column: 1/-1; display: grid; gap: 5px; padding: 22px; border: 1px dashed var(--line-bright); border-radius: 14px; color: var(--muted); }.long-range-fallback strong { color: var(--text); }
.seasonal-outlook__period { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: baseline; margin: 0 0 14px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 11px; background: rgba(137,214,163,.045); }
.seasonal-outlook__period strong { color: var(--text); font-size: 13px; }.seasonal-outlook__period span { color: var(--muted); font-size: 12px; }
.meteo-ai-widget__panel { width: min(390px,calc(100vw - 28px)); max-height: min(650px,calc(100vh - 105px)); overflow: hidden auto; border: 1px solid rgba(163,229,181,.42); border-radius: 20px; background: #0a1b16; box-shadow: 0 26px 80px rgba(0,0,0,.62); }.meteo-ai-widget__panel[hidden] { display: none; }
.meteo-ai-widget__panel > header { position: sticky; z-index: 1; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 16px; border-bottom: 1px solid var(--line); background: #10251e; }.meteo-ai-widget__panel > header > span { display: grid; grid-template-columns: auto 1fr; column-gap: 8px; align-items: center; }.meteo-ai-widget__panel > header i { grid-row: 1/3; width: 9px; height: 9px; border-radius: 50%; background: #a3e5b5; box-shadow: 0 0 0 5px rgba(163,229,181,.08); }.meteo-ai-widget__panel > header b { font: 800 12px var(--font-display); }.meteo-ai-widget__panel > header small { color: var(--muted); font-size: 8px; }.meteo-ai-widget__panel > header button { width: 31px; height: 31px; border: 1px solid var(--line); border-radius: 9px; background: transparent; color: var(--muted); font-size: 18px; cursor: pointer; }
.meteo-ai-widget__messages { display: grid; gap: 10px; padding: 15px; }.meteo-ai-widget__messages > p { margin: 0; padding: 12px; border-radius: 12px; background: rgba(163,229,181,.06); color: var(--muted); font-size: 10px; line-height: 1.5; }.meteo-ai-widget__messages .meteo-ai-message { max-width: 100%; }.meteo-ai-widget__messages .meteo-ai-message > p { font-size: 10px; }.meteo-ai-widget__messages .meteo-ai-facts { display: grid; grid-template-columns: 1fr 1fr; }.meteo-ai-widget__messages .meteo-ai-sources { align-items: flex-start; flex-direction: column; }
.meteo-ai-widget__panel > form { padding: 0 15px 15px; }.meteo-ai-widget__panel > form[hidden] { display: none; }.meteo-ai-widget__panel > form > label { display: block; margin-bottom: 6px; color: var(--muted); font-size: 8px; font-weight: 700; }.meteo-ai-widget__panel > form > div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 7px; }.meteo-ai-widget__panel input { min-width: 0; min-height: 44px; padding: 10px 11px; border: 1px solid var(--line); border-radius: 10px; background: #07130f; color: var(--text); font: 600 10px var(--font-body); }.meteo-ai-widget__panel form button { padding: 9px 12px; border: 1px solid #a3e5b5; border-radius: 10px; background: #286d55; color: #f3fff7; font: 800 9px var(--font-body); cursor: pointer; }.meteo-ai-widget__panel form button:disabled { opacity: .55; }
.meteo-ai-widget__continue { display: block; margin: 0 15px 15px; padding: 12px; border: 1px solid rgba(163,229,181,.36); border-radius: 11px; background: rgba(163,229,181,.09); color: #c1f3ce; font-size: 10px; font-weight: 800; text-align: center; text-decoration: none; }.meteo-ai-widget__continue[hidden] { display: none; }

body[data-page="inici"] #avisos .alerts-hub,
body[data-page="inici"] #avisos .alerts-heading-actions,
body[data-page="inici"] #prediccio > *:not(.forecast-overview):not(.section-heading),
body[data-page="inici"] #territori .webcam-card { display: none !important; }
body[data-page="inici"] #avisos,
body[data-page="inici"] #prediccio,
body[data-page="inici"] #territori { padding-top: 42px; }
body[data-page="inici"] #territori { grid-template-columns: 1fr; }

/* Auditoria mòbil 2026-09: evita que contingut intrínsec eixampli la vista. */
.long-term-section,
.long-term-section > *,
.seasonal-outlook,
.seasonal-outlook__maps,
.seasonal-outlook__month { min-width: 0; }
body[data-page="radar"] #territori .webcam-card,
body[data-page="webcams"] #territori .radar-card { display: none; }
body[data-page="radar"] #territori,
body[data-page="webcams"] #territori { grid-template-columns: 1fr; }

@media (max-width: 1200px) {
  .data-center-grid--calendar { grid-template-columns: 1fr; }
}

@media (max-width: 980px) {
  :root { --portal-header: 76px; }
  body.has-portal-shell,
  html[data-portal-page] body { padding-left: 0; }
  .has-portal-shell .site-header,
  html[data-portal-page] .site-header { left: 0; padding-inline: 14px; }
  .portal-sidebar { width: min(88vw, 330px); padding-top: calc(var(--portal-header) + 10px); transform: translateX(-105%); transition: transform .2s ease; }
  .portal-sidebar.is-open { transform: none; }
  .portal-menu-button { display: grid; width: 42px; height: 42px; place-items: center; flex: none; border: 1px solid var(--line); border-radius: 12px; background: rgba(0, 0, 0, .14); color: var(--text); font-size: 20px; }
  .portal-backdrop { position: fixed; z-index: 55; inset: 0; display: block; border: 0; background: rgba(0, 0, 0, .58); }
  .portal-backdrop[hidden] { display: none; }
  .header-context { display: none; }
  .header-place-search { width: clamp(180px,28vw,280px); }
  .station-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .meteo-ai-layout { grid-template-columns: minmax(230px,.65fr) minmax(0,1.35fr); }
  .meteo-ai-suggestions { grid-template-columns: 1fr; }
}

@media (max-width: 780px) {
  :root { --portal-header: 76px; }
  body.has-portal-shell { padding-bottom: 88px; }
  .has-portal-shell .site-header { gap: 5px; }
  .has-portal-shell .site-header > .live-pill { display: grid; width: 14px; height: 44px; flex: 0 0 14px; place-items: center; padding: 0; border: 0; background: transparent; }
  .has-portal-shell .site-header > .live-pill :is(b,time) { display: none; }
  .header-tools { position: relative; flex: none; gap: 4px; margin-left: auto; }
  .header-place-search { width: 40px; padding: 0; justify-content: center; cursor: text; }
  .header-place-search > span { position: relative; z-index: 1; }
  .header-place-search input { position: absolute; inset: 0; opacity: 0; cursor: text; }
  .header-place-search:focus-within { position: fixed; z-index: 120; top: 8px; right: 10px; left: 58px; width: auto; height: 58px; justify-content: flex-start; padding: 0 16px; border-radius: 16px; background: #0b211a; box-shadow: 0 20px 60px rgba(0,0,0,.72); }
  .header-place-search:focus-within input { position: static; opacity: 1; }
  .header-place-search:focus-within .header-place-suggestions { top: calc(100% + 7px); }
  .header-language { height: 40px; padding-inline: 7px; }
  .header-language > span:first-child { display: none; }
  .header-place-search,
  .header-language,
  .portal-menu-button { width: 44px; min-width: 44px; height: 44px; }
  .header-language select { width: 36px; min-height: 44px; }
  .header-social-slot { position: static; display: block; height: auto; margin: 0; border: 0; background: transparent; }
  .header-social { gap: 4px; }
  .header-social > .social-link { display: none !important; }
  .header-social > .social-link--instagram,
  .header-social > .social-link--youtube,
  .header-social > .social-link--tiktok { display: inline-grid !important; width: 44px; height: 44px; }
  .header-social > .social-link svg { width: 17px; height: 17px; }
  .header-social-more { display: block; }
  .header-social-more summary { width: 44px; min-width: 44px; height: 44px; padding: 0; }
  .forecast-controls button,
  .model-day-controls button,
  .radar-timeline button,
  .radar-utility > button,
  .data-center-tabs button,
  .data-export button { min-height: 44px; }
  .portal-mobile-nav { position: fixed; z-index: 72; right: 10px; bottom: max(9px,env(safe-area-inset-bottom)); left: 10px; display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 2px; padding: 5px; border: 1px solid rgba(137,214,163,.28); border-radius: 19px; background: rgba(6,20,16,.95); box-shadow: 0 16px 48px rgba(0,0,0,.48); backdrop-filter: blur(18px); }
  .portal-mobile-nav :is(a,button) { display: grid; min-width: 0; min-height: 54px; place-items: center; align-content: center; gap: 4px; padding: 5px 2px; border: 0; border-radius: 14px; background: transparent; color: var(--muted); font: inherit; text-decoration: none; cursor: pointer; }
  .portal-mobile-nav :is(a,button).is-active,.portal-mobile-nav :is(a,button):focus-visible { background: rgba(137,214,163,.13); color: var(--text); outline: none; }
  .portal-mobile-nav span { display: grid; width: 23px; height: 23px; place-items: center; color: var(--green); }
  .portal-mobile-nav svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  .portal-mobile-nav b { overflow: hidden; font-size: 8px; line-height: 1; text-overflow: ellipsis; white-space: nowrap; }
  .meteo-ai-widget { bottom: 82px; }
  .admin-body { padding-top: 76px; }
  .learning-paths,.learning-resource-grid,.learning-challenges > div { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .learning-local,.learning-criteria { grid-template-columns: 1fr; }
  .learning-filters { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .privacy-grid { grid-template-columns: 1fr; }
  .privacy-note { display: grid; }
  .learning-filters label:first-child { grid-column: 1 / -1; }
  .portal-placeholder .panel { min-height: 240px; padding: 28px; }
  .station-grid { grid-template-columns: 1fr; }
  .hero-webcam-preview { width: min(240px, 100%); margin: 0 0 18px; }
  .data-center-hero { grid-template-columns: 1fr; padding: 28px; }
  .data-center-controls { justify-items: start; }
  .data-center-controls p { text-align: left; }
  .data-export--period { grid-template-columns: 1fr; }.data-export--period .data-export__actions { justify-content: flex-start; }
  .data-calendar-heading { align-items: flex-start; flex-direction: column; }
  .data-summary-grid { grid-template-columns: 1fr 1fr; }
  .station-records-grid,.station-records-grid--main{grid-template-columns:repeat(2,minmax(0,1fr))}
  .data-center-grid { grid-template-columns: 1fr; }
  .weather-timeline > header { flex-direction: column; }
  .weather-timeline__filters { width: 100%; }
  .weather-timeline__filters button { flex: 1; }
  .rain-dashboard__grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .data-periods { grid-row: auto; }
  .portal-view-header { min-height: 0; align-items: flex-start; flex-direction: column; gap: 18px; padding: 23px 24px; }
  .nearby-webcams > div:first-child { align-items: flex-start; flex-direction: column; gap: 8px; }
  .nearby-webcams > div:first-child > p:last-child { text-align: left; }
  .nearby-webcams__links { grid-template-columns: 1fr 1fr; }
  .lightning-integrated > header { flex-direction: column; }
  .environment-overview { grid-template-columns: 1fr; }
  .lightning-integrated__frame iframe { height: 500px; }
  .environment-metrics { grid-template-columns: repeat(3,1fr); }
  .pollen-grid { grid-template-columns: repeat(3,1fr); }
  .xac-stations { grid-template-columns: 1fr; }
  .environment-official { grid-template-columns: 1fr; }
  .history-controls__grid { grid-template-columns: repeat(2,1fr); }
  .history-stats { grid-template-columns: 1fr 1fr; }
  .history-analytics { grid-template-columns: 1fr; }
  .history-pagination { grid-template-columns: 1fr 1fr; }
  .history-pagination > span { grid-column: 1/-1; grid-row: 1; }
  .environment-viewer-meta { align-items: flex-start; flex-direction: column; }
  .environment-viewer-meta .environment-viewer-links { margin-left: 0; flex-wrap: wrap; white-space: normal; }
  .comparison-map-layout { grid-template-columns: 1fr; }
  .municipality-days{grid-template-columns:repeat(4,1fr)}.municipality-station-grid{grid-template-columns:1fr 1fr}
  #comparison-map { min-height: 380px; }
  #comparison-map-list { grid-template-columns: 1fr 1fr; }
  .meteo-ai-layout { grid-template-columns: 1fr; }
  .meteo-ai-guide { padding: 24px; }
  .meteo-ai-suggestions { grid-template-columns: 1fr 1fr; }
  .meteo-ai-chat { min-height: 620px; }
  .long-range-weeks { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 5px; }.long-range-week { width: min(285px,82vw); flex: 0 0 auto; scroll-snap-align: start; }.long-range-sources { grid-template-columns: 1fr; }
  .admin-header-label { display: none; }.admin-hero { align-items: flex-start; flex-direction: column; }.admin-overview { grid-template-columns: 1fr 1fr; }.admin-grid { grid-template-columns: 1fr; }.admin-toolbar { align-items: flex-start; flex-direction: column; }.admin-toolbar > div:last-child { flex-wrap: wrap; }
}

@media (max-width: 510px) {
  .has-portal-shell .site-header { padding-inline: 6px; }
  .header-language { width: 44px; justify-content: center; padding: 0; }
  .header-language select { width: 36px; text-align: center; }
  .learning-intro { align-items: flex-start; flex-direction: column; }
  .learning-trust { max-width: none; }
  .learning-paths,.learning-resource-grid,.learning-filters,.learning-challenges > div,.global-forecast-directory__grid { grid-template-columns: 1fr; }
  .learning-filters label:first-child { grid-column: auto; }
  .learning-local > div:last-child { grid-template-columns: 1fr; }
  .learning-library { padding: 20px; }
  .learning-library > header { align-items: flex-start; flex-direction: column; }
  .learning-resource { min-height: 0; }
  .learning-criteria li { grid-template-columns: 1fr; gap: 5px; }
  .global-forecast-directory>header { align-items: flex-start; flex-direction: column; }
  .data-summary-grid, .data-periods__grid { grid-template-columns: 1fr; }
  .home-records-link{grid-template-columns:38px minmax(0,1fr)}.home-records-link>strong{grid-column:2}.station-records-summary>header,.station-records-complete>header{display:block}.station-records-summary>header>a{display:inline-flex;margin-top:12px}.station-records-grid,.station-records-grid--main{grid-template-columns:1fr}
  .data-center-tabs { top: calc(var(--header-height, 62px) + 6px); display: flex; gap: 6px; margin-inline: -2px; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x proximity; }
  .data-center-tabs::-webkit-scrollbar { display: none; }
  .data-center-tabs button { flex: 0 0 auto; min-width: 94px; scroll-snap-align: start; }
  .data-center-scope span { width: 100%; }
  .share-premium { grid-template-columns: 1fr; }.share-premium__actions { grid-template-columns: 1fr 1fr; }.share-actions { grid-template-columns: 1fr 1fr !important; }
  .admin-site-header .brand small { display: none; }.admin-back { padding: 8px 10px; font-size: 9px; }.admin-hero { padding: 25px; }.admin-login { grid-template-columns: 1fr; padding: 28px 22px; }.admin-login form > div { grid-template-columns: 1fr; }.admin-overview { grid-template-columns: 1fr; }.admin-toolbar > div:last-child { display: grid; width: 100%; grid-template-columns: 1fr 1fr; }.admin-toolbar > div:last-child button:last-child { grid-column: 1/-1; }.admin-incidents li { grid-template-columns: 1fr; gap: 4px; }
  .rain-dashboard { padding: 20px; }.rain-dashboard > header,.long-range > header { align-items: flex-start; flex-direction: column; }.rain-dashboard__grid { grid-template-columns: 1fr 1fr; }.rain-dashboard__wide { grid-column: 1/-1; }
  .weather-timeline { padding: 21px; }.weather-timeline__filters { display: grid; grid-template-columns: 1fr 1fr; }.weather-timeline__list article { grid-template-columns: 74px 11px minmax(0,1fr); gap: 9px; }.weather-timeline > footer { flex-direction: column; }
  .push-level-preferences { grid-template-columns: 1fr; }
  .nearby-webcams__links, .lightning-integrated__facts { grid-template-columns: 1fr; }
  .lightning-integrated { padding: 15px; }
  .lightning-integrated__fallback { align-items: flex-start; flex-wrap: wrap; }
  .lightning-integrated__fallback a { width: 100%; margin-left: 28px; }
  #comparison-map-list { grid-template-columns: 1fr; }
  .comparison-variable-tabs { display: grid; grid-template-columns: 1fr 1fr; }
  .comparison-variable-tabs button:last-child { grid-column: 1/-1; }
  .comparison-variable-chart .chart-wrap { height: 300px; }
  .municipality-search,.municipality-now{grid-template-columns:1fr}.municipality-search{gap:20px;padding:22px}.municipality-summary{padding:22px}.municipality-summary>header{flex-direction:column}.municipality-days{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px}.municipality-days article{min-width:145px;scroll-snap-align:start}.municipality-station-grid,.municipality-method>div{grid-template-columns:1fr}.municipality-station dl{grid-template-columns:1fr 1fr}.municipality-search form>div:first-of-type{grid-template-columns:1fr}.municipality-search form button{height:46px}.municipality-suggestions{top:132px}
  .station-grid { grid-template-columns: 1fr; }
  .portal-view-header h1 { font-size: 32px; }
  .history-controls__heading { align-items: flex-start; flex-direction: column; }
  .history-controls__grid,.history-stats { grid-template-columns: 1fr; }
  .history-results > header { align-items: flex-start; flex-direction: column; }
  .history-results__tools { width: 100%; flex-wrap: wrap; }
  .history-results__tools .tag { margin-right: auto; }
  .history-pagination label { justify-content: flex-end; }
  .environment-viewer-frame iframe { height: 520px; }
  .environment-viewer-frame--jellyfish iframe { display: none; }
  .environment-viewer-mobile-launch { display: flex; min-height: 220px; padding: 28px; align-items: center; justify-content: center; flex-direction: column; gap: 8px; background: linear-gradient(145deg,#0b241c,#174f3c); color: var(--text); text-align: center; text-decoration: none; }
  .environment-viewer-mobile-launch strong { color: var(--green); font: 700 22px/1.15 var(--font-display); }
  .environment-viewer-mobile-launch span { color: var(--muted); font-size: 12px; }
  .environment-viewer-mobile-launch__icon { display: grid; width: 46px; height: 46px; place-items: center; border: 1px solid rgba(137,214,163,.42); border-radius: 50%; background: rgba(137,214,163,.08); color: var(--green) !important; font-size: 22px !important; }
  .environment-viewer-meta { align-items: flex-start; flex-direction: column; }
  .environment-viewer-meta .environment-viewer-links { margin-left: 0; flex-wrap: wrap; white-space: normal; }
  .environment-status { align-items: flex-start; flex-direction: column; gap: 5px; }
  .environment-aqi,.environment-health,.pollen-panel { padding: 23px; }
  .lightning-integrated__frame iframe { height: 460px; }
  .environment-aqi header { flex-direction: column; }
  .environment-aqi__reading { grid-template-columns: 1fr; gap: 14px; margin-top: 28px; }
  .environment-aqi__reading > strong { font-size: 86px; }
  .environment-metrics { grid-template-columns: 1fr 1fr; }
  .pollen-grid { grid-template-columns: 1fr 1fr; }
  .pollen-grid div:last-child { grid-column: 1/-1; }
  .xac-station { padding: 17px; }
  .xac-station > header { flex-direction: column; }
  .xac-station > header small { max-width: none; text-align: left; }
  .xac-taxa { grid-template-columns: 1fr 1fr; }
  .xac-method { grid-template-columns: 1fr; gap: 6px; }
  .alert-invite-card { grid-template-columns: 42px 1fr; gap: 15px; padding: 22px; }
  .alert-invite-card__icon { width: 42px; height: 42px; border-radius: 13px; font-size: 18px; }
  .alert-invite-card footer { grid-column: 1/-1; }
  .meteo-ai-suggestions { grid-template-columns: 1fr; }
  .meteo-ai-messages { padding: 15px; }
  .meteo-ai-message { max-width: 96%; }
  .meteo-ai-form > div { grid-template-columns: 1fr; }
  .meteo-ai-form button { min-height: 45px; }
  .meteo-ai-widget { right: 14px; bottom: 82px; }
  .meteo-ai-widget__toggle { width: 46px; min-height: 46px; padding: 6px; justify-content: center; }
  .meteo-ai-widget__toggle > span { width: 31px; height: 31px; }
  .meteo-ai-widget__toggle b { position: absolute; overflow: hidden; width: 1px; height: 1px; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
  .meteo-ai-context { align-items: center; flex-direction: row; padding-inline: 12px; }
  .meteo-ai-context span { white-space: normal; }
  .meteo-ai-widget__panel { max-height: calc(100vh - 165px); }
  .portal-sidebar__brand { min-height: 66px; }
}

@media (max-width: 360px) {
  .has-portal-shell .site-header { gap: 3px; padding-inline: 4px; }
  .has-portal-shell .site-header > .live-pill { display: none; }
  .header-social { gap: 2px; }
}
/* V22.10 · cercador mundial, capes i iconografia meteorològica */
.municipality-search{position:relative;z-index:4;overflow:visible;isolation:isolate}.municipality-search:focus-within{z-index:40}.municipality-search form{position:relative;z-index:1}.municipality-suggestions{z-index:50;max-height:min(360px,50vh);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.municipality-result,.municipality-method{position:relative;z-index:1}.municipality-weather-icon{display:block;width:48px;height:48px;flex:none;overflow:visible}.municipality-weather-icon .weather-cloud{fill:#e8f3ef;stroke:#8eb9ae;stroke-width:2}.municipality-weather-icon .weather-sun{fill:#ffd36f;stroke:#f1b94e;stroke-width:2}.municipality-weather-icon .weather-rays{fill:none;stroke:#ffd36f;stroke-width:3;stroke-linecap:round}.municipality-weather-icon .weather-detail,.municipality-weather-icon .weather-rain{fill:none;stroke:#7bc9e5;stroke-width:3;stroke-linecap:round}.municipality-weather-icon .weather-storm{fill:#ffd36f}.municipality-now-reading{display:flex;align-items:center;gap:13px;margin:7px 0}.municipality-now-reading .municipality-weather-icon{width:62px;height:62px}.municipality-now>div .municipality-now-reading strong{margin:0}.municipality-days .municipality-weather-icon{width:44px;height:44px}.municipality-met-days .municipality-weather-icon{width:42px;height:42px}
.municipality-favorites{display:grid;grid-template-columns:minmax(220px,.65fr) minmax(0,1.35fr);gap:24px;align-items:center;padding:22px 28px;margin:-2px 0 18px}.municipality-favorites h2{margin:5px 0 7px}.municipality-favorites p:last-child{margin:0;color:var(--muted)}.municipality-favorites__list,.municipality-summary__actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.municipality-summary__actions{justify-content:flex-end}.municipality-favorites__list button,.municipality-favorite-toggle{min-height:38px;padding:8px 12px;border:1px solid rgba(137,214,163,.3);border-radius:999px;background:rgba(137,214,163,.07);color:var(--green);font:700 11px var(--font-body);cursor:pointer}.municipality-favorites__list button:hover,.municipality-favorites__list button:focus-visible,.municipality-favorite-toggle:hover,.municipality-favorite-toggle:focus-visible{border-color:rgba(137,214,163,.62);background:rgba(137,214,163,.14)}
@media(max-width:680px){.municipality-suggestions{max-height:42vh}.municipality-now-reading .municipality-weather-icon{width:54px;height:54px}.municipality-days .municipality-weather-icon,.municipality-met-days .municipality-weather-icon{width:40px;height:40px}}
/* V21 · capçalera administrativa estable a tota l'amplada */
.admin-body{padding-top:96px}.admin-site-header{width:100%;max-width:none;margin:0;padding-inline:clamp(18px,3vw,48px)}.admin-site-header .admin-back{flex:none}
.admin-social-panel{grid-column:1/-1}.admin-social-summary{display:grid;grid-template-columns:1fr 1fr;gap:22px}.admin-social-safety{display:grid;gap:5px;margin-top:18px;padding:15px 17px;border:1px solid rgba(238,190,93,.32);border-radius:14px;background:rgba(238,190,93,.07)}.admin-social-safety strong{color:#f2ca78}.admin-social-safety span{color:var(--muted);font-size:12px;line-height:1.55}.admin-social-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.admin-social-toolbar button,.admin-social-actions button{min-height:38px;padding:8px 13px;border:1px solid var(--line);border-radius:999px;background:rgba(137,214,163,.045);color:var(--muted);font:inherit;font-size:11px;font-weight:800;cursor:pointer}.admin-social-toolbar button:is(:hover,:focus-visible),.admin-social-toolbar button.is-active{border-color:rgba(137,214,163,.48);background:rgba(137,214,163,.14);color:var(--text)}.admin-social-feedback{margin:15px 0 0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;font-size:12px}.admin-social-feedback.is-ok{border-color:rgba(137,214,163,.34);background:rgba(137,214,163,.08);color:var(--green)}.admin-social-feedback.is-warning{border-color:rgba(238,190,93,.35);background:rgba(238,190,93,.07);color:#f2ca78}.admin-social-feedback.is-error{border-color:rgba(230,116,105,.4);background:rgba(230,116,105,.08);color:#f0a39b}.admin-social-list{display:grid;gap:14px;margin-top:16px}.admin-social-list[aria-busy="true"]{min-height:110px;opacity:.55}.admin-social-empty{margin:0;padding:24px;border:1px dashed var(--line);border-radius:14px;color:var(--muted);text-align:center}.admin-social-card{display:grid;gap:15px;padding:20px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,rgba(137,214,163,.055),rgba(4,17,14,.18))}.admin-social-card.is-dirty{border-color:rgba(238,190,93,.42)}.admin-social-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:0;padding:0;border:0}.admin-social-card h3{margin:4px 0 0;color:var(--text);font-size:20px}.admin-social-card .eyebrow{margin:0;font-size:10px}.admin-social-state{flex:none;padding:7px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.admin-social-state.is-approved,.admin-social-state.is-published{border-color:rgba(137,214,163,.42);color:var(--green)}.admin-social-state.is-partially_published,.admin-social-state.is-review{border-color:rgba(238,190,93,.4);color:#f2ca78}.admin-social-state.is-discarded{border-color:rgba(230,116,105,.38);color:#f0a39b}.admin-social-form{display:grid;grid-template-columns:minmax(200px,.55fr) minmax(300px,1.45fr);gap:14px}.admin-social-form>label{display:grid;align-content:start;gap:7px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.admin-social-form input[type="text"],.admin-social-form input:not([type]),.admin-social-form textarea{width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:12px;outline:0;background:rgba(2,13,11,.58);color:var(--text);font:inherit;font-size:13px;line-height:1.55;resize:vertical}.admin-social-form :is(input,textarea):focus{border-color:rgba(137,214,163,.56);box-shadow:0 0 0 3px rgba(137,214,163,.08)}.admin-social-form :is(input,textarea):disabled{opacity:.76;cursor:not-allowed}.admin-social-form fieldset{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:9px;margin:0;padding:0;border:0}.admin-social-form legend{width:100%;margin-bottom:2px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.admin-social-form fieldset label{display:flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:11px;cursor:pointer}.admin-social-form fieldset input{accent-color:var(--green)}.admin-social-meta-note{margin:0;color:var(--muted);font-size:11px}.admin-social-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.admin-social-actions button:is(:hover,:focus-visible):not(:disabled){transform:translateY(-1px);border-color:rgba(137,214,163,.48);color:var(--text)}.admin-social-actions button:disabled{opacity:.42;cursor:not-allowed}.admin-social-actions .is-primary{border-color:rgba(137,214,163,.45);background:var(--green);color:#062016}.admin-social-actions .is-danger{border-color:rgba(230,116,105,.34);color:#f0a39b}.admin-social-actions .is-publish{border-color:rgba(117,194,229,.38);background:rgba(117,194,229,.09);color:#a9dcf1}.admin-social-immutable{color:var(--muted);font-size:11px}.admin-social-publications{display:grid;gap:7px;padding-top:12px;border-top:1px solid var(--line)}.admin-social-publications>small{color:var(--muted);font-size:10px}.admin-social-publications>div{display:grid;grid-template-columns:minmax(90px,.3fr) minmax(0,1fr);gap:12px;padding:9px 11px;border-radius:10px;background:rgba(255,255,255,.025);font-size:10px}.admin-social-publications strong{color:var(--text)}.admin-social-publications span{overflow-wrap:anywhere;color:var(--muted)}.admin-social-publications .is-ok span{color:var(--green)}.admin-social-publications .is-error span{color:#f0a39b}
.admin-social-diagnostics{display:grid;grid-template-columns:minmax(220px,1fr) auto;align-items:center;gap:14px;margin-top:20px;padding:17px;border:1px solid rgba(117,194,229,.28);border-radius:16px;background:rgba(117,194,229,.055)}.admin-social-diagnostics>div:first-child{display:grid;gap:5px}.admin-social-diagnostics strong{color:var(--text)}.admin-social-diagnostics span{color:var(--muted);font-size:11px}.admin-social-diagnostics>button{min-height:40px;padding:9px 15px;border:1px solid rgba(117,194,229,.38);border-radius:999px;background:rgba(117,194,229,.1);color:#b8e4f5;font:inherit;font-size:11px;font-weight:850;cursor:pointer}.admin-social-diagnostics>button:disabled{opacity:.5;cursor:wait}.admin-social-diagnostic-list{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.admin-social-diagnostic,.admin-social-diagnostic-empty{display:grid;gap:4px;margin:0;padding:11px;border:1px solid var(--line);border-radius:11px;background:rgba(2,13,11,.35);font-size:10px}.admin-social-diagnostic strong{font-size:11px}.admin-social-diagnostic span{min-height:30px;line-height:1.4}.admin-social-diagnostic b{font-size:9px;text-transform:uppercase}.admin-social-diagnostic.is-ok{border-color:rgba(137,214,163,.34)}.admin-social-diagnostic.is-ok b{color:var(--green)}.admin-social-diagnostic.is-error{border-color:rgba(230,116,105,.38)}.admin-social-diagnostic.is-error b{color:#f0a39b}.admin-social-diagnostic-empty{grid-column:1/-1;color:var(--muted);text-align:center}
@media(max-width:780px){.admin-social-summary,.admin-social-form,.admin-social-diagnostics{grid-template-columns:1fr}.admin-social-diagnostics>button{width:100%}.admin-social-diagnostic-list{grid-template-columns:1fr 1fr}.admin-social-form fieldset{grid-column:auto}.admin-social-card{padding:16px}.admin-social-card>header{align-items:flex-start;flex-direction:column}.admin-social-actions{display:grid;grid-template-columns:1fr 1fr}.admin-social-actions button{width:100%}.admin-social-immutable{grid-column:1/-1}.admin-social-publications>div{grid-template-columns:1fr}}
@media(max-width:510px){.admin-social-diagnostic-list,.admin-social-actions{grid-template-columns:1fr}.admin-social-toolbar{display:grid;grid-template-columns:1fr 1fr}.admin-social-toolbar button{width:100%}.admin-social-state{align-self:flex-start}}
.admin-social-card__details{display:grid;gap:15px}.admin-social-card__details>summary{cursor:pointer;color:var(--green);font-size:11px;font-weight:850}.admin-social-card__details[open]>summary{margin-bottom:2px}.admin-social-pagination{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.admin-social-pagination button{min-height:38px;padding:8px 13px;border:1px solid var(--line);border-radius:999px;background:rgba(137,214,163,.045);color:var(--green);font:inherit;font-size:11px;font-weight:800;cursor:pointer}.admin-social-pagination button:disabled{opacity:.4;cursor:default}.admin-social-pagination span{color:var(--muted);font-size:10px;text-align:center}@media(max-width:780px){.admin-social-pagination{grid-template-columns:1fr 1fr}.admin-social-pagination span{grid-column:1/-1;grid-row:1}}

/* Predicció audiovisual · fonts oficials carregades només sota demanda */
.forecast-videos{display:grid;gap:14px}.forecast-videos__intro{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;padding:30px 34px}.forecast-videos__intro h2{margin:6px 0 10px;font:700 clamp(26px,3vw,38px)/1.08 var(--font-display);letter-spacing:-.035em}.forecast-videos__intro p:last-child{max-width:760px;margin:0;color:var(--muted);line-height:1.6}.forecast-videos__privacy{flex:none;padding:9px 12px;border:1px solid rgba(137,214,163,.3);border-radius:999px;background:rgba(137,214,163,.07);color:var(--green);font-size:10px;font-weight:850}.forecast-videos__layout{display:grid;grid-template-columns:minmax(250px,.55fr) minmax(0,1.45fr);gap:14px}.forecast-video-sources{display:grid;align-content:start;gap:8px;padding:16px}.forecast-video-sources :is(button,a){display:grid;gap:5px;width:100%;min-height:112px;padding:17px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.018);color:var(--text);font:inherit;text-align:left;text-decoration:none;cursor:pointer;transition:border-color .2s ease,background .2s ease,transform .2s ease}.forecast-video-sources [hidden],.forecast-video-player__empty[hidden],.forecast-video-player__frame[hidden],.forecast-video-player>footer[hidden]{display:none!important}.forecast-video-sources :is(button,a):hover,.forecast-video-sources :is(button,a):focus-visible,.forecast-video-sources :is(button,a).is-active{border-color:rgba(137,214,163,.58);background:linear-gradient(145deg,rgba(137,214,163,.14),rgba(118,202,229,.06));transform:translateY(-1px)}.forecast-video-sources :is(button,a):focus-visible{outline:2px solid rgba(137,214,163,.4);outline-offset:2px}.forecast-video-sources :is(button,a) span{color:var(--green);font-size:9px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.forecast-video-sources :is(button,a) strong{font-size:14px;line-height:1.3}.forecast-video-sources :is(button,a) small{color:var(--muted);font-size:10px;line-height:1.45}.forecast-video-player{overflow:hidden;min-width:0;min-height:470px}.forecast-video-player__empty{display:grid;min-height:400px;place-items:center;align-content:center;padding:36px;text-align:center}.forecast-video-player__empty span{display:grid;width:64px;height:64px;place-items:center;border:1px solid rgba(137,214,163,.36);border-radius:50%;background:rgba(137,214,163,.08);color:var(--green);font-size:24px}.forecast-video-player__empty h3{margin:18px 0 7px;font-size:23px}.forecast-video-player__empty p{margin:0;color:var(--muted)}.forecast-video-player__frame{position:relative;aspect-ratio:16/9;background:#020806}.forecast-video-player__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:#020806}.forecast-video-player>footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px}.forecast-video-player>footer div{display:grid;gap:4px;min-width:0}.forecast-video-player>footer span{color:var(--green);font-size:9px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.forecast-video-player>footer strong{font-size:15px}.forecast-video-player>footer small{color:var(--muted);line-height:1.45}.forecast-video-player>footer a{flex:none;color:var(--green);font-size:11px;font-weight:800;text-decoration:none}.forecast-video-player>footer a:hover,.forecast-video-player>footer a:focus-visible{text-decoration:underline;text-underline-offset:4px}.forecast-videos__note{margin:0;padding:2px 5px;color:var(--muted);font-size:10px;line-height:1.5}
.forecast-video-source--external{border-style:dashed!important}.forecast-video-player__loading{position:absolute;inset:0;z-index:2;display:none;place-items:center;padding:24px;background:linear-gradient(145deg,#06140f,#020806);color:var(--green);font-size:13px;font-weight:850;text-align:center}.forecast-video-player__frame.is-loading .forecast-video-player__loading{display:grid}
.global-forecast-directory{display:grid;gap:22px;margin-top:10px;padding:clamp(22px,3vw,34px)}.global-forecast-directory>header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.global-forecast-directory>header h2{margin:6px 0 9px;font:700 clamp(24px,2.8vw,34px)/1.1 var(--font-display)}.global-forecast-directory>header p:last-child{max-width:760px;margin:0;color:var(--muted);line-height:1.6}.global-forecast-directory__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.global-forecast-directory__grid a{display:flex;min-width:0;min-height:185px;padding:19px;border:1px solid var(--line);border-radius:17px;background:linear-gradient(150deg,rgba(22,62,48,.64),rgba(5,24,19,.82));color:var(--text);text-decoration:none;flex-direction:column;transition:transform .2s ease,border-color .2s ease,background .2s ease}.global-forecast-directory__grid a:hover,.global-forecast-directory__grid a:focus-visible{transform:translateY(-2px);border-color:rgba(137,214,163,.58);background:linear-gradient(150deg,rgba(35,88,67,.68),rgba(7,31,24,.88))}.global-forecast-directory__grid span{color:var(--green);font-size:9px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.global-forecast-directory__grid b{margin-top:8px;font-size:17px}.global-forecast-directory__grid small{flex:1;margin:11px 0;color:var(--muted);font-size:11px;line-height:1.55}.global-forecast-directory__grid em{color:var(--green);font-size:10px;font-style:normal;font-weight:850}.global-forecast-directory__note{display:flex;gap:9px;margin:0;color:var(--muted);font-size:10px;line-height:1.55}.global-forecast-directory__note span{display:grid;flex:none;width:20px;height:20px;place-items:center;border-radius:50%;background:rgba(137,214,163,.1);color:var(--green);font-weight:900}
@media(max-width:780px){.forecast-videos__intro{align-items:flex-start;flex-direction:column;padding:24px}.forecast-videos__layout{grid-template-columns:1fr}.forecast-video-sources{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.forecast-video-sources :is(button,a){flex:0 0 min(78vw,270px);scroll-snap-align:start}.forecast-video-player{min-height:360px}.forecast-video-player__empty{min-height:330px}.forecast-video-player>footer{align-items:flex-start;flex-direction:column}.forecast-video-player>footer a{align-self:stretch;padding:10px;border:1px solid var(--line);border-radius:10px;text-align:center}.global-forecast-directory__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.admin-social-publications button{box-sizing:border-box;max-width:100%;min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(137,214,163,.08);color:var(--text);font:inherit;font-size:12px;line-height:1.5;white-space:normal;cursor:pointer}
.admin-social-publications button:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.home-dayparts { margin-top:clamp(16px,2vw,24px); padding:clamp(20px,3vw,32px); min-width:0; }
.home-dayparts > header { display:flex; flex-wrap:wrap; align-items:center; gap:14px; justify-content:space-between; }
.home-dayparts > header h2 { margin:6px 0 0; font:700 clamp(22px,2.4vw,30px)/1.2 var(--font-display); letter-spacing:-.035em; }
.home-dayparts > header .eyebrow { margin:0; }
#home-dayparts-date { color:var(--muted); font-size:12px; line-height:1.5; }
.home-dayparts__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr)); gap:14px; margin:22px 0 16px; }
.home-dayparts__grid[data-count="1"] { grid-template-columns:minmax(0,760px); justify-content:center; }
.home-daypart { min-width:0; padding:22px; border:1px solid var(--line-bright); border-radius:var(--radius-lg); background:radial-gradient(ellipse at 100% 0,rgba(137,214,163,.12),transparent 65%),rgba(4,20,16,.4); }
.home-daypart[data-weather="rain"],.home-daypart[data-weather="storm"] { background:radial-gradient(ellipse at 100% 0,rgba(119,183,200,.16),transparent 65%),rgba(4,20,16,.4); }
.home-daypart__top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.home-daypart__top h3 { margin:0 0 6px; font:700 18px/1.3 var(--font-display); }
.home-daypart__hours { color:var(--muted); font-size:12px; font-variant-numeric:tabular-nums; }
.home-daypart__symbol { display:grid; flex:none; width:72px; height:76px; place-items:center; border:1px solid rgba(137,214,163,.16); border-radius:22px; background:rgba(137,214,163,.055); }
.home-daypart__symbol svg { display:block; width:100%; height:100%; }
.home-daypart[data-light="twilight"] .home-daypart__symbol { border-color:rgba(242,203,123,.28); background:linear-gradient(160deg,rgba(242,203,123,.12),rgba(119,183,200,.06)); }
.home-daypart__condition { margin:14px 0 8px; min-height:2.7em; color:var(--text); font-size:15px; line-height:1.35; overflow-wrap:anywhere; }
.home-daypart__temperature { display:block; margin:0 0 20px; font:700 clamp(30px,3vw,40px)/1.2 var(--font-display); letter-spacing:-.035em; font-variant-numeric:tabular-nums; }
.home-daypart__metrics { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:0; padding-top:15px; border-top:1px solid var(--line); }
.home-daypart__metrics dt { color:var(--muted); font-size:11px; line-height:1.5; }
.home-daypart__metrics dd { margin:5px 0 0; color:var(--text); font-size:16px; font-weight:700; }
.home-daypart__missing { display:block; margin-top:12px; color:var(--amber); font-size:11px; }
.home-dayparts__empty { grid-column:1/-1; margin:0; padding:24px; border:1px dashed var(--line-bright); border-radius:var(--radius-lg); color:var(--muted); }
.home-dayparts__note { margin:0; color:var(--muted); font-size:11px; line-height:1.6; }
.home-dayparts nav { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.home-dayparts nav a { display:inline-flex; min-height:44px; align-items:center; padding:8px 14px; border:1px solid var(--line); border-radius:999px; background:rgba(137,214,163,.04); color:var(--green); font-size:12px; font-weight:700; text-decoration:none; }
.home-dayparts nav a:hover { border-color:var(--green); background:rgba(137,214,163,.1); }
.home-dayparts nav a:focus-visible { outline:2px solid var(--green); outline-offset:3px; }
@media(max-width:600px) {
  .home-dayparts__grid { gap:10px; }
  .home-daypart { padding:18px; }
  .home-daypart__condition { min-height:0; }
  .home-daypart__temperature { margin-bottom:16px; }
}
.meteo-ai-more { margin-top:12px; }
.meteo-ai-more summary { cursor:pointer; padding:12px 0; min-height:44px; }
.meteo-ai-more .meteo-ai-suggestions { margin-top:8px; }
