.dashboard { padding: 24px 32px; max-width: 1200px; margin: 0 auto; overflow-y: auto; height: 100%; } .page-title { font-size: 22px; font-weight: 600; margin-bottom: 24px; color: var(--text-primary); } .stats-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; margin-bottom: 24px; } .stat-card { background: var(--bg-secondary); border: 1px solid var(--border); border-radius: 10px; padding: 16px; text-align: center; &.accent { border-color: var(--accent); background: rgba(88, 166, 255, 0.05); } &.warn { border-color: var(--yellow, #d29922); background: rgba(210, 153, 34, 0.08); } } .stat-value { font-size: 28px; font-weight: 700; color: var(--text-primary); margin-bottom: 4px; } .stat-label { font-size: 12px; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.5px; } .charts-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; } .chart-card { background: var(--bg-secondary); border: 1px solid var(--border); border-radius: 10px; padding: 18px; } .chart-title { font-size: 14px; font-weight: 600; color: var(--text-primary); margin-bottom: 14px; } .quality-bar { display: flex; height: 24px; border-radius: 6px; overflow: hidden; background: var(--bg-tertiary); margin-bottom: 10px; } .bar-segment { transition: width 0.3s ease; &.pass { background: var(--green); } &.fail { background: var(--red); } } .quality-legend { display: flex; gap: 16px; } .legend-item { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text-secondary); } .dot { width: 8px; height: 8px; border-radius: 50%; &.pass { background: var(--green); } &.fail { background: var(--red); } } .breakdown-list { display: flex; flex-direction: column; gap: 8px; } .breakdown-row { display: flex; align-items: center; gap: 8px; } .breakdown-dot { width: 10px; height: 10px; border-radius: 3px; flex-shrink: 0; } .breakdown-label { flex: 1; font-size: 13px; color: var(--text-secondary); text-transform: capitalize; } .breakdown-value { font-size: 14px; font-weight: 600; color: var(--text-primary); } .loading { display: flex; align-items: center; justify-content: center; height: 200px; color: var(--text-secondary); }