@bridge_gpt/mcp-server 0.2.16 → 0.2.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONDUCTOR.md +75 -0
- package/README.md +2 -2
- package/build/agent-capabilities/probe-context.js +13 -3
- package/build/agent-capabilities/probes.js +262 -11
- package/build/agent-capabilities/reporter.js +1 -0
- package/build/agents.generated.js +3 -3
- package/build/backend-warnings.js +44 -0
- package/build/claude-settings.js +129 -0
- package/build/commands.generated.js +7 -6
- package/build/conductor/bridge-api-client.js +198 -18
- package/build/conductor/claude-hook.js +22 -4
- package/build/conductor/cli.js +76 -25
- package/build/conductor/deny-enforcement-preflight.js +96 -0
- package/build/conductor/doctor.js +183 -2
- package/build/conductor/done-gate.js +5 -0
- package/build/conductor/epic-reconcile.js +71 -14
- package/build/conductor/epic-runtime.js +839 -67
- package/build/conductor/epic-state.js +524 -63
- package/build/conductor/errors.js +156 -3
- package/build/conductor/event-accessors.js +252 -0
- package/build/conductor/file-scope-guard.js +201 -0
- package/build/conductor/github-mergeability.js +85 -0
- package/build/conductor/local-merge.js +47 -1
- package/build/conductor/merge-identity.js +41 -0
- package/build/conductor/merge-ledger.js +19 -72
- package/build/conductor/plan.js +12 -2
- package/build/conductor/pr-ci-producer.js +17 -2
- package/build/conductor/pr-discovery.js +11 -1
- package/build/conductor/producer-ledger.js +1 -1
- package/build/conductor/store.js +161 -18
- package/build/conductor/supervisor-config.js +4 -39
- package/build/conductor/supervisor-escalation.js +10 -26
- package/build/conductor/supervisor-ledger.js +5 -12
- package/build/conductor/supervisor-merge.js +32 -5
- package/build/conductor/supervisor-message-relay.js +2 -5
- package/build/conductor/supervisor-notification.js +1 -1
- package/build/conductor/supervisor-runtime.js +12 -54
- package/build/conductor/supervisor-state.js +4 -18
- package/build/conductor/supervisor-types.js +2 -2
- package/build/conductor/taxonomy.js +12 -0
- package/build/conductor/tools.js +28 -6
- package/build/conductor/worker-ledger-cli.js +244 -0
- package/build/conductor-bin.js +1800 -5166
- package/build/conductor-claude-hook-bin.js +4 -2
- package/build/doctor.js +40 -0
- package/build/executor/cli.js +229 -0
- package/build/executor/credentials.js +65 -0
- package/build/executor/deps.js +117 -0
- package/build/executor/env.js +79 -0
- package/build/executor/heartbeat.js +59 -0
- package/build/executor/http-client.js +131 -0
- package/build/executor/index.js +10 -0
- package/build/executor/job-errors.js +55 -0
- package/build/executor/job-log-registry.js +110 -0
- package/build/executor/job-runner.js +688 -0
- package/build/executor/job-types.js +60 -0
- package/build/executor/merge-job.js +155 -0
- package/build/executor/observation.js +123 -0
- package/build/executor/permissions.js +79 -0
- package/build/executor/preflight.js +144 -0
- package/build/executor/process.js +81 -0
- package/build/executor/prompt-spec.js +235 -0
- package/build/executor/results.js +134 -0
- package/build/executor/resume-pre-spawn.js +179 -0
- package/build/executor/runner.js +98 -0
- package/build/executor/terminal-mutation.js +34 -0
- package/build/executor/test-clock.js +109 -0
- package/build/executor/types.js +18 -0
- package/build/executor/verdict-artifact.js +53 -0
- package/build/executor/viewer-tabs.js +78 -0
- package/build/executor/watch-cli.js +113 -0
- package/build/executor/worker-command.js +106 -0
- package/build/executor/worker-finalization.js +97 -0
- package/build/executor/worker-log.js +92 -0
- package/build/executor/worktree-gc.js +134 -0
- package/build/executor/worktree-inspection.js +86 -0
- package/build/executor/worktree.js +103 -0
- package/build/index.js +13950 -9669
- package/build/install-bridge.js +25 -8
- package/build/install-doctor.js +387 -0
- package/build/mcp-invoke.js +19 -3
- package/build/mcp-provisioning.js +31 -25
- package/build/mcp-registration-doctor.js +27 -7
- package/build/mcp-server-invocation.js +152 -0
- package/build/pipelines.generated.js +31 -6
- package/build/readme.generated.js +1 -1
- package/build/regression-check.js +53 -1
- package/build/review-tickets.js +175 -21
- package/build/sfcc/reads-site-preference.js +52 -19
- package/build/start-tickets-conductor.js +47 -99
- package/build/start-tickets-prereqs.js +185 -4
- package/build/start-tickets.js +218 -180
- package/build/version.generated.js +1 -1
- package/build/visual-diff-worker.js +313 -0
- package/build/visual-diff.js +632 -0
- package/build/worktree-core.js +202 -0
- package/package.json +10 -6
- package/pipelines/review-ticket.json +24 -2
- package/public/css/main.min.css +3311 -1
- package/public/css/main.min.css.map +1 -1
- package/public/js/main.min.js +7924 -1
- package/public/js/main.min.js.map +1 -1
- package/smoke-test/SMOKE-TEST.md +5 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css/main.min.css","mappings":"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","sources":["webpack:///./src/css/setup.css","webpack:///./src/css/setup-detail.css","webpack:///./src/css/public-pages.css","webpack:///./src/css/project-detail.css","webpack:///./src/css/optimize_analysis.css","webpack:///./src/css/optimize.css","webpack:///./src/css/globals.css","webpack:///./src/css/get-started.css","webpack:///./src/css/data_health.css"],"sourcesContent":["/* Setup page CSS */\n\n/* Reset and base styles */\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\nbody {\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n background-color: var(--background-color);\n color: var(--text-color);\n line-height: 1.5;\n min-height: 100vh;\n padding-top: var(--header-height);\n}\n\n/* Header styles */\n.header {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: var(--header-height);\n background-color: var(--surface-color);\n box-shadow: var(--box-shadow);\n z-index: 100;\n}\n\n.header-container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n max-width: 1200px;\n height: 100%;\n margin: 0 auto;\n padding: 0 1rem;\n}\n\n.logo-container img {\n height: 32px;\n width: auto;\n}\n\n.nav-menu ul {\n display: flex;\n list-style-type: none;\n}\n\n.nav-menu li {\n margin-left: 2rem;\n}\n\n.nav-menu a {\n color: var(--text-color);\n text-decoration: none;\n font-weight: 500;\n}\n\n.nav-menu a:hover {\n color: var(--primary-color);\n}\n\n/* Main content area */\n.main-content {\n max-width: 1200px;\n margin: 2rem auto;\n padding: 0 1rem;\n}\n\n/* Container styles */\n.container {\n background-color: var(--surface-color);\n border-radius: 0.5rem;\n padding: 2rem;\n box-shadow: var(--box-shadow);\n margin-bottom: 2rem;\n}\n\n.hidden {\n display: none !important;\n}\n\n/* Section header */\n.section-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 2rem;\n}\n\n.section-header h1 {\n font-size: 1.5rem;\n font-weight: 600;\n color: var(--text-color);\n}\n\n/* Form styles */\n.form-intro {\n font-size: 0.875rem;\n color: var(--secondary-color);\n margin-bottom: 1.5rem;\n}\n\n.form-intro code {\n font-size: 0.8125rem;\n color: var(--text-color);\n}\n\n.form-group {\n margin-bottom: 1.5rem;\n}\n\n.form-group-block {\n display: flex;\n justify-content: left;\n align-items: center;\n}\n\nlabel {\n display: block;\n font-size: 0.875rem;\n font-weight: 500;\n margin-bottom: 0.5rem;\n}\n\ninput[type=\"text\"],\ninput[type=\"password\"],\ninput[type=\"email\"],\ninput[type=\"url\"],\ninput[type=\"number\"],\nselect,\ntextarea {\n width: 100%;\n padding: 0.5rem;\n font-size: 1rem;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n background-color: #fff;\n}\n\ninput[type=\"number\"] {\n width: auto;\n}\n\ntextarea {\n min-height: 100px;\n resize: vertical;\n}\n\n.required {\n color: var(--error-color);\n}\n\n/* Checkbox styling */\n.form-group.checkbox {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.form-group.checkbox input {\n margin-right: 0.5rem;\n}\n\n.form-group.checkbox label {\n margin-bottom: 0;\n}\n\n/* Projects grid */\n.projects-grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: 1rem;\n}\n\n.project-card {\n background-color: var(--surface-color);\n border: 1px solid var(--border-color);\n border-radius: 0.5rem;\n padding: 1.5rem;\n transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1), box-shadow 150ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.project-card:hover {\n transform: translateY(-2px);\n box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n}\n\n.project-card h2 {\n font-size: 1.125rem;\n margin-bottom: 1rem;\n color: var(--text-color);\n}\n\n.project-card p {\n font-size: 0.875rem;\n color: var(--secondary-color);\n margin-bottom: 1.5rem;\n height: 4.5rem;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n line-clamp: 3;\n}\n\n.project-card .project-meta {\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: 0.75rem;\n color: var(--secondary-color);\n margin-bottom: 1rem;\n}\n\n/* Project card actions layout */\n.project-card-actions {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.project-card-actions-row {\n display: flex;\n gap: 0.5rem;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n}\n\n.project-card-actions-row .btn {\n flex: 1;\n text-align: center;\n margin: 0.5rem;\n}\n\n.project-card-actions-secondary {\n justify-content: flex-end;\n}\n\n/* Delete link styling */\n.delete-link {\n color: var(--error-color);\n text-decoration: none;\n font-size: 0.875rem;\n font-weight: 500;\n cursor: pointer;\n transition: color 150ms ease;\n}\n\n.delete-link:hover {\n color: #dc2626;\n text-decoration: underline;\n}\n\n/* Modal styles */\n.modal {\n display: none;\n position: fixed;\n z-index: 1000;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n overflow: auto;\n background-color: rgba(0, 0, 0, 0.4);\n}\n\n.modal-content {\n background-color: var(--surface-color);\n margin: 15% auto;\n padding: 2rem;\n border-radius: 0.5rem;\n width: 80%;\n max-width: 500px;\n box-shadow: var(--box-shadow);\n}\n\n.close-modal {\n color: var(--secondary-color);\n float: right;\n font-size: 1.5rem;\n font-weight: bold;\n cursor: pointer;\n}\n\n.close-modal:hover {\n color: var(--text-color);\n}\n\n#modal-title {\n margin-bottom: 1rem;\n}\n\n#modal-body {\n margin-bottom: 1rem;\n line-height: 1.5;\n}\n\n#modal-body ul {\n margin: 0.5rem 0;\n padding-left: 1.5rem;\n}\n\n#modal-body li {\n margin: 0.25rem 0;\n}\n\n#modal-body p {\n margin: 0.5rem 0;\n}\n\n.modal-actions {\n display: flex;\n justify-content: flex-end;\n gap: 0.75rem;\n margin-top: 1.5rem;\n padding-top: 1rem;\n border-top: 1px solid var(--border-color);\n}\n\n.modal-actions.hidden {\n display: none;\n}\n\n/* Loading overlay */\n.loading-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(255, 255, 255, 0.8);\n z-index: 2000;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n\n.spinner {\n border: 4px solid rgba(0, 0, 0, 0.1);\n width: 40px;\n height: 40px;\n border-radius: 50%;\n border-top-color: var(--primary-color);\n animation: spin 1s linear infinite;\n margin-bottom: 1rem;\n}\n\n@keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n/* Responsive adjustments */\n@media (max-width: 768px) {\n .projects-grid {\n grid-template-columns: 1fr;\n }\n\n .header-container {\n padding: 0 1rem;\n }\n\n .nav-menu li {\n margin-left: 1rem;\n }\n\n .container {\n padding: 1.5rem;\n }\n\n .modal-content {\n width: 90%;\n margin: 10% auto;\n }\n}","/* src/css/setup-detail.css */\n\n/* Collapsible drawers specific to Setup Detail View */\n.collapsible-drawers {\n margin-bottom: 2rem;\n}\n\n.drawer {\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n margin-bottom: 1rem;\n overflow: hidden;\n}\n\n.drawer-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem;\n background-color: #f9fafb;\n cursor: pointer;\n}\n\n.drawer-header h2 {\n font-size: 1rem;\n font-weight: 500;\n}\n\n.toggle-drawer {\n background: none;\n border: none;\n font-size: 1rem;\n cursor: pointer;\n transition: transform var(--drawer-transition);\n}\n\n.drawer-content {\n padding: 1rem;\n border-top: 1px solid var(--border-color);\n /* Visibility is controlled solely by the global `.hidden` class (BAPI-301);\n `.expanded` is reserved for header/glyph styling. The shared drawer helper\n sets the ▲/▼ glyph text directly, so no CSS rotation is applied. */\n}\n\n/* Save button container specific to Setup Detail View */\n.save-container {\n display: flex;\n justify-content: center;\n margin-top: 2rem;\n}\n\n.save-container .btn {\n padding: 0.75rem 1.5rem;\n font-size: 1rem;\n}\n\n/* Static text display (like repo name) */\n.form-static-text {\n background-color: var(--background-color);\n padding: 0.5rem;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n font-family: monospace;\n color: var(--secondary-color);\n margin-top: 0.5rem;\n word-break: break-all;\n}\n\n/* Header title specific to this page */\n.header-title {\n font-size: 1.2rem;\n font-weight: 600;\n color: var(--text-color);\n}\n\n/* Explain Link Styling */\n.explain-link {\n display: inline-block;\n margin-left: 6px;\n padding: 1px 6px;\n font-size: 0.8em;\n font-weight: bold;\n color: #fff;\n background-color: #6c757d;\n border-radius: 50%;\n text-decoration: none;\n cursor: pointer;\n vertical-align: middle;\n line-height: 1.2;\n}\n\n.explain-link:hover {\n background-color: #444;\n text-decoration: none;\n}\n\n.explanation-content {\n /* Hidden by default via the global `.hidden` class in the markup; the JS\n toggles only `.hidden` (BAPI-301), so no base `display: none` here. */\n margin-top: 8px;\n padding: 10px;\n border: 1px solid #ced4da;\n border-radius: 4px;\n background-color: #f8f9fa;\n font-size: 0.9em;\n color: #495057;\n line-height: 1.4;\n}\n\n/* Form error styling */\n.form-error {\n color: var(--error-color);\n font-size: 0.875rem;\n margin-top: 0.5rem;\n display: none;\n}\n\n.form-error.visible {\n display: block;\n}\n\ninput.input-error,\ntextarea.input-error,\nselect.input-error {\n border-color: var(--error-color);\n box-shadow: 0 0 0 0.2rem rgba(239, 68, 68, 0.25);\n}\n\n/* Required field indicator */\n.required {\n color: var(--error-color);\n}\n\n/* ========================================\n Data Integrity Section Styles\n ======================================== */\n\n/* Loading and error states */\n.integrity-loading,\n.integrity-error {\n padding: 1rem;\n text-align: center;\n color: var(--secondary-color);\n}\n\n.integrity-error {\n color: var(--error-color);\n background-color: #fef2f2;\n border: 1px solid #fecaca;\n border-radius: 0.25rem;\n}\n\n/* Summary statistics */\n.integrity-summary {\n display: flex;\n gap: 2rem;\n margin-bottom: 1.5rem;\n padding: 1rem;\n background-color: #f9fafb;\n border-radius: 0.25rem;\n}\n\n.integrity-stat {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.integrity-stat-label {\n font-size: 0.875rem;\n color: var(--secondary-color);\n margin-bottom: 0.25rem;\n}\n\n.integrity-stat-value {\n font-size: 1.5rem;\n font-weight: 600;\n color: var(--text-color);\n}\n\n.integrity-stat-value.integrity-healthy {\n color: #16a34a;\n}\n\n/* Empty state */\n.integrity-empty-state {\n padding: 1.5rem;\n text-align: center;\n background-color: #f0fdf4;\n border: 1px solid #bbf7d0;\n border-radius: 0.25rem;\n color: #166534;\n}\n\n.integrity-empty-state p {\n margin: 0;\n font-weight: 500;\n}\n\n/* Issues table */\n.integrity-table {\n width: 100%;\n border-collapse: collapse;\n margin-top: 1rem;\n}\n\n.integrity-table th,\n.integrity-table td {\n padding: 0.75rem;\n text-align: left;\n border-bottom: 1px solid var(--border-color);\n}\n\n.integrity-table th {\n background-color: #f9fafb;\n font-weight: 500;\n font-size: 0.875rem;\n color: var(--secondary-color);\n}\n\n.integrity-table td {\n font-size: 0.875rem;\n vertical-align: top;\n}\n\n.integrity-table tbody tr:hover {\n background-color: #f9fafb;\n}\n\n/* File list styling */\n.integrity-file-list {\n font-family: monospace;\n font-size: 0.8rem;\n background-color: #f1f5f9;\n padding: 0.5rem;\n border-radius: 4px;\n max-height: 150px;\n overflow-y: auto;\n margin: 0;\n list-style: none;\n}\n\n.integrity-file-list li {\n padding: 0.125rem 0;\n word-break: break-all;\n}\n\n.integrity-file-list li:not(:last-child) {\n border-bottom: 1px solid #e2e8f0;\n}\n\n.integrity-more-files {\n font-style: italic;\n color: var(--secondary-color);\n font-size: 0.8rem;\n margin-top: 0.25rem;\n}\n\n/* Issues container header */\n#integrity-issues-container h3 {\n font-size: 1rem;\n font-weight: 500;\n color: var(--text-color);\n margin-bottom: 0.5rem;\n}\n\n/* ========================================\n Configuration Health Section Styles\n ======================================== */\n\n/* Loading and error states */\n.config-health-loading,\n.config-health-error {\n padding: 1rem;\n text-align: center;\n color: var(--secondary-color);\n}\n\n.config-health-error {\n color: var(--error-color);\n background-color: #fef2f2;\n border: 1px solid #fecaca;\n border-radius: 0.25rem;\n}\n\n/* Summary statistics */\n.health-stats {\n display: flex;\n gap: 2rem;\n margin-bottom: 1.5rem;\n padding: 1rem;\n background-color: #f9fafb;\n border-radius: 0.25rem;\n}\n\n.health-stat {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.health-stat-label {\n font-size: 0.875rem;\n color: var(--secondary-color);\n margin-bottom: 0.25rem;\n}\n\n.health-stat-value {\n font-size: 1.5rem;\n font-weight: 600;\n color: var(--text-color);\n}\n\n.health-stat-value.config-healthy {\n color: #16a34a;\n}\n\n.health-stat-value.config-errors {\n color: var(--error-color);\n}\n\n.health-stat-value.config-warnings {\n color: #f59e0b;\n}\n\n/* All good state */\n.config-health-all-good {\n padding: 1.5rem;\n text-align: center;\n background-color: #f0fdf4;\n border: 1px solid #bbf7d0;\n border-radius: 0.25rem;\n color: #166534;\n}\n\n.config-health-all-good p {\n margin: 0;\n font-weight: 500;\n}\n\n/* Config health table */\n.config-health-table {\n width: 100%;\n border-collapse: collapse;\n margin-top: 1rem;\n}\n\n.config-health-table th,\n.config-health-table td {\n padding: 0.75rem;\n text-align: left;\n border-bottom: 1px solid var(--border-color);\n}\n\n.config-health-table th {\n background-color: #f9fafb;\n font-weight: 500;\n font-size: 0.875rem;\n color: var(--secondary-color);\n}\n\n.config-health-table td {\n font-size: 0.875rem;\n vertical-align: top;\n}\n\n.config-health-table tbody tr:hover {\n background-color: #f9fafb;\n}\n\n/* Status badge styling */\n.config-status-badge {\n display: inline-block;\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 500;\n text-transform: uppercase;\n}\n\n.config-status-badge.status-missing {\n background-color: #fef2f2;\n color: #991b1b;\n}\n\n.config-status-badge.status-invalid {\n background-color: #fef2f2;\n color: #991b1b;\n}\n\n/* Dismiss button styling */\n.dismiss-warning-btn {\n background-color: transparent;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n padding: 0.375rem 0.75rem;\n font-size: 0.875rem;\n color: var(--secondary-color);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.dismiss-warning-btn:hover {\n background-color: #f9fafb;\n border-color: var(--secondary-color);\n color: var(--text-color);\n}\n\n.dismiss-warning-btn:active {\n background-color: #f3f4f6;\n}\n\n.dismiss-warning-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Config errors/warnings container headers */\n#config-errors-container h3,\n#config-warnings-container h3 {\n font-size: 1rem;\n font-weight: 500;\n color: var(--text-color);\n margin-bottom: 0.5rem;\n margin-top: 1.5rem;\n}\n\n#config-errors-container h3 {\n color: var(--error-color);\n}\n\n#config-warnings-container h3 {\n color: #f59e0b;\n}\n\n/* ========================================\n Pinecone Data Integrity Section Styles\n ======================================== */\n\n/* Actions container with button and last run text */\n.pinecone-health-actions {\n display: flex;\n align-items: center;\n gap: 1rem;\n margin-bottom: 1rem;\n}\n\n.last-run-text {\n font-size: 0.875rem;\n color: var(--secondary-color);\n}\n\n/* Loading and error states */\n.pinecone-health-loading,\n.pinecone-health-error {\n padding: 1rem;\n text-align: center;\n color: var(--secondary-color);\n}\n\n.pinecone-health-error {\n color: var(--error-color);\n background-color: #fef2f2;\n border: 1px solid #fecaca;\n border-radius: 0.25rem;\n}\n\n/* No results state */\n.pinecone-health-no-results {\n padding: 1rem;\n text-align: center;\n color: var(--secondary-color);\n background-color: #f9fafb;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n}\n\n.pinecone-health-no-results p {\n margin: 0;\n}\n\n/* Status container and badge */\n.pinecone-health-status-container {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin-bottom: 1rem;\n}\n\n.pinecone-health-status {\n display: inline-block;\n padding: 0.25rem 0.75rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.pinecone-health-status.status-healthy {\n background-color: #dcfce7;\n color: #166534;\n}\n\n.pinecone-health-status.status-error {\n background-color: #fef2f2;\n color: #991b1b;\n}\n\n.pinecone-health-status.status-warning {\n background-color: #fef3c7;\n color: #92400e;\n}\n\n.pinecone-health-status.status-running {\n background-color: #dbeafe;\n color: #1e40af;\n}\n\n/* Summary statistics */\n.pinecone-health-summary {\n display: flex;\n gap: 2rem;\n margin-bottom: 1.5rem;\n padding: 1rem;\n background-color: #f9fafb;\n border-radius: 0.25rem;\n flex-wrap: wrap;\n}\n\n.pinecone-health-stat {\n display: flex;\n flex-direction: column;\n align-items: center;\n min-width: 80px;\n}\n\n.pinecone-stat-label {\n font-size: 0.875rem;\n color: var(--secondary-color);\n margin-bottom: 0.25rem;\n}\n\n.pinecone-stat-value {\n font-size: 1.5rem;\n font-weight: 600;\n color: var(--text-color);\n}\n\n.pinecone-stat-value.stat-healthy {\n color: #16a34a;\n}\n\n.pinecone-stat-value.stat-error {\n color: var(--error-color);\n}\n\n/* All good state */\n.pinecone-health-all-good {\n padding: 1.5rem;\n text-align: center;\n background-color: #f0fdf4;\n border: 1px solid #bbf7d0;\n border-radius: 0.25rem;\n color: #166534;\n}\n\n.pinecone-health-all-good p {\n margin: 0;\n font-weight: 500;\n}\n\n/* Pinecone health table (shared styles for namespace and failures tables) */\n.pinecone-health-table {\n width: 100%;\n border-collapse: collapse;\n margin-top: 1rem;\n table-layout: fixed;\n}\n\n.pinecone-health-table th,\n.pinecone-health-table td {\n padding: 0.75rem;\n text-align: left;\n border-bottom: 1px solid var(--border-color);\n}\n\n.pinecone-health-table th {\n background-color: #f9fafb;\n font-weight: 500;\n font-size: 0.875rem;\n color: var(--secondary-color);\n}\n\n.pinecone-health-table td {\n font-size: 0.875rem;\n vertical-align: middle;\n word-wrap: break-word;\n}\n\n.pinecone-health-table tbody tr:hover {\n background-color: #f9fafb;\n}\n\n/* Namespace results table column widths */\n#pinecone-namespace-container .pinecone-health-table th:nth-child(1),\n#pinecone-namespace-container .pinecone-health-table td:nth-child(1) {\n width: 25%;\n}\n\n#pinecone-namespace-container .pinecone-health-table th:nth-child(2),\n#pinecone-namespace-container .pinecone-health-table td:nth-child(2) {\n width: 15%;\n}\n\n#pinecone-namespace-container .pinecone-health-table th:nth-child(3),\n#pinecone-namespace-container .pinecone-health-table td:nth-child(3),\n#pinecone-namespace-container .pinecone-health-table th:nth-child(4),\n#pinecone-namespace-container .pinecone-health-table td:nth-child(4),\n#pinecone-namespace-container .pinecone-health-table th:nth-child(5),\n#pinecone-namespace-container .pinecone-health-table td:nth-child(5) {\n width: 12%;\n text-align: right;\n}\n\n#pinecone-namespace-container .pinecone-health-table th:nth-child(6),\n#pinecone-namespace-container .pinecone-health-table td:nth-child(6) {\n width: 12%;\n text-align: center;\n}\n\n/* Sample failures table column widths */\n#pinecone-failures-container .pinecone-health-table th:nth-child(1),\n#pinecone-failures-container .pinecone-health-table td:nth-child(1) {\n width: 20%;\n}\n\n#pinecone-failures-container .pinecone-health-table th:nth-child(2),\n#pinecone-failures-container .pinecone-health-table td:nth-child(2) {\n width: 15%;\n}\n\n#pinecone-failures-container .pinecone-health-table th:nth-child(3),\n#pinecone-failures-container .pinecone-health-table td:nth-child(3) {\n width: 30%;\n font-family: monospace;\n font-size: 0.8rem;\n}\n\n#pinecone-failures-container .pinecone-health-table th:nth-child(4),\n#pinecone-failures-container .pinecone-health-table td:nth-child(4) {\n width: 35%;\n}\n\n/* Match indicator */\n.pinecone-match-badge {\n display: inline-block;\n padding: 0.125rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 500;\n}\n\n.pinecone-match-badge.match-yes {\n background-color: #dcfce7;\n color: #166534;\n}\n\n.pinecone-match-badge.match-no {\n background-color: #fef2f2;\n color: #991b1b;\n}\n\n/* Container headers */\n#pinecone-namespace-container h3,\n#pinecone-failures-container h3 {\n font-size: 1rem;\n font-weight: 500;\n color: var(--text-color);\n margin-bottom: 0.5rem;\n margin-top: 1.5rem;\n}\n\n#pinecone-failures-container h3 {\n color: var(--error-color);\n}\n\n/* ========================================\n Install Status Review Panel (BAPI-384)\n ======================================== */\n\n/* Intro paragraph below the page title */\n.setup-detail-intro {\n margin: 0.5rem 0 1.5rem;\n font-size: 0.9rem;\n color: var(--secondary-color);\n line-height: 1.5;\n}\n\n/* Top-level review panel; matches the drawer/panel border + radius + spacing */\n.install-status-panel {\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n padding: 1rem;\n margin-bottom: 2rem;\n background-color: #f9fafb;\n}\n\n.install-status-panel-title {\n font-size: 1rem;\n font-weight: 500;\n color: var(--text-color);\n margin-bottom: 0.75rem;\n}\n\n/* Compact set/unset counts */\n.install-status-summary {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 1rem;\n font-size: 0.875rem;\n color: var(--secondary-color);\n margin-bottom: 1rem;\n}\n\n.install-status-summary-count {\n font-weight: 600;\n color: var(--text-color);\n}\n\n/* Manifest-driven group list */\n.install-status-groups {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n}\n\n.install-status-group {\n border-top: 1px solid var(--border-color);\n padding-top: 0.75rem;\n}\n\n.install-status-group-title {\n font-size: 0.875rem;\n font-weight: 500;\n color: var(--text-color);\n margin-bottom: 0.5rem;\n}\n\n.install-status-field-row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 0.5rem;\n padding: 0.375rem 0;\n font-size: 0.875rem;\n}\n\n.install-status-field-name {\n font-weight: 500;\n color: var(--text-color);\n}\n\n.install-status-field-value {\n color: var(--secondary-color);\n word-break: break-word;\n}\n\n.install-status-field-confirm {\n font-size: 0.75rem;\n font-style: italic;\n color: #92400e;\n}\n\n/* Unavailable / error area */\n.install-status-error {\n padding: 0.75rem 1rem;\n font-size: 0.875rem;\n color: var(--secondary-color);\n background-color: #f9fafb;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n}\n\n/* Base status badge — always pairs color with text, never color alone */\n.install-status-badge {\n display: inline-block;\n padding: 0.125rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 500;\n line-height: 1.4;\n white-space: nowrap;\n}\n\n.install-status-badge.status-set {\n background-color: #dcfce7;\n color: #166534;\n}\n\n.install-status-badge.status-unset {\n background-color: #fef3c7;\n color: #92400e;\n}\n\n.install-status-badge.status-loading {\n background-color: #f1f5f9;\n color: var(--secondary-color);\n}\n\n.install-status-badge.status-unavailable {\n background-color: #f1f5f9;\n color: var(--secondary-color);\n}\n\n/* Inline badge slot next to a field label */\n.install-status-badge-slot {\n display: inline-flex;\n align-items: center;\n margin-left: 6px;\n vertical-align: middle;\n}\n\n/* Keyboard-focusable edit affordance — matches existing link/button affordances */\n.install-status-edit {\n background: none;\n border: none;\n padding: 0;\n font-size: 0.8rem;\n font-weight: 500;\n color: var(--primary-color, #2563eb);\n text-decoration: underline;\n cursor: pointer;\n}\n\n.install-status-edit:hover {\n text-decoration: none;\n}\n\n.install-status-edit:focus-visible {\n outline: 2px solid var(--primary-color, #2563eb);\n outline-offset: 2px;\n border-radius: 0.25rem;\n}\n\n/* Mobile: keep labels/badges/edit controls from crowding the controls */\n@media (max-width: 600px) {\n .install-status-summary {\n gap: 0.5rem;\n }\n\n .install-status-field-row {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .install-status-badge-slot {\n margin-left: 0;\n margin-top: 0.25rem;\n }\n}\n\n","/* Public-page styling for the homepage and the legal placeholder pages.\n Class-scoped only — no overrides of body, :root, .hidden, or form elements. */\n\n.public-page-header {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n padding: 1rem 0;\n margin-bottom: 1.5rem;\n border-bottom: 1px solid var(--border-color);\n}\n\n.public-page-header a {\n display: inline-flex;\n align-items: center;\n text-decoration: none;\n color: inherit;\n}\n\n.public-page-logo {\n height: auto;\n max-width: 240px;\n width: 100%;\n display: block;\n}\n\n@media (max-width: 480px) {\n .public-page-logo {\n max-width: 180px;\n }\n}\n\n.public-page-hero {\n padding: 2rem 0 1.5rem;\n}\n\n.public-page-hero h1 {\n font-size: 1.75rem;\n font-weight: 600;\n color: var(--text-color);\n margin-bottom: 1rem;\n}\n\n.public-page-copy {\n font-size: 1rem;\n color: var(--text-color);\n line-height: 1.6;\n}\n\n.public-page-copy p {\n margin-bottom: 0.75rem;\n}\n\n.public-page-actions {\n margin-top: 1.5rem;\n display: flex;\n gap: 0.75rem;\n flex-wrap: wrap;\n}\n\n.public-page-actions a {\n text-decoration: none;\n display: inline-block;\n}\n\n.public-page-footer {\n margin-top: 3rem;\n padding-top: 1.5rem;\n border-top: 1px solid var(--border-color);\n color: var(--secondary-color);\n font-size: 0.875rem;\n}\n\n.public-page-footer-nav {\n display: flex;\n gap: 1.5rem;\n flex-wrap: wrap;\n}\n\n.public-page-footer-nav a {\n color: var(--secondary-color);\n text-decoration: none;\n}\n\n.public-page-footer-nav a:hover {\n color: var(--primary-color);\n text-decoration: underline;\n}\n\n.legal-page-content {\n max-width: 800px;\n background-color: var(--surface-color);\n border-radius: 0.5rem;\n padding: 2rem;\n box-shadow: var(--box-shadow);\n}\n\n.legal-page-content h1 {\n font-size: 1.75rem;\n font-weight: 600;\n color: var(--text-color);\n margin-bottom: 0.5rem;\n}\n\n.legal-page-content .last-updated {\n color: var(--secondary-color);\n font-size: 0.875rem;\n margin-bottom: 1.5rem;\n}\n\n.legal-section {\n margin-bottom: 1.5rem;\n}\n\n.legal-section h2 {\n font-size: 1.25rem;\n font-weight: 600;\n color: var(--text-color);\n margin-bottom: 0.5rem;\n}\n\n.legal-section p {\n color: var(--text-color);\n line-height: 1.6;\n margin-bottom: 0.75rem;\n}\n","/* src/css/project-detail.css */\n\n/* Collapsible drawers specific to Project Detail View */\n.collapsible-drawers {\n margin-bottom: 2rem;\n}\n\n.drawer {\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n margin-bottom: 1rem;\n overflow: hidden;\n}\n\n.drawer-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem;\n background-color: #f9fafb;\n cursor: pointer;\n}\n\n.drawer-header h2 {\n font-size: 1rem;\n font-weight: 500;\n}\n\n.toggle-drawer {\n background: none;\n border: none;\n font-size: 1rem;\n cursor: pointer;\n transition: transform var(--drawer-transition);\n}\n\n.drawer-content {\n padding: 1rem;\n border-top: 1px solid var(--border-color);\n /* Visibility is controlled solely by the global `.hidden` class (BAPI-301);\n `.expanded` is reserved for header/glyph styling. The shared drawer helper\n sets the ▲/▼ glyph text directly, so no CSS rotation is applied. */\n}\n\n/* Save button container specific to Project Detail View */\n.save-container {\n display: flex;\n justify-content: center;\n margin-top: 2rem;\n}\n\n.save-container .btn {\n padding: 0.75rem 1.5rem;\n font-size: 1rem;\n}\n\n/* Static text display (like project path) */\n.form-static-text {\n background-color: var(--background-color);\n padding: 0.5rem;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n font-family: monospace; /* Or choose appropriate font */\n color: var(--secondary-color);\n margin-top: 0.5rem; /* Align with inputs */\n word-break: break-all; /* Prevent long paths from breaking layout */\n}\n\n/* Header title specific to this page */\n.header-title {\n font-size: 1.2rem;\n font-weight: 600;\n color: var(--text-color);\n}\n\n/* Explain Link Styling */\n.explain-link {\n margin-left: 0.5rem;\n color: var(--primary-color);\n text-decoration: none;\n font-weight: bold;\n}\n\n.explain-link:hover {\n text-decoration: underline;\n}\n\n.explanation-content {\n margin-top: 0.5rem;\n padding: 0.75rem;\n background-color: #eef2ff; /* Light indigo background */\n border-left: 4px solid var(--primary-color);\n font-size: 0.875rem;\n color: #374151; /* Gray-700 */\n border-radius: 0 0.25rem 0.25rem 0; /* Slight rounding */\n flex-basis: 100%;\n width: 100%;\n}\n\n.project-card-actions {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n/* Explanation link and content styles */\n.explain-link {\n display: inline-block;\n margin-left: 6px;\n padding: 1px 6px;\n font-size: 0.8em;\n font-weight: bold;\n color: #fff;\n background-color: #6c757d; /* Bootstrap secondary color */\n border-radius: 50%;\n text-decoration: none;\n cursor: pointer;\n vertical-align: middle; /* Align with the label text */\n line-height: 1.2;\n}\n\n.explain-link:hover {\n background-color: #444;\n text-decoration: none;\n}\n\n.explanation-content {\n /* Base styling only; visibility is toggled via the .hidden class so the JS\n can show/hide help without inline display mutations. */\n margin-top: 8px;\n padding: 10px;\n border: 1px solid #ced4da; /* Light grey border */\n border-radius: 4px;\n background-color: #f8f9fa; /* Light background */\n font-size: 0.9em;\n color: #495057;\n line-height: 1.4;\n}\n\n/* The shared setup-detail.css defines a global `.explanation-content { display:\n none }` that also lands in the bundled stylesheet. Scope the visible/hidden\n states to this page's container so they win deterministically regardless of\n bundle order, while leaving the setup-detail page's own behavior untouched.\n The .hidden variant has higher specificity so it always hides when present. */\n#project-detail-container .explanation-content {\n display: block;\n}\n\n#project-detail-container .explanation-content.hidden {\n display: none;\n}\n\n/* Added styles for JSON input textarea */\n.code-input {\n font-family: 'Courier New', Courier, monospace;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n padding: 0.75rem;\n font-size: 0.9rem;\n line-height: 1.4;\n width: 100%; /* Ensure it takes full width */\n}\n\n/* Add styles for input validation feedback */\n.form-error {\n color: #dc3545; /* Bootstrap danger color */\n font-size: 0.875em;\n margin-top: 0.25rem;\n display: none; /* Hide by default */\n}\n\ninput.input-error,\ntextarea.input-error,\nselect.input-error {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); /* Optional: Add a glow */\n}\n\n/* Ensure error messages are shown when they have content */\n.form-error:not(:empty) {\n display: block;\n}\n\n/* Added styles for validation error messages */\n.form-error {\n color: var(--error-color);\n font-size: 0.875rem;\n margin-top: 0.5rem;\n display: none; /* Hidden by default */\n}\n\n.form-error.visible {\n display: block; /* Visible when needed */\n}\n\n/* MCP Validation Manuals selector\n Lay each manual out on its own row with clear spacing between the checkbox and\n its label. JS-emitted classes (.mcp-doc-option/.mcp-doc-checkbox/.mcp-doc-label)\n are only styled here — never renamed. */\n.mcp-docs-checkbox-list {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n margin-top: 0.5rem;\n}\n\n.mcp-doc-option {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n line-height: 1.4;\n cursor: pointer;\n}\n\n.mcp-doc-checkbox {\n margin: 0; /* drop inconsistent default checkbox margins */\n flex-shrink: 0; /* keep the checkbox from shrinking next to long labels */\n}\n\n.mcp-doc-label {\n /* Spacing comes from the parent's gap; keep the label inline and readable. */\n display: inline;\n}\n\n.mcp-docs-empty-state {\n margin-top: 0.5rem;\n padding: 0.5rem 0.75rem;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n color: var(--secondary-color);\n font-size: 0.875rem;\n}\n\n/* --- CI Follow-up sub-section (BAPI-308) --- */\n/* Page-scoped under #project-detail-container so these styles never leak to other\n Configure-page-like layouts. Uses existing semantic CSS variables. */\n#project-detail-container .ci-followup-section {\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n padding: 0.75rem;\n margin-top: 0.5rem;\n}\n\n#project-detail-container .ci-followup-controls {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n margin-top: 0.75rem;\n}\n\n#project-detail-container .ci-followup-strategy-option {\n display: block;\n margin-bottom: 0.5rem;\n}\n\n/* .form-help styles all page-scoped help paragraphs (the deep-research stall\n timeout helper and the CI Follow-up strategy descriptions), not only the CI\n Follow-up sub-section. */\n#project-detail-container .form-help {\n margin: 0.25rem 0 0;\n color: var(--secondary-color);\n font-size: 0.875rem;\n}\n\n#project-detail-container .ci-followup-byte-counter {\n margin-top: 0.25rem;\n color: var(--secondary-color);\n font-size: 0.8125rem;\n}\n\n#project-detail-container .ci-followup-byte-counter.over-limit {\n color: var(--error-color);\n}\n\n/* BAPI-355: low-emphasis grouping for the TDD/FSD document-format controls.\n Keeps the existing drawer rhythm (form-group spacing, textarea readability,\n focus states inherited from the base textarea rules) while visually grouping\n the two document-format textareas under a shared intro paragraph. */\n#project-detail-container .form-group-document-format {\n border-left: 3px solid var(--border-color);\n padding-left: 0.75rem;\n}\n\n#project-detail-container .document-format-help {\n margin: 0 0 0.5rem;\n color: var(--secondary-color);\n font-size: 0.875rem;\n line-height: 1.4;\n}","/* Code Analysis Styling */\n\n.hidden {\n display: none !important;\n}\n\n.analysis-section {\n margin-bottom: 2rem;\n padding-bottom: 1.5rem;\n border-bottom: 1px solid var(--border-color);\n}\n\n#build-section {\n padding-top: 2rem;\n}\n\n.analysis-section:last-child {\n border-bottom: none;\n}\n\n.analysis-section h4 {\n margin-bottom: 1rem;\n font-size: 1.1rem;\n font-weight: 600;\n}\n\n.analysis-info-label {\n margin-bottom: 10px;\n font-style: italic;\n color: #555;\n line-height: 1.5;\n}\n\n.reanalyze-container {\n margin-top: 10px;\n font-size: 0.9em;\n}\n\n.reanalyze-container p {\n margin: 0;\n}\n\n.reanalyze-container a {\n color: var(--primary-color);\n text-decoration: none;\n font-weight: 500;\n}\n\n.reanalyze-container a:hover {\n text-decoration: underline;\n}\n\n.code-analysis {\n margin-top: 2rem;\n padding: 1rem 0;\n border-top: 1px solid var(--border-color);\n}\n\n.code-analysis h3 {\n margin-bottom: 1rem;\n font-size: 1.1rem;\n font-weight: 600;\n}\n\n.code-analysis form {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n margin-bottom: 1rem;\n}\n\n.code-analysis form > div {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n\n.code-analysis label {\n font-weight: 500;\n color: var(--text-color);\n}\n\n.code-analysis select,\n.code-analysis textarea {\n padding: 0.5rem;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n font-family: inherit;\n}\n\n.code-analysis select:focus,\n.code-analysis textarea:focus {\n outline: none;\n border-color: var(--primary-color);\n box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);\n}\n\n.status-message {\n margin-top: 0.5rem;\n font-size: 0.875rem;\n padding: 0.5rem;\n border-radius: 0.25rem;\n}\n\n.status-message.processing {\n background-color: #e0f2fe;\n color: #0277bd;\n border: 1px solid #81d4fa;\n}\n\n.status-message.success {\n background-color: #e8f5e8;\n color: #2e7d32;\n border: 1px solid #a5d6a7;\n}\n\n.status-message.error {\n background-color: #ffebee;\n color: #c62828;\n border: 1px solid #ef9a9a;\n}\n\n.textarea-wide {\n width: 100%;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.875rem;\n line-height: 1.4;\n resize: vertical;\n}\n\n.code-analysis button {\n align-self: flex-start;\n margin-top: 0.5rem;\n}\n","/* src/css/optimize.css */\n\n/* Collapsible drawers specific to Optimize View */\n.collapsible-drawers {\n margin-bottom: 2rem;\n}\n\n.drawer {\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n margin-bottom: 1rem;\n overflow: hidden;\n}\n\n.drawer-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem;\n background-color: #f9fafb;\n cursor: pointer;\n}\n\n.drawer-header h2 {\n font-size: 1rem;\n font-weight: 500;\n}\n\n.toggle-drawer {\n background: none;\n border: none;\n font-size: 1rem;\n cursor: pointer;\n transition: transform var(--drawer-transition);\n}\n\n.drawer-content {\n padding: 1rem;\n border-top: 1px solid var(--border-color);\n /* Visibility is controlled solely by the global `.hidden` class (BAPI-301);\n `.expanded` is reserved for header/glyph styling. The shared drawer helper\n sets the ▲/▼ glyph text directly, so no CSS rotation is applied. */\n}\n\n/* Planner sub-section */\n.planner-section {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n margin-top: 1rem;\n}\n\nselect[multiple] {\n min-height: 180px;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n}\n\n/* Label styling */\nlabel {\n font-weight: 500;\n color: var(--text-color);\n margin-bottom: 0.5rem;\n display: block;\n}\n\n/* ====================================================================\n * LEARN REPOSITORY STYLES\n * ==================================================================== */\n#learn-repository-section {\n * {\n margin-top: 1rem;\n }\n\n padding-bottom: 2rem;\n border-bottom: 1px solid var(--border-color);\n}\n\n.learn-section {\n padding-bottom: 1.5rem;\n margin-bottom: 1.5rem;\n border-bottom: 1px solid #e5e7eb;\n}\n\n.learn-section:last-of-type {\n border-bottom: none;\n margin-bottom: 0;\n}\n\n/* ====================================================================\n * LEARN REPOSITORY PER-SECTION STATE CLASSES (BAPI-307)\n *\n * Declarative per-section state cues. Visibility is driven ONLY by the global\n * `.hidden` class (toggled in JS by the renderer); these classes add a small\n * left-border status accent and never set display/visibility. `data-state` is\n * intentionally NOT used as a visibility mechanism, and `.hidden` is never\n * redefined here.\n * ==================================================================== */\n.learn-section.lr-state-idle {\n border-left: 3px solid var(--border-color);\n padding-left: 1rem;\n}\n\n.learn-section.lr-state-running {\n border-left: 3px solid var(--primary-color);\n padding-left: 1rem;\n}\n\n.learn-section.lr-state-review {\n border-left: 3px solid var(--primary-color);\n padding-left: 1rem;\n}\n\n.learn-section.lr-state-draft {\n border-left: 3px solid var(--primary-color);\n padding-left: 1rem;\n}\n\n.learn-section.lr-state-complete {\n border-left: 3px solid var(--text-color);\n padding-left: 1rem;\n}\n\n/* The Reanalyze control is now a <button> (BAPI-307) rather than an inline\n * link; keep it left-aligned as a block action within the section actions. */\n.lr-reanalyze-link {\n display: inline-block;\n}\n\n.lr-initial-mode-options {\n display: flex;\n flex-direction: row;\n gap: 1.25rem;\n align-items: center;\n}\n\n.lr-initial-mode-options label {\n display: inline;\n font-weight: normal;\n}\n\n.lr-in-progress-container {\n margin: 0.5rem 0 1rem;\n padding: 0.75rem 1rem;\n border: 1px solid var(--border-color);\n border-radius: 0.375rem;\n}\n\n/* Horizontal separation between the reanalyze Confirm and Cancel buttons.\n * Adjacent-sibling margin keeps the existing block-level radio labels from\n * being reflowed, which a flex/gap container would do. */\n.lr-reanalyze-confirm-btn + .lr-reanalyze-cancel-btn {\n margin-left: 0.5rem;\n}\n\n/* ====================================================================\n * ESTIMATOR SECTION STYLES\n * ==================================================================== */\n\n#estimator-section {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n}\n\n#estimator-section > div {\n padding: 1rem;\n border-radius: 0.375rem;\n border: 1px solid var(--border-color);\n}\n\n#estimator-optimize {\n background-color: #f0f9ff;\n border-color: #0ea5e9;\n}\n\n#estimator-running {\n background-color: #fef3c7;\n border-color: #f59e0b;\n}\n\n#estimator-review {\n background-color: #f0fdf4;\n border-color: #22c55e;\n}\n\n#estimator-loading {\n background-color: #f3f4f6;\n border-color: var(--border-color);\n text-align: center;\n}\n\n#range-editor {\n margin: 1rem 0;\n}\n\n#range-json {\n width: 100%;\n min-height: 300px;\n padding: 0.75rem;\n border: 1px solid var(--border-color);\n border-radius: 0.375rem;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.875rem;\n line-height: 1.5;\n background-color: #f8fafc;\n resize: vertical;\n}\n\n#range-json:focus {\n outline: none;\n border-color: var(--primary-color);\n box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.1);\n}\n\n.estimator-actions {\n display: flex;\n gap: 0.5rem;\n margin-top: 1rem;\n}\n\n.estimator-actions .btn {\n flex: 0 0 auto;\n}\n\n/* Responsive design for estimator */\n@media (max-width: 768px) {\n #range-json {\n min-height: 200px;\n font-size: 0.75rem;\n }\n \n .estimator-actions {\n flex-direction: column;\n }\n \n .estimator-actions .btn {\n width: 100%;\n }\n}\n\n/* Success/Error states for estimator messages */\n.estimator-message {\n padding: 0.75rem;\n border-radius: 0.375rem;\n margin-bottom: 1rem;\n}\n\n.estimator-message.success {\n background-color: #dcfce7;\n color: #166534;\n border: 1px solid #22c55e;\n}\n\n.estimator-message.error {\n background-color: #fef2f2;\n color: #991b1b;\n border: 1px solid #ef4444;\n}\n\n.estimator-message.info {\n background-color: #eff6ff;\n color: #1e40af;\n border: 1px solid #3b82f6;\n}\n\n.draft-review-container .btn + .btn {\n margin-left: 1.5rem;\n}\n","/* Font faces */\n@font-face {\n font-family: 'Source Sans Pro';\n src: url('/public/fonts/SourceSansPro-Regular.ttf') format('truetype');\n font-weight: 400;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'Source Sans Pro';\n src: url('/public/fonts/SourceSansPro-Italic.ttf') format('truetype');\n font-weight: 400;\n font-style: italic;\n}\n\n@font-face {\n font-family: 'Source Sans Pro';\n src: url('/public/fonts/SourceSansPro-ExtraLight.ttf') format('truetype');\n font-weight: 200;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'Source Sans Pro';\n src: url('/public/fonts/SourceSansPro-ExtraLightItalic.ttf') format('truetype');\n font-weight: 200;\n font-style: italic;\n}\n\n@font-face {\n font-family: 'Source Sans Pro';\n src: url('/public/fonts/SourceSansPro-Light.ttf') format('truetype');\n font-weight: 300;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'Source Sans Pro';\n src: url('/public/fonts/SourceSansPro-LightItalic.ttf') format('truetype');\n font-weight: 300;\n font-style: italic;\n}\n\n@font-face {\n font-family: 'Source Sans Pro';\n src: url('/public/fonts/SourceSansPro-SemiBold.ttf') format('truetype');\n font-weight: 600;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'Source Sans Pro';\n src: url('/public/fonts/SourceSansPro-SemiBoldItalic.ttf') format('truetype');\n font-weight: 600;\n font-style: italic;\n}\n\n@font-face {\n font-family: 'Source Sans Pro';\n src: url('/public/fonts/SourceSansPro-Bold.ttf') format('truetype');\n font-weight: 700;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'Source Sans Pro';\n src: url('/public/fonts/SourceSansPro-BoldItalic.ttf') format('truetype');\n font-weight: 700;\n font-style: italic;\n}\n\n@font-face {\n font-family: 'Source Sans Pro';\n src: url('/public/fonts/SourceSansPro-Black.ttf') format('truetype');\n font-weight: 900;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'Source Sans Pro';\n src: url('/public/fonts/SourceSansPro-BlackItalic.ttf') format('truetype');\n font-weight: 900;\n font-style: italic;\n}\n\n/* Global variables */\n:root {\n --primary-color: #E2624B;\n --primary-dark: #C51616;\n --secondary-color: #6b7280;\n --light-grey: #eee;\n --secondary-button-background: #fdf4ec;\n --light-orange: #F2B27A;\n --dark-orange: #e17055;\n --background-color: #fffdf0;\n --surface-color: #ffffff;\n --text-color: #393D4E;\n --border-color: #e6e4d5;\n --error-color: #ef4444;\n --success-color: #10b981;\n --header-height: 60px;\n --box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n}\n\n/* Reset and base styles */\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\nbody {\n font-family: 'Source Sans Pro', -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n background-color: var(--background-color);\n color: var(--text-color);\n line-height: 1.5;\n min-height: 100vh;\n padding-top: var(--header-height);\n}\n\n.hidden {\n display: none !important;\n}\n\n/* Button styles */\n.btn {\n cursor: pointer;\n padding: 0.75rem 2rem;\n border-radius: 4px;\n border: 1px solid transparent;\n font-size: 1rem;\n line-height: 1.25rem;\n transition: background-color 0.3s ease;\n}\n\n.btn-primary {\n background-color: var(--primary-color);\n color: white;\n}\n\n.btn-primary:hover {\n background-color: var(--primary-dark);\n}\n\n.btn-secondary {\n background-color: var(--secondary-button-background);\n border: 1px solid var(--light-orange);\n color: #333;\n}\n\n.btn-secondary:hover {\n text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);\n background-color: var(--dark-orange);\n color: white;\n} \n\n.btn-sm {\n padding: 0.2rem 0.5rem;\n font-size: 0.75rem;\n}\n\n.btn-danger {\n background-color: var(--error-color);\n color: white;\n}\n\n.btn-danger:hover {\n background-color: #b91c1c; /* darker red for hover */\n}\n\n.btn:disabled {\n background-color: #d1d5db;\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n/* Form element base styles */\nlabel {\n display: block;\n font-size: 0.875rem;\n font-weight: 500;\n margin-bottom: 0.5rem;\n}\n\ninput[type=\"text\"],\ninput[type=\"password\"],\ninput[type=\"email\"],\ninput[type=\"url\"],\ninput[type=\"number\"],\ntextarea {\n width: 100%;\n padding: 0.5rem;\n font-size: 1rem;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n background-color: #fff;\n}\n\ninput[type=\"number\"] {\n width: auto;\n}\n\ntextarea {\n min-height: 100px;\n resize: vertical;\n}\n\n.required {\n color: var(--error-color);\n}\n\n/* Checkbox styling */\n.form-group.checkbox {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.form-group.checkbox input {\n margin-right: 0.5rem;\n}\n\n.form-group.checkbox label {\n margin-bottom: 0;\n}\n\n/* Modal base styles (if used globally) */\n.modal {\n display: none;\n position: fixed;\n z-index: 1000;\n left: 0;\n top: 0;\n width: 100vw;\n height: 100vh;\n background: rgba(0,0,0,0.4);\n align-items: center;\n justify-content: center;\n}\n","/* ============================================================\n Get-Started onboarding page styles\n All rules scoped under #get-started-container\n ============================================================ */\n\n#get-started-container .get-started-intro {\n color: var(--text-muted, #666);\n max-width: 720px;\n margin-bottom: 1.5rem;\n line-height: 1.6;\n}\n\n/* ---- Section cards ---- */\n#get-started-container .get-started-section {\n background: var(--card-bg, #fff);\n border: 1px solid var(--border-color, #e0e0e0);\n border-radius: 8px;\n padding: 1.5rem;\n margin-bottom: 1.5rem;\n}\n\n#get-started-container .get-started-section h2 {\n margin-top: 0;\n font-size: 1.15rem;\n margin-bottom: 0.75rem;\n}\n\n/* ---- Install-key generation panel ---- */\n.install-key-panel {\n border: 1px solid var(--border-color, #e0e0e0);\n background: var(--code-bg, #f8f9fa);\n border-radius: 8px;\n padding: 1rem 1.25rem;\n margin: 0.75rem 0 1.25rem;\n}\n\n.install-key-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 1rem;\n flex-wrap: wrap;\n}\n\n.install-key-header h3 {\n margin: 0 0 0.25rem;\n font-size: 1rem;\n}\n\n.install-key-header p {\n margin: 0;\n font-size: 0.88rem;\n color: var(--text-muted, #666);\n max-width: 48ch;\n}\n\n.install-key-actions {\n display: flex;\n align-items: center;\n gap: 0.6rem;\n flex-shrink: 0;\n}\n\n.install-key-status {\n font-size: 0.82rem;\n color: var(--success-color, #28a745);\n}\n\n.install-key-error {\n margin: 0.75rem 0 0;\n font-size: 0.85rem;\n color: var(--danger-color, #dc3545);\n}\n\n.install-key-error.hidden {\n display: none;\n}\n\n.install-key-result {\n margin-top: 1rem;\n}\n\n.install-key-result.hidden {\n display: none;\n}\n\n/* Mirror the Security page warning treatment */\n.install-key-panel .key-warning {\n color: #856404;\n background: #fff3cd;\n border: 1px solid #ffc107;\n border-radius: 4px;\n padding: 0.75rem;\n margin-bottom: 0.75rem;\n font-weight: 600;\n font-size: 0.88rem;\n}\n\n.install-key-panel .key-display {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n flex-wrap: wrap;\n}\n\n.install-key-panel .key-display input {\n flex: 1;\n min-width: 200px;\n padding: 0.5rem 0.75rem;\n border: 1px solid var(--border-color, #dee2e6);\n border-radius: 4px;\n font-family: monospace;\n font-size: 0.85rem;\n background: #fff;\n}\n\n/* Snippet placeholder once the minted key has been injected */\n.bapi-api-key-slot-filled {\n background: #d4edda;\n color: #155724;\n font-style: normal;\n}\n\n/* ---- Snippet tabs ---- */\n#editor-tabs {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n margin-bottom: 1rem;\n border-bottom: 2px solid var(--border-color, #e0e0e0);\n padding-bottom: 0.25rem;\n}\n\n.snippet-tab-btn {\n background: none;\n border: none;\n padding: 0.4rem 0.8rem;\n cursor: pointer;\n font-size: 0.9rem;\n color: var(--text-muted, #666);\n border-radius: 4px 4px 0 0;\n border-bottom: 3px solid transparent;\n transition: color 0.15s, border-color 0.15s;\n}\n\n.snippet-tab-btn:hover {\n color: var(--primary-color, #007bff);\n}\n\n.snippet-tab-btn.active,\n.snippet-tab-btn[aria-selected=\"true\"] {\n color: var(--primary-color, #007bff);\n border-bottom-color: var(--primary-color, #007bff);\n font-weight: 600;\n}\n\n.snippet-tab-btn:focus-visible {\n outline: 2px solid var(--primary-color, #007bff);\n outline-offset: 2px;\n}\n\n/* ---- Code panels ---- */\n.snippet-panel {\n margin-bottom: 0.5rem;\n}\n\n.snippet-panel.hidden {\n display: none;\n}\n\n.snippet-meta {\n font-size: 0.78rem;\n color: var(--text-muted, #888);\n margin-bottom: 0.4rem;\n font-family: monospace;\n}\n\n.snippet-notes {\n font-size: 0.85rem;\n color: var(--text-muted, #666);\n margin-bottom: 0.5rem;\n font-style: italic;\n}\n\n.snippet-panel pre {\n background: var(--code-bg, #f5f5f5);\n border: 1px solid var(--border-color, #ddd);\n border-radius: 6px;\n padding: 1rem;\n overflow-x: auto;\n margin-bottom: 0.5rem;\n max-width: 100%;\n}\n\n.snippet-panel code {\n font-family: 'Courier New', Courier, monospace;\n font-size: 0.82rem;\n line-height: 1.5;\n white-space: pre;\n word-break: normal;\n overflow-wrap: normal;\n}\n\n/* API-key placeholder slot */\n.bapi-api-key-slot {\n background: #fff3cd;\n color: #856404;\n border-radius: 3px;\n padding: 0 2px;\n font-style: italic;\n font-weight: 600;\n}\n\n/* ---- Copy row ---- */\n.snippet-copy-row {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin-top: 0.25rem;\n}\n\n.copy-status {\n font-size: 0.82rem;\n color: var(--success-color, #28a745);\n min-width: 60px;\n}\n\n/* ---- /install-bridge hand-off ---- */\n.install-bridge-notice {\n background: #fff8e1;\n border-left: 4px solid #f59e0b;\n padding: 0.75rem 1rem;\n border-radius: 4px;\n margin-bottom: 1rem;\n font-size: 0.9rem;\n line-height: 1.5;\n}\n\n.handoff-copy-row {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n flex-wrap: wrap;\n}\n\n.handoff-command {\n background: var(--code-bg, #f5f5f5);\n border: 1px solid var(--border-color, #ddd);\n border-radius: 4px;\n padding: 0.3rem 0.6rem;\n font-size: 0.95rem;\n font-family: monospace;\n}\n\n/* ---- Config-status readout ---- */\n.status-summary {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin-bottom: 1rem;\n flex-wrap: wrap;\n}\n\n.status-total {\n font-size: 0.85rem;\n color: var(--text-muted, #666);\n}\n\n.status-chip {\n display: inline-block;\n padding: 0.2rem 0.6rem;\n border-radius: 12px;\n font-size: 0.8rem;\n font-weight: 600;\n letter-spacing: 0.02em;\n}\n\n.status-set {\n background: #d4edda;\n color: #155724;\n}\n\n.status-unset {\n background: #f8d7da;\n color: #721c24;\n}\n\n.status-group {\n margin-bottom: 1rem;\n}\n\n.status-group-title {\n font-size: 0.9rem;\n font-weight: 600;\n color: var(--text-muted, #555);\n margin: 0 0 0.4rem;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n}\n\n.status-field-row {\n display: flex;\n align-items: baseline;\n gap: 0.6rem;\n padding: 0.25rem 0;\n border-bottom: 1px solid var(--border-color, #eee);\n flex-wrap: wrap;\n}\n\n.status-field-row:last-child {\n border-bottom: none;\n}\n\n.status-field-name {\n font-size: 0.88rem;\n font-family: monospace;\n}\n\n.status-field-value {\n font-size: 0.8rem;\n color: var(--text-muted, #888);\n font-family: monospace;\n word-break: break-all;\n}\n\n.status-empty {\n color: var(--text-muted, #888);\n font-style: italic;\n font-size: 0.9rem;\n}\n\n/* ---- Skeleton loading ---- */\n.get-started-state {\n padding: 1rem 0;\n}\n\n.get-started-state.hidden {\n display: none;\n}\n\n.skeleton {\n background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);\n background-size: 200% 100%;\n animation: skeleton-shimmer 1.4s infinite;\n border-radius: 6px;\n margin-bottom: 0.75rem;\n}\n\n@keyframes skeleton-shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n}\n\n.skeleton-tabs {\n height: 36px;\n width: 70%;\n}\n\n.skeleton-code {\n height: 160px;\n width: 100%;\n}\n\n.skeleton-status {\n height: 80px;\n width: 100%;\n}\n\n/* ---- Inline error ---- */\n.get-started-error-msg {\n color: var(--danger-color, #dc3545);\n margin-bottom: 0.75rem;\n}\n\n/* ---- Footer link ---- */\n.get-started-footer {\n margin-top: 1rem;\n text-align: center;\n}\n\n/* ---- Responsive ---- */\n@media (max-width: 600px) {\n .snippet-tab-btn {\n padding: 0.35rem 0.55rem;\n font-size: 0.82rem;\n }\n\n .handoff-copy-row {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .install-key-header {\n flex-direction: column;\n }\n\n .install-key-actions {\n width: 100%;\n }\n\n .install-key-actions .btn {\n flex: 1;\n }\n\n .install-key-panel .key-display {\n flex-direction: column;\n align-items: stretch;\n }\n\n .install-key-panel .key-display input,\n .install-key-panel .key-display .btn {\n width: 100%;\n }\n\n .status-field-row {\n flex-direction: column;\n gap: 0.2rem;\n }\n}\n","/* src/css/data_health.css */\n\n/* Collapsible drawers for Data Health View */\n.collapsible-drawers {\n margin-bottom: 2rem;\n}\n\n.drawer {\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n margin-bottom: 1rem;\n overflow: hidden;\n}\n\n.drawer-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem;\n background-color: #f9fafb;\n cursor: pointer;\n}\n\n.drawer-header h2 {\n font-size: 1rem;\n font-weight: 500;\n}\n\n.toggle-drawer {\n background: none;\n border: none;\n font-size: 1rem;\n cursor: pointer;\n transition: transform var(--drawer-transition);\n}\n\n.drawer-content {\n padding: 1rem;\n border-top: 1px solid var(--border-color);\n /* Visibility is controlled solely by the global `.hidden` class (BAPI-301);\n `.expanded` is reserved for header/glyph styling. The shared drawer helper\n sets the ▲/▼ glyph text directly, so no CSS rotation is applied. */\n}\n\n/* ========================================\n Parse / Learn Repository Jobs Section Styles\n ======================================== */\n\n.parse-repository-jobs-section,\n.learn-repository-jobs-section {\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n}\n\n/* Last-ran timestamp shown under the Update Repository action.\n Replaces a former inline style on the template. */\n.operation-last-ran {\n margin-top: 0.5rem;\n font-size: 0.875rem;\n}\n\n/* Parse schedule status panel. Replaces the former inline-styled status\n blocks; state colors come from global design tokens (no hardcoded colors). */\n.parse-schedule-status {\n margin-top: 0.75rem;\n padding: 0.75rem;\n border: 1px solid var(--border-color);\n border-radius: 4px;\n font-size: 0.875rem;\n}\n\n.parse-schedule-status--active {\n color: var(--success-color);\n border-color: var(--success-color);\n}\n\n.parse-schedule-status--paused,\n.parse-schedule-status--empty {\n color: var(--dark-orange);\n border-color: var(--dark-orange);\n}\n\n.parse-schedule-next-run {\n display: block;\n margin-top: 0.25rem;\n color: var(--text-color);\n}\n\n.parse-schedule-actions {\n margin-top: 0.5rem;\n display: flex;\n gap: 0.5rem;\n}\n\n.operation-row {\n display: flex;\n flex-direction: column;\n padding-bottom: 1rem;\n border-bottom: 1px solid var(--border-color);\n}\n\n.operation-row:last-child {\n border-bottom: none;\n padding-bottom: 0;\n}\n\n.operation-item {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.operation-item .btn {\n align-self: flex-start;\n}\n\n.operation-label {\n font-size: 0.875rem;\n color: var(--secondary-color);\n line-height: 1.4;\n}\n\n.schedule-controls {\n display: flex;\n gap: 1rem;\n margin-top: 0.5rem;\n align-items: flex-end;\n}\n\n.schedule-controls .form-group {\n margin-bottom: 0;\n}\n\n.schedule-controls .form-group.inline {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n\n.schedule-controls .form-group.inline label {\n font-size: 0.75rem;\n color: var(--secondary-color);\n}\n\n.schedule-controls .form-group.inline input,\n.schedule-controls .form-group.inline select {\n width: auto;\n min-width: 120px;\n padding: 0.375rem 0.5rem;\n font-size: 0.875rem;\n}\n\n/* ========================================\n Data Integrity Section Styles\n ======================================== */\n\n/* Loading and error states */\n.integrity-loading,\n.integrity-error {\n padding: 1rem;\n text-align: center;\n color: var(--secondary-color);\n}\n\n.integrity-error {\n color: var(--error-color);\n background-color: #fef2f2;\n border: 1px solid #fecaca;\n border-radius: 0.25rem;\n}\n\n/* Summary statistics */\n.integrity-summary {\n display: flex;\n gap: 2rem;\n margin-bottom: 1.5rem;\n padding: 1rem;\n background-color: #f9fafb;\n border-radius: 0.25rem;\n}\n\n.integrity-stat {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.integrity-stat-label {\n font-size: 0.875rem;\n color: var(--secondary-color);\n margin-bottom: 0.25rem;\n}\n\n.integrity-stat-value {\n font-size: 1.5rem;\n font-weight: 600;\n color: var(--text-color);\n}\n\n.integrity-stat-value.integrity-healthy {\n color: #16a34a;\n}\n\n/* Empty state */\n.integrity-empty-state {\n padding: 1.5rem;\n text-align: center;\n background-color: #f0fdf4;\n border: 1px solid #bbf7d0;\n border-radius: 0.25rem;\n color: #166534;\n}\n\n.integrity-empty-state p {\n margin: 0;\n font-weight: 500;\n}\n\n/* Issues table */\n.integrity-table {\n width: 100%;\n border-collapse: collapse;\n margin-top: 1rem;\n}\n\n.integrity-table th,\n.integrity-table td {\n padding: 0.75rem;\n text-align: left;\n border-bottom: 1px solid var(--border-color);\n}\n\n.integrity-table th {\n background-color: #f9fafb;\n font-weight: 500;\n font-size: 0.875rem;\n color: var(--secondary-color);\n}\n\n.integrity-table td {\n font-size: 0.875rem;\n vertical-align: top;\n}\n\n.integrity-table tbody tr:hover {\n background-color: #f9fafb;\n}\n\n/* File list styling */\n.integrity-file-list {\n font-family: monospace;\n font-size: 0.8rem;\n background-color: #f1f5f9;\n padding: 0.5rem;\n border-radius: 4px;\n max-height: 150px;\n overflow-y: auto;\n margin: 0;\n list-style: none;\n}\n\n.integrity-file-list li {\n padding: 0.125rem 0;\n word-break: break-all;\n}\n\n.integrity-file-list li:not(:last-child) {\n border-bottom: 1px solid #e2e8f0;\n}\n\n.integrity-more-files {\n font-style: italic;\n color: var(--secondary-color);\n font-size: 0.8rem;\n margin-top: 0.25rem;\n}\n\n/* Issues container header */\n#integrity-issues-container h3 {\n font-size: 1rem;\n font-weight: 500;\n color: var(--text-color);\n margin-bottom: 0.5rem;\n}\n\n/* ========================================\n Configuration Health Section Styles\n ======================================== */\n\n/* Loading and error states */\n.config-health-loading,\n.config-health-error {\n padding: 1rem;\n text-align: center;\n color: var(--secondary-color);\n}\n\n.config-health-error {\n color: var(--error-color);\n background-color: #fef2f2;\n border: 1px solid #fecaca;\n border-radius: 0.25rem;\n}\n\n/* Summary statistics */\n.health-stats {\n display: flex;\n gap: 2rem;\n margin-bottom: 1.5rem;\n padding: 1rem;\n background-color: #f9fafb;\n border-radius: 0.25rem;\n}\n\n.health-stat {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.health-stat-label {\n font-size: 0.875rem;\n color: var(--secondary-color);\n margin-bottom: 0.25rem;\n}\n\n.health-stat-value {\n font-size: 1.5rem;\n font-weight: 600;\n color: var(--text-color);\n}\n\n.health-stat-value.health-configured {\n color: #16a34a;\n}\n\n.health-stat-value.health-errors {\n color: var(--error-color);\n}\n\n.health-stat-value.health-warnings {\n color: #f59e0b;\n}\n\n/* All good state */\n.config-health-all-good {\n padding: 1.5rem;\n text-align: center;\n background-color: #f0fdf4;\n border: 1px solid #bbf7d0;\n border-radius: 0.25rem;\n color: #166534;\n}\n\n.config-health-all-good p {\n margin: 0;\n font-weight: 500;\n}\n\n/* Config health table */\n.config-health-table {\n width: 100%;\n border-collapse: collapse;\n margin-top: 1rem;\n}\n\n.config-health-table th,\n.config-health-table td {\n padding: 0.75rem;\n text-align: left;\n border-bottom: 1px solid var(--border-color);\n}\n\n.config-health-table th {\n background-color: #f9fafb;\n font-weight: 500;\n font-size: 0.875rem;\n color: var(--secondary-color);\n}\n\n.config-health-table td {\n font-size: 0.875rem;\n vertical-align: top;\n}\n\n.config-health-table tbody tr:hover {\n background-color: #f9fafb;\n}\n\n/* Status badge styling */\n.config-status-badge {\n display: inline-block;\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 500;\n text-transform: uppercase;\n}\n\n.config-status-badge.status-missing {\n background-color: #fef2f2;\n color: #991b1b;\n}\n\n.config-status-badge.status-invalid {\n background-color: #fef2f2;\n color: #991b1b;\n}\n\n/* Dismiss button / text button styling */\n.btn-text {\n background-color: transparent;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n padding: 0.375rem 0.75rem;\n font-size: 0.875rem;\n color: var(--secondary-color);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-text:hover {\n background-color: #f9fafb;\n border-color: var(--secondary-color);\n color: var(--text-color);\n}\n\n.btn-text:active {\n background-color: #f3f4f6;\n}\n\n.btn-text:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Config errors/warnings container headers */\n#config-errors-container h3,\n#config-warnings-container h3 {\n font-size: 1rem;\n font-weight: 500;\n color: var(--text-color);\n margin-bottom: 0.5rem;\n margin-top: 1.5rem;\n}\n\n#config-errors-container h3 {\n color: var(--error-color);\n}\n\n#config-warnings-container h3 {\n color: #f59e0b;\n}\n\n/* ========================================\n Pinecone Data Integrity Section Styles\n ======================================== */\n\n/* Actions container with button and last run text */\n.pinecone-health-actions {\n display: flex;\n align-items: center;\n gap: 1rem;\n margin-bottom: 1rem;\n}\n\n.last-run-text {\n font-size: 0.875rem;\n color: var(--secondary-color);\n}\n\n/* Loading and error states */\n.pinecone-health-loading,\n.pinecone-health-error {\n padding: 1rem;\n text-align: center;\n color: var(--secondary-color);\n}\n\n.pinecone-health-error {\n color: var(--error-color);\n background-color: #fef2f2;\n border: 1px solid #fecaca;\n border-radius: 0.25rem;\n}\n\n/* No results state */\n.pinecone-health-no-results {\n padding: 1rem;\n text-align: center;\n color: var(--secondary-color);\n background-color: #f9fafb;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n}\n\n.pinecone-health-no-results p {\n margin: 0;\n}\n\n/* Status container and badge */\n.pinecone-health-status-container {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin-bottom: 1rem;\n}\n\n.pinecone-health-status {\n display: inline-block;\n padding: 0.25rem 0.75rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.pinecone-health-status.status-healthy {\n background-color: #dcfce7;\n color: #166534;\n}\n\n.pinecone-health-status.status-error {\n background-color: #fef2f2;\n color: #991b1b;\n}\n\n.pinecone-health-status.status-warning {\n background-color: #fef3c7;\n color: #92400e;\n}\n\n.pinecone-health-status.status-running {\n background-color: #dbeafe;\n color: #1e40af;\n}\n\n/* Summary statistics */\n.pinecone-health-summary {\n display: flex;\n gap: 2rem;\n margin-bottom: 1.5rem;\n padding: 1rem;\n background-color: #f9fafb;\n border-radius: 0.25rem;\n flex-wrap: wrap;\n}\n\n.pinecone-health-stat {\n display: flex;\n flex-direction: column;\n align-items: center;\n min-width: 80px;\n}\n\n.pinecone-health-stat-label {\n font-size: 0.875rem;\n color: var(--secondary-color);\n margin-bottom: 0.25rem;\n}\n\n.pinecone-health-stat-value {\n font-size: 1.5rem;\n font-weight: 600;\n color: var(--text-color);\n}\n\n/* All good state */\n.pinecone-health-all-good {\n padding: 1.5rem;\n text-align: center;\n background-color: #f0fdf4;\n border: 1px solid #bbf7d0;\n border-radius: 0.25rem;\n color: #166534;\n}\n\n.pinecone-health-all-good p {\n margin: 0;\n font-weight: 500;\n}\n\n/* Pinecone health table (shared styles for namespace and failures tables) */\n.pinecone-health-table {\n width: 100%;\n border-collapse: collapse;\n margin-top: 1rem;\n table-layout: fixed;\n}\n\n.pinecone-health-table th,\n.pinecone-health-table td {\n padding: 0.75rem;\n text-align: left;\n border-bottom: 1px solid var(--border-color);\n}\n\n.pinecone-health-table th {\n background-color: #f9fafb;\n font-weight: 500;\n font-size: 0.875rem;\n color: var(--secondary-color);\n}\n\n.pinecone-health-table td {\n font-size: 0.875rem;\n vertical-align: middle;\n word-wrap: break-word;\n}\n\n.pinecone-health-table tbody tr:hover {\n background-color: #f9fafb;\n}\n\n/* Namespace results table column widths */\n#pinecone-namespace-container .pinecone-health-table th:nth-child(1),\n#pinecone-namespace-container .pinecone-health-table td:nth-child(1) {\n width: 25%;\n}\n\n#pinecone-namespace-container .pinecone-health-table th:nth-child(2),\n#pinecone-namespace-container .pinecone-health-table td:nth-child(2) {\n width: 15%;\n}\n\n#pinecone-namespace-container .pinecone-health-table th:nth-child(3),\n#pinecone-namespace-container .pinecone-health-table td:nth-child(3),\n#pinecone-namespace-container .pinecone-health-table th:nth-child(4),\n#pinecone-namespace-container .pinecone-health-table td:nth-child(4),\n#pinecone-namespace-container .pinecone-health-table th:nth-child(5),\n#pinecone-namespace-container .pinecone-health-table td:nth-child(5) {\n width: 12%;\n text-align: right;\n}\n\n#pinecone-namespace-container .pinecone-health-table th:nth-child(6),\n#pinecone-namespace-container .pinecone-health-table td:nth-child(6) {\n width: 12%;\n text-align: center;\n}\n\n/* Sample failures table column widths */\n#pinecone-failures-container .pinecone-health-table th:nth-child(1),\n#pinecone-failures-container .pinecone-health-table td:nth-child(1) {\n width: 20%;\n}\n\n#pinecone-failures-container .pinecone-health-table th:nth-child(2),\n#pinecone-failures-container .pinecone-health-table td:nth-child(2) {\n width: 15%;\n}\n\n#pinecone-failures-container .pinecone-health-table th:nth-child(3),\n#pinecone-failures-container .pinecone-health-table td:nth-child(3) {\n width: 30%;\n font-family: monospace;\n font-size: 0.8rem;\n}\n\n#pinecone-failures-container .pinecone-health-table th:nth-child(4),\n#pinecone-failures-container .pinecone-health-table td:nth-child(4) {\n width: 35%;\n}\n\n/* Container headers */\n#pinecone-namespace-container h3,\n#pinecone-failures-container h3 {\n font-size: 1rem;\n font-weight: 500;\n color: var(--text-color);\n margin-bottom: 0.5rem;\n margin-top: 1.5rem;\n}\n\n#pinecone-failures-container h3 {\n color: var(--error-color);\n}\n\n/* ========================================\n Pinecone Regenerate Section Styles\n ======================================== */\n\n.pinecone-regenerate-section {\n margin-top: 1.5rem;\n padding-top: 1.5rem;\n border-top: 1px solid var(--border-color);\n}\n\n.pinecone-regenerate-section h4 {\n font-size: 0.95rem;\n font-weight: 600;\n color: var(--text-color);\n margin: 0 0 0.5rem 0;\n}\n\n.regenerate-instructions {\n font-size: 0.875rem;\n color: var(--secondary-color);\n margin: 0 0 0.75rem 0;\n}\n\n.regenerate-checkboxes {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n margin-bottom: 1rem;\n}\n\n.regenerate-checkboxes .checkbox-label {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 0.875rem;\n cursor: pointer;\n}\n\n.regenerate-checkboxes .checkbox-label input[type=\"checkbox\"] {\n width: 16px;\n height: 16px;\n cursor: pointer;\n accent-color: var(--primary-color);\n}\n\n.regenerate-checkboxes .checkbox-label span {\n color: var(--text-color);\n}\n\n.regenerate-checkboxes .namespace-name {\n font-family: monospace;\n font-size: 0.8rem;\n background-color: #f1f5f9;\n padding: 0.125rem 0.375rem;\n border-radius: 0.25rem;\n color: var(--secondary-color);\n}\n\n.regenerate-checkboxes .metadata-warning {\n font-size: 0.75rem;\n color: #f59e0b;\n margin-left: 0.25rem;\n}\n\n/* Info tooltip button */\n.info-tooltip-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n margin-left: 0.375rem;\n padding: 0;\n font-size: 0.75rem;\n color: #6b7280;\n background: none;\n border: none;\n cursor: pointer;\n vertical-align: middle;\n transition: color 0.15s ease;\n}\n\n.info-tooltip-btn:hover {\n color: var(--primary-color);\n}\n\n/* Namespace info panel */\n.namespace-info {\n margin: 0.375rem 0 0.75rem 1.5rem;\n padding: 0.625rem 0.75rem;\n font-size: 0.8rem;\n color: #4b5563;\n background-color: #f3f4f6;\n border-left: 3px solid var(--primary-color);\n border-radius: 0 0.25rem 0.25rem 0;\n line-height: 1.4;\n}\n\n.namespace-info.hidden {\n display: none;\n}\n\n.namespace-info strong {\n color: var(--text-color);\n}\n\n/* Note styling (softer than warning) */\n.regenerate-note {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n padding: 0.625rem 0.75rem;\n background-color: #eff6ff;\n border: 1px solid #bfdbfe;\n border-radius: 0.25rem;\n margin-bottom: 1rem;\n}\n\n.regenerate-note .note-label {\n font-size: 0.8rem;\n font-weight: 600;\n color: #1e40af;\n}\n\n.regenerate-note .note-text {\n font-size: 0.8rem;\n color: #1e40af;\n line-height: 1.4;\n}\n\n.regenerate-warning {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n padding: 0.75rem;\n background-color: #fef3c7;\n border: 1px solid #fcd34d;\n border-radius: 0.25rem;\n margin-bottom: 1rem;\n}\n\n.regenerate-warning .warning-icon {\n font-size: 1rem;\n line-height: 1;\n}\n\n.regenerate-warning .warning-text {\n font-size: 0.8rem;\n color: #92400e;\n line-height: 1.4;\n}\n\n/* Warning button style */\n.btn-warning {\n background-color: #f59e0b;\n color: #fff;\n border: 1px solid #d97706;\n}\n\n.btn-warning:hover {\n background-color: #d97706;\n border-color: #b45309;\n}\n\n.btn-warning:active {\n background-color: #b45309;\n}\n\n.btn-warning:disabled {\n background-color: #fcd34d;\n border-color: #fcd34d;\n cursor: not-allowed;\n}\n\n/* `.hidden` is provided by the global utility in src/css/globals.css; do not\n redefine it here (BAPI-301). */\n\n/* Phase 1b: Learn-repository auto-update schedule */\n.learn-repo-schedule-section {\n border-radius: 6px;\n padding: 1rem;\n margin-top: 0.75rem;\n}\n.learn-repo-schedule-section h4 {\n margin: 0 0 0.25rem 0;\n}\n.learn-repo-instructions {\n font-size: 0.85rem;\n color: #6b7280;\n margin-bottom: 0.75rem;\n}\n.learn-repo-analysis-types {\n border: none;\n padding: 0;\n margin: 0 0 0.75rem 0;\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\n gap: 0.25rem 1rem;\n}\n.learn-repo-analysis-types legend {\n font-weight: 600;\n margin-bottom: 0.25rem;\n}\n.learn-repo-actions {\n margin-top: 0.5rem;\n}\n.learn-repo-message {\n margin-top: 0.5rem;\n font-size: 0.875rem;\n color: #1f2937;\n}\n.learn-repo-schedule-status {\n margin-top: 0.75rem;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n.learn-repo-schedule-row {\n border: 1px solid #e5e7eb;\n border-radius: 4px;\n padding: 0.75rem;\n background-color: #f9fafb;\n}\n.learn-repo-schedule-meta {\n font-size: 0.85rem;\n color: #4b5563;\n margin: 0.25rem 0;\n}\n.learn-repo-row-actions {\n margin-top: 0.5rem;\n display: flex;\n gap: 0.5rem;\n}\n.learn-repo-status-running {\n color: #2563eb;\n}\n.learn-repo-status-success {\n color: #15803d;\n}\n.learn-repo-status-failure {\n color: #b91c1c;\n}\n.learn-repo-status-idle {\n color: #6b7280;\n}\n.learn-repo-schedule-row details {\n margin-top: 0.5rem;\n font-size: 0.85rem;\n}\n.learn-repo-schedule-row details pre {\n white-space: pre-wrap;\n background-color: #ffffff;\n border: 1px solid #e5e7eb;\n border-radius: 3px;\n padding: 0.5rem;\n margin: 0.25rem 0 0 0;\n}\n.form-error {\n color: #b91c1c;\n font-size: 0.85rem;\n margin-top: 0.25rem;\n}\n"],"names":[],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"css/main.min.css","mappings":"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;IACI,aAAa;AACjB;;AAEA;IACI,wBAAwB;AAC5B;;AAEA,uCAAuC;AACvC;IACI,aAAa;IACb,uBAAuB;IACvB,WAAW;IACX,yBAAyB;IACzB,yBAAyB;IACzB,yBAAyB;IACzB,sBAAsB;IACtB,mBAAmB;AACvB;;AAEA;IACI,iBAAiB;IACjB,gBAAgB;IAChB,cAAc;AAClB;;AAEA;IACI,iBAAiB;IACjB,cAAc;IACd,gBAAgB;AACpB;;AAEA;IACI,aAAa;IACb,uBAAuB;IACvB,WAAW;IACX,gBAAgB;IAChB,yBAAyB;IACzB,yBAAyB;IACzB,sBAAsB;IACtB,mBAAmB;AACvB;;AAEA;IACI,eAAe;IACf,cAAc;AAClB;;AAEA;IACI,iBAAiB;IACjB,cAAc;IACd,gBAAgB;AACpB;;AAEA,yBAAyB;AACzB;IACI,yBAAyB;IACzB,WAAW;IACX,yBAAyB;AAC7B;;AAEA;IACI,yBAAyB;IACzB,qBAAqB;AACzB;;AAEA;IACI,yBAAyB;AAC7B;;AAEA;IACI,yBAAyB;IACzB,qBAAqB;IACrB,mBAAmB;AACvB;;AAEA;iCACiC;;AAEjC,oDAAoD;AACpD;IACI,kBAAkB;IAClB,aAAa;IACb,mBAAmB;AACvB;AACA;IACI,qBAAqB;AACzB;AACA;IACI,kBAAkB;IAClB,cAAc;IACd,sBAAsB;AAC1B;AACA;IACI,YAAY;IACZ,UAAU;IACV,qBAAqB;IACrB,aAAa;IACb,2DAA2D;IAC3D,iBAAiB;AACrB;AACA;IACI,gBAAgB;IAChB,sBAAsB;AAC1B;AACA;IACI,kBAAkB;AACtB;AACA;IACI,kBAAkB;IAClB,mBAAmB;IACnB,cAAc;AAClB;AACA;IACI,mBAAmB;IACnB,aAAa;IACb,sBAAsB;IACtB,WAAW;AACf;AACA;IACI,yBAAyB;IACzB,kBAAkB;IAClB,gBAAgB;IAChB,yBAAyB;AAC7B;AACA;IACI,kBAAkB;IAClB,cAAc;IACd,iBAAiB;AACrB;AACA;IACI,kBAAkB;IAClB,aAAa;IACb,WAAW;AACf;AACA;IACI,cAAc;AAClB;AACA;IACI,cAAc;AAClB;AACA;IACI,cAAc;AAClB;AACA;IACI,cAAc;AAClB;AACA;IACI,kBAAkB;IAClB,kBAAkB;AACtB;AACA;IACI,qBAAqB;IACrB,yBAAyB;IACzB,yBAAyB;IACzB,kBAAkB;IAClB,eAAe;IACf,qBAAqB;AACzB;AACA;IACI,cAAc;IACd,kBAAkB;IAClB,mBAAmB;AACvB","sources":["webpack:///./src/css/setup.css","webpack:///./src/css/setup-detail.css","webpack:///./src/css/public-pages.css","webpack:///./src/css/project-detail.css","webpack:///./src/css/optimize_analysis.css","webpack:///./src/css/optimize.css","webpack:///./src/css/globals.css","webpack:///./src/css/data_health.css"],"sourcesContent":["/* Setup page CSS */\n\n/* Reset and base styles */\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\nbody {\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n background-color: var(--background-color);\n color: var(--text-color);\n line-height: 1.5;\n min-height: 100vh;\n padding-top: var(--header-height);\n}\n\n/* Header styles */\n.header {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: var(--header-height);\n background-color: var(--surface-color);\n box-shadow: var(--box-shadow);\n z-index: 100;\n}\n\n.header-container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n max-width: 1200px;\n height: 100%;\n margin: 0 auto;\n padding: 0 1rem;\n}\n\n.logo-container img {\n height: 32px;\n width: auto;\n}\n\n.nav-menu ul {\n display: flex;\n list-style-type: none;\n}\n\n.nav-menu li {\n margin-left: 2rem;\n}\n\n.nav-menu a {\n color: var(--text-color);\n text-decoration: none;\n font-weight: 500;\n}\n\n.nav-menu a:hover {\n color: var(--primary-color);\n}\n\n/* Main content area */\n.main-content {\n max-width: 1200px;\n margin: 2rem auto;\n padding: 0 1rem;\n}\n\n/* Container styles */\n.container {\n background-color: var(--surface-color);\n border-radius: 0.5rem;\n padding: 2rem;\n box-shadow: var(--box-shadow);\n margin-bottom: 2rem;\n}\n\n.hidden {\n display: none !important;\n}\n\n/* Section header */\n.section-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 2rem;\n}\n\n.section-header h1 {\n font-size: 1.5rem;\n font-weight: 600;\n color: var(--text-color);\n}\n\n/* Form styles */\n.form-intro {\n font-size: 0.875rem;\n color: var(--secondary-color);\n margin-bottom: 1.5rem;\n}\n\n.form-intro code {\n font-size: 0.8125rem;\n color: var(--text-color);\n}\n\n.form-group {\n margin-bottom: 1.5rem;\n}\n\n.form-group-block {\n display: flex;\n justify-content: left;\n align-items: center;\n}\n\nlabel {\n display: block;\n font-size: 0.875rem;\n font-weight: 500;\n margin-bottom: 0.5rem;\n}\n\ninput[type=\"text\"],\ninput[type=\"password\"],\ninput[type=\"email\"],\ninput[type=\"url\"],\ninput[type=\"number\"],\nselect,\ntextarea {\n width: 100%;\n padding: 0.5rem;\n font-size: 1rem;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n background-color: #fff;\n}\n\ninput[type=\"number\"] {\n width: auto;\n}\n\ntextarea {\n min-height: 100px;\n resize: vertical;\n}\n\n.required {\n color: var(--error-color);\n}\n\n/* Checkbox styling */\n.form-group.checkbox {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.form-group.checkbox input {\n margin-right: 0.5rem;\n}\n\n.form-group.checkbox label {\n margin-bottom: 0;\n}\n\n/* Projects grid */\n.projects-grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: 1rem;\n}\n\n.project-card {\n background-color: var(--surface-color);\n border: 1px solid var(--border-color);\n border-radius: 0.5rem;\n padding: 1.5rem;\n transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1), box-shadow 150ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.project-card:hover {\n transform: translateY(-2px);\n box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n}\n\n.project-card h2 {\n font-size: 1.125rem;\n margin-bottom: 1rem;\n color: var(--text-color);\n}\n\n.project-card p {\n font-size: 0.875rem;\n color: var(--secondary-color);\n margin-bottom: 1.5rem;\n height: 4.5rem;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n line-clamp: 3;\n}\n\n.project-card .project-meta {\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: 0.75rem;\n color: var(--secondary-color);\n margin-bottom: 1rem;\n}\n\n/* Project card actions layout */\n.project-card-actions {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.project-card-actions-row {\n display: flex;\n gap: 0.5rem;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n}\n\n.project-card-actions-row .btn {\n flex: 1;\n text-align: center;\n margin: 0.5rem;\n}\n\n.project-card-actions-secondary {\n justify-content: flex-end;\n}\n\n/* Delete link styling */\n.delete-link {\n color: var(--error-color);\n text-decoration: none;\n font-size: 0.875rem;\n font-weight: 500;\n cursor: pointer;\n transition: color 150ms ease;\n}\n\n.delete-link:hover {\n color: #dc2626;\n text-decoration: underline;\n}\n\n/* Modal styles */\n.modal {\n display: none;\n position: fixed;\n z-index: 1000;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n overflow: auto;\n background-color: rgba(0, 0, 0, 0.4);\n}\n\n.modal-content {\n background-color: var(--surface-color);\n margin: 15% auto;\n padding: 2rem;\n border-radius: 0.5rem;\n width: 80%;\n max-width: 500px;\n box-shadow: var(--box-shadow);\n}\n\n.close-modal {\n color: var(--secondary-color);\n float: right;\n font-size: 1.5rem;\n font-weight: bold;\n cursor: pointer;\n}\n\n.close-modal:hover {\n color: var(--text-color);\n}\n\n#modal-title {\n margin-bottom: 1rem;\n}\n\n#modal-body {\n margin-bottom: 1rem;\n line-height: 1.5;\n}\n\n#modal-body ul {\n margin: 0.5rem 0;\n padding-left: 1.5rem;\n}\n\n#modal-body li {\n margin: 0.25rem 0;\n}\n\n#modal-body p {\n margin: 0.5rem 0;\n}\n\n.modal-actions {\n display: flex;\n justify-content: flex-end;\n gap: 0.75rem;\n margin-top: 1.5rem;\n padding-top: 1rem;\n border-top: 1px solid var(--border-color);\n}\n\n.modal-actions.hidden {\n display: none;\n}\n\n/* Loading overlay */\n.loading-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(255, 255, 255, 0.8);\n z-index: 2000;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n\n.spinner {\n border: 4px solid rgba(0, 0, 0, 0.1);\n width: 40px;\n height: 40px;\n border-radius: 50%;\n border-top-color: var(--primary-color);\n animation: spin 1s linear infinite;\n margin-bottom: 1rem;\n}\n\n@keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n/* Responsive adjustments */\n@media (max-width: 768px) {\n .projects-grid {\n grid-template-columns: 1fr;\n }\n\n .header-container {\n padding: 0 1rem;\n }\n\n .nav-menu li {\n margin-left: 1rem;\n }\n\n .container {\n padding: 1.5rem;\n }\n\n .modal-content {\n width: 90%;\n margin: 10% auto;\n }\n}","/* src/css/setup-detail.css */\n\n/* Collapsible drawers specific to Setup Detail View */\n.collapsible-drawers {\n margin-bottom: 2rem;\n}\n\n.drawer {\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n margin-bottom: 1rem;\n overflow: hidden;\n}\n\n.drawer-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem;\n background-color: #f9fafb;\n cursor: pointer;\n}\n\n.drawer-header h2 {\n font-size: 1rem;\n font-weight: 500;\n}\n\n.toggle-drawer {\n background: none;\n border: none;\n font-size: 1rem;\n cursor: pointer;\n transition: transform var(--drawer-transition);\n}\n\n.drawer-content {\n padding: 1rem;\n border-top: 1px solid var(--border-color);\n /* Visibility is controlled solely by the global `.hidden` class (BAPI-301);\n `.expanded` is reserved for header/glyph styling. The shared drawer helper\n sets the ▲/▼ glyph text directly, so no CSS rotation is applied. */\n}\n\n/* Save button container specific to Setup Detail View */\n.save-container {\n display: flex;\n justify-content: center;\n margin-top: 2rem;\n}\n\n.save-container .btn {\n padding: 0.75rem 1.5rem;\n font-size: 1rem;\n}\n\n/* Static text display (like repo name) */\n.form-static-text {\n background-color: var(--background-color);\n padding: 0.5rem;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n font-family: monospace;\n color: var(--secondary-color);\n margin-top: 0.5rem;\n word-break: break-all;\n}\n\n/* Header title specific to this page */\n.header-title {\n font-size: 1.2rem;\n font-weight: 600;\n color: var(--text-color);\n}\n\n/* Explain Link Styling */\n.explain-link {\n display: inline-block;\n margin-left: 6px;\n padding: 1px 6px;\n font-size: 0.8em;\n font-weight: bold;\n color: #fff;\n background-color: #6c757d;\n border-radius: 50%;\n text-decoration: none;\n cursor: pointer;\n vertical-align: middle;\n line-height: 1.2;\n}\n\n.explain-link:hover {\n background-color: #444;\n text-decoration: none;\n}\n\n.explanation-content {\n /* Hidden by default via the global `.hidden` class in the markup; the JS\n toggles only `.hidden` (BAPI-301), so no base `display: none` here. */\n margin-top: 8px;\n padding: 10px;\n border: 1px solid #ced4da;\n border-radius: 4px;\n background-color: #f8f9fa;\n font-size: 0.9em;\n color: #495057;\n line-height: 1.4;\n}\n\n/* Structured server-sourced setup instructions (BAPI-515), rendered inside\n .explanation-content by renderExplanationContent(). Scoped to this wrapper\n only — the container above is left untouched. */\n.explanation-content .setup-instructions {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.explanation-content .setup-instructions-link {\n color: var(--primary-color);\n font-weight: 500;\n text-decoration: underline;\n overflow-wrap: anywhere;\n}\n\n.explanation-content .setup-instructions-link:hover {\n color: var(--primary-dark);\n}\n\n.explanation-content .setup-instructions-link:focus-visible {\n outline: 2px solid var(--primary-color);\n outline-offset: 2px;\n}\n\n.explanation-content .setup-instructions-steps {\n margin: 0;\n padding-left: 20px;\n}\n\n.explanation-content .setup-instructions-steps li + li {\n margin-top: 4px;\n}\n\n.explanation-content .setup-instructions-note {\n margin: 0;\n color: var(--secondary-color);\n}\n\n/* Form error styling */\n.form-error {\n color: var(--error-color);\n font-size: 0.875rem;\n margin-top: 0.5rem;\n display: none;\n}\n\n.form-error.visible {\n display: block;\n}\n\ninput.input-error,\ntextarea.input-error,\nselect.input-error {\n border-color: var(--error-color);\n box-shadow: 0 0 0 0.2rem rgba(239, 68, 68, 0.25);\n}\n\n/* Required field indicator */\n.required {\n color: var(--error-color);\n}\n\n/* ========================================\n Data Integrity Section Styles\n ======================================== */\n\n/* Loading and error states */\n.integrity-loading,\n.integrity-error {\n padding: 1rem;\n text-align: center;\n color: var(--secondary-color);\n}\n\n.integrity-error {\n color: var(--error-color);\n background-color: #fef2f2;\n border: 1px solid #fecaca;\n border-radius: 0.25rem;\n}\n\n/* Summary statistics */\n.integrity-summary {\n display: flex;\n gap: 2rem;\n margin-bottom: 1.5rem;\n padding: 1rem;\n background-color: #f9fafb;\n border-radius: 0.25rem;\n}\n\n.integrity-stat {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.integrity-stat-label {\n font-size: 0.875rem;\n color: var(--secondary-color);\n margin-bottom: 0.25rem;\n}\n\n.integrity-stat-value {\n font-size: 1.5rem;\n font-weight: 600;\n color: var(--text-color);\n}\n\n.integrity-stat-value.integrity-healthy {\n color: #16a34a;\n}\n\n/* Empty state */\n.integrity-empty-state {\n padding: 1.5rem;\n text-align: center;\n background-color: #f0fdf4;\n border: 1px solid #bbf7d0;\n border-radius: 0.25rem;\n color: #166534;\n}\n\n.integrity-empty-state p {\n margin: 0;\n font-weight: 500;\n}\n\n/* Issues table */\n.integrity-table {\n width: 100%;\n border-collapse: collapse;\n margin-top: 1rem;\n}\n\n.integrity-table th,\n.integrity-table td {\n padding: 0.75rem;\n text-align: left;\n border-bottom: 1px solid var(--border-color);\n}\n\n.integrity-table th {\n background-color: #f9fafb;\n font-weight: 500;\n font-size: 0.875rem;\n color: var(--secondary-color);\n}\n\n.integrity-table td {\n font-size: 0.875rem;\n vertical-align: top;\n}\n\n.integrity-table tbody tr:hover {\n background-color: #f9fafb;\n}\n\n/* File list styling */\n.integrity-file-list {\n font-family: monospace;\n font-size: 0.8rem;\n background-color: #f1f5f9;\n padding: 0.5rem;\n border-radius: 4px;\n max-height: 150px;\n overflow-y: auto;\n margin: 0;\n list-style: none;\n}\n\n.integrity-file-list li {\n padding: 0.125rem 0;\n word-break: break-all;\n}\n\n.integrity-file-list li:not(:last-child) {\n border-bottom: 1px solid #e2e8f0;\n}\n\n.integrity-more-files {\n font-style: italic;\n color: var(--secondary-color);\n font-size: 0.8rem;\n margin-top: 0.25rem;\n}\n\n/* Issues container header */\n#integrity-issues-container h3 {\n font-size: 1rem;\n font-weight: 500;\n color: var(--text-color);\n margin-bottom: 0.5rem;\n}\n\n/* ========================================\n Configuration Health Section Styles\n ======================================== */\n\n/* Loading and error states */\n.config-health-loading,\n.config-health-error {\n padding: 1rem;\n text-align: center;\n color: var(--secondary-color);\n}\n\n.config-health-error {\n color: var(--error-color);\n background-color: #fef2f2;\n border: 1px solid #fecaca;\n border-radius: 0.25rem;\n}\n\n/* Summary statistics */\n.health-stats {\n display: flex;\n gap: 2rem;\n margin-bottom: 1.5rem;\n padding: 1rem;\n background-color: #f9fafb;\n border-radius: 0.25rem;\n}\n\n.health-stat {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.health-stat-label {\n font-size: 0.875rem;\n color: var(--secondary-color);\n margin-bottom: 0.25rem;\n}\n\n.health-stat-value {\n font-size: 1.5rem;\n font-weight: 600;\n color: var(--text-color);\n}\n\n.health-stat-value.config-healthy {\n color: #16a34a;\n}\n\n.health-stat-value.config-errors {\n color: var(--error-color);\n}\n\n.health-stat-value.config-warnings {\n color: #f59e0b;\n}\n\n/* All good state */\n.config-health-all-good {\n padding: 1.5rem;\n text-align: center;\n background-color: #f0fdf4;\n border: 1px solid #bbf7d0;\n border-radius: 0.25rem;\n color: #166534;\n}\n\n.config-health-all-good p {\n margin: 0;\n font-weight: 500;\n}\n\n/* Config health table */\n.config-health-table {\n width: 100%;\n border-collapse: collapse;\n margin-top: 1rem;\n}\n\n.config-health-table th,\n.config-health-table td {\n padding: 0.75rem;\n text-align: left;\n border-bottom: 1px solid var(--border-color);\n}\n\n.config-health-table th {\n background-color: #f9fafb;\n font-weight: 500;\n font-size: 0.875rem;\n color: var(--secondary-color);\n}\n\n.config-health-table td {\n font-size: 0.875rem;\n vertical-align: top;\n}\n\n.config-health-table tbody tr:hover {\n background-color: #f9fafb;\n}\n\n/* Status badge styling */\n.config-status-badge {\n display: inline-block;\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 500;\n text-transform: uppercase;\n}\n\n.config-status-badge.status-missing {\n background-color: #fef2f2;\n color: #991b1b;\n}\n\n.config-status-badge.status-invalid {\n background-color: #fef2f2;\n color: #991b1b;\n}\n\n/* Dismiss button styling */\n.dismiss-warning-btn {\n background-color: transparent;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n padding: 0.375rem 0.75rem;\n font-size: 0.875rem;\n color: var(--secondary-color);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.dismiss-warning-btn:hover {\n background-color: #f9fafb;\n border-color: var(--secondary-color);\n color: var(--text-color);\n}\n\n.dismiss-warning-btn:active {\n background-color: #f3f4f6;\n}\n\n.dismiss-warning-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Config errors/warnings container headers */\n#config-errors-container h3,\n#config-warnings-container h3 {\n font-size: 1rem;\n font-weight: 500;\n color: var(--text-color);\n margin-bottom: 0.5rem;\n margin-top: 1.5rem;\n}\n\n#config-errors-container h3 {\n color: var(--error-color);\n}\n\n#config-warnings-container h3 {\n color: #f59e0b;\n}\n\n/* ========================================\n Pinecone Data Integrity Section Styles\n ======================================== */\n\n/* Actions container with button and last run text */\n.pinecone-health-actions {\n display: flex;\n align-items: center;\n gap: 1rem;\n margin-bottom: 1rem;\n}\n\n.last-run-text {\n font-size: 0.875rem;\n color: var(--secondary-color);\n}\n\n/* Loading and error states */\n.pinecone-health-loading,\n.pinecone-health-error {\n padding: 1rem;\n text-align: center;\n color: var(--secondary-color);\n}\n\n.pinecone-health-error {\n color: var(--error-color);\n background-color: #fef2f2;\n border: 1px solid #fecaca;\n border-radius: 0.25rem;\n}\n\n/* No results state */\n.pinecone-health-no-results {\n padding: 1rem;\n text-align: center;\n color: var(--secondary-color);\n background-color: #f9fafb;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n}\n\n.pinecone-health-no-results p {\n margin: 0;\n}\n\n/* Status container and badge */\n.pinecone-health-status-container {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin-bottom: 1rem;\n}\n\n.pinecone-health-status {\n display: inline-block;\n padding: 0.25rem 0.75rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.pinecone-health-status.status-healthy {\n background-color: #dcfce7;\n color: #166534;\n}\n\n.pinecone-health-status.status-error {\n background-color: #fef2f2;\n color: #991b1b;\n}\n\n.pinecone-health-status.status-warning {\n background-color: #fef3c7;\n color: #92400e;\n}\n\n.pinecone-health-status.status-running {\n background-color: #dbeafe;\n color: #1e40af;\n}\n\n/* Summary statistics */\n.pinecone-health-summary {\n display: flex;\n gap: 2rem;\n margin-bottom: 1.5rem;\n padding: 1rem;\n background-color: #f9fafb;\n border-radius: 0.25rem;\n flex-wrap: wrap;\n}\n\n.pinecone-health-stat {\n display: flex;\n flex-direction: column;\n align-items: center;\n min-width: 80px;\n}\n\n.pinecone-stat-label {\n font-size: 0.875rem;\n color: var(--secondary-color);\n margin-bottom: 0.25rem;\n}\n\n.pinecone-stat-value {\n font-size: 1.5rem;\n font-weight: 600;\n color: var(--text-color);\n}\n\n.pinecone-stat-value.stat-healthy {\n color: #16a34a;\n}\n\n.pinecone-stat-value.stat-error {\n color: var(--error-color);\n}\n\n/* All good state */\n.pinecone-health-all-good {\n padding: 1.5rem;\n text-align: center;\n background-color: #f0fdf4;\n border: 1px solid #bbf7d0;\n border-radius: 0.25rem;\n color: #166534;\n}\n\n.pinecone-health-all-good p {\n margin: 0;\n font-weight: 500;\n}\n\n/* Pinecone health table (shared styles for namespace and failures tables) */\n.pinecone-health-table {\n width: 100%;\n border-collapse: collapse;\n margin-top: 1rem;\n table-layout: fixed;\n}\n\n.pinecone-health-table th,\n.pinecone-health-table td {\n padding: 0.75rem;\n text-align: left;\n border-bottom: 1px solid var(--border-color);\n}\n\n.pinecone-health-table th {\n background-color: #f9fafb;\n font-weight: 500;\n font-size: 0.875rem;\n color: var(--secondary-color);\n}\n\n.pinecone-health-table td {\n font-size: 0.875rem;\n vertical-align: middle;\n word-wrap: break-word;\n}\n\n.pinecone-health-table tbody tr:hover {\n background-color: #f9fafb;\n}\n\n/* Namespace results table column widths */\n#pinecone-namespace-container .pinecone-health-table th:nth-child(1),\n#pinecone-namespace-container .pinecone-health-table td:nth-child(1) {\n width: 25%;\n}\n\n#pinecone-namespace-container .pinecone-health-table th:nth-child(2),\n#pinecone-namespace-container .pinecone-health-table td:nth-child(2) {\n width: 15%;\n}\n\n#pinecone-namespace-container .pinecone-health-table th:nth-child(3),\n#pinecone-namespace-container .pinecone-health-table td:nth-child(3),\n#pinecone-namespace-container .pinecone-health-table th:nth-child(4),\n#pinecone-namespace-container .pinecone-health-table td:nth-child(4),\n#pinecone-namespace-container .pinecone-health-table th:nth-child(5),\n#pinecone-namespace-container .pinecone-health-table td:nth-child(5) {\n width: 12%;\n text-align: right;\n}\n\n#pinecone-namespace-container .pinecone-health-table th:nth-child(6),\n#pinecone-namespace-container .pinecone-health-table td:nth-child(6) {\n width: 12%;\n text-align: center;\n}\n\n/* Sample failures table column widths */\n#pinecone-failures-container .pinecone-health-table th:nth-child(1),\n#pinecone-failures-container .pinecone-health-table td:nth-child(1) {\n width: 20%;\n}\n\n#pinecone-failures-container .pinecone-health-table th:nth-child(2),\n#pinecone-failures-container .pinecone-health-table td:nth-child(2) {\n width: 15%;\n}\n\n#pinecone-failures-container .pinecone-health-table th:nth-child(3),\n#pinecone-failures-container .pinecone-health-table td:nth-child(3) {\n width: 30%;\n font-family: monospace;\n font-size: 0.8rem;\n}\n\n#pinecone-failures-container .pinecone-health-table th:nth-child(4),\n#pinecone-failures-container .pinecone-health-table td:nth-child(4) {\n width: 35%;\n}\n\n/* Match indicator */\n.pinecone-match-badge {\n display: inline-block;\n padding: 0.125rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 500;\n}\n\n.pinecone-match-badge.match-yes {\n background-color: #dcfce7;\n color: #166534;\n}\n\n.pinecone-match-badge.match-no {\n background-color: #fef2f2;\n color: #991b1b;\n}\n\n/* Container headers */\n#pinecone-namespace-container h3,\n#pinecone-failures-container h3 {\n font-size: 1rem;\n font-weight: 500;\n color: var(--text-color);\n margin-bottom: 0.5rem;\n margin-top: 1.5rem;\n}\n\n#pinecone-failures-container h3 {\n color: var(--error-color);\n}\n\n/* ========================================\n Install Status Review Panel (BAPI-384)\n ======================================== */\n\n/* Intro paragraph below the page title */\n.setup-detail-intro {\n margin: 0.5rem 0 1.5rem;\n font-size: 0.9rem;\n color: var(--secondary-color);\n line-height: 1.5;\n}\n\n/* Top-level review panel; matches the drawer/panel border + radius + spacing */\n.install-status-panel {\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n padding: 1rem;\n margin-bottom: 2rem;\n background-color: #f9fafb;\n}\n\n.install-status-panel-title {\n font-size: 1rem;\n font-weight: 500;\n color: var(--text-color);\n margin-bottom: 0.75rem;\n}\n\n/* Compact set/unset counts */\n.install-status-summary {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 1rem;\n font-size: 0.875rem;\n color: var(--secondary-color);\n margin-bottom: 1rem;\n}\n\n.install-status-summary-count {\n font-weight: 600;\n color: var(--text-color);\n}\n\n/* Manifest-driven group list */\n.install-status-groups {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n}\n\n.install-status-group {\n border-top: 1px solid var(--border-color);\n padding-top: 0.75rem;\n}\n\n.install-status-group-title {\n font-size: 0.875rem;\n font-weight: 500;\n color: var(--text-color);\n margin-bottom: 0.5rem;\n}\n\n.install-status-field-row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 0.5rem;\n padding: 0.375rem 0;\n font-size: 0.875rem;\n}\n\n.install-status-field-name {\n font-weight: 500;\n color: var(--text-color);\n}\n\n.install-status-field-value {\n color: var(--secondary-color);\n word-break: break-word;\n}\n\n.install-status-field-confirm {\n font-size: 0.75rem;\n font-style: italic;\n color: #92400e;\n}\n\n/* Unavailable / error area */\n.install-status-error {\n padding: 0.75rem 1rem;\n font-size: 0.875rem;\n color: var(--secondary-color);\n background-color: #f9fafb;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n}\n\n/* Base status badge — always pairs color with text, never color alone */\n.install-status-badge {\n display: inline-block;\n padding: 0.125rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 500;\n line-height: 1.4;\n white-space: nowrap;\n}\n\n.install-status-badge.status-set {\n background-color: #dcfce7;\n color: #166534;\n}\n\n.install-status-badge.status-unset {\n background-color: #fef3c7;\n color: #92400e;\n}\n\n.install-status-badge.status-loading {\n background-color: #f1f5f9;\n color: var(--secondary-color);\n}\n\n.install-status-badge.status-unavailable {\n background-color: #f1f5f9;\n color: var(--secondary-color);\n}\n\n/* Inline badge slot next to a field label */\n.install-status-badge-slot {\n display: inline-flex;\n align-items: center;\n margin-left: 6px;\n vertical-align: middle;\n}\n\n/* Keyboard-focusable edit affordance — matches existing link/button affordances */\n.install-status-edit {\n background: none;\n border: none;\n padding: 0;\n font-size: 0.8rem;\n font-weight: 500;\n color: var(--primary-color, #2563eb);\n text-decoration: underline;\n cursor: pointer;\n}\n\n.install-status-edit:hover {\n text-decoration: none;\n}\n\n.install-status-edit:focus-visible {\n outline: 2px solid var(--primary-color, #2563eb);\n outline-offset: 2px;\n border-radius: 0.25rem;\n}\n\n/* Mobile: keep labels/badges/edit controls from crowding the controls */\n@media (max-width: 600px) {\n .install-status-summary {\n gap: 0.5rem;\n }\n\n .install-status-field-row {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .install-status-badge-slot {\n margin-left: 0;\n margin-top: 0.25rem;\n }\n}\n\n","/* Public-page styling for the homepage and the legal placeholder pages.\n Class-scoped only — no overrides of body, :root, .hidden, or form elements. */\n\n.public-page-header {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n padding: 1rem 0;\n margin-bottom: 1.5rem;\n border-bottom: 1px solid var(--border-color);\n}\n\n.public-page-header a {\n display: inline-flex;\n align-items: center;\n text-decoration: none;\n color: inherit;\n}\n\n.public-page-logo {\n height: auto;\n max-width: 240px;\n width: 100%;\n display: block;\n}\n\n@media (max-width: 480px) {\n .public-page-logo {\n max-width: 180px;\n }\n}\n\n.public-page-hero {\n padding: 2rem 0 1.5rem;\n}\n\n.public-page-hero h1 {\n font-size: 1.75rem;\n font-weight: 600;\n color: var(--text-color);\n margin-bottom: 1rem;\n}\n\n.public-page-copy {\n font-size: 1rem;\n color: var(--text-color);\n line-height: 1.6;\n}\n\n.public-page-copy p {\n margin-bottom: 0.75rem;\n}\n\n.public-page-actions {\n margin-top: 1.5rem;\n display: flex;\n gap: 0.75rem;\n flex-wrap: wrap;\n}\n\n.public-page-actions a {\n text-decoration: none;\n display: inline-block;\n}\n\n.public-page-footer {\n margin-top: 3rem;\n padding-top: 1.5rem;\n border-top: 1px solid var(--border-color);\n color: var(--secondary-color);\n font-size: 0.875rem;\n}\n\n.public-page-footer-nav {\n display: flex;\n gap: 1.5rem;\n flex-wrap: wrap;\n}\n\n.public-page-footer-nav a {\n color: var(--secondary-color);\n text-decoration: none;\n}\n\n.public-page-footer-nav a:hover {\n color: var(--primary-color);\n text-decoration: underline;\n}\n\n.legal-page-content {\n max-width: 800px;\n background-color: var(--surface-color);\n border-radius: 0.5rem;\n padding: 2rem;\n box-shadow: var(--box-shadow);\n}\n\n.legal-page-content h1 {\n font-size: 1.75rem;\n font-weight: 600;\n color: var(--text-color);\n margin-bottom: 0.5rem;\n}\n\n.legal-page-content .last-updated {\n color: var(--secondary-color);\n font-size: 0.875rem;\n margin-bottom: 1.5rem;\n}\n\n.legal-section {\n margin-bottom: 1.5rem;\n}\n\n.legal-section h2 {\n font-size: 1.25rem;\n font-weight: 600;\n color: var(--text-color);\n margin-bottom: 0.5rem;\n}\n\n.legal-section p {\n color: var(--text-color);\n line-height: 1.6;\n margin-bottom: 0.75rem;\n}\n","/* src/css/project-detail.css */\n\n/* Collapsible drawers specific to Project Detail View */\n.collapsible-drawers {\n margin-bottom: 2rem;\n}\n\n.drawer {\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n margin-bottom: 1rem;\n overflow: hidden;\n}\n\n.drawer-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem;\n background-color: #f9fafb;\n cursor: pointer;\n}\n\n.drawer-header h2 {\n font-size: 1rem;\n font-weight: 500;\n}\n\n.toggle-drawer {\n background: none;\n border: none;\n font-size: 1rem;\n cursor: pointer;\n transition: transform var(--drawer-transition);\n}\n\n.drawer-content {\n padding: 1rem;\n border-top: 1px solid var(--border-color);\n /* Visibility is controlled solely by the global `.hidden` class (BAPI-301);\n `.expanded` is reserved for header/glyph styling. The shared drawer helper\n sets the ▲/▼ glyph text directly, so no CSS rotation is applied. */\n}\n\n/* Save button container specific to Project Detail View */\n.save-container {\n display: flex;\n justify-content: center;\n margin-top: 2rem;\n}\n\n.save-container .btn {\n padding: 0.75rem 1.5rem;\n font-size: 1rem;\n}\n\n/* Static text display (like project path) */\n.form-static-text {\n background-color: var(--background-color);\n padding: 0.5rem;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n font-family: monospace; /* Or choose appropriate font */\n color: var(--secondary-color);\n margin-top: 0.5rem; /* Align with inputs */\n word-break: break-all; /* Prevent long paths from breaking layout */\n}\n\n/* Header title specific to this page */\n.header-title {\n font-size: 1.2rem;\n font-weight: 600;\n color: var(--text-color);\n}\n\n/* Explain Link Styling */\n.explain-link {\n margin-left: 0.5rem;\n color: var(--primary-color);\n text-decoration: none;\n font-weight: bold;\n}\n\n.explain-link:hover {\n text-decoration: underline;\n}\n\n.explanation-content {\n margin-top: 0.5rem;\n padding: 0.75rem;\n background-color: #eef2ff; /* Light indigo background */\n border-left: 4px solid var(--primary-color);\n font-size: 0.875rem;\n color: #374151; /* Gray-700 */\n border-radius: 0 0.25rem 0.25rem 0; /* Slight rounding */\n flex-basis: 100%;\n width: 100%;\n}\n\n.project-card-actions {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n/* Explanation link and content styles */\n.explain-link {\n display: inline-block;\n margin-left: 6px;\n padding: 1px 6px;\n font-size: 0.8em;\n font-weight: bold;\n color: #fff;\n background-color: #6c757d; /* Bootstrap secondary color */\n border-radius: 50%;\n text-decoration: none;\n cursor: pointer;\n vertical-align: middle; /* Align with the label text */\n line-height: 1.2;\n}\n\n.explain-link:hover {\n background-color: #444;\n text-decoration: none;\n}\n\n.explanation-content {\n /* Base styling only; visibility is toggled via the .hidden class so the JS\n can show/hide help without inline display mutations. */\n margin-top: 8px;\n padding: 10px;\n border: 1px solid #ced4da; /* Light grey border */\n border-radius: 4px;\n background-color: #f8f9fa; /* Light background */\n font-size: 0.9em;\n color: #495057;\n line-height: 1.4;\n}\n\n/* The shared setup-detail.css defines a global `.explanation-content { display:\n none }` that also lands in the bundled stylesheet. Scope the visible/hidden\n states to this page's container so they win deterministically regardless of\n bundle order, while leaving the setup-detail page's own behavior untouched.\n The .hidden variant has higher specificity so it always hides when present. */\n#project-detail-container .explanation-content {\n display: block;\n}\n\n#project-detail-container .explanation-content.hidden {\n display: none;\n}\n\n/* Added styles for JSON input textarea */\n.code-input {\n font-family: 'Courier New', Courier, monospace;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n padding: 0.75rem;\n font-size: 0.9rem;\n line-height: 1.4;\n width: 100%; /* Ensure it takes full width */\n}\n\n/* Add styles for input validation feedback */\n.form-error {\n color: #dc3545; /* Bootstrap danger color */\n font-size: 0.875em;\n margin-top: 0.25rem;\n display: none; /* Hide by default */\n}\n\ninput.input-error,\ntextarea.input-error,\nselect.input-error {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); /* Optional: Add a glow */\n}\n\n/* Ensure error messages are shown when they have content */\n.form-error:not(:empty) {\n display: block;\n}\n\n/* Added styles for validation error messages */\n.form-error {\n color: var(--error-color);\n font-size: 0.875rem;\n margin-top: 0.5rem;\n display: none; /* Hidden by default */\n}\n\n.form-error.visible {\n display: block; /* Visible when needed */\n}\n\n/* MCP Validation Manuals selector\n Lay each manual out on its own row with clear spacing between the checkbox and\n its label. JS-emitted classes (.mcp-doc-option/.mcp-doc-checkbox/.mcp-doc-label)\n are only styled here — never renamed. */\n.mcp-docs-checkbox-list {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n margin-top: 0.5rem;\n}\n\n.mcp-doc-option {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n line-height: 1.4;\n cursor: pointer;\n}\n\n.mcp-doc-checkbox {\n margin: 0; /* drop inconsistent default checkbox margins */\n flex-shrink: 0; /* keep the checkbox from shrinking next to long labels */\n}\n\n.mcp-doc-label {\n /* Spacing comes from the parent's gap; keep the label inline and readable. */\n display: inline;\n}\n\n.mcp-docs-empty-state {\n margin-top: 0.5rem;\n padding: 0.5rem 0.75rem;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n color: var(--secondary-color);\n font-size: 0.875rem;\n}\n\n/* --- CI Follow-up sub-section (BAPI-308) --- */\n/* Page-scoped under #project-detail-container so these styles never leak to other\n Configure-page-like layouts. Uses existing semantic CSS variables. */\n#project-detail-container .ci-followup-section {\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n padding: 0.75rem;\n margin-top: 0.5rem;\n}\n\n#project-detail-container .ci-followup-controls {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n margin-top: 0.75rem;\n}\n\n#project-detail-container .ci-followup-strategy-option {\n display: block;\n margin-bottom: 0.5rem;\n}\n\n/* .form-help styles all page-scoped help paragraphs (the deep-research stall\n timeout helper and the CI Follow-up strategy descriptions), not only the CI\n Follow-up sub-section. */\n#project-detail-container .form-help {\n margin: 0.25rem 0 0;\n color: var(--secondary-color);\n font-size: 0.875rem;\n}\n\n#project-detail-container .ci-followup-byte-counter {\n margin-top: 0.25rem;\n color: var(--secondary-color);\n font-size: 0.8125rem;\n}\n\n#project-detail-container .ci-followup-byte-counter.over-limit {\n color: var(--error-color);\n}\n\n/* BAPI-355: low-emphasis grouping for the TDD/FSD document-format controls.\n Keeps the existing drawer rhythm (form-group spacing, textarea readability,\n focus states inherited from the base textarea rules) while visually grouping\n the two document-format textareas under a shared intro paragraph. */\n#project-detail-container .form-group-document-format {\n border-left: 3px solid var(--border-color);\n padding-left: 0.75rem;\n}\n\n#project-detail-container .document-format-help {\n margin: 0 0 0.5rem;\n color: var(--secondary-color);\n font-size: 0.875rem;\n line-height: 1.4;\n}","/* Code Analysis Styling */\n\n.hidden {\n display: none !important;\n}\n\n.analysis-section {\n margin-bottom: 2rem;\n padding-bottom: 1.5rem;\n border-bottom: 1px solid var(--border-color);\n}\n\n#build-section {\n padding-top: 2rem;\n}\n\n.analysis-section:last-child {\n border-bottom: none;\n}\n\n.analysis-section h4 {\n margin-bottom: 1rem;\n font-size: 1.1rem;\n font-weight: 600;\n}\n\n.analysis-info-label {\n margin-bottom: 10px;\n font-style: italic;\n color: #555;\n line-height: 1.5;\n}\n\n.reanalyze-container {\n margin-top: 10px;\n font-size: 0.9em;\n}\n\n.reanalyze-container p {\n margin: 0;\n}\n\n.reanalyze-container a {\n color: var(--primary-color);\n text-decoration: none;\n font-weight: 500;\n}\n\n.reanalyze-container a:hover {\n text-decoration: underline;\n}\n\n.code-analysis {\n margin-top: 2rem;\n padding: 1rem 0;\n border-top: 1px solid var(--border-color);\n}\n\n.code-analysis h3 {\n margin-bottom: 1rem;\n font-size: 1.1rem;\n font-weight: 600;\n}\n\n.code-analysis form {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n margin-bottom: 1rem;\n}\n\n.code-analysis form > div {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n\n.code-analysis label {\n font-weight: 500;\n color: var(--text-color);\n}\n\n.code-analysis select,\n.code-analysis textarea {\n padding: 0.5rem;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n font-family: inherit;\n}\n\n.code-analysis select:focus,\n.code-analysis textarea:focus {\n outline: none;\n border-color: var(--primary-color);\n box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);\n}\n\n.status-message {\n margin-top: 0.5rem;\n font-size: 0.875rem;\n padding: 0.5rem;\n border-radius: 0.25rem;\n}\n\n.status-message.processing {\n background-color: #e0f2fe;\n color: #0277bd;\n border: 1px solid #81d4fa;\n}\n\n.status-message.success {\n background-color: #e8f5e8;\n color: #2e7d32;\n border: 1px solid #a5d6a7;\n}\n\n.status-message.error {\n background-color: #ffebee;\n color: #c62828;\n border: 1px solid #ef9a9a;\n}\n\n.textarea-wide {\n width: 100%;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.875rem;\n line-height: 1.4;\n resize: vertical;\n}\n\n.code-analysis button {\n align-self: flex-start;\n margin-top: 0.5rem;\n}\n","/* src/css/optimize.css */\n\n/* Collapsible drawers specific to Optimize View */\n.collapsible-drawers {\n margin-bottom: 2rem;\n}\n\n.drawer {\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n margin-bottom: 1rem;\n overflow: hidden;\n}\n\n.drawer-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem;\n background-color: #f9fafb;\n cursor: pointer;\n}\n\n.drawer-header h2 {\n font-size: 1rem;\n font-weight: 500;\n}\n\n.toggle-drawer {\n background: none;\n border: none;\n font-size: 1rem;\n cursor: pointer;\n transition: transform var(--drawer-transition);\n}\n\n.drawer-content {\n padding: 1rem;\n border-top: 1px solid var(--border-color);\n /* Visibility is controlled solely by the global `.hidden` class (BAPI-301);\n `.expanded` is reserved for header/glyph styling. The shared drawer helper\n sets the ▲/▼ glyph text directly, so no CSS rotation is applied. */\n}\n\n/* Planner sub-section */\n.planner-section {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n margin-top: 1rem;\n}\n\nselect[multiple] {\n min-height: 180px;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n}\n\n/* Label styling */\nlabel {\n font-weight: 500;\n color: var(--text-color);\n margin-bottom: 0.5rem;\n display: block;\n}\n\n/* ====================================================================\n * LEARN REPOSITORY STYLES\n * ==================================================================== */\n#learn-repository-section {\n * {\n margin-top: 1rem;\n }\n\n padding-bottom: 2rem;\n border-bottom: 1px solid var(--border-color);\n}\n\n.learn-section {\n padding-bottom: 1.5rem;\n margin-bottom: 1.5rem;\n border-bottom: 1px solid #e5e7eb;\n}\n\n.learn-section:last-of-type {\n border-bottom: none;\n margin-bottom: 0;\n}\n\n/* ====================================================================\n * LEARN REPOSITORY PER-SECTION STATE CLASSES (BAPI-307)\n *\n * Declarative per-section state cues. Visibility is driven ONLY by the global\n * `.hidden` class (toggled in JS by the renderer); these classes add a small\n * left-border status accent and never set display/visibility. `data-state` is\n * intentionally NOT used as a visibility mechanism, and `.hidden` is never\n * redefined here.\n * ==================================================================== */\n.learn-section.lr-state-idle {\n border-left: 3px solid var(--border-color);\n padding-left: 1rem;\n}\n\n.learn-section.lr-state-running {\n border-left: 3px solid var(--primary-color);\n padding-left: 1rem;\n}\n\n.learn-section.lr-state-review {\n border-left: 3px solid var(--primary-color);\n padding-left: 1rem;\n}\n\n.learn-section.lr-state-draft {\n border-left: 3px solid var(--primary-color);\n padding-left: 1rem;\n}\n\n.learn-section.lr-state-complete {\n border-left: 3px solid var(--text-color);\n padding-left: 1rem;\n}\n\n/* The Reanalyze control is now a <button> (BAPI-307) rather than an inline\n * link; keep it left-aligned as a block action within the section actions. */\n.lr-reanalyze-link {\n display: inline-block;\n}\n\n.lr-initial-mode-options {\n display: flex;\n flex-direction: row;\n gap: 1.25rem;\n align-items: center;\n}\n\n.lr-initial-mode-options label {\n display: inline;\n font-weight: normal;\n}\n\n.lr-in-progress-container {\n margin: 0.5rem 0 1rem;\n padding: 0.75rem 1rem;\n border: 1px solid var(--border-color);\n border-radius: 0.375rem;\n}\n\n/* Horizontal separation between the reanalyze Confirm and Cancel buttons.\n * Adjacent-sibling margin keeps the existing block-level radio labels from\n * being reflowed, which a flex/gap container would do. */\n.lr-reanalyze-confirm-btn + .lr-reanalyze-cancel-btn {\n margin-left: 0.5rem;\n}\n\n/* ====================================================================\n * ESTIMATOR SECTION STYLES\n * ==================================================================== */\n\n#estimator-section {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n}\n\n#estimator-section > div {\n padding: 1rem;\n border-radius: 0.375rem;\n border: 1px solid var(--border-color);\n}\n\n#estimator-optimize {\n background-color: #f0f9ff;\n border-color: #0ea5e9;\n}\n\n#estimator-running {\n background-color: #fef3c7;\n border-color: #f59e0b;\n}\n\n#estimator-review {\n background-color: #f0fdf4;\n border-color: #22c55e;\n}\n\n#estimator-loading {\n background-color: #f3f4f6;\n border-color: var(--border-color);\n text-align: center;\n}\n\n#range-editor {\n margin: 1rem 0;\n}\n\n#range-json {\n width: 100%;\n min-height: 300px;\n padding: 0.75rem;\n border: 1px solid var(--border-color);\n border-radius: 0.375rem;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.875rem;\n line-height: 1.5;\n background-color: #f8fafc;\n resize: vertical;\n}\n\n#range-json:focus {\n outline: none;\n border-color: var(--primary-color);\n box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.1);\n}\n\n.estimator-actions {\n display: flex;\n gap: 0.5rem;\n margin-top: 1rem;\n}\n\n.estimator-actions .btn {\n flex: 0 0 auto;\n}\n\n/* Responsive design for estimator */\n@media (max-width: 768px) {\n #range-json {\n min-height: 200px;\n font-size: 0.75rem;\n }\n \n .estimator-actions {\n flex-direction: column;\n }\n \n .estimator-actions .btn {\n width: 100%;\n }\n}\n\n/* Success/Error states for estimator messages */\n.estimator-message {\n padding: 0.75rem;\n border-radius: 0.375rem;\n margin-bottom: 1rem;\n}\n\n.estimator-message.success {\n background-color: #dcfce7;\n color: #166534;\n border: 1px solid #22c55e;\n}\n\n.estimator-message.error {\n background-color: #fef2f2;\n color: #991b1b;\n border: 1px solid #ef4444;\n}\n\n.estimator-message.info {\n background-color: #eff6ff;\n color: #1e40af;\n border: 1px solid #3b82f6;\n}\n\n.draft-review-container .btn + .btn {\n margin-left: 1.5rem;\n}\n","/* Font faces */\n@font-face {\n font-family: 'Source Sans Pro';\n src: url('/public/fonts/SourceSansPro-Regular.ttf') format('truetype');\n font-weight: 400;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'Source Sans Pro';\n src: url('/public/fonts/SourceSansPro-Italic.ttf') format('truetype');\n font-weight: 400;\n font-style: italic;\n}\n\n@font-face {\n font-family: 'Source Sans Pro';\n src: url('/public/fonts/SourceSansPro-ExtraLight.ttf') format('truetype');\n font-weight: 200;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'Source Sans Pro';\n src: url('/public/fonts/SourceSansPro-ExtraLightItalic.ttf') format('truetype');\n font-weight: 200;\n font-style: italic;\n}\n\n@font-face {\n font-family: 'Source Sans Pro';\n src: url('/public/fonts/SourceSansPro-Light.ttf') format('truetype');\n font-weight: 300;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'Source Sans Pro';\n src: url('/public/fonts/SourceSansPro-LightItalic.ttf') format('truetype');\n font-weight: 300;\n font-style: italic;\n}\n\n@font-face {\n font-family: 'Source Sans Pro';\n src: url('/public/fonts/SourceSansPro-SemiBold.ttf') format('truetype');\n font-weight: 600;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'Source Sans Pro';\n src: url('/public/fonts/SourceSansPro-SemiBoldItalic.ttf') format('truetype');\n font-weight: 600;\n font-style: italic;\n}\n\n@font-face {\n font-family: 'Source Sans Pro';\n src: url('/public/fonts/SourceSansPro-Bold.ttf') format('truetype');\n font-weight: 700;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'Source Sans Pro';\n src: url('/public/fonts/SourceSansPro-BoldItalic.ttf') format('truetype');\n font-weight: 700;\n font-style: italic;\n}\n\n@font-face {\n font-family: 'Source Sans Pro';\n src: url('/public/fonts/SourceSansPro-Black.ttf') format('truetype');\n font-weight: 900;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'Source Sans Pro';\n src: url('/public/fonts/SourceSansPro-BlackItalic.ttf') format('truetype');\n font-weight: 900;\n font-style: italic;\n}\n\n/* Global variables */\n:root {\n --primary-color: #E2624B;\n --primary-dark: #C51616;\n --secondary-color: #6b7280;\n --light-grey: #eee;\n --secondary-button-background: #fdf4ec;\n --light-orange: #F2B27A;\n --dark-orange: #e17055;\n --background-color: #fffdf0;\n --surface-color: #ffffff;\n --text-color: #393D4E;\n --border-color: #e6e4d5;\n --error-color: #ef4444;\n --success-color: #10b981;\n --header-height: 60px;\n --box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n}\n\n/* Reset and base styles */\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\nbody {\n font-family: 'Source Sans Pro', -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n background-color: var(--background-color);\n color: var(--text-color);\n line-height: 1.5;\n min-height: 100vh;\n padding-top: var(--header-height);\n}\n\n.hidden {\n display: none !important;\n}\n\n/* Button styles */\n.btn {\n cursor: pointer;\n padding: 0.75rem 2rem;\n border-radius: 4px;\n border: 1px solid transparent;\n font-size: 1rem;\n line-height: 1.25rem;\n transition: background-color 0.3s ease;\n}\n\n.btn-primary {\n background-color: var(--primary-color);\n color: white;\n}\n\n.btn-primary:hover {\n background-color: var(--primary-dark);\n}\n\n.btn-secondary {\n background-color: var(--secondary-button-background);\n border: 1px solid var(--light-orange);\n color: #333;\n}\n\n.btn-secondary:hover {\n text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);\n background-color: var(--dark-orange);\n color: white;\n} \n\n.btn-sm {\n padding: 0.2rem 0.5rem;\n font-size: 0.75rem;\n}\n\n.btn-danger {\n background-color: var(--error-color);\n color: white;\n}\n\n.btn-danger:hover {\n background-color: #b91c1c; /* darker red for hover */\n}\n\n.btn:disabled {\n background-color: #d1d5db;\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n/* Form element base styles */\nlabel {\n display: block;\n font-size: 0.875rem;\n font-weight: 500;\n margin-bottom: 0.5rem;\n}\n\ninput[type=\"text\"],\ninput[type=\"password\"],\ninput[type=\"email\"],\ninput[type=\"url\"],\ninput[type=\"number\"],\ntextarea {\n width: 100%;\n padding: 0.5rem;\n font-size: 1rem;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n background-color: #fff;\n}\n\ninput[type=\"number\"] {\n width: auto;\n}\n\ntextarea {\n min-height: 100px;\n resize: vertical;\n}\n\n.required {\n color: var(--error-color);\n}\n\n/* Checkbox styling */\n.form-group.checkbox {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.form-group.checkbox input {\n margin-right: 0.5rem;\n}\n\n.form-group.checkbox label {\n margin-bottom: 0;\n}\n\n/* Modal base styles (if used globally) */\n.modal {\n display: none;\n position: fixed;\n z-index: 1000;\n left: 0;\n top: 0;\n width: 100vw;\n height: 100vh;\n background: rgba(0,0,0,0.4);\n align-items: center;\n justify-content: center;\n}\n","/* src/css/data_health.css */\n\n/* Collapsible drawers for Data Health View */\n.collapsible-drawers {\n margin-bottom: 2rem;\n}\n\n.drawer {\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n margin-bottom: 1rem;\n overflow: hidden;\n}\n\n.drawer-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem;\n background-color: #f9fafb;\n cursor: pointer;\n}\n\n.drawer-header h2 {\n font-size: 1rem;\n font-weight: 500;\n}\n\n.toggle-drawer {\n background: none;\n border: none;\n font-size: 1rem;\n cursor: pointer;\n transition: transform var(--drawer-transition);\n}\n\n.drawer-content {\n padding: 1rem;\n border-top: 1px solid var(--border-color);\n /* Visibility is controlled solely by the global `.hidden` class (BAPI-301);\n `.expanded` is reserved for header/glyph styling. The shared drawer helper\n sets the ▲/▼ glyph text directly, so no CSS rotation is applied. */\n}\n\n/* ========================================\n Parse / Learn Repository Jobs Section Styles\n ======================================== */\n\n.parse-repository-jobs-section,\n.learn-repository-jobs-section {\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n}\n\n/* Last-ran timestamp shown under the Update Repository action.\n Replaces a former inline style on the template. */\n.operation-last-ran {\n margin-top: 0.5rem;\n font-size: 0.875rem;\n}\n\n/* Parse schedule status panel. Replaces the former inline-styled status\n blocks; state colors come from global design tokens (no hardcoded colors). */\n.parse-schedule-status {\n margin-top: 0.75rem;\n padding: 0.75rem;\n border: 1px solid var(--border-color);\n border-radius: 4px;\n font-size: 0.875rem;\n}\n\n.parse-schedule-status--active {\n color: var(--success-color);\n border-color: var(--success-color);\n}\n\n.parse-schedule-status--paused,\n.parse-schedule-status--empty {\n color: var(--dark-orange);\n border-color: var(--dark-orange);\n}\n\n.parse-schedule-next-run {\n display: block;\n margin-top: 0.25rem;\n color: var(--text-color);\n}\n\n.parse-schedule-actions {\n margin-top: 0.5rem;\n display: flex;\n gap: 0.5rem;\n}\n\n.operation-row {\n display: flex;\n flex-direction: column;\n padding-bottom: 1rem;\n border-bottom: 1px solid var(--border-color);\n}\n\n.operation-row:last-child {\n border-bottom: none;\n padding-bottom: 0;\n}\n\n.operation-item {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.operation-item .btn {\n align-self: flex-start;\n}\n\n.operation-label {\n font-size: 0.875rem;\n color: var(--secondary-color);\n line-height: 1.4;\n}\n\n.schedule-controls {\n display: flex;\n gap: 1rem;\n margin-top: 0.5rem;\n align-items: flex-end;\n}\n\n.schedule-controls .form-group {\n margin-bottom: 0;\n}\n\n.schedule-controls .form-group.inline {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n\n.schedule-controls .form-group.inline label {\n font-size: 0.75rem;\n color: var(--secondary-color);\n}\n\n.schedule-controls .form-group.inline input,\n.schedule-controls .form-group.inline select {\n width: auto;\n min-width: 120px;\n padding: 0.375rem 0.5rem;\n font-size: 0.875rem;\n}\n\n/* ========================================\n Data Integrity Section Styles\n ======================================== */\n\n/* Loading and error states */\n.integrity-loading,\n.integrity-error {\n padding: 1rem;\n text-align: center;\n color: var(--secondary-color);\n}\n\n.integrity-error {\n color: var(--error-color);\n background-color: #fef2f2;\n border: 1px solid #fecaca;\n border-radius: 0.25rem;\n}\n\n/* Summary statistics */\n.integrity-summary {\n display: flex;\n gap: 2rem;\n margin-bottom: 1.5rem;\n padding: 1rem;\n background-color: #f9fafb;\n border-radius: 0.25rem;\n}\n\n.integrity-stat {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.integrity-stat-label {\n font-size: 0.875rem;\n color: var(--secondary-color);\n margin-bottom: 0.25rem;\n}\n\n.integrity-stat-value {\n font-size: 1.5rem;\n font-weight: 600;\n color: var(--text-color);\n}\n\n.integrity-stat-value.integrity-healthy {\n color: #16a34a;\n}\n\n/* Empty state */\n.integrity-empty-state {\n padding: 1.5rem;\n text-align: center;\n background-color: #f0fdf4;\n border: 1px solid #bbf7d0;\n border-radius: 0.25rem;\n color: #166534;\n}\n\n.integrity-empty-state p {\n margin: 0;\n font-weight: 500;\n}\n\n/* Issues table */\n.integrity-table {\n width: 100%;\n border-collapse: collapse;\n margin-top: 1rem;\n}\n\n.integrity-table th,\n.integrity-table td {\n padding: 0.75rem;\n text-align: left;\n border-bottom: 1px solid var(--border-color);\n}\n\n.integrity-table th {\n background-color: #f9fafb;\n font-weight: 500;\n font-size: 0.875rem;\n color: var(--secondary-color);\n}\n\n.integrity-table td {\n font-size: 0.875rem;\n vertical-align: top;\n}\n\n.integrity-table tbody tr:hover {\n background-color: #f9fafb;\n}\n\n/* File list styling */\n.integrity-file-list {\n font-family: monospace;\n font-size: 0.8rem;\n background-color: #f1f5f9;\n padding: 0.5rem;\n border-radius: 4px;\n max-height: 150px;\n overflow-y: auto;\n margin: 0;\n list-style: none;\n}\n\n.integrity-file-list li {\n padding: 0.125rem 0;\n word-break: break-all;\n}\n\n.integrity-file-list li:not(:last-child) {\n border-bottom: 1px solid #e2e8f0;\n}\n\n.integrity-more-files {\n font-style: italic;\n color: var(--secondary-color);\n font-size: 0.8rem;\n margin-top: 0.25rem;\n}\n\n/* Issues container header */\n#integrity-issues-container h3 {\n font-size: 1rem;\n font-weight: 500;\n color: var(--text-color);\n margin-bottom: 0.5rem;\n}\n\n/* ========================================\n Configuration Health Section Styles\n ======================================== */\n\n/* Loading and error states */\n.config-health-loading,\n.config-health-error {\n padding: 1rem;\n text-align: center;\n color: var(--secondary-color);\n}\n\n.config-health-error {\n color: var(--error-color);\n background-color: #fef2f2;\n border: 1px solid #fecaca;\n border-radius: 0.25rem;\n}\n\n/* Summary statistics */\n.health-stats {\n display: flex;\n gap: 2rem;\n margin-bottom: 1.5rem;\n padding: 1rem;\n background-color: #f9fafb;\n border-radius: 0.25rem;\n}\n\n.health-stat {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.health-stat-label {\n font-size: 0.875rem;\n color: var(--secondary-color);\n margin-bottom: 0.25rem;\n}\n\n.health-stat-value {\n font-size: 1.5rem;\n font-weight: 600;\n color: var(--text-color);\n}\n\n.health-stat-value.health-configured {\n color: #16a34a;\n}\n\n.health-stat-value.health-errors {\n color: var(--error-color);\n}\n\n.health-stat-value.health-warnings {\n color: #f59e0b;\n}\n\n/* All good state */\n.config-health-all-good {\n padding: 1.5rem;\n text-align: center;\n background-color: #f0fdf4;\n border: 1px solid #bbf7d0;\n border-radius: 0.25rem;\n color: #166534;\n}\n\n.config-health-all-good p {\n margin: 0;\n font-weight: 500;\n}\n\n/* Config health table */\n.config-health-table {\n width: 100%;\n border-collapse: collapse;\n margin-top: 1rem;\n}\n\n.config-health-table th,\n.config-health-table td {\n padding: 0.75rem;\n text-align: left;\n border-bottom: 1px solid var(--border-color);\n}\n\n.config-health-table th {\n background-color: #f9fafb;\n font-weight: 500;\n font-size: 0.875rem;\n color: var(--secondary-color);\n}\n\n.config-health-table td {\n font-size: 0.875rem;\n vertical-align: top;\n}\n\n.config-health-table tbody tr:hover {\n background-color: #f9fafb;\n}\n\n/* Status badge styling */\n.config-status-badge {\n display: inline-block;\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 500;\n text-transform: uppercase;\n}\n\n.config-status-badge.status-missing {\n background-color: #fef2f2;\n color: #991b1b;\n}\n\n.config-status-badge.status-invalid {\n background-color: #fef2f2;\n color: #991b1b;\n}\n\n/* Dismiss button / text button styling */\n.btn-text {\n background-color: transparent;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n padding: 0.375rem 0.75rem;\n font-size: 0.875rem;\n color: var(--secondary-color);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-text:hover {\n background-color: #f9fafb;\n border-color: var(--secondary-color);\n color: var(--text-color);\n}\n\n.btn-text:active {\n background-color: #f3f4f6;\n}\n\n.btn-text:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Config errors/warnings container headers */\n#config-errors-container h3,\n#config-warnings-container h3 {\n font-size: 1rem;\n font-weight: 500;\n color: var(--text-color);\n margin-bottom: 0.5rem;\n margin-top: 1.5rem;\n}\n\n#config-errors-container h3 {\n color: var(--error-color);\n}\n\n#config-warnings-container h3 {\n color: #f59e0b;\n}\n\n/* ========================================\n Pinecone Data Integrity Section Styles\n ======================================== */\n\n/* Actions container with button and last run text */\n.pinecone-health-actions {\n display: flex;\n align-items: center;\n gap: 1rem;\n margin-bottom: 1rem;\n}\n\n.last-run-text {\n font-size: 0.875rem;\n color: var(--secondary-color);\n}\n\n/* Loading and error states */\n.pinecone-health-loading,\n.pinecone-health-error {\n padding: 1rem;\n text-align: center;\n color: var(--secondary-color);\n}\n\n.pinecone-health-error {\n color: var(--error-color);\n background-color: #fef2f2;\n border: 1px solid #fecaca;\n border-radius: 0.25rem;\n}\n\n/* No results state */\n.pinecone-health-no-results {\n padding: 1rem;\n text-align: center;\n color: var(--secondary-color);\n background-color: #f9fafb;\n border: 1px solid var(--border-color);\n border-radius: 0.25rem;\n}\n\n.pinecone-health-no-results p {\n margin: 0;\n}\n\n/* Status container and badge */\n.pinecone-health-status-container {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin-bottom: 1rem;\n}\n\n.pinecone-health-status {\n display: inline-block;\n padding: 0.25rem 0.75rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.pinecone-health-status.status-healthy {\n background-color: #dcfce7;\n color: #166534;\n}\n\n.pinecone-health-status.status-error {\n background-color: #fef2f2;\n color: #991b1b;\n}\n\n.pinecone-health-status.status-warning {\n background-color: #fef3c7;\n color: #92400e;\n}\n\n.pinecone-health-status.status-running {\n background-color: #dbeafe;\n color: #1e40af;\n}\n\n/* Summary statistics */\n.pinecone-health-summary {\n display: flex;\n gap: 2rem;\n margin-bottom: 1.5rem;\n padding: 1rem;\n background-color: #f9fafb;\n border-radius: 0.25rem;\n flex-wrap: wrap;\n}\n\n.pinecone-health-stat {\n display: flex;\n flex-direction: column;\n align-items: center;\n min-width: 80px;\n}\n\n.pinecone-health-stat-label {\n font-size: 0.875rem;\n color: var(--secondary-color);\n margin-bottom: 0.25rem;\n}\n\n.pinecone-health-stat-value {\n font-size: 1.5rem;\n font-weight: 600;\n color: var(--text-color);\n}\n\n/* All good state */\n.pinecone-health-all-good {\n padding: 1.5rem;\n text-align: center;\n background-color: #f0fdf4;\n border: 1px solid #bbf7d0;\n border-radius: 0.25rem;\n color: #166534;\n}\n\n.pinecone-health-all-good p {\n margin: 0;\n font-weight: 500;\n}\n\n/* Pinecone health table (shared styles for namespace and failures tables) */\n.pinecone-health-table {\n width: 100%;\n border-collapse: collapse;\n margin-top: 1rem;\n table-layout: fixed;\n}\n\n.pinecone-health-table th,\n.pinecone-health-table td {\n padding: 0.75rem;\n text-align: left;\n border-bottom: 1px solid var(--border-color);\n}\n\n.pinecone-health-table th {\n background-color: #f9fafb;\n font-weight: 500;\n font-size: 0.875rem;\n color: var(--secondary-color);\n}\n\n.pinecone-health-table td {\n font-size: 0.875rem;\n vertical-align: middle;\n word-wrap: break-word;\n}\n\n.pinecone-health-table tbody tr:hover {\n background-color: #f9fafb;\n}\n\n/* Namespace results table column widths */\n#pinecone-namespace-container .pinecone-health-table th:nth-child(1),\n#pinecone-namespace-container .pinecone-health-table td:nth-child(1) {\n width: 25%;\n}\n\n#pinecone-namespace-container .pinecone-health-table th:nth-child(2),\n#pinecone-namespace-container .pinecone-health-table td:nth-child(2) {\n width: 15%;\n}\n\n#pinecone-namespace-container .pinecone-health-table th:nth-child(3),\n#pinecone-namespace-container .pinecone-health-table td:nth-child(3),\n#pinecone-namespace-container .pinecone-health-table th:nth-child(4),\n#pinecone-namespace-container .pinecone-health-table td:nth-child(4),\n#pinecone-namespace-container .pinecone-health-table th:nth-child(5),\n#pinecone-namespace-container .pinecone-health-table td:nth-child(5) {\n width: 12%;\n text-align: right;\n}\n\n#pinecone-namespace-container .pinecone-health-table th:nth-child(6),\n#pinecone-namespace-container .pinecone-health-table td:nth-child(6) {\n width: 12%;\n text-align: center;\n}\n\n/* Sample failures table column widths */\n#pinecone-failures-container .pinecone-health-table th:nth-child(1),\n#pinecone-failures-container .pinecone-health-table td:nth-child(1) {\n width: 20%;\n}\n\n#pinecone-failures-container .pinecone-health-table th:nth-child(2),\n#pinecone-failures-container .pinecone-health-table td:nth-child(2) {\n width: 15%;\n}\n\n#pinecone-failures-container .pinecone-health-table th:nth-child(3),\n#pinecone-failures-container .pinecone-health-table td:nth-child(3) {\n width: 30%;\n font-family: monospace;\n font-size: 0.8rem;\n}\n\n#pinecone-failures-container .pinecone-health-table th:nth-child(4),\n#pinecone-failures-container .pinecone-health-table td:nth-child(4) {\n width: 35%;\n}\n\n/* Container headers */\n#pinecone-namespace-container h3,\n#pinecone-failures-container h3 {\n font-size: 1rem;\n font-weight: 500;\n color: var(--text-color);\n margin-bottom: 0.5rem;\n margin-top: 1.5rem;\n}\n\n#pinecone-failures-container h3 {\n color: var(--error-color);\n}\n\n/* ========================================\n Pinecone Regenerate Section Styles\n ======================================== */\n\n.pinecone-regenerate-section {\n margin-top: 1.5rem;\n padding-top: 1.5rem;\n border-top: 1px solid var(--border-color);\n}\n\n.pinecone-regenerate-section h4 {\n font-size: 0.95rem;\n font-weight: 600;\n color: var(--text-color);\n margin: 0 0 0.5rem 0;\n}\n\n.regenerate-instructions {\n font-size: 0.875rem;\n color: var(--secondary-color);\n margin: 0 0 0.75rem 0;\n}\n\n.regenerate-checkboxes {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n margin-bottom: 1rem;\n}\n\n.regenerate-checkboxes .checkbox-label {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 0.875rem;\n cursor: pointer;\n}\n\n.regenerate-checkboxes .checkbox-label input[type=\"checkbox\"] {\n width: 16px;\n height: 16px;\n cursor: pointer;\n accent-color: var(--primary-color);\n}\n\n.regenerate-checkboxes .checkbox-label span {\n color: var(--text-color);\n}\n\n.regenerate-checkboxes .namespace-name {\n font-family: monospace;\n font-size: 0.8rem;\n background-color: #f1f5f9;\n padding: 0.125rem 0.375rem;\n border-radius: 0.25rem;\n color: var(--secondary-color);\n}\n\n.regenerate-checkboxes .metadata-warning {\n font-size: 0.75rem;\n color: #f59e0b;\n margin-left: 0.25rem;\n}\n\n/* Info tooltip button */\n.info-tooltip-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n margin-left: 0.375rem;\n padding: 0;\n font-size: 0.75rem;\n color: #6b7280;\n background: none;\n border: none;\n cursor: pointer;\n vertical-align: middle;\n transition: color 0.15s ease;\n}\n\n.info-tooltip-btn:hover {\n color: var(--primary-color);\n}\n\n/* Namespace info panel */\n.namespace-info {\n margin: 0.375rem 0 0.75rem 1.5rem;\n padding: 0.625rem 0.75rem;\n font-size: 0.8rem;\n color: #4b5563;\n background-color: #f3f4f6;\n border-left: 3px solid var(--primary-color);\n border-radius: 0 0.25rem 0.25rem 0;\n line-height: 1.4;\n}\n\n.namespace-info.hidden {\n display: none;\n}\n\n.namespace-info strong {\n color: var(--text-color);\n}\n\n/* Note styling (softer than warning) */\n.regenerate-note {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n padding: 0.625rem 0.75rem;\n background-color: #eff6ff;\n border: 1px solid #bfdbfe;\n border-radius: 0.25rem;\n margin-bottom: 1rem;\n}\n\n.regenerate-note .note-label {\n font-size: 0.8rem;\n font-weight: 600;\n color: #1e40af;\n}\n\n.regenerate-note .note-text {\n font-size: 0.8rem;\n color: #1e40af;\n line-height: 1.4;\n}\n\n.regenerate-warning {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n padding: 0.75rem;\n background-color: #fef3c7;\n border: 1px solid #fcd34d;\n border-radius: 0.25rem;\n margin-bottom: 1rem;\n}\n\n.regenerate-warning .warning-icon {\n font-size: 1rem;\n line-height: 1;\n}\n\n.regenerate-warning .warning-text {\n font-size: 0.8rem;\n color: #92400e;\n line-height: 1.4;\n}\n\n/* Warning button style */\n.btn-warning {\n background-color: #f59e0b;\n color: #fff;\n border: 1px solid #d97706;\n}\n\n.btn-warning:hover {\n background-color: #d97706;\n border-color: #b45309;\n}\n\n.btn-warning:active {\n background-color: #b45309;\n}\n\n.btn-warning:disabled {\n background-color: #fcd34d;\n border-color: #fcd34d;\n cursor: not-allowed;\n}\n\n/* `.hidden` is provided by the global utility in src/css/globals.css; do not\n redefine it here (BAPI-301). */\n\n/* Phase 1b: Learn-repository auto-update schedule */\n.learn-repo-schedule-section {\n border-radius: 6px;\n padding: 1rem;\n margin-top: 0.75rem;\n}\n.learn-repo-schedule-section h4 {\n margin: 0 0 0.25rem 0;\n}\n.learn-repo-instructions {\n font-size: 0.85rem;\n color: #6b7280;\n margin-bottom: 0.75rem;\n}\n.learn-repo-analysis-types {\n border: none;\n padding: 0;\n margin: 0 0 0.75rem 0;\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\n gap: 0.25rem 1rem;\n}\n.learn-repo-analysis-types legend {\n font-weight: 600;\n margin-bottom: 0.25rem;\n}\n.learn-repo-actions {\n margin-top: 0.5rem;\n}\n.learn-repo-message {\n margin-top: 0.5rem;\n font-size: 0.875rem;\n color: #1f2937;\n}\n.learn-repo-schedule-status {\n margin-top: 0.75rem;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n.learn-repo-schedule-row {\n border: 1px solid #e5e7eb;\n border-radius: 4px;\n padding: 0.75rem;\n background-color: #f9fafb;\n}\n.learn-repo-schedule-meta {\n font-size: 0.85rem;\n color: #4b5563;\n margin: 0.25rem 0;\n}\n.learn-repo-row-actions {\n margin-top: 0.5rem;\n display: flex;\n gap: 0.5rem;\n}\n.learn-repo-status-running {\n color: #2563eb;\n}\n.learn-repo-status-success {\n color: #15803d;\n}\n.learn-repo-status-failure {\n color: #b91c1c;\n}\n.learn-repo-status-idle {\n color: #6b7280;\n}\n.learn-repo-schedule-row details {\n margin-top: 0.5rem;\n font-size: 0.85rem;\n}\n.learn-repo-schedule-row details pre {\n white-space: pre-wrap;\n background-color: #ffffff;\n border: 1px solid #e5e7eb;\n border-radius: 3px;\n padding: 0.5rem;\n margin: 0.25rem 0 0 0;\n}\n.form-error {\n color: #b91c1c;\n font-size: 0.85rem;\n margin-top: 0.25rem;\n}\n"],"names":[],"sourceRoot":""}
|