/* ============================================================
   dashboard.css — vista Panel (métricas del proyecto)
   ============================================================ */
.dash{padding:16px 20px 40px;display:grid;grid-template-columns:repeat(12,1fr);gap:14px}
.card{background:#fff;border:1px solid var(--border-soft);border-radius:12px;padding:16px 18px;box-shadow:var(--shadow-sm)}
.card h3{margin:0 0 12px;font-size:13px;color:var(--muted);font-weight:700;display:flex;align-items:center;gap:7px;text-transform:uppercase;letter-spacing:.4px}
.stat-tile{grid-column:span 3;display:flex;align-items:center;gap:14px}
.stat-tile .tic{width:42px;height:42px;border-radius:10px;background:var(--bg);display:grid;place-items:center;color:var(--text);flex-shrink:0}
.stat-tile .tic.red{background:#fde3e7;color:#b5173a}
.stat-tile .tic.green{background:#dff7ec;color:#0a7c4a}
.stat-tile .v{font-size:26px;font-weight:800;line-height:1.1}
.stat-tile .l{color:var(--muted);font-size:12px;margin-top:3px}
.span-4{grid-column:span 4}.span-6{grid-column:span 6}.span-8{grid-column:span 8}.span-12{grid-column:span 12}
.battery{display:flex;height:22px;border-radius:6px;overflow:hidden;background:var(--border-soft)}
.battery i{display:block;height:100%;transition:width .4s}
.status-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:12px;color:var(--muted)}
.status-legend span{display:inline-flex;align-items:center;gap:5px}
.donut{width:150px;height:150px;border-radius:50%;display:grid;place-items:center;margin:0 auto;position:relative}
.donut::after{content:'';position:absolute;width:100px;height:100px;background:#fff;border-radius:50%}
.donut-center{position:relative;z-index:1;text-align:center}
.donut-center b{font-size:24px}
.donut-center small{display:block;color:var(--muted);font-size:11px}
.group-progress{display:flex;flex-direction:column;gap:10px}
.gp{display:flex;align-items:center;gap:10px;font-size:13px}
.gp .n{width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.gp .progress{flex:1}
.gp .p{width:48px;text-align:right;color:var(--muted);font-size:12px}
.tlist{display:flex;flex-direction:column;gap:6px}
.tl{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;background:var(--bg);font-size:13px;cursor:pointer}
.tl:hover{background:#ececee}
.tl .n{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tl .d{color:var(--muted);font-size:12px;white-space:nowrap}
.tl .st{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.tl.late{background:#fdecef}
.tl.late .d{color:var(--red);font-weight:600}
.empty-mini{color:var(--muted);font-size:12px;padding:8px 0}
.deadline-box{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;font-size:13px}
.deadline-box.ok{background:#dff7ec;color:#0a7c4a}
.deadline-box.risk{background:#fde3e7;color:#b5173a}
.deadline-box.none{background:var(--bg);color:var(--muted)}
.deadline-box b{font-size:15px}
.act{display:flex;flex-direction:column;gap:2px;max-height:280px;overflow:auto}
.act .a{display:flex;gap:10px;padding:6px 4px;font-size:12px;border-bottom:1px solid var(--border-soft)}
.act .a .t{color:var(--muted-2);white-space:nowrap;width:110px;flex-shrink:0}
.act .a .m{color:var(--text)}
.people{display:flex;flex-direction:column;gap:8px}
.person{display:flex;align-items:center;gap:10px;font-size:13px}
.person .n{width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.person .progress{flex:1}
.person .p{color:var(--muted);font-size:12px;width:60px;text-align:right}
@media (max-width:1100px){.stat-tile{grid-column:span 6}.span-4,.span-6,.span-8{grid-column:span 12}}
