:root {
  --navy: #0b2942;
  --navy-2: #123d5b;
  --blue: #176f9b;
  --cyan: #34a9c9;
  --bg: #f3f6f9;
  --panel: #ffffff;
  --text: #1f2d39;
  --muted: #6b7b88;
  --border: #dce4ea;
  --shadow: 0 8px 30px rgba(11,41,66,.08);
  --green: #23885c;
  --amber: #c98611;
  --red: #c94f4f;
  --gray: #7b8791;
  --purple: #6558b8;
}
* { box-sizing: border-box; }
body { margin:0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background:var(--bg); color:var(--text); }
.topbar { position:sticky; top:0; z-index:30; background:linear-gradient(90deg,#0b2f57 0%, #0d4f8d 55%, #0b2f57 100%); color:#fff; box-shadow:0 10px 26px rgba(11,41,66,.18); }
.topbar-inner { max-width:1440px; margin:0 auto; min-height:78px; padding:0 24px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:22px; }
.brand-shell { display:flex; align-items:center; gap:14px; min-width:0; }
.brand-logo { width:48px; height:48px; border-radius:14px; background:rgba(255,255,255,.12); display:grid; align-content:center; justify-items:center; gap:5px; box-shadow:inset 0 0 0 1px rgba(255,255,255,.14); }
.brand-logo span { width:24px; height:4px; border-radius:999px; background:#fff; display:block; opacity:.95; }
.brand-logo span:nth-child(2) { width:28px; }
.brand-logo span:nth-child(3) { width:20px; }
.brand-text { display:grid; gap:2px; }
.brand-text strong { font-size:30px; line-height:1; letter-spacing:-.03em; }
.brand-text span { font-size:13px; color:#d8e8f5; }
.eyebrow,.section-kicker { font-size:12px; font-weight:800; letter-spacing:.02em; text-transform:none; }
.eyebrow { color:#c0def2; }
.section-kicker { color:var(--blue); margin-bottom:5px; }
.tabbar { display:flex; align-items:center; justify-content:center; gap:6px; min-width:0; }
.tab-button { border:0; background:rgba(255,255,255,.06); color:#e8f1f7; padding:14px 18px; border-radius:12px; cursor:pointer; font-weight:700; font-size:14px; white-space:nowrap; }
.tab-button:hover { background:rgba(255,255,255,.12); color:#fff; }
.tab-button.active { background:linear-gradient(180deg, rgba(88,195,255,.26), rgba(46,149,235,.3)); color:#fff; box-shadow:inset 0 -3px 0 #5ec2ff; }
.badge { display:inline-flex; min-width:21px; height:21px; padding:0 6px; align-items:center; justify-content:center; border-radius:999px; background:rgba(255,255,255,.18); margin-left:5px; font-size:11px; }
.topbar-user { display:flex; align-items:center; gap:10px; padding:8px 12px; border-radius:999px; background:rgba(255,255,255,.08); color:#f5f9fc; font-weight:700; font-size:13px; white-space:nowrap; }
.user-dot { width:28px; height:28px; border-radius:50%; background:linear-gradient(180deg,#f8fbfe,#c5d6e4); box-shadow:inset 0 0 0 2px rgba(11,41,66,.06); }
.container { max-width:1440px; margin:0 auto; padding:22px 24px 44px; }
.tab-content { display:none; }
.tab-content.active { display:block; }
.section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:18px; }
.section-heading h2 { font-size:28px; margin:0; letter-spacing:-.025em; }
.section-heading p { margin:4px 0 0; color:var(--muted); }
.file-actions { display:flex; flex-wrap:wrap; gap:8px; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:0 14px; border-radius:9px; border:1px solid transparent; cursor:pointer; font:inherit; font-weight:750; font-size:13px; }
.button.primary { background:var(--blue); color:#fff; }
.button.secondary { background:#fff; color:var(--navy); border-color:var(--border); }
.button:hover { filter:brightness(.97); }
.status-card { display:flex; justify-content:space-between; align-items:center; background:#eaf5f7; border:1px solid #cce5ea; border-radius:10px; padding:11px 14px; color:#315567; margin-bottom:15px; font-size:13px; }
.status-dot { display:inline-block; width:8px; height:8px; background:var(--green); border-radius:50%; margin-right:8px; box-shadow:0 0 0 4px rgba(35,136,92,.1); }
.works-dot { background:var(--blue); box-shadow:0 0 0 4px rgba(23,111,155,.1); }
.panel { background:var(--panel); border:1px solid var(--border); border-radius:14px; box-shadow:var(--shadow); }
.filters { display:flex; flex-wrap:wrap; gap:14px; padding:16px; margin-bottom:18px; }
.filter-group { min-width:200px; flex:1 1 200px; }
.filter-group.grow { flex:2 1 320px; }
.filter-group label { display:block; color:#314b5e; font-size:12px; font-weight:700; margin-bottom:6px; text-transform:none; letter-spacing:0; }
select,.text-input,.filter-readonly { width:100%; border:1px solid var(--border); background:#fff; border-radius:8px; min-height:42px; padding:0 11px; color:var(--text); font:inherit; }
.filter-readonly { display:flex; align-items:center; background:#f7f9fb; }
.kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
.kpi-card { background:#fff; border:1px solid var(--border); border-radius:14px; padding:18px; box-shadow:var(--shadow); min-height:126px; display:flex; flex-direction:column; }
.kpi-card span { font-size:12px; color:#557082; font-weight:700; text-transform:none; letter-spacing:0; }
.kpi-card strong { font-size:clamp(22px,2.5vw,31px); line-height:1.1; color:var(--navy); margin:12px 0 6px; overflow-wrap:anywhere; }
.kpi-card small { color:var(--muted); margin-top:auto; }
.charts-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
.chart-panel { padding:18px; min-width:0; }
.chart-panel.wide { grid-column:1 / -1; }
.panel-title { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:14px; }
.panel-title h3 { margin:0 0 4px; color:var(--navy); font-size:18px; }
.panel-title p { margin:0; color:var(--muted); font-size:13px; }
.chart-wrap { position:relative; min-height:300px; height:330px; }
.table-panel { margin-bottom:18px; padding:18px; }
.table-total { font-weight:800; color:var(--navy); white-space:nowrap; }
.table-scroll { overflow:auto; border:1px solid var(--border); border-radius:10px; }
table { border-collapse:collapse; width:100%; min-width:720px; }
th { background:#f4f7f9; color:#526572; font-size:11px; text-transform:uppercase; letter-spacing:.05em; text-align:left; padding:12px; position:sticky; top:0; z-index:1; }
td { padding:12px; border-top:1px solid #edf1f4; font-size:13px; vertical-align:top; }
tbody tr:hover { background:#f9fbfc; }
.numeric { text-align:right; font-variant-numeric:tabular-nums; }
.info-panel { padding:18px; color:var(--muted); }
.info-panel h3 { margin:0 0 8px; color:var(--navy); }
.info-panel p { margin:0; line-height:1.55; }
.works-summary-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:14px; margin-bottom:18px; }
.works-summary-grid > .panel { padding:18px; min-width:0; }
.works-chart { height:300px; min-height:260px; }
.status-summary { display:grid; gap:9px; }
.status-row { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:11px 12px; border-radius:10px; background:#f6f8fa; }
.status-row .left { display:flex; gap:9px; align-items:center; min-width:0; }
.status-row strong { font-size:13px; }
.status-row span.count { font-size:19px; font-weight:850; color:var(--navy); }
.dot { width:9px; height:9px; border-radius:50%; flex:0 0 auto; }
.dot.adjudicada { background:var(--purple); }.dot.vencida { background:var(--red); }.dot.proxima { background:var(--amber); }.dot.programada { background:var(--green); }.dot.sin-fecha { background:var(--gray); }
.status-pill { display:inline-flex; align-items:center; white-space:nowrap; gap:6px; padding:5px 8px; border-radius:999px; font-weight:800; font-size:11px; }
.status-pill.adjudicada { background:#efedfb; color:#51499c; }.status-pill.vencida { background:#fdeaea; color:#a93838; }.status-pill.proxima { background:#fff4dc; color:#94630c; }.status-pill.programada { background:#e8f5ef; color:#20724e; }.status-pill.sin-fecha { background:#eef1f3; color:#5d6972; }
.exp-cell { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size:11px; color:#314858; max-width:250px; overflow-wrap:anywhere; }
.work-name { min-width:290px; max-width:520px; line-height:1.35; }
footer { text-align:center; padding:0 20px 34px; color:#82909b; font-size:12px; }
.empty-row { text-align:center; color:var(--muted); padding:30px; }
@media (max-width:980px) { .kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .works-summary-grid { grid-template-columns:1fr; } }
@media (max-width:980px) { .topbar-inner { grid-template-columns:1fr; gap:12px; padding:14px 16px; } .tabbar { justify-content:flex-start; overflow:auto; padding-bottom:2px; } .topbar-user { justify-self:flex-start; } }
@media (max-width:720px) { .container { padding:18px 14px 36px; } .brand-text strong { font-size:24px; } .brand-text span { font-size:12px; } .tab-button { white-space:nowrap; padding:12px 14px; } .section-heading { align-items:flex-start; flex-direction:column; } .file-actions { width:100%; } .button { flex:1; } .kpi-grid { grid-template-columns:1fr; } .charts-grid { grid-template-columns:1fr; } .chart-panel.wide { grid-column:auto; } .chart-wrap { height:290px; } .status-card { align-items:flex-start; gap:8px; flex-direction:column; } }

/* Contratos */
.subtabs { display:flex; gap:8px; margin:0 0 18px; flex-wrap:wrap; }
.subtab-button { border:1px solid var(--border); background:#fff; color:#38536a; border-radius:999px; padding:9px 16px; font-weight:700; cursor:pointer; }
.subtab-button.active { background:var(--navy); color:#fff; border-color:var(--navy); }
.contract-view { display:none; }
.contract-view.active { display:block; }
.contracts-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.75fr); gap:18px; margin-bottom:18px; }
.contracts-grid > .panel { padding:18px; min-width:0; }
.contracts-table { min-width:1450px; }
.process-table { min-width:1150px; }
.contracts-table td,.contracts-table th,.process-table td,.process-table th { vertical-align:top; }
.contract-name { font-weight:700; min-width:235px; }
.company-cell { font-weight:700; }
.renewal-text { display:block; margin-top:6px; font-size:12px; color:#516575; max-width:250px; }
.status-pill.vigente { background:#e7f7ee; color:#167744; }
.status-pill.proximo { background:#fff5d8; color:#8a6400; }
.status-pill.critico { background:#ffe7df; color:#b64120; }
.status-pill.vencido { background:#fde8e8; color:#a42929; }
.status-pill.renovacion { background:#e8efff; color:#315fc2; }
.mini-summary { display:grid; gap:10px; }

/* Mapa de obras: sólo Provincia del Neuquén */
.works-map-panel { padding:18px; margin-bottom:18px; overflow:hidden; }
.works-map-layout { display:grid; grid-template-columns:minmax(210px,270px) minmax(0,1fr); gap:20px; align-items:stretch; }
.works-map-listbox { background:#f7fafc; border:1px solid var(--border); border-radius:16px; padding:16px; min-height:430px; max-height:430px; overflow:hidden; }
.works-map-listbox h4 { margin:0 0 12px; color:var(--navy); font-size:13px; text-transform:uppercase; letter-spacing:.04em; }
.works-location-list { display:grid; gap:8px; max-height:365px; overflow:auto; padding:2px 5px 2px 0; }
.works-location-item { width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; border:1px solid #e3ebf1; background:#fff; border-radius:11px; padding:9px 10px; color:#314d63; cursor:pointer; text-align:left; font:inherit; }
.works-location-item:hover,.works-location-item.active { background:#edf5fa; border-color:#bfd3e1; }
.works-location-item span { min-width:0; font-size:12px; font-weight:700; line-height:1.25; }
.works-location-item strong { min-width:27px; height:27px; padding:0 7px; display:flex; align-items:center; justify-content:center; background:var(--navy); color:#fff; border-radius:999px; font-size:11px; flex:0 0 auto; }
.works-map-card { display:flex; align-items:center; justify-content:center; background:#f7fafc; border:1px solid var(--border); border-radius:16px; padding:18px; min-width:0; min-height:430px; overflow:hidden; }
.works-map-canvas { position:relative; width:100%; min-height:430px; display:flex; align-items:center; justify-content:center; }
.works-map-frame { position:relative; width:min(100%,460px); aspect-ratio:620 / 800; }
.neuquen-svg { position:absolute; inset:0; width:100%; height:100%; max-width:none; filter:drop-shadow(0 10px 18px rgba(11,41,66,.12)); }
.province-fill { fill:#cfddea; }
.province-stroke { fill:none; stroke:#86a8bf; stroke-width:4; stroke-linejoin:round; stroke-linecap:round; }
.works-marker-layer { position:absolute; inset:0; pointer-events:none; }
.map-marker { position:absolute; transform:translate(-50%,-50%); width:34px; height:34px; padding:0; border-radius:50%; border:3px solid #fff; background:var(--navy); color:#fff; font:inherit; font-size:12px; font-weight:800; box-shadow:0 7px 16px rgba(11,41,66,.23); cursor:pointer; pointer-events:auto; transition:.15s ease; }
.map-marker:hover,.map-marker.active { background:var(--blue); transform:translate(-50%,-50%) scale(1.1); }
.map-empty { color:var(--muted); font-size:12px; line-height:1.45; padding:4px 2px; }
@media (max-width:980px){ .contracts-grid{grid-template-columns:1fr;} .works-map-layout{grid-template-columns:1fr;} .works-map-listbox{min-height:auto;max-height:210px;} .works-location-list{max-height:150px;} .works-map-card{min-height:390px;} }
@media (max-width:650px){ .works-map-card{padding:10px;} .works-map-canvas{min-height:390px;} .works-map-frame{width:min(100%,380px);} .works-marker-layer{inset:0;} .map-marker{width:30px;height:30px;font-size:11px;} }


/* ===== Plan de Obras y Proyectos ===== */
.plan-heading{margin-bottom:12px}.plan-filters{display:grid;grid-template-columns:repeat(5,minmax(135px,1fr)) minmax(260px,1.6fr);gap:10px;padding:12px}.plan-filters .filter-group{min-width:0}.plan-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:14px}.plan-kpi{min-height:110px;padding:15px}.plan-kpi strong{font-size:clamp(21px,2vw,29px);margin:9px 0 4px}.plan-kpi.project strong{color:#1b9b69}.plan-main-grid{display:grid;grid-template-columns:minmax(440px,.94fr) minmax(620px,1.36fr);gap:14px;margin-bottom:14px}.plan-map-panel{padding:16px;min-width:0}.plan-map-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:12px;height:510px}.plan-location-box{border:1px solid var(--border);border-radius:12px;background:#f8fbfd;overflow:hidden}.plan-location-box h4{margin:0;padding:12px 12px 10px;font-size:11px;text-transform:none;color:var(--navy);border-bottom:1px solid var(--border)}.plan-location-list{height:458px;overflow:auto;padding:6px}.plan-location-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;border:0;background:transparent;padding:8px 7px;border-radius:8px;color:#233f55;font:inherit;font-size:11px;font-weight:700;cursor:pointer;text-align:left}.plan-location-item:hover{background:#eaf3f8}.plan-location-item strong{display:flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 7px;border-radius:999px;background:var(--navy);color:white;font-size:10px}.plan-map-area{position:relative;border-radius:12px;overflow:hidden;border:1px solid #e3ebf1;background:#eef4f8}.plan-map-area #planMap{width:100%;height:100%}.plan-map-legend{position:absolute;z-index:500;top:10px;right:10px;background:rgba(255,255,255,.95);border:1px solid var(--border);border-radius:9px;padding:7px 9px;display:grid;gap:5px;font-size:10px}.plan-map-legend span{display:flex;align-items:center;gap:6px}.plan-map-legend i{width:11px;height:11px;border-radius:50%;display:inline-block}.legend-work{background:#177de8}.legend-project{background:#28a96b}.legend-both{background:linear-gradient(90deg,#177de8 50%,#28a96b 50%)}.plan-div-icon{background:transparent;border:0}.plan-map-marker{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:3px solid white;box-shadow:0 4px 12px rgba(11,41,66,.25);color:white;font-weight:900;font-size:12px}.plan-map-marker.work{background:#177de8}.plan-map-marker.project{background:#28a96b}.plan-map-marker.both{background:linear-gradient(90deg,#177de8 50%,#28a96b 50%)}.plan-right{display:grid;gap:12px;min-width:0}.plan-top-charts{display:grid;grid-template-columns:1.35fr .85fr;gap:12px}.plan-mini-charts{display:grid;grid-template-columns:.85fr .85fr 1fr;gap:12px}.plan-chart{height:230px;min-height:220px}.mini-plan-chart{height:170px;min-height:160px}.plan-mini-charts .panel{padding:14px}.plan-mini-charts .panel-title h3{font-size:15px}.expediente-card{padding:14px}.exp-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px}.exp-box{border-radius:12px;padding:13px;display:grid;gap:3px}.exp-box.good{background:#eaf8f1}.exp-box.pending{background:#fff7e5}.exp-box strong{font-size:25px;color:var(--navy)}.exp-box span{font-weight:800;font-size:12px}.exp-box small{color:var(--muted)}.plan-table-panel{padding:12px}.plan-table-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.plan-table-tabs{margin:0}.plan-table{min-width:1350px}.plan-table td{font-size:11px;padding:8px}.plan-table th{padding:9px}.system-pill{display:inline-flex;padding:4px 7px;border-radius:999px;background:#e6f0ff;color:#245ea8;font-weight:800;font-size:10px;white-space:nowrap}.exp-cell.no-exp{color:#e24b38;font-family:inherit;font-weight:800}.leaflet-container{font-family:inherit}.leaflet-tooltip{font-size:11px}
@media(max-width:1200px){.plan-main-grid{grid-template-columns:1fr}.plan-map-layout{height:480px}.plan-kpis{grid-template-columns:repeat(3,1fr)}.plan-filters{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){.plan-kpis{grid-template-columns:1fr 1fr}.plan-filters{grid-template-columns:1fr 1fr}.plan-top-charts,.plan-mini-charts{grid-template-columns:1fr}.plan-map-layout{grid-template-columns:1fr;height:auto}.plan-location-box{max-height:180px}.plan-location-list{height:130px}.plan-map-area{height:430px}}
@media(max-width:560px){.plan-kpis,.plan-filters{grid-template-columns:1fr}.plan-map-area{height:390px}}


/* ===== Ajustes visuales EPAS v4 ===== */
body{background:#f4f8fb;color:#122b40}
.topbar{position:sticky;top:0;z-index:40;background:linear-gradient(180deg,#0c3a67 0%,#0b2f57 100%);box-shadow:0 2px 10px rgba(4,33,60,.22)}
.topbar-inner{max-width:none;min-height:64px;padding:0 46px;grid-template-columns:390px 1fr auto;gap:20px}
.brand-shell{height:64px;display:flex;align-items:center}
.brand-logo-epas{display:flex;align-items:center;gap:12px;color:#fff;white-space:nowrap}
.brand-logo-epas .epas-wave{width:40px;height:34px;fill:none;stroke:#fff;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.brand-logo-epas strong{font-size:28px;line-height:1;letter-spacing:-.03em}
.brand-divider{width:1px;height:33px;background:rgba(255,255,255,.28);margin:0 2px 0 0}
.brand-full-name{font-size:12px;line-height:1.15;color:#fff;font-weight:500}
.tabbar{height:64px;align-self:stretch;justify-content:flex-start;gap:0;overflow:hidden}
.tab-button{height:64px;border-radius:0;padding:0 28px;background:transparent;color:#fff;display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;border-left:1px solid rgba(255,255,255,.08);border-right:1px solid rgba(0,0,0,.08)}
.tab-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.95}
.tab-button:hover{background:rgba(35,132,201,.24);color:#fff}
.tab-button.active{background:linear-gradient(180deg,rgba(23,111,155,.58),rgba(25,121,183,.7));box-shadow:inset 0 -4px 0 #55c6ff;color:#fff}
.badge{display:none}
.topbar-user{background:transparent;padding:0;gap:10px;font-size:12px}
.topbar-user .bell-icon{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.user-avatar{width:28px;height:28px;border-radius:50%;background:radial-gradient(circle at 50% 35%,#fff 0 20%,#b9c8d5 22% 42%,#8ba0b2 44% 100%);border:2px solid rgba(255,255,255,.18)}
.chevron{font-size:15px;opacity:.9}
.container{max-width:none;padding:16px 34px 44px}
#tab-obras>.status-card{display:none!important}
.section-heading.plan-heading{margin:0 0 12px;background:#fff;border:1px solid #dde9f2;border-radius:12px;padding:10px 16px;box-shadow:0 5px 18px rgba(11,41,66,.04)}
.section-heading.plan-heading h2{font-size:26px;color:#0d2b48}
.section-heading.plan-heading p{font-size:13px;color:#527189}
.section-kicker{font-size:11px;color:#496c89;letter-spacing:.14em;text-transform:uppercase;font-weight:800}
.button.primary{background:#0b82e6;border-radius:10px;padding:0 18px}
.plan-main-grid{align-items:stretch}
.plan-map-area{background:#eef5f9}
.plan-table td{color:#243f54}
.plan-table td.work-name{color:#17334b;font-weight:600}
.plan-table td.numeric{color:#243f54}
.chart-panel canvas{color:#314b5e}
@media(max-width:1200px){.topbar-inner{grid-template-columns:330px 1fr auto;padding:0 20px}.tab-button{padding:0 16px}.brand-full-name{font-size:11px}}
@media(max-width:900px){.topbar-inner{grid-template-columns:1fr;padding:12px 16px;gap:8px}.brand-shell{height:auto}.tabbar{height:auto;overflow:auto}.tab-button{height:48px;white-space:nowrap}.topbar-user{display:none}.container{padding:14px}}

/* ===== EPAS objetivo visual v5 ===== */
#tab-obras { background:transparent; }
#tab-obras .plan-heading{background:transparent!important;border:0!important;box-shadow:none!important;padding:0 2px!important;margin:0 0 10px!important}
#tab-obras .plan-heading h2{font-size:28px!important;line-height:1.05!important;margin-top:1px!important}
#tab-obras .plan-heading p{font-size:13px!important;margin-top:3px!important}
#tab-obras .plan-filters{background:#fff!important;border:1px solid #d9e8f3!important;border-radius:12px!important;box-shadow:0 5px 18px rgba(22,73,109,.05)!important;padding:10px 12px!important;margin-bottom:12px!important}
#tab-obras .plan-kpis{gap:10px!important;margin-bottom:12px!important}
#tab-obras .plan-kpi{position:relative;min-height:88px!important;padding:13px 14px 12px 66px!important;border-radius:12px!important;box-shadow:0 5px 16px rgba(11,41,66,.05)!important}
#tab-obras .plan-kpi::before{content:'';position:absolute;left:14px;top:15px;width:40px;height:40px;border-radius:50%;background:#e5f3ff;border:1px solid #d7ebfb}
#tab-obras .plan-kpi::after{position:absolute;left:27px;top:24px;font-weight:900;font-size:18px;color:#167ee5;line-height:1}
#tab-obras .kpi-work::after{content:'▤'}#tab-obras .kpi-project::after{content:'◆';color:#1b9b69}#tab-obras .kpi-location::after{content:'●';color:#167ee5}#tab-obras .kpi-budget::after{content:'$';color:#167ee5}#tab-obras .kpi-invest::after{content:'▥';color:#167ee5}
#tab-obras .plan-kpi strong{font-size:25px!important;margin:7px 0 1px!important}
#tab-obras .plan-kpi span{font-size:12px!important;color:#253e55!important}
#tab-obras .plan-kpi small{font-size:11px!important}
#tab-obras .plan-main-grid{grid-template-columns:minmax(520px,1.05fr) minmax(660px,1.35fr)!important;gap:12px!important}
#tab-obras .plan-map-panel{padding:14px!important}
#tab-obras .plan-map-layout{grid-template-columns:225px minmax(0,1fr)!important;height:505px!important}
#tab-obras .plan-location-box{background:#fff!important}
.static-province-map{position:relative;background:linear-gradient(180deg,#f7fbff,#eef6fb)!important;border:1px solid #dce9f2!important;overflow:hidden!important}
.plan-province-svg{position:absolute;inset:18px 48px 18px 48px;width:calc(100% - 96px);height:calc(100% - 36px);filter:drop-shadow(0 10px 18px rgba(20,67,101,.12))}
.plan-province-fill{fill:#d8eaf7;stroke:none}.plan-province-border{fill:none;stroke:#3d7cab;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}
.plan-marker-layer{position:absolute;inset:18px 48px 18px 48px;pointer-events:none}
.static-map-marker{position:absolute;transform:translate(-50%,-50%);width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:3px solid #fff;box-shadow:0 4px 13px rgba(9,50,80,.22);font-size:11px;font-weight:900;color:#fff;pointer-events:auto;cursor:pointer;transition:.15s ease}
.static-map-marker.work{background:#1686ee}.static-map-marker.project{background:#24ad70}.static-map-marker.both{background:linear-gradient(90deg,#1686ee 0 50%,#24ad70 50%)}.static-map-marker:hover{transform:translate(-50%,-50%) scale(1.12);z-index:5}
.static-map-marker .map-tip{display:none;position:absolute;left:38px;top:50%;transform:translateY(-50%);background:#fff;color:#19384f;border:1px solid #d8e4ec;border-radius:7px;padding:5px 7px;white-space:nowrap;font-size:10px;font-weight:800;box-shadow:0 4px 12px rgba(11,41,66,.12)}.static-map-marker:hover .map-tip{display:block}
.map-context-label{position:absolute;color:#8799a7;text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:700;z-index:2}.map-chile{left:8px;top:48%}.map-mendoza{right:15px;top:9%}.map-rionegro{right:8px;bottom:9%}
#tab-obras .plan-top-charts{grid-template-columns:1.25fr .95fr!important}
#tab-obras .chart-panel,#tab-obras .expediente-card{box-shadow:0 5px 16px rgba(11,41,66,.05)!important}
#tab-obras .plan-table-panel{border-radius:12px!important;box-shadow:0 5px 18px rgba(11,41,66,.05)!important}
#tab-obras .plan-table td{color:#17334b!important;background:#fff!important;opacity:1!important;visibility:visible!important;font-size:11px!important}
#tab-obras .plan-table td:first-child,#tab-obras .plan-table td:nth-child(2){color:#17334b!important;font-weight:600!important}
#tab-obras .plan-table .work-name{display:table-cell!important;color:#17334b!important}
#tab-obras .plan-table th{background:#eff5f9!important;color:#3d5669!important}
#tab-obras .system-pill{background:#e4f0ff!important;color:#166ab7!important}
#tab-obras .panel-title h3{font-weight:800!important;letter-spacing:-.01em!important}
@media(max-width:1250px){#tab-obras .plan-main-grid{grid-template-columns:1fr!important}#tab-obras .plan-map-layout{height:480px!important}}


/* ===== V6 · mapa geográfico real de Neuquén ===== */
.real-province-map{
  position:relative;
  overflow:hidden;
  border:1px solid #d7e5ef !important;
  border-radius:12px;
  background:
    radial-gradient(circle at 30% 20%,rgba(255,255,255,.9),rgba(255,255,255,0) 35%),
    linear-gradient(180deg,#f4f9fc 0%,#eaf3f8 100%) !important;
}
.plan-real-map{
  width:100%;
  height:100%;
  min-height:500px;
  background:transparent;
}
.plan-real-map .leaflet-pane,
.plan-real-map .leaflet-map-pane{
  z-index:auto;
}
.plan-real-map .leaflet-overlay-pane svg{
  filter:drop-shadow(0 8px 16px rgba(27,83,122,.12));
}
.plan-div-icon{
  background:transparent !important;
  border:0 !important;
}
.plan-map-marker{
  width:34px;
  height:34px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  border:3px solid #fff;
  color:#fff;
  font-weight:900;
  font-size:12px;
  box-shadow:0 4px 11px rgba(13,52,82,.28);
}
.plan-map-marker.work{background:#1787eb}
.plan-map-marker.project{background:#24ad73}
.plan-map-marker.both{background:linear-gradient(90deg,#1787eb 0 50%,#24ad73 50% 100%)}
.plan-real-map .leaflet-tooltip{
  border:1px solid #d6e4ee;
  border-radius:8px;
  box-shadow:0 4px 12px rgba(11,41,66,.12);
  color:#17364f;
  font-family:inherit;
  font-size:11px;
  padding:7px 9px;
}
.plan-real-map .leaflet-tooltip:before{
  border-top-color:#fff;
}
.plan-map-legend{
  z-index:600 !important;
}
.static-province-map,
.plan-province-svg,
.plan-marker-layer,
.static-map-marker,
.map-context-label{
  display:none !important;
}
@media(max-width:800px){
  .plan-real-map{min-height:430px}
}
