// Variables (spacing/typography) come from _variables.scss via manifest order. // COLOR uses BS5 CSS custom properties so dark mode flips automatically. :root { --fusion-fu-accent: #3b82f6; --fusion-fu-accent-bg: rgba(59, 130, 246, 0.10); --fusion-fu-status-no-action: #6b7280; --fusion-fu-status-no-action-bg: rgba(107, 114, 128, 0.12); --fusion-fu-status-action-due: #f59e0b; --fusion-fu-status-action-due-bg: rgba(245, 158, 11, 0.14); --fusion-fu-status-paused: #6366f1; --fusion-fu-status-paused-bg: rgba(99, 102, 241, 0.14); --fusion-fu-status-blocked: #ef4444; --fusion-fu-status-blocked-bg: rgba(239, 68, 68, 0.14); --fusion-fu-status-with-credit: #8b5cf6; --fusion-fu-status-with-credit-bg:rgba(139, 92, 246, 0.14); --fusion-fu-risk-low: #10b981; --fusion-fu-risk-low-bg: rgba(16, 185, 129, 0.12); --fusion-fu-risk-medium: #f59e0b; --fusion-fu-risk-medium-bg: rgba(245, 158, 11, 0.12); --fusion-fu-risk-high: #ef4444; --fusion-fu-risk-high-bg: rgba(239, 68, 68, 0.12); --fusion-fu-risk-critical: #b91c1c; --fusion-fu-risk-critical-bg:rgba(185, 28, 28, 0.18); --fusion-fu-bucket-current: #10b981; --fusion-fu-bucket-1-30: #fbbf24; --fusion-fu-bucket-31-60: #f59e0b; --fusion-fu-bucket-61-90: #ef4444; --fusion-fu-bucket-91-120: #dc2626; --fusion-fu-bucket-120-plus: #7f1d1d; } .o_fusion_followup { background: var(--bs-body-bg); color: var(--bs-body-color); min-height: 100vh; &_header { background: var(--bs-body-bg); color: var(--bs-emphasis-color); border-bottom: 1px solid var(--bs-border-color); padding: $fu-space-4 $fu-space-6; display: flex; justify-content: space-between; align-items: center; h1 { font-size: $fu-font-size-xl; margin: 0; color: inherit; } .summary { display: flex; gap: $fu-space-6; font-size: $fu-font-size-sm; color: var(--bs-secondary-color); .summary-value { font-weight: 600; color: var(--bs-emphasis-color); margin-left: $fu-space-1; } } } &_card { background: var(--bs-body-bg); color: var(--bs-body-color); border: 1px solid var(--bs-border-color); border-radius: $fu-border-radius-md; padding: $fu-space-4; margin-bottom: $fu-space-3; cursor: pointer; transition: all 200ms ease-in-out; &:hover { border-color: var(--fusion-fu-accent); box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); } &.selected { border-color: var(--fusion-fu-accent); background: var(--fusion-fu-accent-bg); } &_header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: $fu-space-2; .partner-name { font-weight: 600; font-size: $fu-font-size-base; color: var(--bs-emphasis-color); } } .partner-numbers { display: grid; grid-template-columns: 1fr 1fr; gap: $fu-space-2; font-size: $fu-font-size-sm; color: var(--bs-secondary-color); .label { font-weight: 500; margin-right: $fu-space-2; } .value { color: var(--bs-emphasis-color); font-weight: 500; } } } .btn_fu { padding: $fu-space-2 $fu-space-4; border-radius: $fu-border-radius; background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); color: var(--bs-body-color); font-size: $fu-font-size-sm; cursor: pointer; &:hover { background: var(--bs-tertiary-bg); } &.primary { background: var(--fusion-fu-accent); border-color: var(--fusion-fu-accent); color: #ffffff; &:hover { filter: brightness(0.92); } } &.danger { background: var(--fusion-fu-status-blocked); border-color: var(--fusion-fu-status-blocked); color: #ffffff; } } } .fu-status-badge { padding: $fu-space-1 $fu-space-2; border-radius: $fu-border-radius; font-size: $fu-font-size-xs; font-weight: 500; text-transform: uppercase; &[data-status="no_action"] { background: var(--fusion-fu-status-no-action-bg); color: var(--fusion-fu-status-no-action); } &[data-status="action_due"] { background: var(--fusion-fu-status-action-due-bg); color: var(--fusion-fu-status-action-due); } &[data-status="paused"] { background: var(--fusion-fu-status-paused-bg); color: var(--fusion-fu-status-paused); } &[data-status="blocked"] { background: var(--fusion-fu-status-blocked-bg); color: var(--fusion-fu-status-blocked); } &[data-status="with_credit_team"] { background: var(--fusion-fu-status-with-credit-bg); color: var(--fusion-fu-status-with-credit); } } .fu-risk-badge { display: inline-flex; align-items: center; padding: $fu-space-1 $fu-space-2; border-radius: $fu-border-radius; font-weight: 600; font-size: $fu-font-size-xs; &[data-band="low"] { background: var(--fusion-fu-risk-low-bg); color: var(--fusion-fu-risk-low); } &[data-band="medium"] { background: var(--fusion-fu-risk-medium-bg); color: var(--fusion-fu-risk-medium); } &[data-band="high"] { background: var(--fusion-fu-risk-high-bg); color: var(--fusion-fu-risk-high); } &[data-band="critical"] { background: var(--fusion-fu-risk-critical-bg); color: var(--fusion-fu-risk-critical); font-weight: 700; } } .fu-aging-strip { display: flex; gap: 2px; height: 8px; border-radius: $fu-border-radius; overflow: hidden; margin: $fu-space-2 0; .bucket { height: 100%; &[data-name="current"] { background: var(--fusion-fu-bucket-current); } &[data-name="1_30"] { background: var(--fusion-fu-bucket-1-30); } &[data-name="31_60"] { background: var(--fusion-fu-bucket-31-60); } &[data-name="61_90"] { background: var(--fusion-fu-bucket-61-90); } &[data-name="91_120"] { background: var(--fusion-fu-bucket-91-120); } &[data-name="120_plus"] { background: var(--fusion-fu-bucket-120-plus); } } } .fu-ai-text-panel { background: var(--bs-body-bg); color: var(--bs-body-color); border: 1px solid var(--bs-border-color); border-radius: $fu-border-radius-md; padding: $fu-space-4; h5 { margin: 0 0 $fu-space-2; font-size: $fu-font-size-base; color: var(--bs-emphasis-color); } .ai-subject { font-weight: 600; margin-bottom: $fu-space-2; padding: $fu-space-2; background: var(--fusion-fu-accent-bg); color: var(--bs-body-color); border-radius: $fu-border-radius; } .ai-body { white-space: pre-wrap; font-family: monospace; font-size: $fu-font-size-sm; padding: $fu-space-3; background: var(--bs-secondary-bg); color: var(--bs-body-color); border-radius: $fu-border-radius; max-height: 300px; overflow-y: auto; } .key-points { margin-top: $fu-space-3; font-size: $fu-font-size-sm; color: var(--bs-secondary-color); ul { margin: 0; padding-left: $fu-space-4; } } } .fu-history-table { width: 100%; font-size: $fu-font-size-sm; color: var(--bs-body-color); th { background: var(--bs-tertiary-bg); padding: $fu-space-2 $fu-space-3; text-align: left; font-weight: 600; color: var(--bs-secondary-color); } td { padding: $fu-space-2 $fu-space-3; border-bottom: 1px solid var(--bs-border-color); color: var(--bs-body-color); } }