/* =================================== Lite Task Detail Page Additions =================================== */ /* Path Tags */ .path-tags { display: flex; flex-wrap: wrap; gap: 0.5rem; } .path-tag { padding: 0.25rem 0.5rem; background: hsl(var(--muted)); border-radius: 0.25rem; font-family: var(--font-mono); font-size: 0.8rem; color: hsl(var(--foreground)); } /* JSON Content */ .json-content { background: hsl(var(--muted)); padding: 1rem; border-radius: 0.5rem; overflow-x: auto; font-size: 0.75rem; line-height: 1.6; color: hsl(var(--foreground)); max-height: 500px; overflow-y: auto; white-space: pre-wrap; word-break: break-word; } /* Button View JSON */ .btn-view-json { padding: 0.25rem 0.5rem; background: hsl(var(--muted)); border: 1px solid hsl(var(--border)); border-radius: 0.25rem; font-size: 0.7rem; font-family: var(--font-mono); color: hsl(var(--muted-foreground)); cursor: pointer; transition: all 0.15s; } .btn-view-json:hover { background: hsl(var(--hover)); color: hsl(var(--foreground)); } /* Context Fields */ .context-fields { display: flex; flex-direction: column; gap: 1rem; } .context-section { padding: 1rem; background: hsl(var(--muted) / 0.3); border: 1px solid hsl(var(--border)); border-radius: 0.5rem; } .context-section-title { font-size: 1rem; font-weight: 600; color: hsl(var(--foreground)); margin-bottom: 0.75rem; padding-bottom: 0.5rem; border-bottom: 1px solid hsl(var(--border)); } .context-field { display: flex; flex-direction: column; gap: 0.25rem; } .context-label { font-size: 0.75rem; font-weight: 600; color: hsl(var(--muted-foreground)); text-transform: uppercase; letter-spacing: 0.025em; } .context-value { font-size: 0.875rem; color: hsl(var(--foreground)); line-height: 1.6; } .context-field label { display: block; font-size: 0.75rem; font-weight: 600; color: hsl(var(--muted-foreground)); margin-bottom: 0.5rem; text-transform: uppercase; } .context-field p { margin: 0; font-size: 0.875rem; color: hsl(var(--foreground)); line-height: 1.5; } .context-field ul { margin: 0; padding-left: 1.25rem; font-size: 0.875rem; color: hsl(var(--foreground)); } .context-field ul li { margin-bottom: 0.25rem; } /* Modification Points */ .mod-points { display: flex; flex-direction: column; gap: 0.5rem; } .mod-point { padding: 0.5rem; background: hsl(var(--card)); border: 1px solid hsl(var(--border)); border-radius: 0.25rem; } .mod-target { font-size: 0.75rem; color: hsl(var(--muted-foreground)); margin-left: 0.5rem; } .mod-change { margin: 0.5rem 0 0 0; font-size: 0.8rem; color: hsl(var(--foreground)); } /* Implementation Steps */ .impl-steps { margin: 0; padding-left: 1.25rem; font-size: 0.875rem; color: hsl(var(--foreground)); } .impl-steps li { margin-bottom: 0.5rem; line-height: 1.5; } /* Implementation Steps List (Drawer) */ .impl-steps-list { display: flex; flex-direction: column; gap: 1rem; } .impl-step-item { background: hsl(var(--muted) / 0.3); border: 1px solid hsl(var(--border)); border-radius: 0.5rem; padding: 1rem; transition: border-color 0.2s; } .impl-step-item:hover { border-color: hsl(var(--primary) / 0.5); } .impl-step-header { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.5rem; } .impl-step-number { display: inline-flex; align-items: center; justify-content: center; min-width: 1.75rem; height: 1.75rem; padding: 0 0.5rem; background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); border-radius: 0.375rem; font-size: 0.75rem; font-weight: 600; white-space: nowrap; } .impl-step-title { font-weight: 600; font-size: 0.9rem; color: hsl(var(--foreground)); flex: 1; } .impl-step-desc { font-size: 0.85rem; color: hsl(var(--muted-foreground)); line-height: 1.5; margin-bottom: 0.75rem; padding-left: 2.5rem; } .impl-step-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 0.75rem; padding-top: 0.75rem; border-top: 1px solid hsl(var(--border)); } .impl-step-mods, .impl-step-flow { font-size: 0.8rem; } .impl-step-mods strong, .impl-step-flow strong { display: block; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.05em; color: hsl(var(--muted-foreground)); margin-bottom: 0.5rem; } .impl-step-mods ul, .impl-step-flow ol { margin: 0; padding-left: 1.25rem; color: hsl(var(--foreground)); } .impl-step-mods li, .impl-step-flow li { margin-bottom: 0.375rem; line-height: 1.4; } .impl-step-mods code { font-size: 0.75rem; padding: 0.125rem 0.375rem; background: hsl(var(--muted)); border-radius: 0.25rem; color: hsl(var(--primary)); } .impl-step-deps { margin-top: 0.75rem; padding-top: 0.5rem; border-top: 1px dashed hsl(var(--border)); font-size: 0.75rem; color: hsl(var(--muted-foreground)); } .dep-badge { display: inline-block; padding: 0.125rem 0.5rem; background: hsl(var(--muted)); border-radius: 0.25rem; font-size: 0.7rem; margin-left: 0.25rem; } /* Field Groups */ .field-group { display: flex; flex-direction: column; gap: 0.5rem; } .field-row { display: flex; gap: 0.5rem; font-size: 0.875rem; } .field-label { font-weight: 500; color: hsl(var(--muted-foreground)); min-width: 100px; } .field-value { color: hsl(var(--foreground)); flex: 1; } .json-value-null { color: hsl(var(--muted-foreground)); font-style: italic; } .json-value-boolean { color: hsl(220 80% 60%); } .json-value-number { color: hsl(142 71% 45%); } .json-value-string { color: hsl(var(--foreground)); } /* Array Items */ .array-value { display: flex; flex-wrap: wrap; gap: 0.375rem; } .array-item { padding: 0.125rem 0.375rem; background: hsl(var(--muted)); border-radius: 0.25rem; font-size: 0.8rem; } .array-item.path-item { font-family: var(--font-mono); background: hsl(var(--accent)); } /* Nested Array */ .nested-array { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 0.25rem; } .array-object { padding: 0.5rem; background: hsl(var(--card)); border: 1px solid hsl(var(--border)); border-radius: 0.25rem; } .array-object-header { font-size: 0.7rem; font-weight: 600; color: hsl(var(--muted-foreground)); margin-bottom: 0.25rem; } /* Collapsible Sections */ .collapsible-section { border-top: 1px solid hsl(var(--border)); } .collapsible-header { display: flex; align-items: center; gap: 0.5rem; padding: 0.75rem 1rem; cursor: pointer; transition: background 0.15s; } .collapsible-header:hover { background: hsl(var(--hover)); } .collapse-icon { font-size: 0.75rem; color: hsl(var(--muted-foreground)); transition: transform 0.2s; } .collapsible-header.expanded .collapse-icon { transform: rotate(90deg); } .section-label { font-size: 0.75rem; font-weight: 600; color: hsl(var(--foreground)); text-transform: uppercase; } .section-preview { flex: 1; font-size: 0.75rem; color: hsl(var(--muted-foreground)); text-align: right; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .collapsible-content { padding: 1rem; background: hsl(var(--muted)); } .collapsible-content.collapsed { display: none; } /* Summary Tab */ .summary-tab-content { display: flex; flex-direction: column; gap: 1rem; } .summary-item-collapsible { border: 1px solid hsl(var(--border)); border-radius: 0.5rem; overflow: hidden; } .summary-collapsible-header { display: flex; align-items: center; gap: 0.5rem; padding: 0.75rem 1rem; background: hsl(var(--card)); cursor: pointer; transition: background 0.15s; } .summary-collapsible-header:hover { background: hsl(var(--hover)); } .summary-name { font-weight: 600; color: hsl(var(--foreground)); } .summary-preview { flex: 1; font-size: 0.75rem; color: hsl(var(--muted-foreground)); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .summary-collapsible-content { padding: 1rem; background: hsl(var(--muted)); } .summary-collapsible-content.collapsed { display: none; } .summary-content-pre { margin: 0; white-space: pre-wrap; word-break: break-word; font-size: 0.8rem; line-height: 1.6; } /* Summary Item Direct (No collapse) */ .summary-item-direct { border: 1px solid hsl(var(--border)); border-radius: 0.5rem; padding: 1rem; background: hsl(var(--card)); } .summary-item-direct .summary-content-pre { margin-top: 0.5rem; padding: 0.75rem; background: hsl(var(--muted)); border-radius: 0.375rem; } .markdown-content { background: hsl(var(--muted)); padding: 1rem; border-radius: 0.5rem; overflow-x: auto; font-size: 0.8rem; line-height: 1.6; color: hsl(var(--foreground)); max-height: 600px; overflow-y: auto; white-space: pre-wrap; word-break: break-word; margin: 0; } /* JSON Modal */ .json-modal-overlay { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.5); display: flex; align-items: center; justify-content: center; z-index: 100; opacity: 0; transition: opacity 0.2s; } .json-modal-overlay.active { opacity: 1; } .json-modal { background: hsl(var(--card)); border-radius: 0.5rem; width: 90%; max-width: 700px; max-height: 80vh; display: flex; flex-direction: column; box-shadow: 0 8px 24px rgb(0 0 0 / 0.2); } .json-modal-header { display: flex; align-items: center; justify-content: space-between; padding: 1rem; border-bottom: 1px solid hsl(var(--border)); } .json-modal-title { display: flex; align-items: center; gap: 0.5rem; font-weight: 600; color: hsl(var(--foreground)); } .json-modal-close { width: 2rem; height: 2rem; display: flex; align-items: center; justify-content: center; background: none; border: none; font-size: 1.5rem; color: hsl(var(--muted-foreground)); cursor: pointer; border-radius: 0.25rem; } .json-modal-close:hover { background: hsl(var(--hover)); color: hsl(var(--foreground)); } .json-modal-body { flex: 1; overflow: auto; padding: 1rem; } .json-modal-content { margin: 0; white-space: pre-wrap; word-break: break-word; font-size: 0.75rem; line-height: 1.6; color: hsl(var(--foreground)); } .json-modal-footer { padding: 1rem; border-top: 1px solid hsl(var(--border)); display: flex; justify-content: flex-end; } .btn-copy-json { padding: 0.5rem 1rem; background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); border: none; border-radius: 0.375rem; font-size: 0.875rem; cursor: pointer; transition: opacity 0.15s; } .btn-copy-json:hover { opacity: 0.9; } /* Flowchart Fallback */ .flowchart-fallback { display: flex; align-items: center; justify-content: center; height: 200px; color: hsl(var(--muted-foreground)); font-size: 0.875rem; } /* =================================== Markdown Modal =================================== */ .markdown-modal.hidden { display: none; } .md-tab-btn { color: hsl(var(--muted-foreground)); } .md-tab-btn.active { background: hsl(var(--background)); color: hsl(var(--foreground)); font-weight: 500; } .md-tab-btn:hover:not(.active) { color: hsl(var(--foreground)); } /* Markdown Preview Prose Styles */ .markdown-preview { color: hsl(var(--foreground)); line-height: 1.7; } .markdown-preview h1, .markdown-preview h2, .markdown-preview h3, .markdown-preview h4, .markdown-preview h5, .markdown-preview h6 { color: hsl(var(--foreground)); font-weight: 600; margin-top: 1.5em; margin-bottom: 0.5em; line-height: 1.3; } .markdown-preview h1 { font-size: 1.75rem; border-bottom: 1px solid hsl(var(--border)); padding-bottom: 0.3em; } .markdown-preview h2 { font-size: 1.5rem; border-bottom: 1px solid hsl(var(--border)); padding-bottom: 0.3em; } .markdown-preview h3 { font-size: 1.25rem; } .markdown-preview h4 { font-size: 1.1rem; } .markdown-preview p { margin-bottom: 1em; } .markdown-preview ul, .markdown-preview ol { margin-bottom: 1em; padding-left: 1.5em; } .markdown-preview li { margin-bottom: 0.25em; } .markdown-preview code { background: hsl(var(--muted)); padding: 0.125rem 0.375rem; border-radius: 0.25rem; font-size: 0.875em; color: hsl(var(--primary)); } .markdown-preview pre { background: hsl(var(--muted)); padding: 1rem; border-radius: 0.5rem; overflow-x: auto; margin-bottom: 1em; } .markdown-preview pre code { background: none; padding: 0; color: hsl(var(--foreground)); } .markdown-preview blockquote { border-left: 3px solid hsl(var(--primary)); padding-left: 1rem; margin-left: 0; margin-bottom: 1em; color: hsl(var(--muted-foreground)); font-style: italic; } .markdown-preview table { width: 100%; border-collapse: collapse; margin-bottom: 1em; } .markdown-preview th, .markdown-preview td { border: 1px solid hsl(var(--border)); padding: 0.5rem 0.75rem; text-align: left; } .markdown-preview th { background: hsl(var(--muted)); font-weight: 600; } .markdown-preview a { color: hsl(var(--primary)); text-decoration: underline; } .markdown-preview hr { border: none; border-top: 1px solid hsl(var(--border)); margin: 1.5em 0; } /* View Details Button */ .btn-view-details { display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.375rem 0.75rem; background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); border: none; border-radius: 0.375rem; font-size: 0.8rem; cursor: pointer; transition: opacity 0.15s; } .btn-view-details:hover { opacity: 0.9; } .summary-item-card { background: hsl(var(--muted) / 0.3); border: 1px solid hsl(var(--border)); border-radius: 0.5rem; padding: 1rem; margin-bottom: 0.75rem; } .summary-item-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; } .summary-item-name { font-weight: 500; color: hsl(var(--foreground)); display: flex; align-items: center; gap: 0.5rem; } .summary-item-title { font-weight: 600; font-size: 0.95rem; color: hsl(var(--foreground)); margin: 0; } .summary-item-preview { font-size: 0.8rem; color: hsl(var(--muted-foreground)); margin-top: 0.5rem; line-height: 1.5; } .summary-preview-text { margin: 0; padding: 0.75rem; background: hsl(var(--muted) / 0.5); border-radius: 0.25rem; font-size: 0.75rem; line-height: 1.4; white-space: pre-wrap; word-break: break-word; max-height: 80px; overflow: hidden; } .impl-plan-card { background: hsl(var(--muted) / 0.3); border: 1px solid hsl(var(--border)); border-radius: 0.5rem; padding: 1rem; } .impl-plan-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.75rem; } .impl-plan-title { font-weight: 600; color: hsl(var(--foreground)); display: flex; align-items: center; gap: 0.5rem; } .impl-plan-preview { font-size: 0.8rem; color: hsl(var(--muted-foreground)); line-height: 1.5; } .impl-plan-preview-text { margin: 0; padding: 0.75rem; background: hsl(var(--muted) / 0.5); border-radius: 0.25rem; font-size: 0.75rem; line-height: 1.4; white-space: pre-wrap; word-break: break-word; max-height: 100px; overflow: hidden; } /* =================================== Fix Plan Enhanced Styles =================================== */ .plan-root-cause-text, .plan-strategy-text, .plan-requirements-text { font-size: 0.875rem; line-height: 1.6; color: hsl(var(--foreground)); background: hsl(var(--muted) / 0.3); padding: 0.75rem; border-radius: 0.375rem; border-left: 3px solid hsl(var(--primary)); } .severity-badge, .risk-badge { display: inline-block; padding: 0.125rem 0.5rem; border-radius: 0.25rem; font-size: 0.75rem; font-weight: 500; text-transform: uppercase; } .severity-badge.critical, .risk-badge.high { background: hsl(0 70% 50% / 0.15); color: hsl(0 70% 45%); } .severity-badge.high, .risk-badge.medium { background: hsl(30 90% 50% / 0.15); color: hsl(30 90% 40%); } .severity-badge.medium { background: hsl(45 90% 50% / 0.15); color: hsl(45 80% 35%); } .severity-badge.low, .risk-badge.low { background: hsl(142 70% 50% / 0.15); color: hsl(142 70% 35%); } .fix-tasks-summary { display: flex; flex-direction: column; gap: 0.5rem; } .fix-task-summary-item { background: hsl(var(--card)); border: 1px solid hsl(var(--border)); border-radius: 0.5rem; overflow: hidden; } .fix-task-summary-item .collapsible-header { padding: 0.75rem 1rem; } .task-num { font-weight: 600; color: hsl(var(--primary)); font-size: 0.85rem; } .task-title-brief { font-size: 0.875rem; color: hsl(var(--foreground)); flex: 1; } .task-scope-badge { padding: 0.125rem 0.5rem; background: hsl(var(--muted)); border-radius: 0.25rem; font-size: 0.7rem; color: hsl(var(--muted-foreground)); } .task-detail-section { margin-bottom: 1rem; } .task-detail-section:last-child { margin-bottom: 0; } .task-detail-section strong { display: block; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.025em; color: hsl(var(--muted-foreground)); margin-bottom: 0.5rem; } .mod-points-list, .verify-list { margin: 0; padding-left: 1rem; font-size: 0.8rem; } .mod-points-list li, .verify-list li { margin-bottom: 0.375rem; line-height: 1.5; } .mod-points-list code { font-size: 0.75rem; padding: 0.125rem 0.375rem; background: hsl(var(--muted)); border-radius: 0.25rem; color: hsl(var(--primary)); } .func-name { color: hsl(var(--muted-foreground)); font-size: 0.75rem; } .change-type { color: hsl(var(--muted-foreground)); font-size: 0.7rem; font-style: italic; } /* =================================== Diagnoses Tab Styles =================================== */ .diagnoses-tab-content { display: flex; flex-direction: column; gap: 1.5rem; } .diagnoses-section-title { font-size: 1rem; font-weight: 600; color: hsl(var(--foreground)); margin-bottom: 0.75rem; display: flex; align-items: center; gap: 0.5rem; } .diagnoses-manifest-section { background: hsl(var(--muted) / 0.3); border: 1px solid hsl(var(--border)); border-radius: 0.5rem; padding: 1rem; } .manifest-meta-grid { display: flex; flex-wrap: wrap; gap: 1rem; } .diagnoses-grid { display: flex; flex-direction: column; gap: 0.75rem; } .diagnosis-card { background: hsl(var(--card)); border: 1px solid hsl(var(--border)); border-radius: 0.5rem; overflow: hidden; } .diagnosis-header { background: hsl(var(--muted) / 0.3); } .diagnosis-id { font-weight: 600; color: hsl(var(--foreground)); flex: 1; display: flex; align-items: center; gap: 0.5rem; } .diag-section { margin-bottom: 1rem; padding-bottom: 1rem; border-bottom: 1px solid hsl(var(--border) / 0.5); } .diag-section:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: none; } .diag-section strong { display: block; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.025em; color: hsl(var(--muted-foreground)); margin-bottom: 0.5rem; } .diag-section p { margin: 0; font-size: 0.875rem; line-height: 1.6; color: hsl(var(--foreground)); } .issues-list { margin: 0; padding-left: 1rem; font-size: 0.85rem; } .issue-item { margin-bottom: 0.5rem; padding: 0.5rem; background: hsl(var(--muted) / 0.3); border-radius: 0.25rem; } .issue-title { font-weight: 500; color: hsl(var(--foreground)); } .issue-location { font-size: 0.75rem; margin-top: 0.25rem; } .issue-location code { padding: 0.125rem 0.375rem; background: hsl(var(--muted)); border-radius: 0.25rem; color: hsl(var(--primary)); } .contracts-list { display: flex; flex-direction: column; gap: 0.5rem; } .contract-item { padding: 0.75rem; background: hsl(var(--muted) / 0.3); border: 1px solid hsl(var(--border)); border-radius: 0.375rem; } .contract-header { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.25rem; } .contract-endpoint { font-weight: 500; color: hsl(var(--foreground)); } .contract-method { padding: 0.125rem 0.375rem; background: hsl(var(--primary) / 0.15); color: hsl(var(--primary)); border-radius: 0.25rem; font-size: 0.7rem; font-weight: 600; } .contract-desc { font-size: 0.8rem; color: hsl(var(--muted-foreground)); } .contract-issues { font-size: 0.75rem; color: hsl(0 70% 50%); margin-top: 0.25rem; } .dataflow-details { display: flex; flex-direction: column; gap: 0.5rem; } .df-item { font-size: 0.85rem; } .df-label { font-weight: 500; color: hsl(var(--muted-foreground)); } .df-transforms { margin: 0.25rem 0 0 1rem; padding-left: 0; } .recommendations-list { margin: 0; padding-left: 1.25rem; font-size: 0.85rem; } .recommendations-list li { margin-bottom: 0.375rem; line-height: 1.5; }