/**
 * LIMS UI 보조 (package 전역)
 * - placeholder: 안내 문구를 본문보다 아주 연하게
 */

:root {
  --lims-placeholder-color: rgba(var(--bs-body-color-rgb, 33, 37, 41), 0.28);
  --lims-placeholder-color-focus: rgba(var(--bs-body-color-rgb, 33, 37, 41), 0.2);
}

/* Bootstrap form */
.form-control::placeholder,
.form-select::placeholder,
textarea.form-control::placeholder,
input.form-control::placeholder {
  color: var(--lims-placeholder-color);
  opacity: 1;
}

.form-control::-webkit-input-placeholder,
textarea.form-control::-webkit-input-placeholder {
  color: var(--lims-placeholder-color);
  opacity: 1;
}

.form-control::-moz-placeholder,
textarea.form-control::-moz-placeholder {
  color: var(--lims-placeholder-color);
  opacity: 1;
}

.form-control:-ms-input-placeholder,
textarea.form-control:-ms-input-placeholder {
  color: var(--lims-placeholder-color);
  opacity: 1;
}

.form-control:focus::placeholder,
textarea.form-control:focus::placeholder {
  color: var(--lims-placeholder-color-focus);
  opacity: 1;
}

/* Tagify */
.tagify {
  --placeholder-color: var(--lims-placeholder-color);
  --placeholder-color-focus: var(--lims-placeholder-color-focus);
}

/* Quill (공지 등) */
.ql-editor.ql-blank::before {
  color: var(--lims-placeholder-color) !important;
  font-style: normal;
  opacity: 1;
}

/* 시험노트 메뉴 — mem_jl 접근 표시 */
.menu-item--notes-guard .menu-link {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.menu-role-badge {
  font-size: 0.625rem;
  font-weight: 600;
  line-height: 1.2;
  padding: 0.1rem 0.4rem;
  border-radius: 0.25rem;
  margin-left: auto;
}

.menu-role-badge--researcher {
  background: rgba(var(--bs-primary-rgb, 89, 85, 209), 0.12);
  color: var(--bs-primary, #5955d1);
}

.menu-role-badge--approver {
  background: rgba(var(--bs-warning-rgb, 245, 167, 13), 0.15);
  color: var(--bs-warning-text-emphasis, #936408);
}

.menu-item--notes-denied .menu-link--notes-denied {
  opacity: 0.45;
  cursor: not-allowed;
}

.menu-item--notes-denied .menu-link--notes-denied .menu-label {
  text-decoration: line-through;
  text-decoration-color: rgba(var(--bs-danger-rgb, 248, 54, 54), 0.35);
}

.menu-item--notes-allowed .menu-link {
  opacity: 1;
}

/* Bootstrap 4 레거시 .close — BS5 모달 헤더 호환 (동적·구버전 마크업) */
.modal-header > button.close {
  box-sizing: content-box;
  width: 1em;
  height: 1em;
  padding: 0.25em;
  margin: calc(-0.5 * var(--bs-modal-header-padding-y, 1rem))
    calc(-0.5 * var(--bs-modal-header-padding-x, 1rem))
    calc(-0.5 * var(--bs-modal-header-padding-y, 1rem)) auto;
  color: var(--bs-btn-close-color, #000);
  background: transparent var(--bs-btn-close-bg) center / 1em auto no-repeat;
  border: 0;
  border-radius: var(--bs-btn-close-border-radius, 0.375rem);
  opacity: var(--bs-btn-close-opacity, 0.5);
}

.modal-header > button.close:hover {
  opacity: var(--bs-btn-close-hover-opacity, 0.75);
}

.modal-header > button.close:focus {
  outline: 0;
  box-shadow: var(--bs-btn-close-focus-shadow, 0 0 0 0.25rem rgba(13, 110, 253, 0.25));
  opacity: var(--bs-btn-close-focus-opacity, 1);
}

.modal-header > button.close span {
  display: none;
}
