/* Rutas de trabajo, análisis. Todas las reglas llevan el prefijo .pra para no tocar el resto del portal. El modo oscuro cambia las variables (pro-dark.css). */
.pra{--navy:#0b1f4d;--text:#33425c;--muted:#6b7a95;--line:#e4ecf7;--blue:#1665f2;--blue-soft:#eaf3ff;--card:#fff;--tint:#f5f9ff;--shadow:0 6px 22px rgba(15,40,90,.07);
 --green:#13a24c;--red:#dc2626;--map-bg:#eaf3fb;--map-line:#d3e3f3;--map-text:#26354f;
 --i-blue-bg:#e6f1ff;--i-blue:#1665f2;--i-violet-bg:#efe8ff;--i-violet:#7c4ddd;--i-red-bg:#ffe5e3;--i-red:#e0392f;--i-orange-bg:#fff0dc;--i-orange:#e9891a;--i-green-bg:#e3f7ec;--i-green:#13a24c;--i-teal-bg:#dcf6f1;--i-teal:#0f9d8a;
 --c-ok-bg:#e4f7ec;--c-ok:#13803d;--c-good-bg:#e9f9ef;--c-good:#1f8f4e;--c-mid-bg:#fff6d6;--c-mid:#9a7400;--c-low-bg:#ffeadb;--c-low:#b45309;--c-poor-bg:#ffe4e1;--c-poor:#c0302a;
 container-type:inline-size;display:grid;gap:14px;color:var(--text);font-size:14px;line-height:1.4}
.pra *{box-sizing:border-box}
.pra button{font:inherit;color:inherit}
.pra .pra-i{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
.pra :focus-visible{outline:3px solid rgba(22,101,242,.45);outline-offset:2px}
.pra-tabs{display:flex;gap:4px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:0 8px;box-shadow:var(--shadow);width:fit-content;max-width:100%;overflow-x:auto}
.pra-tabs button{border:0;background:none;padding:13px 16px;font-weight:700;color:var(--muted);cursor:pointer;border-bottom:3px solid transparent;white-space:nowrap}
.pra-tabs button.active{color:var(--blue);border-bottom-color:var(--blue)}
.pra-top{display:flex;justify-content:flex-end}
.pra-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.pra-btn{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--navy);font-weight:700;cursor:pointer;list-style:none;box-shadow:var(--shadow)}
.pra-btn::-webkit-details-marker{display:none}
.pra-btn .pra-chev{width:14px;height:14px;transform:rotate(90deg)}
.pra-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--blue);color:#fff;font-size:12px}
.pra-menu{position:relative}
.pra-pop{position:absolute;right:0;top:46px;z-index:20;min-width:260px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:8px;box-shadow:0 14px 40px rgba(15,40,90,.18)}
.pra-pop ul{list-style:none;margin:0;padding:0;display:grid}
.pra-pop li button{width:100%;text-align:left;border:0;background:none;padding:9px 12px;border-radius:9px;cursor:pointer;color:var(--navy);font-weight:600}
.pra-pop li button:hover{background:var(--tint)}
.pra-range{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:end;border-top:1px solid var(--line);margin-top:6px;padding:10px 4px 4px}
.pra-range label{display:grid;gap:3px;font-size:12px;color:var(--muted);font-weight:600}
.pra-range input{height:36px;border:1px solid var(--line);border-radius:9px;padding:0 8px;background:var(--card);color:var(--navy);font:inherit}
.pra-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 12px;box-shadow:var(--shadow)}
.pra-sel select{height:38px;min-width:170px;border:1px solid var(--line);border-radius:10px;padding:0 10px;background:var(--card);color:var(--navy);font:inherit}
.pra-link{border:0;background:none;padding:0;color:var(--blue);font-weight:700;cursor:pointer}
.pra-hint{color:var(--muted);font-size:13px}
.pra-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.pra-kpi{display:flex;gap:11px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:13px 14px;box-shadow:var(--shadow);min-width:0}
.pra-kpi>div{display:grid;gap:2px;min-width:0}
.pra-kpi small{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pra-kpi b{font-size:21px;font-weight:800;color:var(--navy);line-height:1.15;white-space:nowrap}
.pra-est{font-style:normal;font-size:10.5px;font-weight:700;padding:0 6px;border-radius:999px;background:var(--tint);border:1px solid var(--line);color:var(--muted)}
.pra-kpi-ico{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;flex:none}
.pra-kpi-ico .pra-i{width:22px;height:22px}
.pra-kpi-ico.is-blue{background:var(--i-blue-bg);color:var(--i-blue)}.pra-kpi-ico.is-violet{background:var(--i-violet-bg);color:var(--i-violet)}.pra-kpi-ico.is-red{background:var(--i-red-bg);color:var(--i-red)}
.pra-kpi-ico.is-orange{background:var(--i-orange-bg);color:var(--i-orange)}.pra-kpi-ico.is-green{background:var(--i-green-bg);color:var(--i-green)}.pra-kpi-ico.is-teal{background:var(--i-teal-bg);color:var(--i-teal)}
.pra-info{border:0;background:none;padding:0;color:var(--muted);cursor:pointer;display:inline-grid}
.pra-info .pra-i{width:15px;height:15px}
.pra-delta{font-size:11.5px;color:var(--muted)}
.pra .pra-delta b{font-size:11.5px;line-height:1.3;font-weight:700}.pra-delta.is-good b{color:var(--green)}.pra-delta.is-bad b{color:var(--red)}
.pra-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px;min-width:0}
.pra-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}
.pra-head h3{margin:0;display:flex;align-items:center;gap:8px;font-size:15.5px;font-weight:700;color:var(--navy)}
.pra-head h3 .pra-i{color:var(--blue)}
.pra-head p{margin:4px 0 0;font-size:12.5px;color:var(--muted)}
.pra-unit{font-size:12.5px;font-weight:600;color:var(--muted)}
.pra-none{margin:0;color:var(--muted);font-size:13.5px}
.pra-fine{margin:0;font-size:12.5px;color:var(--muted)}
.pra-row{display:grid;gap:14px;align-items:start}
.pra-row.is-map{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}
.pra-row.is-two{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}
.pra-row.is-three{grid-template-columns:repeat(3,minmax(0,1fr))}
.pra-row.is-last{grid-template-columns:repeat(3,minmax(0,1fr))}
.pra-col{display:grid;gap:14px;min-width:0}
.pra-map{position:relative}
.pra-msvg{width:100%;height:auto;display:block;border-radius:14px}
.pra-mbg{fill:var(--map-bg)}
.pra-mt{font-size:11px;font-weight:700;fill:var(--map-text);paint-order:stroke;stroke:var(--map-bg);stroke-width:3px}
.pra-ml{pointer-events:none}   /* los rótulos van encima de todos los círculos: no deben tapar el detalle (title) de lo que cubren */
/* Mapa real de Google detrás de los círculos (ver pro-suite-route-gmap.js): mientras no esté, se ve el esquema de siempre. */
.pra-gmap{display:none;position:relative;width:100%;aspect-ratio:16/10;min-height:260px;border-radius:14px;overflow:hidden;background:var(--map-bg)}
.pra-gmap-node{position:absolute;inset:0}
.pra-map.is-live .pra-gmap{display:block}
.pra-map.is-live .pra-msvg,.pra-map.is-live .pra-mctl{display:none}
.pra-bub{position:absolute;box-sizing:border-box;border-radius:50%;border:2px solid #fff;opacity:.84;box-shadow:0 1px 5px rgba(15,31,77,.38);cursor:default}
.pra-bub.is-approx{opacity:.7;border:2px dashed #1f2a44}
.pra-bub-tag{position:absolute;transform:translateX(-50%);white-space:nowrap;pointer-events:none;font:700 11px/1.2 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#1f2a44;text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 2px #fff}

/* Una comuna dibujada en su centro (sin direcciones ubicadas) lleva el borde punteado y oscuro, para distinguirla de las ubicadas de verdad. */
.pra-mc.is-approx circle{stroke:var(--map-text);stroke-opacity:.55;stroke-width:1.6}
.pra-mctl{position:absolute;right:10px;top:10px;display:grid;gap:6px}
.pra-mctl button{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--navy);cursor:pointer;box-shadow:var(--shadow)}
.pra-legend{list-style:none;margin:0;padding:0;display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.pra-legend li{display:inline-flex;align-items:center;gap:6px}
.pra-legend i{width:10px;height:10px;border-radius:50%}
.pra-tw{overflow-x:auto}
.pra-table{width:100%;border-collapse:collapse;font-size:12.5px}
.pra-table th{text-align:left;font-size:11.5px;font-weight:700;color:var(--muted);padding:6px 6px;border-bottom:1px solid var(--line);white-space:nowrap}
.pra-table td{padding:9px 6px;border-bottom:1px solid var(--line);color:var(--text);white-space:nowrap}
.pra-table td b{color:var(--navy)}
.pra-table tbody tr:last-child td{border-bottom:0}
.pra-table td.pra-none{white-space:normal}
.pra-rank{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--blue-soft);color:var(--blue);font-size:12px;font-weight:700}
.pra-rank.is-ok{background:var(--c-ok-bg);color:var(--c-ok)}.pra-rank.is-bad{background:var(--c-poor-bg);color:var(--c-poor)}
.pra-chip{display:inline-block;padding:2px 10px;border-radius:999px;font-weight:700;font-size:12px}
.pra-chip.is-very{background:var(--c-ok-bg);color:var(--c-ok)}.pra-chip.is-good{background:var(--c-good-bg);color:var(--c-good)}.pra-chip.is-mid{background:var(--c-mid-bg);color:var(--c-mid)}.pra-chip.is-low{background:var(--c-low-bg);color:var(--c-low)}.pra-chip.is-poor{background:var(--c-poor-bg);color:var(--c-poor)}
.pra-chart{width:100%;height:auto;display:block}
.pra-grid{stroke:var(--line);stroke-width:1}
.pra-axis{fill:var(--muted);font-size:11px}
.pra-val{fill:var(--navy);font-size:12px;font-weight:800}
.pra-bar{fill:#5b9bff}.pra-bar.is-top{fill:#1665f2}
.pra-bar-inc{fill:#1665f2}.pra-bar-cost{fill:#8cc8ff}
.pra-key{list-style:none;margin:0;padding:0;display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.pra-key li{display:inline-flex;align-items:center;gap:6px}.pra-key i{width:10px;height:10px;border-radius:50%}.pra-key i.is-inc{background:#1665f2}.pra-key i.is-cost{background:#8cc8ff}
.pra-line{fill:none;stroke:#1665f2;stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round}
.pra-area{fill:rgba(22,101,242,.12)}
.pra-pt{fill:#1665f2;stroke:var(--card);stroke-width:1.5}
.pra-minis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pra-mini{display:flex;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--tint);min-width:0}
.pra-mini>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--blue-soft);color:var(--blue);flex:none}
.pra-mini>div{display:grid;gap:1px;min-width:0}.pra-mini small{font-size:11.5px;color:var(--muted)}.pra-mini b{font-size:15.5px;color:var(--navy);white-space:nowrap}
.pra-insights{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.pra-insights li{display:flex;gap:10px;align-items:flex-start}
.pra-insights li>span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--blue);color:#fff;font-size:12px;font-weight:700;flex:none;margin-top:1px}
.pra-insights p{margin:0;font-size:13.5px}
.pra-actions{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.pra-actions button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--tint);cursor:pointer;font-size:13.5px}
.pra-actions button:hover{border-color:var(--blue)}
.pra-actions button>span:nth-child(2){flex:1;min-width:0}
.pra-ai{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--blue-soft);color:var(--blue);flex:none}
.pra-go{color:var(--muted)}
.pra-rules{margin:0;padding-left:18px;display:grid;gap:8px;font-size:13.5px}
.pra-modal{display:grid;gap:12px}
@container (max-width:1180px){.pra-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.pra-row.is-three{grid-template-columns:repeat(2,minmax(0,1fr))}.pra-row.is-last{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container (max-width:900px){.pra-row.is-map,.pra-row.is-two,.pra-row.is-three,.pra-row.is-last{grid-template-columns:minmax(0,1fr)}}
@container (max-width:640px){.pra-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.pra-top{justify-content:stretch}.pra-bar{width:100%}.pra-bar>*{flex:1}.pra-pop{left:0;right:auto;width:min(92vw,320px)}.pra-minis{grid-template-columns:minmax(0,1fr)}}
