:root {
  --bg: #f4f4f0;
  --card: #ffffff;
  --border: #ddddd6;
  --text: #23241f;
  --muted: #7a7a72;
  --accent: #0f6e56;
  --accent-bg: #e1f5ee;
  --danger: #a32d2d;
  --danger-bg: #fcebeb;
  --warn-bg: #faeeda;
  --warn: #854f0b;
  --blue: #185fa5;
  --blue-bg: #e6f1fb;
  --radius: 8px;
  --topbar-sticky-offset: 0px;
}

* { box-sizing: border-box; }
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: "Malgun Gothic", "Apple SD Gothic Neo", sans-serif;
  font-size: 14px;
}

header.topbar {
  background: var(--card);
  border-bottom: 1px solid var(--border);
  padding: 10px 20px;
  display: flex;
  align-items: center;
  gap: 16px;
  position: sticky;
  top: 0;
  z-index: 60;
  flex-wrap: wrap;
}
header.topbar h1 { font-size: 16px; margin: 0; }
.brand-title {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}
.app-logo {
  display: block;
  width: 32px;
  height: 32px;
  object-fit: contain;
  flex: 0 0 32px;
}
header.topbar .app-version {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 8px;
  border: 1px solid #d9e0e7;
  border-radius: 6px;
  background: #f7f9fb;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}
header.topbar .counts { font-size: 12px; color: var(--muted); }

.deployment-mode-banner {
  position: sticky;
  top: var(--topbar-sticky-offset);
  z-index: 59;
  min-height: 38px;
  padding: 8px 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-bottom: 1px solid #e0b568;
  background: #fff7e5;
  color: #68420b;
  font-size: 13px;
}

.deployment-mode-banner[hidden] { display: none !important; }
body.mobile-topbar-hidden .deployment-mode-banner { top: 0; }
.deployment-mode-banner strong { color: #4f3106; }
.deployment-mode-spinner {
  width: 14px;
  height: 14px;
  border: 2px solid #e8c98f;
  border-top-color: #94620d;
  border-radius: 50%;
  animation: deployment-spin 0.8s linear infinite;
}
@keyframes deployment-spin { to { transform: rotate(360deg); } }

.topbar-tools {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  margin-left: auto;
  white-space: nowrap;
}

.account-switch-btn {
  border-color: #9fcfc2;
  background: #eef9f5;
  color: #08705d;
  font-weight: 800;
}

.account-switch-btn:hover {
  border-color: #6ab8a5;
  background: #dcf3eb;
}

.account-switch-btn:disabled {
  cursor: wait;
  opacity: 0.7;
}

nav.tabs { display: flex; gap: 4px; flex: 1 1 620px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; }
nav.tabs button {
  flex: 0 0 auto;
  border: 1px solid transparent;
  background: transparent;
  padding: 6px 14px;
  border-radius: 20px;
  cursor: pointer;
  font-size: 13px;
  color: var(--muted);
}
nav.tabs button.active { background: var(--accent-bg); color: var(--accent); font-weight: 700; }
nav.tabs button:hover { border-color: var(--border); }

main { padding: 16px 24px 60px; max-width: none; }
.view { display: none; }
.view.active { display: block; }

.card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 16px;
  margin-bottom: 14px;
}
.card h2 { font-size: 15px; margin: 0 0 10px; }
.card h3 { font-size: 13px; margin: 14px 0 6px; color: var(--muted); }

.filter-bar { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 12px; }
.cal-mobile-sticky-option { display: none !important; }

/* 캘린더 조작 바는 앱 헤더 바로 아래에서 계속 사용할 수 있게 유지합니다. */
#view-calendar > .calendar-toolbar {
  position: sticky;
  top: var(--topbar-sticky-offset);
  z-index: 9;
  margin: -4px -10px 12px;
  padding: 9px 10px;
  border-top: 1px solid rgba(221, 221, 214, 0.72);
  border-bottom: 1px solid rgba(203, 211, 208, 0.96);
  background: rgba(244, 244, 240, 0.96);
  box-shadow: 0 5px 12px rgba(35, 36, 31, 0.07);
  backdrop-filter: blur(10px);
  transition: top 160ms ease;
}

body.mobile-topbar-hidden #view-calendar > .calendar-toolbar {
  top: 0;
}
#wl-controls {
  scroll-margin-top: 76px;
}
.filter-break {
  flex-basis: 100%;
  height: 0;
}

.search-select {
  position: relative;
  flex: 0 1 auto;
  min-width: 150px;
}

.search-select-plant { width: min(440px, 34vw); min-width: 280px; }
.search-select-assignee { width: 150px; }
.search-select-category { width: 170px; }
.search-select-subcategory { width: 220px; }
.search-select-field { width: 100%; min-width: 0; }

.search-select-native {
  display: none !important;
}

.search-select-input {
  width: 100%;
  padding-right: 56px;
}

.search-select-input::-webkit-search-cancel-button {
  display: none;
}

.search-select-clear {
  position: absolute;
  z-index: 2;
  top: 50%;
  right: 29px;
  width: 24px;
  min-width: 24px;
  min-height: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #667085;
  font-size: 17px;
  line-height: 24px;
  transform: translateY(-50%);
}

.search-select-toggle {
  position: absolute;
  z-index: 2;
  top: 50%;
  right: 5px;
  width: 24px;
  min-width: 24px;
  min-height: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #667085;
  font-size: 13px;
  line-height: 24px;
  transform: translateY(-50%);
}

.search-select-clear:hover,
.search-select-toggle:hover {
  background: #eef2f5;
}

.search-select.disabled .search-select-input,
.search-select.disabled .search-select-toggle {
  cursor: not-allowed;
  opacity: 0.65;
}

.search-select-menu {
  display: none;
  position: absolute;
  z-index: 90;
  top: calc(100% + 4px);
  left: 0;
  width: max(100%, 240px);
  max-width: min(520px, calc(100vw - 32px));
  max-height: 280px;
  overflow-y: auto;
  padding: 5px;
  border: 1px solid #cfd8e3;
  border-radius: 6px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.16);
}

.search-select.open .search-select-menu {
  display: block;
}

.search-select-option {
  display: block;
  width: 100%;
  min-height: 30px;
  padding: 6px 8px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  overflow: hidden;
  color: #243142;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.search-select-option:hover,
.search-select-option.active {
  background: #eef6f3;
}

.search-select-option.selected {
  color: #075e4c;
  font-weight: 800;
}

.search-select-empty {
  padding: 9px 8px;
  color: #667085;
  font-size: 12px;
}
.filter-bar label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
  font-size: 12px;
  color: var(--text);
}
.filter-bar label input[type="checkbox"],
.link-row label input[type="checkbox"],
.modal-box label input[type="checkbox"] {
  width: auto;
  min-width: 13px;
  margin: 0;
}

input, select, textarea, button {
  font-family: inherit;
  font-size: 13px;
  padding: 6px 8px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--card);
  color: var(--text);
}
textarea { width: 100%; resize: vertical; }
button { cursor: pointer; }
button:hover { background: #f0f0ea; }
button.primary { background: var(--accent); color: #fff; border-color: var(--accent); font-weight: 700; }
button.primary:hover { background: #0a5a46; }
button.small { padding: 2px 8px; font-size: 12px; border-radius: 6px; }
button.link { border: none; background: none; color: var(--blue); padding: 2px 4px; }

.form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
.form-grid .wide { grid-column: 1 / -1; }
.form-grid label { display: block; font-size: 11px; color: var(--muted); margin-bottom: 2px; }
.form-grid input, .form-grid select, .form-grid textarea { width: 100%; }
.form-grid .multi-picker { width: 100%; }
.date-transfer-row { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; padding: 6px 8px; border: 1px solid #dce5e1; background: #f6faf8; }
.date-transfer-row > span { margin-right: 2px; color: var(--muted); font-size: 11px; font-weight: 700; }
.date-transfer-row button { white-space: nowrap; }

.multi-picker {
  position: relative;
  min-height: 32px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--card);
  color: var(--text);
  cursor: pointer;
}
.multi-picker-face {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-wrap: wrap;
  min-height: 32px;
  padding: 4px 28px 4px 6px;
}
.multi-placeholder {
  color: var(--muted);
  font-size: 13px;
}
.multi-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 22px;
  padding: 2px 8px;
  border: 1px solid #b8d5eb;
  border-radius: 999px;
  background: #e8f0ff;
  color: #1c4468;
  font-size: 12px;
  font-weight: 700;
}
.multi-chip span {
  color: #527195;
  font-weight: 900;
}
.multi-caret {
  position: absolute;
  right: 8px;
  top: 5px;
  width: 22px;
  height: 22px;
  min-height: 22px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--muted);
  font-size: 11px;
  text-align: center;
}
.multi-caret:hover, .multi-caret:focus-visible { background: #edf4f2; color: var(--accent); }
.multi-picker-menu {
  display: none;
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 4px);
  z-index: 30;
  max-height: 180px;
  overflow-y: auto;
  padding: 6px;
  border: 1px solid #cfd8e3;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.16);
}
.multi-picker.open .multi-picker-menu {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.multi-picker-menu button {
  width: 100%;
  text-align: left;
  border: 1px solid transparent;
  background: #fff;
  color: var(--text);
}
.multi-picker-menu button.selected {
  background: var(--accent-bg);
  color: var(--accent);
  border-color: #b9e5d9;
  font-weight: 800;
}
.multi-picker-menu button.assignee-add {
  margin-top: 4px;
  border-top: 1px solid #e3e8ee;
  color: var(--blue);
  font-weight: 800;
}
.plant-picker-menu {
  max-height: min(360px, 55vh);
  padding: 7px;
  overflow: hidden;
}
.plant-picker-search {
  position: sticky;
  top: 0;
  z-index: 2;
  padding-bottom: 6px;
  background: #fff;
}
.plant-picker-search input {
  width: 100%;
  min-height: 34px;
  padding: 6px 9px;
  border-color: #aebdca;
  background: #f8fafc;
}
.plant-picker-options {
  display: flex;
  flex-direction: column;
  gap: 3px;
  max-height: 270px;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.multi-picker-menu .plant-picker-option {
  display: grid;
  grid-template-columns: minmax(100px, 1fr) minmax(90px, 1.2fr);
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding: 5px 8px;
}
.multi-picker-menu .plant-picker-option[hidden] {
  display: none !important;
}
.plant-picker-option strong {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 12px;
}
.plant-picker-option span {
  min-width: 0;
  color: var(--muted);
  font-size: 11px;
  overflow-wrap: anywhere;
}
.plant-picker-option.keyboard-active {
  outline: 2px solid #4a90e2;
  outline-offset: -2px;
}
.plant-picker-help {
  padding: 6px 4px 1px;
  color: var(--muted);
  font-size: 10px;
}
.plant-chip {
  max-width: 100%;
}

.link-row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-top: 10px; }
.link-row label { font-size: 13px; display: flex; align-items: center; gap: 4px; cursor: pointer; }

.work-row {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 8px 12px;
  margin-bottom: 6px;
  display: flex;
  gap: 10px;
  align-items: flex-start;
  flex-wrap: wrap;
}
.work-row.grouped { border-left-width: 4px; border-radius: 0 var(--radius) var(--radius) 0; }
.work-row .date { min-width: 78px; color: var(--muted); font-size: 12px; padding-top: 2px; }
.work-row .body { flex: 1; min-width: 240px; }
.work-row .title { font-weight: 700; }
.work-row .sub { font-size: 12px; color: var(--muted); margin-top: 2px; white-space: pre-wrap; }
.work-row .side { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }

.chip {
  display: inline-block;
  white-space: nowrap;
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 10px;
  background: var(--accent-bg);
  color: var(--accent);
  cursor: pointer;
  border: none;
}
.chip.gray { background: #ecece6; color: var(--muted); cursor: default; }
.chip.blue { background: var(--blue-bg); color: var(--blue); }
.chip.warn { background: var(--warn-bg); color: var(--warn); }
.chip.danger { background: var(--danger-bg); color: var(--danger); }
.filter-chip {
  border: 1px solid transparent;
}
.filter-chip.active {
  border-color: currentColor;
  box-shadow: 0 0 0 2px rgba(12, 118, 110, 0.12);
}
.danger-btn { color: var(--danger); border-color: #f0b8a8; background: #fff7f4; }

.status-select { font-size: 12px; padding: 2px 4px; }

table.list { width: 100%; border-collapse: collapse; font-size: 13px; }
table.list th, table.list td { text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--border); vertical-align: top; }
table.list th { font-size: 12px; color: var(--muted); font-weight: 400; }
table.list td.nw, table.list th.nw { white-space: nowrap; }

.calendar-summary {
  display: none;
  align-items: center;
  gap: 10px;
  margin: -4px 0 8px;
  padding: 8px 10px;
  border: 1px solid #ead58a;
  border-radius: 6px;
  background: #fff8d9;
  color: #6b4e00;
  font-size: 13px;
}
.calendar-summary strong { font-weight: 800; }

.cal-grid {
  display: grid;
  grid-template-columns: 0.55fr 1fr 1fr 1fr 1fr 1fr 0.55fr;
  gap: 3px;
}
.cal-grid.year-mode { display: block; }
.year-month { margin: 0 0 22px; }
.year-month h2 {
  position: sticky; top: 0; z-index: 2;
  margin: 0 0 6px; padding: 7px 2px;
  background: var(--bg); color: #18212c; font-size: 18px; font-weight: 800;
  border-bottom: 1px solid var(--border);
}
.year-month-grid {
  display: grid;
  grid-template-columns: 0.55fr 1fr 1fr 1fr 1fr 1fr 0.55fr;
  gap: 3px;
}
.cal-grid .dow { font-size: 13px; color: var(--muted); text-align: center; padding: 3px 0; font-weight: 700; }
.year-month-grid .dow { font-size: 13px; color: var(--muted); text-align: center; padding: 3px 0; font-weight: 700; }
.year-month-grid .dow.sun { color: #c0392b; }
.year-month-grid .dow.sat { color: #2a6bb5; }
.cal-grid .dow.sun { color: #c0392b; }
.cal-grid .dow.sat { color: #2a6bb5; }
.cal-cell {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 4px 5px;
  font-size: 13px;
  min-height: 96px;
}
.cal-cell .day { font-size: 13px; color: var(--muted); margin-bottom: 3px; font-weight: 700; }
.cal-cell .day .sun { color: #c0392b; }
.cal-cell .day .sat { color: #2a6bb5; }
.cal-cell.weekend { background: #f7f7f2; }
.cal-cell.nextm, .cal-cell.prevm { background: #fbfbf6; }
.cal-cell.nextm .day, .cal-cell.prevm .day { opacity: 0.65; }
.cal-cell.today { outline: 2px solid #e86bd8; outline-offset: -2px; background: inherit; }
.cal-cell.today .day { color: #7a005e; }
.cal-cell.today .day span { color: #5c0047; padding: 0 8px; border: 1px solid #e86bd8; border-radius: 9px; }
.cal-cell.out { opacity: 0.35; }
.cal-entry {
  position: relative;
  display: block; width: 100%; text-align: left; border: none; margin-bottom: 3px;
  padding: 3px 7px; border-radius: 4px; cursor: pointer; font-size: 13px; line-height: 1.35;
  white-space: normal; word-break: break-word;
  background: #ecece6; color: #444;
}
.cal-entry:hover { filter: brightness(0.94); }
.cal-entry.editable { cursor: grab; padding-left: 16px; padding-right: 16px; touch-action: pan-y; }
.cal-entry.editable:active { cursor: grabbing; }
.cal-entry.dragging { opacity: 0.72; box-shadow: 0 4px 12px rgba(35,36,31,0.18); transform: scale(0.99); }
.cal-entry.dragging.copying { cursor: copy; opacity: 0.88; outline: 2px dashed #0f766e; outline-offset: 1px; }
.cal-entry-text { pointer-events: none; }
.cal-resize {
  position: absolute; top: 3px; bottom: 3px; width: 10px;
  border-radius: 3px; opacity: 0.18; cursor: ew-resize;
}
.cal-resize.left { left: 3px; border-left: 3px solid currentColor; }
.cal-resize.right { right: 3px; border-right: 3px solid currentColor; }
.cal-entry.editable:hover .cal-resize, .cal-entry.dragging .cal-resize { opacity: 0.55; }
.cal-cell.drop-target { outline: 2px dashed #7f77dd; outline-offset: -3px; background-image: linear-gradient(rgba(127,119,221,0.08), rgba(127,119,221,0.08)); }

.calendar-copy-box { max-width: 540px; }
.calendar-copy-source {
  margin: 10px 0 14px;
  padding: 10px 12px;
  border-left: 3px solid #0f766e;
  background: #f1f7f5;
  font-weight: 800;
  line-height: 1.45;
}
.calendar-copy-dates {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.calendar-copy-dates label { display: grid; gap: 5px; }
.calendar-copy-dates span { color: #53606f; font-size: 12px; font-weight: 800; }
.modal-action-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 16px;
}

@media (max-width: 720px) {
  .calendar-copy-dates { grid-template-columns: 1fr; }
  .modal-action-row { align-items: stretch; flex-direction: column; }
  .modal-action-row button { width: 100%; }
}

/* Plant inspection ledger and integrated report */
.plant-inspection-report { display: grid; gap: 8px; color: #17212b; }
.inspection-report-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 11px; border: 1px solid #cfd9df; border-left: 4px solid #0b8175; background: #f7faf9; }
.inspection-report-toolbar > div { display: flex; align-items: center; gap: 8px; min-width: 0; }
.inspection-report-toolbar strong { font-size: 15px; }
.inspection-report-toolbar span { color: #66717b; font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.inspection-report-toolbar select { min-width: 102px; }
.inspection-progress-caption { display: flex; align-items: center; gap: 8px; padding: 0 2px; color: #66717b; font-size: 10px; }
.inspection-progress-caption strong { color: #087d70; font-size: 11px; }
.inspection-kpis { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border: 1px solid #d6dfe4; }
.inspection-kpis > div { display: grid; gap: 1px; padding: 8px 11px; border-right: 1px solid #d6dfe4; background: #fff; }
.inspection-kpis > div:last-child { border-right: 0; }
.inspection-kpis strong { color: #087d70; font-size: 16px; }
.inspection-kpis span { color: #66717b; font-size: 11px; }
.inspection-kpis small { color: #7b858d; font-size: 10px; }
.inspection-alerts { display: flex; align-items: flex-start; gap: 12px; padding: 10px 12px; border-left: 3px solid #188e7d; background: #f1f9f7; }
.inspection-alerts.has-alert { border-left-color: #d98316; background: #fff8ee; }
.inspection-alerts strong { flex: 0 0 auto; font-size: 12px; }
.inspection-alerts span, .inspection-alerts li { font-size: 12px; }
.inspection-alerts ul { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0; padding-left: 18px; }
.inspection-section { border: 1px solid #d6dfe4; background: #fff; }
.inspection-section-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 8px 10px; border-bottom: 1px solid #dce4e8; background: #f7f9fa; }
.inspection-section-title h3 { margin: 0 0 3px; font-size: 14px; }
.inspection-section-title p { margin: 0; color: #69757f; font-size: 11px; }
.inspection-section-stat { display: grid; justify-items: end; gap: 1px; white-space: nowrap; }
.inspection-section-stat strong { color: #087d70; font-size: 13px; }
.inspection-section-stat span { color: #68747e; font-size: 10px; }
.inspection-cost { display: grid; justify-items: end; gap: 1px; white-space: nowrap; }
.inspection-cost strong { color: #087d70; font-size: 15px; }
.inspection-cost span { color: #59656f; font-size: 11px; }
.inspection-table-wrap { overflow-x: auto; }
.inspection-table { width: 100%; border-collapse: collapse; table-layout: auto; font-size: 11px; }
.inspection-table th { padding: 8px 9px; border-bottom: 1px solid #d6dfe4; background: #fbfcfc; color: #53616d; text-align: left; white-space: nowrap; }
.inspection-table td { padding: 8px 9px; border-bottom: 1px solid #e4e9ec; vertical-align: top; }
.inspection-table tbody tr:last-child td { border-bottom: 0; }
.inspection-table td b { display: block; font-size: 12px; }
.inspection-table td small { display: block; margin-top: 2px; color: #6d7881; font-size: 10px; }
.inspection-date { display: inline-block; margin: 0 3px 3px 0; padding: 2px 5px; border: 1px solid #c9d9d5; background: #f0f8f6; white-space: nowrap; }
.inspection-result { display: inline-flex; align-items: center; min-width: 42px; justify-content: center; padding: 2px 5px; border: 1px solid transparent; font-size: 10px; white-space: nowrap; }
.inspection-result.done { border-color: #b8ddd5; background: #e6f5f1; color: #087568; }
.inspection-result.pending { border-color: #e0e3e0; background: #f4f4f1; color: #74766f; }
.inspection-kind { display: inline-flex; padding: 3px 6px; border-left: 3px solid #138779; background: #edf7f5; color: #126b61; font-weight: 700; white-space: nowrap; }
.inspection-findings { min-width: 190px; max-width: 460px; white-space: pre-wrap; line-height: 1.45; }
.inspection-record-list { font-size: 11px; }
.inspection-record-head, .inspection-record-row { display: grid; grid-template-columns: 70px 130px minmax(220px, .85fr) minmax(170px, .65fr) minmax(240px, 1.2fr); align-items: center; column-gap: 10px; }
.inspection-record-head { padding: 6px 10px; border-bottom: 1px solid #d6dfe4; background: #fbfcfc; color: #60707b; font-size: 10px; font-weight: 700; }
.inspection-record-row { min-height: 48px; padding: 7px 10px; border-bottom: 1px solid #e4e9ec; }
.inspection-record-row:last-child { border-bottom: 0; }
.inspection-record-month { display: grid; gap: 1px; }
.inspection-record-month b { font-size: 13px; }
.inspection-record-month small { color: #73808a; font-size: 9px; }
.inspection-record-vendor { overflow-wrap: anywhere; }
.inspection-record-visits { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; }
.inspection-record-visits > div { min-width: 0; }
.inspection-record-visits > b { flex: 0 0 auto; color: #087d70; font-size: 11px; }
.inspection-record-periodic { display: flex; flex-wrap: wrap; gap: 4px; }
.inspection-record-row .inspection-findings { min-width: 0; max-width: none; }
.inspection-empty { padding: 24px 16px; color: #6c7780; text-align: center; font-size: 12px; }
.inspection-plan-pending { display: grid; gap: 5px; }
.inspection-plan-pending strong { color: #485761; font-size: 12px; }
.inspection-plan-pending span { max-width: 720px; margin: 0 auto; line-height: 1.5; }
.inspection-two-column { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: 12px; align-items: start; }
.inspection-info-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; }
.inspection-info-grid > div { min-width: 0; padding: 9px 11px; border-right: 1px solid #e4e9ec; border-bottom: 1px solid #e4e9ec; }
.inspection-info-grid > div:nth-child(2n) { border-right: 0; }
.inspection-info-grid dt { color: #68747e; font-size: 10px; }
.inspection-info-grid dd { margin: 2px 0 0; font-size: 12px; font-weight: 700; overflow-wrap: anywhere; }
.inspection-info-grid small { color: #7b858d; font-size: 9px; }

@media (max-width: 720px) {
  .inspection-report-toolbar { align-items: flex-start; }
  .inspection-report-toolbar, .inspection-report-toolbar > div { flex-wrap: wrap; }
  .inspection-report-toolbar span { width: 100%; white-space: normal; }
  .inspection-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .inspection-kpis > div { border-bottom: 1px solid #d6dfe4; }
  .inspection-two-column { grid-template-columns: 1fr; }
  .inspection-alerts { display: grid; gap: 5px; }
  .inspection-alerts ul { display: grid; gap: 4px; }
  .inspection-section-title { align-items: flex-start; }
  .inspection-section-stat { justify-items: start; }
  .inspection-record-head { display: none; }
  .inspection-record-row { grid-template-columns: 70px 1fr; gap: 6px 10px; }
  .inspection-record-vendor, .inspection-record-visits, .inspection-record-periodic, .inspection-record-row .inspection-findings { grid-column: 2; }
  .inspection-record-month { grid-row: 1 / span 4; align-self: start; }
  .inspection-table, .inspection-table tbody, .inspection-table tr, .inspection-table td { display: block; width: 100%; }
  .inspection-table thead { display: none; }
  .inspection-table tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 9px 10px; border-bottom: 1px solid #dfe5e8; }
  .inspection-table td { min-width: 0; padding: 5px 7px; border: 0; }
  .inspection-table td::before { display: block; margin-bottom: 2px; color: #77828a; content: attr(data-label); font-size: 9px; }
  .inspection-table td:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .inspection-findings { min-width: 0; max-width: none; }
  .inspection-info-grid { grid-template-columns: 1fr; }
  .inspection-info-grid > div { border-right: 0; }
}

@media print {
  @page { size: A4 landscape; margin: 10mm; }
  body.printing-plant-report { background: #fff !important; }
  body.printing-plant-report > * { visibility: hidden !important; }
  body.printing-plant-report #view-plantmaster,
  body.printing-plant-report #view-plantmaster * { visibility: visible !important; }
  body.printing-plant-report #view-plantmaster { position: absolute; inset: 0; display: block !important; width: 100%; }
  body.printing-plant-report .plant-master-heading,
  body.printing-plant-report .plant-master-view-tabs,
  body.printing-plant-report #pm-directory-pane > .plant-master-filters,
  body.printing-plant-report #pm-directory-pane > .plant-overview-strip,
  body.printing-plant-report #pm-directory-pane > .plant-distributions,
  body.printing-plant-report .plant-directory,
  body.printing-plant-report .plant-detail-nav,
  body.printing-plant-report .plant-detail-tabs,
  body.printing-plant-report .inspection-report-toolbar button,
  body.printing-plant-report .inspection-report-toolbar select { display: none !important; }
  body.printing-plant-report .plant-master-layout { display: block !important; }
  body.printing-plant-report .plant-detail-workspace { padding: 0 !important; }
  body.printing-plant-report .plant-detail-pane { padding-top: 8px; }
  body.printing-plant-report .inspection-table-wrap { overflow: visible; }
  body.printing-plant-report .inspection-section { break-inside: avoid; }
  body.printing-plant-report .inspection-two-column { grid-template-columns: 1fr; }
}

/* Issue management: one continuous, fault-owned process. */
#view-casesv2 .iv2-unified-panel { display: grid; gap: 16px; }
#view-casesv2 .iv2-unified-panel > .iv2-panel { border: 1px solid #dbe4ea; border-radius: 6px; background: #fff; }
#view-casesv2 .iv2-process-heading { margin-top: 2px; padding-bottom: 10px; border-bottom: 1px solid #d7e0e6; }
#view-casesv2 .iv2-fault-process-list { display: grid; gap: 16px; }
#view-casesv2 .iv2-fault-process { overflow: hidden; border: 1px solid #ccd9df; border-left: 4px solid #0b8175; border-radius: 6px; background: #fff; box-shadow: 0 2px 8px rgba(31, 50, 65, .05); }
#view-casesv2 .iv2-fault-process-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 15px 16px 12px; border-bottom: 1px solid #e2e8ed; }
#view-casesv2 .iv2-fault-process-head h3 { margin: 3px 0; font-size: 18px; }
#view-casesv2 .iv2-fault-process-head p { margin: 0; color: #667581; font-size: 12px; }
#view-casesv2 .iv2-fault-stage { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; padding: 0; border-bottom: 1px solid #d8e1e7; background: #dce4e9; }
#view-casesv2 .iv2-fault-stage span { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 39px; color: #697783; background: #f7f9fa; font-size: 12px; font-weight: 800; }
#view-casesv2 .iv2-fault-stage b { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; color: #64727e; background: #e3e9ed; font-size: 10px; }
#view-casesv2 .iv2-fault-stage .done { color: #08705f; background: #eef9f5; }
#view-casesv2 .iv2-fault-stage .done b { color: #fff; background: #35a78f; }
#view-casesv2 .iv2-fault-stage .current { color: #fff; background: #0b8175; }
#view-casesv2 .iv2-fault-stage .current b { color: #0b8175; background: #fff; }
#view-casesv2 .iv2-process-step { display: grid; grid-template-columns: 46px minmax(0, 1fr); border-bottom: 1px solid #e2e8ed; }
#view-casesv2 .iv2-process-step:last-child { border-bottom: 0; }
#view-casesv2 .iv2-process-number { display: grid; place-items: start center; padding-top: 17px; color: #176f66; background: #f2f8f6; font-size: 14px; font-weight: 900; }
#view-casesv2 .iv2-process-body { min-width: 0; padding: 14px 16px; }
#view-casesv2 .iv2-process-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
#view-casesv2 .iv2-process-title > div { display: grid; gap: 3px; }
#view-casesv2 .iv2-process-title strong { font-size: 14px; }
#view-casesv2 .iv2-process-title span { color: #687682; font-size: 11px; }
#view-casesv2 .iv2-process-data { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 11px 0; }
#view-casesv2 .iv2-process-data > div { padding: 9px 10px; border: 1px solid #e0e7ec; border-radius: 5px; background: #fafbfc; }
#view-casesv2 .iv2-process-data .wide { grid-column: 1 / -1; }
#view-casesv2 .iv2-process-data dt { color: #6c7984; font-size: 11px; }
#view-casesv2 .iv2-process-data dd { margin: 4px 0 0; white-space: pre-wrap; line-height: 1.45; }
#view-casesv2 .iv2-discovery-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
#view-casesv2 .iv2-process-empty { margin-top: 10px; padding: 12px; border: 1px dashed #ccd8df; border-radius: 5px; color: #77838d; background: #fafcfd; text-align: center; }
#view-casesv2 .iv2-fault-visits { display: grid; gap: 9px; margin-top: 11px; }
#view-casesv2 .iv2-fault-visits .iv2-visit-card { margin: 0; }
#view-casesv2 .iv2-linked-work { display: block; max-width: 100%; margin: 6px 0; padding: 0; overflow: hidden; border: 0; color: #1768b0; background: transparent; font-size: 12px; font-weight: 750; text-align: left; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; }
#view-casesv2 .iv2-compact-editor { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: 8px; align-items: end; margin-top: 11px; padding: 11px; border: 1px solid #acd1ca; border-radius: 6px; background: #fbfffe; }
#view-casesv2 .iv2-compact-editor label { display: grid; gap: 4px; }
#view-casesv2 .iv2-compact-editor label > span { color: #60707d; font-size: 11px; font-weight: 750; }
#view-casesv2 .iv2-compact-editor .wide { grid-column: 1 / -1; }
#view-casesv2 .iv2-compact-actions { display: flex; justify-content: flex-end; gap: 7px; }
#view-casesv2 .iv2-schedule-editor details { margin-top: 8px; padding: 8px 11px; border: 1px solid #dde5ea; border-radius: 5px; background: #fafcfd; }
#view-casesv2 .iv2-schedule-editor summary { cursor: pointer; font-size: 12px; font-weight: 800; }
#view-casesv2 .iv2-existing-work-search { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; margin-top: 9px; }
#view-casesv2 .iv2-existing-work-result { display: grid; width: 100%; gap: 2px; margin-top: 6px; padding: 9px 10px; border: 1px solid #d8e2e8; border-radius: 5px; background: #fff; text-align: left; cursor: pointer; }
#view-casesv2 .iv2-existing-work-result:hover { border-color: #59a99e; background: #f1fbf8; }
#view-casesv2 .iv2-existing-work-result span { color: #6b7883; font-size: 11px; }
#view-casesv2 .iv2-selected-equipment-context { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 2px 10px; margin: 10px 0; padding: 10px 12px; border-left: 4px solid #0b8175; background: #f1f8f6; }
#view-casesv2 .iv2-selected-equipment-context span { grid-row: 1 / 3; align-self: center; color: #5e6d78; font-size: 11px; }
#view-casesv2 .iv2-selected-equipment-context small { color: #6c7883; }
#view-casesv2 .iv2-fault-wizard-nav.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#view-casesv2 .iv2-history-disclosure { padding: 10px 12px; border: 1px solid #d8e1e7; border-radius: 6px; background: #fff; }
#view-casesv2 .iv2-history-disclosure > summary { cursor: pointer; font-weight: 850; }
#view-casesv2 .iv2-history-disclosure[open] > summary { margin-bottom: 12px; }

@media (max-width: 720px) {
  #view-casesv2 .iv2-fault-stage { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #view-casesv2 .iv2-process-step { grid-template-columns: 34px minmax(0, 1fr); }
  #view-casesv2 .iv2-process-number { padding-top: 14px; }
  #view-casesv2 .iv2-process-body { padding: 12px 10px; }
  #view-casesv2 .iv2-process-title { align-items: stretch; flex-direction: column; }
  #view-casesv2 .iv2-process-title button { width: 100%; }
  #view-casesv2 .iv2-process-data { grid-template-columns: 1fr; }
  #view-casesv2 .iv2-process-data .wide { grid-column: auto; }
  #view-casesv2 .iv2-discovery-actions button { width: 100%; }
  #view-casesv2 .iv2-compact-editor { grid-template-columns: 1fr; }
  #view-casesv2 .iv2-compact-editor .wide { grid-column: auto; }
  #view-casesv2 .iv2-compact-actions { display: grid; grid-template-columns: 1fr 1fr; }
}

/* 이슈 V2 시안 구현: 목록 → 업무에서 생성 → 탭형 상세 */
#view-casesv2 { padding: 18px 20px 40px; }
.iv2-screen[hidden] { display: none !important; }
.iv2-heading { align-items: flex-end; margin-bottom: 14px; }
.iv2-heading h2 { font-size: 24px; }
.iv2-heading p { margin-top: 4px; }
.iv2-list-filters {
  display: grid;
  grid-template-columns: minmax(260px, 1.7fr) repeat(3, minmax(135px, .55fr)) auto;
  gap: 8px;
  margin-bottom: 12px;
  padding: 11px;
  border: 1px solid #d5dde5;
  border-radius: 6px;
  background: #fff;
}
.iv2-list-filters button { align-self: end; }
.iv2-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 12px;
  overflow: hidden;
  border: 1px solid #d5dde5;
  border-radius: 6px;
  background: #fff;
}
.iv2-metrics > div { padding: 12px 15px; border-right: 1px solid #e1e7ec; }
.iv2-metrics > div:last-child { border-right: 0; }
.iv2-metrics strong { display: block; color: #172033; font-size: 20px; }
.iv2-metrics span { color: #6b7785; font-size: 12px; }
.iv2-table-wrap { overflow-x: auto; border: 1px solid #d5dde5; border-radius: 6px; background: #fff; }
.iv2-table { width: 100%; min-width: 1020px; border-collapse: collapse; table-layout: fixed; }
.iv2-table .iv2-col-issue { width: 31%; }
.iv2-table .iv2-col-equipment { width: 14%; }
.iv2-table .iv2-col-symptom { width: 16%; }
.iv2-table .iv2-col-visits { width: 11%; }
.iv2-table .iv2-col-activity { width: 11%; }
.iv2-table .iv2-col-status { width: 9%; }
.iv2-table .iv2-col-cost { width: 8%; }
.iv2-table th { height: 40px; padding: 0 11px; color: #647180; background: #f5f7f9; border-bottom: 1px solid #d5dde5; font-size: 12px; text-align: left; }
.iv2-table td { padding: 11px; border-bottom: 1px solid #e4e9ee; vertical-align: top; font-size: 13px; }
.iv2-table tbody tr { cursor: pointer; }
.iv2-table tbody tr:hover { background: #f2f9f7; }
.iv2-plant { color: #08756c; font-weight: 850; }
.iv2-row-title { margin-top: 4px; color: #182331; font-weight: 800; line-height: 1.45; }
.iv2-cell-meta { margin-top: 4px; color: #7a8692; font-size: 11px; line-height: 1.4; }
.iv2-clamp { display: -webkit-box; overflow: hidden; line-height: 1.5; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.iv2-money { text-align: right; font-weight: 800; white-space: nowrap; }
.iv2-tag { display: inline-flex; align-items: center; min-height: 23px; padding: 2px 8px; border-radius: 4px; font-size: 11px; font-weight: 850; white-space: nowrap; }
.iv2-tag.green { color: #08764f; background: #e8f7ef; }
.iv2-tag.blue { color: #155fb0; background: #e9f2fd; }
.iv2-tag.amber { color: #946000; background: #fff2d5; }
.iv2-tag.muted { color: #66717c; background: #edf0f2; }
.iv2-list-foot { padding: 8px 4px; color: #6f7b87; font-size: 12px; text-align: right; }

.iv2-source-picker,
.iv2-create-step,
.iv2-panel,
.iv2-inline-editor { margin-bottom: 12px; border: 1px solid #d5dde5; border-radius: 6px; background: #fff; }
.iv2-create-step.disabled { opacity: .48; pointer-events: none; }
.iv2-step-head,
.iv2-editor-head,
.iv2-panel-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 13px;
  border-bottom: 1px solid #e1e7ec;
  background: #f8fafb;
}
.iv2-step-head { justify-content: flex-start; }
.iv2-step-head h3,
.iv2-editor-head h3,
.iv2-panel-title h3 { margin: 0; font-size: 15px; }
.iv2-step-head p,
.iv2-editor-head p { margin: 2px 0 0; color: #6f7c88; font-size: 12px; }
.iv2-step-number {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  flex: 0 0 auto;
  border-radius: 50%;
  color: #08756c;
  background: #e2f3f0;
  font-size: 12px;
  font-weight: 900;
}
.iv2-step-body { padding: 13px; }
.iv2-source-search { display: flex; gap: 8px; padding: 12px 13px 0; }
.iv2-source-results { display: grid; gap: 7px; max-height: 360px; padding: 12px 13px; overflow: auto; }
.iv2-selected-source { padding: 13px; }
.iv2-source-card { display: grid; grid-template-columns: 110px minmax(0, 1fr) auto; gap: 13px; align-items: start; padding: 12px; border: 1px solid #c9d7df; border-left: 4px solid #087f74; border-radius: 6px; background: #fff; }
.iv2-source-card.selected { border-color: #9accc5; background: #f2faf8; }
.iv2-source-badge { color: #08756c; font-size: 12px; font-weight: 850; }
.iv2-source-main > strong { display: block; color: #182331; font-size: 14px; }
.iv2-source-main > p { margin: 4px 0 0; color: #5e6c78; font-size: 12px; }
.iv2-source-memo { margin-top: 8px; padding: 8px 10px; border: 1px solid #e0e7ec; border-radius: 4px; background: #fff; font-size: 12px; line-height: 1.55; }
.iv2-source-foot { margin-top: 7px; }
.iv2-manufacturer-details { margin-top: 11px; border-top: 1px solid #e2e8ed; padding-top: 9px; }
.iv2-manufacturer-details summary { color: #52616e; font-size: 12px; font-weight: 750; cursor: pointer; }
.iv2-create-grid,
.iv2-form-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.iv2-create-grid label.full,
.iv2-form-grid label.full { grid-column: 1 / -1; }
.iv2-create-footer { padding: 12px 0 0; }
.iv2-create-footer > div { display: flex; gap: 8px; }

.iv2-detail-head { align-items: flex-start; margin-bottom: 12px; padding: 3px 0 13px; border-bottom: 1px solid #d6dfe6; }
.iv2-detail-head h2 { margin-top: 6px; font-size: 23px; }
.iv2-back-link { margin: 0 0 12px; padding: 0; border: 0; color: #53616e; background: transparent; font-weight: 750; cursor: pointer; }
.iv2-stage { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; margin-bottom: 12px; overflow: hidden; border: 1px solid #d4dde5; border-radius: 6px; background: #dfe6eb; }
.iv2-stage button { min-height: 42px; border: 0; color: #667380; background: #fff; font-size: 12px; font-weight: 800; cursor: pointer; }
.iv2-stage button.done { color: #08765a; background: #ecf8f2; }
.iv2-stage button.current { color: #fff; background: #087f74; }
.iv2-tabs { display: flex; gap: 5px; margin-bottom: 14px; overflow-x: auto; border-bottom: 1px solid #d6dfe6; }
.iv2-tabs button { min-height: 37px; padding: 0 13px; border: 1px solid transparent; border-radius: 5px 5px 0 0; color: #5f6d79; background: transparent; font-weight: 800; white-space: nowrap; cursor: pointer; }
.iv2-tabs button[aria-selected="true"] { color: #08756c; border-color: #b9d8d3; border-bottom-color: #fff; background: #fff; }
.iv2-overview-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 12px; }
.iv2-panel { overflow: hidden; }
.iv2-source-detail-card { padding: 14px; }
.iv2-source-detail-card > div:first-child strong { font-size: 15px; }
.iv2-source-detail-card > div:first-child p { margin: 4px 0 0; color: #667480; font-size: 12px; }
.iv2-source-body { margin-top: 12px; padding: 10px 11px; border: 1px solid #e2e7eb; border-radius: 5px; line-height: 1.55; white-space: normal; }
.iv2-keyrows { margin: 0; padding: 7px 13px 13px; }
.iv2-keyrows > div { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 10px; padding: 8px 0; border-bottom: 1px solid #edf0f3; }
.iv2-keyrows dt { color: #6f7d88; }
.iv2-keyrows dd { margin: 0; font-weight: 750; }
.iv2-keyrow-value { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-width: 0; }
.iv2-keyrow-value > span { min-width: 0; overflow-wrap: anywhere; }
.iv2-keyrow-value .small { flex: 0 0 auto; }
.iv2-panel-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; margin-bottom: 10px; }
.iv2-panel-heading h3 { margin: 0; font-size: 17px; }
.iv2-panel-heading p { margin: 3px 0 0; color: #6d7985; font-size: 12px; }

.iv2-fault-list { gap: 10px; }
.iv2-fault-card { display: grid; grid-template-columns: 74px minmax(0, 1fr); padding: 0; border-left-width: 4px; overflow: hidden; }
.iv2-fault-index { display: grid; place-items: center; color: #155fb0; background: #eef5fd; font-size: 12px; font-weight: 900; }
.iv2-fault-content { padding: 12px 14px; }
.iv2-fault-head { align-items: flex-start; }
.iv2-fault-head h3 { margin: 3px 0 0; font-size: 16px; }
.iv2-fault-head p { margin: 3px 0 0; }
.iv2-equipment-group { color: #08756c; font-size: 11px; font-weight: 850; }
.iv2-fault-sections { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 11px; }
.iv2-fault-sections section { display: grid; gap: 5px; padding: 10px 11px; border: 1px solid #dfe6eb; border-radius: 5px; background: #f9fafb; }
.iv2-fault-sections section:first-child { border-left: 3px solid #1676c4; }
.iv2-fault-sections section:last-child { border-left: 3px solid #c58200; }
.iv2-fault-sections span { color: #667480; font-size: 11px; font-weight: 750; }
.iv2-fault-sections strong { font-size: 13px; line-height: 1.5; }
.iv2-fault-sections small { color: #788592; }

.iv2-visit-timeline { position: relative; gap: 10px; margin-left: 10px; padding-left: 26px; }
.iv2-visit-timeline::before { content: ""; position: absolute; top: 12px; bottom: 12px; left: 8px; width: 2px; background: #cbd7df; }
.iv2-visit-card { position: relative; display: grid; grid-template-columns: 105px minmax(0, 1fr) 130px; gap: 13px; padding: 13px; border-left: 1px solid #dbe3ea; }
.iv2-visit-marker { position: absolute; top: 19px; left: -24px; width: 11px; height: 11px; border: 2px solid #087f74; border-radius: 50%; background: #fff; }
.iv2-visit-date { display: grid; align-content: start; gap: 3px; color: #687582; font-size: 12px; }
.iv2-visit-date strong { color: #22303c; font-size: 14px; }
.iv2-visit-main h3 { margin: 0; font-size: 15px; }
.iv2-linked-faults { margin: 5px 0 9px; color: #08756c; font-size: 12px; font-weight: 750; }
.iv2-visit-main dl { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0; }
.iv2-visit-main dl > div { padding: 8px 9px; border: 1px solid #e1e7ec; border-radius: 4px; background: #f9fafb; }
.iv2-visit-main dt { color: #6a7783; font-size: 11px; }
.iv2-visit-main dd { margin: 4px 0 0; line-height: 1.45; }
.iv2-visit-result { display: grid; align-content: start; justify-items: end; gap: 7px; }
.iv2-visit-result small { color: #6d7985; }
.iv2-visit-result strong { font-size: 15px; }

.iv2-inline-editor { overflow: hidden; border-color: #8fc7bf; background: #fbfffe; }
.iv2-form-section { margin: 12px; padding: 12px; border: 1px solid #dce4ea; border-radius: 6px; background: #fff; }
.iv2-form-section.equipment { border-left: 4px solid #087f74; }
.iv2-form-section.symptom { border-left: 4px solid #1676c4; }
.iv2-form-section.diagnosis { border-left: 4px solid #c58200; }
.iv2-form-section-title { display: flex; align-items: center; gap: 9px; margin-bottom: 10px; }
.iv2-form-section-title > span { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; color: #08756c; background: #e3f4f1; font-size: 11px; font-weight: 900; }
.iv2-form-section-title > div { display: grid; gap: 2px; }
.iv2-form-section-title small { color: #6e7b87; }
.iv2-form-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 12px 12px; }
.iv2-form-actions > span { color: #6f7b87; font-size: 12px; }
.iv2-form-actions.wide { grid-column: 1 / -1; padding: 0; }
.iv2-fault-checks { align-items: stretch; }
.iv2-fault-checks label { min-height: 38px; }
.iv2-part-row { grid-template-columns: minmax(200px, 1fr) 80px 70px 130px auto; }
.iv2-part-inline-editor { display: grid; grid-template-columns: auto 180px minmax(180px, 1fr) 80px 70px 120px auto auto; gap: 7px; align-items: center; margin-top: 12px; padding: 11px; border-top: 1px solid #dbe3ea; background: #f8fafb; }
.iv2-upload-inline { align-items: center; }
.iv2-history-layout { display: grid; grid-template-columns: 1.1fr .9fr; gap: 12px; }
.iv2-history { padding: 4px 13px 13px; }
.iv2-history > div { display: grid; grid-template-columns: 140px 110px minmax(0, 1fr); gap: 10px; padding: 9px 0; border-bottom: 1px solid #e7ebef; font-size: 12px; }
.iv2-upload-row { margin: 11px 13px 13px; }
.iv2-header-editor { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; width: 100%; }
.iv2-header-editor label { display: grid; gap: 4px; }
.iv2-header-editor label > span { color: #64748b; font-size: 12px; }
.iv2-header-editor .wide { grid-column: span 2; }

@media (max-width: 900px) {
  #view-casesv2 { padding: 13px; }
  .iv2-list-filters { grid-template-columns: 1fr 1fr; }
  .iv2-list-filters .iv2-search { grid-column: 1 / -1; }
  .iv2-list-filters button { grid-column: 1 / -1; }
  .iv2-overview-grid,
  .iv2-history-layout { grid-template-columns: 1fr; }
  .iv2-visit-card { grid-template-columns: 95px minmax(0, 1fr); }
  .iv2-visit-result { grid-column: 2; grid-auto-flow: column; justify-content: start; justify-items: start; }
  .iv2-part-inline-editor { grid-template-columns: 1fr 1fr; }
  .iv2-part-inline-editor > strong { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
  #view-casesv2 { padding: 10px; }
  .iv2-heading { align-items: stretch; }
  .iv2-list-filters { grid-template-columns: 1fr; }
  .iv2-list-filters .iv2-search,
  .iv2-list-filters button { grid-column: auto; }
  .iv2-metrics { grid-template-columns: 1fr 1fr; }
  .iv2-metrics > div:nth-child(2) { border-right: 0; }
  .iv2-metrics > div:nth-child(-n+2) { border-bottom: 1px solid #e1e7ec; }
  .iv2-source-card { grid-template-columns: 1fr; }
  .iv2-source-search { align-items: stretch; flex-direction: column; }
  .iv2-detail-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .iv2-detail-actions .primary { grid-column: 1 / -1; }
  .iv2-stage { grid-template-columns: 1fr; }
  .iv2-stage button { min-height: 35px; text-align: left; padding: 0 12px; }
  .iv2-tabs { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 0; }
  .iv2-tabs button { border-radius: 5px; }
  .iv2-fault-card { grid-template-columns: 1fr; }
  .iv2-fault-index { min-height: 34px; }
  .iv2-fault-sections { grid-template-columns: 1fr; }
  .iv2-visit-timeline { margin-left: 0; padding-left: 18px; }
  .iv2-visit-timeline::before { left: 3px; }
  .iv2-visit-marker { left: -21px; }
  .iv2-visit-card { grid-template-columns: 1fr; }
  .iv2-visit-result { grid-column: 1; grid-auto-flow: row; justify-items: start; }
  .iv2-visit-main dl { grid-template-columns: 1fr; }
  .iv2-form-section { margin: 8px; padding: 10px; }
  .iv2-form-grid,
  .iv2-create-grid,
  .iv2-header-editor { grid-template-columns: 1fr; }
  .iv2-form-grid .wide,
  .iv2-form-grid .full,
  .iv2-create-grid .wide,
  .iv2-create-grid .full,
  .iv2-header-editor .wide { grid-column: auto; }
  .iv2-part-row,
  .iv2-part-inline-editor { grid-template-columns: 1fr 90px; }
  .iv2-part-row input:first-child,
  .iv2-part-inline-editor > strong,
  .iv2-part-inline-editor select,
  .iv2-part-inline-editor input[name="part_name"] { grid-column: 1 / -1; }
  .iv2-history > div { grid-template-columns: 1fr; gap: 3px; }
  .iv2-form-actions { align-items: stretch; flex-direction: column; }
}

/* Compact equipment issue workflow */
.simple-case-heading { display: grid; grid-template-columns: minmax(220px, .8fr) minmax(320px, 1.2fr); gap: 10px; margin: 10px 0; }
.simple-issue-fault { margin-top: 10px; border: 1px solid #d9e3df; background: #fff; }
.simple-issue-step { padding: 14px; border-top: 1px solid #e3e9e6; }
.simple-issue-step:first-of-type { border-top: 0; }
.simple-step-title { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 12px; }
.simple-step-title > b { display: grid; flex: 0 0 28px; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: #dff3ed; color: #087f72; }
.simple-step-title strong, .simple-step-title span { display: block; }
.simple-step-title strong { margin-bottom: 2px; font-size: 14px; }
.simple-step-title span { color: var(--muted); font-size: 11px; }
.equipment-group-buttons { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.simple-site-context { display: grid; grid-template-columns: minmax(280px, 1.8fr) minmax(180px, .7fr) minmax(180px, .7fr); gap: 10px; align-items: stretch; margin-bottom: 10px; padding: 12px 14px; border: 1px solid #b8d9d2; border-left: 4px solid #0d8877; background: #f7fbfa; }
.simple-site-identity, .simple-site-contact, .simple-site-context label { display: flex; min-width: 0; flex-direction: column; justify-content: center; gap: 3px; }
.simple-site-identity > span, .simple-site-contact > span, .simple-site-context label > span { color: #5a6d67; font-size: 10px; font-weight: 700; }
.simple-site-identity > strong { color: #0b6559; font-size: 19px; line-height: 1.25; overflow-wrap: anywhere; }
.simple-site-identity > small { color: #52615c; font-size: 12px; line-height: 1.35; overflow-wrap: anywhere; }
.simple-site-contact > strong { font-size: 13px; line-height: 1.35; overflow-wrap: anywhere; }
.equipment-group-button { min-height: 34px; padding: 6px 12px; border: 1px solid #cbd8d3; border-radius: 6px; background: #fff; color: #34453f; font-weight: 700; }
.equipment-group-button.active { border-color: #087f72; background: #e2f4ef; color: #08695f; box-shadow: inset 0 0 0 1px #087f72; }
.simple-equipment-selects { display: grid; grid-template-columns: 1.1fr 1fr 1fr; gap: 8px; }
.simple-equipment-selects label, .simple-fault-inputs label, .simple-optional-grid label, .simple-file-field { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
.simple-equipment-selects label > span, .simple-fault-inputs label > span, .simple-optional-grid label > span, .simple-file-field > span { color: #52615c; font-size: 11px; font-weight: 700; }
.simple-fault-inputs { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); gap: 8px; align-items: end; }
.simple-fault-inputs .wide { grid-column: span 2; }
.simple-fault-inputs textarea { min-height: 58px; resize: vertical; }
.simple-fault-inputs .checkbox-label { min-height: 34px; flex-direction: row; align-items: center; align-self: end; }
.simple-observation-step { background: #fcfefd; }
.simple-resolution-step { border-top: 3px solid #9fcfc3; background: #f7fbfa; }
.simple-resolution-target { display: grid; grid-template-columns: minmax(280px, .9fr) minmax(320px, 1.6fr); gap: 10px; align-items: stretch; margin-bottom: 10px; }
.simple-resolution-target label { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
.simple-resolution-target label > span { color: #52615c; font-size: 11px; font-weight: 700; }
.simple-resolution-summary { min-width: 0; padding: 8px 10px; border: 1px solid #cdded9; background: #fff; color: #62716c; font-size: 11px; line-height: 1.4; }
.simple-resolution-summary b, .simple-resolution-summary span { display: inline-block; margin-right: 8px; }
.simple-resolution-summary b { color: #0a6f63; font-size: 12px; }
.simple-resolution-summary p { margin: 4px 0 0; color: #34433e; white-space: pre-wrap; overflow-wrap: anywhere; }
.simple-file-field { margin-top: 10px; padding: 10px; border: 1px dashed #a9c9bf; background: #f7fbfa; }
.simple-file-field small { color: #87938f; font-weight: 400; }
.issue-step-actions { justify-content: flex-end; margin-top: 12px; }
.simple-optional { margin-top: 10px; border-top: 1px solid #e5ebe8; }
.simple-optional > summary { padding: 10px 0 4px; color: #43544e; font-size: 12px; font-weight: 700; cursor: pointer; }
.simple-optional-grid { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); gap: 8px; padding: 6px 0; }
.simple-asset-save-row { display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding-top: 8px; }
.simple-asset-save-row > span { color: #667772; font-size: 11px; }
.issue-quick-editor { border: 2px solid #b9d7ce; background: #fff; }
.simple-equipment-title { margin-bottom: 10px; }
.simple-fault-list { margin-top: 16px; }
.simple-fault-card { margin-bottom: 8px; padding: 12px 14px; border: 1px solid #dbe3e0; border-left: 4px solid #168b76; background: #fff; }
.simple-fault-card-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.simple-fault-card-head > div:last-child { display: flex; flex-wrap: wrap; gap: 5px; justify-content: flex-end; }
.simple-fault-card-head span { color: var(--muted); font-size: 10px; }
.simple-fault-card-head h4 { margin: 2px 0 0; font-size: 14px; }
.simple-fault-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px 16px; margin: 10px 0 0; }
.simple-fault-summary div.wide { min-width: 0; }
.simple-fault-summary dt { margin-bottom: 2px; color: #73817c; font-size: 10px; font-weight: 700; }
.simple-fault-summary dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.simple-fault-summary small { color: #71807b; }
.simple-fault-parts { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; margin-top: 8px; padding-top: 8px; border-top: 1px solid #edf0ef; }
.simple-fault-parts span { padding: 3px 7px; border-radius: 4px; background: #eef6f3; font-size: 10px; }
.simple-asset-meta { margin-top: 7px; color: #74817c; font-size: 10px; }
.simple-parts-title { display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.simple-part-row { display: grid; grid-template-columns: 24px 1.1fr 1fr 70px 1fr 1fr 34px; gap: 6px; align-items: center; margin-top: 6px; }
.simple-part-row > span { text-align: center; color: #73817c; }
.case-support-details { margin-top: 12px; border: 1px solid #dfe6e3; background: #fafcfb; }
.case-support-details > summary { padding: 11px 13px; color: #40534c; font-size: 12px; font-weight: 700; cursor: pointer; }
.case-extra-ledger-body { padding: 0 13px 13px; }

@media (max-width: 900px) {
  .simple-site-context { grid-template-columns: 1fr 1fr; }
  .simple-site-identity { grid-column: 1 / -1; }
  .simple-equipment-selects, .simple-optional-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .simple-resolution-target { grid-template-columns: 1fr; }
  .simple-fault-inputs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .simple-fault-summary { grid-template-columns: 1fr; }
  .simple-part-row { grid-template-columns: 24px 1fr 1fr 60px 34px; }
  .simple-part-row input:nth-of-type(4), .simple-part-row input:nth-of-type(5) { grid-column: span 2; }
}

@media (max-width: 720px) {
  .simple-site-context { grid-template-columns: 1fr; }
  .simple-site-identity { grid-column: auto; }
  .simple-site-identity > strong { font-size: 17px; }
  .simple-asset-save-row { align-items: stretch; flex-direction: column; }
  .simple-asset-save-row button { width: 100%; }
  .simple-case-heading, .simple-equipment-selects, .simple-resolution-target, .simple-fault-inputs, .simple-optional-grid { grid-template-columns: 1fr; }
  .simple-fault-inputs .wide { grid-column: auto; }
  .simple-issue-step { padding: 12px 10px; }
  .equipment-group-buttons { display: grid; grid-template-columns: repeat(3, 1fr); }
  .equipment-group-button { width: 100%; padding-inline: 5px; }
  .simple-fault-card-head { flex-direction: column; }
  .simple-fault-card-head > div:last-child { justify-content: flex-start; }
  .simple-part-row { grid-template-columns: 22px minmax(0, 1fr) 60px 32px; }
  .simple-part-row input:nth-of-type(2), .simple-part-row input:nth-of-type(4), .simple-part-row input:nth-of-type(5) { grid-column: 2 / -1; }
}

/* 설비·고장 추적 ------------------------------------------------------------ */
.equipment-tracking {
  margin: 22px -2px 8px;
  padding: 18px 0 4px;
  border-top: 2px solid #b7d8cf;
}
.equipment-title {
  display: grid;
  grid-template-columns: minmax(260px, 0.8fr) minmax(520px, 1.2fr);
  gap: 20px;
  align-items: end;
}
.equipment-title h3 { margin: 2px 0 4px !important; color: #172620 !important; font-size: 18px !important; }
.equipment-title p { margin: 0; color: var(--muted); font-size: 12px; }
.equipment-kpis {
  display: grid;
  grid-template-columns: repeat(5, minmax(88px, 1fr));
  border: 1px solid #dbe5e1;
  border-radius: 6px;
  overflow: hidden;
  background: #f8fbfa;
}
.equipment-kpis span { min-width: 0; padding: 9px 10px; border-left: 1px solid #e3ebe8; color: #68736f; font-size: 11px; }
.equipment-kpis span:first-child { border-left: 0; }
.equipment-kpis b { display: block; color: #0f6e56; font-size: 17px; line-height: 1.1; }
.equipment-linked { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 12px; }
.equipment-workflow {
  display: grid;
  gap: 12px;
  margin-top: 14px;
}
.equipment-workflow-step {
  padding: 14px;
  border: 1px solid #d8e2de;
  border-left: 4px solid #17856d;
  border-radius: 6px;
  background: #fff;
}
.equipment-workflow-head {
  display: flex;
  align-items: center;
  gap: 10px;
}
.equipment-workflow-head > span {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  border-radius: 50%;
  background: #dcefe8;
  color: #075e4c;
  font-size: 12px;
  font-weight: 900;
}
.equipment-workflow-head > div { min-width: 0; flex: 1; }
.equipment-workflow-head h4 { margin: 0; color: #172620; font-size: 14px; }
.equipment-workflow-head p { margin: 2px 0 0; color: #68736f; font-size: 11px; }
.equipment-workflow-head > button { flex: 0 0 auto; }
.equipment-chip {
  display: inline-grid;
  grid-template-columns: auto auto;
  gap: 1px 7px;
  max-width: 360px;
  padding: 7px 9px;
  border: 1px solid #bcdad2;
  border-radius: 6px;
  background: #f2faf7;
}
.equipment-chip b { color: #075e4c; font-size: 12px; }
.equipment-chip span { grid-column: 1 / -1; overflow: hidden; color: #62706b; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.equipment-chip em { grid-column: 2; grid-row: 1; color: #9b5c12; font-size: 10px; font-style: normal; }
.equipment-actions-bar { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
.equipment-actions-bar select { min-width: min(460px, 100%); flex: 1; }
.equipment-form {
  margin-top: 10px;
  padding: 12px 0;
  border-top: 1px solid #dde4e1;
  border-bottom: 1px solid #dde4e1;
  background: #fbfcfc;
}
.equipment-form[hidden] { display: none; }
.equipment-form h4 { margin: 0 0 10px; padding: 0 10px; color: #20342e; font-size: 14px; }
.equipment-form-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(140px, 1fr));
  gap: 8px;
  padding: 0 10px;
}
.equipment-form-grid.equipment-form-grid-basic { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.equipment-form-grid.compact { grid-template-columns: repeat(4, minmax(150px, 1fr)); padding: 10px 0 0; }
.equipment-form-grid label { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
.equipment-form-grid label > span { color: #5d6864; font-size: 11px; font-weight: 700; }
.equipment-form-grid label.wide { grid-column: span 2; }
.equipment-form-grid input,
.equipment-form-grid select,
.equipment-form-grid textarea { width: 100%; min-width: 0; }
.equipment-form-grid textarea { resize: vertical; }
.equipment-advanced { margin: 10px 10px 0; border-top: 1px solid #e1e8e5; }
.equipment-advanced > summary { padding: 9px 0 2px; cursor: pointer; color: #58655f; font-size: 11px; font-weight: 800; }
.equipment-form .form-actions,
.equipment-subsection .form-actions { display: flex; justify-content: flex-end; gap: 6px; padding: 10px 10px 0; }
.fault-event-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.fault-event {
  min-width: 0;
  padding: 12px;
  border: 1px solid #d8dfdc;
  border-left: 3px solid #17856d;
  border-radius: 5px;
  background: #fff;
}
.fault-event-head { display: flex; gap: 10px; justify-content: space-between; align-items: start; }
.fault-event-head h4 { margin: 3px 0 0; font-size: 14px; }
.fault-event-badges { display: flex; gap: 4px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.fault-event-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 10px 0 0; border-top: 1px solid #edf0ee; }
.fault-event-grid > div { min-width: 0; padding: 7px 8px 7px 0; border-bottom: 1px solid #edf0ee; }
.fault-event-grid > div.wide { grid-column: span 3; }
.fault-event-grid dt { color: #7a847f; font-size: 10px; }
.fault-event-grid dd { margin: 2px 0 0; color: #26342f; font-size: 12px; white-space: pre-wrap; }
.measurement-list { display: flex; gap: 4px; flex-wrap: wrap; margin-top: 8px; }
.measurement-chip { padding: 3px 6px; border-radius: 4px; background: #eef4fa; color: #315d7e; font-size: 10px; }
.fault-actions { margin-top: 9px; font-size: 11px; }
.fault-actions strong { color: #5d6864; }
.fault-actions ol { margin: 5px 0 0; padding-left: 18px; }
.fault-actions li { margin: 3px 0; }
.fault-actions li span { margin-right: 6px; color: #7f8985; }
.fault-actions li em { display: inline-block; margin-left: 6px; color: #7b5c15; font-style: normal; }
.empty-state.compact { min-height: 110px; padding: 22px; }
.empty-state.compact span { display: block; margin-top: 4px; }
.equipment-subsection { margin-top: 12px; padding: 0; border-top: 1px solid #cfd9d5; }
.equipment-subsection > summary { padding: 11px 2px 8px; cursor: pointer; color: #26342f; font-size: 13px; font-weight: 800; }
.equipment-subsection > summary span { margin-left: 5px; color: #0f6e56; font-weight: 600; }
.equipment-history-tools { display: flex; align-items: center; gap: 10px; margin-bottom: 7px; }
.equipment-history-tools input { width: min(440px, 100%); }
.equipment-history-table td:nth-child(2) { min-width: 230px; }
.equipment-history-table td:nth-child(4) { min-width: 260px; }
.legacy-faults { margin: 14px 0; border-top: 1px solid #e3e5e4; }
.legacy-faults > summary { padding: 10px 0; cursor: pointer; color: var(--muted); font-size: 12px; }

@media (max-width: 1100px) {
  .equipment-title { grid-template-columns: 1fr; align-items: stretch; }
  .equipment-form-grid { grid-template-columns: repeat(3, minmax(140px, 1fr)); }
  .equipment-form-grid.compact { grid-template-columns: repeat(2, minmax(150px, 1fr)); }
}

@media (max-width: 720px) {
  .equipment-tracking { margin-top: 18px; padding-top: 14px; }
  .equipment-title { gap: 10px; }
  .equipment-title h3 { font-size: 17px !important; }
  .equipment-kpis { grid-template-columns: repeat(2, 1fr); }
  .equipment-kpis span { border-bottom: 1px solid #e3ebe8; }
  .equipment-kpis span:nth-child(odd) { border-left: 0; }
  .equipment-kpis span:last-child { grid-column: 1 / -1; border-bottom: 0; }
  .equipment-actions-bar { display: grid; grid-template-columns: 1fr 1fr; }
  .equipment-actions-bar select { grid-column: 1 / -1; width: 100%; min-width: 0; }
  .equipment-form-grid,
  .equipment-form-grid.equipment-form-grid-basic,
  .equipment-form-grid.compact { grid-template-columns: 1fr; padding-inline: 0; }
  .equipment-form-grid label.wide { grid-column: auto; }
  .equipment-form h4 { padding-inline: 0; }
  .equipment-advanced { margin-inline: 0; }
  .equipment-workflow-step { padding: 11px; }
  .equipment-workflow-head { align-items: flex-start; flex-wrap: wrap; }
  .equipment-workflow-head > button { width: 100%; }
  .equipment-form .form-actions,
  .equipment-subsection .form-actions { padding-inline: 0; }
  .fault-event-list { grid-template-columns: 1fr; }
  .fault-event-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fault-event-grid > div.wide { grid-column: span 2; }
  .equipment-history-tools { align-items: stretch; flex-direction: column; }
  #view-cases .equipment-history-table,
  #view-cases .equipment-history-table tbody,
  #view-cases .equipment-history-table tr,
  #view-cases .equipment-history-table td { display: block; width: 100%; }
  #view-cases .equipment-history-table thead { display: none; }
  #view-cases .equipment-history-table tr { margin-bottom: 8px; padding: 8px; border: 1px solid #dce3e0; border-radius: 5px; }
  #view-cases .equipment-history-table td { min-width: 0 !important; padding: 3px 0 3px 84px; border: 0; }
  #view-cases .equipment-history-table td::before { position: absolute; left: 8px; width: 68px; content: attr(data-label); color: #7a847f; font-size: 10px; font-weight: 700; }
}
.cal-entry.band-green { background: #e2efda; color: #2c4a1e; }
.cal-entry.band-blue { background: #ddebf7; color: #1c4468; }
.cal-entry.band-purple { background: #eadcf8; color: #4b2a6e; }
.cal-entry.band-pink { background: #ffd6de; color: #9c1414; }
.cal-entry.band-yellow { background: #fff2cc; color: #6b4e00; }
.cal-entry.done { opacity: 0.5; }
.band-toggle { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.band-toggle button { font-size: 12px; padding: 2px 10px; border-radius: 4px; border: 1px solid transparent; }
.band-toggle button.off { opacity: 0.25; }
.assignee-filter { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; max-width: 100%; }
.assignee-chip {
  font-size: 12px; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--border);
  background: #fff; color: var(--text); cursor: pointer;
}
.assignee-chip.active { background: #e8f0ff; color: #1c4468; border-color: #9db7e8; }
.assignee-chip.off { opacity: 0.28; text-decoration: line-through; }
.assignee-filter .small-mode { font-size: 11px; }
.modal-overlay {
  position: fixed; inset: 0; background: rgba(35,36,31,0.45);
  display: none; align-items: center; justify-content: center; z-index: 90; padding: 20px;
}
.modal-overlay.show { display: flex; }
.modal-box {
  background: var(--card); border-radius: 12px; padding: 18px 20px;
  width: min(780px, 96vw); max-width: 96vw; max-height: calc(100vh - 36px); overflow-y: auto;
  box-shadow: 0 8px 30px rgba(0,0,0,0.25);
}
#quick-add-modal .modal-box { width: min(940px, 96vw); }
.mobile-work-tools { display: flex; gap: 8px; align-items: center; }
.mobile-work-select-toggle { display: none; }
#work-form-card { display: none !important; }
.quick-add-footer {
  margin-top: 12px;
  display: flex;
  gap: 8px;
  align-items: center;
}

.task-attachment-panel { border: 1px solid #d7e1e7; border-radius: 7px; padding: 10px; background: #f8fafb; }
.task-attachment-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.task-attachment-head span { color: #68747d; font-size: 12px; }
.task-attachment-list { display: grid; gap: 6px; margin-bottom: 8px; }
.task-attachment-item { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto auto; align-items: center; gap: 8px; min-height: 42px; padding: 5px 7px; border: 1px solid #dfe6ea; background: #fff; }
.task-attachment-item img { width: 42px; height: 42px; object-fit: cover; border-radius: 4px; }
.task-attachment-item .file-icon { display: grid; place-items: center; width: 42px; height: 42px; background: #edf3f5; color: #53636d; font-size: 11px; font-weight: 700; }
.task-attachment-item .file-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.task-attachment-item.pending { background: #f3fbf8; border-color: #b9ddd2; }
.task-attachment-panel input[type="file"] { width: 100%; }
.task-attachment-panel p { margin: 6px 0 0; }
.modal-box h2 { margin: 0 0 4px; font-size: 17px; }
.modal-box table.detail { width: 100%; font-size: 14px; border-collapse: collapse; margin-top: 10px; }
.modal-box table.detail td { padding: 6px 4px; border-bottom: 1px solid var(--border); vertical-align: top; }
.modal-box table.detail td:first-child { color: var(--muted); width: 90px; white-space: nowrap; }
.detail-attachment-panel {
  margin-top: 12px;
  padding-top: 11px;
  border-top: 1px solid var(--border);
}
.detail-attachment-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}
.detail-attachment-head > div { display: flex; align-items: center; gap: 7px; }
.detail-attachment-head span { color: var(--muted); font-size: 11px; }
.detail-image-gallery { grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
.detail-image-card .pi-image-open img { height: 220px; }
.detail-file-kind {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 38px;
  height: 30px;
  border-radius: 4px;
  background: #edf3f5;
  color: #53636d;
  font-size: 9px;
  font-weight: 800;
}
.pin-change-box { width: min(430px, calc(100vw - 28px)); }
.pin-change-fields {
  display: grid;
  gap: 10px;
  margin-top: 16px;
}
.pin-change-fields label {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  color: #475467;
  font-weight: 700;
}
.pin-change-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
}
.pin-change-footer button { min-width: 86px; }
.release-note-box { width: min(620px, calc(100vw - 28px)); }
.release-note-heading { border-bottom: 1px solid var(--border); padding-bottom: 12px; }
.release-note-heading h2 { margin: 8px 0 3px; font-size: 20px; }
.release-note-version {
  display: inline-block;
  color: #075f58;
  background: #dff7f3;
  border: 1px solid #9edbd2;
  border-radius: 4px;
  padding: 3px 8px;
  font-size: 12px;
  font-weight: 700;
}
.release-note-items { margin: 8px 0 18px; padding: 0; list-style: none; }
.release-note-items li {
  position: relative;
  padding: 11px 8px 11px 26px;
  border-bottom: 1px solid var(--border);
  line-height: 1.5;
}
.release-note-items li::before {
  content: "";
  position: absolute;
  left: 8px;
  top: 18px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--accent);
}
.release-note-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.release-note-footer button { min-width: 86px; }
.mini-thread { margin-top: 10px; }
.mini-thread h3 { margin: 8px 0 6px; font-size: 13px; }
.mini-thread-list { display: flex; flex-direction: column; gap: 4px; }
.mini-thread-item {
  width: 100%; text-align: left; border: 1px solid var(--border); background: #fff;
  border-radius: 8px; padding: 7px 8px; cursor: pointer;
}
.mini-thread-item:hover { border-color: #9db7e8; background: #f7fbff; }
.mini-thread-item.current { border-color: var(--accent); background: var(--accent-bg); }
.mini-thread-item .line { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.mini-thread-item .title { font-weight: 600; }
.mini-thread-item .meta { margin-top: 2px; font-size: 12px; color: var(--muted); }
.follow-panel {
  border: 1px solid #d9e4ef;
  background: #f7fbff;
  border-radius: 10px;
  padding: 10px;
}
.follow-row { display: grid; grid-template-columns: 180px 1fr; gap: 10px; align-items: end; margin-bottom: 10px; }
.follow-row select { width: 100%; }
.attach-box { border-top: 1px solid #d9e4ef; padding-top: 10px; }
.attach-search-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  gap: 0;
  align-items: stretch;
  margin-top: 4px;
}
.attach-search-row input {
  border-radius: 8px 0 0 8px;
  border-right: 0;
  width: 100%;
}
.attach-search-row button {
  border-radius: 0 8px 8px 0;
  min-width: 72px;
}
.attach-results { margin-top: 8px; display: flex; flex-direction: column; gap: 6px; }
.attach-result {
  display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 6px; align-items: center;
  padding: 6px 8px; border: 1px solid var(--border); border-radius: 8px; background: #fff;
}
.attach-result .main { min-width: 0; }
.attach-result .title { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.attach-result .meta { font-size: 12px; color: var(--muted); margin-top: 2px; }
.cal-legend.cal-legend { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; font-size: 11px; color: var(--muted); }
.cal-legend span { padding: 1px 8px; border-radius: 3px; }

.plant-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; margin-bottom: 12px; }
.summary-card { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 12px; }
.summary-card h4 { margin: 0 0 8px; font-size: 14px; }
.summary-card .chips { display: flex; flex-wrap: wrap; gap: 4px; }

.thread { border-left: 2px solid var(--border); margin-left: 6px; padding-left: 14px; }
.thread-item { margin-bottom: 10px; }
.thread-item .meta { font-size: 12px; color: var(--muted); }
.thread-item .t { margin: 2px 0 0; }

.muted { color: var(--muted); font-size: 12px; }
.right { margin-left: auto; }
.toast {
  position: fixed;
  left: max(12px, env(safe-area-inset-left));
  right: max(12px, env(safe-area-inset-right));
  bottom: max(16px, calc(env(safe-area-inset-bottom) + 10px));
  width: fit-content;
  max-width: min(560px, calc(100vw - 24px));
  margin-inline: auto;
  transform: none;
  background: var(--text); color: #fff; padding: 8px 18px; border-radius: 20px;
  box-sizing: border-box;
  white-space: normal;
  overflow-wrap: anywhere;
  text-align: center;
  font-size: 13px; opacity: 0; transition: opacity 0.3s; pointer-events: none; z-index: 5000;
}
.toast.show { opacity: 0.92; }

.page-scroll-tools {
  position: fixed;
  right: 18px;
  bottom: 22px;
  z-index: 96;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.page-scroll-tools[hidden] { display: none; }
body:has(.modal-overlay.show) .page-scroll-tools { display: none; }
.page-scroll-tools button {
  width: 38px;
  height: 38px;
  padding: 0;
  border: 1px solid #c7d3d1;
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.96);
  color: var(--accent);
  font-size: 20px;
  line-height: 1;
  box-shadow: 0 3px 12px rgba(29, 55, 52, 0.14);
  backdrop-filter: blur(6px);
}
.page-scroll-tools button:hover:not(:disabled) {
  border-color: var(--accent);
  background: var(--accent-bg);
}
.page-scroll-tools button:disabled {
  opacity: 0.35;
  cursor: default;
}
@media (max-width: 720px) {
  .page-scroll-tools {
    right: 10px;
    bottom: 14px;
    gap: 5px;
  }
  .page-scroll-tools button {
    width: 36px;
    height: 36px;
    font-size: 18px;
  }
}

/* 업무대장: 조회 범위, 상세 필터, 데이터 도구를 분리한 작업형 필터 바. */
#wl-controls {
  display: block;
  margin-bottom: 10px;
  padding: 12px;
  border-color: #d8e2de;
  border-radius: 6px;
  background: #f8faf9;
  box-shadow: none;
}

#wl-controls .mobile-work-tools {
  justify-content: flex-end;
  margin-bottom: 10px;
}

.wl-filter-row {
  display: grid;
  align-items: end;
  gap: 8px;
  width: 100%;
}

.wl-filter-main {
  grid-template-columns: minmax(135px, .62fr) minmax(260px, 1.55fr) minmax(150px, .86fr) minmax(170px, 1fr) minmax(150px, .86fr);
}

.wl-filter-detail {
  grid-template-columns: repeat(3, minmax(130px, .68fr)) minmax(150px, .8fr) minmax(220px, 1.25fr) auto;
  margin-top: 8px;
  padding-top: 9px;
  border-top: 1px solid #e1e8e5;
}

#wl-controls .wl-filter-field {
  display: grid;
  align-content: end;
  gap: 4px;
  min-width: 0;
  color: #66736f;
  font-size: 11px;
  font-weight: 750;
  line-height: 1.2;
}

#wl-controls .wl-filter-field > span {
  padding-left: 1px;
}

#wl-controls .wl-filter-field > :is(input, select),
#wl-controls .wl-filter-field > .search-select,
#wl-controls .search-select-input {
  width: 100%;
  min-width: 0;
  max-width: none;
}

#wl-controls .wl-filter-field > :is(input, select),
#wl-controls .search-select-input {
  height: 38px;
  min-height: 38px;
  padding: 7px 10px;
  border: 1px solid #cfdad6;
  border-radius: 5px;
  background-color: #fff;
  color: #26332f;
  font-size: 13px;
  line-height: 1.25;
  transition: border-color 120ms ease, box-shadow 120ms ease, background-color 120ms ease;
}

#wl-controls .search-select-input {
  padding-right: 55px;
}

#wl-controls .wl-filter-field > :is(input, select):hover,
#wl-controls .search-select-input:hover {
  border-color: #aebfba;
}

#wl-controls .wl-filter-field > :is(input, select):focus,
#wl-controls .search-select-input:focus {
  outline: 0;
  border-color: #2d9583;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(15, 118, 110, .12);
}

#wl-controls .search-select-clear,
#wl-controls .search-select-toggle {
  top: auto;
  bottom: 7px;
  width: 24px;
  height: 24px;
  border: 0;
  border-radius: 3px;
  background: transparent;
  color: #66736f;
  line-height: 24px;
  transform: none;
}

#wl-controls .search-select-clear { right: 31px; }
#wl-controls .search-select-toggle { right: 5px; }

#wl-controls .search-select-menu {
  top: calc(100% + 5px);
  border-color: #cfdad6;
  border-radius: 5px;
  box-shadow: 0 12px 26px rgba(25, 48, 42, .14);
}

#wl-controls .search-select-option {
  min-height: 34px;
  padding: 7px 9px;
  font-size: 12px;
}

.wl-query-actions {
  display: flex;
  align-items: stretch;
  justify-content: flex-end;
  gap: 7px;
  min-width: max-content;
}

#wl-controls .wl-query-actions > button {
  min-height: 38px;
  padding: 7px 14px;
  white-space: nowrap;
}

#wl-controls .wl-mine-toggle {
  min-height: 38px;
  border-left-width: 3px;
}

.wl-filter-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 10px;
  padding-top: 9px;
  border-top: 1px solid #e1e8e5;
}

.wl-filter-result {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  min-width: max-content;
}

.wl-filter-result strong {
  color: #0a6759;
  font-size: 16px;
}

.wl-filter-result span {
  color: #75817d;
  font-size: 11px;
}

.wl-data-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 5px;
}

#wl-controls .wl-data-actions button {
  min-height: 30px;
  padding: 5px 9px;
  border-color: #d5dfdb;
  background: #fff;
  color: #50605b;
  font-size: 11px;
}

#wl-controls .wl-data-actions button:hover {
  border-color: #8fb4aa;
  background: #f0f7f5;
  color: #0a6759;
}

@media (max-width: 1100px) {
  .wl-filter-main {
    grid-template-columns: minmax(130px, .65fr) minmax(230px, 1.35fr) repeat(3, minmax(135px, 1fr));
  }
  .wl-filter-detail {
    grid-template-columns: repeat(4, minmax(125px, 1fr));
  }
  .wl-filter-search { grid-column: span 3; }
  .wl-query-actions { grid-column: span 1; }
}

@media (max-width: 720px) {
  #wl-controls {
    padding: 10px;
  }
  #wl-controls .mobile-work-tools {
    margin-bottom: 10px;
  }
  .wl-filter-main,
  .wl-filter-detail {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 8px;
  }
  .wl-filter-plant,
  .wl-filter-month,
  .wl-filter-assignee,
  .wl-filter-search {
    grid-column: 1 / -1;
  }
  #wl-controls .search-select {
    width: 100%;
    min-width: 0;
    flex: none;
  }
  #wl-controls .wl-filter-field > :is(input, select),
  #wl-controls .search-select-input {
    height: 42px;
    min-height: 42px;
    font-size: 14px;
  }
  .wl-query-actions {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    min-width: 0;
  }
  #wl-controls .wl-query-actions > button,
  #wl-controls .wl-mine-toggle {
    width: 100%;
    min-height: 42px;
  }
  #wl-controls .wl-query-actions > button:only-child,
  #wl-controls .wl-query-actions:has(.wl-mine-toggle[hidden]) #wl-refresh {
    grid-column: 1 / -1;
  }
  .wl-filter-footer {
    align-items: flex-start;
    flex-direction: column;
  }
  .wl-data-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }
  #wl-controls .wl-data-actions button {
    width: 100%;
    min-height: 36px;
  }
}

/* 2026-07 polish pass: keep the existing app structure, tighten the visual system. */
:root {
  --bg: #f6f7f8;
  --card: #ffffff;
  --border: #d8dde3;
  --text: #1f242b;
  --muted: #6b7280;
  --accent: #0c766e;
  --accent-bg: #dff7f3;
  --danger: #b42318;
  --danger-bg: #fee4e2;
  --warn-bg: #fff3d6;
  --warn: #92400e;
  --blue: #175cd3;
  --blue-bg: #e7f0ff;
  --radius: 8px;
}

body {
  background:
    linear-gradient(180deg, #eef3f6 0, rgba(238, 243, 246, 0) 260px),
    var(--bg);
  color: var(--text);
}

header.topbar {
  min-height: 58px;
  padding: 10px 18px;
  border-bottom-color: #cfd7df;
  box-shadow: 0 1px 0 rgba(21, 32, 43, 0.04), 0 8px 24px rgba(21, 32, 43, 0.05);
  transition: transform 180ms ease, box-shadow 180ms ease;
  will-change: transform;
}

header.topbar h1 {
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 0;
  color: #16202a;
}

nav.tabs {
  gap: 2px;
  padding: 3px;
  background: #eef2f5;
  border: 1px solid #dde4ea;
  border-radius: 8px;
}

nav.tabs button {
  border-radius: 6px;
  padding: 7px 11px;
  color: #53606f;
}

nav.tabs button.active {
  background: #ffffff;
  color: var(--accent);
  box-shadow: 0 1px 4px rgba(15, 23, 42, 0.12);
}

.tab-release-card .section-title-row { align-items: flex-start; }
.tab-release-card h2 { margin-bottom: 3px; }
.tab-release-card p { margin: 0; }
.tab-release-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 6px; }
.tab-release-item { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px; align-items: center; min-height: 54px; padding: 8px 10px; border: 1px solid var(--border); background: #fff; }
.tab-release-item > div { min-width: 0; }
.tab-release-item strong, .tab-release-item span { display: block; }
.tab-release-item > div span { margin-top: 2px; color: var(--muted); font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tab-release-state { padding: 3px 7px; border-radius: 999px; font-size: 10px; font-weight: 800; white-space: nowrap; }
.tab-release-state.published { background: #def5ec; color: #08634c; }
.tab-release-state.hidden { background: #f1f2ef; color: #676a63; }
.tab-order-manager { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--border); }
.tab-order-heading { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 9px; }
.tab-order-heading h3 { margin: 0 0 3px; font-size: 14px; }
.tab-order-heading p { margin: 0; }
.tab-order-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 6px; }
.tab-order-item { display: grid; grid-template-columns: 26px minmax(110px, 1fr) auto auto; align-items: center; gap: 6px; min-height: 44px; padding: 6px 7px; border: 1px solid var(--border); background: #fff; }
.tab-order-number { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; background: #edf3f1; color: #40645c; font-size: 11px; font-weight: 800; }
.tab-label-input { width: 100%; min-width: 0; height: 30px; min-height: 30px; padding: 4px 7px; font-size: 12px; font-weight: 700; }
.tab-label-save { min-height: 28px; padding: 3px 8px; }
.tab-order-actions { display: flex; gap: 3px; }
.tab-order-actions .icon-button { width: 28px; min-width: 28px; height: 28px; padding: 0; font-size: 15px; }
.tab-nav-manager { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--border); }
.tab-nav-group-list { display: grid; grid-template-columns: repeat(4, minmax(190px, 1fr)); gap: 6px; }
.tab-nav-group-row { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; align-items: end; gap: 6px; padding: 7px; border: 1px solid var(--border); background: #f8faf9; }
.tab-nav-group-row > label { display: grid; gap: 3px; min-width: 0; color: var(--muted); font-size: 10px; }
.tab-nav-group-row input { width: 100%; min-width: 0; height: 30px; font-size: 12px; font-weight: 700; }
.tab-nav-assignment-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 6px; margin-top: 9px; }
.tab-nav-assignment { display: grid; grid-template-columns: minmax(80px, 1fr) minmax(120px, 1.15fr); align-items: center; gap: 7px; min-width: 0; padding: 7px 8px; border: 1px solid var(--border); background: #fff; }
.tab-nav-assignment > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 700; }
.tab-nav-assignment select { width: 100%; min-width: 0; }
.tab-nav-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; }
.tab-nav-group-list > .empty-state { grid-column: 1 / -1; min-height: 56px; padding: 16px; border: 1px dashed var(--border); background: #fafbfa; text-align: center; }
.mbr-access-controls { display: flex; align-items: flex-end; gap: 9px; }
.mbr-access-controls > div { display: grid; gap: 4px; min-width: 320px; }
.mbr-access-label { color: var(--muted); font-size: 10px; }
.mbr-access-owner-list { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.mbr-access-person { display: inline-flex; align-items: center; gap: 5px; min-height: 32px; padding: 5px 9px; border-color: #ced8d4; background: #fff; color: #4e5a55; }
.mbr-access-person span { color: var(--muted); font-size: 10px; }
.mbr-access-person.selected { border-color: #0f806d; background: #e7f5f1; color: #0b6b5b; box-shadow: inset 0 0 0 1px #0f806d; }
.mbr-access-person.selected::before { content: "✓"; font-weight: 800; }
.mbr-access-rule { margin: 8px 0 0; }
.plant-scope-group-list { display: grid; gap: 8px; }
.plant-scope-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 12px 0 7px; }
.plant-scope-section-heading.custom { margin-top: 17px; padding-top: 13px; border-top: 1px solid var(--border); }
.plant-scope-section-heading h3 { margin: 0 0 2px; font-size: 13px; }
.plant-scope-section-heading p { margin: 0; font-size: 10px; }
.plant-scope-auto-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 6px; }
.plant-scope-auto-group { min-width: 0; border: 1px solid #cfe0da; background: #f6faf8; }
.plant-scope-auto-group > summary { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 38px; padding: 7px 9px; cursor: pointer; list-style: none; }
.plant-scope-auto-group > summary::-webkit-details-marker { display: none; }
.plant-scope-auto-group > summary span { display: flex; align-items: center; gap: 6px; min-width: 0; }
.plant-scope-auto-group > summary strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.plant-scope-auto-group > summary em { flex: 0 0 auto; padding: 2px 5px; border: 1px solid #b9d5cd; background: #e9f4f1; color: #187466; font-size: 9px; font-style: normal; }
.plant-scope-auto-group > summary b { flex: 0 0 auto; color: var(--muted); font-size: 10px; }
.plant-scope-auto-group > .plant-scope-members { padding: 0 9px 9px; }
.plant-scope-group { display: grid; gap: 8px; padding: 10px 11px; border: 1px solid var(--border); background: #fff; }
.plant-scope-group.system { background: #f5faf8; border-color: #cfe3dc; }
.plant-scope-group-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.plant-scope-name { display: flex; min-width: min(420px, 60%); align-items: center; gap: 7px; }
label.plant-scope-name { display: grid; grid-template-columns: auto minmax(180px, 1fr); color: var(--muted); font-size: 10px; }
.plant-scope-name input { width: 100%; min-width: 0; }
.plant-scope-members { display: flex; gap: 4px; flex-wrap: wrap; }
.plant-scope-member { display: inline-flex; align-items: center; gap: 3px; padding: 3px 7px; border: 1px solid #cddbd6; border-radius: 999px; background: #edf6f3; color: #315c51; font-size: 11px; }
.plant-scope-member button { min-width: 16px; height: 16px; padding: 0; border: 0; background: transparent; color: #7b4b45; font-size: 13px; line-height: 1; }
.plant-scope-member-add { display: grid; grid-template-columns: minmax(220px, 1fr) auto auto; gap: 6px; }
.plant-scope-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; }
.plant-scope-source { display: inline-flex; margin-left: 6px; padding: 2px 5px; border-radius: 999px; background: #e7f5f0; color: #0b6e58; font-size: 9px; font-weight: 700; vertical-align: middle; }

@media (max-width: 1200px) {
  .tab-nav-group-list { grid-template-columns: repeat(2, minmax(220px, 1fr)); }
}

.admin-page-heading { display: flex; align-items: flex-end; justify-content: space-between; margin: 2px 0 14px; }
.admin-page-heading h2 { margin: 2px 0 3px; color: #18212c; font-size: 24px; }
.admin-page-heading p { margin: 0; }

main {
  padding: 18px 22px 60px;
}

.card,
.summary-card,
.modal-box {
  border-radius: 8px;
  border-color: #d9e0e7;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
}

.card h2 {
  color: #18212c;
  font-size: 16px;
  font-weight: 800;
}

.filter-bar {
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid #dce3ea;
  border-radius: 8px;
  padding: 10px;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.03);
}

input,
select,
textarea,
button {
  min-height: 32px;
  border-color: #cdd5df;
  border-radius: 6px;
}

select[multiple] {
  min-height: 72px;
  padding: 4px;
}

input:focus,
select:focus,
textarea:focus {
  outline: 2px solid rgba(12, 118, 110, 0.18);
  border-color: var(--accent);
}

button {
  background: #ffffff;
  border-color: #cdd5df;
  color: #243142;
  font-weight: 600;
}

button:hover {
  background: #f3f6f8;
}

button.primary {
  background: var(--accent);
  border-color: var(--accent);
  box-shadow: 0 1px 2px rgba(12, 118, 110, 0.22);
}

button.primary:hover {
  background: #0a615b;
}

button.small {
  min-height: 28px;
  padding: 3px 9px;
}

.form-grid {
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 10px;
}

.form-grid .wide {
  grid-column: span 2;
}

.form-grid label {
  font-weight: 700;
  color: #5f6b7a;
}

.link-row {
  border-top: 1px solid #edf1f4;
  padding-top: 10px;
}

.work-row {
  border-radius: 8px;
  padding: 10px 12px;
  border-color: #d8e0e8;
}

.work-row:hover {
  border-color: #b9c7d6;
  box-shadow: 0 2px 10px rgba(16, 24, 40, 0.06);
}

.chip {
  border-radius: 999px;
  font-weight: 700;
}

table.list {
  border-collapse: separate;
  border-spacing: 0;
}

.work-ledger-table {
  table-layout: fixed;
  min-width: 1310px;
}

.work-ledger-table .col-select { width: 38px; text-align: center; }
.task-view-table .col-select,
.leave-ledger-table .col-select { width: 38px; text-align: center; }
.work-ledger-table .col-received { width: 80px; }
.work-ledger-table .col-period { width: 92px; }
.work-ledger-table .col-status { width: 82px; }
.work-ledger-table .col-assignee { width: 108px; }
.work-ledger-table .col-plant { width: 140px; }
.work-ledger-table .col-category { width: 112px; }
.work-ledger-table .col-flow { width: 112px; }
.work-ledger-table .col-issue { width: 86px; }
.work-ledger-table .col-cost { width: 76px; }
.work-ledger-table .col-title {
  min-width: 0;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.work-ledger-table .col-assignee,
.work-ledger-table .col-category,
.work-ledger-table .col-flow,
.work-ledger-table .col-issue,
.work-ledger-table .col-plant {
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.work-ledger-table .col-issue .chip {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.work-actions {
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: flex-start;
}

.work-action-row {
  display: flex;
  flex-wrap: nowrap;
  gap: 4px;
  align-items: center;
}

.work-actions button.small {
  min-height: 24px;
  padding: 2px 5px;
  line-height: 1.15;
  white-space: nowrap;
}

.work-bulk-bar {
  position: sticky;
  top: 76px;
  z-index: 25;
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: nowrap;
  box-sizing: border-box;
  height: 50px;
  min-height: 50px;
  margin: 0 0 10px;
  padding: 9px 10px;
  border: 1px solid #9fc8bc;
  border-left: 4px solid var(--accent);
  border-radius: 6px;
  background: #f4faf7;
  box-shadow: 0 5px 14px rgba(15, 23, 42, 0.1);
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: thin;
  transition: border-color 120ms ease, background-color 120ms ease, box-shadow 120ms ease;
}

.work-bulk-bar > * { flex: 0 0 auto; }
.work-bulk-bar .bulk-idle-hint { display: none; }
.work-bulk-bar.is-idle {
  border-color: #d8e1de;
  border-left-color: #b9c8c3;
  background: #f8faf9;
  box-shadow: none;
  overflow: hidden;
}
.work-bulk-bar.is-idle > :not(.bulk-idle-hint) { display: none !important; }
.work-bulk-bar.is-idle .bulk-idle-hint {
  display: inline-flex;
  align-items: center;
  color: #72807b;
  font-size: 12px;
  font-weight: 650;
  white-space: nowrap;
}

.work-bulk-bar select {
  min-width: 210px;
  max-width: 330px;
}

.bulk-chain-box {
  width: min(760px, calc(100vw - 28px));
  max-height: min(780px, calc(100vh - 32px));
  overflow: hidden;
}

.modal-title-row,
.bulk-chain-tools,
.bulk-chain-footer {
  display: flex;
  align-items: center;
  gap: 8px;
}

.modal-title-row {
  justify-content: space-between;
  align-items: flex-start;
}

.modal-title-row h2,
.modal-title-row p {
  margin: 0;
}

.bulk-chain-tools {
  flex-wrap: wrap;
  margin: 12px 0 8px;
}

.bulk-chain-list {
  max-height: min(520px, calc(100vh - 230px));
  overflow-y: auto;
  border-top: 1px solid #dce3ea;
  border-bottom: 1px solid #dce3ea;
}

.bulk-chain-item {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) 32px 32px;
  gap: 7px;
  align-items: center;
  padding: 8px 4px;
  border-bottom: 1px solid #edf1f5;
}

.bulk-chain-item:last-child {
  border-bottom: 0;
}

.bulk-chain-number {
  display: inline-grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #dcefe8;
  color: #075e4c;
  font-size: 12px;
  font-weight: 900;
}

.bulk-chain-content {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 2px;
}

.bulk-chain-content strong,
.bulk-chain-content span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bulk-chain-content span {
  color: #667085;
  font-size: 12px;
}

.bulk-chain-item button {
  width: 32px;
  min-width: 32px;
  padding: 0;
}

.bulk-chain-footer {
  justify-content: space-between;
  margin-top: 10px;
}

.bulk-edit-box {
  width: min(900px, calc(100vw - 28px));
  max-height: min(860px, calc(100vh - 32px));
  overflow: auto;
}
.bulk-edit-guide {
  display: grid;
  gap: 3px;
  margin: 12px 0;
  padding: 10px 12px;
  border-left: 4px solid var(--accent);
  background: #f3f8f6;
  color: #53606f;
  font-size: 12px;
}
.bulk-edit-guide strong { color: #173d34; }
.bulk-edit-fields { border-top: 1px solid #dce3ea; }
.bulk-edit-row {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 12px 2px;
  border-bottom: 1px solid #e5e9ed;
}
.bulk-edit-switch {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 36px;
  color: #475467;
  font-size: 12px;
  font-weight: 800;
}
.bulk-edit-switch input { width: 17px; height: 17px; margin: 0; }
.bulk-edit-section-label {
  min-height: 36px;
  padding-top: 9px;
  color: #475467;
  font-size: 12px;
  font-weight: 800;
}
.bulk-edit-control {
  display: grid;
  gap: 8px;
  opacity: .48;
}
.bulk-edit-row.enabled .bulk-edit-control { opacity: 1; }
.bulk-edit-date-grid { opacity: 1; }
.bulk-edit-control > label,
.bulk-edit-control label {
  display: grid;
  gap: 4px;
  min-width: 0;
}
.bulk-edit-control label > span {
  color: #53606f;
  font-size: 11px;
  font-weight: 800;
}
.bulk-edit-control label > span input {
  width: 15px;
  height: 15px;
  margin: 0 4px 0 0;
  vertical-align: -3px;
}
.bulk-edit-control input,
.bulk-edit-control select { width: 100%; min-width: 0; }
.bulk-edit-date-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bulk-edit-status-grid,
.bulk-edit-class-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bulk-edit-picker[aria-disabled="true"] { pointer-events: none; }
.bulk-edit-footer {
  position: sticky;
  bottom: -14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 12px -14px -14px;
  padding: 11px 14px;
  border-top: 1px solid #dce3ea;
  background: #fff;
}

.bulk-issue-box {
  width: min(1040px, calc(100vw - 28px));
  max-height: min(860px, calc(100vh - 32px));
  overflow: hidden;
}

.bulk-issue-guide {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin: 12px 0 8px;
  padding: 8px 10px;
  border-left: 3px solid var(--accent);
  background: #f3f8f6;
  color: #53606f;
  font-size: 12px;
}

.bulk-issue-guide strong {
  color: #173d34;
}

.bulk-issue-list {
  max-height: min(640px, calc(100vh - 225px));
  overflow-y: auto;
  border-top: 1px solid #dce3ea;
  border-bottom: 1px solid #dce3ea;
}

.bulk-issue-item {
  padding: 12px 4px 14px;
  border-bottom: 2px solid #dce3ea;
}

.bulk-issue-item:last-child {
  border-bottom: 0;
}

.bulk-issue-item-head {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  margin-bottom: 9px;
}

.bulk-issue-item-head > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 2px;
}

.bulk-issue-item-head strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bulk-issue-item-head span:not(.bulk-chain-number) {
  color: #667085;
  font-size: 12px;
}

.bulk-issue-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.bulk-issue-field {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 4px;
  color: #53606f;
  font-size: 12px;
  font-weight: 700;
}

.bulk-issue-field.wide {
  grid-column: 1 / -1;
}

.bulk-issue-field input,
.bulk-issue-field textarea,
.bulk-issue-field select {
  width: 100%;
  min-width: 0;
  color: var(--text);
  font-weight: 400;
}

.issue-base-fields {
  margin-bottom: 0;
}

.issue-fault-list {
  display: grid;
  gap: 10px;
}

.issue-fault-block {
  padding: 12px;
  border: 1px solid #cbd8e0;
  border-left: 4px solid var(--accent);
  border-radius: 6px;
  background: #fbfdfc;
}

.issue-entry-step {
  margin-top: 10px;
  padding: 11px 12px;
  border: 1px solid #dde5e2;
  border-radius: 5px;
  background: #fff;
}
.issue-base-step { margin: 0 0 10px; background: #f8fbfa; }
.issue-step-heading {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 10px;
}
.issue-step-heading > b {
  display: grid;
  place-items: center;
  width: 25px;
  height: 25px;
  flex: 0 0 25px;
  border-radius: 50%;
  background: #dcefe8;
  color: #075e4c;
  font-size: 12px;
}
.issue-step-heading > div { display: grid; gap: 1px; }
.issue-step-heading strong { color: #20342e; font-size: 13px; }
.issue-step-heading span { color: #68736f; font-size: 11px; font-weight: 400; }
.issue-equipment-fields { grid-template-columns: minmax(0, 1.4fr) minmax(150px, .8fr) minmax(150px, .8fr); }
.issue-action-step { background: #fbfcfc; }
.issue-optional-fields { margin-top: 9px; border-top: 1px solid #e9eeec; }
.issue-optional-fields > summary { padding: 9px 0 2px; cursor: pointer; color: #5c6863; font-size: 11px; font-weight: 800; }
.issue-optional-fields[open] > summary { margin-bottom: 8px; }

.issue-fault-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 9px;
}

.issue-fault-head > div {
  display: flex;
  min-width: 0;
  align-items: baseline;
  gap: 8px;
}

.issue-fault-head span {
  color: #08786e;
  font-size: 11px;
  font-weight: 800;
}

.issue-fault-head strong {
  overflow: hidden;
  color: #172b26;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.issue-add-fault {
  margin-top: 8px;
}

.icon-button.danger-text {
  color: #c53a2b;
  font-size: 20px;
  line-height: 1;
}

.action-part-list {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 5px;
}

.action-part-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 7px;
  border: 1px solid #c7ddd6;
  border-radius: 4px;
  background: #f0f8f5;
  color: #31574e;
  font-size: 11px;
}

.action-part-chip small,
.action-part-chip em {
  color: #667085;
  font-style: normal;
}

.action-parts-editor {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid #dce3ea;
}

.action-parts-title,
.case-section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}

.action-parts-title > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.action-parts-title span {
  color: var(--muted);
  font-size: 11px;
}

#cd-m-parts {
  display: grid;
  gap: 6px;
}

.action-part-row {
  display: grid;
  grid-template-columns: 26px minmax(130px, 1.2fr) minmax(90px, .8fr) minmax(110px, 1fr) 70px 58px 100px minmax(100px, .8fr) minmax(100px, .8fr) 30px;
  gap: 5px;
  align-items: center;
}

.action-part-number {
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border-radius: 50%;
  background: #e6f3ef;
  color: #08786e;
  font-size: 11px;
  font-weight: 800;
}

.case-cost-section {
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid #dce3ea;
}

.case-section-title h3 {
  margin: 1px 0 0;
}

.case-section-title > div:last-child {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  color: var(--muted);
  font-size: 12px;
}

.cost-entry-grid,
.attachment-entry {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  margin-top: 9px;
}

.cost-entry-grid label,
.attachment-entry label {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 3px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}

.cost-entry-grid .wide,
.attachment-entry .wide {
  grid-column: span 2;
}

.cost-entry-grid .checkbox-label {
  flex-direction: row;
  align-items: center;
  align-self: end;
  min-height: 34px;
}

@media (max-width: 900px) {
  .action-part-row {
    grid-template-columns: 24px minmax(140px, 1fr) minmax(90px, .7fr) 70px 48px 30px;
  }
  .action-part-row [data-part-field="specification"],
  .action-part-row [data-part-field="unit_price"],
  .action-part-row [data-part-field="serial_before"],
  .action-part-row [data-part-field="serial_after"] {
    grid-column: span 2;
  }
  .cost-entry-grid,
  .attachment-entry { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .action-part-row {
    grid-template-columns: 24px minmax(0, 1fr) minmax(0, 1fr) 30px;
    padding: 8px;
    border: 1px solid #dce5e1;
    border-radius: 6px;
    background: #fff;
  }
  .action-part-row input { width: 100%; min-width: 0; }
  .action-part-row .action-part-number { grid-column: 1; grid-row: 1; }
  .action-part-row [data-part-field="part_name"] { grid-column: 2 / 4; grid-row: 1; }
  .action-part-row [data-remove-action-part] { grid-column: 4; grid-row: 1; }
  .action-part-row [data-part-field="part_no"] { grid-column: 2; }
  .action-part-row [data-part-field="specification"] { grid-column: 3; }
  .action-part-row [data-part-field="quantity"] { grid-column: 2; }
  .action-part-row [data-part-field="unit"] { grid-column: 3; }
  .action-part-row [data-part-field="unit_price"] { grid-column: 2 / 4; }
  .action-part-row [data-part-field="serial_before"] { grid-column: 2; }
  .action-part-row [data-part-field="serial_after"] { grid-column: 3; }
}

.bulk-issue-field textarea {
  resize: vertical;
}

.bulk-issue-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
}

.flow-search-bar {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 18px;
  margin-bottom: 12px;
  padding: 2px 2px 10px;
  border-bottom: 1px solid #d8e0e8;
}
.flow-search-bar h2 { margin: 0 0 4px; font-size: 18px; }
.flow-search-bar p { margin: 0; }
.flow-search-box { display: grid; grid-template-columns: minmax(260px, 420px) auto; gap: 6px; }
.flow-search-results { display: grid; gap: 5px; margin-bottom: 12px; }
.flow-search-result {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(260px, 1fr) auto;
  align-items: center;
  gap: 10px;
  width: 100%;
  text-align: left;
  padding: 8px 10px;
  border-color: #d8e0e8;
}
.flow-search-identity { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.flow-search-identity strong { color: #08786e; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.flow-search-identity span { font-weight: 800; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.flow-search-result .meta { color: var(--muted); font-size: 12px; }
.flow-empty {
  padding: 0;
  border: 1px solid #d8e0e8;
  border-radius: 8px;
  background: rgba(255,255,255,0.62);
  color: var(--text);
  text-align: left;
  overflow: hidden;
}
.flow-group-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-bottom: 1px solid #d8e0e8;
  background: #f7f9fb;
}
.flow-group-heading > div { display: flex; gap: 5px; align-items: center; }
.flow-list-tools {
  display: flex;
  align-items: flex-end;
  gap: 7px;
  flex-wrap: wrap;
  padding: 9px 12px;
  border-bottom: 1px solid #d8e0e8;
  background: #fff;
}
.flow-list-tools > label {
  display: flex;
  flex-direction: column;
  gap: 2px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
}
.flow-list-tools select,
.flow-list-tools input {
  min-height: 30px;
  padding-top: 4px;
  padding-bottom: 4px;
}
.flow-filter-menu {
  position: relative;
  flex: 0 0 auto;
}
.flow-filter-menu summary {
  min-width: 108px;
  min-height: 30px;
  padding: 6px 25px 6px 9px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  color: var(--text);
  font-size: 12px;
  font-weight: 700;
  list-style: none;
  cursor: pointer;
}
.flow-filter-menu summary::-webkit-details-marker { display: none; }
.flow-filter-menu summary::after {
  position: absolute;
  top: 8px;
  right: 9px;
  color: var(--muted);
  content: "▾";
}
.flow-filter-options {
  position: absolute;
  z-index: 35;
  top: calc(100% + 4px);
  left: 0;
  display: grid;
  width: max-content;
  min-width: 210px;
  max-width: min(340px, calc(100vw - 32px));
  max-height: 280px;
  padding: 8px;
  overflow-y: auto;
  border: 1px solid #ccd6df;
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.16);
}
.flow-filter-options p {
  margin: 0 0 5px;
  padding: 0 2px 5px;
  border-bottom: 1px solid #e5e9ee;
  color: var(--muted);
  font-size: 10px;
}
.flow-filter-options label {
  display: flex;
  align-items: center;
  gap: 7px;
  min-height: 29px;
  padding: 4px 5px;
  color: var(--text);
  font-size: 12px;
  cursor: pointer;
}
.flow-filter-options label:hover { background: #f1f8f6; }
.flow-filter-options input { min-height: 0; }
.flow-custom-period { display: flex; align-items: center; gap: 4px; }
.flow-custom-period[hidden] { display: none; }
.flow-custom-period input { width: 132px; }
.flow-group-list { display: grid; }
.flow-group-item {
  display: grid;
  grid-template-columns: minmax(260px, 1.35fr) minmax(240px, 1fr) auto;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 11px 12px;
  border: 0;
  border-bottom: 1px solid #e3e8ee;
  border-radius: 0;
  background: #fff;
  color: var(--text);
  text-align: left;
}
.flow-group-item:last-child { border-bottom: 0; }
.flow-group-item:hover { background: #f5faf8; }
.flow-group-item.archived { background: #f6f7f8; color: #66717d; }
.flow-group-item.archived:hover { background: #eef1f3; }
.flow-group-item.archived .flow-group-plant { color: #53606c; }
.flow-group-main {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 3px;
}
.flow-group-label {
  color: #5e6b78;
  font-size: 9px;
  font-weight: 800;
}
.flow-group-main .flow-group-plant {
  color: #08786e;
  font-size: 16px;
  line-height: 1.35;
}
.flow-group-main .flow-group-title {
  color: #17212b;
  font-size: 13px;
  font-weight: 800;
}
.flow-group-main .flow-group-meta { color: var(--muted); font-size: 11px; }
.flow-group-main strong,
.flow-group-main span,
.flow-group-preview {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.flow-group-main span,
.flow-group-preview { color: var(--muted); font-size: 12px; }
.flow-group-metrics { display: flex; gap: 5px; justify-content: flex-end; }
.flow-list-section > h3 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0;
  padding: 8px 12px;
  border-bottom: 1px solid #d8e0e8;
  background: #edf6f4;
  color: #096f66;
  font-size: 12px;
}
.flow-list-section > h3 span { color: var(--muted); font-size: 10px; font-weight: 600; }
.flow-group-none {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 36px 20px;
  color: var(--muted);
  text-align: center;
}
.case-follow-assignee {
  flex: 0 1 220px;
  min-width: 180px;
}
.flow-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: 10px;
  border: 1px solid #dce3ea;
  border-radius: 8px;
  background: #fff;
}
.flow-case-tools { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.flow-case-tools select { min-width: 260px; max-width: 420px; }
.flow-selection-hint { margin: 8px 2px; color: var(--muted); font-size: 12px; }
.flow-board {
  position: relative;
  display: flex;
  gap: 64px;
  align-items: flex-start;
  overflow-x: auto;
  padding: 8px 10px 18px;
  min-height: 280px;
  isolation: isolate;
}
.flow-connectors {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  overflow: visible;
  pointer-events: none;
}
.flow-connectors marker path { fill: #7c8b99; }
.flow-connector-line {
  fill: none;
  stroke: #8b99a7;
  stroke-width: 2.2;
}
.flow-connector-hit {
  fill: none;
  stroke: transparent;
  stroke-width: 16;
  pointer-events: stroke;
  cursor: pointer;
}
.flow-level { position: relative; z-index: 1; flex: 0 0 320px; min-width: 0; }
.flow-level-title {
  margin-bottom: 7px;
  padding: 5px 8px;
  border-left: 3px solid var(--accent);
  color: #475467;
  font-size: 12px;
  font-weight: 800;
}
.flow-level-cards { display: grid; gap: 9px; }
.flow-card {
  position: relative;
  padding: 11px;
  border: 1px solid #d6dee7;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(16,24,40,0.05);
  cursor: grab;
  transition: border-color 120ms ease, box-shadow 120ms ease, opacity 120ms ease, transform 120ms ease;
}
.flow-card.root { border-color: #5db5a8; box-shadow: 0 0 0 2px rgba(12,118,110,0.10); }
.flow-card.dragging { opacity: 0.42; cursor: grabbing; transform: scale(0.98); }
.flow-card.drag-target {
  border-color: #08786e;
  box-shadow: 0 0 0 3px rgba(8,120,110,0.18), 0 8px 20px rgba(16,24,40,0.10);
}
.flow-card.archived-flow { background: #f7f8f9; cursor: default; }
.flow-card-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.flow-card-head > div { display: flex; align-items: center; gap: 6px; }
.flow-card-head label { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: var(--muted); }
.flow-card-head input { min-height: 0; }
.flow-drag-handle {
  display: inline-grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border: 1px solid #d7e0e6;
  border-radius: 5px;
  background: #f7f9fa;
  color: #8996a3;
  font-size: 18px;
  line-height: 1;
  cursor: grab;
  user-select: none;
}
.flow-card-plant {
  margin-top: 7px;
  color: #08786e;
  font-size: 15px;
  font-weight: 900;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.flow-card-title {
  display: block;
  width: 100%;
  min-height: 0;
  margin: 3px 0 4px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #17212b;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.4;
  text-align: left;
}
.flow-card-title:hover { background: transparent; color: var(--accent); }
.flow-card-meta { color: var(--muted); font-size: 11px; line-height: 1.45; }
.flow-card-tags, .flow-card-actions { display: flex; gap: 4px; flex-wrap: wrap; margin-top: 7px; }
.flow-edges { margin-top: 8px; padding-top: 7px; border-top: 1px solid #edf1f4; }
.flow-edge { display: flex; align-items: center; justify-content: space-between; gap: 6px; padding: 3px 0; color: #53606f; font-size: 11px; }
.flow-edge span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.flow-edge button { flex: 0 0 auto; min-height: 20px; padding: 0 6px; }
.flow-rearrange-box { width: min(720px, calc(100vw - 28px)); }
.flow-rearrange-box .modal-head,
.flow-archive-box .modal-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.flow-rearrange-box .modal-head > div,
.flow-archive-box .modal-head > div { min-width: 0; }
.flow-rearrange-box .modal-head .eyebrow,
.flow-archive-box .modal-head .eyebrow {
  margin: 0 0 3px;
  color: #08786e;
  font-size: 10px;
  font-weight: 800;
}
.flow-rearrange-pair {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  margin: 12px 0;
  padding: 12px;
  border: 1px solid #d8e1e6;
  background: #f7faf9;
}
.flow-rearrange-pair > div { display: grid; min-width: 0; gap: 3px; }
.flow-rearrange-pair select { width: 100%; min-width: 0; margin-top: 3px; }
.flow-rearrange-pair span { color: var(--muted); font-size: 10px; font-weight: 800; }
.flow-rearrange-pair strong { overflow-wrap: anywhere; font-size: 13px; }
.flow-rearrange-pair > span { color: #08786e; font-size: 20px; }
.flow-rearrange-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
}
.flow-rearrange-actions button {
  display: grid;
  gap: 3px;
  min-height: 64px;
  padding: 10px 12px;
  border-color: #cfdae0;
  background: #fff;
  text-align: left;
}
.flow-rearrange-actions button:hover { border-color: #69aa9f; background: #f2faf8; }
.flow-rearrange-actions button.direct-link {
  border-color: #9fcfc5;
  background: #f1faf7;
}
.flow-rearrange-actions button:disabled { opacity: 0.48; cursor: not-allowed; }
.flow-rearrange-actions strong { color: #08786e; font-size: 13px; }
.flow-rearrange-actions span { color: var(--muted); font-size: 11px; line-height: 1.35; }
.flow-archive-box { width: min(520px, calc(100vw - 28px)); }
.flow-archive-summary {
  display: grid;
  gap: 4px;
  margin-top: 12px;
  padding: 13px 14px;
  border-left: 3px solid #16877d;
  background: #f3f9f7;
}
.flow-archive-summary strong { overflow-wrap: anywhere; font-size: 14px; }
.flow-archive-summary span { color: var(--muted); font-size: 11px; }
.flow-archive-message {
  margin: 12px 0 0;
  color: #53606f;
  font-size: 12px;
  line-height: 1.65;
}
.flow-archive-box .modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 7px;
  margin-top: 14px;
}

table.list th {
  background: #f7f9fb;
  color: #667085;
  font-weight: 800;
  border-bottom-color: #cfd8e3;
}

table.list td {
  background: #ffffff;
}

table.list tr:hover td {
  background: #f8fbfd;
}

.task-view-table th { height: 38px; vertical-align: middle; }
.task-view-table td { padding-top: 9px; padding-bottom: 9px; vertical-align: middle; }
.task-view-row { transition: background-color 120ms ease, box-shadow 120ms ease; }
.task-view-row:hover td { background: #f5faf8 !important; }
#view-works .task-view-row { cursor: pointer; }
#view-works .task-view-row:active td { background: #e9f5f1 !important; }
.task-content-cell { min-width: 180px; line-height: 1.4; }
.task-primary { display: block; color: #17212b; font-size: 13px; font-weight: 800; line-height: 1.4; }
button.task-primary { width: 100%; padding: 0; text-align: left; }
.task-secondary { display: -webkit-box; margin-top: 3px; overflow: hidden; color: #6b7785; font-size: 11.5px; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
#view-persons .task-view-row { cursor: pointer; }
#view-persons .task-view-row:active td { background: #e9f5f1 !important; }
.dash-row { border-radius: 8px; transition: border-color 120ms ease, background-color 120ms ease, box-shadow 120ms ease; }
.dash-row:hover { border-color: #b8cec7; background: #f7fbfa; box-shadow: 0 2px 8px rgba(21, 74, 62, 0.06); }

.cal-grid {
  gap: 6px;
}

.cal-grid .dow {
  padding: 7px 0;
  border-radius: 6px;
  background: #eef2f5;
}

.cal-cell {
  min-height: 112px;
  border-color: #d6dee7;
  border-radius: 8px;
  padding: 7px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.cal-cell .day {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 20px;
  font-size: 12px;
}

.cal-entry {
  border-radius: 5px;
  margin-bottom: 4px;
  padding: 4px 7px;
  border-left: 3px solid rgba(0, 0, 0, 0.13);
  font-size: 12px;
}

.cal-entry.band-green { background: #e2f3e3; color: #255b2a; }
.cal-entry.band-blue { background: #e4efff; color: #1d4d83; }
.cal-entry.band-purple { background: #f0e6ff; color: #56308a; }
.cal-entry.band-yellow { background: #fff4cc; color: #6c4b00; }
.cal-entry.band-pink { background: #ffe3e7; color: #9a1c22; }

.plant-summary {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.summary-card h4 {
  font-size: 15px;
  font-weight: 800;
}

.year-output-summary {
  margin: -4px 0 8px;
  font-size: 12px;
  color: #4f5f6f;
  background: #f5faf8;
  border: 1px solid #d9ebe5;
  border-radius: 6px;
  padding: 5px 8px;
}

#st-grids {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(420px, 1fr));
  gap: 14px;
}

.stat-card {
  min-width: 0;
  overflow: hidden;
}

.stat-card table.list {
  table-layout: fixed;
  width: 100%;
}

.stat-card table.list th,
.stat-card table.list td {
  vertical-align: middle;
  padding-left: 7px;
  padding-right: 7px;
  overflow: hidden;
}

.stat-card table.list th:nth-child(1),
.stat-card table.list td:nth-child(1) {
  width: 46%;
}

.stat-card table.list th:nth-child(2),
.stat-card table.list td:nth-child(2) {
  width: 18%;
}

.stat-card table.list th:nth-child(3),
.stat-card table.list td:nth-child(3) {
  width: 58px;
}

.stat-card table.list th:nth-child(4),
.stat-card table.list td:nth-child(4) {
  width: 64px;
}

.stat-card table.list th:nth-child(5),
.stat-card table.list td:nth-child(5) {
  width: 58px;
  text-align: right;
  overflow: visible;
}

.stat-card .stat-row {
  cursor: pointer;
}

.stat-card .stat-row:hover td {
  background: #f0f7f5;
}

.stat-label {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stat-card button.small {
  min-width: 42px;
  padding-left: 8px;
  padding-right: 8px;
}

@media (max-width: 520px) {
  #st-grids {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* 댓글·멘션 */
.comment-panel {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}
.comment-panel[hidden] { display: none; }
.comment-panel-head,
.comment-meta,
.comment-compose,
.notification-item-head,
.notification-actions,
.team-directory-heading {
  display: flex;
  align-items: center;
}
.comment-panel-head { justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.comment-panel-head > div { display: flex; align-items: baseline; gap: 7px; }
.comment-panel-head span { color: var(--muted); font-size: 12px; }
.comment-list { border-top: 1px solid #e6eaee; }
.comment-item {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 9px;
  padding: 10px 2px;
  border-bottom: 1px solid #e6eaee;
}
.comment-item.is-reply {
  margin-left: 34px;
  padding-left: 10px;
  border-left: 2px solid #b8dcd5;
  background: #fbfdfd;
}
.comment-avatar {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 50%;
  background: #e4f2ef;
  color: #08786e;
  font-size: 13px;
  font-weight: 800;
}
.comment-meta { gap: 8px; min-width: 0; }
.comment-meta time { color: var(--muted); font-size: 11px; }
.comment-reply,
.comment-delete {
  padding: 2px 4px;
  border: 0;
  background: transparent;
  font-size: 11px;
}
.comment-reply {
  margin-left: auto;
  color: #08786e;
}
.comment-reply:hover { text-decoration: underline; }
.comment-delete { color: #c24132; }
.comment-item-body p {
  margin: 4px 0 0;
  color: #28343e;
  font-size: 13px;
  line-height: 1.55;
  overflow-wrap: anywhere;
}
.comment-empty { margin: 0; padding: 13px 4px; color: var(--muted); font-size: 12px; }
.comment-compose { align-items: stretch; gap: 7px; margin-top: 8px; }
.comment-compose textarea { min-height: 58px; resize: vertical; }
.comment-compose button { flex: 0 0 58px; }
.comment-parent-preview {
  display: flex;
  gap: 6px;
  min-width: 0;
  margin: 5px 0 2px;
  padding: 5px 7px;
  border-left: 2px solid #a9d7cf;
  background: #f4faf8;
  color: var(--muted);
  font-size: 11px;
}
.comment-parent-preview strong { flex: 0 0 auto; color: #47706a; }
.comment-parent-preview span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.comment-reply-context {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 8px;
  padding: 7px 9px;
  border: 1px solid #a9d7cf;
  background: #edf8f5;
  color: #08786e;
  font-size: 12px;
}
.comment-reply-context[hidden] { display: none; }
.comment-reply-context .small { flex: 0 0 auto; }
.comment-mention-suggestions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 4px;
  margin-top: 7px;
  padding: 6px;
  border: 1px solid #cad9d7;
  border-radius: 6px;
  background: #f8fbfa;
}
.comment-mention-suggestions[hidden] { display: none; }
.comment-mention-suggestions button {
  display: grid;
  gap: 2px;
  padding: 7px 8px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  text-align: left;
}
.comment-mention-suggestions button:hover { background: #e7f3f0; }
.comment-mention-suggestions strong { color: #096f66; font-size: 12px; }
.comment-mention-suggestions span { color: var(--muted); font-size: 11px; overflow-wrap: anywhere; }
.task-comment-button.has-comments { border-color: #91c9c1; color: #08786e; background: #edf8f5; }
.comment-count-badge {
  border-color: #a9d7cf;
  background: #edf8f5;
  color: #08786e;
  font-weight: 700;
}
.comment-count-badge[hidden] { display: none; }
.plant-issue-byline { display: flex; gap: 8px; margin-top: 3px; color: var(--muted); font-size: 11px; }

/* 확인형 알림 */
.notification-reminder {
  width: 100%;
  min-height: 36px;
  padding: 7px 18px;
  border: 0;
  border-bottom: 1px solid #e5b762;
  border-radius: 0;
  background: #fff8e7;
  color: #744707;
  text-align: left;
}
.notification-reminder[hidden] { display: none; }
.notification-reminder strong { font-size: 13px; }
.notification-reminder span { margin-left: 8px; font-size: 12px; }
.notification-panel {
  display: none;
  position: fixed;
  z-index: 150;
  top: 58px;
  right: max(12px, env(safe-area-inset-right));
  width: min(380px, calc(100vw - 24px));
  max-width: calc(100vw - 24px);
  max-height: min(72vh, 680px);
  padding: 10px;
  overflow: hidden;
  border: 1px solid #d8dee4;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 34px rgba(20, 32, 45, 0.22);
}
.notification-panel-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}
.notification-panel-head b { flex: 1 1 auto; min-width: 0; }
#notif-list {
  width: 100%;
  max-height: calc(min(72vh, 680px) - 48px);
  min-width: 0;
  overflow-x: hidden;
  overflow-y: auto;
}
.notification-item {
  width: 100%;
  min-width: 0;
  padding: 10px 8px;
  border-bottom: 1px solid #e4e8ec;
  background: #fff;
}
.notification-item.unread { border-left: 3px solid #14877d; background: #f2faf8; }
.notification-item.unread.high { border-left-color: #d97706; background: #fff9ed; }
.notification-item-head { justify-content: space-between; gap: 8px; min-width: 0; }
.notification-item-head > * { min-width: 0; }
.notification-type { color: #08786e; font-size: 11px; font-weight: 800; }
.notification-item.high .notification-type { color: #b45309; }
.notification-item time { flex: 0 0 auto; color: var(--muted); font-size: 10px; }
.notification-item p {
  max-width: 100%;
  margin: 5px 0 8px;
  font-size: 13px;
  line-height: 1.45;
  overflow-wrap: anywhere;
  word-break: keep-all;
}
.notification-actions { flex-wrap: wrap; justify-content: flex-end; gap: 5px; min-width: 0; }
.notification-actions button { max-width: 100%; white-space: normal; }
.notification-read { color: var(--muted); font-size: 11px; }
.notification-empty { padding: 24px 10px; color: var(--muted); text-align: center; }
.notification-inbox-overlay { z-index: 180; }
.notification-inbox-box {
  width: min(680px, calc(100vw - 32px));
  max-height: min(760px, calc(100vh - 36px));
  overflow-x: hidden;
  border-top: 5px solid #d97706;
}
.notification-inbox-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.notification-inbox-head h2 { margin: 2px 0 4px; }
.notification-inbox-head p { margin: 0; color: var(--muted); font-size: 12px; }
.notification-inbox-count {
  flex: 0 0 auto;
  padding: 5px 8px;
  border-radius: 6px;
  background: #fff1d6;
  color: #9a5700;
  font-size: 12px;
  font-weight: 800;
}
.notification-inbox-list {
  max-height: min(520px, 58vh);
  margin-top: 12px;
  overflow-x: hidden;
  overflow-y: auto;
  border-top: 1px solid #e4e8ec;
}
.notification-inbox-footer { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; margin-top: 12px; }

/* 사용자 소속팀 현황 */
.team-directory-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 8px; }
.team-directory-item { padding: 10px; border: 1px solid #dce4e6; border-radius: 6px; background: #fbfcfc; }
.team-directory-heading { justify-content: space-between; gap: 8px; }
.team-directory-heading > div { display: flex; align-items: baseline; gap: 6px; }
.team-directory-heading span { color: var(--muted); font-size: 11px; }
.team-directory-heading code { color: #08786e; font: 700 11px/1.3 inherit; }
.team-directory-members { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 8px; }
.team-directory-members span { padding: 3px 6px; border-radius: 4px; background: #edf3f4; color: #384750; font-size: 11px; }

@media (max-width: 720px) {
  .notification-panel {
    top: 54px;
    right: 7px;
    width: calc(100vw - 14px);
    max-width: calc(100vw - 14px);
    padding: 9px;
  }
  .notification-reminder { padding: 7px 12px; }
  .notification-reminder span { display: block; margin: 2px 0 0; }
  .notification-inbox-box { width: calc(100vw - 18px); max-height: calc(100vh - 18px); padding: 14px; }
  .notification-inbox-head { gap: 8px; }
  .notification-inbox-list { max-height: 62vh; }
  .notification-inbox-footer > button { flex: 1 1 180px; min-height: 38px; }
  .comment-compose { display: grid; grid-template-columns: minmax(0, 1fr) 58px; }
  .comment-mention-suggestions { grid-template-columns: 1fr; }
  .comment-item.is-reply { margin-left: 18px; }
  .team-directory-grid { grid-template-columns: 1fr; }
}

.stats-detail {
  margin-top: 14px;
}

.stats-detail.empty {
  color: var(--muted);
  font-size: 13px;
}

.stats-detail .detail-head {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 8px;
}

.stats-detail .detail-head h2 {
  margin-bottom: 0;
}

.stats-detail table.list td:nth-child(5) {
  min-width: 240px;
}

.release-history-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  padding: 8px 2px 14px;
  border-bottom: 1px solid #cfd8e2;
}

.release-history-head h2 {
  margin: 0 0 5px;
  font-size: 19px;
}

.release-history-head p {
  margin: 0;
}

.release-history-list {
  max-width: 980px;
}

.release-history-item {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 24px;
  padding: 22px 12px;
  border-bottom: 1px solid #dce3ea;
}

.release-history-item.current {
  border-left: 3px solid var(--accent);
  padding-left: 16px;
  background: linear-gradient(90deg, rgba(12, 118, 110, 0.07), rgba(12, 118, 110, 0));
}

.release-history-meta {
  display: flex;
  flex-direction: column;
  gap: 7px;
  color: var(--muted);
  font-size: 12px;
}

.release-history-version {
  color: var(--accent);
  font-weight: 800;
  font-size: 13px;
}

.release-customized {
  align-self: flex-start;
  padding: 2px 6px;
  border: 1px solid #b8c4d0;
  border-radius: 4px;
  color: #53606f;
  font-size: 11px;
  font-weight: 700;
}

.release-edit-button {
  align-self: flex-start;
  margin-top: 4px;
}

.release-history-content h3 {
  margin: 0 0 9px;
  font-size: 16px;
}

.release-history-content ul {
  margin: 0;
  padding-left: 20px;
  color: #475467;
  line-height: 1.75;
}

.release-edit-box {
  width: min(640px, calc(100vw - 28px));
}

.release-edit-fields {
  display: grid;
  gap: 12px;
  margin-top: 16px;
}

.release-edit-fields label {
  display: grid;
  gap: 6px;
  color: #475467;
  font-weight: 700;
}

.release-edit-fields textarea {
  min-height: 180px;
  resize: vertical;
  line-height: 1.55;
}

.release-edit-reshow {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 12px;
  color: #475467;
}

.release-edit-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
}

.release-edit-footer button {
  min-width: 86px;
}

.thread {
  border-left: 3px solid #d8e0e8;
}

.toast {
  border-radius: 8px;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.2);
}

@media (max-width: 920px) {
  header.topbar {
    align-items: flex-start;
    gap: 8px;
  }

  header.topbar .counts { margin-left: 0; width: auto; }
  .topbar-tools { flex: 1 1 100%; justify-content: flex-end; }

  main {
    padding: 10px 10px 40px;
  }

  .release-note-footer { align-items: stretch; flex-direction: column; }
  .release-note-footer button { width: 100%; }

  .form-grid {
    grid-template-columns: repeat(2, minmax(150px, 1fr));
  }

  .form-grid .wide {
    grid-column: 1 / -1;
  }

  .cal-grid,
  .year-month-grid {
    display: block;
  }

  .cal-grid .dow,
  .year-month-grid .dow {
    display: none;
  }

  .cal-cell,
  .year-month-grid .cal-cell {
    min-width: 0;
    min-height: 48px;
    margin-bottom: 7px;
    padding: 8px 9px;
  }

  .cal-cell.out:empty,
  .year-month-grid .cal-cell.out:empty {
    display: none;
  }

  .cal-cell .day {
    margin-bottom: 5px;
  }

  .cal-cell .day span {
    display: none;
  }

  .cal-cell .day::before {
    content: attr(data-mobile-label);
    font-size: 13px;
    font-weight: 800;
    color: #4b5563;
  }

  .cal-entry {
    font-size: 13px;
    line-height: 1.45;
    padding: 6px 8px;
    margin-bottom: 5px;
  }

  .cal-entry.editable {
    padding-left: 18px;
    padding-right: 18px;
  }

  .cal-resize {
    width: 20px;
    opacity: 0.32;
  }

  .cal-resize.left {
    left: 4px;
    border-left-width: 4px;
  }

  .cal-resize.right {
    right: 4px;
    border-right-width: 4px;
  }
}

@media (max-width: 720px) {
  .tab-nav-group-list, .tab-nav-assignment-list { grid-template-columns: 1fr; }
  .tab-nav-actions { align-items: stretch; flex-direction: column; }
  .tab-nav-actions button { width: 100%; }
  .mbr-access-card .section-title-row, .mbr-access-controls { align-items: stretch; flex-direction: column; }
  .mbr-access-controls > div { min-width: 0; width: 100%; }
  .mbr-access-controls button { width: 100%; }
  .plant-scope-group-head, .plant-scope-actions { align-items: stretch; flex-direction: column; }
  .plant-scope-name { min-width: 0; width: 100%; }
  label.plant-scope-name { grid-template-columns: 1fr; }
  .plant-scope-member-add { grid-template-columns: minmax(0, 1fr) auto; }
  .plant-scope-member-add .danger-btn { grid-column: 1 / -1; }
  .plant-scope-actions button { width: 100%; }
  .brand-title {
    gap: 6px;
  }

  .app-logo {
    width: 28px;
    height: 28px;
    flex-basis: 28px;
  }

  .release-history-head {
    align-items: flex-start;
  }

  .release-history-item {
    grid-template-columns: minmax(0, 1fr);
    gap: 9px;
    padding: 18px 8px;
  }

  .release-history-meta {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
  }

  .release-edit-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .release-edit-footer button {
    width: 100%;
  }

  .pin-change-fields label {
    grid-template-columns: minmax(0, 1fr);
    gap: 5px;
  }
}

@media (max-width: 720px) {
  #view-works #work-form-card {
    display: none;
  }

  #wl-controls .mobile-work-tools {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    flex: 1 1 100%;
    width: 100%;
    margin-bottom: 2px;
  }

  #wl-controls .mobile-work-add,
  #wl-controls .mobile-work-select-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    font-size: 14px;
    font-weight: 700;
  }

  #wl-controls .mobile-work-select-toggle {
    display: inline-flex;
    min-width: 112px;
    white-space: nowrap;
  }

  #wl-controls .mobile-work-select-toggle.active {
    color: #075f58;
    border-color: #78c7bc;
    background: #dff7f3;
  }

  #quick-add-modal {
    align-items: flex-end;
    padding: 8px;
  }

  #quick-add-modal .modal-box {
    width: 100%;
    max-width: 100%;
    max-height: calc(100vh - 16px);
    max-height: calc(100dvh - 16px);
    padding: 14px;
    border-radius: 8px 8px 0 0;
  }

  #quick-add-modal .form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #quick-add-modal .form-grid > div {
    min-width: 0;
  }

  #quick-add-modal .form-grid input,
  #quick-add-modal .form-grid select,
  #quick-add-modal .form-grid textarea,
  #quick-add-modal .multi-picker-face {
    min-height: 42px;
  }

  #quick-add-modal .quick-add-footer {
    position: sticky;
    bottom: -14px;
    z-index: 3;
    margin: 12px -14px -14px;
    padding: 10px 14px;
    border-top: 1px solid var(--border);
    background: var(--card);
  }

  #quick-add-modal .quick-add-footer button {
    min-height: 42px;
    min-width: 96px;
  }

  .work-bulk-bar {
    top: 8px;
    height: 56px;
    min-height: 56px;
  }

  .work-bulk-bar .right {
    margin-left: 0;
  }

  .work-bulk-bar select {
    flex: 0 0 240px;
    width: 240px;
    max-width: 240px;
  }

  .bulk-chain-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .bulk-edit-row { grid-template-columns: 1fr; gap: 5px; }
  .bulk-edit-switch { min-height: 28px; }
  .bulk-edit-date-grid,
  .bulk-edit-status-grid,
  .bulk-edit-class-grid { grid-template-columns: 1fr; }
  .bulk-edit-footer { align-items: stretch; flex-direction: column; }
  .bulk-edit-footer button { width: 100%; }

  .bulk-issue-fields {
    grid-template-columns: 1fr;
  }

  .bulk-issue-field.wide {
    grid-column: auto;
  }

  .bulk-issue-footer {
    align-items: stretch;
    flex-direction: column;
  }

  #wl-controls .search-select {
    width: calc(50% - 4px);
    min-width: 0;
    flex: 1 1 calc(50% - 4px);
  }

  #wl-controls .search-select-plant {
    width: 100%;
    flex-basis: 100%;
  }

  body.mobile-topbar-hidden header.topbar {
    transform: translateY(calc(-100% - 2px));
    box-shadow: none;
  }

  #view-calendar > .calendar-toolbar {
    position: static;
    top: auto;
    margin-right: -4px;
    margin-left: -4px;
    padding: 8px 6px;
    max-height: none;
    overflow: visible;
    box-shadow: none;
    backdrop-filter: none;
  }

  body.calendar-toolbar-mobile-sticky #view-calendar > .calendar-toolbar {
    position: sticky;
    top: var(--topbar-sticky-offset);
    max-height: min(28vh, 190px);
    overflow-y: auto;
    overscroll-behavior: contain;
    box-shadow: 0 5px 12px rgba(35, 36, 31, 0.07);
    backdrop-filter: blur(10px);
  }

  body.mobile-topbar-hidden.calendar-toolbar-mobile-sticky #view-calendar > .calendar-toolbar {
    top: 0;
  }

  #view-calendar > .calendar-toolbar .cal-mobile-sticky-option {
    display: inline-flex !important;
  }

  header.topbar {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 10px;
  }

  .topbar-tools {
    order: 10;
    flex: 1 1 100%;
    width: 100%;
    min-width: 0;
    flex-wrap: wrap;
    justify-content: flex-start;
  }

  .topbar-tools #who { margin-left: auto; }

  header.topbar h1,
  header.topbar .app-version,
  header.topbar .counts,
  header.topbar #who,
  header.topbar #logout-btn {
    flex: 0 0 auto;
    width: auto;
    white-space: nowrap;
  }

  header.topbar h1 {
    font-size: 16px;
  }

  header.topbar .counts {
    margin-left: auto;
  }

  nav.tabs {
    order: 20;
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: thin;
  }

  .tab-release-grid { grid-template-columns: 1fr; }
  .tab-release-item { grid-template-columns: minmax(0, 1fr) auto; }
  .tab-release-item .tab-release-state { grid-column: 2; grid-row: 1; }
  .tab-release-item button { grid-column: 2; grid-row: 2; }

  nav.tabs button {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  #view-works .card,
  #view-cases .card,
  #view-persons .card,
  #view-users .card,
  #view-stats .card,
  #view-users div[style*="overflow-x"] {
    overflow-x: visible !important;
  }

  #view-works table.list,
  #view-cases table.list,
  #view-persons table.list,
  #view-users table.list,
  #view-stats table.list {
    display: block;
    width: 100%;
    min-width: 0;
    table-layout: auto;
    border-collapse: separate;
    border-spacing: 0;
  }

  #view-works table.list tbody,
  #view-cases table.list tbody,
  #view-persons table.list tbody,
  #view-users table.list tbody,
  #view-stats table.list tbody {
    display: block;
  }

  #view-works table.list tr:first-child,
  #view-cases table.list tr:first-child,
  #view-persons table.list tr:first-child,
  #view-users table.list tr:first-child,
  #view-stats table.list tr:first-child {
    display: none;
  }

  #view-works table.list tr,
  #view-cases table.list tr,
  #view-persons table.list tr,
  #view-users table.list tr,
  #view-stats table.list tr {
    display: block;
    margin: 0 0 10px;
    padding: 9px 10px;
    border: 1px solid #d8e2eb;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 1px 5px rgba(15, 23, 42, 0.04);
  }

  #view-works table.list td,
  #view-cases table.list td,
  #view-persons table.list td,
  #view-users table.list td,
  #view-stats table.list td {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr);
    align-items: start;
    gap: 8px;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 5px 0;
    border: 0;
    background: transparent;
    white-space: normal !important;
    word-break: keep-all;
    overflow-wrap: anywhere;
  }

  #view-works table.list td::before,
  #view-cases table.list td::before,
  #view-persons table.list td::before,
  #view-users table.list td::before,
  #view-stats table.list td::before {
    content: attr(data-label);
    color: #667085;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.5;
  }

  #view-works table.list td[colspan],
  #view-cases table.list td[colspan],
  #view-persons table.list td[colspan],
  #view-users table.list td[colspan],
  #view-stats table.list td[colspan] {
    display: block;
  }

  #view-works table.list td[colspan]::before,
  #view-cases table.list td[colspan]::before,
  #view-persons table.list td[colspan]::before,
  #view-users table.list td[colspan]::before,
  #view-stats table.list td[colspan]::before {
    content: none;
  }

  #view-works table.list td[data-label="내용"],
  #view-works table.list td[data-label="제목/내용"],
  #view-cases table.list td[data-label="이슈"],
  #view-cases table.list td[data-label="내용"],
  #view-persons table.list td[data-label="내용"],
  #view-stats table.list td[data-label="내용"] {
    display: block;
    padding-top: 8px;
    margin-top: 4px;
    border-top: 1px solid #edf1f5;
  }

  #view-works table.list td[data-label="내용"]::before,
  #view-works table.list td[data-label="제목/내용"]::before,
  #view-cases table.list td[data-label="이슈"]::before,
  #view-cases table.list td[data-label="내용"]::before,
  #view-persons table.list td[data-label="내용"]::before,
  #view-stats table.list td[data-label="내용"]::before {
    display: block;
    margin-bottom: 3px;
  }

  #view-users table.list input,
  #view-users table.list select,
  #view-cases table.list button,
  #view-stats table.list button {
    max-width: 100%;
  }

  #view-users table.list input {
    width: 100% !important;
    margin-bottom: 5px;
  }

  #view-works .work-ledger-table {
    min-width: 0;
  }

  #view-works .work-actions,
  #view-users table.list td[data-label="작업"] {
    white-space: normal !important;
  }

  #view-works .work-actions {
    justify-content: flex-start;
  }

  #view-works .work-action-row {
    flex-wrap: wrap;
  }

  #view-works .work-actions button.small,
  #view-users table.list button.small {
    max-width: none;
    min-height: 28px;
  }

  #view-works:not(.mobile-selecting) table.list td.col-select {
    display: none !important;
  }

  #view-works.mobile-selecting table.list tr {
    position: relative;
    padding-top: 40px;
  }

  #view-works.mobile-selecting table.list td.col-select {
    position: absolute;
    top: 9px;
    right: 10px;
    display: flex !important;
    align-items: center;
    gap: 6px;
    width: auto !important;
    min-width: 0 !important;
    padding: 0;
  }

  #view-works.mobile-selecting table.list td.col-select::before {
    content: "업무 선택";
    display: inline;
    color: #4b5563;
    font-size: 11px;
    font-weight: 700;
  }

  #view-works.mobile-selecting table.list td.col-select input[type="checkbox"] {
    width: 20px;
    height: 20px;
    margin: 0;
    accent-color: var(--accent);
  }

  .stat-card table.list th,
  .stat-card table.list td {
    overflow: visible;
  }

  .stat-card .stat-label {
    white-space: normal;
  }

  .stat-card .stat-bar div {
    max-width: 100%;
  }

  .flow-search-bar {
    align-items: stretch;
    flex-direction: column;
  }

  .flow-search-box {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .flow-search-result {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .flow-search-result .meta {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .flow-group-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .flow-list-tools {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: end;
  }

  .flow-list-tools > label,
  .flow-filter-menu,
  .flow-list-tools select,
  .flow-filter-menu summary {
    width: 100%;
    min-width: 0;
  }

  .flow-custom-period {
    grid-column: 1 / -1;
  }

  .flow-custom-period input {
    width: 100%;
    min-width: 0;
  }

  .flow-filter-options {
    position: fixed;
    top: auto;
    right: 16px;
    bottom: 18px;
    left: 16px;
    width: auto;
    max-width: none;
    max-height: min(52vh, 360px);
  }

  .flow-group-item {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .flow-group-preview {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .flow-group-metrics {
    grid-column: 2;
    grid-row: 1;
    flex-direction: column;
    align-items: flex-end;
  }

  .flow-group-main .flow-group-plant {
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .case-follow-assignee {
    flex: 1 1 100%;
    width: 100%;
  }

  .flow-toolbar {
    align-items: stretch;
  }

  .flow-case-tools {
    width: 100%;
  }

  .flow-case-tools select,
  .flow-case-tools button {
    width: 100%;
    max-width: none;
  }

  .flow-board {
    display: block;
    overflow-x: visible;
    padding-left: 0;
    padding-right: 0;
  }

  .flow-connectors { display: none; }

  .flow-level {
    width: 100%;
    margin-bottom: 14px;
  }

  .flow-card { cursor: default; }

  .flow-drag-handle { display: none; }

  .flow-rearrange-pair {
    grid-template-columns: 1fr;
  }

  .flow-rearrange-pair > span { justify-self: center; transform: rotate(90deg); }

  .flow-rearrange-actions { grid-template-columns: 1fr; }

  .follow-row {
    grid-template-columns: 1fr;
  }

  .attach-result {
    grid-template-columns: minmax(0, 1fr) 1fr 1fr;
  }

  .attach-result .main {
    grid-column: 1 / -1;
  }
}


/* ---------------- 홈 대시보드 ---------------- */
#view-home { max-width: 1080px; margin: 0 auto; }
.dash-head { display: flex; align-items: flex-start; justify-content: space-between; margin: 6px 0 0; }
.dash-team-label { color: #0f6e56; font-weight: 700; font-size: 13px; letter-spacing: 0; }
.dash-title { font-size: 24px; margin: 2px 0 0; letter-spacing: 0; }
.dash-sub { color: var(--muted); font-size: 13px; margin: 4px 0 16px; }
.dash-avatar {
  width: 42px; height: 42px; border-radius: 50%; background: #e1f5ee; color: #0f6e56;
  display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 16px;
  border: 1px solid #cde9dd;
}
.dash-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 20px; }
.dash-card {
  border: 1px solid var(--border); border-radius: 14px; background: #fff;
  padding: 14px 16px; display: flex; align-items: center; gap: 12px;
  cursor: pointer; text-align: left; min-height: 78px; transition: box-shadow 0.15s, transform 0.15s;
}
.dash-card:hover { box-shadow: 0 3px 12px rgba(0,0,0,0.08); transform: translateY(-1px); background: #fff; }
.dash-card.wide { grid-column: 1 / -1; }
.dash-card .ic {
  width: 42px; height: 42px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.dash-card .ic svg { width: 22px; height: 22px; }
.dash-card .tx { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.dash-card .tt { font-weight: 700; font-size: 15px; line-height: 1.2; }
.dash-card .ds { color: var(--muted); font-size: 11.5px; line-height: 1.35; }
.dash-card .num { margin-left: auto; font-size: 27px; font-weight: 800; white-space: nowrap; line-height: 1; padding-left: 8px; }
.dash-card .num small { font-size: 12.5px; font-weight: 400; color: var(--muted); margin-left: 3px; }
.dash-card.c-blue   { border-color: #cfdff9; background: #fbfcff; } .dash-card.c-blue .tt, .dash-card.c-blue .num { color: #2563eb; } .dash-card.c-blue .ic { background: #e8f0fe; }
.dash-card.c-green  { border-color: #cbe8d4; background: #fafdfb; } .dash-card.c-green .tt, .dash-card.c-green .num { color: #16a34a; } .dash-card.c-green .ic { background: #e7f6ec; }
.dash-card.c-gray   { border-color: var(--border); background: #fdfdfb; } .dash-card.c-gray .tt { color: #52524c; } .dash-card.c-gray .num { color: #3c3c38; } .dash-card.c-gray .ic { background: #f0f0ea; }
.dash-card.c-orange { border-color: #f7ddba; background: #fffcf7; } .dash-card.c-orange .tt, .dash-card.c-orange .num { color: #c2620a; } .dash-card.c-orange .ic { background: #fdf0dd; }
.dash-card.c-teal   { border-color: #bfe2dc; background: #f8fdfc; } .dash-card.c-teal .tt, .dash-card.c-teal .num { color: #0f766e; } .dash-card.c-teal .ic { background: #ddf3ef; }
.dash-card.c-red    { border-color: #f6cfcf; background: #fffafa; } .dash-card.c-red .tt, .dash-card.c-red .num { color: #dc2626; } .dash-card.c-red .ic { background: #fdeaea; }
.dash-card.c-indigo { border-color: #d7d9ef; background: #fbfbfe; } .dash-card.c-indigo .tt { color: #4d517c; } .dash-card.c-indigo .ic { background: #ececf7; color: #555b8c; }
.monitoring-card-arrow { margin-left: auto; color: #6a7097; font-size: 27px; line-height: 1; }
.dash-list-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 22px; flex-wrap: wrap; }
.dash-list-title { font-size: 17px; margin: 0 0 10px; }
.dash-journal-tools { display: flex; align-items: center; justify-content: flex-end; gap: 6px; margin: 0 0 10px auto; flex-wrap: wrap; }
.dash-journal-tools[hidden] { display: none !important; }
.dash-journal-tools > .smart-date-input { width: 148px; min-height: 34px; }
.dash-journal-field-filters {
  display: inline-flex; align-items: center; gap: 4px; min-height: 34px; padding: 3px 5px;
  border: 1px solid var(--border); border-radius: 7px; background: #fff;
}
.dash-journal-field-filters > span { color: var(--muted); font-size: 11px; padding: 0 2px; }
.dash-journal-field-filters label {
  display: inline-flex; align-items: center; gap: 4px; min-height: 26px; padding: 3px 7px;
  border-radius: 5px; color: #315a54; background: #edf8f5; font-size: 11.5px; white-space: nowrap; cursor: pointer;
}
.dash-journal-field-filters input { width: 14px; height: 14px; margin: 0; flex: 0 0 auto; accent-color: #0f766e; }
.dash-journal-step { width: 34px; min-width: 34px; padding-left: 0; padding-right: 0; }
.dash-copy-today { white-space: nowrap; }
.dash-row {
  background: #fff; border: 1px solid var(--border); border-radius: 8px;
  padding: 8px 12px; margin-bottom: 6px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap;
}
.dash-row-done { background: #f7f8f7; border-color: #e1e4e2; color: #727874; opacity: 0.72; }
.dash-row-done:hover { background: #f4f6f5; border-color: #ced5d1; opacity: 0.9; }
.dash-row-done .t b { color: #626864; }
.dash-primary { display: flex; align-items: center; gap: 10px; flex: 1 1 420px; min-width: 0; }
.dash-meta { display: flex; align-items: center; justify-content: flex-end; gap: 7px; min-width: 0; }
.dash-row .d { flex: 0 0 82px; color: var(--muted); font-size: 12px; white-space: nowrap; }
.dash-row .t { flex: 1 1 auto; min-width: 0; font-size: 13.5px; overflow-wrap: anywhere; word-break: keep-all; }
.dash-team-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; margin: 4px 0 8px; }
.dash-mini {
  background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: 11px 13px; cursor: pointer;
  transition: box-shadow 0.15s;
}
.dash-mini:hover { box-shadow: 0 3px 10px rgba(0,0,0,0.07); }
.dash-mini b { font-size: 14px; }
.dash-mini .mrow { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 7px; }
@media (min-width: 860px) {
  .dash-cards { grid-template-columns: repeat(4, 1fr); gap: 12px; }
  .dash-card.wide { grid-column: span 2; }
  .dash-card { min-height: 86px; padding: 15px 18px; }
  .dash-card .num { font-size: 30px; }
  .dash-title { font-size: 26px; }
}

.dash-card.sel { outline: 2px solid #0f6e56; outline-offset: -2px; }

@media (max-width: 700px) {
  .dash-cards {
    grid-template-columns: 1fr;
  }

  .dash-card,
  .dash-card.wide {
    grid-column: 1;
  }

  .dash-list-head { align-items: flex-start; flex-direction: column; }
  .dash-journal-tools { width: 100%; justify-content: flex-start; flex-wrap: wrap; margin-left: 0; }
  .dash-journal-tools > .smart-date-input { flex: 1 1 145px; min-width: 140px; }
  .dash-journal-field-filters { order: 5; width: 100%; overflow-x: auto; justify-content: flex-start; }
  .dash-copy-today { flex: 1 1 100%; }
}

/* 통합 검색 */
.global-search-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  padding: 5px 8px;
  border-color: #cfd8e3;
  background: #f8fafb;
  color: #3f4b59;
  white-space: nowrap;
}
.global-search-trigger kbd {
  padding: 1px 4px;
  border: 1px solid #d6dce2;
  border-bottom-width: 2px;
  border-radius: 4px;
  background: #fff;
  color: #73808e;
  font-size: 10px;
}
.global-search-box { width: min(860px, calc(100vw - 28px)); max-height: min(780px, calc(100vh - 28px)); overflow: hidden; }
.global-search-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.global-search-head h2 { margin: 2px 0 10px; }
.global-search-input-row {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  align-items: center;
  border: 1px solid #aebbc8;
  border-radius: 6px;
  background: #fff;
}
.global-search-input-row > span { color: #5b6774; text-align: center; font-size: 20px; }
.global-search-input-row input { min-height: 42px; border: 0; font-size: 15px; outline: none; }
.global-ai-search-button { align-self: center; min-width: 104px; margin-right: 4px; white-space: nowrap; }
.global-search-summary { min-height: 28px; padding: 7px 2px 4px; }
.global-ai-answer { margin: 8px 0 12px; border: 1px solid #9fcfc3; border-left: 4px solid #0b8072; background: #f5fbf9; }
.global-ai-answer-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; padding: 13px 14px 10px; border-bottom: 1px solid #d9ebe6; }
.global-ai-answer-head h3 { margin: 2px 0 0; font-size: 17px; }
.global-ai-answer-body { max-height: 52vh; overflow-y: auto; padding: 16px 18px 20px; color: #20312f; word-break: keep-all; line-height: 1.68; }
.global-ai-answer-body h2, .global-ai-answer-body h3, .global-ai-answer-body h4, .global-ai-answer-body h5 { margin: 18px 0 7px; color: #143d36; line-height: 1.35; }
.global-ai-answer-body h2:first-child, .global-ai-answer-body h3:first-child { margin-top: 0; }
.global-ai-answer-body h2 { font-size: 18px; }
.global-ai-answer-body h3 { font-size: 16px; }
.global-ai-answer-body h4, .global-ai-answer-body h5 { font-size: 14px; }
.global-ai-answer-body p { margin: 7px 0; }
.global-ai-answer-body ul, .global-ai-answer-body ol { margin: 7px 0 11px; padding-left: 24px; }
.global-ai-answer-body li { margin: 4px 0; }
.global-ai-answer-body strong { color: #102f2a; }
.global-ai-answer-body code { padding: 1px 4px; border: 1px solid #d7e6e1; border-radius: 4px; background: #edf5f2; font-family: Consolas, monospace; font-size: .92em; }
.global-ai-answer-body hr { margin: 16px 0; border: 0; border-top: 1px solid #cfe2dc; }
.global-ai-answer-body blockquote { margin: 10px 0; padding: 8px 11px; border-left: 3px solid #45a18c; background: #edf7f4; color: #395c55; }
.global-ai-answer-body a { color: #075f9b; text-decoration: underline; }
.markdown-table-wrap { width: 100%; overflow-x: auto; margin: 8px 0 12px; border: 1px solid #d7e0e8; border-radius: 6px; }
.markdown-table-wrap table { width: 100%; min-width: 560px; border-collapse: collapse; background: #fff; }
.markdown-table-wrap th, .markdown-table-wrap td { padding: 8px 10px; border-bottom: 1px solid #e4e9ee; border-right: 1px solid #edf1f4; text-align: left; vertical-align: top; white-space: normal; }
.markdown-table-wrap th { background: #f3f7f6; color: #174f48; font-weight: 700; }
.markdown-table-wrap tr:last-child td { border-bottom: 0; }
.markdown-table-wrap th:last-child, .markdown-table-wrap td:last-child { border-right: 0; }
.global-search-results { max-height: 62vh; overflow-y: auto; border-top: 1px solid var(--border); }
.global-search-group { padding: 12px 0 6px; border-bottom: 1px solid #eceeea; }
.global-search-group h3 { margin: 0 0 6px; color: #32404d; font-size: 13px; }
.global-search-result {
  display: grid;
  grid-template-columns: minmax(120px, 0.8fr) minmax(240px, 2fr) auto;
  gap: 10px;
  width: 100%;
  padding: 8px 6px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  text-align: left;
}
.global-search-result:hover { background: #f1f7f5; }
.global-search-result .result-context { color: #62707d; font-size: 12px; }
.global-search-result .result-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700; }
.global-search-result .result-meta { color: var(--muted); font-size: 11px; white-space: nowrap; }
.ai-search-config-grid { display: grid; grid-template-columns: minmax(160px, .7fr) minmax(260px, 1.5fr) auto auto auto; align-items: end; gap: 10px; }
.ai-search-config-grid label:not(.ai-search-enable) { display: grid; gap: 5px; }
.ai-search-config-grid label > span { color: var(--muted); font-size: 12px; }
.ai-search-enable { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; white-space: nowrap; }
.ai-search-enable input { margin: 0; }
.ai-search-usage { margin-top: 12px; padding-top: 12px; border-top: 1px solid #e1e8e5; }
.ai-search-usage-summary { display: grid; grid-template-columns: repeat(4, minmax(120px, 1fr)); gap: 7px; }
.ai-search-usage-summary > div { display: grid; gap: 2px; padding: 10px 12px; border-left: 3px solid #55a896; background: #f4f8f7; }
.ai-search-usage-summary span { color: var(--muted); font-size: 11px; }
.ai-search-usage-summary strong { font-size: 18px; }
.ai-search-usage-users { margin-top: 8px; }
.ai-search-usage-user-head, .ai-search-usage-user-row { display: grid; grid-template-columns: minmax(130px, 1.4fr) repeat(4, minmax(70px, .65fr)); gap: 8px; align-items: center; padding: 6px 9px; }
.ai-search-usage-user-head { color: var(--muted); background: #f3f5f4; font-size: 10px; font-weight: 700; }
.ai-search-usage-user-row { border-bottom: 1px solid #edf0ee; font-size: 11px; }
.ai-search-usage-user-head span:not(:first-child), .ai-search-usage-user-row span { text-align: right; }
.ai-search-enable { display: flex; align-items: center; gap: 7px; min-height: 36px; white-space: nowrap; }
.ai-search-security-note { margin: 9px 0 0; }

/* 발전소 기준정보 */
.section-kicker { color: #0f6e56; font-size: 11px; font-weight: 800; }
.plant-master-heading { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(520px, 760px); align-items: start; gap: 12px; margin: 0 0 5px; }
.plant-master-heading h2 { margin: 2px 0 3px; font-size: 22px; }
.plant-master-heading p { margin: 0; }
.plant-master-admin { display: grid; gap: 3px; width: 100%; max-width: 760px; justify-self: end; }
.pm-source-row.pm-source-compact { display: grid; grid-template-columns: minmax(180px, 1fr) auto auto auto 118px auto auto; gap: 5px; align-items: center; }
.pm-source-compact .pm-source-path { min-width: 0; }
.pm-source-compact .pm-source-path input { min-width: 0; text-overflow: ellipsis; }
.pm-source-compact .pm-auto-time { display: flex; align-items: center; }
.pm-source-compact .pm-auto-time input { width: 118px; }
.pm-source-status { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 8px; }
.pm-source-status .pm-source-note { min-width: 0; }
.pm-unmatched-open { flex: 0 0 auto; min-height: 26px; padding: 3px 8px; color: #416057; }
.pm-unmatched-open.has-unmatched { border-color: #e7b75c; background: #fff7e5; color: #8a5300; font-weight: 800; }
.plant-master-view-tabs { display: flex; gap: 2px; margin-bottom: 5px; border-bottom: 1px solid var(--border); }
.plant-master-view-tabs button { padding: 7px 12px; border: 0; border-bottom: 3px solid transparent; border-radius: 0; background: transparent; }
.plant-master-view-tabs button.active { border-bottom-color: var(--accent); color: var(--accent); font-weight: 800; }
.plant-master-filters {
  display: grid;
  grid-template-columns: minmax(240px, 1.4fr) repeat(3, minmax(120px, 0.55fr)) auto auto;
  gap: 8px;
  align-items: end;
  padding: 10px 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.plant-master-filters label { display: grid; gap: 3px; color: var(--muted); font-size: 11px; }
.plant-master-filters input, .plant-master-filters select { width: 100%; }
.plant-overview-disclosure { margin: 5px 0; border: 1px solid var(--border); background: #fff; }
.plant-overview-disclosure > summary { display: flex; align-items: center; gap: 8px; min-height: 34px; padding: 6px 10px; cursor: pointer; list-style: none; color: #31544b; }
.plant-overview-disclosure > summary::-webkit-details-marker { display: none; }
.plant-overview-disclosure > summary::before { content: "▸"; color: #0f766e; font-size: 11px; transition: transform .15s ease; }
.plant-overview-disclosure[open] > summary::before { transform: rotate(90deg); }
.plant-overview-disclosure > summary span { font-size: 12px; font-weight: 800; }
.plant-overview-disclosure > summary small { color: var(--muted); font-size: 10px; }
.plant-overview-disclosure > .plant-overview-strip,
.plant-overview-disclosure > .plant-distributions { margin-right: 7px; margin-left: 7px; }
.plant-overview-strip { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); gap: 6px; margin: 8px 0; }
.plant-overview-metric {
  display: grid;
  gap: 2px;
  min-height: 60px;
  padding: 7px 10px;
  border: 1px solid var(--border);
  border-left-width: 4px;
  border-radius: 6px;
  background: #fff;
  text-align: left;
}
.plant-overview-metric:nth-child(1) { border-left-color: #0f766e; }
.plant-overview-metric:nth-child(2) { border-left-color: #2563eb; }
.plant-overview-metric:nth-child(3) { border-left-color: #9a6b13; }
.plant-overview-metric:nth-child(4) { border-left-color: #b23a48; }
.plant-overview-metric strong { font-size: 20px; }
.plant-overview-metric span { color: var(--muted); font-size: 11px; }
.plant-overview-strip.compact { margin-top: 0; }
.plant-distributions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0 0 8px; }
.plant-distributions section { min-width: 0; border: 1px solid var(--border); background: #fff; padding: 7px 8px; }
.plant-distributions h3 { margin: 0 0 5px; font-size: 12px; }
.plant-distribution-list { display: grid; gap: 1px; max-height: 176px; overflow-y: auto; scrollbar-gutter: stable; }
.plant-distribution-row { display: grid; grid-template-columns: minmax(90px, 1fr) minmax(80px, 1.4fr) 42px 92px; gap: 7px; align-items: center; width: 100%; min-height: 28px; padding: 3px 6px; border-color: transparent; background: transparent; text-align: left; }
.plant-operations-pane { padding-top: 6px; }
.plant-operations-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin: 4px 0 9px; }
.plant-operations-heading h2 { margin: 2px 0 0; font-size: 20px; }
.plant-operations-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 6px; margin-bottom: 9px; }
.plant-operations-kpi { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 8px; min-height: 62px; padding: 8px 10px; border: 1px solid var(--border); border-left: 3px solid #16836a; background: #fff; }
.plant-operations-kpi span { grid-column: 1 / -1; color: var(--muted); font-size: 11px; }
.plant-operations-kpi strong { font-size: 17px; }
.plant-operations-kpi small { align-self: end; color: var(--muted); font-size: 10px; }
.plant-operations-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr); gap: 8px; }
.plant-operations-grid .card, .plant-operations-groups { margin-bottom: 8px; padding: 10px; }
.plant-operations-grid .table-scroll { max-height: 300px; overflow: auto; }
.plant-operations-groups .table-scroll { max-height: 360px; overflow: auto; }
.plant-operations-pane .empty-state { min-height: 110px; }
.plant-inspection-overview-pane { padding-top: 6px; }
.plant-inspection-overview-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin: 4px 0 9px; }
.plant-inspection-overview-heading h2 { margin: 2px 0; font-size: 20px; }
.plant-inspection-overview-heading p { margin: 0; }
.plant-inspection-overview-heading label { display: grid; gap: 3px; color: var(--muted); font-size: 10px; }
.plant-inspection-overview-heading select { min-width: 110px; }
.plant-inspection-overview-kpis { display: grid; grid-template-columns: repeat(4, minmax(120px, 1fr)); margin-bottom: 8px; border: 1px solid var(--border); background: #fff; }
.plant-inspection-overview-kpis > div { display: grid; gap: 1px; padding: 8px 11px; border-right: 1px solid var(--border); }
.plant-inspection-overview-kpis > div:last-child { border-right: 0; }
.plant-inspection-overview-kpis strong { color: #087d70; font-size: 18px; }
.plant-inspection-overview-kpis span { color: var(--muted); font-size: 10px; }
.plant-inspection-overview-kpis .attention strong { color: #b25b09; }
.plant-inspection-overview-list { display: grid; gap: 6px; }
.inspection-vendor-row { border: 1px solid var(--border); background: #fff; }
.inspection-vendor-row > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 8px 12px; cursor: pointer; list-style: none; }
.inspection-vendor-row > summary::-webkit-details-marker { display: none; }
.inspection-vendor-row > summary > div:first-child { display: flex; align-items: baseline; gap: 7px; min-width: 0; }
.inspection-vendor-row > summary strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.inspection-vendor-row > summary span { color: var(--muted); font-size: 10px; }
.inspection-vendor-counts { display: flex; gap: 5px; flex: 0 0 auto; }
.inspection-vendor-counts { align-items: center; }
.inspection-vendor-counts span { padding: 3px 6px; border: 1px solid #cbd7d3; background: #f5faf8; }
.inspection-vendor-counts span.attention { border-color: #f0c997; background: #fff7e9; color: #9a5506; }
.inspection-vendor-pdf { min-height: 27px; margin-left: 3px; border-color: #9bc9be; background: #eef8f5; color: #087568; font-weight: 800; }
.inspection-vendor-table { border-top: 1px solid var(--border); }
.inspection-vendor-head, .inspection-vendor-plant { display: grid; grid-template-columns: minmax(190px, 1.25fr) repeat(4, minmax(90px, .55fr)) minmax(230px, 1.6fr); gap: 8px; align-items: center; width: 100%; }
.inspection-vendor-head { padding: 6px 11px; color: var(--muted); background: #f8faf9; font-size: 9px; font-weight: 800; }
.inspection-vendor-plant { min-height: 53px; padding: 7px 11px; border: 0; border-top: 1px solid #e5ebe8; border-radius: 0; background: #fff; text-align: left; }
.inspection-vendor-plant:hover { background: #f5faf8; }
.inspection-vendor-plant-name { display: grid; gap: 1px; min-width: 0; }
.inspection-vendor-plant-name strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.inspection-vendor-plant-name small { color: var(--muted); font-size: 9px; }
.inspection-overview-progress { display: grid; gap: 1px; }
.inspection-overview-progress strong { font-size: 11px; font-variant-numeric: tabular-nums; }
.inspection-overview-progress small { color: var(--muted); font-size: 9px; }
.inspection-vendor-missing { display: flex; flex-wrap: wrap; gap: 3px; }
.inspection-vendor-missing em { padding: 2px 5px; border: 1px solid #f0c997; background: #fff7e9; color: #995403; font-size: 9px; font-style: normal; }
.inspection-vendor-missing em.complete { border-color: #b9ddd4; background: #edf8f5; color: #087568; }
.plant-distribution-row:hover { border-color: #c8d7d2; background: #f5faf8; }
.plant-distribution-row .label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 700; }
.plant-distribution-row .meter { height: 6px; overflow: hidden; background: #edf1ef; }
.plant-distribution-row .meter i { display: block; height: 100%; background: #77b7a6; }
.plant-distribution-row b { text-align: right; font-size: 12px; }
.plant-distribution-row small { color: var(--muted); font-size: 10px; text-align: right; white-space: nowrap; }
.plant-master-layout { display: grid; grid-template-columns: minmax(260px, 320px) 30px minmax(0, 1fr); min-height: 640px; border-top: 1px solid var(--border); transition: grid-template-columns .18s ease; }
.plant-master-layout.directory-collapsed { grid-template-columns: 0 30px minmax(0, 1fr); }
.plant-master-layout.directory-collapsed .plant-directory { visibility: hidden; overflow: hidden; border-right: 0; }
.plant-directory-toggle { position: sticky; top: calc(var(--topbar-sticky-offset) + 8px); z-index: 3; align-self: start; width: 28px; min-width: 28px; height: 42px; margin-top: 8px; padding: 0; border: 1px solid #c9d8d3; border-left: 0; border-radius: 0 6px 6px 0; background: #f2f8f6; color: #0f766e; font-size: 21px; font-weight: 800; box-shadow: 2px 2px 7px rgba(36, 72, 63, .08); }
.plant-directory-toggle:hover { background: #e5f3ef; }
.plant-match-box { width: min(1120px, 96vw); padding: 16px 18px; overflow: hidden; }
.plant-match-box > .modal-title-row { margin-bottom: 10px; }
.plant-match-box > .modal-title-row p { margin: 2px 0 0; }
.plant-match-summary { display: grid; grid-template-columns: repeat(4, minmax(110px, 1fr)); border: 1px solid var(--border); background: #f7f9f8; }
.plant-match-summary > div { display: grid; gap: 1px; padding: 8px 11px; border-left: 1px solid var(--border); }
.plant-match-summary > div:first-child { border-left: 0; }
.plant-match-summary strong { font-size: 18px; }
.plant-match-summary span { color: var(--muted); font-size: 11px; }
.plant-match-toolbar { display: grid; grid-template-columns: minmax(240px, 1fr) auto auto; gap: 7px; align-items: center; padding: 9px 0; }
.plant-match-toolbar label { display: flex; align-items: center; gap: 5px; color: var(--muted); font-size: 12px; white-space: nowrap; }
.plant-match-toolbar label input { margin: 0; }
.plant-match-list { max-height: min(58vh, 610px); overflow-y: auto; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); scrollbar-gutter: stable; }
.plant-match-row { display: grid; grid-template-columns: minmax(190px, .75fr) minmax(280px, 1.2fr) minmax(310px, 1fr); gap: 14px; padding: 13px 4px; border-bottom: 1px solid #dde3e0; }
.plant-match-row:last-child { border-bottom: 0; }
.plant-match-origin, .plant-match-samples, .plant-match-resolve { min-width: 0; }
.plant-match-origin { position: relative; padding-right: 42px; }
.plant-match-origin h3 { margin: 3px 0 7px; overflow-wrap: anywhere; font-size: 14px; }
.plant-match-origin > div { display: flex; gap: 4px; flex-wrap: wrap; }
.plant-match-source { padding: 2px 5px; background: #edf2f0; color: #53635e; font-size: 10px; }
.plant-match-count { position: absolute; top: 1px; right: 0; color: #9b5a00; font-size: 11px; }
.plant-match-label { display: block; margin-bottom: 6px; color: var(--muted); font-size: 11px; font-weight: 700; }
.plant-match-samples ul { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.plant-match-samples li { display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 2px 7px; align-items: center; }
.plant-match-samples li span, .plant-match-samples li small { color: var(--muted); font-size: 10px; }
.plant-match-samples li b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.plant-match-samples li small { grid-column: 2; }
.plant-match-suggestions { display: flex; min-height: 28px; gap: 4px; align-items: flex-start; flex-wrap: wrap; margin-bottom: 6px; }
.plant-match-suggestion { display: grid; gap: 1px; padding: 4px 7px; border-color: #b9d9ce; background: #f2faf7; text-align: left; }
.plant-match-suggestion b { font-size: 11px; }
.plant-match-suggestion span { color: #4c6e64; font-size: 9px; }
.plant-match-action { display: grid; grid-template-columns: minmax(160px, 1fr) auto; gap: 5px; }
.plant-match-action input { width: 100%; min-width: 0; }
.plant-match-history { padding-top: 8px; }
.plant-match-history summary { cursor: pointer; color: #52615d; font-size: 12px; font-weight: 700; }
.plant-match-history > div { max-height: 190px; overflow: auto; margin-top: 7px; }
.plant-match-history table { width: 100%; }
.plant-directory { min-width: 0; border-right: 1px solid var(--border); background: #f7f8f5; transition: opacity .15s ease; }
.plant-directory-head { display: flex; justify-content: space-between; padding: 12px; border-bottom: 1px solid var(--border); }
#pm-list { max-height: 76vh; overflow-y: auto; }
.plant-directory-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 5px 8px;
  width: 100%;
  padding: 10px 12px;
  border: 0;
  border-bottom: 1px solid #e5e7e2;
  border-radius: 0;
  background: transparent;
  text-align: left;
}
.plant-directory-item:hover, .plant-directory-item.active { background: #e8f4f0; }
.plant-directory-item.common-work { border-bottom: 1px solid #b9d8cf; background: #f0f8f5; }
.plant-directory-item.common-work:hover, .plant-directory-item.common-work.active { background: #dff1eb; }
.plant-directory-item.common-work strong { color: #0f6f65; }
.plant-directory-item.common-work small { grid-column: 1 / -1; }
.plant-directory-item strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.plant-directory-item small { color: var(--muted); }
.plant-directory-item .issue-count { align-self: center; color: #9b2c2c; font-size: 11px; }
.plant-detail-workspace { min-width: 0; padding: 0 18px 28px; background: #fff; }
.empty-state { display: flex; min-height: 260px; flex-direction: column; align-items: center; justify-content: center; gap: 5px; color: var(--muted); }
.plant-detail-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; padding: 16px 0 12px; border-bottom: 1px solid var(--border); }
.plant-detail-head h2 { margin: 2px 0 5px; font-size: 21px; }
.plant-detail-meta { display: flex; gap: 6px 14px; flex-wrap: wrap; color: #54606c; font-size: 12px; }
.plant-detail-tabs { display: flex; gap: 2px; overflow-x: auto; padding: 10px 0 0; border-bottom: 1px solid var(--border); }
.plant-detail-tabs button { border: 0; border-bottom: 3px solid transparent; border-radius: 0; background: transparent; padding: 9px 12px; white-space: nowrap; }
.plant-detail-tabs button.active { border-bottom-color: var(--accent); color: var(--accent); font-weight: 800; }
.plant-detail-pane { padding-top: 14px; }
.plant-area-nav { display: flex; gap: 5px; overflow-x: auto; padding-bottom: 10px; }
.plant-area-nav button.active { border-color: #0f6e56; background: #e1f5ee; color: #0f6e56; font-weight: 700; }
.plant-field-tools { display: flex; justify-content: flex-end; margin-bottom: 8px; }
.plant-field-group { padding: 13px 0; border-top: 1px solid #e4e7e2; }
.plant-field-group:first-of-type { border-top: 0; }
.plant-field-group h3 { margin: 0 0 8px; font-size: 13px; }
.plant-field-grid { display: grid; grid-template-columns: repeat(3, minmax(160px, 1fr)); gap: 1px 16px; }
.plant-field { display: grid; grid-template-columns: minmax(110px, 0.8fr) minmax(0, 1.2fr); gap: 8px; padding: 6px 0; border-bottom: 1px dotted #d8ddd7; }
.plant-field dt { color: var(--muted); font-size: 11px; }
.plant-field dd { margin: 0; overflow-wrap: anywhere; font-size: 12px; }
.plant-field.empty { color: #a0a8a1; }
.plant-detail-overview-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(280px, 0.7fr); gap: 22px; }
.plant-detail-overview-grid h3 { margin: 2px 0 8px; font-size: 14px; }
.plant-overview-work-list { display: grid; gap: 4px; }
.plant-overview-work { display: grid; grid-template-columns: 86px minmax(0, 1fr) auto; gap: 8px; width: 100%; align-items: center; padding: 8px; border-color: #e0e6e2; text-align: left; }
.plant-overview-work span { color: var(--muted); font-size: 11px; }
.plant-overview-work b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.plant-core-list { margin: 0; }
.plant-core-list > div { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 10px; padding: 7px 0; border-bottom: 1px dotted #d8ddd7; }
.plant-core-list dt { color: var(--muted); font-size: 11px; }
.plant-core-list dd { margin: 0; overflow-wrap: anywhere; font-size: 12px; }
.plant-overview-report-link { margin-top: 10px; }
.plant-overview-asset-summary { display: flex; flex-wrap: wrap; gap: 7px; }
.plant-overview-asset-summary span { display: inline-flex; align-items: baseline; gap: 4px; min-height: 30px; padding: 6px 9px; border: 1px solid #d7e1de; border-radius: 6px; background: #f8fbfa; color: #41514f; font-size: 11px; }
.plant-overview-asset-summary b { color: #087f72; font-size: 13px; }
.plant-table-scroll { overflow-x: auto; }
.plant-related-list tr[data-pm-work] { cursor: pointer; }
.plant-related-list tr[data-pm-work]:hover { background: #f1f7f5; }
.plant-related-list { width: 100%; border-collapse: collapse; }
.plant-related-list th, .plant-related-list td { padding: 7px 8px; border-bottom: 1px solid var(--border); text-align: left; font-size: 12px; }
.plant-issue-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.plant-issue-toolbar-actions { display: flex; align-items: center; gap: 8px; }
.task-date-state { display: block; margin-top: 3px; color: #687773; font-size: 10.5px; }
.task-deadline-label { color: #9b4e18; font-size: 10px; }
.plant-common-box { width: min(1040px, calc(100vw - 28px)); max-height: calc(100vh - 28px); overflow: auto; }
.plant-common-toolbar { display: grid; grid-template-columns: minmax(150px, 220px) minmax(180px, 260px) auto; gap: 10px; align-items: end; margin: 14px 0 8px; }
.plant-common-toolbar label { display: grid; gap: 4px; color: var(--muted); font-size: 11px; }
.plant-common-toolbar select { width: 100%; }
.plant-common-guide { margin-bottom: 10px; padding: 9px 10px; border: 1px solid var(--border); background: var(--surface-soft); color: var(--muted); font-size: 12px; }
.plant-common-list { display: grid; border-top: 1px solid var(--border); }
.plant-common-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 4px; border-bottom: 1px solid var(--border); }
.plant-common-row-main { display: grid; grid-template-columns: 110px minmax(0, 1fr); align-items: center; gap: 9px; min-width: 0; flex: 1; }
.plant-common-row-main > button { min-width: 0; border: 0; background: transparent; text-align: left; color: inherit; }
.plant-common-row-main > button strong, .plant-common-row-main > button small { display: block; overflow-wrap: anywhere; }
.plant-common-row-main > button small { margin-top: 3px; color: var(--muted); }
.plant-common-visibility { display: flex; align-items: center; gap: 7px; flex: 0 0 auto; }
@media (max-width: 720px) {
  .plant-common-box { width: calc(100vw - 12px); max-height: calc(100vh - 12px); }
  .plant-common-toolbar { grid-template-columns: 1fr 1fr; }
  .plant-common-toolbar > button { grid-column: 1 / -1; }
  .plant-common-row { align-items: stretch; flex-direction: column; }
  .plant-common-row-main { grid-template-columns: 96px minmax(0, 1fr); }
  .plant-common-visibility { justify-content: flex-end; }
}
.plant-issue-list { display: grid; gap: 7px; }
.plant-issue-row { display: grid; grid-template-columns: 105px minmax(180px, 1fr) 90px 100px 138px auto; gap: 8px; align-items: center; padding: 9px 8px; border-bottom: 1px solid var(--border); }
.plant-issue-row button { text-align: left; border: 0; background: transparent; color: var(--blue); font-weight: 700; }
.plant-issue-row .draft { color: #9a6b13; font-size: 11px; }
.plant-issue-author { display: grid; justify-items: end; min-width: 0; line-height: 1.25; }
.plant-issue-author strong { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #273a36; font-size: 12px; }
.plant-issue-author small { color: var(--muted); font-size: 10px; white-space: nowrap; }
.epc-toolbar { align-items: flex-end; }
.epc-toolbar-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.epc-batch-strip { display: flex; gap: 7px; margin: 8px 0 10px; padding: 8px; overflow-x: auto; border: 1px solid #dbe4e2; background: #f7faf9; }
.epc-batch-card { display: grid; grid-template-columns: minmax(150px, 1fr) auto auto; align-items: center; gap: 8px; flex: 0 0 min(520px, 88vw); padding: 8px 9px; border: 1px solid #cfdcd8; background: #fff; }
.epc-batch-card > button:first-child { display: grid; gap: 2px; min-width: 0; border: 0; background: transparent; text-align: left; }
.epc-batch-card > button:first-child span { color: var(--muted); font-size: 10px; }
.epc-batch-card strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.epc-batch-card.active { border-color: #17806d; box-shadow: inset 3px 0 #17806d; }
.epc-selection-bar { position: sticky; top: 0; z-index: 3; display: flex; align-items: center; gap: 7px; min-height: 42px; margin-bottom: 6px; padding: 6px 8px; border: 1px solid #9fc9be; background: #edf8f5; }
.epc-selection-bar[hidden] { display: none; }
.epc-selection-bar strong { margin-right: auto; }
.epc-issue-row { grid-template-columns: 78px minmax(220px, 1fr) 90px 82px 138px auto auto; }
.epc-issue-row.has-admin-select { grid-template-columns: 24px 78px minmax(220px, 1fr) 90px 82px 138px auto auto; }
.epc-row-check { width: 16px; height: 16px; }
.epc-row-id { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.epc-row-title { min-width: 0; overflow-wrap: anywhere; }
.epc-row-topic { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.epc-row-status { white-space: nowrap; }
.epc-category { display: inline-flex; align-items: center; justify-content: center; min-height: 24px; padding: 3px 7px; border: 1px solid #d6dedc; background: #f6f8f7; font-size: 11px; font-weight: 700; }
.epc-category.safety { border-color: #efc6c1; background: #fff1ef; color: #9c2f25; }
.epc-category.quality { border-color: #d7c7ec; background: #f7f1ff; color: #65429b; }
.epc-category.construction { border-color: #b9d6e8; background: #edf7fc; color: #1c5d83; }
.epc-row-meta { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; font-weight: 500; }
.plant-issue-visibility { display: inline-flex; align-items: center; justify-content: flex-end; gap: 5px; white-space: nowrap; }
.plant-issue-visibility .publish-issue-button { padding: 3px 6px; border: 1px solid #9bcfc3; border-radius: 5px; background: #e8f7f3; color: #08634c; font-size: 10px; font-weight: 800; }
.plant-unified-posts-pane { min-width: 0; }
.plant-unified-posts-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin: 4px 0 10px; }
.plant-unified-posts-heading h2 { margin: 2px 0; font-size: 20px; }
.plant-unified-posts-heading p { margin: 0; }
.plant-unified-posts-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.plant-unified-posts-filters { display: grid; grid-template-columns: minmax(220px, 1.4fr) repeat(6, minmax(112px, .65fr)) auto auto; gap: 7px; align-items: end; padding: 9px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.plant-unified-posts-filters label { display: grid; gap: 3px; min-width: 0; }
.plant-unified-posts-filters label > span { color: var(--muted); font-size: 11px; }
.plant-unified-posts-filters input,
.plant-unified-posts-filters select { width: 100%; min-width: 0; }
.plant-unified-posts-summary { display: flex; align-items: baseline; gap: 8px; min-height: 34px; padding: 8px 2px 5px; }
.plant-unified-posts-summary strong { color: var(--accent); font-size: 15px; }
.plant-unified-posts-summary span { color: var(--muted); font-size: 11px; }
.plant-unified-posts-table-wrap { overflow: auto; border-top: 1px solid #cfd9d6; }
.plant-unified-posts-table { width: 100%; min-width: 1120px; border-collapse: collapse; table-layout: fixed; }
.plant-unified-posts-table th { position: sticky; top: 0; z-index: 2; padding: 7px 8px; border-bottom: 1px solid #b9c9c5; background: #eef3f2; color: #455b56; font-size: 11px; text-align: left; }
.plant-unified-posts-table th:nth-child(1) { width: 15%; }
.plant-unified-posts-table th:nth-child(2) { width: 13%; }
.plant-unified-posts-table th:nth-child(3) { width: 28%; }
.plant-unified-posts-table th:nth-child(4) { width: 13%; }
.plant-unified-posts-table th:nth-child(5) { width: 11%; }
.plant-unified-posts-table th:nth-child(6) { width: 14%; }
.plant-unified-posts-table th:nth-child(7) { width: 6%; }
.plant-unified-posts-table td { padding: 7px 8px; border-bottom: 1px solid #e2e8e6; vertical-align: top; color: #263834; font-size: 12px; overflow-wrap: anywhere; }
.plant-unified-posts-table tbody tr:hover { background: #f7faf9; }
.plant-unified-posts-table td > strong,
.plant-unified-posts-table td > span,
.plant-unified-posts-table td > small { display: block; }
.plant-unified-posts-table td small { margin-top: 3px; color: var(--muted); font-size: 10px; line-height: 1.35; }
.plant-unified-posts-table td button { display: grid; width: 100%; gap: 3px; padding: 0; border: 0; background: transparent; color: var(--blue); text-align: left; }
.plant-unified-posts-table td button small { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; color: var(--muted); font-weight: 400; }
.plant-post-board { display: inline-flex !important; width: fit-content; padding: 2px 5px; border: 1px solid #b8cbc7; background: #edf6f4; color: #17655b; font-size: 10px; font-weight: 800; }
.plant-post-board.epc { border-color: #b8cad6; background: #eff6fa; color: #2d5d79; }
.plant-post-board.recommendation { border-color: #d3c4aa; background: #fbf6e9; color: #775d2e; }
.plant-post-author strong { color: #162f29; font-size: 12px; }
.plant-post-import-panel { margin: 10px 0; padding: 10px; border: 1px solid #b9cbc7; background: #f7faf9; }
.plant-post-import-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.plant-post-import-head > div { display: grid; gap: 2px; }
.plant-post-import-head span { color: var(--muted); font-size: 11px; }
.plant-post-import-file-row { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-top: 8px; }
.plant-post-import-file-row input { max-width: 360px; }
.plant-post-import-summary { display: flex; gap: 12px; margin: 9px 0 5px; font-size: 12px; }
.plant-post-import-summary[hidden],
.plant-post-import-footer[hidden] { display: none !important; }
.plant-post-import-summary strong { color: #08775d; }
.plant-post-import-preview-table { max-height: 380px; border: 1px solid #d7e0de; background: #fff; }
.plant-post-import-preview-table table { min-width: 1040px; width: 100%; border-collapse: collapse; }
.plant-post-import-preview-table th,
.plant-post-import-preview-table td { padding: 6px 7px; border-bottom: 1px solid #e4e9e8; font-size: 11px; text-align: left; vertical-align: top; }
.plant-post-import-preview-table .import-error { background: #fff4f2; }
.plant-post-import-preview-table .import-duplicate { background: #fff9e9; }
.plant-post-import-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 8px; font-size: 11px; }
.plant-mobile-back { display: inline-flex; }
.plant-detail-nav { display: flex; align-items: center; gap: 6px; margin-bottom: 8px; }

/* 사용자 프로필 */
.user-profile-form { display: grid; grid-template-columns: repeat(6, minmax(130px, 1fr)); gap: 9px; align-items: end; }
.user-profile-form label { display: grid; gap: 3px; color: var(--muted); font-size: 11px; }
.user-profile-form label.wide { grid-column: span 3; }
.user-profile-form input, .user-profile-form select { width: 100%; }
.user-profile-form .user-assignee-toggle { display: flex; align-items: center; align-self: center; grid-column: span 2; color: var(--text); font-size: 12px; }
.user-profile-form .user-assignee-toggle input { width: auto; }
.user-profile-inline { min-width: 105px; width: 100%; }
.user-profile-inline.wide { min-width: 140px; }
#us-table { min-width: 1480px; }
#us-table td { vertical-align: top; }
#us-table input, #us-table select { width: 100%; min-width: 112px; margin-bottom: 4px; }
#us-table td[data-label="소속·직책"], #us-table td[data-label="연락처"] { min-width: 150px; }
#us-table td[data-label="접근 발전소"], #us-table td[data-label="비고"] { min-width: 190px; }
.user-table-wrap { overflow-x: auto; padding: 0; }
.user-table-wrap #us-table th:last-child,
.user-table-wrap #us-table td:last-child {
  position: sticky;
  right: 0;
  z-index: 2;
  min-width: 238px;
  background: #fff;
  box-shadow: -8px 0 12px rgba(35, 36, 31, 0.05);
}
.user-table-wrap #us-table th:last-child { z-index: 3; background: #f6f8f7; }
.user-row-actions { white-space: nowrap; }
.user-row-actions button { margin: 2px 1px; }

.team-access-card .section-title-row > label { display: grid; gap: 4px; min-width: 180px; color: var(--muted); font-size: 11px; }
.classification-manager { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 8px; }
.classification-group { border: 1px solid var(--border); background: #fff; padding: 10px; }
.classification-group-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-bottom: 8px; border-bottom: 1px solid #eceeea; }
.classification-group-head > div { display: flex; gap: 4px; flex-wrap: wrap; justify-content: flex-end; }
.classification-items { display: flex; gap: 5px; flex-wrap: wrap; padding-top: 9px; }
.classification-item { display: inline-flex; align-items: center; gap: 4px; min-height: 27px; padding: 3px 5px 3px 9px; border: 1px solid #d8dfdc; background: #f7faf9; font-size: 12px; }
.classification-item button { border: 0; background: transparent; color: var(--muted); padding: 2px 3px; font-size: 11px; }

.person-empty-overview { margin-top: 10px; }
.person-empty-overview[hidden] { display: none; }
.person-overview-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; margin-bottom: 12px; }
.person-overview-heading h2 { margin: 2px 0 3px; font-size: 20px; }
.person-overview-heading p { margin: 0; }
.person-overview-total { flex: none; color: var(--muted); font-size: 12px; font-weight: 700; }
.person-overview-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 9px; }
.person-overview-card { display: grid; gap: 10px; min-height: 136px; text-align: left; padding: 14px; border: 1px solid var(--border); background: #fff; }
.person-card-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.person-card-head strong { color: var(--text); font-size: 16px; }
.person-open-count { flex: none; padding: 4px 7px; background: #e5f4ef; color: #0b6654 !important; font-size: 11px; }
.person-card-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; }
.person-card-metrics > span { display: grid; gap: 1px; min-width: 0; color: var(--muted); font-size: 10px; }
.person-card-metrics > span b { color: var(--text); font-size: 14px; }
.person-next-work { display: grid; gap: 2px; min-width: 0; padding-top: 8px; border-top: 1px solid #e8eeec; }
.person-next-work small { overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.person-next-work b { overflow: hidden; color: var(--text); font-size: 12px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.person-overview-card:hover { border-color: #69aa9a; background: #f7fcfa; box-shadow: 0 2px 8px rgba(25, 91, 76, 0.08); }
.danger-text, .danger-text b { color: var(--danger) !important; }
.user-row-check { display: flex; align-items: center; gap: 5px; margin-top: 5px; font-size: 11px; white-space: nowrap; }
.user-row-check input { width: auto !important; min-width: 0 !important; margin: 0 !important; }
.user-row-actions { min-width: 130px; white-space: normal; }
.user-row-actions button { margin: 0 2px 4px 0; }
.dash-row.personal .t { min-width: 0; }
.dash-row.personal .dash-secondary { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* 안전·공사 이슈 입력 */
.plant-issue-box { display: flex; flex-direction: column; width: min(1180px, calc(100vw - 28px)); max-height: calc(100vh - 28px); overflow-y: auto; }
.plant-issue-box > .modal-title-row { order: 0; }
.plant-issue-form { order: 1; display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); gap: 9px 10px; }
.plant-issue-form[hidden], .plant-issue-read-view[hidden] { display: none !important; }
.plant-issue-form label { display: grid; gap: 3px; color: var(--muted); font-size: 11px; }
.plant-issue-form label.wide { grid-column: 1 / -1; }
.plant-issue-form input, .plant-issue-form select, .plant-issue-form textarea { width: 100%; }
.plant-issue-attachments { order: 2; margin: 10px 0 14px; padding: 12px; border: 1px solid #d7e1e7; border-radius: 8px; background: #f8fafb; }
.plant-issue-read-view { order: 1; display: grid; gap: 14px; margin: 10px 0 14px; }
.plant-record-summary { display: grid; gap: 10px; padding: 14px; border: 1px solid #d7e1e7; background: #fff; }
.plant-record-summary h3 { margin: 0; font-size: 20px; }
.plant-record-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; color: #65727b; font-size: 12px; }
.plant-record-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1px; border: 1px solid #e2e8eb; background: #e2e8eb; }
.plant-record-fact { display: grid; grid-template-columns: minmax(76px, auto) minmax(0, 1fr); gap: 8px; padding: 8px 10px; background: #f8fafb; }
.plant-record-fact dt, .plant-record-fact dd { margin: 0; }
.plant-record-fact dt { color: #65727b; font-size: 11px; font-weight: 700; }
.plant-record-fact dd { min-width: 0; color: #1f2933; overflow-wrap: anywhere; }
.plant-record-section { padding-top: 10px; border-top: 1px solid #e2e8eb; }
.plant-record-section strong { display: block; margin-bottom: 4px; font-size: 12px; color: #56636d; }
.plant-record-section p { margin: 0; white-space: pre-wrap; line-height: 1.65; }
.plant-issue-box.read-mode .pi-attachment-add,
.plant-issue-box.read-mode #pi-attachment-save { display: none !important; }
.pi-attachment-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 9px; }
.pi-attachment-head > div { display: grid; gap: 2px; }
.pi-image-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 420px)); gap: 12px; }
.pi-image-card { position: relative; min-width: 0; border: 1px solid #d5dfe5; border-radius: 6px; overflow: hidden; background: #fff; }
.pi-image-open { display: grid; width: 100%; padding: 0; border: 0; background: #fff; text-align: left; }
.pi-image-open img { width: 100%; height: 250px; object-fit: contain; background: #eef2f3; image-rendering: auto; }
.pi-image-open span { padding: 6px 8px; overflow: hidden; color: #384554; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.pi-attachment-remove { position: absolute; top: 5px; right: 5px; width: 27px; height: 27px; padding: 0; border: 1px solid rgba(255,255,255,.8); border-radius: 50%; background: rgba(24,35,44,.78); color: #fff; font-size: 15px; line-height: 1; }
.pi-file-list { display: grid; gap: 5px; margin-top: 8px; }
.pi-file-row { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 6px 8px; border: 1px solid #dde4e8; border-radius: 5px; background: #fff; }
.pi-file-row a { min-width: 0; overflow: hidden; color: #1f5c87; text-overflow: ellipsis; white-space: nowrap; }
.pi-file-row .muted { margin-left: auto; white-space: nowrap; }
.pi-file-row button { flex: 0 0 auto; }
.pi-file-row .primary-soft { border-color: #9bcfc3; background: #e8f7f3; color: #08634c; font-weight: 800; }
.pi-attachment-add { display: grid; grid-template-columns: minmax(220px, 1fr) auto minmax(190px, 260px); gap: 8px; align-items: stretch; margin-top: 10px; }
.pi-attachment-kind { display: grid; gap: 3px; min-width: 110px; color: var(--muted); font-size: 11px; }
.pi-attachment-kind select { min-height: 38px; }
.pi-image-kind { position: absolute; left: 6px; top: 6px; z-index: 2; padding: 3px 6px; border-radius: 4px; background: rgba(24,35,44,.78); color: #fff; font-size: 10px; }
.pi-template-loader .inline-form-row { display: grid; grid-template-columns: minmax(180px, 1fr) auto auto; gap: 6px; }
.epc-batch-box { width: min(1180px, calc(100vw - 24px)); max-height: calc(100vh - 24px); overflow: auto; }
.epc-batch-form { display: grid; grid-template-columns: minmax(240px, 2fr) repeat(3, minmax(120px, 1fr)); gap: 9px; }
.epc-batch-form label { display: grid; gap: 3px; color: var(--muted); font-size: 11px; }
.epc-overview-editor { margin-top: 12px; padding: 10px; border: 1px solid #d8e1e4; background: #f8fafb; }
.epc-overview-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.epc-overview-head > div { display: grid; gap: 2px; }
.epc-overview-head span { color: var(--muted); font-size: 11px; }
.epc-annotation-tools { display: flex; flex-wrap: wrap; gap: 5px; margin: 9px 0; }
.epc-annotation-tools button.active { border-color: #0d7967; background: #e4f5f0; color: #08604f; }
.epc-overview-stage { position: relative; min-height: 320px; display: grid; place-items: center; overflow: hidden; border: 1px solid #cbd7dc; background: #e9eef1; }
.epc-overview-stage canvas { display: block; width: 100%; max-height: 62vh; object-fit: contain; touch-action: none; }
#epc-overview-empty { position: absolute; color: var(--muted); }
.pi-paste-zone { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 38px; border: 1px dashed #71a99d; border-radius: 6px; background: #edf8f5; color: #0f6e56; }
.pi-paste-zone span { font-size: 11px; }
.pi-paste-zone:focus { outline: 2px solid #49a18a; outline-offset: 2px; }
.pi-paste-zone.dragging { border-style: solid; border-color: #0f8067; background: #dff5ef; box-shadow: inset 0 0 0 2px rgba(15,128,103,.14); }
.pi-attachment-message { margin-top: 6px; }
.pi-email-preview-box { width: min(1500px, calc(100vw - 18px)); height: calc(100vh - 18px); max-height: calc(100vh - 18px); overflow: auto; }
.pi-email-preview-overlay { z-index: 132; }
.pi-email-meta { margin: 10px 0 0; border: 1px solid var(--border); background: #f8fafb; }
.pi-email-meta > div { display: grid; grid-template-columns: 92px minmax(0, 1fr); border-bottom: 1px solid var(--border); }
.pi-email-meta > div:last-child { border-bottom: 0; }
.pi-email-meta dt, .pi-email-meta dd { margin: 0; padding: 7px 9px; overflow-wrap: anywhere; }
.pi-email-meta dt { color: var(--muted); font-weight: 700; background: #f1f5f6; }
.pi-email-render-note { min-height: 18px; margin-top: 9px; }
.pi-email-html { display: block; width: 100%; height: min(76vh, 860px); min-height: 520px; margin: 8px 0 10px; border: 1px solid var(--border); background: #fff; }
.pi-email-html[hidden] { display: none; }
.pi-email-body { min-height: 220px; margin: 10px 0; padding: 14px; border: 1px solid var(--border); background: #fff; color: var(--text); font: inherit; line-height: 1.65; white-space: pre-wrap; overflow-wrap: anywhere; }
.pi-email-body[hidden] { display: none; }
.pi-email-nested { margin: 10px 0; padding: 10px 12px; border: 1px solid var(--border); background: #f8fafb; }
.pi-email-nested ul { margin: 7px 0 0; padding-left: 20px; }
.pi-email-preview-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.button-link { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; white-space: nowrap; }
.issue-attachment-count { display: inline-block; margin-left: 6px; color: #0f766e; font-size: 10px; font-weight: 700; white-space: nowrap; }
.pi-image-preview-overlay { z-index: 130; padding: 12px; background: rgba(12,18,22,.82); }
.pi-image-preview-box { display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 8px; width: calc(100vw - 12px); height: calc(100vh - 12px); max-width: 1800px; max-height: 1100px; padding: 10px; border-radius: 8px; background: #fff; }
.pi-image-preview-box .modal-title-row { justify-content: space-between; }
.pi-image-preview-actions { display: flex; align-items: center; justify-content: flex-end; gap: 5px; flex-wrap: wrap; }
.pi-image-preview-stage { display: flex; align-items: center; justify-content: center; min-height: 0; overflow: auto; border: 1px solid #d8e0e4; background: #eef1f2; }
.pi-image-preview-stage img { display: block; width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; image-rendering: auto; }
.pi-image-preview-stage.actual-size { align-items: flex-start; justify-content: flex-start; }
.pi-image-preview-stage.actual-size img { max-width: none; max-height: none; }
.plant-issue-footer { order: 3; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 13px; padding-top: 11px; border-top: 1px solid var(--border); }
.plant-issue-footer .muted { min-width: min(100%, 320px); margin-right: auto; }
.plant-comment-panel { order: 4; }
.cal-haewaram-toggle.active { border-color: #0f766e; background: #dff5ef; color: #075e4c; font-weight: 800; }

/* 휴가·대체휴무 */
.leave-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 14px; }
.leave-heading h2 { margin: 2px 0 4px; font-size: 22px; }
.leave-heading p { margin: 0; }
.leave-heading-actions { display: flex; gap: 7px; flex-wrap: wrap; justify-content: flex-end; }
.leave-link-guide { display: grid; grid-template-columns: auto repeat(3, minmax(0, 1fr)); gap: 1px; margin-bottom: 12px; border: 1px solid #cfe0da; background: #cfe0da; }
.leave-link-guide > * { padding: 9px 11px; background: #f7fcfa; font-size: 12px; }
.leave-link-guide > strong { display: flex; align-items: center; background: #e7f5f0; color: var(--accent); white-space: nowrap; }

.pm-source-row { display: grid; grid-template-columns: minmax(300px, 1fr) auto; gap: 7px; align-items: end; }
.pm-source-path { display: grid; gap: 3px; min-width: 0; text-align: left; color: var(--muted); font-size: 11px; }
.pm-source-path input { width: 100%; }
.pm-source-row > button { min-height: 31px; align-self: end; }
.pm-sync-row { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.pm-auto-time { display: inline-grid; grid-template-columns: auto 96px; align-items: center; gap: 5px; color: var(--muted); font-size: 11px; }
.pm-auto-time input { width: 96px; min-height: 30px; }
.pm-auto-toggle, .pm-search-toggle { display: inline-flex; align-items: center; gap: 5px; min-height: 30px; font-size: 12px; white-space: nowrap; }
.pm-source-note { color: #52616f; font-size: 11px; line-height: 1.4; overflow-wrap: anywhere; }
.pm-source-note.error { color: #b42318; font-weight: 700; }
.pm-file-browser-box { width: min(760px, 94vw); }
.pm-file-browser-path { display: flex; align-items: center; gap: 8px; margin: 10px 0; }
.pm-file-browser-path code { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); }
.pm-file-browser-list { min-height: 220px; max-height: min(52vh, 460px); overflow: auto; border: 1px solid var(--border); background: #fff; }
.pm-file-browser-entry { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 12px; border: 0; border-bottom: 1px solid var(--border); border-radius: 0; background: transparent; color: inherit; text-align: left; }
.pm-file-browser-entry:hover, .pm-file-browser-entry.selected { background: #eef8f6; }
.pm-file-browser-entry strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pm-file-browser-entry small { color: var(--muted); white-space: nowrap; }
.pm-file-browser-selected { margin-top: 10px; padding: 10px 12px; border: 1px solid #b7d8d3; background: #f2fbf9; color: #245b54; overflow-wrap: anywhere; }
.pm-file-browser-box .modal-actions { display: flex; justify-content: flex-end; margin-top: 12px; }
.pm-import-status { line-height: 1.4; }
.pm-inspection-status {
  display: grid;
  gap: 5px;
  width: 100%;
  padding: 8px 10px;
  border: 1px solid #d6e1de;
  background: #f7faf9;
  color: #425466;
  font-size: 11px;
  line-height: 1.5;
}
.pm-inspection-status[hidden] { display: none !important; }
.pm-inspection-summary { font-weight: 700; }
.pm-inspection-warnings {
  padding-top: 5px;
  border-top: 1px solid #ead8b1;
  color: #8a4b08;
}
.pm-inspection-warnings summary { width: fit-content; cursor: pointer; font-weight: 800; }
.pm-inspection-warnings ul { margin: 5px 0 0; padding-left: 18px; }
.pm-inspection-warnings li + li { margin-top: 3px; }

.inline-leave-panel {
  display: grid;
  grid-template-columns: repeat(3, minmax(130px, 1fr));
  gap: 8px;
  padding: 10px;
  border: 1px solid #bad9d0;
  background: #f5fbf9;
}
.inline-leave-panel[hidden] { display: none !important; }
.inline-leave-panel > label { display: grid; align-content: end; gap: 3px; min-width: 0; color: var(--muted); font-size: 11px; }
.inline-leave-panel > label input, .inline-leave-panel > label select { width: 100%; min-width: 0; }
.inline-leave-heading { grid-column: 1 / -1; display: flex; align-items: baseline; gap: 8px; }
.inline-leave-heading span, .inline-leave-check small { color: var(--muted); font-size: 11px; }
.inline-leave-panel.accrual { grid-template-columns: minmax(180px, 1.2fr) minmax(180px, 1fr) minmax(120px, .7fr); border-color: #d5c38b; background: #fffaf0; }
.inline-leave-check { display: flex !important; flex-direction: row; align-items: center !important; gap: 7px !important; }
.inline-leave-check > span { display: grid; gap: 1px; }
.inline-leave-check.compact { grid-column: 1 / -1; align-self: end; min-height: 31px; }
.inline-leave-check.compact > span { line-height: 1.35; white-space: normal; overflow-wrap: break-word; }

.leave-type-box { width: min(1120px, calc(100vw - 28px)); }
.leave-type-list { display: grid; gap: 5px; max-height: min(55vh, 560px); overflow-y: auto; margin: 10px 0 12px; }
.leave-type-manage-row, .leave-type-new {
  display: grid;
  grid-template-columns: minmax(150px, 1.3fr) 120px 100px 110px 72px 66px auto;
  gap: 7px;
  align-items: end;
  padding: 8px;
  border: 1px solid var(--border);
  background: #fff;
}
.leave-type-manage-row label, .leave-type-new label { display: grid; gap: 3px; min-width: 0; color: var(--muted); font-size: 10px; }
.leave-type-manage-row input, .leave-type-manage-row select,
.leave-type-new input, .leave-type-new select { width: 100%; min-width: 0; }
.leave-type-manage-row .leave-type-color input { min-height: 31px; padding: 2px; }
.leave-type-active { display: flex !important; flex-direction: row; align-items: center; align-self: end; min-height: 31px; }

@media (min-width: 721px) and (max-width: 1550px) {
  header.topbar { gap: 8px 10px; padding: 8px 14px; }
  nav.tabs {
    order: 3;
    flex: 1 1 100%;
    width: 100%;
    flex-wrap: wrap;
    overflow: visible;
    gap: 3px;
  }
  nav.tabs button { padding: 5px 11px; }
  .topbar-tools { order: 2; margin-left: auto; flex-wrap: wrap; justify-content: flex-end; }
  .topbar-tools { flex: 0 1 auto; width: auto; }
}
.feature-release-control { display: inline-flex; align-items: center; gap: 7px; padding-right: 7px; border-right: 1px solid var(--border); }
.feature-release-control[hidden] { display: none !important; }
.feature-release-status { display: inline-flex; align-items: center; min-height: 28px; padding: 3px 9px; border-radius: 999px; font-size: 11px; font-weight: 800; }
.feature-release-status.draft { background: #fff4d8; color: #815b09; }
.feature-release-status.published { background: #def5ec; color: #08634c; }
.feature-preview-banner { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; padding: 10px 12px; border: 1px solid #e9ca7a; background: #fffaf0; color: #665017; font-size: 12px; }
.feature-preview-banner[hidden] { display: none !important; }
.feature-preview-banner strong { flex: 0 0 auto; color: #74520a; }
.leave-filter-bar { display: flex; align-items: end; gap: 8px; flex-wrap: wrap; padding: 10px 0 13px; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.leave-filter-bar label { display: grid; gap: 3px; color: var(--muted); font-size: 11px; }
.leave-filter-bar .muted { margin-left: auto; }
.leave-show-all { align-self: end; }
.leave-filter-search input { min-width: 160px; }
.leave-asof-control { display: inline-flex; align-items: end; gap: 7px; padding: 5px 8px; border: 1px solid #bfdcd3; background: #f7fcfa; }
.leave-filter-bar .leave-asof-toggle { display: inline-flex; align-items: center; gap: 5px; min-height: 30px; color: var(--text); font-weight: 700; white-space: nowrap; }
.leave-filter-bar .leave-asof-toggle input { width: auto; min-width: 0; margin: 0; }
.leave-asof-control input[type="date"] { min-width: 135px; }
.leave-overview { display: grid; grid-template-columns: repeat(3, minmax(150px, 1fr)); gap: 1px; margin: 14px 0 18px; border: 1px solid var(--border); background: var(--border); }
.leave-overview-item { background: #fff; padding: 13px 15px; }
.leave-overview-item span { display: block; color: var(--muted); font-size: 11px; margin-bottom: 4px; }
.leave-overview-item strong { font-size: 21px; }
.leave-overview-item.positive strong { color: var(--accent); }
.leave-overview-item.used strong { color: #9a5a12; }
.leave-balance-wrap, .leave-ledger-wrap, .leave-weekend-panel { margin: 0 0 20px; padding-top: 4px; }
.section-title-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.section-title-row h3 { margin: 0; font-size: 15px; }
.section-title-row p { margin: 3px 0 0; }
.leave-balance-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(310px, 1fr)); gap: 8px; }
.leave-person-row { width: 100%; min-width: 0; overflow: hidden; border: 1px solid var(--border); border-radius: 0; background: #fff; color: var(--text); padding: 11px 12px; text-align: left; font: inherit; cursor: pointer; }
.leave-person-row:hover { border-color: #84b9aa; background: #f7fcfa; }
.leave-person-row:focus-visible { outline: 2px solid #4d9d88; outline-offset: 2px; }
.leave-person-row.active { border-color: var(--accent); box-shadow: inset 3px 0 0 var(--accent); background: #f1f9f6; }
.leave-person-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.leave-person-head strong { font-size: 14px; }
.leave-person-head span { color: var(--accent); font-weight: 800; font-size: 12px; }
.leave-type-lines { display: grid; gap: 5px; }
.leave-type-line { display: grid; grid-template-columns: minmax(105px, 0.8fr) minmax(0, 1.2fr); gap: 8px; align-items: start; font-size: 12px; }
.leave-type-name { display: flex; align-items: center; gap: 6px; min-width: 0; }
.leave-type-name::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--leave-color, var(--accent)); flex: 0 0 7px; }
.leave-type-name span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.leave-type-amount { display: grid; min-width: 0; justify-items: end; gap: 1px; text-align: right; line-height: 1.25; font-variant-numeric: tabular-nums; }
.leave-type-amount b { white-space: nowrap; }
.leave-type-amount small { display: block; max-width: 100%; color: var(--muted); font-size: 10px; white-space: normal; overflow-wrap: anywhere; }
.leave-ledger-table-wrap { background: #fff; border: 1px solid var(--border); overflow-x: auto; }
.leave-ledger-table { min-width: 900px; }
.leave-ledger-table td { vertical-align: middle; }
.leave-ledger-table .amount-plus { color: #08775c; font-weight: 800; }
.leave-ledger-table .amount-minus { color: #b23a33; font-weight: 800; }
.leave-ledger-table tr[data-leave-id] { cursor: pointer; }
.leave-ledger-table tr[data-leave-id]:hover { background: #f3f8f6; }
.leave-ledger-table tr.leave-after-asof { background: #fafaf8; color: #76786f; }
.leave-ledger-table tr.leave-after-asof:hover { background: #f4f5f1; }
.leave-bulk-bar { margin: 8px 0 10px; }
.leave-kind { display: inline-flex; align-items: center; min-height: 22px; padding: 1px 7px; border-radius: 999px; background: #f0f1ed; color: #55574f; font-size: 11px; font-weight: 700; }
.leave-kind.use { background: #fff0e6; color: #9a4b10; }
.leave-kind.accrual { background: #e1f5ee; color: #0b6a51; }
.leave-weekend-panel { padding: 13px 14px; border: 1px solid #bfdcd3; background: #f7fcfa; }
.leave-weekend-list { display: grid; gap: 1px; background: var(--border); border: 1px solid var(--border); }
.leave-weekend-row { display: grid; grid-template-columns: 30px 86px 110px minmax(220px, 1fr) 100px 80px; gap: 8px; align-items: center; padding: 8px 9px; background: #fff; font-size: 12px; }
.leave-weekend-row input[type="number"] { width: 70px; }
.leave-weekend-row .title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.leave-modal-box { width: min(760px, calc(100vw - 28px)); }
.leave-form { display: grid; grid-template-columns: repeat(3, minmax(145px, 1fr)); gap: 10px; }
.leave-form label { display: grid; gap: 3px; color: var(--muted); font-size: 11px; }
.leave-form label.wide { grid-column: 1 / -1; }
.leave-form input, .leave-form select { width: 100%; }
.leave-form [hidden], .leave-modal-footer [hidden] { display: none !important; }
.leave-form-summary { min-height: 42px; margin-top: 12px; padding: 10px 12px; border-left: 3px solid var(--accent); background: #f3f8f6; font-size: 13px; }
.leave-modal-footer { display: flex; align-items: center; gap: 8px; margin-top: 13px; padding-top: 11px; border-top: 1px solid var(--border); }
.leave-modal-footer #lvf-delete { margin-left: auto; }
.leave-modal-footer #lvf-delete[hidden] + #lvf-save { margin-left: auto; }
.annual-grant-box { width: min(980px, calc(100vw - 28px)); }
.annual-grant-guide { display: grid; gap: 3px; margin: 10px 0 12px; padding: 10px 12px; border-left: 3px solid var(--accent); background: #f3f8f6; font-size: 12px; }
.annual-grant-guide span { color: var(--muted); line-height: 1.55; }
.annual-grant-toolbar, .annual-grant-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.annual-grant-toolbar { margin-bottom: 7px; }
.annual-grant-list { display: grid; gap: 9px; max-height: min(58vh, 580px); overflow-y: auto; padding: 8px; border: 1px solid var(--border); background: #eef3f1; }
.annual-grant-person { overflow: hidden; border: 1px solid #ccd9d5; background: #fff; box-shadow: 0 1px 2px rgba(20, 48, 43, 0.05); }
.annual-grant-person-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-bottom: 1px solid #dbe4e1; background: #f7faf9; }
.annual-grant-person-head strong { font-size: 14px; }
.annual-grant-person-head span { color: var(--muted); font-size: 11px; }
.annual-grant-columns, .annual-grant-type-row { display: grid; grid-template-columns: minmax(160px, 1fr) 90px 76px 150px minmax(92px, 0.7fr); gap: 9px; align-items: center; }
.annual-grant-columns { padding: 7px 12px; border-bottom: 1px solid var(--border); color: var(--muted); background: #fbfcfc; font-size: 10px; font-weight: 800; }
.annual-grant-type-row { min-height: 48px; padding: 7px 12px; border-bottom: 1px solid #e5ebe9; }
.annual-grant-type-row:last-child { border-bottom: 0; }
.annual-grant-type-row.missing-expiry { background: #fff8f5; }
.annual-grant-type-row input { width: 100%; min-width: 0; }
.annual-grant-type-name { display: flex; align-items: center; gap: 8px; min-width: 0; font-size: 12px; }
.annual-grant-type-name i { flex: 0 0 8px; width: 8px; height: 8px; border-radius: 50%; background: var(--leave-color); }
.annual-grant-days-field, .annual-grant-expiry-field { display: block; }
.annual-grant-days-field > span, .annual-grant-expiry-field > span { display: none; }
.annual-grant-hours { color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.annual-grant-status { color: var(--muted); font-size: 11px; }
.annual-grant-status.existing { color: #075f58; font-weight: 700; }
.annual-grant-type-row.missing-expiry .annual-grant-status { color: #b42318; font-weight: 800; }
.annual-grant-footer { margin-top: 12px; padding-top: 11px; border-top: 1px solid var(--border); }

@media (max-width: 1050px) {
  .global-search-trigger kbd { display: none; }
  .plant-master-filters { grid-template-columns: minmax(220px, 1.5fr) repeat(2, minmax(110px, 0.7fr)); }
  .plant-master-filters label:nth-child(4) { grid-column: span 2; }
  .plant-field-grid { grid-template-columns: repeat(2, minmax(150px, 1fr)); }
  .user-profile-form { grid-template-columns: repeat(3, minmax(140px, 1fr)); }
  .pm-source-row.pm-source-compact { grid-template-columns: minmax(180px, 1fr) auto auto auto 118px auto; }
  .pm-source-compact .pm-search-toggle { grid-column: 1 / -1; justify-self: end; }
  .plant-operations-grid { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .global-search-trigger { padding: 4px 7px; }
  .global-search-trigger span:nth-child(2) { display: none; }
  .global-search-result { grid-template-columns: 1fr; gap: 2px; }
  .global-search-result .result-title { white-space: normal; }
  .global-search-input-row { grid-template-columns: auto minmax(0, 1fr); }
  .global-ai-search-button { grid-column: 1 / -1; width: 100%; margin: 0; }
  .global-ai-answer-head { align-items: flex-start; flex-direction: column; }
  .global-ai-answer-body { max-height: 48vh; }
  .ai-search-config-grid { grid-template-columns: 1fr; }
  .plant-master-heading { display: block; margin-bottom: 7px; }
  #pm-admin-tools { display: none !important; }
  .pm-source-row { grid-template-columns: minmax(0, 1fr) auto; width: 100%; }
  .pm-source-path { width: 100%; }
  .pm-sync-row { align-items: stretch; }
  .pm-sync-row > button { min-height: 38px; }
  .pm-auto-time { flex: 1 1 150px; grid-template-columns: auto minmax(96px, 1fr); }
  .pm-auto-time input { width: 100%; }
  .pm-source-note, .pm-import-status { width: 100%; }
  .plant-master-filters { grid-template-columns: 1fr 1fr; gap: 7px; padding: 9px; }
  .plant-master-filters .plant-master-search { grid-column: 1 / -1; }
  .plant-master-filters label:nth-child(4) { grid-column: auto; }
  .plant-master-filters button { min-height: 42px; align-self: end; }
  .plant-overview-strip { grid-template-columns: 1fr 1fr; }
  .plant-overview-metric { min-height: 72px; padding: 10px; }
  .plant-overview-metric strong { font-size: 18px; }
  .plant-distributions { grid-template-columns: 1fr; }
  .plant-distribution-list { max-height: 156px; }
  .plant-master-view-tabs { position: sticky; top: 0; z-index: 4; background: var(--bg); }
  .plant-operations-heading { align-items: flex-start; flex-direction: column; }
  .plant-operations-kpis { grid-template-columns: 1fr 1fr; }
  .plant-operations-grid { grid-template-columns: 1fr; }
  .plant-inspection-overview-heading { align-items: stretch; flex-direction: column; }
  .plant-inspection-overview-kpis { grid-template-columns: 1fr 1fr; }
  .plant-inspection-overview-kpis > div:nth-child(2) { border-right: 0; }
  .plant-inspection-overview-kpis > div:nth-child(-n+2) { border-bottom: 1px solid var(--border); }
  .inspection-vendor-head { display: none; }
  .inspection-vendor-plant { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 10px; padding: 10px; }
  .inspection-vendor-plant-name, .inspection-vendor-missing { grid-column: 1 / -1; }
  .inspection-overview-progress::before { color: var(--muted); font-size: 9px; }
  .inspection-overview-progress:nth-of-type(1)::before { content: "월차"; }
  .inspection-overview-progress:nth-of-type(2)::before { content: "분기"; }
  .inspection-overview-progress:nth-of-type(3)::before { content: "반기"; }
  .inspection-overview-progress:nth-of-type(4)::before { content: "연차"; }
  .plant-distribution-row { grid-template-columns: minmax(90px, 1fr) minmax(70px, 1fr) auto; }
  .plant-distribution-row small { grid-column: 1 / -1; padding-left: 0; }
  .plant-master-layout { display: block; min-height: 0; }
  .plant-directory-toggle { display: none; }
  .plant-directory { border-right: 0; }
  #pm-list { max-height: none; }
  .plant-directory-item { padding: 12px 10px; }
  .plant-directory-item strong { font-size: 14px; }
  .plant-detail-workspace { padding: 10px 0 24px; }
  .plant-master-layout.has-selection .plant-directory { display: none; }
  .plant-master-layout:not(.has-selection) .plant-detail-workspace { display: none; }
  .plant-mobile-back { display: inline-flex; }
  .plant-detail-head { grid-template-columns: 1fr; }
  .plant-detail-actions { width: 100%; justify-content: flex-start; }
  .plant-detail-tabs { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 4px; }
  .plant-detail-tabs button { flex: 0 0 auto; white-space: nowrap; }
  .plant-field-grid { grid-template-columns: 1fr; }
  .plant-field { grid-template-columns: 120px minmax(0, 1fr); }
  .plant-detail-overview-grid { grid-template-columns: 1fr; }
  .plant-overview-work { grid-template-columns: 72px minmax(0, 1fr) auto; }
  .plant-issue-row { grid-template-columns: 74px minmax(0, 1fr) 116px; }
  .plant-issue-row .epc-row-topic,
  .plant-issue-row .epc-row-status,
  .plant-issue-row .plant-issue-visibility { display: none; }
  .plant-issue-author { justify-items: end; }
  .plant-issue-form { grid-template-columns: 1fr 1fr; }
  .plant-issue-form label.wide { grid-column: 1 / -1; }
  .pi-attachment-add { grid-template-columns: 1fr; }
  .epc-issue-row { grid-template-columns: 64px minmax(0, 1fr); }
  .epc-issue-row.has-admin-select { grid-template-columns: 24px 64px minmax(0, 1fr); }
  .epc-issue-row .epc-row-topic,
  .epc-issue-row .epc-row-status,
  .epc-issue-row .epc-category,
  .epc-issue-row .plant-issue-visibility { display: none; }
  .epc-issue-row .plant-issue-author { grid-column: 2 / -1; justify-items: start; }
  .epc-issue-row.has-admin-select .plant-issue-author { grid-column: 3 / -1; }
  .plant-unified-posts-heading { align-items: stretch; flex-direction: column; }
  .plant-unified-posts-actions { justify-content: flex-start; }
  .plant-unified-posts-filters { grid-template-columns: 1fr 1fr; }
  .plant-unified-posts-filters .wide { grid-column: 1 / -1; }
  .plant-unified-posts-table-wrap { margin-inline: -4px; }
  .plant-post-import-file-row { align-items: stretch; flex-direction: column; }
  .plant-post-import-file-row input { max-width: none; width: 100%; }
  .plant-post-import-footer { align-items: stretch; flex-direction: column; }
  .epc-batch-form { grid-template-columns: 1fr 1fr; }
  .epc-batch-form label:first-child { grid-column: 1 / -1; }
  .pi-template-loader .inline-form-row { grid-template-columns: 1fr; }
  .epc-selection-bar { flex-wrap: wrap; }
  .epc-selection-bar strong { flex: 1 1 100%; }
  .pi-email-preview-box { width: calc(100vw - 10px); height: calc(100vh - 10px); max-height: calc(100vh - 10px); padding: 10px; }
  .pi-email-meta > div { grid-template-columns: 74px minmax(0, 1fr); }
  .pi-email-html { height: 58vh; min-height: 300px; }
  .pi-email-body { min-height: 180px; padding: 11px; }
  .pi-email-preview-footer { align-items: stretch; flex-direction: column; }
  .pi-image-gallery { grid-template-columns: 1fr; }
  .pi-image-open img { height: 220px; }
  .pi-image-preview-box { width: calc(100vw - 6px); height: calc(100vh - 6px); padding: 7px; }
  .pi-image-preview-box .modal-title-row { align-items: flex-start; flex-direction: column; }
  .pi-image-preview-actions { width: 100%; justify-content: flex-start; }
  .plant-match-box { width: calc(100vw - 16px); max-width: calc(100vw - 16px); padding: 13px 11px; }
  .plant-match-summary { grid-template-columns: 1fr 1fr; }
  .plant-match-summary > div:nth-child(3) { border-left: 0; border-top: 1px solid var(--border); }
  .plant-match-summary > div:nth-child(4) { border-top: 1px solid var(--border); }
  .plant-match-toolbar { grid-template-columns: 1fr auto; }
  .plant-match-toolbar input[type="search"] { grid-column: 1 / -1; }
  .plant-match-list { max-height: 62vh; }
  .plant-match-row { grid-template-columns: 1fr; gap: 10px; padding: 14px 2px; }
  .plant-match-samples li { grid-template-columns: 64px minmax(0, 1fr); }
  .user-profile-form { grid-template-columns: 1fr 1fr; }
  .user-profile-form label.wide, .user-profile-form .user-assignee-toggle { grid-column: 1 / -1; }
  #us-table { min-width: 0; }
  #us-table td[data-label="소속·직책"], #us-table td[data-label="연락처"],
  #us-table td[data-label="접근 발전소"], #us-table td[data-label="비고"] { min-width: 0; }
  .user-table-wrap #us-table th:last-child,
  .user-table-wrap #us-table td:last-child { position: static; min-width: 0; box-shadow: none; }
  .leave-heading { align-items: flex-start; flex-direction: column; }
  .leave-heading-actions { width: 100%; justify-content: flex-start; }
  .feature-release-control { width: 100%; justify-content: space-between; padding: 0 0 7px; border-right: 0; border-bottom: 1px solid var(--border); }
  .feature-preview-banner { align-items: flex-start; flex-direction: column; gap: 3px; }
  .leave-filter-bar .muted { width: 100%; margin-left: 0; }
  .leave-filter-bar label { flex: 1 1 145px; }
  .leave-filter-bar label select, .leave-filter-bar label input { width: 100%; min-width: 0; }
  .leave-asof-control { width: 100%; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: end; }
  .leave-filter-bar .leave-asof-toggle { width: auto; min-width: max-content; }
  .leave-asof-control input[type="date"] { min-width: 0; }
  .leave-link-guide { grid-template-columns: 1fr; }
  .leave-link-guide > strong { justify-content: flex-start; }
  .leave-overview { grid-template-columns: 1fr 1fr 1fr; }
  .leave-overview-item { padding: 10px; }
  .leave-overview-item strong { font-size: 16px; }
  .leave-balance-grid { grid-template-columns: 1fr; }
  .leave-form { grid-template-columns: 1fr 1fr; }
  .leave-form label.wide { grid-column: 1 / -1; }
  .annual-grant-list { max-height: 64vh; padding: 5px; }
  .annual-grant-person-head { align-items: flex-start; flex-direction: column; gap: 2px; }
  .annual-grant-columns { display: none; }
  .annual-grant-type-row { grid-template-columns: minmax(0, 1fr) auto; gap: 7px 10px; padding: 10px; }
  .annual-grant-type-name { grid-column: 1 / -1; }
  .annual-grant-days-field { grid-column: 1 / 2; }
  .annual-grant-hours { grid-column: 2 / 3; text-align: right; white-space: nowrap; }
  .annual-grant-expiry-field { grid-column: 1 / -1; }
  .annual-grant-status { grid-column: 1 / -1; }
  .annual-grant-days-field, .annual-grant-expiry-field { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 5px; }
  .annual-grant-days-field > span, .annual-grant-expiry-field > span { display: inline; color: var(--muted); font-size: 10px; }
  .annual-grant-footer { align-items: stretch; flex-direction: column; }
  .annual-grant-footer button { width: 100%; }
  .leave-weekend-row { grid-template-columns: 28px 76px minmax(150px, 1fr) 72px; }
  .leave-weekend-row > :nth-child(3), .leave-weekend-row > :nth-child(5) { display: none; }
  .dash-row { display: grid; gap: 7px; padding: 11px 10px; }
  .dash-primary { display: grid; grid-template-columns: 82px minmax(0, 1fr); gap: 9px; width: 100%; }
  .dash-row .d { min-width: 0; }
  .dash-row .t { display: block; width: 100%; min-width: 0; line-height: 1.45; overflow-wrap: anywhere; word-break: keep-all; }
  .dash-meta { justify-content: flex-start; flex-wrap: wrap; margin-left: 91px; }
  .dash-row.personal .dash-secondary { max-width: 100%; white-space: normal; }
  .inline-leave-panel, .inline-leave-panel.accrual { grid-template-columns: 1fr 1fr; }
  .inline-leave-heading, .inline-leave-check:first-child { grid-column: 1 / -1; }
  .leave-type-manage-row, .leave-type-new { grid-template-columns: 1fr 1fr; }
  .leave-type-manage-row > button, .leave-type-new > button { grid-column: 1 / -1; width: 100%; }
  .person-overview-grid { grid-template-columns: 1fr 1fr; }
  .person-overview-card { padding: 11px; }
  .classification-manager { grid-template-columns: 1fr; }
  .classification-group-head { align-items: flex-start; flex-direction: column; }
  .classification-group-head > div { justify-content: flex-start; }
}

@media (max-width: 430px) {
  .person-overview-grid { grid-template-columns: 1fr; }
  .person-overview-heading { align-items: flex-start; }
  .person-card-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}


/* ---------------- 홈 빠른 업무 등록 팝업 ---------------- */
#quick-modal .modal-box { width: min(680px, 94vw); max-width: 94vw; padding: 0 16px 14px; overflow-x: hidden; }
.quick-modal-head {
  position: sticky;
  top: 0;
  z-index: 12;
  margin: 0 -16px 8px;
  padding: 12px 16px 9px;
  border-bottom: 1px solid #dbe4e1;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 3px 10px rgba(19, 57, 49, 0.06);
}
.quick-modal-title-row,
.quick-modal-actions,
.quick-modal-options { display: flex; align-items: center; gap: 7px; }
.quick-modal-title-row h2 { flex: 1; margin: 0; }
.quick-modal-actions button { min-height: 32px; }
.quick-modal-options { min-height: 31px; flex-wrap: wrap; margin-top: 7px; }
.quick-modal-options .calendar-default-option {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 28px;
  padding: 2px 4px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 650;
  cursor: pointer;
}
.quick-modal-options .calendar-default-option input { width: 15px; height: 15px; margin: 0; }
#quick-modal .form-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 10px;
}
#quick-modal .form-grid > div { min-width: 0; }
#quick-modal .form-grid .wide { grid-column: 1 / -1; }
#quick-modal .form-grid input,
#quick-modal .form-grid select,
#quick-modal .form-grid textarea { width: 100%; min-width: 0; }
#quick-modal .band-toggle { max-height: 132px; overflow-y: auto; }
#quick-modal .band-toggle button { font-size: 12.5px; padding: 4px 11px; }
#quick-modal .link-row { gap: 10px; flex-wrap: wrap; }
#quick-modal .link-row .right { margin-left: auto; }
.qk-date-card {
  display: grid;
  gap: 8px;
  padding: 10px;
  border: 1px solid #d5e1de;
  border-radius: 6px;
  background: #f8fbfa;
}
.qk-date-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.qk-date-heading > div,
.qk-date-heading > label { display: inline-flex; align-items: center; gap: 6px; }
.qk-deadline-toggle { flex: 0 0 auto; }
.qk-period-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 10px; }
.qk-deadline-field { width: min(100%, 320px); }
.qk-period-fields[hidden], .qk-deadline-field[hidden], .qk-received-field[hidden] { display: none !important; }
.qk-received-control { align-self: end; }
.qk-received-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 38px;
  padding: 7px 10px;
  border: 1px dashed #bfd0cb;
  background: #fff;
  color: #52605d;
  font-size: 12px;
}
.qk-received-toggle > span:last-child { color: #087565; font-weight: 700; }
.qk-received-field { margin-top: 6px; }
.field-help {
  display: inline-grid;
  place-items: center;
  width: 18px;
  height: 18px;
  min-height: 18px;
  padding: 0;
  border: 1px solid #9eb7b0;
  border-radius: 50%;
  background: #fff;
  color: #47635c;
  font: 700 11px/1 Arial, sans-serif;
  vertical-align: middle;
}
.app-tooltip {
  position: fixed;
  z-index: 10000;
  max-width: min(300px, calc(100vw - 24px));
  padding: 7px 9px;
  border: 1px solid #41534f;
  border-radius: 5px;
  background: #263632;
  color: #fff;
  font-size: 12px;
  line-height: 1.45;
  box-shadow: 0 6px 18px rgba(18, 33, 29, 0.2);
  pointer-events: none;
}
.bulk-edit-schedule-grid { display: grid; grid-template-columns: 130px repeat(2, minmax(0, 1fr)); gap: 8px; }
.bulk-edit-schedule-grid .be-deadline-field { grid-column: 2 / -1; }
.qk-calendar-settings[hidden],
.qk-calendar-custom-panel[hidden],
.qk-calendar-range[hidden],
.qk-calendar-dates[hidden] { display: none !important; }
.qk-calendar-custom-toggle { width: fit-content; flex: 0 0 auto; }
.qk-calendar-custom-panel {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 7px 9px;
  margin-top: 7px;
  padding-left: 10px;
  border-left: 3px solid #93cdbf;
}
.qk-calendar-custom-panel > p { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: 11px; }
.qk-calendar-mode {
  display: inline-grid;
  grid-template-columns: repeat(2, minmax(92px, 1fr));
  width: fit-content;
  border: 1px solid #c8d8d3;
  border-radius: 6px;
  overflow: hidden;
}
.qk-calendar-mode button {
  min-height: 32px;
  padding: 5px 14px;
  border: 0;
  border-right: 1px solid #c8d8d3;
  border-radius: 0;
  background: #fff;
  color: #53615d;
  font-weight: 700;
}
.qk-calendar-mode button:last-child { border-right: 0; }
.qk-calendar-mode button.active { background: #e7f4f0; color: #087565; }
.qk-calendar-range {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 8px;
  align-items: end;
}
.qk-calendar-range label { display: grid; gap: 4px; }
.qk-calendar-range label > span { color: #52625d; font-size: 11px; font-weight: 700; }
.qk-calendar-range-separator { padding-bottom: 9px; color: #7a8884; font-weight: 700; }
.qk-calendar-date-add { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; }
.qk-calendar-date-chips { display: flex; gap: 6px; flex-wrap: wrap; min-height: 28px; align-items: center; }
.qk-calendar-date-chips button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 28px;
  padding: 3px 8px;
  border-color: #a9cbc2;
  background: #eff8f5;
  color: #176d5d;
}
.qk-calendar-date-chips button b { font-size: 15px; line-height: 1; }
.qk-recurrence-panel {
  display: grid;
  gap: 8px;
  padding: 9px 10px;
  border: 1px solid #d5e1de;
  border-radius: 7px;
  background: #f7faf9;
}
.qk-recurrence-panel[hidden],
.qk-recurrence-fields[hidden] { display: none !important; }
.qk-recurrence-toggle { width: fit-content; }
.qk-recurrence-fields {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  align-items: end;
}
.qk-recurrence-fields > label { display: grid; gap: 4px; min-width: 0; }
.qk-recurrence-fields > label > span { color: #52625d; font-size: 11px; font-weight: 700; }
.qk-recurrence-fields > p { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: 11px; }
.qk-recurrence-interval { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 5px; }
.completion-choice-box { width: min(520px, 92vw); }
.completion-choice-box > p { margin: 12px 0 18px; color: var(--text); line-height: 1.55; }
.completion-choice-actions { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.calendar-export-box { width: min(520px, 92vw); }
.calendar-export-box > p { margin: 10px 0 14px; line-height: 1.5; }
.calendar-export-options {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 0;
  border: 0;
}
.calendar-export-options legend {
  margin-bottom: 7px;
  color: #52625d;
  font-size: 12px;
  font-weight: 800;
}
.calendar-export-options label {
  display: grid !important;
  grid-template-columns: 18px minmax(0, 1fr);
  align-items: start !important;
  gap: 9px !important;
  padding: 10px 11px;
  border: 1px solid #d5e1de;
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
}
.calendar-export-options label:has(input:checked) {
  border-color: #69aa9e;
  background: #eff8f5;
}
.calendar-export-options input { margin-top: 2px; }
.calendar-export-options span { display: grid; gap: 2px; }
.calendar-export-options strong { color: #263442; font-size: 13px; }
.calendar-export-options small { color: #6d7985; font-size: 12px; line-height: 1.4; }
.calendar-export-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 16px;
}
@media (max-width: 560px) {
  #quick-modal .modal-box { width: 100%; max-width: 100%; padding: 0 11px 12px; }
  .quick-modal-head { margin: 0 -11px 7px; padding: 9px 11px 7px; }
  .quick-modal-title-row { align-items: center; }
  .quick-modal-actions { gap: 5px; }
  .quick-modal-actions button { min-height: 30px; padding: 4px 9px; }
  #quick-modal .form-grid { grid-template-columns: 1fr; }
  .qk-date-heading { align-items: flex-start; }
  .qk-period-fields { grid-template-columns: 1fr; }
  .qk-deadline-field { width: 100%; }
  .bulk-edit-schedule-grid { grid-template-columns: 1fr; }
  .bulk-edit-schedule-grid .be-deadline-field { grid-column: auto; }
  .date-transfer-row { align-items: stretch; }
  .date-transfer-row > span { width: 100%; }
  .date-transfer-row button { flex: 1 1 140px; min-height: 36px; }
  #quick-modal .link-row { flex-direction: column; align-items: stretch; }
  #quick-modal .link-row .right { margin-left: 0; }
  #quick-modal .link-row button { width: 100%; }
  .qk-calendar-range { grid-template-columns: 1fr; }
  .qk-calendar-range-separator { display: none; }
  .qk-calendar-mode { width: 100%; }
  .qk-calendar-custom-panel { grid-template-columns: 1fr; }
  .qk-recurrence-fields { grid-template-columns: 1fr 1fr; }
  .qk-recurrence-fields > p { grid-column: 1 / -1; }
}

/* 체크·선택 컨트롤은 일반 텍스트 입력의 padding/높이를 상속하지 않는다. */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  flex: 0 0 16px;
  width: 16px;
  min-width: 16px;
  max-width: 16px;
  height: 16px;
  min-height: 16px;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 3px;
  box-shadow: none;
  accent-color: var(--accent);
  vertical-align: middle;
}

.detail-actions {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: 12px;
}

label:not(.leave-weekend-row):has(> input[type="checkbox"]),
label:not(.leave-weekend-row):has(> input[type="radio"]) {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  line-height: 1.35;
}

/* 현재 담당자와 과거 기록의 이름을 분리해 관리한다. */
.assignee-manager { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 8px; }
.assignee-manager-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 9px;
  min-height: 54px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
}
.assignee-manager-row.hidden-assignee { background: #f8fafc; color: var(--muted); }
.assignee-manager-person { display: grid; gap: 2px; min-width: 0; }
.assignee-manager-person strong { color: var(--text); }
.assignee-manager-person span { color: var(--muted); font-size: 12px; }
.assignee-manager-state { font-size: 12px; font-weight: 700; white-space: nowrap; }
.assignee-manager-state.visible { color: var(--accent); }
.assignee-manager-state.hidden { color: var(--muted); }
.leave-hidden-toggle { align-self: end; min-height: 36px; padding: 0 4px; white-space: nowrap; }

@media (max-width: 560px) {
  .assignee-manager { grid-template-columns: 1fr; }
  .assignee-manager-row { grid-template-columns: minmax(0, 1fr) auto; }
  .assignee-manager-state { grid-column: 1; }
  .assignee-manager-row > button { grid-column: 2; grid-row: 1 / span 2; }
}
/* MBR 월보고 */
.mbr-heading,
.mbr-workspace-heading,
.mbr-report-editor-head,
.mbr-candidate-actions,
.mbr-report-item-head {
  display: flex;
  align-items: center;
  gap: 12px;
  justify-content: space-between;
}
.mbr-heading { margin: 2px 0 14px; }
.mbr-heading h2,
.mbr-workspace-heading h2,
.mbr-report-editor h2 { margin: 2px 0 3px; }
.mbr-heading-actions,
.mbr-workspace-controls,
.mbr-report-item-head > div { display: flex; align-items: center; gap: 7px; }
.mbr-mode-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 220px));
  gap: 0;
  margin: 8px 0 12px;
  border-bottom: 1px solid var(--line);
}
.mbr-mode-tabs button {
  min-height: 42px;
  border: 0;
  border-bottom: 3px solid transparent;
  border-radius: 0;
  background: transparent;
  color: #56635f;
  font-weight: 700;
}
.mbr-mode-tabs button.active {
  border-bottom-color: #0f7b65;
  color: #075b4c;
  background: #f3f8f6;
}
.mbr-filter-card { margin-bottom: 10px; }
.mbr-filter-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(130px, 1fr));
  gap: 9px;
  align-items: end;
}
.mbr-filter-grid label,
.mbr-new-grid label,
.mbr-report-settings label,
.mbr-item-fields label { display: grid; gap: 4px; min-width: 0; }
.mbr-filter-grid label > span,
.mbr-new-grid label > span,
.mbr-report-settings label > span,
.mbr-item-fields label > span { color: var(--muted); font-size: 12px; }
.mbr-search { grid-column: span 3; }
.mbr-range-note { margin-top: 9px; color: var(--muted); font-size: 12px; }
.mbr-candidate-actions {
  --mbr-toolbar-height: 34px;
  position: sticky;
  top: 0;
  z-index: 4;
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: flex-start;
  gap: 12px;
  min-height: 52px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.97);
  box-shadow: 0 2px 8px rgba(24,39,56,.06);
}
.mbr-selection-actions,
.mbr-report-capture {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  min-width: 0;
}
.mbr-selection-actions { align-items: center; flex-wrap: wrap; }
.mbr-report-capture { justify-content: flex-start; }
.mbr-existing-group-add { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.mbr-existing-group-add select { min-width: 190px; min-height: var(--mbr-toolbar-height); }
.mbr-group-compose { margin: 8px 0; border-left: 3px solid #2b6f9c; }
.mbr-group-compose-grid { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(280px, 1.4fr) auto; gap: 8px; align-items: end; }
.mbr-group-compose-grid label { display: grid; gap: 4px; }
.mbr-group-compose-grid label > span { color: var(--muted); font-size: 11px; font-weight: 700; }
.mbr-group-compose-grid textarea { min-height: 38px; }
.mbr-report-types {
  display: grid;
  gap: 3px;
  margin: 0;
  padding: 0;
  border: 0;
  white-space: nowrap;
}
.mbr-toolbar-label,
.mbr-target-report-label > span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 600;
  line-height: 1.15;
}
.mbr-toolbar-hint {
  color: #87938e;
  font-weight: 500;
}
.mbr-report-type-options { display: flex; align-items: center; gap: 5px; }
.mbr-report-types .check-label {
  min-height: var(--mbr-toolbar-height) !important;
  padding-top: 5px !important;
  padding-bottom: 5px !important;
  border-radius: 5px !important;
  font-size: 12px;
}
.mbr-target-report-label { display: grid; gap: 3px; min-width: 210px; }
.mbr-target-report-label select { height: var(--mbr-toolbar-height); min-height: var(--mbr-toolbar-height); }
.mbr-select-all-control {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: var(--mbr-toolbar-height);
  padding: 0 8px;
  border: 1px solid #d7dfdc;
  border-radius: 5px;
  background: #f7f9f8;
  color: #33413c;
  font-size: 12px;
  font-weight: 650;
  white-space: nowrap;
}
.mbr-select-all-control input { margin: 0; }
.mbr-selected-count {
  display: inline-flex;
  align-items: center;
  min-height: var(--mbr-toolbar-height);
  color: #34433e;
  font-size: 12px;
  white-space: nowrap;
}
.mbr-toolbar-button {
  height: var(--mbr-toolbar-height);
  min-height: var(--mbr-toolbar-height) !important;
  padding: 0 12px !important;
  border-radius: 5px !important;
  font-size: 12px !important;
  font-weight: 750 !important;
  line-height: 1 !important;
  white-space: nowrap;
}
.mbr-toolbar-button.danger-btn {
  border-color: #e9a795;
  background: #fff5f2;
  color: #b63c24;
  box-shadow: 0 1px 2px rgba(182,60,36,.08);
}
.mbr-toolbar-button.danger-btn:hover { background: #ffebe5; }
.mbr-toolbar-button.primary { box-shadow: 0 1px 2px rgba(12,118,110,.2); }
.mbr-report-type-chip {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 7px;
  border: 1px solid #b9dcd2;
  border-radius: 3px;
  background: #edf8f5;
  color: #0b6757;
  font-size: 11px;
  font-weight: 700;
}
.mbr-candidate-list {
  width: 100%;
  border: 1px solid var(--line);
  border-top: 0;
  margin-bottom: 28px;
}
.mbr-candidate {
  display: grid;
  grid-template-columns: 28px minmax(300px, 1fr) auto;
  gap: 12px;
  align-items: start;
  min-height: 98px;
  padding: 12px;
  border-top: 1px solid var(--line);
  background: #fff;
}
.mbr-candidate:first-child { border-top: 0; }
.mbr-candidate.is-stored { background: #f5faf8; }
.mbr-candidate.is-excluded { background: #fff8f7; }
.mbr-candidate-check { display: grid; place-items: center; padding-top: 5px; }
.mbr-candidate-main { display: grid; gap: 6px; min-width: 0; }
.mbr-candidate-identity,
.mbr-report-item-identity,
.mbr-candidate-facts { display: flex; align-items: center; gap: 6px; min-width: 0; flex-wrap: wrap; }
.mbr-candidate-plant {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  min-width: 0;
  padding: 4px 8px;
  border-left: 3px solid #0f806d;
  border-radius: 3px;
  background: #e9f5f1;
  color: #0b5f52;
}
.mbr-candidate-plant > span { flex: 0 0 auto; color: #5a776f; font-size: 10px; }
.mbr-candidate-plant > strong { min-width: 0; overflow-wrap: anywhere; font-size: 13px; }
.mbr-category-pill,
.mbr-subcategory-pill {
  display: inline-flex;
  align-items: center;
  min-height: 23px;
  padding: 2px 8px;
  border-radius: 3px;
  font-size: 11px;
  font-weight: 700;
}
.mbr-category-pill.band-green { background: #e2f3e3; color: #255b2a; }
.mbr-category-pill.band-blue { background: #e4efff; color: #1d4d83; }
.mbr-category-pill.band-purple { background: #f0e6ff; color: #56308a; }
.mbr-category-pill.band-yellow { background: #fff4cc; color: #6c4b00; }
.mbr-category-pill.band-pink { background: #ffe3e7; color: #9a1c22; }
.mbr-subcategory-pill { border: 1px solid #d7dedb; background: #fff; color: #52605a; font-weight: 600; }
.mbr-candidate-title { color: #17231f; font-size: 14px; line-height: 1.45; }
.mbr-candidate-main strong,
.mbr-candidate-main p { display: block; margin: 2px 0; overflow-wrap: anywhere; }
.mbr-candidate-main p {
  display: -webkit-box;
  overflow: hidden;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.mbr-candidate-facts { margin-top: 1px; color: #7b8581; font-size: 11px; }
.mbr-candidate-facts span { display: inline-flex; gap: 4px; align-items: center; }
.mbr-candidate-facts b { color: #56615d; font-size: 10px; }
.mbr-candidate-assignee { opacity: .82; }
.mbr-candidate-history {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  min-width: 0;
  margin-top: 2px;
}
.mbr-history-block {
  min-width: 0;
  max-width: min(100%, 520px);
  border: 1px solid #d9e3df;
  border-radius: 4px;
  background: #f8faf9;
  color: #41514b;
  font-size: 11px;
}
.mbr-history-block > summary {
  display: flex;
  align-items: center;
  gap: 5px;
  min-height: 28px;
  padding: 5px 8px;
  cursor: pointer;
  list-style-position: inside;
  font-weight: 700;
  white-space: nowrap;
}
.mbr-history-block > summary b {
  margin-left: auto;
  color: #0f6f60;
  font-size: 10px;
}
.mbr-history-linked > summary { color: #2d5e76; }
.mbr-history-linked > summary b { color: #216f95; }
.mbr-history-list {
  display: grid;
  max-height: 190px;
  overflow: auto;
  border-top: 1px solid #e0e7e4;
}
.mbr-history-row {
  display: grid;
  grid-template-columns: minmax(90px, auto) auto auto;
  gap: 7px;
  align-items: start;
  padding: 6px 8px;
  border-top: 1px solid #edf1ef;
  line-height: 1.35;
}
.mbr-history-row:first-child { border-top: 0; }
.mbr-history-row strong { color: #263b34; font-size: 11px; }
.mbr-history-linked-row { grid-template-columns: minmax(150px, 1fr) minmax(165px, auto); }
.mbr-history-linked-row > span { color: #64716d; }
.mbr-candidate-context,
.mbr-candidate-meta,
.mbr-report-item-context { color: var(--muted); font-size: 12px; }
.mbr-candidate-side { display: flex; align-items: center; justify-content: flex-end; gap: 6px; padding-top: 3px; flex-wrap: wrap; }
.mbr-diagnostic-reasons {
  display: flex;
  flex-basis: 100%;
  justify-content: flex-end;
  gap: 5px;
  flex-wrap: wrap;
}
.mbr-diagnostic-reasons span {
  border: 1px solid #d9e3df;
  border-radius: 4px;
  background: #f7faf9;
  color: #44534e;
  padding: 4px 7px;
  font-size: 11px;
  line-height: 1.3;
}
.mbr-workspace-heading { margin-bottom: 10px; }
.mbr-new-panel { margin-bottom: 12px; }
.mbr-new-grid,
.mbr-report-settings {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 9px;
  align-items: end;
}
.mbr-new-grid .wide,
.mbr-report-settings .wide { grid-column: span 3; }
.mbr-year-overview {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}
.mbr-report-card {
  display: grid;
  gap: 4px;
  min-height: 105px;
  padding: 11px;
  text-align: left;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
}
.mbr-report-card.active { border-color: #0f7b65; box-shadow: inset 3px 0 #0f7b65; }
.mbr-report-card .chip { justify-self: start; }
.mbr-report-period { color: var(--muted); font-size: 12px; }
.mbr-report-editor { margin-bottom: 10px; }
.mbr-progress-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 12px 0;
}
.mbr-progress-box { padding: 10px; border-left: 3px solid #0f7b65; background: #f3f8f6; }
.mbr-progress-box span,
.mbr-progress-box strong,
.mbr-progress-box small { display: block; }
.mbr-progress-box strong { margin-top: 3px; }
.mbr-progress-box small { color: var(--muted); }
.mbr-report-item {
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  margin-bottom: 8px;
}
.mbr-report-item-summary { display: grid !important; gap: 6px; min-width: 0; }
.mbr-report-item-summary > strong { color: #17231f; font-size: 14px; line-height: 1.45; }
.mbr-report-item-identity { margin-bottom: 1px; }
.mbr-report-item-head strong { overflow-wrap: anywhere; }
.mbr-report-item-context { margin: 5px 0; }
.mbr-report-item-memo { margin: 5px 0; color: #46515d; white-space: pre-wrap; }
.mbr-item-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(120px, .8fr)) minmax(220px, 2fr) auto;
  gap: 8px;
  align-items: end;
  margin-top: 10px;
}

@media (max-width: 900px) {
  .mbr-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mbr-search { grid-column: span 1; }
  .mbr-candidate { grid-template-columns: 26px minmax(0, 1fr); }
  .mbr-candidate-side { grid-column: 2 / -1; }
  .mbr-new-grid,
  .mbr-report-settings { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mbr-new-grid .wide,
  .mbr-report-settings .wide { grid-column: span 2; }
  .mbr-item-fields { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .mbr-item-fields .wide { grid-column: 1 / -1; }
  .mbr-report-capture { justify-content: flex-start; flex-wrap: wrap; }
}

@media (max-width: 620px) {
  .monitoring-overall-note { grid-template-columns: 1fr; gap: 4px; padding: 8px; }
  .monitoring-overall-note > span { padding-top: 0; }
  .mbr-heading,
  .mbr-workspace-heading { align-items: stretch; flex-direction: column; }
  .mbr-heading-actions,
  .mbr-workspace-controls { width: 100%; }
  .mbr-workspace-controls select { flex: 1; min-width: 0; }
  .mbr-filter-grid,
  .mbr-new-grid,
  .mbr-report-settings { grid-template-columns: 1fr; }
  .mbr-search,
  .mbr-new-grid .wide,
  .mbr-report-settings .wide { grid-column: auto; }
  .mbr-candidate-actions { gap: 8px; padding: 8px; }
  .mbr-selection-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  .mbr-selection-actions .mbr-selected-count { justify-content: flex-end; }
  .mbr-selection-actions .mbr-toolbar-button { width: 100%; }
  .mbr-report-capture { display: grid; grid-template-columns: 1fr; gap: 7px; }
  .mbr-report-types { width: 100%; }
  .mbr-report-type-options { flex-wrap: wrap; }
  .mbr-report-types .check-label { width: auto; }
  .mbr-target-report-label { min-width: 0; width: 100%; }
  .mbr-candidate-actions select { width: 100%; }
  .mbr-candidate { grid-template-columns: 25px minmax(0, 1fr); align-items: start; }
  .mbr-candidate-main,
  .mbr-candidate-side { grid-column: 2; }
  .mbr-candidate-side { flex-wrap: wrap; }
  .mbr-candidate-plant { max-width: 100%; }
  .mbr-candidate-history { display: grid; grid-template-columns: 1fr; }
  .mbr-history-block { width: 100%; max-width: none; }
  .mbr-history-linked-row { grid-template-columns: 1fr; gap: 2px; }
  .mbr-progress-grid { grid-template-columns: 1fr; }
  .mbr-report-item-head { align-items: flex-start; }
  .mbr-report-item-head > div:first-child { display: grid; }
  .mbr-item-fields { grid-template-columns: 1fr; }
  .mbr-item-fields .wide { grid-column: auto; }
}

/* MBR report workspace */
.mbr-workspace-heading.card {
  margin-bottom: 8px;
  padding: 12px 14px;
  border-left: 3px solid #0f7b65;
}
.mbr-workspace-heading h3 { margin: 0 0 2px; }
.mbr-workspace-controls select { min-width: 170px; }
.mbr-new-grid {
  grid-template-columns: minmax(180px, 280px) auto;
  justify-content: start;
}
.mbr-new-grid button { min-height: 38px; }
.mbr-year-overview {
  display: flex;
  gap: 7px;
  overflow-x: auto;
  padding: 1px 1px 8px;
  scrollbar-width: thin;
}
.mbr-report-card {
  flex: 0 0 auto;
  min-width: 190px;
  padding: 9px 11px;
  border-radius: 6px;
}
.mbr-report-card strong { font-size: 13px; }
.mbr-report-card > span:not(.mbr-report-period) { color: var(--muted); font-size: 11px; }
.mbr-report-detail { margin-bottom: 24px; }
.mbr-report-editor {
  padding: 16px 0 0;
  border-top: 1px solid var(--line);
}
.mbr-report-editor-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  padding: 0 2px 12px;
}
.mbr-report-head-actions { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.mbr-generation-mode {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  overflow: hidden;
  border: 1px solid #bfcfc9;
  border-radius: 5px;
  background: #f7faf9;
}
.mbr-generation-mode > span { padding: 0 8px; color: #66756f; font-size: 10px; font-weight: 800; white-space: nowrap; }
.mbr-generation-mode select { min-height: 30px; padding: 3px 28px 3px 8px; border: 0; border-left: 1px solid #d4dfdb; border-radius: 0; background-color: #fff; font-size: 11px; font-weight: 750; }
.mbr-report-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-block: 1px solid var(--line);
  background: #f7faf9;
  box-shadow: inset 0 1px 0 #fff, inset 0 -1px 0 #fff;
}
.mbr-report-summary > div {
  display: grid;
  gap: 2px;
  min-height: 72px;
  padding: 11px 13px;
  position: relative;
  border-right: 1px solid #bccdc7;
  border-top: 3px solid #607d8b;
}
.mbr-report-summary > div::after {
  content: "";
  position: absolute;
  top: 10px;
  right: -2px;
  bottom: 10px;
  width: 1px;
  background: rgba(255, 255, 255, .9);
}
.mbr-report-summary > div:nth-child(1) { border-top-color: #287c67; }
.mbr-report-summary > div:nth-child(2) { border-top-color: #b77a1c; }
.mbr-report-summary > div:nth-child(3) { border-top-color: #b34c35; }
.mbr-report-summary > div:nth-child(4) { border-top-color: #3d6e9b; }
.mbr-report-summary > div:last-child { border-right: 0; }
.mbr-report-summary > div:last-child::after { display: none; }
.mbr-report-summary span,
.mbr-report-summary small { color: var(--muted); font-size: 11px; }
.mbr-report-summary strong { font-size: 18px; }
.mbr-category-tabs {
  display: flex;
  gap: 5px;
  padding: 10px 0 7px;
  overflow-x: auto;
}
.mbr-category-tabs button {
  min-height: 34px;
  padding: 6px 11px;
  border: 1px solid #cdd9d5;
  border-radius: 5px;
  background: #fff;
  color: #44534e;
  white-space: nowrap;
}
.mbr-category-tabs button.active {
  border-color: #0f7b65;
  background: #e5f3ef;
  color: #075b4c;
  font-weight: 700;
}
.mbr-category-tabs button span { margin-left: 3px; font-size: 11px; }
.mbr-report-bulk-bar {
  display: flex;
  align-items: center;
  gap: 7px;
  min-height: 40px;
  margin: 1px 0 9px;
  padding: 5px 8px;
  border: 1px solid #d2ddd9;
  background: #f8faf9;
}
.mbr-report-bulk-bar > strong { min-width: 58px; color: #075b4c; font-size: 12px; }
.mbr-report-bulk-actions { display: flex; align-items: center; gap: 6px; }
.mbr-report-bulk-actions[hidden] { display: none; }
.mbr-group-button { border-color: #9ebfb5 !important; color: #075b4c !important; background: #edf6f3 !important; font-weight: 750; }
.mbr-group-button:hover:not(:disabled) { border-color: #0f7b65 !important; background: #e0f1eb !important; }
.mbr-report-group-compose {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(180px, 1.3fr) auto auto;
  gap: 7px;
  align-items: end;
  margin: -2px 0 10px;
  padding: 9px;
  border: 1px solid #bcd1ca;
  background: #f1f7f5;
}
.mbr-report-group-compose[hidden] { display: none; }
.mbr-report-group-compose label { display: grid; gap: 3px; }
.mbr-report-group-compose label > span { color: var(--muted); font-size: 10px; font-weight: 700; }
.mbr-data-note { margin: 0 0 8px; color: var(--muted); font-size: 11px; }
.mbr-report-danger-zone {
  margin: 10px 0 0;
  border-top: 1px solid #e4d8d5;
  color: #73504a;
}
.mbr-report-danger-zone > summary {
  width: max-content;
  padding: 8px 0 2px;
  color: #72544f;
  font-size: 11px;
  font-weight: 750;
  cursor: pointer;
}
.mbr-report-danger-content {
  display: grid;
  grid-template-columns: minmax(250px, 1fr) minmax(220px, 300px) auto;
  gap: 10px;
  align-items: end;
  margin-top: 6px;
  padding: 10px;
  border: 1px solid #dfbdb6;
  background: #fff8f6;
}
.mbr-report-danger-content strong { color: #8d2f24; font-size: 12px; }
.mbr-report-danger-content p { margin: 3px 0 0; color: #72544f; font-size: 10px; line-height: 1.45; }
.mbr-report-danger-content label { display: grid; gap: 3px; }
.mbr-report-danger-content label > span { color: #72544f; font-size: 10px; font-weight: 700; }
.mbr-report-danger-content input { width: 100%; min-width: 0; }
.mbr-report-danger-content button { white-space: nowrap; }
.mbr-report-items { display: grid; gap: 9px; }
.mbr-report-group {
  border-top: 2px solid #294b42;
  background: #fff;
}
.mbr-group-heading {
  display: flex;
  align-items: center;
  min-height: 42px;
  padding: 8px 10px;
  border-bottom: 1px solid var(--line);
  background: #f5f8f7;
}
.mbr-group-heading h3 { margin: 0; font-size: 15px; }
.mbr-group-heading h3 span { margin-left: 6px; color: var(--muted); font-size: 12px; font-weight: 500; }
.mbr-report-item {
  display: grid;
  grid-template-columns: 38px minmax(260px, 1fr) minmax(145px, 190px) auto;
  gap: 8px;
  align-items: center;
  margin: 4px 6px;
  padding: 7px 8px;
  border: 1px solid #dce5e2;
  border-radius: 5px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(29, 58, 49, .035);
}
.mbr-report-item:hover { border-color: #c5d5d0; background: #fbfdfc; }
.mbr-report-item.is-editing { border-color: #9fc3b8; background: #fbfdfc; }
.mbr-item-leading { display: grid; grid-template-columns: 16px 20px; gap: 2px; align-items: center; }
.mbr-report-select-box { display: flex; align-items: center; justify-content: center; margin: 0; }
.mbr-report-select-box input { width: 15px; height: 15px; margin: 0; }
.mbr-report-item-main { min-width: 0; }
.mbr-report-item-main h4 {
  margin: 2px 0;
  font-size: 14px;
  line-height: 1.4;
  overflow-wrap: anywhere;
}
.mbr-report-item-identity > strong { color: #075b4c; font-size: 12px; }
.mbr-item-meta { display: flex; flex-wrap: wrap; gap: 5px 8px; color: var(--muted); font-size: 11px; }
.mbr-item-comment {
  margin: 3px 0 0;
  color: #34423d;
  font-size: 12px;
  line-height: 1.45;
  white-space: pre-wrap;
}
.mbr-item-measure {
  display: grid;
  gap: 1px;
  padding-left: 10px;
  border-left: 2px solid #d6e4df;
}
.mbr-item-measure span,
.mbr-item-measure small { color: var(--muted); font-size: 10px; }
.mbr-item-measure strong { font-size: 14px; }
.mbr-loss-measure strong { color: #9b4d1c; }
.mbr-item-actions { display: flex; align-items: center; gap: 4px; }
.mbr-item-actions .small { min-height: 30px; padding: 5px 8px; }
.mbr-item-editor {
  grid-column: 2 / -1;
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid #cddbd6;
  background: #f7fbf9;
}
.mbr-item-editor[hidden] { display: none; }
.mbr-item-editor label { display: grid; gap: 4px; min-width: 0; }
.mbr-item-editor label > span,
.mbr-field-title { color: #56645f; font-size: 11px; font-weight: 700; }
.mbr-field-title small,
.mbr-item-editor label small { color: var(--muted); font-weight: 500; }
.mbr-item-type-checks { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 5px; }
.mbr-item-type-checks .check-label { min-height: 32px; }
.mbr-editor-subsection {
  padding-top: 9px;
  border-top: 1px solid #dce6e2;
}
.mbr-editor-subsection > div:first-child { display: flex; align-items: baseline; gap: 8px; margin-bottom: 7px; }
.mbr-editor-subsection > div:first-child span { color: var(--muted); font-size: 11px; }
.mbr-editor-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(130px, 1fr));
  gap: 8px;
}
.mbr-editor-grid .wide { grid-column: 1 / -1; }
.mbr-maintenance-fields,
.mbr-loss-fields { display: none; }
.mbr-report-item.has-maintenance .mbr-maintenance-fields,
.mbr-report-item.has-loss .mbr-loss-fields { display: block; }
.mbr-item-editor-actions { display: flex; justify-content: flex-end; gap: 6px; }
.mbr-source-members { display: grid; gap: 5px; margin: 7px 0; }
.mbr-source-member {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 7px 8px;
  border: 1px solid #d8e2de;
  background: #fff;
}
.mbr-source-member > div:first-child { display: grid; gap: 2px; min-width: 0; }
.mbr-source-member strong { color: #075b4c; font-size: 11px; }
.mbr-source-member span { overflow-wrap: anywhere; font-size: 12px; }
.mbr-source-member > div:last-child { display: flex; gap: 4px; }
.mbr-source-member.is-representative {
  border-color: #8db9ac;
  background: #f0f8f5;
}
.mbr-source-member strong { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.mbr-source-member strong em {
  padding: 2px 6px;
  border-radius: 10px;
  background: #0d7563;
  color: #fff;
  font-size: 9px;
  font-style: normal;
  line-height: 1.2;
}
.mbr-representative-section {
  padding: 10px;
  border: 1px solid #bad2ca;
  background: #f4faf8;
}
.mbr-representative-controls {
  display: grid;
  grid-template-columns: auto auto minmax(180px, 1fr) auto;
  gap: 7px;
  align-items: center;
}
.mbr-representative-controls .check-label { min-height: 34px; }
.mbr-representative-controls select { min-width: 0; }
.mbr-loss-reference {
  display: grid;
  grid-template-columns: auto minmax(160px, 1fr) minmax(0, 2.2fr);
  gap: 10px;
  align-items: center;
  padding: 9px 10px;
  border: 1px solid #cbdcd6;
  background: #eef6f3;
}
.mbr-loss-reference > span { color: #0d6d5c; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.mbr-loss-reference > strong { overflow-wrap: anywhere; font-size: 13px; }
.mbr-loss-reference dl { display: grid; grid-template-columns: repeat(4, minmax(95px, 1fr)); gap: 7px; margin: 0; }
.mbr-loss-reference dl > div { min-width: 0; }
.mbr-loss-reference dt { color: var(--muted); font-size: 9px; }
.mbr-loss-reference dd { margin: 2px 0 0; overflow-wrap: anywhere; font-size: 11px; font-weight: 700; }
.mbr-loss-input-grid { margin-top: 8px; }
.mbr-loss-step { display: grid; gap: 7px; padding-top: 10px; border-top: 1px solid #dce6e2; }
.mbr-loss-step > div:first-child { display: grid; gap: 2px; }
.mbr-loss-step > div:first-child span { color: var(--muted); font-size: 11px; }
.mbr-choice-row { display: flex !important; flex-wrap: wrap; gap: 5px !important; margin: 0 !important; }
.mbr-choice-row .check-label { min-height: 34px; }
.mbr-equipment-picker { width: 100%; min-height: 36px; }
.mbr-equipment-picker-face {
  width: 100%;
  border: 0;
  border-radius: inherit;
  background: transparent;
  color: inherit;
  text-align: left;
}
.mbr-equipment-picker-face:hover:not(:disabled) { background: #f8faf9; }
.mbr-equipment-picker-chips { display: flex; flex-wrap: wrap; gap: 4px; min-width: 0; }
.mbr-equipment-picker.is-disabled { opacity: .58; background: #f2f4f3; cursor: default; }
.mbr-equipment-picker .plant-picker-option { grid-template-columns: minmax(120px, 1fr) minmax(80px, .8fr); }
.mbr-field-warning { margin: 0; color: #a3541f; font-size: 11px; }
.mbr-calculated-field { display: grid; gap: 4px; }
.mbr-calculated-field output {
  display: flex;
  align-items: center;
  min-height: 38px;
  padding: 7px 10px;
  border: 1px solid #cbd9e6;
  background: #eef4fa;
  color: #254a6b;
  font-weight: 750;
}
.mbr-loss-result { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.mbr-loss-rate { display: grid; gap: 2px; padding: 8px 10px; border-left: 3px solid #2f6e9f; background: #eef4fa; }
.mbr-loss-rate > span, .mbr-loss-rate > small { color: #5c6d7b; font-size: 10px; }
.mbr-loss-rate > strong { font-size: 15px; }
.mbr-loss-rate.temporary_previous { border-left-color: #c57a18; background: #fff7e8; }
.mbr-loss-rate.missing { border-left-color: #b54a38; background: #fff2ef; }
.mbr-loss-query { margin: 2px 0 12px; padding: 10px; border: 1px solid #ccd9d5; background: #f8faf9; }
.mbr-loss-filter-grid { display: grid; grid-template-columns: repeat(4, minmax(120px, 1fr)); gap: 7px; align-items: end; }
.mbr-loss-filter-grid label { display: grid; gap: 3px; }
.mbr-loss-filter-grid label > span { color: var(--muted); font-size: 10px; font-weight: 700; }
.mbr-loss-filter-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 9px; border-top: 1px solid #d7e1dd; }
.mbr-loss-filter-summary > div { display: grid; gap: 2px; padding: 8px 10px 0; border-right: 1px solid #d7e1dd; }
.mbr-loss-filter-summary > div:last-child { border-right: 0; }
.mbr-loss-filter-summary span { color: var(--muted); font-size: 10px; }
.mbr-loss-filter-summary strong { font-size: 14px; }
.empty-state.compact { min-height: 70px; }

@media (max-width: 900px) {
  .mbr-report-item { grid-template-columns: 38px minmax(0, 1fr) auto; }
  .mbr-item-measure { grid-column: 2; }
  .mbr-item-actions { grid-column: 3; grid-row: 1 / span 2; align-self: start; flex-direction: column; }
  .mbr-item-editor { grid-column: 1 / -1; }
  .mbr-editor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mbr-loss-reference { grid-template-columns: auto minmax(0, 1fr); }
  .mbr-loss-reference dl { grid-column: 1 / -1; }
  .mbr-loss-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mbr-group-compose-grid { grid-template-columns: 1fr 1fr; }
  .mbr-group-compose-grid button { grid-column: 1 / -1; }
  .mbr-report-group-compose { grid-template-columns: 1fr 1fr; }
  .mbr-report-group-compose button { width: 100%; }
}

@media (max-width: 620px) {
  .mbr-workspace-heading.card { align-items: stretch; }
  .mbr-workspace-controls { display: grid; grid-template-columns: 1fr 1.4fr; }
  .mbr-workspace-controls select { width: 100%; min-width: 0; }
  .mbr-new-grid { grid-template-columns: 1fr; }
  .mbr-report-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mbr-report-summary > div:nth-child(2) { border-right: 0; }
  .mbr-report-summary > div:nth-child(2)::after { display: none; }
  .mbr-report-summary > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .mbr-report-editor-head { align-items: stretch; flex-direction: column; }
  .mbr-report-head-actions { justify-content: flex-start; }
  .mbr-generation-mode { width: 100%; }
  .mbr-generation-mode select { flex: 1; min-width: 0; }
  .mbr-report-bulk-bar { flex-wrap: wrap; }
  .mbr-report-bulk-actions { width: 100%; flex-wrap: wrap; }
  .mbr-report-bulk-bar .mbr-toolbar-hint { width: 100%; }
  .mbr-report-danger-content { grid-template-columns: 1fr; align-items: stretch; }
  .mbr-report-danger-content button { width: 100%; }
  .mbr-report-group-compose { grid-template-columns: 1fr; }
  .mbr-report-item { grid-template-columns: 38px minmax(0, 1fr); gap: 6px; margin: 4px 2px; padding: 7px 6px; }
  .mbr-item-measure,
  .mbr-item-actions { grid-column: 2; grid-row: auto; }
  .mbr-item-actions { flex-direction: row; flex-wrap: wrap; }
  .mbr-item-editor { grid-column: 1 / -1; padding: 9px; }
  .mbr-editor-grid { grid-template-columns: 1fr; }
  .mbr-editor-grid .wide { grid-column: auto; }
  .mbr-editor-subsection > div:first-child { display: grid; gap: 2px; }
  .mbr-mode-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mbr-existing-group-add { width: 100%; margin-left: 0; }
  .mbr-existing-group-add select { flex: 1; min-width: 0; }
  .mbr-group-compose-grid,
  .mbr-loss-reference,
  .mbr-loss-reference dl,
  .mbr-loss-result,
  .mbr-loss-filter-grid,
  .mbr-loss-filter-summary { grid-template-columns: 1fr; }
  .mbr-loss-reference dl { grid-column: auto; }
  .mbr-source-member { grid-template-columns: 1fr; }
  .mbr-source-member > div:last-child { flex-wrap: wrap; }
  .mbr-representative-controls { grid-template-columns: 1fr; }
  .mbr-loss-filter-summary > div { border-right: 0; border-bottom: 1px solid #d7e1dd; padding-bottom: 7px; }
  .mbr-loss-filter-summary > div:last-child { border-bottom: 0; }
}

/* Compact grouped main navigation. */
nav.tabs {
  position: relative;
  flex: 0 1 auto;
  overflow: visible;
  flex-wrap: nowrap;
  align-items: stretch;
}
nav.tabs > button[data-view],
.nav-group-trigger {
  min-height: 34px;
  white-space: nowrap;
}
.nav-group {
  position: relative;
  display: flex;
}
.nav-group[hidden] { display: none !important; }
.nav-group-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.nav-group-trigger::after {
  content: "";
  width: 6px;
  height: 6px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
  transition: transform 140ms ease;
}
.nav-group.open .nav-group-trigger::after { transform: rotate(225deg) translate(-1px, -1px); }
.nav-group.single-item .nav-group-trigger::after { display: none; }
.nav-group.single-item .nav-submenu { display: none !important; }
.nav-group.has-active .nav-group-trigger {
  background: #fff;
  color: var(--accent);
  font-weight: 800;
  box-shadow: 0 1px 4px rgba(15, 23, 42, 0.12);
}
.nav-submenu {
  display: none;
  position: absolute;
  z-index: 120;
  top: calc(100% + 7px);
  left: 0;
  min-width: 172px;
  padding: 6px;
  border: 1px solid #ccd6df;
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(22, 32, 42, 0.17);
}
.nav-group.open .nav-submenu { display: grid; gap: 2px; }
.nav-submenu button[data-view] {
  width: 100%;
  min-height: 34px;
  padding: 7px 10px;
  border-radius: 5px;
  text-align: left;
  white-space: nowrap;
}
.nav-submenu button[data-view].active {
  background: var(--accent-bg);
  color: var(--accent);
  box-shadow: none;
}
.nav-group[data-nav-group="admin"] .nav-submenu,
.nav-group[data-nav-group="report"] .nav-submenu { left: auto; right: 0; }
.nav-mobile-submenu { display: none; }

@media (min-width: 721px) and (max-width: 1550px) {
  nav.tabs {
    order: 3;
    flex: 1 1 100%;
    width: 100%;
    flex-wrap: nowrap;
    overflow: visible;
  }
}

@media (max-width: 720px) {
  nav.tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: visible;
    padding: 3px;
  }
  nav.tabs > button[data-view],
  .nav-group-trigger {
    width: 100%;
    justify-content: center;
    padding: 7px 4px;
    font-size: 12px;
  }
  .nav-group { min-width: 0; }
  .nav-group.open .nav-submenu { display: none !important; }
  .nav-mobile-submenu {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    min-width: 0;
    padding: 5px 2px 1px;
    border-top: 1px solid var(--line);
  }
  .nav-mobile-submenu[hidden] { display: none; }
  .nav-mobile-submenu button[data-view] {
    flex: 1 1 72px;
    min-width: 0;
    min-height: 30px;
    padding: 5px 3px;
    border-radius: 5px;
    font-size: 12px;
    line-height: 1.2;
    white-space: normal;
  }
  .nav-mobile-submenu button[data-view].active {
    background: var(--accent-bg);
    color: var(--accent);
    font-weight: 800;
  }
}
.smart-date-input {
  font-variant-numeric: tabular-nums;
}

.smart-date-input[aria-invalid="true"] {
  border-color: #c9473d;
  box-shadow: 0 0 0 2px rgba(201, 71, 61, 0.12);
}

.board-notification-rules {
  display: grid;
  gap: 10px;
  margin-top: 10px;
}

.board-notification-rule {
  border: 1px solid #d7e0e6;
  border-radius: 6px;
  padding: 12px;
  background: #fff;
}

.board-notification-rule.disabled {
  background: #f7f8f8;
  opacity: 0.72;
}

.board-notification-rule-head,
.board-notification-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.board-notification-rule-head input[type="text"] {
  flex: 1;
  min-width: 180px;
  font-weight: 700;
}

.board-notification-rule-head .board-rule-enabled {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.board-notification-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}

.board-notification-field {
  min-width: 0;
}

.board-notification-field > span,
.board-notification-field > label > span {
  display: block;
  margin-bottom: 5px;
  color: #59656f;
  font-size: 12px;
  font-weight: 700;
}

.board-notification-options {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 12px;
  min-height: 36px;
  padding: 7px 9px;
  border: 1px solid #d7e0e6;
  border-radius: 5px;
  background: #fafcfc;
}

.board-notification-options.scroll {
  max-height: 106px;
  overflow-y: auto;
  align-content: flex-start;
}

.board-notification-options label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin: 0;
  font-size: 12px;
}

.board-notification-options .member-team {
  width: 100%;
  margin-top: 3px;
  color: #71808a;
  font-size: 11px;
  font-weight: 700;
}

.board-notification-actions {
  justify-content: space-between;
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid #e3e8eb;
}

@media (max-width: 720px) {
  .board-notification-grid {
    grid-template-columns: 1fr;
  }

  .board-notification-rule-head,
  .board-notification-actions {
    align-items: stretch;
    flex-direction: column;
  }
}
.calendar-default-option {
  align-items: center;
  color: #65727d;
  display: inline-flex;
  font-size: 12px;
  gap: 6px;
}

.calendar-default-option input {
  flex: 0 0 auto;
  margin: 0;
}

.plant-equipment-loading { margin: 0 0 12px; padding: 12px; border: 1px solid #dce4e1; background: #f8fbfa; color: #61706b; }
.plant-equipment-loading.error { border-color: #efc8c8; background: #fff6f6; color: #9a2f2f; }
.plant-equipment-ledger { margin-bottom: 14px; border-top: 3px solid #18846c; border-bottom: 1px solid #d8dfdc; background: #fff; }
.plant-equipment-ledger-head { display: grid; grid-template-columns: minmax(260px, .7fr) minmax(560px, 1.3fr); gap: 20px; align-items: end; padding: 14px 16px 12px; }
.plant-equipment-ledger-head h2 { margin: 2px 0 3px; font-size: 18px; }
.plant-equipment-ledger-head p { margin: 0; color: var(--muted); font-size: 12px; }
.plant-equipment-ledger-kpis { display: grid; grid-template-columns: repeat(5, 1fr); border: 1px solid #dbe5e1; }
.plant-equipment-ledger-kpis span { padding: 8px 9px; border-left: 1px solid #e3ebe8; color: #68736f; font-size: 10px; }
.plant-equipment-ledger-kpis span:first-child { border-left: 0; }
.plant-equipment-ledger-kpis b { display: block; color: #0f6e56; font-size: 16px; }
.plant-equipment-ledger-body { display: grid; grid-template-columns: minmax(280px, .75fr) minmax(0, 1.25fr); border-top: 1px solid #e2e7e5; }
.plant-asset-groups { max-height: 520px; overflow-y: auto; border-right: 1px solid #e2e7e5; padding: 12px 14px; }
.plant-asset-group { margin-bottom: 13px; }
.plant-asset-group h4 { display: flex; justify-content: space-between; margin: 0 0 5px; color: #345048; font-size: 12px; }
.plant-asset-group h4 span { color: #83908b; font-weight: 500; }
.plant-asset-line { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; padding: 6px 0; border-bottom: 1px solid #edf0ee; }
.plant-asset-line > div { min-width: 0; }
.plant-asset-line b { display: block; font-size: 12px; }
.plant-asset-line span { display: block; overflow: hidden; color: #78837f; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.plant-asset-line em { display: block; color: #8a6516; font-size: 9px; font-style: normal; text-align: right; }
.plant-asset-line strong { display: block; color: #0f6e56; font-size: 11px; text-align: right; }
.plant-failure-history { min-width: 0; max-height: 520px; overflow: auto; padding: 12px 14px; }
.plant-failure-history h3 { margin: 0 0 8px; font-size: 13px; }
.plant-failure-history table td:nth-child(2) { min-width: 150px; }
.plant-failure-history table td:nth-child(3),
.plant-failure-history table td:nth-child(4) { min-width: 210px; }

@media (max-width: 1000px) {
  .plant-equipment-ledger-head { grid-template-columns: 1fr; }
  .plant-equipment-ledger-body { grid-template-columns: 1fr; }
  .plant-asset-groups { max-height: 360px; border-right: 0; border-bottom: 1px solid #e2e7e5; }
}

@media (max-width: 720px) {
  #view-cases > .filter-bar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 7px;
  }
  #view-cases > .filter-bar #cs-search,
  #view-cases > .filter-bar #cs-plant {
    grid-column: 1 / -1;
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }
  #view-cases > .filter-bar #cs-status,
  #view-cases > .filter-bar button {
    width: 100%;
    min-width: 0;
  }
  .plant-equipment-ledger-head { padding: 12px 10px; }
  .plant-equipment-ledger-kpis { grid-template-columns: repeat(2, 1fr); }
  .plant-equipment-ledger-kpis span { border-bottom: 1px solid #e3ebe8; }
  .plant-equipment-ledger-kpis span:nth-child(odd) { border-left: 0; }
  .plant-equipment-ledger-kpis span:last-child { grid-column: 1 / -1; }
  .plant-asset-groups, .plant-failure-history { max-height: none; padding: 10px; }
  #view-cases .plant-failure-history table.list,
  #view-cases .plant-failure-history table.list tbody,
  #view-cases .plant-failure-history table.list tr,
  #view-cases .plant-failure-history table.list td { display: block; width: 100%; }
  #view-cases .plant-failure-history table.list thead { display: none; }
  #view-cases .plant-failure-history table.list tbody tr:first-child { display: block; }
  #view-cases .plant-failure-history table.list tr { margin-bottom: 8px; padding: 8px; border: 1px solid #dce3e0; }
  #view-cases .plant-failure-history table.list td { position: relative; min-width: 0 !important; padding: 3px 0 3px 76px !important; border: 0 !important; }
  .plant-failure-history td::before { position: absolute; left: 0; width: 68px; content: attr(data-label); color: #7a847f; font-size: 10px; font-weight: 700; }
  #view-cases table.list.equipment-history-table,
  #view-cases table.list.equipment-history-table tbody,
  #view-cases table.list.equipment-history-table tr,
  #view-cases table.list.equipment-history-table td { display: block; width: 100%; }
  #view-cases table.list.equipment-history-table thead { display: none; }
  #view-cases table.list.equipment-history-table tbody tr:first-child { display: block; }
  #view-cases table.list.equipment-history-table td { position: relative; min-width: 0 !important; padding: 3px 0 3px 84px !important; border: 0 !important; }
  .equipment-form-grid, .equipment-form-grid.compact { grid-template-columns: 1fr; padding-inline: 0; }
  .fault-event-list { grid-template-columns: 1fr; }
}

/* Shared visual language for binary options and multi-select filters. */
:root {
  --choice-border: #cbd6d2;
  --choice-border-active: #5aa99b;
  --choice-bg: #f4f7f6;
  --choice-bg-active: #e5f4ef;
  --choice-text: #52605b;
  --choice-text-active: #075f52;
  --choice-focus: rgba(15, 118, 110, 0.18);
}

:is(
  .dash-journal-field-filters label,
  #view-calendar > .filter-bar > label:has(input[type="checkbox"]),
  .pm-auto-toggle,
  .pm-search-toggle,
  .mbr-report-types label,
  .leave-asof-toggle,
  .leave-hidden-toggle,
  .ai-search-enable,
  .user-assignee-toggle,
  .leave-calendar-field,
  .bulk-edit-switch,
  .release-edit-reshow,
  .inline-leave-check,
  #quick-modal .link-row > label:has(input[type="checkbox"]),
  .plant-match-toolbar > label:has(input[type="checkbox"]),
  .checkbox-label:has(input[type="checkbox"]),
  .flow-filter-options label:has(input[type="checkbox"]),
  .board-notification-options label:has(input[type="checkbox"]),
  .board-rule-enabled,
  .plant-field-tools label:has(input[type="checkbox"]),
  .leave-type-active,
  .user-row-check,
  .bulk-edit-date-grid label > span:has(input[type="checkbox"])
) {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 28px;
  padding: 4px 9px 4px 8px;
  border: 1px solid var(--choice-border);
  border-left: 3px solid var(--choice-border);
  border-radius: 5px;
  background: #fff;
  color: var(--choice-text);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.3;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
  user-select: none;
  transition: background-color 120ms ease, border-color 120ms ease, color 120ms ease, box-shadow 120ms ease, transform 80ms ease;
}

:is(
  .dash-journal-field-filters label,
  #view-calendar > .filter-bar > label:has(input[type="checkbox"]),
  .pm-auto-toggle,
  .pm-search-toggle,
  .mbr-report-types label,
  .leave-asof-toggle,
  .leave-hidden-toggle,
  .ai-search-enable,
  .user-assignee-toggle,
  .leave-calendar-field,
  .bulk-edit-switch,
  .release-edit-reshow,
  .inline-leave-check,
  #quick-modal .link-row > label:has(input[type="checkbox"]),
  .plant-match-toolbar > label:has(input[type="checkbox"]),
  .checkbox-label:has(input[type="checkbox"]),
  .flow-filter-options label:has(input[type="checkbox"]),
  .board-notification-options label:has(input[type="checkbox"]),
  .board-rule-enabled,
  .plant-field-tools label:has(input[type="checkbox"]),
  .leave-type-active,
  .user-row-check,
  .bulk-edit-date-grid label > span:has(input[type="checkbox"])
):has(input[type="checkbox"]:checked) {
  border-color: var(--choice-border-active);
  border-left-color: var(--choice-border-active);
  background: var(--choice-bg-active);
  color: var(--choice-text-active);
  box-shadow: inset 0 0 0 1px rgba(90, 169, 155, 0.1), 0 1px 2px rgba(15, 23, 42, 0.05);
}

:is(
  .dash-journal-field-filters label,
  #view-calendar > .filter-bar > label:has(input[type="checkbox"]),
  .pm-auto-toggle,
  .pm-search-toggle,
  .mbr-report-types label,
  .leave-asof-toggle,
  .leave-hidden-toggle,
  .ai-search-enable,
  .user-assignee-toggle,
  .leave-calendar-field,
  .bulk-edit-switch,
  .release-edit-reshow,
  .inline-leave-check,
  #quick-modal .link-row > label:has(input[type="checkbox"]),
  .plant-match-toolbar > label:has(input[type="checkbox"]),
  .checkbox-label:has(input[type="checkbox"]),
  .flow-filter-options label:has(input[type="checkbox"]),
  .board-notification-options label:has(input[type="checkbox"]),
  .board-rule-enabled,
  .plant-field-tools label:has(input[type="checkbox"]),
  .leave-type-active,
  .user-row-check,
  .bulk-edit-date-grid label > span:has(input[type="checkbox"])
):has(input[type="checkbox"]:focus-visible) {
  outline: 0;
  box-shadow: 0 0 0 3px var(--choice-focus);
}

:is(
  .dash-journal-field-filters label,
  #view-calendar > .filter-bar > label:has(input[type="checkbox"]),
  .pm-auto-toggle,
  .pm-search-toggle,
  .mbr-report-types label,
  .leave-asof-toggle,
  .leave-hidden-toggle,
  .ai-search-enable,
  .user-assignee-toggle,
  .leave-calendar-field,
  .bulk-edit-switch,
  .release-edit-reshow,
  .inline-leave-check,
  #quick-modal .link-row > label:has(input[type="checkbox"]),
  .plant-match-toolbar > label:has(input[type="checkbox"]),
  .checkbox-label:has(input[type="checkbox"]),
  .flow-filter-options label:has(input[type="checkbox"]),
  .board-notification-options label:has(input[type="checkbox"]),
  .board-rule-enabled,
  .plant-field-tools label:has(input[type="checkbox"]),
  .leave-type-active,
  .user-row-check,
  .bulk-edit-date-grid label > span:has(input[type="checkbox"])
) input[type="checkbox"] {
  position: absolute !important;
  width: 1px !important;
  min-width: 1px !important;
  height: 1px !important;
  min-height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

:is(
  .dash-journal-field-filters label,
  #view-calendar > .filter-bar > label:has(input[type="checkbox"]),
  .pm-auto-toggle,
  .pm-search-toggle,
  .mbr-report-types label,
  .leave-asof-toggle,
  .leave-hidden-toggle,
  .ai-search-enable,
  .user-assignee-toggle,
  .leave-calendar-field,
  .bulk-edit-switch,
  .release-edit-reshow,
  .inline-leave-check,
  #quick-modal .link-row > label:has(input[type="checkbox"]),
  .plant-match-toolbar > label:has(input[type="checkbox"]),
  .checkbox-label:has(input[type="checkbox"]),
  .flow-filter-options label:has(input[type="checkbox"]),
  .board-notification-options label:has(input[type="checkbox"]),
  .board-rule-enabled,
  .plant-field-tools label:has(input[type="checkbox"]),
  .leave-type-active,
  .user-row-check,
  .bulk-edit-date-grid label > span:has(input[type="checkbox"])
):has(input[type="checkbox"]:disabled) {
  opacity: 0.48;
  cursor: not-allowed;
}

:is(
  .choice-toggle,
  .dash-journal-field-filters label,
  #view-calendar > .filter-bar > label:has(input[type="checkbox"]),
  .pm-auto-toggle,
  .pm-search-toggle,
  .mbr-report-types label,
  .leave-asof-toggle,
  .leave-hidden-toggle,
  .ai-search-enable,
  .user-assignee-toggle,
  .leave-calendar-field,
  .bulk-edit-switch,
  .release-edit-reshow,
  .inline-leave-check,
  .plant-match-toolbar > label:has(input[type="checkbox"]),
  .checkbox-label:has(input[type="checkbox"]),
  .flow-filter-options label:has(input[type="checkbox"]),
  .board-notification-options label:has(input[type="checkbox"]),
  .board-rule-enabled,
  .plant-field-tools label:has(input[type="checkbox"]),
  .leave-type-active,
  .user-row-check,
  .bulk-edit-date-grid label > span:has(input[type="checkbox"])
)::after {
  content: "OFF";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-width: 27px;
  height: 17px;
  padding: 0 5px;
  border-radius: 999px;
  background: #e8edeb;
  color: #69756f;
  font-size: 9px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0;
}

:is(
  .choice-toggle,
  .dash-journal-field-filters label,
  #view-calendar > .filter-bar > label:has(input[type="checkbox"]),
  .pm-auto-toggle,
  .pm-search-toggle,
  .mbr-report-types label,
  .leave-asof-toggle,
  .leave-hidden-toggle,
  .ai-search-enable,
  .user-assignee-toggle,
  .leave-calendar-field,
  .bulk-edit-switch,
  .release-edit-reshow,
  .inline-leave-check,
  .plant-match-toolbar > label:has(input[type="checkbox"]),
  .checkbox-label:has(input[type="checkbox"]),
  .flow-filter-options label:has(input[type="checkbox"]),
  .board-notification-options label:has(input[type="checkbox"]),
  .board-rule-enabled,
  .plant-field-tools label:has(input[type="checkbox"]),
  .leave-type-active,
  .user-row-check,
  .bulk-edit-date-grid label > span:has(input[type="checkbox"])
):has(input[type="checkbox"]:checked)::after {
  content: "ON";
  background: var(--accent);
  color: #fff;
}

:is(
  .choice-toggle,
  .dash-journal-field-filters label,
  #view-calendar > .filter-bar > label:has(input[type="checkbox"]),
  .pm-auto-toggle,
  .pm-search-toggle,
  .mbr-report-types label,
  .leave-asof-toggle,
  .leave-hidden-toggle,
  .ai-search-enable,
  .user-assignee-toggle,
  .leave-calendar-field,
  .bulk-edit-switch,
  .release-edit-reshow,
  .inline-leave-check,
  .plant-match-toolbar > label:has(input[type="checkbox"]),
  .checkbox-label:has(input[type="checkbox"]),
  .flow-filter-options label:has(input[type="checkbox"]),
  .board-notification-options label:has(input[type="checkbox"]),
  .board-rule-enabled,
  .plant-field-tools label:has(input[type="checkbox"]),
  .leave-type-active,
  .user-row-check,
  .bulk-edit-date-grid label > span:has(input[type="checkbox"])
):not(:has(input[type="checkbox"]:disabled)):hover {
  border-color: #86aaa0;
  background: #f4faf8;
}

:is(
  .choice-toggle,
  .dash-journal-field-filters label,
  #view-calendar > .filter-bar > label:has(input[type="checkbox"]),
  .pm-auto-toggle,
  .pm-search-toggle,
  .mbr-report-types label,
  .leave-asof-toggle,
  .leave-hidden-toggle,
  .ai-search-enable,
  .user-assignee-toggle,
  .leave-calendar-field,
  .bulk-edit-switch,
  .release-edit-reshow,
  .inline-leave-check,
  .plant-match-toolbar > label:has(input[type="checkbox"]),
  .checkbox-label:has(input[type="checkbox"]),
  .flow-filter-options label:has(input[type="checkbox"]),
  .board-notification-options label:has(input[type="checkbox"]),
  .board-rule-enabled,
  .plant-field-tools label:has(input[type="checkbox"]),
  .leave-type-active,
  .user-row-check,
  .bulk-edit-date-grid label > span:has(input[type="checkbox"])
):active {
  transform: translateY(1px);
}

/* Saving the preferred calendar value is an explicit one-shot action, so keep it as a real checkbox. */
#quick-modal .link-row > label.calendar-default-option {
  min-height: 28px;
  padding: 2px 3px;
  border: 0;
  border-left: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--muted);
  font-weight: 600;
  transform: none;
}
#quick-modal .link-row > label.calendar-default-option:hover {
  border: 0;
  background: transparent;
  color: var(--text);
}
#quick-modal .link-row > label.calendar-default-option::after { display: none; }
#quick-modal .link-row > label.calendar-default-option input[type="checkbox"] {
  position: static !important;
  width: 16px !important;
  min-width: 16px !important;
  height: 16px !important;
  min-height: 16px !important;
  margin: 0 !important;
  overflow: visible;
  clip: auto;
  clip-path: none;
  accent-color: var(--accent);
}

/* Button-based filters use the same geometry and state contrast. */
:is(.filter-chip, .band-toggle button, .assignee-chip, .cal-haewaram-toggle, .mbr-access-person, #lv-weekend-toggle, .wl-mine-toggle) {
  min-height: 28px;
  padding: 4px 10px 4px 8px;
  border: 1px solid transparent;
  border-left: 3px solid var(--choice-border);
  border-radius: 3px;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.25;
}

.filter-chip:not(.active),
.assignee-chip:not(.active),
.assignee-chip.off,
.cal-haewaram-toggle:not(.active),
.mbr-access-person:not(.selected),
#lv-weekend-toggle:not(.active),
.wl-mine-toggle:not(.active) {
  border-color: transparent;
  border-left-color: var(--choice-border);
  background: var(--choice-bg);
  color: var(--choice-text);
  box-shadow: none;
  opacity: 1;
  text-decoration: none;
}

:is(.filter-chip.active, .assignee-chip.active, .cal-haewaram-toggle.active, .mbr-access-person.selected, #lv-weekend-toggle.active, .wl-mine-toggle.active) {
  border-color: transparent;
  border-left-color: var(--choice-border-active);
  background: var(--choice-bg-active);
  color: var(--choice-text-active);
  box-shadow: none;
}

.band-toggle button {
  border-color: transparent;
  border-left-color: currentColor;
  box-shadow: none;
}

.band-toggle button.off {
  border-color: transparent;
  border-left-color: var(--choice-border);
  background: var(--choice-bg) !important;
  color: var(--choice-text) !important;
  box-shadow: none;
  opacity: 1;
}

:is(.filter-chip, .band-toggle button, .assignee-chip, .cal-haewaram-toggle, .mbr-access-person, #lv-weekend-toggle, .wl-mine-toggle):focus-visible {
  outline: 0;
  box-shadow: 0 0 0 3px var(--choice-focus);
}

/* Record selection stays square, but shares the same color and focus treatment. */
:is(.col-select, .mbr-candidate-check, .flow-card-head, .leave-weekend-row) input[type="checkbox"] {
  width: 17px;
  min-width: 17px;
  height: 17px;
  min-height: 17px;
  accent-color: var(--accent);
}

@media (max-width: 720px) {
  :is(
    .dash-journal-field-filters label,
    #view-calendar > .filter-bar > label:has(input[type="checkbox"]),
    .pm-auto-toggle,
    .pm-search-toggle,
    .mbr-report-types label,
    .leave-asof-toggle,
    .leave-hidden-toggle,
    .ai-search-enable,
    .user-assignee-toggle,
    .leave-calendar-field,
    .bulk-edit-switch,
    .release-edit-reshow,
    .inline-leave-check,
    #quick-modal .link-row > label:has(input[type="checkbox"]),
    .plant-match-toolbar > label:has(input[type="checkbox"]),
    .checkbox-label:has(input[type="checkbox"]),
    .flow-filter-options label:has(input[type="checkbox"]),
    .board-notification-options label:has(input[type="checkbox"]),
    .board-rule-enabled,
    .plant-field-tools label:has(input[type="checkbox"]),
    .leave-type-active,
    .user-row-check,
    .bulk-edit-date-grid label > span:has(input[type="checkbox"]),
    .filter-chip,
    .band-toggle button,
    .assignee-chip,
    .cal-haewaram-toggle,
    .mbr-access-person,
    #lv-weekend-toggle,
    .wl-mine-toggle
  ) {
    min-height: 34px;
    padding: 6px 10px;
  }
}
/* Issue Management V2 ---------------------------------------------------- */
.iv2-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 12px;
}
.iv2-heading h2,
.iv2-detail-head h2 { margin: 2px 0 4px; }
.iv2-heading p,
.iv2-detail-head p { margin: 0; color: #64748b; }
.iv2-heading-actions,
.iv2-detail-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.iv2-notice {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-left: 3px solid #0f766e;
  background: #f0fdfa;
  color: #475569;
  margin-bottom: 12px;
}
.iv2-notice strong { color: #0f5f59; }
.iv2-filter-bar {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) 170px 230px auto;
  gap: 8px;
  align-items: end;
  padding: 10px 0 12px;
  border-bottom: 1px solid #dbe3ea;
}
.iv2-filter-bar label,
.iv2-create-grid label,
.iv2-form-grid label,
.iv2-upload-inline label { display: grid; gap: 4px; min-width: 0; }
.iv2-filter-bar label > span,
.iv2-create-grid label > span,
.iv2-form-grid label > span,
.iv2-upload-inline label > span { color: #64748b; font-size: 12px; }
.iv2-layout {
  display: grid;
  grid-template-columns: minmax(285px, 340px) minmax(0, 1fr);
  gap: 16px;
  min-height: 620px;
  padding-top: 14px;
}
.iv2-list-pane { border-right: 1px solid #dbe3ea; padding-right: 14px; min-width: 0; }
.iv2-list-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.iv2-list-head span { color: #64748b; font-size: 12px; }
.iv2-list { display: grid; gap: 6px; }
.iv2-list-item {
  display: grid;
  gap: 5px;
  width: 100%;
  min-width: 0;
  padding: 10px 11px;
  text-align: left;
  background: #fff;
  border: 1px solid #dbe3ea;
  border-left: 3px solid #cbd5e1;
  border-radius: 6px;
}
.iv2-list-item:hover { border-color: #8bc7bd; background: #f8fffd; }
.iv2-list-item.active { border-color: #0f766e; border-left-color: #0f766e; background: #f0fdfa; }
.iv2-list-item > strong { line-height: 1.35; color: #172033; }
.iv2-list-top,
.iv2-list-meta { display: flex; align-items: center; gap: 7px; }
.iv2-list-top { justify-content: space-between; }
.iv2-list-top b { color: #0f766e; font-size: 12px; }
.iv2-list-top > span { display: inline-flex; align-items: center; gap: 5px; }
.iv2-legacy-chip {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 1px 7px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #475569;
  font-size: 11px;
  font-style: normal;
  white-space: nowrap;
}
.iv2-list-symptom { color: #64748b; font-size: 12px; line-height: 1.35; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.iv2-list-meta { color: #64748b; font-size: 11px; flex-wrap: wrap; }
.iv2-list-meta em { font-style: normal; padding-right: 7px; border-right: 1px solid #dbe3ea; }
.iv2-list-meta time { margin-left: auto; }
.iv2-status {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 1px 7px;
  border-radius: 999px;
  background: #fff7ed;
  color: #b45309;
  font-size: 11px;
  white-space: nowrap;
}
.iv2-status.green { background: #ecfdf5; color: #047857; }
.iv2-status.blue { background: #eff6ff; color: #1d4ed8; }
.iv2-status.muted { background: #f1f5f9; color: #64748b; }
.iv2-detail-pane { min-width: 0; }
.iv2-detail-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid #cbd5e1;
}
.iv2-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 12px 0;
  border: 1px solid #dbe3ea;
}
.iv2-kpis span { display: grid; gap: 2px; padding: 9px 12px; color: #64748b; font-size: 11px; border-right: 1px solid #dbe3ea; }
.iv2-kpis span:last-child { border-right: 0; }
.iv2-kpis b { color: #0f766e; font-size: 16px; }
.iv2-source-card {
  margin-top: 12px;
  padding: 14px;
  border: 1px solid #b8d9d2;
  border-left: 4px solid #0f766e;
  border-radius: 6px;
  background: #f8fffd;
}
.iv2-section { padding: 16px 0; border-bottom: 1px solid #cbd5e1; }
.iv2-section-title,
.iv2-form-head,
.iv2-subhead,
.iv2-fault-head,
.iv2-visit-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.iv2-section-title h3,
.iv2-form-head h4,
.iv2-fault-head h4,
.iv2-visit-head h4 { margin: 2px 0 0; }
.iv2-source-meta,
.iv2-source-foot { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; color: #64748b; font-size: 12px; }
.iv2-source-meta { margin-top: 8px; }
.iv2-source-status { align-self: flex-start; padding: 3px 8px; border-radius: 999px; background: #e2e8f0; color: #475569; font-size: 11px; }
.iv2-source-memo { margin: 10px 0; padding: 10px 12px; background: #fff; border: 1px solid #dbe7e4; border-radius: 5px; line-height: 1.55; }
.iv2-source-memo strong { display: block; margin-bottom: 4px; color: #0f5f59; font-size: 11px; }
.iv2-source-memo p { margin: 0; }
.iv2-source-memo.empty p { color: #94a3b8; }
.iv2-source-links { display: grid; gap: 6px; margin: 10px 0; }
.iv2-source-link { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 9px; border: 1px solid #dbe7e4; border-radius: 5px; background: #fff; }
.iv2-source-link > span { display: grid; gap: 2px; min-width: 0; }
.iv2-source-link b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.iv2-source-link small { color: #64748b; }
.iv2-source-open { flex: 0 0 auto; color: #0f5f59; border-color: #8bc7bd; }
.iv2-source-comments { margin: 10px 0; padding-top: 8px; border-top: 1px solid #dbe7e4; }
.iv2-source-comments > strong { color: #0f5f59; font-size: 11px; }
.iv2-source-comments p { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 8px; margin: 5px 0 0; font-size: 12px; }
.iv2-source-comments p b { color: #475569; }
.iv2-source-missing { margin: 10px 0; }
.iv2-fault-list,
.iv2-visit-timeline { display: grid; gap: 9px; margin-top: 10px; }
.iv2-fault-card,
.iv2-visit-card { padding: 12px 13px; border: 1px solid #dbe3ea; border-left: 3px solid #0f766e; border-radius: 6px; background: #fff; }
.iv2-fault-card.editing { padding: 0; border-color: #0f766e; background: #fbfffe; }
.iv2-inline-fault-form { margin: 0; border: 0; border-radius: 5px; box-shadow: inset 0 0 0 1px #b8d9d2; }
.iv2-visit-card { border-left-color: #2563eb; }
.iv2-fault-head p,
.iv2-visit-head p { margin: 3px 0 0; color: #64748b; font-size: 12px; }
.iv2-sequence { color: #0f766e; font-size: 11px; font-weight: 700; }
.iv2-result { color: #1d4ed8; background: #eff6ff; border-radius: 999px; padding: 3px 8px; font-size: 11px; }
.iv2-record-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 18px;
  margin: 10px 0 0;
}
.iv2-record-grid > div { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 8px; padding: 7px 0; border-top: 1px solid #edf2f7; }
.iv2-record-grid > div.wide { grid-column: 1 / -1; }
.iv2-record-grid dt { color: #64748b; }
.iv2-record-grid dd { margin: 0; line-height: 1.45; }
.iv2-card-actions { display: flex; justify-content: flex-end; gap: 6px; margin-top: 8px; }
.iv2-part-list { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 8px; padding-top: 8px; border-top: 1px solid #edf2f7; }
.iv2-part-list > span { display: inline-flex; gap: 5px; padding: 4px 7px; background: #f8fafc; border: 1px solid #dbe3ea; border-radius: 4px; font-size: 12px; }
.iv2-record-form { margin-top: 12px; padding: 14px; border: 1px solid #8bc7bd; background: #fbfffe; border-radius: 6px; }
.iv2-form-grid,
.iv2-create-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; margin-top: 10px; }
.iv2-create-grid.compact { grid-template-columns: repeat(2, minmax(0, 220px)); }
.iv2-form-grid .wide { grid-column: span 2; }
.iv2-equipment-groups { display: flex; gap: 6px; flex-wrap: wrap; margin: 9px 0; }
.iv2-equipment-groups button { border: 1px solid #b8c4d1; background: #fff; color: #334155; border-radius: 5px; padding: 7px 11px; }
.iv2-equipment-groups button.selected { border-color: #0f766e; background: #e6f7f3; color: #0f5f59; font-weight: 700; }
.iv2-equipment-mode { display: inline-flex; gap: 0; overflow: hidden; margin: 4px 0 6px; border: 1px solid #aebbc7; border-radius: 6px; background: #f6f8fa; }
.iv2-equipment-mode button { min-height: 34px; padding: 6px 13px; border: 0; border-right: 1px solid #cbd5df; border-radius: 0; color: #52616e; background: transparent; }
.iv2-equipment-mode button:last-child { border-right: 0; }
.iv2-equipment-mode button.selected { color: #fff; background: #087f74; font-weight: 800; }
.iv2-current-equipment {
  display: grid;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid #c8d9d5;
  border-left: 4px solid #0b877b;
  border-radius: 6px;
  background: #fbfefd;
}
.iv2-current-equipment.changing { border-color: #8fc7bf; background: #f5fbf9; }
.iv2-current-equipment.empty {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  border-left-color: #94a3b8;
  background: #f8fafc;
}
.iv2-current-equipment.empty > div:first-child { display: grid; gap: 3px; }
.iv2-current-equipment.empty > div:first-child > span { color: #64748b; font-size: 12px; }
.iv2-current-equipment-head,
.iv2-equipment-picker-head,
.iv2-empty-equipment-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.iv2-current-equipment-head > div,
.iv2-equipment-picker-head > div { display: grid; gap: 2px; }
.iv2-current-equipment-head span,
.iv2-equipment-picker-head span { color: #64748b; font-size: 11px; }
.iv2-current-equipment-head strong,
.iv2-equipment-picker-head strong { color: #173b36; }
.iv2-current-equipment > .iv2-selected-asset-specs { margin-top: 0; }
.iv2-current-equipment > .iv2-selected-asset-head { display: none; }
.iv2-current-equipment > .iv2-asset-guide { margin-top: 0; }
.iv2-legacy-equipment-hint { margin: 5px 0 0; color: #7c5b18; font-size: 11px; }
.iv2-equipment-picker {
  margin-top: 10px;
  padding: 12px;
  border: 1px solid #9bc9c2;
  border-radius: 6px;
  background: #fff;
  box-shadow: 0 5px 14px rgba(15, 71, 62, .08);
}
.iv2-equipment-picker[hidden] { display: none !important; }
.iv2-equipment-picker-head { padding-bottom: 9px; border-bottom: 1px solid #e2ebe8; }
.iv2-asset-picker { display: grid; gap: 5px; margin-top: 5px; }
.iv2-selected-asset { margin-top: 9px; padding: 12px 14px; border: 1px solid #cfe1dd; border-left: 4px solid #0b877b; border-radius: 6px; background: #fbfefd; }
.iv2-selected-asset-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.iv2-selected-asset-head > div { display: grid; gap: 2px; }
.iv2-selected-asset-head > div > span { color: #697784; font-size: 11px; font-weight: 700; }
.iv2-selected-asset-head strong { font-size: 15px; }
.iv2-selected-asset-specs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 18px; margin: 10px 0 0; }
.iv2-selected-asset-specs > div { display: grid; grid-template-columns: 68px minmax(0, 1fr); gap: 7px; padding: 7px 0; border-top: 1px solid #e7eeec; }
.iv2-selected-asset-specs dt { color: #6b7884; }
.iv2-selected-asset-specs dd { margin: 0; font-weight: 650; overflow-wrap: anywhere; }
.iv2-asset-guide { margin: 7px 0 0; color: #697784; font-size: 11px; }
.iv2-asset-empty { display: grid; gap: 3px; color: #667480; }
.iv2-asset-empty strong { color: #263442; }
.iv2-new-asset-notice { display: grid; gap: 2px; margin: 5px 0 9px; padding: 9px 11px; border-left: 3px solid #b7791f; background: #fffaf0; }
.iv2-new-asset-notice span { color: #6b7280; font-size: 11px; }
.iv2-fault-checks { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 10px 0; }
.iv2-fault-checks label { display: inline-flex; align-items: center; gap: 5px; padding: 5px 8px; border: 1px solid #dbe3ea; border-radius: 5px; background: #fff; }
.iv2-parts-editor { margin-top: 12px; padding-top: 10px; border-top: 1px solid #dbe3ea; }
.iv2-part-row { display: grid; grid-template-columns: 26px 1.3fr 1fr 75px 60px 100px 32px; gap: 6px; align-items: center; margin-top: 6px; }
.iv2-part-row > span { display: grid; place-items: center; width: 24px; height: 24px; background: #e6f7f3; color: #0f766e; border-radius: 50%; }
.iv2-upload-inline { display: flex; gap: 12px; align-items: end; margin-top: 10px; color: #64748b; }
.iv2-inline-part-editor { margin-top: 10px; padding-top: 10px; border-top: 1px solid #bcd6e7; }
.iv2-inline-part-grid { display: grid; grid-template-columns: 1.2fr 1.2fr 1fr 74px 64px 100px; gap: 7px; margin-top: 8px; }
.iv2-inline-part-grid label { display: grid; gap: 3px; }
.iv2-inline-part-grid label > span { color: #64748b; font-size: 11px; }
.iv2-form-footer,
.iv2-create-footer { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-top: 12px; padding-top: 10px; border-top: 1px solid #dbe3ea; }
.iv2-attachments { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; margin: 10px 0; }
.iv2-attachment { display: flex; align-items: center; gap: 9px; padding: 8px; border: 1px solid #dbe3ea; border-radius: 6px; color: #172033; text-decoration: none; }
.iv2-file-preview { display: grid; place-items: center; width: 52px; height: 52px; overflow: hidden; background: #f1f5f9; color: #64748b; flex: 0 0 auto; }
.iv2-file-preview img { width: 100%; height: 100%; object-fit: cover; }
.iv2-attachment > span:last-child { display: grid; gap: 3px; min-width: 0; }
.iv2-attachment strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.iv2-attachment small { color: #64748b; }
.iv2-upload-row { display: grid; grid-template-columns: 130px minmax(220px, 1fr) auto auto; gap: 8px; align-items: center; }
.iv2-loading { padding: 30px 12px; color: #64748b; text-align: center; }

.iv2-create-box { width: min(1040px, calc(100vw - 36px)); max-height: calc(100vh - 32px); overflow: auto; }
.iv2-create-step { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 11px; padding: 14px 0; border-top: 1px solid #dbe3ea; }
.iv2-create-step.disabled { opacity: .48; pointer-events: none; }
.iv2-step-number { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #dff4ef; color: #0f766e; font-weight: 800; }
.iv2-step-body h3 { margin: 4px 0 7px; }
.iv2-source-search { display: grid; grid-template-columns: 1fr auto; gap: 7px; }
.iv2-source-results { display: grid; gap: 5px; max-height: 260px; overflow: auto; margin-top: 7px; }
.iv2-source-results > button { display: grid; grid-template-columns: 1fr auto; gap: 3px 10px; padding: 9px 10px; text-align: left; border: 1px solid #dbe3ea; background: #fff; border-radius: 5px; }
.iv2-source-results > button:hover { border-color: #0f766e; background: #f8fffd; }
.iv2-source-results > button span { display: flex; gap: 8px; min-width: 0; }
.iv2-source-results > button span b { color: #0f766e; white-space: nowrap; }
.iv2-source-results > button small { color: #64748b; }
.iv2-source-results > button em { grid-row: 1 / 3; grid-column: 2; align-self: center; color: #0f766e; font-style: normal; }
.iv2-source-results > button.registered em { color: #7c3aed; }
.iv2-selected-source { display: grid; gap: 5px; padding: 11px; background: #f0fdfa; border-left: 3px solid #0f766e; }
.iv2-selected-source > span { color: #64748b; }
.iv2-selected-source p { margin: 3px 0 0; padding-top: 7px; border-top: 1px solid #cce8e1; line-height: 1.45; }
.iv2-manufacturer-details { margin-top: 9px; }
.iv2-manufacturer-details summary { color: #475569; cursor: pointer; }

@media (max-width: 980px) {
  .iv2-filter-bar { grid-template-columns: 1fr 1fr; }
  .iv2-layout { grid-template-columns: 1fr; }
  .iv2-list-pane { border-right: 0; border-bottom: 1px solid #dbe3ea; padding: 0 0 12px; }
  .iv2-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .iv2-form-grid,
  .iv2-create-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .iv2-heading,
  .iv2-detail-head { display: grid; }
  .iv2-heading-actions,
  .iv2-detail-actions { width: 100%; }
  .iv2-heading-actions button,
  .iv2-detail-actions select,
  .iv2-detail-actions button { flex: 1; }
  .iv2-notice { align-items: flex-start; flex-direction: column; gap: 3px; }
  .iv2-filter-bar { grid-template-columns: 1fr 1fr; }
  .iv2-filter-bar .iv2-search { grid-column: 1 / -1; }
  .iv2-list { grid-template-columns: 1fr; max-height: 360px; overflow: auto; }
  .iv2-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .iv2-kpis span:nth-child(2) { border-right: 0; }
  .iv2-kpis span:nth-child(-n+2) { border-bottom: 1px solid #dbe3ea; }
  .iv2-record-grid,
  .iv2-form-grid,
  .iv2-create-grid,
  .iv2-create-grid.compact { grid-template-columns: 1fr; }
  .iv2-form-grid .wide { grid-column: auto; }
  .iv2-record-grid > div,
  .iv2-record-grid > div.wide { grid-column: auto; grid-template-columns: 84px minmax(0, 1fr); }
  .iv2-part-row { grid-template-columns: 24px minmax(130px, 1fr) 80px 64px 50px 86px 30px; overflow: auto; }
  .iv2-inline-part-grid { grid-template-columns: 1fr 1fr; }
  .iv2-upload-row { grid-template-columns: 1fr auto; }
  .iv2-upload-row input { grid-column: 1 / -1; }
  .iv2-create-box { width: calc(100vw - 18px); max-height: calc(100vh - 16px); }
  .iv2-create-step { grid-template-columns: 28px minmax(0, 1fr); }
  .iv2-source-results > button { grid-template-columns: 1fr; }
  .iv2-source-results > button span { display: grid; gap: 2px; }
  .iv2-source-results > button em { grid-row: auto; grid-column: auto; }
  .iv2-source-link { align-items: stretch; flex-direction: column; }
  .iv2-source-link b { white-space: normal; }
  .iv2-source-open { width: 100%; }
  .iv2-source-comments p { grid-template-columns: 1fr; gap: 2px; }
  .iv2-form-footer,
  .iv2-create-footer { align-items: stretch; flex-direction: column; }
}

/* V2 prototype final cascade. Keep this after the legacy preview styles. */
#view-casesv2 { padding: 18px 20px 40px; }
#view-casesv2 .iv2-screen[hidden] { display: none !important; }
#view-casesv2 #iv2-list-empty[hidden] { display: none !important; }
#view-casesv2 .iv2-heading { align-items: flex-end; margin-bottom: 14px; }
#view-casesv2 .iv2-list-filters { grid-template-columns: minmax(260px, 1.7fr) repeat(3, minmax(135px, .55fr)) auto; gap: 8px; padding: 11px; border: 1px solid #d5dde5; border-radius: 6px; background: #fff; }
#view-casesv2 .iv2-list-filters button { align-self: end; }
#view-casesv2 .iv2-source-picker,
#view-casesv2 .iv2-create-step,
#view-casesv2 .iv2-panel,
#view-casesv2 .iv2-inline-editor { display: block; margin-bottom: 12px; padding: 0; border: 1px solid #d5dde5; border-radius: 6px; background: #fff; }
#view-casesv2 .iv2-create-step.disabled { opacity: .48; pointer-events: none; }
#view-casesv2 .iv2-create-step[hidden],
#view-casesv2 .iv2-delete-confirm[hidden] { display: none !important; }

#view-casesv2 .iv2-delete-confirm {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 12px;
  padding: 12px 14px;
  border: 1px solid #efb5a8;
  background: #fff8f6;
}

#view-casesv2 .iv2-delete-confirm > div {
  display: flex;
  align-items: center;
  gap: 10px;
}

#view-casesv2 .iv2-delete-confirm span {
  color: var(--muted);
  font-size: 12px;
}

@media (max-width: 720px) {
  #view-casesv2 .iv2-delete-confirm,
  #view-casesv2 .iv2-delete-confirm > div {
    align-items: stretch;
    flex-direction: column;
  }
}
#view-casesv2 .iv2-source-picker.selected .iv2-step-head,
#view-casesv2 .iv2-source-picker.selected .iv2-source-search,
#view-casesv2 .iv2-source-picker.selected .iv2-source-results { display: none; }
#view-casesv2 .iv2-source-picker.selected { border-color: #a8cfc9; }
#view-casesv2 .iv2-step-head,
#view-casesv2 .iv2-editor-head,
#view-casesv2 .iv2-panel-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 13px; border-bottom: 1px solid #e1e7ec; background: #f8fafb; }
#view-casesv2 .iv2-step-head { justify-content: flex-start; }
#view-casesv2 .iv2-step-body { padding: 13px; }
#view-casesv2 .iv2-source-search { display: flex; gap: 8px; padding: 12px 13px 0; }
#view-casesv2 .iv2-source-results { display: grid; gap: 7px; max-height: 360px; margin: 0; padding: 12px 13px; overflow: auto; }
#view-casesv2 .iv2-selected-source { display: block; padding: 13px; border: 0; background: transparent; }
#view-casesv2 .iv2-selected-source[hidden] { display: none; }
#view-casesv2 .iv2-source-card { display: grid; grid-template-columns: 110px minmax(0, 1fr) auto; gap: 13px; align-items: start; margin: 0; padding: 12px; background: #fff; }
#view-casesv2 .iv2-source-card.selected { border-color: #9accc5; background: #f2faf8; }
#view-casesv2 .iv2-source-memo { margin: 8px 0 0; padding: 8px 10px; }
#view-casesv2 .iv2-create-grid,
#view-casesv2 .iv2-form-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; margin-top: 10px; }
#view-casesv2 .iv2-create-grid label.full,
#view-casesv2 .iv2-form-grid label.full { grid-column: 1 / -1; }
#view-casesv2 .iv2-detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 12px; padding: 3px 0 13px; }
#view-casesv2 .iv2-fault-list { display: grid; gap: 10px; margin-top: 10px; }
#view-casesv2 .iv2-fault-card { display: grid; grid-template-columns: 74px minmax(0, 1fr); padding: 0; overflow: hidden; border-left-width: 4px; }
#view-casesv2 .iv2-fault-card.editing,
#view-casesv2 .iv2-visit-card.editing { display: block; grid-template-columns: none; width: 100%; padding: 0; overflow: hidden; }
#view-casesv2 .iv2-fault-card.editing > .iv2-inline-editor,
#view-casesv2 .iv2-visit-card.editing > .iv2-inline-editor { width: 100%; margin: 0; border: 0; }
#view-casesv2 .iv2-fault-wizard-nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 12px; border: 1px solid #cfd9e1; border-radius: 6px; overflow: hidden; background: #f6f8fa; }
#view-casesv2 .iv2-fault-wizard-nav button { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; align-items: center; gap: 1px 8px; min-height: 58px; padding: 8px 12px; border: 0; border-right: 1px solid #dbe3e9; border-radius: 0; color: #52616e; background: transparent; text-align: left; }
#view-casesv2 .iv2-fault-wizard-nav button:last-child { border-right: 0; }
#view-casesv2 .iv2-fault-wizard-nav button b { grid-row: 1 / 3; display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; color: #5d6a75; background: #e6ebef; }
#view-casesv2 .iv2-fault-wizard-nav button span { font-weight: 850; }
#view-casesv2 .iv2-fault-wizard-nav button small { color: #7b8791; }
#view-casesv2 .iv2-fault-wizard-nav button.done b { color: #08756c; background: #dff3ef; }
#view-casesv2 .iv2-fault-wizard-nav button.current { color: #fff; background: #087f74; }
#view-casesv2 .iv2-fault-wizard-nav button.current b { color: #087f74; background: #fff; }
#view-casesv2 .iv2-fault-wizard-nav button.current small { color: #d7f0ec; }
#view-casesv2 .iv2-fault-wizard [data-iv2-fault-pane][hidden] { display: none !important; }
#view-casesv2 .iv2-wizard-actions { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 0 12px 12px; }
#view-casesv2 .iv2-wizard-actions > span { color: #667480; font-size: 12px; }
#view-casesv2 .iv2-wizard-actions > div { display: flex; gap: 7px; justify-content: flex-end; }
#view-casesv2 .iv2-fault-index { display: grid; }
#view-casesv2 .iv2-fault-content { padding: 12px 14px; }
#view-casesv2 .iv2-fault-head { display: flex; }
#view-casesv2 .iv2-visit-timeline { position: relative; display: grid; gap: 10px; margin: 10px 0 0 10px; padding-left: 26px; }
#view-casesv2 .iv2-visit-card { position: relative; display: grid; grid-template-columns: 105px minmax(0, 1fr) 130px; gap: 13px; padding: 13px; border-left: 1px solid #dbe3ea; }
#view-casesv2 .iv2-inline-editor { overflow: hidden; border-color: #8fc7bf; background: #fbfffe; }
#view-casesv2 .iv2-form-section { margin: 12px; padding: 12px; }
#view-casesv2 .iv2-part-row { grid-template-columns: minmax(200px, 1fr) 80px 70px 130px auto; }
#view-casesv2 .iv2-part-inline-editor { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(170px, .9fr) minmax(230px, 1.4fr) 90px 80px 130px auto; gap: 8px; align-items: end; width: 100%; margin-top: 12px; padding: 12px; border: 1px solid #d8e2e8; border-radius: 5px; background: #f8fbfb; }
#view-casesv2 .iv2-part-inline-editor .iv2-part-editor-title { grid-column: 1 / -1; display: flex; align-items: baseline; gap: 10px; padding-bottom: 3px; }
#view-casesv2 .iv2-part-inline-editor .iv2-part-editor-title strong { white-space: nowrap; font-size: 14px; }
#view-casesv2 .iv2-part-inline-editor .iv2-part-editor-title small { color: #6d7a84; }
#view-casesv2 .iv2-part-inline-editor label { display: grid; min-width: 0; gap: 4px; }
#view-casesv2 .iv2-part-inline-editor label > span { color: #64727d; font-size: 11px; font-weight: 700; }
#view-casesv2 .iv2-part-inline-editor input,
#view-casesv2 .iv2-part-inline-editor select { width: 100%; min-width: 0; }
#view-casesv2 .iv2-part-editor-actions { display: flex; align-items: center; gap: 6px; }
#view-casesv2 .iv2-part-editor-actions button { min-width: 52px; white-space: nowrap; }
#view-casesv2 .iv2-form-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 12px 12px; }
#view-casesv2 .iv2-create-footer { padding: 12px 0 0; }

/* 이슈 생성은 원본 요약 -> 기자재 확정 -> 현상 입력 순서로만 진행한다. */
#view-casesv2 .iv2-create-targets { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 10px; padding: 10px 12px; border: 1px solid #cfe0dc; border-left: 4px solid #0b877b; border-radius: 5px; background: #f7fbfa; }
#view-casesv2 .iv2-create-targets[hidden] { display: none !important; }
#view-casesv2 .iv2-create-targets > div { display: grid; min-width: 0; gap: 2px; }
#view-casesv2 .iv2-create-targets > div > span { color: #08756c; font-size: 11px; font-weight: 850; }
#view-casesv2 .iv2-create-targets strong { font-size: 15px; }
#view-casesv2 .iv2-create-targets small { color: #657580; overflow-wrap: anywhere; }
#view-casesv2 .iv2-source-card.selected.compact { grid-template-columns: 92px minmax(0, 1fr) auto; align-items: center; padding: 9px 11px; }
#view-casesv2 .iv2-source-card.selected.compact .iv2-source-main { display: grid; grid-template-columns: minmax(220px, .8fr) minmax(260px, 1.2fr); align-items: center; gap: 12px; }
#view-casesv2 .iv2-source-card.selected.compact .iv2-source-main p { margin: 0; }
#view-casesv2 .iv2-create-equipment-chooser { display: grid; gap: 10px; margin-top: 10px; }
#view-casesv2 .iv2-create-equipment-guide { display: grid; gap: 3px; padding: 10px 12px; border-left: 3px solid #7aa9a3; background: #f5f9f8; }
#view-casesv2 .iv2-create-equipment-guide span,
#view-casesv2 .iv2-create-new-asset-head span,
#view-casesv2 .iv2-create-new-asset-footer span { color: #687681; font-size: 12px; }
#view-casesv2 .iv2-create-asset-list { display: grid; gap: 7px; }
#view-casesv2 .iv2-create-asset-search { display: flex; }
#view-casesv2 .iv2-create-asset-search[hidden] { display: none !important; }
#view-casesv2 .iv2-create-asset-search input { width: min(100%, 620px); }
#view-casesv2 .iv2-create-asset-option { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; min-height: 54px; padding: 9px 12px; border: 1px solid #ccd8df; border-radius: 5px; background: #fff; text-align: left; }
#view-casesv2 .iv2-create-asset-option:hover { border-color: #168d82; background: #f4fbf9; }
#view-casesv2 .iv2-create-asset-option > span { display: grid; gap: 3px; min-width: 0; }
#view-casesv2 .iv2-create-asset-option strong { color: #173b36; font-size: 14px; }
#view-casesv2 .iv2-create-asset-option small { color: #6b7884; overflow-wrap: anywhere; }
#view-casesv2 .iv2-create-asset-option .iv2-asset-plant { color: #08756c; font-weight: 800; }
#view-casesv2 .iv2-create-asset-option b { flex: 0 0 auto; color: #087f74; }
#view-casesv2 .iv2-create-assets-more { padding: 9px 12px; color: #62727d; font-size: 12px; text-align: center; }
#view-casesv2 .iv2-create-assets-empty { display: grid; gap: 3px; padding: 14px; border: 1px dashed #c6d2da; border-radius: 5px; background: #fafcfd; }
#view-casesv2 .iv2-create-assets-empty span { color: #6b7884; font-size: 12px; }
#view-casesv2 .iv2-create-equipment-actions { display: flex; justify-content: flex-start; }
#view-casesv2 .iv2-create-new-asset { margin-top: 10px; padding: 12px; border: 1px solid #91c6be; border-radius: 6px; background: #fbfffe; }
#view-casesv2 .iv2-create-new-asset[hidden],
#view-casesv2 .iv2-create-equipment-confirmed[hidden],
#view-casesv2 .iv2-create-equipment-guide[hidden],
#view-casesv2 .iv2-create-equipment-actions[hidden] { display: none !important; }
#view-casesv2 .iv2-create-new-asset-head,
#view-casesv2 .iv2-create-new-asset-footer,
#view-casesv2 .iv2-create-equipment-confirmed-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
#view-casesv2 .iv2-create-new-asset-head > div { display: grid; gap: 2px; }
#view-casesv2 .iv2-create-new-asset-footer { margin-top: 12px; padding-top: 10px; border-top: 1px solid #dce7e4; }
#view-casesv2 .iv2-create-equipment-confirmed { display: grid; gap: 10px; margin-top: 10px; }
#view-casesv2 .iv2-create-selection-label { display: flex; align-items: baseline; gap: 10px; margin-bottom: 5px; }
#view-casesv2 .iv2-create-selection-label span { color: #087f74; font-size: 12px; font-weight: 850; }
#view-casesv2 .iv2-create-selection-list { display: grid; gap: 7px; }
#view-casesv2 .iv2-create-selection-list article { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border: 1px solid #cfe1dd; border-left: 4px solid #0b877b; border-radius: 5px; background: #fbfefd; }
#view-casesv2 .iv2-create-selection-list article > div { display: grid; gap: 2px; min-width: 0; }
#view-casesv2 .iv2-create-selection-list article span,
#view-casesv2 .iv2-create-selection-list article small { color: #697784; font-size: 11px; }
#view-casesv2 .iv2-create-selection-list article strong { font-size: 14px; }
#view-casesv2 .iv2-create-selection-list article .iv2-selection-plant { color: #08756c; font-weight: 800; }
#view-casesv2 .iv2-create-equipment-confirmed-actions { justify-content: flex-end; }
#view-casesv2 .iv2-fault-plant { display: block; width: fit-content; margin-bottom: 4px; padding: 3px 7px; border-radius: 4px; background: #e8f6f3; color: #08756c; font-size: 12px; font-weight: 850; }

@media (max-width: 900px) {
  #view-casesv2 .iv2-list-filters { grid-template-columns: 1fr 1fr; }
  #view-casesv2 .iv2-list-filters .iv2-search { grid-column: 1 / -1; }
  #view-casesv2 .iv2-list-filters button { grid-column: 1 / -1; }
  #view-casesv2 .iv2-visit-card { grid-template-columns: 95px minmax(0, 1fr); }
  #view-casesv2 .iv2-visit-result { grid-column: 2; }
  #view-casesv2 .iv2-part-inline-editor { grid-template-columns: 1fr 1fr 110px; }
  #view-casesv2 .iv2-part-inline-editor .part-name { grid-column: span 2; }
  #view-casesv2 .iv2-part-editor-actions { align-self: end; }
}

@media (max-width: 720px) {
  #view-casesv2 { padding: 10px; }
  #view-casesv2 .iv2-list-filters { grid-template-columns: 1fr; }
  #view-casesv2 .iv2-list-filters .iv2-search,
  #view-casesv2 .iv2-list-filters button { grid-column: auto; }
  #view-casesv2 .iv2-source-card { grid-template-columns: 1fr; }
  #view-casesv2 .iv2-source-search { align-items: stretch; flex-direction: column; }
  #view-casesv2 .iv2-detail-head { display: grid; }
  #view-casesv2 .iv2-fault-card { grid-template-columns: 1fr; }
  #view-casesv2 .iv2-visit-timeline { margin-left: 0; padding-left: 18px; }
  #view-casesv2 .iv2-visit-card { grid-template-columns: 1fr; }
  #view-casesv2 .iv2-visit-result { grid-column: 1; }
  #view-casesv2 .iv2-form-grid,
  #view-casesv2 .iv2-create-grid { grid-template-columns: 1fr; }
  #view-casesv2 .iv2-form-grid .wide,
  #view-casesv2 .iv2-form-grid .full,
  #view-casesv2 .iv2-create-grid .wide,
  #view-casesv2 .iv2-create-grid .full { grid-column: auto; }
  #view-casesv2 .iv2-part-row { grid-template-columns: 1fr 90px; }
  #view-casesv2 .iv2-part-inline-editor { grid-template-columns: 1fr 1fr; }
  #view-casesv2 .iv2-part-inline-editor .iv2-part-editor-title,
  #view-casesv2 .iv2-part-inline-editor label,
  #view-casesv2 .iv2-part-inline-editor .part-name,
  #view-casesv2 .iv2-part-editor-actions { grid-column: 1 / -1; }
  #view-casesv2 .iv2-part-inline-editor .part-quantity,
  #view-casesv2 .iv2-part-inline-editor .part-unit { grid-column: auto; }
  #view-casesv2 .iv2-part-inline-editor .part-amount { grid-column: 1 / -1; }
  #view-casesv2 .iv2-part-editor-actions { justify-content: flex-end; }
  #view-casesv2 .iv2-form-actions { align-items: stretch; flex-direction: column; }
  #view-casesv2 .iv2-source-card.selected.compact { grid-template-columns: 1fr; }
  #view-casesv2 .iv2-source-card.selected.compact .iv2-source-main { grid-template-columns: 1fr; gap: 3px; }
  #view-casesv2 .iv2-create-targets { align-items: flex-start; flex-direction: column; }
  #view-casesv2 .iv2-create-new-asset-head,
  #view-casesv2 .iv2-create-new-asset-footer,
  #view-casesv2 .iv2-create-equipment-confirmed-actions { align-items: stretch; flex-direction: column; }
  #view-casesv2 .iv2-create-new-asset-head button,
  #view-casesv2 .iv2-create-new-asset-footer button,
  #view-casesv2 .iv2-create-equipment-confirmed-actions button { width: 100%; }
  #view-casesv2 .iv2-equipment-mode { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  #view-casesv2 .iv2-current-equipment.empty { grid-template-columns: 1fr; }
  #view-casesv2 .iv2-current-equipment-head,
  #view-casesv2 .iv2-equipment-picker-head,
  #view-casesv2 .iv2-empty-equipment-actions { align-items: stretch; flex-direction: column; }
  #view-casesv2 .iv2-current-equipment-head button,
  #view-casesv2 .iv2-equipment-picker-head button,
  #view-casesv2 .iv2-empty-equipment-actions button { width: 100%; }
  #view-casesv2 .iv2-selected-asset-specs { grid-template-columns: 1fr; }
  #view-casesv2 .iv2-fault-wizard-nav { margin: 8px; }
  #view-casesv2 .iv2-fault-wizard-nav button { grid-template-columns: 1fr; grid-template-rows: auto auto; justify-items: center; min-height: 66px; padding: 7px 4px; text-align: center; }
  #view-casesv2 .iv2-fault-wizard-nav button b { grid-row: auto; width: 22px; height: 22px; }
  #view-casesv2 .iv2-fault-wizard-nav button small { display: none; }
  #view-casesv2 .iv2-wizard-actions { grid-template-columns: 1fr; align-items: stretch; padding: 0 8px 10px; }
  #view-casesv2 .iv2-wizard-actions > div { display: grid; grid-template-columns: 1fr; }
  #view-casesv2 .iv2-wizard-actions button { width: 100%; }
  #view-casesv2 .iv2-table-wrap { overflow: visible; border: 0; background: transparent; }
  #view-casesv2 .iv2-table,
  #view-casesv2 .iv2-table tbody,
  #view-casesv2 .iv2-table tr,
  #view-casesv2 .iv2-table td { display: block; width: 100%; }
  #view-casesv2 .iv2-table { min-width: 0; border-collapse: separate; }
  #view-casesv2 .iv2-table colgroup,
  #view-casesv2 .iv2-table thead { display: none; }
  #view-casesv2 .iv2-table tbody { display: grid; gap: 9px; }
  #view-casesv2 .iv2-table tr { overflow: hidden; border: 1px solid #d5dde5; border-left: 4px solid #0b877b; border-radius: 6px; background: #fff; box-shadow: 0 1px 2px rgba(20, 48, 43, .04); }
  #view-casesv2 .iv2-table td { position: relative; min-height: 31px; padding: 7px 10px 7px 92px; border: 0; border-bottom: 1px solid #edf1f3; white-space: normal; }
  #view-casesv2 .iv2-table td:last-child { border-bottom: 0; }
  #view-casesv2 .iv2-table td::after { position: absolute; top: 8px; left: 10px; width: 72px; color: #6c7883; font-size: 10px; font-weight: 800; }
  #view-casesv2 .iv2-table td:nth-child(1) { padding: 12px 11px; background: #f7fbfa; }
  #view-casesv2 .iv2-table td:nth-child(1)::after { content: none; }
  #view-casesv2 .iv2-table td:nth-child(2)::after { content: "기자재"; }
  #view-casesv2 .iv2-table td:nth-child(3)::after { content: "고장 현상"; }
  #view-casesv2 .iv2-table td:nth-child(4)::after { content: "A/S 이력"; }
  #view-casesv2 .iv2-table td:nth-child(5)::after { content: "최근 활동"; }
  #view-casesv2 .iv2-table td:nth-child(6)::after { content: "상태"; }
  #view-casesv2 .iv2-table td:nth-child(7)::after { content: "비용"; }
  #view-casesv2 .iv2-table .iv2-row-title { margin-top: 3px; font-size: 14px; }
  #view-casesv2 .iv2-list-foot { padding-top: 8px; text-align: right; }
}

/* 업무일지 포함 기준: 기간과 접수일만 빠르게 고르는 두 칸형 컨트롤. */
.dash-journal-field-filters {
  gap: 0;
  padding: 3px;
  border-color: #c9d7d3;
  background: #f4f7f6;
}
.dash-journal-field-filters > span {
  padding: 0 8px 0 5px;
  color: #65736e;
  font-weight: 700;
}
.dash-journal-field-filters label {
  min-width: 60px;
  min-height: 28px;
  justify-content: center;
  gap: 0;
  padding: 4px 12px;
  border: 0;
  border-left: 1px solid #d5dfdc;
  border-radius: 0;
  background: transparent;
  color: #56635f;
  box-shadow: none;
  font-weight: 750;
}
.dash-journal-field-filters label:last-child { border-radius: 0 4px 4px 0; }
.dash-journal-field-filters label:has(input:checked) {
  border-left-color: #0f766e;
  background: #0f766e;
  color: #fff;
}
.dash-journal-field-filters label:hover { background: #e6efec; }
.dash-journal-field-filters label:has(input:checked):hover { background: #0b685f; }
.dash-journal-field-filters input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.dash-journal-field-filters label::after { display: none !important; content: none !important; }
.dash-journal-field-filters label:focus-within { box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .75); }
.admin-module-view {
  padding: 18px 20px 28px;
}

.admin-module-head,
.raw-section-head,
.raw-status-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.admin-module-head {
  margin-bottom: 14px;
}

.admin-module-actions,
.raw-module-tabs {
  display: flex;
  align-items: center;
  gap: 6px;
}

.raw-module-tabs {
  border-bottom: 1px solid #cbd5e1;
}

.raw-module-tabs button {
  border: 0;
  border-bottom: 3px solid transparent;
  border-radius: 0;
  background: transparent;
  color: #5f6e7d;
  font-weight: 800;
}

.raw-module-tabs button.active {
  border-bottom-color: #0f8a78;
  color: #087f73;
  background: #f3fbf9;
}

.raw-engine-panel {
  height: calc(100vh - 168px);
  min-height: 640px;
  background: #f4f7f8;
}

#raw-engine-frame {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  background: #f4f7f8;
}

.raw-integration-panel {
  padding-top: 12px;
}

.admin-module-head h2,
.raw-section-head h3,
.raw-warning-section h3 {
  margin: 0;
}

.admin-module-head .eyebrow {
  margin: 0 0 3px;
  color: #087f73;
  font-size: 11px;
  font-weight: 800;
}

.admin-module-head .muted {
  margin: 4px 0 0;
}

.raw-status-banner {
  min-height: 44px;
  padding: 9px 13px;
  border: 1px solid #cbd5e1;
  border-left: 4px solid #64748b;
  background: #fff;
}

.raw-status-banner.healthy {
  border-left-color: #0f8a78;
  background: #f3fbf9;
}

.raw-status-banner.attention {
  border-left-color: #c47b16;
  background: #fff9ee;
}

.raw-status-banner span {
  color: #64748b;
  font-size: 12px;
}

.raw-metric-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin: 10px 0;
}

.raw-metric {
  min-height: 84px;
  padding: 12px 14px;
  border: 1px solid #d8e0e8;
  border-top: 3px solid #64748b;
  background: #fff;
}

.raw-metric.green { border-top-color: #0f8a78; }
.raw-metric.amber { border-top-color: #c47b16; }
.raw-metric.red { border-top-color: #c2413b; }
.raw-metric.blue { border-top-color: #2563b4; }
.raw-metric span,
.raw-metric small { display: block; color: #64748b; }
.raw-metric strong { display: block; margin: 5px 0 3px; font-size: 20px; }

.raw-status-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
  gap: 10px;
}

.raw-status-section,
.raw-warning-section {
  border-top: 1px solid #cbd5e1;
  background: #fff;
  padding: 12px 0 4px;
}

.raw-section-head {
  padding: 0 4px 9px;
}

.raw-integration-section {
  margin: 2px 0 10px;
}

.raw-integration-source {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  padding: 0 4px 10px;
}

.raw-integration-source > span {
  min-width: 0;
  padding: 7px 9px;
  background: #f7f9fb;
  color: #5f6b79;
  font-size: 11px;
}

.raw-integration-source > span > span {
  display: block;
  overflow: hidden;
  margin-top: 3px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.raw-integration-list {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  border-top: 1px solid #e7ecf1;
  border-left: 1px solid #e7ecf1;
}

.raw-integration-field {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  min-height: 36px;
  padding: 7px 8px;
  border-right: 1px solid #e7ecf1;
  border-bottom: 1px solid #e7ecf1;
  background: #fff;
  font-size: 11px;
}

.raw-integration-field strong {
  flex: 0 0 auto;
  color: #0f7f70;
}

.raw-integration-field.mismatched {
  background: #fff9ee;
}

.raw-integration-field.mismatched strong {
  color: #a75b0c;
}

.raw-source-row {
  display: grid;
  grid-template-columns: 10px minmax(140px, .7fr) 80px minmax(160px, 1.3fr);
  align-items: center;
  gap: 8px;
  min-height: 35px;
  padding: 6px 8px;
  border-top: 1px solid #e7ecf1;
}

.raw-source-row small {
  overflow: hidden;
  color: #64748b;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.raw-state-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #94a3b8;
}
.raw-state-dot.healthy { background: #0f8a78; }
.raw-state-dot.attention { background: #d0831f; }

.raw-file-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 35px;
  padding: 6px 8px;
  border-top: 1px solid #e7ecf1;
}

.raw-file-row span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.raw-warning-section {
  margin-top: 10px;
  border-left: 4px solid #c47b16;
  padding: 12px 14px;
  background: #fff9ee;
}

.raw-warning-section p {
  margin: 7px 0 0;
  color: #7c4b10;
}

.generation-module-view {
  height: calc(100vh - 61px);
  min-height: 640px;
  padding: 0;
  overflow: hidden;
}

/* 내장 운영 화면은 바깥 페이지와 iframe이 이중으로 스크롤되지 않게 한 화면을 사용합니다. */
body.embedded-module-active {
  height: 100dvh;
  overflow: hidden;
}

body.embedded-module-active main {
  height: calc(100dvh - var(--topbar-sticky-offset));
  min-height: 0;
  padding: 0;
  overflow: hidden;
}

body.embedded-module-active .view.active.admin-module-view {
  height: 100%;
  min-height: 0;
}

#view-rawdata.raw-engine-active {
  display: flex;
  flex-direction: column;
  padding: 0;
}

#view-rawdata.raw-embedded-view {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  padding: 0;
  overflow: hidden;
}

#view-rawdata.raw-embedded-view .raw-engine-panel {
  flex: 1 1 auto;
  height: auto;
  min-height: 0;
  overflow: hidden;
}

#view-rawdata.raw-engine-active .admin-module-head {
  flex: 0 0 auto;
  min-height: 42px;
  margin: 0;
  padding: 6px 14px;
  border-bottom: 1px solid #d8e0e8;
  background: #fff;
}

#view-rawdata.raw-engine-active .admin-module-head > div:first-child {
  display: none;
}

#view-rawdata.raw-engine-active .raw-module-tabs {
  flex: 0 0 auto;
  min-height: 34px;
  padding: 0 12px;
  background: #fff;
}

#view-rawdata.raw-engine-active .raw-engine-panel {
  flex: 1 1 auto;
  height: auto;
  min-height: 0;
  overflow: hidden;
}

body.embedded-module-active .generation-module-view {
  height: 100%;
  min-height: 0;
}

#generation-frame {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  background: #f4f7f8;
}

/* Embedded modules must never remain in the document flow after another view opens. */
#view-rawdata:not(.active),
#view-generation:not(.active) {
  display: none !important;
  visibility: hidden;
  pointer-events: none;
}

.emergency-mode-banner {
  position: sticky;
  top: var(--topbar-sticky-offset);
  z-index: 47;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 40px;
  padding: 8px 18px;
  border-bottom: 1px solid #d29b2b;
  background: #fff5cc;
  color: #653f00;
}

.emergency-mode-banner[hidden] { display: none !important; }

.resilience-card { border-left: 4px solid #167c70; }
.resilience-status-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}
.resilience-status-grid > div {
  display: grid;
  gap: 4px;
  min-height: 78px;
  padding: 12px;
  border: 1px solid #dce5e4;
  border-radius: 6px;
  background: #f8fbfa;
}
.resilience-status-grid span,
.resilience-status-grid small { color: #667570; }
.resilience-status-grid strong { font-size: 16px; color: #173b36; }
.resilience-message { margin: 10px 0 0; color: #667570; }
.resilience-message.error { color: #a33225; }
.emergency-merge-panel { margin-top: 12px; border-top: 1px solid #dce5e4; padding-top: 10px; }
.emergency-merge-panel summary { cursor: pointer; font-weight: 700; color: #244b45; }
.emergency-package-list { display: grid; gap: 6px; margin-top: 10px; }
.emergency-package-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid #dce5e4;
  border-radius: 6px;
  background: #fff;
}
.emergency-package-row span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.emergency-merge-actions { display: grid; grid-template-columns: minmax(180px, .8fr) minmax(180px, 1fr) auto; gap: 8px; margin-top: 10px; }
.emergency-preview { margin-top: 10px; color: #4f625e; }

@media (max-width: 900px) {
  .raw-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .raw-status-layout { grid-template-columns: 1fr; }
  .raw-integration-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .emergency-mode-banner { align-items: flex-start; flex-direction: column; gap: 2px; }
  .resilience-status-grid { grid-template-columns: 1fr 1fr; }
  .emergency-package-row, .emergency-merge-actions { grid-template-columns: 1fr; }
  .admin-module-view { padding: 12px; }
  .admin-module-head, .raw-status-banner { align-items: flex-start; flex-direction: column; }
  .raw-metric-grid { grid-template-columns: 1fr 1fr; }
  .raw-source-row { grid-template-columns: 10px 1fr 72px; }
  .raw-source-row small { grid-column: 2 / -1; }
  .raw-integration-source { grid-template-columns: 1fr; }
  .raw-integration-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .generation-module-view { height: calc(100vh - 54px); padding: 0; }
  .admin-module-actions { align-items: stretch; flex-direction: column; width: 100%; }
  .raw-engine-panel { height: calc(100vh - 220px); min-height: 560px; }
  #view-rawdata.raw-engine-active .admin-module-head { min-height: 38px; padding: 4px 8px; }
  #view-rawdata.raw-engine-active .admin-module-actions {
    display: grid; grid-template-columns: 1fr 1fr; gap: 6px; width: 100%;
  }
  #view-rawdata.raw-engine-active .admin-module-actions button { min-height: 34px; padding: 5px 7px; font-size: 11px; }
  #view-rawdata.raw-engine-active .raw-module-tabs { min-height: 34px; padding-inline: 8px; overflow-x: auto; }
  #view-rawdata.raw-engine-active .raw-engine-panel { flex: 1 1 auto; height: auto; min-height: 0; }
  body.embedded-module-active main { height: calc(100dvh - var(--topbar-sticky-offset)); }
  body.embedded-module-active.mobile-topbar-hidden header.topbar {
    position: fixed;
    inset: 0 0 auto 0;
    width: 100%;
    margin: 0;
  }
  body.embedded-module-active.mobile-topbar-hidden main {
    height: 100dvh;
  }
  #raw-engine-frame, #generation-frame { min-width: 0; }
}

/* Daily monitoring report */
.monitoring-home-entry {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  width: 100%;
  min-height: 66px;
  margin: 12px 0 16px;
  padding: 10px 14px;
  border: 1px solid #c8d9d5;
  border-left: 4px solid #0f7b65;
  border-radius: 6px;
  background: #f8fbfa;
  color: #173832;
  text-align: left;
}
.monitoring-home-entry:hover { border-color: #7fac9f; background: #f1f8f5; }
.monitoring-home-entry > span:nth-child(2) { display: grid; gap: 3px; }
.monitoring-home-entry strong { font-size: 15px; }
.monitoring-home-entry small { color: #687874; font-size: 12px; }
.monitoring-home-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #dcefeb; color: #08715e; font-size: 19px; }
.monitoring-home-arrow { color: #65817a; font-size: 25px; }
.monitoring-view { padding-bottom: 72px; }
.monitoring-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin: 2px 0 10px; }
.monitoring-heading h2 { margin: 2px 0 0; }
.monitoring-heading-actions { display: flex; gap: 7px; }
.monitoring-back { margin-right: 8px; }
.monitoring-command-bar {
  display: grid;
  grid-template-columns: auto minmax(170px, .7fr) minmax(150px, .6fr) auto auto;
  align-items: end;
  gap: 8px;
  padding: 10px;
  border-block: 1px solid #d7e2df;
  background: #f7faf9;
}
.monitoring-date-nav { display: flex; align-items: center; gap: 5px; }
.monitoring-date-nav input { width: 128px; }
.monitoring-compact-field { display: grid; gap: 3px; min-width: 0; }
.monitoring-compact-field > span { color: #64736f; font-size: 10px; font-weight: 750; }
.monitoring-comp-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 9px;
  min-height: 38px;
  padding: 6px 9px;
  border: 1px solid #cfdad7;
  border-radius: 5px;
  background: #fff;
  color: #596965;
}
.monitoring-comp-toggle b { padding: 2px 6px; border-radius: 10px; background: #e7ecea; color: #65736f; font-size: 10px; }
.monitoring-comp-toggle[aria-pressed="true"] { border-color: #3e9784; background: #e9f5f1; color: #075b4c; }
.monitoring-comp-toggle[aria-pressed="true"] b { background: #0f7b65; color: #fff; }
.monitoring-status { align-self: center; padding: 5px 9px; border-radius: 12px; background: #fff2d9; color: #865615; font-size: 11px; font-weight: 750; white-space: nowrap; }
.monitoring-status.completed { background: #dff1eb; color: #08604f; }
.monitoring-status.editing { background: #e8eef6; color: #315b7c; }
.monitoring-view-state { display: flex; align-items: center; gap: 9px; margin: 8px 0; padding: 9px 11px; border-left: 3px solid #2b6d91; background: #f3f7fa; color: #40545f; }
.monitoring-view-state[hidden] { display: none; }
.monitoring-view-state strong { color: #244f6d; font-size: 12px; white-space: nowrap; }
.monitoring-view-state span { font-size: 11px; }
.monitoring-diff { display: flex; align-items: stretch; margin: 8px 0 10px; border-block: 1px solid #e1e8e6; }
.monitoring-diff-item { display: flex; align-items: baseline; gap: 7px; min-width: 92px; padding: 7px 12px; border-right: 1px solid #e1e8e6; }
.monitoring-diff-item b { color: #64736f; font-size: 11px; }
.monitoring-diff-item strong { color: #195f91; font-size: 17px; }
.monitoring-diff-item.closed strong { color: #8c5550; }
.monitoring-authoring-tools { display: flex; align-items: center; gap: 7px; margin: 8px 0; padding: 7px 0; border-bottom: 1px solid #e0e7e5; }
.monitoring-overall-note { display: grid; grid-template-columns: 92px minmax(0, 1fr); align-items: start; gap: 9px; margin: 8px 0 0; padding: 9px 11px; border: 1px solid #d7e3df; background: #f8fbfa; }
.monitoring-overall-note > span { padding-top: 7px; color: #41534e; font-size: 11px; font-weight: 800; }
.monitoring-overall-note textarea { width: 100%; min-height: 52px; resize: vertical; border-color: #cbd8d4; background: #fff; }
.monitoring-authoring-tools > span { margin-right: auto; color: #65746f; font-size: 11px; font-weight: 750; }
.monitoring-workspace { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 360px); gap: 14px; align-items: start; }
.monitoring-view.is-readonly .monitoring-authoring-tools,
.monitoring-view.is-readonly .monitoring-items { display: none; }
.monitoring-view.is-readonly .monitoring-workspace { grid-template-columns: minmax(0, 1fr); }
.monitoring-view.is-readonly .monitoring-preview { position: static; border-color: #cbd9d5; }
.monitoring-view.is-readonly .monitoring-preview pre { max-height: none; min-height: 240px; font-size: 13px; line-height: 1.68; }
.monitoring-items { display: grid; gap: 9px; min-width: 0; }
.monitoring-plant-block { overflow: visible; border: 1px solid #cfdbd8; border-radius: 6px; background: #fff; }
.monitoring-plant-block-head { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 10px; padding: 9px 11px; border-bottom: 1px solid #dce5e2; background: #f3f7f6; }
.monitoring-plant-step { color: #294a62; font-size: 11px; font-weight: 800; white-space: nowrap; }
.monitoring-plant-picker { min-height: 38px; background: #fff; }
.monitoring-plant-issues { display: grid; }
.monitoring-item { padding: 10px 11px; border: 0; border-bottom: 1px solid #e6ecea; border-radius: 0; background: #fff; }
.monitoring-item:last-child { border-bottom: 0; }
.monitoring-item.search-highlight { outline: 3px solid rgba(32, 139, 116, .24); }
.monitoring-item-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.monitoring-item-head > div { display: flex; align-items: center; gap: 7px; min-width: 0; }
.monitoring-item-head small { color: #73817d; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.monitoring-item-number { display: grid; place-items: center; width: 23px; height: 23px; border-radius: 50%; background: #1d4770; color: #fff; font-size: 11px; font-weight: 800; }
.monitoring-change { padding: 3px 7px; border-radius: 10px; background: #e8f1f8; color: #285f8a; font-size: 10px; font-weight: 800; }
.monitoring-change.closed { background: #f5e8e6; color: #8d4e46; }
.monitoring-item-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(120px, .5fr) minmax(130px, .55fr); gap: 8px; }
.monitoring-item-grid label { display: grid; gap: 3px; min-width: 0; }
.monitoring-item-grid label > span { color: #566762; font-size: 10px; font-weight: 750; }
.monitoring-item-grid label > span small { color: #83908c; font-weight: 500; }
.monitoring-title-field { grid-column: 1; }
.monitoring-comment-field { grid-column: 1 / -1; }
.monitoring-comment-field textarea { min-height: 76px; resize: vertical; }
.monitoring-plant-actions { display: flex; align-items: center; gap: 7px; padding: 8px 11px; border-top: 1px solid #dce5e2; background: #fafcfc; }
.monitoring-next-plant { margin-left: auto; color: #315d80; border-color: #b9cbd9; background: #f3f7fa; }
.monitoring-item-tools { display: flex; align-items: center; gap: 8px; margin-top: 7px; }
.monitoring-item-tools details { position: relative; }
.monitoring-item-tools summary { cursor: pointer; color: #667570; font-size: 11px; }
.monitoring-link-fields { display: grid; grid-template-columns: 1fr .7fr .7fr; gap: 6px; margin-top: 7px; padding: 8px; border: 1px solid #dce5e2; background: #f8faf9; }
.monitoring-link-fields label { display: grid; gap: 3px; }
.monitoring-link-fields span { color: #687773; font-size: 10px; }
.monitoring-resume-results { display: grid; gap: 4px; margin-top: 7px; padding-top: 7px; border-top: 1px solid #e1e8e6; }
.monitoring-resume-results button { display: grid; grid-template-columns: minmax(140px, .8fr) minmax(0, 1.5fr); gap: 8px; padding: 7px 9px; border: 0; border-radius: 3px; background: #f2f7f5; color: #30433d; text-align: left; }
.monitoring-resume-results button:hover { background: #e5f1ed; }
.monitoring-resume-results span { color: #687773; font-size: 11px; }
.monitoring-no-match { margin-top: 7px; }
.monitoring-empty { display: grid; justify-items: start; gap: 5px; min-height: 180px; padding: 32px; border: 1px dashed #cbd9d5; background: #fafcfc; }
.monitoring-empty span { color: #6d7b77; }
.monitoring-empty button { margin-top: 8px; }
.monitoring-preview { position: sticky; top: calc(var(--topbar-sticky-offset, 72px) + 10px); border: 1px solid #d8e1de; background: #fbfcfc; }
.monitoring-preview-head { display: flex; justify-content: space-between; gap: 8px; padding: 9px 11px; border-bottom: 1px solid #dfe7e4; }
.monitoring-preview-head span { color: #77837f; font-size: 10px; }
.monitoring-preview pre { max-height: 62vh; margin: 0; padding: 13px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; font: 12px/1.72 Arial,"Malgun Gothic",sans-serif; }
.monitoring-action-dock { position: sticky; bottom: 8px; z-index: 12; display: flex; align-items: center; justify-content: flex-end; gap: 7px; margin: 12px 0 0 auto; padding: 7px; border: 1px solid #ccd9d5; border-radius: 6px; background: rgba(255,255,255,.96); box-shadow: 0 5px 18px rgba(29,50,44,.12); backdrop-filter: blur(8px); }
.monitoring-save-state { margin-right: auto; color: #687773; font-size: 11px; }
.plant-monitoring-list { display: grid; gap: 7px; }
.plant-monitoring-issue { border-bottom: 1px solid #dce5e2; background: #fff; }
.plant-monitoring-issue summary { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(180px, .8fr) auto; align-items: center; gap: 10px; padding: 10px 8px; cursor: pointer; }
.plant-monitoring-issue summary > span:first-child { display: grid; gap: 2px; }
.plant-monitoring-issue summary small { color: #75827e; }
.plant-monitoring-period { color: #53645f; font-size: 11px; }
.plant-monitoring-history { display: grid; gap: 1px; padding: 0 8px 9px; }
.plant-monitoring-history button { display: grid; grid-template-columns: 92px 70px minmax(0, 1fr) 90px; gap: 8px; align-items: start; padding: 7px; border: 0; border-top: 1px solid #edf1f0; background: #fafcfc; text-align: left; }
.plant-monitoring-history p { margin: 0; white-space: pre-wrap; }

/* Compact MBR workspace and report list */
.mbr-command-bar { display: grid; grid-template-columns: minmax(150px, .55fr) auto auto auto; align-items: end; gap: 10px; margin: 2px 0 10px; padding: 8px 0 10px; border-bottom: 1px solid #d7e1de; }
.mbr-command-title h2 { margin: 1px 0 0; font-size: 20px; }
.mbr-command-bar .mbr-workspace-controls { display: grid; grid-template-columns: 110px minmax(160px, 220px); gap: 6px; }
.mbr-command-bar .mbr-workspace-controls select { min-width: 0; }
.mbr-command-bar .mbr-mode-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 0; padding: 0; border: 0; border-bottom: 1px solid #cfdad6; border-radius: 0; }
.mbr-command-bar .mbr-mode-tabs button { min-height: 38px; padding: 6px 12px; border: 0; border-bottom: 3px solid transparent; border-radius: 0; background: transparent; color: #64716d; white-space: nowrap; }
.mbr-command-bar .mbr-mode-tabs button:hover { background: #f4f7f6; color: #273c36; }
.mbr-command-bar .mbr-mode-tabs button.active { border-bottom-color: #176d5b; background: #f4f8f7; color: #0b594b; }
.mbr-command-bar .mbr-heading-actions { justify-self: end; }
.mbr-report-editor { padding-top: 8px; border-top: 0; }
.mbr-report-editor-head { align-items: center; padding-bottom: 8px; }
.mbr-report-editor-head h2 { font-size: 17px; }
.mbr-report-editor-head p { margin: 1px 0 0; }
.mbr-generation-result { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 10px; border-bottom: 1px solid #cbd7d3; background: #eef8f4; color: #1c5447; }
.mbr-generation-result > div { display: grid; gap: 1px; }
.mbr-generation-result strong { font-size: 12px; }
.mbr-generation-result span, .mbr-generation-result summary { font-size: 11px; }
.mbr-generation-result details { max-width: min(560px, 55%); }
.mbr-generation-result details > div { display: grid; gap: 4px; max-height: 180px; margin-top: 7px; padding: 8px; overflow: auto; border: 1px solid #c8ddd6; background: #fff; color: #475853; }
.mbr-report-summary { grid-template-columns: repeat(5, minmax(0, 1fr)); border-block: 1px solid #cbd7d3; border-inline: 0; background: #f8faf9; box-shadow: inset 0 1px 0 #fff, inset 0 -1px 0 #fff; }
.mbr-summary-filter { position: relative; display: grid; justify-items: start; gap: 2px; min-height: 70px; padding: 10px 12px; border: 0; border-top: 3px solid #76848c; border-right: 1px solid #c6d2ce; border-radius: 0; background: transparent; color: #34423e; text-align: left; }
.mbr-summary-filter:last-child { border-right: 0; }
.mbr-summary-filter::after { content: ""; position: absolute; inset: auto 10px 0; height: 3px; background: transparent; }
.mbr-summary-filter:hover { background: #fff; }
.mbr-summary-filter.active { background: #fff; color: #1c2b27; }
.mbr-summary-filter.active::after { background: currentColor; opacity: .55; }
.mbr-summary-filter.mbr-summary-all { border-top-color: #687984; color: #42545e; }
.mbr-summary-filter.mbr-summary-work { border-top-color: #39739b; color: #275c80; }
.mbr-summary-filter.mbr-summary-maintenance { border-top-color: #b77a1c; color: #81550f; }
.mbr-summary-filter.mbr-summary-loss { border-top-color: #b34c35; color: #843727; }
.mbr-summary-filter.mbr-summary-other { border-top-color: #6e5f91; color: #554873; }
.mbr-summary-filter span, .mbr-summary-filter small { color: #697772; font-size: 10px; }
.mbr-summary-filter strong { font-size: 17px; }
.mbr-report-items { gap: 7px; }
.mbr-report-group { border-top: 1px solid #294b42; }
.mbr-group-heading { min-height: 32px; padding: 4px 7px; background: #f7f9f8; }
.mbr-report-item { margin: 0; padding: 4px 6px; border: 0; border-bottom: 1px solid #e1e7e5; border-radius: 0; box-shadow: none; background: #fff; }
.mbr-report-item:hover { border-color: #cdd9d5; background: #f8fbfa; }
.mbr-report-item-main { display: grid; gap: 2px; min-width: 0; }
.mbr-report-item-main h4 { flex: 1 1 180px; min-width: 100px; margin: 0; overflow: hidden; color: #202c29; font-size: 12px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.mbr-item-secondary { display: flex; align-items: center; gap: 6px 10px; min-width: 0; }
.mbr-item-comment { min-width: 0; margin: 0; overflow: hidden; color: #42534e; font-size: 10px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.mbr-item-comment b { margin-right: 3px; color: #176d5b; font-size: 9px; }
.mbr-info-badge, .mbr-state-badge, .mbr-source-badge { display: inline-flex; align-items: center; min-height: 21px; padding: 2px 7px; border: 0; border-radius: 10px; font-size: 10px; font-weight: 700; line-height: 1.2; cursor: default; }
.mbr-state-badge.active { background: #edf1f3; color: #4c5d66; }
.mbr-state-badge.completed { background: #e4f2e9; color: #2d6742; }
.mbr-state-badge.held { background: #fff0df; color: #8a571c; }
.mbr-source-badge { background: #e9eef5; color: #456079; }
.mbr-category-pill.mbr-info-badge, .mbr-subcategory-pill.mbr-info-badge { min-height: 21px; padding: 2px 7px; border: 0; border-radius: 10px; font-size: 10px; }
.mbr-item-actions { justify-content: flex-end; align-content: center; padding-left: 10px; border-left: 1px solid #e2e8e6; }
.mbr-item-actions .mbr-action-button { min-height: 29px; padding: 4px 8px; border: 1px solid #c8d3d0; border-radius: 4px; background: #fff; color: #33453f; }
.mbr-item-actions .mbr-action-button:hover { border-color: #829b94; background: #f6f9f8; }
.mbr-item-actions .mbr-action-button.danger-btn { border-color: #e1bbb4; color: #963d31; background: #fffafa; }
.mbr-report-sortbar {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 42px;
  margin-top: 7px;
  padding: 6px 9px;
  border: 1px solid #cddbd6;
  border-radius: 4px;
  background: #f6faf8;
}
.mbr-report-sortbar label { display: flex; align-items: center; gap: 6px; }
.mbr-report-sortbar label > span { color: #173f35; font-size: 11px; font-weight: 800; white-space: nowrap; }
.mbr-report-sortbar select { min-width: 170px; min-height: 30px; padding-block: 3px; border-color: #9fb9b1; background: #fff; font-weight: 700; }
.mbr-report-sortbar > span { color: var(--muted); font-size: 11px; }
.mbr-report-item {
  grid-template-columns: 42px minmax(300px, 1fr) minmax(116px, 148px) minmax(270px, auto);
  gap: 7px;
  min-height: 50px;
}
.mbr-report-item:not(.has-measure) { grid-template-columns: 42px minmax(300px, 1fr) minmax(270px, auto); }
.mbr-item-leading { display: grid; grid-template-columns: 16px 22px; gap: 2px; align-items: center; }
.mbr-drag-handle {
  width: 22px;
  height: 30px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #667a74;
  font-size: 18px;
  line-height: 1;
  cursor: grab;
  touch-action: none;
}
.mbr-drag-handle:hover { background: #edf4f1; color: #185f51; }
.mbr-drag-handle:active { cursor: grabbing; }
.mbr-order-view-only { color: #a5afac; font-size: 11px; text-align: center; }
.mbr-item-meta { display: flex; flex: 0 0 auto; gap: 3px 7px; color: var(--muted); font-size: 9px; white-space: nowrap; }
.mbr-report-item-identity { display: flex; flex-wrap: nowrap; align-items: center; gap: 3px 5px; min-width: 0; }
.mbr-report-item-identity > strong.mbr-item-plant { flex: 0 1 auto; max-width: 220px; overflow: hidden; color: #075b4c; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.mbr-info-badge, .mbr-state-badge, .mbr-source-badge,
.mbr-category-pill.mbr-info-badge, .mbr-subcategory-pill.mbr-info-badge { min-height: 19px; padding: 1px 6px; }
.mbr-spc-badge {
  display: inline-flex;
  align-items: center;
  min-height: 19px;
  padding: 1px 6px;
  border-radius: 9px;
  background: #eef4f1;
  color: #49645c;
  font-size: 9px;
  font-weight: 700;
  max-width: 210px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mbr-item-measure { gap: 0; padding-left: 8px; }
.mbr-item-measure strong { font-size: 12px; line-height: 1.2; }
.mbr-item-measure span, .mbr-item-measure small { font-size: 9px; line-height: 1.2; }
.mbr-item-actions { flex-wrap: wrap; gap: 4px; padding-left: 8px; }
.mbr-item-actions .small,
.mbr-item-actions .mbr-action-button { min-height: 25px; padding: 3px 7px; font-size: 10px; white-space: nowrap; }
.mbr-report-type-editor { display: grid; gap: 5px; }
.mbr-report-type-editor-head { display: flex; align-items: baseline; gap: 8px; }
.mbr-report-type-editor-head > span:last-child { color: var(--muted); font-size: 10px; }
.mbr-report-type-editor p { margin: 0; color: #64726d; font-size: 10px; line-height: 1.45; }
.mbr-report-type-editor p b { color: #1c5c4e; }
.mbr-item-type-checks .mbr-report-type-option { display: inline-flex; align-items: center; gap: 5px; min-height: 30px; padding: 4px 8px; border: 1px solid #cdd9d5; border-radius: 4px; background: #fff; }
.mbr-item-type-checks .mbr-report-type-option:has(input:checked) { border-color: #78a99c; background: #eaf5f1; color: #0e5a4b; }
.mbr-item-type-checks .mbr-report-type-option > span { color: inherit; font-size: 10px; font-weight: 700; }
.mbr-report-item.is-dragging { opacity: .42; }
.mbr-report-item.drag-before { box-shadow: inset 0 3px 0 #14816d; }
.mbr-report-item.drag-after { box-shadow: inset 0 -3px 0 #14816d; }

@media (max-width: 900px) {
  .monitoring-command-bar { grid-template-columns: 1fr 1fr; }
  .monitoring-date-nav { grid-column: 1 / -1; }
  .monitoring-workspace { grid-template-columns: 1fr; }
  .monitoring-preview { position: static; }
  .mbr-command-bar { grid-template-columns: 1fr auto; align-items: center; }
  .mbr-command-bar .mbr-mode-tabs { grid-column: 1; grid-row: 2; }
  .mbr-command-bar .mbr-workspace-controls { grid-column: 2; grid-row: 2; }
  .mbr-command-bar .mbr-heading-actions { grid-column: 2; grid-row: 1; }
  .mbr-report-item,
  .mbr-report-item:not(.has-measure) { grid-template-columns: 42px minmax(0, 1fr); }
  .mbr-item-measure { grid-column: 2; display: flex; align-items: baseline; gap: 5px; padding: 2px 0 0; border-left: 0; }
  .mbr-item-actions { grid-column: 2; justify-content: flex-start; padding: 2px 0 0; border-left: 0; }
}

@media (max-width: 620px) {
  .monitoring-view { padding-bottom: 62px; }
  .monitoring-heading { display: grid; grid-template-columns: 1fr; align-items: stretch; gap: 7px; }
  .monitoring-heading > div:first-child { display: flex; align-items: center; gap: 8px; min-width: 0; }
  .monitoring-heading .section-kicker { display: none; }
  .monitoring-heading h2 { margin: 0; font-size: 19px; white-space: nowrap; }
  .monitoring-back { margin-right: 0; }
  .monitoring-heading-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .monitoring-heading-actions button { min-height: 38px; padding-inline: 8px; }
  .monitoring-command-bar { grid-template-columns: 1fr 1fr; padding: 8px 0; background: transparent; }
  .monitoring-date-nav { display: grid; grid-template-columns: 34px minmax(0, 1fr) 34px auto; }
  .monitoring-date-nav input { width: 100%; }
  .monitoring-comp-toggle { align-self: end; }
  .monitoring-status { align-self: end; justify-self: start; }
  .monitoring-diff { display: grid; grid-template-columns: repeat(4, 1fr); }
  .monitoring-diff-item { justify-content: center; min-width: 0; padding: 6px 3px; }
  .monitoring-diff-item b { font-size: 9px; }
  .monitoring-diff-item strong { font-size: 15px; }
  .monitoring-authoring-tools { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
  .monitoring-authoring-tools > span { grid-column: 1 / -1; }
  .monitoring-authoring-tools button { width: 100%; min-height: 38px; }
  .monitoring-plant-block-head { grid-template-columns: 1fr; gap: 5px; padding: 8px; }
  .monitoring-item { padding: 9px 8px; }
  .monitoring-item-grid { grid-template-columns: 1fr 1fr; }
  .monitoring-title-field,
  .monitoring-comment-field { grid-column: 1 / -1; }
  .monitoring-plant-actions { display: grid; grid-template-columns: 1fr 1fr; padding: 7px 8px; }
  .monitoring-plant-actions button { width: 100%; min-height: 38px; }
  .monitoring-next-plant { margin-left: 0; }
  .monitoring-comment-field textarea { min-height: 88px; }
  .monitoring-item-tools { align-items: flex-start; flex-direction: column; }
  .monitoring-link-fields { grid-template-columns: 1fr 1fr; }
  .monitoring-link-fields label:first-child { grid-column: 1 / -1; }
  .monitoring-resume-results button { grid-template-columns: 1fr; }
  .monitoring-preview pre { max-height: 42vh; }
  .monitoring-action-dock { position: fixed; inset: auto 7px 7px; margin: 0; padding: 6px; }
  .monitoring-save-state { display: none; }
  .monitoring-action-dock button { flex: 1; min-width: 0; padding-inline: 6px; }
  .monitoring-view-state { align-items: flex-start; flex-direction: column; gap: 3px; }
  .plant-monitoring-issue summary { grid-template-columns: minmax(0, 1fr) auto; }
  .plant-monitoring-period { grid-column: 1 / -1; }
  .plant-monitoring-history button { grid-template-columns: 82px 58px minmax(0, 1fr); }
  .plant-monitoring-history button small { display: none; }
  .mbr-command-bar { grid-template-columns: 1fr; gap: 7px; }
  .mbr-command-title { display: flex; align-items: baseline; gap: 8px; }
  .mbr-command-title .section-kicker { display: none; }
  .mbr-command-bar .mbr-workspace-controls,
  .mbr-command-bar .mbr-mode-tabs,
  .mbr-command-bar .mbr-heading-actions { grid-column: 1; grid-row: auto; width: 100%; }
  .mbr-command-bar .mbr-workspace-controls { grid-template-columns: .75fr 1.25fr; }
  .mbr-command-bar .mbr-mode-tabs { display: grid; grid-template-columns: 1fr 1fr; }
  .mbr-command-bar .mbr-heading-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .mbr-report-summary { grid-template-columns: 1fr 1fr; }
  .mbr-generation-result { align-items: stretch; flex-direction: column; gap: 6px; }
  .mbr-generation-result details { max-width: 100%; }
  .mbr-summary-filter { min-height: 58px; border-bottom: 1px solid #dce5e2; }
  .mbr-summary-filter:first-child { grid-column: 1 / -1; }
  .mbr-report-sortbar { align-items: stretch; flex-direction: column; gap: 3px; padding: 5px 4px; }
  .mbr-report-sortbar label { display: grid; grid-template-columns: auto minmax(0, 1fr); }
  .mbr-report-sortbar select { width: 100%; min-width: 0; }
  .mbr-report-item,
  .mbr-report-item:not(.has-measure) { grid-template-columns: 42px minmax(0, 1fr); margin: 0; padding: 5px 4px; }
  .mbr-report-item-identity { flex-wrap: wrap; }
  .mbr-report-item-main h4 { flex-basis: 100%; }
  .mbr-item-secondary { align-items: flex-start; flex-direction: column; gap: 2px; }
  .mbr-item-comment { max-width: 100%; }
  .mbr-item-actions { grid-column: 2; padding-left: 0; border-left: 0; }
}
/* 관리운영 보고서 */
.omr-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0;
  padding: 4px 2px 10px;
  border-bottom: 1px solid #ccd9d9;
}
.omr-heading h2 { margin: 2px 0 0; font-size: 23px; }
.omr-heading p { margin: 3px 0 0; color: #687875; font-size: 12px; }
.omr-heading-actions, .omr-detail-actions { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.omr-target-stage { margin-bottom: 12px; border-bottom: 1px solid #cbd8d6; background: #f7faf9; }
.omr-target-stage-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 10px 2px 7px; }
.omr-target-stage-head > div { display: flex; align-items: center; gap: 8px; }
.omr-target-stage-head span, .omr-period-board-head > div > span { color: #087f78; font-size: 10px; font-weight: 900; }
.omr-target-stage-head strong, .omr-period-board-head strong { color: #223b39; font-size: 14px; }
.omr-target-stage-head p { margin: 0; color: #6b7b78; font-size: 11px; }
.omr-target-controls { display: grid; grid-template-columns: 190px minmax(300px, 1fr) 150px; align-items: end; gap: 10px; padding: 0 2px 11px; }
.omr-target-controls > label, .omr-target-type-field { display: grid; gap: 5px; min-width: 0; }
.omr-target-controls > label > span, .omr-target-type-field > span { color: #536562; font-size: 11px; font-weight: 800; }
.omr-target-type-switch { display: grid; grid-template-columns: 1fr 1fr; min-height: 40px; padding: 3px; border: 1px solid #bdccca; border-radius: 6px; background: #fff; }
.omr-target-type-switch button { min-height: 32px; padding: 5px 10px; border: 0; border-radius: 4px; background: transparent; color: #556562; font-size: 12px; font-weight: 800; }
.omr-target-type-switch button.active { background: #176f69; color: #fff; box-shadow: 0 1px 2px #214f4929; }
.omr-target-year-field select { width: 100%; height: 40px; }
.omr-target-search-box { position: relative; }
.omr-target-search-box > input { width: 100%; height: 40px; padding: 7px 38px 7px 11px; font-size: 13px; }
.omr-target-search-box > button { position: absolute; z-index: 2; top: 5px; right: 5px; width: 30px; height: 30px; padding: 0; border: 0; border-radius: 4px; background: transparent; color: #60716e; font-size: 20px; }
.omr-target-search-box > button:hover { background: #edf2f1; color: #173f3b; }
.omr-target-options { position: absolute; z-index: 80; top: calc(100% + 4px); right: 0; left: 0; max-height: 320px; overflow-y: auto; border: 1px solid #b8cac7; border-radius: 6px; background: #fff; box-shadow: 0 12px 28px #183d3830; }
.omr-target-options > button { display: grid; width: 100%; min-height: 42px; gap: 1px; padding: 7px 10px; border: 0; border-bottom: 1px solid #e5ebea; border-radius: 0; background: #fff; color: #243532; text-align: left; }
.omr-target-options > button:last-child { border-bottom: 0; }
.omr-target-options > button:hover, .omr-target-options > button.active { background: #eaf5f3; }
.omr-target-options strong { font-size: 12px; }
.omr-target-options span { color: #6b7b78; font-size: 10px; }
.omr-target-no-result { padding: 22px 12px; color: #73817f; font-size: 12px; text-align: center; }
.omr-target-current { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 10px 2px; border-top: 1px solid #d8e2e0; }
.omr-target-current > div:first-child { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 2px 8px; min-width: 0; }
.omr-target-current > div:first-child > span { grid-row: 1 / 3; align-self: stretch; display: grid; place-items: center; min-width: 58px; padding: 4px 8px; border-radius: 4px; background: #dceceb; color: #285a56; font-size: 10px; font-weight: 900; }
.omr-target-current strong { overflow: hidden; color: #142d2a; font-size: 16px; text-overflow: ellipsis; white-space: nowrap; }
.omr-target-current small { color: #687875; font-size: 11px; }
.omr-target-actions { display: flex; align-items: center; gap: 7px; flex: 0 0 auto; }
.omr-create-band {
  margin-bottom: 12px;
  padding: 10px 12px;
  background: #f1f7f6;
  border: 1px solid #b9d0cd;
  border-left: 4px solid #087f78;
}
.omr-create-grid {
  display: grid;
  grid-template-columns: 140px 120px 120px auto auto;
  align-items: end;
  gap: 8px;
}
.omr-create-grid label { display: grid; gap: 4px; min-width: 0; }
.omr-create-grid label > span { color: #526463; font-size: 12px; font-weight: 700; }
.omr-create-grid select, .omr-create-grid button { min-height: 38px; }
.omr-default-note { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 10px; color: #51615f; font-size: 12px; }
.omr-default-note span { display: flex; gap: 5px; }
.omr-default-note b { color: #087f78; }
.omr-bulk-band { background: #f7faf9; border-left-color: #315d72; }
.omr-bulk-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 9px; }
.omr-bulk-head > div { display: grid; gap: 2px; }
.omr-bulk-head strong { color: #243f4b; font-size: 13px; }
.omr-bulk-head span { color: #657674; font-size: 11px; }
.omr-bulk-grid { display: grid; grid-template-columns: 160px 160px auto; align-items: end; gap: 8px; }
.omr-bulk-grid label { display: grid; gap: 4px; min-width: 0; }
.omr-bulk-grid label > span { color: #526463; font-size: 11px; font-weight: 700; }
.omr-bulk-grid input, .omr-bulk-grid select, .omr-bulk-grid button { min-width: 0; min-height: 38px; }
.omr-workspace {
  display: block;
  min-height: 540px;
}
.omr-period-board { margin-bottom: 14px; padding: 10px 0 12px; border-top: 2px solid #2e7f78; border-bottom: 1px solid #ccd9d7; }
.omr-period-board-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 9px; }
.omr-period-board-head > div:first-child { display: flex; align-items: baseline; gap: 8px; }
.omr-period-board-head small { color: #6d7b79; font-size: 10px; }
.omr-list-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin: 0; padding: 0; background: transparent; }
.omr-list-actions:empty { display: none; }
.omr-list-actions label { display: flex; align-items: center; gap: 5px; color: #405553; font-size: 10px; font-weight: 700; }
.omr-list-actions input { width: 14px; height: 14px; accent-color: #087f78; }
.omr-list-actions span { color: #687875; font-size: 10px; }
.omr-list-actions button { min-height: 32px; }
.omr-report-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(155px, 1fr)); gap: 6px; overflow-x: auto; padding-bottom: 3px; }
.omr-report-group-label { grid-column: 1 / -1; margin-top: 5px; padding: 4px 2px 2px; border-bottom: 1px solid #dce5e3; color: #466360; font-size: 10px; font-weight: 900; }
.omr-report-group-label:first-child { margin-top: 0; }
.omr-report-entry { position: relative; min-width: 155px; min-height: 78px; border: 1px solid #d5dedd; border-radius: 6px; background: #fff; }
.omr-report-entry.selected { border-color: #5b9d96; background: #f0f8f6; }
.omr-report-select { position: absolute; z-index: 2; top: 6px; left: 6px; display: grid; place-items: center; cursor: pointer; }
.omr-report-select input { width: 15px; height: 15px; accent-color: #087f78; }
.omr-report-row {
  display: grid;
  grid-template-columns: 1fr auto;
  align-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  min-height: 76px;
  gap: 4px 6px;
  padding: 8px 8px 7px 27px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #21302f;
  text-align: left;
}
.omr-report-row:hover { background: #f3f7f7; }
.omr-report-row.active { background: #e7f3f1; box-shadow: inset 0 -3px #087f78; }
.omr-report-month { display: grid; gap: 0; }
.omr-report-month b { color: #223b38; font-size: 12px; line-height: 1.25; }
.omr-report-month small { color: #7a8785; font-size: 9px; }
.omr-report-row > em, .omr-status { justify-self: end; padding: 2px 5px; border-radius: 3px; font-size: 9px; font-style: normal; font-weight: 800; white-space: nowrap; }
.omr-report-row > em.draft, .omr-status.draft { background: #fff0c7; color: #815704; }
.omr-report-row > em.done, .omr-status.done, .omr-status.completed { background: #ddf2e5; color: #17653b; }
.omr-report-row > em.queued, .omr-status.queued { background: #eef1f4; color: #53606d; }
.omr-report-row > em.processing, .omr-status.processing { background: #e0f0ff; color: #135f91; }
.omr-report-row > em.waiting, .omr-status.waiting { background: #fff0d8; color: #8a5700; }
.omr-report-row > em.failed, .omr-status.failed { background: #fde5e3; color: #a3312b; }
.omr-report-row > em.delayed, .omr-status.delayed { background: #fde5e3; color: #a3312b; }
.omr-report-counts { grid-column: 1 / -1; overflow: hidden; color: #667673; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.omr-report-counts.delayed { color: #a3312b; font-weight: 700; }
.omr-rail-empty { grid-column: 1 / -1; padding: 22px 8px; color: #7a8786; font-size: 12px; text-align: center; }
.omr-detail { min-width: 0; padding: 0 0 30px; }
.omr-detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding-bottom: 12px; }
.omr-detail-head h2 { margin: 2px 0 4px; font-size: 20px; letter-spacing: 0; }
.omr-detail-head p { margin: 0; color: #657473; font-size: 12px; }
.omr-detail-period-nav { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
.omr-detail-period-nav strong { min-width: 58px; color: #294a46; font-size: 12px; text-align: center; }
.omr-detail-period-nav .icon-button { width: 28px; height: 28px; min-height: 28px; padding: 0; border: 1px solid #c6d3d1; border-radius: 4px; background: #fff; color: #285c57; font-size: 14px; }
.omr-detail-period-nav .icon-button:disabled { opacity: .35; }
.omr-report-no { color: #087f78; font-size: 11px; font-weight: 800; }
.omr-finalize { background: #176b4c; border-color: #176b4c; }
.omr-target-empty { min-height: 330px; }
.omr-stat-strip {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  border-top: 1px solid #c9d8d6;
  border-bottom: 1px solid #c9d8d6;
  background: #f7f9f9;
}
.omr-stat-strip > div { min-width: 0; padding: 10px 11px; border-right: 1px solid #d8e1e0; }
.omr-stat-strip > div:last-child { border-right: 0; }
.omr-stat-strip span { display: block; margin-bottom: 3px; color: #687876; font-size: 11px; }
.omr-stat-strip strong { display: block; overflow: hidden; color: #1e3432; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.omr-warning-panel { margin: 10px 0 0; border: 1px solid #e2c38d; background: #fffaf0; }
.omr-warning-panel summary { cursor: pointer; padding: 9px 11px; color: #7a5313; font-size: 12px; font-weight: 800; }
.omr-warning-panel ul { display: grid; gap: 5px; margin: 0; padding: 0 10px 10px; list-style: none; }
.omr-warning-panel li { display: grid; grid-template-columns: auto auto 1fr; align-items: center; gap: 7px; padding: 6px 8px; background: #fff; border-left: 3px solid #d29a39; }
.omr-warning-panel li.block { border-left-color: #c43b32; }
.omr-warning-panel li.confirm { border-left-color: #23817a; }
.omr-warning-panel li b { color: #6e4d16; font-size: 11px; }
.omr-warning-panel li span { color: #6d7776; font-size: 11px; }
.omr-warning-panel li p { margin: 0; font-size: 12px; }
.omr-quality-ok { margin-top: 10px; padding: 8px 10px; border-left: 3px solid #24875f; background: #eef8f2; color: #246342; font-size: 12px; }
.omr-data-waiting { display: flex; align-items: center; gap: 9px; margin-top: 10px; padding: 8px 10px; border-left: 3px solid #5d7894; background: #f0f4f8; color: #3c536a; font-size: 11px; }
.omr-data-waiting strong { white-space: nowrap; }
.omr-data-waiting.queued { border-left-color: #7d8995; background: #f3f5f7; color: #4e5b67; }
.omr-data-waiting.processing { border-left-color: #2685bc; background: #edf7ff; color: #155f89; }
.omr-data-waiting.waiting { border-left-color: #d18a16; background: #fff8e9; color: #78530e; }
.omr-data-waiting.failed { border-left-color: #c14f47; background: #fff0ee; color: #92352f; }
.omr-data-waiting.delayed { border-left-color: #c14f47; background: #fff0ee; color: #92352f; }
.omr-section { margin-top: 18px; }
.omr-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 7px; }
.omr-section-head span { color: #087f78; font-size: 10px; font-weight: 800; }
.omr-section-head h3 { margin: 1px 0 0; font-size: 15px; }
.omr-section-head p { margin: 0; color: #70807e; font-size: 11px; }
.omr-table-scroll { max-width: 100%; overflow-x: auto; border-top: 2px solid #168b83; }
.omr-metric-table, .omr-scope-table { width: 100%; border-collapse: collapse; background: #fff; font-size: 11px; }
.omr-metric-table { min-width: 930px; }
.omr-scope-table { min-width: 940px; }
.omr-metric-table th, .omr-scope-table th { padding: 7px 8px; background: #edf3f2; color: #405250; font-weight: 800; text-align: left; white-space: nowrap; }
.omr-metric-table td, .omr-scope-table td { padding: 7px 8px; border-bottom: 1px solid #e0e6e5; vertical-align: top; }
.omr-metric-table tbody tr:nth-child(even), .omr-scope-table tbody tr:nth-child(even) { background: #fafcfc; }
.omr-metric-table td span, .omr-metric-table td small, .omr-scope-table td span { display: block; margin-top: 2px; color: #778482; font-size: 10px; font-weight: 400; }
.omr-metric-table td .omr-override-mark { display: inline-block; margin: 2px 0 0 4px; padding: 1px 4px; border-radius: 3px; background: #fff0c8; color: #8b5a00; font-size: 9px; font-weight: 800; }
.omr-quality { display: inline-block; padding: 2px 6px; border-radius: 3px; font-size: 10px; font-weight: 800; }
.omr-quality.ok { background: #e3f3e9; color: #1c6841; }
.omr-quality.check { background: #fff1d3; color: #8b5d06; }
.omr-quality.block { background: #fbe2df; color: #9b2f28; }
.omr-management-year-tables { display: grid; gap: 13px; }
.omr-management-year-block { border: 1px solid #d7e0df; background: #fff; }
.omr-management-year-block.current { border-top: 3px solid #087f78; }
.omr-management-year-block.previous { border-top: 3px solid #8b9997; }
.omr-management-year-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 9px 11px; background: #f7f9f9; }
.omr-management-year-head > div { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.omr-management-year-head > div:last-child { justify-content: flex-end; }
.omr-management-year-head span { color: #62716f; font-size: 10px; font-weight: 800; white-space: nowrap; }
.omr-management-year-head h4 { margin: 0; font-size: 13px; }
.omr-management-year-head p { margin: 0; color: #6e7d7a; font-size: 10px; }
.omr-management-year-head strong { color: #175e59; font-size: 11px; white-space: nowrap; }
.omr-anniversary-performance tfoot th { padding: 8px; border-top: 2px solid #9bb9b5; background: #edf5f4; color: #294d49; text-align: left; }
.omr-anniversary-performance .omr-subtotal-row { background: #e7f3f2 !important; }
.omr-anniversary-performance .omr-subtotal-row td { border-top: 1px solid #78aaa5; border-bottom: 1px solid #b9d3d0; color: #244b47; font-weight: 700; }
.omr-anniversary-performance .omr-generation-metric { display: inline-flex; align-items: baseline; gap: 4px; margin: 0; color: inherit; white-space: nowrap; }
.omr-anniversary-performance .omr-generation-metric small { display: inline; margin: 0; color: #61716e; font-size: 9px; }
.omr-override-panel { margin-top: 10px; border: 1px solid #cbd8d6; background: #f9fbfb; }
.omr-override-panel > summary { cursor: pointer; padding: 9px 11px; color: #285d58; font-size: 12px; font-weight: 800; }
.omr-override-panel > summary span { margin-left: 5px; color: #74827f; font-size: 10px; }
.omr-override-panel > p { margin: 0; padding: 0 11px 8px; color: #687774; font-size: 11px; }
.omr-override-editor { display: grid; grid-template-columns: minmax(180px, 1.2fr) minmax(165px, 1fr) 145px minmax(220px, 1.5fr) auto; align-items: end; gap: 7px; padding: 9px 11px; border-top: 1px solid #d9e3e1; border-bottom: 1px solid #d9e3e1; background: #fff; }
.omr-override-editor label { display: grid; gap: 3px; min-width: 0; }
.omr-override-editor label > span { color: #667572; font-size: 10px; font-weight: 700; }
.omr-override-editor select, .omr-override-editor input { width: 100%; height: 32px; padding: 4px 7px; font-size: 11px; }
.omr-override-editor button { height: 32px; white-space: nowrap; }
.omr-override-list { display: grid; }
.omr-override-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 7px 11px; border-bottom: 1px solid #e0e7e6; background: #fff; }
.omr-override-row > div { display: grid; min-width: 0; gap: 1px; }
.omr-override-row b { font-size: 11px; }
.omr-override-row span, .omr-override-row small { color: #657471; font-size: 10px; }
.omr-override-history { margin: 7px 11px 10px; }
.omr-override-history summary { cursor: pointer; color: #536663; font-size: 11px; font-weight: 700; }
.omr-override-history ul { display: grid; gap: 3px; margin: 6px 0 0; padding: 0; list-style: none; }
.omr-override-history li { display: flex; justify-content: space-between; gap: 10px; padding: 5px 7px; background: #eef3f2; font-size: 10px; }
.omr-override-history li span { color: #6a7876; text-align: right; }
.omr-auto-items { margin-bottom: 7px; border: 1px solid #c9ddda; background: #f3f8f7; }
.omr-auto-items summary { cursor: pointer; padding: 8px 10px; color: #27645f; font-size: 12px; font-weight: 800; }
.omr-candidate-items, .omr-auto-items > div { border-top: 1px solid #d3dfde; }
.omr-item-row { display: grid; grid-template-columns: 28px minmax(0, 1fr) minmax(155px, auto); align-items: center; gap: 8px; min-height: 52px; padding: 6px 8px; border-bottom: 1px solid #e1e7e6; background: #fff; }
.omr-item-row.selected { background: #f3faf8; }
.omr-item-check { position: relative; display: grid; place-items: center; width: 26px; height: 26px; }
.omr-item-check input { width: 16px; height: 16px; accent-color: #087f78; }
.omr-item-main { min-width: 0; }
.omr-item-main > span { display: block; color: #73817f; font-size: 10px; }
.omr-item-main > strong { display: block; margin-top: 1px; overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.omr-item-main > p { margin: 2px 0 0; color: #586866; font-size: 11px; line-height: 1.35; }
.omr-item-side { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.omr-item-side select { width: 145px; height: 30px; padding: 3px 6px; font-size: 11px; }
.omr-item-side em { color: #23766d; font-size: 10px; font-style: normal; font-weight: 800; }
.omr-item-side b { color: #8d4e12; font-size: 11px; white-space: nowrap; }
.omr-inline-empty { padding: 18px; color: #778482; font-size: 12px; text-align: center; }
.omr-comment-section textarea { width: 100%; min-height: 100px; resize: vertical; line-height: 1.55; }
.omr-source-note { margin-top: 10px; padding-top: 8px; border-top: 1px solid #dce4e3; color: #788482; font-size: 10px; text-align: right; }

@media (max-width: 1100px) {
  .omr-create-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .omr-bulk-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .omr-target-controls { grid-template-columns: 180px minmax(260px, 1fr) 130px; }
  .omr-stat-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .omr-stat-strip > div:nth-child(3) { border-right: 0; }
  .omr-stat-strip > div:nth-child(-n+3) { border-bottom: 1px solid #d8e1e0; }
}

@media (max-width: 720px) {
  .omr-heading { align-items: center; margin-bottom: 7px; padding-bottom: 8px; }
  .omr-heading h2 { font-size: 18px; }
  .omr-heading p, .omr-target-stage-head p { display: none; }
  .omr-heading-actions { gap: 4px; }
  .omr-target-stage { margin-bottom: 9px; }
  .omr-target-stage-head { padding-top: 7px; }
  .omr-target-controls { grid-template-columns: 1fr 100px; gap: 7px; padding-bottom: 9px; }
  .omr-target-type-field { grid-column: 1 / -1; }
  .omr-target-search-field { grid-column: 1; }
  .omr-target-current { align-items: flex-start; display: grid; gap: 8px; }
  .omr-target-current strong { white-space: normal; }
  .omr-target-actions { width: 100%; }
  .omr-target-actions button { flex: 1; }
  .omr-create-band { padding: 10px; }
  .omr-create-grid { grid-template-columns: 1fr 1fr; }
  .omr-bulk-grid { grid-template-columns: 1fr 1fr; }
  .omr-bulk-grid button { grid-column: 1 / -1; }
  .omr-default-note { display: grid; gap: 4px; }
  .omr-workspace { display: block; min-height: 0; border-top: 0; }
  .omr-period-board { padding-top: 8px; }
  .omr-period-board-head { align-items: flex-start; display: grid; gap: 7px; }
  .omr-period-board-head .omr-list-actions { justify-content: flex-start; overflow-x: auto; width: 100%; }
  .omr-list-actions label, .omr-list-actions span, .omr-list-actions button { flex: 0 0 auto; }
  .omr-report-list { display: flex; gap: 5px; overflow-x: auto; padding-bottom: 4px; scroll-snap-type: x proximity; }
  .omr-report-group-label { display: none; }
  .omr-report-entry { flex: 0 0 105px; scroll-snap-align: start; }
  .omr-report-row { min-width: 0; }
  .omr-detail { padding: 11px 0 24px; }
  .omr-detail-head { display: grid; gap: 8px; }
  .omr-detail-head h2 { font-size: 17px; }
  .omr-detail-actions { gap: 5px; }
  .omr-detail-actions button { min-height: 34px; padding: 6px 8px; font-size: 11px; }
  .omr-stat-strip { grid-template-columns: 1fr 1fr; }
  .omr-stat-strip > div, .omr-stat-strip > div:nth-child(3) { border-right: 1px solid #d8e1e0; border-bottom: 1px solid #d8e1e0; }
  .omr-stat-strip > div:nth-child(even) { border-right: 0; }
  .omr-warning-panel li { grid-template-columns: auto 1fr; }
  .omr-warning-panel li p { grid-column: 1 / -1; }
  .omr-section-head { align-items: flex-start; }
  .omr-section-head p { max-width: 48%; text-align: right; }
  .omr-management-year-head { align-items: flex-start; }
  .omr-management-year-head, .omr-management-year-head > div { display: grid; gap: 3px; }
  .omr-management-year-head > div:last-child { justify-content: start; }
  .omr-override-editor { grid-template-columns: 1fr 1fr; }
  .omr-override-editor .reason { grid-column: 1 / -1; }
  .omr-override-editor button { grid-column: 1 / -1; }
  .omr-override-row { align-items: flex-start; }
  .omr-override-history li { display: grid; }
  .omr-override-history li span { text-align: left; }
  .omr-item-row { grid-template-columns: 28px minmax(0, 1fr); }
  .omr-item-side { grid-column: 2; justify-content: flex-start; }
  .omr-item-main > p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
}
