.planner2-topbar{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}.planner2-top-actions{display:flex;gap:8px;flex-wrap:wrap}.planner2-tabs{display:flex;gap:6px;margin-bottom:10px}.planner2-tabs button,.p2-bulk-preview-tabs button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 13px;font-weight:800}.planner2-tabs button.active,.p2-bulk-preview-tabs button.active{background:#14532d;color:#fff;border-color:#14532d}.planner2-filterbar{display:grid;grid-template-columns:repeat(8,minmax(105px,1fr));gap:7px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;margin-bottom:12px;position:sticky;top:6px;z-index:20;box-shadow:0 8px 24px rgba(15,23,42,.05)}.planner2-filterbar label{font-size:9px;font-weight:800;color:var(--muted)}.planner2-filterbar select{width:100%;margin-top:4px}.p2-tab-panel{display:none}.p2-tab-panel.active{display:block;animation:p2Fade .25s ease both}@keyframes p2Fade{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}.planner2-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin-bottom:10px}.planner2-kpis>div{background:linear-gradient(135deg,#fff,#f0fdf4);border:1px solid #bbf7d0;border-radius:14px;padding:13px}.planner2-kpis span{display:block;font-size:9px;color:var(--muted);font-weight:800}.planner2-kpis strong{font-size:22px}.planner2-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.planner2-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:12px}.planner2-card-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:9px}.planner2-card-head small{color:var(--muted)}.p2-summary-row{width:100%;display:grid;grid-template-columns:minmax(180px,1fr) minmax(90px,.6fr) 60px;gap:10px;align-items:center;border:0;border-bottom:1px solid #eef2f7;background:transparent;padding:10px;text-align:left;cursor:pointer;transition:.18s}.p2-summary-row:hover{background:#f0fdf4;transform:translateX(2px)}.p2-summary-row strong,.p2-summary-row small{display:block}.p2-summary-row small{color:var(--muted);margin-top:2px}.p2-progress{height:7px;background:#e2e8f0;border-radius:999px;overflow:hidden}.p2-progress i{display:block;height:100%;background:linear-gradient(90deg,#22c55e,#15803d);border-radius:999px;transition:width .5s ease}.planner2-gantt-toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:13px;padding:9px;margin-bottom:8px}.p2-scale{display:flex;gap:4px}.p2-scale button{border:1px solid var(--line);background:#fff;padding:6px 10px;border-radius:8px}.p2-scale button.active{background:#14532d;color:#fff}.planner2-inline-stats{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0}.planner2-inline-stats span{padding:5px 8px;border-radius:999px;background:#f1f5f9;font-size:10px;font-weight:800;color:#475569}.p2-gantt-viewport{display:grid;grid-template-columns:320px minmax(0,1fr);height:68vh;min-height:480px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}.p2-gantt-left{overflow:auto;border-right:1px solid var(--line)}.p2-gantt-scroll{overflow:auto;position:relative}.p2-gantt-left-head{height:48px;display:flex;align-items:center;padding:0 12px;position:sticky;top:0;background:#f8fafc;z-index:5;font-size:10px;font-weight:900;color:#475569;border-bottom:1px solid var(--line)}.p2-gantt-left-row{display:flex;align-items:center;gap:7px;border-bottom:1px solid #f1f5f9;cursor:pointer;transition:.17s}.p2-gantt-left-row:hover{background:#f0fdf4}.p2-gantt-left-row>div{min-width:0;flex:1}.p2-gantt-left-row strong,.p2-gantt-left-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.p2-gantt-left-row small{font-size:9px;color:var(--muted);margin-top:2px}.p2-expander{width:24px;height:24px;border:0;background:#f1f5f9;border-radius:7px}.p2-dot{width:7px;height:7px;border-radius:50%;background:#22c55e}.p2-boss{background:#f8fafc}.p2-consumer{background:#fcfcfd}.p2-gantt-timeline{position:relative;min-height:100%}.p2-time-head{height:48px;display:flex;position:sticky;top:0;z-index:10;background:#fff;border-bottom:1px solid var(--line)}.p2-time-head>div{flex:none;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:10px}.p2-time-head small{font-size:8px;color:#64748b;margin-top:2px}.p2-time-body{position:relative}.p2-time-grid{position:absolute;left:0;top:0}.p2-time-grid i{position:absolute;top:0;bottom:0;border-right:1px solid #edf2f7}.p2-bar{position:absolute;height:13px;border:0;border-radius:999px;cursor:pointer;box-shadow:0 3px 9px rgba(15,23,42,.13);transition:.18s;animation:p2Bar .35s ease both}@keyframes p2Bar{from{opacity:0;transform:scaleX(.6);transform-origin:left}to{opacity:1;transform:none}}.p2-bar:hover{transform:translateY(-1px) scaleY(1.15)}.p2-plan{background:linear-gradient(90deg,#60a5fa,#2563eb)}.p2-real{background:linear-gradient(90deg,#4ade80,#15803d)}.p2-parron-summary-bar{position:absolute;height:15px;border-radius:999px;background:#e2e8f0;overflow:hidden}.p2-parron-summary-bar i{display:block;height:100%;background:linear-gradient(90deg,#86efac,#16a34a)}.p2-status{font-size:9px;font-weight:900;padding:4px 7px;border-radius:999px}.p2-status-completado{background:#dcfce7;color:#166534}.p2-status-atrasado{background:#fee2e2;color:#991b1b}.p2-status-en-proceso{background:#dbeafe;color:#1d4ed8}.p2-status-pendiente{background:#f1f5f9;color:#475569}.p2-modal-large{width:min(1240px,96vw);max-height:92vh;overflow:auto}.p2-map-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.p2-map-grid label{font-size:9px;font-weight:800}.p2-map-grid select{width:100%;margin-top:4px}.p2-map-box{margin-top:12px}.p2-preview-table{max-height:45vh;border:1px solid var(--line);border-radius:12px}.p2-more{padding:8px;text-align:center;color:var(--muted);font-size:10px}.p2-error-box{margin-top:10px;padding:10px;border-radius:12px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;max-height:180px;overflow:auto}.p2-bulk-preview-tabs{display:flex;gap:6px;margin:9px 0}@media(max-width:1100px){.planner2-filterbar{grid-template-columns:repeat(4,1fr)}.planner2-summary-grid{grid-template-columns:1fr}.p2-gantt-viewport{grid-template-columns:280px minmax(0,1fr)}}@media(max-width:700px){.planner2-topbar{flex-direction:column}.planner2-filterbar{grid-template-columns:1fr 1fr;position:static}.planner2-kpis{grid-template-columns:1fr 1fr}.p2-gantt-viewport{grid-template-columns:220px minmax(700px,1fr);height:65vh}.p2-map-grid{grid-template-columns:1fr 1fr}}

/* V20.3 — Gantts visibles, estructura editable y progreso */
.loader-card-progress{min-width:min(360px,86vw)}
.global-progress-wrap{width:100%;height:9px;background:#e2e8f0;border-radius:999px;overflow:hidden;margin-top:10px}
.global-progress-bar{height:100%;width:0;background:linear-gradient(90deg,#22c55e,#15803d);border-radius:999px;transition:width .28s ease}
.global-progress-meta{width:100%;display:flex;justify-content:space-between;gap:12px;margin-top:6px;font-size:10px;color:#64748b}.global-progress-meta b{color:#166534}
.p2-plans-card{margin-bottom:11px}.p2-count-badge{min-width:30px;text-align:center;border-radius:999px;background:#dcfce7;color:#166534;font-weight:900;padding:5px 9px}
.p2-plans-library{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:9px}
.p2-plan-card{border:1px solid #dbe4ee;border-radius:13px;padding:11px;background:linear-gradient(135deg,#fff,#f8fafc);transition:.2s}.p2-plan-card:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(15,23,42,.08);border-color:#86efac}
.p2-plan-card-main{display:flex;justify-content:space-between;gap:9px}.p2-plan-card-main strong,.p2-plan-card-main small{display:block}.p2-plan-card-main small{color:var(--muted);margin-top:3px}.p2-plan-state{font-size:9px;font-weight:900;color:#166534;background:#dcfce7;border-radius:999px;padding:4px 7px;height:max-content}
.p2-plan-card-meta{display:flex;flex-wrap:wrap;gap:5px;margin:9px 0}.p2-plan-card-meta span{font-size:9px;background:#f1f5f9;color:#475569;padding:4px 6px;border-radius:7px}.p2-plan-card-actions{display:flex;gap:6px;margin-top:9px}
.p2-structure-tabs{display:flex;gap:6px;margin:9px 0 12px}.p2-structure-tabs button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px 12px;font-weight:800}.p2-structure-tabs button.active{background:#14532d;color:#fff;border-color:#14532d}
.p2-structure-saved-toolbar{display:flex;gap:10px;align-items:center;margin-bottom:9px}.p2-structure-saved-toolbar input{flex:1}.p2-structure-saved-toolbar span{font-size:9px;color:var(--muted);font-weight:800}
.p2-structure-saved-table{max-height:62vh;border:1px solid var(--line);border-radius:12px}.p2-structure-saved-table input{min-width:100px;width:100%;border:1px solid transparent;background:transparent;padding:6px}.p2-structure-saved-table input:focus{background:#fff;border-color:#86efac}
.p2-structure-saved-table th{position:sticky;top:0;z-index:2;background:#f8fafc}
@media(max-width:700px){.p2-plans-library{grid-template-columns:1fr}.p2-structure-saved-toolbar{align-items:stretch;flex-direction:column}}

/* V20.4 Excel + relación Variedad/Parrón */
.p2-file-import-box{display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(160px,.7fr);gap:10px;align-items:center;padding:12px;border:1px dashed #86efac;background:#f0fdf4;border-radius:13px;margin-bottom:10px}.p2-file-import-box strong,.p2-file-import-box small{display:block}.p2-file-import-box small{color:#64748b;margin-top:3px}.p2-file-button{cursor:pointer;background:#14532d;color:#fff;border-radius:10px;padding:9px 12px;font-weight:800;text-align:center}.p2-file-info{grid-column:1/-1;font-size:10px;color:#475569;display:flex;gap:8px;flex-wrap:wrap}.p2-file-info strong{color:#166534}.p2-import-divider{display:flex;align-items:center;gap:8px;color:#94a3b8;font-size:9px;font-weight:800;margin:8px 0}.p2-import-divider:before,.p2-import-divider:after{content:"";height:1px;background:#e2e8f0;flex:1}
.p2-date-analysis{margin:9px 0}.p2-date-analysis-title{display:flex;justify-content:space-between;gap:8px;margin-bottom:7px}.p2-date-analysis-title small{color:#64748b}.p2-date-analysis-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.p2-date-analysis-grid>div{border:1px solid #e2e8f0;border-radius:10px;padding:8px;background:#fff}.p2-date-analysis-grid span,.p2-date-analysis-grid strong,.p2-date-analysis-grid small{display:block}.p2-date-analysis-grid span{font-size:9px;color:#64748b;font-weight:800}.p2-date-analysis-grid strong{margin-top:3px;color:#166534}.p2-date-analysis-grid small{margin-top:2px;color:#64748b}
.p2-variety-rel-summary{margin:8px 0 10px;padding:10px;border:1px solid #dbeafe;border-radius:12px;background:#f8fbff}.p2-variety-title{display:flex;justify-content:space-between;gap:8px;margin-bottom:7px}.p2-variety-title small{color:#64748b}.p2-variety-chips{display:flex;gap:6px;overflow:auto;padding-bottom:3px}.p2-variety-chips button{flex:none;border:1px solid #bfdbfe;background:#fff;border-radius:9px;padding:7px 9px;text-align:left}.p2-variety-chips strong,.p2-variety-chips span{display:block}.p2-variety-chips span{font-size:8px;color:#64748b;margin-top:2px}
#p2StructureVarietyFilter{min-width:170px}
@media(max-width:700px){.p2-file-import-box{grid-template-columns:1fr}.p2-file-info{grid-column:auto}.p2-date-analysis-grid{grid-template-columns:1fr 1fr}.p2-variety-title{flex-direction:column}}

/* V20.6 carga rápida y contextual */
.p2-module-loader{margin:0 0 11px;padding:12px 14px;border:1px solid #bbf7d0;border-radius:15px;background:linear-gradient(135deg,#f0fdf4,#ffffff);box-shadow:0 7px 22px rgba(22,101,52,.06);transition:.25s}
.p2-loader-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.p2-loader-head>div{display:flex;gap:9px;align-items:center}.p2-loader-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:#dcfce7;font-size:19px;animation:p2SeedPulse 1.8s ease-in-out infinite}.p2-loader-head strong,.p2-loader-head small{display:block}.p2-loader-head small{color:#64748b;margin-top:2px}.p2-loader-head>b{font-size:17px;color:#166534}
.p2-loader-track{height:9px;margin-top:10px;border-radius:999px;background:#e2e8f0;overflow:hidden}.p2-loader-track i{display:block;width:0;height:100%;border-radius:999px;background:linear-gradient(90deg,#4ade80,#15803d);transition:width .35s cubic-bezier(.2,.8,.2,1);position:relative}.p2-loader-track i:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:p2Shimmer 1.2s linear infinite}
.p2-loader-actions{display:flex;gap:7px;margin-top:9px}.p2-module-loader[data-state="ready"]{border-color:#86efac}.p2-module-loader[data-state="error"]{border-color:#fecaca;background:linear-gradient(135deg,#fff1f2,#fff)}.p2-module-loader[data-state="error"] .p2-loader-head>b{color:#b91c1c}
.p2-card-skeleton-line{height:7px;margin:10px 0;border-radius:999px;background:linear-gradient(90deg,#e2e8f0,#f8fafc,#e2e8f0);background-size:220% 100%;animation:p2Skeleton 1.4s linear infinite}.p2-plan-card.loaded{border-color:#bbf7d0}
@keyframes p2SeedPulse{50%{transform:translateY(-2px) scale(1.05)}}@keyframes p2Shimmer{from{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes p2Skeleton{from{background-position:100% 0}to{background-position:-100% 0}}
@media(max-width:700px){.p2-loader-head{align-items:flex-start}.p2-loader-head small{font-size:9px}}

/* V20.7 carga porcentual estable */
.p2-module-loader{position:relative;overflow:hidden}.p2-module-loader:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(#22c55e,#166534)}
.p2-loader-stage-dots{display:flex;align-items:center;gap:5px;margin-top:7px;color:#64748b;font-size:9px}.p2-loader-stage-dots>i{width:5px;height:5px;border-radius:50%;background:#22c55e;animation:p2Dot 1.1s ease-in-out infinite}.p2-loader-stage-dots>i:nth-child(2){animation-delay:.15s}.p2-loader-stage-dots>i:nth-child(3){animation-delay:.3s}.p2-loader-stage-dots span{margin-left:4px}
.p2-module-loader[data-state="ready"] .p2-loader-stage-dots>i{animation:none;background:#16a34a}.p2-module-loader[data-state="error"] .p2-loader-stage-dots>i{animation:none;background:#ef4444}
@keyframes p2Dot{0%,80%,100%{opacity:.3;transform:scale(.7)}40%{opacity:1;transform:scale(1.1)}}

/* V20.8 Gantt visible desde vista general */
.p2-group-bar{position:absolute;height:13px;border-radius:999px;overflow:hidden;box-shadow:0 3px 9px rgba(15,23,42,.10);animation:p2Bar .3s ease both}
.p2-group-plan{background:#bfdbfe;border:1px solid #60a5fa}.p2-group-plan>i{display:block;height:100%;background:linear-gradient(90deg,#60a5fa,#2563eb);opacity:.9}
.p2-group-real{height:8px;background:linear-gradient(90deg,#4ade80,#15803d);box-shadow:0 2px 6px rgba(22,163,74,.18)}
.p2-plan-card-actions .danger-link{margin-left:auto}
#p2GanttEmpty strong,#p2GanttEmpty span{display:block}#p2GanttEmpty button{margin-top:8px}

/* V20.9 explicación de avance y guardado discreto */
.p2-progress-tooltip{position:fixed;z-index:99999;max-width:310px;white-space:pre-line;background:#10271c;color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:9px 11px;font-size:10px;line-height:1.45;box-shadow:0 12px 30px rgba(15,23,42,.24);pointer-events:none;animation:p2Tip .14s ease both}
@keyframes p2Tip{from{opacity:0;transform:translateY(4px) scale(.98)}to{opacity:1;transform:none}}[data-p2-progress-tip]{cursor:help}
.p2-task-save-status{background:linear-gradient(135deg,#f0fdf4,#fff);border:1px solid #bbf7d0;border-radius:11px;padding:9px 10px;margin-top:3px}.p2-task-save-row{display:flex;justify-content:space-between;gap:10px;font-size:10px;color:#475569}.p2-task-save-row b{color:#166534}.p2-task-save-track{height:7px;background:#e2e8f0;border-radius:999px;overflow:hidden;margin-top:6px}.p2-task-save-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,#4ade80,#15803d);border-radius:999px;transition:width .25s ease}

/* V21.0 avance manual y guardado amable */
.p2-progress-pill{border:0;background:#eef6f0;color:#166534;font-size:10px;font-weight:900;border-radius:999px;padding:5px 7px;margin-right:7px}.p2-progress-pill.editable{cursor:pointer;border:1px solid #86efac;background:#dcfce7}.p2-progress-pill.editable:hover{transform:scale(1.04);box-shadow:0 4px 12px rgba(22,101,52,.12)}
.p2-group-plan{background:linear-gradient(90deg,#60a5fa,#2563eb)!important;border:0!important}.p2-group-plan>i{display:none!important}
.p2-progress-modal-card{width:min(430px,92vw)}.p2-progress-editor{display:grid;grid-template-columns:1fr 100px;gap:12px;align-items:center;margin:15px 0}.p2-progress-editor input[type="range"]{width:100%;accent-color:#16a34a}.p2-progress-editor>div{display:flex;align-items:center;gap:5px}.p2-progress-editor input[type="number"]{font-size:24px;font-weight:900;text-align:center}.p2-progress-editor span{font-size:18px;font-weight:900;color:#166534}
.p2-task-save-status{position:relative;overflow:hidden}.p2-task-save-status:before{content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:#22c55e;right:12px;bottom:9px;animation:p2SavePulse 1s ease-in-out infinite}@keyframes p2SavePulse{50%{transform:scale(1.7);opacity:.35}}

/* V21.1 - animación exclusiva de carga del Planificador */
.p2-loader-orbit{position:relative!important;width:34px!important;height:34px!important;display:inline-block!important;flex:0 0 34px;border-radius:50%;background:linear-gradient(135deg,#ecfdf5,#dbeafe)}
.p2-loader-orbit>i{position:absolute;left:50%;top:50%;border-radius:50%;transform:translate(-50%,-50%)}
.p2-loader-orbit>i:nth-child(1){width:24px;height:24px;border:2px solid transparent;border-top-color:#16a34a;border-right-color:#16a34a;animation:p2Orbit 1s linear infinite}
.p2-loader-orbit>i:nth-child(2){width:13px;height:13px;border:2px solid transparent;border-bottom-color:#2563eb;animation:p2Orbit .7s linear infinite reverse}
.p2-loader-orbit>i:nth-child(3){width:5px;height:5px;background:#16a34a;animation:p2Core 1.1s ease-in-out infinite}
@keyframes p2Orbit{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes p2Core{50%{transform:translate(-50%,-50%) scale(.55);opacity:.45}}
.p2-module-loader[data-state="loading"]{background:linear-gradient(120deg,#fff,#f3fff8,#f5f9ff);background-size:220% 220%;animation:p2LoaderBg 2.2s ease infinite;box-shadow:0 10px 28px rgba(15,23,42,.06)}
@keyframes p2LoaderBg{50%{background-position:100% 50%}}
.p2-module-loader[data-state="loading"] .p2-loader-track i:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.8),transparent);animation:p2Shine 1s linear infinite}
@keyframes p2Shine{to{transform:translateX(100%)}}

.p2-progress-pair{display:flex;align-items:center;gap:4px}.p2-progress-pair b{font-size:9px;padding:4px 6px;border-radius:999px}.p2-progress-pair b:first-child{background:#dbeafe;color:#1d4ed8}.p2-progress-pair b:nth-child(2){background:#dcfce7;color:#166534}.p2-progress-pair small{font-size:8px;font-weight:900}.p2-progress-pair small.neg{color:#b91c1c}.p2-progress-pair small.pos{color:#166534}
.p2-task-program{font-size:9px;font-weight:900;background:#dbeafe;color:#1d4ed8;border-radius:999px;padding:4px 6px}.p2-gantt-legend{display:flex;gap:10px;flex-wrap:wrap;margin:6px 0 9px;font-size:9px;color:#475569}.p2-gantt-legend span{display:flex;gap:4px;align-items:center}.p2-gantt-legend i{width:16px;height:6px;border-radius:999px}.p2-gantt-legend .blue{background:#2563eb}.p2-gantt-legend .green{background:#16a34a}.p2-gantt-legend .today{width:2px;height:16px;background:#dc2626;border-radius:0}
.p2-today-line{position:absolute;top:0;width:2px;background:#dc2626;z-index:7;pointer-events:none}.p2-today-line span{position:absolute;top:-19px;left:50%;transform:translateX(-50%);background:#dc2626;color:#fff;font-size:8px;font-weight:900;border-radius:5px;padding:3px 5px}
.p2-row-band{position:absolute;left:0;z-index:1}.p2-row-band.row-hover,.p2-gantt-left-row.row-hover{background:rgba(59,130,246,.07)!important}.p2-row-band.row-selected,.p2-gantt-left-row.row-selected{background:rgba(34,197,94,.12)!important}
.p2-bar-labeled{display:flex;align-items:center;padding:0 7px;color:#fff;font-size:8px;font-weight:900;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;z-index:5}.p2-bar-labeled span{overflow:hidden;text-overflow:ellipsis}.p2-plan-today-marker{position:absolute!important;top:-2px!important;bottom:-2px!important;width:2px!important;background:#facc15!important;border-radius:0!important}
.p2-task-name-click{cursor:pointer}.p2-task-name-click:hover strong{text-decoration:underline;color:#166534}.p2-row-menu{border:0;background:transparent;font-size:18px;color:#64748b;border-radius:7px}.p2-row-menu:hover{background:#f1f5f9}
.p2-context-menu{position:fixed;z-index:99998;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:6px;box-shadow:0 12px 30px rgba(15,23,42,.18);min-width:185px}.p2-context-menu button{width:100%;border:0;background:transparent;color:#b91c1c;text-align:left;padding:8px;font-weight:800}

/* V21.3 */
.p2-bar-clean{padding:0!important;overflow:visible!important}.p2-today-badge{display:inline-flex;align-items:center;background:#fff1f2;color:#b91c1c;border:1px solid #fecdd3;border-radius:999px;padding:6px 9px;font-size:9px;font-weight:900;white-space:nowrap}
.p2-executed-progress{border:0;background:#dcfce7;color:#166534;font-size:9px;font-weight:900;border-radius:999px;padding:4px 6px}.p2-executed-progress.editable{cursor:pointer;box-shadow:inset 0 0 0 1px #86efac}.p2-executed-progress.editable:hover{background:#bbf7d0}
.p2-gantt-scroll{cursor:grab;touch-action:none}.p2-gantt-scroll.is-panning{cursor:grabbing;user-select:none}
.p2-manage-tree{max-height:65vh;overflow:auto;display:grid;gap:10px;margin-top:10px}.p2-manage-boss{border:1px solid #e2e8f0;border-radius:12px;background:#fff;overflow:hidden}.p2-manage-head,.p2-manage-cons>div:first-child{display:flex;align-items:center;gap:8px;padding:9px 10px}.p2-manage-head{background:#f8fafc}.p2-manage-head>span,.p2-manage-cons span{font-size:9px;color:#64748b}.p2-manage-head button,.p2-manage-cons button{margin-left:auto;border:0;background:#fff1f2;color:#b91c1c;border-radius:8px;padding:6px 8px;font-size:9px;font-weight:800}.p2-manage-cons{border-top:1px solid #edf2f7}.p2-manage-parrons{display:flex;flex-wrap:wrap;gap:6px;padding:0 10px 10px}.p2-manage-parrons>span{display:flex;align-items:center;gap:5px;border:1px solid #e2e8f0;border-radius:999px;padding:5px 6px 5px 9px;background:#fff}.p2-manage-parrons small{font-size:8px;color:#64748b}.p2-manage-parrons button{margin-left:0;width:22px;height:22px;display:grid;place-items:center;padding:0;border-radius:50%}.p2-row-menu,.p2-context-menu{display:none!important}

/* V21.7 dashboard jerárquico del Planificador */
.p2-dashboard-modal-card{width:min(980px,96vw);max-height:92vh;overflow:hidden}.p2-progress-dashboard-body{max-height:74vh;overflow:auto;padding-right:4px;display:grid;gap:14px}.p2-progress-dashboard-body section{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:13px}.p2-progress-dashboard-body h4{margin:0 0 10px;font-size:12px;color:#0f172a}
.p2-dash-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.p2-dash-metric{border:1px solid #e2e8f0;border-radius:12px;padding:10px;background:linear-gradient(145deg,#fff,#f8fafc)}.p2-dash-metric span,.p2-dash-metric small{display:block;color:#64748b;font-size:9px}.p2-dash-metric strong{display:block;font-size:20px;color:#0f172a;margin:2px 0}
.p2-dash-grid{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(360px,1.2fr);gap:12px}.p2-dash-donut-wrap{display:flex;align-items:center;justify-content:center;gap:18px;min-height:200px}.p2-dash-donut{width:150px;height:150px;border-radius:50%;background:conic-gradient(#3b82f6 0 var(--b),#22c55e var(--b) var(--g),#f59e0b var(--g) var(--y),#ef4444 var(--y) 100%);display:grid;place-items:center;position:relative}.p2-dash-donut:after{content:"";position:absolute;width:94px;height:94px;border-radius:50%;background:#fff}.p2-dash-donut>div{position:relative;z-index:1;text-align:center}.p2-dash-donut strong{display:block;font-size:24px}.p2-dash-donut small{font-size:9px;color:#64748b}.p2-dash-legend{display:grid;gap:7px;font-size:9px}.p2-dash-legend span{display:flex;gap:8px;align-items:center}.p2-dash-legend span:before{content:"";width:9px;height:9px;border-radius:3px}.p2-dash-legend .blue:before{background:#3b82f6}.p2-dash-legend .green:before{background:#22c55e}.p2-dash-legend .yellow:before{background:#f59e0b}.p2-dash-legend .red:before{background:#ef4444}.p2-dash-legend b{margin-left:auto}
.p2-dash-bars{display:grid;gap:7px}.p2-dash-bar-row{display:grid;grid-template-columns:minmax(110px,190px) 1fr 110px;gap:9px;align-items:center;width:100%;border:0;background:transparent;padding:6px;border-radius:9px;text-align:left}.p2-dash-bar-row[data-p2-dash-click]{cursor:pointer}.p2-dash-bar-row[data-p2-dash-click]:hover{background:#f8fafc}.p2-dash-name{font-size:9px;font-weight:800;color:#334155;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.p2-dash-track{height:22px;background:#edf2f7;border-radius:7px;position:relative;overflow:hidden}.p2-dash-track i{position:absolute;left:0;height:8px;border-radius:99px}.p2-dash-track .planned{top:3px;background:#60a5fa}.p2-dash-track .executed{bottom:3px;background:#22c55e}.p2-dash-values{display:flex;justify-content:flex-end;gap:5px}.p2-dash-values b{font-size:8px;padding:3px 5px;border-radius:999px;background:#eff6ff;color:#1d4ed8}.p2-dash-values b+ b{background:#ecfdf5;color:#166534}
.p2-dash-activities{display:grid;gap:6px}.p2-dash-activity{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid #e2e8f0;border-left-width:5px;border-radius:10px;padding:9px 10px;background:#fff;text-align:left}.p2-dash-activity strong,.p2-dash-activity small{display:block}.p2-dash-activity small{font-size:8px;color:#64748b;margin-top:2px}.p2-dash-activity>span{font-size:9px;font-weight:900;white-space:nowrap}.p2-dash-activity.blue{border-left-color:#3b82f6}.p2-dash-activity.green{border-left-color:#22c55e}.p2-dash-activity.yellow{border-left-color:#f59e0b;background:#fffbeb}.p2-dash-activity.red{border-left-color:#ef4444;background:#fef2f2}
.p2-hierarchy-name-click{cursor:pointer}.p2-hierarchy-name-click:hover strong{text-decoration:underline;color:#166534}
.p2-bar.p2-status-blue{background:#2563eb!important}.p2-bar.p2-status-green{background:#16a34a!important}.p2-bar.p2-status-yellow{background:#f59e0b!important}.p2-bar.p2-status-red{background:#ef4444!important}.p2-bar.p2-status-yellow,.p2-bar.p2-status-red{box-shadow:0 0 0 1px rgba(15,23,42,.08),0 4px 12px rgba(15,23,42,.12)}
@media(max-width:760px){.p2-dash-metrics{grid-template-columns:1fr 1fr}.p2-dash-grid{grid-template-columns:1fr}.p2-dash-bar-row{grid-template-columns:100px 1fr}.p2-dash-values{grid-column:2}.p2-dash-donut-wrap{flex-direction:column}}

/* V21.8 selección rápida y carga única */
.p2-quick-select-card{width:min(620px,94vw);max-height:86vh;overflow:hidden}.p2-quick-search-wrap{padding:2px 0 10px}.p2-quick-search-wrap input{width:100%;padding:11px 13px;border:1px solid #dbe3ea;border-radius:12px;font-size:12px;background:#f8fafc}.p2-quick-list{max-height:56vh;overflow:auto;display:grid;gap:7px}.p2-quick-plan{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;border:1px solid #e2e8f0;background:#fff;border-radius:12px;padding:10px 12px;text-align:left;cursor:pointer;transition:.16s ease}.p2-quick-plan:hover{transform:translateY(-1px);border-color:#86efac;box-shadow:0 8px 18px rgba(15,23,42,.06)}.p2-quick-plan strong,.p2-quick-plan small{display:block}.p2-quick-plan strong{font-size:12px;color:#0f172a}.p2-quick-plan small{font-size:9px;color:#64748b;margin-top:2px}.p2-quick-plan>span{font-size:18px;color:#16a34a}
.p2-quick-recent{margin:0 0 10px;padding:9px;border-radius:12px;background:linear-gradient(135deg,#ecfdf5,#eff6ff);border:1px solid #bbf7d0}.p2-quick-recent>span{display:block;font-size:8px;font-weight:900;color:#166534;margin-bottom:5px;text-transform:uppercase;letter-spacing:.05em}.p2-quick-recent button{width:100%;display:flex;align-items:center;justify-content:space-between;border:0;background:transparent;text-align:left;cursor:pointer}.p2-quick-recent strong,.p2-quick-recent small{display:block}.p2-quick-recent small{font-size:9px;color:#64748b}.p2-quick-loading{min-height:120px;display:flex;align-items:center;justify-content:center;gap:10px;color:#64748b;font-size:10px}.p2-quick-loading i{width:20px;height:20px;border:2px solid #dbeafe;border-top-color:#16a34a;border-radius:50%;animation:p2QuickSpin .7s linear infinite}@keyframes p2QuickSpin{to{transform:rotate(360deg)}}

/* V21.9 — cierre universal de nubes/modales del Planificador */
.modal:not(.hidden){cursor:default}
.modal:not(.hidden)>.modal-card{cursor:auto}
.modal-close{transition:transform .14s ease,background .14s ease,color .14s ease}
.modal-close:hover{transform:scale(1.06);background:#f1f5f9;color:#0f172a}
.modal-close:active{transform:scale(.94)}
.p2-refresh-mini{width:34px!important;min-width:34px!important;height:34px!important;padding:0!important;border-radius:10px!important;font-size:17px!important;display:inline-grid!important;place-items:center!important}50%{transform:rotate(8deg)}}
/* V22.1 — cierre robusto de ventanas del Planificador */
[data-p2-planner-modal="1"].hidden{display:none!important}
[data-p2-planner-modal="1"]{overscroll-behavior:contain}
[data-p2-planner-modal="1"]>.modal-card{position:relative}
[data-p2-planner-modal="1"] .modal-close{z-index:20;cursor:pointer}

/* V22.3 */
[data-p2-planner-modal="1"].hidden{display:none!important}
[data-p2-scale]{cursor:pointer}
[data-p2-scale].active{box-shadow:inset 0 0 0 2px rgba(22,163,74,.20)}


/* V22.9 — selector Gantt NO modal / NO overlay */
#p2QuickSelectModal.p2-quick-inline{
 position:relative!important;inset:auto!important;z-index:1!important;
 display:block;background:transparent!important;padding:0!important;
 margin:10px 0 14px;backdrop-filter:none!important;pointer-events:auto!important
}
#p2QuickSelectModal.p2-quick-inline.hidden{display:none!important}
#p2QuickSelectModal .p2-quick-inline-card{
 width:100%;max-width:none;max-height:none;overflow:visible;
 background:#fff;border:1px solid #dbe5df;border-radius:16px;padding:14px;
 box-shadow:0 10px 28px rgba(15,23,42,.07)
}
#p2QuickSelectModal .modal-head{margin-bottom:8px}
#p2QuickSelectModal .modal-close{cursor:pointer;pointer-events:auto}
