/* 【2026-09-30】모바일(≤767px)·PC(≥1024px) 화면 최적화 공통 규칙 — 배치·크기만 바꾸고 기능·문구는 그대로 둔다.
   tailwind.css 는 다른 세션 파일이라 건드리지 않고, 이 파일을 그 뒤에 불러와 덮어쓴다. */

/* ── 모바일 ───────────────────────────── */
@media (max-width: 767px) {
  /* 보조 글자 하한 12px (아이콘 <i> 는 제외) */
  :is(.text-\[7px\], .text-\[8px\], .text-\[9px\], .text-\[10px\], .text-\[11px\]):not(i):not(svg) { font-size: 12px !important; }
  /* 선택 상자·입력칸 누름 높이 (입력칸 글자 16px 은 기존 CSS 가 이미 지킴) */
  select, input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=hidden]) { min-height: 40px; }
  /* 작은 글자 클래스를 단 입력칸도 16px (iOS 확대 방지) */
  :is(input, select, textarea):is(.text-xs, .text-sm, .text-\[10px\], .text-\[11px\], .text-\[12px\], .text-\[13px\]):not([type=hidden]):not([type=checkbox]) { font-size: 16px !important; }
  /* 떠 있는 담당자 바: 휴대폰에서는 '담당자' 글자를 숨기고(아이콘으로 대신) 폭을 줄여 목록을 덜 가린다 */
  #ptStaffBar #ptStaffLabel { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  #ptStaffBar #ptStaffSel { max-width: 104px !important; }
  /* 넓은 표는 표 자체만 가로로 밀리게 */
  .table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }
}

/* 목록 카드의 메타 줄(일시|치료|금액|담당|결정도): 글자 단위가 아니라 항목 단위로 줄바꿈 */
.pt-meta-row { flex-wrap: wrap; row-gap: 2px; }
.pt-meta-row > span { white-space: nowrap; }

/* 홈 머리: 인사말이 버튼(내려받기 등)에 밀려 '김실/장님'처럼 글자 중간에서 끊기지 않게 */
#homeHeader #greetingSection { min-width: 0; flex: 1 1 auto; margin-right: 8px; }
#homeHeader #greetingSection p, #homeHeader #greetingSection h1 { word-break: keep-all; }

/* 정사각 아이콘 버튼은 옆 글이 길어도 찌그러지지 않게 */
:is(.w-7.h-7, .w-8.h-8, .w-9.h-9, .w-10.h-10) { flex-shrink: 0; }

/* 누름 영역 보정 (tap-area.js 가 40px 보다 작은 버튼·링크에만 붙인다) — 보이는 크기는 그대로, 보이지 않는 누름 영역만 넓힌다 */
.tap-rel { position: relative; }
.tap-x::after { content: ''; position: absolute; top: calc(-1 * var(--tap-y, 0px)); bottom: calc(-1 * var(--tap-y, 0px)); left: calc(-1 * var(--tap-x, 0px)); right: calc(-1 * var(--tap-x, 0px)); }

/* 모달·바텀시트: 내용이 길어도 화면 안에 들어오게 (자체 max-h-* 가 없는 시트만) */
#addPatientModal .absolute.bottom-0 > div, .fixed.inset-0.flex.items-end > :not([class*="max-h-"]):not(.hidden) { max-height: calc(100dvh - 16px); overflow-y: auto; overscroll-behavior: contain; }

/* 키보드 포커스 표시 (마우스 클릭엔 안 보임) */
:is(a, button, select, input, textarea, summary, [role=button], [tabindex]):focus-visible { outline: 2px solid #7c4dff; outline-offset: 2px; }

/* ── PC ─────────────────────────────── */
@media (min-width: 1024px) {
  /* 호버 가능한 버튼·링크에 손가락 커서 */
  button:not(:disabled), [role=button], summary { cursor: pointer; }
  /* 화면 하단 고정 막대(리포트 만들기·AI 레포트·검수 승인)는 사이드바(240px)를 비켜 본문 폭에 맞춘다 */
  .lg\:pl-\[240px\] > main .fixed.bottom-0.left-0.right-0, #trvActionBar { left: 240px; }
  #trvActionBar { bottom: 0; } /* PC 에는 하단 독이 없어 78px 띄울 필요 없음 */
  /* 녹음 화면(사이드바 없는 집중 화면): 입력칸·카드가 1440px 끝까지 늘어지지 않게 가운데 760px */
  .relative.z-10:has(> header #statusText) { max-width: 760px; margin-left: auto; margin-right: auto; }
}
@media (min-width: 1024px) {
  /* 원장 대시보드: 한 줄로 길게 쌓이던 카드 → 2열, 요약 4칸은 한 줄 */
  #adminMain { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 14px; align-items: start; }
  #adminMain > * { margin-top: 0 !important; min-width: 0; }
  #adminMain > :nth-child(-n+3), #adminMain > #pscHint { grid-column: 1 / -1; }
  #adminMain > :nth-child(2).grid-cols-2 { grid-template-columns: repeat(4, minmax(0,1fr)); }
  #adminMain > #pscHint:empty { display: none; }
}
@media (min-width: 1280px) {
  /* 설정: 좁은 한 줄 카드 → 넓은 화면에서 2열 */
  main:has(#settingsMain) { max-width: 72rem; }
  #settingsMain { column-count: 2; column-gap: 16px; }
  #settingsMain > * { break-inside: avoid; margin-top: 0 !important; margin-bottom: 12px; }
}

/* 【2026-10-21】휴대폰: 아래에서 올라오는 창(환자 정보 수정 등)이 열려 있으면 아래 메뉴·녹음 버튼을 숨긴다.
   메뉴와 창이 같은 층(z-50)이라 메뉴가 창의 [저장] 버튼을 덮어 눌리지 않았다(비디치과 실장 제보). */
body:has(.fixed.inset-0:not(.hidden):not(.pointer-events-none):not(.bg-aurora-dark)) #ptBottomNav,
body:has(.fixed.inset-0:not(.hidden):not(.pointer-events-none):not(.bg-aurora-dark)) #ptRecFab { display: none !important; }
