/* Scorecard table — used in Analytics → Suppliers sub-tab.
   Rules are class-scoped (not wrapped in a view selector) so the same markup
   can live inside any container. */

.cov-table{width:100%;border-collapse:collapse;font-size:13px;background:var(--surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}
.cov-table th{text-align:left;padding:10px 14px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-faint);border-bottom:2px solid var(--border);background:var(--surface);cursor:pointer;user-select:none;white-space:nowrap}
.cov-table th:hover{color:var(--text)}
.cov-table th .sort-arrow{font-size:10px;margin-left:4px;opacity:.4}
.cov-table th.sorted .sort-arrow{opacity:1;color:var(--accent)}
.cov-table td{padding:8px 14px;border-bottom:1px solid var(--border);vertical-align:middle}
.cov-table tr:hover td{background:var(--surface2)}
.cov-table tr.clickable{cursor:pointer}
.cov-table .num{text-align:right;font-family:var(--font);font-size:12px}
.cov-table .supplier-name{font-weight:600;color:var(--text)}
.cov-table .sku{font-family:var(--font);font-size:11px;color:var(--text-dim)}

/* Coverage progress bar */
.pct-bar{display:inline-flex;align-items:center;gap:6px}
.pct-bar-track{width:60px;height:6px;background:var(--surface2);border-radius:3px;overflow:hidden}
.pct-bar-fill{height:100%;border-radius:3px;transition:width .3s}
.pct-green .pct-bar-fill{background:var(--green)}
.pct-yellow .pct-bar-fill{background:var(--yellow)}
.pct-red .pct-bar-fill{background:var(--red)}
.pct-val{font-family:var(--font);font-size:12px;min-width:42px;text-align:right}
.pct-green .pct-val{color:var(--green)}
.pct-yellow .pct-val{color:var(--yellow)}
.pct-red .pct-val{color:var(--red)}

/* Loading + KPI strip */
.cov-loading{text-align:center;padding:60px 0;color:var(--text-dim);font-size:14px}
.cov-loading .spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite;margin-right:8px;vertical-align:middle}
.cov-totals{display:flex;gap:24px;margin-bottom:16px;flex-wrap:wrap}
.cov-totals .stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 18px}
.cov-totals .stat-val{font-size:22px;font-weight:700;font-family:var(--font);color:var(--text)}
.cov-totals .stat-label{font-size:11px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}

/* ── Scorecard grade cells ──
   Two-line cell: big colored letter on top, tiny actual value beneath.
   Letter colors map to rubric tiers (green → red). */
.cov-table td.grade-col,.cov-table th.grade-col{text-align:center;padding:6px 8px;min-width:72px}
.grade-wrap{display:flex;flex-direction:column;align-items:center;gap:1px;line-height:1}
.grade-letter{font-family:var(--font);font-size:18px;font-weight:800;letter-spacing:.5px}
.grade-value{font-family:var(--font);font-size:10px;color:var(--text-faint);font-weight:600;margin-top:2px}
.grade-wrap.g-A .grade-letter{color:#2f8f2f}
.grade-wrap.g-B .grade-letter{color:#6fa84a}
.grade-wrap.g-C .grade-letter{color:#c5a74b}
.grade-wrap.g-D .grade-letter{color:#c78844}
.grade-wrap.g-F .grade-letter{color:#b84a3a}
.grade-wrap.grade-null .grade-letter{color:var(--text-faint);font-weight:500;font-size:14px}

/* Compact grade chips inside the KPI strip grade-count summary */
.cov-totals .g-A{color:#2f8f2f;font-weight:700}
.cov-totals .g-B{color:#6fa84a;font-weight:700}
.cov-totals .g-C{color:#c5a74b;font-weight:700}
.cov-totals .g-D{color:#c78844;font-weight:700}
.cov-totals .g-F{color:#b84a3a;font-weight:700}

/* Analytics sub-tab layout tweaks */
#an-subtab-suppliers .cov-totals{margin-bottom:14px}
#an-sc-filter{padding:6px 10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:12px;outline:none;width:240px}
#an-sc-filter:focus{border-color:var(--accent)}
