.life-worksheet {
  color: var(--ink);
  margin: 1.65rem 0 3rem;
  scroll-margin-top: 1rem;
}
.life-worksheet [hidden] { display: none !important; }
.lf-layout { display: grid; grid-template-columns: minmax(0,1.18fr) minmax(0,1fr); align-items: start; gap: clamp(1rem,2.8vw,2rem); }
.lf-form, .lf-result, .lf-timeline { padding: clamp(1rem,2.7vw,1.8rem); min-width: 0; background: var(--surface); border: 1px solid var(--rule); border-radius: var(--panel-radius); }
.life-worksheet h2 { margin: 0; font-size: var(--section-title); line-height: 1.2; letter-spacing: -.025em; }
.lf-form header p, .lf-note, .lf-timeline > p { color: var(--secondary); line-height: 1.52; font-size: .94rem; margin: .45rem 0 .75rem; }
.lf-step { min-width: 0; padding: 0; margin: 1.2rem 0; border: 0; }
.lf-step legend { float: left; width: 100%; font-size: 1.04rem; font-weight: 700; padding: .8rem 0 .35rem; margin: 0; border-top: 1px solid var(--rule); }
.lf-step legend + * { clear: both; }
.lf-choices { display: flex; flex-wrap: wrap; gap: .35rem .65rem; margin: .4rem 0 .65rem; }
.lf-choice { display: inline-flex; align-items: center; gap: .45rem; min-height: 2.75rem; border: 1px solid var(--control-border); padding: .38rem .58rem; border-radius: var(--control-radius); color: var(--ink); cursor: pointer; font-size: .88rem; }
.lf-choice:has(input:checked) { background: var(--blue-soft); border-color: var(--blue); color: var(--blue-hover); }
.lf-choice input { width: 1rem; height: 1rem; accent-color: var(--blue); margin: 0; flex: none; }
.lf-form:has(input[name=support_mode][value=annual]:checked) .lf-monthly,
.lf-form:has(input[name=support_mode][value=monthly]:checked) .lf-annual,
.lf-form:has(input[name=work_status][value=exclude]:checked) .lf-work-value { display: none; }
.lf-pair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 1rem; }
.lf-month-row { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(0,1fr); gap: .7rem; align-items: start; margin-bottom: .45rem; padding: .15rem .7rem; background: var(--canvas); border-radius: var(--control-radius); }
.lf-field { min-width: 0; margin: .55rem 0; }
.lf-field label { display: block; font-size: .88rem; line-height: 1.4; font-weight: 650; margin-bottom: .33rem; }
.lf-control { position: relative; }
.lf-control input { display: block; width: 100%; min-width: 0; min-height: var(--control-height); border: 1px solid var(--control-border); background: var(--surface); color: var(--ink); border-radius: var(--control-radius); padding: .48rem .66rem; font: inherit; font-size: 1rem; font-variant-numeric: tabular-nums; }
.lf-control[data-currency]::before { content: "$"; position: absolute; top: 50%; left: .7rem; transform: translateY(-50%); color: var(--secondary); pointer-events: none; }
.lf-control[data-currency] input { padding-left: 1.67rem; }
.lf-control input[aria-invalid=true] { border-color: var(--error); }
.lf-help, .lf-error, .lf-method { margin: .28rem 0; font-size: .875rem; line-height: 1.45; }
.lf-help, .lf-method { color: var(--secondary); }
.lf-error { display: block; color: var(--error); }
.lf-error:empty, .lf-help:empty { display: none; }
.lf-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .6rem; }
.lf-primary, .lf-secondary { padding: .55rem .9rem; border-radius: var(--control-radius); min-height: var(--control-height); font: inherit; font-size: .91rem; font-weight: 650; }
.lf-primary { background: var(--blue); border: 1px solid var(--blue); color: var(--night-on-action, white); }
.lf-primary:hover { background: var(--blue-hover); }
.lf-secondary { background: var(--surface); color: var(--blue); border: 1px solid var(--control-border); }
.life-worksheet :is(input,button,summary,a):focus-visible, .lf-result:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.lf-result { border-top: .28rem solid var(--blue); scroll-margin-top: 1rem; }
.lf-context { color: var(--secondary); font-size: .8rem; font-weight: 650; margin: 0 0 .25rem; }
.lf-edit { display: inline-block; min-height: 2rem; padding: .34rem 0 .2rem; font-size: .88rem; font-weight: 600; color: var(--blue); }
.lf-answer { padding: 1rem 1.1rem; background: var(--blue-soft); border: 1px solid var(--blue-mid); border-radius: .45rem; margin: 1rem 0 1.25rem; }
.lf-answer span { color: var(--secondary); font-size: .86rem; font-weight: 650; }
.lf-answer strong { display: block; color: var(--blue-hover); font-size: clamp(1.9rem,4vw,3.1rem); line-height: 1.12; font-variant-numeric: tabular-nums; letter-spacing: -.05em; margin: .27rem 0; overflow-wrap: anywhere; }
.lf-answer p, .lf-horizon p { color: var(--secondary); font-size: .91rem; margin: .4rem 0; line-height: 1.5; }
.lf-result h3 { font-size: 1rem; margin: .8rem 0 .35rem; }
.lf-lines { margin: 0 0 .75rem; }
.lf-lines > div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .15rem .65rem; padding: .42rem 0; border-bottom: 1px solid var(--rule); }
.lf-lines dt { font-size: .87rem; color: var(--secondary); }
.lf-lines dd { margin: 0; text-align: right; font-weight: 650; font-size: .91rem; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.lf-lines .lf-track { grid-column: 1/-1; }
.lf-track meter { display: block; width: 100%; height: .29rem; border: 0; border-radius: .15rem; overflow: hidden; appearance: none; background: var(--rule); }
.lf-track meter::-webkit-meter-bar { height: .29rem; border: 0; background: var(--rule); }
.lf-track meter::-webkit-meter-optimum-value { background: var(--blue); }
.lf-track meter::-moz-meter-bar { background: var(--blue); }
.lf-track.lf-offset meter::-webkit-meter-optimum-value { background: var(--chart-secondary); }
.lf-track.lf-offset meter::-moz-meter-bar { background: var(--chart-secondary); }
.lf-horizon { margin-top: 1rem; border-left: 3px solid var(--blue-mid); padding: .35rem .8rem; background: var(--canvas); }
.lf-horizon h3 { margin-top: .2rem; }
.lf-method { margin: .9rem 0; }
.lf-status { padding: .6rem .75rem; border-left: 3px solid var(--attention-rule); color: var(--attention); background: var(--attention-soft); font-size: .9rem; }
.lf-timeline { margin-top: 1.3rem; scroll-margin-top: 1rem; }
.lf-periods { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,12rem),1fr)); gap: .7rem; list-style: none; padding: 0; margin: .8rem 0; }
.lf-periods li { min-width: 0; padding: .65rem .8rem; background: var(--canvas); border-top: 2px solid var(--chart-secondary); }
.lf-periods li > div { display: flex; justify-content: space-between; align-items: baseline; gap: .2rem .65rem; flex-wrap: wrap; }
.lf-periods strong { font-size: .85rem; }
.lf-periods span { font-size: 1rem; font-variant-numeric: tabular-nums; }
.lf-periods small { display: block; color: var(--secondary); font-size: .81rem; }
.lf-periods meter { width: 100%; height: .55rem; accent-color: var(--blue); display: block; margin: .3rem 0; }
.lf-year-table summary { padding: .55rem 0; color: var(--blue); cursor: pointer; font-weight: 650; }
.lf-year-table table { width: 100%; border-collapse: collapse; font-size: .87rem; font-variant-numeric: tabular-nums; }
.lf-year-table caption { text-align: left; font-weight: 650; padding: .3rem 0; }
.lf-year-table th, .lf-year-table td { text-align: right; padding: .38rem .45rem; border-bottom: 1px solid var(--rule); overflow-wrap: anywhere; }
.lf-year-table th:first-child { text-align: left; }
.lf-year-table thead { background: var(--canvas); }
@media (max-width: 800px) {
  .lf-layout { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 520px) {
  .lf-pair, .lf-month-row { grid-template-columns: minmax(0,1fr); gap: 0; }
  .lf-year-table th, .lf-year-table td { padding: .33rem .2rem; }
  .lf-lines > div { grid-template-columns: minmax(0,1fr) minmax(0,50%); }
}
@media print {
  body:has(#life-worksheet) #main > :not(#life-worksheet),
  body:has(#life-worksheet) :is(.site-head,.site-foot,.skip),
  .life-worksheet :is(.lf-form,#life-print,.lf-edit) { display: none !important; }
  .life-worksheet, .lf-layout { display: block; margin: 0; }
  .lf-result, .lf-timeline { background: #fff; border: 0; padding: 0; }
  .lf-result::before { content: "Life insurance needs worksheet"; display: block; font-weight: 700; font-size: 1.3rem; }
  .lf-periods li, .lf-answer, .lf-lines > div { break-inside: avoid; }
}
