/* PTN MeteoSvizzera 1.1 — forecast-focused, mobile first and accessible. */
.ptn-meteo-box{max-width:1200px;margin:28px auto 54px;padding:27px 28px;border:1px solid #dfe6ea;background:#f7f9fb;border-radius:12px;color:#202a35;font-family:inherit;box-sizing:border-box}
.ptn-meteo-box *{box-sizing:border-box}
.ptn-meteo-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:0 0 22px}
.ptn-meteo-label{display:inline-block;color:#b9172a;font-size:11px;font-weight:850;letter-spacing:1.5px}
.ptn-meteo-top h2{font-size:clamp(23px,2.5vw,29px);line-height:1.2;margin:7px 0 6px;letter-spacing:-.6px}
.ptn-meteo-top p,.ptn-meteo-local p{font-size:14px;margin:0;color:#606e79;line-height:1.55}
.ptn-meteo-update{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;column-gap:7px;row-gap:3px;font-size:11px;color:#536676;text-align:right;max-width:240px;line-height:1.5}
.ptn-meteo-update strong{font-weight:700}.ptn-meteo-update small{flex:0 0 100%;font-size:11px}
.ptn-meteo-update-dot{height:8px;width:8px;border-radius:100%;background:#23845a;display:inline-block}
.ptn-meteo-update.is-stale .ptn-meteo-update-dot{background:#c57d24}
.ptn-meteo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.ptn-meteo-region{min-width:0;background:#fff;border:1px solid #dbe2e8;border-radius:10px;padding:19px 18px 14px;box-shadow:0 3px 10px rgba(20,35,50,.025)}
.ptn-meteo-zone{display:flex;justify-content:space-between}.ptn-meteo-zone h3{margin:0;font-size:16px;line-height:1.25;font-weight:800}
.ptn-meteo-zone small{display:block;font-size:11px;color:#788795;font-weight:500;margin-top:4px}
.ptn-meteo-main{display:flex;align-items:center;gap:12px;margin:15px 0 5px}
.ptn-meteo-main strong{font-size:clamp(28px,3.25vw,38px);letter-spacing:-1.7px;line-height:1.15;display:block}
.ptn-meteo-main small{display:block;font-size:11px;color:#78828b;margin-top:4px;line-height:1.4}
.ptn-meteo-icon{font-size:42px;line-height:1.05;flex-shrink:0}
.ptn-meteo-condition{color:#495d6c;font-size:13px;font-weight:650;margin:4px 0 12px;min-height:20px}
.ptn-meteo-today{display:flex;align-items:center;gap:7px;flex-wrap:wrap;border-top:1px solid #eef0f2;padding:12px 0 10px;margin:0;font-size:12px;color:#626d78}
.ptn-meteo-today strong{color:#243343;font-size:13px}.ptn-meteo-today>span:last-child{margin-left:auto;font-size:10px;color:#82909a}
.ptn-meteo-days{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #e8ecef;margin-top:1px;padding-top:11px;gap:5px}
.ptn-meteo-day{text-align:center;min-width:0;padding:2px 1px 4px;display:flex;align-items:center;flex-direction:column;gap:4px;border-radius:6px}
.ptn-meteo-day+.ptn-meteo-day{border-left:1px solid #edf0f1;border-radius:0}
.ptn-meteo-day-label{font-size:11px;font-weight:800;color:#5e6974}.ptn-meteo-day-icon{font-size:26px;line-height:1.3}
.ptn-meteo-day-temp{font-size:13px;font-weight:850;white-space:nowrap}.ptn-meteo-day-temp small{font-size:11px;font-weight:550;color:#87909b}
.ptn-meteo-day-rain{font-size:10px;color:#357399;font-weight:700;white-space:nowrap}
.ptn-meteo-unavailable{font-size:12px;color:#777}
.ptn-meteo-local{display:grid;grid-template-columns:1.1fr minmax(270px,.9fr);gap:23px;align-items:center;margin-top:20px;padding:19px 20px;border:1px solid #dae4ee;border-radius:10px;background:linear-gradient(130deg,#f2f6fc,#fff)}
.ptn-meteo-local h3{font-size:18px;line-height:1.25;margin:0 0 6px}
.ptn-meteo-search{min-width:0}.ptn-meteo-search>label{display:block;font-size:12px;font-weight:750;margin-bottom:6px}
.ptn-meteo-search-fields{display:flex;gap:8px}
.ptn-meteo-search input{width:110px;min-width:0;flex:1 1 110px;min-height:43px;padding:9px 11px;border:1px solid #bac9d8;border-radius:6px;background:#fff;font-size:16px}
.ptn-meteo-search button{min-height:43px;border:0;border-radius:6px;background:#b9172a;color:#fff;padding:9px 14px;font-size:12px;font-weight:800;cursor:pointer}
.ptn-meteo-search button:disabled{opacity:.55;cursor:wait}.ptn-meteo-search button:hover:not(:disabled){background:#90101f}
.ptn-meteo-search>small{display:block;margin-top:6px;font-size:10px;color:#71808c;line-height:1.5}
.ptn-meteo-result{background:#fff;border:1px solid #dbe5ee;border-radius:10px;padding:17px 19px;margin-top:13px;box-shadow:0 5px 20px rgba(15,30,50,.045)}
.ptn-meteo-result[hidden]{display:none!important}.ptn-meteo-result-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.ptn-meteo-result h4{font-size:18px;margin:0 0 3px}.ptn-meteo-result-sub{font-size:12px;color:#657684}
.ptn-meteo-current{display:flex;gap:8px;align-items:center;font-size:18px;font-weight:800}
.ptn-meteo-result .ptn-meteo-mini{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ptn-meteo-mini .ptn-meteo-mini-cell{background:#f6f9fc;border:1px solid #e6edf2;border-radius:7px;padding:12px;min-width:0;font-size:12px}
.ptn-meteo-mini-cell b{display:block;font-size:12px}.ptn-meteo-mini-cell .ptn-meteo-mini-icon{display:block;font-size:29px;margin:5px 0 4px}
.ptn-meteo-mini-cell small{display:block;color:#647585;line-height:1.5;font-size:11px}.ptn-meteo-mini-cell .ptn-meteo-mini-temp{font-size:14px;font-weight:800;margin:3px 0}
.ptn-meteo-error{color:#9a252b;font-size:13px}.ptn-meteo-bottom{display:flex;gap:16px;justify-content:space-between;margin-top:17px;color:#75818c;font-size:11px;line-height:1.6}
.ptn-meteo-bottom span{max-width:790px}.ptn-meteo-bottom a{color:#315f7c;text-decoration:underline;text-underline-offset:2px}
@media(max-width:1050px){.ptn-meteo-region{padding:15px 12px}.ptn-meteo-main{gap:8px}.ptn-meteo-icon{font-size:35px}.ptn-meteo-day-rain{font-size:9px}}
@media(max-width:780px){.ptn-meteo-top{flex-direction:column;gap:10px}.ptn-meteo-update{text-align:left;justify-content:flex-start;max-width:none}.ptn-meteo-grid{grid-template-columns:1fr}.ptn-meteo-region{padding:17px 19px}.ptn-meteo-local{grid-template-columns:1fr;gap:15px}.ptn-meteo-main strong{font-size:38px}.ptn-meteo-bottom{flex-direction:column;gap:4px}}
@media(max-width:510px){.ptn-meteo-box{padding:18px 13px;margin:20px 0 26px}.ptn-meteo-region{padding:16px 13px}.ptn-meteo-local{padding:15px 12px}.ptn-meteo-search-fields{flex-wrap:wrap}.ptn-meteo-search button{flex:1 1 130px}.ptn-meteo-result .ptn-meteo-mini{grid-template-columns:1fr}.ptn-meteo-mini .ptn-meteo-mini-cell{display:grid;grid-template-columns:1fr 1fr;align-items:center}.ptn-meteo-mini-cell .ptn-meteo-mini-icon{font-size:23px;margin:0}}
