{
  "schemaVersion": 1,
  "title": "Current main lint audit",
  "auditLocalDate": "2026-10-20",
  "timezone": "Europe/Stockholm",
  "exactSha": "8d39305538c1d17a30cbe477e57a0e18fcee7d95",
  "baseline": {
    "trackedChangesBefore": 0,
    "trackedChangesAfter": 0,
    "headUnchanged": true,
    "sourceEdited": false,
    "ruleConfigurationChanged": false,
    "verificationSkillEdited": false
  },
  "environment": {
    "platform": "darwin",
    "architecture": "arm64",
    "node": "v25.9.0",
    "npm": "11.12.1",
    "eslint": "v9.39.5",
    "declaredNodeEngine": ">=24",
    "declaredPackageManager": "npm@10.5.0",
    "selectedVariables": {
      "NO_COLOR": "1",
      "FORCE_COLOR": "0"
    }
  },
  "reproduction": {
    "prerequisite": "Clean isolated checkout of exactSha and the committed package-lock.json",
    "dependencyCommand": "npm ci --ignore-scripts",
    "fullLintCommand": "NO_COLOR=1 FORCE_COLOR=0 npm run lint",
    "configuredPrelint": "npm run make-i18n",
    "configuredLint": "npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}",
    "configuredTypecheck": "react-router typegen && tsc",
    "machineCommand": "NO_COLOR=1 FORCE_COLOR=0 ./node_modules/.bin/eslint src --format json --output-file /tmp/agentic-lint-audit-20261020/eslint.json",
    "eslintTarget": "src",
    "fullLintExitCode": 0,
    "machineExitCode": 0,
    "fullLintStartedAt": "2026-10-19T22:37:30.321Z",
    "fullLintFinishedAt": "2026-10-19T22:38:48.676Z",
    "machineStartedAt": "2026-10-19T22:38:48.677Z",
    "machineFinishedAt": "2026-10-19T22:40:07.249Z",
    "typecheckPassed": true,
    "prettierPassed": true,
    "dependencyEngineNotes": [
      "npm emitted engine warnings for transitive jsdom@30.0.1 and vitest@5.0.0 on Node25; both requested audit commands completed successfully."
    ]
  },
  "totals": {
    "filesLinted": 1408,
    "filesWithDiagnostics": 197,
    "errors": 0,
    "warnings": 645,
    "fatalErrors": 0,
    "fixableErrors": 0,
    "fixableWarnings": 0
  },
  "rules": [
    {
      "ruleId": "shadcn/no-arbitrary-values",
      "errors": 0,
      "warnings": 522,
      "files": 177
    },
    {
      "ruleId": "shadcn/no-inline-styles",
      "errors": 0,
      "warnings": 83,
      "files": 42
    },
    {
      "ruleId": "shadcn/no-raw-colors",
      "errors": 0,
      "warnings": 40,
      "files": 7
    }
  ],
  "ownersByPath": [
    {
      "name": "src/components/features/automations",
      "errors": 0,
      "warnings": 145,
      "files": 15
    },
    {
      "name": "src/components/features/chat",
      "errors": 0,
      "warnings": 68,
      "files": 25
    },
    {
      "name": "src/components/features/conversation-panel",
      "errors": 0,
      "warnings": 66,
      "files": 26
    },
    {
      "name": "src/components/features/settings",
      "errors": 0,
      "warnings": 51,
      "files": 18
    },
    {
      "name": "src/components/features/conversation",
      "errors": 0,
      "warnings": 39,
      "files": 14
    },
    {
      "name": "src/components/features/home",
      "errors": 0,
      "warnings": 27,
      "files": 11
    },
    {
      "name": "src/components/features/markdown",
      "errors": 0,
      "warnings": 27,
      "files": 4
    },
    {
      "name": "src/components/features/backends",
      "errors": 0,
      "warnings": 26,
      "files": 8
    },
    {
      "name": "src/components/features/skills",
      "errors": 0,
      "warnings": 24,
      "files": 11
    },
    {
      "name": "src/ui",
      "errors": 0,
      "warnings": 22,
      "files": 4
    },
    {
      "name": "src/routes",
      "errors": 0,
      "warnings": 20,
      "files": 5
    },
    {
      "name": "src/components/features/files-tab",
      "errors": 0,
      "warnings": 18,
      "files": 5
    },
    {
      "name": "src/utils",
      "errors": 0,
      "warnings": 17,
      "files": 7
    },
    {
      "name": "src/components/features/command-menu",
      "errors": 0,
      "warnings": 15,
      "files": 2
    },
    {
      "name": "src/components/shared",
      "errors": 0,
      "warnings": 13,
      "files": 7
    },
    {
      "name": "src/components/features/sidebar",
      "errors": 0,
      "warnings": 10,
      "files": 4
    },
    {
      "name": "src/components/features/controls",
      "errors": 0,
      "warnings": 9,
      "files": 3
    },
    {
      "name": "src/components/conversation-events",
      "errors": 0,
      "warnings": 8,
      "files": 3
    },
    {
      "name": "src/components/features/mcp-page",
      "errors": 0,
      "warnings": 8,
      "files": 5
    },
    {
      "name": "src/components/features/onboarding",
      "errors": 0,
      "warnings": 6,
      "files": 3
    },
    {
      "name": "src/components/features/plugins",
      "errors": 0,
      "warnings": 6,
      "files": 4
    },
    {
      "name": "src/components/features/diff-viewer",
      "errors": 0,
      "warnings": 4,
      "files": 4
    },
    {
      "name": "src/components/features/mcp-logo-badge.tsx",
      "errors": 0,
      "warnings": 4,
      "files": 1
    },
    {
      "name": "src/components/features/canvas-extensions",
      "errors": 0,
      "warnings": 3,
      "files": 2
    },
    {
      "name": "src/components/features/images",
      "errors": 0,
      "warnings": 2,
      "files": 1
    },
    {
      "name": "src/components/features/manifest",
      "errors": 0,
      "warnings": 2,
      "files": 1
    },
    {
      "name": "src/components/features/suggestions",
      "errors": 0,
      "warnings": 2,
      "files": 1
    },
    {
      "name": "src/components/features/context-menu",
      "errors": 0,
      "warnings": 1,
      "files": 1
    },
    {
      "name": "src/components/features/launch",
      "errors": 0,
      "warnings": 1,
      "files": 1
    },
    {
      "name": "src/components/features/setup-guide",
      "errors": 0,
      "warnings": 1,
      "files": 1
    }
  ],
  "allDiagnostics": [
    {
      "file": "src/components/conversation-events/chat/event-message-components/corrective-nudge-message.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 19,
          "column": 19,
          "endLine": 19,
          "endColumn": 38,
          "message": "\"mt-[5px]\" hardcodes an off-token value. Use \"mt-1.25\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 22,
          "column": 23,
          "endLine": 22,
          "endColumn": 58,
          "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/conversation-events/chat/task-tracking/task-item.tsx",
      "errorCount": 0,
      "warningCount": 4,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 21,
          "column": 38,
          "endLine": 21,
          "endColumn": 62,
          "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-contrast. Use one of those, or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 23,
          "column": 47,
          "endLine": 23,
          "endColumn": 71,
          "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-contrast. Use one of those, or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 27,
          "column": 38,
          "endLine": 27,
          "endColumn": 62,
          "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-contrast. Use one of those, or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 46,
          "column": 38,
          "endLine": 46,
          "endColumn": 62,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/conversation-events/chat/task-tracking/task-list-section.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 20,
          "column": 36,
          "endLine": 20,
          "endColumn": 130,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 20,
          "column": 36,
          "endLine": 20,
          "endColumn": 130,
          "message": "\"tracking-[0.11px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/automations/add-automation-menu.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 94,
          "column": 19,
          "endLine": 94,
          "endColumn": 34,
          "message": "\"min-w-[10rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 145,
          "column": 25,
          "endLine": 145,
          "endColumn": 36,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/automations/automation-list-row.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 146,
          "column": 26,
          "endLine": 146,
          "endColumn": 86,
          "message": "\"grid-cols-[auto_minmax(0,1fr)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/automations/automation-view-toggle.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 108,
          "column": 60,
          "endLine": 108,
          "endColumn": 75,
          "message": "\"min-w-[10rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 155,
          "column": 25,
          "endLine": 155,
          "endColumn": 36,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/automations/create-instructions.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 21,
          "column": 9,
          "endLine": 21,
          "endColumn": 93,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/automations/dashboard/automations-dashboard-controls.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 122,
          "column": 27,
          "endLine": 122,
          "endColumn": 109,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 140,
          "column": 21,
          "endLine": 140,
          "endColumn": 166,
          "message": "\"min-w-[16rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/automations/detail/active-status-badge.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 48,
          "column": 19,
          "endLine": 48,
          "endColumn": 44,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/automations/detail/run-logs-modal.tsx",
      "errorCount": 0,
      "warningCount": 8,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 122,
          "column": 22,
          "endLine": 122,
          "endColumn": 84,
          "message": "\"sm:grid-cols-[5rem_minmax(0,1fr)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 127,
          "column": 27,
          "endLine": 127,
          "endColumn": 126,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 132,
          "column": 22,
          "endLine": 132,
          "endColumn": 83,
          "message": "\"sm:grid-cols-[5rem_minmax(0,1fr)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 156,
          "column": 27,
          "endLine": 156,
          "endColumn": 176,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 164,
          "column": 22,
          "endLine": 164,
          "endColumn": 83,
          "message": "\"sm:grid-cols-[5rem_minmax(0,1fr)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 256,
          "column": 26,
          "endLine": 256,
          "endColumn": 68,
          "message": "\"border-[var(--oh-primary)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 276,
          "column": 19,
          "endLine": 276,
          "endColumn": 151,
          "message": "\"max-h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 334,
          "column": 23,
          "endLine": 334,
          "endColumn": 109,
          "message": "\"min-h-[12rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/automations/detail/run-phase.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 196,
          "column": 20,
          "endLine": 196,
          "endColumn": 35,
          "message": "\"max-w-[28rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 196,
          "column": 38,
          "endLine": 196,
          "endColumn": 53,
          "message": "\"max-w-[12rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/automations/detail/run-status-badge.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 184,
          "column": 13,
          "endLine": 184,
          "endColumn": 59,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/automations/detail/script-section.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 99,
          "column": 27,
          "endLine": 99,
          "endColumn": 88,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 101,
          "column": 32,
          "endLine": 101,
          "endColumn": 145,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 104,
          "column": 37,
          "endLine": 104,
          "endColumn": 123,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/automations/import-automation-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 171,
          "column": 19,
          "endLine": 171,
          "endColumn": 138,
          "message": "\"max-h-[85vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 171,
          "column": 19,
          "endLine": 171,
          "endColumn": 138,
          "message": "\"w-[min(36rem,calc(100vw-2rem))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/automations/kebab-menu.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 99,
          "column": 60,
          "endLine": 99,
          "endColumn": 75,
          "message": "\"min-w-[10rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 137,
          "column": 25,
          "endLine": 137,
          "endColumn": 36,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/automations/recommended-automations-rail.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 207,
          "column": 13,
          "endLine": 207,
          "endColumn": 101,
          "message": "\"from-[var(--oh-scroll-fade-from,var(--oh-color-base))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 218,
          "column": 13,
          "endLine": 218,
          "endColumn": 101,
          "message": "\"from-[var(--oh-scroll-fade-from,var(--oh-color-base))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/automations/setup/automation-setup-panel.tsx",
      "errorCount": 0,
      "warningCount": 78,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 130,
          "column": 3,
          "endLine": 130,
          "endColumn": 175,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 454,
          "column": 9,
          "endLine": 454,
          "endColumn": 61,
          "message": "\"bg-[var(--oh-success)]/10\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 454,
          "column": 9,
          "endLine": 454,
          "endColumn": 61,
          "message": "\"text-[var(--oh-success)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 460,
          "column": 17,
          "endLine": 460,
          "endColumn": 115,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 460,
          "column": 17,
          "endLine": 460,
          "endColumn": 115,
          "message": "\"bg-[var(--oh-surface)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 590,
          "column": 24,
          "endLine": 590,
          "endColumn": 85,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 595,
          "column": 42,
          "endLine": 595,
          "endColumn": 78,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 604,
          "column": 21,
          "endLine": 604,
          "endColumn": 145,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 604,
          "column": 21,
          "endLine": 604,
          "endColumn": 145,
          "message": "\"bg-[var(--oh-surface)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1781,
          "column": 21,
          "endLine": 1781,
          "endColumn": 62,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1872,
          "column": 29,
          "endLine": 1872,
          "endColumn": 148,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1884,
          "column": 13,
          "endLine": 1884,
          "endColumn": 105,
          "message": "\"[scrollbar-gutter:stable]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1888,
          "column": 26,
          "endLine": 1888,
          "endColumn": 84,
          "message": "\"max-w-[800px]\" hardcodes an off-token value. Use \"max-w-200\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1944,
          "column": 29,
          "endLine": 1944,
          "endColumn": 127,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1944,
          "column": 29,
          "endLine": 1944,
          "endColumn": 127,
          "message": "\"bg-[var(--oh-surface)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1953,
          "column": 29,
          "endLine": 1953,
          "endColumn": 148,
          "message": "\"border-[var(--oh-warning)]/40\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1953,
          "column": 29,
          "endLine": 1953,
          "endColumn": 148,
          "message": "\"bg-[var(--oh-warning)]/10\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1953,
          "column": 29,
          "endLine": 1953,
          "endColumn": 148,
          "message": "\"text-[var(--oh-warning)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1968,
          "column": 39,
          "endLine": 1968,
          "endColumn": 75,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2171,
          "column": 31,
          "endLine": 2171,
          "endColumn": 118,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2181,
          "column": 40,
          "endLine": 2181,
          "endColumn": 90,
          "message": "\"md:grid-cols-[2fr_1fr]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2278,
          "column": 39,
          "endLine": 2278,
          "endColumn": 165,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2314,
          "column": 36,
          "endLine": 2314,
          "endColumn": 140,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2321,
          "column": 41,
          "endLine": 2321,
          "endColumn": 73,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2329,
          "column": 35,
          "endLine": 2329,
          "endColumn": 160,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2452,
          "column": 17,
          "endLine": 2452,
          "endColumn": 93,
          "message": "\"rounded-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-2xl (16px), rounded-xl (12px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2452,
          "column": 17,
          "endLine": 2452,
          "endColumn": 93,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2452,
          "column": 17,
          "endLine": 2452,
          "endColumn": 93,
          "message": "\"bg-[var(--oh-surface)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2461,
          "column": 23,
          "endLine": 2461,
          "endColumn": 116,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2471,
          "column": 19,
          "endLine": 2471,
          "endColumn": 144,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2471,
          "column": 19,
          "endLine": 2471,
          "endColumn": 144,
          "message": "\"bg-[var(--oh-surface-raised)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2547,
          "column": 11,
          "endLine": 2547,
          "endColumn": 124,
          "message": "\"-mb-[15px]\" hardcodes an off-token value. Use \"-mb-3.75\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2547,
          "column": 11,
          "endLine": 2547,
          "endColumn": 124,
          "message": "\"rounded-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-2xl (16px), rounded-xl (12px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2547,
          "column": 11,
          "endLine": 2547,
          "endColumn": 124,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2547,
          "column": 11,
          "endLine": 2547,
          "endColumn": 124,
          "message": "\"bg-[var(--oh-surface)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2554,
          "column": 21,
          "endLine": 2554,
          "endColumn": 78,
          "message": "\"min-h-[256px]\" hardcodes an off-token value. Use \"min-h-64\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2574,
          "column": 23,
          "endLine": 2574,
          "endColumn": 76,
          "message": "\"z-[1]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2582,
          "column": 15,
          "endLine": 2582,
          "endColumn": 120,
          "message": "\"z-[2]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2592,
          "column": 19,
          "endLine": 2592,
          "endColumn": 144,
          "message": "\"rounded-b-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-b-2xl (16px), rounded-b-xl (12px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2592,
          "column": 19,
          "endLine": 2592,
          "endColumn": 144,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2592,
          "column": 19,
          "endLine": 2592,
          "endColumn": 144,
          "message": "\"bg-[var(--oh-surface-raised)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2592,
          "column": 19,
          "endLine": 2592,
          "endColumn": 144,
          "message": "\"pt-[calc(15px+0.5rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2604,
          "column": 15,
          "endLine": 2604,
          "endColumn": 119,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2613,
          "column": 28,
          "endLine": 2613,
          "endColumn": 63,
          "message": "\"md:grid-cols-[2fr_1fr]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2710,
          "column": 11,
          "endLine": 2710,
          "endColumn": 62,
          "message": "\"border-[var(--oh-interactive-hover)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2712,
          "column": 9,
          "endLine": 2712,
          "endColumn": 78,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2781,
          "column": 29,
          "endLine": 2781,
          "endColumn": 73,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2792,
          "column": 13,
          "endLine": 2792,
          "endColumn": 118,
          "message": "\"bg-[var(--oh-surface-raised)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2824,
          "column": 56,
          "endLine": 2824,
          "endColumn": 67,
          "message": "\"w-[14rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2839,
          "column": 56,
          "endLine": 2839,
          "endColumn": 67,
          "message": "\"w-[15rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2854,
          "column": 56,
          "endLine": 2854,
          "endColumn": 68,
          "message": "\"w-[9.5rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2886,
          "column": 27,
          "endLine": 2886,
          "endColumn": 120,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2897,
          "column": 13,
          "endLine": 2897,
          "endColumn": 42,
          "message": "\"w-[16rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2902,
          "column": 23,
          "endLine": 2902,
          "endColumn": 115,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2922,
          "column": 23,
          "endLine": 2922,
          "endColumn": 116,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2927,
          "column": 27,
          "endLine": 2927,
          "endColumn": 80,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3000,
          "column": 19,
          "endLine": 3000,
          "endColumn": 178,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3011,
          "column": 21,
          "endLine": 3011,
          "endColumn": 171,
          "message": "\"z-[60]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3141,
          "column": 23,
          "endLine": 3141,
          "endColumn": 90,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3160,
          "column": 33,
          "endLine": 3160,
          "endColumn": 69,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3195,
          "column": 29,
          "endLine": 3195,
          "endColumn": 164,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3227,
          "column": 27,
          "endLine": 3227,
          "endColumn": 167,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3259,
          "column": 32,
          "endLine": 3259,
          "endColumn": 81,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3278,
          "column": 35,
          "endLine": 3278,
          "endColumn": 89,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3388,
          "column": 34,
          "endLine": 3388,
          "endColumn": 81,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3395,
          "column": 33,
          "endLine": 3395,
          "endColumn": 155,
          "message": "\"border-[var(--oh-success)]/40\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3395,
          "column": 33,
          "endLine": 3395,
          "endColumn": 155,
          "message": "\"bg-[var(--oh-success)]/10\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3427,
          "column": 25,
          "endLine": 3427,
          "endColumn": 163,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3427,
          "column": 25,
          "endLine": 3427,
          "endColumn": 163,
          "message": "\"bg-[var(--oh-surface)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3427,
          "column": 25,
          "endLine": 3427,
          "endColumn": 163,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3444,
          "column": 21,
          "endLine": 3444,
          "endColumn": 125,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3470,
          "column": 32,
          "endLine": 3470,
          "endColumn": 74,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3520,
          "column": 29,
          "endLine": 3520,
          "endColumn": 65,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3528,
          "column": 21,
          "endLine": 3528,
          "endColumn": 65,
          "message": "\"text-[var(--oh-warning)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3560,
          "column": 13,
          "endLine": 3560,
          "endColumn": 82,
          "message": "\"border-[var(--oh-interactive-hover)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3561,
          "column": 13,
          "endLine": 3561,
          "endColumn": 135,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3561,
          "column": 13,
          "endLine": 3561,
          "endColumn": 135,
          "message": "\"hover:border-[var(--oh-interactive-hover)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3568,
          "column": 27,
          "endLine": 3568,
          "endColumn": 78,
          "message": "\"text-[var(--oh-text-tertiary)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/automations/setup/automation-setup-prompt-stack.tsx",
      "errorCount": 0,
      "warningCount": 38,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 83,
          "column": 13,
          "endLine": 83,
          "endColumn": 39,
          "message": "\"max-w-[200px]\" hardcodes an off-token value. Use \"max-w-50\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 110,
          "column": 21,
          "endLine": 110,
          "endColumn": 91,
          "message": "\"z-[60]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 110,
          "column": 21,
          "endLine": 110,
          "endColumn": 91,
          "message": "\"min-w-[200px]\" hardcodes an off-token value. Use \"min-w-50\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 110,
          "column": 21,
          "endLine": 110,
          "endColumn": 91,
          "message": "\"max-w-[320px]\" hardcodes an off-token value. Use \"max-w-80\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 110,
          "column": 21,
          "endLine": 110,
          "endColumn": 91,
          "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 122,
          "column": 37,
          "endLine": 122,
          "endColumn": 71,
          "message": "\"bg-[var(--oh-interactive-hover)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 145,
          "column": 33,
          "endLine": 145,
          "endColumn": 67,
          "message": "\"bg-[var(--oh-interactive-hover)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 155,
          "column": 35,
          "endLine": 155,
          "endColumn": 86,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 204,
          "column": 13,
          "endLine": 204,
          "endColumn": 39,
          "message": "\"max-w-[200px]\" hardcodes an off-token value. Use \"max-w-50\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 231,
          "column": 21,
          "endLine": 231,
          "endColumn": 91,
          "message": "\"z-[60]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 231,
          "column": 21,
          "endLine": 231,
          "endColumn": 91,
          "message": "\"min-w-[200px]\" hardcodes an off-token value. Use \"min-w-50\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 231,
          "column": 21,
          "endLine": 231,
          "endColumn": 91,
          "message": "\"max-w-[320px]\" hardcodes an off-token value. Use \"max-w-80\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 231,
          "column": 21,
          "endLine": 231,
          "endColumn": 91,
          "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 243,
          "column": 33,
          "endLine": 243,
          "endColumn": 67,
          "message": "\"bg-[var(--oh-interactive-hover)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 265,
          "column": 33,
          "endLine": 265,
          "endColumn": 67,
          "message": "\"bg-[var(--oh-interactive-hover)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 311,
          "column": 19,
          "endLine": 311,
          "endColumn": 141,
          "message": "\"w-[520px]\" hardcodes an off-token value. Use \"w-130\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 311,
          "column": 19,
          "endLine": 311,
          "endColumn": 141,
          "message": "\"max-w-[90vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 311,
          "column": 19,
          "endLine": 311,
          "endColumn": 141,
          "message": "\"max-h-[85vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 311,
          "column": 19,
          "endLine": 311,
          "endColumn": 141,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 446,
          "column": 31,
          "endLine": 446,
          "endColumn": 67,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 466,
          "column": 23,
          "endLine": 466,
          "endColumn": 138,
          "message": "\"-mb-[15px]\" hardcodes an off-token value. Use \"-mb-3.75\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 466,
          "column": 23,
          "endLine": 466,
          "endColumn": 138,
          "message": "\"rounded-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-2xl (16px), rounded-xl (12px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 466,
          "column": 23,
          "endLine": 466,
          "endColumn": 138,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 466,
          "column": 23,
          "endLine": 466,
          "endColumn": 138,
          "message": "\"bg-[var(--oh-surface)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 476,
          "column": 25,
          "endLine": 476,
          "endColumn": 151,
          "message": "\"min-h-[120px]\" hardcodes an off-token value. Use \"min-h-30\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 490,
          "column": 27,
          "endLine": 490,
          "endColumn": 80,
          "message": "\"z-[1]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 498,
          "column": 19,
          "endLine": 498,
          "endColumn": 124,
          "message": "\"z-[2]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 508,
          "column": 23,
          "endLine": 508,
          "endColumn": 174,
          "message": "\"rounded-b-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-b-2xl (16px), rounded-b-xl (12px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 508,
          "column": 23,
          "endLine": 508,
          "endColumn": 174,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 508,
          "column": 23,
          "endLine": 508,
          "endColumn": 174,
          "message": "\"bg-[var(--oh-surface-raised)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 508,
          "column": 23,
          "endLine": 508,
          "endColumn": 174,
          "message": "\"pt-[calc(15px+0.5rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 519,
          "column": 35,
          "endLine": 519,
          "endColumn": 67,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 530,
          "column": 29,
          "endLine": 530,
          "endColumn": 155,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 552,
          "column": 33,
          "endLine": 552,
          "endColumn": 126,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 564,
          "column": 31,
          "endLine": 564,
          "endColumn": 184,
          "message": "\"z-[60]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 564,
          "column": 31,
          "endLine": 564,
          "endColumn": 184,
          "message": "\"w-[260px]\" hardcodes an off-token value. Use \"w-65\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 604,
          "column": 37,
          "endLine": 604,
          "endColumn": 81,
          "message": "\"text-[var(--oh-warning)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 702,
          "column": 23,
          "endLine": 702,
          "endColumn": 67,
          "message": "\"text-[var(--oh-warning)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/backends/backend-form-modal.tsx",
      "errorCount": 0,
      "warningCount": 13,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1062,
          "column": 19,
          "endLine": 1062,
          "endColumn": 109,
          "message": "\"transition-[grid-template-rows]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1063,
          "column": 34,
          "endLine": 1063,
          "endColumn": 51,
          "message": "\"grid-rows-[1fr]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1063,
          "column": 54,
          "endLine": 1063,
          "endColumn": 71,
          "message": "\"grid-rows-[0fr]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 1205,
          "column": 51,
          "endLine": 1205,
          "endColumn": 57,
          "message": "Inline style sets height. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Identifier"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1206,
          "column": 17,
          "endLine": 1206,
          "endColumn": 109,
          "message": "\"transition-[height]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1288,
          "column": 11,
          "endLine": 1288,
          "endColumn": 101,
          "message": "\"transition-[grid-template-rows]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1289,
          "column": 24,
          "endLine": 1289,
          "endColumn": 41,
          "message": "\"grid-rows-[1fr]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1289,
          "column": 44,
          "endLine": 1289,
          "endColumn": 61,
          "message": "\"grid-rows-[0fr]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1405,
          "column": 11,
          "endLine": 1405,
          "endColumn": 127,
          "message": "\"min-h-[13.5rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1409,
          "column": 11,
          "endLine": 1409,
          "endColumn": 109,
          "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.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1653,
          "column": 31,
          "endLine": 1653,
          "endColumn": 70,
          "message": "\"align-[-0.125em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1735,
          "column": 13,
          "endLine": 1735,
          "endColumn": 130,
          "message": "\"max-h-[92vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1763,
          "column": 11,
          "endLine": 1763,
          "endColumn": 109,
          "message": "\"max-h-[92dvh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/backends/backend-row.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 122,
          "column": 25,
          "endLine": 122,
          "endColumn": 136,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/backends/backend-status-dot.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 32,
          "column": 13,
          "endLine": 32,
          "endColumn": 25,
          "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/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/backends/backend-version.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 34,
          "column": 17,
          "endLine": 34,
          "endColumn": 162,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/backends/environment-switch-overlay.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 156,
          "column": 17,
          "endLine": 156,
          "endColumn": 127,
          "message": "\"z-[2147483646]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/backends/manage-backends-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 171,
          "column": 41,
          "endLine": 171,
          "endColumn": 51,
          "message": "\"h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 171,
          "column": 54,
          "endLine": 171,
          "endColumn": 68,
          "message": "\"max-h-[70vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/backends/managed-agents/digitalocean-connect-panel.tsx",
      "errorCount": 0,
      "warningCount": 5,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 38,
          "column": 3,
          "endLine": 38,
          "endColumn": 73,
          "message": "\"min-h-[13.5rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 40,
          "column": 3,
          "endLine": 40,
          "endColumn": 275,
          "message": "\"focus-visible:outline-blue-300\" 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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 63,
          "column": 19,
          "endLine": 63,
          "endColumn": 268,
          "message": "\"focus-visible:outline-blue-300\" 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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 157,
          "column": 21,
          "endLine": 157,
          "endColumn": 248,
          "message": "\"focus-visible:outline-blue-300\" 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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 332,
          "column": 13,
          "endLine": 332,
          "endColumn": 302,
          "message": "\"focus-visible:outline-blue-300\" 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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassFar",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/backends/managed-agents/managed-agents-session-row.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 90,
          "column": 29,
          "endLine": 90,
          "endColumn": 76,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 111,
          "column": 31,
          "endLine": 111,
          "endColumn": 131,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/canvas-extensions/add-canvas-extension-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 51,
          "column": 19,
          "endLine": 51,
          "endColumn": 125,
          "message": "\"max-w-[90vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 51,
          "column": 19,
          "endLine": 51,
          "endColumn": 125,
          "message": "\"max-h-[85vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/canvas-extensions/canvas-extension-card.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 85,
          "column": 21,
          "endLine": 85,
          "endColumn": 80,
          "message": "\"grid-cols-[auto_1fr]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/btw-messages.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 22,
          "column": 17,
          "endLine": 22,
          "endColumn": 111,
          "message": "\"max-h-[40vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/change-agent-button.tsx",
      "errorCount": 0,
      "warningCount": 5,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 168,
          "column": 11,
          "endLine": 168,
          "endColumn": 46,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 172,
          "column": 15,
          "endLine": 172,
          "endColumn": 64,
          "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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 172,
          "column": 15,
          "endLine": 172,
          "endColumn": 64,
          "message": "\"bg-[#4A67BD]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 178,
          "column": 13,
          "endLine": 178,
          "endColumn": 48,
          "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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 188,
          "column": 38,
          "endLine": 188,
          "endColumn": 97,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/chat-markdown-path-code.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 96,
          "column": 9,
          "endLine": 96,
          "endColumn": 144,
          "message": "\"px-[0.4em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 96,
          "column": 9,
          "endLine": 96,
          "endColumn": 144,
          "message": "\"py-[0.2em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/chat-message.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 133,
          "column": 17,
          "endLine": 133,
          "endColumn": 86,
          "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 162,
          "column": 11,
          "endLine": 162,
          "endColumn": 57,
          "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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 239,
          "column": 21,
          "endLine": 239,
          "endColumn": 99,
          "message": "\"z-[1]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/chat-send-button.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 41,
          "column": 21,
          "endLine": 41,
          "endColumn": 65,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/chat-status-indicator.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 18,
          "column": 9,
          "endLine": 18,
          "endColumn": 83,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 25,
          "column": 21,
          "endLine": 25,
          "endColumn": 78,
          "message": "\"animate-[pulse_1.2s_ease-in-out_infinite]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 41,
          "column": 21,
          "endLine": 41,
          "endColumn": 105,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/chat-suggestions.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 28,
          "column": 29,
          "endLine": 28,
          "endColumn": 83,
          "message": "\"text-[32px]\" hardcodes an off-token value. Nearest on the scale: text-3xl (30px), text-4xl (36px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/components/chat-input-actions.tsx",
      "errorCount": 0,
      "warningCount": 4,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 358,
          "column": 17,
          "endLine": 358,
          "endColumn": 127,
          "message": "\"top-[-4px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 424,
          "column": 15,
          "endLine": 424,
          "endColumn": 125,
          "message": "\"top-[-4px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 438,
          "column": 25,
          "endLine": 438,
          "endColumn": 79,
          "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 535,
          "column": 31,
          "endLine": 535,
          "endColumn": 50,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/chat/components/chat-input-container.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 73,
          "column": 9,
          "endLine": 73,
          "endColumn": 124,
          "message": "\"rounded-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-2xl (16px), rounded-xl (12px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 74,
          "column": 40,
          "endLine": 74,
          "endColumn": 65,
          "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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/components/chat-input-llm-profile-picker.tsx",
      "errorCount": 0,
      "warningCount": 4,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 79,
          "column": 40,
          "endLine": 79,
          "endColumn": 113,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 257,
          "column": 31,
          "endLine": 257,
          "endColumn": 47,
          "message": "Inline style sets maxHeight. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Identifier"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 261,
          "column": 21,
          "endLine": 261,
          "endColumn": 81,
          "message": "\"z-[60]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 261,
          "column": 21,
          "endLine": 261,
          "endColumn": 81,
          "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/components/chat-input-model.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 77,
          "column": 40,
          "endLine": 77,
          "endColumn": 113,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 197,
          "column": 21,
          "endLine": 197,
          "endColumn": 81,
          "message": "\"z-[60]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 197,
          "column": 21,
          "endLine": 197,
          "endColumn": 81,
          "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/components/chat-input-profile-picker.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 58,
          "column": 40,
          "endLine": 58,
          "endColumn": 113,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 103,
          "column": 42,
          "endLine": 103,
          "endColumn": 79,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/components/context-window-meter.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 104,
          "column": 13,
          "endLine": 104,
          "endColumn": 60,
          "message": "\"z-[60]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 122,
          "column": 37,
          "endLine": 122,
          "endColumn": 63,
          "message": "Inline style sets borderColor. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Identifier"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 135,
          "column": 33,
          "endLine": 135,
          "endColumn": 69,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "TemplateLiteral"
        }
      ]
    },
    {
      "file": "src/components/features/chat/components/context-window-ring.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 62,
          "column": 26,
          "endLine": 62,
          "endColumn": 52,
          "message": "Inline style sets stroke. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Identifier"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 77,
          "column": 19,
          "endLine": 77,
          "endColumn": 71,
          "message": "\"transition-[stroke-dashoffset,stroke]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/drag-over.tsx",
      "errorCount": 0,
      "warningCount": 5,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 16,
          "column": 23,
          "endLine": 16,
          "endColumn": 74,
          "message": "\"rotate-[-27deg]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 16,
          "column": 23,
          "endLine": 16,
          "endColumn": 74,
          "message": "\"top-[-40px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 16,
          "column": 23,
          "endLine": 16,
          "endColumn": 74,
          "message": "\"left-[-10px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 21,
          "column": 23,
          "endLine": 21,
          "endColumn": 58,
          "message": "\"top-[-16px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 21,
          "column": 23,
          "endLine": 21,
          "endColumn": 58,
          "message": "\"left-[-20px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/git-control-bar-branch-button.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 49,
          "column": 9,
          "endLine": 49,
          "endColumn": 147,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 52,
          "column": 13,
          "endLine": 52,
          "endColumn": 93,
          "message": "\"border-[rgba(71,74,84,0.50)]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/git-control-bar-repo-button.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 57,
          "column": 11,
          "endLine": 57,
          "endColumn": 127,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 84,
          "column": 9,
          "endLine": 84,
          "endColumn": 118,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 85,
          "column": 9,
          "endLine": 85,
          "endColumn": 61,
          "message": "\"border-[rgba(71,74,84,0.50)]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/plan-preview.tsx",
      "errorCount": 0,
      "warningCount": 7,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 70,
          "column": 20,
          "endLine": 70,
          "endColumn": 79,
          "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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 74,
          "column": 36,
          "endLine": 74,
          "endColumn": 103,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 74,
          "column": 36,
          "endLine": 74,
          "endColumn": 103,
          "message": "\"tracking-[0.11px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 84,
          "column": 38,
          "endLine": 84,
          "endColumn": 105,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 84,
          "column": 38,
          "endLine": 84,
          "endColumn": 105,
          "message": "\"tracking-[0.11px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 94,
          "column": 19,
          "endLine": 94,
          "endColumn": 85,
          "message": "\"text-[15px]\" hardcodes an off-token value. Nearest on the scale: text-sm (14px), text-base (16px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 108,
          "column": 27,
          "endLine": 108,
          "endColumn": 84,
          "message": "\"text-[#4a67bd]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/task-tracking/task-item.tsx",
      "errorCount": 0,
      "warningCount": 4,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 25,
          "column": 38,
          "endLine": 25,
          "endColumn": 62,
          "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-contrast. Use one of those, or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 27,
          "column": 47,
          "endLine": 27,
          "endColumn": 71,
          "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-contrast. Use one of those, or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 31,
          "column": 38,
          "endLine": 31,
          "endColumn": 62,
          "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-contrast. Use one of those, or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 50,
          "column": 38,
          "endLine": 50,
          "endColumn": 62,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/tool-visualizers/primitives/code-block.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 55,
          "column": 14,
          "endLine": 55,
          "endColumn": 51,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "CallExpression"
        }
      ]
    },
    {
      "file": "src/components/features/chat/tool-visualizers/primitives/key-value-grid.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 14,
          "column": 20,
          "endLine": 14,
          "endColumn": 71,
          "message": "\"grid-cols-[auto_1fr]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/tool-visualizers/primitives/markdown-file-preview.tsx",
      "errorCount": 0,
      "warningCount": 5,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 171,
          "column": 19,
          "endLine": 171,
          "endColumn": 135,
          "message": "\"[--oh-scroll-fade-from:var(--oh-surface)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 186,
          "column": 38,
          "endLine": 186,
          "endColumn": 109,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 186,
          "column": 38,
          "endLine": 186,
          "endColumn": 109,
          "message": "\"tracking-[0.11px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 197,
          "column": 40,
          "endLine": 197,
          "endColumn": 95,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 197,
          "column": 40,
          "endLine": 197,
          "endColumn": 95,
          "message": "\"tracking-[0.11px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/uploaded-file.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 43,
          "column": 27,
          "endLine": 43,
          "endColumn": 72,
          "message": "\"text-[9px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/user-message-body.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 81,
          "column": 11,
          "endLine": 81,
          "endColumn": 72,
          "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/workspace-mode-selector.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 75,
          "column": 11,
          "endLine": 75,
          "endColumn": 118,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 76,
          "column": 11,
          "endLine": 76,
          "endColumn": 77,
          "message": "\"border-[rgba(71,74,84,0.50)]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/command-menu/command-menu-trigger.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 66,
          "column": 24,
          "endLine": 66,
          "endColumn": 151,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 66,
          "column": 24,
          "endLine": 66,
          "endColumn": 151,
          "message": "\"tracking-[0.12em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/command-menu/command-menu.tsx",
      "errorCount": 0,
      "warningCount": 13,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 201,
          "column": 17,
          "endLine": 201,
          "endColumn": 94,
          "message": "\"z-[70]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 201,
          "column": 17,
          "endLine": 201,
          "endColumn": 94,
          "message": "\"pt-[10vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 209,
          "column": 19,
          "endLine": 209,
          "endColumn": 84,
          "message": "\"backdrop-blur-[2px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 215,
          "column": 11,
          "endLine": 215,
          "endColumn": 104,
          "message": "\"max-h-[min(720px,78vh)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 217,
          "column": 11,
          "endLine": 217,
          "endColumn": 89,
          "message": "\"shadow-[0_24px_90px_rgba(0,0,0,0.52),0_0_0_1px_rgba(255,255,255,0.03)_inset]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 251,
          "column": 26,
          "endLine": 251,
          "endColumn": 171,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 251,
          "column": 26,
          "endLine": 251,
          "endColumn": 171,
          "message": "\"tracking-[0.18em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 285,
          "column": 34,
          "endLine": 285,
          "endColumn": 118,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 285,
          "column": 34,
          "endLine": 285,
          "endColumn": 118,
          "message": "\"tracking-[0.18em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 305,
          "column": 29,
          "endLine": 305,
          "endColumn": 141,
          "message": "\"shadow-[0_0_0_1px_color-mix(in_srgb,var(--oh-contrast)_8%,transparent)_inset]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 338,
          "column": 43,
          "endLine": 338,
          "endColumn": 185,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 338,
          "column": 43,
          "endLine": 338,
          "endColumn": 185,
          "message": "\"tracking-[0.14em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 398,
          "column": 24,
          "endLine": 398,
          "endColumn": 86,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/context-menu/context-menu-icon-text-with-description.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 37,
          "column": 34,
          "endLine": 37,
          "endColumn": 102,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/controls/agent-status.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 150,
          "column": 19,
          "endLine": 150,
          "endColumn": 93,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 157,
          "column": 11,
          "endLine": 157,
          "endColumn": 268,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/controls/server-status.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 57,
          "column": 25,
          "endLine": 57,
          "endColumn": 64,
          "message": "\"text-[13px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/controls/tools-context-menu.tsx",
      "errorCount": 0,
      "warningCount": 6,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 96,
          "column": 17,
          "endLine": 96,
          "endColumn": 74,
          "message": "\"left-[-16px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 117,
          "column": 15,
          "endLine": 117,
          "endColumn": 125,
          "message": "\"top-[-4px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 129,
          "column": 25,
          "endLine": 129,
          "endColumn": 79,
          "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 159,
          "column": 17,
          "endLine": 159,
          "endColumn": 127,
          "message": "\"top-[-6px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 190,
          "column": 15,
          "endLine": 190,
          "endColumn": 125,
          "message": "\"top-[-4px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 215,
          "column": 27,
          "endLine": 215,
          "endColumn": 42,
          "message": "\"stroke-[1.75]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/advanced-conversation-options-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 131,
          "column": 24,
          "endLine": 131,
          "endColumn": 68,
          "message": "\"w-[calc(100%+3rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 150,
          "column": 23,
          "endLine": 150,
          "endColumn": 103,
          "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/budget-progress-bar.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "messages": [
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 20,
          "column": 25,
          "endLine": 20,
          "endColumn": 37,
          "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/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 20,
          "column": 40,
          "endLine": 20,
          "endColumn": 53,
          "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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 24,
          "column": 18,
          "endLine": 24,
          "endColumn": 54,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "TemplateLiteral"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/cloud-new-conversation-menu.tsx",
      "errorCount": 0,
      "warningCount": 6,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 230,
          "column": 21,
          "endLine": 230,
          "endColumn": 28,
          "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 231,
          "column": 16,
          "endLine": 231,
          "endColumn": 28,
          "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "MemberExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 232,
          "column": 17,
          "endLine": 232,
          "endColumn": 30,
          "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "MemberExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 233,
          "column": 18,
          "endLine": 233,
          "endColumn": 32,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "MemberExpression"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 319,
          "column": 15,
          "endLine": 319,
          "endColumn": 81,
          "message": "\"max-h-[40vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 333,
          "column": 27,
          "endLine": 333,
          "endColumn": 61,
          "message": "\"text-[#F87171]\" hardcodes a color. Nearest theme tokens: text-status-error, text-danger. Use one of those, or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/conversation-active-tag-filters.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 50,
          "column": 5,
          "endLine": 50,
          "endColumn": 157,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 96,
          "column": 19,
          "endLine": 96,
          "endColumn": 97,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-card-context-menu.tsx",
      "errorCount": 0,
      "warningCount": 4,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 94,
          "column": 27,
          "endLine": 94,
          "endColumn": 40,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 101,
          "column": 13,
          "endLine": 101,
          "endColumn": 64,
          "message": "\"max-w-[min(280px,100vw-16px)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 102,
          "column": 13,
          "endLine": 102,
          "endColumn": 27,
          "message": "\"z-[200]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 160,
          "column": 31,
          "endLine": 160,
          "endColumn": 46,
          "message": "\"stroke-[1.75]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-card-preview.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 147,
          "column": 17,
          "endLine": 147,
          "endColumn": 88,
          "message": "\"max-w-[min(280px,90vw)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-card.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 306,
          "column": 17,
          "endLine": 306,
          "endColumn": 34,
          "message": "\"min-w-[3.75rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-tag-chips.tsx",
      "errorCount": 0,
      "warningCount": 9,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 245,
          "column": 19,
          "endLine": 245,
          "endColumn": 116,
          "message": "\"z-[-1]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 313,
          "column": 15,
          "endLine": 313,
          "endColumn": 53,
          "message": "\"z-[9999]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 313,
          "column": 15,
          "endLine": 313,
          "endColumn": 53,
          "message": "\"min-w-[10rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 313,
          "column": 15,
          "endLine": 313,
          "endColumn": 53,
          "message": "\"max-w-[16rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 318,
          "column": 25,
          "endLine": 318,
          "endColumn": 32,
          "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 319,
          "column": 20,
          "endLine": 319,
          "endColumn": 34,
          "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "MemberExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 320,
          "column": 21,
          "endLine": 320,
          "endColumn": 36,
          "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "MemberExpression"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 333,
          "column": 29,
          "endLine": 333,
          "endColumn": 106,
          "message": "\"grid-cols-[minmax(0,auto)_minmax(0,1fr)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 333,
          "column": 29,
          "endLine": 333,
          "endColumn": 106,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/conversation-layouts-menu.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 258,
          "column": 27,
          "endLine": 258,
          "endColumn": 64,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/conversation-panel-wrapper.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 23,
          "column": 9,
          "endLine": 23,
          "endColumn": 77,
          "message": "\"z-[100]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/conversation-panel.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1126,
          "column": 13,
          "endLine": 1126,
          "endColumn": 77,
          "message": "\"w-[calc(100%+0.625rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/exit-conversation-modal.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 34,
          "column": 23,
          "endLine": 34,
          "endColumn": 37,
          "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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/hook-event-item.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 24,
          "column": 3,
          "endLine": 24,
          "endColumn": 149,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/hook-matcher-content.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 12,
          "column": 3,
          "endLine": 12,
          "endColumn": 140,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/hooks-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 50,
          "column": 11,
          "endLine": 50,
          "endColumn": 81,
          "message": "\"max-h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 62,
          "column": 24,
          "endLine": 62,
          "endColumn": 129,
          "message": "\"h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/local-new-conversation-menu.tsx",
      "errorCount": 0,
      "warningCount": 7,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 156,
          "column": 21,
          "endLine": 156,
          "endColumn": 28,
          "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 157,
          "column": 16,
          "endLine": 157,
          "endColumn": 28,
          "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "MemberExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 158,
          "column": 17,
          "endLine": 158,
          "endColumn": 30,
          "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "MemberExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 159,
          "column": 18,
          "endLine": 159,
          "endColumn": 32,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "MemberExpression"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 216,
          "column": 25,
          "endLine": 216,
          "endColumn": 76,
          "message": "\"text-[var(--oh-text-secondary)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 223,
          "column": 15,
          "endLine": 223,
          "endColumn": 57,
          "message": "\"max-h-[40vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 235,
          "column": 33,
          "endLine": 235,
          "endColumn": 57,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/menu-heading.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 6,
          "column": 3,
          "endLine": 6,
          "endColumn": 65,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/menu-row.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 71,
          "column": 27,
          "endLine": 71,
          "endColumn": 69,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/plugins-modal.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 40,
          "column": 11,
          "endLine": 40,
          "endColumn": 81,
          "message": "\"max-h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/skill-item.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 20,
          "column": 3,
          "endLine": 20,
          "endColumn": 149,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/skill-triggers.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 25,
          "column": 23,
          "endLine": 25,
          "endColumn": 160,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/skills-modal-section.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 19,
          "column": 38,
          "endLine": 19,
          "endColumn": 97,
          "message": "\"tracking-[0.01em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 22,
          "column": 27,
          "endLine": 22,
          "endColumn": 173,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/skills-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 75,
          "column": 11,
          "endLine": 75,
          "endColumn": 81,
          "message": "\"max-h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 87,
          "column": 24,
          "endLine": 87,
          "endColumn": 129,
          "message": "\"h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
      "errorCount": 0,
      "warningCount": 9,
      "messages": [
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 28,
          "column": 16,
          "endLine": 28,
          "endColumn": 68,
          "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/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 28,
          "column": 16,
          "endLine": 28,
          "endColumn": 68,
          "message": "\"text-green-400\" uses the raw Tailwind palette. Nearest theme tokens: text-status-success, text-feedback-success. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 28,
          "column": 16,
          "endLine": 28,
          "endColumn": 68,
          "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/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 30,
          "column": 16,
          "endLine": 30,
          "endColumn": 62,
          "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/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 30,
          "column": 16,
          "endLine": 30,
          "endColumn": 62,
          "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/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 30,
          "column": 16,
          "endLine": 30,
          "endColumn": 62,
          "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/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 32,
          "column": 16,
          "endLine": 32,
          "endColumn": 71,
          "message": "\"bg-yellow-500/10\" uses the raw Tailwind palette. Nearest theme tokens: bg-logo/10, bg-primary/10. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 32,
          "column": 16,
          "endLine": 32,
          "endColumn": 71,
          "message": "\"text-yellow-400\" uses the raw Tailwind palette. Nearest theme tokens: text-logo. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 32,
          "column": 16,
          "endLine": 32,
          "endColumn": 71,
          "message": "\"border-yellow-500/20\" uses the raw Tailwind palette. Nearest theme tokens: border-logo/20, border-primary/20. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/start-task-card/start-task-status-indicator.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "messages": [
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 14,
          "column": 16,
          "endLine": 14,
          "endColumn": 30,
          "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/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 16,
          "column": 16,
          "endLine": 16,
          "endColumn": 28,
          "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/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 24,
          "column": 16,
          "endLine": 24,
          "endColumn": 45,
          "message": "\"bg-yellow-500\" uses the raw Tailwind palette. Nearest theme tokens: bg-logo, bg-primary. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/system-message-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 46,
          "column": 13,
          "endLine": 46,
          "endColumn": 83,
          "message": "\"max-h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 66,
          "column": 28,
          "endLine": 66,
          "endColumn": 126,
          "message": "\"h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-git-actions-menu.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 110,
          "column": 14,
          "endLine": 110,
          "endColumn": 25,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 111,
          "column": 17,
          "endLine": 111,
          "endColumn": 37,
          "message": "\"min-w-[8rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-main/chat-interface-wrapper.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 84,
          "column": 31,
          "endLine": 84,
          "endColumn": 68,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-main/conversation-main.tsx",
      "errorCount": 0,
      "warningCount": 13,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 61,
          "column": 20,
          "endLine": 61,
          "endColumn": 180,
          "message": "\"[scrollbar-gutter:stable]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 62,
          "column": 22,
          "endLine": 62,
          "endColumn": 76,
          "message": "\"max-w-[800px]\" hardcodes an off-token value. Use \"max-w-200\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 66,
          "column": 21,
          "endLine": 66,
          "endColumn": 140,
          "message": "\"rounded-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-2xl (16px), rounded-xl (12px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 66,
          "column": 21,
          "endLine": 66,
          "endColumn": 140,
          "message": "\"shadow-[0_12px_40px_rgba(0,0,0,0.55)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 166,
          "column": 13,
          "endLine": 166,
          "endColumn": 78,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 191,
          "column": 27,
          "endLine": 191,
          "endColumn": 102,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 209,
          "column": 31,
          "endLine": 209,
          "endColumn": 55,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 267,
          "column": 37,
          "endLine": 267,
          "endColumn": 64,
          "message": "Inline style sets transitionProperty. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "ConditionalExpression"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 286,
          "column": 21,
          "endLine": 286,
          "endColumn": 66,
          "message": "\"transition-[width]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 294,
          "column": 21,
          "endLine": 298,
          "endColumn": 33,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "ConditionalExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 300,
          "column": 21,
          "endLine": 300,
          "endColumn": 75,
          "message": "Inline style sets transitionProperty. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "ConditionalExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 377,
          "column": 22,
          "endLine": 381,
          "endColumn": 23,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "ConditionalExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 382,
          "column": 35,
          "endLine": 382,
          "endColumn": 76,
          "message": "Inline style sets transitionProperty. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "ConditionalExpression"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-name-context-menu.tsx",
      "errorCount": 0,
      "warningCount": 4,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 83,
          "column": 17,
          "endLine": 83,
          "endColumn": 65,
          "message": "\"translate-x-[calc(1rem-1px)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 189,
          "column": 35,
          "endLine": 189,
          "endColumn": 72,
          "message": "\"translate-x-[34%]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 216,
          "column": 29,
          "endLine": 216,
          "endColumn": 44,
          "message": "\"stroke-[1.75]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 369,
          "column": 19,
          "endLine": 369,
          "endColumn": 30,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-name-with-status.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 126,
          "column": 25,
          "endLine": 126,
          "endColumn": 60,
          "message": "\"ml-[3.5px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-overview-context-menu.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 362,
          "column": 21,
          "endLine": 362,
          "endColumn": 37,
          "message": "\"z-[9999]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 414,
          "column": 19,
          "endLine": 414,
          "endColumn": 30,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-overview-drawer.tsx",
      "errorCount": 0,
      "warningCount": 5,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 53,
          "column": 52,
          "endLine": 53,
          "endColumn": 107,
          "message": "\"max-h-[min(50vh,420px)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 70,
          "column": 15,
          "endLine": 70,
          "endColumn": 60,
          "message": "\"transition-[transform,opacity]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 75,
          "column": 18,
          "endLine": 75,
          "endColumn": 53,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "ConditionalExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 76,
          "column": 31,
          "endLine": 78,
          "endColumn": 42,
          "message": "Inline style sets transitionProperty. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "ConditionalExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 83,
          "column": 27,
          "endLine": 83,
          "endColumn": 45,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "TemplateLiteral"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-overview-panel.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 51,
          "column": 23,
          "endLine": 51,
          "endColumn": 84,
          "message": "\"max-w-[45%]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-overview-toggle.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 125,
          "column": 20,
          "endLine": 125,
          "endColumn": 36,
          "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "MemberExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 126,
          "column": 21,
          "endLine": 126,
          "endColumn": 38,
          "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "MemberExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 127,
          "column": 22,
          "endLine": 127,
          "endColumn": 58,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-tabs/conversation-planner-build-bar.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 55,
          "column": 36,
          "endLine": 55,
          "endColumn": 96,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 188,
          "column": 21,
          "endLine": 188,
          "endColumn": 37,
          "message": "\"z-[9999]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 274,
          "column": 19,
          "endLine": 274,
          "endColumn": 30,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-tabs/conversation-tabs.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 321,
          "column": 21,
          "endLine": 321,
          "endColumn": 111,
          "message": "\"left-[-10000px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 452,
          "column": 40,
          "endLine": 452,
          "endColumn": 100,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-tabs/drawer-vscode-link.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 45,
          "column": 9,
          "endLine": 45,
          "endColumn": 114,
          "message": "\"rounded-[7px]\" hardcodes an off-token value. Nearest on the scale: rounded-md (6px), rounded-lg (8px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/usage-panel/context-meter.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 90,
          "column": 27,
          "endLine": 90,
          "endColumn": 48,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "TemplateLiteral"
        }
      ]
    },
    {
      "file": "src/components/features/diff-viewer/commit-row.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 48,
          "column": 25,
          "endLine": 48,
          "endColumn": 89,
          "message": "\"w-[7ch]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/diff-viewer/editor-container.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 19,
          "column": 9,
          "endLine": 19,
          "endColumn": 81,
          "message": "\"h-[var(--editor-height)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/diff-viewer/file-diff-viewer.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 322,
          "column": 31,
          "endLine": 322,
          "endColumn": 56,
          "message": "Inline style sets maxHeight. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/diff-viewer/uncommitted-changes-row.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 38,
          "column": 25,
          "endLine": 38,
          "endColumn": 89,
          "message": "\"w-[7ch]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/files-tab/file-content-viewer.tsx",
      "errorCount": 0,
      "warningCount": 12,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 198,
          "column": 19,
          "endLine": 198,
          "endColumn": 141,
          "message": "\"[--oh-scroll-fade-from:var(--oh-surface)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 203,
          "column": 13,
          "endLine": 203,
          "endColumn": 470,
          "message": "\"[--tw-prose-body:var(--oh-foreground)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 203,
          "column": 13,
          "endLine": 203,
          "endColumn": 470,
          "message": "\"[--tw-prose-bold:var(--oh-foreground)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 203,
          "column": 13,
          "endLine": 203,
          "endColumn": 470,
          "message": "\"[--tw-prose-headings:var(--oh-foreground)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 203,
          "column": 13,
          "endLine": 203,
          "endColumn": 470,
          "message": "\"[--tw-prose-lead:var(--oh-text-secondary)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 203,
          "column": 13,
          "endLine": 203,
          "endColumn": 470,
          "message": "\"[--tw-prose-counters:var(--oh-text-secondary)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 203,
          "column": 13,
          "endLine": 203,
          "endColumn": 470,
          "message": "\"[--tw-prose-quotes:var(--oh-foreground)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 203,
          "column": 13,
          "endLine": 203,
          "endColumn": 470,
          "message": "\"[--tw-prose-quote-borders:var(--oh-border-subtle)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 203,
          "column": 13,
          "endLine": 203,
          "endColumn": 470,
          "message": "\"[--tw-prose-bullets:var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 203,
          "column": 13,
          "endLine": 203,
          "endColumn": 470,
          "message": "\"[--tw-prose-hr:var(--oh-border-subtle)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 203,
          "column": 13,
          "endLine": 203,
          "endColumn": 470,
          "message": "\"[--tw-prose-captions:var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 203,
          "column": 13,
          "endLine": 203,
          "endColumn": 470,
          "message": "\"[--tw-prose-kbd:var(--oh-foreground)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/files-tab/file-quick-row.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 23,
          "column": 3,
          "endLine": 23,
          "endColumn": 83,
          "message": "\"[scrollbar-width:none]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 23,
          "column": 3,
          "endLine": 23,
          "endColumn": 83,
          "message": "\"[-ms-overflow-style:none]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/files-tab/highlighted-source-view.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 53,
          "column": 16,
          "endLine": 53,
          "endColumn": 53,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "CallExpression"
        }
      ]
    },
    {
      "file": "src/components/features/files-tab/tree-node.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 38,
          "column": 33,
          "endLine": 38,
          "endColumn": 48,
          "message": "Inline style sets paddingLeft. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "TemplateLiteral"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 85,
          "column": 31,
          "endLine": 85,
          "endColumn": 51,
          "message": "Inline style sets paddingLeft. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "TemplateLiteral"
        }
      ]
    },
    {
      "file": "src/components/features/files-tab/workspace-file-discovery-settings.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 63,
          "column": 11,
          "endLine": 63,
          "endColumn": 55,
          "message": "\"max-h-[90vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/home/featured-automations/automation-run-activity-sparkline.tsx",
      "errorCount": 0,
      "warningCount": 8,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 69,
          "column": 13,
          "endLine": 69,
          "endColumn": 47,
          "message": "\"rounded-[1px]\" hardcodes an off-token value. Nearest on the scale: rounded-xs (2px), rounded-sm (4px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 133,
          "column": 13,
          "endLine": 133,
          "endColumn": 55,
          "message": "\"rounded-[1px]\" hardcodes an off-token value. Nearest on the scale: rounded-xs (2px), rounded-sm (4px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 136,
          "column": 13,
          "endLine": 136,
          "endColumn": 87,
          "message": "\"group-hover/spark-bar:scale-x-[1.4]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 136,
          "column": 13,
          "endLine": 136,
          "endColumn": 87,
          "message": "\"group-hover/spark-bar:scale-y-[1.15]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 137,
          "column": 13,
          "endLine": 137,
          "endColumn": 103,
          "message": "\"group-focus-visible/spark-bar:scale-x-[1.4]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 137,
          "column": 13,
          "endLine": 137,
          "endColumn": 103,
          "message": "\"group-focus-visible/spark-bar:scale-y-[1.15]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 140,
          "column": 28,
          "endLine": 140,
          "endColumn": 72,
          "message": "Inline style sets height. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "CallExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 181,
          "column": 24,
          "endLine": 181,
          "endColumn": 56,
          "message": "Inline style sets height. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/home/featured-automations/home-automation-menu.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 149,
          "column": 22,
          "endLine": 149,
          "endColumn": 35,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/home/featured-automations/pinned-automation-card.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 158,
          "column": 11,
          "endLine": 158,
          "endColumn": 53,
          "message": "\"shadow-[inset_0_2px_0_0_var(--oh-focus)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 161,
          "column": 11,
          "endLine": 161,
          "endColumn": 54,
          "message": "\"shadow-[inset_0_-2px_0_0_var(--oh-focus)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/home/featured-automations/running-automations-list.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 117,
          "column": 26,
          "endLine": 117,
          "endColumn": 86,
          "message": "\"grid-cols-[auto_minmax(0,1fr)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/home/home-chat-launcher.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 289,
          "column": 17,
          "endLine": 289,
          "endColumn": 78,
          "message": "\"pt-[max(4rem,28vh)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 317,
          "column": 38,
          "endLine": 317,
          "endColumn": 79,
          "message": "\"text-[var(--oh-text-secondary)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/home/home-header/home-header-title.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 15,
          "column": 19,
          "endLine": 15,
          "endColumn": 63,
          "message": "\"text-[var(--oh-text-tertiary)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/home/home-launcher-mode-toggle.tsx",
      "errorCount": 0,
      "warningCount": 4,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 141,
          "column": 21,
          "endLine": 141,
          "endColumn": 114,
          "message": "\"bg-[var(--oh-surface-raised)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 159,
          "column": 23,
          "endLine": 159,
          "endColumn": 67,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 162,
          "column": 21,
          "endLine": 162,
          "endColumn": 55,
          "message": "\"bg-[var(--oh-interactive-hover)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 168,
          "column": 31,
          "endLine": 168,
          "endColumn": 95,
          "message": "\"bg-[var(--oh-interactive-hover)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/home/shared/clear-button.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 27,
          "column": 9,
          "endLine": 27,
          "endColumn": 26,
          "message": "\"text-[#fff]\" hardcodes a color. Nearest theme tokens: text-contrast. Use one of those, or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/home/shared/generic-dropdown-menu.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 92,
          "column": 11,
          "endLine": 92,
          "endColumn": 45,
          "message": "\"z-[9999]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 103,
          "column": 19,
          "endLine": 103,
          "endColumn": 45,
          "message": "\"max-h-[calc(15rem-3rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/home/workspace-dropdown/folder-browser-modal.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 30,
          "column": 3,
          "endLine": 30,
          "endColumn": 84,
          "message": "\"grid-cols-[minmax(0,1fr)_4rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 30,
          "column": 3,
          "endLine": 30,
          "endColumn": 84,
          "message": "\"md:grid-cols-[1fr_120px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 60,
          "column": 22,
          "endLine": 60,
          "endColumn": 103,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/home/workspace-dropdown/manage-workspaces-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 82,
          "column": 13,
          "endLine": 82,
          "endColumn": 27,
          "message": "\"max-h-[70vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 144,
          "column": 32,
          "endLine": 144,
          "endColumn": 109,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/images/image-lightbox.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 47,
          "column": 21,
          "endLine": 47,
          "endColumn": 74,
          "message": "\"max-h-[90vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 47,
          "column": 21,
          "endLine": 47,
          "endColumn": 74,
          "message": "\"max-w-[90vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/launch/plugin-launch-modal.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 143,
          "column": 11,
          "endLine": 143,
          "endColumn": 108,
          "message": "\"max-h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/manifest/manifest-setup-dialog.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 444,
          "column": 19,
          "endLine": 444,
          "endColumn": 124,
          "message": "\"max-h-[85vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 444,
          "column": 19,
          "endLine": 444,
          "endColumn": 124,
          "message": "\"w-[92vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/markdown/blockquote.tsx",
      "errorCount": 0,
      "warningCount": 20,
      "messages": [
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 28,
          "column": 21,
          "endLine": 28,
          "endColumn": 55,
          "message": "\"border-l-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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 28,
          "column": 21,
          "endLine": 28,
          "endColumn": 55,
          "message": "\"bg-blue-500/10\" 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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 29,
          "column": 17,
          "endLine": 29,
          "endColumn": 32,
          "message": "\"text-blue-300\" 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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 30,
          "column": 16,
          "endLine": 30,
          "endColumn": 31,
          "message": "\"text-blue-400\" 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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 35,
          "column": 21,
          "endLine": 35,
          "endColumn": 61,
          "message": "\"border-l-emerald-500\" uses the raw Tailwind palette. Nearest theme tokens: border-l-status-success. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 35,
          "column": 21,
          "endLine": 35,
          "endColumn": 61,
          "message": "\"bg-emerald-500/10\" uses the raw Tailwind palette. Nearest theme tokens: bg-status-success/10. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 36,
          "column": 17,
          "endLine": 36,
          "endColumn": 35,
          "message": "\"text-emerald-300\" uses the raw Tailwind palette. Nearest theme tokens: text-feedback-success. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 37,
          "column": 16,
          "endLine": 37,
          "endColumn": 34,
          "message": "\"text-emerald-400\" uses the raw Tailwind palette. Nearest theme tokens: text-status-success. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 42,
          "column": 21,
          "endLine": 42,
          "endColumn": 59,
          "message": "\"border-l-purple-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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 42,
          "column": 21,
          "endLine": 42,
          "endColumn": 59,
          "message": "\"bg-purple-500/10\" 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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 43,
          "column": 17,
          "endLine": 43,
          "endColumn": 34,
          "message": "\"text-purple-300\" 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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 44,
          "column": 16,
          "endLine": 44,
          "endColumn": 33,
          "message": "\"text-purple-400\" 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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 49,
          "column": 21,
          "endLine": 49,
          "endColumn": 59,
          "message": "\"border-l-yellow-500\" uses the raw Tailwind palette. Nearest theme tokens: border-l-logo, border-l-primary. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 49,
          "column": 21,
          "endLine": 49,
          "endColumn": 59,
          "message": "\"bg-yellow-500/10\" uses the raw Tailwind palette. Nearest theme tokens: bg-logo/10, bg-primary/10. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 50,
          "column": 17,
          "endLine": 50,
          "endColumn": 34,
          "message": "\"text-yellow-300\" uses the raw Tailwind palette. Nearest theme tokens: text-feedback-success. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 51,
          "column": 16,
          "endLine": 51,
          "endColumn": 33,
          "message": "\"text-yellow-400\" uses the raw Tailwind palette. Nearest theme tokens: text-logo. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 56,
          "column": 21,
          "endLine": 56,
          "endColumn": 55,
          "message": "\"border-l-rose-500\" uses the raw Tailwind palette. Nearest theme tokens: border-l-danger. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 56,
          "column": 21,
          "endLine": 56,
          "endColumn": 55,
          "message": "\"bg-rose-500/10\" uses the raw Tailwind palette. Nearest theme tokens: bg-danger/10. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 57,
          "column": 17,
          "endLine": 57,
          "endColumn": 32,
          "message": "\"text-rose-300\" 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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 58,
          "column": 16,
          "endLine": 58,
          "endColumn": 31,
          "message": "\"text-rose-400\" uses the raw Tailwind palette. Nearest theme tokens: text-status-error, text-danger. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/markdown/code.tsx",
      "errorCount": 0,
      "warningCount": 4,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 37,
          "column": 13,
          "endLine": 37,
          "endColumn": 107,
          "message": "\"px-[0.4em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 37,
          "column": 13,
          "endLine": 37,
          "endColumn": 107,
          "message": "\"py-[0.2em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 47,
          "column": 24,
          "endLine": 47,
          "endColumn": 118,
          "message": "\"p-[1em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 58,
          "column": 16,
          "endLine": 58,
          "endColumn": 53,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "CallExpression"
        }
      ]
    },
    {
      "file": "src/components/features/markdown/headings.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 24,
          "column": 19,
          "endLine": 24,
          "endColumn": 106,
          "message": "\"-tracking-[0.01em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/markdown/markdown-table-scroll.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 72,
          "column": 11,
          "endLine": 72,
          "endColumn": 99,
          "message": "\"from-[var(--oh-scroll-fade-from,var(--oh-color-base))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 84,
          "column": 11,
          "endLine": 84,
          "endColumn": 99,
          "message": "\"from-[var(--oh-scroll-fade-from,var(--oh-color-base))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/mcp-logo-badge.tsx",
      "errorCount": 0,
      "warningCount": 4,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 54,
          "column": 9,
          "endLine": 54,
          "endColumn": 113,
          "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.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 59,
          "column": 26,
          "endLine": 59,
          "endColumn": 69,
          "message": "Inline style sets backgroundColor. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "LogicalExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 61,
          "column": 11,
          "endLine": 62,
          "endColumn": 61,
          "message": "Inline style sets color. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "LogicalExpression"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 71,
          "column": 21,
          "endLine": 71,
          "endColumn": 59,
          "message": "\"p-[22%]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/mcp-page/custom-server-editor.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 242,
          "column": 21,
          "endLine": 242,
          "endColumn": 150,
          "message": "\"max-w-[90vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 242,
          "column": 21,
          "endLine": 242,
          "endColumn": 150,
          "message": "\"max-h-[90vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/mcp-page/install-server-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 721,
          "column": 19,
          "endLine": 721,
          "endColumn": 168,
          "message": "\"max-w-[90vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 721,
          "column": 19,
          "endLine": 721,
          "endColumn": 168,
          "message": "\"max-h-[85vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/mcp-page/mcp-logo-stack-badge.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 8,
          "column": 3,
          "endLine": 8,
          "endColumn": 183,
          "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.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/mcp-page/mcp-server-health.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 28,
          "column": 11,
          "endLine": 28,
          "endColumn": 23,
          "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/tailwind.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/mcp-page/save-as-secret-toggle.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 48,
          "column": 13,
          "endLine": 48,
          "endColumn": 112,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 62,
          "column": 23,
          "endLine": 62,
          "endColumn": 156,
          "message": "\"text-[9px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/onboarding/onboarding-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 92,
          "column": 27,
          "endLine": 92,
          "endColumn": 54,
          "message": "Inline style sets transform. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "TemplateLiteral"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 319,
          "column": 13,
          "endLine": 319,
          "endColumn": 27,
          "message": "\"max-h-[90vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/onboarding/steps/say-hello-step.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 82,
          "column": 17,
          "endLine": 82,
          "endColumn": 56,
          "message": "\"max-h-[calc(90vh-7rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 96,
          "column": 19,
          "endLine": 96,
          "endColumn": 151,
          "message": "\"rounded-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-2xl (16px), rounded-xl (12px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 134,
          "column": 21,
          "endLine": 134,
          "endColumn": 58,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/onboarding/steps/setup-llm-step.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 344,
          "column": 17,
          "endLine": 344,
          "endColumn": 62,
          "message": "\"max-h-[calc(90vh-7rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/plugins/add-plugin-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 55,
          "column": 19,
          "endLine": 55,
          "endColumn": 125,
          "message": "\"max-w-[90vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 55,
          "column": 19,
          "endLine": 55,
          "endColumn": 125,
          "message": "\"max-h-[85vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/plugins/plugin-detail-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 45,
          "column": 19,
          "endLine": 45,
          "endColumn": 125,
          "message": "\"max-w-[90vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 45,
          "column": 19,
          "endLine": 45,
          "endColumn": 125,
          "message": "\"max-h-[85vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/plugins/plugin-picker-modal.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 34,
          "column": 11,
          "endLine": 34,
          "endColumn": 108,
          "message": "\"max-h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/plugins/plugin-picker-trigger.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 51,
          "column": 21,
          "endLine": 51,
          "endColumn": 168,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/acp-credentials-section.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 49,
          "column": 36,
          "endLine": 49,
          "endColumn": 60,
          "message": "\"text-[#717888]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/agent-canvas-update-card.tsx",
      "errorCount": 0,
      "warningCount": 9,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 170,
          "column": 11,
          "endLine": 170,
          "endColumn": 95,
          "message": "\"max-h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 214,
          "column": 30,
          "endLine": 214,
          "endColumn": 138,
          "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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 214,
          "column": 30,
          "endLine": 214,
          "endColumn": 138,
          "message": "\"bg-[#1E3A5F]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 214,
          "column": 30,
          "endLine": 214,
          "endColumn": 138,
          "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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 225,
          "column": 31,
          "endLine": 225,
          "endColumn": 137,
          "message": "\"hover:text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 242,
          "column": 31,
          "endLine": 242,
          "endColumn": 137,
          "message": "\"hover:text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 325,
          "column": 19,
          "endLine": 325,
          "endColumn": 97,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 327,
          "column": 23,
          "endLine": 327,
          "endColumn": 105,
          "message": "\"bg-[#1E3A5F]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 327,
          "column": 23,
          "endLine": 327,
          "endColumn": 105,
          "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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/agent-canvas-version-modal.tsx",
      "errorCount": 0,
      "warningCount": 9,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 101,
          "column": 26,
          "endLine": 101,
          "endColumn": 139,
          "message": "\"max-w-[90vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 110,
          "column": 25,
          "endLine": 110,
          "endColumn": 57,
          "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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 127,
          "column": 29,
          "endLine": 127,
          "endColumn": 105,
          "message": "\"bg-[#1E3A5F]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 127,
          "column": 29,
          "endLine": 127,
          "endColumn": 105,
          "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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 135,
          "column": 26,
          "endLine": 135,
          "endColumn": 57,
          "message": "\"text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 144,
          "column": 27,
          "endLine": 144,
          "endColumn": 133,
          "message": "\"hover:text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 152,
          "column": 28,
          "endLine": 152,
          "endColumn": 59,
          "message": "\"text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 164,
          "column": 31,
          "endLine": 164,
          "endColumn": 119,
          "message": "\"hover:text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 229,
          "column": 25,
          "endLine": 229,
          "endColumn": 160,
          "message": "\"hover:text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/agent-canvas-version-tile.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 77,
          "column": 23,
          "endLine": 77,
          "endColumn": 55,
          "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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/agent-profiles/agent-profile-actions-menu.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 191,
          "column": 19,
          "endLine": 191,
          "endColumn": 30,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/settings/backend-synced-settings-badge.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 40,
          "column": 34,
          "endLine": 40,
          "endColumn": 89,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/brand-button.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 60,
          "column": 11,
          "endLine": 60,
          "endColumn": 146,
          "message": "\"text-[var(--oh-accent-foreground)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/llm-profiles/add-models-modal.tsx",
      "errorCount": 0,
      "warningCount": 7,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 393,
          "column": 23,
          "endLine": 393,
          "endColumn": 126,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 393,
          "column": 23,
          "endLine": 393,
          "endColumn": 126,
          "message": "\"bg-[var(--oh-background)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 421,
          "column": 25,
          "endLine": 421,
          "endColumn": 128,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 421,
          "column": 25,
          "endLine": 421,
          "endColumn": 128,
          "message": "\"bg-[var(--oh-background)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 439,
          "column": 27,
          "endLine": 439,
          "endColumn": 87,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 448,
          "column": 23,
          "endLine": 448,
          "endColumn": 83,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 463,
          "column": 23,
          "endLine": 463,
          "endColumn": 55,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/llm-profiles/profile-actions-menu.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 221,
          "column": 19,
          "endLine": 221,
          "endColumn": 30,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/settings/llm-profiles/provider-connection-actions-menu.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 174,
          "column": 19,
          "endLine": 174,
          "endColumn": 30,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/settings/llm-settings/openai-subscription-auth-card.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 207,
          "column": 25,
          "endLine": 207,
          "endColumn": 62,
          "message": "\"tracking-[0.08em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/meta-llm-profiles/meta-llm-settings-view.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 285,
          "column": 19,
          "endLine": 285,
          "endColumn": 51,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 320,
          "column": 23,
          "endLine": 320,
          "endColumn": 55,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 358,
          "column": 23,
          "endLine": 358,
          "endColumn": 55,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/meta-llm-profiles/meta-profile-actions-menu.tsx",
      "errorCount": 0,
      "warningCount": 5,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 51,
          "column": 9,
          "endLine": 51,
          "endColumn": 77,
          "message": "\"text-[var(--oh-foreground)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 51,
          "column": 9,
          "endLine": 51,
          "endColumn": 77,
          "message": "\"hover:bg-[var(--oh-interactive-hover)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 179,
          "column": 9,
          "endLine": 179,
          "endColumn": 139,
          "message": "\"w-[160px]\" hardcodes an off-token value. Use \"w-40\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 179,
          "column": 9,
          "endLine": 179,
          "endColumn": 139,
          "message": "\"border-[var(--oh-border-subtle)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 225,
          "column": 19,
          "endLine": 225,
          "endColumn": 30,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/settings/meta-llm-profiles/meta-profile-editor.tsx",
      "errorCount": 0,
      "warningCount": 4,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 243,
          "column": 22,
          "endLine": 243,
          "endColumn": 54,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 272,
          "column": 22,
          "endLine": 272,
          "endColumn": 54,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 306,
          "column": 22,
          "endLine": 306,
          "endColumn": 54,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 329,
          "column": 26,
          "endLine": 329,
          "endColumn": 58,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/meta-llm-profiles/meta-profile-row.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 55,
          "column": 21,
          "endLine": 55,
          "endColumn": 81,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/settings-nav-header.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 16,
          "column": 34,
          "endLine": 16,
          "endColumn": 107,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/settings-switch.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 61,
          "column": 27,
          "endLine": 61,
          "endColumn": 123,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 61,
          "column": 27,
          "endLine": 61,
          "endColumn": 123,
          "message": "\"font-[500]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/upgrade-button.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 24,
          "column": 9,
          "endLine": 24,
          "endColumn": 166,
          "message": "\"text-[9px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 24,
          "column": 9,
          "endLine": 24,
          "endColumn": 166,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/setup-guide/super-admin-setup-guide.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 329,
          "column": 33,
          "endLine": 329,
          "endColumn": 50,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "TemplateLiteral"
        }
      ]
    },
    {
      "file": "src/components/features/sidebar/mars-session-panel.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 285,
          "column": 22,
          "endLine": 285,
          "endColumn": 77,
          "message": "\"w-[calc(100%+0.625rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 322,
          "column": 21,
          "endLine": 322,
          "endColumn": 51,
          "message": "\"max-h-[40vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/sidebar/sidebar-layout.ts",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 63,
          "column": 5,
          "endLine": 63,
          "endColumn": 91,
          "message": "\"z-[1]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/sidebar/sidebar-rail-body.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 367,
          "column": 31,
          "endLine": 367,
          "endColumn": 86,
          "message": "\"z-[1]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 378,
          "column": 27,
          "endLine": 378,
          "endColumn": 78,
          "message": "\"bottom-[-4px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 404,
          "column": 15,
          "endLine": 404,
          "endColumn": 83,
          "message": "\"w-[calc(100%+0.625rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/sidebar/sidebar.tsx",
      "errorCount": 0,
      "warningCount": 4,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 210,
          "column": 11,
          "endLine": 210,
          "endColumn": 105,
          "message": "\"transition-[width,min-width]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 235,
          "column": 42,
          "endLine": 235,
          "endColumn": 76,
          "message": "Inline style sets transitionDuration. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "TemplateLiteral"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 244,
          "column": 15,
          "endLine": 244,
          "endColumn": 101,
          "message": "\"w-[min(300px,85vw)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 249,
          "column": 42,
          "endLine": 249,
          "endColumn": 76,
          "message": "Inline style sets transitionDuration. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "TemplateLiteral"
        }
      ]
    },
    {
      "file": "src/components/features/skills/add-skill-modal.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 39,
          "column": 9,
          "endLine": 39,
          "endColumn": 93,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 124,
          "column": 19,
          "endLine": 124,
          "endColumn": 125,
          "message": "\"max-w-[90vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 124,
          "column": 19,
          "endLine": 124,
          "endColumn": 125,
          "message": "\"max-h-[85vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/skills/build-skill-pills.tsx",
      "errorCount": 0,
      "warningCount": 6,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 142,
          "column": 21,
          "endLine": 142,
          "endColumn": 221,
          "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/tailwind.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 142,
          "column": 21,
          "endLine": 142,
          "endColumn": 221,
          "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/tailwind.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 142,
          "column": 21,
          "endLine": 142,
          "endColumn": 221,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 142,
          "column": 21,
          "endLine": 142,
          "endColumn": 221,
          "message": "\"text-[#fca5a5]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 144,
          "column": 27,
          "endLine": 144,
          "endColumn": 63,
          "message": "\"bg-[#fca5a5]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 180,
          "column": 29,
          "endLine": 180,
          "endColumn": 72,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/skills/extensions-navigation.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 120,
          "column": 27,
          "endLine": 120,
          "endColumn": 150,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/skills/skill-card-pill-row.tsx",
      "errorCount": 0,
      "warningCount": 6,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 203,
          "column": 19,
          "endLine": 203,
          "endColumn": 118,
          "message": "\"z-[-1]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 255,
          "column": 15,
          "endLine": 255,
          "endColumn": 67,
          "message": "\"z-[9999]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 255,
          "column": 15,
          "endLine": 255,
          "endColumn": 67,
          "message": "\"max-w-[20rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 260,
          "column": 25,
          "endLine": 260,
          "endColumn": 32,
          "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 261,
          "column": 20,
          "endLine": 261,
          "endColumn": 34,
          "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "MemberExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 262,
          "column": 21,
          "endLine": 262,
          "endColumn": 36,
          "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "MemberExpression"
        }
      ]
    },
    {
      "file": "src/components/features/skills/skill-detail-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 103,
          "column": 19,
          "endLine": 103,
          "endColumn": 141,
          "message": "\"max-w-[90vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 103,
          "column": 19,
          "endLine": 103,
          "endColumn": 141,
          "message": "\"max-h-[85vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/skills/skill-facet-rail.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 50,
          "column": 25,
          "endLine": 50,
          "endColumn": 100,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/skills/skill-facet-row.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 49,
          "column": 11,
          "endLine": 49,
          "endColumn": 84,
          "message": "\"rounded-[3px]\" hardcodes an off-token value. Nearest on the scale: rounded-xs (2px), rounded-sm (4px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/skills/skill-filters-modal.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 43,
          "column": 24,
          "endLine": 43,
          "endColumn": 78,
          "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/skills/skill-icon-badge.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 18,
          "column": 9,
          "endLine": 18,
          "endColumn": 87,
          "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.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/skills/skill-type-badge.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 11,
          "column": 3,
          "endLine": 11,
          "endColumn": 188,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/skills/skills-toolbar.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 74,
          "column": 27,
          "endLine": 74,
          "endColumn": 109,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/suggestions/suggestion-item.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 37,
          "column": 17,
          "endLine": 37,
          "endColumn": 213,
          "message": "\"rounded-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-2xl (16px), rounded-xl (12px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 43,
          "column": 19,
          "endLine": 43,
          "endColumn": 95,
          "message": "\"text-[15px]\" hardcodes an off-token value. Nearest on the scale: text-sm (14px), text-base (16px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/shared/badge.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 11,
          "column": 9,
          "endLine": 11,
          "endColumn": 122,
          "message": "\"text-[var(--oh-accent-foreground)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/shared/buttons/circle-plus-check-toggle.tsx",
      "errorCount": 0,
      "warningCount": 4,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 96,
          "column": 17,
          "endLine": 96,
          "endColumn": 104,
          "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/tailwind.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 96,
          "column": 17,
          "endLine": 96,
          "endColumn": 104,
          "message": "\"text-[#ef4444]\" hardcodes a color. Nearest theme tokens: text-danger, text-status-error. Use one of those, or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 96,
          "column": 17,
          "endLine": 96,
          "endColumn": 104,
          "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/tailwind.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 110,
          "column": 25,
          "endLine": 110,
          "endColumn": 39,
          "message": "\"stroke-[2.5]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/shared/buttons/styled-tooltip.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 53,
          "column": 11,
          "endLine": 53,
          "endColumn": 72,
          "message": "\"z-[9999]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/shared/modals/modal-backdrop.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 68,
          "column": 20,
          "endLine": 68,
          "endColumn": 28,
          "message": "\"z-[70]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/shared/modals/settings/model-selector.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 22,
          "column": 3,
          "endLine": 22,
          "endColumn": 117,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 308,
          "column": 25,
          "endLine": 308,
          "endColumn": 79,
          "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "TemplateLiteral"
        }
      ]
    },
    {
      "file": "src/components/shared/risk-alert.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 24,
          "column": 11,
          "endLine": 24,
          "endColumn": 137,
          "message": "\"bg-[#4A0709]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 24,
          "column": 11,
          "endLine": 24,
          "endColumn": 137,
          "message": "\"border-[#FF0006]\" hardcodes a color. Nearest theme tokens: border-status-error, border-danger. Use one of those, or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/shared/text-shimmer.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 72,
          "column": 7,
          "endLine": 76,
          "endColumn": 9,
          "message": "A <style> element injects CSS outside the design system. Use classes, or declare the rule in your theme CSS.",
          "messageId": "styleElement",
          "nodeType": "JSXOpeningElement"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 79,
          "column": 16,
          "endLine": 79,
          "endColumn": 28,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/routes/agent-settings.tsx",
      "errorCount": 0,
      "warningCount": 9,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1237,
          "column": 25,
          "endLine": 1237,
          "endColumn": 195,
          "message": "\"border-[#717888]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1237,
          "column": 25,
          "endLine": 1237,
          "endColumn": 195,
          "message": "\"placeholder:text-[#717888]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1262,
          "column": 40,
          "endLine": 1262,
          "endColumn": 64,
          "message": "\"text-[#717888]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1271,
          "column": 25,
          "endLine": 1271,
          "endColumn": 43,
          "message": "\"border-[#3D4046]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1279,
          "column": 25,
          "endLine": 1279,
          "endColumn": 43,
          "message": "\"border-[#3D4046]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1355,
          "column": 25,
          "endLine": 1355,
          "endColumn": 49,
          "message": "\"text-[#717888]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1366,
          "column": 27,
          "endLine": 1366,
          "endColumn": 51,
          "message": "\"text-[#717888]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1376,
          "column": 25,
          "endLine": 1376,
          "endColumn": 49,
          "message": "\"text-[#717888]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1381,
          "column": 38,
          "endLine": 1381,
          "endColumn": 62,
          "message": "\"text-[#717888]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/routes/automation-setup-new.tsx",
      "errorCount": 0,
      "warningCount": 6,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 109,
          "column": 19,
          "endLine": 109,
          "endColumn": 138,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 133,
          "column": 23,
          "endLine": 133,
          "endColumn": 95,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 138,
          "column": 24,
          "endLine": 138,
          "endColumn": 184,
          "message": "\"[scrollbar-gutter:stable]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 139,
          "column": 26,
          "endLine": 139,
          "endColumn": 80,
          "message": "\"max-w-[800px]\" hardcodes an off-token value. Use \"max-w-200\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 143,
          "column": 25,
          "endLine": 143,
          "endColumn": 144,
          "message": "\"rounded-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-2xl (16px), rounded-xl (12px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 143,
          "column": 25,
          "endLine": 143,
          "endColumn": 144,
          "message": "\"shadow-[0_12px_40px_rgba(0,0,0,0.55)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/routes/device-verify.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 155,
          "column": 28,
          "endLine": 155,
          "endColumn": 90,
          "message": "\"tracking-[0.3em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/routes/files-tab.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 163,
          "column": 19,
          "endLine": 163,
          "endColumn": 176,
          "message": "\"rounded-[7px]\" hardcodes an off-token value. Nearest on the scale: rounded-md (6px), rounded-lg (8px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 210,
          "column": 35,
          "endLine": 210,
          "endColumn": 51,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "TemplateLiteral"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 250,
          "column": 35,
          "endLine": 250,
          "endColumn": 158,
          "message": "\"rounded-[7px]\" hardcodes an off-token value. Nearest on the scale: rounded-md (6px), rounded-lg (8px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/routes/meta-llm-settings.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 24,
          "column": 19,
          "endLine": 24,
          "endColumn": 51,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/ui/dropdown/dropdown-menu.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 43,
          "column": 24,
          "endLine": 43,
          "endColumn": 61,
          "message": "\"max-w-[min(26rem,calc(100vw-2rem))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/ui/dropdown/dropdown.tsx",
      "errorCount": 0,
      "warningCount": 18,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 15,
          "column": 13,
          "endLine": 15,
          "endColumn": 23,
          "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 15,
          "column": 13,
          "endLine": 15,
          "endColumn": 23,
          "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 16,
          "column": 10,
          "endLine": 16,
          "endColumn": 11,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 16,
          "column": 10,
          "endLine": 16,
          "endColumn": 11,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 17,
          "column": 11,
          "endLine": 17,
          "endColumn": 12,
          "message": "Inline style sets height. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 17,
          "column": 11,
          "endLine": 17,
          "endColumn": 12,
          "message": "Inline style sets height. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 18,
          "column": 12,
          "endLine": 18,
          "endColumn": 13,
          "message": "Inline style sets padding. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 18,
          "column": 12,
          "endLine": 18,
          "endColumn": 13,
          "message": "Inline style sets padding. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 19,
          "column": 11,
          "endLine": 19,
          "endColumn": 13,
          "message": "Inline style sets margin. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "UnaryExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 19,
          "column": 11,
          "endLine": 19,
          "endColumn": 13,
          "message": "Inline style sets margin. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "UnaryExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 20,
          "column": 13,
          "endLine": 20,
          "endColumn": 21,
          "message": "Inline style sets overflow. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 20,
          "column": 13,
          "endLine": 20,
          "endColumn": 21,
          "message": "Inline style sets overflow. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 21,
          "column": 9,
          "endLine": 21,
          "endColumn": 27,
          "message": "Inline style sets clip. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 21,
          "column": 9,
          "endLine": 21,
          "endColumn": 27,
          "message": "Inline style sets clip. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 22,
          "column": 15,
          "endLine": 22,
          "endColumn": 23,
          "message": "Inline style sets whiteSpace. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 22,
          "column": 15,
          "endLine": 22,
          "endColumn": 23,
          "message": "Inline style sets whiteSpace. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 23,
          "column": 11,
          "endLine": 23,
          "endColumn": 12,
          "message": "Inline style sets border. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 23,
          "column": 11,
          "endLine": 23,
          "endColumn": 12,
          "message": "Inline style sets border. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/ui/pre.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 42,
          "column": 14,
          "endLine": 42,
          "endColumn": 28,
          "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/ui/typography.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 7,
          "column": 11,
          "endLine": 7,
          "endColumn": 60,
          "message": "\"text-[32px]\" hardcodes an off-token value. Nearest on the scale: text-3xl (30px), text-4xl (36px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 8,
          "column": 11,
          "endLine": 8,
          "endColumn": 75,
          "message": "\"-tracking-[0.02em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/utils/custom-toast-handlers.tsx",
      "errorCount": 0,
      "warningCount": 8,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 81,
          "column": 19,
          "endLine": 81,
          "endColumn": 102,
          "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 81,
          "column": 19,
          "endLine": 81,
          "endColumn": 102,
          "message": "\"[overflow-wrap:anywhere]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 130,
          "column": 21,
          "endLine": 130,
          "endColumn": 71,
          "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 130,
          "column": 21,
          "endLine": 130,
          "endColumn": 71,
          "message": "\"[overflow-wrap:anywhere]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 144,
          "column": 21,
          "endLine": 144,
          "endColumn": 71,
          "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 144,
          "column": 21,
          "endLine": 144,
          "endColumn": 71,
          "message": "\"[overflow-wrap:anywhere]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 165,
          "column": 21,
          "endLine": 165,
          "endColumn": 71,
          "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 165,
          "column": 21,
          "endLine": 165,
          "endColumn": 71,
          "message": "\"[overflow-wrap:anywhere]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/utils/dropdown-classes.ts",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 71,
          "column": 3,
          "endLine": 71,
          "endColumn": 40,
          "message": "\"max-h-[min(60vh,calc(100dvh-5rem))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/utils/form-control-classes.ts",
      "errorCount": 0,
      "warningCount": 4,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 21,
          "column": 3,
          "endLine": 21,
          "endColumn": 66,
          "message": "\"transition-[background-color,border-color,box-shadow,opacity]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 32,
          "column": 3,
          "endLine": 32,
          "endColumn": 67,
          "message": "\"!transition-[background-color,border-color,box-shadow,opacity]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 39,
          "column": 3,
          "endLine": 39,
          "endColumn": 27,
          "message": "\"transition-[transform]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 50,
          "column": 3,
          "endLine": 50,
          "endColumn": 84,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/utils/git-control-bar-classes.ts",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 4,
          "column": 3,
          "endLine": 4,
          "endColumn": 68,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/utils/hover-reveal-classes.ts",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 78,
          "column": 13,
          "endLine": 78,
          "endColumn": 30,
          "message": "\"min-w-[3.75rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/utils/modal-classes.ts",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 5,
          "column": 3,
          "endLine": 5,
          "endColumn": 70,
          "message": "\"-tracking-[0.01em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/utils/settings-list-classes.ts",
      "errorCount": 0,
      "warningCount": 1,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 23,
          "column": 3,
          "endLine": 23,
          "endColumn": 42,
          "message": "\"max-h-[min(70vh,39rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    }
  ],
  "noRawColors": {
    "count": 40,
    "files": 7,
    "groups": [
      {
        "file": "src/components/features/backends/backend-status-dot.tsx",
        "findings": [
          {
            "file": "src/components/features/backends/backend-status-dot.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "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/tailwind.css for a new color.",
            "line": 32,
            "column": 13,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 32,
            "endColumn": 25,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-status-error"
                },
                "fix": {
                  "range": [
                    856,
                    868
                  ],
                  "text": "\"bg-status-error\""
                },
                "desc": "Replace with \"bg-status-error\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-danger"
                },
                "fix": {
                  "range": [
                    856,
                    868
                  ],
                  "text": "\"bg-danger\""
                },
                "desc": "Replace with \"bg-danger\"."
              }
            ]
          }
        ]
      },
      {
        "file": "src/components/features/backends/managed-agents/digitalocean-connect-panel.tsx",
        "findings": [
          {
            "file": "src/components/features/backends/managed-agents/digitalocean-connect-panel.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"focus-visible:outline-blue-300\" 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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 40,
            "column": 3,
            "nodeType": "Literal",
            "messageId": "paletteClassFar",
            "endLine": 40,
            "endColumn": 275
          },
          {
            "file": "src/components/features/backends/managed-agents/digitalocean-connect-panel.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"focus-visible:outline-blue-300\" 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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 63,
            "column": 19,
            "nodeType": "Literal",
            "messageId": "paletteClassFar",
            "endLine": 63,
            "endColumn": 268
          },
          {
            "file": "src/components/features/backends/managed-agents/digitalocean-connect-panel.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"focus-visible:outline-blue-300\" 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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 157,
            "column": 21,
            "nodeType": "Literal",
            "messageId": "paletteClassFar",
            "endLine": 157,
            "endColumn": 248
          },
          {
            "file": "src/components/features/backends/managed-agents/digitalocean-connect-panel.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"focus-visible:outline-blue-300\" 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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 332,
            "column": 13,
            "nodeType": "Literal",
            "messageId": "paletteClassFar",
            "endLine": 332,
            "endColumn": 302
          }
        ]
      },
      {
        "file": "src/components/features/conversation-panel/budget-progress-bar.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation-panel/budget-progress-bar.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "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/tailwind.css for a new color.",
            "line": 20,
            "column": 25,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 20,
            "endColumn": 37,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-status-error"
                },
                "fix": {
                  "range": [
                    539,
                    551
                  ],
                  "text": "\"bg-status-error\""
                },
                "desc": "Replace with \"bg-status-error\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-danger"
                },
                "fix": {
                  "range": [
                    539,
                    551
                  ],
                  "text": "\"bg-danger\""
                },
                "desc": "Replace with \"bg-danger\"."
              }
            ]
          },
          {
            "file": "src/components/features/conversation-panel/budget-progress-bar.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 20,
            "column": 40,
            "nodeType": "Literal",
            "messageId": "paletteClassFar",
            "endLine": 20,
            "endColumn": 53
          }
        ]
      },
      {
        "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "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/tailwind.css for a new color.",
            "line": 28,
            "column": 16,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 28,
            "endColumn": 68,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-status-success/10"
                },
                "fix": {
                  "range": [
                    929,
                    981
                  ],
                  "text": "\"bg-status-success/10 text-green-400 border-green-500/20\""
                },
                "desc": "Replace with \"bg-status-success/10\"."
              }
            ]
          },
          {
            "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"text-green-400\" uses the raw Tailwind palette. Nearest theme tokens: text-status-success, text-feedback-success. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 28,
            "column": 16,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 28,
            "endColumn": 68,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-status-success"
                },
                "fix": {
                  "range": [
                    929,
                    981
                  ],
                  "text": "\"bg-green-500/10 text-status-success border-green-500/20\""
                },
                "desc": "Replace with \"text-status-success\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-feedback-success"
                },
                "fix": {
                  "range": [
                    929,
                    981
                  ],
                  "text": "\"bg-green-500/10 text-feedback-success border-green-500/20\""
                },
                "desc": "Replace with \"text-feedback-success\"."
              }
            ]
          },
          {
            "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "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/tailwind.css for a new color.",
            "line": 28,
            "column": 16,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 28,
            "endColumn": 68,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-status-success/20"
                },
                "fix": {
                  "range": [
                    929,
                    981
                  ],
                  "text": "\"bg-green-500/10 text-green-400 border-status-success/20\""
                },
                "desc": "Replace with \"border-status-success/20\"."
              }
            ]
          },
          {
            "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "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/tailwind.css for a new color.",
            "line": 30,
            "column": 16,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 30,
            "endColumn": 62,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-status-error/10"
                },
                "fix": {
                  "range": [
                    1018,
                    1064
                  ],
                  "text": "\"bg-status-error/10 text-red-400 border-red-500/20\""
                },
                "desc": "Replace with \"bg-status-error/10\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-danger/10"
                },
                "fix": {
                  "range": [
                    1018,
                    1064
                  ],
                  "text": "\"bg-danger/10 text-red-400 border-red-500/20\""
                },
                "desc": "Replace with \"bg-danger/10\"."
              }
            ]
          },
          {
            "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "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/tailwind.css for a new color.",
            "line": 30,
            "column": 16,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 30,
            "endColumn": 62,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-status-error"
                },
                "fix": {
                  "range": [
                    1018,
                    1064
                  ],
                  "text": "\"bg-red-500/10 text-status-error border-red-500/20\""
                },
                "desc": "Replace with \"text-status-error\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-danger"
                },
                "fix": {
                  "range": [
                    1018,
                    1064
                  ],
                  "text": "\"bg-red-500/10 text-danger border-red-500/20\""
                },
                "desc": "Replace with \"text-danger\"."
              }
            ]
          },
          {
            "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "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/tailwind.css for a new color.",
            "line": 30,
            "column": 16,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 30,
            "endColumn": 62,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-status-error/20"
                },
                "fix": {
                  "range": [
                    1018,
                    1064
                  ],
                  "text": "\"bg-red-500/10 text-red-400 border-status-error/20\""
                },
                "desc": "Replace with \"border-status-error/20\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-danger/20"
                },
                "fix": {
                  "range": [
                    1018,
                    1064
                  ],
                  "text": "\"bg-red-500/10 text-red-400 border-danger/20\""
                },
                "desc": "Replace with \"border-danger/20\"."
              }
            ]
          },
          {
            "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"bg-yellow-500/10\" uses the raw Tailwind palette. Nearest theme tokens: bg-logo/10, bg-primary/10. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 32,
            "column": 16,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 32,
            "endColumn": 71,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-logo/10"
                },
                "fix": {
                  "range": [
                    1096,
                    1151
                  ],
                  "text": "\"bg-logo/10 text-yellow-400 border-yellow-500/20\""
                },
                "desc": "Replace with \"bg-logo/10\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-primary/10"
                },
                "fix": {
                  "range": [
                    1096,
                    1151
                  ],
                  "text": "\"bg-primary/10 text-yellow-400 border-yellow-500/20\""
                },
                "desc": "Replace with \"bg-primary/10\"."
              }
            ]
          },
          {
            "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"text-yellow-400\" uses the raw Tailwind palette. Nearest theme tokens: text-logo. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 32,
            "column": 16,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 32,
            "endColumn": 71,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-logo"
                },
                "fix": {
                  "range": [
                    1096,
                    1151
                  ],
                  "text": "\"bg-yellow-500/10 text-logo border-yellow-500/20\""
                },
                "desc": "Replace with \"text-logo\"."
              }
            ]
          },
          {
            "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"border-yellow-500/20\" uses the raw Tailwind palette. Nearest theme tokens: border-logo/20, border-primary/20. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 32,
            "column": 16,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 32,
            "endColumn": 71,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-logo/20"
                },
                "fix": {
                  "range": [
                    1096,
                    1151
                  ],
                  "text": "\"bg-yellow-500/10 text-yellow-400 border-logo/20\""
                },
                "desc": "Replace with \"border-logo/20\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-primary/20"
                },
                "fix": {
                  "range": [
                    1096,
                    1151
                  ],
                  "text": "\"bg-yellow-500/10 text-yellow-400 border-primary/20\""
                },
                "desc": "Replace with \"border-primary/20\"."
              }
            ]
          }
        ]
      },
      {
        "file": "src/components/features/conversation-panel/start-task-card/start-task-status-indicator.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation-panel/start-task-card/start-task-status-indicator.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "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/tailwind.css for a new color.",
            "line": 14,
            "column": 16,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 14,
            "endColumn": 30,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-status-success"
                },
                "fix": {
                  "range": [
                    437,
                    451
                  ],
                  "text": "\"bg-status-success\""
                },
                "desc": "Replace with \"bg-status-success\"."
              }
            ]
          },
          {
            "file": "src/components/features/conversation-panel/start-task-card/start-task-status-indicator.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "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/tailwind.css for a new color.",
            "line": 16,
            "column": 16,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 16,
            "endColumn": 28,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-status-error"
                },
                "fix": {
                  "range": [
                    488,
                    500
                  ],
                  "text": "\"bg-status-error\""
                },
                "desc": "Replace with \"bg-status-error\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-danger"
                },
                "fix": {
                  "range": [
                    488,
                    500
                  ],
                  "text": "\"bg-danger\""
                },
                "desc": "Replace with \"bg-danger\"."
              }
            ]
          },
          {
            "file": "src/components/features/conversation-panel/start-task-card/start-task-status-indicator.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"bg-yellow-500\" uses the raw Tailwind palette. Nearest theme tokens: bg-logo, bg-primary. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 24,
            "column": 16,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 24,
            "endColumn": 45,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-logo"
                },
                "fix": {
                  "range": [
                    746,
                    775
                  ],
                  "text": "\"bg-logo animate-pulse\""
                },
                "desc": "Replace with \"bg-logo\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-primary"
                },
                "fix": {
                  "range": [
                    746,
                    775
                  ],
                  "text": "\"bg-primary animate-pulse\""
                },
                "desc": "Replace with \"bg-primary\"."
              }
            ]
          }
        ]
      },
      {
        "file": "src/components/features/markdown/blockquote.tsx",
        "findings": [
          {
            "file": "src/components/features/markdown/blockquote.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"border-l-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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 28,
            "column": 21,
            "nodeType": "Literal",
            "messageId": "paletteClassFar",
            "endLine": 28,
            "endColumn": 55
          },
          {
            "file": "src/components/features/markdown/blockquote.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"bg-blue-500/10\" 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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 28,
            "column": 21,
            "nodeType": "Literal",
            "messageId": "paletteClassFar",
            "endLine": 28,
            "endColumn": 55
          },
          {
            "file": "src/components/features/markdown/blockquote.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"text-blue-300\" 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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 29,
            "column": 17,
            "nodeType": "Literal",
            "messageId": "paletteClassFar",
            "endLine": 29,
            "endColumn": 32
          },
          {
            "file": "src/components/features/markdown/blockquote.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"text-blue-400\" 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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 30,
            "column": 16,
            "nodeType": "Literal",
            "messageId": "paletteClassFar",
            "endLine": 30,
            "endColumn": 31
          },
          {
            "file": "src/components/features/markdown/blockquote.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"border-l-emerald-500\" uses the raw Tailwind palette. Nearest theme tokens: border-l-status-success. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 35,
            "column": 21,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 35,
            "endColumn": 61,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-l-status-success"
                },
                "fix": {
                  "range": [
                    917,
                    957
                  ],
                  "text": "\"border-l-status-success bg-emerald-500/10\""
                },
                "desc": "Replace with \"border-l-status-success\"."
              }
            ]
          },
          {
            "file": "src/components/features/markdown/blockquote.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"bg-emerald-500/10\" uses the raw Tailwind palette. Nearest theme tokens: bg-status-success/10. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 35,
            "column": 21,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 35,
            "endColumn": 61,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-status-success/10"
                },
                "fix": {
                  "range": [
                    917,
                    957
                  ],
                  "text": "\"border-l-emerald-500 bg-status-success/10\""
                },
                "desc": "Replace with \"bg-status-success/10\"."
              }
            ]
          },
          {
            "file": "src/components/features/markdown/blockquote.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"text-emerald-300\" uses the raw Tailwind palette. Nearest theme tokens: text-feedback-success. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 36,
            "column": 17,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 36,
            "endColumn": 35,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-feedback-success"
                },
                "fix": {
                  "range": [
                    975,
                    993
                  ],
                  "text": "\"text-feedback-success\""
                },
                "desc": "Replace with \"text-feedback-success\"."
              }
            ]
          },
          {
            "file": "src/components/features/markdown/blockquote.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"text-emerald-400\" uses the raw Tailwind palette. Nearest theme tokens: text-status-success. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 37,
            "column": 16,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 37,
            "endColumn": 34,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-status-success"
                },
                "fix": {
                  "range": [
                    1010,
                    1028
                  ],
                  "text": "\"text-status-success\""
                },
                "desc": "Replace with \"text-status-success\"."
              }
            ]
          },
          {
            "file": "src/components/features/markdown/blockquote.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"border-l-purple-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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 42,
            "column": 21,
            "nodeType": "Literal",
            "messageId": "paletteClassFar",
            "endLine": 42,
            "endColumn": 59
          },
          {
            "file": "src/components/features/markdown/blockquote.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"bg-purple-500/10\" 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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 42,
            "column": 21,
            "nodeType": "Literal",
            "messageId": "paletteClassFar",
            "endLine": 42,
            "endColumn": 59
          },
          {
            "file": "src/components/features/markdown/blockquote.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"text-purple-300\" 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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 43,
            "column": 17,
            "nodeType": "Literal",
            "messageId": "paletteClassFar",
            "endLine": 43,
            "endColumn": 34
          },
          {
            "file": "src/components/features/markdown/blockquote.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"text-purple-400\" 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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 44,
            "column": 16,
            "nodeType": "Literal",
            "messageId": "paletteClassFar",
            "endLine": 44,
            "endColumn": 33
          },
          {
            "file": "src/components/features/markdown/blockquote.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"border-l-yellow-500\" uses the raw Tailwind palette. Nearest theme tokens: border-l-logo, border-l-primary. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 49,
            "column": 21,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 49,
            "endColumn": 59,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-l-logo"
                },
                "fix": {
                  "range": [
                    1327,
                    1365
                  ],
                  "text": "\"border-l-logo bg-yellow-500/10\""
                },
                "desc": "Replace with \"border-l-logo\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-l-primary"
                },
                "fix": {
                  "range": [
                    1327,
                    1365
                  ],
                  "text": "\"border-l-primary bg-yellow-500/10\""
                },
                "desc": "Replace with \"border-l-primary\"."
              }
            ]
          },
          {
            "file": "src/components/features/markdown/blockquote.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"bg-yellow-500/10\" uses the raw Tailwind palette. Nearest theme tokens: bg-logo/10, bg-primary/10. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 49,
            "column": 21,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 49,
            "endColumn": 59,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-logo/10"
                },
                "fix": {
                  "range": [
                    1327,
                    1365
                  ],
                  "text": "\"border-l-yellow-500 bg-logo/10\""
                },
                "desc": "Replace with \"bg-logo/10\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-primary/10"
                },
                "fix": {
                  "range": [
                    1327,
                    1365
                  ],
                  "text": "\"border-l-yellow-500 bg-primary/10\""
                },
                "desc": "Replace with \"bg-primary/10\"."
              }
            ]
          },
          {
            "file": "src/components/features/markdown/blockquote.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"text-yellow-300\" uses the raw Tailwind palette. Nearest theme tokens: text-feedback-success. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 50,
            "column": 17,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 50,
            "endColumn": 34,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-feedback-success"
                },
                "fix": {
                  "range": [
                    1383,
                    1400
                  ],
                  "text": "\"text-feedback-success\""
                },
                "desc": "Replace with \"text-feedback-success\"."
              }
            ]
          },
          {
            "file": "src/components/features/markdown/blockquote.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"text-yellow-400\" uses the raw Tailwind palette. Nearest theme tokens: text-logo. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 51,
            "column": 16,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 51,
            "endColumn": 33,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-logo"
                },
                "fix": {
                  "range": [
                    1417,
                    1434
                  ],
                  "text": "\"text-logo\""
                },
                "desc": "Replace with \"text-logo\"."
              }
            ]
          },
          {
            "file": "src/components/features/markdown/blockquote.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"border-l-rose-500\" uses the raw Tailwind palette. Nearest theme tokens: border-l-danger. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 56,
            "column": 21,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 56,
            "endColumn": 55,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-l-danger"
                },
                "fix": {
                  "range": [
                    1520,
                    1554
                  ],
                  "text": "\"border-l-danger bg-rose-500/10\""
                },
                "desc": "Replace with \"border-l-danger\"."
              }
            ]
          },
          {
            "file": "src/components/features/markdown/blockquote.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"bg-rose-500/10\" uses the raw Tailwind palette. Nearest theme tokens: bg-danger/10. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 56,
            "column": 21,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 56,
            "endColumn": 55,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-danger/10"
                },
                "fix": {
                  "range": [
                    1520,
                    1554
                  ],
                  "text": "\"border-l-rose-500 bg-danger/10\""
                },
                "desc": "Replace with \"bg-danger/10\"."
              }
            ]
          },
          {
            "file": "src/components/features/markdown/blockquote.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"text-rose-300\" 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 (+44 more), or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 57,
            "column": 17,
            "nodeType": "Literal",
            "messageId": "paletteClassFar",
            "endLine": 57,
            "endColumn": 32
          },
          {
            "file": "src/components/features/markdown/blockquote.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "message": "\"text-rose-400\" uses the raw Tailwind palette. Nearest theme tokens: text-status-error, text-danger. Use one of those, or declare --color-<name> in src/tailwind.css for a new color.",
            "line": 58,
            "column": 16,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 58,
            "endColumn": 31,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-status-error"
                },
                "fix": {
                  "range": [
                    1604,
                    1619
                  ],
                  "text": "\"text-status-error\""
                },
                "desc": "Replace with \"text-status-error\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-danger"
                },
                "fix": {
                  "range": [
                    1604,
                    1619
                  ],
                  "text": "\"text-danger\""
                },
                "desc": "Replace with \"text-danger\"."
              }
            ]
          }
        ]
      },
      {
        "file": "src/components/features/mcp-page/mcp-server-health.tsx",
        "findings": [
          {
            "file": "src/components/features/mcp-page/mcp-server-health.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "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/tailwind.css for a new color.",
            "line": 28,
            "column": 11,
            "nodeType": "Literal",
            "messageId": "paletteClassNear",
            "endLine": 28,
            "endColumn": 23,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-status-error"
                },
                "fix": {
                  "range": [
                    1272,
                    1284
                  ],
                  "text": "\"bg-status-error\""
                },
                "desc": "Replace with \"bg-status-error\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-danger"
                },
                "fix": {
                  "range": [
                    1272,
                    1284
                  ],
                  "text": "\"bg-danger\""
                },
                "desc": "Replace with \"bg-danger\"."
              }
            ]
          }
        ]
      }
    ]
  },
  "noInlineStyles": {
    "count": 83,
    "files": 42,
    "groups": [
      {
        "file": "src/components/features/automations/add-automation-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/automations/add-automation-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "line": 145,
            "column": 25,
            "nodeType": "Identifier",
            "messageId": "dynamicStyle",
            "endLine": 145,
            "endColumn": 36,
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/automations/automation-view-toggle.tsx",
        "findings": [
          {
            "file": "src/components/features/automations/automation-view-toggle.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "line": 155,
            "column": 25,
            "nodeType": "Identifier",
            "messageId": "dynamicStyle",
            "endLine": 155,
            "endColumn": 36,
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/automations/kebab-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/automations/kebab-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "line": 137,
            "column": 25,
            "nodeType": "Identifier",
            "messageId": "dynamicStyle",
            "endLine": 137,
            "endColumn": 36,
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/backends/backend-form-modal.tsx",
        "findings": [
          {
            "file": "src/components/features/backends/backend-form-modal.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets height. Style through classes; use CSS custom properties for dynamic values.",
            "line": 1205,
            "column": 51,
            "nodeType": "Identifier",
            "messageId": "inlineStyle",
            "endLine": 1205,
            "endColumn": 57,
            "classification": "measured"
          }
        ]
      },
      {
        "file": "src/components/features/chat/components/chat-input-actions.tsx",
        "findings": [
          {
            "file": "src/components/features/chat/components/chat-input-actions.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "line": 535,
            "column": 31,
            "nodeType": "Identifier",
            "messageId": "dynamicStyle",
            "endLine": 535,
            "endColumn": 50,
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/chat/components/chat-input-llm-profile-picker.tsx",
        "findings": [
          {
            "file": "src/components/features/chat/components/chat-input-llm-profile-picker.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets maxHeight. Style through classes; use CSS custom properties for dynamic values.",
            "line": 257,
            "column": 31,
            "nodeType": "Identifier",
            "messageId": "inlineStyle",
            "endLine": 257,
            "endColumn": 47,
            "classification": "measured"
          }
        ]
      },
      {
        "file": "src/components/features/chat/components/context-window-meter.tsx",
        "findings": [
          {
            "file": "src/components/features/chat/components/context-window-meter.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets borderColor. Style through classes; use CSS custom properties for dynamic values.",
            "line": 122,
            "column": 37,
            "nodeType": "Identifier",
            "messageId": "inlineStyle",
            "endLine": 122,
            "endColumn": 63,
            "classification": "theme"
          },
          {
            "file": "src/components/features/chat/components/context-window-meter.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "line": 135,
            "column": 33,
            "nodeType": "TemplateLiteral",
            "messageId": "inlineStyle",
            "endLine": 135,
            "endColumn": 69,
            "classification": "measured"
          }
        ]
      },
      {
        "file": "src/components/features/chat/components/context-window-ring.tsx",
        "findings": [
          {
            "file": "src/components/features/chat/components/context-window-ring.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets stroke. Style through classes; use CSS custom properties for dynamic values.",
            "line": 62,
            "column": 26,
            "nodeType": "Identifier",
            "messageId": "inlineStyle",
            "endLine": 62,
            "endColumn": 52,
            "classification": "theme"
          }
        ]
      },
      {
        "file": "src/components/features/chat/tool-visualizers/primitives/code-block.tsx",
        "findings": [
          {
            "file": "src/components/features/chat/tool-visualizers/primitives/code-block.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "line": 55,
            "column": 14,
            "nodeType": "CallExpression",
            "messageId": "dynamicStyle",
            "endLine": 55,
            "endColumn": 51,
            "classification": "syntax"
          }
        ]
      },
      {
        "file": "src/components/features/conversation-panel/budget-progress-bar.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation-panel/budget-progress-bar.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "line": 24,
            "column": 18,
            "nodeType": "TemplateLiteral",
            "messageId": "inlineStyle",
            "endLine": 24,
            "endColumn": 54,
            "classification": "measured"
          }
        ]
      },
      {
        "file": "src/components/features/conversation-panel/cloud-new-conversation-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation-panel/cloud-new-conversation-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
            "line": 230,
            "column": 21,
            "nodeType": "Literal",
            "messageId": "inlineStyle",
            "endLine": 230,
            "endColumn": 28,
            "classification": "portal"
          },
          {
            "file": "src/components/features/conversation-panel/cloud-new-conversation-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
            "line": 231,
            "column": 16,
            "nodeType": "MemberExpression",
            "messageId": "inlineStyle",
            "endLine": 231,
            "endColumn": 28,
            "classification": "portal"
          },
          {
            "file": "src/components/features/conversation-panel/cloud-new-conversation-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
            "line": 232,
            "column": 17,
            "nodeType": "MemberExpression",
            "messageId": "inlineStyle",
            "endLine": 232,
            "endColumn": 30,
            "classification": "portal"
          },
          {
            "file": "src/components/features/conversation-panel/cloud-new-conversation-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "line": 233,
            "column": 18,
            "nodeType": "MemberExpression",
            "messageId": "inlineStyle",
            "endLine": 233,
            "endColumn": 32,
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/conversation-panel/conversation-card/conversation-card-context-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation-panel/conversation-card/conversation-card-context-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "line": 94,
            "column": 27,
            "nodeType": "Identifier",
            "messageId": "dynamicStyle",
            "endLine": 94,
            "endColumn": 40,
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/conversation-panel/conversation-card/conversation-tag-chips.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation-panel/conversation-card/conversation-tag-chips.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
            "line": 318,
            "column": 25,
            "nodeType": "Literal",
            "messageId": "inlineStyle",
            "endLine": 318,
            "endColumn": 32,
            "classification": "portal"
          },
          {
            "file": "src/components/features/conversation-panel/conversation-card/conversation-tag-chips.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
            "line": 319,
            "column": 20,
            "nodeType": "MemberExpression",
            "messageId": "inlineStyle",
            "endLine": 319,
            "endColumn": 34,
            "classification": "portal"
          },
          {
            "file": "src/components/features/conversation-panel/conversation-card/conversation-tag-chips.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
            "line": 320,
            "column": 21,
            "nodeType": "MemberExpression",
            "messageId": "inlineStyle",
            "endLine": 320,
            "endColumn": 36,
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/conversation-panel/local-new-conversation-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation-panel/local-new-conversation-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
            "line": 156,
            "column": 21,
            "nodeType": "Literal",
            "messageId": "inlineStyle",
            "endLine": 156,
            "endColumn": 28,
            "classification": "portal"
          },
          {
            "file": "src/components/features/conversation-panel/local-new-conversation-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
            "line": 157,
            "column": 16,
            "nodeType": "MemberExpression",
            "messageId": "inlineStyle",
            "endLine": 157,
            "endColumn": 28,
            "classification": "portal"
          },
          {
            "file": "src/components/features/conversation-panel/local-new-conversation-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
            "line": 158,
            "column": 17,
            "nodeType": "MemberExpression",
            "messageId": "inlineStyle",
            "endLine": 158,
            "endColumn": 30,
            "classification": "portal"
          },
          {
            "file": "src/components/features/conversation-panel/local-new-conversation-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "line": 159,
            "column": 18,
            "nodeType": "MemberExpression",
            "messageId": "inlineStyle",
            "endLine": 159,
            "endColumn": 32,
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/conversation/conversation-git-actions-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation/conversation-git-actions-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "line": 110,
            "column": 14,
            "nodeType": "Identifier",
            "messageId": "dynamicStyle",
            "endLine": 110,
            "endColumn": 25,
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/conversation/conversation-main/chat-interface-wrapper.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation/conversation-main/chat-interface-wrapper.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "line": 84,
            "column": 31,
            "nodeType": "Identifier",
            "messageId": "inlineStyle",
            "endLine": 84,
            "endColumn": 68,
            "classification": "fixed"
          }
        ]
      },
      {
        "file": "src/components/features/conversation/conversation-main/conversation-main.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation/conversation-main/conversation-main.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets transitionProperty. Style through classes; use CSS custom properties for dynamic values.",
            "line": 267,
            "column": 37,
            "nodeType": "ConditionalExpression",
            "messageId": "inlineStyle",
            "endLine": 267,
            "endColumn": 64,
            "classification": "measured"
          },
          {
            "file": "src/components/features/conversation/conversation-main/conversation-main.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "line": 294,
            "column": 21,
            "nodeType": "ConditionalExpression",
            "messageId": "inlineStyle",
            "endLine": 298,
            "endColumn": 33,
            "classification": "measured"
          },
          {
            "file": "src/components/features/conversation/conversation-main/conversation-main.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets transitionProperty. Style through classes; use CSS custom properties for dynamic values.",
            "line": 300,
            "column": 21,
            "nodeType": "ConditionalExpression",
            "messageId": "inlineStyle",
            "endLine": 300,
            "endColumn": 75,
            "classification": "measured"
          },
          {
            "file": "src/components/features/conversation/conversation-main/conversation-main.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "line": 377,
            "column": 22,
            "nodeType": "ConditionalExpression",
            "messageId": "inlineStyle",
            "endLine": 381,
            "endColumn": 23,
            "classification": "measured"
          },
          {
            "file": "src/components/features/conversation/conversation-main/conversation-main.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets transitionProperty. Style through classes; use CSS custom properties for dynamic values.",
            "line": 382,
            "column": 35,
            "nodeType": "ConditionalExpression",
            "messageId": "inlineStyle",
            "endLine": 382,
            "endColumn": 76,
            "classification": "measured"
          }
        ]
      },
      {
        "file": "src/components/features/conversation/conversation-name-context-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation/conversation-name-context-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "line": 369,
            "column": 19,
            "nodeType": "Identifier",
            "messageId": "dynamicStyle",
            "endLine": 369,
            "endColumn": 30,
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/conversation/conversation-overview-context-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation/conversation-overview-context-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "line": 414,
            "column": 19,
            "nodeType": "Identifier",
            "messageId": "dynamicStyle",
            "endLine": 414,
            "endColumn": 30,
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/conversation/conversation-overview-drawer.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation/conversation-overview-drawer.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "line": 75,
            "column": 18,
            "nodeType": "ConditionalExpression",
            "messageId": "inlineStyle",
            "endLine": 75,
            "endColumn": 53,
            "classification": "measured"
          },
          {
            "file": "src/components/features/conversation/conversation-overview-drawer.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets transitionProperty. Style through classes; use CSS custom properties for dynamic values.",
            "line": 76,
            "column": 31,
            "nodeType": "ConditionalExpression",
            "messageId": "inlineStyle",
            "endLine": 78,
            "endColumn": 42,
            "classification": "measured"
          },
          {
            "file": "src/components/features/conversation/conversation-overview-drawer.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "line": 83,
            "column": 27,
            "nodeType": "TemplateLiteral",
            "messageId": "inlineStyle",
            "endLine": 83,
            "endColumn": 45,
            "classification": "measured"
          }
        ]
      },
      {
        "file": "src/components/features/conversation/conversation-overview-toggle.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation/conversation-overview-toggle.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
            "line": 125,
            "column": 20,
            "nodeType": "MemberExpression",
            "messageId": "inlineStyle",
            "endLine": 125,
            "endColumn": 36,
            "classification": "portal"
          },
          {
            "file": "src/components/features/conversation/conversation-overview-toggle.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
            "line": 126,
            "column": 21,
            "nodeType": "MemberExpression",
            "messageId": "inlineStyle",
            "endLine": 126,
            "endColumn": 38,
            "classification": "portal"
          },
          {
            "file": "src/components/features/conversation/conversation-overview-toggle.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "line": 127,
            "column": 22,
            "nodeType": "Identifier",
            "messageId": "inlineStyle",
            "endLine": 127,
            "endColumn": 58,
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "line": 274,
            "column": 19,
            "nodeType": "Identifier",
            "messageId": "dynamicStyle",
            "endLine": 274,
            "endColumn": 30,
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/conversation/usage-panel/context-meter.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation/usage-panel/context-meter.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "line": 90,
            "column": 27,
            "nodeType": "TemplateLiteral",
            "messageId": "inlineStyle",
            "endLine": 90,
            "endColumn": 48,
            "classification": "measured"
          }
        ]
      },
      {
        "file": "src/components/features/diff-viewer/file-diff-viewer.tsx",
        "findings": [
          {
            "file": "src/components/features/diff-viewer/file-diff-viewer.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets maxHeight. Style through classes; use CSS custom properties for dynamic values.",
            "line": 322,
            "column": 31,
            "nodeType": "Identifier",
            "messageId": "inlineStyle",
            "endLine": 322,
            "endColumn": 56,
            "classification": "fixed"
          }
        ]
      },
      {
        "file": "src/components/features/files-tab/highlighted-source-view.tsx",
        "findings": [
          {
            "file": "src/components/features/files-tab/highlighted-source-view.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "line": 53,
            "column": 16,
            "nodeType": "CallExpression",
            "messageId": "dynamicStyle",
            "endLine": 53,
            "endColumn": 53,
            "classification": "syntax"
          }
        ]
      },
      {
        "file": "src/components/features/files-tab/tree-node.tsx",
        "findings": [
          {
            "file": "src/components/features/files-tab/tree-node.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets paddingLeft. Style through classes; use CSS custom properties for dynamic values.",
            "line": 38,
            "column": 33,
            "nodeType": "TemplateLiteral",
            "messageId": "inlineStyle",
            "endLine": 38,
            "endColumn": 48,
            "classification": "measured"
          },
          {
            "file": "src/components/features/files-tab/tree-node.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets paddingLeft. Style through classes; use CSS custom properties for dynamic values.",
            "line": 85,
            "column": 31,
            "nodeType": "TemplateLiteral",
            "messageId": "inlineStyle",
            "endLine": 85,
            "endColumn": 51,
            "classification": "measured"
          }
        ]
      },
      {
        "file": "src/components/features/home/featured-automations/automation-run-activity-sparkline.tsx",
        "findings": [
          {
            "file": "src/components/features/home/featured-automations/automation-run-activity-sparkline.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets height. Style through classes; use CSS custom properties for dynamic values.",
            "line": 140,
            "column": 28,
            "nodeType": "CallExpression",
            "messageId": "inlineStyle",
            "endLine": 140,
            "endColumn": 72,
            "classification": "measured"
          },
          {
            "file": "src/components/features/home/featured-automations/automation-run-activity-sparkline.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets height. Style through classes; use CSS custom properties for dynamic values.",
            "line": 181,
            "column": 24,
            "nodeType": "Identifier",
            "messageId": "inlineStyle",
            "endLine": 181,
            "endColumn": 56,
            "classification": "fixed"
          }
        ]
      },
      {
        "file": "src/components/features/home/featured-automations/home-automation-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/home/featured-automations/home-automation-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "line": 149,
            "column": 22,
            "nodeType": "Identifier",
            "messageId": "dynamicStyle",
            "endLine": 149,
            "endColumn": 35,
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/markdown/code.tsx",
        "findings": [
          {
            "file": "src/components/features/markdown/code.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "line": 58,
            "column": 16,
            "nodeType": "CallExpression",
            "messageId": "dynamicStyle",
            "endLine": 58,
            "endColumn": 53,
            "classification": "syntax"
          }
        ]
      },
      {
        "file": "src/components/features/mcp-logo-badge.tsx",
        "findings": [
          {
            "file": "src/components/features/mcp-logo-badge.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets backgroundColor. Style through classes; use CSS custom properties for dynamic values.",
            "line": 59,
            "column": 26,
            "nodeType": "LogicalExpression",
            "messageId": "inlineStyle",
            "endLine": 59,
            "endColumn": 69,
            "classification": "catalog"
          },
          {
            "file": "src/components/features/mcp-logo-badge.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets color. Style through classes; use CSS custom properties for dynamic values.",
            "line": 61,
            "column": 11,
            "nodeType": "LogicalExpression",
            "messageId": "inlineStyle",
            "endLine": 62,
            "endColumn": 61,
            "classification": "catalog"
          }
        ]
      },
      {
        "file": "src/components/features/onboarding/onboarding-modal.tsx",
        "findings": [
          {
            "file": "src/components/features/onboarding/onboarding-modal.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets transform. Style through classes; use CSS custom properties for dynamic values.",
            "line": 92,
            "column": 27,
            "nodeType": "TemplateLiteral",
            "messageId": "inlineStyle",
            "endLine": 92,
            "endColumn": 54,
            "classification": "animation"
          }
        ]
      },
      {
        "file": "src/components/features/settings/agent-profiles/agent-profile-actions-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/settings/agent-profiles/agent-profile-actions-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "line": 191,
            "column": 19,
            "nodeType": "Identifier",
            "messageId": "dynamicStyle",
            "endLine": 191,
            "endColumn": 30,
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/settings/llm-profiles/profile-actions-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/settings/llm-profiles/profile-actions-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "line": 221,
            "column": 19,
            "nodeType": "Identifier",
            "messageId": "dynamicStyle",
            "endLine": 221,
            "endColumn": 30,
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/settings/llm-profiles/provider-connection-actions-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/settings/llm-profiles/provider-connection-actions-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "line": 174,
            "column": 19,
            "nodeType": "Identifier",
            "messageId": "dynamicStyle",
            "endLine": 174,
            "endColumn": 30,
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/settings/meta-llm-profiles/meta-profile-actions-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/settings/meta-llm-profiles/meta-profile-actions-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "line": 225,
            "column": 19,
            "nodeType": "Identifier",
            "messageId": "dynamicStyle",
            "endLine": 225,
            "endColumn": 30,
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/setup-guide/super-admin-setup-guide.tsx",
        "findings": [
          {
            "file": "src/components/features/setup-guide/super-admin-setup-guide.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "line": 329,
            "column": 33,
            "nodeType": "TemplateLiteral",
            "messageId": "inlineStyle",
            "endLine": 329,
            "endColumn": 50,
            "classification": "measured"
          }
        ]
      },
      {
        "file": "src/components/features/sidebar/sidebar.tsx",
        "findings": [
          {
            "file": "src/components/features/sidebar/sidebar.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets transitionDuration. Style through classes; use CSS custom properties for dynamic values.",
            "line": 235,
            "column": 42,
            "nodeType": "TemplateLiteral",
            "messageId": "inlineStyle",
            "endLine": 235,
            "endColumn": 76,
            "classification": "timing"
          },
          {
            "file": "src/components/features/sidebar/sidebar.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets transitionDuration. Style through classes; use CSS custom properties for dynamic values.",
            "line": 249,
            "column": 42,
            "nodeType": "TemplateLiteral",
            "messageId": "inlineStyle",
            "endLine": 249,
            "endColumn": 76,
            "classification": "timing"
          }
        ]
      },
      {
        "file": "src/components/features/skills/skill-card-pill-row.tsx",
        "findings": [
          {
            "file": "src/components/features/skills/skill-card-pill-row.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
            "line": 260,
            "column": 25,
            "nodeType": "Literal",
            "messageId": "inlineStyle",
            "endLine": 260,
            "endColumn": 32,
            "classification": "portal"
          },
          {
            "file": "src/components/features/skills/skill-card-pill-row.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
            "line": 261,
            "column": 20,
            "nodeType": "MemberExpression",
            "messageId": "inlineStyle",
            "endLine": 261,
            "endColumn": 34,
            "classification": "portal"
          },
          {
            "file": "src/components/features/skills/skill-card-pill-row.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
            "line": 262,
            "column": 21,
            "nodeType": "MemberExpression",
            "messageId": "inlineStyle",
            "endLine": 262,
            "endColumn": 36,
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/shared/modals/settings/model-selector.tsx",
        "findings": [
          {
            "file": "src/components/shared/modals/settings/model-selector.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
            "line": 308,
            "column": 25,
            "nodeType": "TemplateLiteral",
            "messageId": "inlineStyle",
            "endLine": 308,
            "endColumn": 79,
            "classification": "measured"
          }
        ]
      },
      {
        "file": "src/components/shared/text-shimmer.tsx",
        "findings": [
          {
            "file": "src/components/shared/text-shimmer.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "A <style> element injects CSS outside the design system. Use classes, or declare the rule in your theme CSS.",
            "line": 72,
            "column": 7,
            "nodeType": "JSXOpeningElement",
            "messageId": "styleElement",
            "endLine": 76,
            "endColumn": 9,
            "classification": "animation"
          },
          {
            "file": "src/components/shared/text-shimmer.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "line": 79,
            "column": 16,
            "nodeType": "Identifier",
            "messageId": "dynamicStyle",
            "endLine": 79,
            "endColumn": 28,
            "classification": "animation"
          }
        ]
      },
      {
        "file": "src/routes/files-tab.tsx",
        "findings": [
          {
            "file": "src/routes/files-tab.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "line": 210,
            "column": 35,
            "nodeType": "TemplateLiteral",
            "messageId": "inlineStyle",
            "endLine": 210,
            "endColumn": 51,
            "classification": "measured"
          }
        ]
      },
      {
        "file": "src/ui/dropdown/dropdown.tsx",
        "findings": [
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
            "line": 15,
            "column": 13,
            "nodeType": "Literal",
            "messageId": "inlineStyle",
            "endLine": 15,
            "endColumn": 23,
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
            "line": 15,
            "column": 13,
            "nodeType": "Literal",
            "messageId": "inlineStyle",
            "endLine": 15,
            "endColumn": 23,
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "line": 16,
            "column": 10,
            "nodeType": "Literal",
            "messageId": "inlineStyle",
            "endLine": 16,
            "endColumn": 11,
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "line": 16,
            "column": 10,
            "nodeType": "Literal",
            "messageId": "inlineStyle",
            "endLine": 16,
            "endColumn": 11,
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets height. Style through classes; use CSS custom properties for dynamic values.",
            "line": 17,
            "column": 11,
            "nodeType": "Literal",
            "messageId": "inlineStyle",
            "endLine": 17,
            "endColumn": 12,
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets height. Style through classes; use CSS custom properties for dynamic values.",
            "line": 17,
            "column": 11,
            "nodeType": "Literal",
            "messageId": "inlineStyle",
            "endLine": 17,
            "endColumn": 12,
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets padding. Style through classes; use CSS custom properties for dynamic values.",
            "line": 18,
            "column": 12,
            "nodeType": "Literal",
            "messageId": "inlineStyle",
            "endLine": 18,
            "endColumn": 13,
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets padding. Style through classes; use CSS custom properties for dynamic values.",
            "line": 18,
            "column": 12,
            "nodeType": "Literal",
            "messageId": "inlineStyle",
            "endLine": 18,
            "endColumn": 13,
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets margin. Style through classes; use CSS custom properties for dynamic values.",
            "line": 19,
            "column": 11,
            "nodeType": "UnaryExpression",
            "messageId": "inlineStyle",
            "endLine": 19,
            "endColumn": 13,
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets margin. Style through classes; use CSS custom properties for dynamic values.",
            "line": 19,
            "column": 11,
            "nodeType": "UnaryExpression",
            "messageId": "inlineStyle",
            "endLine": 19,
            "endColumn": 13,
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets overflow. Style through classes; use CSS custom properties for dynamic values.",
            "line": 20,
            "column": 13,
            "nodeType": "Literal",
            "messageId": "inlineStyle",
            "endLine": 20,
            "endColumn": 21,
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets overflow. Style through classes; use CSS custom properties for dynamic values.",
            "line": 20,
            "column": 13,
            "nodeType": "Literal",
            "messageId": "inlineStyle",
            "endLine": 20,
            "endColumn": 21,
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets clip. Style through classes; use CSS custom properties for dynamic values.",
            "line": 21,
            "column": 9,
            "nodeType": "Literal",
            "messageId": "inlineStyle",
            "endLine": 21,
            "endColumn": 27,
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets clip. Style through classes; use CSS custom properties for dynamic values.",
            "line": 21,
            "column": 9,
            "nodeType": "Literal",
            "messageId": "inlineStyle",
            "endLine": 21,
            "endColumn": 27,
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets whiteSpace. Style through classes; use CSS custom properties for dynamic values.",
            "line": 22,
            "column": 15,
            "nodeType": "Literal",
            "messageId": "inlineStyle",
            "endLine": 22,
            "endColumn": 23,
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets whiteSpace. Style through classes; use CSS custom properties for dynamic values.",
            "line": 22,
            "column": 15,
            "nodeType": "Literal",
            "messageId": "inlineStyle",
            "endLine": 22,
            "endColumn": 23,
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets border. Style through classes; use CSS custom properties for dynamic values.",
            "line": 23,
            "column": 11,
            "nodeType": "Literal",
            "messageId": "inlineStyle",
            "endLine": 23,
            "endColumn": 12,
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "message": "Inline style sets border. Style through classes; use CSS custom properties for dynamic values.",
            "line": 23,
            "column": 11,
            "nodeType": "Literal",
            "messageId": "inlineStyle",
            "endLine": 23,
            "endColumn": 12,
            "classification": "accessibility"
          }
        ]
      }
    ],
    "classifications": [
      {
        "key": "portal",
        "label": "Measured portal placement and related menu sizing",
        "note": "Positions derive from live trigger/popover boxes. Keep coordinate owner and scroll/resize behavior; mixed objects contain static position/fixed-width portions that can move to classes separately. CSS custom properties may represent measured values after focused interaction verification.",
        "count": 31,
        "files": [
          "src/components/features/automations/add-automation-menu.tsx",
          "src/components/features/automations/automation-view-toggle.tsx",
          "src/components/features/automations/kebab-menu.tsx",
          "src/components/features/chat/components/chat-input-actions.tsx",
          "src/components/features/conversation-panel/cloud-new-conversation-menu.tsx",
          "src/components/features/conversation-panel/conversation-card/conversation-card-context-menu.tsx",
          "src/components/features/conversation-panel/conversation-card/conversation-tag-chips.tsx",
          "src/components/features/conversation-panel/local-new-conversation-menu.tsx",
          "src/components/features/conversation/conversation-git-actions-menu.tsx",
          "src/components/features/conversation/conversation-name-context-menu.tsx",
          "src/components/features/conversation/conversation-overview-context-menu.tsx",
          "src/components/features/conversation/conversation-overview-toggle.tsx",
          "src/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.tsx",
          "src/components/features/home/featured-automations/home-automation-menu.tsx",
          "src/components/features/settings/agent-profiles/agent-profile-actions-menu.tsx",
          "src/components/features/settings/llm-profiles/profile-actions-menu.tsx",
          "src/components/features/settings/llm-profiles/provider-connection-actions-menu.tsx",
          "src/components/features/settings/meta-llm-profiles/meta-profile-actions-menu.tsx",
          "src/components/features/skills/skill-card-pill-row.tsx"
        ]
      },
      {
        "key": "measured",
        "label": "Measured layout, progress, and drag-state transitions",
        "note": "Values come from resize/measurement hooks, viewport bounds, nesting depth, usage/progress data, or drag state. Transition selections may become conditional classes, but preserve measured dimensions and animation timing; do not substitute a fixed utility for runtime values.",
        "count": 19,
        "files": [
          "src/components/features/backends/backend-form-modal.tsx",
          "src/components/features/chat/components/chat-input-llm-profile-picker.tsx",
          "src/components/features/chat/components/context-window-meter.tsx",
          "src/components/features/conversation-panel/budget-progress-bar.tsx",
          "src/components/features/conversation/conversation-main/conversation-main.tsx",
          "src/components/features/conversation/conversation-overview-drawer.tsx",
          "src/components/features/conversation/usage-panel/context-meter.tsx",
          "src/components/features/files-tab/tree-node.tsx",
          "src/components/features/home/featured-automations/automation-run-activity-sparkline.tsx",
          "src/components/features/setup-guide/super-admin-setup-guide.tsx",
          "src/components/shared/modals/settings/model-selector.tsx",
          "src/routes/files-tab.tsx"
        ]
      },
      {
        "key": "syntax",
        "label": "SyntaxHighlighter theme interface",
        "note": "The style prop is the renderer library theme-map API, not a DOM CSSProperties bag. Replacing it with a CSS-variable-only object breaks its contract. Review renderer configuration or a narrow rule contract separately.",
        "count": 3,
        "files": [
          "src/components/features/chat/tool-visualizers/primitives/code-block.tsx",
          "src/components/features/files-tab/highlighted-source-view.tsx",
          "src/components/features/markdown/code.tsx"
        ]
      },
      {
        "key": "accessibility",
        "label": "Dropdown accessibility and embedding contract",
        "note": "Nine visually-hidden CSS properties are reported twice because the shared object styles two hidden controls (18 diagnostics, 9 source properties). The source explicitly retains inline styles to survive host CSS pipelines. A class migration requires bundled/scoped embedded CSS and accessibility verification.",
        "count": 18,
        "files": [
          "src/ui/dropdown/dropdown.tsx"
        ]
      },
      {
        "key": "catalog",
        "label": "External MCP catalog brand colors",
        "note": "iconBg/iconColor come from the integration catalog, with a white brand fallback. They are provider-owned brand values. Decide the brand rendering contract before adding theme tokens or a targeted exception; avoid broad allowlists.",
        "count": 2,
        "files": [
          "src/components/features/mcp-logo-badge.tsx"
        ]
      },
      {
        "key": "theme",
        "label": "Existing semantic context-window track expression",
        "note": "The track uses color-mix of --oh-context-window-foreground and --oh-context-window-track-weight, with contrast tests across shipped themes. This is already token-owned color. Moving the expression to a static class/theme role can remove the DOM style while preserving its values; avoid approximating with a surface token.",
        "count": 2,
        "files": [
          "src/components/features/chat/components/context-window-meter.tsx",
          "src/components/features/chat/components/context-window-ring.tsx"
        ]
      },
      {
        "key": "animation",
        "label": "Runtime animation and caller-style composition",
        "note": "Onboarding transform depends on slide offset. TextShimmer composes caller style, duration/spread and generated keyframe names; one diagnostic is its style element. Consider dedicated CSS/custom-property design with reduced-motion and caller-style coverage, not blanket replacement.",
        "count": 3,
        "files": [
          "src/components/features/onboarding/onboarding-modal.tsx",
          "src/components/shared/text-shimmer.tsx"
        ]
      },
      {
        "key": "fixed",
        "label": "Fixed numeric constants suitable for isolated migration",
        "note": "Each is a named constant shared with a geometry or cap owner: overview-column width, diff-editor cap, or sparkline track height. A local class backed by a numeric custom property can preserve the single constant owner without hardcoding a second value. Verify scoped rendering and dependent geometry.",
        "count": 3,
        "files": [
          "src/components/features/conversation/conversation-main/chat-interface-wrapper.tsx",
          "src/components/features/diff-viewer/file-diff-viewer.tsx",
          "src/components/features/home/featured-automations/automation-run-activity-sparkline.tsx"
        ]
      },
      {
        "key": "timing",
        "label": "Sidebar transition duration coupled to lifecycle timing",
        "note": "Both mobile drawer surfaces derive CSS transition duration from MOBILE_DRAWER_TRANSITION_MS, also used for unmount timing. Preserve that shared owner when migrating to a duration utility/custom property and verify the visible temporal transition.",
        "count": 2,
        "files": [
          "src/components/features/sidebar/sidebar.tsx"
        ]
      }
    ]
  },
  "arbitraryColorWarnings": {
    "count": 47,
    "files": 20,
    "groups": [
      {
        "file": "src/components/conversation-events/chat/task-tracking/task-item.tsx",
        "findings": [
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-contrast. Use one of those, or declare --color-<name> in src/tailwind.css.",
            "line": 21,
            "column": 38,
            "nodeType": "Literal",
            "messageId": "arbitraryColorNear",
            "endLine": 21,
            "endColumn": 62,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-contrast"
                },
                "fix": {
                  "range": [
                    745,
                    769
                  ],
                  "text": "\"w-4 h-4 text-contrast\""
                },
                "desc": "Replace with \"text-contrast\"."
              }
            ]
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-contrast. Use one of those, or declare --color-<name> in src/tailwind.css.",
            "line": 23,
            "column": 47,
            "nodeType": "Literal",
            "messageId": "arbitraryColorNear",
            "endLine": 23,
            "endColumn": 71,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-contrast"
                },
                "fix": {
                  "range": [
                    846,
                    870
                  ],
                  "text": "\"w-4 h-4 text-contrast\""
                },
                "desc": "Replace with \"text-contrast\"."
              }
            ]
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-contrast. Use one of those, or declare --color-<name> in src/tailwind.css.",
            "line": 27,
            "column": 38,
            "nodeType": "Literal",
            "messageId": "arbitraryColorNear",
            "endLine": 27,
            "endColumn": 62,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-contrast"
                },
                "fix": {
                  "range": [
                    1013,
                    1037
                  ],
                  "text": "\"w-4 h-4 text-contrast\""
                },
                "desc": "Replace with \"text-contrast\"."
              }
            ]
          }
        ]
      },
      {
        "file": "src/components/features/chat/change-agent-button.tsx",
        "findings": [
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 172,
            "column": 15,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 172,
            "endColumn": 64
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"bg-[#4A67BD]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 172,
            "column": 15,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 172,
            "endColumn": 64
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 178,
            "column": 13,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 178,
            "endColumn": 48
          }
        ]
      },
      {
        "file": "src/components/features/chat/chat-message.tsx",
        "findings": [
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 162,
            "column": 11,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 162,
            "endColumn": 57
          }
        ]
      },
      {
        "file": "src/components/features/chat/components/chat-input-container.tsx",
        "findings": [
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 74,
            "column": 40,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 74,
            "endColumn": 65
          }
        ]
      },
      {
        "file": "src/components/features/chat/git-control-bar-branch-button.tsx",
        "findings": [
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"border-[rgba(71,74,84,0.50)]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 52,
            "column": 13,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 52,
            "endColumn": 93
          }
        ]
      },
      {
        "file": "src/components/features/chat/git-control-bar-repo-button.tsx",
        "findings": [
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"border-[rgba(71,74,84,0.50)]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 85,
            "column": 9,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 85,
            "endColumn": 61
          }
        ]
      },
      {
        "file": "src/components/features/chat/plan-preview.tsx",
        "findings": [
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 70,
            "column": 20,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 70,
            "endColumn": 79
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"text-[#4a67bd]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 108,
            "column": 27,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 108,
            "endColumn": 84
          }
        ]
      },
      {
        "file": "src/components/features/chat/task-tracking/task-item.tsx",
        "findings": [
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-contrast. Use one of those, or declare --color-<name> in src/tailwind.css.",
            "line": 25,
            "column": 38,
            "nodeType": "Literal",
            "messageId": "arbitraryColorNear",
            "endLine": 25,
            "endColumn": 62,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-contrast"
                },
                "fix": {
                  "range": [
                    756,
                    780
                  ],
                  "text": "\"w-4 h-4 text-contrast\""
                },
                "desc": "Replace with \"text-contrast\"."
              }
            ]
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-contrast. Use one of those, or declare --color-<name> in src/tailwind.css.",
            "line": 27,
            "column": 47,
            "nodeType": "Literal",
            "messageId": "arbitraryColorNear",
            "endLine": 27,
            "endColumn": 71,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-contrast"
                },
                "fix": {
                  "range": [
                    857,
                    881
                  ],
                  "text": "\"w-4 h-4 text-contrast\""
                },
                "desc": "Replace with \"text-contrast\"."
              }
            ]
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-contrast. Use one of those, or declare --color-<name> in src/tailwind.css.",
            "line": 31,
            "column": 38,
            "nodeType": "Literal",
            "messageId": "arbitraryColorNear",
            "endLine": 31,
            "endColumn": 62,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-contrast"
                },
                "fix": {
                  "range": [
                    1024,
                    1048
                  ],
                  "text": "\"w-4 h-4 text-contrast\""
                },
                "desc": "Replace with \"text-contrast\"."
              }
            ]
          }
        ]
      },
      {
        "file": "src/components/features/chat/workspace-mode-selector.tsx",
        "findings": [
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"border-[rgba(71,74,84,0.50)]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 76,
            "column": 11,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 76,
            "endColumn": 77
          }
        ]
      },
      {
        "file": "src/components/features/conversation-panel/cloud-new-conversation-menu.tsx",
        "findings": [
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"text-[#F87171]\" hardcodes a color. Nearest theme tokens: text-status-error, text-danger. Use one of those, or declare --color-<name> in src/tailwind.css.",
            "line": 333,
            "column": 27,
            "nodeType": "Literal",
            "messageId": "arbitraryColorNear",
            "endLine": 333,
            "endColumn": 61,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-status-error"
                },
                "fix": {
                  "range": [
                    10547,
                    10581
                  ],
                  "text": "\"px-2 py-2 text-sm text-status-error\""
                },
                "desc": "Replace with \"text-status-error\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-danger"
                },
                "fix": {
                  "range": [
                    10547,
                    10581
                  ],
                  "text": "\"px-2 py-2 text-sm text-danger\""
                },
                "desc": "Replace with \"text-danger\"."
              }
            ]
          }
        ]
      },
      {
        "file": "src/components/features/conversation-panel/exit-conversation-modal.tsx",
        "findings": [
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 34,
            "column": 23,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 34,
            "endColumn": 37
          }
        ]
      },
      {
        "file": "src/components/features/home/shared/clear-button.tsx",
        "findings": [
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"text-[#fff]\" hardcodes a color. Nearest theme tokens: text-contrast. Use one of those, or declare --color-<name> in src/tailwind.css.",
            "line": 27,
            "column": 9,
            "nodeType": "Literal",
            "messageId": "arbitraryColorNear",
            "endLine": 27,
            "endColumn": 26,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-contrast"
                },
                "fix": {
                  "range": [
                    563,
                    580
                  ],
                  "text": "\"p-1 text-contrast\""
                },
                "desc": "Replace with \"text-contrast\"."
              }
            ]
          }
        ]
      },
      {
        "file": "src/components/features/settings/acp-credentials-section.tsx",
        "findings": [
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"text-[#717888]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 49,
            "column": 36,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 49,
            "endColumn": 60
          }
        ]
      },
      {
        "file": "src/components/features/settings/agent-canvas-update-card.tsx",
        "findings": [
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 214,
            "column": 30,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 214,
            "endColumn": 138
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"bg-[#1E3A5F]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 214,
            "column": 30,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 214,
            "endColumn": 138
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 214,
            "column": 30,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 214,
            "endColumn": 138
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"bg-[#1E3A5F]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 327,
            "column": 23,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 327,
            "endColumn": 105
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 327,
            "column": 23,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 327,
            "endColumn": 105
          }
        ]
      },
      {
        "file": "src/components/features/settings/agent-canvas-version-modal.tsx",
        "findings": [
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 110,
            "column": 25,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 110,
            "endColumn": 57
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"bg-[#1E3A5F]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 127,
            "column": 29,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 127,
            "endColumn": 105
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 127,
            "column": 29,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 127,
            "endColumn": 105
          }
        ]
      },
      {
        "file": "src/components/features/settings/agent-canvas-version-tile.tsx",
        "findings": [
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 77,
            "column": 23,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 77,
            "endColumn": 55
          }
        ]
      },
      {
        "file": "src/components/features/skills/build-skill-pills.tsx",
        "findings": [
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "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/tailwind.css.",
            "line": 142,
            "column": 21,
            "nodeType": "Literal",
            "messageId": "arbitraryColorNear",
            "endLine": 142,
            "endColumn": 221,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-status-error"
                },
                "fix": {
                  "range": [
                    3606,
                    3806
                  ],
                  "text": "\"inline-flex shrink-0 items-center gap-1 whitespace-nowrap rounded-full border border-status-error bg-[rgba(248,113,113,0.12)] px-2 py-0.5 text-[11px] font-medium leading-4 text-[#fca5a5]\""
                },
                "desc": "Replace with \"border-status-error\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-danger"
                },
                "fix": {
                  "range": [
                    3606,
                    3806
                  ],
                  "text": "\"inline-flex shrink-0 items-center gap-1 whitespace-nowrap rounded-full border border-danger bg-[rgba(248,113,113,0.12)] px-2 py-0.5 text-[11px] font-medium leading-4 text-[#fca5a5]\""
                },
                "desc": "Replace with \"border-danger\"."
              }
            ]
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "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/tailwind.css.",
            "line": 142,
            "column": 21,
            "nodeType": "Literal",
            "messageId": "arbitraryColorNear",
            "endLine": 142,
            "endColumn": 221,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-status-error"
                },
                "fix": {
                  "range": [
                    3606,
                    3806
                  ],
                  "text": "\"inline-flex shrink-0 items-center gap-1 whitespace-nowrap rounded-full border border-[rgba(248,113,113,0.35)] bg-status-error px-2 py-0.5 text-[11px] font-medium leading-4 text-[#fca5a5]\""
                },
                "desc": "Replace with \"bg-status-error\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-danger"
                },
                "fix": {
                  "range": [
                    3606,
                    3806
                  ],
                  "text": "\"inline-flex shrink-0 items-center gap-1 whitespace-nowrap rounded-full border border-[rgba(248,113,113,0.35)] bg-danger px-2 py-0.5 text-[11px] font-medium leading-4 text-[#fca5a5]\""
                },
                "desc": "Replace with \"bg-danger\"."
              }
            ]
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"text-[#fca5a5]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 142,
            "column": 21,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 142,
            "endColumn": 221
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"bg-[#fca5a5]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 144,
            "column": 27,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 144,
            "endColumn": 63
          }
        ]
      },
      {
        "file": "src/components/shared/buttons/circle-plus-check-toggle.tsx",
        "findings": [
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "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/tailwind.css.",
            "line": 96,
            "column": 17,
            "nodeType": "Literal",
            "messageId": "arbitraryColorNear",
            "endLine": 96,
            "endColumn": 104,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-status-error"
                },
                "fix": {
                  "range": [
                    3009,
                    3096
                  ],
                  "text": "\"border-0 bg-status-error text-[#ef4444] hover:bg-[rgba(248,113,113,0.24)]\""
                },
                "desc": "Replace with \"bg-status-error\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-danger"
                },
                "fix": {
                  "range": [
                    3009,
                    3096
                  ],
                  "text": "\"border-0 bg-danger text-[#ef4444] hover:bg-[rgba(248,113,113,0.24)]\""
                },
                "desc": "Replace with \"bg-danger\"."
              }
            ]
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"text-[#ef4444]\" hardcodes a color. Nearest theme tokens: text-danger, text-status-error. Use one of those, or declare --color-<name> in src/tailwind.css.",
            "line": 96,
            "column": 17,
            "nodeType": "Literal",
            "messageId": "arbitraryColorNear",
            "endLine": 96,
            "endColumn": 104,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-danger"
                },
                "fix": {
                  "range": [
                    3009,
                    3096
                  ],
                  "text": "\"border-0 bg-[rgba(248,113,113,0.14)] text-danger hover:bg-[rgba(248,113,113,0.24)]\""
                },
                "desc": "Replace with \"text-danger\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-status-error"
                },
                "fix": {
                  "range": [
                    3009,
                    3096
                  ],
                  "text": "\"border-0 bg-[rgba(248,113,113,0.14)] text-status-error hover:bg-[rgba(248,113,113,0.24)]\""
                },
                "desc": "Replace with \"text-status-error\"."
              }
            ]
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "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/tailwind.css.",
            "line": 96,
            "column": 17,
            "nodeType": "Literal",
            "messageId": "arbitraryColorNear",
            "endLine": 96,
            "endColumn": 104,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "hover:bg-status-error"
                },
                "fix": {
                  "range": [
                    3009,
                    3096
                  ],
                  "text": "\"border-0 bg-[rgba(248,113,113,0.14)] text-[#ef4444] hover:bg-status-error\""
                },
                "desc": "Replace with \"hover:bg-status-error\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "hover:bg-danger"
                },
                "fix": {
                  "range": [
                    3009,
                    3096
                  ],
                  "text": "\"border-0 bg-[rgba(248,113,113,0.14)] text-[#ef4444] hover:bg-danger\""
                },
                "desc": "Replace with \"hover:bg-danger\"."
              }
            ]
          }
        ]
      },
      {
        "file": "src/components/shared/risk-alert.tsx",
        "findings": [
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"bg-[#4A0709]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 24,
            "column": 11,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 24,
            "endColumn": 137
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"border-[#FF0006]\" hardcodes a color. Nearest theme tokens: border-status-error, border-danger. Use one of those, or declare --color-<name> in src/tailwind.css.",
            "line": 24,
            "column": 11,
            "nodeType": "Literal",
            "messageId": "arbitraryColorNear",
            "endLine": 24,
            "endColumn": 137,
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-status-error"
                },
                "fix": {
                  "range": [
                    596,
                    722
                  ],
                  "text": "\"flex items-center gap-3.5 bg-[#4A0709] border border-status-error text-feedback-error rounded-xl px-3.5 h-13 text-sm text-white\""
                },
                "desc": "Replace with \"border-status-error\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-danger"
                },
                "fix": {
                  "range": [
                    596,
                    722
                  ],
                  "text": "\"flex items-center gap-3.5 bg-[#4A0709] border border-danger text-feedback-error rounded-xl px-3.5 h-13 text-sm text-white\""
                },
                "desc": "Replace with \"border-danger\"."
              }
            ]
          }
        ]
      },
      {
        "file": "src/routes/agent-settings.tsx",
        "findings": [
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"border-[#717888]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 1237,
            "column": 25,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 1237,
            "endColumn": 195
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"placeholder:text-[#717888]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 1237,
            "column": 25,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 1237,
            "endColumn": 195
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"text-[#717888]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 1262,
            "column": 40,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 1262,
            "endColumn": 64
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"border-[#3D4046]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 1271,
            "column": 25,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 1271,
            "endColumn": 43
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"border-[#3D4046]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 1279,
            "column": 25,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 1279,
            "endColumn": 43
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"text-[#717888]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 1355,
            "column": 25,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 1355,
            "endColumn": 49
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"text-[#717888]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 1366,
            "column": 27,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 1366,
            "endColumn": 51
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"text-[#717888]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 1376,
            "column": 25,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 1376,
            "endColumn": 49
          },
          {
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "message": "\"text-[#717888]\" 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 (+44 more), or declare --color-<name> in src/tailwind.css.",
            "line": 1381,
            "column": 38,
            "nodeType": "Literal",
            "messageId": "arbitraryColorFar",
            "endLine": 1381,
            "endColumn": 62
          }
        ]
      }
    ]
  },
  "sourceHashes": {
    "package.json": "0eba8fd410b18cae26ce95ebbf9e4de7b43dfc9773dd581f4828104e5c337165",
    "package-lock.json": "4b4140d81df4fca83f72cf0370535d11bd23c09e0410cc6e69a9cab5decd5e3a",
    "eslint.config.js": "4fbd7c967d161864d9d7df9956017d8784794905c3fa7bd2ad24b1acceb72184"
  },
  "notes": [
    "All diagnostic file paths are repository relative. Formatter source payloads, suppressed-message contents, local checkout paths and environment dumps are omitted.",
    "645 warnings are active diagnostics; 100 suppressed diagnostics are excluded.",
    "Dropdown shared visually-hidden properties are reported for two consumers, producing18 warnings from9 source properties.",
    "The40 no-raw-colors diagnostics are palette utilities;47 hardcoded-color diagnostics belong to no-arbitrary-values and are included within its522 total.",
    "Inline classifications are source-inspection triage, not live runtime verification."
  ],
  "nextBatchReachability": {
    "startTaskStatusCards": {
      "rawColorWarnings": 12,
      "normalLocalLaunchReachable": false,
      "normalCloudLaunchReachable": false,
      "reason": "Sole production consumer maps useStartTasks, whose queryFn returns[] unconditionally; READY/ERROR are also filtered out.",
      "codeReferences": [
        {
          "file": "src/hooks/query/use-start-tasks.ts",
          "line": 18
        },
        {
          "file": "src/hooks/query/use-start-tasks.ts",
          "line": 21
        },
        {
          "file": "src/components/features/conversation-panel/conversation-panel.tsx",
          "line": 1231
        },
        {
          "file": "src/api/conversation-service/agent-server-conversation-service.api.ts",
          "line": 658
        },
        {
          "file": "src/api/conversation-service/agent-server-conversation-service.api.ts",
          "line": 786
        },
        {
          "file": "src/hooks/query/use-task-polling.ts",
          "line": 72
        }
      ],
      "prerequisite": "Separately establish genuine UI list data/consumer and supported producer contract; define terminal-state visibility. Do not bundle with palette cleanup."
    }
  },
  "recommendedNextAfterHealthDotsAndMarkdown": [
    {
      "scope": "Markdown preview maximum height in the diff viewer",
      "file": "src/components/features/diff-viewer/file-diff-viewer.tsx",
      "line": 322,
      "ruleId": "shadcn/no-inline-styles",
      "warnings": 1,
      "approach": "Preserve MAX_DIFF_EDITOR_HEIGHT_PX as one owner; numeric custom property consumed by owned class.",
      "liveTrigger": "Open a changed Markdown file in the real conversation diff viewer and choose its old/new single-file view, with enough content to exceed the cap."
    },
    {
      "scope": "Existing context-window track expression",
      "files": [
        "src/components/features/chat/components/context-window-meter.tsx",
        "src/components/features/chat/components/context-window-ring.tsx"
      ],
      "ruleId": "shadcn/no-inline-styles",
      "warnings": 2,
      "approach": "Move exact existing semantic color-mix use to owned CSS/classes, preserving per-theme contrast."
    },
    {
      "scope": "Corrective-nudge scale equivalent",
      "file": "src/components/conversation-events/chat/event-message-components/corrective-nudge-message.tsx",
      "line": 19,
      "ruleId": "shadcn/no-arbitrary-values",
      "warnings": 1,
      "approach": "Linter suggests mt-1.25 for mt-[5px]; verify computed sizing including embedded context."
    }
  ]
}
