:root{color-scheme:dark;--bg:#080d13;--panel:#0e151e;--panel2:#111b27;--line:rgba(151,174,202,.14);--text:#e9f0f8;--muted:#899aaf;--blue:#55a5ff;--cyan:#43d6c8;--danger:#ff8e8e;--font:Inter,Arial,sans-serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:var(--font);background:var(--bg);color:var(--text)}body{font-size:13px;line-height:1.55}button,input,select{font:inherit}a{color:inherit}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-size:17px;font-weight:800;letter-spacing:-.7px}.brand small{display:block;color:#8190a2;font-size:7px;letter-spacing:1.1px;margin-top:2px}.brand-mark{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(140deg,#388aff,#36d4c0);color:white;font-size:21px;font-weight:800;box-shadow:0 7px 22px #298fff31}.eyebrow{font-size:9px;font-weight:800;letter-spacing:1.25px;color:#7faedc;margin:0 0 9px}.muted{color:var(--muted)}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 52% 24%,rgba(39,117,204,.17),transparent 38%),radial-gradient(circle at 1px 1px,#ffffff10 1px,transparent 1.5px);background-size:auto,22px 22px}.login-card{width:min(100%,440px);padding:42px;border:1px solid var(--line);border-radius:22px;background:rgba(13,20,29,.94);box-shadow:0 30px 90px #0006}.login-card .brand{margin-bottom:34px}.login-card h1{font-size:35px;line-height:1.14;letter-spacing:-1.7px;margin:8px 0 14px}.login-card h1 em,.page-intro h1 em{font-style:normal;color:var(--cyan)}.login-form{display:grid;gap:9px;margin-top:25px}.login-form label,.search-form label{font-size:10px;font-weight:700;color:#a9b8c9;margin:8px 0 0}.login-form input,.search-form input,.search-form select{width:100%;height:46px;border:1px solid var(--line);border-radius:10px;background:#0a1119;color:var(--text);padding:0 14px;outline:none}.login-form input:focus,.search-form input:focus,.search-form select:focus{border-color:#4397ee;box-shadow:0 0 0 3px #368af025}.button{height:43px;border-radius:9px;padding:0 15px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:12px;font-size:10px;font-weight:800;cursor:pointer;transition:transform .15s,filter .15s}.button:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.08)}.button:disabled{opacity:.45;cursor:not-allowed}.button.primary{color:#07111a;background:linear-gradient(110deg,#62aaff,#47dfce);box-shadow:0 8px 22px #3199db24}.button.primary span{font-size:17px}.button.secondary{color:#a7d3ff;background:#143050;border-color:#27537d}.button.ghost{color:#c2d0df;background:#111c28;border-color:var(--line)}.form-error{color:#ff9b9b;background:#3b2022;padding:9px 12px;border-radius:8px;font-size:10px}.notice{padding:13px;border-radius:10px;font-size:10px;line-height:1.7}.notice.warning{color:#f2d498;background:#332b1d;border:1px solid #755c2b}.login-foot{border-top:1px solid var(--line);padding-top:16px;margin:30px 0 0;color:#718399;font-size:9px}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{height:68px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#0b1118}.topbar-right{display:flex;align-items:center;gap:18px}.source-pill{font-size:8px;font-weight:800;letter-spacing:.7px;color:#a5b8cb;display:flex;align-items:center;gap:7px}.source-pill i,.live-dot{width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 4px #43d6c81c}.logout{background:transparent;color:#9eafc1;border:1px solid var(--line);padding:8px 12px;border-radius:8px;font-size:9px;font-weight:700;cursor:pointer}.logout span{color:var(--cyan);margin-left:5px}.workspace{display:grid;grid-template-columns:400px minmax(0,1fr);min-height:calc(100vh - 108px);flex:1}.sidebar{position:relative;z-index:2;padding:27px 24px 24px;overflow-y:auto;border-right:1px solid var(--line);background:#0b1119}.page-intro h1{font-size:27px;line-height:1.17;letter-spacing:-1.25px;margin:0 0 10px}.page-intro .muted{font-size:10px;line-height:1.7;margin:0;max-width:330px}.search-form{display:grid;gap:9px;margin:22px 0 13px}.search-form label{margin-top:4px}.input-wrap{position:relative}.input-wrap>span:first-child{position:absolute;left:13px;top:8px;color:var(--cyan);font-size:18px}.search-form input{padding-left:38px;padding-right:46px}.country-tag{position:absolute;right:12px;top:14px;color:#788ba0;font-size:8px;font-weight:800}.search-form select{appearance:auto}.search-form .button{margin-top:4px;width:100%}.status{min-height:40px;padding:10px 11px;border-radius:9px;color:#90a1b5;background:#101a25;border:1px solid var(--line);font-size:9px;line-height:1.55}.status.success{color:#9ce8d9;border-color:#26857747;background:#10241f}.status.error{color:#ffb0b0;border-color:#814646;background:#29191b}.results-panel{padding-top:20px}.result-head{display:flex;justify-content:space-between;align-items:center}.result-head h2{margin:0;font-size:16px;letter-spacing:-.3px}.result-head .eyebrow{font-size:8px;margin-bottom:2px}.count-chip{display:grid;place-items:center;min-width:37px;height:31px;padding:0 8px;border:1px solid #3976b044;background:#163150;color:#94c6ff;border-radius:9px;font-size:11px;font-weight:800}.result-subtitle{margin:4px 0 11px;color:#8294a9;font-size:8px}.signal-note{display:flex;gap:9px;align-items:start;padding:10px;border:1px solid #3c8d9740;background:#0c1d22;border-radius:9px}.signal-note>span{font-size:15px;color:var(--cyan)}.signal-note p{margin:0;color:#9aacb7;font-size:8px;line-height:1.6}.hotspots-title{display:flex;align-items:baseline;justify-content:space-between;margin:20px 0 8px}.hotspots-title h3,.plan-head h3{font-size:11px;margin:0}.hotspots-title span{color:#6f8195;font-size:7px}.hotspots{display:grid;gap:6px}.hotspot{display:grid;grid-template-columns:26px 1fr 27px;align-items:center;gap:7px;padding:8px 9px;border:1px solid var(--line);border-radius:9px;background:#0e1721;transition:border-color .15s,background .15s}.hotspot.is-selected{border-color:#3eaaa0;background:#10231f}.hotspot-rank{font-size:8px;color:#778aa0;font-weight:800}.hotspot-copy b,.hotspot-copy small{display:block}.hotspot-copy b{font-size:9px;color:#d7e3ef}.hotspot-copy small{margin-top:1px;color:#8396aa;font-size:7px}.bar-track{height:3px;margin-top:6px;border-radius:9px;background:#1c2a37;overflow:hidden}.bar-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#398eff,#43d6c8)}.zone-add{width:25px;height:25px;border:1px solid #32465a;border-radius:7px;background:#142130;color:#b8d7f1;font-size:14px;cursor:pointer}.hotspot.is-selected .zone-add{color:#5ce1ca;border-color:#287c70;background:#12312c}.empty-results,.empty-plan{padding:12px;color:#8192a5;font-size:8px;border:1px dashed #2b3a48;border-radius:9px}.plan-head{display:flex;align-items:center;justify-content:space-between;margin:22px 0 8px;padding-top:14px;border-top:1px solid var(--line)}.plan-head h3{font-size:11px}.plan-head p{font-size:7px;color:#8192a5;margin:2px 0 0}.clear-plan{border:0;background:transparent;color:#8295a9;font-size:8px;cursor:pointer}.plan-list{display:grid;gap:6px}.empty-plan{margin:0}.plan-row{display:grid;grid-template-columns:25px 1fr 25px;gap:7px;align-items:center;padding:9px;border-radius:9px;background:#101a25;border:1px solid var(--line)}.plan-index{color:var(--cyan);font-weight:800;font-size:8px}.plan-detail b,.plan-detail small{display:block}.plan-detail b{font-size:8px;color:#d8e4ef}.plan-detail small{font-size:7px;color:#8798ab;line-height:1.5}.plan-detail .coordinates{color:#6f849a}.plan-row>button{width:24px;height:24px;border:0;border-radius:7px;background:#2b1c22;color:#f199a0;font-size:15px;cursor:pointer}.export-buttons{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.export-buttons .button{font-size:8px;padding:0 8px}.export-note{color:#77899c;font-size:7px;line-height:1.6;margin:7px 0 0}.help-box{margin-top:17px;border-top:1px solid var(--line);padding-top:13px}.help-box summary{cursor:pointer;color:#bac8d7;font-size:9px;font-weight:700}.help-box p{color:#8799ac;font-size:8px;line-height:1.7}.data-credit{color:#687b8f;font-size:7px;line-height:1.7;margin-top:16px}.data-credit a{color:#94bdea}.map-panel{position:relative;min-height:620px;background:#131c24;overflow:hidden}.map-panel #map{position:absolute;inset:0;z-index:0}.leaflet-container{background:#151e26;font-family:var(--font)}.leaflet-control-attribution{font-size:8px!important;background:rgba(9,14,20,.8)!important;color:#b4c4d4!important}.leaflet-control-attribution a{color:#8fbded!important}.leaflet-control-zoom a{background:#101923!important;color:#d9e5f0!important;border-color:#314253!important}.map-overlay{position:absolute;z-index:401;top:17px;left:17px;display:flex;align-items:center;gap:11px;padding:11px 14px;border:1px solid #263747;border-radius:11px;background:#0b121ddd;backdrop-filter:blur(10px);box-shadow:0 12px 30px #0004}.map-overlay .live-dot{flex:0 0 auto}.map-title b,.map-title small{display:block}.map-title b{font-size:9px}.map-title small{color:#8d9eb2;font-size:7px}.map-legend{position:absolute;z-index:401;bottom:18px;left:18px;display:flex;gap:13px;padding:10px 12px;border-radius:9px;border:1px solid #263747;background:#0b121ddd;color:#b7c6d4;font-size:7px}.map-legend span{display:flex;align-items:center;gap:6px}.map-legend i{width:8px;height:8px;border-radius:50%;display:inline-block}.legend-place{background:#43d6c8}.legend-hot{background:#4297ff}.map-empty{position:absolute;z-index:402;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:6px;width:min(310px,85%);padding:25px;border:1px solid #364553;border-radius:15px;background:#0b121de8;backdrop-filter:blur(12px);text-align:center;box-shadow:0 15px 50px #0006}.map-empty[hidden],.map-loading[hidden],.results-panel[hidden]{display:none}.empty-cross{display:grid;place-items:center;width:43px;height:43px;color:var(--cyan);border:1px solid #2b77725c;background:#13312e;border-radius:14px;font-size:25px}.map-empty b{font-size:12px}.map-empty span{font-size:8px;color:#92a2b6}.map-loading{position:absolute;z-index:450;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:8px;width:210px;padding:24px;border:1px solid #33495c;border-radius:14px;background:#0a111bea;box-shadow:0 15px 50px #0008}.map-loading b{font-size:10px}.map-loading small{font-size:8px;color:#8c9eb2}.spinner{width:24px;height:24px;border:2px solid #3a556c;border-top-color:var(--cyan);border-radius:50%;animation:spin .8s linear infinite}.spinner.small{width:14px;height:14px;border-width:2px}.app-footer{height:40px;display:flex;justify-content:space-between;align-items:center;padding:0 22px;border-top:1px solid var(--line);background:#0a1017;color:#74869b;font-size:7px}.app-footer a{color:#9dbfe0}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1000px){.workspace{grid-template-columns:340px minmax(0,1fr)}.sidebar{padding-inline:18px}}@media(max-width:760px){.topbar{height:59px;padding-inline:15px}.source-pill{display:none}.workspace{grid-template-columns:1fr;grid-template-rows:auto minmax(450px,62vh)}.sidebar{border-right:0;border-bottom:1px solid var(--line);padding:21px 16px 18px;max-height:none}.page-intro h1{font-size:25px}.map-panel{min-height:450px}.map-overlay{top:11px;left:11px}.map-legend{left:10px;bottom:10px}.app-footer{height:auto;min-height:40px;gap:8px;padding:10px 13px;flex-wrap:wrap}.login-card{padding:28px 24px}.login-card h1{font-size:30px}}@media print{body,.app-shell{background:white;color:#111}.topbar,.search-form,.status,.map-panel,.help-box,.data-credit,.clear-plan,.export-buttons,.export-note,.result-subtitle,.signal-note,.hotspots,.hotspots-title{display:none!important}.workspace{display:block;min-height:0}.sidebar{border:0;background:white;padding:0 20px;overflow:visible}.sidebar *{color:#111!important}.page-intro h1{font-size:25px}.results-panel{display:block!important}.plan-head{margin-top:18px}.plan-row{background:white;border:1px solid #bbb;break-inside:avoid}.plan-detail b,.plan-detail small{color:#111!important}.app-footer{background:white;border:0;color:#555;padding-inline:20px}}

/* Legibilidad y controles del explorador */
body{font-size:15px;line-height:1.6}
.workspace{grid-template-columns:420px minmax(0,1fr)}
.sidebar{padding:30px 25px 26px}
.brand{font-size:20px}
.brand small{font-size:9px}
.brand-mark{width:38px;height:38px;font-size:23px}
.eyebrow{font-size:11px;letter-spacing:1.3px}
.page-intro h1{font-size:31px;line-height:1.2}
.page-intro .muted{font-size:13px;line-height:1.65}
.search-form{gap:10px;margin:24px 0 15px}
.search-form label,.login-form label{font-size:13px;margin-top:7px}
.search-form input,.search-form select,.login-form input{height:50px;padding-inline:14px;font-size:15px}
.search-form input{padding-left:40px;padding-right:48px}
.search-form .button,.button{height:48px;font-size:14px}
.country-tag{font-size:11px;top:15px}
.status{min-height:48px;padding:12px 13px;font-size:12px;line-height:1.55}
.source-pill{font-size:10px}
.logout{font-size:12px;padding:9px 13px}
.result-head h2{font-size:20px}
.result-head .eyebrow{font-size:10px}
.count-chip{font-size:14px;min-width:42px;height:35px}
.result-subtitle{font-size:12px;line-height:1.55}
.signal-note{padding:12px}
.signal-note p{font-size:11px;line-height:1.6}
.hotspots-title h3,.plan-head h3{font-size:14px}
.hotspots-title span{font-size:10px}
.hotspots{gap:8px}
.hotspot{grid-template-columns:32px 1fr 34px;gap:9px;padding:10px 11px}
.hotspot-rank{font-size:12px}
.hotspot-copy b{font-size:12px}
.hotspot-copy small{font-size:10px}
.bar-track{height:4px}
.zone-add{width:31px;height:31px;font-size:18px}
.empty-results,.empty-plan{padding:14px;font-size:11px}
.plan-head{margin-top:24px;padding-top:16px}
.plan-head p{font-size:10px}
.clear-plan{font-size:11px}
.plan-row{grid-template-columns:30px 1fr 30px;gap:9px;padding:11px}
.plan-index{font-size:11px}
.plan-detail b{font-size:11px}
.plan-detail small{font-size:10px;line-height:1.55}
.plan-row>button{width:29px;height:29px;font-size:18px}
.export-buttons{gap:9px;margin-top:12px}
.export-buttons .button{font-size:11px;padding-inline:9px}
.export-note,.help-box p{font-size:10px;line-height:1.65}
.help-box summary{font-size:12px}
.data-credit{font-size:10px;line-height:1.6}
.map-overlay{padding:12px 15px}
.map-title b{font-size:12px}
.map-title small{font-size:10px}
.map-legend{font-size:10px;padding:11px 13px}
.map-empty{width:min(350px,88%);padding:28px}
.map-empty b{font-size:15px}
.map-empty span{font-size:11px}
.map-loading{width:250px;padding:26px}
.map-loading b{font-size:13px}
.map-loading small{font-size:11px}
.leaflet-control-attribution{font-size:10px!important}
.app-footer{font-size:10px}
.login-card h1{font-size:38px}
.login-form input{padding-inline:14px}
.login-form .button{font-size:14px}
.form-error,.notice{font-size:12px}
@media(max-width:1000px){.workspace{grid-template-columns:380px minmax(0,1fr)}.sidebar{padding-inline:21px}}
@media(max-width:760px){body{font-size:14px}.topbar{height:62px}.workspace{grid-template-columns:1fr;grid-template-rows:auto minmax(450px,62vh)}.sidebar{padding:23px 17px 20px}.page-intro h1{font-size:29px}.page-intro .muted{font-size:13px}.search-form label{font-size:13px}.search-form input,.search-form select{font-size:15px}.status{font-size:12px}.hotspot-copy b{font-size:13px}.hotspot-copy small,.plan-detail small{font-size:11px}.map-legend{font-size:10px}.app-footer{font-size:10px}}
@media print{body{font-size:12px}.workspace{grid-template-columns:1fr}.sidebar{padding:0 20px}}

/* Aumento fuerte de legibilidad en pantallas pequeñas y grandes */
body{font-size:16px;line-height:1.65}
.workspace{grid-template-columns:440px minmax(0,1fr)}
.sidebar{padding:32px 28px 28px}
.brand{font-size:21px}
.brand small{font-size:10px}
.source-pill{font-size:11px}
.logout{font-size:13px}
.eyebrow{font-size:13px;letter-spacing:1.2px}
.page-intro h1{font-size:34px;line-height:1.2}
.page-intro .muted{font-size:16px;line-height:1.6}
.search-form{gap:12px;margin:26px 0 17px}
.search-form label,.login-form label{font-size:16px;line-height:1.4}
.search-form input,.search-form select,.login-form input{height:56px;font-size:17px}
.search-form input{padding-left:42px;padding-right:50px}
.country-tag{font-size:12px;top:18px}
.input-wrap>span:first-child{top:12px;font-size:20px}
.search-form .button,.button{height:54px;font-size:15px}
.button.primary span{font-size:21px}
.status{min-height:48px;padding:13px 14px;font-size:14px;line-height:1.6}
.result-head h2{font-size:21px}
.result-head .eyebrow{font-size:11px}
.count-chip{min-width:42px;height:36px;font-size:14px}
.result-subtitle{font-size:13px;line-height:1.55}
.signal-note{gap:11px;padding:13px}
.signal-note>span{font-size:19px}
.signal-note p{font-size:13px;line-height:1.6}
.hotspots-title h3,.plan-head h3{font-size:16px}
.hotspots-title span{font-size:12px}
.hotspots{gap:9px}
.hotspot{grid-template-columns:34px 1fr 38px;gap:10px;padding:12px}
.hotspot-rank{font-size:14px}
.hotspot-copy b{font-size:15px}
.hotspot-copy small{font-size:13px}
.bar-track{height:5px;margin-top:8px}
.zone-add{width:35px;height:35px;font-size:20px}
.empty-results,.empty-plan{padding:16px;font-size:13px;line-height:1.6}
.plan-head{margin-top:26px;padding-top:18px}
.plan-head p{font-size:13px}
.clear-plan{font-size:14px}
.plan-row{grid-template-columns:34px 1fr 34px;gap:10px;padding:13px}
.plan-index{font-size:13px}
.plan-detail b{font-size:14px}
.plan-detail small{font-size:13px;line-height:1.6}
.plan-row>button{width:33px;height:33px;font-size:20px}
.export-buttons{gap:10px;margin-top:14px}
.export-buttons .button{font-size:13px;padding-inline:10px}
.export-note,.help-box p{font-size:13px;line-height:1.65}
.help-box{margin-top:20px;padding-top:16px}
.help-box summary{font-size:15px}
.data-credit{font-size:12px;line-height:1.65}
.map-title b{font-size:15px}
.map-title small{font-size:13px}
.map-legend{font-size:13px}
.map-empty b{font-size:18px}
.map-empty span{font-size:14px;line-height:1.5}
.map-loading b{font-size:16px}
.map-loading small{font-size:13px}
.leaflet-control-attribution{font-size:12px!important}
.app-footer{font-size:12px}
.login-card h1{font-size:40px}
.login-form input{padding-inline:15px}
.form-error,.notice{font-size:14px;line-height:1.6}
@media(max-width:1000px){.workspace{grid-template-columns:400px minmax(0,1fr)}.sidebar{padding-inline:23px}}
@media(max-width:760px){body{font-size:16px}.topbar{height:64px}.workspace{grid-template-columns:1fr;grid-template-rows:auto minmax(450px,62vh)}.sidebar{padding:26px 20px 22px;max-height:none}.page-intro h1{font-size:32px}.page-intro .muted{font-size:16px}.search-form label{font-size:16px}.search-form input,.search-form select{font-size:17px}.status{font-size:14px}.hotspot-copy b{font-size:15px}.hotspot-copy small,.plan-detail small{font-size:13px}.map-legend{font-size:12px}.app-footer{font-size:12px}.help-box summary{font-size:15px}}
@media print{body{font-size:13px}.workspace{grid-template-columns:1fr}.sidebar{padding:0 20px}}
