{
  "sourceCommit": "62849086007d49596ed2cd0733d3ee12f879969b",
  "completedAt": "2026-10-26T13:49:41.014650+00:00",
  "command": "npx eslint src --format json",
  "errors": 0,
  "warnings": 402,
  "files": 1425,
  "rules": {
    "shadcn/no-arbitrary-values": {
      "warnings": 333,
      "files": 161
    },
    "shadcn/no-inline-styles": {
      "warnings": 51,
      "files": 32
    },
    "shadcn/no-raw-colors": {
      "warnings": 18,
      "files": 4
    }
  },
  "note": "Exact merged-main machine ESLint audit. App/library build succeeds. Full npm lint/typecheck passes on the final6a5d1d7 descendant with the same twelve class-only product changes.",
  "diagnostics": [
    {
      "file": "src/components/conversation-events/chat/event-message-components/corrective-nudge-message.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueWithScale",
      "message": "\"mt-[5px]\" hardcodes an off-token value. Use \"mt-1.25\" instead (same value, on the scale).",
      "line": 19,
      "column": 19
    },
    {
      "file": "src/components/conversation-events/chat/event-message-components/corrective-nudge-message.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 22,
      "column": 23
    },
    {
      "file": "src/components/conversation-events/chat/task-tracking/task-item.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-primary, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 21,
      "column": 38
    },
    {
      "file": "src/components/conversation-events/chat/task-tracking/task-item.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-primary, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 23,
      "column": 47
    },
    {
      "file": "src/components/conversation-events/chat/task-tracking/task-item.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-primary, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 27,
      "column": 38
    },
    {
      "file": "src/components/conversation-events/chat/task-tracking/task-item.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 46,
      "column": 38
    },
    {
      "file": "src/components/conversation-events/chat/task-tracking/task-list-section.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 20,
      "column": 36
    },
    {
      "file": "src/components/conversation-events/chat/task-tracking/task-list-section.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"tracking-[0.11px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 20,
      "column": 36
    },
    {
      "file": "src/components/features/automations/add-automation-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"min-w-[10rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 94,
      "column": 19
    },
    {
      "file": "src/components/features/automations/add-automation-menu.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "dynamicStyle",
      "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
      "line": 145,
      "column": 25
    },
    {
      "file": "src/components/features/automations/automation-list-row.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"grid-cols-[auto_minmax(0,1fr)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 146,
      "column": 26
    },
    {
      "file": "src/components/features/automations/automation-view-toggle.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"min-w-[10rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 108,
      "column": 60
    },
    {
      "file": "src/components/features/automations/automation-view-toggle.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "dynamicStyle",
      "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
      "line": 155,
      "column": 25
    },
    {
      "file": "src/components/features/automations/built-in-integration-choice-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"w-[92vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 105,
      "column": 19
    },
    {
      "file": "src/components/features/automations/create-instructions.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 21,
      "column": 9
    },
    {
      "file": "src/components/features/automations/dashboard/automations-dashboard-controls.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 122,
      "column": 27
    },
    {
      "file": "src/components/features/automations/dashboard/automations-dashboard-controls.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"min-w-[16rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 140,
      "column": 21
    },
    {
      "file": "src/components/features/automations/detail/active-status-badge.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 48,
      "column": 19
    },
    {
      "file": "src/components/features/automations/detail/run-logs-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"sm:grid-cols-[5rem_minmax(0,1fr)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 122,
      "column": 22
    },
    {
      "file": "src/components/features/automations/detail/run-logs-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 127,
      "column": 27
    },
    {
      "file": "src/components/features/automations/detail/run-logs-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"sm:grid-cols-[5rem_minmax(0,1fr)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 132,
      "column": 22
    },
    {
      "file": "src/components/features/automations/detail/run-logs-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 156,
      "column": 27
    },
    {
      "file": "src/components/features/automations/detail/run-logs-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"sm:grid-cols-[5rem_minmax(0,1fr)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 164,
      "column": 22
    },
    {
      "file": "src/components/features/automations/detail/run-logs-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"border-[var(--oh-primary)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 256,
      "column": 26
    },
    {
      "file": "src/components/features/automations/detail/run-logs-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 276,
      "column": 19
    },
    {
      "file": "src/components/features/automations/detail/run-logs-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"min-h-[12rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 334,
      "column": 23
    },
    {
      "file": "src/components/features/automations/detail/run-phase.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-w-[28rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 76,
      "column": 20
    },
    {
      "file": "src/components/features/automations/detail/run-phase.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-w-[12rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 76,
      "column": 38
    },
    {
      "file": "src/components/features/automations/detail/run-status-badge.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 184,
      "column": 13
    },
    {
      "file": "src/components/features/automations/detail/script-section.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 104,
      "column": 37
    },
    {
      "file": "src/components/features/automations/import-automation-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[85vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 171,
      "column": 19
    },
    {
      "file": "src/components/features/automations/import-automation-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"w-[min(36rem,calc(100vw-2rem))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 171,
      "column": 19
    },
    {
      "file": "src/components/features/automations/kebab-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"min-w-[10rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 99,
      "column": 60
    },
    {
      "file": "src/components/features/automations/kebab-menu.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "dynamicStyle",
      "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
      "line": 137,
      "column": 25
    },
    {
      "file": "src/components/features/automations/recommended-automations-rail.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"from-[var(--oh-scroll-fade-from,var(--oh-color-base))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 235,
      "column": 13
    },
    {
      "file": "src/components/features/automations/recommended-automations-rail.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"from-[var(--oh-scroll-fade-from,var(--oh-color-base))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 246,
      "column": 13
    },
    {
      "file": "src/components/features/backends/backend-form-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"transition-[grid-template-rows]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 1062,
      "column": 19
    },
    {
      "file": "src/components/features/backends/backend-form-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"grid-rows-[1fr]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 1063,
      "column": 34
    },
    {
      "file": "src/components/features/backends/backend-form-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"grid-rows-[0fr]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 1063,
      "column": 54
    },
    {
      "file": "src/components/features/backends/backend-form-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"transition-[grid-template-rows]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 1294,
      "column": 11
    },
    {
      "file": "src/components/features/backends/backend-form-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"grid-rows-[1fr]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 1295,
      "column": 24
    },
    {
      "file": "src/components/features/backends/backend-form-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"grid-rows-[0fr]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 1295,
      "column": 44
    },
    {
      "file": "src/components/features/backends/backend-form-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"min-h-[13.5rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 1411,
      "column": 11
    },
    {
      "file": "src/components/features/backends/backend-form-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"before:bg-[radial-gradient(75%_75%_at_50%_50%,rgba(255,255,255,0.1)_0%,rgba(255,255,255,0)_70%)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 1415,
      "column": 11
    },
    {
      "file": "src/components/features/backends/backend-form-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"align-[-0.125em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 1659,
      "column": 31
    },
    {
      "file": "src/components/features/backends/backend-form-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[92vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 1741,
      "column": 13
    },
    {
      "file": "src/components/features/backends/backend-form-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[92dvh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 1769,
      "column": 11
    },
    {
      "file": "src/components/features/backends/backend-row.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 122,
      "column": 25
    },
    {
      "file": "src/components/features/backends/backend-version.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 34,
      "column": 17
    },
    {
      "file": "src/components/features/backends/environment-switch-overlay.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"z-[2147483646]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 156,
      "column": 17
    },
    {
      "file": "src/components/features/backends/manage-backends-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 171,
      "column": 41
    },
    {
      "file": "src/components/features/backends/manage-backends-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[70vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 171,
      "column": 54
    },
    {
      "file": "src/components/features/backends/managed-agents/digitalocean-connect-panel.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"min-h-[13.5rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 40,
      "column": 3
    },
    {
      "file": "src/components/features/backends/managed-agents/digitalocean-connect-panel.tsx",
      "ruleId": "shadcn/no-raw-colors",
      "severity": 1,
      "messageId": "paletteClassNear",
      "message": "\"focus-visible:outline-blue-300\" uses the raw Tailwind palette. Nearest theme tokens: focus-visible:outline-markdown-alert-note, focus-visible:outline-cool-grey-300. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
      "line": 42,
      "column": 3
    },
    {
      "file": "src/components/features/backends/managed-agents/digitalocean-connect-panel.tsx",
      "ruleId": "shadcn/no-raw-colors",
      "severity": 1,
      "messageId": "paletteClassNear",
      "message": "\"focus-visible:outline-blue-300\" uses the raw Tailwind palette. Nearest theme tokens: focus-visible:outline-markdown-alert-note, focus-visible:outline-cool-grey-300. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
      "line": 65,
      "column": 19
    },
    {
      "file": "src/components/features/backends/managed-agents/digitalocean-connect-panel.tsx",
      "ruleId": "shadcn/no-raw-colors",
      "severity": 1,
      "messageId": "paletteClassNear",
      "message": "\"focus-visible:outline-blue-300\" uses the raw Tailwind palette. Nearest theme tokens: focus-visible:outline-markdown-alert-note, focus-visible:outline-cool-grey-300. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
      "line": 159,
      "column": 21
    },
    {
      "file": "src/components/features/backends/managed-agents/digitalocean-connect-panel.tsx",
      "ruleId": "shadcn/no-raw-colors",
      "severity": 1,
      "messageId": "paletteClassNear",
      "message": "\"focus-visible:outline-blue-300\" uses the raw Tailwind palette. Nearest theme tokens: focus-visible:outline-markdown-alert-note, focus-visible:outline-cool-grey-300. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
      "line": 334,
      "column": 13
    },
    {
      "file": "src/components/features/backends/managed-agents/managed-agents-session-row.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 90,
      "column": 29
    },
    {
      "file": "src/components/features/backends/managed-agents/managed-agents-session-row.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 111,
      "column": 31
    },
    {
      "file": "src/components/features/canvas-extensions/canvas-extension-card.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"grid-cols-[auto_1fr]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 85,
      "column": 21
    },
    {
      "file": "src/components/features/chat/btw-messages.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[40vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 22,
      "column": 17
    },
    {
      "file": "src/components/features/chat/change-agent-button.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
      "line": 168,
      "column": 11
    },
    {
      "file": "src/components/features/chat/change-agent-button.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorFar",
      "message": "\"border-[#597FF4]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
      "line": 172,
      "column": 15
    },
    {
      "file": "src/components/features/chat/change-agent-button.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"bg-[#4A67BD]\" hardcodes a color. Nearest theme tokens: bg-cool-grey-600. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 172,
      "column": 15
    },
    {
      "file": "src/components/features/chat/change-agent-button.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorFar",
      "message": "\"hover:bg-[#597FF4]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
      "line": 178,
      "column": 13
    },
    {
      "file": "src/components/features/chat/change-agent-button.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 188,
      "column": 38
    },
    {
      "file": "src/components/features/chat/chat-markdown-path-code.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"px-[0.4em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 96,
      "column": 9
    },
    {
      "file": "src/components/features/chat/chat-markdown-path-code.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"py-[0.2em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 96,
      "column": 9
    },
    {
      "file": "src/components/features/chat/chat-message.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 133,
      "column": 17
    },
    {
      "file": "src/components/features/chat/chat-message.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorFar",
      "message": "\"border-[#597ff4]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
      "line": 162,
      "column": 11
    },
    {
      "file": "src/components/features/chat/chat-message.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"z-[1]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 239,
      "column": 21
    },
    {
      "file": "src/components/features/chat/chat-send-button.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 41,
      "column": 21
    },
    {
      "file": "src/components/features/chat/chat-status-indicator.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
      "line": 18,
      "column": 9
    },
    {
      "file": "src/components/features/chat/chat-status-indicator.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"animate-[pulse_1.2s_ease-in-out_infinite]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 25,
      "column": 21
    },
    {
      "file": "src/components/features/chat/chat-status-indicator.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 41,
      "column": 21
    },
    {
      "file": "src/components/features/chat/chat-suggestions.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[32px]\" hardcodes an off-token value. Nearest on the scale: text-3xl (30px), text-4xl (36px).",
      "line": 28,
      "column": 29
    },
    {
      "file": "src/components/features/chat/components/chat-input-actions.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"top-[-4px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 383,
      "column": 17
    },
    {
      "file": "src/components/features/chat/components/chat-input-actions.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"top-[-4px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 449,
      "column": 15
    },
    {
      "file": "src/components/features/chat/components/chat-input-actions.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 463,
      "column": 25
    },
    {
      "file": "src/components/features/chat/components/chat-input-actions.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "dynamicStyle",
      "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
      "line": 568,
      "column": 31
    },
    {
      "file": "src/components/features/chat/components/chat-input-container.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"rounded-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-2xl (16px), rounded-xl (12px).",
      "line": 73,
      "column": 9
    },
    {
      "file": "src/components/features/chat/components/chat-input-container.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorFar",
      "message": "\"border-[#597FF4]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
      "line": 74,
      "column": 40
    },
    {
      "file": "src/components/features/chat/components/chat-input-llm-profile-picker.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 79,
      "column": 40
    },
    {
      "file": "src/components/features/chat/components/chat-input-llm-profile-picker.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets maxHeight. Style through classes; use CSS custom properties for dynamic values.",
      "line": 257,
      "column": 31
    },
    {
      "file": "src/components/features/chat/components/chat-input-llm-profile-picker.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"z-[60]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 261,
      "column": 21
    },
    {
      "file": "src/components/features/chat/components/chat-input-llm-profile-picker.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 261,
      "column": 21
    },
    {
      "file": "src/components/features/chat/components/chat-input-model.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 77,
      "column": 40
    },
    {
      "file": "src/components/features/chat/components/chat-input-model.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"z-[60]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 197,
      "column": 21
    },
    {
      "file": "src/components/features/chat/components/chat-input-model.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 197,
      "column": 21
    },
    {
      "file": "src/components/features/chat/components/chat-input-profile-picker.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 64,
      "column": 40
    },
    {
      "file": "src/components/features/chat/components/chat-input-profile-picker.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 109,
      "column": 42
    },
    {
      "file": "src/components/features/chat/components/chat-input-profile-picker.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"z-[60]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 187,
      "column": 21
    },
    {
      "file": "src/components/features/chat/components/chat-input-profile-picker.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 187,
      "column": 21
    },
    {
      "file": "src/components/features/chat/components/context-window-meter.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"z-[60]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 104,
      "column": 13
    },
    {
      "file": "src/components/features/chat/components/context-window-meter.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets borderColor. Style through classes; use CSS custom properties for dynamic values.",
      "line": 122,
      "column": 37
    },
    {
      "file": "src/components/features/chat/components/context-window-meter.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
      "line": 135,
      "column": 33
    },
    {
      "file": "src/components/features/chat/components/context-window-ring.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets stroke. Style through classes; use CSS custom properties for dynamic values.",
      "line": 62,
      "column": 26
    },
    {
      "file": "src/components/features/chat/components/context-window-ring.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"transition-[stroke-dashoffset,stroke]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 77,
      "column": 19
    },
    {
      "file": "src/components/features/chat/drag-over.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"rotate-[-27deg]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 16,
      "column": 23
    },
    {
      "file": "src/components/features/chat/drag-over.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"top-[-40px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 16,
      "column": 23
    },
    {
      "file": "src/components/features/chat/drag-over.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"left-[-10px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 16,
      "column": 23
    },
    {
      "file": "src/components/features/chat/drag-over.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"top-[-16px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 21,
      "column": 23
    },
    {
      "file": "src/components/features/chat/drag-over.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"left-[-20px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 21,
      "column": 23
    },
    {
      "file": "src/components/features/chat/git-control-bar-branch-button.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
      "line": 49,
      "column": 9
    },
    {
      "file": "src/components/features/chat/git-control-bar-branch-button.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"border-[rgba(71,74,84,0.50)]\" hardcodes a color. Nearest theme tokens: border-border, border-border-subtle. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 52,
      "column": 13
    },
    {
      "file": "src/components/features/chat/git-control-bar-repo-button.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
      "line": 57,
      "column": 11
    },
    {
      "file": "src/components/features/chat/git-control-bar-repo-button.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
      "line": 84,
      "column": 9
    },
    {
      "file": "src/components/features/chat/git-control-bar-repo-button.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"border-[rgba(71,74,84,0.50)]\" hardcodes a color. Nearest theme tokens: border-border, border-border-subtle. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 85,
      "column": 9
    },
    {
      "file": "src/components/features/chat/plan-preview.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorFar",
      "message": "\"border-[#597FF4]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
      "line": 70,
      "column": 20
    },
    {
      "file": "src/components/features/chat/plan-preview.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 74,
      "column": 36
    },
    {
      "file": "src/components/features/chat/plan-preview.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"tracking-[0.11px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 74,
      "column": 36
    },
    {
      "file": "src/components/features/chat/plan-preview.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 84,
      "column": 38
    },
    {
      "file": "src/components/features/chat/plan-preview.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"tracking-[0.11px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 84,
      "column": 38
    },
    {
      "file": "src/components/features/chat/plan-preview.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[15px]\" hardcodes an off-token value. Nearest on the scale: text-sm (14px), text-base (16px).",
      "line": 94,
      "column": 19
    },
    {
      "file": "src/components/features/chat/plan-preview.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"text-[#4a67bd]\" hardcodes a color. Nearest theme tokens: text-cool-grey-600. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 108,
      "column": 27
    },
    {
      "file": "src/components/features/chat/task-tracking/task-item.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-primary, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 25,
      "column": 38
    },
    {
      "file": "src/components/features/chat/task-tracking/task-item.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-primary, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 27,
      "column": 47
    },
    {
      "file": "src/components/features/chat/task-tracking/task-item.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-primary, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 31,
      "column": 38
    },
    {
      "file": "src/components/features/chat/task-tracking/task-item.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 50,
      "column": 38
    },
    {
      "file": "src/components/features/chat/tool-visualizers/primitives/code-block.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "dynamicStyle",
      "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
      "line": 55,
      "column": 14
    },
    {
      "file": "src/components/features/chat/tool-visualizers/primitives/key-value-grid.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"grid-cols-[auto_1fr]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 14,
      "column": 20
    },
    {
      "file": "src/components/features/chat/tool-visualizers/primitives/markdown-file-preview.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"[--oh-scroll-fade-from:var(--oh-surface)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 171,
      "column": 19
    },
    {
      "file": "src/components/features/chat/tool-visualizers/primitives/markdown-file-preview.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 186,
      "column": 38
    },
    {
      "file": "src/components/features/chat/tool-visualizers/primitives/markdown-file-preview.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"tracking-[0.11px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 186,
      "column": 38
    },
    {
      "file": "src/components/features/chat/tool-visualizers/primitives/markdown-file-preview.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 197,
      "column": 40
    },
    {
      "file": "src/components/features/chat/tool-visualizers/primitives/markdown-file-preview.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"tracking-[0.11px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 197,
      "column": 40
    },
    {
      "file": "src/components/features/chat/uploaded-file.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[9px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 43,
      "column": 27
    },
    {
      "file": "src/components/features/chat/user-message-body.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 81,
      "column": 11
    },
    {
      "file": "src/components/features/chat/workspace-mode-selector.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
      "line": 75,
      "column": 11
    },
    {
      "file": "src/components/features/chat/workspace-mode-selector.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"border-[rgba(71,74,84,0.50)]\" hardcodes a color. Nearest theme tokens: border-border, border-border-subtle. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 76,
      "column": 11
    },
    {
      "file": "src/components/features/context-menu/context-menu-icon-text-with-description.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 37,
      "column": 34
    },
    {
      "file": "src/components/features/controls/agent-status.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 150,
      "column": 19
    },
    {
      "file": "src/components/features/controls/agent-status.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
      "line": 157,
      "column": 11
    },
    {
      "file": "src/components/features/controls/server-status.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[13px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 57,
      "column": 25
    },
    {
      "file": "src/components/features/controls/tools-context-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"left-[-16px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 96,
      "column": 17
    },
    {
      "file": "src/components/features/controls/tools-context-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"top-[-4px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 117,
      "column": 15
    },
    {
      "file": "src/components/features/controls/tools-context-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 129,
      "column": 25
    },
    {
      "file": "src/components/features/controls/tools-context-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"top-[-6px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 159,
      "column": 17
    },
    {
      "file": "src/components/features/controls/tools-context-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"top-[-4px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 190,
      "column": 15
    },
    {
      "file": "src/components/features/controls/tools-context-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"stroke-[1.75]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 215,
      "column": 27
    },
    {
      "file": "src/components/features/conversation-panel/advanced-conversation-options-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"w-[calc(100%+3rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 131,
      "column": 24
    },
    {
      "file": "src/components/features/conversation-panel/advanced-conversation-options-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 150,
      "column": 23
    },
    {
      "file": "src/components/features/conversation-panel/budget-progress-bar.tsx",
      "ruleId": "shadcn/no-raw-colors",
      "severity": 1,
      "messageId": "paletteClassNear",
      "message": "\"bg-red-500\" uses the raw Tailwind palette. Nearest theme tokens: bg-status-error, bg-danger. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
      "line": 20,
      "column": 25
    },
    {
      "file": "src/components/features/conversation-panel/budget-progress-bar.tsx",
      "ruleId": "shadcn/no-raw-colors",
      "severity": 1,
      "messageId": "paletteClassFar",
      "message": "\"bg-blue-500\" uses the raw Tailwind palette and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css for a new color.",
      "line": 20,
      "column": 40
    },
    {
      "file": "src/components/features/conversation-panel/budget-progress-bar.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
      "line": 24,
      "column": 18
    },
    {
      "file": "src/components/features/conversation-panel/cloud-new-conversation-menu.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
      "line": 230,
      "column": 21
    },
    {
      "file": "src/components/features/conversation-panel/cloud-new-conversation-menu.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
      "line": 231,
      "column": 16
    },
    {
      "file": "src/components/features/conversation-panel/cloud-new-conversation-menu.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
      "line": 232,
      "column": 17
    },
    {
      "file": "src/components/features/conversation-panel/cloud-new-conversation-menu.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
      "line": 233,
      "column": 18
    },
    {
      "file": "src/components/features/conversation-panel/cloud-new-conversation-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[40vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 319,
      "column": 15
    },
    {
      "file": "src/components/features/conversation-panel/cloud-new-conversation-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"text-[#F87171]\" hardcodes a color. Nearest theme tokens: text-status-error, text-danger. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 333,
      "column": 27
    },
    {
      "file": "src/components/features/conversation-panel/conversation-active-tag-filters.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 50,
      "column": 5
    },
    {
      "file": "src/components/features/conversation-panel/conversation-active-tag-filters.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 96,
      "column": 19
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-card-context-menu.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "dynamicStyle",
      "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
      "line": 94,
      "column": 27
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-card-context-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-w-[min(280px,100vw-16px)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 101,
      "column": 13
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-card-context-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"z-[200]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 102,
      "column": 13
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-card-context-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"stroke-[1.75]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 160,
      "column": 31
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-card-preview.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-w-[min(280px,90vw)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 147,
      "column": 17
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-card.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"min-w-[3.75rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 306,
      "column": 17
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-tag-chips.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"z-[-1]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 245,
      "column": 19
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-tag-chips.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"z-[9999]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 313,
      "column": 15
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-tag-chips.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"min-w-[10rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 313,
      "column": 15
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-tag-chips.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-w-[16rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 313,
      "column": 15
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-tag-chips.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
      "line": 318,
      "column": 25
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-tag-chips.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
      "line": 319,
      "column": 20
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-tag-chips.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
      "line": 320,
      "column": 21
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-tag-chips.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"grid-cols-[minmax(0,auto)_minmax(0,1fr)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 333,
      "column": 29
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-tag-chips.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 333,
      "column": 29
    },
    {
      "file": "src/components/features/conversation-panel/conversation-layouts-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 258,
      "column": 27
    },
    {
      "file": "src/components/features/conversation-panel/conversation-panel-wrapper.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"z-[100]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 23,
      "column": 9
    },
    {
      "file": "src/components/features/conversation-panel/conversation-panel.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"w-[calc(100%+0.625rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 1126,
      "column": 13
    },
    {
      "file": "src/components/features/conversation-panel/exit-conversation-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorFar",
      "message": "\"bg-[#C63143]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
      "line": 34,
      "column": 23
    },
    {
      "file": "src/components/features/conversation-panel/hook-event-item.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 24,
      "column": 3
    },
    {
      "file": "src/components/features/conversation-panel/hook-matcher-content.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 12,
      "column": 3
    },
    {
      "file": "src/components/features/conversation-panel/hooks-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 50,
      "column": 11
    },
    {
      "file": "src/components/features/conversation-panel/hooks-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 62,
      "column": 24
    },
    {
      "file": "src/components/features/conversation-panel/local-new-conversation-menu.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
      "line": 156,
      "column": 21
    },
    {
      "file": "src/components/features/conversation-panel/local-new-conversation-menu.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
      "line": 157,
      "column": 16
    },
    {
      "file": "src/components/features/conversation-panel/local-new-conversation-menu.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
      "line": 158,
      "column": 17
    },
    {
      "file": "src/components/features/conversation-panel/local-new-conversation-menu.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
      "line": 159,
      "column": 18
    },
    {
      "file": "src/components/features/conversation-panel/local-new-conversation-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"text-[var(--oh-text-secondary)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 216,
      "column": 25
    },
    {
      "file": "src/components/features/conversation-panel/local-new-conversation-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[40vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 223,
      "column": 15
    },
    {
      "file": "src/components/features/conversation-panel/local-new-conversation-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 235,
      "column": 33
    },
    {
      "file": "src/components/features/conversation-panel/menu-heading.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 6,
      "column": 3
    },
    {
      "file": "src/components/features/conversation-panel/menu-row.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 71,
      "column": 27
    },
    {
      "file": "src/components/features/conversation-panel/plugins-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 40,
      "column": 11
    },
    {
      "file": "src/components/features/conversation-panel/skill-item.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 20,
      "column": 3
    },
    {
      "file": "src/components/features/conversation-panel/skill-triggers.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 25,
      "column": 23
    },
    {
      "file": "src/components/features/conversation-panel/skills-modal-section.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"tracking-[0.01em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 19,
      "column": 38
    },
    {
      "file": "src/components/features/conversation-panel/skills-modal-section.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 22,
      "column": 27
    },
    {
      "file": "src/components/features/conversation-panel/skills-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 79,
      "column": 11
    },
    {
      "file": "src/components/features/conversation-panel/skills-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 91,
      "column": 24
    },
    {
      "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
      "ruleId": "shadcn/no-raw-colors",
      "severity": 1,
      "messageId": "paletteClassNear",
      "message": "\"bg-green-500/10\" uses the raw Tailwind palette. Nearest theme tokens: bg-status-success/10. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
      "line": 28,
      "column": 16
    },
    {
      "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
      "ruleId": "shadcn/no-raw-colors",
      "severity": 1,
      "messageId": "paletteClassNear",
      "message": "\"text-green-400\" uses the raw Tailwind palette. Nearest theme tokens: text-markdown-alert-tip, text-status-success. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
      "line": 28,
      "column": 16
    },
    {
      "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
      "ruleId": "shadcn/no-raw-colors",
      "severity": 1,
      "messageId": "paletteClassNear",
      "message": "\"border-green-500/20\" uses the raw Tailwind palette. Nearest theme tokens: border-status-success/20. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
      "line": 28,
      "column": 16
    },
    {
      "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
      "ruleId": "shadcn/no-raw-colors",
      "severity": 1,
      "messageId": "paletteClassNear",
      "message": "\"bg-red-500/10\" uses the raw Tailwind palette. Nearest theme tokens: bg-status-error/10, bg-danger/10. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
      "line": 30,
      "column": 16
    },
    {
      "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
      "ruleId": "shadcn/no-raw-colors",
      "severity": 1,
      "messageId": "paletteClassNear",
      "message": "\"text-red-400\" uses the raw Tailwind palette. Nearest theme tokens: text-status-error, text-danger. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
      "line": 30,
      "column": 16
    },
    {
      "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
      "ruleId": "shadcn/no-raw-colors",
      "severity": 1,
      "messageId": "paletteClassNear",
      "message": "\"border-red-500/20\" uses the raw Tailwind palette. Nearest theme tokens: border-status-error/20, border-danger/20. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
      "line": 30,
      "column": 16
    },
    {
      "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
      "ruleId": "shadcn/no-raw-colors",
      "severity": 1,
      "messageId": "paletteClassNear",
      "message": "\"bg-yellow-500/10\" uses the raw Tailwind palette. Nearest theme tokens: bg-logo/10, bg-accent/10. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
      "line": 32,
      "column": 16
    },
    {
      "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
      "ruleId": "shadcn/no-raw-colors",
      "severity": 1,
      "messageId": "paletteClassNear",
      "message": "\"text-yellow-400\" uses the raw Tailwind palette. Nearest theme tokens: text-markdown-alert-warning, text-logo. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
      "line": 32,
      "column": 16
    },
    {
      "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
      "ruleId": "shadcn/no-raw-colors",
      "severity": 1,
      "messageId": "paletteClassNear",
      "message": "\"border-yellow-500/20\" uses the raw Tailwind palette. Nearest theme tokens: border-logo/20, border-accent/20. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
      "line": 32,
      "column": 16
    },
    {
      "file": "src/components/features/conversation-panel/start-task-card/start-task-status-indicator.tsx",
      "ruleId": "shadcn/no-raw-colors",
      "severity": 1,
      "messageId": "paletteClassNear",
      "message": "\"bg-green-500\" uses the raw Tailwind palette. Nearest theme tokens: bg-status-success. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
      "line": 14,
      "column": 16
    },
    {
      "file": "src/components/features/conversation-panel/start-task-card/start-task-status-indicator.tsx",
      "ruleId": "shadcn/no-raw-colors",
      "severity": 1,
      "messageId": "paletteClassNear",
      "message": "\"bg-red-500\" uses the raw Tailwind palette. Nearest theme tokens: bg-status-error, bg-danger. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
      "line": 16,
      "column": 16
    },
    {
      "file": "src/components/features/conversation-panel/start-task-card/start-task-status-indicator.tsx",
      "ruleId": "shadcn/no-raw-colors",
      "severity": 1,
      "messageId": "paletteClassNear",
      "message": "\"bg-yellow-500\" uses the raw Tailwind palette. Nearest theme tokens: bg-logo, bg-accent. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
      "line": 24,
      "column": 16
    },
    {
      "file": "src/components/features/conversation-panel/system-message-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 46,
      "column": 13
    },
    {
      "file": "src/components/features/conversation-panel/system-message-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 66,
      "column": 28
    },
    {
      "file": "src/components/features/conversation/conversation-git-actions-menu.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "dynamicStyle",
      "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
      "line": 110,
      "column": 14
    },
    {
      "file": "src/components/features/conversation/conversation-git-actions-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"min-w-[8rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 111,
      "column": 17
    },
    {
      "file": "src/components/features/conversation/conversation-main/conversation-main.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 166,
      "column": 13
    },
    {
      "file": "src/components/features/conversation/conversation-main/conversation-main.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 191,
      "column": 27
    },
    {
      "file": "src/components/features/conversation/conversation-main/conversation-main.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 209,
      "column": 31
    },
    {
      "file": "src/components/features/conversation/conversation-main/conversation-main.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets transitionProperty. Style through classes; use CSS custom properties for dynamic values.",
      "line": 267,
      "column": 37
    },
    {
      "file": "src/components/features/conversation/conversation-main/conversation-main.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"transition-[width]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 286,
      "column": 21
    },
    {
      "file": "src/components/features/conversation/conversation-main/conversation-main.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
      "line": 294,
      "column": 21
    },
    {
      "file": "src/components/features/conversation/conversation-main/conversation-main.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets transitionProperty. Style through classes; use CSS custom properties for dynamic values.",
      "line": 300,
      "column": 21
    },
    {
      "file": "src/components/features/conversation/conversation-main/conversation-main.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
      "line": 377,
      "column": 22
    },
    {
      "file": "src/components/features/conversation/conversation-main/conversation-main.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets transitionProperty. Style through classes; use CSS custom properties for dynamic values.",
      "line": 382,
      "column": 35
    },
    {
      "file": "src/components/features/conversation/conversation-name-context-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"translate-x-[calc(1rem-1px)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 83,
      "column": 17
    },
    {
      "file": "src/components/features/conversation/conversation-name-context-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"translate-x-[34%]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 189,
      "column": 35
    },
    {
      "file": "src/components/features/conversation/conversation-name-context-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"stroke-[1.75]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 216,
      "column": 29
    },
    {
      "file": "src/components/features/conversation/conversation-name-context-menu.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "dynamicStyle",
      "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
      "line": 369,
      "column": 19
    },
    {
      "file": "src/components/features/conversation/conversation-name-with-status.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"ml-[3.5px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 126,
      "column": 25
    },
    {
      "file": "src/components/features/conversation/conversation-overview-context-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"z-[9999]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 362,
      "column": 21
    },
    {
      "file": "src/components/features/conversation/conversation-overview-context-menu.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "dynamicStyle",
      "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
      "line": 414,
      "column": 19
    },
    {
      "file": "src/components/features/conversation/conversation-overview-drawer.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[min(50vh,420px)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 51,
      "column": 52
    },
    {
      "file": "src/components/features/conversation/conversation-overview-panel.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-w-[45%]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 51,
      "column": 23
    },
    {
      "file": "src/components/features/conversation/conversation-overview-toggle.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
      "line": 125,
      "column": 20
    },
    {
      "file": "src/components/features/conversation/conversation-overview-toggle.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
      "line": 126,
      "column": 21
    },
    {
      "file": "src/components/features/conversation/conversation-overview-toggle.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
      "line": 127,
      "column": 22
    },
    {
      "file": "src/components/features/conversation/conversation-tabs/conversation-planner-build-bar.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 55,
      "column": 36
    },
    {
      "file": "src/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"z-[9999]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 188,
      "column": 21
    },
    {
      "file": "src/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "dynamicStyle",
      "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
      "line": 274,
      "column": 19
    },
    {
      "file": "src/components/features/conversation/conversation-tabs/conversation-tabs.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"left-[-10000px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 321,
      "column": 21
    },
    {
      "file": "src/components/features/conversation/conversation-tabs/conversation-tabs.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 452,
      "column": 40
    },
    {
      "file": "src/components/features/conversation/conversation-tabs/drawer-vscode-link.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"rounded-[7px]\" hardcodes an off-token value. Nearest on the scale: rounded-md (6px), rounded-lg (8px).",
      "line": 45,
      "column": 9
    },
    {
      "file": "src/components/features/conversation/usage-panel/context-meter.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
      "line": 90,
      "column": 27
    },
    {
      "file": "src/components/features/diff-viewer/commit-row.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"w-[7ch]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 48,
      "column": 25
    },
    {
      "file": "src/components/features/diff-viewer/editor-container.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"h-[var(--editor-height)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 19,
      "column": 9
    },
    {
      "file": "src/components/features/diff-viewer/uncommitted-changes-row.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"w-[7ch]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 38,
      "column": 25
    },
    {
      "file": "src/components/features/files-tab/file-quick-row.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"[scrollbar-width:none]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 23,
      "column": 3
    },
    {
      "file": "src/components/features/files-tab/file-quick-row.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"[-ms-overflow-style:none]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 23,
      "column": 3
    },
    {
      "file": "src/components/features/files-tab/highlighted-source-view.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "dynamicStyle",
      "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
      "line": 53,
      "column": 16
    },
    {
      "file": "src/components/features/files-tab/workspace-file-discovery-settings.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[90vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 63,
      "column": 11
    },
    {
      "file": "src/components/features/home/featured-automations/automation-run-activity-sparkline.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"rounded-[1px]\" hardcodes an off-token value. Nearest on the scale: rounded-xs (2px), rounded-sm (4px).",
      "line": 69,
      "column": 13
    },
    {
      "file": "src/components/features/home/featured-automations/automation-run-activity-sparkline.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"rounded-[1px]\" hardcodes an off-token value. Nearest on the scale: rounded-xs (2px), rounded-sm (4px).",
      "line": 133,
      "column": 13
    },
    {
      "file": "src/components/features/home/featured-automations/automation-run-activity-sparkline.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"group-hover/spark-bar:scale-x-[1.4]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 136,
      "column": 13
    },
    {
      "file": "src/components/features/home/featured-automations/automation-run-activity-sparkline.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"group-hover/spark-bar:scale-y-[1.15]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 136,
      "column": 13
    },
    {
      "file": "src/components/features/home/featured-automations/automation-run-activity-sparkline.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"group-focus-visible/spark-bar:scale-x-[1.4]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 137,
      "column": 13
    },
    {
      "file": "src/components/features/home/featured-automations/automation-run-activity-sparkline.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"group-focus-visible/spark-bar:scale-y-[1.15]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 137,
      "column": 13
    },
    {
      "file": "src/components/features/home/featured-automations/home-automation-menu.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "dynamicStyle",
      "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
      "line": 149,
      "column": 22
    },
    {
      "file": "src/components/features/home/featured-automations/pinned-automation-card.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"shadow-[inset_0_2px_0_0_var(--oh-focus)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 158,
      "column": 11
    },
    {
      "file": "src/components/features/home/featured-automations/pinned-automation-card.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"shadow-[inset_0_-2px_0_0_var(--oh-focus)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 161,
      "column": 11
    },
    {
      "file": "src/components/features/home/featured-automations/running-automations-list.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"grid-cols-[auto_minmax(0,1fr)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 117,
      "column": 26
    },
    {
      "file": "src/components/features/home/home-chat-launcher.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"pt-[max(4rem,28vh)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 306,
      "column": 17
    },
    {
      "file": "src/components/features/home/shared/clear-button.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"text-[#fff]\" hardcodes a color. Nearest theme tokens: text-primary, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 27,
      "column": 9
    },
    {
      "file": "src/components/features/home/shared/generic-dropdown-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"z-[9999]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 92,
      "column": 11
    },
    {
      "file": "src/components/features/home/shared/generic-dropdown-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[calc(15rem-3rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 103,
      "column": 19
    },
    {
      "file": "src/components/features/home/workspace-dropdown/folder-browser-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"grid-cols-[minmax(0,1fr)_4rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 30,
      "column": 3
    },
    {
      "file": "src/components/features/home/workspace-dropdown/folder-browser-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"md:grid-cols-[1fr_120px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 30,
      "column": 3
    },
    {
      "file": "src/components/features/home/workspace-dropdown/folder-browser-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 60,
      "column": 22
    },
    {
      "file": "src/components/features/home/workspace-dropdown/manage-workspaces-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[70vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 82,
      "column": 13
    },
    {
      "file": "src/components/features/home/workspace-dropdown/manage-workspaces-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 144,
      "column": 32
    },
    {
      "file": "src/components/features/images/image-lightbox.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[90vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 47,
      "column": 21
    },
    {
      "file": "src/components/features/images/image-lightbox.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-w-[90vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 47,
      "column": 21
    },
    {
      "file": "src/components/features/launch/plugin-launch-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 143,
      "column": 11
    },
    {
      "file": "src/components/features/manifest/manifest-setup-dialog.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[85vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 464,
      "column": 19
    },
    {
      "file": "src/components/features/manifest/manifest-setup-dialog.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"w-[92vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 464,
      "column": 19
    },
    {
      "file": "src/components/features/markdown/code.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"px-[0.4em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 37,
      "column": 13
    },
    {
      "file": "src/components/features/markdown/code.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"py-[0.2em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 37,
      "column": 13
    },
    {
      "file": "src/components/features/markdown/code.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"p-[1em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 47,
      "column": 24
    },
    {
      "file": "src/components/features/markdown/code.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "dynamicStyle",
      "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
      "line": 58,
      "column": 16
    },
    {
      "file": "src/components/features/markdown/headings.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"-tracking-[0.01em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 24,
      "column": 19
    },
    {
      "file": "src/components/features/markdown/markdown-table-scroll.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"from-[var(--oh-scroll-fade-from,var(--oh-color-base))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 72,
      "column": 11
    },
    {
      "file": "src/components/features/markdown/markdown-table-scroll.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"from-[var(--oh-scroll-fade-from,var(--oh-color-base))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 84,
      "column": 11
    },
    {
      "file": "src/components/features/mcp-logo-badge.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"shadow-[inset_0_1px_0_color-mix(in_srgb,var(--oh-contrast)_18%,transparent)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 54,
      "column": 9
    },
    {
      "file": "src/components/features/mcp-logo-badge.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets backgroundColor. Style through classes; use CSS custom properties for dynamic values.",
      "line": 59,
      "column": 26
    },
    {
      "file": "src/components/features/mcp-logo-badge.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets color. Style through classes; use CSS custom properties for dynamic values.",
      "line": 61,
      "column": 11
    },
    {
      "file": "src/components/features/mcp-logo-badge.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"p-[22%]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 71,
      "column": 21
    },
    {
      "file": "src/components/features/mcp-page/custom-server-editor.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-w-[90vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 242,
      "column": 21
    },
    {
      "file": "src/components/features/mcp-page/custom-server-editor.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[90vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 242,
      "column": 21
    },
    {
      "file": "src/components/features/mcp-page/mcp-logo-stack-badge.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"shadow-[inset_0_1px_0_color-mix(in_srgb,var(--oh-contrast)_18%,transparent)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 8,
      "column": 3
    },
    {
      "file": "src/components/features/mcp-page/save-as-secret-toggle.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 48,
      "column": 13
    },
    {
      "file": "src/components/features/mcp-page/save-as-secret-toggle.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[9px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 62,
      "column": 23
    },
    {
      "file": "src/components/features/onboarding/onboarding-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[90vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 320,
      "column": 13
    },
    {
      "file": "src/components/features/onboarding/steps/say-hello-step.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[calc(90vh-7rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 82,
      "column": 17
    },
    {
      "file": "src/components/features/onboarding/steps/say-hello-step.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"rounded-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-2xl (16px), rounded-xl (12px).",
      "line": 96,
      "column": 19
    },
    {
      "file": "src/components/features/onboarding/steps/say-hello-step.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 134,
      "column": 21
    },
    {
      "file": "src/components/features/onboarding/steps/setup-llm-step.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[calc(90vh-7rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 344,
      "column": 17
    },
    {
      "file": "src/components/features/plugins/plugin-picker-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 34,
      "column": 11
    },
    {
      "file": "src/components/features/plugins/plugin-picker-trigger.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 51,
      "column": 21
    },
    {
      "file": "src/components/features/settings/acp-credentials-section.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"text-[#717888]\" hardcodes a color. Nearest theme tokens: text-cool-grey-600, text-cool-grey-500. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 49,
      "column": 36
    },
    {
      "file": "src/components/features/settings/agent-canvas-update-card.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 170,
      "column": 11
    },
    {
      "file": "src/components/features/settings/agent-canvas-update-card.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorFar",
      "message": "\"border-[#3B82F6]/30\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
      "line": 214,
      "column": 30
    },
    {
      "file": "src/components/features/settings/agent-canvas-update-card.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"bg-[#1E3A5F]\" hardcodes a color. Nearest theme tokens: bg-border-subtle, bg-cool-grey-900. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 214,
      "column": 30
    },
    {
      "file": "src/components/features/settings/agent-canvas-update-card.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorFar",
      "message": "\"text-[#3B82F6]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
      "line": 214,
      "column": 30
    },
    {
      "file": "src/components/features/settings/agent-canvas-update-card.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"hover:text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 225,
      "column": 31
    },
    {
      "file": "src/components/features/settings/agent-canvas-update-card.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"hover:text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 242,
      "column": 31
    },
    {
      "file": "src/components/features/settings/agent-canvas-update-card.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 325,
      "column": 19
    },
    {
      "file": "src/components/features/settings/agent-canvas-update-card.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"bg-[#1E3A5F]\" hardcodes a color. Nearest theme tokens: bg-border-subtle, bg-cool-grey-900. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 327,
      "column": 23
    },
    {
      "file": "src/components/features/settings/agent-canvas-update-card.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorFar",
      "message": "\"text-[#3B82F6]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
      "line": 327,
      "column": 23
    },
    {
      "file": "src/components/features/settings/agent-canvas-version-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-w-[90vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 101,
      "column": 26
    },
    {
      "file": "src/components/features/settings/agent-canvas-version-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorFar",
      "message": "\"text-[#3B82F6]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
      "line": 110,
      "column": 25
    },
    {
      "file": "src/components/features/settings/agent-canvas-version-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"bg-[#1E3A5F]\" hardcodes a color. Nearest theme tokens: bg-border-subtle, bg-cool-grey-900. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 127,
      "column": 29
    },
    {
      "file": "src/components/features/settings/agent-canvas-version-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorFar",
      "message": "\"text-[#3B82F6]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
      "line": 127,
      "column": 29
    },
    {
      "file": "src/components/features/settings/agent-canvas-version-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 135,
      "column": 26
    },
    {
      "file": "src/components/features/settings/agent-canvas-version-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"hover:text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 144,
      "column": 27
    },
    {
      "file": "src/components/features/settings/agent-canvas-version-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 152,
      "column": 28
    },
    {
      "file": "src/components/features/settings/agent-canvas-version-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"hover:text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 164,
      "column": 31
    },
    {
      "file": "src/components/features/settings/agent-canvas-version-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"hover:text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 229,
      "column": 25
    },
    {
      "file": "src/components/features/settings/agent-canvas-version-tile.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorFar",
      "message": "\"text-[#3B82F6]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
      "line": 77,
      "column": 23
    },
    {
      "file": "src/components/features/settings/agent-profiles/agent-profile-actions-menu.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "dynamicStyle",
      "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
      "line": 196,
      "column": 19
    },
    {
      "file": "src/components/features/settings/backend-synced-settings-badge.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 40,
      "column": 34
    },
    {
      "file": "src/components/features/settings/brand-button.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"text-[var(--oh-accent-foreground)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 60,
      "column": 11
    },
    {
      "file": "src/components/features/settings/llm-profiles/add-models-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"bg-[var(--oh-background)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 393,
      "column": 23
    },
    {
      "file": "src/components/features/settings/llm-profiles/add-models-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"bg-[var(--oh-background)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 421,
      "column": 25
    },
    {
      "file": "src/components/features/settings/llm-profiles/profile-actions-menu.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "dynamicStyle",
      "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
      "line": 221,
      "column": 19
    },
    {
      "file": "src/components/features/settings/llm-profiles/provider-connection-actions-menu.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "dynamicStyle",
      "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
      "line": 174,
      "column": 19
    },
    {
      "file": "src/components/features/settings/llm-settings/openai-subscription-auth-card.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"tracking-[0.08em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 207,
      "column": 25
    },
    {
      "file": "src/components/features/settings/meta-llm-profiles/meta-profile-actions-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueWithScale",
      "message": "\"w-[160px]\" hardcodes an off-token value. Use \"w-40\" instead (same value, on the scale).",
      "line": 179,
      "column": 9
    },
    {
      "file": "src/components/features/settings/meta-llm-profiles/meta-profile-actions-menu.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "dynamicStyle",
      "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
      "line": 227,
      "column": 19
    },
    {
      "file": "src/components/features/settings/settings-nav-header.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 16,
      "column": 34
    },
    {
      "file": "src/components/features/settings/settings-switch.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 61,
      "column": 27
    },
    {
      "file": "src/components/features/settings/settings-switch.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"font-[500]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 61,
      "column": 27
    },
    {
      "file": "src/components/features/settings/upgrade-button.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[9px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 24,
      "column": 9
    },
    {
      "file": "src/components/features/settings/upgrade-button.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
      "line": 24,
      "column": 9
    },
    {
      "file": "src/components/features/setup-guide/super-admin-setup-guide.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
      "line": 337,
      "column": 33
    },
    {
      "file": "src/components/features/sidebar/mars-session-panel.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"w-[calc(100%+0.625rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 285,
      "column": 22
    },
    {
      "file": "src/components/features/sidebar/mars-session-panel.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[40vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 322,
      "column": 21
    },
    {
      "file": "src/components/features/sidebar/sidebar-rail-body.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"bottom-[-4px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 378,
      "column": 27
    },
    {
      "file": "src/components/features/sidebar/sidebar-rail-body.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"w-[calc(100%+0.625rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 404,
      "column": 15
    },
    {
      "file": "src/components/features/sidebar/sidebar.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"transition-[width,min-width]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 213,
      "column": 11
    },
    {
      "file": "src/components/features/sidebar/sidebar.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"w-[min(300px,85vw)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 247,
      "column": 15
    },
    {
      "file": "src/components/features/skills/add-skill-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 39,
      "column": 9
    },
    {
      "file": "src/components/features/skills/build-skill-pills.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"border-[rgba(248,113,113,0.35)]\" hardcodes a color. Nearest theme tokens: border-status-error, border-danger. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 142,
      "column": 21
    },
    {
      "file": "src/components/features/skills/build-skill-pills.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"bg-[rgba(248,113,113,0.12)]\" hardcodes a color. Nearest theme tokens: bg-status-error, bg-danger. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 142,
      "column": 21
    },
    {
      "file": "src/components/features/skills/build-skill-pills.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 142,
      "column": 21
    },
    {
      "file": "src/components/features/skills/build-skill-pills.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"text-[#fca5a5]\" hardcodes a color. Nearest theme tokens: text-markdown-alert-caution. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 142,
      "column": 21
    },
    {
      "file": "src/components/features/skills/build-skill-pills.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"bg-[#fca5a5]\" hardcodes a color. Nearest theme tokens: bg-markdown-alert-caution. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 144,
      "column": 27
    },
    {
      "file": "src/components/features/skills/build-skill-pills.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 180,
      "column": 29
    },
    {
      "file": "src/components/features/skills/extensions-navigation.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 120,
      "column": 27
    },
    {
      "file": "src/components/features/skills/skill-card-pill-row.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"z-[-1]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 203,
      "column": 19
    },
    {
      "file": "src/components/features/skills/skill-card-pill-row.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"z-[9999]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 255,
      "column": 15
    },
    {
      "file": "src/components/features/skills/skill-card-pill-row.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-w-[20rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 255,
      "column": 15
    },
    {
      "file": "src/components/features/skills/skill-card-pill-row.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
      "line": 260,
      "column": 25
    },
    {
      "file": "src/components/features/skills/skill-card-pill-row.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
      "line": 261,
      "column": 20
    },
    {
      "file": "src/components/features/skills/skill-card-pill-row.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
      "line": 262,
      "column": 21
    },
    {
      "file": "src/components/features/skills/skill-facet-rail.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 50,
      "column": 25
    },
    {
      "file": "src/components/features/skills/skill-facet-row.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"rounded-[3px]\" hardcodes an off-token value. Nearest on the scale: rounded-xs (2px), rounded-sm (4px).",
      "line": 49,
      "column": 11
    },
    {
      "file": "src/components/features/skills/skill-filters-modal.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 43,
      "column": 24
    },
    {
      "file": "src/components/features/skills/skill-icon-badge.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"shadow-[inset_0_1px_0_color-mix(in_srgb,var(--oh-contrast)_18%,transparent)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 18,
      "column": 9
    },
    {
      "file": "src/components/features/skills/skill-type-badge.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 11,
      "column": 3
    },
    {
      "file": "src/components/features/skills/skills-toolbar.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 74,
      "column": 27
    },
    {
      "file": "src/components/features/suggestions/suggestion-item.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"rounded-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-2xl (16px), rounded-xl (12px).",
      "line": 37,
      "column": 17
    },
    {
      "file": "src/components/features/suggestions/suggestion-item.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[15px]\" hardcodes an off-token value. Nearest on the scale: text-sm (14px), text-base (16px).",
      "line": 43,
      "column": 19
    },
    {
      "file": "src/components/shared/badge.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"text-[var(--oh-accent-foreground)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 11,
      "column": 9
    },
    {
      "file": "src/components/shared/buttons/circle-plus-check-toggle.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"bg-[rgba(248,113,113,0.14)]\" hardcodes a color. Nearest theme tokens: bg-status-error, bg-danger. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 96,
      "column": 17
    },
    {
      "file": "src/components/shared/buttons/circle-plus-check-toggle.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"text-[#ef4444]\" hardcodes a color. Nearest theme tokens: text-danger, text-status-error. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 96,
      "column": 17
    },
    {
      "file": "src/components/shared/buttons/circle-plus-check-toggle.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"hover:bg-[rgba(248,113,113,0.24)]\" hardcodes a color. Nearest theme tokens: hover:bg-status-error, hover:bg-danger. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 96,
      "column": 17
    },
    {
      "file": "src/components/shared/buttons/circle-plus-check-toggle.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"stroke-[2.5]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 110,
      "column": 25
    },
    {
      "file": "src/components/shared/buttons/styled-tooltip.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"z-[9999]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 53,
      "column": 11
    },
    {
      "file": "src/components/shared/horizontal-scroll-fade.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"from-[var(--oh-scroll-fade-from,var(--oh-color-base))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 120,
      "column": 11
    },
    {
      "file": "src/components/shared/horizontal-scroll-fade.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"from-[var(--oh-scroll-fade-from,var(--oh-color-base))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 132,
      "column": 11
    },
    {
      "file": "src/components/shared/modals/modal-backdrop.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"z-[70]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 68,
      "column": 20
    },
    {
      "file": "src/components/shared/modals/settings/model-selector.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
      "line": 31,
      "column": 3
    },
    {
      "file": "src/components/shared/modals/settings/model-selector.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "inlineStyle",
      "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
      "line": 320,
      "column": 25
    },
    {
      "file": "src/components/shared/risk-alert.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"bg-[#4A0709]\" hardcodes a color. Nearest theme tokens: bg-base-secondary. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 24,
      "column": 11
    },
    {
      "file": "src/components/shared/risk-alert.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"border-[#FF0006]\" hardcodes a color. Nearest theme tokens: border-status-error, border-danger. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 24,
      "column": 11
    },
    {
      "file": "src/components/shared/text-shimmer.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "styleElement",
      "message": "A <style> element injects CSS outside the design system. Use classes, or declare the rule in your theme CSS.",
      "line": 72,
      "column": 7
    },
    {
      "file": "src/components/shared/text-shimmer.tsx",
      "ruleId": "shadcn/no-inline-styles",
      "severity": 1,
      "messageId": "dynamicStyle",
      "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
      "line": 79,
      "column": 16
    },
    {
      "file": "src/routes/agent-settings.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"border-[#717888]\" hardcodes a color. Nearest theme tokens: border-cool-grey-600, border-cool-grey-500. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 1667,
      "column": 25
    },
    {
      "file": "src/routes/agent-settings.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"placeholder:text-[#717888]\" hardcodes a color. Nearest theme tokens: placeholder:text-cool-grey-600, placeholder:text-cool-grey-500. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 1667,
      "column": 25
    },
    {
      "file": "src/routes/agent-settings.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"text-[#717888]\" hardcodes a color. Nearest theme tokens: text-cool-grey-600, text-cool-grey-500. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 1692,
      "column": 40
    },
    {
      "file": "src/routes/agent-settings.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"border-[#3D4046]\" hardcodes a color. Nearest theme tokens: border-border-subtle, border-cool-grey-900. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 1701,
      "column": 25
    },
    {
      "file": "src/routes/agent-settings.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"border-[#3D4046]\" hardcodes a color. Nearest theme tokens: border-border-subtle, border-cool-grey-900. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 1709,
      "column": 25
    },
    {
      "file": "src/routes/agent-settings.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"text-[#717888]\" hardcodes a color. Nearest theme tokens: text-cool-grey-600, text-cool-grey-500. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 1785,
      "column": 25
    },
    {
      "file": "src/routes/agent-settings.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"text-[#717888]\" hardcodes a color. Nearest theme tokens: text-cool-grey-600, text-cool-grey-500. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 1796,
      "column": 27
    },
    {
      "file": "src/routes/agent-settings.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"text-[#717888]\" hardcodes a color. Nearest theme tokens: text-cool-grey-600, text-cool-grey-500. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 1806,
      "column": 25
    },
    {
      "file": "src/routes/agent-settings.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryColorNear",
      "message": "\"text-[#717888]\" hardcodes a color. Nearest theme tokens: text-cool-grey-600, text-cool-grey-500. Use one of those, or declare --color-<name> in src/styles.css.",
      "line": 1811,
      "column": 38
    },
    {
      "file": "src/routes/device-verify.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"tracking-[0.3em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 155,
      "column": 28
    },
    {
      "file": "src/routes/files-tab.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"rounded-[7px]\" hardcodes an off-token value. Nearest on the scale: rounded-md (6px), rounded-lg (8px).",
      "line": 170,
      "column": 19
    },
    {
      "file": "src/routes/files-tab.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"rounded-[7px]\" hardcodes an off-token value. Nearest on the scale: rounded-md (6px), rounded-lg (8px).",
      "line": 261,
      "column": 35
    },
    {
      "file": "src/ui/dropdown/dropdown-menu.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-w-[min(26rem,calc(100vw-2rem))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 43,
      "column": 24
    },
    {
      "file": "src/ui/pre.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 42,
      "column": 14
    },
    {
      "file": "src/ui/typography.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"text-[32px]\" hardcodes an off-token value. Nearest on the scale: text-3xl (30px), text-4xl (36px).",
      "line": 7,
      "column": 11
    },
    {
      "file": "src/ui/typography.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"-tracking-[0.02em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 8,
      "column": 11
    },
    {
      "file": "src/utils/custom-toast-handlers.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 81,
      "column": 19
    },
    {
      "file": "src/utils/custom-toast-handlers.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"[overflow-wrap:anywhere]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 81,
      "column": 19
    },
    {
      "file": "src/utils/custom-toast-handlers.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 130,
      "column": 21
    },
    {
      "file": "src/utils/custom-toast-handlers.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"[overflow-wrap:anywhere]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 130,
      "column": 21
    },
    {
      "file": "src/utils/custom-toast-handlers.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 144,
      "column": 21
    },
    {
      "file": "src/utils/custom-toast-handlers.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"[overflow-wrap:anywhere]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 144,
      "column": 21
    },
    {
      "file": "src/utils/custom-toast-handlers.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 165,
      "column": 21
    },
    {
      "file": "src/utils/custom-toast-handlers.tsx",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"[overflow-wrap:anywhere]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 165,
      "column": 21
    },
    {
      "file": "src/utils/dropdown-classes.ts",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[min(60vh,calc(100dvh-5rem))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 71,
      "column": 3
    },
    {
      "file": "src/utils/form-control-classes.ts",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"transition-[background-color,border-color,box-shadow,opacity]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 21,
      "column": 3
    },
    {
      "file": "src/utils/form-control-classes.ts",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"!transition-[background-color,border-color,box-shadow,opacity]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 32,
      "column": 3
    },
    {
      "file": "src/utils/form-control-classes.ts",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"transition-[transform]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 39,
      "column": 3
    },
    {
      "file": "src/utils/form-control-classes.ts",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
      "line": 50,
      "column": 3
    },
    {
      "file": "src/utils/git-control-bar-classes.ts",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValueNearScale",
      "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
      "line": 4,
      "column": 3
    },
    {
      "file": "src/utils/hover-reveal-classes.ts",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"min-w-[3.75rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 78,
      "column": 13
    },
    {
      "file": "src/utils/modal-classes.ts",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"-tracking-[0.01em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 5,
      "column": 3
    },
    {
      "file": "src/utils/settings-list-classes.ts",
      "ruleId": "shadcn/no-arbitrary-values",
      "severity": 1,
      "messageId": "arbitraryValue",
      "message": "\"max-h-[min(70vh,39rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
      "line": 23,
      "column": 3
    }
  ]
}
