/* mobile.css — 현장(창고) 사용성 개선. style.css 다음에 로드됩니다. */

/* ---------- 하단 메뉴: 5칸 + 아이폰 하단 안전영역 ---------- */
.bottom-nav {
  height: auto;
  min-height: 64px;
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
.bottom-nav-5 .nav-item {
  min-height: 64px;
  padding: 6px 2px;
  font-size: 11.5px;
  letter-spacing: -0.3px;
  white-space: nowrap;
}
.bottom-nav-5 .nav-item i {
  font-size: 20px;
}
.bottom-nav-5 .nav-item.active {
  color: var(--primary-color);
}
.bottom-nav-5 .nav-item.active::before {
  content: "";
  position: absolute;
  top: 0;
  left: 22%;
  right: 22%;
  height: 3px;
  border-radius: 0 0 3px 3px;
  background: var(--primary-color);
}
.bottom-nav-5 .nav-item .nav-badge {
  top: 4px;
  right: calc(50% - 22px);
}
/* 하단 메뉴에 가려지지 않도록 본문 아래 여백 확보 */
.app-body {
  padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px));
}

/* ---------- 상단 버튼: 손가락(장갑)으로 누르기 쉬운 크기 ---------- */
#btn-global-refresh,
#btn-manual-guide,
#btn-notification-bell {
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  border-radius: 10px !important;
}
#btn-global-refresh i,
#btn-manual-guide i,
#btn-notification-bell i {
  font-size: 15px !important;
}
#user-profile-badge {
  height: 36px !important;
  border-radius: 10px !important;
}
#current-user-name {
  font-size: 12.5px !important;
  max-width: 64px !important;
}
#user-profile-badge .btn-logout {
  min-width: 30px;
  min-height: 30px;
  justify-content: center;
}
.app-subtitle {
  font-size: 10.5px;
}

/* 좁은 화면(아이폰 SE 등)에서 하단 글자 줄이기 */
@media (max-width: 360px) {
  .bottom-nav-5 .nav-item { font-size: 10.5px; }
  .bottom-nav-5 .nav-item i { font-size: 18px; }
}

/* ---------- 메뉴 탭: 오늘 할 일 + 바로가기 (2026-10 개편) ---------- */
.title-long { display: inline; }
@media (max-width: 480px) {
  .title-long, .app-subtitle { display: none !important; }
  .app-title { font-size: 14px !important; }
}
.menu-section-title {
  display: flex; align-items: center; justify-content: space-between;
  font-size: 13px; font-weight: 900; color: #0f172a; margin: 2px 2px 8px;
}
.menu-section-title i { color: #ea580c; margin-right: 4px; }
.menu-section-sub { font-size: 11.5px; font-weight: 700; color: #64748b; }
.menu-task-list { display: flex; flex-direction: column; gap: 8px; }
.menu-task {
  display: flex; align-items: center; gap: 12px;
  background: #fff; border: 1px solid #e2e8f0; border-radius: 14px;
  padding: 12px 12px 12px 12px; min-height: 64px; box-sizing: border-box;
  color: #0f172a; text-decoration: none; cursor: pointer;
  box-shadow: 0 1px 3px rgba(0,0,0,0.03);
  transition: transform .12s ease, border-color .12s ease;
}
.menu-task:active { transform: scale(0.985); border-color: #94a3b8; }
.menu-task-icon {
  width: 42px; height: 42px; border-radius: 12px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center; font-size: 18px;
}
.menu-task-body { flex: 1 1 auto; min-width: 0; }
.menu-task-title {
  font-size: 15px; font-weight: 900; letter-spacing: -0.3px;
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.menu-task-sub {
  font-size: 12px; color: #64748b; font-weight: 600; margin-top: 2px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.menu-task-chip {
  font-size: 9.5px !important; padding: 1px 6px !important; border-radius: 6px !important;
  background: #eff6ff; color: #0058a3; border: 1px solid #bfdbfe; font-weight: 800;
}
.menu-task .nav-badge, .menu-tile .nav-badge {
  position: static !important; display: inline-block;
  min-width: 22px; padding: 3px 7px; border-radius: 12px;
  font-size: 12px; line-height: 1.2; text-align: center; flex-shrink: 0;
}
.menu-tile .nav-badge { position: absolute !important; top: 6px; right: 8px; font-size: 10.5px; padding: 1px 6px; min-width: 16px; }
.menu-task-arrow { color: #cbd5e1; font-size: 12px; flex-shrink: 0; }
.menu-task-count {
  font-size: 14px; font-weight: 900; color: #c2410c; flex-shrink: 0;
  background: #fff7ed; border: 1px solid #fed7aa; border-radius: 10px; padding: 3px 8px;
}
.menu-task-count.done { color: #047857; background: #ecfdf5; border-color: #a7f3d0; }
.menu-task-progress { height: 5px; background: #f1f5f9; border-radius: 4px; margin-top: 6px; overflow: hidden; }
.menu-task-progress span { display: block; height: 100%; background: #f97316; border-radius: 4px; transition: width .3s ease; }
.menu-task-progress span.done { background: #10b981; }
.menu-task-alert { background: #fff8f8; border-color: #fecdd3; cursor: default; }
.menu-task-alert:active { transform: none; }
.menu-alert-chips { display: flex; gap: 6px; margin-top: 6px; flex-wrap: wrap; }
.menu-alert-chip {
  font-size: 12px; font-weight: 800; border-radius: 8px; padding: 6px 10px;
  cursor: pointer; border: 1px solid; min-height: 32px;
}
.menu-alert-chip.neg { background: #fff1f2; color: #be123c; border-color: #fecdd3; }
.menu-alert-chip.noloc { background: #fffbeb; color: #b45309; border-color: #fde68a; }
.menu-alert-chip b { font-weight: 900; }
.menu-tile-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.menu-tile {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 6px; background: #fff; border: 1px solid #e2e8f0; border-radius: 14px;
  padding: 14px 4px 12px; min-height: 84px; box-sizing: border-box;
  color: #0f172a; text-decoration: none; cursor: pointer; box-shadow: 0 1px 3px rgba(0,0,0,0.03);
  transition: transform .12s ease;
}
.menu-tile:active { transform: scale(0.96); }
.menu-tile-icon { width: 38px; height: 38px; border-radius: 11px; display: flex; align-items: center; justify-content: center; font-size: 17px; }
.menu-tile-text { font-size: 12.5px; font-weight: 800; letter-spacing: -0.3px; white-space: nowrap; }
#menu-location-summary-widget:empty { display: none; }

/* ---------- 로그인 화면 (2026-10 개편 · 가을) ---------- */
.login-overlay {
  background:
    radial-gradient(120% 60% at 50% 0%, #fff7ed 0%, rgba(255,247,237,0) 70%),
    linear-gradient(180deg, #fffaf5 0%, #fdeee2 55%, #f8dcc7 100%) !important;
  padding: 20px 16px !important;
  overflow-y: auto !important;
}
/* 낙엽은 카드 뒤 배경에서만, 천천히 */
.login-overlay .autumn-leaves-container { z-index: 0 !important; }
.login-overlay .login-card { z-index: 2 !important; }
.login-overlay .autumn-leaf { opacity: .55 !important; animation-duration: 16s !important; font-size: 22px !important; filter: none !important; }
.login-overlay .leaf-2, .login-overlay .leaf-5, .login-overlay .leaf-7 { animation-duration: 21s !important; font-size: 18px !important; }
@media (prefers-reduced-motion: reduce) { .login-overlay .autumn-leaf { display: none !important; } }

.login-overlay .login-card {
  max-width: 380px !important; padding: 26px 22px 20px !important; text-align: left !important;
  background: #ffffff !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
  border: 1px solid #fde3cc !important; border-radius: 22px !important;
  box-shadow: 0 24px 48px -16px rgba(154, 52, 18, .28), 0 2px 8px rgba(0,0,0,.04) !important;
}
.login-brand { display: flex; align-items: center; gap: 14px; margin-bottom: 22px; }
.login-brand .login-logo { margin: 0 !important; width: 56px !important; height: 56px !important; flex-shrink: 0; border-radius: 17px !important; }
.login-brand-text { min-width: 0; }
.login-brand .autumn-edition-badge { margin: 0 0 4px 0 !important; padding: 1px 8px !important; font-size: 10.5px !important; box-shadow: none !important; }
.login-brand h2 { font-size: 22px; font-weight: 900; color: #1c1917; letter-spacing: -.5px; margin: 0; line-height: 1.2; }
.login-brand p { font-size: 12.5px; color: #78716c; margin: 2px 0 0; font-weight: 600; }

.login-label { display: block; font-size: 12.5px; font-weight: 800; color: #44403c; margin: 0 0 6px 2px; }
.login-input-wrap { position: relative; margin-bottom: 14px; }
.login-input-wrap > i { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: #c2410c; font-size: 14px; pointer-events: none; }
.login-input-wrap .input-control {
  width: 100%; box-sizing: border-box; height: 52px; padding: 0 46px 0 40px !important;
  font-size: 16px !important; border-radius: 14px !important;
  background: #fafaf9 !important; border: 1.5px solid #e7e5e4 !important; color: #1c1917;
}
.login-input-wrap .input-control:focus { background: #fff !important; border-color: #ea580c !important; box-shadow: 0 0 0 4px rgba(234, 88, 12, .12) !important; outline: none; }
.login-pw-toggle {
  position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
  width: 40px; height: 40px; border: none; background: none; color: #a8a29e; font-size: 15px; cursor: pointer; border-radius: 10px;
}
.login-pw-toggle:active { background: #f5f5f4; }
.login-options { display: flex; align-items: center; justify-content: space-between; margin: 2px 2px 16px; }
.login-remember { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 700; color: #57534e; cursor: pointer; user-select: none; }
.login-remember input { width: 18px; height: 18px; accent-color: #ea580c; margin: 0; }
.login-options .btn-link { font-size: 13px; text-decoration: none; padding: 6px 0; }
.login-overlay .btn-login { width: 100%; height: 54px; margin-top: 0 !important; border-radius: 15px !important; font-size: 16.5px !important; }

.login-temp-pw {
  display: flex; gap: 12px; align-items: flex-start; margin-top: 18px;
  background: #fff7ed; border: 1px dashed #fdba74; border-radius: 14px; padding: 12px 14px;
}
.login-temp-pw-icon { width: 32px; height: 32px; border-radius: 10px; background: #ffedd5; color: #c2410c; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 14px; }
.login-temp-pw-body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.login-temp-pw-body b { font-size: 13px; color: #7c2d12; font-weight: 900; }
.login-temp-pw-body span { font-size: 12.5px; color: #9a3412; font-weight: 700; }
.login-temp-pw-body small { font-size: 11.5px; color: #a16207; line-height: 1.4; }
.login-temp-pw-code {
  font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 13.5px; font-weight: 900; color: #7c2d12;
  background: #ffffff; border: 1px solid #fdba74; border-radius: 6px; padding: 1px 8px; margin-left: 4px; cursor: pointer;
}
.login-temp-pw-code:active { background: #ffedd5; }

/* 로그인 화면 위에서 비밀번호 재설정 창이 보이도록 (로그인 화면 z-index 9999보다 위) */
#reset-pw-modal { z-index: 10001 !important; }
/* 로그인 화면에서도 안내 메시지(토스트)가 보이도록 */
.toast-container { z-index: 10002 !important; }

/* 데이터 불러오는 중 표시 */
#app-loading-indicator { position: fixed; top: 0; left: 0; right: 0; z-index: 10003; pointer-events: none; opacity: 0; transition: opacity .2s; }
#app-loading-indicator.active { opacity: 1; }
.app-loading-bar { height: 3px; background: linear-gradient(90deg, transparent, #ea580c, #f59e0b, transparent); background-size: 50% 100%; background-repeat: no-repeat; animation: appLoadingBar 1.1s ease-in-out infinite; }
@keyframes appLoadingBar { 0% { background-position: -50% 0; } 100% { background-position: 150% 0; } }
.app-loading-pill { position: fixed; left: 50%; transform: translateX(-50%); bottom: calc(80px + env(safe-area-inset-bottom, 0px)); width: max-content; background: rgba(28,25,23,.86); color: #fff; font-size: 12.5px; font-weight: 700; padding: 7px 14px; border-radius: 999px; box-shadow: 0 6px 16px rgba(0,0,0,.18); }
.app-loading-pill i { margin-right: 6px; color: #fdba74; }

/* 상단 제목: 아주 좁은 화면(400px 이하)에서는 단풍·관리자 표시를 숨겨 제목이 잘리지 않게 */
@media (max-width: 400px) {
  .app-title > span[style*="font-size:12px"] { display: none !important; }
  #admin-role-badge, #viewer-role-badge { display: none !important; }
}

/* 바로가기 칸의 Cycle Counting 진행 표시 */
.menu-tile-count {
  position: absolute; top: 6px; right: 6px; font-size: 10.5px; font-weight: 900;
  color: #c2410c; background: #fff7ed; border: 1px solid #fed7aa; border-radius: 8px; padding: 0 5px;
}
.menu-tile-count.done { color: #047857; background: #ecfdf5; border-color: #a7f3d0; }

/* ---------- Test Buy 화면 ---------- */
.tb-card { border-top: 3px solid #a21caf; padding: 12px 14px; }
.tb-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-bottom: 10px; border-bottom: 1px solid #f1f5f9; }
.tb-head h2 { font-size: 16px; font-weight: 900; color: #0f172a; margin: 0; display: flex; align-items: center; gap: 6px; }
.tb-head h2 i { color: #a21caf; }
.tb-head h2 small { font-size: 11.5px; font-weight: 700; color: #64748b; }
.tb-head-actions { display: flex; gap: 6px; }
.tb-btn-ghost { height: 32px; padding: 0 10px; border-radius: 8px; border: 1px solid #cbd5e1; background: #f8fafc; color: #334155; font-size: 12px; font-weight: 700; cursor: pointer; display: inline-flex; align-items: center; gap: 4px; }
.tb-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 12px 0; }
.tb-stat { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 10px 4px; border-radius: 12px; border: 1.5px solid #e2e8f0; background: #fff; cursor: pointer; }
.tb-stat b { font-size: 20px; font-weight: 900; color: #0f172a; line-height: 1.1; }
.tb-stat span { font-size: 11.5px; font-weight: 700; color: #64748b; }
.tb-stat.bad b { color: #be123c; }
.tb-stat.active { border-color: #a21caf; background: #fdf4ff; }
.tb-form { background: #fafafa; border: 1px solid #f1f5f9; border-radius: 14px; padding: 12px; margin-bottom: 14px; }
.tb-label { display: block; font-size: 12.5px; font-weight: 800; color: #334155; margin: 8px 2px 5px; }
.tb-label:first-child { margin-top: 0; }
.tb-opt { font-weight: 600; color: #94a3b8; }
.tb-form .input-control { width: 100%; box-sizing: border-box; height: 46px; font-size: 16px; border-radius: 12px; }
.tb-suggest { display: flex; flex-direction: column; gap: 4px; margin-top: 4px; }
.tb-sug { text-align: left; padding: 10px 12px; border-radius: 10px; border: 1px solid #e2e8f0; background: #fff; font-size: 13px; color: #334155; cursor: pointer; }
.tb-sug b { color: #0f172a; margin-right: 4px; }
.tb-sug-manual { color: #a21caf; font-weight: 700; }
.tb-picked { margin-top: 6px; padding: 10px 12px; border-radius: 10px; background: #fdf4ff; border: 1px solid #f0abfc; font-size: 13px; }
.tb-picked b { color: #0f172a; margin-right: 6px; }
.tb-picked span { color: #86198f; font-weight: 700; }
.tb-last { font-size: 11.5px; color: #64748b; margin-top: 3px; }
.tb-status-group { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.tb-status { height: 56px; border-radius: 12px; border: 1.5px solid #e2e8f0; background: #fff; font-size: 13.5px; font-weight: 800; color: #475569; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; }
.tb-status i { font-size: 17px; }
.tb-status.ok i { color: #10b981; } .tb-status.no i { color: #e11d48; } .tb-status.warn i { color: #f59e0b; }
.tb-status.ok.active { background: #ecfdf5; border-color: #10b981; color: #047857; }
.tb-status.no.active { background: #fff1f2; border-color: #e11d48; color: #be123c; }
.tb-status.warn.active { background: #fffbeb; border-color: #f59e0b; color: #b45309; }
.tb-submit { width: 100%; height: 50px; margin-top: 10px; border-radius: 12px; background: #a21caf !important; font-size: 15px; font-weight: 800; }
.tb-list-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.tb-list-head span { font-size: 13px; font-weight: 900; color: #0f172a; }
.tb-list-head input { width: 45%; height: 32px; border-radius: 8px; border: 1px solid #e2e8f0; padding: 0 10px; font-size: 13px; }
.tb-list { display: flex; flex-direction: column; gap: 6px; }
.tb-row { display: flex; align-items: flex-start; gap: 10px; padding: 10px; border: 1px solid #f1f5f9; border-radius: 12px; background: #fff; }
.tb-chip { flex-shrink: 0; display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; font-weight: 800; padding: 3px 8px; border-radius: 8px; margin-top: 1px; }
.tb-chip.ok { background: #ecfdf5; color: #047857; } .tb-chip.no { background: #fff1f2; color: #be123c; } .tb-chip.warn { background: #fffbeb; color: #b45309; }
.tb-row-body { flex: 1; min-width: 0; }
.tb-row-title { font-size: 13.5px; color: #0f172a; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tb-row-title span { color: #64748b; font-size: 12px; font-weight: 700; }
.tb-row-meta { font-size: 11.5px; color: #94a3b8; margin-top: 2px; }
.tb-row-memo { font-size: 12px; color: #475569; margin-top: 3px; background: #f8fafc; border-radius: 6px; padding: 3px 7px; }
.tb-row-actions { display: flex; flex-direction: column; gap: 4px; flex-shrink: 0; }
.tb-mini { height: 30px; padding: 0 9px; border-radius: 8px; font-size: 11.5px; font-weight: 800; cursor: pointer; border: 1px solid; }
.tb-mini.ok { background: #ecfdf5; color: #047857; border-color: #a7f3d0; }
.tb-mini.del { background: #fff; color: #94a3b8; border-color: #e2e8f0; }
.tb-empty { text-align: center; padding: 22px 0; color: #94a3b8; font-size: 13px; font-weight: 600; }

/* 개발 중 표시 / 안내 창 */
.menu-dev-chip { font-size: 10px; font-weight: 800; color: #6b7280; background: #f3f4f6; border: 1px solid #e5e7eb; border-radius: 6px; padding: 1px 6px; }
.dev-notice-backdrop { position: fixed; inset: 0; z-index: 10004; background: rgba(15,23,42,.45); display: none; align-items: center; justify-content: center; padding: 24px; }
.dev-notice-backdrop.active { display: flex; }
.dev-notice-box { background: #fff; border-radius: 20px; padding: 26px 22px 18px; width: 100%; max-width: 320px; text-align: center; box-shadow: 0 24px 48px -12px rgba(0,0,0,.3); animation: loginCardPop .2s ease-out; }
.dev-notice-icon { width: 56px; height: 56px; border-radius: 16px; margin: 0 auto 12px; background: #fdf4ff; color: #a21caf; display: flex; align-items: center; justify-content: center; font-size: 24px; }
.dev-notice-box h3 { font-size: 17px; font-weight: 900; color: #0f172a; margin: 0 0 6px; }
.dev-notice-box p { font-size: 13px; color: #475569; margin: 0 0 4px; line-height: 1.5; }
.dev-notice-box .dev-notice-sub { font-size: 12px; color: #94a3b8; margin-top: 8px; }
.dev-notice-btn { margin-top: 14px; width: 100%; height: 46px; border: none; border-radius: 12px; background: #0f172a; color: #fff; font-size: 15px; font-weight: 800; cursor: pointer; }

/* ---------- 송도 MFAQ 화면 (2026-10 개편) ---------- */
.mfaq-search-wrap { position: relative; margin-bottom: 8px; }
.mfaq-search-wrap > i { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); color: #94a3b8; font-size: 14px; pointer-events: none; }
.mfaq-search-wrap input {
  width: 100%; box-sizing: border-box; height: 44px; padding: 0 42px 0 38px;
  border: 1.5px solid #cbd5e1; border-radius: 12px; font-size: 16px; font-weight: 600; background: #fff; color: #0f172a; outline: none;
}
.mfaq-search-wrap input:focus { border-color: #0058a3; box-shadow: 0 0 0 3px rgba(0,88,163,.12); }
.mfaq-search-wrap input::-webkit-search-cancel-button { display: none; }
.mfaq-search-clear { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); width: 34px; height: 34px; border: none; background: #f1f5f9; color: #64748b; border-radius: 10px; cursor: pointer; }
.mfaq-filter-row { display: flex; align-items: center; gap: 6px; margin-bottom: 6px; }
.mfaq-chip-row { flex: 1; min-width: 0; display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
.mfaq-chip-row::-webkit-scrollbar { display: none; }
.mfaq-chip {
  flex-shrink: 0; height: 34px; padding: 0 12px; border-radius: 999px; border: 1.5px solid #e2e8f0; background: #fff;
  font-size: 13px; font-weight: 800; color: #475569; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap;
}
.mfaq-chip span { font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; border-radius: 999px; padding: 1px 7px; }
.mfaq-chip.active { background: #0f172a; border-color: #0f172a; color: #fff; }
.mfaq-chip.active span { background: rgba(255,255,255,.18); color: #fff; }
.mfaq-gear { flex-shrink: 0; width: 34px; height: 34px; border-radius: 10px; border: 1.5px solid #e2e8f0; background: #f8fafc; color: #64748b; cursor: pointer; }
.mfaq-sort-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.mfaq-result-count { font-size: 12px; font-weight: 700; color: #64748b; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mfaq-sort-toggle { display: inline-flex; background: #f1f5f9; border-radius: 10px; padding: 3px; flex-shrink: 0; }
.mfaq-sort-toggle button { border: none; background: none; height: 28px; padding: 0 10px; border-radius: 8px; font-size: 12px; font-weight: 800; color: #64748b; cursor: pointer; }
.mfaq-sort-toggle button.active { background: #fff; color: #0f172a; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.mfaq-plus-btn {
  width: 48px; height: 52px; border-radius: 12px; border: 1.5px solid #bfdbfe; background: #eff6ff; cursor: pointer;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; padding: 0;
  transition: transform .1s ease, background .15s ease; -webkit-tap-highlight-color: transparent;
}
.mfaq-plus-btn:active { transform: scale(.92); background: #dbeafe; }
.mfaq-plus-count { font-size: 18px; font-weight: 900; color: #0f172a; line-height: 1; }
.mfaq-plus-label { font-size: 10.5px; font-weight: 900; color: #0058a3; line-height: 1; }
.mfaq-row-item > div:first-child { padding: 11px 10px !important; gap: 10px !important; }

/* ---------- 폰트: Pretendard (모든 휴대폰에서 같은 글꼴) ---------- */
:root {
  --font-family: 'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont, system-ui, 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', sans-serif !important;
}
html, body { font-family: var(--font-family) !important; }
button, input, select, textarea, .input-control { font-family: inherit; }

/* ---------- Test Buy 체크리스트 (2026-10 v2) ---------- */
.tb-start { background: #fafafa; border: 1px solid #f1f5f9; border-radius: 14px; padding: 12px; margin-bottom: 14px; }
.tb-start .tb-label i { color: #a21caf; margin-right: 4px; }
.tb-start .input-control { width: 100%; box-sizing: border-box; height: 48px; font-size: 16px; border-radius: 12px; }
.tb-hint { font-size: 11.5px; color: #94a3b8; margin: 8px 2px 0; }
.tb-sug { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; min-height: 48px; padding: 8px 12px; }
.tb-sug-no { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 12.5px; font-weight: 800; color: #fff; background: #111827; border-radius: 4px; padding: 2px 6px; flex-shrink: 0; }
.tb-sug-name { flex: 1; min-width: 0; font-size: 13.5px; font-weight: 700; color: #0f172a; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tb-sug > i { color: #cbd5e1; font-size: 12px; }
.tb-sug-manual .tb-sug-name { color: #a21caf; }
.tb-sug-empty { font-size: 12.5px; color: #94a3b8; padding: 10px 4px; }
.tb-chip.ok { background: #ecfdf5; color: #047857; } .tb-chip.warn { background: #fffbeb; color: #b45309; } .tb-chip.no { background: #fff1f2; color: #be123c; }
.tb-row-no { font-family: ui-monospace, Menlo, Consolas, monospace; font-weight: 700; color: #475569; }
.tb-issues { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 5px; }
.tb-issue { font-size: 11px; font-weight: 800; border-radius: 6px; padding: 1px 6px; }
.tb-issue.no { background: #fff1f2; color: #be123c; border: 1px solid #fecdd3; }
.tb-issue.fixed { background: #f8fafc; color: #334155; border: 1px solid #e2e8f0; }

body.tb-sheet-open { overflow: hidden; }
.tb-sheet-backdrop { position: fixed; inset: 0; z-index: 10005; background: rgba(15,23,42,.5); display: none; align-items: flex-end; justify-content: center; }
.tb-sheet-backdrop.active { display: flex; }
.tb-sheet {
  width: 100%; max-width: 560px; height: 94vh; height: 94dvh; background: #fff; border-radius: 22px 22px 0 0;
  display: flex; flex-direction: column; overflow: hidden; animation: tbSheetUp .22s ease-out;
}
@keyframes tbSheetUp { from { transform: translateY(40px); opacity: .6; } to { transform: none; opacity: 1; } }
.tb-sheet-top { display: flex; justify-content: flex-end; padding: 10px 12px 0; flex-shrink: 0; }
.tb-sheet-close { width: 44px; height: 44px; border: none; background: none; font-size: 22px; color: #111827; cursor: pointer; }
.tb-sheet-scroll { flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 0 18px 12px; }
.tb-sheet-product { display: flex; gap: 14px; align-items: center; padding: 4px 0 16px; border-bottom: 1px solid #e5e7eb; }
.tb-sheet-thumb { width: 84px; height: 84px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; overflow: hidden; border-radius: 10px; }
.tb-thumb-ph { width: 72px; height: 72px; border-radius: 10px; background: #f3f4f6; color: #cbd5e1; display: flex; align-items: center; justify-content: center; font-size: 26px; }
.tb-sheet-info { min-width: 0; display: flex; flex-direction: column; gap: 5px; align-items: flex-start; }
.tb-sheet-name { font-size: 16px; font-weight: 900; color: #111827; line-height: 1.3; }
.tb-sheet-no { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 15px; font-weight: 800; color: #fff; background: #111827; padding: 3px 10px; border-radius: 3px; letter-spacing: .3px; }
.tb-sheet-loc { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; color: #4b5563; }
.tb-sheet-loc span { font-size: 10.5px; font-weight: 900; color: #fff; background: #6b7280; border-radius: 3px; padding: 1px 5px; }
.tb-sheet-last { font-size: 12px; color: #6b7280; }
.tb-sheet-quick { padding: 12px 0 4px; }
.tb-sheet-quick button { width: 100%; height: 42px; border-radius: 12px; border: 1.5px dashed #a7f3d0; background: #f0fdf4; color: #047857; font-size: 13.5px; font-weight: 800; cursor: pointer; }
.tb-q { padding: 18px 0 6px; border-bottom: 1px solid #e5e7eb; }
.tb-q-head { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 6px; }
.tb-q-head > i { width: 26px; font-size: 20px; color: #111827; text-align: center; margin-top: 1px; flex-shrink: 0; }
.tb-q-title { font-size: 15px; font-weight: 800; color: #111827; line-height: 1.4; }
.tb-q-sub { font-size: 13.5px; color: #6b7280; margin-top: 3px; line-height: 1.45; }
.tb-q.answered .tb-q-head > i { color: #10b981; }
.tb-a {
  display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 54px; padding: 6px 2px;
  border: none; border-bottom: 1px solid #f1f5f9; background: none; cursor: pointer; text-align: left; -webkit-tap-highlight-color: transparent;
}
.tb-a:last-child { border-bottom: none; }
.tb-a span:first-child { font-size: 15px; font-weight: 800; }
.tb-a.yes span:first-child { color: #15803d; }
.tb-a.no span:first-child { color: #db2777; }
.tb-a.fixed span:first-child { color: #111827; }
.tb-radio { width: 28px; height: 28px; border-radius: 50%; border: 1.5px solid #6b7280; flex-shrink: 0; position: relative; transition: all .12s; }
.tb-a.active .tb-radio { border-color: #111827; border-width: 8px; }
.tb-a.yes.active .tb-radio { border-color: #15803d; }
.tb-a.no.active .tb-radio { border-color: #db2777; }
.tb-a.active { background: #fafafa; }
.tb-sheet-memo { padding: 16px 0 8px; }
.tb-sheet-memo label { display: block; font-size: 14px; font-weight: 800; color: #111827; margin-bottom: 6px; }
.tb-sheet-memo label span { font-weight: 600; color: #9ca3af; }
.tb-sheet-memo textarea { width: 100%; box-sizing: border-box; border: 1.5px solid #e5e7eb; border-radius: 12px; padding: 10px 12px; font-size: 15px; font-family: inherit; resize: vertical; }
.tb-sheet-footer { flex-shrink: 0; padding: 10px 16px calc(12px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid #e5e7eb; background: #fff; }
.tb-sheet-done { width: 100%; height: 54px; border: none; border-radius: 999px; background: #0058a3; color: #fff; font-size: 16px; font-weight: 800; cursor: pointer; }
.tb-sheet-done:disabled { background: #d1d5db; color: #6b7280; cursor: not-allowed; }

/* ---------- Test Buy v3: 배정 · 미입고 확인 · 수정 안내 ---------- */
.tb-start-btn { width: 100%; display: flex; align-items: center; gap: 14px; padding: 16px; border: none; border-radius: 16px; background: linear-gradient(135deg, #86198f, #a21caf); color: #fff; cursor: pointer; text-align: left; box-shadow: 0 8px 18px -8px rgba(162,28,175,.6); }
.tb-start-btn > i { font-size: 22px; width: 44px; height: 44px; border-radius: 12px; background: rgba(255,255,255,.18); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.tb-start-btn b { display: block; font-size: 17px; font-weight: 900; }
.tb-start-btn small { display: block; font-size: 12px; opacity: .85; margin-top: 2px; }
.tb-manual { margin-top: 10px; }
.tb-manual summary { font-size: 13px; font-weight: 800; color: #475569; cursor: pointer; padding: 6px 2px; list-style: none; }
.tb-manual summary::-webkit-details-marker { display: none; }
.tb-manual summary i { color: #a21caf; margin-right: 4px; }
.tb-manual .input-control { margin-top: 6px; }
.tb-stat.pull b { color: #b45309; }
.tb-all-link { border: none; background: none; color: #a21caf; font-size: 12.5px; font-weight: 800; cursor: pointer; margin-right: auto; margin-left: 8px; }
.tb-chip.skip { background: #f1f5f9; color: #64748b; }
.tb-issue.pull { background: #fffbeb; color: #b45309; border: 1px solid #fde68a; }
.tb-issue.skip { background: #f1f5f9; color: #64748b; border: 1px solid #e2e8f0; }
.tb-mini.fix { background: #fff1f2; color: #be123c; border-color: #fecdd3; }
.tb-sheet-top { justify-content: space-between !important; align-items: center; padding-left: 18px !important; }
.tb-sheet-step { font-size: 12px; font-weight: 800; color: #a21caf; background: #fdf4ff; border-radius: 999px; padding: 3px 10px; }
.tb-pre { padding: 20px 0 8px; }
.tb-pre .tb-q-head > i { color: #a21caf; }
.tb-pre-btns { display: flex; flex-direction: column; gap: 10px; margin-top: 16px; }
.tb-pre-btns button { width: 100%; min-height: 58px; border-radius: 14px; font-size: 16px; font-weight: 900; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px; }
.tb-pre-yes { background: #fff; color: #475569; border: 1.5px solid #cbd5e1; }
.tb-pre-yes small { font-size: 12px; font-weight: 700; color: #94a3b8; }
.tb-pre-start { background: #0058a3; color: #fff; border: none; box-shadow: 0 6px 14px -6px rgba(0,88,163,.5); }
.tb-inline-fix { margin: 4px 0 10px; padding: 10px 12px; border-radius: 10px; background: #fff1f2; color: #9f1239; font-size: 13px; line-height: 1.45; }
.tb-inline-fix i { margin-right: 6px; }
.tb-inline-fix.pull { background: #fffbeb; color: #92400e; }
.tb-fix-head { display: flex; gap: 12px; align-items: flex-start; padding: 18px 0 12px; }
.tb-fix-head > i { font-size: 20px; color: #be123c; margin-top: 2px; }
.tb-fix-head b { display: block; font-size: 16px; color: #111827; }
.tb-fix-head span { display: block; font-size: 12.5px; color: #6b7280; margin-top: 3px; line-height: 1.45; }
.tb-fix-item { border: 1.5px solid #fecdd3; background: #fff8f8; border-radius: 14px; padding: 14px; margin-bottom: 10px; }
.tb-fix-item.pull { border-color: #fde68a; background: #fffdf5; }
.tb-fix-item.done { border-color: #a7f3d0; background: #f0fdf4; }
.tb-fix-title { font-size: 14.5px; font-weight: 800; color: #111827; display: flex; gap: 8px; align-items: flex-start; line-height: 1.4; }
.tb-fix-title i { margin-top: 3px; width: 18px; text-align: center; }
.tb-fix-guide { font-size: 13.5px; color: #475569; margin: 6px 0 10px 26px; line-height: 1.5; }
.tb-fix-btn { width: 100%; height: 48px; border-radius: 12px; border: 1.5px solid #e2e8f0; background: #fff; font-size: 15px; font-weight: 800; color: #334155; cursor: pointer; }
.tb-fix-btn.done { background: #10b981; border-color: #10b981; color: #fff; }
.tb-fix-foot { display: flex; gap: 8px; }
.tb-fix-foot .tb-sheet-done { flex: 1; }
.tb-later { flex-shrink: 0; height: 54px; padding: 0 16px; border-radius: 999px; border: 1.5px solid #cbd5e1; background: #fff; color: #475569; font-size: 14px; font-weight: 800; cursor: pointer; }

/* ---------- Test Buy v4: 회차(5개) · 슬롯 · 작업자 기록 ---------- */
.tb-session-box { margin: 12px 0; }
.tb-sess { border: 1.5px solid #f0abfc; background: #fdf4ff; border-radius: 16px; padding: 14px; }
.tb-sess-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.tb-sess-head b { font-size: 15px; color: #701a75; }
.tb-sess-head span { display: block; font-size: 12px; color: #86198f; margin-top: 2px; }
.tb-sess-count { font-size: 14px; font-weight: 800; color: #a21caf; white-space: nowrap; }
.tb-sess-count b { font-size: 26px; font-weight: 900; color: #701a75; }
.tb-sess-bar { height: 7px; background: #fae8ff; border-radius: 4px; margin: 10px 0 12px; overflow: hidden; }
.tb-sess-bar span { display: block; height: 100%; background: linear-gradient(90deg, #c026d3, #a21caf); border-radius: 4px; transition: width .3s; }
.tb-slots { display: flex; flex-direction: column; gap: 8px; }
.tb-slot { position: relative; display: flex; align-items: center; gap: 10px; background: #fff; border: 1.5px solid #f5d0fe; border-radius: 14px; padding: 10px 12px 10px 10px; cursor: pointer; min-height: 76px; }
.tb-slot:active { transform: scale(.99); }
.tb-slot.done { cursor: default; border-color: #e5e7eb; background: #fafafa; }
.tb-slot-num { position: absolute; top: -7px; left: -7px; width: 22px; height: 22px; border-radius: 50%; background: #a21caf; color: #fff; font-size: 12px; font-weight: 900; display: flex; align-items: center; justify-content: center; }
.tb-slot.done .tb-slot-num { background: #10b981; }
.tb-slot-body { flex: 1; min-width: 0; }
.tb-slot-name { font-size: 14px; font-weight: 800; color: #0f172a; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tb-slot-no { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 12px; font-weight: 700; color: #64748b; margin-top: 1px; }
.tb-slot-state { font-size: 12px; color: #475569; margin-top: 4px; }
.tb-slot-state.wait { color: #a21caf; font-weight: 800; }
.tb-slot-go { color: #d8b4fe; }
.tb-who { color: #0f172a; font-weight: 800; }
.tb-row { align-items: center; }
.tb-row .product-thumb-container { flex-shrink: 0; }
.tb-row-title .tb-chip { font-size: 11px; padding: 1px 6px; margin-right: 4px; vertical-align: 1px; }
.tb-hist { border: 1px solid #e5e7eb; border-radius: 14px; overflow: hidden; background: #fff; }
.tb-hist-head { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 12px; border: none; background: #fff; cursor: pointer; text-align: left; }
.tb-hist-main b { font-size: 14px; color: #0f172a; }
.tb-hist-main span { display: block; font-size: 12px; color: #64748b; margin-top: 3px; line-height: 1.45; }
.tb-hist-stats { display: flex; flex-direction: column; gap: 3px; align-items: flex-end; flex-shrink: 0; }
.tb-hist-stats span { font-size: 11px; font-weight: 800; border-radius: 6px; padding: 1px 6px; }
.tb-hist-stats .ok { background: #ecfdf5; color: #047857; } .tb-hist-stats .warn { background: #fffbeb; color: #b45309; } .tb-hist-stats .no { background: #fff1f2; color: #be123c; }
.tb-hist-detail { border-top: 1px solid #f1f5f9; padding: 8px; display: flex; flex-direction: column; gap: 6px; background: #fafafa; }
.tb-sheet-thumb { width: 104px !important; height: 104px !important; }
.tb-head h2 { white-space: nowrap; min-width: 0; }
.tb-head-actions { flex-shrink: 0; }

/* Test Buy: 카드 밀어서 교체 */
.tb-slot-wrap { position: relative; border-radius: 14px; }
.tb-slot-wrap.pending { overflow: hidden; }
.tb-slot-wrap .tb-slot { position: relative; z-index: 1; touch-action: pan-y; user-select: none; -webkit-user-select: none; }
.tb-slot-swap {
  position: absolute; top: 0; right: 0; bottom: 0; width: 100%; border: none; border-radius: 14px;
  background: #f59e0b; color: #fff; font-size: 14px; font-weight: 900; cursor: pointer;
  display: flex; flex-direction: column; align-items: flex-end; justify-content: center; padding-right: 24px; gap: 3px;
}
.tb-slot-swap i { font-size: 18px; margin-right: 6px; }
.tb-slot-wrap.armed .tb-slot-swap { background: #d97706; }
.tb-slot-num { z-index: 2; }
.tb-slot-wrap.pending .tb-slot-num { top: 4px; left: 4px; }
.tb-swipe-hint { margin-top: 10px; font-size: 12px; color: #86198f; text-align: center; }
.tb-swipe-hint i { margin-right: 4px; }

/* Test Buy: 회차 소유자 규칙 */
.tb-sess-alert { background: #fff1f2; color: #9f1239; border-radius: 10px; padding: 8px 10px; font-size: 12.5px; font-weight: 700; margin: -4px 0 10px; }
.tb-sess-alert i { margin-right: 4px; }
.tb-slot.needfix { cursor: pointer; border-color: #fecdd3; background: #fff8f8; }
.tb-fix-link { color: #be123c; }
.tb-others { margin-top: 12px; }
.tb-others summary { font-size: 13px; font-weight: 800; color: #475569; cursor: pointer; padding: 8px 2px; list-style: none; }
.tb-others summary::-webkit-details-marker { display: none; }
.tb-others summary i { color: #64748b; margin-right: 4px; }
.tb-others summary span { font-weight: 600; color: #94a3b8; }
.tb-others .tb-sess { margin-top: 8px; }
.tb-sess.readonly { background: #f8fafc; border-color: #e2e8f0; }
.tb-sess.readonly .tb-sess-head b { color: #334155; }
.tb-sess.readonly .tb-sess-head span { color: #64748b; }
.tb-sess.readonly .tb-slot { cursor: default; border-color: #e2e8f0; }
.tb-sess.readonly .tb-slot-num { background: #94a3b8; }
.tb-owner-note { font-size: 11px; color: #94a3b8; font-weight: 700; white-space: nowrap; }
.tb-skip-note { margin: 2px 0 10px; padding: 10px 12px; border-radius: 10px; background: #f1f5f9; color: #475569; font-size: 13px; font-weight: 700; }
.tb-skip-note i { margin-right: 6px; color: #64748b; }
.tb-issue.na { background: #f8fafc; color: #94a3b8; border: 1px solid #e2e8f0; }

/* Test Buy 현황 대시보드 */
.tb-dash { margin: 12px 0 4px; border: 1px solid #e2e8f0; border-radius: 16px; padding: 14px; background: #fff; }
.tb-dash-title { display: flex; justify-content: space-between; align-items: center; font-size: 14.5px; font-weight: 900; color: #0f172a; }
.tb-dash-title i { color: #a21caf; margin-right: 4px; }
.tb-dash-title small { font-size: 11.5px; font-weight: 700; color: #94a3b8; }
.tb-dash-label { font-size: 12px; font-weight: 800; color: #64748b; margin: 12px 2px 6px; }
.tb-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.tb-kpi { background: #f8fafc; border-radius: 12px; padding: 10px 6px; text-align: center; }
.tb-kpi b { display: block; font-size: 22px; font-weight: 900; color: #0f172a; line-height: 1.1; }
.tb-kpi span { display: block; font-size: 11.5px; font-weight: 700; color: #64748b; margin-top: 2px; }
.tb-kpi.main { background: #fdf4ff; } .tb-kpi.main b { color: #86198f; }
.tb-kpi.fix { background: #fffbeb; } .tb-kpi.fix b { color: #b45309; }
.tb-dash-sub { font-size: 11.5px; color: #94a3b8; text-align: right; margin-top: 6px; }
.tb-users { display: flex; flex-direction: column; gap: 8px; }
.tb-user { padding: 8px 10px; border-radius: 10px; background: #f8fafc; }
.tb-user.me { background: #fdf4ff; }
.tb-user-top { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.tb-user-top > b { font-size: 13.5px; color: #0f172a; }
.tb-user-top em { font-style: normal; font-size: 10px; font-weight: 900; color: #fff; background: #a21caf; border-radius: 4px; padding: 0 4px; margin-left: 2px; }
.tb-user-top span { font-size: 12px; color: #64748b; white-space: nowrap; }
.tb-user-top span b { color: #0f172a; }
.tb-user-bar { height: 5px; background: #e2e8f0; border-radius: 3px; margin-top: 6px; overflow: hidden; }
.tb-user-bar span { display: block; height: 100%; background: #c026d3; border-radius: 3px; }
.tb-empty.small { padding: 10px 0; font-size: 12px; }
.tb-kpi span { word-break: keep-all; line-height: 1.3; }
.tb-user-top { flex-wrap: wrap; row-gap: 2px; }
.tb-user-top span { white-space: normal; word-break: keep-all; }
.tb-dash-sub { word-break: keep-all; line-height: 1.45; }

/* ===== 재고 이상 (작게 한 줄) ===== */
.menu-alert-compact { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 10px; padding: 7px 10px; background: #fff8f8; border: 1px solid #fecdd3; border-radius: 12px; }
.menu-alert-compact .menu-alert-label { font-size: 12px; font-weight: 800; color: #be123c; margin-right: 2px; white-space: nowrap; }
.menu-alert-compact .menu-alert-chip { font-size: 11.5px; padding: 3px 9px; min-height: 26px; border-radius: 999px; }

/* ===== Cycle Counting (Test Buy 화면 구성 재사용, 주황 테마) ===== */
.cc-card { border-top-color: #ea580c; }
#tab-cyclecount .tb-head h2 i, #tab-cyclecount .tb-dash-title i { color: #ea580c; }
#tab-cyclecount .tb-kpi.main { background: #fff7ed; } #tab-cyclecount .tb-kpi.main b { color: #c2410c; }
#tab-cyclecount .tb-sess-bar span { background: linear-gradient(90deg, #fb923c, #ea580c); }
.cc-summary { grid-template-columns: repeat(2, 1fr); }
.cc-start-btn { background: linear-gradient(135deg, #c2410c, #ea580c); box-shadow: 0 8px 18px -8px rgba(234,88,12,.6); }
.cc-zone-head { display: flex; align-items: center; justify-content: space-between; margin: 12px 2px 6px; font-size: 12.5px; font-weight: 800; color: #64748b; }
.cc-zone { display: inline-flex; align-items: center; font-size: 11.5px; font-weight: 900; color: #c2410c; background: #ffedd5; border-radius: 6px; padding: 2px 7px; }
.cc-sys { color: #c2410c; font-weight: 800; }
.cc-step { color: #c2410c !important; background: #fff7ed !important; }
.cc-loc { margin-top: 6px; font-size: 12.5px; color: #475569; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.cc-loc b { color: #0f172a; }
.cc-count { margin-top: 14px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 16px; padding: 6px 14px 12px; }
.cc-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 0; border-bottom: 1px solid #eef2f7; font-size: 14px; font-weight: 700; color: #475569; }
.cc-row b { font-size: 18px; font-weight: 900; color: #0f172a; }
.cc-actual { border-bottom: none; }
.cc-stepper { display: flex; align-items: center; gap: 6px; }
.cc-stepper button { width: 44px; height: 44px; border-radius: 12px; border: 1px solid #cbd5e1; background: #fff; font-size: 22px; font-weight: 800; color: #0f172a; cursor: pointer; }
.cc-stepper button:active { background: #f1f5f9; }
.cc-stepper input { width: 76px; height: 44px; border-radius: 12px; border: 2px solid #ea580c; text-align: center; font-size: 20px; font-weight: 900; color: #0f172a; background: #fff; -moz-appearance: textfield; }
.cc-stepper input::-webkit-outer-spin-button, .cc-stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cc-diff { margin-top: 4px; padding: 9px 12px; border-radius: 10px; font-size: 13px; font-weight: 800; word-break: keep-all; }
.cc-diff.ok { background: #ecfdf5; color: #047857; }
.cc-diff.bad { background: #fffbeb; color: #b45309; }
.cc-locbox { margin-top: 14px; }
.cc-loc-title { font-size: 12.5px; font-weight: 800; color: #64748b; margin-bottom: 8px; }
.cc-loc-btns { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.cc-loc-btns button { height: 40px; border-radius: 10px; border: 1px solid #e2e8f0; background: #fff; font-size: 14px; font-weight: 800; color: #475569; cursor: pointer; }
.cc-loc-btns button.active { border-color: #ea580c; background: #fff7ed; color: #c2410c; }
.tb-sheet-done.cc-ok { background: #059669; }
.tb-sheet-done.cc-adj { background: #ea580c; }
#tab-cyclecount .tb-stat.active { border-color: #ea580c; background: #fff7ed; }
.cc-sess:not(.readonly) { border-color: #fdba74; background: #fff7ed; }
.cc-sess:not(.readonly) .tb-sess-head b { color: #9a3412; }
.cc-sess:not(.readonly) .tb-sess-head span { color: #c2410c; }
.cc-sess .tb-sess-count { color: #ea580c; } .cc-sess:not(.readonly) .tb-sess-count b { color: #9a3412; }
.cc-sess .tb-sess-bar { background: #ffedd5; }
.cc-sess:not(.readonly) .tb-slot { border-color: #fed7aa; }
.cc-sess .tb-slot-state.wait { color: #c2410c; }
.cc-sess .tb-slot-go { color: #fdba74; }
.cc-sess .tb-swipe-hint { color: #c2410c; }
.tb-kpi.ok { background: #ecfdf5; } .tb-kpi.ok b { color: #047857; }
/* ===== MFAQ 오늘 현황 (파랑 테마) ===== */
#mfaq-stats { margin-bottom: 10px; }
.mfaq-dash .tb-dash-title i { color: #0058a3; }
.mfaq-dash .tb-kpi.main { background: #eff6ff; } .mfaq-dash .tb-kpi.main b { color: #0058a3; }
.mfaq-dash { margin-top: 0; }
.mfaq-who { display: flex; flex-wrap: wrap; gap: 3px 10px; font-size: 11px; color: #64748b; line-height: 1.3; }
.mfaq-who i { font-size: 9.5px; color: #94a3b8; margin-right: 3px; }
.mfaq-who b { color: #334155; font-weight: 800; }
.mfaq-who em { font-style: normal; font-weight: 800; color: #0058a3; margin-left: 1px; }

/* ===== 매장 입고 권한 ===== */
.si-lock-bar { display: flex; gap: 10px; align-items: flex-start; background: #f8fafc; border: 1.5px solid #cbd5e1; border-radius: 12px; padding: 10px 12px; margin-bottom: 10px; }
.si-lock-bar > i { color: #64748b; font-size: 16px; margin-top: 2px; }
.si-lock-bar b { display: block; font-size: 13px; font-weight: 900; color: #0f172a; }
.si-lock-bar span { display: block; font-size: 12px; color: #475569; line-height: 1.45; margin-top: 2px; word-break: keep-all; }
.si-locked #store-barcode-input { background: #f1f5f9 !important; border-color: #cbd5e1 !important; }
.si-access-btn { height: 32px; padding: 0 11px; border-radius: 8px; border: 1.5px solid #bfdbfe; background: #eff6ff; color: #0058a3; font-size: 11.5px; font-weight: 800; cursor: pointer; display: inline-flex; align-items: center; gap: 5px; }
.si-step { color: #0058a3 !important; background: #eff6ff !important; }
.si-access-help { font-size: 12.5px; color: #475569; background: #f8fafc; border-radius: 10px; padding: 9px 11px; margin-bottom: 10px; word-break: keep-all; }
.si-access-count { font-size: 12px; font-weight: 700; color: #64748b; margin: 0 2px 8px; }
.si-access-count b { color: #0058a3; }
.si-access-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; border: 1px solid #e2e8f0; border-radius: 12px; margin-bottom: 6px; background: #fff; }
.si-access-row.on { border-color: #bfdbfe; background: #f8fbff; }
.si-access-id b { font-size: 14px; font-weight: 900; color: #0f172a; }
.si-access-id small { display: block; font-size: 11px; color: #94a3b8; margin-top: 1px; }
.si-tag { font-size: 10px; font-weight: 800; color: #0058a3; background: #e0f2fe; border-radius: 6px; padding: 1px 5px; margin-left: 5px; vertical-align: 1px; }
.si-tag.gray { color: #64748b; background: #f1f5f9; }
.si-switch { margin: 0; flex-shrink: 0; }
.si-lock-bar.ok { background: #ecfdf5; border-color: #a7f3d0; }
.si-lock-bar.ok > i { color: #059669; }
.si-lock-bar.ok b { color: #065f46; }
.si-left { color: #059669; font-weight: 800; }
.si-access-row { flex-wrap: nowrap; }
.si-access-id { flex: 1; min-width: 0; }
.si-extend { flex-shrink: 0; height: 30px; padding: 0 9px; border-radius: 8px; border: 1px solid #a7f3d0; background: #ecfdf5; color: #047857; font-size: 11.5px; font-weight: 800; cursor: pointer; white-space: nowrap; }

/* ===== 창고 챙기기 카드: 재고 크게 · 수량칸 크게 · 최대 · 바로 챙기기 ===== */
.pk-stock { display: inline-flex; align-items: baseline; gap: 3px; flex-shrink: 0; white-space: nowrap; }
.pk-stock small { font-size: 11px; font-weight: 700; color: #64748b; margin-right: 2px; }
.pk-stock b { font-size: 24px; font-weight: 900; color: #0058a3; line-height: 1; }
.pk-stock em { font-style: normal; font-size: 12px; font-weight: 800; color: #475569; }
.pk-actions { display: flex; align-items: stretch; gap: 6px; margin-top: 8px; padding-top: 10px; border-top: 1px dashed #e2e8f0; }
.pk-qty { flex: 1; min-width: 0; height: 46px; border: 2px solid #cbd5e1; border-radius: 10px; text-align: center; font-size: 20px; font-weight: 900; color: #0f172a; background: #fff; outline: none; padding: 0 8px; -moz-appearance: textfield; }
.pk-qty:focus { border-color: #0058a3; box-shadow: 0 0 0 3px rgba(0,88,163,.12); }
.pk-qty::-webkit-outer-spin-button, .pk-qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.pk-max { flex-shrink: 0; height: 46px; padding: 0 12px; border-radius: 10px; border: 1.5px solid #bfdbfe; background: #eff6ff; color: #0058a3; font-size: 13px; font-weight: 900; cursor: pointer; }
.pk-go { flex-shrink: 0; height: 46px; padding: 0 14px; border-radius: 10px; border: none; background: #0058a3; color: #fff; font-size: 13.5px; font-weight: 900; cursor: pointer; display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; box-shadow: 0 2px 6px rgba(0,88,163,.25); }
#badge-picklist, #badge-nav-picklist { display: none !important; }  /* 대기열 삭제 → 창고 챙기기 배지 숨김 */

/* ===== 입출고 등록 화면 ===== */
#reg-location-guide-banner { display: none !important; }   /* 위치 안내는 제품 카드로 대체 */
#register-form { border-radius: 14px; padding: 10px; margin: 0 -10px; border: 2px solid transparent; transition: border-color .2s, background .2s; }
#register-form.reg-mode-in { border-color: #a7f3d0; background: #f6fffb; }
#register-form.reg-mode-out { border-color: #fecaca; background: #fff8f8; }
#register-form.reg-mode-in .btn-direct-save { background: #059669 !important; box-shadow: 0 3px 8px rgba(5,150,105,.3) !important; }
#register-form.reg-mode-out .btn-direct-save { background: #dc2626 !important; box-shadow: 0 3px 8px rgba(220,38,38,.3) !important; }
.btn-direct-save, .btn-add-cart { min-height: 48px; font-size: 14px !important; }
.reg-date-warn { margin-top: 4px; font-size: 11.5px; font-weight: 800; color: #b45309; background: #fffbeb; border: 1px solid #fde68a; border-radius: 8px; padding: 4px 8px; word-break: keep-all; }
/* 제품 카드 */
.reg-product-card { display: flex; gap: 12px; align-items: center; background: #fff; border: 1.5px solid #e2e8f0; border-radius: 14px; padding: 10px 12px; margin-bottom: 10px; }
.rp-thumb { flex-shrink: 0; }
.rp-body { flex: 1; min-width: 0; }
.rp-name { font-size: 15px; font-weight: 900; color: #0f172a; line-height: 1.3; word-break: keep-all; }
.rp-no { font-family: monospace; font-size: 12.5px; font-weight: 700; color: #64748b; margin-top: 1px; }
.rp-locs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 5px; }
.rp-loc { font-size: 12px; font-weight: 900; color: #0369a1; background: #e0f2fe; border-radius: 6px; padding: 2px 7px; }
.rp-loc.out { color: #be123c; background: #ffe4e6; }
.rp-loc.none { color: #b45309; background: #fef3c7; }
.rp-hint { font-size: 11px; font-weight: 700; color: #94a3b8; }
/* 수량 · 최대 */
.reg-qty-row { display: flex; gap: 6px; }
.reg-qty-big { flex: 1; min-width: 0; height: 52px !important; font-size: 22px !important; font-weight: 900 !important; text-align: center; border-radius: 12px !important; }
.reg-qty-big::-webkit-outer-spin-button, .reg-qty-big::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.reg-qty-max { flex-shrink: 0; height: 52px; padding: 0 16px; border-radius: 12px; border: 1.5px solid #fecaca; background: #fff1f2; color: #dc2626; font-size: 14px; font-weight: 900; cursor: pointer; }
/* 재고 미리보기 */
.reg-stock-big { display: flex !important; align-items: baseline; justify-content: center; flex-wrap: wrap; gap: 4px 6px; min-height: 52px; padding: 10px 12px !important; margin-bottom: 10px; border-radius: 12px !important; border: 1.5px dashed #cbd5e1 !important; background: #fff !important; height: auto !important; }
.reg-stock-big .rs-label { font-size: 12px; font-weight: 800; color: #64748b; }
.reg-stock-big .rs-now { font-size: 26px; font-weight: 900; color: #0f172a; line-height: 1; }
.reg-stock-big .rs-after { font-size: 26px; font-weight: 900; line-height: 1; }
.reg-stock-big .rs-unit { font-size: 13px; font-weight: 800; color: #475569; }
.reg-stock-big .rs-arrow { color: #94a3b8; font-size: 14px; margin: 0 4px; align-self: center; }
.reg-stock-big .rs-msg { font-size: 13px; font-weight: 900; color: #dc2626; align-self: center; }
.reg-stock-big.in { border-color: #a7f3d0 !important; } .reg-stock-big.in .rs-after { color: #059669; }
.reg-stock-big.out { border-color: #fecaca !important; } .reg-stock-big.out .rs-after { color: #dc2626; }
.reg-stock-big.bad { border: 2px solid #ef4444 !important; background: #fef2f2 !important; }
/* 내 최근 등록 */
.reg-recent { margin-top: 14px; }
.rr-head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin: 0 2px 6px; }
.rr-head span { font-size: 13px; font-weight: 900; color: #0f172a; } .rr-head span i { color: #0058a3; margin-right: 4px; }
.rr-head small { font-size: 11px; color: #94a3b8; font-weight: 700; }
.rr-row { display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; padding: 8px 10px; margin-bottom: 6px; }
.rr-type { flex-shrink: 0; font-size: 11px; font-weight: 900; border-radius: 6px; padding: 3px 6px; }
.rr-type.in { color: #047857; background: #d1fae5; } .rr-type.out { color: #b91c1c; background: #fee2e2; }
.rr-body { flex: 1; min-width: 0; }
.rr-name { font-size: 13px; font-weight: 800; color: #0f172a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rr-meta { font-size: 11px; color: #64748b; font-weight: 600; }
.rr-qty { flex-shrink: 0; font-size: 16px; font-weight: 900; } .rr-qty.in { color: #059669; } .rr-qty.out { color: #dc2626; }
.rr-undo { flex-shrink: 0; height: 30px; padding: 0 10px; border-radius: 8px; border: 1px solid #cbd5e1; background: #f8fafc; color: #475569; font-size: 12px; font-weight: 800; cursor: pointer; }
/* 입고 구역 팝업 */
.rz-step { color: #047857 !important; background: #ecfdf5 !important; }
.rz-prod { display: flex; gap: 10px; align-items: center; background: #f8fafc; border-radius: 12px; padding: 10px; }
.rz-name { font-size: 14.5px; font-weight: 900; color: #0f172a; word-break: keep-all; }
.rz-meta { font-size: 12px; color: #64748b; font-weight: 700; margin-top: 2px; } .rz-meta b { color: #059669; }
.rz-q { font-size: 18px; font-weight: 900; color: #0f172a; margin: 18px 2px 4px; text-align: center; }
.rz-cur { text-align: center; font-size: 13px; font-weight: 700; color: #475569; margin-bottom: 14px; } .rz-cur b { color: #0369a1; } .rz-cur.none { color: #b45309; }
.rz-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.rz-zone { height: 84px; border-radius: 16px; border: 2px solid #e2e8f0; background: #fff; font-size: 26px; font-weight: 900; color: #0f172a; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; }
.rz-zone:active { transform: scale(.97); }
.rz-zone small { font-size: 11px; font-weight: 800; color: #0369a1; }
.rz-zone.cur { border-color: #0ea5e9; background: #f0f9ff; }
.rz-zone.ramp { grid-column: 1 / -1; height: 52px; font-size: 18px; color: #475569; }
.rz-cancel { width: 100%; height: 46px; margin-top: 14px; border-radius: 999px; border: 1px solid #cbd5e1; background: #fff; color: #475569; font-size: 14px; font-weight: 800; cursor: pointer; }
.rz-move { text-align: center; padding: 10px 4px 4px; }
.rz-move > i { font-size: 30px; color: #f59e0b; }
.rz-move-title { font-size: 19px; font-weight: 900; color: #0f172a; margin-top: 6px; }
.rz-move-path { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 14px 0; }
.rz-move-path span { font-size: 26px; font-weight: 900; color: #94a3b8; border: 2px solid #e2e8f0; border-radius: 12px; padding: 6px 14px; }
.rz-move-path span.to { color: #047857; border-color: #6ee7b7; background: #ecfdf5; }
.rz-move-path i { color: #94a3b8; }
.rz-move-desc { font-size: 13px; color: #475569; line-height: 1.55; word-break: keep-all; }
.rz-actions { display: grid; grid-template-columns: 1fr 1.6fr; gap: 8px; margin-top: 18px; }
.rz-back, .rz-ok { height: 50px; border-radius: 999px; font-size: 14px; font-weight: 900; cursor: pointer; }
.rz-back { border: 1px solid #cbd5e1; background: #fff; color: #475569; }
.rz-ok { border: none; background: #059669; color: #fff; }
/* 입고 구역: 가운데 뜨는 팝업 (내용만큼만 높이) */
#reg-zone-sheet { align-items: center; padding: 16px; }
#reg-zone-sheet .rz-sheet { height: auto !important; max-height: 90vh; width: 100%; max-width: 440px; border-radius: 22px !important; animation: rzPop .18s ease-out; }
#reg-zone-sheet .tb-sheet-scroll { flex: 0 1 auto; padding-bottom: 18px; }
@keyframes rzPop { from { transform: scale(.94); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.rz-date { display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 10px; padding: 8px 10px; border-radius: 10px; background: #fffbeb; border: 1.5px solid #fcd34d; color: #b45309; font-size: 13px; font-weight: 900; word-break: keep-all; text-align: center; }
.tb-dash-note { margin-top: 6px; font-size: 11px; color: #94a3b8; line-height: 1.45; word-break: keep-all; }
.tb-done-today { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 8px 0 2px; padding: 8px 10px; background: #f8fafc; border-radius: 10px; }
.tb-done-label { font-size: 12px; font-weight: 800; color: #475569; margin-right: 2px; } .tb-done-label i { color: #10b981; margin-right: 3px; }
.tb-done-id { font-size: 12.5px; font-weight: 900; color: #0f172a; background: #fff; border: 1px solid #e2e8f0; border-radius: 999px; padding: 2px 9px; }
.tb-done-id em { font-style: normal; color: #a21caf; margin-left: 2px; }
.tb-done-none { font-size: 12px; color: #94a3b8; font-weight: 700; }
#tab-cyclecount .tb-done-id em { color: #ea580c; }
.menu-task-desc { font-size: 11.5px; font-weight: 700; color: #64748b; margin-left: 4px; letter-spacing: -0.2px; word-break: keep-all; }
.menu-task-desc { display: inline-block; white-space: nowrap; margin-left: 2px; font-size: 11px; }
#loc-change-sheet { align-items: center; padding: 16px; }
#loc-change-sheet .rz-sheet { height: auto !important; max-height: 90vh; width: 100%; max-width: 440px; border-radius: 22px !important; animation: rzPop .18s ease-out; }
#loc-change-sheet .tb-sheet-scroll { flex: 0 1 auto; padding-bottom: 18px; }
.lc-step { color: #0058a3 !important; background: #eff6ff !important; }
.rz-zone[disabled] { cursor: default; opacity: 1; }
.lc-multi-count { flex-shrink: 0; width: 52px; height: 52px; border-radius: 12px; background: #0058a3; color: #fff; font-size: 22px; font-weight: 900; display: flex; align-items: baseline; justify-content: center; padding-top: 10px; box-sizing: border-box; } .lc-multi-count small { font-size: 11px; margin-left: 1px; }
#bulk-action-bar button { white-space: nowrap; } #bulk-action-bar { box-sizing: border-box; gap: 8px; }
/* 램프 버튼 안내 문구 (입고 구역 팝업 · 구역 변경 팝업 공통) */
.rz-zone.ramp { height: 62px; }
.rz-zone.ramp::after { content: "(램프 구간은 최대한 피하기)"; font-size: 11.5px; font-weight: 800; color: #d97706; }
/* 오늘 할 일: 설명 문구는 각 업무 색으로 구분 (진행 중 아이디 등 상태 문구는 회색 유지) */
#menu-task-store-sub { color: #0058a3; font-weight: 800; }
#menu-task-mfaq-sub { color: #047857; font-weight: 800; }
.menu-task-desc { padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 800; margin-left: 4px; vertical-align: 2px; }
#menu-item-testbuy .menu-task-desc { background: #fae8ff; color: #a21caf; }
#menu-item-cycle-counting .menu-task-desc { background: #ffedd5; color: #c2410c; }
.mfaq-dash .tb-done-label i { color: #0058a3; } .mfaq-dash .tb-done-id em { color: #0058a3; }
#test-sandbox-banner { position: relative; z-index: 100000; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; background: #7c3aed; color: #fff; font-size: 12px; font-weight: 800; text-align: center; padding: 5px 10px; box-shadow: 0 2px 6px rgba(0,0,0,.15); word-break: keep-all; }
#test-sandbox-banner i { margin-right: 4px; }


/* ===== Test Buy 질문 카드 (한 장씩) ===== */
.tbc-dots { display: flex; justify-content: center; gap: 7px; margin: 4px 0 14px; }
.tbc-dot { width: 26px; height: 6px; border-radius: 999px; border: none; background: #e2e8f0; padding: 0; cursor: pointer; }
.tbc-dot.yes { background: #6ee7b7; } .tbc-dot.no { background: #fca5a5; }
.tbc-dot.cur { background: #a21caf; width: 38px; }
.tbc-card { border: 1.5px solid #f0abfc; background: #fdf4ff; border-radius: 20px; padding: 22px 18px 18px; text-align: center; }
.tbc-in { animation: tbcIn .22s ease-out; }
@keyframes tbcIn { from { transform: translateX(28px); opacity: 0; } to { transform: none; opacity: 1; } }
.tbc-num { font-size: 12px; font-weight: 800; color: #a21caf; }
.tbc-icon { width: 56px; height: 56px; margin: 12px auto 10px; border-radius: 16px; background: #fff; color: #a21caf; display: flex; align-items: center; justify-content: center; font-size: 24px; box-shadow: 0 2px 8px rgba(162,28,175,.12); }
.tbc-title { font-size: 19px; font-weight: 900; color: #0f172a; line-height: 1.4; word-break: keep-all; min-height: 54px; }
.tbc-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 18px; }
.tbc-yes, .tbc-no { height: 64px; border-radius: 16px; font-size: 19px; font-weight: 900; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px; }
.tbc-yes { background: #fff; color: #047857; border: 2px solid #6ee7b7; } .tbc-yes.active, .tbc-yes:active { background: #059669; color: #fff; border-color: #059669; }
.tbc-no { background: #fff; color: #be123c; border: 2px solid #fda4af; } .tbc-no.active, .tbc-no:active { background: #e11d48; color: #fff; border-color: #e11d48; }
.tbc-hint { margin-top: 10px; font-size: 12px; font-weight: 700; color: #94a3b8; }
.tbc-nav { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; min-height: 36px; }
.tbc-back { border: none; background: none; color: #64748b; font-size: 13.5px; font-weight: 800; cursor: pointer; padding: 6px 4px; }
.tbc-allyes { border: 1.5px dashed #86efac; background: #f0fdf4; color: #047857; font-size: 13px; font-weight: 800; border-radius: 10px; padding: 8px 12px; cursor: pointer; }
.tbc-sum { border: 1.5px solid #e2e8f0; border-radius: 18px; padding: 14px; background: #fff; }
.tbc-sum-title { font-size: 16px; font-weight: 900; color: #0f172a; margin-bottom: 10px; } .tbc-sum-title i { color: #059669; }
.tbc-sum-title .fa-triangle-exclamation { color: #e11d48; }
.tbc-sum-row { width: 100%; display: flex; align-items: center; gap: 10px; padding: 10px 12px; margin-bottom: 6px; border-radius: 12px; border: 1px solid #e2e8f0; background: #f8fafc; cursor: pointer; text-align: left; }
.tbc-sum-row i { width: 18px; color: #64748b; } .tbc-sum-row span { flex: 1; font-size: 14px; font-weight: 800; color: #334155; }
.tbc-sum-row b { font-size: 13px; font-weight: 900; } .tbc-sum-row.yes b { color: #059669; } .tbc-sum-row.no { background: #fff1f2; border-color: #fecdd3; } .tbc-sum-row.no b { color: #e11d48; }
.tbc-sum-fix { font-size: 12px; color: #9f1239; font-weight: 700; margin: -2px 4px 8px; line-height: 1.45; word-break: keep-all; }
.tbc-sum-tip { font-size: 11.5px; color: #94a3b8; font-weight: 700; text-align: center; margin-top: 6px; }
/* 구입 불가: 디스플레이 뺐어요 / 이미 디스플레이가 없어요 */
.tb-pull-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.tb-fix-btn.alt:not(.done) { background: #fff; color: #475569; border-color: #cbd5e1; }
.tb-pull-btns { grid-template-columns: 1fr; }
.auth-exp-card { width: 100%; max-width: 380px; background: #fff; border-radius: 22px; padding: 24px 20px 18px; text-align: center; animation: rzPop .18s ease-out; }
.auth-exp-icon { width: 56px; height: 56px; margin: 0 auto 10px; border-radius: 16px; background: #fef2f2; color: #dc2626; display: flex; align-items: center; justify-content: center; font-size: 24px; }
.auth-exp-title { font-size: 19px; font-weight: 900; color: #0f172a; }
.auth-exp-desc { font-size: 13px; color: #475569; line-height: 1.6; margin: 8px 0 16px; word-break: keep-all; }
.auth-exp-btn { width: 100%; height: 50px; border: none; border-radius: 999px; background: #0058a3; color: #fff; font-size: 15px; font-weight: 900; cursor: pointer; }
.auth-exp-icon.sandbox { background: #f5f3ff; color: #7c3aed; }
#test-sandbox-banner b { font-variant-numeric: tabular-nums; }
#test-sandbox-banner.ending { background: #dc2626; }
/* 입고 / 출고 선택 팝업 */
.rt-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.rt-btn { height: 120px; border-radius: 18px; border: 2px solid; background: #fff; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; }
.rt-btn i { font-size: 22px; }
.rt-btn b { font-size: 26px; font-weight: 900; }
.rt-btn small { font-size: 12px; font-weight: 800; opacity: .85; }
.rt-btn.in { border-color: #6ee7b7; color: #047857; } .rt-btn.in:active { background: #059669; color: #fff; }
.rt-btn.out { border-color: #fca5a5; color: #b91c1c; } .rt-btn.out:active { background: #dc2626; color: #fff; }
.rt-btn[disabled] { border-color: #e2e8f0; color: #94a3b8; background: #f8fafc; cursor: not-allowed; }

/* 입출고 등록 첫 화면: 입고 / 출고 큰 버튼 */
#reg-chooser { padding: 8px 0 4px; }
.rc-title { font-size: 18px; font-weight: 900; color: #0f172a; text-align: center; margin: 6px 0 14px; }
.rc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.rc-btn { height: 200px; border: none; border-radius: 20px; color: #fff; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; box-shadow: 0 8px 18px -8px rgba(15,23,42,.35); }
.rc-btn i { font-size: 26px; opacity: .9; }
.rc-btn b { font-size: 34px; font-weight: 900; letter-spacing: 2px; }
.rc-btn small { font-size: 13px; font-weight: 700; opacity: .85; }
.rc-btn.in { background: #4472c4; } .rc-btn.out { background: linear-gradient(180deg, #f28c50, #e8701a); }
.rc-btn:active { transform: scale(.98); }
.reg-back-chooser { border: none; background: none; color: #64748b; font-size: 13px; font-weight: 800; cursor: pointer; padding: 2px 0 8px; }

/* ===== 매장 재고 체크 (청록) ===== */
#menu-item-storecheck .menu-task-desc { background: #ccfbf1; color: #0f766e; }
.sc-card { border-top-color: #0d9488; }
#tab-storecheck .tb-head h2 i, #tab-storecheck .tb-dash-title i { color: #0d9488; }
#tab-storecheck .tb-kpi.main { background: #f0fdfa; } #tab-storecheck .tb-kpi.main b { color: #0f766e; }
#tab-storecheck .tb-sess-bar span { background: linear-gradient(90deg, #2dd4bf, #0d9488); }
.sc-summary { grid-template-columns: repeat(2, 1fr); }
.sc-start-btn { background: linear-gradient(135deg, #0f766e, #0d9488); box-shadow: 0 8px 18px -8px rgba(13,148,136,.6); }
.sc-step { color: #0f766e !important; background: #f0fdfa !important; }
.sc-count { margin-top: 14px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 16px; padding: 16px 14px; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.sc-q { font-size: 15px; font-weight: 800; color: #0f172a; }
.sc-stepper button { width: 56px; height: 56px; font-size: 26px; }
.sc-stepper input { width: 110px; height: 56px; font-size: 26px; border-color: #0d9488 !important; }
.sc-zero { width: 100%; height: 46px; border-radius: 12px; border: 1px dashed #fca5a5; background: #fff; color: #b91c1c; font-size: 14px; font-weight: 800; }
.sc-zero:active { background: #fef2f2; }
.tb-sheet-done.sc-has { background: #0d9488; }
.tb-sheet-done.sc-none { background: #dc2626; }
.tb-sheet-done.sc-wait { background: #cbd5e1; color: #475569; }
#tab-storecheck .tb-stat.active { border-color: #0d9488; background: #f0fdfa; }
.sc-sess:not(.readonly) { border-color: #5eead4; background: #f0fdfa; }
.sc-sess:not(.readonly) .tb-sess-head b { color: #115e59; }
.sc-sess:not(.readonly) .tb-sess-head span { color: #0f766e; }
.sc-sess .tb-sess-count { color: #0d9488; } .sc-sess:not(.readonly) .tb-sess-count b { color: #115e59; }
.sc-sess .tb-sess-bar { background: #ccfbf1; }
.sc-sess:not(.readonly) .tb-slot { border-color: #99f6e4; }
.sc-sess .tb-slot-state.wait { color: #0f766e; }
.sc-sess .tb-slot-go { color: #5eead4; }
#sc-sheet .sc-stepper input, #sc-sheet .sc-stepper input:focus { border: 2px solid #0d9488 !important; box-shadow: 0 0 0 3px rgba(13,148,136,.15) !important; outline: none !important; }
#tab-storecheck .sc-excel { color: #107c41 !important; border-color: #b7dfc8 !important; } #tab-storecheck .sc-excel i { color: #107c41; }
@media (max-width: 420px) { #tab-storecheck .tb-head h2 small { display: none; } }
/* 매장 재고 체크: 창고 재고 안내 */
.sc-wh { margin-top: 14px; display: flex; align-items: center; gap: 8px; padding: 12px 14px; border-radius: 14px; background: #eff6ff; border: 1px solid #bfdbfe; color: #1e3a8a; font-size: 14px; font-weight: 700; }
.sc-wh i { color: #0058a3; }
.sc-wh span { flex: 1; }
.sc-wh b { font-size: 18px; font-weight: 900; color: #0058a3; }
.sc-wh em { font-style: normal; font-size: 12px; font-weight: 800; color: #0058a3; background: #fff; border: 1px solid #bfdbfe; border-radius: 999px; padding: 2px 8px; }
.sc-wh-chip { display: inline-flex; align-items: center; gap: 3px; margin-left: 4px; font-size: 11px; font-weight: 800; color: #0058a3; background: #eff6ff; border-radius: 6px; padding: 1px 6px; }
/* 매장 재고 체크: 5개 / 10개 선택 */
.sc-start-box { background: linear-gradient(135deg, #0f766e, #0d9488); border-radius: 18px; padding: 16px; color: #fff; box-shadow: 0 8px 18px -8px rgba(13,148,136,.6); margin-bottom: 12px; }
.sc-start-title { font-size: 17px; font-weight: 900; display: flex; align-items: center; gap: 8px; }
.sc-start-sub { font-size: 12.5px; font-weight: 600; opacity: .9; margin-top: 6px; line-height: 1.45; word-break: keep-all; }
.sc-start-choices { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.sc-start-box .sc-start-btn { background: #fff !important; color: #0f766e; border: none; border-radius: 14px; height: 72px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; box-shadow: none !important; cursor: pointer; }
.sc-start-box .sc-start-btn b { font-size: 24px; font-weight: 900; line-height: 1; }
.sc-start-box .sc-start-btn small { font-size: 11.5px; font-weight: 700; color: #5f8f8a; }
.sc-start-box .sc-start-btn:active { transform: scale(.98); background: #f0fdfa !important; }
/* 매장 재고 체크: 입력 시간 외 안내 */
.sc-lock { display: flex; gap: 12px; align-items: flex-start; padding: 14px; border-radius: 16px; background: #fff7ed; border: 1px solid #fed7aa; color: #9a3412; margin-bottom: 12px; }
.sc-lock > i { font-size: 20px; margin-top: 2px; color: #ea580c; }
.sc-lock b { display: block; font-size: 15px; font-weight: 900; }
.sc-lock span { display: block; font-size: 12.5px; font-weight: 600; margin-top: 3px; line-height: 1.45; word-break: keep-all; color: #b45309; }
/* 매장 재고 체크: 권한 */
#tab-storecheck .si-lock-bar { margin-bottom: 12px; }
#tab-storecheck .sc-access-btn { color: #0f766e !important; border-color: #99f6e4 !important; background: #f0fdfa !important; font-weight: 800; }
@media (max-width: 420px) { #tab-storecheck .tb-head:has(#btn-sc-access) { flex-wrap: wrap; row-gap: 8px; } #tab-storecheck .tb-head:has(#btn-sc-access) .tb-head-actions { width: 100%; justify-content: flex-end; } }
/* Test Buy: 입고 요청 하기 */
.tb-order-box { margin-top: 12px; padding-top: 12px; border-top: 1px dashed #fcd34d; }
.tb-order-text { font-size: 12.5px; font-weight: 700; color: #92400e; margin-bottom: 8px; display: flex; align-items: center; gap: 6px; }
.tb-order-btn { width: 100%; height: 48px; border-radius: 12px; border: none; background: #0058a3; color: #fff; font-size: 15px; font-weight: 800; display: flex; align-items: center; justify-content: center; gap: 8px; cursor: pointer; }
.tb-order-btn:active { background: #004a8a; }
.tb-order-btn.done { background: #ecfdf5; color: #047857; border: 1px solid #a7f3d0; }
.tb-order-btn:disabled:not(.done) { opacity: .7; }
.sc-order-box { margin-top: 14px; padding: 14px; border-radius: 16px; background: #fffbeb; border: 1px solid #fde68a; }
.rc-btn i { font-size: 34px !important; opacity: 1 !important; }
/* 새 버전 알림 */
#app-update-bar { position: fixed; left: 12px; right: 12px; top: calc(env(safe-area-inset-top, 0px) + 10px); z-index: 100000; display: none; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 14px; background: #0f172a; color: #fff; box-shadow: 0 12px 28px -10px rgba(15,23,42,.55); font-size: 13.5px; font-weight: 700; max-width: 560px; margin: 0 auto; }
#app-update-bar.show { display: flex; }
#app-update-bar > i { color: #38bdf8; }
#app-update-bar span { flex: 1; word-break: keep-all; }
#app-update-bar button { border: none; border-radius: 10px; background: #0058a3; color: #fff; font-weight: 800; font-size: 13px; padding: 8px 12px; white-space: nowrap; cursor: pointer; }
/* 매장 재고 체크: 입고 요청은 보조 버튼 (아래 저장 버튼과 헷갈리지 않게) */
#sc-sheet .sc-order-box { background: #fff; border: 1px dashed #cbd5e1; padding: 12px; }
#sc-sheet .sc-order-box .tb-order-text { color: #475569; font-weight: 600; align-items: flex-start; }
#sc-sheet .sc-order-box .tb-order-text i { color: #d97706; margin-top: 2px; }
#sc-sheet .sc-order-box .tb-order-text b { display: inline-block; font-size: 11px; font-weight: 800; color: #b45309; background: #fef3c7; border-radius: 6px; padding: 1px 6px; margin-right: 4px; }
#sc-sheet .sc-order-box .tb-order-text small { display: block; font-size: 11.5px; color: #94a3b8; margin-top: 2px; }
#sc-sheet .tb-order-btn { height: 42px; background: #fff; color: #b45309; border: 1.5px solid #fcd34d; font-size: 14px; }
#sc-sheet .tb-order-btn:active { background: #fffbeb; }
#sc-sheet .tb-order-btn.done { background: #f0fdf4; color: #15803d; border: 1px solid #bbf7d0; }
/* 매장 재고 체크: 저장 후 "입고 요청할까요?" 팝업 */
.sc-ask-backdrop { position: fixed; inset: 0; z-index: 100001; background: rgba(15,23,42,.5); display: flex; align-items: center; justify-content: center; padding: 20px; opacity: 0; transition: opacity .15s ease; }
.sc-ask-backdrop.show { opacity: 1; }
.sc-ask { width: 100%; max-width: 340px; background: #fff; border-radius: 22px; padding: 22px 18px 16px; text-align: center; box-shadow: 0 20px 40px -12px rgba(15,23,42,.4); }
.sc-ask-icon { width: 52px; height: 52px; margin: 0 auto 10px; border-radius: 16px; background: #fef3c7; color: #d97706; display: flex; align-items: center; justify-content: center; font-size: 22px; }
.sc-ask-title { font-size: 17px; font-weight: 900; color: #0f172a; }
.sc-ask-name { margin-top: 6px; font-size: 13px; font-weight: 700; color: #475569; word-break: keep-all; }
.sc-ask-name span { font-family: ui-monospace, monospace; color: #64748b; }
.sc-ask-q { margin-top: 12px; font-size: 15px; font-weight: 800; color: #0f172a; }
.sc-ask-btns { display: grid; grid-template-columns: 1fr 1.4fr; gap: 8px; margin-top: 16px; }
.sc-ask-btns button { height: 50px; border-radius: 14px; font-size: 15px; font-weight: 800; cursor: pointer; }
.sc-ask-no { background: #fff; border: 1px solid #cbd5e1; color: #475569; }
.sc-ask-yes { background: #d97706; border: none; color: #fff; display: flex; align-items: center; justify-content: center; gap: 6px; }
.sc-ask-yes:disabled { opacity: .7; }
/* 매장 재고 체크: 창고에서 챙겨오기 */
.sc-ask-icon.wh { background: #eff6ff; color: #0058a3; }
.sc-ask-wh { margin-top: 10px; display: inline-block; padding: 6px 12px; border-radius: 999px; background: #eff6ff; color: #1e3a8a; font-size: 13.5px; font-weight: 700; }
.sc-ask-wh b { color: #0058a3; font-weight: 900; }
.sc-ask-sub { margin-top: 4px; font-size: 12px; font-weight: 600; color: #94a3b8; word-break: keep-all; }
.sc-ask-qty { margin-top: 14px; display: flex; align-items: center; justify-content: center; gap: 10px; }
.sc-ask-qty span { font-size: 13px; font-weight: 700; color: #64748b; margin-right: 4px; }
.sc-ask-qty button { width: 38px; height: 38px; border-radius: 10px; border: 1px solid #cbd5e1; background: #fff; font-size: 20px; font-weight: 800; color: #0f172a; cursor: pointer; }
.sc-ask-qty b { min-width: 34px; font-size: 22px; font-weight: 900; color: #0f172a; }
.sc-ask-yes.wh { background: #0058a3; }
.sc-pick { margin-bottom: 12px; border: 1.5px solid #bfdbfe; background: #f8fbff; border-radius: 18px; padding: 12px; }
.sc-pick-head { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 8px; }
.sc-pick-head > i { color: #0058a3; font-size: 18px; margin-top: 2px; }
.sc-pick-head b { display: block; font-size: 15px; font-weight: 900; color: #0f172a; }
.sc-pick-head span { display: block; font-size: 12px; font-weight: 600; color: #64748b; margin-top: 2px; word-break: keep-all; }
.sc-pick-row { display: flex; align-items: center; gap: 10px; background: #fff; border: 1px solid #e2e8f0; border-radius: 14px; padding: 8px 10px; margin-top: 8px; }
.sc-pick-body { flex: 1; min-width: 0; }
.sc-pick-name { font-size: 13.5px; font-weight: 800; color: #0f172a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sc-pick-meta { font-size: 11.5px; font-weight: 600; color: #64748b; margin-top: 2px; }
.sc-pick-loc { display: inline-block; font-size: 11px; font-weight: 900; color: #fff; background: #0058a3; border-radius: 6px; padding: 1px 6px; margin-right: 2px; }
.sc-pick-qty { font-size: 15px; font-weight: 900; color: #0058a3; white-space: nowrap; }
.sc-pick-btn { border: none; border-radius: 10px; background: #0d9488; color: #fff; font-size: 12.5px; font-weight: 800; padding: 9px 10px; white-space: nowrap; cursor: pointer; }
.sc-pick-row .sc-pick-loc { font-size: 12px; padding: 3px 8px; }
.sc-ask-whbox { margin: 14px auto 0; display: inline-flex; align-items: center; gap: 10px; padding: 10px 16px; border-radius: 14px; background: #eff6ff; border: 1px solid #bfdbfe; }
.sc-ask-whbox .sc-pick-loc { font-size: 14px; padding: 3px 10px; }
.sc-ask-whbox .sc-pick-loc.gray { background: #94a3b8; }
.sc-ask-whbox b { font-size: 24px; font-weight: 900; color: #0058a3; }
.sc-ask .sc-ask-sub { margin-top: 12px; font-size: 13px; color: #475569; }
.sc-ask .sc-ask-sub i { color: #0058a3; margin-right: 3px; }
.sc-ask .sc-ask-sub b { color: #0f172a; }
.sc-ask-ok { margin-top: 16px; width: 100%; height: 50px; border: none; border-radius: 14px; background: #0058a3; color: #fff; font-size: 15px; font-weight: 800; cursor: pointer; }
/* 로그인: 아이디 찾기 */
.login-links { display: inline-flex; align-items: center; gap: 6px; }
.login-links-sep { color: #d6d3d1; font-weight: 700; }
.find-id-backdrop { position: fixed; inset: 0; z-index: 100002; background: rgba(15,23,42,.5); display: none; align-items: center; justify-content: center; padding: 20px; }
.find-id-backdrop.show { display: flex; }
.find-id-box { width: 100%; max-width: 360px; background: #fff; border-radius: 20px; padding: 18px; box-shadow: 0 20px 40px -12px rgba(15,23,42,.4); }
.find-id-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.find-id-head b { font-size: 17px; font-weight: 900; color: #0f172a; display: flex; align-items: center; gap: 8px; }
.find-id-head b i { color: #0058a3; }
.find-id-close { width: 36px; height: 36px; border: none; background: #f1f5f9; border-radius: 10px; font-size: 16px; color: #334155; cursor: pointer; }
.find-id-label { display: block; font-size: 13px; font-weight: 700; color: #475569; margin-bottom: 6px; }
#find-id-name { width: 100%; height: 50px; font-size: 17px !important; padding: 0 14px; box-sizing: border-box; }
.find-id-result { margin-top: 12px; display: flex; flex-direction: column; gap: 8px; min-height: 44px; }
.find-id-hint { font-size: 13px; font-weight: 600; color: #94a3b8; text-align: center; padding: 12px 4px; word-break: keep-all; }
.find-id-item { display: flex; align-items: center; gap: 10px; width: 100%; padding: 12px 14px; border-radius: 14px; border: 1.5px solid #bfdbfe; background: #eff6ff; cursor: pointer; text-align: left; }
.find-id-name { font-size: 15px; font-weight: 800; color: #0f172a; }
.find-id-id { font-size: 18px; font-weight: 900; color: #0058a3; font-family: ui-monospace, monospace; }
.find-id-use { margin-left: auto; font-size: 11.5px; font-weight: 800; color: #0058a3; white-space: nowrap; }
.find-id-note { color: #ea580c; font-weight: 800; }
/* 매장 입고 대기 목록: 박스 수량 "?" 버튼 */
.mpq-btn { flex-shrink: 0; width: 28px; height: 28px; border-radius: 50%; border: 1.5px solid #93c5fd; background: #eff6ff; color: #0058a3; font-size: 15px; font-weight: 900; line-height: 1; cursor: pointer; margin-right: 4px; display: inline-flex; align-items: center; justify-content: center; }
.mpq-btn:active { background: #dbeafe; }
.mpq-big { margin-top: 12px; font-size: 18px; font-weight: 800; color: #0f172a; }
.mpq-big b { font-size: 44px; font-weight: 900; color: #0058a3; margin-right: 2px; }
.mpq-none { margin-top: 14px; font-size: 14px; font-weight: 700; color: #94a3b8; }
.sc-ask-icon.pal { background: #fef3c7; color: #b45309; }
.mpq-big.pal b { color: #b45309; }
.mpq-pal { margin-top: 10px; display: inline-block; font-size: 12.5px; font-weight: 700; color: #64748b; background: #f1f5f9; border-radius: 999px; padding: 4px 10px; }
.mpq-input-note { margin-top: 12px; padding: 10px 12px; border-radius: 12px; background: #fff7ed; border: 1px solid #fed7aa; color: #9a3412; font-size: 14px; font-weight: 800; }
/* 매장 입고 대기 목록: 한 줄에 다 넣지 않고 2단으로 (위: 상품 정보 / 아래: 박스 수량 · 수량 조절) */
#store-inbound-cart-items .store-cart-item { flex-wrap: wrap; align-items: flex-start; row-gap: 8px; }
#store-inbound-cart-items .store-cart-item > div:nth-child(2) { flex: 1 1 0; min-width: 0; }
#store-inbound-cart-items .store-cart-item .sc-cart-name { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: 2px; }
#store-inbound-cart-items .sc-cart-ctrls { width: 100%; justify-content: flex-end; gap: 6px !important; padding-top: 8px; border-top: 1px dashed #e2e8f0; }
#store-inbound-cart-items .sc-cart-ctrls .mpq-btn { width: auto; height: 34px; border-radius: 999px; padding: 0 12px 0 4px; gap: 6px; margin-right: auto; font-size: 13px; }
#store-inbound-cart-items .sc-cart-ctrls .mpq-btn .mpq-q { width: 26px; height: 26px; border-radius: 50%; background: #0058a3; color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 900; }
#store-inbound-cart-items .sc-cart-ctrls .mpq-btn .mpq-t { font-weight: 800; color: #0058a3; }
#store-inbound-cart-items .sc-cart-ctrls button[onclick^="adjustStoreCartItemQty"] { width: 36px !important; height: 34px !important; font-size: 16px !important; }
#store-inbound-cart-items .sc-cart-ctrls input[type="number"] { width: 60px !important; height: 34px !important; font-size: 16px !important; }
.mpq-btn .mpq-t { display: none; }
#store-inbound-cart-items .sc-cart-ctrls .mpq-btn .mpq-t { display: inline; }
/* 상단 판매 TOP 배너 */
#sales-ticker { display: flex; align-items: center; gap: 8px; margin: 6px -14px -8px; padding: 6px 10px 6px 12px; background: linear-gradient(90deg, #0b2545, #0058a3); color: #fff; overflow: hidden; }
#sales-ticker .st-label { flex-shrink: 0; font-size: 11.5px; font-weight: 900; color: #ffd166; letter-spacing: .2px; white-space: nowrap; }
#sales-ticker .st-label i { color: #ff9f1c; }
#sales-ticker .st-viewport { flex: 1; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 12px, #000 calc(100% - 16px), transparent); mask-image: linear-gradient(90deg, transparent, #000 12px, #000 calc(100% - 16px), transparent); }
#sales-ticker .st-track { display: flex; width: max-content; animation: st-scroll 40s linear infinite; }
#sales-ticker:hover .st-track, #sales-ticker:active .st-track { animation-play-state: paused; }
#sales-ticker .st-run { display: flex; align-items: center; padding-right: 24px; }
#sales-ticker .st-item { display: inline-flex; align-items: center; gap: 6px; background: none; border: none; color: #fff; font-size: 12.5px; font-weight: 700; white-space: nowrap; padding: 2px 4px; cursor: pointer; }
#sales-ticker .st-rank { min-width: 18px; height: 18px; border-radius: 6px; background: #ffd166; color: #0b2545; font-size: 11px; font-weight: 900; display: inline-flex; align-items: center; justify-content: center; padding: 0 4px; }
#sales-ticker .st-loc { font-size: 10.5px; font-weight: 900; background: rgba(255,255,255,.18); border-radius: 5px; padding: 1px 5px; }
#sales-ticker .st-qty { color: #a7f3d0; font-weight: 800; }
#sales-ticker .st-sep { color: rgba(255,255,255,.35); margin: 0 8px; }
@keyframes st-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { #sales-ticker .st-track { animation-duration: 120s !important; } }
.login-overlay.active ~ * #sales-ticker { display: none; }
.rz-zone.ramp::after { content: "(매장 창고는 인형 위주로 입고)" !important; }

/* ===== 긴급 재고 체크 (urgentcheck.js) ===== */
.uc-box { margin: 10px 0 2px; background: #fff7ed; border: 1.5px solid #fdba74; border-radius: 16px; padding: 12px; box-shadow: 0 2px 8px rgba(234,88,12,.08); }
.uc-head { display: flex; align-items: center; gap: 10px; }
.uc-icon { width: 38px; height: 38px; border-radius: 12px; background: #f97316; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 17px; flex-shrink: 0; animation: ucPulse 1.6s ease-in-out infinite; }
@keyframes ucPulse { 0%,100% { box-shadow: 0 0 0 0 rgba(249,115,22,.45); } 50% { box-shadow: 0 0 0 7px rgba(249,115,22,0); } }
.uc-title { font-size: 15px; font-weight: 900; color: #9a3412; line-height: 1.25; }
.uc-count { display: inline-block; background: #ea580c; color: #fff; font-size: 11px; font-weight: 800; padding: 1px 7px; border-radius: 999px; margin-left: 4px; vertical-align: 1px; }
.uc-sub { font-size: 11.5px; font-weight: 600; color: #c2410c; margin-top: 2px; }
.uc-list { display: flex; flex-direction: column; gap: 6px; margin-top: 10px; }
.uc-item { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; background: #fff; border: 1px solid #fed7aa; border-radius: 12px; padding: 8px 10px; cursor: pointer; font: inherit; }
.uc-item:active { transform: scale(.99); background: #fffaf5; }
.uc-thumb { width: 40px; height: 40px; flex-shrink: 0; border-radius: 8px; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.uc-thumb img { max-width: 100%; max-height: 100%; object-fit: contain; }
.uc-info { flex: 1; min-width: 0; }
.uc-name { font-size: 13px; font-weight: 800; color: #1e293b; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.uc-meta { display: flex; flex-wrap: wrap; gap: 4px 8px; font-size: 11px; color: #64748b; font-weight: 600; margin-top: 2px; }
.uc-no { font-family: ui-monospace, Menlo, monospace; font-weight: 800; color: #334155; }
.uc-loc i { color: #0058a3; font-size: 9px; }
.uc-go { flex-shrink: 0; background: #ea580c; color: #fff; font-size: 12px; font-weight: 800; padding: 7px 10px; border-radius: 9px; white-space: nowrap; }
.uc-go i { font-size: 10px; }
.uc-done { margin-top: 8px; font-size: 12px; color: #7c2d12; }
.uc-done summary { cursor: pointer; font-weight: 800; padding: 4px 2px; }
.uc-done-row { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; padding: 6px 4px; border-top: 1px dashed #fed7aa; }
.uc-dname { flex: 1; min-width: 120px; color: #334155; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.uc-res { font-weight: 800; }
.uc-res.ok { color: #15803d; } .uc-res.bad { color: #b91c1c; }
.uc-who { color: #94a3b8; font-size: 11px; }
.uc-step { color: #c2410c !important; background: #ffedd5 !important; }
.uc-req { font-size: 11.5px; color: #c2410c; font-weight: 700; margin-top: 4px; }
/* 재고 조회 카드 버튼 (jipar5만 보임) */
.uc-req-btn { background: #fff7ed; color: #c2410c; border: 1px solid #fdba74; font-size: 9.5px; font-weight: 800; padding: 2px 6px; border-radius: 4px; cursor: pointer; white-space: nowrap; display: inline-flex; align-items: center; gap: 3px; }
.uc-req-btn i { font-size: 9px; }
.uc-req-btn.on { background: #ea580c; color: #fff; border-color: #ea580c; }
/* 긴급 재고 체크: 오늘 할일 카드는 개수만 */
.uc-box { background: none; border: 0; box-shadow: none; padding: 0; margin: 0; }
.uc-task { border: 1.5px solid #fdba74 !important; background: #fff7ed !important; }
.uc-task .menu-task-icon.uc-icon { width: 44px; height: 44px; border-radius: 12px; background: #f97316; color: #fff; }
.uc-task .menu-task-sub { color: #c2410c; }
.uc-count.done { background: #16a34a; }
#uc-list-sheet { z-index: 10040; } #uc-sheet { z-index: 10050; }
.uc-empty { text-align: center; color: #15803d; font-weight: 800; padding: 22px 0; }
.uc-done-title { font-weight: 800; color: #7c2d12; margin: 6px 2px 2px; }
/* 긴급 재고 체크: 남은 항목이 있으면 번쩍번쩍 */
.uc-task.uc-alert { position: relative; overflow: hidden; border: 2px solid #ef4444 !important; background: linear-gradient(135deg,#fff1f2,#fff7ed) !important; animation: ucFlash 1s ease-in-out infinite; }
@keyframes ucFlash {
  0%,100% { box-shadow: 0 0 0 0 rgba(239,68,68,.55), 0 2px 8px rgba(239,68,68,.12); border-color: #ef4444; }
  50% { box-shadow: 0 0 0 6px rgba(239,68,68,0), 0 0 22px 4px rgba(249,115,22,.55); border-color: #f97316; background: #ffe4e6; }
}
.uc-task.uc-alert::before { content: ""; position: absolute; top: 0; left: -60%; width: 40%; height: 100%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.75), transparent); animation: ucShine 2.2s ease-in-out infinite; pointer-events: none; }
@keyframes ucShine { 0% { left: -60%; } 60%,100% { left: 130%; } }
.uc-task.uc-alert .menu-task-icon.uc-icon { background: #ef4444 !important; animation: ucBlink .5s steps(2, jump-none) infinite alternate; }
@keyframes ucBlink { from { background: #ef4444; box-shadow: 0 0 14px 3px rgba(239,68,68,.7); } to { background: #f97316; box-shadow: 0 0 4px 0 rgba(249,115,22,.3); } }
.uc-task.uc-alert .menu-task-icon.uc-icon i { animation: ucBolt .5s ease-in-out infinite alternate; }
@keyframes ucBolt { from { transform: scale(1); } to { transform: scale(1.22) rotate(-8deg); } }
.uc-task.uc-alert .menu-task-title { color: #b91c1c; }
.uc-task.uc-alert .uc-count { background: #dc2626; animation: ucBadge .8s ease-in-out infinite; }
@keyframes ucBadge { 0%,100% { transform: scale(1); } 50% { transform: scale(1.15); } }
.uc-task.uc-alert .menu-task-sub { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; line-height: 1.35; }
.uc-task.uc-alert .uc-l1 { display: block; color: #b91c1c; font-weight: 800; }
.uc-task.uc-alert .uc-l2 { display: block; color: #c2410c; font-weight: 600; font-size: .95em; }
.uc-task.uc-alert > * { position: relative; z-index: 1; }
.uc-task.uc-alert::before { z-index: 0; background: linear-gradient(100deg, transparent, rgba(255,255,255,.55), transparent); }

/* ===== 재고 부족 (lowstock.js) ===== */
.ls-task { border: 1.5px solid #c7d2fe !important; background: #f5f7ff !important; }
.ls-task .menu-task-icon.ls-icon { background: #4f46e5 !important; color: #fff !important; }
.ls-desc { background: #e0e7ff !important; color: #4338ca !important; }
.ls-count { display: inline-block; background: #4f46e5; color: #fff; font-size: 11px; font-weight: 800; padding: 1px 7px; border-radius: 999px; vertical-align: 1px; }
.ls-step { color: #4338ca !important; background: #e0e7ff !important; }
.ls-set { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 12px; padding: 10px 12px; font-size: 13px; font-weight: 700; color: #334155; }
.ls-set input { width: 64px; height: 34px; border: 1.5px solid #c7d2fe; border-radius: 8px; text-align: center; font-size: 15px; font-weight: 800; }
.ls-set button { margin-left: auto; height: 34px; padding: 0 14px; border: 0; border-radius: 8px; background: #4f46e5; color: #fff; font-weight: 800; cursor: pointer; }
.ls-set button:disabled { opacity: .6; }
.ls-set.ro { font-weight: 600; }
.ls-help { font-size: 12px; color: #475569; margin: 8px 2px 10px; line-height: 1.45; }
.ls-help i { color: #4f46e5; margin-right: 3px; }
.ls-list { display: flex; flex-direction: column; gap: 6px; }
.ls-item { display: flex; align-items: center; gap: 9px; background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; padding: 8px 10px; }
.ls-rank { width: 34px; flex-shrink: 0; text-align: center; font-size: 15px; font-weight: 900; color: #475569; line-height: 1; }
.ls-rank small { font-size: 9px; font-weight: 700; margin-left: 1px; }
.ls-rank.top { color: #dc2626; }
.ls-stock { flex-shrink: 0; text-align: center; min-width: 42px; }
.ls-stock b { display: block; font-size: 18px; font-weight: 900; color: #b45309; line-height: 1.1; }
.ls-stock small { font-size: 10px; font-weight: 700; color: #94a3b8; }
.ls-stock.zero b { color: #dc2626; } .ls-stock.zero small { color: #dc2626; }
.ls-chip { display: inline-flex; align-items: center; gap: 3px; margin-top: 3px; font-size: 10.5px; font-weight: 800; padding: 2px 7px; border-radius: 999px; }
.ls-chip.ok { background: #ecfdf5; color: #047857; }
.ls-chip.wait { background: #fef3c7; color: #92400e; }

/* ===== 권한 관리 (perms.js) ===== */
.perm-step { color: #0e7490 !important; background: #cffafe !important; }
.perm-help { font-size: 12px; color: #475569; line-height: 1.5; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 12px; padding: 10px 12px; }
.perm-search { display: flex; align-items: center; gap: 8px; margin: 10px 0 6px; border: 1.5px solid #e2e8f0; border-radius: 10px; padding: 0 10px; background: #fff; }
.perm-search i { color: #94a3b8; font-size: 13px; }
.perm-search input { flex: 1; border: 0; outline: 0; height: 38px; font-size: 14px; background: transparent; }
.perm-summary { display: flex; gap: 12px; flex-wrap: wrap; font-size: 12px; color: #475569; font-weight: 700; margin: 4px 2px 8px; }
.perm-summary b { color: #0e7490; }
.perm-row { background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; padding: 10px 12px; margin-bottom: 8px; }
.perm-row.on { border-color: #a5f3fc; }
.perm-who { display: flex; align-items: center; gap: 6px; margin-bottom: 6px; font-size: 14px; }
.perm-who b { color: #0f172a; }
.perm-id { font-family: ui-monospace, Menlo, monospace; font-size: 12px; color: #64748b; }
.perm-kind { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 5px 0; border-top: 1px dashed #f1f5f9; }
.perm-kind-label { font-size: 12.5px; font-weight: 700; color: #334155; display: flex; flex-direction: column; }
.perm-kind-label i { color: #94a3b8; margin-right: 3px; font-size: 11px; }
.perm-left { color: #0e7490; font-weight: 800; font-size: 11px; margin-top: 1px; }
.perm-fixed { font-size: 12px; font-weight: 800; color: #0e7490; }
.perm-segs { display: inline-flex; background: #f1f5f9; border-radius: 9px; padding: 3px; gap: 2px; flex-shrink: 0; }
.perm-seg { border: 0; background: transparent; font-size: 12px; font-weight: 800; color: #64748b; padding: 6px 9px; border-radius: 7px; cursor: pointer; white-space: nowrap; }
.perm-seg.on.off { background: #fff; color: #475569; box-shadow: 0 1px 2px rgba(0,0,0,.08); }
.perm-seg.on.timed { background: #0ea5e9; color: #fff; }
.perm-seg.timed.on { padding: 6px 7px; }
.perm-seg.on.always { background: #0e7490; color: #fff; }
.perm-seg:disabled { opacity: .5; }
.perm-kind-label { display: block; }
.perm-kind-label .perm-left { display: block; }

/* ===== 판매 TOP 배너: 위에서 아래로 한 개씩 + 아티클 사진 ===== */
#sales-ticker.st-vertical { padding: 5px 10px 5px 12px; }
#sales-ticker.st-vertical .st-viewport { position: relative; height: 40px; overflow: hidden; -webkit-mask-image: none; mask-image: none; }
#sales-ticker.st-vertical .st-slide { position: absolute; inset: 0; display: flex; align-items: center; gap: 7px; width: 100%; background: none; border: 0; color: #fff; font: inherit; font-size: 12.5px; font-weight: 700; text-align: left; padding: 0 2px; cursor: pointer; white-space: nowrap;
  transform: translateY(0); opacity: 1; transition: transform .5s cubic-bezier(.22,.8,.3,1), opacity .5s ease; }
#sales-ticker.st-vertical .st-slide.enter { transform: translateY(-100%); opacity: 0; transition: none; }
#sales-ticker.st-vertical .st-slide.leave { transform: translateY(100%); opacity: 0; }
#sales-ticker.st-vertical .st-thumb { width: 36px !important; height: 36px !important; min-width: 36px !important; min-height: 36px !important; border-radius: 8px; background: #fff; overflow: hidden; flex-shrink: 0; position: relative; display: flex; align-items: center; justify-content: center; pointer-events: none; }
#sales-ticker.st-vertical .st-thumb .product-thumb-img { width: 100%; height: 100%; object-fit: contain; }
#sales-ticker.st-vertical .st-thumb .product-thumb-placeholder { color: #94a3b8; font-size: 14px; }
#sales-ticker.st-vertical .st-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
#sales-ticker.st-vertical .st-loc, #sales-ticker.st-vertical .st-qty, #sales-ticker.st-vertical .st-rank { flex-shrink: 0; }
#sales-ticker.st-vertical .st-count { flex-shrink: 0; font-size: 10px; font-weight: 800; color: rgba(255,255,255,.55); font-variant-numeric: tabular-nums; }
/* 비밀번호 초기화 (perms.js) */
.perm-pw-btn { margin-left: auto; background: #fff; color: #b45309; border: 1px solid #fcd34d; font-size: 11px; font-weight: 800; padding: 3px 8px; border-radius: 7px; cursor: pointer; white-space: nowrap; }
.perm-pw-btn i { font-size: 10px; }
.perm-pw-backdrop { position: fixed; inset: 0; z-index: 10060; background: rgba(15,23,42,.45); display: none; align-items: center; justify-content: center; padding: 16px; }
.perm-pw-backdrop.active { display: flex; }
.perm-pw-box { width: 100%; max-width: 360px; background: #fff; border-radius: 16px; padding: 18px; box-shadow: 0 12px 40px rgba(0,0,0,.25); }
.perm-pw-title { font-size: 16px; font-weight: 900; color: #b45309; margin-bottom: 8px; }
.perm-pw-title.ok { color: #047857; }
.perm-pw-who { font-size: 13px; color: #334155; line-height: 1.5; margin-bottom: 12px; }
.perm-pw-label { display: block; font-size: 12px; font-weight: 800; color: #475569; margin-bottom: 5px; }
.perm-pw-input { display: flex; gap: 6px; }
.perm-pw-input input { flex: 1; height: 44px; border: 1.5px solid #cbd5e1; border-radius: 10px; padding: 0 12px; font-size: 20px; font-weight: 900; letter-spacing: 2px; font-family: ui-monospace, Menlo, monospace; }
.perm-pw-input button { width: 44px; border: 1px solid #e2e8f0; border-radius: 10px; background: #f8fafc; color: #475569; cursor: pointer; }
.perm-pw-show { text-align: center; font-size: 30px; font-weight: 900; letter-spacing: 4px; font-family: ui-monospace, Menlo, monospace; background: #ecfdf5; color: #065f46; border-radius: 12px; padding: 12px 0; margin-bottom: 10px; user-select: all; }
.perm-pw-note { font-size: 12px; color: #64748b; line-height: 1.5; margin: 10px 0 14px; }
.perm-pw-note i { color: #94a3b8; margin-right: 3px; }
.perm-pw-actions { display: flex; gap: 8px; }
.perm-pw-actions button { flex: 1; height: 44px; border-radius: 10px; font-size: 14px; font-weight: 800; cursor: pointer; }
.perm-pw-cancel { background: #f1f5f9; color: #334155; border: 0; }
.perm-pw-ok { background: #d97706; color: #fff; border: 0; }
.perm-pw-ok:disabled { opacity: .6; }
.perm-pw-show.base { background: #fffbeb; color: #92400e; }
/* 로그인 화면: 게스트 계정 안내 */
.login-guest { display: flex; align-items: center; gap: 10px; width: 100%; margin: 12px 0 0; padding: 10px 12px; background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 14px; font: inherit; text-align: left; cursor: pointer; }
.login-guest:active { background: #dbeafe; }
.login-guest-icon { width: 32px; height: 32px; border-radius: 10px; background: #dbeafe; color: #0058a3; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 14px; }
.login-guest-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.login-guest-body b { font-size: 13px; font-weight: 900; color: #1e3a8a; }
.login-guest-body span { font-size: 12.5px; font-weight: 700; color: #1d4ed8; }
.login-guest-body code { font-family: ui-monospace, Menlo, monospace; font-weight: 900; background: #fff; border: 1px solid #bfdbfe; border-radius: 6px; padding: 0 5px; color: #0f172a; }
.login-guest-go { flex-shrink: 0; font-size: 12px; font-weight: 800; color: #0058a3; }
.login-guest-go i { font-size: 10px; }
.login-guest + .login-temp-pw { margin-top: 8px; }
.login-guest-body .login-guest-cred { display: flex; flex-wrap: wrap; gap: 3px 10px; }
.login-guest-cred em { font-style: normal; white-space: nowrap; }
