Buttons
Canonical primary is a pink-ish gradient (#E8564A→#FF6B6B) with a resting "heart" shadow and
var(--radius-sm). The profile override re-skins ~150 buttons app-wide (darker/flatter,
6px radius, no resting shadow). Marketplace/hobbies/classic/dev each reinvent the set.
theme.css .btn-*referenceFull canonical set: btn-primary · btn-outline (secondary) · btn-danger/btn-danger-solid · btn-ghost · btn-success · btn-info · btn-sm
.pf .btn-primary~150 sitesdarker gradient (→#D4493F) · 6px radius · no resting heart-shadow · 8×16 padding · .85rem
maps to: every variant already exists in canonical (Primary→btn-primary, Outline→btn-outline, Danger→btn-danger-solid, Ghost→btn-ghost, Success→btn-success, Small→btn-sm). Only the look differs.
button.primary/.danger4 sitesflat-accent mini pills · bare class names (collision-prone) · danger uses hardcoded rgba(239,68,68) (won't theme-flip)
maps to: Install→btn-primary btn-sm · Remove→btn-danger-solid btn-sm (same as how the knowledge tab already migrated)
.mk-btn*~7 sitesgradient 2nd stop #E8564A (not #FF6B6B) · 10px radius · no resting shadow · opacity-fade hover
maps to: Primary→btn-primary · Secondary→btn-outline · Small→btn-sm
.hb-btn*~10 sitesnear-twin of mk-btn · danger hardcodes #ef4444/rgba(239,68,68) (won't theme-flip)
maps to: Primary→btn-primary · Secondary→btn-outline · Danger→btn-danger · Small→btn-sm
.cl-*-btn~4 sitesheavier 700/.92rem · 10px radius · has a .loading spinner state · register hardcodes #22c55e/#16a34a
maps to: Save→btn-primary · Register→btn-success · Copy→btn-primary. ⚠ the .loading spinner state has NO canonical equivalent → pick "Add / merge into canonical" to keep it.
.dv-*-btn2 sites.dv-copy-btn is absolute-positioned; uses the --love gradient palette deliberately)
uses the separate --love1/2/3 brand palette · .copied state hardcodes #22c55e (won't theme-flip)
maps to: Upload→btn-primary · Copy→btn-ghost/CopyButton. The --love palette is a deliberate dev-portal identity — "Leave separate" is reasonable here.
.kpkg-btn*DEAD · 0 sitesorphaned — nothing renders these (knowledge tab already uses canonical btn-outline/btn-danger-solid). Safe to delete.
maps to: Primary→btn-outline, Danger→btn-danger-solid (already what the knowledge tab uses). But if you like this flat-indigo look, "Add to canonical" keeps it.
Inputs & form fields
Canonical .input-field is 11×14 padding, 1.5px border, .94rem, var(--radius-sm), with a
3px accent focus ring. Profile/marketplace/hobbies each redefine size/border/focus. Labels diverge too
(canonical is UPPERCASE 600; clones are sentence-case 500).
.input-field + .form-labelreference.pf .input-field66 sites10×14 padding · 10px radius · .85rem · var(--bg-surface) bg · focus ring hardcoded rgba(232,86,74,.1) (won't theme-flip)
.mk-form-*~15 sites1px border · 10px radius · hardcoded system-ui font (not var(--font)) · NO focus ring · sentence-case label
.hb-form-*~14 sitestoken-driven (theme-flips) · 1px border · NO focus ring · sentence-case label · has a hint class
.pf-inputORPHAN · no rulelatent bug: email-tab emits class="pf-input" but NO such rule exists → renders unstyled. Fix → input-field.
.adm-inputadmin — separate8×12 · 6px radius · indigo focus ring rgba(99,102,241,.15) (different hue, won't theme-flip). Stays admin; consolidate within admin only.
Stat cards (metric tiles)
Canonical .stat-card = centered, neutral bold value over an UPPERCASE muted label.
9 live clones diverge on size, value color (several tint the number with the accent), label casing,
and even value/label order (admin + portal render label-first).
.stat-cardreferencevalue-first · 1.35rem/800 neutral · .66rem UPPERCASE label · var(--radius-sm)
.mk-stat-*2 sitesvalue tinted var(--accent) · 1.5rem/700 · 10px radius · sentence-case label · label fallback #6b6b8a
the accent-tinted value is a variant canonical lacks → "Add / merge into canonical" would add an optional .stat-card-value.accent tone everyone could use.
.hb-stat-*3 sitesnear-twin of mk-stat · accent-tinted value · token-driven (theme-flips)
.dv-stat4 sitesvalue var(--love1) brand accent · 1.5rem/700 · flex sizing · 12px radius
.stat-value/.stat-label~6 sitesreuses .stat-card box but reinvents children · value color via INLINE style (theme-bypass)
.wl-stat4 sitesmonospace value (numeric alignment) · success/danger tints · label fallback #6B7280
monospace value + success/danger tints are variants canonical lacks → "Add / merge into canonical" would add .stat-card-value.mono / .success / .danger modifiers.
.pf-agd-stat-card~10 sitestwo aliased prefixes (.agd-/.pf-agd-) · 1.5rem/600 · light-only fallbacks #FFFFFF/#E5E7EB/#1A1A2E
.user-stat1 siteLABEL-FIRST order · closest to canonical tokens · 1.05rem/700 smaller value
.adm-card/.adm-statadmin — separateMembers
LABEL-FIRST · rich 8-tone color system · the de-facto shared component (~20 tabs). Stays admin; consolidate within admin.
.adm-agi-stat-*admin — separatea SECOND admin stat tile (didn't reuse StatsGrid) — fold into the one admin stat component during admin consolidation
.stat-card .num/.labelDEAD · 0 sitesorphaned hero-strip CSS (heart/blue/purple/mint) — all hardcoded hex, nothing renders it. Safe to delete.