.preserve-lines { white-space: pre-wrap; }
.photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 16px; margin: 18px 0; }
.photo-grid figure { margin: 0; border: 1px solid var(--line); border-radius: 7px; overflow: hidden; background: #fff; }
.photo-grid img { display: block; width: 100%; height: 160px; object-fit: cover; }
.photo-grid figcaption { padding: 9px; }
.stock-low { background: #fff1dc; }
.stock-low td:first-child { box-shadow: inset 4px 0 #d87900; }
.stats a.stat { color: inherit; text-decoration: none; }
.stats a.stat:hover, .stats a.stat:focus-visible { border-color: var(--amber-dark); transform: translateY(-1px); }

.service-book-heading { margin-top: 4px; }
.service-book-stats .stat strong { overflow-wrap: anywhere; }
.service-book-grid { align-items: stretch; }
.service-book-grid > .panel { height: 100%; }
.compact-form button { margin-top: 16px; }
.service-next-list { display: grid; gap: 0; }
.service-next-list > div { display: grid; gap: 4px; padding: 12px 0; border-top: 1px solid #e0e4e2; }
.service-next-list > div:first-child { border-top: 0; padding-top: 0; }
.service-next-list span { color: #687378; font-size: 13px; }
.service-history { margin-bottom: 20px; }
.service-history .toolbar h3 { margin: 0 0 5px; }
.service-history .toolbar p { margin: 0; }
.service-history table { min-width: 1100px; }
.service-result { min-width: 220px; max-width: 380px; }
.service-kind.preventive { background: #dceee3; color: #17613a; }
.service-kind.corrective { background: #fff0c7; color: #815109; }
.service-kind.inspection { background: #dceaf0; color: #24566d; }
@media(max-width:1100px){.service-book-grid{grid-template-columns:1fr}}
.compact-panel { padding: 12px 18px; }
.between { justify-content: space-between; align-items: center; }
.warning-note { border-left: 4px solid var(--amber); }
.checklist-stack { display: grid; gap: 10px; }
.checklist-item { display: grid; grid-template-columns: minmax(240px,2fr) repeat(3,minmax(130px,1fr)) auto; gap: 10px; align-items: end; padding: 12px; border: 1px solid var(--line); border-left: 5px solid #9aa7ab; border-radius: 6px; background: #fff; }
.checklist-item.pass { border-left-color: #2d9b69; }
.checklist-item.fail { border-left-color: #b9413a; background: #fff8f7; }
.checklist-item small { display: block; color: var(--muted); margin-top: 4px; }
.checklist-item label { margin: 0; }
@media (max-width: 980px) { .checklist-item { grid-template-columns: 1fr 1fr; } .checklist-item > div { grid-column: 1 / -1; } }
@media (max-width: 620px) { .checklist-item { grid-template-columns: 1fr; } .checklist-item > div { grid-column: auto; } }
.tenant-switch { display: flex; justify-content: flex-end; align-items: end; gap: 8px; padding: 9px 30px; background: #e9ece9; border-bottom: 1px solid #ccd2d0; }
.tenant-switch label { display: flex; align-items: center; gap: 9px; }
.tenant-switch select { min-width: 260px; padding: 7px 10px; }
@media (max-width: 560px) { .tenant-switch { padding: 9px 18px; } .tenant-switch label { width: 100%; } .tenant-switch select { min-width: 0; } }
.inline-member-form { display: grid; grid-template-columns: minmax(220px,1fr) minmax(160px,.7fr) auto; gap: 8px; align-items: end; }
.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: 760px) { .inline-member-form { grid-template-columns: 1fr; } }
.procedure-form { max-width: none; }
.procedure-table { min-width: 1280px; }
.procedure-table th,.procedure-table td { padding: 7px; vertical-align: middle; }
.procedure-table th:first-child,.procedure-table td:first-child { width: 44px; text-align: center; }
.procedure-table td:nth-child(2),.procedure-table td:nth-child(3) { min-width: 260px; }
.procedure-table label { margin: 0; }
.procedure-table input,.procedure-table select { min-height: 40px; padding: 8px; }
.procedure-number { font-weight: 800; color: var(--steel); }
.procedure-range { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; min-width: 140px; }
.procedure-flags { min-width: 125px; }
.procedure-flags label { display: flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 600; }
.procedure-flags input { width: auto; min-height: 0; }
