/* Base layout rules that keep a tool usable at 390 px with real data (origin register overflow, 8 Nov 2026).
   COPY first, then add the tool's own look below or in styles.css. */
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; overflow-wrap: anywhere; }
img, svg, canvas, video { max-width: 100%; height: auto; }
input, select, textarea, button { font: inherit; max-width: 100%; }
input, select, textarea { width: 100%; }
label, fieldset, .row > *, .grid > * { min-width: 0; }
fieldset { margin: 0; }
.table-wrap { overflow-x: auto; max-width: 100%; }
table { border-collapse: collapse; }
pre, code { white-space: pre-wrap; }
.hidden { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
@media (max-width: 480px) {
  .row, .grid { display: block; }
  .row > * + *, .grid > * + * { margin-top: 8px; }
}
@media print {
  body > *:not(#printArea) { display: none !important; }
  #printArea { display: block !important; }
}
