/* ==========================================================================
   Solvar EPC: herramientas (calculadoras, gráficos y mapas)
   Se carga además de solvar-base.css en el inicio y en /herramientas.
   ========================================================================== */
    .card{background:var(--v2);border:1px solid var(--ln);border-radius:4px;padding:22px}
    .card+.card{margin-top:16px}
    .card h3{font-size:14px;color:var(--wh);margin-bottom:4px;font-family:'DM Sans',sans-serif;font-weight:600}
    .card .hint{font-size:12px;color:var(--si);line-height:1.6;margin-bottom:16px}
    .fg{margin-bottom:15px}
    .fg>label,.fg .lb{display:block;font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--si);margin-bottom:7px}
    input[type=number],input[type=text],select{width:100%;background:var(--v);border:1px solid rgba(255,255,255,.14);color:var(--off);font-size:13.5px;padding:10px 11px;border-radius:2px;outline:none;font-family:'DM Sans',sans-serif;transition:border-color .15s}
    input:focus,select:focus{border-color:var(--n)}
    input::placeholder{color:var(--si);opacity:.75}
    .row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
    details.av{border-top:1px solid var(--ln);margin-top:6px;padding-top:12px}
    details.av summary{cursor:pointer;font-family:'DM Mono',monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--n);padding:6px 0;list-style:none}
    details.av summary::-webkit-details-marker{display:none}
    details.av summary::before{content:'+ '}
    details.av[open] summary::before{content:'- '}
    details.av .fg:first-of-type{margin-top:12px}
    .chips{display:flex;flex-wrap:wrap;gap:6px}
    .chip{font-family:'DM Mono',monospace;font-size:11px;padding:7px 11px;border:1px solid rgba(255,255,255,.18);border-radius:2px;background:none;color:var(--si);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:7px}
    .chip:hover{border-color:rgba(255,255,255,.45);color:var(--off)}
    .chip.on{background:var(--n);border-color:var(--n);color:var(--v);font-weight:500}
    .dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:none;margin-right:6px}
    .chip .dot{margin-right:0}
    .chip.on .dot{box-shadow:0 0 0 2px #08090D}
    .calc{display:grid;grid-template-columns:400px 1fr;gap:24px;align-items:start}
    .recurso{margin-top:10px;padding:12px 13px;background:var(--v);border:1px solid var(--ln);border-left:2px solid var(--n);border-radius:2px;font-size:12px;line-height:1.65;color:var(--si)}
    .recurso b{color:var(--off);font-weight:500}
    .recurso .hsp{font-family:'DM Mono',monospace;font-size:16px;color:var(--n);display:block;margin-bottom:5px}
    .recurso .nota{display:block;margin-top:8px;padding-top:8px;border-top:1px solid var(--ln);color:var(--off);font-style:italic}
    .kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px;margin-bottom:16px}
    .kpi{background:var(--v2);border:1px solid var(--ln);border-top:2px solid var(--n);border-radius:3px;padding:16px 17px}
    .k-t{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.1em;color:var(--si);text-transform:uppercase;margin-bottom:10px;line-height:1.4}
    .k-v{font-family:'Syne',sans-serif;font-size:28px;font-weight:800;color:var(--wh);line-height:1}
    .k-v small{font-family:'DM Mono',monospace;font-size:12px;font-weight:400;color:var(--si)}
    .k-s{font-family:'DM Mono',monospace;font-size:11px;color:var(--si);margin-top:8px;line-height:1.5}
    .chartbox{background:var(--v2);border:1px solid var(--ln);border-radius:4px;padding:20px;margin-bottom:16px}
    .chartbox .head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:14px}
    .chartbox h3{font-size:14px;color:var(--wh);font-family:'DM Sans',sans-serif;font-weight:600}
    .chartbox .head .mono{font-size:11px;color:var(--si)}
    svg.chart{display:block;width:100%;height:auto;overflow:visible}
    svg.chart .ax{font-family:'DM Mono',monospace;font-size:10.5px;fill:#8892A4}
    .legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:12px;font-family:'DM Mono',monospace;font-size:11px;color:var(--si)}
    .legend i{display:inline-block;width:14px;height:3px;margin-right:7px;vertical-align:3px}
    .note{font-size:12px;color:var(--si);line-height:1.75;margin-top:12px;padding-left:12px;border-left:1px solid rgba(255,255,255,.14)}
    .note b{color:var(--off);font-weight:500}
    .alerta{margin-bottom:12px;padding:12px 14px;border-radius:2px;font-size:12.5px;line-height:1.65;background:rgba(240,165,32,.08);border:1px solid rgba(240,165,32,.32);color:#F0C060}
    .alerta b{color:#FFD08A}
    .empty{padding:56px 24px;text-align:center;color:var(--si)}
    .empty b{display:block;color:var(--off);font-size:15px;margin-bottom:8px;font-weight:500}
    .empty p{font-size:13px;line-height:1.7;max-width:460px;margin:0 auto}
    table.tbl{width:100%;border-collapse:collapse;font-family:'DM Mono',monospace;font-size:12px}
    table.tbl th{text-align:left;color:var(--si);font-weight:400;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.14);position:sticky;top:0;background:var(--v2)}
    table.tbl td{padding:9px 10px;border-bottom:1px solid var(--ln);vertical-align:top}
    table.tbl td.num,table.tbl th.num{text-align:right}
    table.tbl tbody tr:hover td{background:rgba(255,255,255,.025)}
    table.cmp td:first-child{color:var(--si)}
    table.cmp tr.hl td{color:var(--wh);font-weight:500;border-bottom-color:rgba(255,122,26,.35)}
    table.cmp td:not(:first-child){text-align:right}
    table.cmp th:not(:first-child){text-align:right}
    .scroll{max-height:460px;overflow:auto}
    #pTabla tbody tr{cursor:pointer}
    .supuestos{margin-top:16px}
    .supuestos h3{font-size:14px;color:var(--wh);margin-bottom:10px;font-family:'DM Sans',sans-serif;font-weight:600}
    .supuestos ul{font-size:12.5px;color:var(--si);line-height:1.75}
    .supuestos li{padding:6px 0 6px 16px;position:relative;border-bottom:1px solid var(--ln)}
    .supuestos li::before{content:'';position:absolute;left:0;top:15px;width:7px;height:2px;background:var(--n)}
    .supuestos b{color:var(--off);font-weight:500}
    .cta{margin-top:16px;display:flex;gap:18px;align-items:center;flex-wrap:wrap;background:rgba(255,122,26,.06);border:1px solid rgba(255,122,26,.28);border-radius:4px;padding:20px 22px}
    .cta p{font-size:13.5px;color:var(--off);line-height:1.65;flex:1;min-width:240px}
    /* Mapas */
    .maplay{display:grid;grid-template-columns:1fr 390px;gap:20px;align-items:start}
    .mapa{height:600px;border:1px solid var(--ln);border-radius:4px;background:#0b0d12;position:relative;z-index:0}
    .mapa .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.82) contrast(.9) saturate(.5)}
    .mapa .leaflet-container{background:#0b0d12;font-family:'DM Sans',sans-serif}
    .mapa .leaflet-control-attribution{background:rgba(8,9,13,.85)!important;color:#8892A4!important;font-size:10px}
    .mapa .leaflet-control-attribution a{color:#B8C0D0!important}
    .mapa .leaflet-bar a{background:#0F1117;color:#F0F2F5;border-bottom:1px solid rgba(255,255,255,.12)}
    .mapa .leaflet-bar a:hover{background:#171A23}
    .mapa .leaflet-popup-content-wrapper,.mapa .leaflet-popup-tip{background:#0F1117;color:#F0F2F5;border:1px solid rgba(255,122,26,.4);box-shadow:0 8px 28px rgba(0,0,0,.6)}
    .mapa .leaflet-popup-content{margin:14px 16px;font-size:12.5px;line-height:1.55}
    .mapa .leaflet-popup-close-button{color:#8892A4}
    .pin-w,.pj-w{background:none!important;border:0!important}
    .pin-w.oculto{display:none}
    .pin{display:flex;width:30px;height:30px;border-radius:50%;align-items:center;justify-content:center;font:700 10.5px 'DM Mono',monospace;border:2px solid rgba(8,9,13,.85);box-shadow:0 0 0 2px rgba(255,255,255,.22),0 4px 14px rgba(0,0,0,.55);transition:transform .15s}
    .pin-w.sel .pin{transform:scale(1.4);box-shadow:0 0 0 3px #fff,0 4px 14px rgba(0,0,0,.55)}
    .pj{display:block;width:14px;height:14px;margin:2px;background:var(--c);border:2px solid #08090D;box-shadow:0 0 0 1.5px rgba(255,255,255,.6)}
    .pj.f-c{border-radius:50%}
    .pj.f-r{transform:rotate(45deg)}
    .pj.f-s{border-radius:2px}
    .pp b{display:block;font-family:'Syne',sans-serif;font-size:14px;color:#fff;margin-bottom:4px}
    .pp span{display:block;color:#C5CBD8}
    .pp em{display:block;font-style:normal;color:#8892A4;margin-top:6px}
    .pp small{display:block;color:#8892A4;font-size:11px;margin-top:6px;line-height:1.5}
    .pp a{display:inline-block;margin-top:9px;color:var(--n);font-weight:600}
    .lista{max-height:600px;overflow:auto;padding-right:6px}
    .lista::-webkit-scrollbar,.scroll::-webkit-scrollbar{width:9px;height:9px}
    .lista::-webkit-scrollbar-thumb,.scroll::-webkit-scrollbar-thumb{background:#3A3D4D;border-radius:4px}
    .zona{background:var(--v2);border:1px solid var(--ln);border-radius:4px;padding:16px 16px 14px;margin-bottom:10px;cursor:pointer;transition:border-color .15s}
    .zona:hover{border-color:rgba(255,255,255,.25)}
    .zona.on{border-color:var(--n);background:rgba(255,122,26,.06)}
    .zona-h{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
    .zona h4{font-size:15px;margin-bottom:3px}
    .zona-h p{font-size:12px;color:var(--si)}
    .zona-v{font-family:'Syne',sans-serif;font-size:26px;font-weight:800;line-height:1;text-align:right}
    .zona-v small{display:block;font-family:'DM Mono',monospace;font-size:10px;font-weight:400;color:var(--si);margin-top:3px}
    .barra{height:4px;background:rgba(255,255,255,.08);border-radius:2px;margin:12px 0 10px;overflow:hidden}
    .barra i{display:block;height:100%;border-radius:2px}
    .zona-m{display:flex;flex-wrap:wrap;gap:4px 14px;font-family:'DM Mono',monospace;font-size:10.5px;color:var(--si)}
    .zona-n{font-size:12px;color:var(--off);font-style:italic;margin-top:9px;line-height:1.55}
    .zona .chip{margin-top:11px;font-size:10.5px;padding:6px 10px}
    .filtros{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;margin-bottom:16px}
    .filtros select{width:auto;min-width:190px}
    .leyenda-map{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:12px;font-family:'DM Mono',monospace;font-size:11px;color:var(--si);align-items:center}
    .leyenda-map i{display:inline-block;margin-right:6px;vertical-align:-2px}
    .esc{display:inline-flex;gap:6px;align-items:center}
    .esc i{width:22px;height:10px;border-radius:2px;margin:0}
    .esc span{display:inline-flex;align-items:center}
    .sh{display:inline-block;width:11px;height:11px;background:#8892A4;border:1.5px solid #08090D;box-shadow:0 0 0 1px rgba(255,255,255,.5);margin-right:6px}
    .sh.c{border-radius:50%}.sh.r{transform:rotate(45deg) scale(.85)}.sh.s{border-radius:2px}

.tabs{display:flex;gap:2px;border-bottom:1px solid var(--ln);overflow-x:auto;scrollbar-width:none;margin-bottom:30px}
.tabs::-webkit-scrollbar{display:none}
.tabs button{background:none;border:none;border-bottom:2px solid transparent;color:var(--si);font-family:'DM Sans',sans-serif;font-size:14px;font-weight:500;padding:14px 22px;cursor:pointer;transition:.15s;margin-bottom:-1px;white-space:nowrap}
.tabs button:hover{color:var(--off)}
.tabs button[aria-selected=true]{color:var(--n);border-bottom-color:var(--n)}
.panelwrap{padding:0 0 90px}
.lead{font-size:14px;color:var(--si);line-height:1.8;max-width:860px;margin-bottom:24px}
.lead b{color:var(--off);font-weight:500}
.ph2{font-size:clamp(20px,2.2vw,28px);font-weight:800;margin-bottom:10px}
.soon{margin-top:44px;border:1px dashed rgba(255,255,255,.18);border-radius:4px;padding:22px 24px;display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.soon p{font-size:13.5px;color:var(--si);line-height:1.7;flex:1;min-width:260px}
.soon b{color:var(--off)}
.soon .tag{color:var(--off);border-color:rgba(255,255,255,.25)}
/* calculadora de proyectos (se monta por JS en el inicio y en /herramientas) */
.sc-calc{display:grid;grid-template-columns:380px 1fr;gap:24px;align-items:start}
.sc-calc.compacta{grid-template-columns:340px 1fr}
.sc-res .empty{padding:44px 20px}
.sc-fuente{font-family:'DM Mono',monospace;font-size:11px;color:var(--si);line-height:1.8;margin-top:16px}
.sc-mini-cta{margin-top:14px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.sc-mini-cta p{font-size:13px;color:var(--si);flex:1;min-width:220px;line-height:1.6}
@media(max-width:1100px){.calc,.sc-calc,.sc-calc.compacta,.maplay{grid-template-columns:1fr}.mapa{height:480px}.lista{max-height:none}}
@media(max-width:760px){.kpis{grid-template-columns:1fr 1fr}.k-v{font-size:23px}.row2{grid-template-columns:1fr}.mapa{height:420px}.tabs button{padding:12px 16px}}
@media(max-width:460px){.kpis{grid-template-columns:1fr}}
