/* Producción Contratista RM · rediseño ejecutivo 2026-10-07 */
.ct-executive{max-width:1600px;margin:0 auto;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}
.ct-executive>[hidden]{display:none!important}
.ct-exec-head,.ct-exec-filters,.ct-exec-meta,.ct-exec-tabs,.ct-exec-kpis,.ct-exec-activity-grid,.ct-exec-rank,.ct-exec-detail{grid-column:1/-1}
/* Barra WFM · Producción Contratistas SOLO RM.
   El componente compartido ya presenta último registro, fuente y próxima carga.
   Debe ocupar las 12 columnas del panel; antes se comprimía en una sola. */
.ct-executive > [data-wfm-update="sg_rm"]{grid-column:1/-1;min-width:0;width:100%}
.ct-executive > [data-wfm-update="sg_rm"] .wfm-update-notice{width:100%;min-height:43px;margin:0;padding:10px 14px;background:#f7fafc;border:1px solid #d8e5f1;border-radius:10px}
.ct-executive > [data-wfm-update="sg_rm"] .wfm-update-main,
.ct-executive > [data-wfm-update="sg_rm"] .wfm-update-details{min-width:0}

.ct-exec-chart-card{grid-column:span 8}.ct-exec-status-card{grid-column:span 4}.ct-exec-performance,.ct-exec-trends{grid-column:span 6}
.ct-executive[data-view="evolution"] .ct-exec-chart-card,.ct-executive[data-view="evolution"] .ct-exec-trends,
.ct-executive[data-view="activity"] .ct-exec-activity-grid,.ct-executive[data-view="activity"] .ct-exec-performance,.ct-executive[data-view="activity"] .ct-exec-status-card{grid-column:1/-1}

.ct-exec-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:0}
.ct-exec-head h1{margin:3px 0 6px;color:#103f6c;font-size:28px;line-height:1.15;letter-spacing:-.5px}
.ct-exec-head p:last-child{margin:0;color:#60788c;font-size:13px}
.ct-exec-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.ct-period-chip{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border:1px solid #d6e3ee;border-radius:10px;background:#fff;box-shadow:0 4px 14px #214d7010;color:#123f68;white-space:nowrap}
.ct-period-chip small{font-size:10px;color:#71879a;font-weight:600}.ct-period-chip strong{font-size:12px}

.ct-exec-filters{display:grid;grid-template-columns:1fr 1fr 1.15fr 1.15fr auto;gap:12px;padding:16px 18px;align-items:end;border-color:#dbe6ee;box-shadow:0 6px 18px #1b54740b}
.ct-exec-filters label{display:grid;gap:6px;font-size:11px;font-weight:700;color:#345b78}
.ct-exec-filters input,.ct-exec-filters select{min-width:0}
.ct-exec-filters .actions{align-items:end;white-space:nowrap}
.ct-exec-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:-6px;color:#72879a;font-size:10px}
.ct-exec-meta span{padding:4px 8px;border-radius:999px;background:#eef4f8}.ct-exec-meta .warning{background:#fff4de;color:#9a6516}

.ct-exec-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));overflow:hidden;border:1px solid #d7e3eb;border-radius:10px;background:#fff;box-shadow:0 4px 16px #174f7310}
.ct-exec-tabs button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:45px;border:0;border-right:1px solid #e2ebf1;border-radius:0;background:#fff;color:#315874;font-size:12px;font-weight:650}
.ct-exec-tabs button:last-child{border-right:0}.ct-exec-tabs button:hover{background:#f4f8fb}.ct-exec-tabs button.active{background:linear-gradient(135deg,#0877c9,#075aa2);color:#fff;box-shadow:inset 0 -2px 0 #064f8f}
.ct-exec-tabs button:focus-visible{outline:3px solid #55a8e6;outline-offset:-3px}

.ct-exec-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid #d9e5ed;border-radius:12px;background:#fff;box-shadow:0 6px 20px #164a6d0c;overflow:hidden}
.ct-kpi{display:flex;align-items:center;gap:14px;min-width:0;padding:18px;border:0;border-right:1px solid #e4ecf2;background:#fff;text-align:left;color:#123f68}
button.ct-kpi{cursor:pointer}.ct-kpi:last-child{border-right:0}.ct-kpi:not(.ct-kpi-static):hover{background:#f7fafc}
.ct-kpi-icon{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;flex:0 0 43px;font-size:23px;font-weight:800;background:#e9f3fb;color:#0a66a7}
.ct-kpi-icon.final{background:#e8f7f0;color:#1e9165}.ct-kpi-icon.pending{background:#fff4df;color:#cf8512}.ct-kpi-icon.cancel{background:#fdebed;color:#cf4050}.ct-kpi-icon.compliance{background:#edf4fa;color:#145f96}
.ct-kpi div{min-width:0}.ct-kpi strong{display:block;font-size:28px;line-height:1;color:#0f4775;font-variant-numeric:tabular-nums}.ct-kpi span:last-child{display:block;margin-top:5px;font-size:11px;color:#61798b}

.ct-exec-activity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.ct-exec-activity-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:15px;padding:17px 18px;min-height:108px;border-color:#dbe6ee;box-shadow:0 6px 18px #174a6d0a}
.ct-exec-activity-icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#e9f5fd;color:#0877c9;font-size:22px;font-weight:800}
.family-repair .ct-exec-activity-icon{background:#e8f5f2;color:#237e78}.family-installation .ct-exec-activity-icon{background:#eaf1fd;color:#3568b5}.family-postsale .ct-exec-activity-icon{background:#f1ecfa;color:#7756ad}
.ct-exec-activity-main>span{display:block;font-size:12px;font-weight:700;color:#17496f}.ct-exec-activity-main button{display:block;border:0;background:transparent;padding:4px 0 0;text-align:left}
.ct-exec-activity-main button:hover strong{color:#0877c9}.ct-exec-activity-main strong{display:block;font-size:28px;line-height:1.05;color:#123f68}.ct-exec-activity-main small{display:block;margin-top:4px;color:#708698;font-size:10px}
.ct-exec-activity-rate{min-width:112px;text-align:right}.ct-exec-activity-rate>strong{display:block;font-size:18px;color:#0877c9}.ct-exec-activity-rate>span{display:block;margin:3px 0 8px;font-size:10px;color:#72889a}
.ct-exec-activity-rate>div{height:6px;border-radius:999px;background:#e8eef3;overflow:hidden}.ct-exec-activity-rate i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#4faaf0,#7fc4f6)}

.ct-exec-chart-card,.ct-exec-status-card,.ct-exec-performance,.ct-exec-trends,.ct-exec-rank{padding:0;overflow:hidden;border-color:#dbe6ee;box-shadow:0 7px 22px #164a6d0c}
.ct-exec-card-head{padding-right:16px}.ct-chart-modes{display:inline-flex;border:1px solid #d6e2eb;border-radius:8px;overflow:hidden;background:#f8fbfd}
.ct-chart-modes button{border:0;border-right:1px solid #d6e2eb;border-radius:0;background:transparent;padding:8px 13px;color:#315874;font-size:11px;font-weight:700}.ct-chart-modes button:last-child{border-right:0}.ct-chart-modes button.active{background:#075fa9;color:#fff}
.ct-chart-scroll{overflow-x:auto;padding:0 10px 2px}.ct-exec-linechart{display:block;width:100%;min-width:620px;height:auto}
.ct-chart-grid{stroke:#e8eef3;stroke-width:1}.ct-chart-axis-line{stroke:#b7c7d2;stroke-width:1}.ct-chart-axis{fill:#718596;font-size:11px}
.ct-chart-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.ct-chart-dot{stroke:#fff;stroke-width:1.5}
.ct-series-repair{stroke:#0d5b99;fill:#0d5b99}.ct-series-installation{stroke:#28a6ed;fill:#28a6ed}.ct-series-postsale{stroke:#7e8c98;fill:#7e8c98}
.ct-chart-legend{display:flex;justify-content:center;align-items:center;gap:20px;flex-wrap:wrap;padding:0 18px 16px;color:#46677f;font-size:11px}.ct-chart-legend span{display:flex;align-items:center;gap:6px}.ct-chart-legend i{width:9px;height:9px;border-radius:50%}.ct-chart-legend i.repair{background:#0d5b99}.ct-chart-legend i.installation{background:#28a6ed}.ct-chart-legend i.postsale{background:#7e8c98}.ct-chart-legend small{color:#8294a3}
.ct-exec-empty{padding:40px;text-align:center;color:#728698;font-size:12px}

.ct-status-layout{display:grid;grid-template-columns:170px 1fr;gap:18px;align-items:center;padding:10px 20px 24px}
.ct-donut{width:150px;height:150px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#20976b 0 var(--done),#e39a24 var(--done) calc(var(--done) + var(--notdone)),#d84957 calc(var(--done) + var(--notdone)) 100%);position:relative}
.ct-donut:after{content:"";position:absolute;inset:29px;border-radius:50%;background:#fff}.ct-donut>div{position:relative;z-index:1;text-align:center;color:#123f68}.ct-donut strong{display:block;font-size:24px}.ct-donut span{font-size:10px;color:#718596}
.ct-status-legend{display:grid;gap:9px}.ct-status-legend button{display:grid;grid-template-columns:9px 1fr auto;gap:4px 8px;align-items:center;border:0;background:transparent;text-align:left;padding:6px;border-radius:7px;color:#315874}.ct-status-legend button:hover{background:#f5f8fa}
.ct-status-legend i{width:9px;height:9px;border-radius:50%;grid-row:1/3}.ct-status-legend i.done{background:#20976b}.ct-status-legend i.notdone{background:#e39a24}.ct-status-legend i.cancel{background:#d84957}.ct-status-legend span{font-size:11px}.ct-status-legend strong{font-size:13px;color:#123f68}.ct-status-legend small{grid-column:2/4;font-size:10px;color:#8294a3}

.ct-exec-performance{padding-bottom:16px}.ct-performance-row{display:grid;grid-template-columns:110px 1fr 64px;gap:12px;align-items:center;width:calc(100% - 36px);margin:0 18px 9px;padding:5px 0;border:0;background:transparent;text-align:left;color:#315874}
.ct-performance-row>span{font-size:11px;font-weight:650}.ct-performance-row>div{height:13px;border-radius:4px;background:#e8eef3;overflow:hidden}.ct-performance-row i{display:block;height:100%;border-radius:4px;background:#0d6cb1}.ct-performance-row i.installation{background:#2b9be4}.ct-performance-row i.postsale{background:#79bde8}.ct-performance-row>strong{text-align:right;font-size:12px;color:#123f68}

.ct-trend-grid{display:grid;grid-template-columns:repeat(3,1fr);padding:0 18px 18px}.ct-trend-card{display:flex;gap:12px;padding:8px 14px;border-right:1px solid #e4ebf0}.ct-trend-card:last-child{border-right:0}
.ct-trend-icon{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;flex:0 0 35px;font-size:20px;font-weight:800;background:#eef3f6;color:#60788c}.ct-trend-card.positive .ct-trend-icon{background:#e8f7ef;color:#218d61}.ct-trend-card.negative .ct-trend-icon{background:#fdebed;color:#cf4050}
.ct-trend-card span{display:block;font-size:10px;font-weight:700;color:#536f84}.ct-trend-card strong{display:block;margin:2px 0;font-size:17px;color:#123f68}.ct-trend-card.positive strong{color:#218d61}.ct-trend-card.negative strong{color:#cf4050}.ct-trend-card small{display:block;font-size:9px;color:#8294a3;line-height:1.35}

.ct-exec-rank-table{min-width:780px}.ct-exec-rank-table th,.ct-exec-rank-table td{padding:12px 15px}.ct-exec-rank-table th:nth-child(n+2),.ct-exec-rank-table td:nth-child(n+2){text-align:right}
.ct-exec-rank-table td:first-child{display:flex;align-items:center;gap:9px;color:#123f68}.ct-rank-number{width:24px;height:24px;border-radius:7px;background:#edf4f9;display:grid;place-items:center;font-size:10px;color:#648095}.ct-mini-progress{display:inline-block;vertical-align:middle;width:72px;height:5px;margin-right:8px;border-radius:999px;background:#e8eef3;overflow:hidden}.ct-mini-progress span{display:block;height:100%;background:#1f966b}

.ct-exec-detail{display:grid;gap:16px}.ct-exec-detail>.notice{margin:0}
.ct-executive .card-head h3{color:#17496f}.ct-executive .card-head p{color:#758a9b}
.ct-executive button:focus-visible,.ct-executive a:focus-visible{outline:3px solid #57a9e7;outline-offset:2px}

@media(max-width:1250px){
 .ct-exec-filters{grid-template-columns:1fr 1fr 1fr 1fr}.ct-exec-filters .actions{grid-column:1/-1}
 .ct-exec-kpis{grid-template-columns:repeat(3,1fr)}.ct-kpi{border-bottom:1px solid #e4ecf2}
 .ct-exec-activity-grid{grid-template-columns:1fr}.ct-exec-chart-card,.ct-exec-status-card,.ct-exec-performance,.ct-exec-trends{grid-column:1/-1}
}
@media(max-width:900px){
 .ct-exec-head{flex-direction:column}.ct-exec-head-actions{justify-content:flex-start}
 .ct-exec-tabs{grid-template-columns:repeat(3,1fr)}.ct-exec-tabs button:nth-child(3){border-right:0}.ct-exec-tabs button:nth-child(-n+3){border-bottom:1px solid #e2ebf1}
 .ct-exec-kpis{grid-template-columns:1fr 1fr}.ct-kpi{border-right:1px solid #e4ecf2}.ct-kpi:nth-child(2n){border-right:0}
 .ct-status-layout{grid-template-columns:1fr;justify-items:center}.ct-status-legend{width:100%}
}
@media(max-width:650px){
 .ct-executive{gap:12px}.ct-exec-head h1{font-size:23px}.ct-exec-filters{grid-template-columns:1fr}.ct-exec-filters .actions{grid-column:auto;flex-wrap:wrap}
 .ct-exec-tabs{grid-template-columns:1fr 1fr}.ct-exec-tabs button{border-bottom:1px solid #e2ebf1}.ct-exec-tabs button:nth-child(2n){border-right:0}
 .ct-exec-kpis{grid-template-columns:1fr}.ct-kpi{border-right:0}.ct-kpi strong{font-size:25px}
 .ct-exec-activity-card{grid-template-columns:auto 1fr}.ct-exec-activity-rate{grid-column:1/-1;width:100%}
 .ct-trend-grid{grid-template-columns:1fr}.ct-trend-card{border-right:0;border-bottom:1px solid #e4ebf0}.ct-trend-card:last-child{border-bottom:0}
 .ct-performance-row{grid-template-columns:85px 1fr 58px}.ct-period-chip{white-space:normal}
}

/* Gráfico evolución RM · Opción 4 (lollipop + total punteado) */
.ct-exec-lollipopchart .ct-chart-grid{stroke:#e6edf3;stroke-width:1;stroke-dasharray:3 3}
.ct-exec-lollipopchart .ct-chart-axis-line{stroke:#b6c7d3;stroke-width:1}
.ct-lollipop .ct-lollipop-stem{stroke-width:1.6;opacity:.9}
.ct-lollipop .ct-lollipop-dot{stroke:#fff;stroke-width:1.8}
.ct-lollipop .ct-lollipop-value{font-size:10px;font-weight:800;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}
.ct-lollipop.ct-series-repair .ct-lollipop-stem{stroke:#0d6fbd}
.ct-lollipop.ct-series-repair .ct-lollipop-dot{fill:#0d6fbd}
.ct-lollipop.ct-series-repair .ct-lollipop-value{fill:#075a9a}
.ct-lollipop.ct-series-installation .ct-lollipop-stem{stroke:#29a9ef}
.ct-lollipop.ct-series-installation .ct-lollipop-dot{fill:#29a9ef}
.ct-lollipop.ct-series-installation .ct-lollipop-value{fill:#168ed1}
.ct-lollipop.ct-series-postsale .ct-lollipop-stem{stroke:#7f90a0}
.ct-lollipop.ct-series-postsale .ct-lollipop-dot{fill:#7f90a0}
.ct-lollipop.ct-series-postsale .ct-lollipop-value{fill:#657686}
.ct-total-line{fill:none;stroke:#7894ad;stroke-width:1.8;stroke-dasharray:6 5;stroke-linecap:round;stroke-linejoin:round}
.ct-total-dot{fill:#dbe4ec;stroke:#6f8aa3;stroke-width:1.6}
.ct-total-value{fill:#173f66;font-size:11px;font-weight:800;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}
.ct-chart-legend span.total i{width:28px;height:0;border-radius:0;background:transparent;border-top:2px dashed #7894ad;position:relative}
.ct-chart-legend span.total i:after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:#dbe4ec;border:1.5px solid #6f8aa3;left:9px;top:-5px}
.ct-chart-legend small{display:none}
