.work-tool { margin: 1.25rem 0; padding: 1.25rem; border: 2px solid #24635a; border-radius: 12px; background: #f5faf8; }
.work-tool h2, .work-tool h3 { margin-top: 0; }
.work-tool p, .work-tool li { line-height: 1.7; }
.work-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.work-fields label { display: flex; flex-direction: column; gap: 5px; font-weight: 600; }
.work-fields .wide { grid-column: 1 / -1; }
.work-fields input:not([type=checkbox]), .work-fields select, .work-fields textarea, .work-results textarea, .seat-list select { box-sizing: border-box; width: 100%; padding: 9px; border: 1px solid #71817b; border-radius: 5px; background: #fff; color: #172824; font: inherit; }
.work-fields textarea { min-height: 90px; }
.work-fields .check { display: flex; flex-direction: row; align-items: center; gap: 8px; font-weight: 400; }
.work-fields .tool-invalid { border: 2px solid #b42318 !important; }
.work-tool :focus-visible { outline: 3px solid #145ca8; outline-offset: 2px; }
.work-tool button { margin: 12px 8px 8px 0; padding: 9px 16px; border: 0; border-radius: 6px; background: #17574f; color: #fff; font: inherit; font-weight: 700; cursor: pointer; }
.work-tool button:hover { background: #0d403a; }
.work-status { min-height: 1.5em; font-weight: 600; }
.work-results { padding: 1rem; border: 1px solid #9cb9ad; border-radius: 8px; background: #fff; }
.work-results textarea { min-height: 180px; white-space: pre-wrap; line-height: 1.6; }
.work-print-text { display: none; }
.work-note { padding: .6rem; border-left: 4px solid #24635a; background: #f0f5f3; white-space: pre-line; }
.work-quiz fieldset { margin: 1rem 0; border: 1px solid #9cb9ad; }
.work-quiz fieldset label { display: block; padding: 4px 0; }
.work-quiz legend { font-weight: 700; }
.seat-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 1rem 0; }
.seat-list label { display: block; }
.seat-map { border: 1px solid #9cb9ad; border-radius: 8px; padding: 12px; background: #f7faf8; }
.seat-map > p { text-align: center; font-weight: 700; margin: .4rem 0; }
.seat-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.seat-row label { min-width: 0; font-size: .85rem; }
.seat-row select { width: 100%; }
.seat-table { margin: 10px auto; padding: 20px; max-width: 75%; border: 2px solid #486c64; border-radius: 8px; text-align: center; background: #e6f1ed; }
.seat-table.round { border-radius: 50%; }
.seat-table.u-shape { border-bottom: 0; border-radius: 12px 12px 0 0; }
.work-kit { margin: 1.2rem 0; padding: 1rem; border: 1px solid #9cb9ad; background: #fff; }
.work-kit h3 { margin-top: 0; }
.work-kit ol { padding-left: 1.5rem; }
.work-card { border: 1px dashed #566; padding: 1rem; background: #fff; margin: 1rem 0; }
[hidden] { display: none !important; }
@media (max-width: 620px) { .work-fields, .seat-list, .seat-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } .work-tool { padding: 1rem; } }
@media print {
  @page { size: A4; margin: 10mm; }
  body:has(.work-tool-print) header, body:has(.work-tool-print) aside, body:has(.work-tool-print) footer, body:has(.work-tool-print) nav, body:has(.work-tool-print) .ad, body:has(.work-tool-print) .work-fields, body:has(.work-tool-print) .work-tool > button, body:has(.work-tool-print) .work-status { display: none !important; }
  body:has(.work-tool-print) .info > *:not(.work-tool-print):not(h1) { display: none !important; }
  .work-tool-print, .work-tool-print .work-results { border: 0; background: #fff; padding: 0; }
  .work-tool-print button { display: none !important; }
  .work-tool-print[data-work-tool="message"] .work-results textarea { display: none !important; }
  .work-tool-print[data-work-tool="message"] .work-print-text { display: block; margin: .5rem 0; font: inherit; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; }
  .work-tool-print[data-work-tool="seating"] textarea { display: none !important; }
  body:has(.training-print) header, body:has(.training-print) aside, body:has(.training-print) footer, body:has(.training-print) nav, body:has(.training-print) .ad { display: none !important; }
  body:has(.training-print) .info > *:not(.training-print):not(h1) { display: none !important; }
  .training-print { color: #000; }
  .training-print .work-card { padding: .5rem; margin: .35rem 0; break-inside: avoid; }
  .training-print .work-card h2 { margin: .1rem 0; }
  .training-print .work-card li { line-height: 1.35; margin: 0; }
  .training-print .work-card p { margin: .3rem 0; }
}
