/* Meteocasita: additions on top of the shared design system (style.css). No third-party images. */
.hero-plain{background:linear-gradient(160deg,#3b6f8f 0%,#5d93b0 38%,#9fc3d6 72%,#d9e7ee 100%)}
.hero-plain::after{content:"";position:absolute;inset:auto 0 0 0;height:38%;background:linear-gradient(0deg,rgba(18,34,44,.28),transparent);pointer-events:none}
.hero-plain .hero-content{z-index:1}
.content>section{padding-top:48px}
.m2-title{font:32px/1.25 var(--serif);margin-top:14px}
.m2-lead{font-size:13px;line-height:1.95;margin-top:14px;max-width:760px}
.m2-metrics{list-style:none;padding:0;margin:26px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.m2-metric{border:1px solid var(--line);border-radius:6px;background:#fff;padding:14px 16px;display:flex;flex-direction:column;gap:4px;min-width:0}
.m2-metric .m2-name{font:9px/1.6 var(--mono);color:var(--muted);text-transform:uppercase}
.m2-metric .m2-value{font:28px/1.2 var(--serif);font-variant-numeric:tabular-nums}
.m2-metric .m2-source{font-size:11px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.m2-metric .m2-at{font:9px/1.6 var(--mono);color:var(--muted)}
.m2-metric .m2-alt{font-size:11px;color:var(--muted);border-top:1px dashed var(--line);padding-top:6px;margin-top:4px}
.m2-metric[data-state="stale"] .m2-at,.m2-metric[data-state="none"] .m2-value{color:var(--coral)}
.m2-badge{display:inline-block;font:9px/1.5 var(--mono);border:1px solid var(--line);border-radius:999px;padding:1px 8px}
.m2-badge[data-source="tuya"]{border-color:#c7d9cf;background:#eef6f1}
.m2-badge[data-source="xemaCE"]{border-color:#c9d8e3;background:#eef4f8}
.m2-badge[data-kind="validation"]{font-style:italic}
.m2-chart{height:320px}
.m2-cameras{list-style:none;padding:0;margin:24px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.m2-camera{border:1px solid var(--line);border-radius:6px;background:#fff;min-width:0}
.m2-camera a{display:flex;flex-direction:column;gap:6px;padding:16px;min-height:44px}
.m2-camera a:hover,.m2-camera a:focus-visible{background:#f3f7f9}
.m2-camera .m2-cam-title{display:block;font:20px/1.3 var(--serif)}
.m2-camera .m2-cam-meta{display:block;font:9px/1.7 var(--mono);color:var(--muted)}
.m2-camera .m2-cam-role{font-size:12px}
.m2-camera .m2-cam-go{font-size:11px;text-decoration:underline;text-underline-offset:4px}
.m2-camera[data-main="true"]{border-color:#9fbfd1;box-shadow:0 0 0 1px #9fbfd1 inset}
.m2-compass{width:38px;height:38px;flex-shrink:0}
.m2-cam-head{display:flex;gap:12px;align-items:center}
.forecast-period .m2-day{font:20px/1.3 var(--serif)}
#status[data-state="error"]{color:var(--coral)}
@media(max-width:800px){.m2-title{font-size:26px}.m2-metrics{grid-template-columns:1fr 1fr}.m2-metric .m2-value{font-size:24px}.content>section{padding-top:36px}}
@media(max-width:420px){.m2-metrics{grid-template-columns:1fr}}
/* v2: two stations side by side, camera viewer, history */
/* Vigilant burns a black caption bar into the top ~10% of each frame; the box is 12% taller than the hero and anchored
   to the bottom, so the hero's overflow:hidden keeps that bar out of sight on every width. */
.hero>img.hero-sky{position:absolute;inset:auto 0 0 0;width:100%;height:112%;object-fit:cover;object-position:50% 40%}
.m2-hero-pair{display:flex;gap:42px;flex-wrap:wrap;margin-top:22px}
.m2-hero-station .hero-temperature{margin:0}
.m2-hero-station .hero-time{display:block;font-size:11px;opacity:.9}
.m2-table-wrap{overflow-x:auto;margin-top:22px}
.m2-dual{width:100%;border-collapse:collapse;font-size:13px}
.m2-dual th,.m2-dual td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.m2-dual thead th{font:9px/1.6 var(--mono);color:var(--muted);text-transform:uppercase}
.m2-dual tbody th{font-weight:400;font-size:12px;color:var(--muted);width:24%}
.m2-dual .m2-v{font:22px/1.2 var(--serif);font-variant-numeric:tabular-nums;display:block}
.m2-dual .m2-at{font:9px/1.6 var(--mono);color:var(--muted);display:block}
.m2-dual td[data-state="stale"] .m2-at{color:var(--coral)}
.m2-dual td[data-state="none"] .m2-v{color:#9aa6ae}
.m2-dual .m2-badge{margin-top:3px}
.m2-cam-tabs{margin-top:6px}
.m2-cam-tabs button[aria-selected="true"]{border-bottom-color:var(--coral)}
.m2-viewer{margin:14px 0 0}
.m2-stage{position:relative;background:#0e1820;border-radius:6px;overflow:hidden;aspect-ratio:2688/1520;max-height:70vh}
.m2-stage img{width:100%;height:100%;object-fit:contain;display:block}
.m2-empty{color:#dfe7ec;padding:40px 20px;text-align:center;font-size:13px}
.m2-nav{position:absolute;top:50%;transform:translateY(-50%);background:#ffffffd9;border:0;border-radius:999px;width:44px;height:44px;display:flex;align-items:center;justify-content:center}
.m2-prev{left:10px}.m2-next{right:10px}
.m2-scrub{display:flex;gap:14px;align-items:center;margin-top:10px}
.m2-scrub input{flex:1;min-height:44px}
.m2-scrub output{font:10px var(--mono);color:var(--muted);min-width:150px;text-align:right}
.m2-caption{font-size:12px;margin-top:4px}
.m2-caption a{text-decoration:underline;text-underline-offset:4px}
.chart-toolbar{display:flex;gap:16px;flex-wrap:wrap;justify-content:space-between;align-items:center}
@media(max-width:800px){.m2-hero-pair{gap:22px}.m2-dual th,.m2-dual td{padding:8px 6px}.m2-dual .m2-v{font-size:18px}.m2-scrub output{min-width:110px}}
/* Phones: each magnitude becomes a heading over the two stations side by side, so the table never scrolls sideways. */
@media(max-width:560px){.m2-dual,.m2-dual thead,.m2-dual tbody{display:block}.m2-dual tr{display:grid;grid-template-columns:1fr 1fr;column-gap:12px;border-bottom:1px solid var(--line)}.m2-dual th,.m2-dual td{border-bottom:0;padding:6px 0;min-width:0}.m2-dual thead th:first-child{display:none}.m2-dual tbody th{grid-column:1/-1;width:auto;padding:12px 0 0}.m2-dual .m2-at{overflow-wrap:anywhere}}
