/* Health and safety (modules/46-safety). */
.hs-matrix { display: grid; grid-template-columns: 18px minmax(0, 1fr); grid-template-rows: auto auto; gap: 4px 6px; align-items: center; max-width: 320px; margin: 0 auto; }
.hs-mx-y { writing-mode: vertical-rl; transform: rotate(180deg); font-size: .72em; color: #5b6b7f; text-align: center; grid-row: 1; }
.hs-mx-x { grid-column: 2; text-align: center; font-size: .72em; color: #5b6b7f; }
.hs-mx-grid { display: grid; grid-template-columns: 18px repeat(5, minmax(0, 1fr)); gap: 3px; min-width: 0; }
.hs-mx-lab { font-size: .72em; color: #5b6b7f; text-align: center; align-self: center; }
.hs-mx-c { aspect-ratio: 1 / 1; border-radius: 5px; display: flex; align-items: center; justify-content: center; font-size: .86em; min-width: 0; opacity: .55; }
.hs-mx-c.has { opacity: 1; box-shadow: inset 0 0 0 2px rgba(0, 0, 0, .12); }
.hs-mx-c b { color: #fff; text-shadow: 0 1px 1px rgba(0, 0, 0, .25); }
.hs-mx-c.lo { background: #8fd3b6; } .hs-mx-c.md { background: #f2c96b; } .hs-mx-c.hi { background: #f09a6e; } .hs-mx-c.vh { background: #e35d6a; }
.hs-mx-key { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin-top: 8px; font-size: .74em; }
.hs-mx-key span { padding: 2px 8px; border-radius: 10px; color: #23364d; }
.hs-mx-key .lo { background: #d6f1e5; } .hs-mx-key .md { background: #fbedc9; } .hs-mx-key .hi { background: #fbdccb; } .hs-mx-key .vh { background: #f8d1d5; }
.hs-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
.hs-photo { display: block; border: 1px solid #e3e8ef; border-radius: 8px; overflow: hidden; text-decoration: none; color: inherit; background: #f7f9fb; min-width: 0; }
.hs-photo img { display: block; width: 100%; height: 110px; object-fit: cover; }
.hs-photo span { display: block; padding: 4px 6px; font-size: .76em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hs-whys { margin: 0; padding-left: 20px; display: grid; gap: 4px; }
.hs-fish { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 4px 10px; margin: 0; }
.hs-fish dt { font-weight: 600; color: #5b6b7f; }
.hs-fish dt.main { color: #b0411c; }
.hs-fish dd { margin: 0; overflow-wrap: anywhere; }
.hs-answer { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 6px; }
.hs-answer select, .hs-answer input { min-width: 0; max-width: 100%; padding: 5px 8px; border: 1px solid #cfd8e3; border-radius: 6px; font: inherit; }
.hs-answer input { flex: 1 1 160px; }
.hs-items td { vertical-align: top; }
.hs-pad { padding: 10px 14px; margin: 0; }
.hs-inline { display: inline-block; margin-left: 4px; }
.hs-mtx td, .hs-mtx th { white-space: nowrap; }
.hs-geo { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: -4px 0 10px; }
.hs-safe { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.hs-obj { margin: 0 0 8px; padding-left: 18px; }
