/* Workpath 가상 패널. 원본 앱의 레이아웃 스펙(psl-oxpd/docs/04_layout_spec.md, 1dp = 1px)을 그대로 옮긴다.
   무대는 1024×600 으로 그리고, 화면 틀이 정한 배율(--mfp-scale)로 통째로 축소한다.
   (스펙의 치수는 그대로 쓰되, 인증 화면의 세로 여백만 600 높이에 들어가게 줄였다.)
   글꼴은 Noto Sans KR(400·700 두 굵기). 원본의 bold 는 700, 나머지는 400 으로 맞춘다. */
.stage { position: absolute; left: 0; top: 0; width: 1024px; height: 600px; transform-origin: 0 0; transform: scale(var(--mfp-scale, .5)); background: #fff; overflow: hidden; font-family: var(--font-mfp); font-size: 18px; font-weight: 400; line-height: 1.35; color: #404040; user-select: none; word-break: keep-all; }
.oxpd-stage, .fax-overlay { transform: scale(var(--mfp-scale, .5)); }
.stage button { border: 0; padding: 0; font: inherit; color: inherit; background: none; cursor: pointer; }
.stage input { font: inherit; color: inherit; }
.wp { --gray-50:#FAFAFA; --gray-100:#F5F5F5; --gray-200:#E5E5E5; --gray-300:#D4D4D4; --gray-400:#A3A3A3; --gray-500:#737373; --gray-700:#404040; --gray-800:#262626;
  --primary-50:#E6F2FE; --primary-500:#4791F7; --primary-600:#4483F7; --primary-900:#303DB1; --destructive-500:#D95338; --online:#64AE63;
  position: absolute; inset: 0; display: flex; flex-direction: column; }

/* 서버 상태 표시(원본 화면의 표시 그대로) */
.pill { display: inline-flex; align-items: center; padding: 12px 24px; border-radius: 74px; font-size: 18px; white-space: nowrap; color: var(--online); background: rgba(100,174,99,.10); border: 1px solid rgba(100,174,99,.10); }
.pill::before { content: ""; width: 13px; height: 13px; margin-right: 18px; border-radius: 50%; background: var(--online); }
.pill.is-plain { background: none; border-color: transparent; }
.ver { height: 24px; line-height: 24px; margin-right: 12px; font-size: 17px; color: var(--gray-500); white-space: nowrap; }

/* ── 1. 인증 (activity_main) ── */
.wp-auth { flex: 1; min-height: 0; display: flex; flex-direction: column; background: #fff; }
.wp-auth-head { flex: none; display: flex; justify-content: space-between; align-items: flex-start; margin-top: 60px; padding: 0 32px; }
.wp-auth-head .logo { width: 184px; height: 58px; object-fit: contain; object-position: left center; }
.wp-auth-head .right { display: flex; align-items: center; }
.wp-auth-head .opt { display: inline-flex; align-items: center; margin-right: 24px; padding: 16px 40px; border: 1px solid var(--gray-200); border-radius: 4px; font-size: 18px; color: var(--gray-500); white-space: nowrap; }
.wp-auth-head .opt img { width: 24px; height: 24px; margin-right: 12px; }
.wp-auth-body { flex: 1; min-height: 0; display: flex; }
.wp-methods { flex: 1; min-width: 0; margin: 0 32px; padding: 0 32px; display: flex; flex-direction: column; justify-content: center; }
.wp-method { height: 132px; margin-bottom: 30px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--gray-200) !important; border-radius: 4px; font-size: 28px; color: var(--gray-500) !important; white-space: nowrap; }
.wp-method:last-child { margin-bottom: 0; }
.wp-method img { width: 40px; height: auto; margin-right: 20px; }
.wp-method.is-on { background: var(--primary-50); border-color: var(--brand-accent, var(--primary-500)) !important; }
.wp-form { flex: 1; min-width: 0; margin-right: 32px; padding: 0 32px 88px; display: flex; flex-direction: column; justify-content: center; }
.wp-form .info { font-size: 28px; color: var(--gray-500); text-align: center; white-space: nowrap; }
.wp-form label { font-size: 24px; color: var(--gray-500); margin-bottom: 16px; }
.wp-form input { width: 100%; height: 68px; padding: 0 16px; border: 2px solid var(--gray-200); border-radius: 10px; background: #fff; font-size: 24px; color: var(--gray-700); outline: none; }
.wp-form input:focus { border-color: var(--brand-accent, var(--primary-500)); }
/* 원본의 간격(84 / 114 / 44 / 53)을 600 높이에 맞게 줄인 값 */
.wp-form .sp84 { height: 44px; flex: none; } .wp-form .sp114 { height: 56px; flex: none; } .wp-form .sp44 { height: 24px; flex: none; } .wp-form .sp53 { height: 36px; flex: none; }
.wp-login-btn { width: 100%; height: 75px; border-radius: 13px; background: var(--brand-accent, var(--primary-500)) !important; color: #fff !important; font-size: 28px !important; font-weight: 700 !important; }

/* ── 장치 홈 화면(로그인 뒤 앱을 고르는 화면). 실제 장치에서는 장치가 그리는 화면이다. ── */
.wp-home-bar { flex: none; height: 72px; display: flex; align-items: center; background: #3a3a3a; color: #fff; }
.wp-home-bar .logout { height: 100%; padding: 0 34px; background: #555; color: #fff; font-size: 26px; white-space: nowrap; }
.wp-home-bar .who { padding: 0 28px; font-size: 24px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wp-home { flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; gap: 56px; padding: 0 40px 24px; background: #fff; }
.wp-tile { display: flex; flex-direction: column; align-items: center; gap: 18px; font-size: 26px !important; font-weight: 700 !important; color: #000 !important; white-space: nowrap; }
.wp-tile img, .wp-tile .fax { width: 164px; height: 164px; border-radius: 6px; display: block; }
.wp-tile .fax { background: #ab6394; display: flex; align-items: center; justify-content: center; }
.wp-tile .fax svg { width: 104px; height: 104px; }

/* ── 2. 보안 인쇄 (activity_job_list) ── */
.wp-print { flex: 1; min-height: 0; display: flex; flex-direction: column; background: var(--gray-100); }
.wp-head { flex: none; display: flex; align-items: center; background: var(--gray-100); }
.wp-head .sp { flex: 1; }
.wp-head .logout { display: inline-flex; align-items: center; font-size: 18px; font-weight: 700; white-space: nowrap; }
.wp-head .logout img { width: 18px; height: 18px; margin-right: 8px; }
.wp-head .timer { display: inline-flex; align-items: center; font-size: 24px; font-weight: 700; color: var(--gray-700); }
.wp-head .timer img { width: 18px; height: 18px; margin-right: 12px; }
.wp-head.print { height: 88px; padding: 16px; }
.wp-head.print .logout { margin-right: 16px; padding: 12px 24px; border-radius: 8px; background: var(--gray-500); color: #fff; }
.wp-toolbar { flex: none; display: flex; align-items: center; padding: 16px; }
.card-btn { flex: none; height: 64px; display: inline-flex; align-items: center; justify-content: center; border: 2px solid var(--gray-300) !important; border-radius: 8px; background: #fff !important; color: var(--gray-700) !important; font-size: 24px !important; font-weight: 700 !important; white-space: nowrap; }
.card-btn img { width: 18px; height: 18px; margin-right: 12px; }
.card-btn.w138 { width: 138px; } .card-btn.w162 { width: 162px; margin-left: 16px; } .card-btn.w200 { width: 200px; margin-left: 16px; }
.card-btn.del { width: 110px; color: var(--destructive-500) !important; }
.wp-toolbar .count { flex: 1; min-width: 0; text-align: right; padding-right: 33px; font-size: 24px; font-weight: 700; color: var(--gray-500); white-space: nowrap; }
.wp-table { flex: 1; min-height: 0; margin: 0 16px; background: #fff; border: 2px solid var(--gray-300); border-radius: 8px; display: flex; flex-direction: column; overflow: hidden; }
.wp-tr { display: flex; align-items: center; }
.wp-tr > div { display: flex; align-items: center; justify-content: center; min-width: 0; text-align: center; white-space: nowrap; }
.wp-th { flex: none; height: 56px; background: var(--gray-500); color: #fff; font-size: 24px; font-weight: 700; }
.wp-rows { flex: 1; min-height: 0; overflow-y: auto; scrollbar-width: thin; }
.wp-row { height: 80px; margin: 0 1px; border-bottom: 1px solid #DCDCDC; background: #fff; font-size: 24px; color: var(--gray-700); }
.c-chk { flex: 10 0 0; } .c-job { flex: 30 0 0; justify-content: flex-start !important; padding-left: 16px; text-align: left !important; } .c-n { flex: 7 0 0; } .c-rem { flex: 15 0 0; } .c-del { flex: 10 0 0; }
.c-job .col { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.c-job small { font-size: 16px; color: var(--gray-500); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.c-job b { font-size: 24px; font-weight: 400; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.chk { flex: none; display: inline-block; width: 26px; height: 26px; border: 2px solid var(--gray-400); border-radius: 4px; background: #fff; }
.chk.is-on { background: var(--primary-600) url(/icons/print__checkbox_true.svg) center/contain no-repeat; border-color: var(--primary-600); }
.x-btn { width: 36px; height: 36px; }
.x-btn img { width: 36px; height: 36px; display: block; }
.wp-empty { display: flex; align-items: center; justify-content: center; height: 100%; color: var(--gray-500); font-size: 24px; }
.wp-footer { flex: none; display: flex; align-items: center; padding: 16px; }
.wp-footer .keep { flex: 1; min-width: 0; display: flex; align-items: center; font-size: 24px; font-weight: 700; color: var(--gray-500); white-space: nowrap; }
.wp-footer .keep .chk { width: 24px; height: 24px; margin: 0 16px 0 24px; }
.wp-footer .go { flex: 1; padding: 20px 0; border: 2px solid var(--primary-500); border-radius: 8px; background: var(--primary-500); color: #fff; font-size: 24px; font-weight: 700; line-height: 1.3; }

/* ── 3·4. 스캔·복사 (activity_scan_option / activity_copy_option) ── */
.wp-opt { flex: 1; min-height: 0; display: flex; flex-direction: column; background: var(--gray-200); }
.wp-head.opt { height: 56px; }
.wp-head.opt .logout { height: 100%; padding: 0 24px; background: #fff; color: var(--gray-500); }
.wp-head.opt .timer { margin-left: 16px; color: var(--gray-700); }
.wp-opt-body { flex: 1; min-height: 0; display: flex; margin: 32px 16px 0; }
.wp-left { flex: none; width: 480px; margin-right: 8px; padding: 1px; background: #fff; border: 1px solid var(--gray-300); display: flex; flex-direction: column; min-height: 0; }
.wp-right { flex: 1; min-width: 0; margin-left: 8px; background: #fff; border: 1px solid var(--gray-300); border-top: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; font-size: 18px; color: var(--gray-700); padding: 16px; white-space: pre-line; }
.wp-right > img { width: 96px; height: 96px; margin-bottom: 16px; }
.wp-right .thumb { margin-bottom: 16px; }
.wp-right .on-glass { margin-bottom: 14px; font-weight: 700; color: var(--primary-900); white-space: normal; }
.wp-simple { flex: 1; min-height: 0; overflow-y: auto; padding: 16px 24px 0; scrollbar-width: thin; }
.wp-simple .lbl { font-size: 18px; color: #000; }
.wp-input { display: block; width: 100%; margin: 16px 0; padding: 12px 12px 12px 24px; border: 1px solid var(--gray-500); border-radius: 4px; background: #fff; font-size: 18px; color: var(--gray-700); outline: none; }
.sel-btn { position: relative; display: flex; align-items: center; width: 100%; height: 52px; margin: 16px 0; padding: 12px 36px 12px 24px; background: var(--gray-500) !important; color: #fff !important; font-size: 18px; text-align: left; }
.sel-btn img { position: absolute; right: 12px; top: 14px; width: 24px; height: 24px; filter: brightness(0) invert(1); }
.wp-simple .quota { margin: 12px 0; font-size: 16px; color: var(--gray-700); }
/* 옵션 목록(item_scan_option / item_copy_option): 한 줄 80px = 여백 16 + 아이콘 48 */
.wp-list { flex: 1; min-height: 0; overflow-y: auto; scrollbar-width: thin; }
.wp-cap { display: flex; align-items: center; width: 100%; height: 81px; padding: 0 16px; border-bottom: 1px solid var(--gray-300) !important; background: #fff; text-align: left; }
.wp-cap img { flex: none; width: 48px; height: 48px; }
.wp-cap .txt { display: flex; flex-direction: column; min-width: 0; margin-left: 16px; }
.wp-cap .name { font-size: 18px; color: #000; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wp-cap .val { font-size: 18px; color: var(--gray-500); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wp-opt-bar { flex: none; height: 88px; display: flex; padding: 16px; }
.wp-opt-bar .l { flex: none; width: 480px; margin-right: 8px; display: flex; }
.wp-opt-bar .opt { width: 120px; background: var(--gray-500); color: #fff; font-size: 18px; white-space: nowrap; }
.wp-opt-bar .opt.is-wide { width: 160px; }
.wp-opt-bar .run { flex: 1; margin-left: 8px; background: var(--primary-600); color: #fff; font-size: 18px; }

/* ── 대화상자 (custom_dialog_layout) ── */
.wp-dim { position: absolute; inset: 0; background: rgba(0,0,0,.4); display: flex; align-items: center; justify-content: center; z-index: 10; }
.wp-dialog { width: 480px; background: #fff; border-radius: 20px; }
.wp-dialog .msg { margin: 48px 36px; font-size: 21px; line-height: 33px; color: #515151; text-align: center; white-space: pre-line; }
.wp-dialog .sep { border-top: 1.5px solid #F2F2F2; }
.wp-dialog .actions { display: flex; margin: 24px 0; }
.wp-dialog .actions button { flex: 1; font-size: 21px; color: var(--primary-900); }
.wp-dialog .actions .cancel { color: var(--gray-800); }
.wp-dim.is-busy { flex-direction: column; gap: 18px; padding: 0 120px; text-align: center; }
.wp-busy { font-size: 26px; font-weight: 700; color: #fff; }
.wp-busy-tip { font-size: 20px; line-height: 1.5; color: #e5e5e5; }

/* 한국어보다 긴 언어(영어·태국어): 고정 폭 버튼은 글자에 맞춰 넓어지게 하고, 표 머리글과 하단 문구는 조금 작게 쓴다. 한국어 화면은 그대로다. */
.card-btn.w138, .card-btn.w162, .card-btn.w200 { width: auto; padding: 0 14px; }
.card-btn.w138 { min-width: 138px; } .card-btn.w162 { min-width: 162px; } .card-btn.w200 { min-width: 200px; }
html:not([lang="ko"]) .card-btn { font-size: 20px !important; }
html:not([lang="ko"]) .wp-th > div { font-size: 17px; line-height: 1.15; }
html:not([lang="ko"]) .wp-footer .keep { font-size: 18px; white-space: normal; line-height: 1.25; padding-right: 12px; }
html:not([lang="ko"]) .wp-row .c-n { font-size: 17px; line-height: 1.15; padding: 0 3px; }
/* 복합기 홈 타일: 긴 앱 이름(영어·태국어)은 타일 폭 안에서 줄을 바꿔 네 타일이 화면 안에 들어오게 한다(OXPd 홈과 같은 규칙) */
html:not([lang="ko"]) .wp-tile { width: 190px; flex: none; white-space: normal; text-align: center; line-height: 1.2; }
html:not([lang="ko"]) .wp-home { gap: 32px; }

/* ── 휴대폰(세로 폭 760px 이하, 가로로 눕힌 휴대폰): Workpath 화면을 축소하지 않고 휴대폰 폭에 맞춰 다시 배치한다 ──
   1024×600 화면을 0.5배로 줄여 옆으로 밀어 보던 방식 대신, 같은 단추·문구를 칸 폭 안에 세로로 쌓는다(모양은 실제 장치와 조금 다르다).
   OXPd 화면은 서버가 그리는 제품 화면이라 기존처럼 축소해 보여 준다(아래 규칙은 Workpath 를 볼 때만 적용된다).
   누르는 곳은 44px 이상, 입력란 글자는 16px. 기준은 shell.js 의 phone() 과 같아야 한다. */
@media (max-width: 760px), (max-width: 1000px) and (max-height: 480px) {
  .mfp-panel:has(#oxpd-stage[hidden]) { overflow-x: hidden; }
  .mfp-panel:has(#oxpd-stage[hidden]) .mfp-bezel { flex: 1; min-width: 0; margin: 0; }
  #mfp-screen:has(> #oxpd-stage[hidden]) { flex: 1; min-width: 0; width: auto !important; height: auto !important; min-height: 340px; }
  #wp-stage { position: relative; width: 100%; height: auto; min-height: 340px; transform: none; font-size: 14px; }
  #wp-stage .wp { position: relative; inset: auto; min-height: 340px; }
  #wp-stage .ver { height: auto; margin-right: 6px; font-size: 14px; line-height: 1.3; }
  #wp-stage .pill { padding: 4px 10px; font-size: 12px; }
  #wp-stage .pill::before { width: 8px; height: 8px; margin-right: 6px; }
  /* 인증 */
  #wp-stage .wp-auth-head { margin-top: 10px; padding: 0 10px; align-items: center; gap: 8px; }
  #wp-stage .wp-auth-head .logo { width: 90px; height: 30px; }
  #wp-stage .wp-auth-head .right { flex-wrap: wrap; justify-content: flex-end; gap: 4px; }
  #wp-stage .wp-auth-head .opt { margin-right: 0; padding: 0 10px; height: 44px; font-size: 13px; }
  #wp-stage .wp-auth-head .opt img { width: 18px; height: 18px; margin-right: 6px; }
  #wp-stage .wp-auth-body { flex-direction: column; gap: 10px; padding: 10px 10px 12px; }
  #wp-stage .wp-methods { flex: none; flex-direction: row; gap: 8px; margin: 0; padding: 0; }
  #wp-stage .wp-method { flex: 1; min-width: 0; height: 48px; margin: 0; font-size: 14px; white-space: normal; text-align: center; line-height: 1.2; }
  #wp-stage .wp-method img { width: 22px; height: auto; margin-right: 6px; }
  #wp-stage .wp-form { flex: none; margin: 0; padding: 0; justify-content: flex-start; }
  #wp-stage .wp-form .info { font-size: 14px; white-space: normal; }
  #wp-stage .wp-form label { margin-bottom: 6px; font-size: 13px; }
  #wp-stage .wp-form input { height: 48px; border-radius: 8px; font-size: 16px; }
  #wp-stage .wp-form .sp84, #wp-stage .wp-form .sp44 { height: 10px; }
  #wp-stage .wp-form .sp114, #wp-stage .wp-form .sp53 { height: 14px; }
  #wp-stage .wp-login-btn { height: 48px; border-radius: 8px; font-size: 16px !important; }
  /* 장치 홈: 앱 타일 2×2 */
  #wp-stage .wp-home-bar { height: 48px; }
  #wp-stage .wp-home-bar .logout { padding: 0 14px; font-size: 14px; }
  #wp-stage .wp-home-bar .who { padding: 0 10px; font-size: 14px; }
  #wp-stage .wp-home { flex-wrap: wrap; align-content: center; gap: 14px 10px; padding: 16px 10px; }
  #wp-stage .wp-tile, html:not([lang="ko"]) #wp-stage .wp-tile { width: calc(50% - 10px); gap: 8px; font-size: 15px !important; white-space: normal; text-align: center; line-height: 1.2; }
  #wp-stage .wp-tile img, #wp-stage .wp-tile .fax { width: 72px; height: 72px; }
  #wp-stage .wp-tile .fax svg { width: 46px; height: 46px; }
  /* 보안 인쇄: 단추 줄은 접고, 목록은 줄마다 카드(첫 줄 = 선택·문서 이름·삭제, 둘째 줄 = 매수·색상·면·용지·남은 시간) */
  #wp-stage .wp-head.print { height: auto; flex-wrap: wrap; gap: 6px; padding: 8px; }
  #wp-stage .wp-head .logout { font-size: 13px; }
  #wp-stage .wp-head.print .logout { height: 44px; margin-right: 4px; padding: 0 12px; }
  #wp-stage .wp-head .timer { font-size: 15px; }
  #wp-stage .wp-head .timer img { width: 14px; height: 14px; margin-right: 6px; }
  #wp-stage .wp-toolbar { flex-wrap: wrap; gap: 6px; padding: 8px; }
  #wp-stage .card-btn, html:not([lang="ko"]) #wp-stage .card-btn { width: auto; min-width: 0; height: 44px; margin-left: 0; padding: 0 10px; border-width: 1px !important; font-size: 13px !important; }
  #wp-stage .wp-toolbar .count { order: 5; flex: 1 1 100%; padding: 0 2px; text-align: left; font-size: 13px; }
  #wp-stage .wp-table { flex: none; margin: 0 8px; border-width: 1px; }
  #wp-stage .wp-th { display: none; }
  #wp-stage .wp-rows { overflow: visible; }
  #wp-stage .wp-row { height: auto; flex-wrap: wrap; padding: 4px 2px; font-size: 13px; }
  #wp-stage .wp-row .c-chk, #wp-stage .wp-row .c-del { flex: 0 0 44px; min-height: 44px; }
  #wp-stage .wp-row .c-job { flex: 1 1 calc(100% - 88px); min-width: 0; padding-left: 4px; }
  #wp-stage .wp-row .c-n, #wp-stage .wp-row .c-rem, html:not([lang="ko"]) #wp-stage .wp-row .c-n { order: 1; flex: 0 0 auto; padding: 0 6px 4px; font-size: 12px; color: var(--gray-500); }
  #wp-stage .wp-row .c-n:nth-child(3) { margin-left: 44px; }
  #wp-stage .c-job b { font-size: 14px; }
  #wp-stage .c-job small { font-size: 12px; }
  #wp-stage .chk { width: 22px; height: 22px; }
  #wp-stage .x-btn { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; }
  #wp-stage .x-btn img { width: 26px; height: 26px; }
  #wp-stage .wp-empty { height: auto; padding: 24px 8px; font-size: 14px; }
  #wp-stage .wp-footer { flex-wrap: wrap; gap: 8px; padding: 8px; }
  #wp-stage .wp-footer .keep, html:not([lang="ko"]) #wp-stage .wp-footer .keep { flex: 1 1 100%; min-height: 44px; padding: 0; font-size: 13px; white-space: normal; line-height: 1.3; text-align: left; }
  #wp-stage .wp-footer .keep .chk { margin: 0 8px 0 4px; }
  #wp-stage .wp-footer .go { flex: 1 1 100%; padding: 12px 0; font-size: 16px; }
  /* 스캔·복사: 옵션 → 원고대 미리보기 → 실행 단추를 세로로 */
  /* 머리 줄(로그아웃·남은 시간·버전·서버 상태)이 폭을 넘으면 버전·서버 상태를 다음 줄로 내린다 */
  #wp-stage .wp-head.opt { height: auto; min-height: 44px; flex-wrap: wrap; row-gap: 4px; padding-right: 6px; }
  #wp-stage .wp-head.opt .logout { height: 44px; padding: 0 12px; }
  #wp-stage .wp-head.opt .ver { margin-left: auto; }
  #wp-stage .wp-opt-body { flex-direction: column; gap: 8px; margin: 8px 8px 0; }
  #wp-stage .wp-left { width: auto; margin: 0; }
  #wp-stage .wp-right { margin: 0; min-height: 120px; padding: 10px; border-top: 1px solid var(--gray-300); font-size: 13px; }
  #wp-stage .wp-right > img { width: 48px; height: 48px; margin-bottom: 8px; }
  #wp-stage .wp-right .on-glass { margin-bottom: 8px; }
  #wp-stage .wp-simple, #wp-stage .wp-list { overflow: visible; }
  #wp-stage .wp-simple { padding: 10px 12px 4px; }
  #wp-stage .wp-simple .lbl { font-size: 13px; }
  #wp-stage .wp-input { height: 44px; margin: 6px 0 10px; padding: 0 12px; font-size: 16px; }
  #wp-stage .sel-btn { height: 44px; margin: 6px 0 10px; padding: 0 36px 0 12px; font-size: 14px; }
  #wp-stage .sel-btn img { top: 10px; }
  #wp-stage .wp-simple .quota { margin: 6px 0 10px; font-size: 13px; }
  #wp-stage .wp-cap { height: 56px; padding: 0 10px; }
  #wp-stage .wp-cap img { width: 32px; height: 32px; }
  #wp-stage .wp-cap .txt { margin-left: 10px; }
  #wp-stage .wp-cap .name, #wp-stage .wp-cap .val { font-size: 13px; }
  #wp-stage .wp-opt-bar { height: auto; gap: 8px; padding: 8px; }
  #wp-stage .wp-opt-bar .l { width: auto; margin: 0; }
  #wp-stage .wp-opt-bar .opt, #wp-stage .wp-opt-bar .opt.is-wide { width: auto; height: 48px; padding: 0 14px; font-size: 14px; }
  #wp-stage .wp-opt-bar .run { height: 48px; margin: 0; font-size: 15px; }
  /* 안내 창·진행 표시 */
  #wp-stage .wp-dialog { width: calc(100% - 24px); border-radius: 12px; }
  #wp-stage .wp-dialog .msg { margin: 20px 16px; font-size: 15px; line-height: 1.5; }
  #wp-stage .wp-dialog .actions { margin: 4px 0; }
  #wp-stage .wp-dialog .actions button { height: 44px; font-size: 15px; }
  #wp-stage .wp-dim.is-busy { gap: 8px; padding: 0 16px; }
  #wp-stage .wp-busy { font-size: 16px; }
  #wp-stage .wp-busy-tip { font-size: 13px; }
  #wp-stage .demo-tr-badge { font-size: 11px; padding: 1px 8px; }
  /* 홈 단추(장치 테두리 왼쪽)와 OXPd 홈의 [로그인] 줄: 축소돼도 손가락으로 누를 수 있게 44px 이상 */
  .mfp-home { width: 44px; }
  .oxpd-bar { height: 92px; }
  /* OXPd 의 [팩스] 보내기 화면은 0.5배로 축소된 채 보이므로 18·20px 글자를 22px 로 키워 11px 이상으로 보이게 한다(Workpath 쪽은 아래 규칙이 덮는다) */
  .fax-head small, .fax-label, .fax-close { font-size: 22px; }
  /* Workpath 의 [팩스] 보내기 화면도 칸 폭에 맞춘다 */
  #mfp-screen:has(> #oxpd-stage[hidden]) .fax-overlay { width: auto; height: auto; inset: 0; transform: none; }
  #mfp-screen:has(> #oxpd-stage[hidden]) .fax-head { height: 48px; gap: 8px; padding: 0 10px; font-size: 16px; }
  #mfp-screen:has(> #oxpd-stage[hidden]) .fax-head small { font-size: 12px; }
  #mfp-screen:has(> #oxpd-stage[hidden]) .fax-close { height: 44px; padding: 0 14px; font-size: 14px; }
  #mfp-screen:has(> #oxpd-stage[hidden]) .fax-body { gap: 8px; padding: 14px 12px; font-size: 14px; }
  #mfp-screen:has(> #oxpd-stage[hidden]) .fax-label { font-size: 13px; }
  #mfp-screen:has(> #oxpd-stage[hidden]) .fax-input { height: 46px; padding: 0 12px; font-size: 16px; }
  #mfp-screen:has(> #oxpd-stage[hidden]) .fax-send { height: 46px; margin-top: 4px; padding: 0 28px; font-size: 15px; }
}
