.closure-main { padding-top: 56px; }
.closure-intro { display: grid; grid-template-columns: 1.4fr 1fr; gap: 56px; align-items: start; margin-bottom: 32px; }
.closure-intro h1 { max-width: 20ch; }
.closure-lead { font-size: 19px; line-height: 1.7; max-width: 54ch; }
.closure-price-overview { background: var(--surface-sunken); border-radius: var(--r-card); padding: 28px; }
.closure-price-overview > div { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; padding: 12px 0; }
.closure-price-overview strong { font-size: 28px; font-weight: 500; white-space: nowrap; }
.closure-price-overview p { font-size: 14px; color: var(--text-2); margin: 16px 0 0; }
.closure-federal-limit { margin-bottom: 32px; }
.closure-workspace { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 28px; background: var(--surface-sunken); padding: 28px; border-radius: var(--r-workspace); align-items: start; }
.closure-sidebar { position: sticky; top: 90px; padding: 12px 0; }
.closure-sidebar p { font-size: 13px; color: var(--text-2); padding: 0 10px; }
.closure-steps { list-style: none; padding: 0; margin: 0 0 32px; }
.closure-steps li { display: flex; align-items: center; gap: 12px; padding: 14px; border-radius: var(--r-control); margin-bottom: 4px; color: var(--text-2); }
.closure-steps li[aria-current="step"] { background: var(--selection); color: var(--selection-ink); }
.closure-steps li span { font: 14px var(--font-mono); }
.closure-form { background: var(--surface-card); padding: clamp(24px, 4vw, 44px); border-radius: var(--r-card); min-width: 0; }
.closure-form h2 { font-size: 28px; margin-bottom: 16px; }
.closure-state-info { margin: 24px 0; padding: 20px; border-radius: var(--r-panel); background: var(--surface-sunken); font-size: 14px; }
.closure-state-info strong { font-size: 18px; font-weight: 500; }
.closure-state-info p { margin: 10px 0; }
.closure-checks { margin: 24px 0; }
.closure-check { display: flex; align-items: flex-start; gap: 12px; padding: 14px 0; cursor: pointer; line-height: 1.65; }
.closure-check + .closure-check { border-top: 1px solid var(--border); }
.closure-check input { flex: 0 0 20px; width: 20px; height: 20px; margin: 4px 0 0; accent-color: var(--brand); }
.closure-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.closure-grid .field { margin: 0; min-width: 0; }
.closure-full { grid-column: 1 / -1; }
.closure-form label { font-size: 15px; }
.closure-form input:not([type="checkbox"]):not([type="radio"]), .closure-form select { width: 100%; min-width: 0; font-size: 16px; }
.closure-form .hint { margin: 6px 0 0; font-size: 13px; color: var(--text-2); }
.closure-form .field-error { display: block; color: var(--danger); font-size: 13px; }
.closure-form .invalid input, .closure-form .invalid select { border-color: var(--danger); }
.closure-form .invalid.closure-check { color: var(--danger); }
#closure-errors { padding: 16px; border-radius: var(--r-input); background: var(--danger-subtle); color: var(--danger); margin-bottom: 24px; }
#closure-errors ul { margin: 8px 0 0; padding-left: 20px; }
.closure-actions { display: flex; justify-content: flex-end; gap: 12px; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--border); }
.closure-actions #closure-back { margin-right: auto; }
.closure-plans { border: 0; padding: 0; margin: 24px 0; min-width: 0; }
.closure-plans label { display: flex; align-items: flex-start; gap: 12px; padding: 22px; border-radius: var(--r-panel); border: 1px solid var(--border); margin-bottom: 14px; cursor: pointer; }
.closure-plans label:has(input:checked) { background: var(--brand-subtle); border-color: var(--brand-line); }
.closure-plans label:has(input:disabled) { opacity: .6; cursor: not-allowed; }
.closure-plans input { width: 18px; height: 18px; flex-shrink: 0; margin-top: 5px; accent-color: var(--brand); }
.closure-plans label > span { flex: 1; }
.closure-plans b { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 8px; font-weight: 500; }
.closure-plans strong { white-space: nowrap; }
.closure-plans label > span > span { display: block; font-size: 14px; color: var(--text-2); }
#closure-federal h3 { margin-top: 32px; }
.closure-tx { padding: 20px 0; border-top: 1px solid var(--border); }
.closure-tx .closure-grid { gap: 14px; }
.closure-tx .btn { margin-top: 10px; }
.closure-preview { margin: 24px 0; background: var(--surface-sunken); padding: 16px; border-radius: var(--r-panel); max-height: 640px; overflow: auto; min-height: 200px; }
.closure-preview canvas { display: block; width: 100%; height: auto; margin-bottom: 14px; box-shadow: var(--shadow-sm); }
.closure-sources { padding: 48px 0; max-width: 850px; }
.closure-sources p, .closure-sources li { font-size: 14px; color: var(--text-2); }
.closure-sources h2 { font-size: 22px; }
.closure-order-main { max-width: 980px; padding-top: 56px; padding-bottom: 64px; }
.closure-order-main .panel { padding: 32px; }
.closure-downloads { display: grid; gap: 12px; margin: 24px 0; }
.closure-downloads a { justify-content: space-between; }
.closure-review-dl { display: grid; grid-template-columns: minmax(100px, .7fr) minmax(0, 1fr); gap: 10px 24px; margin: 24px 0; }
.closure-review-dl dt { color: var(--text-2); }
.closure-review-dl dd { margin: 0; overflow-wrap: anywhere; }
.closure-review-tx { width: 100%; border-collapse: collapse; margin: 24px 0; font-size: 14px; }
.closure-review-tx td { padding: 10px 4px; border-bottom: 1px solid var(--border); overflow-wrap: anywhere; }
.closure-review-tx td:last-child { text-align: right; white-space: nowrap; }
.closure-page [hidden] { display: none !important; }
@media (max-width: 900px) {
  .closure-intro { gap: 24px; grid-template-columns: 1fr; }
  .closure-intro h1 { max-width: 25ch; }
  .closure-workspace { grid-template-columns: 1fr; padding: 18px; gap: 12px; border-radius: 32px; }
  .closure-sidebar { position: static; padding: 0; }
  .closure-steps { display: flex; overflow: auto; margin-bottom: 12px; }
  .closure-steps li { flex: 0 0 auto; font-size: 13px; padding: 12px; gap: 8px; }
  .closure-sidebar > p { margin-bottom: 8px; }
  .closure-form { padding: 24px; }
}
@media (max-width: 520px) {
  .closure-main { padding-top: 28px; }
  .closure-intro h1 { font-size: 30px; }
  .closure-lead { font-size: 17px; }
  .closure-workspace { padding: 12px; margin: 0 -8px; border-radius: 28px; }
  .closure-form { padding: 20px 16px; border-radius: 22px; }
  .closure-grid { grid-template-columns: 1fr; }
  .closure-plans label { padding: 16px; }
  .closure-review-dl { grid-template-columns: 1fr; gap: 4px; }
  .closure-review-dl dd { margin-bottom: 12px; }
  .closure-form .closure-actions { position: sticky; bottom: 0; padding: 16px 0 max(16px, env(safe-area-inset-bottom)); background: var(--surface-card); }
  .closure-price-overview { padding: 20px; }
  .closure-order-main .panel { padding: 20px; }
}
