#softener-form { border: 1px solid var(--line); border-radius: var(--radius-panel); padding: 1.25rem; margin: 1.5rem 0; }
#softener-form label { display: block; margin: .75rem 0; }
#softener-form input, #softener-form select { display: block; width: 100%; box-sizing: border-box; }
#softener-form fieldset { min-width: 0; margin: 1rem 0; border: 1px solid var(--line); }
#softener-submit { margin-top: 1rem; }
.softener-inputs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.softener-demand { font-size: clamp(1.8rem, 5vw, 3rem); font-weight: 700; line-height: 1.2; }
.softener-required { background: var(--color-surface); border: 1px solid var(--line); border-radius: var(--radius-panel); padding: 1rem; font-weight: 700; }
.softener-table { overflow-x: auto; }
.softener-table table { width: 100%; border-collapse: collapse; }
.softener-table th, .softener-table td { padding: .6rem; border-bottom: 1px solid var(--line); text-align: left; }
#softener-model { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
#softener-model dt { font-weight: 700; }
#softener-model dd { margin: 0; }
#softener-result a { overflow-wrap: anywhere; }
.softener-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1.5rem 0; }
@media (max-width: 48rem) { .softener-inputs { grid-template-columns: 1fr; } }
@media print {
  header, footer, #softener-form, #softener-status, #faq, #agent, #more-tools, .ad-slot, .softener-actions, .skip-link { display: none !important; }
  .softener-table { overflow: visible; }
  .softener-table table { font-size: .8rem; }
  #softener-model-block { break-inside: avoid; }
}
