
/* PLAN ECO V23.0 — completamente aislado */
.legacy-planner-nav{display:none!important}
.planeco-page{padding-bottom:90px}
.pe-topbar,.pe-selector-card,.pe-inline-panel,.pe-kpis,.pe-filters,.pe-gantt-shell,.pe-table-wrap,.pe-empty-state{max-width:1500px;margin-left:auto;margin-right:auto}
.pe-topbar{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}
.pe-topbar h2{margin:2px 0 4px}.pe-top-actions{display:flex;gap:7px;flex-wrap:wrap}.pe-icon-btn{width:38px;min-width:38px;padding:0}
.pe-selector-card{display:flex;align-items:end;gap:10px;background:#fff;border:1px solid #e2e8f0;border-radius:15px;padding:11px;margin-bottom:10px}.pe-project-picker{flex:1;min-width:240px}.pe-view-switch{display:flex;border:1px solid #dbe3ea;border-radius:10px;overflow:hidden}.pe-view-switch button{border:0;border-right:1px solid #e2e8f0;background:#fff;padding:9px 12px;cursor:pointer}.pe-view-switch button:last-child{border-right:0}.pe-view-switch button.active{background:#166534;color:#fff}
.pe-inline-panel{background:#fff;border:1px solid #dbe3ea;border-radius:16px;padding:14px;margin-bottom:10px;box-shadow:0 8px 25px rgba(15,23,42,.06)}.pe-panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.pe-panel-head strong,.pe-panel-head small{display:block}.pe-panel-head small{font-size:9px;color:#64748b}.pe-close-btn{width:34px;height:34px;border:0;border-radius:10px;background:#f1f5f9;font-size:20px;cursor:pointer}.pe-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.pe-form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}
.pe-empty-state{padding:34px;text-align:center;background:#fff;border:1px dashed #cbd5e1;border-radius:16px}.pe-empty-state strong,.pe-empty-state span{display:block}.pe-empty-state span{margin-top:5px;font-size:10px;color:#64748b}
.pe-status{max-width:1500px;margin:0 auto 10px;padding:9px 12px;border-radius:10px;background:#eff6ff;color:#1e3a8a;font-size:10px}.pe-status.error{background:#fef2f2;color:#991b1b}.pe-status.ok{background:#ecfdf5;color:#166534}
.pe-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:9px}.pe-kpi{background:#fff;border:1px solid #e2e8f0;border-radius:13px;padding:10px}.pe-kpi span,.pe-kpi small{display:block;font-size:9px;color:#64748b}.pe-kpi strong{display:block;font-size:20px;color:#0f172a;margin-top:2px}
.pe-filters{display:grid;grid-template-columns:minmax(220px,2fr) repeat(3,minmax(130px,1fr)) auto;gap:7px;margin-bottom:9px}.pe-filters input,.pe-filters select{width:100%;border:1px solid #dbe3ea;border-radius:10px;padding:9px;background:#fff}
.pe-gantt-shell{background:#fff;border:1px solid #dbe3ea;border-radius:15px;overflow:auto;max-height:62vh}.pe-gantt-header{position:sticky;top:0;z-index:4;background:#f8fafc;border-bottom:1px solid #dbe3ea;min-width:max-content}.pe-gantt-body{min-width:max-content}.pe-time-grid{display:grid;align-items:stretch}.pe-time-cell{border-right:1px solid #e5e7eb;padding:7px 4px;text-align:center;font-size:8px;color:#475569;min-width:44px}.pe-gantt-row{display:grid;grid-template-columns:270px auto;min-height:38px;border-bottom:1px solid #eef2f7}.pe-gantt-label{position:sticky;left:0;z-index:2;background:#fff;padding:7px 9px;border-right:1px solid #e2e8f0;cursor:pointer}.pe-gantt-label strong,.pe-gantt-label small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pe-gantt-label small{font-size:8px;color:#64748b}.pe-gantt-track{position:relative;background:repeating-linear-gradient(to right,#f8fafc 0,#f8fafc 43px,#e9eef4 44px);min-height:38px}.pe-bar{position:absolute;height:10px;border-radius:99px;left:0}.pe-bar.plan{top:7px;background:#3b82f6}.pe-bar.real{bottom:7px;background:#22c55e}.pe-bar.late{background:#f59e0b}.pe-bar.overdue{background:#ef4444}.pe-today-line{position:absolute;top:0;bottom:0;width:2px;background:#ef4444;opacity:.65;pointer-events:none}
.pe-table-wrap{margin-top:10px;overflow:auto;background:#fff;border:1px solid #e2e8f0;border-radius:14px}.pe-table{width:100%;border-collapse:collapse;font-size:9px}.pe-table th,.pe-table td{padding:8px;border-bottom:1px solid #eef2f7;text-align:left;white-space:nowrap}.pe-table th{position:sticky;top:0;background:#f8fafc;z-index:1}.pe-edit-btn{border:0;background:#eff6ff;color:#1d4ed8;border-radius:8px;padding:6px 8px;cursor:pointer}
@media(max-width:900px){.pe-topbar{flex-direction:column}.pe-selector-card{align-items:stretch;flex-direction:column}.pe-form-grid{grid-template-columns:1fr 1fr}.pe-kpis{grid-template-columns:1fr 1fr}.pe-filters{grid-template-columns:1fr 1fr}.pe-filters input{grid-column:1/-1}}
@media(max-width:560px){.pe-form-grid,.pe-filters{grid-template-columns:1fr}.pe-kpis{grid-template-columns:1fr 1fr}}


/* PLAN ECO V23.1 — Gantt Masivo */
.pe-bulk-panel{overflow:hidden}
.pe-bulk-source-tabs{display:flex;gap:6px;margin-bottom:10px}.pe-bulk-source-tabs button{border:1px solid #dbe3ea;background:#fff;border-radius:10px;padding:8px 11px;cursor:pointer}.pe-bulk-source-tabs button.active{background:#166534;color:#fff;border-color:#166534}
.pe-bulk-source{display:grid;grid-template-columns:minmax(220px,1fr) minmax(160px,.45fr);gap:9px;align-items:end;margin-bottom:10px}.pe-bulk-source textarea{grid-column:1/-1;width:100%;border:1px solid #dbe3ea;border-radius:12px;padding:10px;resize:vertical}.pe-bulk-info{font-size:9px;color:#64748b;padding:8px 0}
.pe-bulk-map-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}.pe-bulk-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:10px}.pe-bulk-summary>div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:9px}.pe-bulk-summary span,.pe-bulk-summary strong{display:block}.pe-bulk-summary span{font-size:8px;color:#64748b}.pe-bulk-summary strong{font-size:18px}
.pe-bulk-progress{padding:10px 11px;border:1px solid #bbf7d0;background:linear-gradient(135deg,#f0fdf4,#eff6ff);border-radius:12px;margin-bottom:10px;animation:peBulkIn .22s ease}.pe-bulk-progress-head{display:flex;justify-content:space-between;font-size:9px}.pe-bulk-progress-track{height:8px;border-radius:99px;background:#dbeafe;overflow:hidden;margin-top:7px}.pe-bulk-progress-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,#16a34a,#2563eb);transition:width .22s ease;border-radius:99px}.pe-bulk-preview-wrap{max-height:42vh}.pe-bulk-preview-wrap tr.pe-row-warning{background:#fffbeb}.pe-bulk-preview-wrap tr.pe-row-error{background:#fef2f2}.pe-bulk-issues{display:grid;gap:5px;margin:8px 0}.pe-bulk-issue{font-size:9px;padding:7px 9px;border-radius:9px;background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}
@keyframes peBulkIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:900px){.pe-bulk-map-grid{grid-template-columns:1fr 1fr}.pe-bulk-source{grid-template-columns:1fr}.pe-bulk-summary{grid-template-columns:1fr 1fr}}


/* PLAN ECO V23.2 — árbol, animación, dashboard jerárquico */
.pe-tree-toolbar{max-width:1500px;margin:0 auto 8px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.pe-today-badge{margin-left:auto;background:#fff1f2;border:1px solid #fecdd3;color:#be123c;border-radius:999px;padding:7px 10px;font-size:9px;font-weight:800}
.pe-gantt-shell{scroll-behavior:smooth}
.pe-gantt-body.pe-animate-in .pe-gantt-row{animation:peRowIn .32s ease both}
.pe-gantt-body.pe-animate-in .pe-gantt-row:nth-child(2n){animation-delay:.025s}
@keyframes peRowIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.pe-scale-anim .pe-gantt-track,.pe-scale-anim .pe-time-grid{animation:peScalePulse .28s ease}
@keyframes peScalePulse{0%{opacity:.55;transform:scaleX(.992)}100%{opacity:1;transform:none}}
.pe-tree-label{display:flex;align-items:center;gap:7px}.pe-tree-toggle{width:22px;height:22px;display:grid;place-items:center;border:0;background:#f1f5f9;border-radius:7px;cursor:pointer;transition:.18s}.pe-tree-toggle:hover{background:#dcfce7}.pe-tree-toggle.open{transform:rotate(90deg)}
.pe-tree-row[data-level="boss"] .pe-gantt-label{background:#f8fafc;font-weight:800}
.pe-tree-row[data-level="consumer"] .pe-gantt-label{padding-left:24px;background:#fbfdff}
.pe-tree-row[data-level="parron"] .pe-gantt-label{padding-left:42px;background:#fff}
.pe-tree-row[data-level="task"] .pe-gantt-label{padding-left:62px}
.pe-tree-summary{font-size:8px;color:#64748b;margin-left:auto}
.pe-tree-click{cursor:pointer}.pe-tree-click:hover strong{text-decoration:underline}
.pe-today-line{background:#e11d48!important;width:3px!important;box-shadow:0 0 0 1px rgba(225,29,72,.08),0 0 14px rgba(225,29,72,.22)}
.pe-today-cap{position:absolute;top:0;transform:translate(-50%,-100%);background:#e11d48;color:#fff;font-size:7px;font-weight:900;padding:3px 5px;border-radius:6px;white-space:nowrap}
.pe-bar{animation:peBarGrow .42s cubic-bezier(.2,.8,.2,1) both;transform-origin:left center}
@keyframes peBarGrow{from{transform:scaleX(.15);opacity:.25}to{transform:scaleX(1);opacity:1}}
.pe-insight-panel{animation:peInsightIn .24s ease}
@keyframes peInsightIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
.pe-insight-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}
.pe-gauge-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:12px;text-align:center}.pe-gauge-card>span{display:block;font-size:9px;color:#64748b;margin-bottom:7px}.pe-gauge-card>strong{font-size:24px}.pe-gauge-card>small{display:block;font-size:9px;color:#64748b;margin-top:4px}
.pe-gauge{--pct:0;position:relative;width:108px;height:58px;overflow:hidden;margin:auto}.pe-gauge:before{content:"";position:absolute;left:4px;right:4px;top:4px;height:100px;border-radius:100px 100px 0 0;background:conic-gradient(from 270deg,#2563eb calc(var(--pct)*1.8deg),#e2e8f0 0 180deg,transparent 180deg)}.pe-gauge.real:before{background:conic-gradient(from 270deg,#16a34a calc(var(--pct)*1.8deg),#e2e8f0 0 180deg,transparent 180deg)}.pe-gauge:after{content:"";position:absolute;left:20px;right:20px;top:20px;height:78px;border-radius:80px 80px 0 0;background:#f8fafc}.pe-gauge b{position:absolute;z-index:2;left:0;right:0;bottom:0;font-size:18px}
.pe-insight-bars{display:grid;gap:7px}.pe-insight-bar-row{display:grid;grid-template-columns:minmax(130px,1fr) 2fr 56px;gap:8px;align-items:center}.pe-insight-bar-row>span{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pe-insight-track{height:13px;border-radius:99px;background:#e2e8f0;overflow:hidden;position:relative}.pe-insight-track i{display:block;height:100%;border-radius:99px;background:#2563eb;animation:peInsightBar .45s ease both}.pe-insight-track i.real{position:absolute;left:0;top:3px;height:7px;background:#16a34a}.pe-insight-track i.late{background:#f59e0b}.pe-insight-track i.overdue{background:#ef4444}.pe-insight-bar-row b{font-size:9px;text-align:right}
.pe-status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;background:#94a3b8}.pe-status-dot.late{background:#f59e0b}.pe-status-dot.overdue{background:#ef4444}.pe-status-dot.done{background:#22c55e}
@media(max-width:760px){.pe-insight-grid{grid-template-columns:1fr}.pe-insight-bar-row{grid-template-columns:1fr}.pe-today-badge{margin-left:0}}

/* PLAN ECO V23.3 */
.pe-gantt-shell{cursor:grab;user-select:none}
.pe-gantt-shell.pe-grabbing{cursor:grabbing;scroll-behavior:auto}
.pe-group-bar{position:absolute;height:12px;border-radius:999px;box-shadow:0 2px 7px rgba(15,23,42,.12);animation:peBarGrow .42s cubic-bezier(.2,.8,.2,1) both}
.pe-group-bar.plan{top:7px;background:#2563eb}
.pe-group-bar.real{bottom:7px;background:#16a34a;height:8px}
.pe-group-bar.late{background:#f59e0b!important}
.pe-group-bar.overdue{background:#ef4444!important}
.pe-hierarchy-delete{margin-left:6px;width:24px;height:24px;border:1px solid #fecaca;background:#fff;color:#b91c1c;border-radius:7px;display:grid;place-items:center;cursor:pointer;opacity:.18;transition:.18s}
.pe-tree-row:hover .pe-hierarchy-delete{opacity:.8}.pe-hierarchy-delete:hover{opacity:1!important;background:#fef2f2;border-color:#f87171;transform:scale(1.04)}
.pe-delete-scope-panel{border-color:#fecaca;background:linear-gradient(180deg,#fff,#fff7f7)}
.pe-delete-warning{padding:10px 12px;border:1px solid #fecaca;background:#fef2f2;color:#991b1b;border-radius:12px;margin-bottom:10px}
.pe-delete-warning b,.pe-delete-warning span{display:block}.pe-delete-warning span{font-size:9px;margin-top:4px}
.pe-delete-scope-panel .danger-link:disabled{opacity:.35;cursor:not-allowed}
.pe-range-caption{position:absolute;top:50%;transform:translateY(-50%);font-size:7px;font-weight:800;color:#fff;padding:0 5px;pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pe-gantt-track.pe-overdue-row{background-color:#fff7f7}.pe-gantt-track.pe-late-row{background-color:#fffdf3}

/* PLAN ECO V23.5 — barras definitivas y medidores */
.pe-bar.plan,
.pe-group-bar.plan,
.pe-bar.plan.late,
.pe-bar.plan.overdue,
.pe-group-bar.plan.late,
.pe-group-bar.plan.overdue{
  background:linear-gradient(90deg,#1d4ed8 0%,#2563eb 38%,#3b82f6 72%,#60a5fa 100%)!important;
  box-shadow:0 3px 10px rgba(37,99,235,.28),inset 0 1px 0 rgba(255,255,255,.32)!important;
}
.pe-bar.real,
.pe-group-bar.real,
.pe-bar.real.late,
.pe-bar.real.overdue,
.pe-group-bar.real.late,
.pe-group-bar.real.overdue{
  background:linear-gradient(90deg,#15803d 0%,#16a34a 38%,#22c55e 72%,#4ade80 100%)!important;
  box-shadow:0 3px 10px rgba(22,163,74,.25),inset 0 1px 0 rgba(255,255,255,.3)!important;
}
.pe-bar,.pe-group-bar{overflow:hidden}
.pe-bar:after,.pe-group-bar:after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(110deg,transparent 0 34%,rgba(255,255,255,.34) 48%,transparent 62% 100%);
  transform:translateX(-135%);
  animation:peBarShine 2.7s ease-in-out infinite;
  pointer-events:none
}
@keyframes peBarShine{0%,20%{transform:translateX(-135%)}55%,100%{transform:translateX(135%)}}
.pe-gantt-track.pe-overdue-row,.pe-gantt-track.pe-late-row{background-color:#fff!important}

.pe-meter-card{position:relative;overflow:hidden}
.pe-modern-meter{position:relative;width:160px;height:94px;margin:2px auto 0}
.pe-modern-meter svg{width:100%;height:100%;overflow:visible}
.pe-meter-bg{fill:none;stroke:#e2e8f0;stroke-width:14;stroke-linecap:round}
.pe-meter-value{
  fill:none;stroke-width:14;stroke-linecap:round;
  stroke-dasharray:163.4;stroke-dashoffset:163.4;
  transition:stroke-dashoffset .9s cubic-bezier(.2,.8,.2,1);
  filter:drop-shadow(0 4px 6px rgba(15,23,42,.16))
}
.pe-meter-plan{stroke:url(#pePlanGaugeGradient)}
.pe-meter-real{stroke:url(#peRealGaugeGradient)}
.pe-meter-center{position:absolute;left:0;right:0;bottom:4px;text-align:center;display:grid;place-items:center}
.pe-meter-center b{font-size:25px;line-height:1;color:#0f172a;letter-spacing:-.6px}
.pe-meter-center small{font-size:8px;color:#64748b;margin-top:3px;text-transform:uppercase;letter-spacing:.7px}
.pe-meter-caption{font-size:8px;color:#64748b;text-align:center;margin-top:-2px}
.pe-meter-pulse{animation:peMeterPulse .42s ease}
@keyframes peMeterPulse{0%{transform:scale(.985);opacity:.75}100%{transform:none;opacity:1}}
