/* 검사/예방 화면 모양 */
.prevent { display: flex; flex-direction: column; }
.prevent > .tabs { flex: 1 1 auto; min-height: 0; }
.prevent .tabs-body { display: flex; flex-direction: column; overflow: hidden; }
.prevent-pane { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; gap: 6px; }
.prevent-bar { display: flex; gap: 6px; align-items: center; min-height: 26px; flex: 0 0 auto; flex-wrap: wrap; }
.prevent-bar .inp { width: auto; }
.prevent-bar label.row { gap: 3px; white-space: nowrap; }
.prevent-planline { margin-left: 8px; }
.prevent-split { flex: 1 1 auto; min-height: 0; display: flex; gap: 6px; }
.prevent-split > .panel { flex: 1 1 0; }
.prevent-side { flex: 0 0 400px; display: flex; flex-direction: column; gap: 6px; min-height: 0; min-width: 0; }
.prevent-side.charts { flex-basis: 614px; }
.prevent-side.lab { flex-basis: 440px; }
.prevent-side.planlist { flex-basis: 660px; }
.prevent-side.cond { flex-basis: 384px; }
.prevent-side > .panel { flex: 0 0 auto; }
.prevent-side > .panel.grow { flex: 1 1 0; }
.prevent .panel.flush > .panel-body { display: flex; flex-direction: column; overflow: hidden; }
.prevent .panel.flush > .panel-body > .grid-wrap, .prevent-fill > .grid-wrap { flex: 1 1 auto; border: 0; }
.prevent-fill { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.prevent-detail { flex: 1 1 auto; min-height: 0; overflow: auto; }
.prevent-detail .grid-wrap { border-width: 1px 0; }
.prevent-detail table.plain th:first-child, .prevent-detail table.plain td:first-child { border-left: 0; }
.prevent-detail table.plain th:last-child, .prevent-detail table.plain td:last-child { border-right: 0; }
.prevent-detail table.plain tr:first-child th, .prevent-detail table.plain tr:first-child td { border-top: 0; }
.prevent-facts th { width: 78px; text-align: left; }
.prevent-fill table.grid th { white-space: normal; overflow-wrap: anywhere; font-size: 11px; line-height: 1.25; }
.prevent-fill table.grid td { white-space: nowrap; }
.prevent-ell { display: inline-block; max-width: 190px; overflow: hidden; text-overflow: ellipsis; vertical-align: bottom; }
.prevent-memo { padding: 5px 6px; border-bottom: 1px solid var(--line-soft); }
.prevent-sub { padding: 3px 6px; background: #f1f4f8; border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); font-weight: 700; display: flex; align-items: center; min-height: 26px; }
table.grid td .inp.num, table.plain td .inp { min-height: 20px; padding: 0 4px; }

/* 환자 관리표: 날짜를 줄로 놓은 표 */
.prevent-sheet-wrap { flex: 1 1 auto; min-height: 0; overflow: auto; }
table.prevent-sheet th { white-space: normal; }
table.prevent-sheet thead tr:first-child th { height: 24px; }
table.prevent-sheet thead tr:nth-child(2) th { top: 24px; }
table.prevent-sheet th.germ { overflow-wrap: anywhere; min-width: 58px; line-height: 1.25; font-size: 11px; }
table.prevent-sheet td.date { white-space: nowrap; font-weight: 700; text-align: center; }
table.prevent-sheet td.num { white-space: nowrap; }
table.prevent-sheet td.prod { min-width: 150px; }
.prevent-prod { display: block; white-space: nowrap; }
.prevent-diff { font-size: 11px; color: var(--muted); font-weight: 400; }

/* 추이 그림 */
.prevent-side.charts .panel-body { padding: 4px 6px; overflow: hidden; }
.prevent-chart { display: block; }
.prevent-chart .ax { font-size: 11px; fill: var(--muted); }
.prevent-chart .val { font-size: 11px; fill: var(--text); }
.prevent-chart .gridline { stroke: var(--line-soft); stroke-width: 1; }
.prevent-chart .base { stroke: var(--line); stroke-width: 1; }
.prevent-chart .ser { fill: none; stroke: var(--blue); stroke-width: 1.5; }
.prevent-chart .dot { fill: var(--blue); stroke: #fff; stroke-width: 1; }
.prevent-chart .bar { fill: var(--blue); }
.prevent-chart .mark { stroke: var(--orange); stroke-width: 1; stroke-dasharray: 3 3; }
.prevent-chart .ref { stroke: var(--muted); stroke-width: 1; stroke-dasharray: 6 3; }
.prevent-chart .hit { fill: transparent; stroke: transparent; stroke-width: 9; }
.prevent-legend { display: flex; gap: 14px; font-size: 11px; color: var(--muted); padding: 1px 0 0 38px; }
.prevent-legend i { display: inline-block; vertical-align: middle; margin-right: 4px; }
.prevent-legend .k-line { width: 16px; border-top: 2px solid var(--blue); }
.prevent-legend .k-bar { width: 8px; height: 8px; background: var(--blue); }
.prevent-legend .k-mark { height: 11px; border-left: 1px dashed var(--orange); }
.prevent-legend .k-ref { width: 16px; border-top: 1px dashed var(--muted); }
.prevent-sum { min-height: 24px; }
.prevent .panel.prevent-planbox { flex: 0 0 auto; max-height: 240px; }
.prevent .panel.prevent-planbox > .panel-body { overflow: auto; display: block; }
.prevent-planbox table.plain th:first-child, .prevent-planbox table.plain td:first-child { border-left: 0; }
.prevent-planbox table.plain th:last-child, .prevent-planbox table.plain td:last-child { border-right: 0; }
.prevent-planbox table.plain tr:first-child th { border-top: 0; }

/* 예방관리 계획 */
.prevent-form { display: grid; grid-template-columns: max-content 1fr max-content 1fr; gap: 5px 8px; align-items: center; padding: 6px; }
.prevent-stage-head { background: #f8f9fb; padding: 3px 6px; font-weight: 700; border-bottom: 1px solid var(--line-soft); }
.prevent-task { display: flex; gap: 6px; align-items: center; padding: 2px 6px 2px 12px; min-height: 24px; border-bottom: 1px solid #edf0f4; cursor: pointer; }
.prevent-task:hover { background: var(--hover); }
.prevent-done { margin-left: auto; font-size: 11px; color: var(--muted); white-space: nowrap; }
.prevent-stage-edit { border: 1px solid var(--line-soft); padding: 6px; display: flex; flex-direction: column; gap: 4px; }
.prevent-consent { gap: 6px; }

/* 대상 찾기 */
.prevent-side.cond .panel { flex: 1 1 0; }
.prevent-side.cond .panel-body { padding: 0; }
.prevent-cond-note { padding: 6px 8px; color: var(--muted); border-bottom: 1px solid var(--line-soft); }
.prevent-cond { display: flex; gap: 6px; align-items: center; padding: 3px 8px; min-height: 28px; border-bottom: 1px solid #edf0f4; }
.prevent-cond .inp { display: inline-block; width: 48px; min-height: 20px; padding: 0 4px; margin: 0 2px; }
.prevent-cond.sep { gap: 8px; }
.prevent-cond.modes { flex-direction: column; align-items: flex-start; gap: 2px; padding: 5px 8px; }
.prevent-cond > span, .prevent-cond label.row { white-space: nowrap; }
.prevent-bar .btn { height: 24px; padding-top: 0; padding-bottom: 0; }
.prevent-bar .btn.sm { height: 20px; }
