.worksheet { margin-top: 48px; padding: 32px; border: var(--rule); background: #fff; box-shadow: 8px 8px 0 var(--magenta); }
.worksheet-header { margin: -32px -32px 24px; padding: 24px 32px; border-bottom: var(--rule); background: var(--green); }
.sheet-label { display: block; margin-bottom: 16px; font: 500 16px/1.5 var(--mono); }
.worksheet-header :is(h3, h4) { margin-bottom: 16px; font-size: 32px; letter-spacing: -.04em; }
.worksheet fieldset { min-width: 0; margin: 32px 0 0; padding: 0; border: 0; }
.worksheet legend { width: 100%; margin-bottom: 16px; padding: 12px 0; border-top: var(--rule); font-weight: 700; font-size: 22px; line-height: 1.3; }
.worksheet fieldset > p { margin-bottom: 16px; }
.amount-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 16px; }
.amount-field { min-width: 0; }
.amount-field label { display: block; min-height: 48px; font-size: 16px; line-height: 1.5; font-weight: 500; }
.amount-input { position: relative; }
.amount-input > span { position: absolute; top: 13px; left: 16px; font: 500 20px/1.4 var(--mono); }
.amount-input input { width: 100%; min-width: 0; height: 56px; padding: 12px 12px 12px 40px; border: 2px solid var(--ink); background: var(--paper); font: 500 20px/1.4 var(--mono); }
.amount-input input[aria-invalid="true"] { border: 3px solid #940000; background: #fff0f0; }
.field-error { margin-top: 8px; color: #800000; font-size: 16px; line-height: 1.5; }
.totals { margin-top: 32px; border: var(--rule); background: var(--blue); color: #fff; }
.totals p { padding: 20px; }
.totals p + p { margin: 0; border-top: 1px solid #fff; }
.totals p > span { display: block; font-weight: 500; }
.totals output { display: block; margin-top: 8px; font: 500 clamp(20px, 2.5vw, 28px)/1.4 var(--mono); overflow-wrap: anywhere; }
.total-note { margin-top: 16px; }
.question-check { display: flex; align-items: flex-start; gap: 12px; padding: 12px 0; min-height: 48px; cursor: pointer; font-size: 16px; }
.question-check input { flex: 0 0 44px; width: 44px; height: 44px; margin: 0; accent-color: var(--blue); cursor: pointer; }
.question-check span { min-width: 0; }
.question-output { margin-top: 32px; }
.question-output label { display: block; min-height: 44px; font-size: 16px; font-weight: 700; }
.question-output textarea { display: block; width: 100%; min-height: 192px; padding: 16px; border: 2px solid var(--ink); background: var(--paper); resize: vertical; font: 400 16px/1.6 var(--mono); }
.worksheet-actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 24px; }
.worksheet-actions .button { padding-inline: 16px; }
.copy-status:empty { display: none; }
.copy-status { margin-top: 16px; padding: 12px 16px; border-left: 4px solid var(--ink); background: var(--yellow); }

@media (max-width: 1080px) { .amount-grid { grid-template-columns: 1fr; gap: 16px; } .amount-field label { min-height: 44px; } }
@media (max-width: 700px) {
  .worksheet { padding: 20px; margin-right: 8px; }
  .worksheet-header { margin: -20px -20px 24px; padding: 24px 20px; }
  .worksheet-header :is(h3, h4) { font-size: 30px; }
  .worksheet-actions { display: grid; grid-template-columns: 1fr; }
  .worksheet-actions .button { width: 100%; gap: 12px; }
  .totals p { padding: 16px; }
}
