.lifecycle-tool { margin-top: 18px; }
.lifecycle-layout { display: grid; grid-template-columns: 1.35fr .9fr; gap: 26px; }
.lifecycle-form { min-width: 0; }
.model-lookup-result { margin-top: 18px; border: 1px solid var(--line); border-left: 4px solid #7b9288; border-radius: 7px; padding: 13px 14px; background: #f9fbfa; }
.model-lookup-result p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.model-lookup-result strong { color: var(--ink); }
.model-lookup-result .model-match-head { display: flex; align-items: start; justify-content: space-between; gap: 14px; margin-bottom: 10px; }
.model-lookup-result .model-match-head p { margin-top: 3px; }
.model-lookup-result .model-source { font-size: 11px; white-space: nowrap; color: var(--green); font-weight: 800; text-decoration: none; }
.model-milestones { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.model-milestone { background: white; border: 1px solid var(--line); border-radius: 6px; padding: 10px; }
.model-milestone small { display: block; color: var(--muted); font-size: 10px; font-weight: 900; margin-bottom: 4px; }
.model-milestone time { color: var(--ink); font-size: 13px; font-weight: 800; }
.model-suggestions { margin: 8px 0 0; padding-left: 18px; color: var(--ink); font-size: 12px; line-height: 1.6; }
.lifecycle-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.vendor-link,
.lifecycle-assess { min-height: 44px; border: 1px solid var(--line); border-radius: 8px; padding: 11px 14px; font: 700 13px/1.2 inherit; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; gap: 8px; cursor: pointer; }
.vendor-link { background: #f7f9f7; color: var(--green); }
.vendor-link.primary { background: var(--green); border-color: var(--green); color: white; }
.vendor-link span { font-size: 16px; }
.lifecycle-assess { background: var(--ink); border-color: var(--ink); color: white; }
.lifecycle-privacy { font-size: 12px; line-height: 1.5; color: var(--muted); margin: 14px 0 0; }
.lifecycle-result { border-left: 1px solid var(--line); padding-left: 26px; min-width: 0; }
.lifecycle-empty { height: 100%; min-height: 260px; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; color: var(--muted); }
.lifecycle-empty span { width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; background: var(--soft); color: var(--green); font-weight: 900; }
.lifecycle-empty.warning span { background: #fff0df; color: #9a520d; }
.lifecycle-empty h3 { color: var(--ink); margin: 15px 0 7px; }
.lifecycle-empty p { max-width: 320px; line-height: 1.5; margin: 0; }
.lifecycle-summary { display: flex; justify-content: space-between; gap: 16px; align-items: start; margin-bottom: 16px; }
.lifecycle-summary small,
.lifecycle-status small { font-weight: 900; color: var(--muted); font-size: 10px; letter-spacing: .08em; }
.lifecycle-summary h3 { font: 27px Georgia, serif; margin: 6px 0; }
.lifecycle-summary p { margin: 0; color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.overall-status { background: var(--soft); color: var(--green); border-radius: 6px; padding: 8px 10px; font-size: 11px; font-weight: 900; white-space: nowrap; }
.overall-status.attention { background: #fff0df; color: #9a520d; }
.lifecycle-statuses { display: grid; gap: 10px; }
.lifecycle-status { border: 1px solid var(--line); border-left: 4px solid #7b9288; border-radius: 7px; padding: 14px; }
.lifecycle-status > div { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.lifecycle-status strong { font-size: 15px; }
.lifecycle-status time { display: block; color: var(--ink); font-weight: 800; margin: 8px 0 0; }
.lifecycle-status p { color: var(--muted); font-size: 12px; line-height: 1.5; margin: 8px 0 0; }
.lifecycle-status.active { border-left-color: #21845f; }
.lifecycle-status.plan { border-left-color: #c59119; }
.lifecycle-status.urgent,
.lifecycle-status.expired { border-left-color: #c7563d; }
.lifecycle-status.unknown { border-left-color: #9aa5a0; }
.lifecycle-caveat { color: var(--muted); font-size: 11px; line-height: 1.5; margin: 14px 0 0; }

@media (max-width: 780px) {
  .lifecycle-layout { grid-template-columns: 1fr; }
  .lifecycle-result { border-left: 0; border-top: 1px solid var(--line); padding: 24px 0 0; }
}

@media (max-width: 480px) {
  .lifecycle-actions { display: grid; }
  .model-milestones { grid-template-columns: 1fr; }
  .model-lookup-result .model-match-head { display: block; }
  .model-lookup-result .model-source { display: inline-block; margin-top: 8px; }
  .lifecycle-summary { display: block; }
  .overall-status { display: inline-block; margin-top: 12px; }
}

@media print {
  .lifecycle-tool { display: none; }
}
