:root{
  --bg:#f7f7f8;
  --panel:#ffffff;
  --panel-alt:#fff8eb;
  --text:#231F20;
  --muted:#5f6470;
  --line:#e8e8ea;
  --shadow:0 14px 36px rgba(15,23,42,.08);
  --brand:#EDAA08;
  --brand-2:#F03B1B;
  --brand-3:#FCC512;
  --brand-4:#F45617;
  --brand-5:#FA7F12;
  --red:#e04b35;
  --amber:#EDAA08;
  --green:#138a56;
  --blue:#2470d8;
  --danger:#d13b2a;
  --success:#147d5d;
  --watch:#9a6500;
  --warning:#bf5d1a;
  --info:#295fbc;
  --radius:20px;
  --radius-sm:14px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:linear-gradient(180deg,#fff9ef 0,#f6f6f8 220px,#f6f6f8 100%);color:var(--text);font:16px/1.5 Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.page-shell{max-width:1240px;margin:0 auto;padding:22px 18px 56px}
.brand{display:flex;align-items:center;gap:10px;font-size:14px}
.brand small{display:block;color:var(--muted)}
.brand-mark{width:34px;height:52px;display:grid;place-items:center;flex:0 0 auto}.brand-mark img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 10px rgba(35,31,32,.10))}
.main-nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.main-nav a{padding:10px 14px;border-radius:999px;color:#30323a;font-weight:600}
.main-nav a.active,.main-nav a:hover{background:linear-gradient(135deg,rgba(237,170,8,.18),rgba(240,59,27,.12));color:#111}
.account-pill{background:#111;color:#fff!important}
.nav-toggle{display:none;border:0;background:#fff;border-radius:12px;padding:10px 12px;box-shadow:var(--shadow);font-size:20px}
.hero{padding:34px;border-radius:calc(var(--radius) + 4px);background:radial-gradient(circle at top right,rgba(240,59,27,.14),transparent 34%),radial-gradient(circle at top left,rgba(237,170,8,.18),transparent 35%),linear-gradient(180deg,#fff,#fff7ea);box-shadow:var(--shadow);border:1px solid rgba(0,0,0,.05)}
.hero-compact{padding:26px 28px}
.hero h1{margin:10px 0 12px;font-size:clamp(30px,4vw,48px);line-height:1.04}
.hero p{margin:0;color:#3b4049;max-width:900px}
.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:12px;font-weight:800;color:var(--brand-2)}
.section{margin-top:22px}
.grid{display:grid;gap:18px}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.panel,.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.panel{padding:22px}
.card{padding:18px}
.metric{display:flex;flex-direction:column;gap:6px}
.metric b{font-size:30px;line-height:1.05}
.metric small,.muted{color:var(--muted)}
.compact-grid .metric b{font-size:24px}
.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.section-head h2,.section-head h3,.panel h2,.card h3{margin:0}
.section-head p,.panel p,.card p{margin:6px 0 0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 14px;border-radius:14px;border:1px solid rgba(0,0,0,.08);background:#fff;cursor:pointer;font-weight:700;color:#222;box-shadow:0 4px 10px rgba(15,23,42,.04)}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:linear-gradient(135deg,var(--brand),var(--brand-2));border-color:transparent;color:#fff}
.btn-danger{background:#111;border-color:#111;color:#fff}
.badge{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:999px;font-size:12px;font-weight:800}
.badge.info{background:rgba(41,95,188,.12);color:var(--info)}
.badge.watch{background:rgba(237,170,8,.16);color:var(--watch)}
.badge.warning{background:rgba(250,127,18,.16);color:var(--warning)}
.badge.danger{background:rgba(224,75,53,.14);color:var(--danger)}
.badge.success{background:rgba(20,125,93,.13);color:var(--success)}
.status-row,.toolbar,.legend,.sync-grid{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.status-pill{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);padding:10px 12px;border-radius:999px;font-weight:700;box-shadow:0 4px 10px rgba(15,23,42,.04)}
.dot{width:10px;height:10px;border-radius:50%;background:var(--success)}
.event-card{display:grid;grid-template-columns:auto 1fr auto;align-items:flex-start;gap:16px}
.event-icon{width:50px;height:50px;border-radius:16px;background:linear-gradient(135deg,#fff7e1,#ffe0d7);display:grid;place-items:center;font-size:24px}
.station-card{transition:transform .15s ease,box-shadow .15s ease}
.station-card:hover{transform:translateY(-2px)}
.forecast-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px}
.forecast-hour{padding:14px 12px;border-radius:16px;background:linear-gradient(180deg,#fff,#fff9ef);border:1px solid #f0eee8;text-align:center}
.forecast-hour b{display:block;font-size:24px;line-height:1.05;margin:6px 0}
.forecast-icon{font-size:22px}
.chart-card{margin-bottom:18px;padding:14px;border:1px solid #f0eee8;border-radius:18px;background:linear-gradient(180deg,#fff,#fffdfa)}
.chart-card h3{margin:0 0 8px}
.chart-svg{width:100%;height:auto;display:block}
.chart-grid-line{stroke:#ececef;stroke-width:1}
.map{height:min(72vh,760px);border-radius:22px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}
.legend span{padding:8px 10px;border-radius:999px;background:#fff;border:1px solid var(--line);font-weight:700;font-size:14px}
.form-grid{display:grid;gap:14px}
.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.form-grid label{display:grid;gap:6px;font-weight:700}
input,select,textarea,button{font:inherit}
input,select,textarea{width:100%;padding:12px 14px;border-radius:14px;border:1px solid #d9dce3;background:#fff;color:#111;outline:none}
input:focus,select:focus,textarea:focus{border-color:rgba(237,170,8,.85);box-shadow:0 0 0 4px rgba(237,170,8,.12)}
textarea{min-height:110px;resize:vertical}
.check{display:flex!important;align-items:center;gap:10px;font-weight:700}
.check input{width:auto}
.flash{margin-top:18px;padding:15px 18px;border-radius:16px;font-weight:700;border:1px solid transparent}
.flash.success{background:rgba(20,125,93,.11);color:var(--success);border-color:rgba(20,125,93,.2)}
.flash.danger{background:rgba(224,75,53,.11);color:var(--danger);border-color:rgba(224,75,53,.2)}
.report-types{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.report-type{display:block}
.report-type input{display:none}
.report-type span{display:flex;align-items:center;justify-content:center;min-height:72px;padding:12px;border-radius:16px;border:1px solid var(--line);background:#fff;font-weight:800;text-align:center}
.report-type input:checked + span{background:linear-gradient(135deg,rgba(237,170,8,.18),rgba(240,59,27,.1));border-color:rgba(240,59,27,.25)}
.station-row{display:grid;grid-template-columns:minmax(180px,2fr) repeat(2,minmax(0,1fr)) auto auto;gap:14px;align-items:center;padding:14px 4px;border-bottom:1px solid #efeff2}
.station-row:last-child{border-bottom:0}
.station-name{display:flex;flex-direction:column;gap:4px}
.notification-item{padding:14px 0;border-bottom:1px solid #efeff2}
.notification-item:last-child{border-bottom:0}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:18px}
table{width:100%;border-collapse:collapse;background:#fff}
th,td{padding:12px 14px;text-align:left;border-bottom:1px solid #efeff2;white-space:nowrap}
thead th{background:#fff8eb;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:#554f47}
.empty{padding:18px;border:1px dashed #d9dce3;border-radius:18px;background:#fafafa;color:var(--muted)}
.source-note{color:var(--muted);font-size:14px}
.footer{max-width:1240px;margin:0 auto 26px;padding:0 18px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:14px}
.footer a{text-decoration:underline}
.install-body{background:#faf8f4}
.install-shell{min-height:100vh;display:grid;place-items:center;padding:24px}
.install-card{width:min(680px,100%);padding:28px;border-radius:24px;background:#fff;box-shadow:var(--shadow);border:1px solid var(--line)}
code{display:inline-block;padding:6px 8px;background:#111;color:#fff;border-radius:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;word-break:break-all}
@media (max-width:1024px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.event-card{grid-template-columns:auto 1fr}}
@media (max-width:760px){
  .page-shell{padding:16px 14px 48px}
  .nav-toggle{display:inline-flex}
  .main-nav{display:none;width:100%;padding-top:10px}
  .main-nav.open{display:flex;flex-direction:column;align-items:stretch}
  .main-nav a,.account-pill{width:100%;text-align:center}
  
  .grid-2,.grid-3,.grid-4,.form-grid.two{grid-template-columns:1fr}
  .hero{padding:24px}
  .station-row{grid-template-columns:1fr;align-items:flex-start;padding:16px 0}
  .event-card{grid-template-columns:1fr}
}

/* v1.1.1 forecast, map and community */
.forecast-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center}.forecast-now{min-width:170px;padding:20px;border-radius:22px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;box-shadow:var(--shadow)}.forecast-now>span{font-size:44px}.forecast-now b{font-size:42px;line-height:1}.forecast-now small{color:var(--muted);margin-top:6px}.range-switch,.metric-switch{display:flex;gap:8px;flex-wrap:wrap}.range-switch button,.metric-switch button,.map-layers button,.map-time button{border:1px solid var(--line);background:#fff;color:#31343a;border-radius:999px;padding:9px 13px;font-weight:800;cursor:pointer}.range-switch button.active,.metric-switch button.active,.map-layers button.active,.map-time button.active{background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;border-color:transparent}.metric-switch{margin-bottom:14px}.interactive-chart{position:relative;min-height:290px;overflow:hidden}.interactive-chart svg{width:100%;height:auto;display:block}.fc-grid{stroke:#ececef;stroke-width:1}.fc-axis,.fc-time{fill:#717784;font-size:12px}.chart-tooltip{position:absolute;z-index:8;width:172px;padding:10px 12px;border-radius:14px;background:#111;color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.2);pointer-events:none}.chart-tooltip b,.chart-tooltip span,.chart-tooltip small{display:block}.chart-tooltip span{font-size:20px;font-weight:800;margin:3px 0}.chart-tooltip small{color:#d8d8dc}.hourly-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(118px,138px);gap:10px;overflow:auto;padding:2px 2px 12px;scroll-snap-type:x proximity}.hour-card{scroll-snap-align:start;padding:14px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#fff,#fff9ef);display:grid;gap:5px;min-height:168px}.hour-card b{font-size:25px}.hour-card span{font-size:13px;color:#555d67}.day-card .day-main{display:flex;justify-content:space-between;align-items:center;margin:12px 0}.day-card .day-main span{font-size:34px}.day-card .day-main b{font-size:24px}.map-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}.map-layers,.map-time{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.map-stats{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.map-stats span{background:#fff;border:1px solid var(--line);padding:7px 10px;border-radius:999px;font-size:13px;font-weight:800}.event-div-icon,.report-div-icon{background:none!important;border:0!important}.map-event-pulse{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#fff;border:3px solid var(--brand);font-size:20px;box-shadow:0 0 0 0 rgba(237,170,8,.34);animation:meteoPulse 2.2s infinite}.map-event-pulse.sev-3,.map-event-pulse.sev-4{border-color:var(--brand-2);box-shadow:0 0 0 0 rgba(240,59,27,.34)}.map-report-dot{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#fff;border:2px solid var(--brand);font-size:16px;box-shadow:0 6px 16px rgba(0,0,0,.14)}@keyframes meteoPulse{0%{box-shadow:0 0 0 0 rgba(237,170,8,.35)}70%{box-shadow:0 0 0 14px rgba(237,170,8,0)}100%{box-shadow:0 0 0 0 rgba(237,170,8,0)}}.map-popup{display:grid;gap:6px;min-width:190px}.map-popup small{color:#737984;text-transform:uppercase;letter-spacing:.05em}.map-popup b{font-size:16px}.map-popup a{font-weight:800;color:#b53b20}.community-feed{display:grid;gap:10px;max-height:590px;overflow:auto;padding-right:4px}.community-message{display:grid;grid-template-columns:42px 1fr;gap:10px;padding:12px;border:1px solid #efeff2;border-radius:16px;background:#fff}.community-message.pinned{background:#fff8e9;border-color:#f3c85d}.community-avatar{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;display:grid;place-items:center;font-weight:900}.community-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.community-meta span{font-size:12px;color:var(--muted)}.community-message p{margin:4px 0 0}.community-compose{margin-top:14px}.live-dot{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:800;color:var(--success)}.live-dot i{width:9px;height:9px;border-radius:50%;background:var(--success);box-shadow:0 0 0 6px rgba(20,125,93,.1)}.soft{border:0;border-top:1px solid var(--line);margin:22px 0}.timeline{display:grid;gap:12px}.timeline-item{display:grid;grid-template-columns:70px 1fr;gap:12px;padding-left:12px;border-left:3px solid #f0c34d}.alert-hero{position:relative;overflow:hidden}.alert-hero:after{content:"";position:absolute;right:-80px;top:-80px;width:240px;height:240px;border-radius:50%;background:rgba(237,170,8,.08)}.severity-danger:after,.severity-warning:after{background:rgba(240,59,27,.1)}
@media(max-width:760px){.forecast-hero-grid,.chat-layout{grid-template-columns:1fr}.forecast-now{width:100%;grid-template-columns:auto auto 1fr;justify-content:start;gap:12px}.forecast-now>span{font-size:34px}.forecast-now b{font-size:34px}.map-toolbar{align-items:stretch}.map-layers,.map-time{width:100%}.map-layers button,.map-time button{flex:1}.community-feed{max-height:480px}.range-switch{width:100%}.range-switch button{flex:1}.metric-switch{display:grid;grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){.map-event-pulse{animation:none}}
.community-actions{display:flex;gap:8px;margin-top:7px}.community-actions button{border:0;background:transparent;color:var(--muted);padding:2px 0;font-size:12px;font-weight:800;cursor:pointer}.community-actions button:hover{color:var(--brand-2)}

/* Meteo Agramunt 2.0 — website layer */
.site-header{position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border-bottom:1px solid rgba(19,19,19,.07)}
.header-inner{max-width:1320px;margin:auto;padding:11px 20px;display:flex;align-items:center;gap:18px}.brand-copy b{display:block;font-size:16px}.brand-copy small{display:block;max-width:270px;color:var(--muted);font-size:10px;line-height:1.2;letter-spacing:.04em}.site-header .main-nav{margin-left:auto;gap:2px}.site-header .main-nav a{padding:9px 10px;font-size:13px}.page-shell{max-width:1320px}.site-footer{max-width:1320px;margin:0 auto;padding:38px 20px 24px;border-top:1px solid var(--line)}.footer-grid{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:28px}.footer-grid>div{display:grid;align-content:start;gap:8px}.footer-grid a{color:var(--muted);font-size:14px}.footer-grid a:hover{color:var(--brand-2)}.footer-brand{font-size:22px;font-weight:900}.footer-bottom{display:flex;justify-content:space-between;gap:12px;margin-top:28px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}
.home-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(420px,.8fr);gap:30px;padding:46px;border-radius:30px;background:radial-gradient(circle at 85% 10%,rgba(240,59,27,.18),transparent 35%),radial-gradient(circle at 5% 95%,rgba(237,170,8,.20),transparent 38%),#fff;border:1px solid rgba(0,0,0,.05);box-shadow:var(--shadow)}.home-hero h1{font-size:clamp(50px,7vw,82px);line-height:.92;margin:12px 0}.home-condition{font-size:21px;margin:0 0 15px}.weather-inline{display:flex;gap:13px;flex-wrap:wrap;margin:18px 0}.weather-inline span{padding:9px 11px;border-radius:999px;background:#fff8eb;border:1px solid #f2e7ca;font-weight:700}.home-forecast-mini{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;align-self:center}.home-forecast-mini>div{min-height:120px;display:grid;place-items:center;padding:12px;border-radius:18px;background:rgba(255,255,255,.84);border:1px solid rgba(0,0,0,.06)}.home-forecast-mini span{font-size:25px}.home-forecast-mini b{font-size:22px}.calm-banner,.alert-ribbon{display:flex;align-items:center;gap:16px;padding:18px 22px;border-radius:20px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.calm-banner>div{flex:1}.calm-banner p{margin:2px 0;color:var(--muted)}.alert-ribbon{background:linear-gradient(135deg,#fff,#fff7e8);border-color:rgba(237,170,8,.28)}.alert-ribbon>div:nth-child(2){flex:1}.alert-ribbon h2{margin:3px 0 5px}.home-quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.quick-card{display:flex;align-items:center;gap:13px;padding:17px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 8px 24px rgba(15,23,42,.05)}.quick-card>span{font-size:28px}.quick-card div{display:grid}.quick-card small{color:var(--muted)}.grid-5{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.forecast-days-home .day-card{text-align:center}.day-card{display:grid;gap:8px}.day-icon{font-size:34px}.day-card strong{font-size:25px}.day-card strong span{color:var(--muted);font-size:18px}.day-details{display:flex;gap:9px;flex-wrap:wrap;color:var(--muted);font-size:13px}.station-card-top{display:flex;justify-content:space-between;align-items:center}.live-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.live-dot.online{background:var(--success);box-shadow:0 0 0 5px rgba(20,125,93,.09)}.live-dot.stale{background:var(--brand)}.station-card-current{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 0}.station-card-current strong{font-size:36px}.station-card-current>div{display:grid;gap:3px;color:var(--muted);font-size:13px}.split-feature{display:grid;grid-template-columns:1.35fr .65fr;gap:18px}.home-stats{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}.home-stats span{padding:10px 12px;background:#fafafa;border:1px solid var(--line);border-radius:14px}.home-stats b{font-size:20px}.brand-story{background:linear-gradient(145deg,#191919,#292929);color:#fff}.brand-story p{color:#d4d4d4}.brand-story .eyebrow{color:var(--brand)}.seo-copy{max-width:980px;margin-left:auto;margin-right:auto;padding:26px 0;color:#42464f}.seo-copy h2{font-size:30px}.info-band{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:24px 28px;background:linear-gradient(135deg,#191919,#2f2f2f);color:#fff;border-radius:22px}.info-band p{color:#d5d5d5;margin:5px 0}.article-card h2,.article-card h3{margin:7px 0}.prose{font-size:17px;line-height:1.75}.prose h2{font-size:29px;margin:28px 0 8px}.prose h3{font-size:23px}.prose a{text-decoration:underline;color:#b94126}.article-hero{max-width:1000px;margin:auto}.article-hero h1{max-width:900px}
.station-hero,.forecast-main-hero,.air-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:25px;align-items:center;padding:34px;border-radius:28px;background:linear-gradient(135deg,#fff,#fff8ea);border:1px solid var(--line);box-shadow:var(--shadow)}.station-hero h1,.forecast-main-hero h1,.air-hero h1{font-size:clamp(38px,5vw,64px);line-height:1;margin:9px 0}.station-current{min-width:250px;padding:22px;background:#fff;border:1px solid var(--line);border-radius:22px;text-align:right}.station-current span,.station-current small{display:block;color:var(--muted)}.station-current strong{font-size:48px}.weather-glance{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.weather-glance>div{min-width:110px;padding:14px;border-radius:17px;background:#fff;border:1px solid var(--line);text-align:center}.weather-glance span{display:block;color:var(--muted);font-size:12px}.weather-glance b{font-size:24px}.detail-list{display:grid}.detail-list>div{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid var(--line)}.detail-list span{color:var(--muted)}.forecast-tabs{display:flex;gap:8px;overflow:auto;padding:4px 0}.forecast-tabs button,.forecast-metric-buttons button{white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 14px;font-weight:800;cursor:pointer}.forecast-tabs button.active,.forecast-metric-buttons button.active{background:#171717;color:#fff;border-color:#171717}.forecast-tab{display:none}.forecast-tab.active{display:block}.forecast-metric-buttons{display:flex;gap:8px;overflow:auto;margin-bottom:12px}.air-hero h1 small{font-size:18px;color:var(--muted)}.air-scale{width:300px;height:16px;border-radius:999px;background:linear-gradient(90deg,#4ebc71,#f5d13a,#ef8a34,#d74343,#8a3c8f);position:relative}.air-scale span{position:absolute;top:22px;font-size:12px;color:var(--muted)}.air-scale span:last-child{right:0}.radar-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,.7fr);gap:18px}.radar-frame{aspect-ratio:16/10;border-radius:18px;overflow:hidden;background:#eee}.radar-frame iframe{width:100%;height:100%;border:0}.map-medium{height:520px}.camera-card img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:17px;background:#eee}.camera-placeholder{min-height:260px;display:grid;place-items:center;background:#f4f4f4;border-radius:17px;color:var(--muted)}.compact-feed{max-height:430px}.compact-compose{margin-top:12px}.seo-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:18px}.seo-nav{display:grid;align-content:start;gap:3px;max-height:790px;overflow:auto}.seo-nav h3{margin:16px 0 4px}.seo-nav a{padding:8px 10px;border-radius:10px;font-size:13px}.seo-nav a.active{background:#fff2d0;color:#ad3b22;font-weight:800}.google-preview{padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff}.google-preview span{font-size:12px;color:#365a36}.google-preview h3{color:#1a0dab;font-size:21px;font-weight:500;margin:5px 0}.google-preview p{color:#4d5156;margin:0}.editor-area{min-height:380px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}.provider-box{padding:14px;background:#fff9ec;border:1px solid #f2dfb4;border-radius:16px}.hp-field{position:absolute!important;left:-99999px!important;opacity:0!important;pointer-events:none}
@media(max-width:1050px){.home-hero{grid-template-columns:1fr}.home-forecast-mini{grid-template-columns:repeat(6,1fr)}.home-quick-grid,.grid-5{grid-template-columns:repeat(3,1fr)}.radar-grid{grid-template-columns:1fr}.site-header .main-nav{gap:0}.site-header .main-nav a{padding:8px 7px;font-size:12px}.brand-copy small{display:none}}
@media(max-width:760px){.header-inner{flex-wrap:wrap;padding:10px 13px}.site-header .main-nav{display:none;width:100%;margin:0}.site-header .main-nav.open{display:grid;grid-template-columns:1fr 1fr}.home-hero{padding:25px}.home-hero h1{font-size:52px}.home-forecast-mini{grid-template-columns:repeat(3,1fr)}.home-quick-grid,.grid-5,.split-feature,.station-hero,.forecast-main-hero,.air-hero,.seo-layout{grid-template-columns:1fr}.weather-glance{grid-template-columns:1fr 1fr}.station-current{width:100%;text-align:left}.footer-grid{grid-template-columns:1fr 1fr}.radar-frame{aspect-ratio:4/5}.info-band{align-items:flex-start;flex-direction:column}.forecast-tabs{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}.home-forecast-mini>div{min-height:105px}.site-footer{padding:30px 14px}.page-shell{padding-top:14px}}
@media(max-width:460px){.home-quick-grid,.footer-grid{grid-template-columns:1fr}.site-header .main-nav.open{grid-template-columns:1fr}.weather-glance{grid-template-columns:1fr 1fr}.home-forecast-mini{grid-template-columns:repeat(3,1fr)}.station-card-current{align-items:flex-start;flex-direction:column}}

/* Meteo Agramunt 2.3.2 — hotfix */
.live-data-section{position:relative}.weather-dashboard{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.65fr);gap:16px}.chart-panel{overflow:hidden;background:linear-gradient(180deg,#fff 0%,#fffaf2 100%)}.chart-panel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:8px}.chart-panel-head>div{display:grid}.chart-panel-head small,.metric-tile small,.mini-chart>small{color:var(--muted);font-weight:800;letter-spacing:.02em}.chart-panel-head b{font-size:36px;line-height:1}.trend-pill{padding:7px 10px;border-radius:999px;background:#171717;color:#fff;font-size:12px;font-weight:800}.chart-svg{display:block;width:100%;height:auto;overflow:visible}.chart-grid-line{stroke:#dedede;stroke-width:1;stroke-dasharray:4 6}.chart-range{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.metrics-panel{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-content:start}.metric-tile{display:grid;gap:5px;padding:16px;border:1px solid var(--line);border-radius:16px;background:#fff}.metric-tile b{font-size:24px}.mini-chart{grid-column:1/-1;padding:17px;border-radius:16px;background:#fff8eb;border:1px solid #f2e4bd}.mini-chart .chart-svg{margin-top:7px}
.live-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;min-height:300px;padding:42px;border-radius:30px;background:radial-gradient(circle at 80% 20%,rgba(237,170,8,.28),transparent 34%),linear-gradient(135deg,#181818,#303030);color:#fff;box-shadow:var(--shadow)}.live-hero h1{max-width:750px;font-size:clamp(44px,6vw,76px);line-height:.95;margin:10px 0}.live-hero p{max-width:700px;color:#ddd;font-size:18px}.live-hero .eyebrow{color:var(--brand)}.live-status{display:grid;justify-items:end;gap:4px;min-width:190px;padding:18px;border:1px solid rgba(255,255,255,.14);border-radius:18px;background:rgba(255,255,255,.08);backdrop-filter:blur(8px)}.live-status small{color:#c9c9c9}.camera-stage{max-width:1120px;margin:auto}.camera-feature{overflow:hidden;border:1px solid var(--line);border-radius:26px;background:#fff;box-shadow:var(--shadow)}.camera-frame{position:relative;aspect-ratio:16/9;background:#111}.camera-frame img{display:block;width:100%;height:100%;object-fit:cover}.camera-frame .camera-placeholder{height:100%;border-radius:0;background:#191919;color:#ddd}.camera-overlay{position:absolute;left:16px;right:16px;bottom:16px;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:rgba(0,0,0,.58);color:#fff;backdrop-filter:blur(10px)}.camera-meta{display:flex;align-items:center;gap:20px;padding:20px 22px}.camera-meta>div:first-child{flex:1}.camera-meta h3{margin:0 0 4px}.camera-meta p{margin:0;color:var(--muted)}.camera-time{display:grid;text-align:right}.camera-time small{color:var(--muted)}.camera-admin-card{padding:14px 0;border-bottom:1px solid var(--line)}.camera-admin-card img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:14px;margin:10px 0}.danger-text{color:var(--danger)}
.external-consent{height:100%;display:grid;place-items:center;align-content:center;text-align:center;gap:10px;padding:30px;background:radial-gradient(circle at 50% 25%,rgba(237,170,8,.18),transparent 35%),#f6f6f6}.external-consent>span{font-size:42px}.external-consent h3,.external-consent p{margin:0}.external-consent p{max-width:560px;color:var(--muted)}.external-consent a{font-size:13px;text-decoration:underline;color:var(--muted)}
.form-grid.three{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.weather-dashboard{grid-template-columns:1fr}.live-hero{align-items:flex-start;flex-direction:column}.live-status{justify-items:start}.camera-meta{align-items:flex-start;flex-direction:column}.camera-time{text-align:left}.form-grid.three{grid-template-columns:1fr}}
@media(max-width:600px){.metrics-panel{grid-template-columns:1fr}.mini-chart{grid-column:auto}.live-hero{min-height:0;padding:28px 22px}.camera-overlay{align-items:flex-start;flex-direction:column}.weather-dashboard .panel{padding:16px}}

/* Meteo Agramunt 2.3 — avisos, integracions i càmera */
.flash.warning{background:rgba(237,170,8,.13);color:#8a5a00;border-color:rgba(237,170,8,.3)}
.alerts-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;background:radial-gradient(circle at 85% 15%,rgba(240,59,27,.16),transparent 32%),linear-gradient(135deg,#fff,#fff8ea)}
.alerts-hero>div{max-width:850px}.alerts-map{height:560px;border-radius:22px;overflow:hidden;border:1px solid var(--line);background:#e9edf0;box-shadow:var(--shadow)}
.report-types{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.report-type input{position:absolute;opacity:0;pointer-events:none}.report-type span{display:block;padding:11px 13px;border:1px solid var(--line);border-radius:13px;background:#fff;font-weight:800;cursor:pointer}.report-type input:checked+span{border-color:var(--brand-2);box-shadow:0 0 0 2px rgba(240,59,27,.13);background:#fff8eb}
.live-camera-only{max-width:1180px;margin-left:auto;margin-right:auto;padding-top:24px}.camera-feature-clean{border-radius:28px}.camera-image-full{width:100%;background:#111;display:grid;place-items:center;overflow:hidden}.camera-image-full img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}.camera-image-full .camera-placeholder{width:100%;min-height:420px;border-radius:0;background:#171717;color:#ddd}.camera-live-meta{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 28px}.camera-live-heading{display:grid;gap:7px}.camera-live-heading h1{margin:0;font-size:clamp(26px,3vw,40px)}.status-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.camera-location{color:var(--muted);font-weight:800}.camera-update{display:grid;text-align:right;gap:3px}.camera-update small{color:var(--muted)}.camera-update b{font-size:18px}
.quota-grid{display:grid;gap:10px}.quota-card{display:grid;grid-template-columns:1fr auto;gap:4px 14px;padding:14px;border:1px solid var(--line);border-radius:15px;background:#fff}.quota-card strong{font-size:22px}.quota-card small,.quota-card progress{grid-column:1/-1}.quota-card progress{width:100%;height:9px}
.history-status{display:grid;gap:4px;margin:12px 0 18px;padding:14px;border:1px solid #f0d894;background:#fff9e9;border-radius:14px}.history-status span{font-weight:800}.history-status small{color:var(--muted)}
@media(max-width:900px){.alerts-map{height:500px}.camera-live-meta{align-items:flex-start;flex-direction:column}.camera-update{text-align:left}.alerts-hero{align-items:flex-start;flex-direction:column}}
@media(max-width:600px){.alerts-map{height:440px;border-radius:16px}.report-types{grid-template-columns:1fr}.camera-live-meta{padding:18px}.camera-image-full .camera-placeholder{min-height:280px}}

/* Meteo Agramunt 2.3 — ordre visual, comunitat i mapes */
.home-source-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px}.home-source-line a{font-size:12px;font-weight:800;text-decoration:underline;color:#7a350e}.chart-help{margin:8px 0 0!important;padding:9px 11px;border-radius:11px;background:#fff7e4;color:var(--muted);font-size:13px}.mini-chart.full{margin-top:2px}.report-location-box{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px;border-radius:16px;border:1px solid #f0dfb0;background:linear-gradient(135deg,#fffaf0,#fff)}.report-location-box p{margin:3px 0 0;color:var(--muted);font-size:13px}.report-location-box .btn{flex:0 0 auto}.station-map-panel{padding:20px}.stations-map{height:520px}.station-card.map-selected{outline:3px solid rgba(237,170,8,.45);box-shadow:0 15px 35px rgba(237,170,8,.18)}
.community-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.community-hero>div{max-width:800px}.community-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,.55fr);gap:18px}.community-main{min-height:590px;display:flex;flex-direction:column}.community-feed{display:grid;gap:8px;max-height:610px;overflow:auto;padding:4px 4px 14px}.community-message{display:grid;grid-template-columns:42px 1fr;gap:11px;padding:13px;border-radius:16px;border:1px solid var(--line);background:#fff}.community-message.pinned{border-color:#e7c65a;background:#fffbec}.community-avatar{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;font-weight:900}.community-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.community-meta b{color:var(--text);font-size:14px}.community-message p{margin:4px 0 0!important;white-space:pre-wrap;overflow-wrap:anywhere}.community-actions{display:flex;gap:9px;margin-top:6px}.community-actions button{padding:0;border:0;background:none;color:var(--muted);font-size:12px;cursor:pointer;text-decoration:underline}.community-compose{margin-top:auto;padding-top:15px;border-top:1px solid var(--line)}.community-compose textarea{min-height:90px}.community-compose-row,.community-compose-actions{display:flex;justify-content:space-between;align-items:center;gap:10px}.community-compose-row input{max-width:310px}.community-compose-actions small{color:var(--muted)}.community-login{margin-top:auto;padding:18px;border-radius:16px;background:#fff7e7;border:1px solid #f0dfb0}.community-side{display:grid;align-content:start;gap:18px}.clean-list{padding-left:20px;margin:10px 0 0}.clean-list li{margin:8px 0;color:#484d56}
.map-popup{display:grid;gap:5px;min-width:190px}.map-popup b{font-size:15px}.map-popup span,.map-popup small{color:#555}.map-popup a{margin-top:5px;color:#a33b19;font-weight:800}.form-grid label small{font-weight:500;color:var(--muted)}
@media(max-width:900px){.community-layout{grid-template-columns:1fr}.community-hero{align-items:flex-start;flex-direction:column}.community-main{min-height:500px}.stations-map{height:460px}}
@media(max-width:600px){.report-location-box{align-items:stretch;flex-direction:column}.community-compose-row,.community-compose-actions{align-items:stretch;flex-direction:column}.community-compose-row input{max-width:none}.community-compose-actions .btn{width:100%}.stations-map{height:400px}.community-message{grid-template-columns:34px 1fr}.community-avatar{width:34px;height:34px}}

/* Meteo Agramunt 2.3 — formulari de reports */
.report-form{gap:18px}.report-form .report-types{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.report-form .report-type span{display:flex;align-items:center;justify-content:center;min-height:64px;padding:12px 14px;text-align:center;border-radius:15px;transition:.15s ease}.report-form .report-type span:hover{transform:translateY(-1px);border-color:#d9b54a}.report-form .report-location-box{box-shadow:inset 0 0 0 1px rgba(255,255,255,.65)}.report-form input,.report-form select,.report-form textarea{background:#fff}.report-form textarea{min-height:125px}.report-form>.btn{justify-self:start;min-width:190px}.report-form .source-note{margin:-5px 0 0;padding:10px 12px;border-left:3px solid var(--brand);background:#fffaf0;border-radius:0 10px 10px 0}
@media(max-width:600px){.report-form .report-types{grid-template-columns:1fr 1fr}.report-form>.btn{width:100%}}

/* Meteo Agramunt 2.3.2 — hotfix Home i APIs */
.integration-stack{display:grid;gap:18px}.integration-card{padding:26px}.integration-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.9fr);gap:28px;align-items:start}.integration-form{margin:0}.integration-status{display:grid;gap:14px;padding:18px;border-radius:18px;background:#fafafa;border:1px solid var(--line)}.integration-status h3{margin:0}.integration-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px}.integration-metrics>div{padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}.integration-metrics small,.integration-metrics b{display:block}.integration-metrics b{font-size:27px;margin-top:4px}.integration-metrics .metric-age{font-size:18px}.api-flow{display:grid;grid-template-columns:32px 1fr;gap:10px 12px;padding:14px;border:1px solid #dce6f0;border-radius:16px;background:#f8fbfe}.api-flow>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#17202a;color:#fff;font-weight:900}.api-flow div{display:grid;gap:2px}.api-flow small{color:var(--muted)}.aemet-card{border-top:4px solid #1f6eaa}.callout.subtle{padding:13px 14px;border:1px solid #e6e6e6;border-radius:14px;background:#fff}.callout.subtle p{margin:4px 0 0;color:var(--muted)}
@media(max-width:900px){.integration-layout{grid-template-columns:1fr}}
@media(max-width:600px){.integration-card{padding:20px}.integration-metrics{grid-template-columns:1fr}}

/* Meteo Agramunt 2.3.2 — poliment visual global */
body{line-height:1.62}
.page-shell{padding-top:28px;padding-bottom:68px}
.section{margin-top:30px}
.grid{gap:22px}
.panel{padding:28px}
.card{padding:21px}
.panel,.card,.hero,.station-hero,.forecast-main-hero,.air-hero{overflow-wrap:anywhere}
.panel>h2:first-child,.panel>h3:first-child,.card>h2:first-child,.card>h3:first-child{line-height:1.18}
.panel p,.card p,.hero p{line-height:1.65}
.panel p+p,.card p+p{margin-top:12px}
.section-head{gap:24px;margin-bottom:22px;align-items:center}
.section-head>div:first-child{min-width:0}
.section-head h2{line-height:1.15}
.section-head p{max-width:760px;margin-top:8px;color:var(--muted);line-height:1.6}
.toolbar,.sync-grid,.status-row,.legend{gap:12px}
.btn{min-height:44px;padding:10px 16px;line-height:1.2;white-space:normal;text-align:center;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.btn:hover{box-shadow:0 8px 18px rgba(15,23,42,.08)}
.toolbar>.btn,.sync-grid>.btn{margin:0}
.form-grid{gap:19px}
.form-grid.two,.form-grid.three{column-gap:20px;row-gap:19px}
.form-grid label{gap:8px;line-height:1.35}
.form-grid label>small{line-height:1.45}
input,select,textarea{min-height:44px;padding:11px 13px;line-height:1.4}
textarea{min-height:116px}
.form-grid .check{display:flex;align-items:flex-start;gap:10px;line-height:1.45}
.form-grid .check input{min-height:0;margin-top:3px;flex:0 0 auto}
.provider-box,.history-status,.integration-status,.quota-card,.empty,.callout{line-height:1.55}
.provider-box{padding:18px}
.flash{line-height:1.5}
.table-wrap{margin-top:14px}
table th,table td{padding:13px 14px;vertical-align:middle}




.detail-list{margin-top:12px}
.detail-list>div{padding:14px 0;align-items:flex-start}
.detail-list span{padding-right:16px}
.range-switch,.metric-switch{gap:10px}
.range-switch button,.metric-switch button,.map-layers button,.map-time button{min-height:42px;padding:9px 15px;line-height:1.2}
.metric-switch{margin-bottom:20px}
.station-hero{gap:34px;padding:38px}
.station-hero>div:first-child{min-width:0}
.station-hero h1{margin:10px 0 14px;line-height:.98}
.station-hero p{max-width:760px;line-height:1.6}
.station-current{min-width:270px;padding:25px}
.station-current strong{display:block;margin:6px 0 2px;line-height:1}
.station-metric-grid{grid-template-columns:repeat(auto-fit,minmax(205px,1fr))}
.station-metric{min-height:112px;justify-content:center;gap:8px}
.station-metric b{font-size:29px}
.station-metric small{font-weight:750;color:#636873}
.station-source-note{display:flex;align-items:flex-start;gap:12px;margin-top:14px;padding:14px 17px;border:1px solid #efe0bd;border-radius:15px;background:#fffaf0;color:#585d66;line-height:1.5}
.station-source-note b{flex:0 0 auto;color:#7a3b13}
.interactive-chart{margin-top:4px}
.integration-card{padding:29px}
.integration-layout{gap:32px}
.integration-form .btn{margin-top:2px}
.integration-status{padding:20px;gap:16px}
.report-form{gap:21px}
.report-form .report-location-box{margin-top:2px}
.community-message{padding:15px;gap:13px}
.community-message p{line-height:1.55}

@media(max-width:900px){
  .panel{padding:23px}.card{padding:19px}.station-hero{padding:30px;gap:24px}.station-current{min-width:230px}.section-head{align-items:flex-start}
}
@media(max-width:760px){
  .page-shell{padding:20px 14px 52px}.section{margin-top:24px}.grid{gap:16px}.section-head{flex-direction:column;align-items:stretch;gap:15px}.section-head .toolbar,.section-head .range-switch{width:100%}.station-hero{grid-template-columns:1fr;padding:25px}.station-current{width:100%;min-width:0;text-align:left}.station-current strong{font-size:43px}.station-source-note{flex-direction:column;gap:5px}.toolbar,.sync-grid{align-items:stretch}.toolbar>.btn,.sync-grid>.btn{flex:1 1 170px}.form-grid.two,.form-grid.three{grid-template-columns:1fr}.integration-card{padding:22px}
}
@media(max-width:520px){
  .panel,.card{padding:18px}.hero{padding:24px 20px}.station-metric-grid{grid-template-columns:1fr 1fr;gap:12px}.station-metric{min-height:98px;padding:16px}.station-metric b{font-size:24px}.range-switch,.metric-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.range-switch button,.metric-switch button{width:100%}.toolbar>.btn,.sync-grid>.btn{flex:1 1 100%}
}
.toolbar>form,.sync-grid>form{margin:0;display:flex}
.toolbar>form>.btn,.sync-grid>form>.btn{width:100%;height:100%}
.section-head>.toolbar>form{flex:0 1 auto}
@media(max-width:760px){.toolbar>form,.sync-grid>form{flex:1 1 170px}.section-head>.toolbar>form{flex:1 1 150px}}
@media(max-width:520px){.toolbar>form,.sync-grid>form{flex:1 1 100%}}

/* Production accessibility hotfixes */
a:focus-visible,button:focus-visible,.btn:focus-visible,[tabindex]:focus-visible{outline:3px solid rgba(237,170,8,.72);outline-offset:3px}
button:disabled,.btn[aria-disabled="true"]{cursor:not-allowed;opacity:.58;transform:none!important;box-shadow:none!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.btn{transition:none!important}.btn:hover{transform:none!important}}

/* Meteo Agramunt 2.4 — blog, SEO editorial, credencials i notificacions */
.home-seo-guide{padding:30px;border:1px solid #eadfca;border-radius:24px;background:linear-gradient(135deg,#fff,#fff9ef);box-shadow:0 10px 30px rgba(15,23,42,.04)}
.home-seo-copy{max-width:980px}.home-seo-copy h2{margin:7px 0 12px;font-size:clamp(28px,4vw,44px);line-height:1.08}.home-seo-copy p{margin:0;color:#4b5059;font-size:16px;line-height:1.75}.home-seo-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.home-seo-links a{display:inline-flex;align-items:center;min-height:42px;padding:9px 13px;border-radius:999px;border:1px solid #eadfca;background:#fff;font-weight:800}.home-seo-links a:hover{border-color:var(--brand);background:#fffaf0}
.article-card{position:relative;padding:23px;display:flex;flex-direction:column;gap:9px;min-height:100%;overflow:hidden;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.article-card:hover{transform:translateY(-2px);border-color:rgba(237,170,8,.42);box-shadow:0 16px 34px rgba(15,23,42,.10)}
.article-card-thumb{width:calc(100% + 46px);max-width:none;height:205px;object-fit:cover;margin:-23px -23px 10px;border-radius:20px 20px 0 0;background:#f1f2f4}
.article-card h2,.article-card h3{margin:2px 0 0;line-height:1.18;letter-spacing:-.015em}.article-card p{margin:0;color:#4f545d;line-height:1.62}.article-more{margin-top:auto;padding-top:8px;color:#7b5100;font-weight:850;font-size:13px}
.blog-hero{display:grid;gap:14px}.blog-hero h1{max-width:900px}.blog-index-section{margin-top:34px}.blog-index-head{margin-bottom:20px}.blog-article-grid{align-items:stretch}.blog-index-card h2{font-size:clamp(20px,2vw,25px)}
.blog-article{max-width:960px;margin-inline:auto}.article-hero{padding:clamp(26px,4vw,40px)}.article-hero h1{max-width:880px}.article-featured{margin:24px 0 0}.article-featured img{width:100%;max-height:620px;object-fit:cover;border-radius:24px;box-shadow:var(--shadow)}.article-reading-section{margin-top:26px}.article-prose{min-width:0;padding:clamp(22px,4vw,42px);font-size:17px;line-height:1.82}.article-prose>p:first-child{font-size:18px}.article-prose h2{margin:38px 0 14px;font-size:clamp(25px,3vw,32px);line-height:1.2}.article-prose h3{margin:29px 0 12px;line-height:1.25}.article-prose p{margin:0 0 19px}.article-prose ul,.article-prose ol{margin:0 0 21px;padding-left:1.45em}.article-prose img{max-width:100%;height:auto;border-radius:18px;margin:22px auto 7px}.article-prose figure{margin:28px 0}.article-prose figcaption{margin-top:8px;color:var(--muted);font-size:13px;text-align:center}.article-prose blockquote{margin:26px 0;padding:17px 21px;border-left:4px solid var(--brand);background:#fff9ed;border-radius:0 14px 14px 0}.article-prose pre{overflow:auto;padding:16px;border-radius:14px;background:#231F20;color:#f7f7f7}.article-prose table{display:block;width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:26px 0;border:1px solid var(--line);border-radius:14px;background:#fff}.article-prose table thead{background:#faf7ef}.article-prose table th,.article-prose table td{min-width:130px;white-space:normal;vertical-align:top;line-height:1.5}.article-prose table th{font-weight:850}
.article-comments{max-width:960px;margin:34px auto 0}.article-comments-panel{display:grid;gap:22px;padding:clamp(20px,3vw,30px)}.article-comment-feed{max-height:none}.article-comment-form{padding-top:20px;border-top:1px solid var(--line)}.article-comment-submit{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.article-comments-login{margin-top:2px}.community-message{background:#fff}.admin-community-context{display:inline-block;margin-bottom:4px;color:#8a5a00;font-weight:800}
.article-admin-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;align-items:start}.article-editor-panel,.article-list-panel{min-width:0;overflow:visible}.article-editor-panel{padding:clamp(22px,2.6vw,32px)}.article-editor-heading{margin-bottom:24px}.article-editor-heading p{max-width:680px}.article-editor-form{gap:24px}.editor-section{display:grid;gap:18px;padding:21px;border:1px solid var(--line);border-radius:18px;background:#fafbfc}.editor-section-title{display:flex;align-items:flex-start;gap:12px}.editor-section-title>span{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:11px;background:#fff1c7;color:#8a5a00;font-size:12px;font-weight:900}.editor-section-title h3{margin:0;font-size:18px}.editor-section-title p{margin:3px 0 0;color:var(--muted);font-size:13px}.rich-editor-wrap{border:1px solid #d9dce3;border-radius:16px;overflow:hidden;background:#fff;box-shadow:inset 0 1px 0 rgba(15,23,42,.02)}.rich-toolbar{display:flex;flex-wrap:wrap;gap:7px;padding:10px 11px;border-bottom:1px solid var(--line);background:#f7f8fa}.rich-toolbar button,.rich-toolbar select{width:auto;min-height:39px;padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;font-weight:750;cursor:pointer}.rich-editor{min-height:500px;padding:25px;outline:none;font-size:16px;line-height:1.78}.rich-editor:focus{box-shadow:inset 0 0 0 2px rgba(237,170,8,.35)}.rich-editor img{max-width:100%;height:auto;border-radius:14px}.editor-foot{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 12px;border-top:1px solid var(--line);background:#fafafa;color:var(--muted);font-size:12px}.editor-media-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(240px,.8fr);gap:18px;align-items:start}.featured-box{display:grid;gap:10px}.featured-preview{display:grid;gap:10px}.featured-preview img{max-height:270px;width:100%;object-fit:cover;border-radius:14px;border:1px solid var(--line)}.publish-box{display:grid;gap:14px;align-content:start;padding:20px;border:1px solid #eadfca;border-radius:16px;background:linear-gradient(145deg,#fffaf0,#fff)}.publish-box p{margin:0}.seo-editor-box{gap:15px;padding:21px;background:#fff}.seo-editor-box .section-head{align-items:center;margin-bottom:0}.seo-score{width:auto;min-width:104px;height:50px;padding:0 14px;border:2px solid #ddd;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:18px;font-weight:900;line-height:1;white-space:nowrap;background:#fff}.seo-score::after{content:" SEO";font-size:11px;letter-spacing:.06em;font-weight:900;opacity:.72}.seo-score.good{border-color:var(--success);color:var(--success)}.seo-score.ok{border-color:var(--brand);color:#8a5a00}.seo-score.bad{border-color:var(--danger);color:var(--danger)}.seo-check-list{display:grid;gap:8px;margin:2px 0 0;padding:0;list-style:none}.seo-check-list li{padding:10px 11px;border-radius:10px;font-size:13px;line-height:1.4}.seo-ok{background:rgba(20,125,93,.09);color:#0c684b}.seo-warn{background:rgba(237,170,8,.12);color:#7a5200}.article-editor-savebar{position:sticky;bottom:12px;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 15px;border:1px solid rgba(15,23,42,.09);border-radius:16px;background:rgba(255,255,255,.94);box-shadow:0 12px 30px rgba(15,23,42,.10);backdrop-filter:blur(14px)}.article-editor-savebar>div{display:grid;gap:2px}.article-editor-savebar small{color:var(--muted)}.article-list-panel{position:sticky;top:132px;padding:22px}.article-list-panel .section-head{margin-bottom:8px}.admin-article-list{display:grid}.admin-article-row{display:grid;grid-template-columns:minmax(0,1fr);gap:11px;align-items:start;padding:15px 0;border-bottom:1px solid var(--line)}.admin-article-row.has-thumb{grid-template-columns:86px minmax(0,1fr)}.admin-article-thumb{width:86px;height:66px;object-fit:cover;border-radius:12px;border:1px solid var(--line);background:#f1f2f4}.admin-article-copy{min-width:0;display:grid;gap:5px}.admin-article-copy>b,.admin-article-copy>small{overflow-wrap:anywhere}.admin-article-copy>small{color:var(--muted)}.admin-article-row:last-child{border-bottom:0}.admin-article-actions{margin-top:5px;gap:6px}.admin-article-actions .btn{min-height:36px;padding:7px 9px;font-size:12px}
@media(max-width:1050px){.article-admin-layout{grid-template-columns:1fr}.article-list-panel{position:static}.blog-article-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.blog-article-grid{grid-template-columns:1fr!important}.article-card{padding:19px}.article-card-thumb{width:calc(100% + 38px);height:190px;margin:-19px -19px 8px}.article-prose{padding:22px 19px;font-size:16px}.article-comments{margin-top:28px}.editor-section{padding:17px}.editor-media-grid{grid-template-columns:1fr}.rich-editor{min-height:390px;padding:18px}.rich-toolbar{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}.rich-toolbar>*{flex:0 0 auto}.article-editor-savebar{bottom:8px;align-items:stretch}.article-editor-savebar>div{display:none}.article-editor-savebar .btn{width:100%}.article-list-panel{padding:19px}}
@media(max-width:520px){.article-admin-layout{gap:18px}.article-editor-panel{padding:17px}.editor-section{padding:15px}.seo-editor-box{padding:16px}.article-comments-panel{padding:18px}.article-comment-submit{align-items:stretch;flex-direction:column}.article-comment-submit .btn{width:100%}.admin-article-row.has-thumb{grid-template-columns:74px minmax(0,1fr)}.admin-article-thumb{width:74px;height:58px}}
.credential-ok{padding:12px 14px;border:1px solid rgba(20,125,93,.24);border-radius:13px;background:rgba(20,125,93,.08);color:#0e684e}.push-manager{display:grid;gap:12px}.push-manager-compact{padding:16px;border:1px solid var(--line);border-radius:16px;background:#fff}.push-state-box{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:14px 16px;border-radius:15px;border:1px solid var(--line);background:#fafafa}.push-indicator{display:inline-flex;align-items:center;gap:7px;font-weight:800}.push-indicator:before{content:"";width:10px;height:10px;border-radius:50%;background:#a5a7ad}.push-indicator.success:before{background:var(--success)}.push-indicator.warning:before{background:var(--brand)}.push-indicator.danger:before{background:var(--danger)}.push-denied-help{padding:14px;border:1px solid rgba(224,75,53,.22);border-radius:14px;background:rgba(224,75,53,.07);color:#722c24}.push-status.denied,.push-status.error{color:var(--danger)}.push-status.granted{color:var(--success)}
.push-global-banner{position:fixed;left:50%;bottom:18px;z-index:1300;transform:translateX(-50%);width:min(760px,calc(100% - 28px));padding:16px 18px;border:1px solid #e8d6ad;border-radius:18px;background:rgba(255,255,255,.97);box-shadow:0 18px 55px rgba(15,23,42,.18);backdrop-filter:blur(14px);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 18px;align-items:center}.push-global-banner[hidden]{display:none!important}.push-global-banner>div:first-child{display:grid;gap:3px}.push-global-banner [data-push-status]{color:var(--muted);font-size:14px}.push-global-banner .push-denied-help{grid-column:1/-1}.push-global-banner .toolbar{justify-content:flex-end}
@media(max-width:680px){.push-global-banner{bottom:10px;grid-template-columns:1fr;padding:15px}.push-global-banner .toolbar{justify-content:stretch}.push-global-banner .toolbar .btn{flex:1 1 140px}}

/* ==========================================================
   Meteo Agramunt 2.5 — Production UI system
   Final responsive/accessibility layer. Deliberately placed last
   so legacy component rules cannot collapse spacing or controls.
   ========================================================== */
:root{
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:20px;
  --space-6:24px;
  --space-7:32px;
  --space-8:40px;
  --control-h:46px;
  --content-max:1320px;
}
html{scroll-padding-top:116px}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-wrap:break-word}
button,input,select,textarea{letter-spacing:normal;word-spacing:normal}
p,li,small,label{overflow-wrap:anywhere}
.page-shell{width:min(100%,var(--content-max));padding:clamp(16px,2vw,28px) clamp(14px,2.2vw,24px) 68px}
.section{margin-top:clamp(24px,3vw,36px)}
.hero{padding:clamp(24px,4vw,42px)}
.hero-compact{padding:clamp(22px,3vw,32px)}
.hero h1{max-width:1040px;margin:10px 0 14px;letter-spacing:-.035em}
.hero p{font-size:clamp(15px,1.35vw,17px);line-height:1.7}
h1,h2,h3,h4{overflow-wrap:anywhere;text-wrap:balance}
h2{line-height:1.16}
h3{line-height:1.22}
p{line-height:1.68}
.panel,.card{min-width:0}
.panel{padding:clamp(20px,2.4vw,30px)}
.card{padding:clamp(18px,2vw,24px)}
.panel>h2:first-child,.panel>h3:first-child,.card>h2:first-child,.card>h3:first-child{margin-top:0}
.panel>p:last-child,.card>p:last-child{margin-bottom:0}
.section-head{margin-bottom:20px;gap:18px}
.section-head>div{min-width:0}
.section-head h2,.section-head h3{margin:0 0 7px}
.section-head p{margin:0;line-height:1.62}
.toolbar,.sync-grid{gap:10px 12px}
.btn{min-height:var(--control-h);padding:10px 16px;line-height:1.2;white-space:normal;text-align:center;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease,background-color .14s ease}
.btn+.btn{margin-left:0}
.form-grid{gap:18px}
.form-grid.two{gap:18px 20px}
.form-grid.three{gap:18px 20px}
.form-grid>label,.form-grid>fieldset{min-width:0}
label{line-height:1.35}
label>small{display:block;margin-top:2px;color:var(--muted);font-weight:500;line-height:1.45}
input,select,textarea{min-height:var(--control-h);padding:11px 14px;line-height:1.35}
textarea{min-height:126px;line-height:1.55}
.check{min-height:var(--control-h);padding:8px 0;line-height:1.45}
.check input{min-height:0}
.flash{margin:18px 0 0;line-height:1.55}
.source-note,.muted{line-height:1.55}
.empty{line-height:1.6}
.table-wrap{max-width:100%;-webkit-overflow-scrolling:touch}
th,td{vertical-align:top}
code{max-width:100%;white-space:normal;overflow-wrap:anywhere}

/* Header + persistent admin navigation */
.site-header{isolation:isolate}
.header-inner{width:min(100%,var(--content-max));min-height:66px;padding:10px clamp(14px,2vw,22px)}
.brand{min-width:max-content}
.brand-copy{min-width:0}
.site-header .main-nav{row-gap:4px}
.admin-subnav{position:sticky;top:67px;z-index:880;margin:-2px 0 26px;padding:8px;border:1px solid rgba(15,23,42,.08);border-radius:16px;background:rgba(255,255,255,.96);box-shadow:0 10px 30px rgba(15,23,42,.08);backdrop-filter:blur(16px)}
.admin-subnav-inner{display:flex;align-items:center;gap:5px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;padding:2px}
.admin-subnav a{flex:0 0 auto;min-height:38px;display:inline-flex;align-items:center;padding:8px 11px;border-radius:10px;color:#4e535d;font-size:13px;font-weight:800;white-space:nowrap}
.admin-subnav a:hover{background:#f7f7f8;color:#111}
.admin-subnav a.active{background:#171717;color:#fff}

/* Alerts: scope first, report gate and event cards */
.alert-scope-panel{padding:0;border:0;background:transparent;box-shadow:none}
.alert-scope-form{display:grid;grid-template-columns:minmax(250px,1fr) minmax(180px,240px) minmax(140px,190px);align-items:end;gap:16px;padding:18px 20px;border:1px solid #eadfca;border-radius:20px;background:linear-gradient(135deg,#fff,#fff9ef);box-shadow:0 8px 24px rgba(15,23,42,.05)}
.alert-scope-form>div{display:grid;gap:4px;align-self:center}
.alert-scope-form>div strong{font-size:18px}
.alert-scope-form label{gap:7px}
.event-card{min-height:150px;padding:22px;gap:16px}
.event-card>div:nth-child(2){min-width:0}
.event-card h3{margin:0 0 7px}
.event-card p{margin:0 0 8px}
.event-card>.badge{align-self:start}
.report-login-gate{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;padding:20px;border:1px solid #eadfca;border-radius:18px;background:linear-gradient(135deg,#fffaf0,#fff)}
.report-login-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:16px;background:#fff0c8;font-size:25px}
.report-login-gate h3{margin:0 0 6px}
.report-login-gate p{margin:0;color:var(--muted)}
.report-location-box{gap:18px;padding:17px}
.report-location-box>div{min-width:0}
.report-location-box p{margin:4px 0 0}
.report-types{gap:11px}
.report-type span{min-height:76px;padding:12px 10px;line-height:1.35}
.community-presence{display:inline-flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid rgba(20,125,93,.18);border-radius:999px;background:rgba(20,125,93,.08);color:var(--success);font-size:13px;font-weight:850;line-height:1}
.community-presence::before{content:"";width:9px;height:9px;border-radius:50%;background:currentColor;box-shadow:0 0 0 5px rgba(20,125,93,.10)}

/* Community / authenticated chat gate */
.community-layout{gap:22px}
.community-main{min-width:0}
.community-compose{display:grid;gap:12px}
.chat-gate{position:relative;min-height:430px;display:grid;place-items:center;overflow:hidden;border:1px solid var(--line);border-radius:20px;background:#fafafa}
.chat-preview{position:absolute;inset:0;padding:26px;display:grid;align-content:start;gap:13px;filter:blur(5px);opacity:.45;transform:scale(1.025);user-select:none;pointer-events:none}
.chat-preview-row{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;padding:15px;border:1px solid var(--line);border-radius:16px;background:#fff}
.chat-preview-row>span{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--brand),var(--brand-2))}
.chat-preview-row b{display:block;margin-bottom:4px}
.chat-preview-row p{margin:0}
.chat-gate-card{position:relative;z-index:2;width:min(520px,calc(100% - 32px));padding:28px;border:1px solid rgba(15,23,42,.09);border-radius:22px;background:rgba(255,255,255,.96);box-shadow:0 22px 60px rgba(15,23,42,.14);text-align:center;backdrop-filter:blur(14px)}
.chat-gate-icon{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 14px;border-radius:18px;background:#fff1c9;font-size:28px}
.chat-gate-card h3{margin:0 0 8px;font-size:23px}
.chat-gate-card p{margin:0 auto 18px;color:var(--muted);max-width:430px}
.chat-gate-card .toolbar{justify-content:center}

/* Station network CTA and cards */
.station-network-cta{display:grid;grid-template-columns:auto minmax(0,1.35fr) minmax(260px,.75fr);gap:20px;align-items:center;padding:26px 28px;border:1px solid #eadfca;border-radius:24px;background:radial-gradient(circle at 85% 20%,rgba(240,59,27,.09),transparent 35%),linear-gradient(135deg,#fff,#fff8ea);box-shadow:0 12px 32px rgba(15,23,42,.06)}
.station-network-icon{width:66px;height:66px;display:grid;place-items:center;border-radius:20px;background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;font-size:31px;box-shadow:0 12px 24px rgba(240,59,27,.16)}
.station-network-copy{min-width:0}
.station-network-copy h2{margin:3px 0 7px}
.station-network-copy p{margin:0;color:#515660;line-height:1.65}
.station-network-points{display:grid;gap:8px;padding:14px 16px;border:1px solid rgba(237,170,8,.22);border-radius:16px;background:rgba(255,255,255,.82)}
.station-network-points span{display:flex;align-items:flex-start;gap:8px;line-height:1.4;font-size:14px}
.station-network-points span::before{content:"✓";color:var(--success);font-weight:900}
.station-network-action{width:100%;margin-top:12px}
.station-card{display:flex;flex-direction:column;gap:4px;min-height:230px}
.station-card h3{margin:6px 0 2px}
.station-card-current{margin-top:auto}

/* Camera/live */
.camera-feature{gap:22px}
.camera-frame{overflow:hidden;border-radius:20px;background:#151515}
.camera-frame img{width:100%;height:auto;object-fit:cover}
.video-frame{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:20px;background:#111}
.video-frame iframe,.video-frame video{width:100%;height:100%;border:0;display:block;object-fit:contain}
.camera-timelapse-help{display:grid;gap:8px;padding:14px 16px;border:1px solid #eadfca;border-radius:14px;background:#fffaf0;color:#575d66;font-size:14px;line-height:1.55}

/* Home: improve lower SEO block and spacing */
.home-quick-grid{gap:16px}
.quick-card{min-height:92px;padding:18px}
.split-feature{gap:20px}
.home-seo-guide{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.75fr);gap:28px;align-items:start;padding:clamp(24px,3vw,34px)}
.home-seo-copy p+p{margin-top:13px}
.home-seo-copy .text-link{display:inline-flex;margin-top:17px;font-weight:850;color:#a83b1c}
.home-seo-links{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;margin-top:0!important}
.home-seo-links a{display:grid!important;grid-template-columns:34px minmax(0,1fr);align-items:start;gap:10px;min-height:0!important;padding:13px 14px!important;border-radius:15px!important}
.home-seo-links a>span{font-size:22px;line-height:1.2}
.home-seo-links a b,.home-seo-links a small{display:block}
.home-seo-links a small{margin-top:2px;color:var(--muted);font-weight:550;line-height:1.4}

/* Admin cards */


.integration-card{padding:clamp(20px,2.5vw,30px)}
.integration-layout{gap:24px}
.history-status{display:grid;gap:7px;padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:#fafafa}
.history-status>b{margin-bottom:2px}

/* Push state */
.push-state-box{padding:16px 17px}
.push-global-banner{line-height:1.45}
.push-global-banner .toolbar{margin:0}

/* Desktop/tablet/mobile structure */
@media(max-width:1100px){
  .site-header .main-nav a{padding:8px 8px}
  .alert-scope-form{grid-template-columns:1fr 210px 160px}
  .station-network-cta{grid-template-columns:auto 1fr}
  .station-network-points{grid-column:1/-1}
  .home-seo-guide{grid-template-columns:1fr}
  .home-seo-links{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:900px){
  .admin-subnav{top:65px;margin-bottom:22px}
  .report-login-gate{grid-template-columns:auto 1fr}
  .report-login-gate>.toolbar{grid-column:1/-1;justify-content:flex-start}
  .community-layout{grid-template-columns:1fr}
  .article-admin-layout{grid-template-columns:1fr}
}
@media(max-width:760px){
  html{scroll-padding-top:74px}
  .site-header{position:sticky}
  .header-inner{min-height:62px}
  .admin-subnav{top:62px;margin-left:-2px;margin-right:-2px;border-radius:14px}
  .page-shell{padding:15px 13px 54px}
  .section{margin-top:24px}
  .panel,.card{padding:19px}
  .hero,.hero-compact{padding:23px 20px}
  .hero h1{font-size:clamp(31px,10vw,44px)}
  .section-head{flex-direction:column;align-items:stretch;margin-bottom:16px}
  .section-head>.btn,.section-head>.toolbar{width:100%}
  .section-head>.btn{justify-content:center}
  .alert-scope-form{grid-template-columns:1fr 1fr;padding:17px}
  .alert-scope-form>div{grid-column:1/-1}
  .event-card{grid-template-columns:auto minmax(0,1fr);min-height:0;padding:18px}
  .event-card>.badge{grid-column:2;justify-self:start}
  .report-login-gate{grid-template-columns:1fr;text-align:center}
  .report-login-icon{margin:auto}
  .report-login-gate>.toolbar{grid-column:auto;justify-content:center}
  .station-network-cta{grid-template-columns:1fr;padding:22px;text-align:left}
  .station-network-points{grid-column:auto}
  .home-seo-links{grid-template-columns:1fr!important}
  .article-prose{font-size:16px}
  .rich-editor{min-height:390px;padding:17px}
  .rich-toolbar{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
  .rich-toolbar>*{flex:0 0 auto}
  .form-grid.two,.form-grid.three{grid-template-columns:1fr}
}
@media(max-width:520px){
  :root{--control-h:45px}
  .page-shell{padding-left:11px;padding-right:11px}
  .panel,.card{padding:17px;border-radius:17px}
  .hero,.hero-compact{padding:21px 17px;border-radius:20px}
  .alert-scope-form{grid-template-columns:1fr;padding:15px}
  .alert-scope-form>div{grid-column:auto}
  .event-card{grid-template-columns:1fr;gap:11px}
  .event-card>.badge{grid-column:auto}
  .event-icon{width:44px;height:44px}
  .toolbar,.sync-grid{display:grid;grid-template-columns:1fr;width:100%}
  .toolbar>*,.sync-grid>*{width:100%!important;max-width:none!important}
  .toolbar>form,.sync-grid>form{display:block;width:100%}
  .chat-gate{min-height:410px}
  .chat-gate-card{padding:22px 18px;width:calc(100% - 22px)}
  .chat-preview{padding:16px}
  .station-network-icon{width:56px;height:56px;border-radius:17px}
  .seo-score{min-width:96px;height:48px;font-size:17px}
  .publish-box,.seo-editor-box{padding:16px}
  .home-seo-guide{padding:20px 17px;border-radius:18px}
  .push-global-banner{width:calc(100% - 18px);bottom:9px;padding:14px;border-radius:16px}
}
@media(max-width:380px){
  .brand-mark{width:29px;height:44px}
  .brand-copy b{font-size:14px}
  .hero h1{font-size:30px}
  .report-types{grid-template-columns:1fr 1fr}
  .report-type span{min-height:70px;font-size:13px}
}
.form-spaced{margin-top:14px}
.toolbar-spaced{margin-top:12px}
.form-submit-spaced{margin-top:14px}
.wide-control{min-width:min(520px,100%)}
.admin-big-number{display:block;font-size:34px;line-height:1.05;margin-top:8px}
.section-head.compact{margin-bottom:6px}
.compact-title{margin:5px 0 0}
.input-unit{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;min-width:0}
.input-unit input{border-radius:14px 0 0 14px}
.input-unit>span{display:flex;align-items:center;padding:0 12px;border:1px solid #d9dce3;border-left:0;border-radius:0 14px 14px 0;background:#f7f7f8;color:#5f6470;font-size:13px;font-weight:800;white-space:nowrap}


/* =========================================================
   Meteo Agramunt 2.8.0 — layout/UX final
   Aquesta capa és deliberadament al final: normalitza espais
   i evita regressions de blocs antics sense reescriure tota
   la fulla d'estils abans del go-live.
   ========================================================= */
:root{--space-1:6px;--space-2:10px;--space-3:14px;--space-4:18px;--space-5:24px;--space-6:32px;--space-7:42px;--control-h:46px}
body{letter-spacing:0;word-spacing:normal}
h1,h2,h3,h4,p{overflow-wrap:anywhere}
h1,h2,h3{letter-spacing:-.018em}
small{line-height:1.45}
.page-shell{padding-top:28px}
.section{margin-top:32px}
.panel,.card{min-width:0}
.panel{padding:clamp(21px,2.5vw,30px)}
.card{padding:clamp(18px,2vw,23px)}
.panel>hr,.card>hr{height:1px;border:0;background:var(--line);margin:24px 0}
.section-head{align-items:flex-start}
.section-head h2,.section-head h3{margin:0}
.section-head p{margin-top:8px}
.form-grid{gap:20px}
.form-grid label{min-width:0}
input,select,textarea{min-width:0}
textarea{line-height:1.55}
.btn{min-height:var(--control-h)}
.text-link{font-weight:800;color:#9b401f;text-decoration:none}
.text-link:hover{text-decoration:underline}
.notification-pill{position:relative;display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:43px;padding-inline:11px!important}
.notification-pill>span{position:absolute;top:-4px;right:-3px;display:grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#d13b2a;color:white;font-size:10px;font-weight:900;border:2px solid #fff}

/* Alert filters and cards */
.alert-scope-panel{margin-top:22px}
.alert-scope-form-extended{grid-template-columns:minmax(240px,1.25fr) minmax(170px,.6fr) minmax(130px,.45fr) minmax(160px,.55fr);gap:16px;align-items:end}
.alert-scope-form-extended>div{display:grid;gap:4px;align-self:center}
.alert-scope-form-extended>div small{color:var(--muted);font-weight:550}
.alert-scope-form-extended label{display:grid;gap:7px;font-weight:800}
.alerts-map{min-height:470px}
.map-event-marker{width:38px;height:38px;display:grid;place-items:center;border-radius:13px;background:rgba(255,255,255,.94);border:2px solid rgba(237,170,8,.8);box-shadow:0 6px 18px rgba(15,23,42,.16);font-size:19px}
.map-event-marker.sev-3,.map-event-marker.sev-4{border-color:rgba(240,59,27,.8)}
.event-card{min-height:154px;gap:15px}
.event-card>div:nth-child(2){min-width:0}
.event-card h3{line-height:1.18}
.event-card p{line-height:1.58}
.report-list-item{display:grid;gap:5px}
.report-list-item p{margin:3px 0!important}
.report-manage-card{display:flex;flex-direction:column;gap:8px}
.report-manage-card .toolbar{margin-top:auto}

/* Live camera */
.live-camera-only{display:grid;gap:28px}
.camera-feature-clean{overflow:hidden}
.camera-image-full{background:#0e1013;min-height:260px;display:grid;place-items:center;border-radius:20px;overflow:hidden}
.camera-image-full img{width:100%;height:auto;max-height:760px;object-fit:contain}
.camera-live-meta{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-top:20px}
.camera-live-heading{min-width:0}
.camera-live-heading h1{margin:10px 0 8px;line-height:1.05}
.camera-live-heading p{margin:0;color:var(--muted)}
.camera-update{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;justify-content:flex-end;padding:12px 15px;border-radius:14px;background:#fafafa;border:1px solid var(--line);white-space:nowrap}
.camera-update small{color:var(--muted)}
.camera-update b{font-size:15px}
.timelapse-panel{margin-top:0}
.timelapse-video{display:block;width:100%;max-height:640px;border-radius:18px;background:#111}
.camera-placeholder{padding:48px 24px;color:#cbd0d8;text-align:center}

/* Internal notifications */
.notification-inbox{display:grid;gap:12px}
.notification-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:start;padding:17px;border:1px solid var(--line);border-radius:17px;background:#fff}
.notification-card.unread{border-color:#eac15a;background:#fffaf0}
.notification-card-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#fff4d7;font-size:20px}
.notification-card p{margin:4px 0;color:#4b5059}
.account-links{display:grid;gap:10px}
.account-action{display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:15px;background:#fafafa}
.account-action>span{font-size:22px}
.account-action small{display:block;color:var(--muted);margin-top:2px}

/* Admin — one fixed navigation only */


/* Forecast day drill-down */
.day-card-clickable{cursor:pointer;position:relative;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
.day-card-clickable:hover,.day-card-clickable:focus-visible{transform:translateY(-2px);border-color:#e1ba52;box-shadow:0 16px 34px rgba(15,23,42,.1);outline:none}
.day-card-clickable[aria-expanded="true"]{border-color:#e0a820;background:#fffaf0}
.day-open-hint{grid-column:1/-1;color:#9b401f;font-size:12px;font-weight:850;margin-top:4px}
.forecast-day-detail{margin-top:18px}
.forecast-day-detail[hidden]{display:none}
.day-detail-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:20px}
.day-detail-metrics>div{display:grid;gap:4px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fafafa}
.day-detail-metrics span{font-size:12px;color:var(--muted);font-weight:700}
.day-detail-metrics b{font-size:19px}
.day-chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.day-chart-grid>div{padding:15px;border:1px solid var(--line);border-radius:16px}
.day-chart-grid h3{margin:0 0 8px}
.day-mini-chart{display:block;width:100%;height:auto}
.day-hour-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:9px;margin-top:18px}
.day-hour-chip{display:grid;gap:3px;padding:12px;border:1px solid var(--line);border-radius:13px;background:#fff}
.day-hour-chip small{color:var(--muted)}

/* Radar */
.radar-grid-balanced{grid-template-columns:minmax(0,1.45fr) minmax(330px,.75fr)}
.storm-monitor{display:flex;flex-direction:column}
.storm-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.storm-metrics>div{display:grid;gap:3px;padding:14px;border:1px solid var(--line);border-radius:15px;background:#fafafa}
.storm-metrics span,.storm-metrics small{color:var(--muted);font-size:12px}
.storm-metrics b{font-size:22px}
.compact-empty{padding:13px;margin-top:14px}
.lightning-map-panel .map{box-shadow:none}

/* Contact */
.contact-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px}
.contact-hero-icon{width:82px;height:82px;display:grid;place-items:center;border-radius:24px;background:linear-gradient(135deg,#fff2c7,#ffe2d8);font-size:36px;border:1px solid #f0dfbd}
.contact-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:22px;align-items:start}
.contact-form-panel{padding:clamp(24px,3vw,34px)}
.contact-side{display:grid;gap:14px}
.contact-info-card{display:grid;grid-template-columns:48px minmax(0,1fr);gap:14px;padding:19px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 8px 22px rgba(15,23,42,.05)}
.contact-info-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:#fff6df;font-size:23px}
.contact-info-card h3{margin:0}
.contact-info-card p{margin:5px 0;color:#525761;line-height:1.55}
.contact-info-card small{color:var(--muted)}
.contact-submit{display:flex;align-items:center;justify-content:space-between;gap:14px}
.contact-submit small{color:var(--muted);max-width:430px}

/* SEO editor: prevent score/text collision */
.seo-editor-box{min-width:0}
.seo-score{box-sizing:border-box;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.seo-check-list{padding:0;margin:0;list-style:none}
.seo-check-list li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:8px;align-items:start}

/* Generic spacing fixes */
.toolbar{row-gap:10px}
.toolbar>form{min-width:0}
.notification-item{display:grid;gap:5px}
.notification-item>.toolbar{margin-top:8px}
.provider-box+*,.history-status+*{margin-top:14px}
.integration-card .form-grid+.toolbar{margin-top:16px}
.report-edit-panel{max-width:840px;margin-inline:auto}

@media(max-width:1100px){
 .alert-scope-form-extended{grid-template-columns:1fr 1fr 1fr}
 .alert-scope-form-extended>div{grid-column:1/-1}
 .day-detail-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
 .radar-grid-balanced{grid-template-columns:1fr}
}
@media(max-width:900px){
 .admin-subnav{top:66px}
 .contact-layout{grid-template-columns:1fr}
 .contact-side{grid-template-columns:repeat(3,minmax(0,1fr))}
 .contact-info-card{grid-template-columns:1fr}
 .day-chart-grid{grid-template-columns:1fr}
 .camera-live-meta{align-items:flex-start;flex-direction:column}
 .camera-update{justify-content:flex-start}
}
@media(max-width:760px){
 .section{margin-top:26px}
 .alert-scope-form-extended{grid-template-columns:1fr 1fr}
 .alert-scope-form-extended>div{grid-column:1/-1}
 .admin-subnav{top:62px;margin-bottom:20px}
 .day-detail-metrics{grid-template-columns:1fr 1fr}
 .contact-side{grid-template-columns:1fr}
 .contact-hero{grid-template-columns:1fr}
 .contact-hero-icon{display:none}
 .contact-submit{align-items:stretch;flex-direction:column}
 .contact-submit .btn{width:100%}
 .notification-card{grid-template-columns:auto minmax(0,1fr)}
 .notification-card>:last-child{grid-column:2}
}
@media(max-width:520px){
 .alert-scope-form-extended{grid-template-columns:1fr}
 .alert-scope-form-extended>div{grid-column:auto}
 .day-detail-metrics{grid-template-columns:1fr}
 .storm-metrics{grid-template-columns:1fr 1fr}
 .camera-update{width:100%;white-space:normal}
 .admin-subnav{margin-left:-2px;margin-right:-2px;border-radius:13px}
}
@media(max-width:380px){
 .storm-metrics{grid-template-columns:1fr}
}

.notification-inbox-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;padding:17px;border:1px solid var(--line);border-radius:17px;background:#fff}
.notification-inbox-item.unread{border-color:#eac15a;background:#fffaf0}
.notification-inbox-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#fff4d7;font-size:20px}
.notification-inbox-copy{min-width:0}
.notification-inbox-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.notification-inbox-head h3{margin:0}
.notification-inbox-head time{color:var(--muted);font-size:12px;white-space:nowrap}
.notification-inbox-copy p{margin:5px 0 10px}
.btn-small{min-height:36px;padding:7px 10px;font-size:13px}
.btn-quiet{background:#fafafa}
@media(max-width:520px){.notification-inbox-head{display:grid;gap:3px}.notification-inbox-head time{white-space:normal}}

/* Meteo Agramunt 2.8.0 — final visual QA layer */
:root{--space-1:6px;--space-2:10px;--space-3:14px;--space-4:18px;--space-5:24px;--space-6:32px}
.page-shell{padding-top:26px}
.section{margin-top:clamp(26px,3vw,36px)}
.panel,.card{min-width:0}
.panel{padding:clamp(20px,2.4vw,28px)}
.card{padding:clamp(17px,2vw,22px)}
.panel>h2:first-child,.panel>h3:first-child,.card>h3:first-child{margin-top:0}
.form-grid{gap:18px}.form-grid label{gap:8px;min-width:0}.form-grid label>small{line-height:1.35}
input,select,textarea{min-height:46px;line-height:1.4}textarea{min-height:126px}
.toolbar{gap:10px;row-gap:10px}.toolbar form{margin:0}.toolbar .btn{margin:0}
.btn{min-height:44px;line-height:1.2;white-space:normal;text-align:center}
.section-head{gap:20px;margin-bottom:20px}.section-head>div{min-width:0}.section-head p{line-height:1.55}
.event-card{min-height:156px;padding:21px;gap:17px}.event-card>div:nth-child(2){min-width:0}.event-card h3{overflow-wrap:anywhere}.event-card .source-note{display:block;margin-top:12px;line-height:1.45}
.alert-scope-panel{margin-top:22px}.alert-scope-form-extended{align-items:end;gap:14px 16px}.alert-scope-form-extended label{display:grid;gap:7px;font-weight:800}.alert-scope-form-extended select{min-width:145px}
.map-toolbar{gap:12px 18px}.map-layers,.map-time{gap:7px}.map-stats{margin:10px 0 12px}
.map-event-marker{filter:drop-shadow(0 3px 7px rgba(0,0,0,.12))}
.status-pill.status-stale{background:#fff8e8;border-color:#ecd69d;color:#805d07}
.xema-health-list{display:grid;gap:8px;margin-bottom:20px}.xema-health-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:#fafafa}.xema-health-row>span:first-child{display:grid;gap:2px;min-width:0}.xema-health-row b,.xema-health-row small{overflow-wrap:anywhere}.xema-health-row small{color:var(--muted)}
.camera-live-meta{padding-top:22px}.camera-update{column-gap:10px;row-gap:4px}.timelapse-panel{margin-top:2px!important}.live-camera-only>.timelapse-panel{margin-block-start:0!important}
.notification-inbox-head time{white-space:nowrap;color:var(--muted);font-size:12px}.notification-inbox-item .toolbar{margin-top:10px}
.report-location-box{padding:17px 18px}.report-type span{min-height:66px;padding:13px 14px}
.contact-form-panel .form-grid{gap:19px}.contact-info-card{padding:18px}.contact-side{gap:14px}
.forecast-day{cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.forecast-day:hover,.forecast-day:focus-visible{transform:translateY(-2px);border-color:rgba(237,170,8,.6);box-shadow:0 12px 28px rgba(15,23,42,.09);outline:none}.forecast-day[aria-expanded="true"]{border-color:var(--brand);box-shadow:0 0 0 3px rgba(237,170,8,.13)}
.forecast-day-detail{margin-top:18px}.day-detail-metrics{gap:12px}.day-detail-metrics .metric{min-height:96px}
.storm-metrics{gap:12px}.storm-metric{min-height:94px}.lightning-map{border-radius:18px;overflow:hidden}
@media(max-width:900px){.page-shell{padding-top:20px}.event-card{min-height:0}.xema-health-row{align-items:flex-start}.section-head{margin-bottom:17px}.admin-subnav{top:64px}}
@media(max-width:760px){.panel{padding:19px}.card{padding:17px}.section{margin-top:25px}.section-head{flex-direction:column;align-items:stretch;gap:11px}.section-head>.badge{align-self:flex-start}.event-card{grid-template-columns:auto minmax(0,1fr);padding:17px}.event-card>.badge{grid-column:2;justify-self:start}.event-icon{width:44px;height:44px;border-radius:14px}.alert-scope-form-extended{grid-template-columns:1fr}.alert-scope-form-extended>div{grid-column:auto}.alert-scope-form-extended select{min-width:0}.camera-live-meta{padding:18px 2px 0}.camera-update{width:100%;justify-content:flex-start}.xema-health-row{flex-direction:column}.xema-health-row>.badge{align-self:flex-start}.notification-inbox-head{flex-direction:column;gap:4px}.article-admin-layout{grid-template-columns:1fr}.rich-editor{padding:18px}.admin-subnav{top:61px}}
@media(max-width:520px){.page-shell{padding-inline:12px}.hero{padding:22px 18px}.btn{width:auto}.toolbar{align-items:stretch}.toolbar>.btn,.toolbar>form{flex:1 1 150px}.toolbar>form .btn{width:100%}.event-card{grid-template-columns:1fr}.event-card>.badge{grid-column:auto}.event-icon{margin-bottom:2px}.report-location-box{padding:15px}.forecast-day-detail{margin-top:14px}}

/* === 2.8.0 · Predicció intel·ligent + quota Meteocat === */
.smart-forecast-hero{align-items:stretch;gap:clamp(22px,4vw,54px)}
.forecast-methodology{padding-top:10px}
.forecast-architecture{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.forecast-architecture>article{min-width:0;padding:22px;border:1px solid var(--line,#e7e8ea);border-radius:18px;background:var(--surface,#fff);box-shadow:0 8px 28px rgba(15,23,42,.05)}
.forecast-architecture h3{margin:12px 0 7px;font-size:1.05rem}
.forecast-architecture p{margin:0;color:var(--muted,#667085);line-height:1.55}
.forecast-method{display:inline-flex;align-items:center;width:max-content;max-width:100%;min-height:28px;padding:5px 10px;border-radius:999px;font-size:.75rem;font-weight:800;line-height:1.2;letter-spacing:.01em;white-space:normal}
.method-arome_hd{background:#e8f2ff;color:#145ea8;border:1px solid #c8e0fb}
.method-multimodel,.method-multimodel_long{background:#eef8ee;color:#2a6b35;border:1px solid #d4ead8}
.method-ensemble{background:#f5efff;color:#7041a5;border:1px solid #e6d6fb}
.method-best_match{background:#f4f5f7;color:#475467;border:1px solid #e4e7ec}
.confidence-pill{display:inline-flex;align-items:center;min-height:30px;padding:5px 10px;border-radius:999px;background:#fff;border:1px solid var(--line,#e5e7eb);font-size:.78rem;font-weight:700;color:#475467}
.day-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:4px}
.day-card-top .forecast-method{font-size:.68rem;max-width:68%;text-align:right}
.day-confidence{display:grid;gap:5px;margin-top:11px}
.day-confidence span{font-size:.72rem;font-weight:700;color:var(--muted,#667085)}
.day-confidence progress,.quota-card progress{width:100%;height:7px;border:0;border-radius:999px;overflow:hidden;background:#eef0f3}
.day-confidence progress::-webkit-progress-bar,.quota-card progress::-webkit-progress-bar{background:#eef0f3;border-radius:999px}
.day-confidence progress::-webkit-progress-value,.quota-card progress::-webkit-progress-value{background:currentColor;border-radius:999px}
.day-confidence progress::-moz-progress-bar,.quota-card progress::-moz-progress-bar{background:currentColor;border-radius:999px}
.day-method-summary{display:inline-flex;margin-top:8px;padding:6px 10px;border-radius:10px;background:#f7f8fa;color:#475467;font-size:.8rem}
.hour-method{display:block;color:#667085!important;font-size:.68rem!important;line-height:1.3;margin-top:3px}
.model-compare{overflow:hidden}
.model-compare-scroll{width:100%;overflow:auto;border:1px solid var(--line,#e7e8ea);border-radius:16px}
.model-table{width:100%;border-collapse:collapse;min-width:650px;background:#fff}
.model-table th,.model-table td{padding:12px 14px;border-bottom:1px solid #eef0f2;text-align:left;vertical-align:middle;font-size:.86rem}
.model-table th{position:sticky;top:0;background:#f8f9fa;color:#475467;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;z-index:1}
.model-table tr:last-child td{border-bottom:0}
.quota-policy,.integration-note{margin-top:4px;padding:14px 16px;border-radius:14px;background:#f8fafc;border:1px solid #e7ebef}
.quota-policy>p,.integration-note>p{margin:4px 0 12px;color:#667085;font-size:.86rem;line-height:1.5}
.quota-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.quota-card{display:grid;gap:6px;align-content:start}
.quota-card strong{font-size:1.25rem}
.quota-card small{display:block;line-height:1.35;color:#667085}
.quota-safe{color:#28723a}.quota-watch{color:#9a6700}.quota-risk{color:#b42318}
.advanced-sync{margin-top:12px;border-top:1px solid #eceef1;padding-top:10px}
.advanced-sync summary{cursor:pointer;font-weight:700;color:#475467}
.check-row{display:flex!important;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid #e7e9ed;border-radius:12px;background:#fafbfc}
.check-row input{width:auto!important;margin-top:3px}

@media(max-width:900px){
 .forecast-architecture{grid-template-columns:1fr}
 .smart-forecast-hero{grid-template-columns:1fr!important}
}
@media(max-width:620px){
 .forecast-architecture>article{padding:17px}
 .day-card-top{align-items:center}
 .day-card-top .forecast-method{max-width:72%;font-size:.64rem}
 .confidence-pill,.forecast-method{font-size:.7rem}
 .model-table th,.model-table td{padding:10px 12px}
 .quota-policy{padding:12px}
}

/* === 2.8.0 · Forecast Intelligence UI === */
.forecast-shortterm-hero{background:radial-gradient(circle at 90% 10%,rgba(36,112,216,.12),transparent 34%),linear-gradient(135deg,#f8fbff,#fff);border-color:#dfeaf7}.forecast-shortterm-hero .forecast-method{box-shadow:0 4px 12px rgba(20,94,168,.08)}.forecast-intelligence-intro{margin-top:42px;padding-top:30px;border-top:1px solid var(--line)}.forecast-intelligence-intro .section-head{margin-bottom:0}.forecast-intelligence-intro h2{font-size:clamp(26px,3.2vw,38px);line-height:1.14}.forecast-empty-state{display:grid;gap:7px}.forecast-empty-state span{color:var(--muted)}
.forecast-hero-copy{min-width:0;align-self:center}.forecast-hero-condition{font-size:1.08rem;margin:.4rem 0 1rem;color:var(--muted)}.forecast-status-row{margin-top:14px;gap:8px}.forecast-glance{align-content:center}.forecast-overview-section{margin-top:34px}.forecast-day-grid{align-items:stretch}.forecast-day{display:grid;grid-template-rows:auto auto auto auto 1fr auto;gap:9px;min-height:258px;padding:20px}.forecast-day-title{display:grid;gap:3px}.forecast-day-title b{font-size:1rem}.forecast-day-title small{color:var(--muted);line-height:1.35}.forecast-day-temp{font-size:2rem;letter-spacing:-.04em}.forecast-day-temp span{color:var(--muted);font-size:1.35rem;font-weight:700}.day-details{display:flex;flex-wrap:wrap;gap:7px 12px;color:#475467;font-size:.82rem}.day-open-hint{align-self:end;color:#7b5b00;font-size:.78rem;font-weight:800}.day-icon{font-size:1.5rem}.nowcast-section{padding:4px 0}.nowcast-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(112px,1fr);gap:10px;overflow-x:auto;padding:2px 2px 10px;scroll-snap-type:x proximity}.nowcast-card{scroll-snap-align:start;display:grid;gap:6px;min-height:146px;padding:15px 13px;border:1px solid var(--line);border-radius:17px;background:linear-gradient(180deg,#fff,#fbfcfd);box-shadow:0 5px 18px rgba(15,23,42,.035)}.nowcast-card time{font-weight:900}.nowcast-card strong{font-size:1.45rem}.nowcast-card span{font-size:.75rem;color:#475467}.nowcast-icon{font-size:1.35rem}.nowcast-reference{margin:7px 2px 0}.forecast-explorer{margin-top:40px}.forecast-chart-panel{padding-top:24px}.forecast-disclosure{border:1px solid var(--line);border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 7px 24px rgba(15,23,42,.04)}.forecast-disclosure>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;cursor:pointer}.forecast-disclosure>summary::-webkit-details-marker{display:none}.forecast-disclosure>summary span:first-child{display:grid;gap:3px}.forecast-disclosure>summary small{color:var(--muted);font-weight:500}.forecast-disclosure>summary span:last-child{font-size:1.3rem;transition:transform .18s ease}.forecast-disclosure[open]>summary span:last-child{transform:rotate(45deg)}.forecast-disclosure-body{border-top:1px solid var(--line);padding:20px}.forecast-methodology-bottom{margin-top:46px}.methodology-disclosure{background:linear-gradient(145deg,#fbfcfd,#fff)}.forecast-architecture-4{grid-template-columns:repeat(4,minmax(0,1fr))}.forecast-learning-note{margin-top:18px;padding:18px 20px;border-radius:15px;background:#f7f9fb;border:1px solid #e7ebef}.forecast-learning-note p{margin:6px 0 0;color:var(--muted);line-height:1.6}.forecast-source-note{margin-top:22px!important}.method-arome_hd{background:#e8f2ff;color:#145ea8;border-color:#c8e0fb}.method-multimodel{background:#eef8ee;color:#2a6b35;border-color:#d4ead8}.method-ensemble{background:#f5efff;color:#7041a5;border-color:#e6d6fb}
.admin-forecast-health{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.admin-forecast-health>div{display:grid;gap:3px;padding:14px 15px;border:1px solid var(--line);border-radius:14px;background:#fafbfc}.admin-forecast-health span{font-size:.75rem;color:var(--muted)}.admin-forecast-health b{font-size:1rem}.forecast-engine-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.forecast-engine-grid article{padding:17px;border:1px solid var(--line);border-radius:15px;background:#fff}.forecast-engine-grid h3{margin:10px 0 5px;font-size:1rem}.forecast-engine-grid p{margin:0;color:var(--muted);line-height:1.5;font-size:.83rem}.skill-status{display:inline-flex;padding:4px 8px;border-radius:999px;background:#f4f5f7;color:#475467;font-size:.72rem;font-weight:800}.skill-status.ready{background:#eaf7ed;color:#236332}.admin-forecast-table .model-table{min-width:760px}
@media(max-width:1100px){.forecast-architecture-4{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-forecast-health,.forecast-engine-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.smart-forecast-hero{padding:24px 19px}.forecast-glance{grid-template-columns:repeat(2,minmax(0,1fr))}.forecast-day-grid{grid-template-columns:1fr!important}.forecast-day{min-height:0}.forecast-disclosure>summary{padding:16px}.forecast-disclosure-body{padding:15px}.forecast-architecture-4,.admin-forecast-health,.forecast-engine-grid{grid-template-columns:1fr}.nowcast-rail{grid-auto-columns:118px}.forecast-tabs{padding-bottom:7px}.forecast-chart-panel{padding-inline:14px}.forecast-source-note{padding-inline:4px}}
@media(max-width:420px){.forecast-glance{grid-template-columns:1fr 1fr}.forecast-glance>div{min-width:0;padding:12px 8px}.forecast-glance b{font-size:1.25rem}.day-card-top{align-items:flex-start}.day-card-top .forecast-method{max-width:74%}.forecast-disclosure>summary small{font-size:.75rem}.nowcast-card{min-height:138px;padding:13px 11px}}

/* 2.8.0 · Long-range uncertainty + compact mobile forecast rail */
.day-uncertainty{display:inline-flex;align-items:center;justify-self:start;padding:5px 8px;border-radius:999px;background:#f7f4fb;border:1px solid #e8def2;color:#6f4b87;font-size:.72rem;font-weight:800;line-height:1.2}
@media(max-width:760px){
 .forecast-day-grid{display:grid!important;grid-template-columns:none!important;grid-auto-flow:column;grid-auto-columns:minmax(235px,82vw);overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scroll-padding-inline:2px;padding:2px 2px 12px;gap:12px}
 .forecast-day{min-height:260px;scroll-snap-align:start}
 .forecast-day-grid::-webkit-scrollbar{height:7px}
}

/* Meteo Agramunt 2.8.3 · production UX refinements */
.seo-check-list li{grid-template-columns:22px minmax(0,1fr);gap:9px;min-width:0}
.seo-check-icon{display:inline-grid;place-items:center;width:22px;min-width:22px;font-weight:900;line-height:1.4}
.seo-check-text{display:block;min-width:0;white-space:normal;word-break:normal;overflow-wrap:break-word}
.seo-editor-box .form-grid.two{grid-template-columns:repeat(2,minmax(260px,1fr))}
@media(max-width:1240px){.article-admin-layout{grid-template-columns:1fr}.article-list-panel{position:static;top:auto}.article-editor-panel{max-width:100%}}
@media(max-width:760px){.seo-editor-box .form-grid.two{grid-template-columns:1fr}}

.radar-grid-balanced .section-head{align-items:flex-start}
.radar-grid-balanced .section-head>.badge{flex:0 0 auto;width:max-content;max-width:100%;white-space:nowrap;word-break:normal;overflow-wrap:normal;line-height:1.2}

.station-history-panel{display:grid;gap:20px}
.station-history-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,170px) minmax(150px,200px);gap:16px;align-items:end}
.station-history-controls>div,.station-history-controls>label{min-width:0}
.station-history-controls label,.station-history-table-head label{display:grid;gap:7px;color:var(--muted);font-size:13px;font-weight:750}
.station-history-controls select,.station-history-table-head select{width:100%;min-height:42px}
.control-label{display:block;margin-bottom:7px;color:var(--muted);font-size:13px;font-weight:750}
.station-history-metrics{display:flex;flex-wrap:wrap;margin-bottom:0}
.station-history-metrics button{flex:0 0 auto}
.station-history-table-head{display:flex;justify-content:space-between;align-items:end;gap:18px;padding-top:4px}
.station-history-table-head h3{margin:0 0 3px}.station-history-table-head p{margin:0}
.station-history-table-head label{min-width:210px}
.station-history-table-wrap{max-height:620px;border:1px solid var(--line);border-radius:15px;background:#fff}
.station-history-table{margin:0}.station-history-table thead th{position:sticky;top:0;z-index:2;background:#f7f8fa;box-shadow:0 1px 0 var(--line)}
.station-history-table td,.station-history-table th{white-space:nowrap}
.station-table-pagination{display:flex;justify-content:flex-end;align-items:center;gap:12px}.station-table-pagination span{color:var(--muted);font-size:13px;font-weight:750}
.station-source-inline{display:inline-flex;gap:5px;align-items:center;padding:8px 12px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:13px;white-space:nowrap}
.station-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 24px}
.forecast-public-method{margin-top:14px}
.forecast-technical-details{margin-top:18px;border:1px solid var(--line);border-radius:16px;background:#fafbfc;overflow:hidden}
.forecast-technical-details>summary{cursor:pointer;padding:16px 18px;font-weight:850;list-style:none}.forecast-technical-details>summary::-webkit-details-marker{display:none}.forecast-technical-details>summary::after{content:'＋';float:right;color:var(--muted)}.forecast-technical-details[open]>summary::after{content:'−'}
.forecast-technical-details>.method-grid,.forecast-technical-details>.method-note{margin:0 18px 18px}
@media(max-width:900px){.station-history-controls{grid-template-columns:1fr 1fr}.station-history-controls>div{grid-column:1/-1}.station-detail-grid{grid-template-columns:1fr 1fr}.station-history-table-head{align-items:stretch;flex-direction:column}.station-history-table-head label{min-width:0;width:100%}}
@media(max-width:600px){.station-history-controls{grid-template-columns:1fr}.station-history-controls>div{grid-column:auto}.station-history-metrics{display:grid;grid-template-columns:1fr 1fr}.station-detail-grid{grid-template-columns:1fr}.station-table-pagination{justify-content:space-between}.station-source-inline{white-space:normal}.radar-grid-balanced .section-head>.badge{align-self:flex-start}}

.app-install-banner{position:fixed;right:22px;bottom:22px;z-index:880;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;width:min(680px,calc(100vw - 44px));padding:15px 16px;border:1px solid rgba(15,23,42,.1);border-radius:20px;background:rgba(255,255,255,.97);box-shadow:0 22px 55px rgba(15,23,42,.18);backdrop-filter:blur(16px)}
.app-install-banner[hidden]{display:none}.app-install-banner img{width:52px;height:52px;object-fit:contain}.app-install-banner>div:nth-child(2){display:grid;gap:3px;min-width:0}.app-install-banner>div:nth-child(2)>span{color:var(--muted);font-size:13px;line-height:1.45}.app-install-banner .toolbar{flex-wrap:nowrap}
.app-modal{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:20px;background:rgba(15,23,42,.48);backdrop-filter:blur(8px)}.app-modal[hidden]{display:none}.modal-open{overflow:hidden}.app-modal-card{position:relative;width:min(570px,100%);max-height:min(760px,calc(100vh - 40px));overflow:auto;padding:30px;border:1px solid rgba(255,255,255,.35);border-radius:24px;background:#fff;box-shadow:0 28px 80px rgba(15,23,42,.28)}.app-modal-card h2{margin:7px 0 10px;font-size:clamp(26px,4vw,38px)}.app-modal-card p{color:var(--muted);line-height:1.65}.app-modal-close{position:absolute;right:15px;top:15px;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:24px;line-height:1;cursor:pointer}.app-modal-logo{display:block;width:68px;height:68px;object-fit:contain;margin-bottom:14px}.app-install-copy{margin:10px 0 20px}.install-steps{display:grid;gap:11px;margin:0;padding-left:22px;color:#3f4652;line-height:1.6}.tour-progress{display:inline-flex;padding:6px 10px;border-radius:999px;background:#f2f4f7;color:var(--muted);font-size:12px;font-weight:850}.tour-slide{min-height:245px;padding-top:24px}.tour-slide .text-link{border:0;background:transparent;padding:0;cursor:pointer}.tour-actions{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding-top:20px;border-top:1px solid var(--line)}.tour-actions [data-tour-skip]{justify-self:center}
.register-app-note{display:grid;grid-template-columns:auto 1fr;gap:13px;align-items:start;margin-top:22px;padding:16px;border:1px solid #eadfca;border-radius:16px;background:#fffaf0}.register-app-note img{width:48px;height:48px;object-fit:contain}.register-app-note p{margin:3px 0 6px;font-size:13px;color:var(--muted);line-height:1.5}.register-app-note .text-link{border:0;background:transparent;padding:0;cursor:pointer}
.onboarding-callout{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 24px;border:1px solid #eadfca;border-radius:22px;background:linear-gradient(135deg,#fff8e5,#fff 58%,#fff1ed)}.onboarding-callout h2{margin:5px 0}.onboarding-callout p{margin:0;max-width:760px;color:var(--muted)}
@media(max-width:760px){.app-install-banner{left:12px;right:12px;bottom:12px;width:auto;grid-template-columns:auto 1fr}.app-install-banner .toolbar{grid-column:1/-1;width:100%;display:grid;grid-template-columns:1fr 1fr}.app-modal{padding:12px}.app-modal-card{padding:24px 19px;border-radius:20px}.tour-slide{min-height:290px}.tour-actions{grid-template-columns:1fr 1fr}.tour-actions [data-tour-skip]{grid-row:2;grid-column:1/-1}.onboarding-callout{align-items:stretch;flex-direction:column}.onboarding-callout .toolbar{width:100%}.onboarding-callout .toolbar .btn{flex:1}.register-app-note{grid-template-columns:1fr}.register-app-note img{width:42px;height:42px}}
.forecast-public-method{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.forecast-public-method>article{display:grid;grid-template-columns:42px minmax(0,1fr);gap:13px;align-items:start;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff}
.forecast-public-method>article>span{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#fff7df;font-size:20px}.forecast-public-method h3{margin:1px 0 5px;font-size:1rem}.forecast-public-method p{margin:0;color:var(--muted);line-height:1.55}
@media(max-width:760px){.forecast-public-method{grid-template-columns:1fr}.forecast-public-method>article{padding:15px}}

/* Meteo Agramunt 2.8.4 · production stabilization */
.page-shell,.page-shell>*,main,section,article,.panel,.card,.grid,.section-head>*{min-width:0}
iframe,video{max-width:100%}

/* Station network: Agramunt/local first, with user-controlled filters. */
.station-network-section{display:grid;gap:15px}
.station-network-filters{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-inline:contain;padding:2px 2px 9px;scrollbar-width:thin}
.station-network-filters button{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#343943;font-weight:800;cursor:pointer}
.station-network-filters button span{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#f3f4f6;color:var(--muted);font-size:11px}
.station-network-filters button.active{border-color:#171717;background:#171717;color:#fff}
.station-network-filters button.active span{background:rgba(255,255,255,.16);color:#fff}
.station-card-grid{align-items:stretch}
.station-card[hidden]{display:none}
.station-card-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.station-card-title-row h3{min-width:0;margin:6px 0 2px}
.station-primary-badge{flex:0 0 auto;padding:5px 8px;font-size:10px}
.station-filter-empty{margin-top:0}

/* Full-size interactive charts. On narrow screens they stay readable instead of shrinking to a thumbnail. */
.interactive-chart-detail{min-height:290px;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;padding-bottom:6px}
.interactive-chart-detail>svg{display:block;width:100%;min-width:0;max-width:none;height:auto}
.interactive-chart-detail>.chart-tooltip{position:absolute}

/* General responsive hardening. */
.section-head h1,.section-head h2,.section-head h3,.hero h1,.station-hero h1,.forecast-main-hero h1,.air-hero h1{overflow-wrap:break-word;word-break:normal}
.toolbar,.status-row,.weather-inline,.day-details{max-width:100%}
.form-grid>*,.detail-list>*,.weather-glance>*,.home-quick-grid>*,.footer-grid>*{min-width:0}
.table-wrap{width:100%;max-width:100%;overflow:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.table-wrap table{width:max-content;min-width:100%}
.rich-editor,.editor-section,.seo-editor-box,.article-editor-panel,.article-list-panel{max-width:100%;min-width:0}
.admin-subnav-inner,.forecast-tabs,.forecast-metric-buttons,.range-switch,.metric-switch{scrollbar-width:thin;overscroll-behavior-inline:contain}

@media(max-width:900px){
  .interactive-chart-detail>svg{width:820px;min-width:820px}
  .station-history-panel .interactive-chart-detail>svg{width:880px;min-width:880px}
  .stations-map{height:min(52vh,460px);min-height:360px}
  .station-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:760px){
  .page-shell{width:100%;max-width:100%;padding-inline:14px}
  .hero,.station-hero,.forecast-main-hero,.air-hero{border-radius:22px}
  .home-hero{padding:23px 18px;border-radius:24px}
  .home-hero h1{font-size:clamp(38px,13vw,52px);line-height:.96}
  .home-condition{font-size:18px}
  .home-forecast-mini{grid-template-columns:repeat(3,minmax(0,1fr))}
  .home-forecast-mini>div{min-width:0;padding:10px 7px}
  .home-forecast-mini b{font-size:19px}
  .home-forecast-mini span{font-size:22px}
  .weather-inline{gap:8px}
  .weather-inline span{padding:8px 9px;font-size:13px}
  .calm-banner,.alert-ribbon{align-items:flex-start;padding:16px;gap:12px}
  .station-card-grid{grid-template-columns:1fr}
  .station-network-filters{margin-inline:-2px;padding-bottom:8px}
  .station-card-title-row{align-items:center}
  .station-card-current strong{font-size:32px}
  .station-history-metrics{display:flex;flex-wrap:nowrap;overflow-x:auto;padding-bottom:7px}
  .station-history-metrics button{flex:0 0 auto}
  .station-history-controls .range-switch{display:flex;flex-wrap:nowrap;overflow-x:auto;padding-bottom:5px}
  .station-history-controls .range-switch button{flex:0 0 auto}
  .station-history-table-wrap{max-height:520px}
  .station-table-pagination{gap:8px}
  .station-table-pagination .btn{min-width:0;padding-inline:11px}
  .interactive-chart-detail{min-height:250px;margin-inline:-4px}
  .interactive-chart-detail>svg{width:760px;min-width:760px}
  .station-history-panel .interactive-chart-detail>svg{width:820px;min-width:820px}
  .chart-tooltip{width:164px}
  .forecast-chart-panel{overflow:hidden}
  .forecast-chart-panel .interactive-chart-detail{margin-inline:0}
  .forecast-chart-panel .section-head .range-switch{display:flex;flex-wrap:nowrap;width:100%;overflow-x:auto;padding-bottom:4px}
  .forecast-chart-panel .section-head .range-switch button{flex:0 0 auto}
  .forecast-metric-buttons{padding-bottom:5px}
  .hourly-rail{grid-auto-columns:minmax(112px,128px)}
  .day-chart-grid>div{min-width:0;overflow:hidden}
  .day-mini-chart{min-height:120px}
  .model-compare-scroll,.admin-forecast-table{max-width:100%;overflow-x:auto}
  .air-scale{width:min(300px,100%)}
  .notification-inbox-item,.notification-card{max-width:100%}
  .contact-layout,.article-admin-layout{min-width:0}
  .station-network-cta{border-radius:20px}
}

@media(max-width:520px){
  .page-shell{padding-inline:11px}
  .panel{padding:17px}
  .card{padding:16px}
  .hero{padding:20px 17px}
  .station-hero,.forecast-main-hero,.air-hero{padding:22px 17px}
  .station-hero h1,.forecast-main-hero h1,.air-hero h1{font-size:clamp(34px,11vw,48px)}
  .station-current{min-width:0;padding:18px}
  .station-current strong{font-size:42px}
  .station-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .station-metric{min-height:96px;padding:14px}
  .station-metric b{font-size:24px}
  .weather-glance>div{min-width:0;padding:12px 8px}
  .weather-glance b{font-size:20px}
  .forecast-glance>div{min-width:0}
  .home-forecast-mini{grid-template-columns:repeat(2,minmax(0,1fr))}
  .home-quick-grid{grid-template-columns:1fr}
  .calm-banner,.alert-ribbon{flex-direction:column}
  .alert-ribbon>.btn,.calm-banner>.btn{width:100%}
  .section-head{gap:9px}
  .section-head p{font-size:14px;line-height:1.55}
  .station-history-controls{gap:12px}
  .station-history-table-head{gap:12px}
  .station-detail-grid .detail-list>div,.detail-list>div{align-items:flex-start;flex-direction:column;gap:3px}
  .station-table-pagination{display:grid;grid-template-columns:1fr 1fr}
  .station-table-pagination span{grid-column:1/-1;grid-row:1;text-align:center}
  .station-table-pagination .btn{width:100%}
  .interactive-chart-detail>svg{width:720px;min-width:720px}
  .station-history-panel .interactive-chart-detail>svg{width:780px;min-width:780px}
  .radar-frame{min-height:440px;aspect-ratio:auto}
  .app-install-banner{max-height:calc(100dvh - 24px);overflow:auto}
  .app-modal-card{max-height:calc(100dvh - 24px)}
}

@media(max-width:380px){
  .home-hero h1{font-size:38px}
  .home-forecast-mini{grid-template-columns:1fr 1fr}
  .station-metric-grid{grid-template-columns:1fr 1fr}
  .forecast-glance{grid-template-columns:1fr 1fr}
  .station-network-filters button{padding-inline:10px}
}


/* Meteo Agramunt 2.8.5 · mobile UX + forecast-engine stabilization */
.station-history-progress{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;margin:0 0 18px;padding:14px 16px;border:1px solid #f0dca9;border-radius:16px;background:#fff9e9;color:#554733}
.station-history-progress>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#fff;color:#b34a12;font-weight:900}
.station-history-progress b{display:block;margin:1px 0 3px;color:#34291f}
.station-history-progress p{margin:0;color:#6a5d50;font-size:13px;line-height:1.55}
.chart-scroll-hint{display:none;margin:5px 0 10px;text-align:center;color:var(--muted);font-size:11px;font-weight:750;letter-spacing:.01em}

@media(max-width:760px){
  /* Header: brand left, navigation action clearly anchored to the right edge. */
  .site-header .header-inner{display:flex;align-items:center;justify-content:flex-start;gap:12px}
  .site-header .brand{margin-right:auto;min-width:0}
  .site-header .nav-toggle{margin-left:auto;flex:0 0 auto}
  .site-header .main-nav{flex-basis:100%}

  /* Primary selectors must be discoverable without hidden horizontal scrolling. */
  .station-history-controls .range-switch{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:7px;
    width:100%;
    overflow:visible;
    padding:0;
  }
  .station-history-controls .range-switch button{width:100%;min-width:0;justify-content:center;padding-inline:8px}
  .station-history-controls .range-switch button:nth-child(-n+3){grid-column:span 2}
  .station-history-controls .range-switch button:nth-child(n+4){grid-column:span 3}

  .station-history-metrics{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
    overflow:visible;
    padding:0;
  }
  .station-history-metrics button{width:100%;min-width:0;white-space:normal;justify-content:center;text-align:center}

  .forecast-tabs{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
    overflow:visible;
    margin-inline:0;
    padding:0;
  }
  .forecast-tabs button{min-width:0;width:100%;white-space:normal;padding:9px 8px;text-align:center}

  .forecast-chart-panel .section-head .range-switch{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
    width:100%;
    overflow:visible;
    padding:0;
  }
  .forecast-chart-panel .section-head .range-switch button{width:100%;min-width:0;justify-content:center}

  .forecast-metric-buttons{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
    overflow:visible;
    padding:0;
  }
  .forecast-metric-buttons button{width:100%;min-width:0;white-space:normal;text-align:center}

  /* Scroll remains only where it conveys a long data series / table. */
  .chart-scroll-hint{display:block}
}

@media(max-width:400px){
  .forecast-tabs,.forecast-metric-buttons{grid-template-columns:1fr 1fr}
  .station-history-metrics{grid-template-columns:1fr 1fr}
  .station-history-controls .range-switch{gap:6px}
}

/* Meteo Agramunt 2.9.0 · final production hardening */
.event-content{min-width:0}
.event-meta{display:flex;flex-wrap:wrap;gap:7px 10px;margin-top:10px}
.event-meta span{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:6px 9px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--muted);font-size:12px;line-height:1.35}
.event-meta b{color:var(--text);font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.air-hero-side{display:grid;justify-items:end;gap:22px;min-width:0}
.air-hero-side .status-pill{justify-self:end}
.radar-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.radar-actions .btn{min-width:0}
.radar-source-note{margin-bottom:0}
.radar-frame{width:100%;min-height:0;aspect-ratio:16/10}
.radar-frame iframe{display:block;width:100%;height:100%;min-width:0}
.wind-direction-card{align-content:start}
.wind-dir-arrow{display:inline-grid;place-items:center;width:34px;height:34px;margin:2px 0;font-size:27px;line-height:1;transform-origin:center;color:#475569}
.fc-dir-cardinal{font-size:19px;font-weight:900;fill:#222}
.fc-dir-title{font-weight:800;fill:#475569}
.table-subline{display:block;margin-top:3px;color:var(--muted);font-weight:500}

@media(max-width:760px){
  .event-card{grid-template-columns:auto minmax(0,1fr);align-items:start}
  .event-card>.badge{grid-column:2;justify-self:start;margin-top:3px}
  .event-meta{display:grid;grid-template-columns:1fr 1fr;gap:6px}
  .event-meta span{display:grid;align-content:start;gap:2px;white-space:normal}
  .air-hero-side{width:100%;justify-items:stretch;gap:15px}
  .air-hero-side .status-pill{justify-self:start}
  .air-scale{width:100%;max-width:none}
  .radar-actions{display:grid;grid-template-columns:1fr}
  .radar-actions .btn{width:100%;text-align:center;justify-content:center}
  .radar-frame{aspect-ratio:1/1;min-height:0}
  .radar-main{overflow:hidden}
  .radar-main .section-head{align-items:flex-start}
  .radar-main .section-head>.badge{flex:0 0 auto;white-space:nowrap}
}

@media(max-width:430px){
  .event-meta{grid-template-columns:1fr}
  .radar-frame{aspect-ratio:4/5}
}

/* Meteo Agramunt 2.10.0 · lectura de dades, QC i onboarding */
.fc-axis-line{stroke:#9ca3af;stroke-width:1.2}.fc-axis-title{fill:#414754;font-size:13px;font-weight:800}.fc-chart-summary{fill:#414754;font-size:13px;font-weight:750}.fc-current-dot{fill:#fff;stroke:var(--brand-2);stroke-width:4}.fc-axis-x{font-size:11px}
.air-metric-card{gap:10px}.air-metric-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.air-metric-card small{line-height:1.35}.air-legend-table{overflow:auto;border:1px solid var(--line);border-radius:16px}.air-legend-table table{width:100%;min-width:850px;border-collapse:collapse}.air-legend-table th,.air-legend-table td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.air-legend-table thead{background:#fafafa}.air-legend-table tbody tr:last-child th,.air-legend-table tbody tr:last-child td{border-bottom:0}
.destructive-tools{align-items:end}.text-warning{color:var(--warning);font-weight:800}
.admin-user-table{overflow:auto}.admin-user-table table{width:100%;min-width:1050px;border-collapse:collapse}.admin-user-table th,.admin-user-table td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}.admin-user-actions{display:flex;gap:6px;flex-wrap:wrap}.admin-user-actions .btn{min-height:34px;padding:6px 9px;font-size:12px}
.tour-target-highlight{position:relative!important;z-index:1450!important;outline:4px solid var(--brand)!important;outline-offset:5px!important;border-radius:16px;box-shadow:0 0 0 9999px rgba(16,18,23,.67)!important}.app-tour-modal{z-index:1500}.tour-target-name{display:inline-flex;margin-bottom:8px;padding:5px 9px;border-radius:999px;background:#fff5d8;color:#9a6500;font-size:12px;font-weight:850}.tour-progress-bar{height:5px;background:#eee;border-radius:999px;overflow:hidden;margin:8px 0 16px}.tour-progress-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--brand-2));transition:width .2s ease}
.push-global-banner .push-remind{font-size:12px}.push-status.blocked,.push-status.stale,.push-status.disconnected{color:var(--warning)!important}
.consent-banner{position:fixed;left:50%;bottom:16px;z-index:1400;transform:translateX(-50%);width:min(780px,calc(100% - 28px));background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 55px rgba(15,23,42,.2);padding:16px 18px;display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center}.consent-banner[hidden]{display:none!important}.consent-banner p{margin:3px 0;color:var(--muted);font-size:14px}
.tracking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.tracking-service{padding:14px;border:1px solid var(--line);border-radius:16px;background:#fafafa}
@media(max-width:760px){.fc-chart-summary{font-size:11px}.fc-axis-x{font-size:10px}.air-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.consent-banner{grid-template-columns:1fr;bottom:9px}.tracking-grid{grid-template-columns:1fr}.tour-target-highlight{outline-width:3px!important;outline-offset:3px!important}}
@media(max-width:480px){.air-metric-grid{grid-template-columns:1fr}.fc-axis-title{font-size:11px}}

/* 2.11.0 · Radar Catalunya V1 */
.radar-v2-shell{overflow:hidden}.radar-v2-head{align-items:flex-start}.radar-freshness{display:grid;justify-items:end;gap:6px;text-align:right}.radar-v2-layout{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:16px;align-items:start}.radar-v2-main{display:grid;align-content:start;gap:16px;min-width:0}.radar-v2-main .radar-timeline-card{margin-top:0}.radar-v2-main .radar-actions{margin:0;align-items:center}[data-radar-legend][hidden]{display:none!important}.radar-map-wrap{position:relative;min-width:0}.radar-native-map{height:min(68vh,650px);min-height:480px;border-radius:20px;overflow:hidden;background:#e9edf0;border:1px solid var(--line)}.radar-map-status{position:absolute;z-index:500;left:14px;bottom:14px;max-width:min(560px,calc(100% - 28px));padding:9px 12px;border-radius:12px;background:rgba(20,24,27,.86);color:#fff;font-size:13px;box-shadow:0 8px 28px rgba(0,0,0,.16);pointer-events:none}.radar-side-controls{display:grid;align-content:start;gap:12px}.radar-control-block{display:grid;gap:9px;padding:15px;border:1px solid var(--line);border-radius:17px;background:#fafafa}.radar-control-block small{color:var(--muted);line-height:1.45}.radar-toggle{display:flex;align-items:center;gap:8px;padding:8px 9px;border-radius:11px;background:#fff;border:1px solid var(--line);font-weight:800;cursor:pointer}.radar-toggle input{width:17px;height:17px}.radar-dbz-scale{display:grid;grid-template-columns:repeat(7,1fr);height:14px;border-radius:999px;overflow:hidden}.radar-dbz-scale i{display:block}.dbz-1{background:#9bdcff}.dbz-2{background:#3f9fff}.dbz-3{background:#44c879}.dbz-4{background:#f1d642}.dbz-5{background:#f28a35}.dbz-6{background:#db3b32}.dbz-7{background:#9c3fbc}.rate-1{background:#9bdcff}.rate-2{background:#3f9fff}.rate-3{background:#44c879}.rate-4{background:#f1d642}.rate-5{background:#f28a35}.rate-6{background:#db3b32}.rate-7{background:#9c3fbc}.radar-control-block select[data-radar-product]{width:100%;margin-top:5px}.radar-scale-labels{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.radar-source-box b,.radar-source-box small{display:block}.radar-timeline-card{margin-top:16px;padding:16px 18px;border:1px solid var(--line);border-radius:18px;background:#fff}.radar-timeline-top{display:flex;align-items:center;justify-content:space-between;gap:14px}.radar-timeline-top>div:first-child{display:grid;gap:3px}.radar-timeline-top b{font-size:20px}.radar-range-labels{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;margin-top:13px;font-size:12px;color:var(--muted)}.radar-range-labels strong{text-align:center;color:#1e6b52;letter-spacing:.08em}.radar-range-labels span:last-child{text-align:right}.radar-slider{width:100%;accent-color:#EDAA08;margin:5px 0 9px}.radar-preload-status{display:block;min-height:18px;margin:-2px 0 9px;color:var(--muted);font-size:12px;font-weight:700}.radar-preload-status[hidden]{display:none}.radar-future-lane{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:10px 13px;border-radius:13px;background:repeating-linear-gradient(135deg,#f7f7f7,#f7f7f7 8px,#efefef 8px,#efefef 16px);color:#6d6d6d}.radar-future-lane>div{text-align:center}.radar-future-lane b,.radar-future-lane small{display:block}.radar-future-lane b{font-size:12px;letter-spacing:.08em}.radar-future-lane small{font-size:11px;margin-top:2px}.radar-v2-shell .radar-actions{margin:0;align-items:center}.radar-native-map .leaflet-control-attribution{font-size:9px}.radar-native-map .leaflet-tooltip{font-weight:700}
@media(max-width:900px){.radar-v2-layout{grid-template-columns:1fr}.radar-v2-main{display:contents}.radar-map-wrap{order:1}.radar-side-controls{order:2;grid-template-columns:repeat(3,1fr)}.radar-timeline-card{order:3}.radar-actions{order:4}.radar-source-box{grid-column:auto}}
@media(max-width:650px){.radar-freshness{justify-items:start;text-align:left}.radar-native-map{height:62vh;min-height:430px;border-radius:16px}.radar-side-controls{grid-template-columns:1fr 1fr}.radar-source-box{grid-column:1/-1}.radar-timeline-top{align-items:flex-start;flex-direction:column}.radar-timeline-top .toolbar{width:100%}.radar-timeline-top .toolbar .btn{flex:1}.radar-future-lane{grid-template-columns:auto 1fr auto}.radar-future-lane small{display:none}.radar-v2-shell{padding-left:14px;padding-right:14px}}
/* Radar 2.12 · nowcast separat visualment del radar observat */
.radar-future-live{background:linear-gradient(135deg,#fbf8ff,#f4eefb);border:1px solid #e4d5f0;color:#4d2d62}.radar-lead-buttons{display:flex;justify-content:center;flex-wrap:wrap;gap:5px;margin-top:7px}.radar-lead-buttons button{border:1px solid #d7c1e6;background:#fff;color:#52316a;border-radius:999px;padding:5px 9px;font:inherit;font-size:11px;font-weight:800;cursor:pointer}.radar-lead-buttons button.active{background:#4d2368;color:#fff;border-color:#4d2368}.radar-native-map .leaflet-pane.leaflet-nowcast-pane{mix-blend-mode:normal}
@media(max-width:650px){.radar-lead-buttons{justify-content:flex-start;overflow:auto;flex-wrap:nowrap}.radar-lead-buttons button{white-space:nowrap}.radar-side-controls .radar-toggle:last-child{grid-column:1/-1}}


/* Meteo Agramunt 2.12.3 · admin hardening + replay de validació */
body.page-admin .page-shell{width:min(1360px,calc(100% - 28px))}
body.page-admin .panel,body.page-admin .integration-card,body.page-admin .integration-layout>*,body.page-admin .form-grid>*{min-width:0}
body.page-admin input,body.page-admin select,body.page-admin textarea{max-width:100%;min-width:0}
body.page-admin .section-head>div{min-width:0}
body.page-admin .integration-status{min-width:0}
.radar-integration-card .integration-layout{align-items:start}
.tracking-card .tracking-grid>*{min-width:0}

.table-scroll,.admin-user-table,.replay-table-wrap{width:100%;max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:14px;background:#fff}
.admin-table{width:max-content;min-width:100%;border-collapse:collapse}
.admin-table th,.admin-table td{padding:10px 11px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}
.admin-table thead{background:#fafafa;position:sticky;top:0;z-index:1}
.admin-table tbody tr:last-child td{border-bottom:0}
.users-table{min-width:1100px}
.users-table td small{display:block;margin-top:3px;color:var(--muted);white-space:normal;line-height:1.35}
.user-admin-actions,.admin-user-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:start;min-width:250px}
.user-admin-actions .btn,.admin-user-actions .btn{min-height:34px;padding:6px 9px;font-size:12px}
.inline-role{display:grid;grid-template-columns:minmax(105px,1fr) auto;gap:6px;align-items:center}
.inline-role select{width:100%}
.admin-editor-hero{overflow:hidden}
.editor-section-copy{min-width:0}
.editor-section-copy textarea{width:100%;resize:vertical}

.replay-panel{margin-top:18px;padding:18px;border:1px solid #ded5e7;border-radius:18px;background:linear-gradient(180deg,#fcfaff,#fff)}
.replay-panel .section-head{margin-bottom:13px}
.replay-panel .section-head h3{margin:3px 0 5px;font-size:22px}
.replay-panel .section-head p{margin:0;color:var(--muted)}
.replay-form{display:grid;grid-template-columns:minmax(190px,1fr) minmax(190px,1fr) auto;gap:10px;align-items:end}
.replay-form label{display:grid;gap:6px;font-weight:800}
.replay-hint{margin:10px 0 0;font-size:12px}
.replay-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin-top:16px}
.replay-summary>div{display:grid;gap:3px;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:#fff}
.replay-summary small,.replay-summary span{color:var(--muted);font-size:11px;line-height:1.3}
.replay-summary b{font-size:20px}
.replay-summary.is-ok>div:first-child{border-color:#b9dfce;background:#f7fcf9}
.replay-summary.is-warn>div:first-child{border-color:#efcf9d;background:#fffaf1}
.replay-table-wrap{margin-top:12px}
.replay-table{min-width:680px}
.replay-errors{margin-top:10px}
.replay-errors ul{margin:10px 0 0;padding-left:20px;color:var(--muted);font-size:12px}
.badge.info{background:#edf5ff;color:#245b94;border-color:#cfe1f5}

@media(max-width:1080px){
  body.page-admin .integration-layout{grid-template-columns:1fr}
  .replay-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  body.page-admin .page-shell{width:min(100% - 20px,1360px)}
  body.page-admin .hero{overflow:hidden}
  .replay-form{grid-template-columns:1fr}
  .replay-form .btn{width:100%}
  .replay-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .user-admin-actions,.admin-user-actions{min-width:210px}
}
@media(max-width:430px){
  .replay-summary{grid-template-columns:1fr}
}

/* Meteo Agramunt 2.13.0 · Previsió Catalunya */
.forecast-location-picker{position:relative;z-index:20}.forecast-location-panel{display:grid;grid-template-columns:minmax(0,.85fr) minmax(420px,1.15fr);gap:18px 28px;align-items:end;background:linear-gradient(135deg,#fffdf7,#fff)}.forecast-location-panel h2{margin:3px 0 6px}.forecast-location-panel p{margin:0;color:var(--muted);max-width:760px}.forecast-location-form{position:relative;display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:8px;align-items:end}.forecast-location-query{display:grid;gap:6px;font-weight:800;min-width:0}.forecast-location-query input{width:100%}.forecast-location-results{position:absolute;left:0;right:0;top:calc(100% + 7px);z-index:900;max-height:360px;overflow:auto;padding:6px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:0 18px 55px rgba(15,23,42,.18)}.forecast-location-results[hidden]{display:none!important}.forecast-location-option{display:grid;width:100%;gap:2px;padding:10px 12px;border:0;border-radius:11px;background:transparent;text-align:left;font:inherit;color:inherit;cursor:pointer}.forecast-location-option:hover,.forecast-location-option.active{background:#f6f8f7}.forecast-location-option b{font-size:14px}.forecast-location-option span,.forecast-location-option small{color:var(--muted);font-size:12px;line-height:1.3}.forecast-location-message{padding:12px;color:var(--muted);font-size:13px}.forecast-coordinate-search{grid-column:1/-1;border-top:1px solid var(--line);padding-top:10px}.forecast-coordinate-search summary{cursor:pointer;font-weight:800;color:var(--muted)}.forecast-coord-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:9px;align-items:end;margin-top:10px}.forecast-coord-form label{display:grid;gap:5px;font-weight:800}.forecast-location-active{grid-column:1/-1;display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:11px 13px;border:1px solid #cfe4db;border-radius:13px;background:#f7fcf9}.forecast-location-active>div{display:grid;gap:2px;margin-right:auto}.forecast-location-active span:not(.status-pill){font-size:12px;color:var(--muted)}.forecast-location-active a{font-weight:800;font-size:13px}.status-pill.warn{background:#fff8e8;border-color:#edcf91;color:#7b5510}.regional-radar-context{display:grid;gap:3px;margin:0 0 14px;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:#fafafa}.regional-radar-context b{font-size:13px}.regional-radar-context span{font-weight:800}.regional-radar-context small{color:var(--muted)}.regional-radar-context.has-impact{border-color:#e0bee9;background:#fcf7ff}.regional-xema-grid .card{display:grid;gap:8px}.regional-xema-grid .card>small{color:var(--muted)}.regional-xema-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;font-size:13px}.regional-xema-values span{padding:6px 8px;border-radius:9px;background:#f7f8f8}.forecast-source-note{margin-top:12px}
@media(max-width:980px){.forecast-location-panel{grid-template-columns:1fr}.forecast-location-form{grid-template-columns:minmax(0,1fr) auto}.forecast-location-form [data-use-geolocation]{grid-column:1/-1}.forecast-coord-form{grid-template-columns:repeat(2,minmax(0,1fr))}.forecast-coord-form .btn{grid-column:1/-1}}
@media(max-width:620px){.forecast-location-panel{padding:15px}.forecast-location-form{grid-template-columns:1fr}.forecast-location-form .btn{width:100%}.forecast-coord-form{grid-template-columns:1fr}.forecast-location-active{align-items:flex-start}.forecast-location-active .status-pill{order:3}.regional-xema-values{grid-template-columns:1fr 1fr}}


/* 2.13.1 · Previsió Catalunya UX polish */
.forecast-location-picker{margin-bottom:clamp(22px,2.5vw,34px)}
.nowcast-rail,.hourly-rail,.forecast-day-grid{scrollbar-width:none;-ms-overflow-style:none}
.nowcast-rail::-webkit-scrollbar,.hourly-rail::-webkit-scrollbar,.forecast-day-grid::-webkit-scrollbar{display:none;width:0;height:0}
.nowcast-rail,.hourly-rail{padding-bottom:4px}
@media(max-width:760px){.forecast-day-grid{padding-bottom:4px}}


/* 2.13.2 Production RC · public UX hardening */
.nav-chat-link{position:relative}.nav-chat-badge{position:absolute;top:-5px;right:-7px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;display:inline-grid;place-items:center;background:#e73322;color:#fff;border:2px solid #fff;font-size:10px;font-weight:900;line-height:1}.nav-chat-badge[hidden]{display:none!important}
.camera-live-heading .status-row{column-gap:14px;row-gap:9px;align-items:center}.camera-location{display:inline-block;line-height:1.35}.camera-live-heading h1{margin-top:14px}
.station-hero .status-row{gap:10px}.station-hero .status-pill{max-width:100%}.station-details-panel{margin-top:28px}
.chart-svg-axes{overflow:visible}.fc-axis-line{stroke:#c8cdd4;stroke-width:1.2}.fc-axis-title{fill:#343a44;font-size:12px;font-weight:800}.fc-chart-summary{fill:#525967;font-size:11px;font-weight:700}.fc-current-dot{fill:#fff;stroke:#171717;stroke-width:3}
.forecast-location-picker{margin-bottom:28px}.forecast-location-panel{box-shadow:0 8px 26px rgba(20,24,27,.05)}.forecast-main-hero{margin-top:0}
.radar-v2-main{grid-template-areas:"map" "timeline" "actions"}.radar-map-wrap{grid-area:map}.radar-timeline-card{grid-area:timeline}.radar-actions{grid-area:actions}
@media(max-width:900px){.radar-v2-layout{display:flex;flex-direction:column}.radar-v2-main{display:contents}.radar-map-wrap{order:1;width:100%}.radar-timeline-card{order:2;width:100%}.radar-side-controls{order:3;width:100%;grid-template-columns:1fr 1fr}.radar-actions{order:4;width:100%}.radar-source-box{display:none}.radar-native-map{min-height:430px;height:58vh}}
@media(max-width:600px){.camera-live-heading .status-row{display:flex;flex-wrap:wrap;gap:10px 14px}.camera-live-heading .badge{flex:0 0 auto}.camera-location{flex:1 1 150px}.camera-live-heading h1{font-size:clamp(28px,9vw,40px);line-height:1.05}.station-hero{padding:22px 17px}.station-hero h1{font-size:clamp(34px,10vw,46px)}.station-hero .status-row{align-items:flex-start}.radar-side-controls{grid-template-columns:1fr}.radar-native-map{min-height:380px;height:54vh}.radar-timeline-card{padding:14px}.radar-lead-buttons{overflow-x:auto;white-space:nowrap}.forecast-location-picker{margin-bottom:22px}.forecast-location-panel{padding:18px}.chart-svg-axes{min-width:520px}.chart-panel{overflow-x:auto}.mini-chart.full{overflow-x:auto}}

/* 2.13.3 · final public polish: radar readability + mobile nowcast/camera */
.radar-native-map .leaflet-tile-pane{filter:saturate(.72) contrast(.92) brightness(1.04)}
.radar-future-live{display:grid;grid-template-columns:1fr;gap:7px;padding:12px 14px;text-align:center}
.radar-future-head{display:grid;grid-template-columns:minmax(42px,auto) 1fr minmax(62px,auto);align-items:center;gap:10px;width:100%}
.radar-future-head>b{font-size:12px;letter-spacing:.08em;line-height:1.25;color:#4d2d62;text-align:center}
.radar-future-head>span{white-space:nowrap;font-size:12px;color:#6f527f}
.radar-future-head>span:last-child{text-align:right}
.radar-future-head>span:first-child{text-align:left}
.radar-future-live>small{display:block!important;margin:0;color:#6f527f;line-height:1.35}
.radar-future-live .radar-lead-buttons{margin-top:2px}
@media(max-width:650px){
 .radar-future-live{padding:13px 12px;gap:8px}
 .radar-future-head{grid-template-columns:auto 1fr auto;gap:8px}
 .radar-future-head>b{font-size:11px;letter-spacing:.055em}
 .radar-future-head>span{font-size:11px}
 .radar-future-live>small{font-size:11px!important;text-align:left}
 .radar-lead-buttons{display:grid;grid-template-columns:minmax(94px,1.35fr) repeat(4,minmax(42px,.7fr));gap:6px;width:100%;overflow:visible;white-space:normal;justify-content:stretch}
 .radar-lead-buttons button{min-width:0;padding:7px 6px;font-size:11px}
 .camera-live-meta{padding:24px 24px 26px;gap:20px}
 .camera-live-heading{width:100%;gap:11px}
 .camera-live-heading .status-row{gap:10px 16px;margin-bottom:2px}
 .camera-live-heading h1{font-size:clamp(30px,8.4vw,36px);line-height:1.08;letter-spacing:-.02em}
 .camera-live-heading p{margin:0;line-height:1.65}
 .camera-update{width:100%;padding-top:16px;border-top:1px solid var(--line)}
}
@media(max-width:380px){
 .radar-future-head{grid-template-columns:1fr auto}
 .radar-future-head>b{grid-column:1/-1;grid-row:1;text-align:left}
 .radar-future-head>span:first-child{grid-column:1;grid-row:2}
 .radar-future-head>span:last-child{grid-column:2;grid-row:2}
 .radar-lead-buttons{grid-template-columns:1fr repeat(2,minmax(46px,.6fr));}
 .radar-lead-buttons button:nth-child(4),.radar-lead-buttons button:nth-child(5){grid-column:auto}
 .camera-live-meta{padding-left:21px;padding-right:21px}
}

/* 2.15.0 · Radar Pro */
.radar-native-map .leaflet-tile-pane{filter:saturate(.55) contrast(.88) brightness(1.06)}
.radar-native-map .leaflet-nowcast-pane path{vector-effect:non-scaling-stroke}
@media(max-width:650px){
 .radar-future-live>small{text-align:center}
}

/* 2.18 · estat de risc meteorològic continu */
.risk-state-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.risk-state-card{min-height:178px;padding:18px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 8px 22px rgba(15,23,42,.05)}
.risk-state-card.risk-moderate{background:linear-gradient(180deg,#fff,#fffaf0)}
.risk-state-card.risk-high{background:linear-gradient(180deg,#fff,#fff5ed)}
.risk-state-card.risk-very_high{background:linear-gradient(180deg,#fff,#fff0ee)}
.risk-state-card-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.risk-state-card-head>div{display:grid;gap:7px}.risk-state-card h3{margin:0;font-size:1rem}.risk-state-card p{margin:0 0 10px;line-height:1.48;font-size:.9rem}.risk-state-card small{color:var(--muted);line-height:1.4}.risk-state-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(135deg,#fff7e1,#ffe7de);font-size:21px;flex:0 0 auto}
.risk-state-card-head .badge,.risk-admin-title>.badge{min-height:32px;padding:0 14px;line-height:1;justify-content:center;align-items:center;box-sizing:border-box}
.risk-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.risk-admin-card{padding:18px;border:1px solid var(--line);border-radius:16px;background:#fafbfc}.risk-admin-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.risk-admin-title>div{display:flex;align-items:center;gap:10px}.risk-admin-title h3{margin:0}.risk-admin-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}.risk-admin-metrics>div{display:grid;gap:2px;padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:#fff}.risk-admin-metrics span{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.risk-admin-metrics b{font-size:.9rem}.risk-reasons{margin:12px 0;padding-left:19px;color:#454b55;font-size:.85rem}.risk-reasons li+li{margin-top:5px}
@media(max-width:1000px){.risk-state-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.risk-state-grid,.risk-admin-grid{grid-template-columns:1fr}.risk-admin-metrics{grid-template-columns:1fr 1fr}.risk-state-card{min-height:0}}
@media(max-width:480px){.risk-admin-metrics{grid-template-columns:1fr}.risk-admin-title{align-items:center}}

/* Meteo Agramunt 2.18.6 · final UX/system normalization */
/* Shared scroll surfaces: same border, radius and touch scrolling across Admin/public tables. */
.table-wrap,.table-scroll,.model-compare-scroll,.replay-table-wrap,.station-history-table-wrap,.air-legend-table{
  width:100%;max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch;
  border:1px solid var(--line);border-radius:16px;background:#fff;
}
.table-wrap>table,.table-scroll>table,.model-compare-scroll>table,.replay-table-wrap>table,.station-history-table-wrap>table,.air-legend-table>table{margin:0}
.table-wrap table,.model-compare-scroll table,.air-legend-table table{min-width:640px}
.table-wrap thead th,.model-compare-scroll thead th,.air-legend-table thead th,.station-history-table-wrap thead th{position:sticky;top:0;z-index:2}
.cell-wrap{white-space:normal!important;min-width:240px;max-width:520px;line-height:1.5;overflow-wrap:anywhere;word-break:normal}
.cell-wrap-compact{white-space:normal!important;min-width:170px;max-width:320px;overflow-wrap:anywhere;line-height:1.45}
.admin-message-cell{min-width:300px;max-width:620px}
.admin-community-publication{min-width:300px}
.table-subline{display:block;margin-top:3px;color:var(--muted);font-size:12px;white-space:normal}
body.page-admin table form{margin:0}
body.page-admin table .toolbar{min-width:max-content}
body.page-admin table select{min-width:112px}

/* Form controls and action groups share the same visual rhythm. */
.form-grid>.btn{justify-self:start}
.push-actions{margin-top:2px}
.push-manager .toolbar{align-items:stretch}
.push-manager .toolbar>.btn,.push-manager .toolbar>a.btn{min-height:44px}

/* Web Push status: one dot, one semantic state, and consistent feedback. */
.push-state-box{justify-content:flex-start;flex-wrap:nowrap;min-height:72px}
.push-state-box>div{min-width:0}
.push-state-box b{display:block;margin-bottom:2px}
.push-state-box p{margin:0!important;line-height:1.45}
.push-indicator{width:14px;height:14px;display:block;flex:0 0 14px;border-radius:50%;background:#a5a7ad;box-shadow:0 0 0 5px rgba(165,167,173,.12)}
.push-indicator:before{content:none!important}
.push-indicator.granted{background:var(--success);box-shadow:0 0 0 5px rgba(20,125,93,.12)}
.push-indicator.blocked,.push-indicator.error{background:var(--danger);box-shadow:0 0 0 5px rgba(209,59,42,.11)}
.push-indicator.disconnected,.push-indicator.stale,.push-indicator.never{background:var(--brand);box-shadow:0 0 0 5px rgba(237,170,8,.13)}
.push-indicator.checking{background:#8d94a0;animation:push-pulse 1.2s ease-in-out infinite}
.push-status{margin:0;color:var(--muted)}
.push-status.granted{color:var(--success)}
.push-status.blocked,.push-status.error{color:var(--danger)!important}
.push-status.disconnected,.push-status.stale{color:var(--warning)!important}
.push-status.never,.push-status.checking{color:var(--muted)}
@keyframes push-pulse{0%,100%{opacity:.45}50%{opacity:1}}

/* Login and register are now the same product surface, not isolated utility pages. */
.auth-card{width:min(680px,100%);padding:clamp(24px,4vw,34px)}
.auth-brand{display:flex;align-items:center;gap:12px;width:max-content;max-width:100%;margin:0 0 24px;padding:8px 11px 8px 8px;border:1px solid var(--line);border-radius:16px;background:#fffaf0}
.auth-brand img{width:44px;height:44px;object-fit:contain;flex:0 0 auto}
.auth-brand span{display:grid;gap:1px;min-width:0}
.auth-brand b{line-height:1.2}
.auth-brand small{color:var(--muted);font-size:12px;line-height:1.35}
.auth-card>h1{margin:7px 0 8px;line-height:1.08}
.auth-card>p{margin-top:0;color:var(--muted)}
.auth-card .form-grid{margin-top:22px}
.auth-card .form-grid>.btn{width:100%}
.auth-card .check-row{display:flex;align-items:flex-start;gap:10px;line-height:1.45;font-weight:700}
.auth-card .check-row input{width:auto;min-height:0;margin-top:4px;flex:0 0 auto}

@media(max-width:760px){
  .table-wrap,.table-scroll,.model-compare-scroll,.replay-table-wrap,.station-history-table-wrap,.air-legend-table{border-radius:14px}
  .table-wrap table,.model-compare-scroll table,.air-legend-table table{min-width:600px}
  .cell-wrap{min-width:220px;max-width:430px}.cell-wrap-compact{min-width:155px;max-width:260px}
  .push-state-box{align-items:flex-start;min-height:0}
  .push-manager .toolbar{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .push-manager .toolbar>.btn,.push-manager .toolbar>a.btn{width:100%}
}
@media(max-width:520px){
  .auth-card{padding:22px 18px}.auth-brand{width:100%}
  .push-manager .toolbar{grid-template-columns:1fr}
  .push-global-banner{bottom:10px;width:calc(100% - 20px);padding:14px}
  .push-global-banner .toolbar{display:grid;grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){.push-indicator.checking{animation:none}}

/* 2.18.6 · remembered-device security controls */
.account-device-list{display:grid;gap:9px;margin:12px 0 4px}
.account-device{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:#fafbfc}
.account-device>div{display:grid;gap:2px;min-width:0}.account-device b{font-size:14px}.account-device small{color:var(--muted);font-size:11px;line-height:1.4}
.account-device form{margin:0;flex:0 0 auto}.account-device .btn-small{min-height:34px;padding:6px 10px;font-size:12px}
@media(max-width:520px){.account-device{align-items:flex-start;flex-direction:column}.account-device form,.account-device .btn{width:100%}}

/* 2.18.6 · secondary surfaces normalized after full visual audit */
.source-chip{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;margin-bottom:8px;border:1px solid #ecd99e;border-radius:999px;background:#fff8e7;color:#755411;font-size:11px;font-weight:900;letter-spacing:.055em;text-transform:uppercase}
.home-hero-main{min-width:0}
.notifications-hero{display:flex;align-items:center;justify-content:space-between;gap:20px}
.notifications-hero>div{min-width:0}.notifications-hero>.badge{flex:0 0 auto}
.nearby-alert-toggle{display:grid;gap:5px;margin:0 0 15px;padding:13px 14px;border:1px solid #eadcb9;border-radius:14px;background:#fffaf0;cursor:pointer}
.nearby-alert-toggle small{color:var(--muted);line-height:1.45}.alert-pref-grid .card{display:grid;align-content:start;gap:9px;min-width:0}.alert-pref-grid .card select,.alert-pref-grid .card input{max-width:100%}
.align-end{align-self:end}
.danger-zone{border-color:#efc7c2;background:linear-gradient(180deg,#fff,#fff8f7)}
.form-inline-confirm{align-items:end}
.radar-diagnostic-admin{margin-top:14px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:#fbfcfd}
.radar-diagnostic-admin>summary{cursor:pointer;font-weight:900;line-height:1.4}.radar-diagnostic-admin[open]>summary{margin-bottom:12px}.radar-diagnostic-results{margin-top:14px}
.regional-xema-context{min-width:0}.replay-benchmark{border-left:4px solid #d8c2e7}.replay-motion{margin-top:12px}.risk-state-section{min-width:0}
@media(max-width:760px){.notifications-hero{align-items:flex-start;flex-direction:column}.notifications-hero>.badge{align-self:flex-start}.align-end{align-self:stretch}.align-end>.btn{width:100%}}

/* Meteo Agramunt 2.18.8 · guided tour copy and anchor refinement */
html.tour-open{scroll-behavior:auto}
.app-tour-modal{z-index:1700;display:block;place-items:initial;padding:0;background:transparent;backdrop-filter:none;overflow:hidden}
.app-tour-modal[hidden]{display:none}
.tour-spotlight{position:fixed;z-index:1;pointer-events:none;border:3px solid #f0b421;border-radius:18px;background:transparent;box-shadow:0 0 0 9999px rgba(13,19,31,.68),0 0 0 6px rgba(240,180,33,.16);transition:left .2s ease,top .2s ease,width .2s ease,height .2s ease,border-radius .2s ease}
.tour-spotlight[hidden]{display:none}
.app-tour-card{position:fixed;z-index:2;width:min(430px,calc(100vw - 24px));max-height:min(560px,calc(100dvh - 24px));overflow:auto;overscroll-behavior:contain;padding:20px 21px 18px;border:1px solid rgba(15,23,42,.11);border-radius:20px;background:#fff;box-shadow:0 24px 70px rgba(8,15,28,.32);transition:left .18s ease,top .18s ease;scrollbar-width:thin}
.app-tour-card h2{margin:6px 0 9px;padding-right:26px;font-size:clamp(22px,3vw,28px);line-height:1.12}.app-tour-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.58}
.app-tour-card .app-modal-close{right:11px;top:11px;width:34px;height:34px;font-size:21px}
.tour-progress-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-right:34px}.tour-route-hint{min-height:18px;color:var(--muted);font-size:11px;font-weight:800;text-align:right}.tour-progress{min-height:28px;align-items:center;padding:0 10px}.tour-progress-bar{height:5px;margin:8px 0 13px;background:#eef0f3}.tour-progress-bar i{background:linear-gradient(90deg,var(--brand),#f0822d)}
.tour-slide{min-height:0;padding-top:4px}.tour-target-name{margin-bottom:6px}.tour-slide>.eyebrow{display:block;margin-bottom:2px}.tour-points{display:grid;gap:7px;margin:12px 0 3px;padding:0;list-style:none}.tour-points li{position:relative;padding-left:19px;color:#424a57;font-size:13px;line-height:1.45}.tour-points li::before{content:'✓';position:absolute;left:0;top:0;color:#2c7a5b;font-weight:950}
.tour-actions{position:sticky;bottom:-18px;z-index:3;margin:16px -4px -18px;padding:14px 4px 2px;border-top:1px solid var(--line);background:linear-gradient(180deg,rgba(255,255,255,.92),#fff 22%)}.tour-actions .btn{min-height:40px}.tour-actions [data-tour-skip]{font-size:12px;color:var(--muted)}
.tour-target-highlight{position:relative!important;z-index:auto!important;outline:0!important;outline-offset:0!important;box-shadow:none!important;scroll-margin-top:96px!important;scroll-margin-bottom:96px!important}
@media(max-width:760px){
  .app-tour-modal{padding:0}.app-tour-card{width:calc(100vw - 20px);max-height:min(52dvh,500px);padding:17px 16px 15px;border-radius:18px}.app-tour-card h2{font-size:21px;padding-right:24px}.app-tour-card p{font-size:13px;line-height:1.52}.tour-points{gap:6px;margin-top:10px}.tour-points li{font-size:12px;line-height:1.4}.tour-progress-row{padding-right:32px}.tour-actions{grid-template-columns:1fr 1fr;gap:8px;bottom:-15px;margin-bottom:-15px;padding-bottom:1px}.tour-actions [data-tour-skip]{grid-row:2;grid-column:1/-1}.tour-spotlight{border-width:2px;border-radius:14px;box-shadow:0 0 0 9999px rgba(13,19,31,.7),0 0 0 5px rgba(240,180,33,.14)}.tour-target-highlight{scroll-margin-top:74px!important;scroll-margin-bottom:74px!important}
}
@media(max-width:420px){.app-tour-card{max-height:min(55dvh,480px)}.tour-route-hint{display:none}}
@media(prefers-reduced-motion:reduce){.tour-spotlight,.app-tour-card{transition:none}}

/* Meteo Agramunt 2.19.2 · Intelligence Layer / Forecast Analyzer */
.analysis-admin-hero{background:linear-gradient(135deg,#fffaf0,#fff,#f5f8fb)}
.analysis-mode-banner{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:20px 22px;border:1px solid var(--line);border-radius:18px;background:#fff}
.analysis-mode-banner.is-shadow{border-color:#d9d7eb;background:linear-gradient(135deg,#fbfaff,#fff)}
.analysis-mode-banner.is-live{border-color:#c9e7d7;background:linear-gradient(135deg,#f5fff9,#fff)}
.analysis-mode-banner h2{margin:4px 0 5px}.analysis-mode-banner p{margin:0;color:var(--muted);max-width:780px;line-height:1.5}
.analysis-overview-grid{display:grid;grid-template-columns:minmax(0,1.8fr) repeat(3,minmax(150px,.55fr));gap:14px}
.analysis-lead-card,.analysis-score-card{padding:20px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 10px 25px rgba(15,23,42,.035)}
.analysis-lead-card h2{margin:4px 0 8px}.analysis-uncertainty{margin:12px 0 0;padding:12px 14px;border-radius:13px;background:#fff8e7;line-height:1.5}
.analysis-score-card{display:grid;align-content:start;gap:6px}.analysis-score-card>span{font-size:12px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.04em}.analysis-score-card>strong{font-size:34px;line-height:1}.analysis-score-card>strong small{font-size:13px;color:var(--muted);margin-left:2px}.analysis-score-card p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.45}
.analysis-meter{width:100%;height:7px;margin:6px 0 2px;border:0;border-radius:999px;overflow:hidden;background:#eef0f3;appearance:none}.analysis-meter::-webkit-progress-bar{background:#eef0f3;border-radius:999px}.analysis-meter::-webkit-progress-value{background:linear-gradient(90deg,#df9c10,#ed6f33);border-radius:999px}.analysis-meter::-moz-progress-bar{background:linear-gradient(90deg,#df9c10,#ed6f33);border-radius:999px}
.analysis-message-list{display:grid;gap:9px;margin:0;padding:0;list-style:none}.analysis-message-list li{position:relative;padding:11px 13px 11px 35px;border:1px solid var(--line);border-radius:13px;background:#fafbfc;line-height:1.48}.analysis-message-list li::before{content:'•';position:absolute;left:14px;top:8px;color:var(--brand);font-size:22px;font-weight:900}.analysis-message-list.is-change li::before{content:'↗';top:11px;font-size:14px}
.analysis-facts-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.analysis-facts-grid .card{min-width:0}.analysis-fact-icon{display:grid;place-items:center;width:38px;height:38px;margin-bottom:10px;border-radius:12px;background:#fff7e5;font-size:19px}.analysis-facts-grid h3{margin:0 0 7px}.analysis-facts-grid p{margin:0 0 6px}.analysis-facts-grid small{display:block;color:var(--muted);line-height:1.4}.analysis-big-value{font-size:22px;font-weight:900;letter-spacing:-.02em}
.analysis-convective-scores{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0}.analysis-convective-scores>div,.analysis-radar-grid>div{display:grid;gap:2px;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:#fafbfc}.analysis-convective-scores span,.analysis-radar-grid span{font-size:11px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.04em}.analysis-convective-scores b,.analysis-radar-grid b{font-size:14px}
.analysis-evidence-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.analysis-evidence-columns>div{padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}.analysis-evidence-columns h3{margin:0 0 8px;font-size:14px}.analysis-evidence-columns ul{margin:0;padding-left:18px;color:#464d58;line-height:1.55}.analysis-radar-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.analysis-radar-grid small{color:var(--muted);line-height:1.35}
.analysis-model-table{min-width:1040px}.analysis-model-table td,.analysis-model-table th{vertical-align:middle}
.analysis-contradiction-list{display:grid;gap:9px}.analysis-contradiction-list>div{padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:#fafbfc}.analysis-contradiction-list>div.is-warning{border-color:#efcf85;background:#fff9ea}.analysis-contradiction-list>div.is-info{border-color:#cddceb;background:#f7fbff}.analysis-contradiction-list b{display:block;margin-bottom:4px}.analysis-contradiction-list p{margin:0;color:#4b5260;line-height:1.48}
.analysis-horizon-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.analysis-horizon-grid>div{display:grid;gap:4px;padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:#fafbfc}.analysis-horizon-grid span{font-size:11px;color:var(--muted);font-weight:850;text-transform:uppercase;letter-spacing:.04em}.analysis-horizon-grid b{font-size:14px}.analysis-horizon-grid small{color:var(--muted);line-height:1.42}.analysis-table-note{display:block;margin-top:3px;color:var(--muted);font-size:10px;line-height:1.3}.analysis-pending-table{min-width:760px}

.analysis-risk-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.analysis-risk-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:17px;border:1px solid var(--line);border-radius:16px;background:#fff}.analysis-risk-head{display:flex;align-items:center;gap:10px;min-width:0}.analysis-risk-head>div{display:grid;gap:5px}.analysis-risk-head h3{margin:0}.analysis-risk-card>strong{align-self:center;font-size:18px}.analysis-risk-card>p,.analysis-risk-card>small{grid-column:1/-1;margin:0}.analysis-risk-card>p{line-height:1.45}.analysis-risk-card>small{color:var(--muted);line-height:1.4}
.analysis-explanation-list{display:grid;gap:9px}.analysis-explanation-list>div{padding:12px 13px;border:1px solid var(--line);border-radius:13px;background:#fafbfc}.analysis-explanation-list b{display:block;margin-bottom:4px}.analysis-explanation-list p{margin:0;color:#4b5260;line-height:1.5}
.analysis-source-list{display:grid;gap:8px}.analysis-source-list>div{display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:9px;padding:11px 12px;border:1px solid var(--line);border-radius:12px}.analysis-source-list small{color:var(--muted)}.analysis-source-dot{width:10px;height:10px;border-radius:50%;background:#b7bac1}.analysis-source-dot.is-fresh{background:var(--success);box-shadow:0 0 0 4px rgba(20,125,93,.1)}.analysis-source-dot.is-stale{background:var(--warning);box-shadow:0 0 0 4px rgba(214,143,0,.11)}
.analysis-history-list{display:grid;gap:7px;max-height:520px;overflow:auto}.analysis-history-list>div{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:7px 10px;padding:10px 11px;border:1px solid var(--line);border-radius:12px}.analysis-history-list time{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.analysis-history-list b{grid-column:1/-1;font-size:13px;line-height:1.4}.analysis-history-list small{grid-column:1/-1;color:var(--muted)}
.analysis-instrument-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.analysis-instrument-grid>div{padding:13px;border:1px solid var(--line);border-radius:13px;background:#fafbfc}.analysis-instrument-grid b{display:block;margin-bottom:5px}.analysis-instrument-grid p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.analysis-instrument-grid code{font-size:11px}
@media(max-width:1100px){.analysis-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.analysis-lead-card{grid-column:1/-1}.analysis-facts-grid,.analysis-instrument-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.analysis-risk-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.analysis-mode-banner{align-items:stretch;flex-direction:column;padding:18px}.analysis-mode-banner .toolbar{display:grid;grid-template-columns:1fr 1fr}.analysis-mode-banner .btn{width:100%}.analysis-overview-grid{grid-template-columns:1fr}.analysis-lead-card{grid-column:auto}.analysis-facts-grid,.analysis-risk-grid,.analysis-instrument-grid{grid-template-columns:1fr}.analysis-convective-scores{grid-template-columns:1fr 1fr}.analysis-evidence-columns{grid-template-columns:1fr}.analysis-history-list>div{grid-template-columns:auto minmax(0,1fr)}.analysis-history-list .badge{justify-self:start}.analysis-source-list>div{grid-template-columns:12px minmax(0,1fr)}.analysis-source-list small{grid-column:2}.analysis-model-table{min-width:1020px}.analysis-horizon-grid{grid-template-columns:1fr}}
@media(max-width:480px){.analysis-mode-banner .toolbar,.analysis-convective-scores,.analysis-radar-grid{grid-template-columns:1fr}.analysis-score-card>strong{font-size:30px}}

/* Meteo Agramunt 2.19.3 · Station QC Observatory */
.station-qc-hero{background:linear-gradient(135deg,#f7fbff,#fff,#fff9ed)}
.station-qc-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.station-qc-network-table{min-width:980px}.station-qc-network-table tr.is-selected td{background:#fffaf0}.station-qc-network-table a{display:block;color:inherit;text-decoration:none}.station-qc-network-table td,.station-qc-network-table th{vertical-align:middle}
.qc-grade{display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:30px;padding:4px 9px;border:1px solid var(--line);border-radius:999px;background:#f5f6f8;font-weight:900;font-size:12px;letter-spacing:.02em}.qc-grade.grade-aplus,.qc-grade.grade-a{background:#eefaf4;border-color:#b9dec9}.qc-grade.grade-b{background:#f4f9ff;border-color:#c8dceb}.qc-grade.grade-c{background:#fff8e8;border-color:#efd28e}.qc-grade.grade-d,.qc-grade.grade-x{background:#fff0ee;border-color:#efc0b8}.qc-critical{color:var(--danger)}
.qc-main-score{display:grid;grid-template-columns:auto auto;align-items:center;justify-items:end;gap:4px 10px}.qc-main-score>strong{font-size:34px;line-height:1}.qc-main-score>strong small{font-size:13px;color:var(--muted)}.qc-main-score>small{grid-column:1/-1;color:var(--muted)}
.station-qc-window-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.qc-window-score{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:9px 0}.qc-window-score b{font-size:21px}.station-qc-window-grid p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}
.station-qc-dimension-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.station-qc-dimension-grid .analysis-score-card{padding:16px}.station-qc-dimension-grid .analysis-score-card>strong{font-size:28px}
.station-qc-variable-list,.station-qc-aptitude-list{display:grid;gap:9px}.station-qc-variable-list>div,.station-qc-aptitude-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px 12px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#fafbfc}.station-qc-variable-list progress{grid-column:1/-1}.station-qc-variable-list small,.station-qc-aptitude-list small{grid-column:1/-1;color:var(--muted);font-size:11px}.station-qc-aptitude-list b{font-size:13px}
.station-qc-findings{display:grid;gap:9px}.station-qc-findings>div{padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:#fafbfc}.station-qc-findings>div.severity-2{border-color:#efc0b8;background:#fff6f4}.station-qc-findings>div.severity-1{border-color:#efd28e;background:#fffaf0}.station-qc-findings>div>div{display:flex;align-items:center;gap:9px}.station-qc-findings p{margin:7px 0 4px;line-height:1.48}.station-qc-findings small{color:var(--muted)}
@media(max-width:1200px){.station-qc-dimension-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.station-qc-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.station-qc-window-grid{grid-template-columns:1fr}.station-qc-dimension-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.station-qc-overview,.station-qc-dimension-grid{grid-template-columns:1fr}.qc-main-score{justify-items:start}.station-qc-findings>div>div{align-items:flex-start;flex-direction:column}.station-qc-network-table{min-width:920px}}

/* Meteo Agramunt 2.19.4 · Station QC Observatory refinat */
.station-qc-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;background:linear-gradient(135deg,#f8fbff 0%,#fff 48%,#fff8e9 100%)}
.qc-hero-copy{max-width:820px}.qc-hero-copy h1{margin-bottom:8px}.qc-hero-copy p{margin:0;color:var(--muted);line-height:1.55}.qc-hero-badges{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.qc-soft-badge,.qc-evidence-badge,.qc-mini-state,.qc-pending{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:999px;background:#f7f8fa;font-size:11px;font-weight:850;line-height:1;padding:6px 9px;white-space:nowrap}.qc-soft-badge{background:#fff}.qc-evidence-badge.is-ready{background:#eefaf4;border-color:#c5e3d2;color:#176447}.qc-evidence-badge.is-provisional{background:#fff8e8;border-color:#eed08a;color:#8a5b00}.qc-pending{padding:5px 8px;background:#f6f7f9;color:var(--muted)}
.qc-mode-banner{box-shadow:0 14px 34px rgba(20,30,50,.04)}
.station-qc-overview{grid-template-columns:repeat(4,minmax(0,1fr))}.qc-stat-card{display:grid;gap:5px;padding:18px 19px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(15,23,42,.035)}.qc-stat-card>span{font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.qc-stat-card>strong{font-size:32px;line-height:1}.qc-stat-card>small{color:var(--muted);line-height:1.4}
.qc-network-panel{overflow:hidden}.station-qc-network-table{min-width:1040px}.station-qc-network-table th{white-space:nowrap}.station-qc-network-table tr.is-selected td{background:#fff8eb}.station-qc-network-table tr.is-selected td:first-child{box-shadow:inset 3px 0 0 var(--brand)}.station-qc-network-table tbody tr:hover td{background:#fafbfc}.station-qc-network-table a{display:block;color:inherit;text-decoration:none}.qc-grade-wrap{display:flex;align-items:center;gap:8px}.qc-grade-wrap b{font-size:12px}.qc-grade{box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.qc-station-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:22px 24px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(135deg,#fff,#fafcff);box-shadow:0 12px 30px rgba(15,23,42,.035)}.qc-station-header h2{margin:4px 0 5px}.qc-station-header p{margin:0;color:var(--muted)}.qc-inline-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.qc-inline-meta span{display:inline-flex;padding:6px 9px;border-radius:999px;background:#f4f6f8;color:#59606d;font-size:11px;font-weight:750}.qc-inline-meta span.is-warning{background:#fff6df;color:#8a5b00}
.qc-window-card{padding:17px 18px;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:0 8px 20px rgba(15,23,42,.025)}.qc-window-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.qc-window-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.qc-dimension-card{min-height:122px}.qc-dimension-card .qc-no-score{color:#a0a6b0}.qc-dimension-card p{margin:2px 0 0}
.station-qc-variable-list>div,.station-qc-aptitude-list>div{background:#fff}.qc-mini-state{margin-right:5px;padding:4px 7px}.qc-mini-state.is-usable{background:#eefaf4;border-color:#c5e3d2;color:#176447}.qc-mini-state.is-provisional,.qc-mini-state.is-insufficient_history{background:#fff8e8;border-color:#eed08a;color:#8a5b00}.qc-mini-state.is-not_available{background:#f5f6f8;color:var(--muted)}
.qc-installation-panel{overflow:hidden}.qc-install-summary{display:grid;justify-items:end;gap:3px;max-width:280px;text-align:right}.qc-install-summary b{font-size:30px;line-height:1}.qc-install-summary span{color:var(--muted);font-size:12px}.qc-provider-note{padding:15px 17px;border:1px solid #d8e4ef;border-radius:14px;background:#f8fbff}.qc-provider-note p{margin:6px 0 0;color:var(--muted);line-height:1.5}.qc-install-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}.qc-install-status-grid>div{display:grid;gap:3px;padding:12px 13px;border:1px solid var(--line);border-radius:13px;background:#fafbfc}.qc-install-status-grid span{font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.qc-install-status-grid b{font-size:13px}
.qc-audit-form{margin-top:14px;border:1px solid var(--line);border-radius:15px;background:#fff}.qc-audit-form>summary{cursor:pointer;list-style:none;padding:14px 16px;font-weight:850}.qc-audit-form>summary::-webkit-details-marker{display:none}.qc-audit-form>summary::after{content:'＋';float:right;color:var(--muted)}.qc-audit-form[open]>summary{border-bottom:1px solid var(--line)}.qc-audit-form[open]>summary::after{content:'−'}.qc-install-form{display:grid;gap:0}.qc-form-section{padding:18px 18px 8px;border-bottom:1px solid var(--line)}.qc-form-section h3{margin:0 0 13px;font-size:14px}.qc-form-section label{font-size:12px;font-weight:750}.qc-form-section input,.qc-form-section select,.qc-form-section textarea{margin-top:6px}.qc-form-section textarea{width:100%;resize:vertical}.qc-form-actions{display:flex;align-items:center;gap:13px;padding:16px 18px}.qc-form-actions small{color:var(--muted);line-height:1.4}
.qc-method-stack{display:grid;gap:9px}.qc-method-stack>div{padding:12px 13px;border:1px solid var(--line);border-radius:13px;background:#fafbfc}.qc-method-stack b{display:block;margin-bottom:4px}.qc-method-stack p{margin:0;color:var(--muted);line-height:1.48}
.qc-settings-card{border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(15,23,42,.03);overflow:hidden}.qc-settings-card>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;list-style:none;padding:18px 20px}.qc-settings-card>summary::-webkit-details-marker{display:none}.qc-settings-card>summary>div{display:grid;gap:2px}.qc-settings-card>summary b{font-size:16px}.qc-settings-card>summary small{color:var(--muted)}.qc-settings-card>summary>span{font-size:12px;font-weight:850;color:var(--brand)}.qc-settings-form{display:grid;gap:16px;padding:18px 20px 20px;border-top:1px solid var(--line)}.qc-switch{display:flex!important;align-items:center;gap:12px;cursor:pointer;padding:12px 13px;border:1px solid var(--line);border-radius:13px;background:#fafbfc}.qc-switch input{position:absolute;opacity:0;pointer-events:none}.qc-switch-ui{position:relative;flex:0 0 42px;width:42px;height:24px;border-radius:999px;background:#c8ccd3;transition:.2s}.qc-switch-ui::after{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.18);transition:.2s}.qc-switch input:checked+.qc-switch-ui{background:var(--brand)}.qc-switch input:checked+.qc-switch-ui::after{transform:translateX(18px)}.qc-switch>span:last-child{display:grid;gap:2px}.qc-switch small{color:var(--muted);font-weight:500}
@media(max-width:1100px){.qc-install-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.station-qc-overview{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.station-qc-hero,.qc-station-header{align-items:flex-start;flex-direction:column}.qc-hero-badges{justify-content:flex-start}.qc-main-score{justify-items:start}.qc-install-summary{justify-items:start;text-align:left}.qc-install-status-grid{grid-template-columns:1fr 1fr}.qc-form-actions{align-items:stretch;flex-direction:column}.qc-form-actions .btn{width:100%}.qc-settings-card>summary{align-items:flex-start}.station-qc-network-table{min-width:930px}}
@media(max-width:560px){.station-qc-overview,.qc-install-status-grid{grid-template-columns:1fr}.qc-window-top{align-items:flex-start;flex-direction:column}.qc-inline-meta{display:grid}.qc-settings-card>summary{padding:16px}.qc-settings-form{padding:16px}.qc-form-section{padding:16px 14px 7px}.qc-form-actions{padding:14px}}

/* 2.19.4 · dossier físic, maduresa i checklist */
.qc-readiness-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:14px 0;padding:17px 18px;border:1px solid var(--line);border-radius:16px;background:#fafbfc}.qc-readiness-banner h3{margin:4px 0 5px;font-size:18px}.qc-readiness-banner p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.qc-readiness-banner.is-ready{background:#f2fbf6;border-color:#c6e5d3}.qc-readiness-banner.is-building{background:#fffaf0;border-color:#eed79e}.qc-readiness-state{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;padding:8px 11px;border-radius:999px;background:#fff;border:1px solid currentColor;font-size:11px;font-weight:900}.qc-readiness-banner.is-ready .qc-readiness-state{color:#176447}.qc-readiness-banner.is-building .qc-readiness-state{color:#8a5b00}
.qc-install-status-grid small{color:var(--muted);font-size:10px;line-height:1.35}.qc-readiness-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:12px 0 14px}.qc-readiness-steps>div{display:flex;align-items:flex-start;gap:9px;padding:12px;border:1px solid var(--line);border-radius:13px;background:#fafbfc}.qc-readiness-steps>div>span{display:grid;place-items:center;width:22px;height:22px;flex:0 0 22px;border-radius:50%;font-weight:900;font-size:12px}.qc-readiness-steps>div.is-ok>span{background:#ddf5e7;color:#176447}.qc-readiness-steps>div.is-wait>span{background:#fff1cb;color:#8a5b00}.qc-readiness-steps b{display:block;font-size:11px;line-height:1.3}.qc-readiness-steps small{display:block;margin-top:3px;color:var(--muted);font-size:10px}
.qc-checklist{margin:13px 0;border:1px solid var(--line);border-radius:15px;background:#fff;overflow:hidden}.qc-checklist>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;padding:14px 16px;font-weight:850}.qc-checklist>summary::-webkit-details-marker{display:none}.qc-checklist>summary span{color:var(--muted);font-size:11px}.qc-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 14px 14px}.qc-check-grid>div{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#fafbfc}.qc-check-icon{display:grid;place-items:center;width:22px;height:22px;flex:0 0 22px;border-radius:50%;font-size:12px;font-weight:900}.qc-check-grid b{display:block;font-size:11px;line-height:1.35}.qc-check-grid small{display:block;margin-top:3px;color:var(--muted);font-size:10px}.qc-check-grid .is-pass{border-color:#cfe7da;background:#f7fcf9}.qc-check-grid .is-pass .qc-check-icon{background:#ddf5e7;color:#176447}.qc-check-grid .is-fail{border-color:#efc5bd;background:#fff7f5}.qc-check-grid .is-fail .qc-check-icon{background:#fde4de;color:#9c2f20}.qc-check-grid .is-review{border-color:#eed79e;background:#fffaf0}.qc-check-grid .is-review .qc-check-icon{background:#fff0c7;color:#8a5b00}.qc-check-grid .is-missing .qc-check-icon{background:#eceff2;color:#77808c}
.qc-form-intro{margin:14px 18px 0;padding:13px 14px;border:1px solid #d9e4ef;border-radius:13px;background:#f8fbff}.qc-form-intro b{font-size:12px}.qc-form-intro p,.qc-form-help{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.5}.qc-form-help{margin:-6px 0 12px}.qc-install-form .form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.qc-install-form label{min-width:0}.qc-install-form input,.qc-install-form select,.qc-install-form textarea{width:100%;box-sizing:border-box}
@media(max-width:1180px){.qc-readiness-steps{grid-template-columns:repeat(3,minmax(0,1fr))}.qc-install-form .form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.qc-readiness-banner{align-items:flex-start;flex-direction:column}.qc-readiness-steps,.qc-check-grid,.qc-install-form .form-grid.three{grid-template-columns:1fr}.qc-readiness-state{align-self:flex-start}.qc-form-intro{margin:12px 14px 0}}

/* 2.19.9.3 · Station QC 1.4 ------------------------------------------------- */
.qc-tabs{display:flex;gap:7px;margin-top:14px;padding:6px;border:1px solid var(--line);border-radius:15px;background:#f7f8fa;overflow-x:auto;scrollbar-width:thin}
.qc-tabs a{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:8px 13px;border-radius:10px;color:#4f5663;text-decoration:none;font-size:12px;font-weight:850;white-space:nowrap}
.qc-tabs a:hover{background:#fff}.qc-tabs a.is-active{background:#fff;color:var(--text);box-shadow:0 2px 9px rgba(15,23,42,.08)}.qc-tabs a span{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#fff0cb;color:#8a5b00;font-size:10px}
.station-qc-overview.compact{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:0}.station-qc-overview.compact .qc-stat-card{box-shadow:none;background:#fafbfc}
.qc-metric-list{display:grid;gap:8px}.qc-metric-list>div{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#fafbfc}.qc-metric-list span{font-size:12px;color:#59606d}.qc-metric-list b{font-size:12px;text-align:right}
.qc-sensor-grid,.qc-aptitude-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.qc-sensor-grid>div,.qc-aptitude-grid>div{display:grid;gap:4px;padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:#fafbfc}.qc-sensor-grid span,.qc-aptitude-grid span{font-size:11px;font-weight:850;color:#5b626d}.qc-sensor-grid b,.qc-aptitude-grid b{font-size:18px}.qc-sensor-grid small,.qc-aptitude-grid small{color:var(--muted);font-size:10px;line-height:1.4}
.qc-compact-form{display:grid;gap:13px;margin-top:15px;padding-top:15px;border-top:1px solid var(--line)}.qc-compact-form>label{display:grid;gap:6px;font-size:12px;font-weight:750}.qc-compact-form input,.qc-compact-form select,.qc-compact-form textarea{width:100%;box-sizing:border-box}
.qc-timeline{display:grid;gap:8px;margin-top:14px}.qc-timeline>div{position:relative;display:grid;gap:3px;padding:12px 13px 12px 16px;border:1px solid var(--line);border-radius:12px;background:#fafbfc}.qc-timeline>div::before{content:'';position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:3px;background:#d9dde3}.qc-timeline b{font-size:12px}.qc-timeline small{color:var(--muted);font-size:10px}.qc-timeline p{margin:3px 0;color:#59606d;font-size:11px;line-height:1.4}.qc-timeline form{margin-top:4px}
.qc-incident-list{display:grid;gap:10px}.qc-incident-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.8fr);gap:14px;align-items:center;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:#fff}.qc-incident-card.is-active{border-left:4px solid #d69e2e}.qc-incident-card.is-closed{opacity:.78}.qc-incident-main{display:grid;gap:5px}.qc-incident-main>div{display:flex;align-items:center;gap:8px}.qc-incident-main b{font-size:12px}.qc-incident-main small{color:var(--muted);font-size:10px}.qc-review-form{display:grid;grid-template-columns:150px minmax(120px,1fr) auto;gap:7px;align-items:center}.qc-review-form select,.qc-review-form input{min-width:0;width:100%;box-sizing:border-box}
.qc-readiness-head{display:flex;align-items:baseline;gap:9px;margin-bottom:12px}.qc-readiness-head strong{font-size:34px;line-height:1}.qc-readiness-head span{font-size:11px;color:var(--muted)}.qc-readiness-list{display:grid;gap:7px}.qc-readiness-list>div{display:flex;align-items:flex-start;gap:9px;padding:10px 11px;border:1px solid var(--line);border-radius:11px;background:#fafbfc}.qc-readiness-list>div>span{display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px;border-radius:50%;font-weight:900;font-size:11px}.qc-readiness-list .is-pass>span{background:#ddf5e7;color:#176447}.qc-readiness-list .is-pending>span{background:#fff0cb;color:#8a5b00}.qc-readiness-list b{display:block;font-size:11px}.qc-readiness-list small{display:block;color:var(--muted);font-size:10px;margin-top:2px}
.qc-evidence-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.qc-evidence-gallery article{overflow:hidden;border:1px solid var(--line);border-radius:15px;background:#fff}.qc-evidence-gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:#eef1f4}.qc-evidence-gallery article>div{display:grid;gap:3px;padding:11px 12px}.qc-evidence-gallery b{font-size:12px}.qc-evidence-gallery small{color:var(--muted);font-size:10px}.qc-evidence-gallery p{margin:2px 0;color:#59606d;font-size:11px;line-height:1.4}
.qc-dossier{border:0;background:transparent}.qc-dossier>summary{display:flex;align-items:center;justify-content:space-between;gap:15px;list-style:none;cursor:pointer;padding:0 0 15px}.qc-dossier>summary::-webkit-details-marker{display:none}.qc-dossier>summary>div{display:grid;gap:2px}.qc-dossier>summary b{font-size:17px}.qc-dossier>summary small{color:var(--muted)}.qc-dossier>summary>span{font-size:12px;font-weight:850;color:var(--brand)}
.qc-installation-form{display:grid;gap:9px}.qc-installation-form .qc-form-section{padding:0;border:1px solid var(--line);border-radius:13px;background:#fff;overflow:hidden}.qc-installation-form .qc-form-section>summary{cursor:pointer;list-style:none;padding:13px 14px;font-size:12px;font-weight:850;background:#fafbfc}.qc-installation-form .qc-form-section>summary::-webkit-details-marker{display:none}.qc-installation-form .qc-form-section[open]>summary{border-bottom:1px solid var(--line)}.qc-installation-form .qc-form-section>.form-grid,.qc-installation-form .qc-form-section>label{margin:14px}.qc-installation-form .form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.qc-installation-form label{font-size:11px;font-weight:750;min-width:0}.qc-installation-form input,.qc-installation-form select,.qc-installation-form textarea{width:100%;box-sizing:border-box;margin-top:5px}
.station-qc-network-table td small{display:block;margin-top:3px;color:var(--muted);font-size:10px;line-height:1.25}.station-qc-network-table td>b,.station-qc-network-table td>span{white-space:nowrap}
.qc-settings-card .qc-switch{max-width:none}.qc-settings-card .qc-switch input[type=checkbox]{width:1px!important;height:1px!important;min-height:0!important;margin:0!important}
@media(max-width:1050px){.qc-incident-card{grid-template-columns:1fr}.qc-review-form{grid-template-columns:150px 1fr auto}.qc-evidence-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.qc-installation-form .form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.qc-tabs{margin-left:-2px;margin-right:-2px}.qc-sensor-grid,.qc-aptitude-grid,.station-qc-overview.compact,.qc-evidence-gallery{grid-template-columns:1fr}.qc-review-form{grid-template-columns:1fr}.qc-review-form .btn{width:100%}.qc-installation-form .form-grid.three{grid-template-columns:1fr}.qc-incident-card{padding:12px}.station-qc-network-table{min-width:1040px}}

/* 2.19.9 · Station QC navigation + diagnostics --------------------------- */
.qc-station-anchor{scroll-margin-top:88px}
.qc-run-diagnostic .panel{border-color:#efc5bd;background:#fffaf9}
.qc-run-diagnostic .section-head{margin-bottom:12px}
.qc-tech-error{display:grid;gap:7px;margin-top:12px;padding:12px 13px;border:1px solid #efc5bd;border-radius:12px;background:#fff}
.qc-tech-error b{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#8f3528}
.qc-tech-error code{display:block;overflow-wrap:anywhere;white-space:pre-wrap;font-size:11px;line-height:1.5;color:#5f2720}
.qc-tabs:target{scroll-margin-top:88px}
@media(max-width:760px){.qc-station-anchor{scroll-margin-top:76px}}

/* Station QC 1.3 · navegació i estat operatiu */
.qc-tabs{position:sticky;top:72px;z-index:18;background:rgba(247,248,250,.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 8px 20px rgba(15,23,42,.04)}
.qc-state{display:inline-flex;align-items:center;min-height:25px;padding:4px 9px;border-radius:999px;font-size:10px;font-weight:900;line-height:1.2;white-space:nowrap;border:1px solid transparent}
.qc-state.is-healthy{background:#e4f7ec;color:#176447;border-color:#c4ead4}
.qc-state.is-provisional{background:#eef3ff;color:#36568f;border-color:#d5e0f8}
.qc-state.is-recovered{background:#eef8f1;color:#356747;border-color:#cfe8d6}
.qc-state.is-attention{background:#fff5d9;color:#835c08;border-color:#f3dfaa}
.qc-state.is-critical,.qc-state.is-offline{background:#fff0ed;color:#973f32;border-color:#efc5bd}
.station-qc-network-table td:nth-child(2){min-width:150px}
@media(max-width:760px){.qc-tabs{top:60px}.qc-state{white-space:normal}.station-qc-network-table{min-width:1160px}}

/* 2.19.10.3 · Radar Pro UI 2.2 ------------------------------------------------ */
.radar-v2-shell{--radar-now-pct:70%}
.radar-timeline-title{display:grid;gap:3px}
.radar-timeline-title .radar-phase{display:inline-flex;width:max-content;align-items:center;min-height:22px;padding:3px 8px;border-radius:999px;background:#f0f2f4;color:#59616b;font-size:10px;font-weight:900;letter-spacing:.075em}
.radar-v2-shell.is-forecast .radar-timeline-title .radar-phase{background:#f1e9f7;color:#5f3377}
.radar-v2-shell.is-forecast .radar-map-status{background:rgba(67,39,81,.88)}
.radar-unified-slider{margin-bottom:5px}
.radar-timeline-zones{display:grid;grid-template-columns:var(--radar-now-pct) 1fr;height:22px;margin:1px 0 8px;border-radius:999px;overflow:hidden;border:1px solid #e3e5e8;background:#f4f5f6}
.radar-timeline-zones[hidden]{display:none!important}
.radar-timeline-zones span{display:flex;align-items:center;justify-content:center;min-width:0;padding:0 8px;font-size:9px;font-weight:900;letter-spacing:.065em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.radar-timeline-zones span:first-child{background:linear-gradient(90deg,#f9f3dc,#fff8df);color:#77621b}
.radar-timeline-zones span:last-child{background:linear-gradient(90deg,#f2eaf8,#eadcf4);color:#67377f;border-left:2px solid rgba(111,63,135,.25)}
.radar-future-live{border-color:#ddcce8;background:linear-gradient(145deg,#fbf8fd,#f4eef9);box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
.radar-nowcast-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:3px}
.radar-quick-leads,.radar-nowcast-modes{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.radar-quick-leads button,.radar-nowcast-modes button{appearance:none;border:1px solid #d7c4e3;background:#fff;color:#5a356e;border-radius:999px;padding:6px 10px;font:inherit;font-size:11px;font-weight:850;cursor:pointer;transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease}
.radar-quick-leads button:hover,.radar-nowcast-modes button:hover{border-color:#b998cc;transform:translateY(-1px)}
.radar-quick-leads button.active,.radar-nowcast-modes button.active{background:#5a2f72;color:#fff;border-color:#5a2f72}
.radar-nowcast-modes{padding-left:8px;border-left:1px solid #ddcce8}
.radar-toggle-advanced{margin-top:3px}
.radar-native-map .leaflet-nowcast-pane path{transition:fill-opacity .16s ease,stroke-opacity .16s ease;vector-effect:non-scaling-stroke}
.radar-native-map .leaflet-nowcast-pane .leaflet-interactive{filter:saturate(.94)}
.radar-v2-shell.is-forecast .radar-native-map{box-shadow:inset 0 0 0 1px rgba(111,63,135,.12)}
@media(max-width:650px){
 .radar-timeline-zones{height:20px}
 .radar-timeline-zones span{font-size:8px;padding:0 5px;letter-spacing:.045em}
 .radar-nowcast-toolbar{display:grid;grid-template-columns:1fr;gap:8px}
 .radar-quick-leads,.radar-nowcast-modes{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;width:100%;gap:5px}
 .radar-nowcast-modes{padding-left:0;padding-top:7px;border-left:0;border-top:1px solid #ddcce8}
 .radar-quick-leads button,.radar-nowcast-modes button{padding:8px 6px;font-size:10.5px}
 .radar-future-head>span:first-child{font-size:10px}
}
@media(max-width:390px){
 .radar-timeline-zones span{font-size:7.5px}
 .radar-quick-leads{grid-template-columns:repeat(4,1fr);grid-auto-flow:unset}
 .radar-nowcast-modes{grid-template-columns:repeat(2,1fr);grid-auto-flow:unset}
}

/* 2.19.10.4 · Radar Pro UI 2.3 --------------------------------------------- */
.radar-map-status{max-width:min(330px,calc(100% - 28px));padding:8px 11px;font-size:12px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.radar-product-control{gap:10px}.radar-control-label{font-size:12px;font-weight:800;color:#30343a}.radar-product-switch{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.radar-product-switch button{appearance:none;border:1px solid var(--line);background:#fff;color:#30343a;border-radius:12px;padding:10px 8px;display:grid;justify-items:start;gap:2px;cursor:pointer;text-align:left;transition:border-color .16s ease,background .16s ease,transform .16s ease,box-shadow .16s ease}
.radar-product-switch button b{font-size:12px;line-height:1.15}.radar-product-switch button small{font-size:9px;color:var(--muted);font-weight:750}.radar-product-switch button:hover:not(:disabled){border-color:#c5a8d4;transform:translateY(-1px)}
.radar-product-switch button.active{background:#f3ebf8;border-color:#8c62a2;box-shadow:inset 0 0 0 1px rgba(111,63,135,.08);color:#572f6a}.radar-product-switch button.active small{color:#754b8b}.radar-product-switch button:disabled{opacity:.42;cursor:not-allowed}
.radar-toggle-advanced:has(input:checked){border-color:#bda0cd;background:#f6effa}.radar-toggle-advanced:has(input:checked) span{color:#5d3470}
.radar-preload-status{min-height:16px;font-size:10.5px;font-weight:750;margin-bottom:7px}.radar-future-live>small{color:#6a5077}
.radar-nowcast-toolbar{margin-top:6px}.radar-quick-leads{gap:5px}.radar-quick-leads button{min-width:42px}
@media(max-width:650px){.radar-map-status{max-width:calc(100% - 24px);left:12px;bottom:12px;font-size:11px}.radar-product-switch button{padding:9px 8px}.radar-quick-leads{grid-template-columns:repeat(5,1fr)!important;grid-auto-flow:unset!important}}
@media(max-width:390px){.radar-quick-leads{grid-template-columns:repeat(5,1fr)!important}.radar-quick-leads button{min-width:0;padding:8px 3px;font-size:10px}}
.integration-subpanel{display:grid;gap:14px;margin:2px 0;padding:16px;border:1px solid var(--line);border-radius:15px;background:#fbfbfd}.integration-subpanel legend{padding:0 8px;font-weight:900;color:var(--text)}

/* 2.20 · Forecast Analyzer + Verification */
.analysis-verification-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0 18px}.analysis-verification-kpis article{border:1px solid var(--line);border-radius:16px;padding:15px;background:var(--panel)}.analysis-verification-kpis span{display:block;font-size:.78rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.analysis-verification-kpis b{display:block;font-size:1.35rem;margin:5px 0}.analysis-verification-kpis small{color:var(--muted)}
@media(max-width:900px){.analysis-verification-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.analysis-verification-kpis{grid-template-columns:1fr}.analysis-verification-kpis article{padding:12px}.analysis-admin-hero h1{font-size:clamp(1.9rem,9vw,2.7rem)}}

/* 2.20.1 · Production UX, comptes i comunicació */
.auth-recovery-link{display:inline-flex;justify-content:center;margin-top:-2px;font-size:13px;font-weight:800;color:#6b7280;text-decoration:underline;text-underline-offset:3px}
.account-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.account-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0 4px}.account-stat{min-width:0;padding:16px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(18,24,36,.05);display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;color:inherit;text-decoration:none}.account-stat>span{grid-row:1/3;font-size:24px}.account-stat>b{font-size:24px;line-height:1}.account-stat>small{color:var(--muted);line-height:1.3}.account-stat[href]:hover{border-color:#e7c96a;transform:translateY(-1px)}
.admin-notify-layout{align-items:start}.admin-notification-history{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-notification-history .card{min-width:0}.admin-notification-history h3{overflow-wrap:anywhere}.flash.compact{padding:12px 14px;margin:0}.form-grid textarea{resize:vertical}
.community-avatar{flex:0 0 auto;background:linear-gradient(135deg,var(--avatar-a,var(--brand)),var(--avatar-b,var(--brand-2)));text-shadow:0 1px 2px rgba(0,0,0,.22);letter-spacing:-.03em;box-shadow:inset 0 0 0 1px rgba(255,255,255,.28),0 4px 12px rgba(15,23,42,.12)}.community-avatar.pattern-1{background-image:radial-gradient(circle at 25% 25%,rgba(255,255,255,.28) 0 8%,transparent 9%),linear-gradient(135deg,var(--avatar-a),var(--avatar-b))}.community-avatar.pattern-2{background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.12) 0 4px,transparent 4px 9px),linear-gradient(135deg,var(--avatar-a),var(--avatar-b))}.community-avatar.pattern-3{background-image:linear-gradient(90deg,transparent 48%,rgba(255,255,255,.18) 49% 53%,transparent 54%),linear-gradient(135deg,var(--avatar-a),var(--avatar-b))}.community-avatar.admin{border-radius:13px}.community-message-copy{min-width:0}.community-message.own{background:#fffaf0}.community-message-grouped{margin-top:-5px}.community-message-grouped .community-avatar{opacity:.35;transform:scale(.78)}.community-message-grouped .community-meta b{color:#667085;font-size:12px}.community-feed{scrollbar-gutter:stable}.community-compose-row #chat-status.error,.community-compose-row #comment-status.error{color:#b42318}

/* El tutorial mòbil deixa visible la zona explicada i ocupa només la part baixa. */
@media(max-width:760px){
  .account-hero{align-items:stretch;flex-direction:column}.account-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-notification-history{grid-template-columns:1fr}
  .app-tour-card{width:auto!important;left:10px!important;right:10px!important;top:auto!important;bottom:max(10px,env(safe-area-inset-bottom))!important;max-height:min(40dvh,360px)!important;padding:15px 15px 13px!important;border-radius:18px 18px 14px 14px!important}.app-tour-card h2{font-size:19px!important;line-height:1.16}.app-tour-card p{font-size:12.5px!important;line-height:1.45}.tour-points{gap:5px!important;margin:8px 0 2px!important}.tour-points li{font-size:11.5px!important;line-height:1.35!important}.tour-actions{margin-top:11px!important;padding-top:10px!important}.tour-actions .btn{min-height:36px!important;padding:8px 10px!important}.tour-progress-bar{margin-bottom:9px!important}.tour-target-name{font-size:11px!important}.tour-slide>.eyebrow{font-size:10px!important}
}
@media(max-width:420px){.account-overview{grid-template-columns:1fr 1fr}.account-stat{padding:12px}.account-stat>b{font-size:21px}.app-tour-card{max-height:min(42dvh,330px)!important}}

/* 2.20.2 · Fase D UX 1 — Home amb jerarquia simple */
.home-priority-alert{margin-top:0;margin-bottom:14px}.home-priority-alert .alert-ribbon{box-shadow:0 10px 28px rgba(15,23,42,.08)}
.home-hero-simple{grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);gap:28px;padding:clamp(28px,4vw,44px)}
.home-now-row{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}.home-now-row h1{margin-bottom:5px}.home-calm-status{display:inline-flex;align-items:center;gap:9px;margin-bottom:12px;padding:8px 11px;border:1px solid #dcefe7;border-radius:999px;background:#f3fbf7;color:#24624d;font-size:12px;font-weight:850;white-space:nowrap}.home-calm-status .live-dot{flex:0 0 auto}
.home-current-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:22px 0 14px}.home-current-metrics span{display:grid;gap:2px;min-width:0;padding:11px 12px;border-radius:15px}.home-current-metrics small{font-size:10px;color:#725b36;text-transform:uppercase;letter-spacing:.045em;font-weight:850}.home-current-metrics b{font-size:15px;white-space:nowrap}
.home-next-hours{min-width:0;align-self:stretch;display:grid;align-content:center;padding:20px;border:1px solid rgba(15,23,42,.07);border-radius:23px;background:rgba(255,255,255,.72)}.home-next-hours-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:12px}.home-next-hours-head>div{display:grid;gap:3px}.home-next-hours-head>div>b{font-size:17px}.home-next-hours-head>a{font-size:12px;font-weight:850;color:#9b3b20;white-space:nowrap}.home-hero-simple .home-forecast-mini{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.home-hero-simple .home-forecast-mini>div{min-width:0;min-height:110px;padding:9px 5px;border-radius:15px}.home-hero-simple .home-forecast-mini span{font-size:23px}.home-hero-simple .home-forecast-mini b{font-size:19px}.home-hero-simple .home-forecast-mini small{font-size:10px;white-space:nowrap}.home-hour-empty{grid-column:1/-1!important;min-height:90px!important;color:var(--muted);font-size:13px;text-align:center}
.home-primary-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px}.home-action-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;padding:16px 17px;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:0 7px 20px rgba(15,23,42,.045);transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.home-action-card:hover{transform:translateY(-2px);border-color:#e6c86c;box-shadow:0 11px 26px rgba(15,23,42,.075)}.home-action-card>span{font-size:25px}.home-action-card>div{display:grid;min-width:0}.home-action-card b{font-size:14px}.home-action-card small{overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:11.5px;white-space:nowrap}.home-action-card>i{font-style:normal;color:#a83b1c;font-weight:900}
.home-today-section{padding-top:5px}.home-days-section .forecast-days-home{align-items:stretch}.home-days-section .day-card{min-height:176px}.home-secondary-tools{padding-top:2px}.home-secondary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.home-secondary-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:18px 20px}.home-secondary-card>span{font-size:29px}.home-secondary-card>div{display:grid;gap:2px}.home-secondary-card b{font-size:15px}.home-secondary-card small{color:var(--muted)}.home-secondary-card>i{font-style:normal;color:#a83b1c;font-weight:900}.home-network-section .station-card{min-height:205px}.home-seo-guide-simple{display:block!important;padding:24px 28px!important}.home-seo-guide-simple .home-seo-copy{max-width:900px}.home-seo-guide-simple .home-seo-copy h2{font-size:clamp(25px,3.2vw,36px);margin-bottom:9px}.home-seo-guide-simple .home-seo-copy p{font-size:15px;line-height:1.65}.home-seo-guide-simple .text-link{margin-top:12px}
@media(max-width:1100px){.home-hero-simple{grid-template-columns:1fr}.home-next-hours{padding:16px}.home-primary-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.home-priority-alert .alert-ribbon{align-items:flex-start;display:grid;grid-template-columns:auto 1fr}.home-priority-alert .alert-ribbon>.badge{grid-column:2;justify-self:start}.home-hero-simple{padding:22px 18px;border-radius:23px}.home-hero-simple h1{font-size:clamp(46px,15vw,66px)}.home-now-row{align-items:flex-start;flex-direction:column;gap:4px}.home-calm-status{margin:0 0 8px}.home-current-metrics{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:7px}.home-next-hours{padding:14px 12px}.home-next-hours-head{align-items:flex-start}.home-hero-simple .home-forecast-mini{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(84px,1fr);grid-template-columns:none;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;padding:1px 1px 8px}.home-hero-simple .home-forecast-mini>div{scroll-snap-align:start}.home-primary-actions{grid-template-columns:1fr 1fr;gap:9px}.home-action-card{padding:14px 12px;grid-template-columns:auto minmax(0,1fr)}.home-action-card>i{display:none}.home-action-card small{white-space:normal;line-height:1.3}.home-secondary-grid{grid-template-columns:1fr}.home-secondary-card{padding:16px}.home-network-section .grid-3{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(235px,82vw);grid-template-columns:none;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:10px}.home-network-section .station-card{scroll-snap-align:start}.home-seo-guide-simple{padding:20px!important}}
@media(max-width:430px){.home-primary-actions{grid-template-columns:1fr}.home-current-metrics span{padding:10px}.home-next-hours-head{display:grid}.home-next-hours-head>a{justify-self:start}.home-secondary-card>i{display:none}}

/* 2.20.3 · Fase D UX 1 — Home simplificada després de revisió visual */
.home-network-section{margin-bottom:clamp(34px,5vw,58px)}
.home-network-section .section-head p{max-width:760px}
@media(max-width:760px){.home-network-section{margin-bottom:34px}}

/* 2.20.4 · Fase D UX 1 — micro-UX, accessibilitat i responsive final */
.skip-link{position:fixed;z-index:99999;left:12px;top:10px;transform:translateY(-160%);padding:11px 14px;border-radius:12px;background:#111;color:#fff;font-weight:850;box-shadow:var(--shadow)}
.skip-link:focus{transform:translateY(0)}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid rgba(240,59,27,.62);outline-offset:3px}
.nav-toggle{align-items:center;justify-content:center;gap:7px;min-width:48px;min-height:48px;font-weight:850}.nav-toggle-label{font-size:14px}
.page-home .section-head p{max-width:760px;color:#4d535e;font-size:16px;line-height:1.55}.page-home .section-head .btn{min-height:48px;padding-inline:17px}
.page-home .home-condition{font-size:clamp(18px,2vw,21px);line-height:1.35}
.page-home .home-source-line small{color:#565c66;font-size:13px;line-height:1.45}
.page-home .home-current-metrics small{font-size:11.5px}.page-home .home-current-metrics b{font-size:17px}
.page-home .home-next-hours-head>a{display:inline-flex;align-items:center;min-height:44px;font-size:13px;text-decoration:underline;text-underline-offset:3px}
.page-home .home-hero-simple .home-forecast-mini small{font-size:11.5px;line-height:1.25}.page-home .home-hero-simple .home-forecast-mini>div{min-height:116px}
.home-sun-times{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-2px 0 15px}.home-sun-times>span{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:8px;align-items:center;min-width:180px;padding:10px 13px;border:1px solid #eee3c9;border-radius:14px;background:#fffaf0}.home-sun-times i{grid-row:1/3;font-style:normal;font-size:22px}.home-sun-times small{color:#626873;font-size:12px;font-weight:750}.home-sun-times b{font-size:16px;line-height:1.15}
.page-home .forecast-days-home .day-card{align-content:center}.page-home .day-card .day-max{color:var(--text);font-size:26px}.page-home .day-card .day-min{font-size:19px}.page-home .day-card>small{color:#505661;font-size:13px;line-height:1.35}.page-home .day-rain{color:#434953;font-size:13px;font-weight:750}
.page-home .home-network-section .station-card{display:flex;flex-direction:column}.page-home .home-network-section .station-card h3{font-size:19px}.page-home .home-network-section .station-card>small{margin-top:auto;color:#5c626c;font-size:13px}.page-home .station-card-current>div{gap:5px}.page-home .station-card-current>div span{display:flex;justify-content:space-between;gap:10px;color:#343942;font-size:14px;font-weight:750}.page-home .station-card-current>div small{color:#6a707a;font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.03em}

@media(max-width:760px){
  .site-header .main-nav.open{gap:7px;padding-top:12px;padding-bottom:4px}.site-header .main-nav a,.site-header .account-pill{display:flex;align-items:center;justify-content:center;min-height:48px;padding:11px 10px;font-size:14px;border:1px solid #ededee;background:#fff}.site-header .main-nav a.active{background:linear-gradient(135deg,rgba(237,170,8,.18),rgba(240,59,27,.12));border-color:#efdbac}
  .page-home .section{margin-top:28px}.page-home .section-head{align-items:stretch;flex-direction:column;gap:11px;margin-bottom:14px}.page-home .section-head h2{font-size:clamp(25px,7vw,32px);line-height:1.1}.page-home .section-head .btn{width:100%}
  .page-home .home-hero-simple{gap:19px;padding:22px 17px}.page-home .home-current-metrics{margin:18px 0 12px}.page-home .home-current-metrics span{min-height:66px;align-content:center;padding:10px 12px}
  .page-home .home-next-hours{padding:15px 13px}.page-home .home-next-hours-head{margin-bottom:10px}.page-home .home-next-hours-head>a{min-height:40px}
  .page-home .home-hero-simple .home-forecast-mini{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:row;grid-auto-columns:auto;gap:7px;overflow:visible;padding:0;scroll-snap-type:none}.page-home .home-hero-simple .home-forecast-mini>div{min-height:104px;padding:9px 6px}.page-home .home-hero-simple .home-forecast-mini span{font-size:24px}.page-home .home-hero-simple .home-forecast-mini b{font-size:20px}
  .home-sun-times{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:13px}.home-sun-times>span{min-width:0}
  .page-home .forecast-days-home{display:grid;grid-template-columns:1fr!important;gap:9px}.page-home .forecast-days-home .day-card{grid-template-columns:52px minmax(0,1fr) auto;grid-template-areas:"icon day temp" "icon condition rain";gap:2px 12px;min-height:0;padding:14px 15px;text-align:left}.page-home .forecast-days-home .day-icon{grid-area:icon;align-self:center;font-size:34px}.page-home .forecast-days-home .day-card>b{grid-area:day;font-size:16px}.page-home .forecast-days-home .day-card>strong{grid-area:temp;justify-self:end;white-space:nowrap}.page-home .forecast-days-home .day-card>small{grid-area:condition}.page-home .forecast-days-home .day-rain{grid-area:rain;justify-self:end;white-space:nowrap}
  .page-home .home-network-section .grid-3{display:grid;grid-template-columns:1fr;grid-auto-flow:row;grid-auto-columns:auto;gap:10px;overflow:visible;padding-bottom:0;scroll-snap-type:none}.page-home .home-network-section .station-card{min-height:0;padding:18px;scroll-snap-align:none}.page-home .station-card-current{margin:13px 0}.page-home .station-card-current strong{font-size:34px}
}
@media(max-width:430px){
  .page-home .home-hero-simple h1{font-size:clamp(43px,14vw,58px)}.page-home .home-hero-simple .home-forecast-mini{grid-template-columns:repeat(2,minmax(0,1fr))}.page-home .home-current-metrics b{font-size:16px}
  .home-sun-times{grid-template-columns:1fr}.home-sun-times>span{min-height:58px}
  .page-home .forecast-days-home .day-card{grid-template-columns:46px minmax(0,1fr) auto;padding:13px 12px;gap:3px 9px}.page-home .forecast-days-home .day-icon{font-size:30px}.page-home .day-card .day-max{font-size:23px}.page-home .day-card .day-min{font-size:17px}.page-home .forecast-days-home .day-rain{font-size:12px}
}
@media(max-width:360px){
  .page-home .home-current-metrics{grid-template-columns:1fr 1fr}.page-home .forecast-days-home .day-card{grid-template-columns:42px 1fr;grid-template-areas:"icon day" "icon temp" "condition condition" "rain rain"}.page-home .forecast-days-home .day-card>strong,.page-home .forecast-days-home .day-rain{justify-self:start}.page-home .forecast-days-home .day-rain{white-space:normal}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.btn:hover,.station-card:hover,.home-action-card:hover{transform:none!important}}

/* 2.20.5 · Fase D UX 1 — poliment visual Home, targetes i footer */
.page-home .home-summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));align-content:stretch}
.page-home .home-summary-metrics .metric-tile{position:relative;overflow:hidden;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;min-height:112px;padding:17px 16px;border-color:#eceef1;background:linear-gradient(145deg,#fff,#fbfcfd);box-shadow:0 7px 22px rgba(15,23,42,.035)}
.page-home .home-summary-metrics .metric-tile:after{content:"";position:absolute;inset:auto -28px -34px auto;width:82px;height:82px;border-radius:50%;background:var(--metric-soft,rgba(237,170,8,.08));pointer-events:none}
.page-home .home-summary-metrics .metric-tile>div{display:grid;gap:4px;min-width:0}
.page-home .home-summary-metrics .metric-tile small{font-size:12px;line-height:1.25;color:#626873}
.page-home .home-summary-metrics .metric-tile b{font-size:clamp(22px,2.2vw,28px);line-height:1.05;letter-spacing:-.025em;white-space:nowrap}
.page-home .metric-icon{position:relative;z-index:1;width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:var(--metric-bg,#fff5dc);color:var(--metric-accent,#9a6500);font-size:21px;font-weight:900}
.page-home .metric-min{--metric-bg:#eef6ff;--metric-accent:#3174ad;--metric-soft:rgba(49,116,173,.08)}
.page-home .metric-max{--metric-bg:#fff0ec;--metric-accent:#c74828;--metric-soft:rgba(199,72,40,.08)}
.page-home .metric-rain{--metric-bg:#edf8ff;--metric-accent:#287aa8;--metric-soft:rgba(40,122,168,.08)}
.page-home .metric-gust{--metric-bg:#fff7e5;--metric-accent:#9c6907;--metric-soft:rgba(156,105,7,.08)}

.page-home .station-card-current{display:grid;grid-template-columns:auto minmax(170px,.9fr);align-items:end;gap:18px;margin:15px 0 13px}
.page-home .station-card-current>strong{line-height:1;white-space:nowrap}
.page-home .station-card-metrics{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important;min-width:0}
.page-home .station-card-metrics>span{display:grid!important;justify-content:stretch!important;gap:3px!important;min-width:0;padding:9px 10px;border:1px solid #eceef1;border-radius:12px;background:#f8f9fb;color:#343942!important}
.page-home .station-card-metrics>span small{font-size:10.5px!important;line-height:1.15}
.page-home .station-card-metrics>span b{font-size:14px;line-height:1.2;white-space:nowrap;color:#242830}

.footer-grid{grid-template-columns:minmax(280px,2.15fr) repeat(3,minmax(135px,1fr));align-items:start}
.footer-about{padding:22px 24px;border:1px solid #eee2c8;border-radius:20px;background:linear-gradient(145deg,#fffaf0,#fff)}
.footer-about .footer-brand{margin-bottom:5px}
.footer-motto{display:block;margin-bottom:9px;color:#8c3a1d;font-size:13px;line-height:1.35}
.footer-about p{max-width:570px;margin:0;color:#545a64;font-size:14px;line-height:1.65}
.footer-story-link{display:inline-flex!important;align-items:center;min-height:42px;margin-top:8px;color:#9a3e20!important;font-size:13px!important;font-weight:900;text-decoration:none!important}
.footer-story-link:hover{text-decoration:underline!important;text-underline-offset:3px}
.footer-grid>div:not(.footer-about)>b{margin-bottom:3px}
.footer-grid>div:not(.footer-about)>a{display:inline-flex;align-items:center;min-height:34px}
.footer-bottom span:last-child{color:#6a707a}

@media(max-width:760px){
  .page-home .home-summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:auto}
  .page-home .home-summary-metrics .metric-tile{min-height:104px;padding:14px 12px;gap:9px}
  .page-home .metric-icon{width:38px;height:38px;border-radius:12px;font-size:18px}
  .page-home .home-summary-metrics .metric-tile b{font-size:clamp(20px,6vw,25px)}
  .page-home .station-card-current{grid-template-columns:1fr;align-items:stretch;gap:12px;margin:13px 0}
  .page-home .station-card-metrics{width:100%}
  .footer-grid{grid-template-columns:1fr 1fr;gap:20px}
  .footer-about{grid-column:1/-1;padding:20px}
  .footer-bottom{align-items:flex-start;flex-direction:column}
}
@media(max-width:430px){
  .page-home .home-summary-metrics .metric-tile{min-height:96px;padding:12px 10px;gap:8px}
  .page-home .metric-icon{width:35px;height:35px;font-size:17px}
  .page-home .home-summary-metrics .metric-tile small{font-size:11px}
  .page-home .home-summary-metrics .metric-tile b{font-size:clamp(19px,5.9vw,23px)}
  .page-home .station-card-metrics>span{padding:9px}
  .page-home .station-card-metrics>span b{font-size:14px}
  .footer-grid{grid-template-columns:1fr}
  .footer-about{grid-column:auto;padding:18px}
}
@media(max-width:350px){
  .page-home .home-summary-metrics{grid-template-columns:1fr!important}
  .page-home .home-summary-metrics .metric-tile{min-height:82px}
  .page-home .station-card-metrics{grid-template-columns:1fr 1fr}
}
@media(max-width:430px){
  .page-home .home-summary-metrics .metric-tile{display:block;position:relative;padding:13px 12px}
  .page-home .home-summary-metrics .metric-tile>div{padding-right:24px}
  .page-home .home-summary-metrics .metric-tile .metric-icon{position:absolute;right:10px;top:10px;width:30px;height:30px;border-radius:10px;font-size:15px}
  .page-home .home-summary-metrics .metric-tile b{font-size:clamp(20px,6vw,23px)}
}
@media(max-width:430px) and (min-width:351px){
  .footer-grid{grid-template-columns:1fr 1fr;gap:18px 14px}
  .footer-about{grid-column:1/-1}
}
@media(max-width:350px){.footer-grid{grid-template-columns:1fr}.footer-about{grid-column:auto}}

/* 2.20.6 · UX unificada — Predicció, Estacions, navegació tàctil i footer pla */

/* Header: el perfil autenticat ha de continuar sent visible en el menú mòbil. */
.account-pill::before{content:"👤";margin-right:6px;font-size:14px;line-height:1}

/* Footer: explicació del projecte integrada, sense targeta ni bloc protagonista. */
.footer-grid{grid-template-columns:minmax(300px,2fr) repeat(3,minmax(130px,1fr));gap:28px}
.footer-about{padding:0;border:0;border-radius:0;background:none;box-shadow:none}
.footer-about .footer-brand{margin:0 0 4px;font-size:22px}
.footer-motto{margin:0 0 8px;color:#8c3a1d;font-size:13px;line-height:1.35}
.footer-about p{max-width:610px;margin:0;color:#5b616b;font-size:14px;line-height:1.62}
.footer-story-link{min-height:38px;margin-top:5px}

/* Controls de gràfica: el scroll continua sent útil per sèries llargues, però mai és l'única via. */
.chart-navigator{display:grid;grid-template-columns:52px minmax(0,1fr) 52px;gap:10px;align-items:stretch;margin-top:12px;padding:12px;border:1px solid #e7e9ed;border-radius:18px;background:linear-gradient(145deg,#fff,#fafbfc)}
.chart-nav-step{display:grid;place-items:center;min-width:48px;min-height:54px;border:1px solid #e1e4e8;border-radius:14px;background:#fff;color:#222;font-size:22px;font-weight:900;cursor:pointer}
.chart-nav-step:disabled{opacity:.35;cursor:default}
.chart-nav-center{display:grid;gap:9px;min-width:0}
.chart-nav-readout{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"time value" "extra extra";gap:2px 12px;align-items:end;min-width:0}
.chart-nav-readout>span{grid-area:time;color:#535a64;font-size:13px;font-weight:800}
.chart-nav-readout>b{grid-area:value;font-size:19px;line-height:1.1;text-align:right;white-space:nowrap}
.chart-nav-readout>small{grid-area:extra;color:#6a707a;font-size:11.5px;line-height:1.35;overflow-wrap:anywhere}
.chart-nav-center input[type="range"]{width:100%;min-height:28px;margin:0;padding:0;border:0;background:transparent;box-shadow:none;accent-color:var(--brand-2);cursor:pointer}
.fc-nav-marker,.st-nav-marker{fill:#fff;stroke:var(--brand-2);stroke-width:4;pointer-events:none;filter:drop-shadow(0 2px 4px rgba(15,23,42,.16))}
.chart-scroll-hint{display:block;margin:7px 0 0;text-align:center;color:#646b75;font-size:12px;font-weight:700;line-height:1.4}

/* PREDICCIÓ — lectura ràpida abans de l'anàlisi. */
.page-forecast .forecast-shortterm-hero{padding:clamp(24px,3vw,36px);border-radius:28px}
.page-forecast .forecast-glance{gap:10px}
.page-forecast .forecast-glance-item{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-areas:"icon label" "icon value";gap:2px 9px;align-items:center;min-width:0;padding:13px 14px;text-align:left;background:linear-gradient(145deg,#fff,#fbfcfd)}
.page-forecast .forecast-glance-item>i{grid-area:icon;display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#fff5dc;font-size:18px;font-style:normal}
.page-forecast .forecast-glance-item>span{grid-area:label;font-size:11px;line-height:1.25}
.page-forecast .forecast-glance-item>b{grid-area:value;font-size:20px;line-height:1.05}
.page-forecast .forecast-glance-item.glance-min>i{background:#eef6ff}
.page-forecast .forecast-glance-item.glance-max>i{background:#fff0ec}
.page-forecast .forecast-glance-item.glance-rain>i{background:#edf8ff}
.page-forecast .forecast-glance-item.glance-gust>i{background:#fff7e5}

.page-forecast .nowcast-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.page-forecast .nowcast-card{min-width:0;min-height:0;padding:15px 13px}
.page-forecast .nowcast-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.page-forecast .nowcast-card-head time{font-size:14px}
.page-forecast .nowcast-icon{font-size:24px}
.page-forecast .nowcast-card>strong{font-size:24px;line-height:1;margin:4px 0 5px}
.page-forecast .nowcast-card-facts{display:grid;gap:6px}
.page-forecast .nowcast-card-facts>span{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon label" "icon value";column-gap:7px;align-items:center;padding:7px 8px;border-radius:11px;background:#f8f9fb}
.page-forecast .nowcast-card-facts i{grid-area:icon;font-style:normal}
.page-forecast .nowcast-card-facts small{grid-area:label;color:#6b7280;font-size:10px;line-height:1.15}
.page-forecast .nowcast-card-facts b{grid-area:value;color:#303640;font-size:12px;line-height:1.2;white-space:nowrap}

.page-forecast .forecast-explorer>.section-head{margin-bottom:12px}
.page-forecast .forecast-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;overflow:visible;padding:0}
.page-forecast .forecast-tabs button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:50px;min-width:0;padding:9px 10px;white-space:normal;text-align:center;line-height:1.2}
.page-forecast .forecast-tabs button>span{font-size:17px}
.page-forecast .forecast-chart-panel{overflow:hidden}
.page-forecast .forecast-metric-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.page-forecast .forecast-metric-buttons button{min-height:42px}
.page-forecast .forecast-hour-sample[hidden]{display:none!important}

/* Dies: targetes compactes i verticals al mòbil; mai rail ocult. */
.page-forecast .forecast-day-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;overflow:visible!important;scroll-snap-type:none!important;padding:0!important}
.page-forecast .forecast-day{display:grid;grid-template-rows:auto auto auto auto;gap:12px;min-height:0;padding:18px}
.page-forecast .forecast-day-main{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:10px;align-items:center}
.page-forecast .forecast-day-main .day-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#fff7df;font-size:28px}
.page-forecast .forecast-day-title{gap:2px}
.page-forecast .forecast-day-title b{font-size:16px}
.page-forecast .forecast-day-title small{font-size:12px}
.page-forecast .forecast-day-temp{display:flex;align-items:baseline;gap:5px;white-space:nowrap}
.page-forecast .forecast-day-temp .day-max{color:#262b33;font-size:28px;font-weight:900}
.page-forecast .forecast-day-temp .day-min{color:#747b86;font-size:18px;font-weight:750}
.page-forecast .forecast-day-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.page-forecast .forecast-day-facts>span{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon label" "icon value";gap:1px 6px;align-items:center;min-width:0;padding:8px 9px;border:1px solid #eceef1;border-radius:12px;background:#fafbfc}
.page-forecast .forecast-day-facts i{grid-area:icon;font-style:normal}
.page-forecast .forecast-day-facts small{grid-area:label;color:#6a707a;font-size:10px;line-height:1.1}
.page-forecast .forecast-day-facts b{grid-area:value;color:#303640;font-size:12px;line-height:1.2;white-space:nowrap}
.page-forecast .forecast-day-tech{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.page-forecast .forecast-day-tech .forecast-method{font-size:10.5px}
.page-forecast .day-confidence{margin-top:0}
.page-forecast .day-open-hint{padding-top:2px;color:#8d421f;font-size:12px}
.page-forecast .day-hour-list{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}

/* ESTACIONS — mateixa gramàtica visual que la Home. */
.page-stations .stations-hero-v2{background:radial-gradient(circle at 90% 10%,rgba(36,112,216,.10),transparent 34%),linear-gradient(135deg,#fff,#fffaf1)}
.page-stations .station-network-filters{display:flex;flex-wrap:wrap;gap:8px;overflow:visible;padding:0}
.page-stations .station-network-filters button{display:inline-flex;align-items:center;gap:7px;min-height:44px}
.page-stations .station-network-filters button>i{font-style:normal}
.page-stations .station-card-grid{gap:14px}
.page-stations .station-card-v2{gap:8px;min-height:0;padding:18px}
.page-stations .station-card-status{display:inline-flex;align-items:center;gap:7px;color:#5d646e;font-size:11px;font-weight:800}
.page-stations .station-card-status>i{width:9px;height:9px;border-radius:50%;background:var(--brand)}
.page-stations .station-card-status.online>i{background:var(--success);box-shadow:0 0 0 5px rgba(20,125,93,.09)}
.page-stations .station-card-location{margin:0;font-size:12.5px}
.page-stations .station-card-current-v2{display:grid;grid-template-columns:minmax(140px,.85fr) minmax(0,1.15fr);gap:10px;align-items:stretch;margin:5px 0}
.page-stations .station-card-temp{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:9px;padding:12px;border-radius:15px;background:linear-gradient(145deg,#fff8eb,#fff)}
.page-stations .station-card-temp>span{font-size:24px}
.page-stations .station-card-temp>div{display:grid;gap:2px}
.page-stations .station-card-temp small{color:#68707a;font-size:10px;text-transform:uppercase;letter-spacing:.04em}
.page-stations .station-card-temp strong{font-size:29px;line-height:1;white-space:nowrap}
.page-stations .station-card-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.page-stations .station-card-facts>span{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon label" "icon value";column-gap:6px;align-items:center;min-width:0;padding:8px;border:1px solid #eceef1;border-radius:12px;background:#fafbfc}
.page-stations .station-card-facts i{grid-area:icon;font-style:normal}
.page-stations .station-card-facts small{grid-area:label;color:#6a707a;font-size:9.5px;line-height:1.1}
.page-stations .station-card-facts b{grid-area:value;color:#303640;font-size:12px;line-height:1.2;white-space:nowrap}
.page-stations .station-card-footer{display:grid;grid-template-columns:1fr 1fr;gap:3px 10px;margin-top:3px;padding-top:10px;border-top:1px solid #eef0f2;color:#69707a;font-size:11px}
.page-stations .station-card-footer>b{grid-column:1/-1;margin-top:3px;color:#8d421f;font-size:12px}

/* Fitxa d'estació */
.page-stations .station-hero-v2{border-color:#e3e8ee}
.page-stations .station-metric-grid-v2{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.page-stations .station-metric-v2{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:11px;min-height:96px;padding:15px}
.page-stations .station-metric-v2>div{display:grid;gap:3px;min-width:0}
.page-stations .station-metric-v2 b{font-size:23px;white-space:nowrap}
.page-stations .station-metric-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:#fff5dc;font-size:20px;font-weight:900}
.page-stations .station-today-grid{gap:12px}
.page-stations .station-today-card{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:11px;min-height:96px}
.page-stations .station-today-card h2{margin:2px 0 0;font-size:25px;white-space:nowrap}
.page-stations .station-today-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:#f6f7f9;font-size:20px;font-weight:900}
.page-stations .station-today-icon.min{background:#eef6ff}.page-stations .station-today-icon.max{background:#fff0ec}.page-stations .station-today-icon.gust{background:#fff7e5}
.page-stations .station-snapshot-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:2px}
.page-stations .station-snapshot-grid .hour-card{min-height:0;padding:11px;border-radius:13px;background:#fafbfc}
.page-stations .station-snapshot-grid .hour-card b{font-size:17px}
.page-stations .station-snapshot-grid .hour-card small,.page-stations .station-snapshot-grid .hour-card span{font-size:10.5px;line-height:1.3}

@media(max-width:1050px){
  .page-forecast .nowcast-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .page-forecast .forecast-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
  .page-stations .station-metric-grid-v2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-stations .station-snapshot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .footer-grid{grid-template-columns:minmax(260px,1.6fr) repeat(3,minmax(120px,1fr))}
}

@media(max-width:760px){
  .site-header .main-nav .account-pill{background:#171717!important;border-color:#171717!important;color:#fff!important}
  .site-header .main-nav .notification-pill{color:#222!important}
  .footer-grid{grid-template-columns:1fr 1fr;gap:22px 18px}.footer-about{grid-column:1/-1}.footer-bottom{gap:5px}

  .chart-navigator{grid-template-columns:48px minmax(0,1fr) 48px;padding:10px;gap:8px}
  .chart-nav-step{min-width:48px;min-height:58px;border-radius:13px}
  .chart-nav-readout{grid-template-columns:1fr;grid-template-areas:"time" "value" "extra";gap:1px}
  .chart-nav-readout>b{text-align:left;font-size:18px}
  .chart-nav-readout>small{font-size:11px}

  .page-forecast .forecast-shortterm-hero{padding:22px 17px}
  .page-forecast .forecast-glance{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-forecast .forecast-glance-item{padding:11px 10px;grid-template-columns:34px 1fr;gap:2px 7px}
  .page-forecast .forecast-glance-item>i{width:34px;height:34px;font-size:16px}
  .page-forecast .forecast-glance-item>b{font-size:18px}
  .page-forecast .nowcast-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .page-forecast .nowcast-card{padding:12px 10px}
  .page-forecast .nowcast-card-facts>span{display:block;padding:6px 7px}
  .page-forecast .nowcast-card-facts i{float:right;margin-left:4px}.page-forecast .nowcast-card-facts small,.page-forecast .nowcast-card-facts b{display:block}.page-forecast .nowcast-card-facts b{margin-top:2px}
  .page-forecast .forecast-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .page-forecast .forecast-tabs button{min-height:50px;padding:8px 7px}
  .page-forecast .forecast-metric-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .page-forecast .forecast-metric-buttons button{width:100%;min-width:0;white-space:normal}
  .page-forecast .forecast-day-grid{display:grid!important;grid-template-columns:1fr!important;grid-auto-flow:row!important;grid-auto-columns:auto!important;gap:9px!important;overflow:visible!important;padding:0!important;scroll-snap-type:none!important}
  .page-forecast .forecast-day{scroll-snap-align:none;gap:9px;padding:14px 13px}
  .page-forecast .forecast-day-main{grid-template-columns:44px minmax(0,1fr) auto;gap:8px}
  .page-forecast .forecast-day-main .day-icon{width:44px;height:44px;border-radius:13px;font-size:25px}
  .page-forecast .forecast-day-title b{font-size:15px}.page-forecast .forecast-day-title small{font-size:11.5px}
  .page-forecast .forecast-day-temp .day-max{font-size:24px}.page-forecast .forecast-day-temp .day-min{font-size:16px}
  .page-forecast .forecast-day-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  .page-forecast .forecast-day-facts>span{display:block;padding:7px}.page-forecast .forecast-day-facts i{float:right;margin-left:3px}.page-forecast .forecast-day-facts small,.page-forecast .forecast-day-facts b{display:block}.page-forecast .forecast-day-facts b{margin-top:2px}
  .page-forecast .day-hour-list{grid-template-columns:repeat(2,minmax(0,1fr))}

  .page-stations .station-network-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .page-stations .station-network-filters button{width:100%;justify-content:flex-start;min-width:0;padding:9px 10px;white-space:normal}
  .page-stations .station-network-filters button span{margin-left:auto}
  .page-stations .station-card-current-v2{grid-template-columns:1fr;gap:8px}
  .page-stations .station-card-temp{grid-template-columns:38px 1fr;padding:11px}
  .page-stations .station-card-temp>span{font-size:21px}.page-stations .station-card-temp strong{font-size:27px}
  .page-stations .station-card-facts{grid-template-columns:repeat(3,minmax(0,1fr))}
  .page-stations .station-card-footer{grid-template-columns:1fr}
  .page-stations .station-card-footer>b{grid-column:auto}
  .page-stations .station-metric-grid-v2{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .page-stations .station-metric-v2{grid-template-columns:36px 1fr;gap:8px;min-height:88px;padding:12px 10px}
  .page-stations .station-metric-icon{width:36px;height:36px;border-radius:11px;font-size:17px}
  .page-stations .station-metric-v2 b{font-size:20px}
  .page-stations .station-today-grid{grid-template-columns:1fr!important;gap:8px}
  .page-stations .station-today-card{min-height:78px;padding:12px 14px}
  .page-stations .station-snapshot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
}

@media(max-width:430px){
  .footer-grid{grid-template-columns:1fr 1fr;gap:18px 14px}.footer-about{grid-column:1/-1}.footer-about p{font-size:13px}
  .page-forecast .nowcast-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-forecast .forecast-day-main{grid-template-columns:42px minmax(0,1fr) auto}
  .page-forecast .forecast-day-facts{grid-template-columns:repeat(3,minmax(0,1fr))}
  .page-forecast .forecast-day-facts b{font-size:11px}
  .page-stations .station-card-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-stations .station-metric-grid-v2{grid-template-columns:1fr 1fr}
  .page-stations .station-metric-v2{display:block;position:relative;padding:12px 10px}
  .page-stations .station-metric-v2>div{padding-right:28px}.page-stations .station-metric-icon{position:absolute;right:9px;top:9px;width:30px;height:30px;font-size:14px}
  .chart-navigator{grid-template-columns:44px minmax(0,1fr) 44px;padding:8px}.chart-nav-step{min-width:44px;min-height:60px}
}

@media(max-width:350px){
  .footer-grid{grid-template-columns:1fr}.footer-about{grid-column:auto}
  .page-forecast .forecast-glance{grid-template-columns:1fr 1fr}
  .page-forecast .forecast-day-main{grid-template-columns:40px 1fr;grid-template-areas:"icon title" "icon temp"}.page-forecast .forecast-day-main .day-icon{grid-area:icon}.page-forecast .forecast-day-title{grid-area:title}.page-forecast .forecast-day-temp{grid-area:temp}
  .page-forecast .forecast-day-facts{grid-template-columns:1fr 1fr}
  .page-stations .station-network-filters{grid-template-columns:1fr}
  .page-stations .station-metric-grid-v2{grid-template-columns:1fr}
}

/* 2.20.6 · afinació tàctil: selectors horaris còmodes també amb dits grans. */
.chart-nav-step,.forecast-tabs button,.forecast-metric-buttons button,.station-network-filters button,.station-history-metrics button,.range-switch button{touch-action:manipulation}
.chart-nav-center input[type="range"]{-webkit-appearance:none;appearance:none;height:32px;background:transparent}
.chart-nav-center input[type="range"]::-webkit-slider-runnable-track{height:8px;border-radius:999px;background:#e6e9ee}
.chart-nav-center input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:26px;height:26px;margin-top:-9px;border:3px solid #fff;border-radius:50%;background:var(--brand-2);box-shadow:0 1px 5px rgba(15,23,42,.25)}
.chart-nav-center input[type="range"]::-moz-range-track{height:8px;border:0;border-radius:999px;background:#e6e9ee}
.chart-nav-center input[type="range"]::-moz-range-thumb{width:22px;height:22px;border:3px solid #fff;border-radius:50%;background:var(--brand-2);box-shadow:0 1px 5px rgba(15,23,42,.25)}
.site-header .main-nav .account-pill{overflow-wrap:anywhere}

/* 2.20.7 · UX pública final — aire, pol·len, radar i coherència responsive */
.air-overview-hero{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:22px;padding:30px;border:1px solid #eadfc8;border-radius:28px;background:radial-gradient(circle at 12% 0,rgba(237,170,8,.16),transparent 34%),linear-gradient(145deg,#fff,#fffaf0);box-shadow:var(--shadow)}
.air-overview-main,.air-overview-side{min-width:0}.air-overview-main{display:grid;align-content:start;gap:16px}.air-status-line{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:center}.air-status-number{min-width:138px;padding:17px 18px;border:1px solid #eee2c8;border-radius:21px;background:#fff;text-align:center;font-size:48px;font-weight:950;line-height:1}.air-status-number small{display:block;margin-top:7px;color:var(--muted);font-size:12px;font-weight:800}.air-status-line h1{margin:8px 0 5px;font-size:clamp(30px,4vw,50px);line-height:1.02}.air-status-line p{max-width:720px;margin:0;color:#444b55;font-size:17px;line-height:1.55}.air-driver-note,.air-sensitive-note{display:grid;grid-template-columns:34px minmax(0,1fr);gap:11px;align-items:start;padding:14px 15px;border-radius:16px;background:#fff;border:1px solid var(--line)}.air-driver-note>span,.air-sensitive-note>span{font-size:22px}.air-driver-note b,.air-driver-note small,.air-sensitive-note b,.air-sensitive-note small{display:block}.air-driver-note small,.air-sensitive-note small{margin-top:3px;color:var(--muted);line-height:1.5}.air-overview-side{display:grid;align-content:start;gap:16px;padding:18px;border:1px solid #eee5d6;border-radius:22px;background:rgba(255,255,255,.82)}.air-overview-side .status-pill{justify-self:start}.air-overview-side .air-scale{width:100%;margin:5px 0 22px}.air-overview-side .air-scale span{font-size:11px}.air-overview-side .air-scale span:first-child{left:0}.air-overview-side .air-scale span:last-child{right:0}.air-sensitive-note{background:#fffaf2}
.air-pollutant-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.air-pollutant-card{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:14px;align-items:center;min-width:0}.air-pollutant-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(145deg,#fff7df,#fff);font-size:25px;border:1px solid #f0dfb8}.air-pollutant-copy{min-width:0}.air-pollutant-copy small{color:#a04a22;font-weight:900}.air-pollutant-copy h3{margin:2px 0 4px;font-size:18px}.air-pollutant-copy p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.air-pollutant-value{display:grid;justify-items:end;gap:7px;text-align:right}.air-pollutant-value>b{font-size:22px;white-space:nowrap}
.public-details{overflow:hidden}.public-details>summary{display:flex;align-items:center;gap:12px;min-height:58px;cursor:pointer;list-style:none}.public-details>summary::-webkit-details-marker{display:none}.public-details>summary>span{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border-radius:11px;background:#fff6df}.public-details>summary>div{min-width:0;display:grid;gap:2px}.public-details>summary b{font-size:16px}.public-details>summary small{color:var(--muted);line-height:1.35}.public-details[open]>summary{padding-bottom:14px;border-bottom:1px solid var(--line)}.air-more-data{margin-top:14px}.air-secondary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:15px}.air-secondary-grid>div{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:15px;background:#fafbfc}.air-secondary-grid>div>span{grid-row:1/3;font-size:22px}.air-secondary-grid small{color:var(--muted)}.air-secondary-grid b{font-size:19px}
.pollen-section{padding-top:4px}.pollen-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.pollen-card{display:grid;gap:15px;min-width:0;background:linear-gradient(160deg,#fff,#fbfff6)}.pollen-card-head{display:flex;align-items:center;gap:11px}.pollen-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:15px;background:#f1f8e8;border:1px solid #dfeccd;font-size:22px}.pollen-card-head h3{margin:0;font-size:18px}.pollen-card-head small{color:var(--muted)}.pollen-current{display:flex;align-items:baseline;gap:7px}.pollen-current b{font-size:34px;line-height:1}.pollen-current span{color:var(--muted);font-size:12px}.pollen-mini-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pollen-mini-stats>div{padding:10px 11px;border-radius:13px;background:#f8faf6;border:1px solid #e5ecdd}.pollen-mini-stats small,.pollen-mini-stats b{display:block}.pollen-mini-stats small{color:var(--muted);font-size:11px}.pollen-mini-stats b{margin-top:3px;font-size:14px}.pollen-mini-stats b span{font-size:10px;color:var(--muted)}.pollen-card.is-empty{background:#fafafa}.pollen-empty{display:grid;gap:4px;padding:12px;border-radius:13px;background:#f5f5f5;color:var(--muted)}.pollen-empty b{color:#555}.pollen-empty span{font-size:12px;line-height:1.4}.air-reference-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.pollen-reference-card{display:grid;grid-template-columns:46px minmax(0,1fr);gap:13px;align-items:start}.reference-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:#fff6df;font-size:22px}.pollen-reference-card h3{margin:2px 0 4px}.pollen-reference-card p{color:var(--muted);font-size:14px}.pollen-reference-card .text-link{display:inline-block;margin-top:7px}
.air-evolution .interactive-chart-detail{margin-top:4px}.air-metric-groups{display:grid;grid-template-columns:1fr;gap:11px;margin-bottom:14px}.air-metric-groups>div>small{display:block;margin-bottom:6px;color:var(--muted);font-weight:800}.air-metric-groups .metric-switch{margin:0}.air-chart-navigator{margin-top:10px}.air-methodology-body{padding-top:15px}.air-methodology-body>p:first-child{margin-top:0}.air-methodology .air-legend-table{margin-top:12px}
.radar-explainer{display:grid;gap:16px}.radar-explainer-main{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:16px;align-items:start}.radar-explainer-icon{width:56px;height:56px;display:grid;place-items:center;border-radius:17px;background:linear-gradient(145deg,#fff5dc,#fff);border:1px solid #f1dfb3;font-size:27px}.radar-explainer-main h2{margin:2px 0 6px}.radar-explainer-main p{max-width:850px;color:#4d535d;line-height:1.62}.radar-technical-details{border-top:1px solid var(--line);padding-top:4px}.radar-technical-copy{padding-top:14px;max-width:1000px}.radar-technical-copy p{color:#555b65;line-height:1.65}
/* coherència dels apartats públics: controls prou grans i seccions fàcils de llegir */
body:not(.page-admin) .range-switch button,body:not(.page-admin) .metric-switch button,body:not(.page-admin) .btn{min-height:46px}body:not(.page-admin) .section-head p{max-width:820px;line-height:1.55}.notifications-hero .badge{min-height:38px}.camera-live-meta,.community-layout .panel,.alerts-map-panel{scroll-margin-top:90px}
@media(max-width:900px){.air-overview-hero{grid-template-columns:1fr}.air-overview-side{grid-template-columns:1fr 1fr;align-items:start}.air-overview-side .status-pill,.air-overview-side .air-scale{grid-column:1/-1}.pollen-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.radar-explainer-main{grid-template-columns:50px minmax(0,1fr)}.radar-explainer-main>.badge{grid-column:2;justify-self:start}}
@media(max-width:760px){.air-overview-hero{padding:22px 18px;border-radius:23px}.air-status-line{grid-template-columns:1fr;align-items:start}.air-status-number{justify-self:start;min-width:126px;font-size:43px}.air-status-line p{font-size:16px}.air-overview-side{grid-template-columns:1fr}.air-overview-side .status-pill,.air-overview-side .air-scale{grid-column:auto}.air-pollutant-grid{grid-template-columns:1fr}.air-pollutant-card{grid-template-columns:48px minmax(0,1fr);align-items:start}.air-pollutant-icon{width:46px;height:46px}.air-pollutant-value{grid-column:2;grid-template-columns:auto auto;justify-content:start;justify-items:start;align-items:center;text-align:left}.air-secondary-grid{grid-template-columns:1fr}.pollen-grid{grid-template-columns:1fr 1fr}.air-reference-grid{grid-template-columns:1fr}.air-metric-groups .metric-switch{display:grid;grid-template-columns:1fr 1fr}.air-metric-groups .metric-switch button{white-space:normal;line-height:1.25}.radar-explainer-main{grid-template-columns:1fr}.radar-explainer-icon{width:50px;height:50px}.radar-explainer-main>.badge{grid-column:auto}.public-details>summary{min-height:62px}.air-evolution>.section-head{flex-direction:column}.air-evolution .range-switch{width:100%}.air-evolution .range-switch button{flex:1}}
@media(max-width:480px){.pollen-grid{grid-template-columns:1fr}.pollen-mini-stats{grid-template-columns:1fr 1fr}.air-overview-side{padding:15px}.air-status-number{font-size:40px}.air-pollutant-value{grid-template-columns:1fr;gap:5px}.air-metric-groups .metric-switch{grid-template-columns:1fr 1fr}.pollen-reference-card{grid-template-columns:40px minmax(0,1fr)}.reference-icon{width:40px;height:40px}.radar-explainer{padding:18px}.radar-explainer-main p{font-size:15px}}
@media(max-width:350px){.pollen-mini-stats,.air-metric-groups .metric-switch{grid-template-columns:1fr}}
/* 2.20.7 · acabats d'ajuda i lectura del pol·len */
.pollen-help{margin-top:16px}.pollen-help-body{display:grid;gap:9px;padding-top:14px}.pollen-help-body p{margin:0;color:#515863;line-height:1.65}.air-methodology-body{padding-top:14px}.air-methodology-body>p{line-height:1.65}.air-legend-table{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:14px 0}.air-legend-table table{min-width:760px}.air-evolution .chart-navigator{margin-top:14px}
@media(max-width:760px){.air-methodology{overflow:hidden}.air-legend-table{margin-inline:-4px;padding-bottom:4px}.air-methodology-body .muted{font-size:14px}.pollen-help-body p{font-size:15px}}

/* 2.20.8 · ambient: lectura clínica més clara sense convertir el model en diagnòstic */
.air-subindex{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-weight:600}.pollen-card.is-quiet{background:#fbfcfa;border-color:#e7ece3}.pollen-card.is-quiet .pollen-icon{filter:saturate(.75);opacity:.82}.pollen-card.has-activity{border-color:#d8e7c6;box-shadow:0 10px 26px rgba(46,78,25,.06)}.pollen-card.has-later-peak{border-color:#ead9ad;background:linear-gradient(160deg,#fff,#fffdf7)}.pollen-peak-note{display:grid;grid-template-columns:34px minmax(0,1fr);gap:9px;align-items:center;padding:10px 11px;border-radius:13px;background:#fff8e7;border:1px solid #f0dfb8}.pollen-peak-note>span{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:#fff}.pollen-peak-note b,.pollen-peak-note small{display:block}.pollen-peak-note b{font-size:13px}.pollen-peak-note small{margin-top:2px;color:var(--muted);font-size:11px;line-height:1.35}
.air-model-source{display:block;color:var(--muted);font-size:12px;line-height:1.45}

/* ============================================================
   2.20.9 · Production Readiness — UX final unificada
   ============================================================ */

/* Home · accés ambiental compacte, sense tornar a carregar la portada. */
.home-air-quick-section{margin-top:18px}
.home-air-quick{display:grid;grid-template-columns:58px minmax(0,1fr) auto auto;gap:18px;align-items:center;padding:20px 22px;text-decoration:none;color:inherit;background:linear-gradient(135deg,#fff,#f5fbf8);border-color:#dcebe5;box-shadow:0 12px 34px rgba(15,23,42,.06)}
.home-air-quick:hover{transform:translateY(-1px);border-color:#bfded1;box-shadow:0 16px 38px rgba(15,23,42,.09)}
.home-air-quick-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:#e8f7f1;font-size:29px}
.home-air-quick-copy h2{margin:2px 0 3px;font-size:clamp(20px,2.2vw,27px)}
.home-air-quick-copy p{margin:0;color:var(--muted);line-height:1.45}
.home-air-quick-status{display:grid;grid-template-columns:auto auto;gap:4px 9px;align-items:center;min-width:155px}
.home-air-quick-status>strong{display:flex;align-items:baseline;gap:5px;font-size:31px;line-height:1}.home-air-quick-status>strong small{font-size:11px;color:var(--muted)}
.home-air-quick-status>small{grid-column:1/-1;color:var(--muted);font-size:11px;line-height:1.3}
.home-air-quick-link{font-weight:900;color:#235e4f;white-space:nowrap}

/* Admin · navegació pensada per mòbil. */
.admin-mobile-menu{display:none;margin:0 0 22px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(15,23,42,.07);overflow:hidden}
.admin-mobile-menu>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:54px;padding:13px 16px;cursor:pointer;font-weight:850}.admin-mobile-menu>summary::-webkit-details-marker{display:none}.admin-mobile-menu>summary b{color:var(--brand-2);font-size:13px;text-align:right}
.admin-mobile-menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 12px 14px;border-top:1px solid var(--line)}
.admin-mobile-menu-grid a{display:flex;align-items:center;gap:9px;min-height:50px;padding:10px 12px;border:1px solid #eceef1;border-radius:12px;background:#fafbfc;color:#363b44;font-weight:800;font-size:13px}.admin-mobile-menu-grid a span{font-size:18px}.admin-mobile-menu-grid a.active{background:#171717;color:#fff;border-color:#171717}
.admin-subnav a{gap:6px}.admin-subnav a>span{font-size:15px}

/* Admin · dashboard i mètriques. */
.admin-kpi-grid{display:grid;gap:12px}.admin-kpi-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-kpi-grid-6{grid-template-columns:repeat(6,minmax(0,1fr))}
.admin-kpi{display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-areas:"icon label" "icon value" "icon help";column-gap:10px;align-items:center;min-height:108px;padding:16px}
.admin-kpi-icon{grid-area:icon;display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#fff5dc;font-size:19px}.admin-kpi>span:not(.admin-kpi-icon){grid-area:label;color:var(--muted);font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.035em}.admin-kpi>b{grid-area:value;font-size:27px;line-height:1.08}.admin-kpi>small{grid-area:help;color:var(--muted);font-size:11px;line-height:1.25}
.admin-health-grid,.admin-quick-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.admin-health-item,.admin-action-card{display:grid;gap:5px;padding:15px;border:1px solid var(--line);border-radius:15px;background:#fff}.admin-health-item strong,.admin-action-card strong{font-size:15px}.admin-health-item small,.admin-action-card small{color:var(--muted);line-height:1.35}.admin-action-card{min-height:104px;align-content:start;text-decoration:none;color:inherit}.admin-action-card:hover{border-color:#d6b34e;background:#fffaf0}
.admin-run-list{display:grid;gap:8px}.admin-run-row{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid #eceef1;border-radius:12px;background:#fafbfc}.admin-run-row small{color:var(--muted)}
.admin-advanced-fields>summary{cursor:pointer;font-weight:850;color:#4c535e;padding:8px 0}.admin-advanced-fields[open]>summary{margin-bottom:10px}

/* Admin · usuaris. */
.admin-filter-panel{padding:16px 18px}.admin-user-filters{display:grid;grid-template-columns:minmax(240px,1.5fr) minmax(160px,.65fr) minmax(150px,.55fr) auto auto;gap:10px;align-items:end}.admin-user-filters label{display:grid;gap:6px}.admin-user-filters label>span{font-size:12px;font-weight:800;color:#626974}.admin-user-filters .btn{min-height:44px}
.admin-user-identity,.admin-user-facts{display:grid;gap:4px;min-width:0}.admin-user-identity b{font-size:14px}.admin-user-identity small,.admin-user-facts small{color:var(--muted);line-height:1.35}.users-table{min-width:1120px}.users-table td{vertical-align:top}.user-admin-actions{display:flex;flex-wrap:wrap;gap:6px;min-width:250px}.user-admin-actions form{margin:0}.user-admin-actions .inline-role{display:flex;gap:5px}.user-admin-actions select{min-height:38px;max-width:110px;padding:6px 8px}.admin-users-mobile{display:none}
.admin-user-card{padding:16px;border:1px solid var(--line);border-radius:17px;background:#fff}.admin-user-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.admin-user-card-head>div:first-child{display:grid;gap:3px;min-width:0}.admin-user-card-head b{font-size:17px}.admin-user-card-head small{color:var(--muted);overflow-wrap:anywhere}.admin-user-card-badges{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end}.admin-user-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:13px}.admin-user-card-grid>span{display:grid;grid-template-columns:28px 1fr;grid-template-areas:"icon label" "icon value";gap:1px 7px;padding:9px;border-radius:12px;background:#f8f9fb}.admin-user-card-grid i{grid-area:icon;font-style:normal}.admin-user-card-grid small{grid-area:label;color:var(--muted);font-size:10px}.admin-user-card-grid b{grid-area:value;font-size:12px}.admin-user-details{margin-top:11px;border-top:1px solid var(--line)}.admin-user-details>summary{padding:12px 0 2px;cursor:pointer;font-weight:850}.admin-user-details-body{display:grid;gap:8px;padding-top:8px}.admin-user-details-body p{margin:0;color:#505761;font-size:13px;line-height:1.45}

/* Admin · missatges compactes. */
.admin-notification-history-compact,.admin-contact-list{display:grid;gap:10px}.admin-notification-row,.admin-contact-card{padding:15px 17px;border:1px solid var(--line);border-radius:16px;background:#fff}.admin-notification-row-main,.admin-contact-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.admin-notification-row-title{display:flex;gap:10px;align-items:center;min-width:0}.admin-notification-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#fff5dc}.admin-notification-row h3{margin:0;font-size:16px}.admin-notification-row-title small{color:var(--muted)}.admin-notification-preview,.admin-contact-preview{margin:9px 0 7px;color:#4e5560;line-height:1.45}.admin-notification-meta{display:flex;flex-wrap:wrap;gap:8px 16px;color:var(--muted);font-size:12px}.admin-message-details{margin-top:8px}.admin-message-details>summary{display:inline-flex;align-items:center;min-height:38px;cursor:pointer;color:#3e5364;font-size:12px;font-weight:850}.admin-message-details-body{margin-top:7px;padding:13px;border-radius:12px;background:#f8f9fb}.admin-message-details-body p{margin:0 0 10px;line-height:1.55;white-space:normal;overflow-wrap:anywhere}.admin-message-details-body dl{display:grid;gap:6px;margin:0}.admin-message-details-body dl>div{display:grid;grid-template-columns:92px minmax(0,1fr);gap:8px}.admin-message-details-body dt{color:var(--muted);font-size:12px}.admin-message-details-body dd{margin:0;font-size:12px;overflow-wrap:anywhere}
.admin-contact-head>div:first-child{display:grid;gap:3px}.admin-contact-name{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.admin-contact-email{font-size:13px;font-weight:750;color:#3e5364;overflow-wrap:anywhere}.admin-contact-head small{color:var(--muted)}.admin-contact-state label{display:grid;gap:4px;color:var(--muted);font-size:10px;font-weight:800}.admin-contact-state select{min-height:40px}

/* PWA · guia gran i inequívoca, especialment a iOS. */
.install-help-card{width:min(620px,100%)}.install-platform-note{display:grid;grid-template-columns:46px minmax(0,1fr);gap:12px;align-items:start;padding:14px;border:1px solid #e5e7eb;border-radius:15px;background:#fafbfc}.install-platform-note>span{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#fff;font-size:25px}.install-platform-note b{font-size:16px}.install-platform-note p{margin:3px 0 0!important;font-size:13px}.install-platform-note.success-note{background:#f1fbf6;border-color:#cfeada}.install-steps-visual{counter-reset:none;list-style:none;padding:0;margin:14px 0!important;gap:9px}.install-steps-visual li{display:grid;grid-template-columns:40px minmax(0,1fr);gap:11px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff}.install-steps-visual li>span{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#171717;color:#fff;font-size:17px;font-weight:900}.install-steps-visual li>div{display:grid;gap:2px}.install-steps-visual li b{font-size:14px}.install-steps-visual li small{color:var(--muted);line-height:1.4}.install-reassurance{padding:11px 13px;border-radius:12px;background:#fff7df;color:#4b4f57!important;font-size:13px}.install-help-actions .btn{min-height:48px}.install-banner .btn,[data-install-banner] .btn{min-height:46px}

/* Comunitat · xat llarg sense perdre missatges nous. */
.community-feed-wrap{position:relative;min-height:0}.community-latest-btn{position:absolute;right:14px;bottom:14px;z-index:4;min-height:42px;padding:9px 13px;border:0;border-radius:999px;background:#171717;color:#fff;font-weight:850;box-shadow:0 8px 24px rgba(15,23,42,.24);cursor:pointer}.community-latest-btn[hidden]{display:none}.community-feed{scrollbar-gutter:stable;overscroll-behavior:contain}.article-card p,.article-card .excerpt{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

@media(max-width:1100px){.admin-kpi-grid-6{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-kpi-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-user-filters{grid-template-columns:1fr 1fr 1fr}.admin-user-filters .wide-control{grid-column:1/-1}.admin-health-grid,.admin-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.home-air-quick{grid-template-columns:52px minmax(0,1fr) auto}.home-air-quick-link{grid-column:2/-1;justify-self:start}.home-air-quick-icon{width:52px;height:52px}}
@media(max-width:900px){.admin-subnav{display:none!important}.admin-mobile-menu{display:block}.admin-users-desktop{display:none}.admin-users-mobile{display:grid;gap:10px}.admin-user-filters{grid-template-columns:1fr 1fr}.admin-user-filters .wide-control{grid-column:1/-1}.community-layout{grid-template-columns:1fr}.community-main{min-height:0}.community-feed{max-height:min(58vh,560px)}}
@media(max-width:760px){.home-air-quick-section{margin-top:14px}.home-air-quick{grid-template-columns:48px minmax(0,1fr);gap:11px 12px;padding:16px}.home-air-quick-icon{width:48px;height:48px;border-radius:15px;font-size:25px}.home-air-quick-status{grid-column:1/-1;display:grid;grid-template-columns:auto auto minmax(0,1fr);min-width:0;padding:10px 11px;border-radius:13px;background:rgba(255,255,255,.72)}.home-air-quick-status>small{grid-column:3;align-self:center}.home-air-quick-link{grid-column:1/-1;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#205f50;color:#fff}.home-air-quick-copy p{font-size:13px}.admin-kpi-grid-6,.admin-kpi-grid-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.admin-kpi{min-height:98px;padding:12px}.admin-kpi>b{font-size:23px}.admin-user-filters{grid-template-columns:1fr}.admin-user-filters .wide-control{grid-column:auto}.admin-user-filters .btn{width:100%}.admin-mobile-menu-grid{grid-template-columns:1fr 1fr}.admin-notification-row-main,.admin-contact-head{flex-direction:column}.admin-contact-state{width:100%}.admin-contact-state label,.admin-contact-state select{width:100%}.admin-notification-row-main>.badge{align-self:flex-start}.admin-health-grid,.admin-quick-actions{grid-template-columns:1fr}.admin-run-row{grid-template-columns:1fr auto}.admin-run-row small:last-child{grid-column:1/-1}.community-feed{max-height:min(56vh,500px);padding-right:2px}.community-compose-row,.community-compose-actions{align-items:stretch;flex-direction:column}.community-compose-row input{max-width:none;width:100%}.community-compose-actions .btn{width:100%;min-height:48px}.install-help-card{padding:22px 18px}.install-help-actions{display:grid;grid-template-columns:1fr}.install-help-actions .btn{width:100%}}
@media(max-width:430px){.admin-kpi-grid-6,.admin-kpi-grid-4{grid-template-columns:1fr 1fr}.admin-kpi{grid-template-columns:32px minmax(0,1fr);column-gap:8px}.admin-kpi-icon{width:32px;height:32px}.admin-mobile-menu-grid{grid-template-columns:1fr}.admin-user-card-grid{grid-template-columns:1fr 1fr}.user-admin-actions{display:grid;grid-template-columns:1fr;min-width:0}.user-admin-actions form,.user-admin-actions .inline-role,.user-admin-actions .btn,.user-admin-actions select{width:100%;max-width:none}.admin-message-details-body dl>div{grid-template-columns:1fr;gap:1px}.home-air-quick-status{grid-template-columns:auto auto}.home-air-quick-status>small{grid-column:1/-1}}
@media(max-width:350px){.admin-kpi-grid-6,.admin-kpi-grid-4,.admin-user-card-grid{grid-template-columns:1fr}}

/* Dashboard d'administració 2.20.9 */
.admin-dashboard-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.admin-dashboard-hero>div{max-width:820px}
.admin-kpi-section .section-head{margin-bottom:12px}.admin-kpi-card{display:grid;grid-template-columns:42px minmax(0,1fr);grid-template-areas:"icon label" "icon value" "icon help";gap:2px 10px;align-items:center;min-height:112px;padding:16px;border:1px solid var(--line);border-radius:17px;background:#fff}.admin-kpi-card>span{grid-area:icon;display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#fff5dc;font-size:20px}.admin-kpi-card>small{grid-area:label;color:var(--muted);font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.035em}.admin-kpi-card>b{grid-area:value;font-size:28px;line-height:1.08}.admin-kpi-card>em{grid-area:help;color:var(--muted);font-size:11px;font-style:normal;line-height:1.3}.admin-kpi-card.is-live>span{background:#e9f8ef}.admin-kpi-word{font-size:19px!important}.admin-kpi-word.ok{color:var(--success)}.admin-kpi-word.warn{color:#9a6410}
.admin-kpi-grid:not(.admin-kpi-grid-4):not(.admin-kpi-grid-6){grid-template-columns:repeat(4,minmax(0,1fr))}.admin-kpi-grid-5{grid-template-columns:repeat(5,minmax(0,1fr))!important}.admin-usage-note{display:flex;gap:10px;align-items:flex-start;margin-top:10px;padding:10px 13px;border-radius:12px;background:#f7f8fa;color:#555d67;font-size:12px}.admin-usage-note b{white-space:nowrap;color:#303640}
.admin-health-list{display:grid;gap:0;margin-top:8px}.admin-health-list>div{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid #eceef1}.admin-health-list>div:last-child{border-bottom:0}.admin-health-list span{color:#565d67}.admin-health-list b{text-align:right}.text-success{color:var(--success)!important}.text-warning{color:#9a6410!important}
.admin-action-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.admin-action-grid form{margin:0}.admin-action-card{width:100%;height:100%;display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-areas:"icon title" "icon help";gap:2px 9px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:14px;background:#fafbfc;color:inherit;text-align:left;cursor:pointer}.admin-action-card>span{grid-area:icon;display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#fff;font-size:19px}.admin-action-card>b{grid-area:title;font-size:13px}.admin-action-card>small{grid-area:help;color:var(--muted);font-size:10px;line-height:1.3}.admin-action-card:hover{background:#fff9ee;border-color:#e3c878}
.admin-forecast-health{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.admin-forecast-health>div{display:grid;gap:3px;padding:10px 11px;border-radius:12px;background:#f8f9fb}.admin-forecast-health span{color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase}.admin-forecast-health b{font-size:14px}.admin-intelligence-summary{padding:18px 20px}.admin-intelligence-summary .section-head{margin-bottom:12px}
.admin-run-list{display:grid;gap:7px}.admin-run-item{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:9px;align-items:start;padding:9px 10px;border-radius:11px;background:#f8f9fb}.admin-run-item>div{display:grid;gap:2px;min-width:0}.admin-run-item b{font-size:12px;overflow-wrap:anywhere}.admin-run-item small{color:var(--muted);font-size:10px;overflow-wrap:anywhere}.admin-run-item time{color:var(--muted);font-size:10px;white-space:nowrap}.run-dot{width:8px;height:8px;margin-top:5px;border-radius:50%;background:#aeb4bd}.run-dot.ok{background:var(--success)}.run-dot.bad{background:#d54a3a}.admin-manual-alerts{display:grid;gap:8px}
@media(max-width:1100px){.admin-kpi-grid:not(.admin-kpi-grid-4):not(.admin-kpi-grid-6),.admin-kpi-grid-5{grid-template-columns:repeat(3,minmax(0,1fr))!important}.admin-action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.admin-dashboard-hero{align-items:stretch;flex-direction:column}.admin-dashboard-hero>.btn{width:100%}.admin-kpi-grid:not(.admin-kpi-grid-4):not(.admin-kpi-grid-6),.admin-kpi-grid-5{grid-template-columns:repeat(2,minmax(0,1fr))!important}.admin-usage-note{display:grid}.admin-action-grid{grid-template-columns:1fr 1fr}.admin-forecast-health{grid-template-columns:1fr 1fr}.admin-run-item{grid-template-columns:10px minmax(0,1fr)}.admin-run-item time{grid-column:2}.admin-health-list>div{align-items:flex-start}.admin-health-list b{max-width:48%}}
@media(max-width:390px){.admin-action-grid,.admin-kpi-grid:not(.admin-kpi-grid-4):not(.admin-kpi-grid-6),.admin-kpi-grid-5{grid-template-columns:1fr!important}}
.push-ios-help{display:flex;gap:9px;align-items:flex-start;margin:0 0 12px;padding:10px 12px;border:1px solid #e7e8eb;border-radius:12px;background:#fafbfc}.push-ios-help>span{font-size:19px}.push-ios-help p{margin:0;color:#545b65;font-size:12px;line-height:1.45}.push-ios-help .text-link{border:0;background:none;padding:0;color:#34586e;font:inherit;font-weight:850;text-decoration:underline;cursor:pointer}

/* 2.20.9 · administració: paginació clara i usable també en mòbil */
.admin-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.admin-pagination span{font-size:14px;color:var(--muted);text-align:center}.admin-pagination .is-disabled{opacity:.45;pointer-events:none}
@media(max-width:520px){.admin-pagination{display:grid;grid-template-columns:1fr 1fr}.admin-pagination span{grid-column:1/-1;grid-row:1}.admin-pagination .btn{width:100%;justify-content:center}}

/* 2.20.9 · frescor ambiental i lectura PWA de l'administració */
.air-stale-warning{display:flex;gap:9px;align-items:flex-start;padding:10px 12px;border-radius:14px;background:#fff7e8;border:1px solid #f1d28d;color:#6b4b10}.air-stale-warning span{font-size:18px}.air-stale-warning small{line-height:1.45}.status-pill.warning{background:#fff7e8;border-color:#f1d28d;color:#6b4b10}
.admin-platform-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}.admin-platform-chips span{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:12px}.admin-platform-chips b{color:var(--text)}


/* 2.20.10 · Hotfix UX final: Home, administració i autenticació */
/* La targeta ambiental és informació de suport: compacta i sense competir amb el temps actual. */
@media(max-width:760px){
  .page-home .home-air-quick-section{margin-top:12px}
  .page-home .home-air-quick{grid-template-columns:42px minmax(0,1fr) auto;gap:8px 10px;padding:13px 14px;border-radius:16px;box-shadow:0 7px 22px rgba(15,23,42,.045)}
  .page-home .home-air-quick-icon{width:42px;height:42px;border-radius:13px;font-size:21px}
  .page-home .home-air-quick-copy{min-width:0}
  .page-home .home-air-quick-copy .eyebrow{font-size:9.5px}
  .page-home .home-air-quick-copy h2{margin:1px 0 2px;font-size:16px;line-height:1.18}
  .page-home .home-air-quick-copy p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden;font-size:11.5px;line-height:1.35}
  .page-home .home-air-quick-status{grid-column:3;grid-row:1;display:grid;grid-template-columns:1fr;justify-items:end;gap:4px;min-width:76px;padding:0;background:transparent}
  .page-home .home-air-quick-status>strong{font-size:24px}.page-home .home-air-quick-status>strong small{font-size:9px}
  .page-home .home-air-quick-status>.badge{min-height:25px;padding:4px 8px;font-size:9.5px;white-space:nowrap}
  .page-home .home-air-quick-status>small{display:none}
  .page-home .home-air-quick-link{grid-column:2/-1;min-height:0;justify-self:start;display:inline-flex;padding:2px 0;border-radius:0;background:transparent;color:#245f50;font-size:11.5px;font-weight:850}
}
@media(max-width:390px){
  .page-home .home-air-quick{grid-template-columns:38px minmax(0,1fr) auto;padding:12px}
  .page-home .home-air-quick-icon{width:38px;height:38px;font-size:19px}
  .page-home .home-air-quick-status{min-width:66px}.page-home .home-air-quick-status>strong{font-size:21px}
  .page-home .home-air-quick-copy h2{font-size:15px}
}

/* Administració: cap contenidor de secció ha de convertir els seus fills en columnes estretes. */
.page-admin .admin-quick-actions{display:block!important;grid-template-columns:none!important}
.page-admin .admin-quick-actions>.section-head{margin-bottom:14px}
.page-admin .admin-action-grid{width:100%;align-items:stretch}
.page-admin .admin-action-grid form{min-width:0}
.page-admin .admin-action-card{min-width:0;min-height:92px;overflow:hidden}
.page-admin .admin-action-card>b,.page-admin .admin-action-card>small{overflow-wrap:normal;word-break:normal;hyphens:none}
.page-admin .panel,.page-admin .card{overflow-wrap:break-word}
.page-admin .toolbar{row-gap:10px}
.page-admin .form-grid label{line-height:1.4}
.page-admin .form-grid input,.page-admin .form-grid select,.page-admin .form-grid textarea{min-width:0;max-width:100%}
.page-admin .check-row{align-items:center;min-height:56px;gap:12px;padding:13px 15px;line-height:1.45}
.page-admin .check-row input{flex:0 0 auto;margin:0}
.page-admin .flash.compact{line-height:1.55}
.page-admin .admin-notify-layout>article{min-width:0}
.page-admin .admin-notify-layout .form-grid{gap:18px}
.page-admin .admin-notify-layout .form-grid>.btn{margin-top:2px}

/* Usuaris: accions previsibles, sense paraules partides ni controls comprimint-se. */
.page-admin .users-table th:last-child,.page-admin .users-table td:last-child{min-width:320px}
.page-admin .user-admin-actions{display:grid;grid-template-columns:repeat(2,minmax(130px,1fr));gap:7px;min-width:300px;align-items:stretch}
.page-admin .user-admin-actions form{min-width:0}
.page-admin .user-admin-actions form:not(.inline-role) .btn{width:100%}
.page-admin .user-admin-actions .btn{justify-content:center;white-space:nowrap;word-break:normal}
.page-admin .user-admin-actions .inline-role{grid-column:1/-1;display:grid;grid-template-columns:minmax(120px,1fr) auto;gap:7px;align-items:center}
.page-admin .user-admin-actions .inline-role select{width:100%;max-width:none}

/* Contacte: estat i eliminació en un grup clar. */
.admin-contact-actions{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.admin-contact-actions form{margin:0}.admin-contact-delete .btn{min-height:40px}

/* Navegació admin: el JS conserva scrollLeft entre pàgines; evitem animacions que el facin saltar. */
.admin-subnav-inner{scroll-behavior:auto}

/* Login i registre: separacions clares entre formulari, recuperació i navegació secundària. */
.auth-card .form-grid{gap:18px;margin-top:24px}
.auth-card .auth-recovery-link{margin-top:0;padding:2px 0 4px;line-height:1.4}
.auth-footer-links{display:grid;gap:10px;margin-top:24px;padding-top:18px;border-top:1px solid #eceef1;color:var(--muted)}
.auth-footer-links.compact{margin-top:20px}
.auth-footer-links p{margin:0;line-height:1.55}
.auth-footer-links a{width:max-content;max-width:100%;color:#505866;text-decoration:underline;text-underline-offset:3px;font-weight:700}
.auth-footer-links p a{color:#344f64;font-weight:850}
.register-app-note+.auth-footer-links{margin-top:22px}

@media(max-width:1100px){
  .page-admin .admin-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .page-admin .admin-action-grid{grid-template-columns:1fr}
  .page-admin .admin-contact-actions{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end}
  .page-admin .admin-contact-state,.page-admin .admin-contact-state label,.page-admin .admin-contact-state select{width:100%}
  .page-admin .user-admin-actions{grid-template-columns:1fr;min-width:0}
  .page-admin .user-admin-actions .inline-role{grid-column:auto;grid-template-columns:1fr}
  .page-admin .user-admin-actions .btn,.page-admin .user-admin-actions select{width:100%;max-width:none}
  .auth-footer-links{margin-top:22px;padding-top:16px}
}
