@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
:root{--bg:#061626;--panel:#0d263c;--panel2:#102e49;--line:#1c4664;--cyan:#22d3ee;--blue:#168bff;--text:#f3f8fc;--muted:#9db2c4;--yellow:#ffbd45;--red:#ff5964;--green:#42d69b}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif;min-height:100vh}.app-shell{max-width:520px;margin:0 auto;min-height:100vh;padding-bottom:92px;background:linear-gradient(180deg,#071b2d,#061626 42%)}.topbar{height:62px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #17364d;position:sticky;top:0;background:#071b2df2;z-index:5}.brand{font-weight:800;font-size:22px;letter-spacing:-.7px;color:white;text-decoration:none;display:flex;align-items:center;gap:7px}.brand-mark{color:#ffd34f;font-size:26px}.cyan{color:var(--cyan)}.icon-button{border:1px solid var(--line);background:var(--panel);color:var(--cyan);border-radius:12px;width:40px;height:40px;font-size:25px}main{padding:18px 16px}.page{display:none;animation:fade .18s ease}.page.active{display:block}@keyframes fade{from{opacity:.55;transform:translateY(4px)}to{opacity:1;transform:none}}.location-line{display:flex;align-items:center;justify-content:space-between;margin:2px 2px 12px}.location-line>span,.page-heading small{font-size:10px;letter-spacing:1.3px;color:var(--muted);font-weight:700}.text-button{background:none;border:0;color:var(--cyan);font-weight:600;font-size:12px;padding:6px}.panel{background:linear-gradient(145deg,#102d47,#0a2034);border:1px solid #1b4664;border-radius:19px;box-shadow:0 8px 22px #0002}.weather-hero{padding:17px;display:grid;grid-template-columns:88px 1fr;gap:4px 12px;align-items:center}.weather-character{width:82px;height:82px;border-radius:50%;display:grid;place-items:center;font-size:53px;background:radial-gradient(circle,#184d6b,#0a253a 70%);border:1px solid #236184}.temperature{font-size:48px;font-weight:700;letter-spacing:-3px}.condition{font-size:13px;font-weight:600}.feels{font-size:11px;color:var(--muted);margin-top:5px}.weather-meta{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.weather-meta>div{background:#0a2034;border:1px solid #1b4664;border-radius:12px;padding:9px;text-align:center;display:grid;gap:3px}.weather-meta span{font-size:18px;color:var(--cyan)}.weather-meta b{font-size:12px}.weather-meta small{font-size:10px;color:var(--muted)}.risk-card{margin-top:12px;padding:13px;display:flex;align-items:center;gap:12px}.risk-icon{font-size:26px}.risk-card div:nth-child(2){display:grid;gap:3px;flex:1}.risk-card small{font-size:9px;color:var(--muted);letter-spacing:.8px}.risk-card b{font-size:13px}.risk-card p{margin:0;font-size:10px;color:var(--muted)}.status-dot{width:9px;height:9px;background:var(--green);border-radius:50%;box-shadow:0 0 12px var(--green)}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:21px 1px 10px}.section-heading h2{font-size:15px;margin:0}.hourly-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.hour{background:#0d263c;border:1px solid #1b4664;border-radius:13px;padding:10px 4px;display:grid;gap:6px;text-align:center}.hour small{font-size:10px;color:var(--muted)}.hour span{font-size:23px}.hour b{font-size:13px}.tip-card{padding:14px;margin-top:13px}.tip-title{font-size:13px;font-weight:700;color:#ffcf69}.tip-card p{font-size:12px;color:#d5e2ec;line-height:1.5;margin:7px 0 0}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.quick-tile{background:#0d263c;border:1px solid #1b4664;border-radius:13px;color:var(--text);padding:12px 4px;font-size:10px;display:grid;justify-items:center;gap:7px}.quick-tile span{font-size:22px}.page-heading{display:flex;align-items:center;justify-content:space-between;margin:2px 0 18px}.page-heading h1{font-size:25px;margin:4px 0 0}.pill{font-size:10px;color:var(--cyan);border:1px solid #236184;border-radius:20px;padding:6px 9px}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,520px);height:76px;padding:8px 8px calc(8px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,1fr);background:#081b2cf5;border-top:1px solid #1b4664;z-index:10}.nav-item{background:none;border:0;color:#8fa7ba;display:grid;align-content:center;justify-items:center;gap:3px}.nav-item span{font-size:23px;line-height:25px}.nav-item small{font-size:10px}.nav-item.active{color:var(--cyan)}.radar-placeholder{height:330px;position:relative;overflow:hidden;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 48%,#145b62,#0b3447 42%,#0a2034 75%)}.radar-rings{position:absolute;width:270px;height:270px;border:1px solid #36d5d566;border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 35px,#36d5d533 36px 37px);}.radar-rings:after{content:"";position:absolute;inset:50% 0 auto;height:1px;background:#36d5d566;transform:rotate(-30deg)}.radar-pin{font-size:30px;z-index:1}.radar-label{z-index:1;font-size:12px;font-weight:700;background:#071b2ddd;padding:5px 9px;border-radius:10px}.radar-placeholder p{position:absolute;bottom:12px;left:14px;right:14px;text-align:center;font-size:10px;color:#c1d2df}.legend{padding:13px;margin-top:12px;font-size:11px}.legend>div{display:flex;align-items:center;gap:7px;margin-top:10px;color:var(--muted)}.legend-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.rain{background:#32a7ff}.storm{background:#ffbd45}.hail{background:#ff5964}.muted-note{font-size:10px;color:var(--muted);line-height:1.5}.segmented{display:grid;grid-template-columns:repeat(3,1fr);background:#0a2034;border:1px solid var(--line);padding:4px;border-radius:13px;margin-bottom:12px}.segmented button{background:none;border:0;color:var(--muted);padding:9px;border-radius:10px;font-size:11px}.segmented .selected{background:linear-gradient(90deg,#0ebbdc,#168bff);color:white;font-weight:700}.forecast-today{padding:15px}.forecast-today>span{font-size:12px;color:var(--muted)}.forecast-today>div{display:flex;align-items:center;gap:13px;margin:10px 0}.forecast-today strong{font-size:42px}.big-weather{font-size:37px}.forecast-today>div span:last-child{font-size:11px;color:var(--muted)}.forecast-today p{font-size:11px;color:var(--muted);margin:0}.forecast-list{margin-top:12px;padding:4px 13px}.forecast-list>div{display:grid;grid-template-columns:1fr 36px 78px;align-items:center;padding:12px 0;border-bottom:1px solid #1b4664;font-size:12px}.forecast-list>div:last-child{border:0}.forecast-list span:nth-child(2){font-size:20px}.forecast-list span:last-child{text-align:right;color:#c5d6e3}.alert-card{display:flex;gap:12px;padding:15px;border-radius:16px;margin-bottom:12px;border:1px solid}.alert-card>span{font-size:24px}.alert-card b{font-size:13px}.alert-card p{font-size:11px;line-height:1.45;margin:6px 0;color:#f1f5f9}.alert-card small{font-size:9px;opacity:.8}.danger{background:#4b1d2a;border-color:#a83c4b}.warning{background:#49371a;border-color:#8d6a28}.setting-row{padding:14px;margin-top:10px;display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:12px}.date-card{padding:17px;display:grid;gap:7px}.date-card span{font-size:10px;color:var(--cyan);letter-spacing:1px}.date-card b{font-size:18px}.date-card p{font-size:11px;color:var(--muted);margin:0;line-height:1.5}.task-list{padding:5px 14px;margin:12px 0}.task{display:flex;align-items:center;gap:10px;padding:13px 0}.task>div{display:grid;gap:4px}.task b{font-size:12px}.task small{font-size:10px;color:var(--muted)}.check{width:22px;height:22px;border-radius:7px;background:#164c48;color:#66e2b5;display:grid;place-items:center}.primary-button,.secondary-button{width:100%;border:0;border-radius:13px;padding:14px;background:linear-gradient(90deg,#0bbbd9,#168bff);color:white;font-weight:700;font-size:13px}.secondary-button{background:#102e49;border:1px solid #236184;margin-top:12px}.vehicle-summary{display:flex;gap:14px;padding:16px;align-items:center}.vehicle-emoji{font-size:38px}.vehicle-summary b{font-size:14px}.vehicle-summary p{font-size:11px;color:var(--muted);margin:5px 0 0;line-height:1.4}.vehicle-actions{margin-top:12px}.record-list{padding:13px}.empty-state{font-size:11px;color:var(--muted);line-height:1.6}.record{padding:12px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:10px}.record:last-child{border:0}.record b{font-size:12px}.record small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.record strong{font-size:12px;color:#a7e6f3}.search-label{display:grid;gap:8px;font-size:11px;color:var(--muted)}input,select,textarea{width:100%;background:#091e31;border:1px solid #24516f;border-radius:12px;padding:13px;color:white;font:inherit;font-size:13px;outline:none}input:focus,textarea:focus{border-color:var(--cyan)}.location-tags{display:flex;gap:7px;overflow:auto;padding:13px 0}.location-tags button{white-space:nowrap;background:#102e49;border:1px solid #24516f;color:#c9d8e4;border-radius:20px;padding:8px 12px;font-size:10px}.location-tags button.selected{border-color:var(--cyan);color:var(--cyan)}.saved-locations{padding:5px 13px}.saved-location{display:flex;align-items:center;gap:11px;padding:12px 0}.saved-location>span:first-child{font-size:22px}.saved-location div{display:grid;gap:4px;flex:1}.saved-location b{font-size:12px}.saved-location small{font-size:10px;color:var(--muted)}.prevention-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.prevention-item{padding:15px;display:grid;gap:7px}.prevention-item span{font-size:28px}.prevention-item b{font-size:13px}.prevention-item p{font-size:10px;color:var(--muted);line-height:1.45;margin:0}.menu-row{width:100%;display:flex;align-items:center;gap:12px;background:#0d263c;border:1px solid #1b4664;color:white;border-radius:14px;padding:14px;margin-bottom:9px;text-align:left;font-size:20px}.menu-row span{display:grid;gap:4px;flex:1;font-size:12px;font-weight:700}.menu-row small{font-size:10px;color:var(--muted);font-weight:400}.settings-panel{padding:0 13px}.settings-panel .setting-row{margin:0;border-bottom:1px solid var(--line);padding:15px 0;display:grid}.settings-panel .setting-row:last-child{border:0}.settings-panel .setting-row span{font-size:10px;color:var(--muted)}dialog{border:1px solid #2a668b;border-radius:18px;background:#0c263d;color:white;width:min(92%,420px);padding:0}dialog::backdrop{background:#000b}.dialog-card{padding:20px;display:grid;gap:12px;position:relative}.dialog-card h2{font-size:18px;margin:0 28px 3px 0}.dialog-close{position:absolute;right:14px;top:12px;border:0;background:none;color:white;font-size:25px}.dialog-card label{font-size:11px;color:var(--muted);display:grid;gap:6px}.dialog-card .primary-button{margin-top:4px}
@media(min-width:600px){body{padding:18px 0}.app-shell{border:1px solid #1b4664;border-radius:24px;overflow:hidden;min-height:calc(100vh - 36px)}.topbar{position:relative}.bottom-nav{bottom:18px;border-radius:0 0 24px 24px}}

.location-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.location-actions .text-button{font-size:10px;padding:6px 4px}.saved-location{min-width:0}.saved-location>div:nth-child(2){min-width:0}.saved-location b{overflow-wrap:anywhere}button:disabled{opacity:.6;cursor:wait}

/* Etapa 2: jerarquía de Inicio y mapa real */
.brand-mark{display:none}
.weather-hero{grid-template-columns:82px 1fr;gap:4px 12px;padding:15px}
.weather-meta{gap:7px;margin-top:10px}
.weather-meta>div{padding:7px 5px;gap:2px}
.weather-meta span{font-size:16px}
.weather-meta b{font-size:11px}
.weather-meta small{font-size:9px}
.data-source{grid-column:1/-1;margin:3px 0 0;text-align:right;font-size:9px;color:var(--muted)}
.risk-card{width:100%;text-align:left;color:var(--text);cursor:pointer;margin-top:10px;padding:12px 13px;min-height:68px}
.risk-icon{font-size:25px;color:#7bd9a9;width:28px;text-align:center}
.risk-copy{display:grid;gap:4px;flex:1}
.risk-copy>small:first-child{font-size:9px;letter-spacing:.8px;color:var(--muted)}
.risk-copy b{font-size:12px}
.risk-copy>small:last-child{font-size:9px;color:var(--muted);line-height:1.35}
.risk-chevron{font-size:23px;color:var(--muted)}
.risk-neutral{background:linear-gradient(120deg,#102d3b,#10283c);border-color:#28604e}
.risk-watch{background:linear-gradient(120deg,#44391b,#2b2a26);border-color:#9b7a2b}.risk-watch .risk-icon{color:#ffd36a}
.risk-warning{background:linear-gradient(120deg,#50301c,#34283a);border-color:#bd7136}.risk-warning .risk-icon{color:#ffb36a}
.risk-danger{background:linear-gradient(120deg,#4a202b,#30243a);border-color:#b84b5b}.risk-danger .risk-icon{color:#ff7480}
.section-heading{margin:16px 1px 8px}
.hourly-strip{gap:6px}
.hour{padding:8px 3px;gap:4px}
.hour span{font-size:20px}
.hour b{font-size:12px}
.tip-card{width:100%;text-align:left;color:var(--text);cursor:pointer;margin-top:12px;padding:14px;background:linear-gradient(135deg,#2a2442,#172c48);border-color:#66568f;display:grid;gap:10px}
.tip-title{font-size:13px;font-weight:700;color:#e6d8ff}
.tip-content{display:flex;align-items:center;gap:12px}
.tip-illustration{width:52px;height:52px;flex:0 0 52px;display:grid;place-items:center;border-radius:15px;background:#42375f;color:#f1d7ff;font-size:28px}
.tip-copy{display:grid;gap:5px}
.tip-copy b{font-size:13px;color:#fff}
.tip-copy span{font-size:11px;line-height:1.45;color:#d7d2e7}
.tip-action{display:flex;justify-content:flex-end;align-items:center;gap:8px;color:#e4c9ff;font-size:12px;font-weight:700;padding-top:7px;border-top:1px solid #66568f66}
.tip-action span{font-size:19px}
.map-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;font-size:12px;font-weight:700}
.map-gps{width:auto;margin:0;padding:9px 12px;font-size:11px}
.weather-map{height:440px;overflow:hidden;border-radius:18px;z-index:1}
.map-status{display:grid;gap:5px;padding:12px;margin-top:10px}
.map-status b{font-size:12px}.map-status span{font-size:10px;line-height:1.45;color:var(--muted)}
.map-attribution-note{font-size:9px;line-height:1.5;color:var(--muted)}
.leaflet-container{background:#dce6e8;font:12px Inter,system-ui,sans-serif}
.leaflet-control-attribution{font-size:9px!important}
@media(max-width:380px){.weather-hero{grid-template-columns:70px 1fr;padding:12px}.weather-character{width:66px;height:66px;font-size:43px}.temperature{font-size:42px}.weather-meta>div{padding:7px 3px}.weather-meta b{font-size:10px}}

.prevention-current{padding:14px;margin-bottom:12px;background:linear-gradient(135deg,#2a2442,#172c48);border:1px solid #66568f;border-radius:17px}.prevention-current>small{font-size:9px;letter-spacing:1px;color:#d9c7f4}.prevention-current>div{display:flex;align-items:center;gap:12px;margin-top:10px}.prevention-current>div>span{font-size:29px;width:48px;height:48px;display:grid;place-items:center;border-radius:13px;background:#42375f}.prevention-current section{display:grid;gap:5px}.prevention-current b{font-size:13px}.prevention-current p{font-size:11px;color:#d7d2e7;line-height:1.45;margin:0}

.nav-item{color:#f3f8fc}.nav-item.active{color:#f04caf}.alerts-unavailable{display:flex;gap:12px;align-items:flex-start;padding:15px;margin-bottom:12px;background:linear-gradient(135deg,#182b3d,#102337);border:1px solid #38536a;border-radius:16px}.alerts-unavailable>span{font-size:25px;color:#9eb6c8}.alerts-unavailable b{font-size:13px}.alerts-unavailable p{font-size:11px;line-height:1.5;color:#c0cfda;margin:6px 0 0}

/* Mascota oficial y escenario meteorológico dinámico de Inicio */
.weather-hero{position:relative;isolation:isolate;overflow:hidden;min-height:178px;background:linear-gradient(120deg,#123c61,#176b91 52%,#0d2c49);border-color:#28769b;transition:background .45s ease,border-color .45s ease}
.weather-hero:before{content:"";position:absolute;z-index:-1;inset:0;opacity:.9;background:radial-gradient(ellipse at 18% 12%,#fff9 0 3%,transparent 22%),radial-gradient(ellipse at 85% 0%,#7bdcff66,transparent 40%),linear-gradient(180deg,#62b8df33,transparent 65%)}
.weather-hero:after{content:"";position:absolute;z-index:-1;left:-8%;right:-8%;bottom:-48px;height:105px;border-radius:50% 50% 0 0;background:linear-gradient(180deg,#54b5ce55,#0b2944 78%);filter:blur(2px)}
.weather-hero[data-weather="cloud"]{background:linear-gradient(125deg,#405d75,#71899b 55%,#263f58);border-color:#718da4}
.weather-hero[data-weather="cloud"]:before{background:radial-gradient(ellipse at 20% 10%,#fff8,transparent 32%),radial-gradient(ellipse at 80% 0%,#d9e5ed77,transparent 44%),linear-gradient(180deg,#b8cbd533,transparent)}
.weather-hero[data-weather="rain"]{background:linear-gradient(125deg,#183d5d,#286080 52%,#102b49);border-color:#3989ad}
.weather-hero[data-weather="rain"]:before{background:repeating-linear-gradient(108deg,transparent 0 24px,#b8eaff22 25px 27px),linear-gradient(180deg,#8fc5e044,transparent)}
.weather-hero[data-weather="storm"]{background:linear-gradient(125deg,#171f39,#39415e 55%,#101b32);border-color:#66718e}
.weather-hero[data-weather="storm"]:before{background:radial-gradient(ellipse at 75% 0%,#a7b9df55,transparent 45%),linear-gradient(180deg,#11172c77,transparent)}
.weather-hero[data-weather="cold"]{background:linear-gradient(125deg,#285477,#75a9c6 55%,#183d61);border-color:#82c7e8}
.weather-hero[data-weather="cold"]:before{background:radial-gradient(ellipse at 20% 0%,#fff9,transparent 35%),radial-gradient(ellipse at 85% 0%,#d8f6ff88,transparent 48%)}
.weather-hero[data-weather="wind"]{background:linear-gradient(125deg,#1c536e,#4d9eb0 55%,#173b5a);border-color:#5ac4d2}
.weather-hero[data-weather="wind"]:before{background:repeating-linear-gradient(165deg,transparent 0 28px,#d6ffff22 29px 31px),radial-gradient(ellipse at 75% 0%,#b9faff55,transparent 40%)}
.weather-hero[data-weather="heat"]{background:linear-gradient(125deg,#6b3c36,#c77a45 54%,#4b3441);border-color:#e3a15f}
.weather-hero[data-weather="heat"]:before{background:radial-gradient(ellipse at 18% 0%,#fff7b888,transparent 34%),radial-gradient(ellipse at 85% 5%,#ffbd6666,transparent 45%)}
.weather-character{width:100px;height:100px;border:0;background:radial-gradient(circle,#ffffff30,transparent 70%);border-radius:0;position:relative;z-index:1}
.weather-character img{display:block;width:112px;height:112px;object-fit:contain;filter:drop-shadow(0 8px 12px #001a2c66)}
.weather-main,.weather-meta,.data-source{position:relative;z-index:1}
.weather-main{ text-shadow:0 1px 8px #001b2b55}
@media(max-width:380px){.weather-character{width:76px;height:82px}.weather-character img{width:90px;height:90px}}

/* Visores oficiales SMN */
.radar-sourcebar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px;font-size:10px;color:var(--muted)}
.official-frame-wrap{height:430px;overflow:hidden;border-radius:16px;background:#071a2b}
.official-frame-wrap iframe{width:100%;height:100%;border:0;background:#fff}
.official-alerts-frame{height:560px}
#page-alerts .setting-row a{color:var(--cyan);font-size:11px;text-decoration:none;white-space:nowrap}
#page-alerts .setting-row{min-height:48px}
@media(max-width:380px){.official-frame-wrap{height:390px}.official-alerts-frame{height:520px}.radar-sourcebar{font-size:9px}}


/* Alertas SMN integradas: estilos limitados al módulo Alertas */
.smn-alerts-list{display:grid;gap:10px;padding:12px;min-height:58px}
.smn-alert-card{padding:13px;border:1px solid #244761;border-radius:14px;background:#102b40;display:grid;gap:7px}
.smn-alert-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.smn-alert-top b{font-size:13px;line-height:1.4;color:#f3f7fb}
.smn-alert-badge{font-size:9px;color:#66d4e5;white-space:normal;text-align:right;border:1px solid #32647b;border-radius:20px;padding:4px 7px;flex:0 0 auto}
.smn-alert-badge[data-state="expired"],.smn-alert-badge[data-state="cancelled"]{color:#b8c6d1;border-color:#536879}
.smn-alert-badge[data-state="unconfirmed"],.smn-alert-badge[data-state="not_currently_listed"]{color:#ffd27b;border-color:#8d6a28}
.smn-alert-card p{font-size:11px;line-height:1.5;color:#c1cfdb;margin:0}
.smn-alert-card .smn-alert-severity{font-weight:700;color:#ffd27b}
.smn-alert-card .smn-alert-instruction{color:#f0e3cb}
.smn-alert-card small{display:block;font-size:10px;line-height:1.5;color:#93aabd}
.smn-alert-card a{display:inline-block;margin-top:2px;color:#55cfe2;font-size:11px;text-decoration:none}
#smn-alerts-status[data-state="complete"]{border-color:#28604e}
#smn-alerts-status[data-state="partial"]{border-color:#8d6a28}
#smn-alerts-status[data-state="error"]{border-color:#a83c4b}
#smn-alerts-status[data-state="stale"]{border-color:#a83c4b;background:#3a2028}
.radar-access{display:grid;gap:9px;padding:14px}
.radar-access>b{font-size:13px;color:#f3f7fb}
.radar-access>p,.radar-access>small{font-size:11px;line-height:1.5;color:#a9bfce;margin:0}
.radar-access .radar-link{display:block;text-align:center;text-decoration:none;padding:10px;border-radius:10px;color:#eaf8ff;border:1px solid #32647b;background:#12364c;font-size:12px}
#page-alerts .setting-row a{color:var(--cyan);font-size:11px;text-decoration:none;white-space:nowrap}
#page-alerts .setting-row{min-height:48px}
@media(max-width:380px){.smn-alerts-list{padding:9px}.smn-alert-top{gap:6px}.smn-alert-badge{font-size:8px;padding:4px 5px}}

/* Inicio: selector de paisajes integrado en la tarjeta meteorológica */
.weather-hero{position:relative;isolation:isolate;overflow:hidden}
.weather-scenery{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:cover;opacity:.76;pointer-events:none;transition:filter .6s ease,opacity .6s ease}.weather-atmosphere{position:absolute;z-index:1;inset:0;pointer-events:none;overflow:hidden;background:linear-gradient(90deg,rgba(5,20,34,.62),rgba(5,20,34,.16));transition:background .6s ease}.weather-atmosphere .rain-streaks,.weather-atmosphere .storm-flash{position:absolute;inset:0;opacity:0}.weather-atmosphere .rain-streaks{background:repeating-linear-gradient(105deg,transparent 0 23px,rgba(205,235,255,.34) 24px 25px,transparent 26px 42px);animation:climago-rain .65s linear infinite}.weather-atmosphere .storm-flash{background:rgba(220,235,255,.75);animation:climago-lightning 9s infinite}.weather-hero[data-phase="day"][data-sky="clear"] .weather-atmosphere{background:linear-gradient(180deg,rgba(35,145,220,.16),rgba(18,86,135,.08)),linear-gradient(90deg,rgba(5,20,34,.34),rgba(5,20,34,.04))}.weather-hero[data-sky="partly"] .weather-atmosphere{background:linear-gradient(90deg,rgba(5,20,34,.45),rgba(5,20,34,.04)),linear-gradient(180deg,rgba(255,255,255,.08),transparent 55%)}.weather-hero[data-sky="overcast"] .weather-atmosphere{background:linear-gradient(180deg,rgba(80,96,112,.55),rgba(20,35,52,.4)),linear-gradient(90deg,rgba(5,20,34,.48),rgba(5,20,34,.18))}.weather-hero[data-sky="rain"] .weather-atmosphere{background:linear-gradient(180deg,rgba(24,43,62,.62),rgba(10,25,42,.5))}.weather-hero[data-sky="rain"] .rain-streaks,.weather-hero[data-sky="storm"] .rain-streaks{opacity:.72}.weather-hero[data-sky="storm"] .weather-atmosphere{background:linear-gradient(180deg,rgba(12,19,39,.72),rgba(8,18,34,.58))}.weather-hero[data-sky="storm"] .storm-flash{opacity:1}.weather-hero[data-phase="night"] .weather-scenery{filter:brightness(.38) saturate(.78) hue-rotate(8deg)}.weather-hero[data-phase="night"] .weather-atmosphere{background:linear-gradient(180deg,rgba(7,15,39,.5),rgba(5,13,32,.58)),linear-gradient(90deg,rgba(5,20,34,.45),rgba(5,20,34,.2))}.weather-hero[data-phase="night"][data-sky="rain"] .weather-atmosphere,.weather-hero[data-phase="night"][data-sky="storm"] .weather-atmosphere{background:linear-gradient(180deg,rgba(8,14,31,.72),rgba(5,12,27,.68))}@keyframes climago-rain{to{transform:translate(-12px,18px)}}@keyframes climago-lightning{0%,87%,90%,100%{opacity:0}88%,89%{opacity:.8}}@media(prefers-reduced-motion:reduce){.weather-atmosphere .rain-streaks,.weather-atmosphere .storm-flash{animation:none}.weather-atmosphere .storm-flash{opacity:0}}
.weather-hero:after{content:"";position:absolute;z-index:2;inset:0;background:linear-gradient(90deg,rgba(5,20,34,.35),rgba(5,20,34,.08));pointer-events:none}.weather-hero>.location-line{z-index:6}.weather-hero>.weather-character,.weather-hero>.weather-main,.weather-hero>.weather-meta,.weather-hero>.data-source{z-index:3}
.location-line{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 8px;position:relative;z-index:2}
.location-copy .text-button{font-size:12px}
.scenery-control{position:relative}
.scenery-toggle,.scenery-picker button{border:1px solid rgba(190,160,255,.55);background:rgba(5,18,32,.88);color:#f3f0ff;border-radius:10px;padding:7px 9px;font-size:10px;font-weight:600}
.scenery-picker{position:absolute;right:0;top:calc(100% + 6px);min-width:112px;display:grid;gap:5px;padding:7px;background:#091b2c;border:1px solid #7655a8;border-radius:12px;z-index:8;box-shadow:0 8px 24px #0008}
.scenery-picker[hidden]{display:none}
.scenery-picker button{text-align:left}
.weather-hero[data-scenery="sierras"] .weather-scenery{object-position:center 62%}
.weather-hero[data-scenery="ciudad"] .weather-scenery{object-position:center 65%}
.weather-hero[data-scenery="mar"] .weather-scenery{object-position:center 64%}
.weather-meta>div{background:rgba(5,18,32,.9);border-color:rgba(190,160,255,.62)}
@media(max-width:380px){.location-line{gap:4px}.scenery-toggle{font-size:9px;padding:6px 7px}.weather-hero{padding:13px}}


/* ClimaGo: fondo paisajístico con efectos atmosféricos, sin mascota ni relámpagos decorativos. */
.weather-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-content:start;
  gap:9px;
  min-height:330px;
  padding:14px;
  background:#102b43;
}
.weather-hero:before{display:none}
.weather-hero:after{
  z-index:2;
  inset:0;
  left:0;right:0;bottom:0;height:auto;
  border-radius:0;
  filter:none;
  background:linear-gradient(90deg,rgba(3,16,29,.48),rgba(3,16,29,.12)),linear-gradient(180deg,rgba(3,16,29,.12),rgba(3,16,29,.28));
}
.weather-character{display:none!important}
.weather-main{
  grid-column:1/-1;
  align-self:center;
  min-height:104px;
  margin:5px 0 4px;
  z-index:3;
}
.weather-main .temperature{font-size:54px;line-height:1}
.weather-main .condition{font-size:15px;margin-top:5px}
.weather-main .feels{font-size:12px;color:#e0edf5}
.weather-meta{grid-column:1/-1;z-index:3;margin-top:auto}
.data-source{grid-column:1/-1;z-index:3}
.weather-scenery{opacity:1}
.weather-atmosphere{z-index:1;background:linear-gradient(90deg,rgba(4,17,31,.42),rgba(4,17,31,.08))}
.weather-atmosphere .storm-flash{display:none!important;animation:none!important}
.weather-atmosphere .rain-streaks{z-index:3}
.weather-atmosphere .night-sky{
  position:absolute;inset:0;opacity:0;pointer-events:none;
  background-image:radial-gradient(1.5px 1.5px at 12% 18%,#fff 98%,transparent),radial-gradient(1px 1px at 28% 12%,#fff 98%,transparent),radial-gradient(1px 1px at 48% 20%,#fff 98%,transparent),radial-gradient(1.5px 1.5px at 72% 14%,#fff 98%,transparent),radial-gradient(1px 1px at 88% 27%,#fff 98%,transparent),radial-gradient(1px 1px at 61% 34%,#fff 98%,transparent);
}
.weather-hero[data-phase="night"] .weather-scenery{filter:brightness(.53) saturate(.86) hue-rotate(5deg)}
.weather-hero[data-phase="night"] .weather-atmosphere{background:linear-gradient(180deg,rgba(5,12,34,.32),rgba(5,13,31,.5)),linear-gradient(90deg,rgba(5,15,31,.38),rgba(5,15,31,.12))}
.weather-hero[data-phase="night"][data-sky="clear"] .night-sky,
.weather-hero[data-phase="night"][data-sky="partly"] .night-sky{opacity:.72}
.weather-hero[data-phase="night"][data-sky="overcast"] .weather-scenery,
.weather-hero[data-phase="night"][data-sky="rain"] .weather-scenery,
.weather-hero[data-phase="night"][data-sky="storm"] .weather-scenery{filter:brightness(.36) saturate(.72)}
.weather-hero[data-sky="partly"] .weather-atmosphere:before,
.weather-hero[data-sky="overcast"] .weather-atmosphere:before,
.weather-hero[data-sky="rain"] .weather-atmosphere:before,
.weather-hero[data-sky="storm"] .weather-atmosphere:before{
  content:"";position:absolute;inset:-15% -30% auto;height:64%;
  background:radial-gradient(ellipse at 20% 55%,rgba(235,243,250,.42),transparent 34%),radial-gradient(ellipse at 52% 35%,rgba(220,231,241,.38),transparent 38%),radial-gradient(ellipse at 82% 58%,rgba(220,231,241,.34),transparent 35%);
  filter:blur(17px);opacity:.62;animation:climago-cloud-drift 38s ease-in-out infinite alternate;
}
.weather-hero[data-sky="overcast"] .weather-atmosphere:before,
.weather-hero[data-sky="rain"] .weather-atmosphere:before,
.weather-hero[data-sky="storm"] .weather-atmosphere:before{opacity:.88;filter:blur(22px)}
.weather-hero[data-sky="rain"] .weather-atmosphere,
.weather-hero[data-sky="storm"] .weather-atmosphere{background:linear-gradient(180deg,rgba(22,39,58,.44),rgba(8,20,37,.42))}
.weather-hero[data-sky="rain"] .rain-streaks,
.weather-hero[data-sky="storm"] .rain-streaks{opacity:.62}
.weather-hero[data-sky="storm"] .rain-streaks{opacity:.78}
@keyframes climago-cloud-drift{from{transform:translateX(-2%)}to{transform:translateX(3%)}}
@media(max-width:380px){
  .weather-hero{min-height:320px;padding:12px}
  .weather-main .temperature{font-size:49px}
}
@media(prefers-reduced-motion:reduce){.weather-atmosphere:before{animation:none}}

/* Luna nocturna: fase aproximada calculada para la fecha local actual. */
.weather-atmosphere .moon-phase{position:absolute;top:24px;right:26px;font-size:30px;line-height:1;filter:drop-shadow(0 2px 8px rgba(255,244,205,.45))}
.weather-hero[data-phase="night"][data-sky="clear"] .moon-phase,
.weather-hero[data-phase="night"][data-sky="partly"] .moon-phase{display:block}
.weather-hero:not([data-phase="night"]) .moon-phase,
.weather-hero[data-sky="overcast"] .moon-phase,
.weather-hero[data-sky="rain"] .moon-phase,
.weather-hero[data-sky="storm"] .moon-phase{display:none}
