/* Tool-only layouts inherit the site's brand typography and palette. */
.tool-app { --tool-border: var(--border, #d9dde0); --tool-soft: var(--cream, #f1f3f5); }
.tool-app *, .tool-app *::before, .tool-app *::after { box-sizing: border-box; }
.tool-app [hidden] { display: none !important; }
.tool-app form { display: grid; gap: 1.5rem; }
.tool-app fieldset { min-width: 0; border: 0; padding: 0; margin: 0; }
.tool-app legend { font-size: var(--text-lg, 1.2rem); font-weight: 700; margin-bottom: 1.25rem; }
.tool-app .form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem; }
.tool-app .field { display: grid; gap: .5rem; min-width: 0; font-size: var(--text-sm, .95rem); font-weight: 600; }
.tool-app input:not([type=checkbox]):not([type=file]), .tool-app select, .tool-app textarea { width:100%; min-width:0; border:1px solid var(--tool-border); border-radius: .25rem; padding:.875rem 1rem; background:#fff; color:#202427; font: inherit; font-weight:400; min-height:48px; }
.tool-app textarea { resize: vertical; line-height: 1.6; }
.tool-app .tool-wide { grid-column:1/-1; }
.tool-app .tool-note { font-size:var(--text-sm,.95rem); line-height:1.65; margin:0 0 1.5rem; max-width:80ch; }
.tool-app .tool-actions, .tool-app .tool-faq-buttons { display:flex; gap:.75rem; flex-wrap:wrap; align-items:center; margin:1rem 0; }
.tool-app .btn { min-height:48px; cursor:pointer; max-width:100%; white-space:normal; }
.tool-app form > .btn { justify-self:start; }
.tool-app .tool-output:not(:empty) { border-top:1px solid var(--tool-border); padding-top:2rem; margin-top:.5rem; }
.tool-app .tool-output h3 { font-size:var(--text-xl,1.75rem); margin:.5rem 0 1rem; }
.tool-app .tool-output h4 { font-size:var(--text-base,1rem); margin:1.5rem 0 .75rem; }
.tool-app .tool-output p { line-height:1.65; }
.tool-app .tool-output .tool-note { margin-top:1.25rem; }
.tool-app .tool-breakdown { margin:1rem 0; }
.tool-app .tool-breakdown > div { display:flex; justify-content:space-between; gap:1.5rem; padding:.75rem 0; border-bottom:1px solid var(--tool-border); }
.tool-app .tool-breakdown dt { flex:1; }
.tool-app .tool-breakdown dd { margin:0; font-weight:700; font-variant-numeric:tabular-nums; text-align:right; }
.tool-app .tool-total { background:var(--tool-soft); padding: .5rem 1.25rem; }
.tool-app .tool-progress { display:flex; gap:2rem; align-items:center; justify-content:space-between; font-size:var(--text-sm,.95rem); font-weight:700; }
.tool-app progress { width:40%; accent-color:var(--green,#202427); height:.5rem; border:0; }
.tool-app .tool-compare-inputs { display:grid; gap:2rem; }
.tool-app .tool-compare-inputs fieldset { padding:1.5rem; border:1px solid var(--tool-border); }
.tool-app .tool-compare-inputs legend { padding:0 .5rem; margin-bottom:.5rem; }
.tool-app .tool-table-wrap { overflow-x:auto; margin:1.5rem 0; }
.tool-app .tool-table { width:100%; border-collapse:collapse; font-size:var(--text-sm,.95rem); min-width:34rem; }
.tool-app .tool-table caption { text-align:left; padding-bottom:1rem; }
.tool-app .tool-table th,.tool-app .tool-table td { text-align:left; padding:1rem; border-bottom:1px solid var(--tool-border); vertical-align:top; min-width:8rem; max-width:20rem; overflow-wrap:anywhere; }
.tool-app .tool-table thead th { background:var(--tool-soft); }
.tool-app .tool-table tbody th { font-weight:500; }
.tool-app .tool-community-results { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; margin:1.5rem 0; }
.tool-app .tool-community { border:1px solid var(--tool-border); padding:1.5rem; min-width:0; }
.tool-app .tool-community .tool-actions { align-items:flex-start; flex-direction:column; }
.tool-app .tool-community a,.tool-app .tool-saved a { text-decoration:underline; text-underline-offset:.2em; }
.tool-app .tool-check, .tool-app .tool-checklist label { display:flex; align-items:flex-start; gap:.75rem; line-height:1.6; cursor:pointer; }
.tool-app input[type=checkbox] { flex-shrink:0; width:20px; height:20px; accent-color:var(--green,#202427); margin-top:.2rem; }
.tool-app .tool-checklist { list-style:none; padding:0; display:grid; gap:1rem; margin:1.5rem 0; }
.tool-app .tool-checklist label { min-height:44px; }
.tool-app .tool-checklist input:checked + span { text-decoration:line-through; opacity:.7; }
.tool-app .tool-draft { white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; font-size:var(--text-sm,.95rem); line-height:1.7; background:var(--tool-soft); padding:1.5rem; max-width:100%; }
.tool-app .tool-preserve { white-space:pre-wrap; overflow-wrap:anywhere; }
.tool-app .tool-file { position:relative; overflow:hidden; }
.tool-app .tool-file input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.tool-app .tool-file:focus-within { outline:2px solid currentColor; outline-offset:4px; }
.tool-app .tool-saved-list { display:grid; gap:1rem; margin-top:1rem; }
.tool-app .tool-saved { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; border:1px solid var(--tool-border); padding:1.5rem; }
.tool-app .tool-saved > div { min-width:0; }
.tool-app .tool-saved h3 { margin:.75rem 0; }
.tool-app button:disabled { opacity:.6; cursor:wait; }
.tool-app :focus-visible { outline:2px solid var(--green,#202427); outline-offset:3px; }
.tool-app [role=alert] { color:#8b2424; }
@media(max-width:600px) {
  .tool-app .form-grid,.tool-app .tool-community-results { grid-template-columns:1fr; }
  .tool-app .tool-compare-inputs fieldset,.tool-app .tool-community { padding:1rem; }
  .tool-app .tool-breakdown > div { gap:.75rem; }
  .tool-app .tool-saved { flex-direction:column; }
  .tool-app .tool-progress { gap:1rem; }
  .tool-app .tool-draft { padding:1rem; }
}
