/* Temas: claro por defecto; oscuro con data-theme="dark" en <html> (botón ☾ de la barra, js/theme.js). */
:root{color-scheme:light;--bg:#eef2f5;--panel:#ffffff;--panel2:#f5f8fa;--bar:#ffffff;--field:#ffffff;--hover:#edf3f7;--line:#d3dce3;--line2:#e3e9ee;--line-strong:#9fb1bf;
--muted:#5d6f7d;--text:#16222c;--text2:#36464f;--link:#0b6b86;--cyan:#076c7e;--amber:#975a00;--red:#cf2a3d;--green:#14703f;--violet:#6a46d8;--rain:#1863a8;
--accent-line:#82c5d1;--accent-bg:#e2f3f6;--ok-bg:#e3f4eb;--ok-line:#8ccfac;--warn-line:#e2bf73;--bad-line:#e9a0a9;--overlay:#ffffffeb;--warn-bg:#fdf3dc;--map-bg:#dde6eb;--shadow:#1b2c3a26}
:root[data-theme="dark"]{color-scheme:dark;--bg:#0a1119;--panel:#111d29;--panel2:#152331;--bar:#0d1721;--field:#152331;--hover:#1a2a38;--line:#263746;--line2:#2a3b49;--line-strong:#3b5266;
--muted:#91a5b5;--text:#eaf2f7;--text2:#c3d1db;--link:#9fc3d6;--cyan:#54d6e7;--amber:#ffbb55;--red:#ff7884;--green:#65d6a2;--violet:#b394ff;--rain:#7fd3ff;
--accent-line:#2b6772;--accent-bg:#173a43;--ok-bg:#173a32;--ok-line:#2b6b55;--warn-line:#6b5426;--bad-line:#6b2a33;--overlay:#0a1119e0;--warn-bg:#3a3117;--map-bg:#0e1820;--shadow:#0008}
/* Tinta de los rótulos del mapa según el tono del mapa base (no del tema): oscura sobre relieve, clara sobre satélite u oscuro. */
.map{--ink:#13202a;--ink2:#2c3f73;--halo:#ffffffd9}.map[data-tone="dark"]{--ink:#ffffff;--ink2:#c9d1ff;--halo:#000000}
*{box-sizing:border-box}
/* El atributo hidden siempre oculta, aunque una clase ponga display (p. ej. .vtabs o .nbform label). */
[hidden]{display:none!important}
body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 Inter,Segoe UI,Arial,sans-serif}
button,select,input{font:inherit;color:inherit}
.app{height:100vh;display:grid;grid-template-rows:58px 1fr 40px}
.top{display:flex;align-items:center;gap:14px;padding:0 18px;border-bottom:1px solid var(--line);background:var(--bar)}
.brand{font-weight:800;letter-spacing:.14em;white-space:nowrap;font-size:inherit;margin:0}.brand i{font-style:normal;color:var(--cyan)}
.sub{color:var(--muted);font-size:12px;white-space:nowrap}
.study{display:flex;align-items:center;gap:6px;margin-left:auto;font-size:11px;color:var(--muted)}
.study input{background:var(--field);border:1px solid var(--line);border-radius:6px;padding:6px 8px}
.search{background:var(--field);border:1px solid var(--line);border-radius:7px;padding:8px 12px;width:220px}
.topbtn{border:1px solid var(--line);background:var(--field);padding:7px 11px;border-radius:6px;cursor:pointer;white-space:nowrap}
.topbtn:hover{border-color:var(--line-strong)}.topbtn.accent{border-color:var(--accent-line);color:var(--cyan)}
.topbtn.on{background:var(--ok-bg);border-color:var(--ok-line);color:var(--green)}
.layout{display:grid;grid-template-columns:250px minmax(420px,1fr) 360px;min-height:0}
.left,.right{background:var(--panel);overflow:auto}
.left{border-right:1px solid var(--line);padding:14px 12px}
.right{border-left:1px solid var(--line);padding:16px}
.section-title{font-size:11px;letter-spacing:.13em;color:var(--muted);font-weight:700;margin:4px 7px 8px}
.group{margin:0 0 16px}
.layer{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:6px;color:var(--text2);cursor:pointer;font-size:13px}
.layer:hover{background:var(--hover)}.layer input{accent-color:var(--cyan);margin:0}
.layer .hint{margin-left:auto;color:var(--muted);font-size:11px}
.layer.off{opacity:.45;cursor:not-allowed}
.swatch{width:12px;height:12px;border-radius:3px;display:inline-block;flex:none}
.sel{width:100%;background:var(--field);border:1px solid var(--line);border-radius:6px;padding:7px 8px;margin:2px 0 6px}
.mini{display:block;font-size:11px;color:var(--muted);margin:4px 2px 2px;letter-spacing:.05em}
.subsel{margin:0 8px 4px 29px;width:calc(100% - 37px);padding:4px 6px;font-size:12px}
.mapcol{min-width:0;display:grid;grid-template-rows:44px minmax(300px,1fr) 104px}
.mapbar{display:flex;align-items:center;gap:8px;padding:0 14px;border-bottom:1px solid var(--line);background:var(--bar);overflow:hidden}
.pill{padding:4px 9px;border:1px solid var(--line);border-radius:99px;color:var(--text2);font-size:11px;white-space:nowrap}
.pill.live{color:var(--green);border-color:var(--ok-line)}.pill.study{color:var(--amber);border-color:var(--warn-line)}.pill.busy{color:var(--cyan);border-color:var(--accent-line)}.pill.err{color:var(--red);border-color:var(--bad-line)}
.map{position:relative;overflow:hidden;background:var(--map-bg)}
#map{position:absolute;inset:0;background:var(--map-bg)}
.legend{position:absolute;left:12px;bottom:12px;z-index:800;background:var(--overlay);border:1px solid var(--line);border-radius:7px;padding:7px 10px;min-width:220px;font-size:11px;color:var(--text2);pointer-events:none}
.legend:empty{display:none}.legend .bar{height:9px;border-radius:3px;margin:5px 0 3px}.legend .lticks{display:flex;justify-content:space-between;color:var(--muted);font-size:11px}
.mapnote{position:absolute;right:12px;bottom:12px;z-index:800;max-width:48%;padding:6px 9px;background:var(--overlay);border:1px solid var(--line);border-radius:6px;color:var(--text2);font-size:11px;pointer-events:none}
.mapnote:empty{display:none}
.timeline{border-top:1px solid var(--line);background:var(--panel);padding:10px 16px}
.timehead{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:11px;margin-bottom:6px;gap:10px}
.timehead b{color:var(--text)}
.timectl{display:flex;align-items:center;gap:10px}
.play{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:var(--field);cursor:pointer;flex:none}
.range{width:100%;accent-color:var(--cyan)}
.ticks{position:relative;height:14px;color:var(--muted);font-size:11px;margin:2px 0 0 40px}
.ticks span{position:absolute;transform:translateX(-50%);white-space:nowrap}
.ticks span.now{color:var(--green)}
.right h2{font-size:17px;margin:0 0 2px}.place{font-size:11px;color:var(--muted)}
.metricgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}
.metric{background:var(--panel2);border:1px solid var(--line);border-radius:7px;padding:10px}
.metric small{color:var(--muted);font-size:11px}.value{font-size:22px;font-weight:700;margin-top:4px}.unit{font-size:11px;color:var(--muted)}
.card{background:var(--panel2);border:1px solid var(--line);border-radius:7px;padding:11px;margin:10px 0}
.cardhead{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--text2);margin-bottom:8px;letter-spacing:.04em}
.chart{width:100%;height:150px;display:block}.chart text{fill:var(--muted);font-size:10px}
.keys{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:11px;color:var(--muted);margin-top:4px}.keys i{display:inline-block;width:10px;height:3px;border-radius:2px;margin-right:4px;vertical-align:middle}
.signal{display:flex;gap:8px;padding:7px 0;border-top:1px solid var(--line2);font-size:11px;color:var(--text2)}
.signal:first-child{border-top:0}
.dot{width:7px;height:7px;border-radius:50%;margin-top:5px;flex:none}
.event{border-top:1px solid var(--line2);padding:7px 0;font-size:11px;color:var(--text2)}
.event:first-child{border-top:0}
.event summary{display:flex;gap:8px;cursor:pointer;list-style:none;align-items:flex-start}
.event summary::-webkit-details-marker{display:none}
.event .what{flex:1}.event .what b{color:var(--text)}.event .when{color:var(--muted);white-space:nowrap}
.event .body{margin:6px 0 2px 15px;color:var(--text2)}
.event .body table{border-collapse:collapse;margin:4px 0}.event .body td{padding:1px 8px 1px 0}
.event .go{margin-top:5px;border:1px solid var(--line);background:var(--field);border-radius:5px;padding:3px 8px;font-size:11px;cursor:pointer}
.warn{display:flex;gap:8px;border-top:1px solid var(--line2);padding:7px 0;font-size:11px;color:var(--text2)}
.warn:first-child{border-top:0}.warn .lvl{width:4px;border-radius:2px;flex:none}
.warn b{color:var(--text)}.warn .areas{color:var(--text2)}
.counts{display:flex;gap:6px;margin-bottom:6px}.counts span{padding:2px 7px;border-radius:99px;font-size:11px;color:#0a1119;font-weight:700}
.prov{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;font-size:11px;color:var(--text2)}.prov dt{color:var(--muted)}.prov dd{margin:0}
.ok{color:var(--green)}.bad{color:var(--red)}.meh{color:var(--amber)}
.footer{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 18px;background:var(--bar);color:var(--muted);font-size:11px;overflow:hidden;white-space:nowrap}
.footer a{color:var(--link)}
.mode{color:var(--cyan);font-weight:700}
.warning{color:var(--amber)}
/* Leaflet */
.leaflet-container{background:var(--map-bg);font:12px Segoe UI,Arial,sans-serif}
.leaflet-control-attribution{font-size:9.5px!important;background:var(--overlay)!important;color:var(--muted)!important}.leaflet-control-attribution a{color:var(--link)!important}
.leaflet-bar a{background:var(--field)!important;color:var(--text)!important;border-color:var(--line)!important}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--field);color:var(--text);border:1px solid var(--line)}
.leaflet-popup-content{font:12px/1.45 Segoe UI,Arial,sans-serif;margin:10px 12px}
.leaflet-popup-content code{font-size:11px;color:var(--muted);white-space:pre-wrap}
.iso-label{color:var(--ink);font-size:11px;font-weight:600;text-shadow:0 0 3px var(--halo),0 0 3px var(--halo);white-space:nowrap;pointer-events:none}
.iso-label.z{color:var(--ink)}.iso-label.p{color:var(--ink2)}
.center-mark{font-weight:800;font-size:18px;text-shadow:0 0 4px var(--halo),0 0 2px var(--halo);line-height:1;text-align:center;pointer-events:none}
.center-mark small{display:block;font-size:11px;font-weight:600}
.center-mark.B{color:#d8283c}.center-mark.A{color:#1f64c8}.map[data-tone="dark"] .center-mark.B{color:#ff6b7a}.map[data-tone="dark"] .center-mark.A{color:#6bb8ff}
.stn{font-size:11px;font-weight:700;color:var(--ink);text-shadow:0 0 3px var(--halo),0 0 3px var(--halo);white-space:nowrap}
.evt-mark{width:24px!important;height:24px!important;margin:-12px 0 0 -12px!important;border-radius:50%;border:2px solid #fff;display:grid;place-items:center;font-size:11px;font-weight:800;color:#0a1119;box-shadow:0 0 0 3px #0008}
/* Cuaderno */
dialog{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:0;width:min(760px,94vw);max-height:88vh}
dialog::backdrop{background:#000a}
.nb{display:grid;grid-template-rows:auto 1fr;max-height:88vh}
.nbhead{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line)}
.nbhead h3{margin:0;font-size:16px}.nbhead .x{margin-left:auto}
.nbbody{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px 18px;overflow:auto}
.nbform label{display:block;font-size:11px;color:var(--muted);margin:8px 0 3px}
.nbform input,.nbform textarea{width:100%;background:var(--field);border:1px solid var(--line);border-radius:6px;padding:7px 9px}
.nbform textarea{min-height:110px;resize:vertical}
.nbform .snap{font-size:11px;color:var(--text2);background:var(--map-bg);border:1px dashed var(--line);border-radius:6px;padding:7px 9px;margin-top:10px}
.case{border:1px solid var(--line);border-radius:7px;padding:9px 10px;margin-bottom:8px;background:var(--panel2)}
.case h4{margin:0 0 2px;font-size:13px}.case p{margin:4px 0;font-size:11px;color:var(--text2);white-space:pre-wrap}
.case .meta{font-size:11px;color:var(--muted)}.case .tags span{display:inline-block;font-size:11px;padding:1px 6px;border-radius:99px;background:var(--accent-bg);color:var(--link);margin:3px 3px 0 0}
.case .acts{display:flex;gap:6px;margin-top:7px}.case .acts button{font-size:11px;padding:4px 9px}
@media(max-width:1100px){.layout{grid-template-columns:220px minmax(380px,1fr)}.right{grid-column:1/-1;border-left:0;border-top:1px solid var(--line)}.app{height:auto;min-height:100vh}.mapcol{height:78vh}.sub{display:none}}
@media(max-width:720px){.app{grid-template-rows:auto 1fr auto}.top{flex-wrap:wrap;padding:8px 12px;gap:8px}.study{margin-left:0}.search{flex:1;width:auto}.layout{display:flex;flex-direction:column}.mapcol{order:1;height:auto;grid-template-rows:auto 60vh 110px}.mapbar{flex-wrap:wrap;padding:6px 10px}.left{order:2;border:0;border-top:1px solid var(--line)}.right{order:3}.nbbody{grid-template-columns:1fr}.footer{flex-wrap:wrap;white-space:normal;padding:8px 12px}.mapnote{max-width:60%}}
/* Fase 2 */
.terms{display:flex;gap:8px;align-items:flex-start;margin-top:12px;font-size:12px;line-height:1.45;color:var(--text2);cursor:pointer}.terms input{margin-top:2px;accent-color:var(--cyan);flex:none}
.vtabs{display:flex;gap:4px;margin-bottom:6px}.vtabs button{border:1px solid var(--line);background:var(--field);border-radius:5px;padding:3px 8px;font-size:11px;cursor:pointer;color:var(--text2)}.vtabs button.on{border-color:var(--accent-line);color:var(--cyan)}
.vtable{width:100%;border-collapse:collapse;font-size:11px}.vtable th{font-weight:600;color:var(--muted);text-align:right;padding:3px 4px;border-bottom:1px solid var(--line2)}.vtable th:first-child,.vtable td:first-child{text-align:left}
.vtable td{text-align:right;padding:3px 4px;border-bottom:1px solid var(--line2);color:var(--text2);white-space:nowrap}
.alertform{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}
.alertform .full{grid-column:1/-1}.alertform select,.alertform input{width:100%;background:var(--field);border:1px solid var(--line);border-radius:5px;padding:5px 6px;font-size:12px}
.alertform label{font-size:11px;color:var(--muted);display:block;margin-bottom:2px}
optgroup{color:var(--muted)}option{color:var(--text)}
.src-own{color:var(--green)}
/* Fase 3 */
.radarctl{position:absolute;top:10px;left:50%;transform:translateX(-50%);z-index:800;display:flex;align-items:center;gap:8px;background:var(--overlay);border:1px solid var(--line);border-radius:8px;padding:5px 10px;width:min(460px,80%)}
.radarctl[hidden]{display:none}.radarctl input{flex:1;accent-color:var(--cyan)}.radarctl span{font-size:11px;color:var(--text2);white-space:nowrap;min-width:150px}
.radarctl .play{width:26px;height:26px;font-size:11px}
.radarctl.nc{border-color:var(--warn-line)}.radarctl.nc span{color:var(--amber)}
#authBtn.on{color:var(--green);border-color:var(--ok-line)}
/* Fase 4 · gamas de usuario */
body[data-view="sencilla"] [data-min="aficionado"], body[data-view="sencilla"] [data-min="pro"], body[data-view="aficionado"] [data-min="pro"]{display:none!important}
body:not([data-view="sencilla"]) [data-only="sencilla"]{display:none!important}
.viewsw{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-left:auto}
.viewsw button{border:0;background:var(--field);padding:7px 12px;cursor:pointer;font-size:12px;color:var(--text2)}
.viewsw button+button{border-left:1px solid var(--line)}
.viewsw button.on{background:var(--accent-bg);color:var(--cyan);font-weight:700}
body[data-view="sencilla"] .study{display:none}
body[data-view="sencilla"] .layout{grid-template-columns:minmax(380px,1fr) 420px}
body[data-view="sencilla"] .search{width:280px}
.simplechips{position:absolute;top:10px;left:10px;z-index:810;display:flex;flex-wrap:wrap;gap:6px;max-width:calc(100% - 70px)}
.simplechips button{border:1px solid var(--line);background:var(--overlay);color:var(--text);border-radius:99px;padding:6px 12px;font-size:13px;cursor:pointer}
.simplechips button.on{background:var(--accent-bg);border-color:var(--accent-line);color:var(--cyan);font-weight:600}

#simplePanel .now{display:flex;align-items:center;gap:14px;margin:4px 0 10px}
#simplePanel .now .big{font-size:52px;font-weight:300;line-height:1}
#simplePanel .now .ico{font-size:46px;line-height:1}
#simplePanel h2{font-size:20px;margin:0}
#simplePanel .lead{font-size:15px;line-height:1.5;color:var(--text);margin:8px 0}
#simplePanel .nexthour{display:flex;gap:10px;align-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin:10px 0;font-size:14px}
#simplePanel .nexthour.rain{border-color:var(--accent-line);background:var(--accent-bg)}
.days{display:grid;gap:6px;margin:10px 0}
.day{display:grid;grid-template-columns:86px 34px 1fr auto;align-items:center;gap:8px;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:13px}
.day .wd{text-transform:capitalize;font-weight:600}.day .ic{font-size:24px}.day .t{font-size:15px;white-space:nowrap}.day .t b{font-size:17px}
.day .rp{color:var(--rain);font-size:12px}.day .cf{font-size:11px;color:var(--muted)}
.swarn{border-left:4px solid;border-radius:6px;background:var(--panel2);padding:8px 10px;margin:6px 0;font-size:13px}
.presets{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.presets button{border:1px solid var(--line);background:var(--field);border-radius:99px;padding:6px 11px;font-size:12px;cursor:pointer;color:var(--text)}
.presets button.done{border-color:var(--ok-line);color:var(--green)}
.srcline{font-size:11px;color:var(--muted);margin-top:12px;line-height:1.5}
.exports{display:grid;grid-template-columns:1fr 1fr;gap:6px}.exports a{display:block;text-align:center;border:1px solid var(--line);background:var(--field);border-radius:6px;padding:7px;font-size:12px;color:var(--text);text-decoration:none}.exports a:hover{border-color:var(--accent-line)}
@media(max-width:1100px){body[data-view="sencilla"] .layout{grid-template-columns:1fr}}
@media(max-width:720px){.viewsw{margin-left:0;order:3;width:100%}.viewsw button{flex:1}.simplechips button{padding:5px 9px;font-size:12px}.day{grid-template-columns:72px 28px 1fr auto}}
body[data-view="sencilla"] .radarctl{top:auto;bottom:12px}
body[data-view="sencilla"] .legend{bottom:60px}
body[data-view="sencilla"] .mapnote{display:none}
/* Fase 5 */
.fb{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--text2);padding:4px 0}
.fb button[data-r]{border:1px solid var(--line);background:var(--field);border-radius:99px;padding:4px 10px;cursor:pointer;font-size:15px}
.fbform{flex-direction:column;align-items:stretch}.fbform textarea{background:var(--field);border:1px solid var(--line);border-radius:6px;padding:6px 8px;min-height:54px;color:var(--text);font:inherit}
.fbform button{align-self:flex-start}
#feedbackSimple{margin-top:6px;padding-top:8px;border-top:1px solid var(--line)}
a.topbtn{text-decoration:none;color:inherit}
.footer a{color:var(--link)}
/* Fase 6 · verticales */
.sectorsw{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin:0 0 12px}
.sectorsw button{border:0;background:var(--field);padding:7px 4px;font-size:12px;cursor:pointer;color:var(--text2)}.sectorsw button+button{border-left:1px solid var(--line)}
.sectorsw button.on{background:var(--accent-bg);color:var(--cyan);font-weight:700}
body:not([data-sector="general"]) #generalPanel{display:none!important}
body[data-sector="general"] #verticalPanel{display:none}
.vp h3{font-size:15px;margin:0 0 4px}.vp .unit a{color:var(--link)}
.vp form{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0}.vp form .full{grid-column:1/-1}
.vp label{font-size:11px;color:var(--muted);display:block;margin-bottom:2px;letter-spacing:.04em}
.vp input,.vp select{width:100%;background:var(--field);border:1px solid var(--line);border-radius:5px;padding:6px 7px;font-size:12px;color:var(--text)}
.badge{display:inline-block;padding:3px 10px;border-radius:99px;font-weight:800;font-size:12px;color:#0a1119}
.lv-verde{background:#65d6a2}.lv-ambar{background:#ffbb55}.lv-rojo{background:#ff4d5e}.lv-sin_datos{background:#5a6b78}
.hstrip{display:flex;gap:2px;margin:8px 0}.hstrip span{flex:1;min-width:6px;height:26px;border-radius:3px;position:relative}
.hlabels{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}
.fwibig{display:flex;align-items:center;gap:12px;margin:8px 0}.fwibig b{font-size:34px;font-weight:300}
.fwidays{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin:6px 0}
.fwidays div{border-radius:6px;padding:6px 4px;text-align:center;font-size:11px;color:#0a1119;font-weight:700}
.fwidays small{display:block;font-weight:500;font-size:11px}
.wtable{width:100%;border-collapse:collapse;font-size:11px;margin:6px 0}.wtable td,.wtable th{border-bottom:1px solid var(--line2);padding:5px 4px;text-align:left;vertical-align:top}.wtable th{color:var(--muted);font-weight:600}
.dot-l{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}
.sitelist{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0}.sitelist button{border:1px solid var(--line);background:var(--field);border-radius:99px;padding:4px 10px;font-size:11px;cursor:pointer;color:var(--text)}.sitelist button.on{border-color:var(--accent-line);color:var(--cyan)}
.sitelist .x{border:0;background:none;color:var(--muted);padding:0 0 0 6px;cursor:pointer}
.vp .actions{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.seg-row{display:grid;grid-template-columns:58px 52px 1fr;gap:6px;font-size:11px;padding:5px 0;border-bottom:1px solid var(--line2)}
/* Barra superior: cabe todo hasta 1100 px (por debajo, la de móvil ya envuelve) */
.top{min-width:0}.search{flex:0 1 220px;min-width:110px;width:auto}
@media(max-width:1640px){.sub{display:none}}
@media(max-width:1380px){.study label{display:none}.topbtn{padding:7px 9px}}
/* Con un sector profesional activo, la columna derecha necesita más sitio para las tablas */
body[data-view="pro"]:not([data-sector="general"]) .layout{grid-template-columns:250px minmax(380px,1fr) 440px}
.sectorsw button{font-size:11px;white-space:nowrap}
@media(max-width:1100px){body[data-view="pro"]:not([data-sector="general"]) .layout{grid-template-columns:220px minmax(380px,1fr)}}
/* Fase 9 · recorrido guiado y «¿acertamos?» */
.tour-ring{position:fixed;z-index:3000;border-radius:8px;border:2px solid var(--cyan);box-shadow:0 0 0 9999px #000a;pointer-events:none;transition:all .25s}
.tour-card{position:fixed;z-index:3001;width:300px;background:var(--panel);border:1px solid var(--accent-line);border-radius:10px;padding:12px 14px;box-shadow:0 8px 30px var(--shadow)}
.tour-card p{margin:6px 0 10px;font-size:14px;line-height:1.45}.tour-acts{display:flex;justify-content:flex-end;gap:6px}
.outcome{border:1px dashed var(--accent-line);border-radius:8px;padding:8px 10px;margin:0 0 8px;font-size:12px}
.outcome .acts{display:flex;gap:6px;margin-top:6px}.outcome button{border:1px solid var(--line);background:var(--field);border-radius:99px;padding:4px 10px;cursor:pointer;font-size:12px;color:var(--text)}
/* Fase 10 · tema claro y mapas base realistas */
.basemap{background:var(--overlay);border:1px solid var(--line);border-radius:6px;box-shadow:0 1px 4px var(--shadow)}
.basemap select{border:0;background:transparent;font-size:12px;padding:5px 6px;cursor:pointer;color:var(--text)}
.legend,.mapnote,.radarctl,.simplechips button{box-shadow:0 1px 4px var(--shadow)}
/* Campos «teñidos» sobre el mapa: el relieve y los nombres siguen viéndose debajo del color. */
.leaflet-pane.blend{mix-blend-mode:multiply}
.leaflet-control-scale-line{background:var(--overlay);color:var(--text);border-color:var(--text2)}
/* Fase 12 · móvil primero */
/* Vista sencilla: la barra de tiempo solo aparece con un campo (temperatura o viento) en el mapa. */
body[data-view="sencilla"]:not([data-fill="1"]) .timeline{display:none}
body[data-view="sencilla"]:not([data-fill="1"]) .mapcol{grid-template-rows:44px minmax(300px,1fr)}
#locBtn{padding-left:9px;padding-right:9px}#locBtn:disabled{opacity:.5;cursor:wait}
/* Pantallas táctiles: se amplía con los dedos; los botones de zoom y la escala sobran. */
@media (pointer:coarse){.leaflet-control-zoom,.leaflet-control-scale{display:none}}
@media(max-width:720px){
  .top{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:calc(6px + env(safe-area-inset-top)) calc(10px + env(safe-area-inset-right)) 8px calc(10px + env(safe-area-inset-left))}
  .brand{font-size:14px;letter-spacing:.1em;flex:1;order:0}
  .top .topbtn{padding:6px 9px;font-size:13px;order:1}
  #adminLink{display:none}
  /* 16 px: con menos, iOS amplía la página al escribir. */
  .search{order:2;flex:1 1 calc(100% - 140px);min-width:0;font-size:16px;padding:9px 11px}
  .top #searchBtn,.top #locBtn{order:2;padding:9px 11px}
  .viewsw{order:3}
  .study{order:4;width:100%}
  /* Sencilla: primero la respuesta, después el mapa. */
  body[data-view="sencilla"] .right{order:0;border-top:0;padding:14px 14px 6px}
  body[data-view="sencilla"] .mapcol{order:1}
  body[data-view="sencilla"]:not([data-fill="1"]) .mapcol{grid-template-rows:minmax(260px,46vh)}
  body[data-view="sencilla"][data-fill="1"] .mapcol{grid-template-rows:minmax(260px,46vh) 104px}
  body[data-view="sencilla"] .mapbar{display:none}
  #simplePanel .now .big{font-size:46px}
  .footer{padding-bottom:calc(8px + env(safe-area-inset-bottom))}
}
/* Fase 14 · seguimiento del piloto */
body[data-sector="general"] #decisionBox{display:none}
#surveyDialog{width:min(620px,94vw)}
.sv-body{padding:12px 18px 18px;overflow:auto;max-height:76vh}
.sv-q{border:0;padding:0;margin:0 0 14px}.sv-q legend{font-weight:600;margin-bottom:6px;padding:0}
.sv-opt{display:block;padding:5px 2px;cursor:pointer}
.sv-q textarea{width:100%;background:var(--field);border:1px solid var(--line);border-radius:6px;padding:7px 9px;font:inherit;color:var(--text)}
.sv-scale{display:flex;flex-wrap:wrap;gap:4px}.sv-scale label{cursor:pointer}.sv-scale input{position:absolute;opacity:0}
.sv-scale span{display:inline-grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:6px;background:var(--field)}
.sv-scale input:checked+span{background:var(--accent-bg);border-color:var(--accent-line);color:var(--cyan);font-weight:700}
.sv-scale input:focus-visible+span{outline:2px solid var(--cyan)}
.sv-ends{display:flex;justify-content:space-between;max-width:420px}
/* Fase 17 · contraseñas */
.linkbtn{border:0;background:none;color:var(--link);cursor:pointer;font-size:12px;padding:4px 2px;text-decoration:underline}
/* Fase 19 · accesibilidad */
/* Foco de teclado siempre visible, en los dos temas. */
:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.leaflet-container :focus-visible{outline-offset:0}
/* Sin animaciones para quien ha pedido movimiento reducido en su sistema (WCAG 2.3.3). */
@media (prefers-reduced-motion: reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
/* Enlace para saltar la cabecera y el mapa con el teclado: invisible hasta que recibe el foco. */
.skip{position:absolute;left:8px;top:-60px;z-index:4000;background:var(--panel);color:var(--link);border:2px solid var(--cyan);border-radius:6px;padding:8px 12px;font-weight:600}
.skip:focus{top:8px}
#panelDerecho:focus{outline:none}
