/* ============================================================
   간다GO 어드민 새 화면 (admin-v2) - 관리자 계정 전용 겉모습
   - 활성 조건: userRole === 'admin' (js/admin-v2.js 가 body.av2 를 붙인다). 2026-10-19 사장님 지시로 이전 화면 전환 버튼은 없다
   - 바꾸는 것은 메뉴 묶음(PC 사이드바, 관리자 6묶음 · 총괄 3묶음) / 폰 하단 탭 + 전체 메뉴 / 주문현황 분할 보기(왼쪽 목록 + 오른쪽 상세 · 지도) / 브랜드 칩 뿐.
     조회·배정·카카오퀵·정산 코드는 그대로이고 기존 요소(id)는 자리만 옮긴다
   - 매장 · 팀장 · 상담원 계정은 이 파일의 영향을 받지 않는다 (body.av2 가 붙지 않음). 총괄은 2026-10-20 부터 body.av2.av2m (아래 총괄 절)
   ============================================================ */

body.av2 { --av2-accent: #0E6FA6; --av2-accent-dk: #0B5E8F; --av2-tint: #E3F1FA; --av2-line: #E5E8EB; --av2-muted: #6B7684; --av2-fg: #191F28; }

/* ── PC 사이드바: 묶음 제목 + 항목 (기존 .nav-item 을 묶음 아래로 옮긴다) ── */
@media (min-width: 1024px) {
  body.av2 header .logo { padding: 14px 20px !important; }
  body.av2 header .logo img { height: 30px !important; }
  body.av2 header .nav { padding: 6px 10px 0 !important; gap: 1px !important; }
  body.av2 .av2-grp { font-size: 11px; font-weight: 700; color: #8B95A1; letter-spacing: .04em; padding: 12px 10px 4px; }
  body.av2 .av2-grp:first-child { padding-top: 4px; }
  body.av2 header .nav .nav-item { padding: 7px 12px !important; font-size: 13.5px !important; border-radius: 8px !important; gap: 10px !important; }
  body.av2 header .nav .nav-item::before { width: 18px !important; height: 18px !important; }
  body.av2 header .nav .nav-item.active { background: var(--av2-accent) !important; color: #fff !important; }
  body.av2 header .nav .nav-item .nav-badge { margin-left: auto; }
  /* 바닥 버튼은 사이드바가 길어 스크롤돼도 항상 보이게 (header 가 스크롤 컨테이너) */
  body.av2 .av2-foot { margin-top: auto; padding: 10px 12px 12px; border-top: 1px solid var(--av2-line); display: flex; flex-direction: column; gap: 6px; position: sticky; bottom: 0; background: #fff; margin-left: -10px; margin-right: -10px; }
  body.av2 .av2-foot .av2-who { font-size: 12px; color: #8B95A1; padding: 0 4px 2px; }
  body.av2 .av2-foot button { height: 36px; border-radius: 8px; border: 1px solid #D5DAE0; background: #fff; color: #333D4B; font-size: 13px; font-weight: 600; cursor: pointer; font-family: inherit; }
  body.av2 .av2-foot button:hover { background: #F0F7FF; }
  body.av2 .av2-foot button.av2-logout { color: #B3261E; }
  body.av2 header .nav .nav-item[onclick*="logout"] { display: none !important; }
  /* 관리자 6묶음 (2026-10-20): 기존 항목(.av2-orig)은 숨기고 새 항목(.av2-ni, data-av2="go")을 보인다. 아이콘은 mask(::before) 대신 svg */
  body.av2 header .nav .nav-item.av2-orig { display: none !important; }
  body.av2 header .nav .nav-item.av2-ni { cursor: pointer; }
  body.av2 header .nav .nav-item.av2-ni::before { display: none !important; content: none !important; }
  body.av2 header .nav .nav-item.av2-ni svg { width: 18px; height: 18px; flex: none; }
  body.av2 header .nav .nav-item.av2-ni .av2-nl { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
  body.av2 .av2-tabbar, body.av2 .av2-menu { display: none !important; }
  body.av2 main { padding: 22px 24px !important; }
  /* 선택 바는 사이드바를 뺀 본문 가운데에 */
  body.av2 #kqb-bar { left: calc(50% + var(--sidebar-w, 230px) / 2) !important; }
  /* 채팅 플로팅 버튼은 사이드바 바닥 버튼([이전 화면][로그아웃])을 가리지 않게 오른쪽 아래로 */
  body.av2 #chat-fab { left: auto !important; right: 24px !important; bottom: 32px !important; }
}

/* ── 폰: 상단 헤더(햄버거) 대신 하단 탭 4개 + 전체 메뉴 ── */
@media (max-width: 1023px) {
  body.av2 .mobile-header { display: none !important; }
  body.av2 main { padding: 12px 14px calc(76px + env(safe-area-inset-bottom, 0px)) !important; }
  body.av2 .av2-tabbar { position: fixed; left: 0; right: 0; bottom: 0; height: calc(60px + env(safe-area-inset-bottom, 0px)); padding-bottom: env(safe-area-inset-bottom, 0px); display: flex; background: #fff; border-top: 1px solid var(--av2-line); z-index: 150; box-shadow: 0 -4px 12px rgba(25,31,40,.06); }
  body.av2 .av2-tabbar button { flex: 1; min-width: 0; border: 0; background: transparent; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; font-size: 11px; font-weight: 600; color: #8B95A1; font-family: inherit; position: relative; padding: 0; cursor: pointer; }
  body.av2 .av2-tabbar button svg { width: 24px; height: 24px; }
  body.av2 .av2-tabbar button.active { color: var(--av2-accent); }
  body.av2 .av2-tabbar .av2-tbadge { position: absolute; top: 6px; left: calc(50% + 6px); min-width: 17px; height: 17px; padding: 0 5px; border-radius: 9px; background: #C9411A; color: #fff; font-size: 10px; font-weight: 700; display: none; align-items: center; justify-content: center; }
  body.av2 .av2-tabbar .av2-tbadge.show { display: inline-flex; }
  body.av2 .av2-menu { position: fixed; inset: 0; z-index: 10000; background: #F4F6F8; display: none; flex-direction: column; overflow: auto; -webkit-overflow-scrolling: touch; }
  body.av2 .av2-menu.open { display: flex; }
  body.av2 .av2-menu .av2-mh { display: flex; align-items: center; gap: 10px; padding: 14px 16px; background: #fff; border-bottom: 1px solid var(--av2-line); position: sticky; top: 0; }
  body.av2 .av2-menu .av2-mh h2 { margin: 0; font-size: 18px; font-weight: 700; color: var(--av2-fg); flex: 1; }
  body.av2 .av2-menu .av2-mh button { height: 36px; padding: 0 12px; border-radius: 8px; border: 1px solid #D5DAE0; background: #fff; font-size: 13px; font-weight: 600; font-family: inherit; }
  body.av2 .av2-menu .av2-mgrp { padding: 14px 16px 4px; font-size: 12px; font-weight: 700; color: #8B95A1; }
  body.av2 .av2-menu .av2-mgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; padding: 4px 16px 6px; }
  body.av2 .av2-menu .av2-mgrid button { height: 74px; border-radius: 12px; border: 1px solid var(--av2-line); background: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; font-size: 12px; font-weight: 600; color: #333D4B; font-family: inherit; position: relative; padding: 0 4px; }
  body.av2 .av2-menu .av2-mgrid button.active { border-color: var(--av2-accent); background: var(--av2-tint); color: var(--av2-accent-dk); }
  body.av2 .av2-menu .av2-mgrid button svg { width: 22px; height: 22px; }
  body.av2 .av2-menu .av2-mgrid .av2-tbadge { position: absolute; top: 8px; right: 8px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: #C9411A; color: #fff; font-size: 11px; font-weight: 700; display: none; align-items: center; justify-content: center; }
  body.av2 .av2-menu .av2-mgrid .av2-tbadge.show { display: inline-flex; }
  body.av2 .av2-menu .av2-mfoot { margin-top: auto; padding: 16px; display: flex; gap: 8px; }
  body.av2 .av2-menu .av2-mfoot button { flex: 1; height: 44px; border-radius: 10px; border: 1px solid #D5DAE0; background: #fff; font-size: 14px; font-weight: 600; font-family: inherit; }
  body.av2 .av2-menu .av2-mfoot button.av2-logout { color: #B3261E; }
  /* 하단 탭에 가리지 않게: 선택 바(kqb-bar) · 채팅 플로팅 버튼(#chat-fab, 종전 bottom 24px) 은 탭 위로 */
  body.av2 #chat-fab { bottom: calc(76px + env(safe-area-inset-bottom, 0px)) !important; }
  /* 전체 메뉴가 열려 있는 동안: 메뉴(z 10000)가 버전 표시(z 9999)를 덮고, 채팅 버튼(z 10001)은 숨긴다 (메뉴 칸을 가렸다. 채팅은 메뉴의 '매장 문의' 로도 연다) */
  body.av2.av2-mopen #chat-fab { display: none !important; }
  body.av2 #kqb-bar { bottom: calc(148px + env(safe-area-inset-bottom, 0px)) !important; }
  body.av2 #chat-panel { z-index: 170; }
  /* 우하단 버전 표시(v1.0.x)도 탭 위로 */
  body.av2 #main-app > div[style*="position: fixed"][style*="bottom: 10px"] { bottom: calc(66px + env(safe-area-inset-bottom, 0px)) !important; }
  /* 주문 카드: 폰은 종전 카드 그대로 (분할 보기 없음) */
}

/* ── 브랜드 칩 (주문현황 필터 위) ── */
body.av2 .av2-brands { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; }
body.av2 .av2-brands button { height: 34px; padding: 0 12px; border-radius: 8px; border: 1px solid #D5DAE0; background: #fff; font-size: 13px; font-weight: 600; color: #333D4B; font-family: inherit; display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
body.av2 .av2-brands button b { font-weight: 700; color: var(--av2-muted); }
body.av2 .av2-brands button.active { background: #191F28; border-color: #191F28; color: #fff; }
body.av2 .av2-brands button.active b { color: #D5DAE0; }
body.av2 .av2-brands .av2-brands-note { align-self: center; font-size: 12px; color: #8B95A1; margin-left: 4px; }

/* ── PC 분할 보기: 왼쪽 목록(카드) + 오른쪽 상세 · 지도 (1280px 이상 + 관리자 + 새 화면) ── */
@media (min-width: 1280px) {
  body.av2 #tab-order.av2-split.active { display: grid !important; grid-template-columns: minmax(520px, 1fr) minmax(440px, 1.05fr); gap: 18px; align-items: start; animation: none !important; }
  body.av2 #tab-order.av2-split .av2-lpane { min-width: 0; }
  body.av2 #tab-order.av2-split .av2-rpane { position: sticky; top: 16px; max-height: calc(100vh - 32px); overflow: auto; min-width: 0; display: flex; flex-direction: column; gap: 14px; }
  /* 목록: 표 대신 카드(종전 폰 카드) 를 쓴다 - 좁은 왼쪽 칸에 10열 표가 안 들어가서 */
  body.av2 #tab-order.av2-split .table-wrap.pc-only { display: none !important; }
  body.av2 #tab-order.av2-split #order-cards.mobile-only { display: block !important; }
  body.av2 #tab-order.av2-split .page-header { margin-bottom: 14px !important; }
  body.av2 #tab-order.av2-split .page-header h2 { font-size: 18px !important; margin-bottom: 10px !important; }
  body.av2 #tab-order.av2-split .stats-container { gap: 8px !important; margin-bottom: 12px !important; }
  body.av2 #tab-order.av2-split .stat-box { padding: 10px 8px !important; }
  body.av2 #tab-order.av2-split .stat-value { font-size: 22px !important; }
  body.av2 #tab-order.av2-split .stat-label { font-size: 11px !important; }
  body.av2 #tab-order.av2-split .filter-bar { padding: 10px 12px !important; gap: 8px !important; margin-bottom: 12px !important; }
  body.av2 #tab-order.av2-split .filter-bar > select.form-input, body.av2 #tab-order.av2-split .filter-bar > input[type="text"] { flex: 1 1 46% !important; min-width: 140px !important; }
  body.av2 #tab-order.av2-split .filter-bar > input[type="date"] { flex: 1 1 36% !important; min-width: 120px !important; }
  body.av2 #tab-order.av2-split .filter-bar > .btn { padding: 8px 10px !important; font-size: 12px !important; white-space: nowrap; }
  /* 카드를 '줄' 처럼 촘촘하게 */
  body.av2 #tab-order.av2-split .card-list .data-card { padding: 10px 14px !important; margin-bottom: 8px !important; border-radius: 10px !important; border: 1px solid var(--av2-line) !important; box-shadow: none !important; cursor: pointer; }
  body.av2 #tab-order.av2-split .card-list .data-card:hover { background: #F7FAFD !important; }
  body.av2 #tab-order.av2-split .card-list .data-card.av2-cur { border-color: var(--av2-accent) !important; background: var(--av2-tint) !important; box-shadow: inset 3px 0 0 var(--av2-accent) !important; }
  body.av2 #tab-order.av2-split .data-card .card-title { font-size: 14px !important; }
  body.av2 #tab-order.av2-split .data-card .card-info { font-size: 13px !important; line-height: 1.5 !important; }
  body.av2 #tab-order.av2-split .data-card .card-subtitle { font-size: 12px !important; }
  body.av2 #tab-order.av2-split .data-card .card-actions { margin-top: 6px !important; display: flex; gap: 6px; flex-wrap: wrap; }
  /* 오른쪽: 지도(열었을 때) + 상세 */
  body.av2 .av2-rpane #order-map-wrap { margin-bottom: 0 !important; }
  body.av2 .av2-rpane #order-map { height: 340px !important; }
  body.av2 #av2-detail { background: #fff; border: 1px solid var(--av2-line); border-radius: 16px; min-height: 240px; }
  body.av2 #av2-detail .av2-empty { display: flex; align-items: center; justify-content: center; height: 240px; color: #8B95A1; font-size: 14px; text-align: center; padding: 20px; line-height: 1.6; }
  body.av2 #av2-detail.has-order .av2-empty { display: none; }
  /* 상세 모달을 오버레이가 아니라 오른쪽 칸 안에 그대로 그린다 (요소 id 는 그대로라 viewOrder 가 채우는 코드는 변화 없음) */
  body.av2 #modal-order-detail.av2-host { position: static !important; display: block !important; background: none !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; width: auto !important; height: auto !important; padding: 0 !important; z-index: auto !important; align-items: stretch !important; }
  body.av2 #modal-order-detail.av2-host[style*="display: none"], body.av2 #modal-order-detail.av2-host[style*="display:none"] { display: none !important; }
  body.av2 #modal-order-detail.av2-host .modal-box { width: 100% !important; max-width: none !important; max-height: none !important; box-shadow: none !important; border-radius: 16px !important; animation: none !important; margin: 0 !important; }
  body.av2 #modal-order-detail.av2-host .modal-body { max-height: none !important; overflow: visible !important; }
  body.av2 #modal-order-detail.av2-host .modal-footer { display: none !important; }
  body.av2 #modal-order-detail.av2-host .modal-header { border-radius: 16px 16px 0 0 !important; }
  body.av2 #modal-order-detail.av2-host .modal-close { display: flex !important; }
}

/* ── 주문현황 [카카오퀵] 보기 (js/kakao-quick-board.js KqBoard, 2026-10-20) ──
   #tab-order.kqv-on 이면 통계 · 배송구분 · 필터 · 표 · 카드 · 지도 · 주문 상세 칸을 숨기고 #kqv(목록) + #kqv-detail(PC 오른쪽) 을 보인다 */
body.av2 .av2-brands button.av2-kq .av2-kqdot { width: 9px; height: 9px; border-radius: 50%; background: #FEE500; box-shadow: 0 0 0 1px #E5C800 inset; display: inline-block; }
body.av2 .av2-brands button.av2-kq.active { background: #191F28; border-color: #191F28; color: #fff; }
body.av2 #kqv, body.av2 #kqv-detail { display: none; }
body.av2 #tab-order.kqv-on .stats-container, body.av2 #tab-order.kqv-on #order-pool-filter, body.av2 #tab-order.kqv-on .page-header .filter-bar,
body.av2 #tab-order.kqv-on .table-wrap, body.av2 #tab-order.kqv-on #order-cards, body.av2 #tab-order.kqv-on #order-map-wrap, body.av2 #tab-order.kqv-on #av2-detail { display: none !important; }
/* 분할 보기의 '카드 보이기' 규칙(#tab-order.av2-split #order-cards.mobile-only)보다 우선 */
body.av2 #tab-order.kqv-on.av2-split #order-cards.card-list.mobile-only { display: none !important; }
body.av2 #tab-order.kqv-on #kqv { display: block; }
body.av2 .kqv { background: #fff; border: 1px solid var(--av2-line); border-radius: 14px; overflow: hidden; }
body.av2 .kqv-ctl { padding: 12px 14px 8px; display: flex; flex-direction: column; gap: 8px; border-bottom: 1px solid var(--av2-line); }
body.av2 .kqv-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
body.av2 .kqv-head b { font-size: 16px; color: var(--av2-fg); }
body.av2 .kqv-head span { font-size: 12px; color: var(--av2-muted); flex: 1 1 160px; min-width: 0; }
body.av2 .kqv-fl { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
body.av2 .kqv-fl .lb { font-size: 12px; font-weight: 700; color: var(--av2-muted); margin-right: 2px; white-space: nowrap; }
body.av2 .kqv-fl .sp { margin-left: auto; }
body.av2 .kqv-srch { flex: 1 1 220px; min-width: 0; display: flex; }
body.av2 .kqv-srch input { width: 100%; height: 36px; border: 1px solid #D5DAE0; border-radius: 8px; padding: 0 10px; font-size: 13px; font-family: inherit; }
body.av2 .kqv-sel, body.av2 .kqv-date { height: 36px; border: 1px solid #D5DAE0; border-radius: 8px; padding: 0 8px; font-size: 13px; font-family: inherit; background: #fff; max-width: 100%; }
body.av2 .kqv-seg, body.av2 .kqv-btn { height: 32px; padding: 0 10px; border-radius: 8px; border: 1px solid #D5DAE0; background: #fff; font-size: 12.5px; font-weight: 600; color: #333D4B; font-family: inherit; display: inline-flex; align-items: center; gap: 5px; cursor: pointer; white-space: nowrap; }
body.av2 .kqv-seg b { font-weight: 700; color: var(--av2-muted); }
body.av2 .kqv-seg.on { background: #191F28; border-color: #191F28; color: #fff; }
body.av2 .kqv-seg.on b { color: #D5DAE0; }
body.av2 .kqv-btn:hover { background: #F0F7FF; }
body.av2 .kqv-btn.danger { color: #B3261E; }
body.av2 .kqv-btn:disabled { opacity: .5; cursor: default; }
body.av2 .kqv-ck { width: 13px; height: 13px; border: 1.5px solid #8B95A1; border-radius: 3px; display: inline-block; box-sizing: border-box; }
body.av2 .kqv-seg.on .kqv-ck { border-color: #fff; background: #fff; box-shadow: inset 0 0 0 2px #191F28; }
body.av2 .kqv-fbox { display: flex; flex-direction: column; gap: 6px; padding: 8px 10px; background: #F7F8FA; border-radius: 10px; }
body.av2 .kqv-list { max-height: calc(100vh - 330px); min-height: 200px; overflow: auto; }
body.av2 .kqv-row { display: block; width: 100%; text-align: left; padding: 12px 14px; border: 0; border-bottom: 1px solid #F2F4F6; background: transparent; font: inherit; color: var(--av2-fg); cursor: pointer; }
body.av2 .kqv-row:hover { background: #FAFBFC; }
body.av2 .kqv-row.on { background: #F2F8FC; box-shadow: inset 3px 0 0 var(--av2-accent); }
body.av2 .kqv-row > span { display: flex; }
body.av2 .kqv-r1 { align-items: center; gap: 6px; font-size: 12px; color: var(--av2-muted); }
body.av2 .kqv-r1 .veh { font-weight: 600; color: #333D4B; }
body.av2 .kqv-r1 .at { margin-left: auto; white-space: nowrap; }
body.av2 .kqv-r2 { align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 6px; }
body.av2 .kqv-r2 b { font-size: 14px; }
body.av2 .kqv-l2 { font-size: 12px; color: var(--av2-muted); margin-top: 2px; }
body.av2 .kqv-r3 { display: grid !important; grid-template-columns: auto minmax(0, 1fr); gap: 2px 8px; margin-top: 8px; font-size: 13px; }
body.av2 .kqv-r3 .k { color: var(--av2-muted); font-size: 12px; font-weight: 600; }
body.av2 .kqv-r3 .v { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.av2 .kqv-r4 { align-items: center; gap: 8px; margin-top: 6px; font-size: 12px; color: var(--av2-muted); }
body.av2 .kqv-r4 b { margin-left: auto; color: var(--av2-fg); font-size: 13px; white-space: nowrap; }
body.av2 .kqv-row.cx .kqv-r3, body.av2 .kqv-row.cx .kqv-r4 b { color: #8B95A1; }
body.av2 .kqv .mono, body.av2 .kqv-detail .mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; }
body.av2 .kqv-pill { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 11px; font-size: 12px; font-weight: 700; white-space: nowrap; }
body.av2 .kqv-pill.mt { background: #FFF8D6; color: #7A6300; }
body.av2 .kqv-pill.pk { background: #FFF3DB; color: #8A5A00; }
body.av2 .kqv-pill.dr { background: #E3F5EC; color: #0F6E48; }
body.av2 .kqv-pill.dn { background: #EEF1F4; color: #4E5968; }
body.av2 .kqv-pill.cx { background: #FDECE6; color: #B3261E; }
body.av2 .kqv-late { display: inline-flex; align-items: center; height: 20px; padding: 0 6px; border-radius: 4px; background: #FDECE6; color: #B3261E; font-size: 11px; font-weight: 700; white-space: nowrap; }
body.av2 .kqv-bd { display: inline-flex; align-items: center; height: 18px; padding: 0 6px; border-radius: 9px; background: var(--av2-tint); color: var(--av2-accent-dk); font-size: 11px; font-weight: 700; white-space: nowrap; }
body.av2 .kqv-empty { padding: 30px 16px; text-align: center; color: #8B95A1; font-size: 13px; line-height: 1.7; }
body.av2 .kqv-empty.err { color: #B3261E; }
body.av2 .kqv-acc { padding: 4px 12px 16px; background: #FAFCFE; border-bottom: 1px solid var(--av2-line); }
/* 상세 (카카오T 펼친 카드 구성) */
body.av2 .kqv-d { display: flex; flex-direction: column; gap: 12px; }
body.av2 .kqv-dh { background: #fff; border: 1px solid var(--av2-line); border-radius: 14px; padding: 14px 16px; }
body.av2 .kqv-dh .t1 { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--av2-muted); }
body.av2 .kqv-dh .t1 .veh { font-weight: 700; color: #333D4B; }
body.av2 .kqv-dh .t1 .fee { margin-left: auto; font-size: 18px; font-weight: 800; color: var(--av2-fg); }
body.av2 .kqv-kdot { width: 9px; height: 9px; border-radius: 50%; background: #FEE500; box-shadow: 0 0 0 1px #E5C800 inset; display: inline-block; }
body.av2 .kqv-dh .t2 { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
body.av2 .kqv-dh .t2 b { font-size: 17px; }
body.av2 .kqv-dh .t2 .l2 { font-size: 13px; color: var(--av2-muted); }
body.av2 .kqv-dh .t3 { display: flex; align-items: center; gap: 8px; margin-top: 10px; font-size: 13px; flex-wrap: wrap; }
body.av2 .kqv-dh .t3 .k { color: var(--av2-muted); font-size: 12px; font-weight: 600; }
body.av2 .kqv-dots { flex: 1 1 24px; min-width: 24px; border-top: 2px dotted #C5CCD3; height: 0; }
/* 카카오 기사 이름 · 연락처 · 차량번호 (2026-10-20 사장님 지시: 누르지 않아도 바로 보이게) */
body.av2 .kqv-dh .t4 { display: flex; align-items: center; gap: 4px 8px; margin-top: 10px; padding-top: 10px; border-top: 1px dashed #E5E8EB; font-size: 13px; flex-wrap: wrap; }
body.av2 .kqv-dh .t4 .k { color: var(--av2-muted); font-size: 12px; font-weight: 600; }
body.av2 .kqv-dh .t4 .kqv-tel { margin-top: 0; }
body.av2 .kqv-dh .t4 .sub { color: var(--av2-muted); font-size: 12px; }
body.av2 .kqv-r3 .v.drv { color: #333D4B; font-weight: 600; }
body.av2 .kqv-g2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
body.av2 .kqv-box { background: #fff; border: 1px solid var(--av2-line); border-radius: 14px; padding: 14px 16px; min-width: 0; }
body.av2 .kqv-box h4 { margin: 0 0 8px; font-size: 13px; font-weight: 700; color: #333D4B; display: flex; align-items: center; gap: 6px; }
body.av2 .kqv-box h4 .r { margin-left: auto; font-weight: 500; font-size: 12px; color: var(--av2-muted); }
body.av2 .kqv-kv { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 7px 10px; font-size: 13px; }
body.av2 .kqv-kv .k { color: var(--av2-muted); }
body.av2 .kqv-kv .v { min-width: 0; word-break: break-all; }
body.av2 .kqv-d .note { display: block; font-size: 12px; color: var(--av2-muted); word-break: keep-all; }
body.av2 .kqv-btns { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 12px; }
body.av2 .kqv-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 4px 0 12px; }
body.av2 .kqv-steps > div { position: relative; text-align: center; padding-top: 20px; font-size: 12px; color: var(--av2-muted); }
body.av2 .kqv-steps > div::before { content: ""; position: absolute; top: 6px; left: 0; right: 0; height: 3px; background: #E5E8EB; }
body.av2 .kqv-steps > div:first-child::before { left: 50%; }
body.av2 .kqv-steps > div:last-child::before { right: 50%; }
body.av2 .kqv-steps > div.ok::before { background: var(--av2-accent); }
body.av2 .kqv-steps > div::after { content: ""; position: absolute; top: 1px; left: 50%; width: 13px; height: 13px; margin-left: -6.5px; border-radius: 50%; background: #fff; border: 3px solid #C5CCD3; box-sizing: border-box; }
body.av2 .kqv-steps > div.ok::after { border-color: var(--av2-accent); background: var(--av2-accent); }
body.av2 .kqv-steps > div.cur::after { border-color: var(--av2-accent); }
body.av2 .kqv-steps > div.bad::after { border-color: #D94A1E; }
body.av2 .kqv-steps b { display: block; color: var(--av2-fg); font-size: 13px; margin-top: 2px; }
body.av2 .kqv-steps .s { display: block; font-size: 11px; }
body.av2 .kqv-steps .s.late { color: #B3261E; font-weight: 700; }
body.av2 .kqv-hist { border-top: 1px solid #F2F4F6; padding-top: 8px; }
body.av2 .kqv-hist > div { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 8px; font-size: 12px; padding: 3px 0; }
body.av2 .kqv-hist .tm { color: var(--av2-muted); }
body.av2 .kqv-note { font-size: 12px; color: #8B95A1; margin-top: 6px; }
body.av2 .kqv-addr { font-size: 13px; line-height: 1.5; margin-top: 2px; word-break: keep-all; }
body.av2 .kqv-tel { display: inline-block; margin-top: 2px; color: #1B9BD7; font-weight: 700; font-size: 13px; }
body.av2 .kqv-memo { margin-top: 8px; padding: 8px 10px; border-radius: 8px; background: #F7F8FA; font-size: 12px; color: #333D4B; white-space: pre-line; line-height: 1.5; }
body.av2 .kqv-stop { padding: 10px 0; border-top: 1px solid #F2F4F6; }
body.av2 .kqv-stop:first-of-type { border-top: 0; padding-top: 0; }
body.av2 .kqv-stop .h { display: flex; align-items: center; gap: 6px; font-size: 13px; }
body.av2 .kqv-stop .h .no { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%; background: #333D4B; color: #fff; font-size: 11px; font-weight: 700; flex: none; }
body.av2 .kqv-stop .h .no.ok { background: #9AA3AD; }
body.av2 .kqv-stop .h .r { margin-left: auto; font-size: 12px; color: var(--av2-muted); white-space: nowrap; }
body.av2 .kqv-stop .act { display: flex; align-items: center; gap: 6px; margin-top: 6px; flex-wrap: wrap; }
body.av2 .kqv-stop .act .note { flex: 1 1 160px; }
body.av2 .kqv-pk { font-size: 13px; line-height: 1.6; }
body.av2 .kqv-map { display: none; height: 240px; margin-top: 10px; border-radius: 10px; overflow: hidden; border: 1px solid var(--av2-line); }
body.av2 .kqv-map.show { display: block; }
@media (min-width: 1280px) {
  body.av2 #tab-order.kqv-on.av2-split #kqv-detail { display: block; }
  body.av2 .kqv-detail { min-width: 0; }
}
@media (max-width: 1279px) {
  body.av2 .kqv-list { max-height: none; }
  body.av2 .kqv-g2 { grid-template-columns: minmax(0, 1fr); }
  body.av2 .kqv-acc .kqv-map { height: 200px; }
}
@media (max-width: 600px) {
  body.av2 .kqv-ctl { padding: 10px 10px 8px; }
  body.av2 .kqv-fl .sp { margin-left: 0; }
  body.av2 .kqv-seg, body.av2 .kqv-btn { height: 34px; }
  body.av2 .kqv-kv { grid-template-columns: 84px minmax(0, 1fr); }
  body.av2 .kqv-sel { flex: 1 1 100%; }
  body.av2 .kqv-row { padding: 12px 12px; }
  body.av2 .kqv-acc { padding: 4px 8px 14px; }
}

/* ── 총괄(store_master) 새 화면 (2026-10-20): body.av2.av2m. 메뉴 · 하단 탭은 위 body.av2 규칙 그대로,
   매장현황은 기존 요소에 표시용 class(av2m-*)만 붙여 다시 꾸민다 (숫자는 store-master.js 가 같은 id 로 채운다) ── */
body.av2m #tab-store-master .page-header h2, body.av2m #tab-master-balance .page-header h2 { font-size: 20px !important; }
body.av2m .av2m-flt { background: #fff !important; border: 1px solid var(--av2-line) !important; border-radius: 14px !important; padding: 14px 16px !important; margin-bottom: 14px !important; }
body.av2m .av2m-pre { flex: 1 1 100%; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
body.av2m .av2m-pre .lb { font-size: 12px; font-weight: 700; color: #555; margin-right: 2px; }
body.av2m .av2m-pre button, body.av2m .av2m-vt button { height: 34px; padding: 0 12px; border-radius: 8px; border: 1px solid #D5DAE0; background: #fff; font-size: 13px; font-weight: 600; color: #333D4B; font-family: inherit; cursor: pointer; }
body.av2m .av2m-pre button.active, body.av2m .av2m-vt button.active { background: #191F28; border-color: #191F28; color: #fff; }
/* KPI 9칸: 흰 카드 + 왼쪽 색 띠 (종전 색을 띠로) */
body.av2m .av2m-k { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)) !important; gap: 10px !important; margin-bottom: 14px !important; }
body.av2m .av2m-kc { position: relative; background: #fff !important; border: 1px solid var(--av2-line); border-radius: 12px !important; padding: 12px 14px 12px 17px !important; text-align: left !important; overflow: hidden; min-width: 0; }
body.av2m .av2m-kc::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: #B0B8C1; }
body.av2m .av2m-kc[data-k="count"]::before { background: #1565C0; }
body.av2m .av2m-kc[data-k="sur"]::before { background: #E65100; }
body.av2m .av2m-kc[data-k="entry"]::before { background: #6A1B9A; }
body.av2m .av2m-kc[data-k="vat"]::before { background: #C62828; }
body.av2m .av2m-kc[data-k="order"]::before { background: #00695C; }
body.av2m .av2m-kc[data-k="cs"]::before { background: #6D4C41; }
body.av2m .av2m-kc[data-k="charge"]::before { background: #4527A0; }
body.av2m .av2m-kc[data-k="balance"]::before { background: #2E7D32; }
body.av2m .av2m-kc > div:first-child { font-size: 12px !important; font-weight: 600 !important; color: var(--av2-muted) !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.av2m .av2m-kc > div:nth-child(2) { font-size: 21px !important; font-weight: 800 !important; color: var(--av2-fg) !important; margin-top: 4px !important; white-space: nowrap; font-variant-numeric: tabular-nums; }
body.av2m .av2m-kc[data-k="cs"] { cursor: pointer; }
body.av2m .av2m-kc[data-k="cs"]:hover { border-color: #B7D4E8; background: #FBFDFF !important; }
body.av2m .av2m-kc[data-k="cs"] > div:nth-child(3) { font-size: 11px !important; color: var(--av2-accent) !important; font-weight: 600; margin-top: 3px !important; }
body.av2m .av2m-kc[data-k="sum"] { grid-column: span 2; background: linear-gradient(135deg, #0E6FA6, #1B9BD7) !important; border-color: transparent; }
body.av2m .av2m-kc[data-k="sum"]::before { display: none; }
body.av2m .av2m-kc[data-k="sum"] > div:first-child { color: rgba(255,255,255,.85) !important; white-space: normal; }
body.av2m .av2m-kc[data-k="sum"] > div:nth-child(2) { color: #fff !important; font-size: 24px !important; }
body.av2m .av2m-k.nobal .av2m-kc[data-k="sum"] { grid-column: span 4; }
body.av2m .av2m-sumf { display: flex; flex-wrap: wrap; gap: 4px 10px; margin-top: 6px; font-size: 12px; color: rgba(255,255,255,.92); }
body.av2m .av2m-sumf span { white-space: nowrap; }
/* 일자별 상세 / 매장별 합계 */
body.av2m .av2m-vt { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin: 2px 0 10px; }
body.av2m .av2m-vnote { margin-left: auto; font-size: 12px; color: #8B95A1; }
body.av2m .av2m-bystore { display: none; }
body.av2m #tab-store-master.av2m-store .av2m-bystore { display: block; }
body.av2m #tab-store-master.av2m-store .table-wrap, body.av2m #tab-store-master.av2m-store #master-cards, body.av2m #tab-store-master.av2m-store #master-pagination { display: none !important; }
body.av2m .av2m-tw { background: #fff; border: 1px solid var(--av2-line); border-radius: 12px; overflow-x: auto; }
body.av2m table.av2m-tbl { width: 100%; min-width: 760px !important; border-collapse: collapse; font-size: 13px; }
body.av2m table.av2m-tbl th { background: #F7F8FA; color: #6B7684; font-size: 12px; font-weight: 700; text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--av2-line); white-space: nowrap; }
body.av2m table.av2m-tbl td { padding: 10px 12px; border-bottom: 1px solid #F2F4F6; white-space: nowrap; }
body.av2m table.av2m-tbl .r { text-align: right; }
body.av2m table.av2m-tbl tfoot td { font-weight: 700; background: #FAFBFC; border-bottom: 0; }
body.av2m .av2m-bar { height: 4px; border-radius: 2px; background: #EEF1F4; margin-top: 4px; max-width: 160px; }
body.av2m .av2m-bar i { display: block; height: 100%; border-radius: 2px; background: var(--av2-accent); }
body.av2m .av2m-tot { color: #1B9BD7; font-weight: 800; }
body.av2m .av2m-cs { color: #5D4037; font-weight: 700; }
body.av2m .av2m-cards { display: none; flex-direction: column; gap: 8px; }
body.av2m .av2m-card { background: #fff; border: 1px solid var(--av2-line); border-radius: 12px; padding: 12px 14px; }
body.av2m .av2m-card .h { display: flex; align-items: baseline; gap: 8px; }
body.av2m .av2m-card .h b { flex: 1; min-width: 0; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.av2m .av2m-card .h .av2m-tot { font-size: 17px; white-space: nowrap; }
body.av2m .av2m-card .g { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 12px; margin-top: 8px; font-size: 13px; }
body.av2m .av2m-card .g span { color: #888; }
body.av2m .av2m-empty { padding: 30px; text-align: center; color: #888; background: #fff; border: 1px solid var(--av2-line); border-radius: 12px; }
/* CS 및 회수처리 상세 창 위 요약 */
body.av2m .av2m-csbr { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 4px; }
body.av2m .av2m-csbr > div { border: 1px solid var(--av2-line); border-radius: 10px; padding: 10px 12px; font-size: 12px; color: #6B7684; background: #fff; }
body.av2m .av2m-csbr b { display: block; font-size: 15px; color: #191F28; margin-top: 2px; }
body.av2m .av2m-csbr small { display: block; font-size: 11px; color: #8B95A1; margin-top: 2px; }
/* 충전금현황: 잔액 카드 · 달력 상자 정리 */
body.av2m #mbal-store-info { background: linear-gradient(135deg, #0B4F7A, #1B9BD7) !important; border-radius: 14px !important; }
body.av2m #tab-master-balance > div[style*="border:1px solid #e5e8eb"] { border-radius: 14px !important; }
@media (max-width: 1023px) {
  body.av2m .av2m-k { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px !important; }
  body.av2m .av2m-kc { padding: 10px 10px 10px 13px !important; }
  body.av2m .av2m-kc > div:nth-child(2) { font-size: 17px !important; }
  body.av2m .av2m-kc[data-k="sum"], body.av2m .av2m-k.nobal .av2m-kc[data-k="sum"] { grid-column: span 2; }
  body.av2m .av2m-kc[data-k="sum"] > div:nth-child(2) { font-size: 21px !important; }
  body.av2m .av2m-flt { padding: 12px !important; }
  body.av2m .av2m-tw { display: none; }
  body.av2m .av2m-cards { display: flex; }
  body.av2m .av2m-vnote { margin-left: 0; flex: 1 1 100%; }
  body.av2m .av2m-csbr { grid-template-columns: 1fr; }
}

/* ── 배차 스케줄 분리 (2026-10-20 사장님 확정, 관리자만): 상담내역 = '모집 상담' 화면 / 배차 캘린더 = '배차 스케줄' 화면 ──
   js/admin-v2.js syncConsult 가 #tab-consult 에 av2-ct(+ 배차 캘린더면 av2-cal)를 붙이고 [+ 신규 상담] 줄 앞에 제목을 넣는다. 상담원 계정(body.av2 없음)은 종전 그대로 */
body.av2 #tab-consult .av2-cthead { justify-content: space-between !important; align-items: center; gap: 12px; }
body.av2 #tab-consult .av2-ctt { font-size: 22px; font-weight: 900; color: #191F28; letter-spacing: -0.3px; line-height: 1.3; min-width: 0; }
body.av2 #tab-consult.av2-cal .av2-cthead { margin-bottom: 16px !important; }
body.av2 #tab-consult.av2-cal > .tabs { display: none !important; }
body.av2 #tab-consult.av2-ct:not(.av2-cal) > .tabs .tab[data-tab="cal"] { display: none !important; }
@media (max-width: 1023px) {
  body.av2 #tab-consult .av2-ctt { font-size: 18px; }
}

/* ============================================================
   메뉴 화면 모양 통일 (2026-10-20 사장님 확정 "전체 적용", body.av2s - 관리자 · 총괄 새 화면). 기준은 주문현황(메인)
   js/admin-v2.js AdminV2Skin 이 요소에 data-s 표시를 붙이면 여기서 모양만 덮는다 (인라인 스타일보다 세야 해서 !important).
   주문현황 · 총괄 매장현황 · 충전금현황 · 화면 위에 뜨는 창(모달)은 표시를 붙이지 않는다. 끄기 = js AV2_SKIN_ON false
   시안 https://claude.ai/artifact/DVZ2bGCiifiRHVwCL9ZoQ8
   ============================================================ */
body.av2s { --s-accent: #0E6FA6; --s-navy: #0D5C8A; --s-sky: #1B9BD7; --s-line: #E5E8EB; --s-line2: #D5DAE0; --s-muted: #6B7684; --s-fg: #191F28; }

/* 1) 제목: 메인과 같은 18px · 아래 여백 10px. 글자는 js 가 메뉴 이름으로 바꾼다 */
body.av2s .tab-content:not(#tab-order, #tab-store-master, #tab-master-balance) .page-header h2,
body.av2s .tab-content:not(#tab-order, #tab-store-master, #tab-master-balance) h2[data-s="title"],
body.av2s .av2-ptitle { font-size: 18px !important; font-weight: 900 !important; color: var(--s-fg) !important; letter-spacing: -0.3px; margin: 0 0 10px !important; }
body.av2s .av2-ptitle { display: block; }
body.av2s #tab-consult .av2-ctt { font-size: 18px !important; }
body.av2s .tab-content:not(#tab-order, #tab-store-master, #tab-master-balance) .page-header { margin-bottom: 14px !important; }
body.av2s [data-s-hide="1"] { display: none !important; }
/* 프로모션 요금 · 기사 알림 · 매장행사: 맨 위 제목 하나 (서브 화면 안 제목은 숨김) */
body.av2s #tab-promotion .promo-subtab-content > .page-header > h2 { display: none !important; }
/* 근무스케줄: 가운데 정렬 제목을 왼쪽으로 (폰도 제목 줄 오른쪽에 칩) */
body.av2s #tab-schedule .page-header { flex-direction: row !important; justify-content: space-between !important; align-items: center !important; text-align: left !important; }
body.av2s #tab-schedule .page-header h2 { text-align: left !important; margin: 0 !important; }
/* 매장관리 · 공지: 제목 줄 오른쪽에 [신규] (접수대기 · 배차 스케줄 · 모집 상담과 같은 자리) */
body.av2s #tab-store .page-header, body.av2s #tab-notice .page-header { display: flex !important; justify-content: space-between !important; align-items: center !important; flex-wrap: wrap; gap: 10px; }
body.av2s #tab-store .page-header h2, body.av2s #tab-notice .page-header h2 { margin: 0 !important; }
/* 계정 · 권한: 카드 왼쪽 파란 줄 없애기 (다른 카드와 같게) */
body.av2s #tab-login-history .card { border-left: 1px solid var(--s-line) !important; border-radius: 12px !important; }

/* 2) 서브탭: 밑줄 한 가지 (한 줄, 넘치면 옆으로 밀기) */
body.av2s .av2-stabs { display: flex !important; flex-wrap: nowrap !important; gap: 2px !important; background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--s-line) !important; border-radius: 0 !important; padding: 0 !important; margin: 0 0 14px !important; box-shadow: none !important; overflow-x: auto; scrollbar-width: none; width: auto !important; }
body.av2s .av2-stabs::-webkit-scrollbar { display: none; }
body.av2s .av2-stab { flex: 0 0 auto !important; width: auto !important; min-width: 0 !important; background: transparent !important; color: var(--s-muted) !important; border: 0 !important; border-bottom: 2px solid transparent !important; border-radius: 0 !important; box-shadow: none !important; padding: 10px 12px 9px !important; margin: 0 0 -1px !important; font-size: 14px !important; font-weight: 600 !important; white-space: nowrap !important; line-height: 1.3 !important; height: auto !important; cursor: pointer; }
body.av2s .av2-stab.on-s { color: var(--s-accent) !important; border-bottom-color: var(--s-accent) !important; font-weight: 800 !important; }
body.av2s .av2-stab .cnt { margin-left: 4px; }

/* 3) 버튼: 메인 체계 */
body.av2s [data-s="pri"], body.av2s [data-s="row"], body.av2s [data-s="new"], body.av2s [data-s="sub"], body.av2s [data-s="dng"], body.av2s [data-s="xls"], body.av2s [data-s="chip"] {
  background-image: none !important; box-shadow: none !important; border-radius: 8px !important; text-shadow: none !important; transform: none !important; }
body.av2s [data-s="pri"] { background: var(--s-navy) !important; color: #fff !important; border: 1px solid var(--s-navy) !important; font-weight: 700 !important; }      /* 메인 '검색' */
body.av2s [data-s="row"] { background: var(--s-sky) !important; color: #fff !important; border: 1px solid var(--s-sky) !important; font-weight: 700 !important; }         /* 메인 카드 '배정' */
body.av2s [data-s="new"] { background: #2196F3 !important; color: #fff !important; border: 1px solid #2196F3 !important; font-weight: 700 !important; box-shadow: 0 2px 6px rgba(33,150,243,.25) !important; }  /* 메인 '신규 주문' */
body.av2s [data-s="sub"] { background: #EFF6FF !important; color: #2196F3 !important; border: 1px solid #D6E8FB !important; font-weight: 700 !important; }             /* 메인 '수정' */
body.av2s [data-s="dng"] { background: #FEF2F2 !important; color: #EF4444 !important; border: 1px solid #FBD5D5 !important; font-weight: 700 !important; }             /* 메인 '삭제' */
body.av2s [data-s="xls"] { background: #2E7D32 !important; color: #fff !important; border: 1px solid #2E7D32 !important; font-weight: 700 !important; }                /* 메인 '엑셀 다운로드' */
body.av2s [data-s="chip"] { background: #fff !important; color: #333D4B !important; border: 1px solid var(--s-line2) !important; font-weight: 700 !important; }        /* 메인 브랜드 칩 */
body.av2s [data-s="chip"].on-s { background: var(--s-fg) !important; color: #fff !important; border-color: var(--s-fg) !important; }
body.av2s [data-s="chip"] * { color: inherit !important; }
body.av2s [data-s="pri"]:hover, body.av2s [data-s="row"]:hover, body.av2s [data-s="xls"]:hover { filter: brightness(0.95); }
body.av2s [data-s="sub"]:hover { background: #E3F0FF !important; }
body.av2s [data-s="chip"]:not(.on-s):hover { background: #F2F4F6 !important; }
body.av2s [data-s]:disabled { opacity: .55; }

/* 4) 색 머리 띠 -> 흰 머리 + 왼쪽 색 줄 (의미 색은 줄로만) */
body.av2s [data-s="band"] { background: #fff !important; background-image: none !important; color: var(--s-fg) !important; border-bottom: 1px solid var(--s-line) !important; font-weight: 800 !important; box-shadow: inset 3px 0 0 var(--s-navy) !important; }
body.av2s [data-s="band"] * { color: inherit; }
body.av2s [data-s="band"][data-s-c="green"] { box-shadow: inset 3px 0 0 #2E7D32 !important; }
body.av2s [data-s="band"][data-s-c="red"] { box-shadow: inset 3px 0 0 #E53935 !important; }
body.av2s [data-s="band"][data-s-c="dark"] { box-shadow: inset 3px 0 0 #455A64 !important; }
/* 띠 안 입력칸(기사배정 '주문 상태 관리' 날짜 등)은 어두운 띠용 흰 글자였다 -> 흰 머리에서는 보통 입력칸으로 */
body.av2s [data-s="band"] input:not([type=checkbox]):not([type=radio]), body.av2s [data-s="band"] select { color: var(--s-fg) !important; background: #fff !important; border: 1px solid var(--s-line2) !important; }

/* 5) 숫자 칸 -> 메인 통계 칸 (흰 카드 · 회색 이름 · 굵은 숫자) */
body.av2s [data-s="kpi"] { background: #fff !important; background-image: none !important; border: 1px solid var(--s-line) !important; border-radius: 12px !important; box-shadow: 0 1px 2px rgba(0,0,0,.04) !important; color: var(--s-fg) !important; }
body.av2s [data-s="kpi"][data-s-hl] { border-left: 4px solid var(--s-accent) !important; }
body.av2s [data-s="kpi-v"] { color: var(--s-fg) !important; font-weight: 900 !important; text-shadow: none !important; }
body.av2s [data-s="kpi"][data-s-hl] [data-s="kpi-v"] { color: var(--s-accent) !important; }
body.av2s [data-s="kpi"], body.av2s [data-s="kpi-l"], body.av2s [data-s="kpi-wrap"] { color: var(--s-muted) !important; opacity: 1 !important; }
body.av2s [data-s="kpi-v"] * { color: inherit !important; }
body.av2s [data-s="kpiband"] { background: #fff !important; border: 1px solid var(--s-line) !important; border-radius: 12px !important; box-shadow: 0 1px 2px rgba(0,0,0,.04) !important; }

/* 6) 안내 상자: 안내(회청) / 주의(연노랑) / 경고(연빨강) - 같은 모서리 · 테두리. 안쪽 장식 테두리는 지우되 입력칸 · 버튼 테두리는 그대로 */
body.av2s [data-s="info"] { background: #F4F7FA !important; border: 1px solid var(--s-line) !important; border-radius: 10px !important; color: #4E5968 !important; }
body.av2s [data-s="warn"] { background: #FFF8EB !important; border: 1px solid #F3E1B9 !important; border-radius: 10px !important; color: #7A5300 !important; }
body.av2s [data-s="alert"] { background: #FEF2F2 !important; border: 1px solid #FBD5D5 !important; border-radius: 10px !important; color: #B42318 !important; }
body.av2s [data-s="info"] :not(input):not(select):not(textarea):not(button),
body.av2s [data-s="warn"] :not(input):not(select):not(textarea):not(button),
body.av2s [data-s="alert"] :not(input):not(select):not(textarea):not(button) { border-color: transparent; }

/* 7) 입력칸: 조회 줄 높이 · 모서리 통일 (메인 조회 상자와 같게) */
body.av2s .tab-content:not(#tab-order, #tab-store-master, #tab-master-balance) .filter-bar input:not([type=checkbox]):not([type=radio]):not([type=file]),
body.av2s .tab-content:not(#tab-order, #tab-store-master, #tab-master-balance) .filter-bar select,
body.av2s .tab-content:not(#tab-order, #tab-store-master, #tab-master-balance) .page-header input:not([type=checkbox]):not([type=radio]):not([type=file]),
body.av2s .tab-content:not(#tab-order, #tab-store-master, #tab-master-balance) .page-header select { height: 38px !important; border-radius: 8px !important; border: 1px solid var(--s-line2) !important; font-size: 14px !important; box-shadow: none !important; }

/* 8) 화면별 */
/* 근무스케줄 주간 만근 보너스: 노란 줄 -> 흰 줄 · 검정 글자 */
body.av2s #tab-schedule #sch-weekly-bonus-panel [data-s="warn"] { background: #fff !important; border-color: var(--s-line) !important; color: var(--s-fg) !important; }
body.av2s #sch-weekly-bonus-panel > div:first-child > div:first-child { color: var(--s-fg) !important; }
body.av2s #sch-weekly-bonus-panel > div:nth-child(2) > div > div:first-child { color: var(--s-fg) !important; }
/* 조회 줄 버튼 높이 (표 · 카드 안 버튼은 그대로) */
body.av2s [data-s="pri"]:not([data-s-row]), body.av2s [data-s="new"]:not([data-s-row]), body.av2s [data-s="xls"]:not([data-s-row]) { min-height: 34px; }
body.av2s [data-s="sub"]:not([data-s-row]) { min-height: 30px; }
/* 기사배정 '주문 상태 관리' 머리: 폰에서 제목 · [새로고침]이 세로로 한 글자씩 눌리던 것(종전부터) -> 제목 줄 / 날짜 · 새로고침 줄로 나눈다 */
@media (max-width: 1023px) {
  body.av2s #tab-dispatch div:has(> div > #dispatch-date) { flex-wrap: wrap !important; gap: 8px; }
  body.av2s #tab-dispatch div:has(> div > #dispatch-date) > span { white-space: nowrap; }
  body.av2s #tab-dispatch #dispatch-date + button { white-space: nowrap; flex-shrink: 0; }
}
