// ───────────────────────────────────────────────────────────────────────────── // Component: Repository pages (rh-*, ft-*, tree-* namespaces) // File: src/scss/components/_repo.scss // // Covers: repo home, file tree, branch bar, commit stream, sidebar, // README viewer, activity sparkline, repo-nav tab strip. // Structural layout lives in pages/_repo-home.scss. // // Tokens: --color-accent, --color-accent-link, --color-success/warning/danger // --color-purple, --color-orange, --text-primary/secondary/muted // --bg-base, --bg-surface, --bg-overlay, --bg-hover, --bg-sunken // --border-default, --border-subtle, --font-mono // ───────────────────────────────────────────────────────────────────────────── // ── Repo nav tab strip ──────────────────────────────────────────────────────── @media (min-width: 768px) { .repo-tabs { overflow-x: visible; -webkit-mask-image: none; mask-image: none; } .repo-tabs-inner { justify-content: space-evenly; padding: 0; } .repo-tab { flex: 1; justify-content: center; flex-shrink: 1; padding-left: var(--space-2); padding-right: var(--space-2); } } @media (max-width: 767px) { .repo-tabs-inner { width: max-content; } .repo-tab { flex-shrink: 0; } } // ── Layout ──────────────────────────────────────────────────────────────────── .rh-main { border-right: 1px solid var(--border-subtle); min-width: 0; } // ── Hero ────────────────────────────────────────────────────────────────────── .rh-hero { background: transparent; border-bottom: 1px solid var(--border-subtle); } .rh-hero-top { display: flex; align-items: flex-start; gap: var(--space-4); flex-wrap: wrap; } .rh-hero-identity { flex: 1; min-width: 0; } .rh-hero-title { font-size: 20px; font-weight: var(--weight-semibold); line-height: 1.25; margin: 0 0 6px; display: flex; align-items: center; gap: 4px; flex-wrap: wrap; } .rh-hero-owner { font-weight: var(--weight-normal); color: var(--text-muted); &:hover { color: var(--color-accent-link); text-decoration: none; } } .rh-hero-sep { color: var(--text-muted); } .rh-hero-slug { color: var(--text-primary); font-weight: var(--weight-semibold); &:hover { color: var(--color-accent-link); text-decoration: none; } } .rh-vis-badge { font-size: 10px; vertical-align: middle; margin-left: 4px; } .rh-hero-desc { font-size: 14px; color: var(--text-muted); line-height: 1.65; margin: 0 0 var(--space-3); max-width: 640px; } .rh-hero-pills { display: flex; gap: 6px; flex-wrap: wrap; } .rh-pill { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--border-subtle); color: var(--text-muted); background: var(--bg-sunken); text-decoration: none; transition: border-color 0.15s, color 0.15s; &:hover { color: var(--text-primary); border-color: var(--color-accent); } } .rh-pill-domain { color: var(--color-accent); border-color: color-mix(in srgb, var(--color-accent) 40%, transparent); } .rh-pill-license, .rh-pill-branch { cursor: default; } .rh-hero-actions { display: flex; gap: var(--space-2); align-items: center; flex-shrink: 0; } // ── Branch bar ──────────────────────────────────────────────────────────────── .rh-branch-bar { display: flex; align-items: center; gap: var(--space-3); border-bottom: 1px solid var(--border-subtle); } .rh-branch-form { display: inline-flex; align-items: center; gap: 5px; } .rh-branch-form-icon { color: var(--color-success); flex-shrink: 0; } .rh-branch-picker { display: inline-flex; align-items: center; gap: 5px; } .rh-branch-select, .rh-ref-select { background: transparent; border: none; color: var(--text-primary); font-size: 12px; font-weight: 500; font-family: inherit; padding: 2px 0; cursor: pointer; outline: none; } .rh-ref-select { padding: 3px 8px; } .rh-branch-meta { display: flex; gap: var(--space-3); margin-left: auto; } .rh-branch-stat { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: var(--text-muted); text-decoration: none; &:hover { color: var(--text-primary); } } // ── Branch intel strip ──────────────────────────────────────────────────────── .rh-branch-intel { display: flex; align-items: center; gap: 10px; padding: 0 4px; } .rh-bi-item { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: var(--text-muted); white-space: nowrap; text-decoration: none; &:hover { color: var(--text-primary); } } .rh-bi-val { font-weight: 600; color: var(--text-secondary); } .rh-bi-health--good { color: var(--color-success); .rh-bi-val { color: var(--color-success); } } .rh-bi-health--fair { color: var(--color-warning); .rh-bi-val { color: var(--color-warning); } } .rh-bi-health--poor { color: var(--color-danger); .rh-bi-val { color: var(--color-danger); } } .rh-bi-item.rh-bi-hotspot { .rh-bi-val { color: var(--color-orange); } } .rh-bi-item.rh-bi-agent { color: var(--color-accent); .rh-bi-val { color: var(--color-accent); } } .rh-bi-sep { color: var(--border-default); font-size: 10px; } // ── File tree card ──────────────────────────────────────────────────────────── .rh-file-tree-card { border-bottom: 1px solid var(--border-subtle); } // ── Latest commit header ────────────────────────────────────────────────────── .ft-latest-commit { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 12px; background: var(--bg-subtle, var(--bg-card, var(--bg-surface))); border: 1px solid var(--border-subtle); border-radius: 6px 6px 0 0; border-bottom: none; font-size: 12px; } .ft-lc-left { display: flex; align-items: center; gap: 7px; min-width: 0; overflow: hidden; } .ft-lc-avatar { width: 20px; height: 20px; font-size: 10px; flex-shrink: 0; } .ft-lc-author { font-weight: 600; color: var(--text-primary); white-space: nowrap; } .ft-lc-author-link { display: flex; align-items: center; gap: 7px; flex-shrink: 0; text-decoration: none; color: inherit; } .ft-lc-message { color: var(--text-secondary); text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: clamp(180px, 40vw, 520px); &:hover { color: var(--color-accent); } } .ft-lc-right { display: flex; align-items: center; gap: 10px; flex-shrink: 0; } .ft-lc-sha { font-family: var(--font-mono); font-size: 11px; color: var(--color-accent); text-decoration: none; background: var(--bg-inset); padding: 1px 6px; border-radius: 3px; &:hover { text-decoration: underline; } } .ft-lc-ts { color: var(--text-muted); font-size: 11px; white-space: nowrap; } // ── File tree table ─────────────────────────────────────────────────────────── .file-tree-table { width: 100%; border-collapse: collapse; table-layout: fixed; border: 1px solid var(--border-subtle); border-top: none; border-radius: 0 0 6px 6px; overflow: hidden; } .file-tree-row { border-bottom: 1px solid var(--border-subtle); &:last-child { border-bottom: none; } &:hover { background: var(--bg-hover, #30363d); } td { padding: 6px 0 6px 12px; vertical-align: middle; } td:last-child { padding-right: 12px; } } .file-tree-cell-name { overflow: hidden; min-width: 140px; } .file-tree-link { display: inline-flex; align-items: center; gap: 7px; text-decoration: none; color: var(--text-primary); white-space: nowrap; overflow: hidden; &:hover { color: var(--color-accent); } } .file-tree-name { overflow: hidden; text-overflow: ellipsis; font-size: 13.5px; } .file-icon { display: inline-flex; align-items: center; flex-shrink: 0; } .file-icon-folder, .file-icon-code { color: var(--color-accent); } .file-icon-text, .file-icon-score, .file-icon-default { color: var(--text-muted); } .file-icon-midi, .file-icon-audio { color: var(--color-purple); } .file-icon-data { color: var(--color-warning); } .file-tree-cell-commit { width: 44%; overflow: hidden; padding-right: 8px; } .ft-row-commit-msg { color: var(--text-muted); font-size: 12px; text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline; &:hover { color: var(--color-accent); } } .file-tree-cell-provenance { width: 88px; white-space: nowrap; padding-right: 8px; } .ft-prov { display: inline-flex; align-items: center; gap: 3px; font-size: 11px; white-space: nowrap; } .ft-prov-agent, .ft-prov-human { display: inline-flex; align-items: center; gap: 3px; color: var(--text-muted); text-decoration: none; svg { flex-shrink: 0; } } .file-tree-cell-ts { width: 72px; color: var(--text-muted); font-size: 11px; white-space: nowrap; text-align: right; padding-right: 12px; } .ft-row-ts { color: var(--text-muted); } // ── Commit type micro-badges ────────────────────────────────────────────────── .ft-ct { display: inline-block; font-size: 9px; font-weight: 700; padding: 1px 4px; border-radius: 3px; margin-right: 5px; vertical-align: middle; text-transform: uppercase; letter-spacing: 0.04em; } .ft-ct-feat { background: #1a3a52; color: var(--color-accent); } .ft-ct-fix { background: #2a1f1f; color: var(--color-danger); } .ft-ct-test { background: #1a2e1a; color: var(--color-success); } .ft-ct-docs { background: var(--color-warning-bg); color: var(--color-warning); } .ft-ct-refactor { background: #2a1f3a; color: var(--color-purple); } .ft-ct-perf { background: #2a2010; color: var(--color-orange); } .ft-ct-chore, .ft-ct-build, .ft-ct-ci, .ft-ct-style { background: #1e1e2e; color: var(--text-secondary); } // ── Tree path pills ─────────────────────────────────────────────────────────── .tree-path-pills { display: flex; align-items: center; gap: 4px; margin-left: var(--space-2); font-size: 12px; } .tree-path-sep { color: var(--text-muted); } .tree-path-pill { display: inline-flex; align-items: center; gap: 3px; padding: 1px 6px; border-radius: 4px; text-decoration: none; color: var(--color-accent); &:hover { text-decoration: underline; } &--root { padding: 2px 5px; color: var(--text-muted); &:hover { color: var(--text-primary); } } &--current { color: var(--text-primary); font-weight: 600; pointer-events: none; } } // ── Activity sparkline ──────────────────────────────────────────────────────── .rh-pulse-card { background: transparent; border-bottom: 1px solid var(--border-subtle); display: flex; flex-direction: column; gap: var(--space-2); } .rh-pulse-row { display: flex; align-items: center; gap: var(--space-3); min-height: 28px; } .rh-pulse-label { font-size: 10px; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.06em; white-space: nowrap; width: 88px; flex-shrink: 0; } .rh-pulse-content { display: flex; align-items: center; gap: var(--space-2); flex: 1; min-width: 0; } .rh-pulse-langs { flex-direction: column; align-items: stretch; gap: 4px; } .rh-pulse-sub { font-size: 10px; color: var(--text-muted); white-space: nowrap; } .rh-sparkline { display: block; overflow: visible; height: 28px; width: 140px; flex-shrink: 0; } .rh-spark-bar { fill: color-mix(in srgb, var(--color-accent) 35%, transparent); transition: fill 0.15s; } .rh-spark-bar:hover, .rh-spark-peak { fill: var(--color-accent); } // ── Language breakdown ──────────────────────────────────────────────────────── .rh-lang-bar { display: flex; height: 4px; border-radius: 999px; overflow: hidden; width: 100%; background: var(--bg-sunken); } .rh-lang-seg { height: 100%; transition: width 0.3s; } .rh-lang-legend { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 5px; } .rh-lang-item { display: flex; align-items: center; gap: 4px; font-size: 11px; color: var(--text-muted); } .rh-lang-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; } .rh-lang-ext { color: var(--text-secondary); } .rh-lang-pct { color: var(--text-muted); } $lang-colors: ( 'py': #3776ab, 'js': #f7df1e, 'ts': #3178c6, 'tsx': #61dafb, 'jsx': #61dafb, 'go': #00add8, 'rs': #dea584, 'java': #ed8b00, 'rb': #cc342d, 'md': #083fa1, 'toml': #9c4221, 'json': #8bc34a, 'yaml': #cb171e, 'yml': #cb171e, 'html': #e44d26, 'css': #2965f1, 'scss': #cd6799, 'sh': #4eaa25, 'dockerfile': #2496ed, 'sql': #e38c00, 'mid': var(--color-accent), 'midi': var(--color-accent), 'mp3': #1db954, 'wav': #1db954, ); @each $ext, $color in $lang-colors { .rh-lang-seg.rh-lang-#{$ext} { background: #{$color}; } .rh-lang-dot.rh-lang-#{$ext} { background: #{$color}; } } // ── README viewer ───────────────────────────────────────────────────────────── .rh-readme { border-top: 1px solid var(--border-subtle); } .rh-readme-hd { display: flex; align-items: center; gap: var(--space-2); font-size: 12px; font-weight: 600; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.06em; } .rh-readme-body { font-size: 13.5px; line-height: 1.65; color: var(--text-primary); h1, h2, h3, h4, h5, h6 { position: relative; scroll-margin-top: calc(var(--sticky-offset) + var(--space-3)); .rh-md-anchor { opacity: 0; color: var(--text-muted); text-decoration: none; margin-left: 0.4em; font-weight: 400; font-size: 0.85em; transition: opacity 0.15s; } &:hover .rh-md-anchor { opacity: 1; } } h1, h2 { font-size: 15px; font-weight: 600; margin: 1.2em 0 0.4em; border-bottom: 1px solid var(--border-subtle); padding-bottom: 0.3em; } h3, h4 { font-size: 13px; font-weight: 600; margin: 1em 0 0.3em; } p { margin: 0.5em 0; } code { font-size: 12px; background: var(--bg-inset); padding: 1px 5px; border-radius: 3px; } pre { background: var(--bg-inset); padding: var(--space-3); border-radius: 6px; overflow-x: auto; margin: 0.8em 0; } pre code { background: none; padding: 0; } a { color: var(--color-accent); } ul, ol { padding-left: 1.4em; margin: 0.5em 0; } blockquote { border-left: 3px solid var(--border-subtle); margin: 0.5em 0; padding-left: 0.8em; color: var(--text-muted); } img { max-width: 100%; height: auto; } } .rh-readme-badges { display: flex; align-items: center; gap: 5px; margin-left: auto; } .rh-readme-badge { font-size: 10px; font-weight: 600; padding: 2px 6px; border-radius: 3px; text-decoration: none; white-space: nowrap; background: var(--bg-inset); color: var(--text-muted); } .rh-readme-badge--good { color: var(--color-success); } .rh-readme-badge--fair { color: var(--color-warning); } .rh-readme-badge--poor { color: var(--color-danger); } .rh-readme-badge--agent { color: var(--color-accent); } .rh-readme-agent-note { display: inline-flex; align-items: center; gap: 3px; font-size: 10px; color: var(--color-accent); font-weight: 400; text-transform: none; letter-spacing: 0; margin-left: 8px; } // ── About / sidebar pills ───────────────────────────────────────────────────── .rh-about-desc { font-size: 12.5px; color: var(--text-secondary); line-height: 1.5; margin-bottom: var(--space-2); } .rh-about-pills { display: flex; flex-direction: column; gap: 4px; } .rh-about-pill { display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--text-muted); a { color: var(--color-accent); text-decoration: none; &:hover { text-decoration: underline; } } } // ── Commit activity stream (sidebar) ───────────────────────────────────────── .rh-act-see-all { margin-left: auto; font-size: 10px; font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--color-accent); text-decoration: none; &:hover { text-decoration: underline; } } .rh-act-stream { display: flex; flex-direction: column; gap: 0; } .rh-act-row { padding: 7px 0; border-bottom: 1px solid var(--border-subtle); &:last-child { border-bottom: none; } } .rh-act-top { display: flex; align-items: baseline; gap: 5px; flex-wrap: nowrap; overflow: hidden; margin-bottom: 3px; } .rh-act-msg { font-size: 12px; color: var(--text-secondary); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; flex: 1; &:hover { color: var(--color-accent); } } .rh-act-sv { font-size: 9px; font-weight: 700; white-space: nowrap; flex-shrink: 0; padding: 1px 4px; border-radius: 3px; } .rh-act-sv--major { background: #2a1f1f; color: var(--color-danger); } .rh-act-sv--minor { background: var(--color-warning-bg); color: var(--color-warning); } .rh-act-sv--patch { background: #1a3a52; color: var(--color-accent); } .rh-act-breaking { font-size: 10px; color: var(--color-danger); flex-shrink: 0; } .rh-act-meta { display: flex; align-items: center; gap: 5px; font-size: 10.5px; color: var(--text-muted); } .rh-act-agent-icon { color: var(--color-accent); flex-shrink: 0; } .rh-act-author { white-space: nowrap; } .rh-act-author--agent { color: var(--color-accent); } .rh-act-ts { margin-left: auto; white-space: nowrap; } // ── Avatar ──────────────────────────────────────────────────────────────────── .rh-avatar { width: 26px; height: 26px; border-radius: 50%; flex-shrink: 0; font-size: 11px; font-weight: 700; display: flex; align-items: center; justify-content: center; color: var(--bg-base); } .rh-avatar-0 { background: #6366f1; } .rh-avatar-1 { background: #0ea5e9; } .rh-avatar-2 { background: #10b981; } .rh-avatar-3 { background: #f59e0b; } .rh-avatar-4 { background: var(--color-danger); } .rh-avatar-5 { background: var(--color-purple); } .rh-avatar-bot { background: var(--bg-sunken); color: var(--text-muted); border: 1px solid var(--border-subtle); } // ── Commit type + semver badges ─────────────────────────────────────────────── .rh-commit-type { display: inline-flex; align-items: center; gap: 3px; font-size: 10px; font-weight: 600; padding: 1px 6px; border-radius: 4px; font-family: var(--font-mono); text-transform: lowercase; white-space: nowrap; letter-spacing: 0.02em; } .rh-ct-feat { background: color-mix(in srgb, #22c55e 15%, transparent); color: #22c55e; } .rh-ct-fix { background: color-mix(in srgb, var(--color-danger) 15%, transparent); color: var(--color-danger); } .rh-ct-docs { background: color-mix(in srgb, var(--color-accent) 15%, transparent); color: var(--color-accent); } .rh-ct-test { background: color-mix(in srgb, var(--color-purple) 15%, transparent); color: var(--color-purple); } .rh-ct-refactor { background: color-mix(in srgb, #f59e0b 15%, transparent); color: #f59e0b; } .rh-ct-perf { background: color-mix(in srgb, #06b6d4 15%, transparent); color: #06b6d4; } .rh-ct-chore { background: color-mix(in srgb, #6b7280 20%, transparent); color: #9ca3af; } .rh-semver-badge { display: inline-flex; align-items: center; font-size: 9px; font-weight: 700; padding: 1px 5px; border-radius: 4px; text-transform: uppercase; letter-spacing: 0.06em; white-space: nowrap; } .rh-sv-patch { background: color-mix(in srgb, #10b981 12%, transparent); color: #10b981; border: 1px solid color-mix(in srgb, #10b981 30%, transparent); } .rh-sv-minor { background: color-mix(in srgb, var(--color-accent) 12%, transparent); color: var(--color-accent); border: 1px solid color-mix(in srgb, var(--color-accent) 30%, transparent); } .rh-sv-major { background: color-mix(in srgb, #f59e0b 12%, transparent); color: #f59e0b; border: 1px solid color-mix(in srgb, #f59e0b 30%, transparent); } .rh-sv-breaking { background: color-mix(in srgb, var(--color-danger) 15%, transparent); color: var(--color-danger); border: 1px solid color-mix(in srgb, var(--color-danger) 35%, transparent); } // ── Sidebar ─────────────────────────────────────────────────────────────────── .rh-sidebar { display: flex; flex-direction: column; overflow-y: auto; scrollbar-width: none; &::-webkit-scrollbar { display: none; } } .rh-sidebar-section { border-bottom: 1px solid var(--border-subtle); &:last-child { border-bottom: none; } } .rh-sidebar-hd { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--space-2); } .rh-domain-badge { display: inline-flex; align-items: center; gap: 3px; font-size: 10px; color: var(--color-accent); background: color-mix(in srgb, var(--color-accent) 10%, transparent); padding: 1px 6px; border-radius: 999px; } .rh-props-empty { font-size: 12px; color: var(--text-muted); margin: var(--space-2) 0 0; } .rh-dim-row { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--border-subtle); border-radius: var(--radius-base); overflow: hidden; margin-bottom: var(--space-2); } .rh-dim-item { padding: 6px 4px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 1px; border-right: 1px solid var(--border-subtle); &:last-child { border-right: none; } } .rh-dim-val { font-size: 13px; font-weight: var(--weight-semibold); color: var(--text-primary); line-height: 1.1; font-variant-numeric: tabular-nums; } .rh-dim-lbl { font-size: 9px; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.04em; } // ── Clone inputs (MCP variant overrides) ────────────────────────────────────── .clone-input-wrap--mcp { margin-top: 6px; } .clone-input--mcp { font-size: 10.5px; color: var(--color-accent); } // ── Pulse sidebar variant overrides ─────────────────────────────────────────── .rh-pulse-row--sidebar { display: flex; flex-direction: column; gap: 6px; .rh-pulse-content { flex: unset; width: 100%; } svg.rh-spark { width: 100%; height: 32px; } } .rh-pulse-row--top-gap { margin-top: 10px; } .rh-pulse-langs--sidebar { flex-wrap: wrap; gap: 6px 10px; } // ── Repo home health progress bar ───────────────────────────────────────────── .rh-health-bar-wrap { display: block; text-decoration: none; padding: 10px 0 6px; border-radius: 6px; transition: opacity 0.15s; &:hover { opacity: 0.85; } } .rh-health-bar-hd { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 6px; } .rh-health-bar-lbl { font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-muted); } .rh-health-bar-score { font-size: 11px; font-weight: 600; font-family: var(--font-mono); } .rh-health-bar--good .rh-health-bar-score { color: var(--color-success); } .rh-health-bar--fair .rh-health-bar-score { color: var(--color-warning); } .rh-health-bar--poor .rh-health-bar-score { color: var(--color-danger); } .rh-health-bar-track { width: 100%; height: 5px; background: var(--bg-inset); border-radius: 3px; overflow: hidden; } .rh-health-bar-fill { height: 100%; border-radius: 3px; transition: width 0.4s ease; } .rh-health-bar--good .rh-health-bar-fill { background: var(--color-success); } .rh-health-bar--fair .rh-health-bar-fill { background: var(--color-warning); } .rh-health-bar--poor .rh-health-bar-fill { background: var(--color-danger); } // ── Repo home health mini-gauge ─────────────────────────────────────────────── .rh-health-mini { display: flex; align-items: center; gap: 0.6rem; margin-top: 0.75rem; padding: 0.6rem 0.75rem; background: var(--bg-overlay); border: 1px solid var(--border-default); border-radius: 6px; text-decoration: none; transition: border-color 0.15s, background 0.15s; &:hover { border-color: var(--color-accent); background: var(--bg-hover); } } .rh-health-svg { width: 40px; height: 40px; flex-shrink: 0; } .rh-health-track { fill: none; stroke: var(--bg-surface); stroke-width: 6; } .rh-health-fill { fill: none; stroke-width: 6; stroke-linecap: round; &--excellent { stroke: var(--color-success); filter: drop-shadow(0 0 4px color-mix(in srgb, var(--color-success) 50%, transparent)); } &--good { stroke: var(--color-success); opacity: 0.75; } &--fair { stroke: var(--color-warning); } &--poor { stroke: var(--color-danger); } &--critical { stroke: var(--color-danger-critical); filter: drop-shadow(0 0 4px color-mix(in srgb, var(--color-danger-critical) 50%, transparent)); } } .rh-health-num { font-family: var(--font-mono); font-size: 0.9rem; font-weight: 700; fill: var(--text-primary); } .rh-health-meta { display: flex; flex-direction: column; gap: 1px; } .rh-health-score-lbl { font-family: var(--font-mono); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.04em; &--excellent { color: var(--color-success); } &--good { color: var(--color-success); opacity: 0.75; } &--fair { color: var(--color-warning); } &--poor { color: var(--color-danger); } &--critical { color: var(--color-danger-critical); } } .rh-health-sub-lbl { font-size: 0.65rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.06em; }