:root { color-scheme: light; font-family: system-ui, sans-serif; color: #19232d; background: #f5f7fa; }
body { margin: 0; }
main { max-width: 100rem; margin: auto; padding: 1.5rem; }
h1 { font-size: 1.65rem; }
h2 { overflow-wrap: anywhere; }
.notice { padding: 1rem; border-left: .3rem solid #465979; background: #e8eef6; }
form { display: flex; gap: 1rem; align-items: end; flex-wrap: wrap; }
label { display: grid; gap: .4rem; }
input, button { font: inherit; padding: .65rem; }
button { background: #203c61; color: #fff; border: 0; border-radius: .25rem; cursor: pointer; }
button:disabled { opacity: .5; cursor: wait; }
:focus-visible { outline: 3px solid #0075c4; outline-offset: 3px; }
.file-result { margin-top: 2rem; padding: 1rem; background: #fff; border: 1px solid #ccd2da; }
.table-wrap { overflow-x: auto; }
table { border-collapse: collapse; width: 100%; font-size: .85rem; }
th, td { border: 1px solid #a8afb8; padding: .5rem; text-align: left; vertical-align: top; overflow-wrap: anywhere; }
th { background: #eef1f5; }
.red > td { background: #fff1f0; }
.yellow > td { background: #fffbe8; }
.badge { display: inline-block; min-width: 1.6em; padding: .1rem .35rem; border-radius: .2rem; font-weight: 700; text-align: center; border: 1px solid; }
.badge.red { background: #c62828; border-color: #c62828; color: #fff; }
.badge.yellow { background: #ffd54f; border-color: #b28704; color: #3d2e00; }
.col-color, .col-group, .col-lot, .col-lift, .col-declaration { width: 1%; white-space: nowrap; }
.col-color { text-align: center; }
.col-declaration { font-weight: 700; }
th { white-space: nowrap; }
.col-name { min-width: 8rem; }
.note { font-size: .75rem; color: #5a6470; }
.targets { list-style: none; margin: 0; padding: 0; display: grid; gap: .25rem; }
.targets .quiet { color: #6b7480; }
.summary { font-size: .9rem; }
.conditions { margin: -.25rem 0 1rem; padding: .25rem 1rem .25rem 1.3rem; border-left: .3rem solid #465979; font-size: .95rem; }
.conditions p { margin: .25rem 0; }
.conditions ul { margin: .25rem 0; padding-left: 1.2rem; }
.counts { display: flex; gap: .4rem 1rem; flex-wrap: wrap; font-size: .85rem; }
.counts dd { margin: 0 1rem 0 0; font-weight: 700; }
@media print {
  :root { color: #000; background: #fff; }
  main { max-width: none; padding: 0; }
  form, button, input, #status { display: none; }
  .file-result { padding: 0; border: 0; }
  .table-wrap { overflow: visible; }
  table { font-size: 7pt; table-layout: fixed; }
  th, td { padding: 2pt; }
  td table { min-width: 0; table-layout: auto; }
  .red > td, .yellow > td { background: #fff; }
  .badge { background: #fff !important; color: #000 !important; border: 1pt solid #000; }
  .badge.red { border-width: 2pt; }
  .red > td { border-top: 2pt solid #000; }
  h2, h3 { break-after: avoid; }
  tr { break-inside: avoid; }
  thead { display: table-header-group; }
  .notice { background: #fff; border-color: #000; }
}
