.factor-section { margin: 42px 0 18px; }
.factor-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 20px; }
.factor-card { display: flex; align-items: center; gap: 20px; background: var(--panel); border: 1px solid var(--line); border-radius: 16px; padding: 22px; }
.risk-donut { --colour: #b8f34a; width: 112px; aspect-ratio: 1; border-radius: 50%; flex: 0 0 auto; display: grid; place-items: center; background: radial-gradient(circle closest-side, #191f1b 69%, transparent 71%), conic-gradient(var(--colour) calc(var(--fill) * 1%), #344039 0); }
.factor-card.amber .risk-donut { --colour: #ffc44d; }
.factor-card.red .risk-donut { --colour: #ff6258; }
.factor-card.blue .risk-donut { --colour: #72b9e7; }
.factor-card.neutral .risk-donut { --colour: #78847c; }
.risk-donut > div { text-align: center; }
.risk-donut strong, .risk-donut span { display: block; }
.risk-donut strong { font-size: .86rem; }
.risk-donut span { color: var(--muted); font-size: .72rem; margin-top: 3px; }
.factor-copy h3 { margin: 0 0 9px; font-size: 1.1rem; }
.factor-copy p { color: var(--muted); font-size: .76rem; margin: 4px 0; }
.factor-copy p strong { color: var(--text); font-size: .88rem; }
.factor-key { display: flex; align-items: center; justify-content: flex-end; gap: 7px; color: var(--muted); font-size: .7rem; }
.factor-key span { width: 8px; height: 8px; border-radius: 50%; margin-left: 10px; }
.key-blue { background: #72b9e7; }.key-green { background: #b8f34a; }.key-amber { background: #ffc44d; }.key-red { background: #ff6258; }
@media (max-width: 900px) { .factor-grid { grid-template-columns: 1fr; } }
@media (max-width: 800px) { .factor-key { justify-content: flex-start; flex-wrap: wrap; } }
