.dashboard-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;}
.dashboard-range-wrap{display:flex;align-items:center;gap:8px;}
.dashboard-range-group .btn{border-radius:999px!important;font-weight:700;padding:.42rem .82rem;}
.dashboard-kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.dashboard-card-link{text-decoration:none;color:inherit;display:block;}
.dashboard-kpi-card{background:#fff;border:1px solid #e5e7eb;border-radius:20px;padding:16px 16px 14px;box-shadow:0 8px 24px rgba(15,23,42,.05);position:relative;overflow:hidden;min-height:116px;}
.dashboard-kpi-card::after{content:'';position:absolute;right:-28px;top:-28px;width:90px;height:90px;border-radius:50%;background:rgba(255,255,255,.15);}
.dashboard-kpi-card.primary{background:linear-gradient(135deg,#eff6ff,#dbeafe);}
.dashboard-kpi-card.success{background:linear-gradient(135deg,#ecfdf5,#d1fae5);}
.dashboard-kpi-card.info{background:linear-gradient(135deg,#eff6ff,#e0f2fe);}
.dashboard-kpi-card.warning{background:linear-gradient(135deg,#fff7ed,#ffedd5);}
.dashboard-kpi-card.danger{background:linear-gradient(135deg,#fef2f2,#fee2e2);}
.dashboard-kpi-card.secondary{background:linear-gradient(135deg,#f8fafc,#eef2ff);}
.dashboard-kpi-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;position:relative;z-index:1;}
.dashboard-kpi-title{font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#475569;}
.dashboard-kpi-icon{font-size:1.25rem;color:#0f172a;opacity:.7;}
.dashboard-kpi-value{font-size:1.42rem;font-weight:900;color:#0f172a;line-height:1.15;margin-top:10px;position:relative;z-index:1;word-break:break-word;}
.dashboard-kpi-subtitle{font-size:.82rem;color:#475569;margin-top:6px;position:relative;z-index:1;}
.dashboard-chart-grid{display:grid;grid-template-columns:1fr;gap:14px;}
.dashboard-chart-grid-secondary{align-items:start;}
.dashboard-widget-grid{display:grid;grid-template-columns:1fr;gap:14px;}
.dashboard-section-card{background:#fff;border:1px solid #e5e7eb;border-radius:22px;padding:16px;box-shadow:0 10px 28px rgba(15,23,42,.05);}
.dashboard-section-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;}
.dashboard-section-title{font-size:1rem;font-weight:800;color:#0f172a;margin:0;}
.dashboard-section-subtitle{font-size:.82rem;color:#64748b;}
.dashboard-empty{padding:28px 12px;text-align:center;color:#64748b;font-weight:600;border:1px dashed #cbd5e1;border-radius:16px;background:#f8fafc;}
.dashboard-chart-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;}
.dashboard-legend-item{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;color:#475569;font-weight:600;}
.dashboard-legend-dot{width:12px;height:12px;border-radius:999px;background:#94a3b8;display:inline-block;}
.dashboard-bar-chart{padding-top:6px;}
.dashboard-bar-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(44px,1fr));gap:12px;align-items:end;height:230px;}
.dashboard-bar-group{display:flex;align-items:flex-end;justify-content:center;gap:4px;height:100%;position:relative;}
.dashboard-bar{flex:1;min-width:0;border-radius:12px 12px 0 0;background:#cbd5e1;position:relative;min-height:4px;transition:opacity .18s ease;}
.dashboard-bar:hover{opacity:.88;}
.dashboard-bar-label{margin-top:8px;text-align:center;font-size:.74rem;font-weight:700;color:#64748b;word-break:break-word;}
.dashboard-bar-value{position:absolute;left:50%;bottom:calc(100% + 6px);transform:translateX(-50%);background:#0f172a;color:#fff;padding:4px 8px;border-radius:8px;font-size:.7rem;font-weight:700;opacity:0;pointer-events:none;white-space:nowrap;}
.dashboard-bar:hover .dashboard-bar-value{opacity:1;}
.dashboard-line-wrap{padding-top:6px;}
.dashboard-line-svg{width:100%;height:250px;display:block;overflow:visible;}
.dashboard-line-area{fill:rgba(148,163,184,.08);}
.dashboard-line-path{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;}
.dashboard-line-point{stroke:#fff;stroke-width:2;cursor:pointer;}
.dashboard-line-labels{display:grid;grid-template-columns:repeat(auto-fit,minmax(44px,1fr));gap:8px;margin-top:8px;}
.dashboard-line-label{font-size:.74rem;text-align:center;color:#64748b;font-weight:700;}
.dashboard-donut-wrap{display:grid;grid-template-columns:minmax(140px,180px) 1fr;gap:16px;align-items:center;}
.dashboard-donut{width:168px;height:168px;border-radius:50%;position:relative;margin:0 auto;background:conic-gradient(#cbd5e1 0deg, #e2e8f0 360deg);}
.dashboard-donut::after{content:'';position:absolute;inset:24px;background:#fff;border-radius:50%;box-shadow:inset 0 0 0 1px #e5e7eb;}
.dashboard-donut-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:1;pointer-events:none;text-align:center;padding:0 28px;}
.dashboard-donut-total{font-size:1.35rem;font-weight:900;color:#0f172a;line-height:1.1;}
.dashboard-donut-caption{font-size:.78rem;font-weight:700;color:#64748b;margin-top:4px;}
.dashboard-donut-legend{display:flex;flex-direction:column;gap:10px;}
.dashboard-donut-legend .dashboard-legend-item{justify-content:space-between;gap:14px;}
.dashboard-legend-value{font-weight:800;color:#0f172a;}
.dashboard-list{display:flex;flex-direction:column;gap:10px;}
.dashboard-list-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid #e5e7eb;border-radius:16px;background:#fff;text-decoration:none;color:inherit;transition:transform .15s ease, box-shadow .15s ease;}
.dashboard-list-item:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(15,23,42,.06);}
.dashboard-list-title{font-weight:800;color:#0f172a;}
.dashboard-list-meta,.dashboard-list-desc{font-size:.82rem;color:#64748b;margin-top:2px;}
.dashboard-item-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:999px;background:#f1f5f9;color:#334155;font-size:.76rem;font-weight:800;white-space:nowrap;}
.dashboard-bars-list{display:flex;flex-direction:column;gap:12px;}
.dashboard-bars-row{text-decoration:none;color:inherit;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;}
.dashboard-bars-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.86rem;font-weight:800;color:#0f172a;}
.dashboard-bars-meta{font-size:.78rem;color:#64748b;}
.dashboard-bars-track{height:10px;background:#e2e8f0;border-radius:999px;overflow:hidden;margin-top:8px;}
.dashboard-bars-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--brand),var(--brand-dark));}
.dashboard-bars-value{font-size:.8rem;font-weight:900;color:#0f172a;white-space:nowrap;}
.dashboard-skeleton{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.dashboard-skeleton-card{height:112px;border-radius:20px;background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0 37%,#f1f5f9 63%);background-size:400% 100%;animation:dashPulse 1.2s ease-in-out infinite;}
@keyframes dashPulse{0%{background-position:100% 50%;}100%{background-position:0 50%;}}
@media (min-width:768px){
  .dashboard-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .dashboard-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .dashboard-chart-grid-secondary{grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);}
  .dashboard-widget-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (min-width:1200px){
  .dashboard-kpi-grid{grid-template-columns:repeat(6,minmax(0,1fr));}
  .dashboard-widget-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:767.98px){
  .dashboard-header{align-items:stretch;}
  .dashboard-range-wrap{width:100%;overflow:auto;padding-bottom:2px;}
  .dashboard-range-group{display:flex;flex-wrap:nowrap;}
  .dashboard-range-group .btn{white-space:nowrap;}
  .dashboard-donut-wrap{grid-template-columns:1fr;}
  .dashboard-donut{width:150px;height:150px;}
  .dashboard-donut::after{inset:22px;}
  .dashboard-chart-grid-customer{grid-template-columns:1fr;}
  .dashboard-kpi-grid-customer{grid-template-columns:repeat(2,minmax(0,1fr));}
  .dashboard-bar-grid{height:200px;gap:10px;}
}
