.life-lesson .lesson-progress { grid-template-columns: repeat(3, 1fr); }
.life-lesson .lesson-step-content > .lesson-intro { margin-bottom: 25px; }
.life-lesson .lesson-step-content > :last-child { margin-bottom: 0; }
.life-fieldset { min-width: 0; margin: 24px 0; padding: 0; border: 0; }
.life-fieldset legend { margin-bottom: 11px; font-size: 13px; font-weight: 550; line-height: 1.6; }
.life-options { display: flex; flex-wrap: wrap; gap: 8px; }
.life-options > button { flex: 1 1 100px; min-height: 46px; padding: 12px 15px; border: 1px solid #d4d0c6; border-radius: 8px; color: #4f514a; font-size: 12px; line-height: 1.5; text-align: center; }
.life-options > button:hover { border-color: #aaa99f; background: #f8f5ef; }
.life-options > button[aria-pressed=true] { color: #254ba9; border-color: #315acc; background: #eef2fc; box-shadow: inset 0 0 0 1px #315acc; }
.life-options > button > span { margin-left: 5px; }
.life-lesson button:focus-visible, .life-lesson input:focus-visible, .life-lesson textarea:focus-visible, .life-assumptions summary:focus-visible { outline: 3px solid #315acc; outline-offset: 3px; }
.life-note { margin: 24px 0; padding: 19px 21px; border-left: 2px solid #315acc; border-radius: 0 8px 8px 0; background: #f3f5fa; }
.life-note > strong { display: block; color: #303743; font-size: 13px; font-weight: 550; line-height: 1.6; }
.life-note > p { margin-top: 7px; color: #5a606c; font-size: 12px; line-height: 1.8; }
.life-note > p > strong { color: #303743; font-weight: 550; }
.life-teaching-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 25px 0; }
.life-teaching-grid > div { padding: 23px; border: 1px solid #ddd8ce; border-radius: 10px; background: #f8f5ed; }
.life-teaching-grid > div:nth-child(2) { background: #f0f3ee; }
.life-teaching-grid span, .life-label { display: block; color: #68685f; font-size: 9px; font-weight: 600; letter-spacing: .06em; line-height: 1.7; }
.life-teaching-grid strong { display: block; margin-top: 11px; font-size: 17px; font-weight: 550; line-height: 1.4; letter-spacing: -.025em; }
.life-teaching-grid p { margin-top: 11px; color: #66675e; font-size: 12px; line-height: 1.75; }
.life-range { margin: 24px 0; }
.life-range > div { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.life-range label { font-size: 13px; font-weight: 550; }
.life-range output { color: #315acc; font-size: 23px; font-weight: 550; font-variant-numeric: tabular-nums; letter-spacing: -.035em; }
.life-range input[type=range] { display: block; width: 100%; min-height: 44px; margin: 3px 0 0; padding: 0; accent-color: #315acc; cursor: pointer; }
.life-range .lesson-quiet-hint { margin-top: 0; }
.life-text-field { margin: 23px 0; }
.life-text-field label { display: block; margin-bottom: 10px; font-size: 13px; font-weight: 550; line-height: 1.6; }
.life-text-field input, .life-text-field textarea { display: block; width: 100%; padding: 13px 15px; border: 1px solid #ccc7bd; border-radius: 8px; background: #fffefb; color: #20201d; font-family: inherit; font-size: 16px; line-height: 1.65; }
.life-text-field textarea { resize: vertical; min-height: 100px; }
.life-text-field textarea::placeholder, .life-text-field input::placeholder { color: #777970; }
.life-reflection { margin-top: 27px; }
.life-town { margin: 25px 0; border: 1px solid #d9dfd2; border-radius: 11px; overflow: hidden; background: #edf1e7; }
.life-town svg { display: block; width: 100%; height: auto; stroke: #596252; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.life-town svg text { fill: #4e594b; stroke: none; font-family: inherit; font-size: 13px; }
.life-town > p { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 15px; padding: 15px 19px; border-top: 1px solid #d8dfd0; color: #394735; font-size: 13px; font-weight: 550; overflow-wrap: anywhere; }
.life-town > p > span { color: #66715d; font-size: 11px; font-weight: 400; }
.life-source-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 25px 0; }
.life-source-cards > div { padding: 20px 17px; border: 1px solid #ddd8ce; border-radius: 10px; background: #f9f5e8; }
.life-source-cards > div:nth-child(2) { background: #eef4f4; }
.life-source-cards > div:nth-child(3) { background: #f3eee8; }
.life-source-cards span { font-size: 12px; font-weight: 550; }
.life-source-cards strong { display: block; margin-top: 17px; font-size: 25px; letter-spacing: -.035em; font-weight: 550; }
.life-source-cards p { margin-top: 9px; color: #66675e; font-size: 11px; line-height: 1.7; }
.life-source-cards small { display: block; margin-top: 15px; padding-top: 12px; border-top: 1px solid #dcd6c8; color: #66675e; font-size: 10px; line-height: 1.7; }
.life-source-breakdown { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; margin: 21px 0; }
.life-source-breakdown > span { padding: 13px; border: 1px solid #ddd8ce; border-radius: 7px; color: #696860; font-size: 10px; }
.life-source-breakdown strong { display: block; margin-top: 7px; color: #20201d; font-size: 13px; font-weight: 550; font-variant-numeric: tabular-nums; }
.life-dashboard { margin: 25px 0; padding: 25px; border: 1px solid #d9dee7; border-radius: 10px; background: #f6f8fb; }
.life-condition { margin-bottom: 20px; color: #606776; font-size: 11px; line-height: 1.6; }
.life-meter-row { display: grid; grid-template-columns: 1fr auto; gap: 9px; margin: 0 0 18px; font-size: 12px; }
.life-meter-row > span { color: #606776; }
.life-meter-row > strong { font-size: 13px; font-weight: 550; font-variant-numeric: tabular-nums; }
.life-meter-row > i { display: block; grid-column: 1 / -1; height: 9px; border-radius: 5px; background: #e4e8f0; overflow: hidden; }
.life-meter-row > i::before { display: block; width: var(--life-fill); height: 100%; border-radius: 5px; content: ''; background: #4267cc; }
.life-meter-row > .life-demand::before { background: #a5a391; }
.life-balance { display: grid; gap: 7px; padding: 18px 0; border-top: 1px solid #d9dee7; }
.life-balance > strong { color: #315acc; font-size: 22px; font-weight: 550; letter-spacing: -.03em; }
.life-balance.is-short > strong { color: #9d513c; }
.life-balance > span { color: #666b75; font-size: 11px; line-height: 1.7; }
.life-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; margin: 0; padding-top: 19px; border-top: 1px solid #d9dee7; }
.life-metrics dt { color: #666b75; font-size: 10px; line-height: 1.6; }
.life-metrics dd { margin: 7px 0; font-size: 19px; font-weight: 550; font-variant-numeric: tabular-nums; letter-spacing: -.03em; }
.life-metrics small { color: #666b75; font-size: 10px; line-height: 1.5; }
.life-assumptions { margin-top: 20px; color: #696860; font-size: 11px; line-height: 1.75; }
.life-assumptions summary { min-height: 44px; padding-block: 12px; color: #575e54; cursor: pointer; font-weight: 500; }
.life-assumptions p { margin: 6px 0 12px; }
.life-table-wrap { margin: 25px 0; padding: 0 18px 7px; border: 1px solid #ddd8ce; border-radius: 10px; background: #f8f6ef; }
.life-table { width: 100%; border-collapse: collapse; text-align: left; font-size: 12px; font-variant-numeric: tabular-nums; }
.life-table caption { padding: 19px 0 15px; color: #383b34; text-align: left; font-size: 14px; font-weight: 550; line-height: 1.6; }
.life-table th, .life-table td { padding: 12px 8px; border-top: 1px solid #e0dcd2; line-height: 1.6; }
.life-table th:first-child { padding-left: 0; }
.life-table th { font-weight: 500; }
.life-table thead th { color: #696860; font-size: 10px; }
.life-table td { color: #53584e; }
.life-final-plan { margin: 25px 0; padding: 25px; border: 1px solid #d8ddce; border-radius: 10px; background: #f0f3e9; }
.life-final-plan h3 { margin: 12px 0 22px; font-size: 26px; font-weight: 550; letter-spacing: -.045em; overflow-wrap: anywhere; }
.life-final-plan dl { margin: 0; }
.life-final-plan dl > div { display: grid; grid-template-columns: 1fr 1.5fr; gap: 16px; padding: 12px 0; border-top: 1px solid #d8ddce; font-size: 12px; line-height: 1.7; }
.life-final-plan dt { color: #63705a; }
.life-final-plan dd { margin: 0; text-align: right; }
.life-final-plan > p { margin-top: 16px; font-size: 13px; line-height: 1.75; }
.life-checklist { margin: 25px 0; padding: 7px 23px; border: 1px solid #ddd8ce; border-radius: 10px; background: #f8f5ee; }
.life-checklist > p { padding: 15px 0; color: #65675f; font-size: 13px; line-height: 1.8; }
.life-checklist > p + p { border-top: 1px solid #e0dcd1; }
.life-checklist strong { color: #30332c; font-weight: 550; }
.life-message-parts { display: grid; gap: 12px; margin: 25px 0; }
.life-message-parts > div { display: grid; grid-template-columns: 24px 1fr; gap: 5px 13px; padding: 20px; border: 1px solid #ddd8ce; border-radius: 9px; background: #f8f5ee; }
.life-message-parts > div > span { grid-row: 1 / 4; color: #7d8176; font-size: 11px; font-variant-numeric: tabular-nums; }
.life-message-parts strong { font-size: 13px; font-weight: 550; }
.life-message-parts p { margin-top: 5px; font-size: 16px; line-height: 1.65; }
.life-message-parts small { color: #696860; font-size: 11px; line-height: 1.7; }
.life-example { margin: 24px 0; padding: 23px; border: 1px solid #d7dde3; border-radius: 10px; background: #f1f5f6; }
.life-example > p { margin: 13px 0; color: #5c6669; font-size: 13px; line-height: 1.8; }
.life-example > .life-quote { color: #263a40; font-size: 20px; line-height: 1.5; letter-spacing: -.025em; }
.life-example > small { display: block; margin-top: 9px; color: #667175; font-size: 10px; line-height: 1.7; }
.life-small-button { display: inline-flex; align-items: center; justify-content: flex-start; gap: 8px; min-height: 44px; padding: 9px 0; color: #315acc; font-size: 12px; font-weight: 550; line-height: 1.6; text-align: left; }
.life-small-button svg { width: 16px; height: 16px; flex-shrink: 0; }
.life-small-button[aria-pressed] { padding: 10px 14px; border: 1px solid #d3d8e7; border-radius: 8px; }
.life-small-button[aria-pressed=true] { background: #eef2fb; border-color: #315acc; }
.life-written-message { margin: 24px 0; padding: 25px; border: 1px solid #dbd5e3; border-radius: 11px; background: #f6f2f8; }
.life-written-message > .life-label { color: #776781; }
.life-written-message p { margin-top: 17px; color: #3e3447; font-size: 16px; line-height: 1.8; overflow-wrap: anywhere; white-space: pre-wrap; }
.life-written-message p > small { display: block; margin-bottom: 4px; color: #7b6f84; font-size: 10px; white-space: normal; }
.life-written-message p > span { display: block; }
.life-conversation { display: grid; gap: 14px; margin: 25px 0; }
.life-conversation > div { padding: 22px; border: 1px solid #ded8e6; border-radius: 10px; background: #f7f3f8; }
.life-conversation > div:last-child { background: #f0f4f3; border-color: #d5dedb; }
.life-conversation span { color: #776781; font-size: 10px; font-weight: 550; }
.life-conversation p { margin: 12px 0; font-size: 18px; line-height: 1.6; letter-spacing: -.02em; }
.life-conversation small { color: #646963; font-size: 12px; line-height: 1.8; }
.life-preserve { overflow-wrap: anywhere; white-space: pre-wrap; }
.life-composer-check { margin: 24px 0; padding: 19px 21px; border: 1px solid #dedbd2; border-radius: 8px; }
.life-composer-check > div { display: flex; flex-wrap: wrap; gap: 11px 18px; margin-top: 14px; }
.life-composer-check > div > span { display: inline-flex; align-items: center; gap: 6px; color: #555f50; font-size: 11px; }
.life-composer-check svg, .life-composer-check i { width: 15px; height: 15px; color: #315acc; }
.life-composer-check i { border: 1px solid #cccac2; border-radius: 50%; }
.life-composer-check p { margin-top: 14px; color: #696860; font-size: 11px; line-height: 1.7; }
@media (max-width: 680px) {
  .life-teaching-grid { grid-template-columns: 1fr; gap: 10px; }
  .life-teaching-grid > div { padding: 20px; }
  .life-source-cards { grid-template-columns: 1fr; gap: 10px; }
  .life-source-cards > div { display: grid; grid-template-columns: 1fr auto; gap: 5px 18px; padding: 18px; }
  .life-source-cards strong { grid-column: 2; grid-row: 1 / 3; align-self: center; margin: 0; font-size: 24px; }
  .life-source-cards p { margin-top: 0; }
  .life-source-cards small { grid-column: 1 / -1; margin-top: 6px; }
  .life-source-breakdown { gap: 6px; }
  .life-source-breakdown > span { padding: 11px 9px; }
  .life-source-breakdown strong { font-size: 11px; }
  .life-dashboard, .life-final-plan, .life-written-message, .life-example { padding: 20px; }
  .life-note { padding: 17px 18px; }
  .life-metrics { gap: 11px; }
  .life-metrics dd { font-size: 18px; }
  .life-metrics dt, .life-metrics small { font-size: 9px; }
  .life-options { gap: 7px; }
  .life-options > button { padding: 11px 10px; font-size: 11px; }
  .life-table-wrap { padding: 0 13px 5px; }
  .life-table { font-size: 10px; }
  .life-table th, .life-table td { padding: 10px 6px; }
  .life-table caption { font-size: 13px; }
  .life-final-plan dl > div { grid-template-columns: 1fr 1.4fr; gap: 12px; font-size: 11px; }
  .life-message-parts > div { padding: 17px; grid-template-columns: 19px 1fr; gap: 5px 10px; }
  .life-message-parts p, .life-written-message p { font-size: 15px; }
  .life-example > .life-quote { font-size: 18px; }
  .life-conversation > div { padding: 19px; }
  .life-conversation p { font-size: 17px; }
  .life-checklist { padding-inline: 18px; }
}
