/* ---- Encabezado del Dashboard ---- */
.dash-hdr{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:10px}
.dash-hdr h2{font-size:19px;font-weight:700}
.dash-hdr p{font-size:12px;color:var(--ink3);margin-top:2px}
.dash-hdr-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.dash-hdr-actions select{height:32px;border:1.5px solid var(--border);border-radius:var(--r);padding:0 10px;font-family:var(--font);font-size:12px;color:var(--ink);background:var(--white)}
#dash-filtros-btn.active{background:var(--p3);border-color:var(--p);color:var(--p)}

.metrics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-bottom:12px}
.metric-card{background:var(--white);border-radius:var(--r2);border:1px solid var(--border);box-shadow:var(--sh);padding:12px;position:relative;overflow:hidden;cursor:pointer;transition:transform .15s,box-shadow .15s}
.metric-card:hover{transform:translateY(-2px);box-shadow:var(--sh2)}
.metric-card::after{content:'';position:absolute;top:0;left:0;width:4px;height:100%;border-radius:3px 0 0 3px}
.mc-teal::after{background:var(--p)}.mc-amber::after{background:var(--amber)}
.mc-blue::after{background:var(--blue)}.mc-green::after{background:var(--green)}
.mc-purple::after{background:var(--purple)}.mc-red::after{background:var(--red)}
.mc-top{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.m-icon{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.mc-teal .m-icon{background:var(--p3);color:var(--p)}.mc-amber .m-icon{background:var(--amberbg);color:var(--amber)}
.mc-blue .m-icon{background:var(--bluebg);color:var(--blue)}.mc-green .m-icon{background:var(--greenbg);color:var(--green)}
.mc-purple .m-icon{background:var(--purplebg);color:var(--purple)}.mc-red .m-icon{background:var(--redbg);color:var(--red)}
.m-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.m-lbl{font-size:9.5px;font-weight:700;color:var(--ink3);text-transform:uppercase;letter-spacing:.5px}
.m-val{font-size:22px;font-weight:700;line-height:1;margin-bottom:6px}
.mc-bottom{display:flex;align-items:center;justify-content:space-between;gap:6px}
.m-sub{font-size:10px;color:var(--ink3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.m-trend{font-size:9.5px;font-weight:700;padding:2px 6px;border-radius:99px;white-space:nowrap;flex-shrink:0}
.m-trend.up{background:var(--greenbg);color:#065f46}
.m-trend.down{background:var(--redbg);color:var(--red)}
.m-trend.flat{background:#f1f5f9;color:var(--ink3)}

.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.report-grid3{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:10px;margin-bottom:10px}
@media(max-width:1100px){.report-grid3{grid-template-columns:1fr}}
.report-card{background:var(--white);border-radius:var(--r2);border:1px solid var(--border);box-shadow:var(--sh);padding:14px}
.rc-title{font-size:11px;font-weight:700;color:var(--ink3);text-transform:uppercase;letter-spacing:.6px;margin-bottom:10px}
.rc-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.rc-title-row .rc-title{margin-bottom:0}
.rc-link{font-size:10.5px;font-weight:600;color:var(--p);cursor:pointer}
.rc-link:hover{text-decoration:underline}

.person-row{display:flex;align-items:center;gap:8px;padding:7px 8px;margin:0 -8px;border-radius:6px;cursor:pointer;transition:background .1s;border-bottom:1px solid var(--border)}
.person-row:hover{background:var(--p3)}.person-row:last-child{border-bottom:none}
.p-av{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:white;flex-shrink:0}
.p-name{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.p-sub{font-size:10px;color:var(--ink3);margin-bottom:3px}
.p-bar-track{background:var(--bg);border-radius:3px;height:5px;overflow:hidden;max-width:180px}
.p-bar-fill{height:5px;border-radius:3px;transition:width .5s}
.p-h{font-size:13px;font-weight:700;font-family:var(--mono)}.p-ex{font-size:10px;font-weight:600;color:var(--amber)}
.bar-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.bar-lbl{width:88px;font-size:10.5px;color:var(--ink3);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}
/* "Servicios frecuentes" vive en una tarjeta de ancho completo (no en una
   columna angosta como Lugar/Vehículo), así que ahí sí hay espacio de
   sobra para mostrar el nombre completo del servicio sin cortarlo. */
#dash-frecuentes .bar-lbl{width:260px;max-width:32%;text-align:left;white-space:normal;text-overflow:clip;overflow:visible;line-height:1.3}
.bar-track{flex:1;background:var(--bg);border-radius:4px;height:12px;overflow:hidden;cursor:pointer}
.bar-fill{height:12px;border-radius:4px;transition:width .5s}.bar-num{font-size:10px;font-weight:700;width:20px;font-family:var(--mono)}

/* ---- Pendientes prioritarios ---- */
.pend-row{display:flex;align-items:center;gap:9px;padding:8px 0;border-bottom:1px solid var(--border);cursor:pointer}
.pend-row:last-child{border-bottom:none}
.pend-icon{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.pend-icon svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.pend-red{background:var(--redbg);color:var(--red)}.pend-amber{background:var(--amberbg);color:var(--amber)}
.pend-title{font-size:11.5px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pend-sub{font-size:10px;color:var(--ink3)}
.pend-chev{width:14px;height:14px;stroke:var(--ink4);fill:none;stroke-width:2;flex-shrink:0}

/* ---- Resumen rápido (dona por estado) ---- */
.donut-row{display:flex;align-items:center;gap:14px}
.donut-wrap{position:relative;width:92px;height:92px;flex-shrink:0}
.donut-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}
.donut-total{font-size:16px;font-weight:700;color:var(--ink)}
.donut-total-lbl{font-size:9px;color:var(--ink3);text-transform:uppercase;letter-spacing:.4px}
.donut-legend{display:flex;flex-direction:column;gap:7px;flex:1;min-width:0}
.dl-row{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--ink2)}
.dl-row b{margin-left:auto;font-family:var(--mono);color:var(--ink)}
.dl-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}

/* ---- Comparativo de años ---- */
.comp-metric-toggle{display:flex;border:1.5px solid var(--border);border-radius:var(--r);overflow:hidden}
.comp-metric-btn{border:none;background:var(--white);color:var(--ink3);font-family:var(--font);font-size:11px;font-weight:600;padding:5px 10px;cursor:pointer;transition:background .1s,color .1s}
.comp-metric-btn+.comp-metric-btn{border-left:1.5px solid var(--border)}
.comp-metric-btn.active{background:var(--p);color:#fff}
.comp-years{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.comp-year-card{flex:1;min-width:110px;background:var(--bg);border-radius:var(--r);padding:10px 12px;text-align:center}
.comp-sub{font-size:10.5px;color:var(--ink4)}
.comp-year-lbl{font-size:10px;font-weight:700;color:var(--ink3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.comp-year-val{font-size:17px;font-weight:700;color:var(--ink);margin-bottom:4px}
