.cards.svelte-1sx6p1b{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px;display:grid}.card.svelte-1sx6p1b{background:var(--bg-1);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.card-label.svelte-1sx6p1b{font-family:var(--font-mono);letter-spacing:.18em;color:var(--text-3);font-size:10px}.card-value.svelte-1sx6p1b{font-family:var(--font-mono);color:var(--text-0);font-size:28px;font-weight:700;line-height:1}.card-pct.svelte-1sx6p1b{font-family:var(--font-mono);color:var(--text-2);font-size:11px}.card--zero.svelte-1sx6p1b .card-value:where(.svelte-1sx6p1b){color:var(--text-3)}.card--valid.svelte-1sx6p1b:not(.card--zero) .card-value:where(.svelte-1sx6p1b){color:#34d399}.card--warn.svelte-1sx6p1b:not(.card--zero) .card-value:where(.svelte-1sx6p1b){color:#fbbf24}.card--err.svelte-1sx6p1b:not(.card--zero) .card-value:where(.svelte-1sx6p1b){color:#f87171}.grades.svelte-1sx6p1b{background:var(--bg-1);border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:24px;padding:14px 16px;display:flex}.grades-label.svelte-1sx6p1b{font-family:var(--font-mono);letter-spacing:.18em;color:var(--text-3);margin-right:8px;font-size:10px}.grade.svelte-1sx6p1b{align-items:baseline;gap:8px;display:flex}.grade-letter.svelte-1sx6p1b{font-family:var(--font-mono);font-size:16px;font-weight:800}.grade-count.svelte-1sx6p1b{font-family:var(--font-mono);color:var(--text-1);font-size:16px}.grade--a.svelte-1sx6p1b .grade-letter:where(.svelte-1sx6p1b){color:#34d399}.grade--b.svelte-1sx6p1b .grade-letter:where(.svelte-1sx6p1b){color:#38bdf8}.grade--c.svelte-1sx6p1b .grade-letter:where(.svelte-1sx6p1b){color:#fb923c}.grade--d.svelte-1sx6p1b .grade-letter:where(.svelte-1sx6p1b){color:#f87171}.grade--f.svelte-1sx6p1b .grade-letter:where(.svelte-1sx6p1b){color:#dc2626}.chart-section.svelte-63bgok{background:var(--bg-1);border:1px solid var(--border);border-radius:6px;margin-bottom:24px;padding:16px}.chart-title.svelte-63bgok{font-family:var(--font-mono);letter-spacing:.18em;color:var(--text-2);margin:0 0 14px;font-size:11px;font-weight:700}.chart-empty.svelte-63bgok{font-family:var(--font-body);color:var(--text-3);text-align:center;margin:0;padding:16px 0;font-size:13px}.chart-list.svelte-63bgok{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.chart-row.svelte-63bgok{grid-template-columns:minmax(180px,1fr) 2fr 60px 100px;align-items:center;gap:12px;display:grid}.rule-id.svelte-63bgok{font-family:var(--font-mono);color:var(--text-1);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.rule-bar-wrap.svelte-63bgok{background:#1e2e3d;border-radius:3px;height:6px;overflow:hidden}.rule-bar.svelte-63bgok{border-radius:3px;height:100%;transition:width .3s}.rule-bar--err.svelte-63bgok{background:#f87171}.rule-bar--warn.svelte-63bgok{background:#fbbf24}.rule-bar--info.svelte-63bgok{background:#38bdf8}.rule-bar--default.svelte-63bgok{background:var(--accent)}.rule-count.svelte-63bgok{font-family:var(--font-mono);color:var(--text-1);text-align:right;font-size:12px;font-weight:600}.rule-projects.svelte-63bgok{font-family:var(--font-mono);color:var(--text-3);text-align:right;font-size:10px}.dashboard-page.svelte-x1i5gj{max-width:1200px;margin:0 auto;padding:24px 32px 48px}.page-header.svelte-x1i5gj{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-title.svelte-x1i5gj{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-0);margin:0;font-size:18px;font-weight:800}.refresh-btn.svelte-x1i5gj{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-sm);height:30px;color:var(--text-2);font-family:var(--font-mono);letter-spacing:.12em;cursor:pointer;padding:0 14px;font-size:11px;font-weight:700;transition:color .1s,border-color .1s}.refresh-btn.svelte-x1i5gj:hover:not(:disabled){color:var(--accent);border-color:var(--accent)}.refresh-btn.svelte-x1i5gj:disabled{opacity:.5;cursor:not-allowed}.state.svelte-x1i5gj{font-family:var(--font-mono);text-align:center;padding:48px 0;font-size:13px}.state--loading.svelte-x1i5gj{color:var(--text-3)}.state--error.svelte-x1i5gj{color:#f87171}.state--empty.svelte-x1i5gj{color:var(--text-3);padding:32px 0}.projects-section.svelte-x1i5gj{background:var(--bg-1);border:1px solid var(--border);border-radius:6px;padding:16px}.section-title.svelte-x1i5gj{font-family:var(--font-mono);letter-spacing:.18em;color:var(--text-2);margin:0 0 14px;font-size:11px;font-weight:700}.projects-table.svelte-x1i5gj{border-collapse:collapse;width:100%;font-family:var(--font-mono);font-size:11px}th.svelte-x1i5gj{text-align:left;color:var(--text-3);letter-spacing:.12em;border-bottom:1px solid var(--border);padding:8px 12px;font-weight:700}.th-score.svelte-x1i5gj,.th-grade.svelte-x1i5gj,.th-errors.svelte-x1i5gj,.th-warnings.svelte-x1i5gj,.th-updated.svelte-x1i5gj{text-align:right}.project-row.svelte-x1i5gj{cursor:pointer;transition:background .1s}.project-row.svelte-x1i5gj:hover,.project-row.svelte-x1i5gj:focus{background:var(--bg-2);outline:none}td.svelte-x1i5gj{color:var(--text-1);border-bottom:1px solid #111a24;padding:10px 12px}.td-name.svelte-x1i5gj{flex-direction:column;gap:2px;display:flex}.project-name.svelte-x1i5gj{color:var(--text-0);font-weight:600}.project-id.svelte-x1i5gj{color:var(--text-3);font-size:10px}.td-score.svelte-x1i5gj,.td-grade.svelte-x1i5gj,.td-errors.svelte-x1i5gj,.td-warnings.svelte-x1i5gj,.td-updated.svelte-x1i5gj{text-align:right}.td-score.svelte-x1i5gj{color:var(--text-0);font-weight:600}.grade-pill.svelte-x1i5gj{letter-spacing:.06em;border-radius:10px;padding:2px 8px;font-size:10px;font-weight:800;display:inline-block}.grade-pill--a.svelte-x1i5gj{color:#34d399;background:#34d3991f}.grade-pill--b.svelte-x1i5gj{color:#38bdf8;background:#38bdf81f}.grade-pill--c.svelte-x1i5gj{color:#fb923c;background:#fb923c1f}.grade-pill--d.svelte-x1i5gj{color:#f87171;background:#f871711f}.grade-pill--f.svelte-x1i5gj{color:#dc2626;background:#dc26261f}.td-errors.has-errors.svelte-x1i5gj{color:#f87171;font-weight:700}.td-warnings.has-warnings.svelte-x1i5gj{color:#fbbf24;font-weight:700}.td-updated.svelte-x1i5gj{color:var(--text-3);font-size:10px}
