/* 모달 폭·전체리스트 표·메시지 레이어
   (admin.css 468–593 행에서 분리. CSS 는 순서가 우선순위라 로드 순서를 지켜야 한다) */

/* 아래 .admin-modal(560px) 규칙과 특이도가 같아 소스 순서로 덮이지 않도록 특이도를 올림 */
.admin-modal.reservation-modal {
	width: min(760px, calc(100% - 32px));
}
.admin-modal.reservation-modal.wide {
	/* 예전 1000px 고정이라 넓은 화면에서 절반을 놀리고 글자는 잘렸다. */
	width: min(1920px, calc(100vw - 80px));
	height: calc(100vh - 72px);
	max-height: calc(100vh - 72px);
}
.admin-modal .table-wrap table {
	min-width: 0;
	width: 100%;
}
.total-table {
	table-layout: fixed;
}
.total-table th,
.total-table td {
	white-space: normal;
	word-break: break-word;
	vertical-align: middle;
}
.total-table .cell-date {
	white-space: nowrap;
}
/* 번호 4 · 구분 5 · 예약일 9 · 시간 5 · 이름 7 · 생년월일 7 · 전화번호 10
   · 진료구분 8 · 시술내용 나머지 · 방문 5 · 담당 5 · 출처 6 */
.total-table th:nth-child(1),  .total-table td:nth-child(1)  { width: 4%; }
.total-table th:nth-child(2),  .total-table td:nth-child(2)  { width: 5%; }
.total-table th:nth-child(3),  .total-table td:nth-child(3)  { width: 9%; }
.total-table th:nth-child(4),  .total-table td:nth-child(4)  { width: 5%; }
.total-table th:nth-child(5),  .total-table td:nth-child(5)  { width: 7%; }
.total-table th:nth-child(6),  .total-table td:nth-child(6)  { width: 7%; }
.total-table th:nth-child(7),  .total-table td:nth-child(7)  { width: 10%; }
.total-table th:nth-child(8),  .total-table td:nth-child(8)  { width: 8%; }
.total-table th:nth-child(9),  .total-table td:nth-child(9)  { width: auto; }
.total-table th:nth-child(10), .total-table td:nth-child(10) { width: 5%; }
.total-table th:nth-child(11), .total-table td:nth-child(11) { width: 5%; }
.total-table th:nth-child(12), .total-table td:nth-child(12) { width: 6%; }

/* 행이 91px 씩 차지해 한 화면에 6줄밖에 안 보였다. 조밀하게 줄인다. */
.total-table th,
.total-table td {
	padding: 7px 8px;
	font-size: 13px;
	line-height: 1.4;
}
.total-table thead th {
	position: sticky;   /* 스크롤해도 머리글이 남아있게 */
	top: 0;
	z-index: 2;
	background: var(--card);
	font-size: 12px;
	padding-top: 10px;
	padding-bottom: 10px;
}
.total-table .cell-date,
.total-table .cell-time,
.total-table .cell-tel,
.total-table .cell-num,
.total-table .cell-name {
	white-space: nowrap;
}
.total-table .cell-part {
	white-space: normal;
	word-break: break-word;
}
.total-table tbody tr:hover {
	background: rgba(127, 31, 46, 0.04);
}
/* 표가 길어도 모달 안에서만 스크롤되게 */
.total-wrap {
	flex: 1 1 auto;
	min-height: 0;      /* flex 자식이 줄어들 수 있게 — 없으면 스크롤이 안 생긴다 */
	overflow: auto;
}
/* 원본(MSSQL) 행 표시 — 삭제 버튼 자리를 대신한다 */
.origin-tag {
	display: inline-block;
	padding: 2px 8px;
	border-radius: 999px;
	border: 1px solid var(--line);
	color: var(--muted);
	font-size: 11px;
	font-weight: 800;
	white-space: nowrap;
}
/* td에 display:flex(.row-actions)가 걸리면 table-layout:fixed의 컬럼폭이 무너져 삭제칸이 찌그러진다.
   전체리스트에서는 표 셀로 되돌려 지정 폭(10%)을 유지한다. */
.total-table td.row-actions {
	display: table-cell;
	text-align: center;
	white-space: nowrap;
	overflow: visible;
}
.cell-date {
	font-variant-numeric: tabular-nums;
}

/* 알림/확인 레이어 (.admin-modal 폭 560px를 이기도록 특이도 상향) */
.admin-modal.message-modal {
	width: min(420px, calc(100% - 32px));
	padding: 30px 28px 26px;
	text-align: center;
}
.message-text {
	margin: 0;
	color: var(--ink);
	font-weight: 700;
	font-size: 16px;
	line-height: 1.7;
	white-space: pre-wrap;
	word-break: keep-all;
}
.message-actions {
	display: flex;
	gap: 10px;
	justify-content: center;
	margin-top: 24px;
}
.message-actions .button {
	min-width: 100px;
}
