* { box-sizing: border-box; }
body { margin: 0; font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; line-height: 1.55; color: #1f2933; background: #f7f8fa; }
.wrap { max-width: 880px; margin: 0 auto; padding: 1rem; }
h1 { font-size: 1.7rem; line-height: 1.25; }
h2 { font-size: 1.3rem; margin-top: 2rem; }
section { background: #fff; border: 1px solid #d9dee4; border-radius: 8px; padding: 1rem 1.25rem; margin-bottom: 1rem; }
.notice { background: #fff8e1; border: 1px solid #e6c964; border-radius: 8px; padding: 0.5rem 1rem; margin: 1rem 0; font-size: 0.95rem; }
label { display: block; font-weight: 600; margin: 0.5rem 0 0.25rem; }
textarea { width: 100%; font: 0.9rem/1.4 ui-monospace, Menlo, Consolas, monospace; padding: 0.5rem; border: 1px solid #aeb7c2; border-radius: 6px; }
button { font: inherit; padding: 0.5rem 1rem; border: 0; border-radius: 6px; background: #1d4ed8; color: #fff; cursor: pointer; }
button:disabled { background: #94a3b8; cursor: not-allowed; }
button:focus-visible, a:focus-visible, textarea:focus-visible { outline: 3px solid #f59e0b; outline-offset: 2px; }
a { color: #1d4ed8; }
table { width: 100%; border-collapse: collapse; margin: 0.75rem 0; font-size: 0.9rem; }
th, td { border: 1px solid #c5ccd5; padding: 0.4rem 0.5rem; text-align: left; vertical-align: top; }
th { background: #eef1f5; }
tr.bad td { background: #fdecea; }
tr.good td { background: #eaf6ec; }
.report { background: #fff; padding: 1rem; border: 1px solid #c5ccd5; border-radius: 6px; }
.report .warn { color: #9b1c1c; font-weight: 600; }
.report .small, .meta { font-size: 0.85rem; color: #4b5563; }
footer { font-size: 0.9rem; border-top: 1px solid #c5ccd5; margin-top: 2rem; padding-top: 1rem; }

@media print {
  body { background: #fff; color: #000; }
  .no-print { display: none !important; }
  section { border: 0; padding: 0; margin: 0; }
  .report { border: 0; padding: 0; }
  table { font-size: 10pt; }
  tr { break-inside: avoid; }
}
