/* ==========================================================================
   삼우물산 — 3단계 화면별 시안 적용 (2026-08-12)

   화면 하나당 한 구역. 모든 규칙이 '#pg-<화면>.ds' 로 시작하고,
   해당 페이지 div 에 class="ds" 를 붙인 화면만 실제로 바뀐다.

   [공통 원칙] CSS 전용. JS·onclick·id·name·data-* 미변경.
   화면에 뜨는 수치는 전부 기존 코드가 계산한 값 그대로.
   의미를 담은 색(부서 색·긴급 빨강·정상 초록 등)은 건드리지 않는다.
   ※ 홈(pg-terminal)은 별도 파일 css/samwoo-home.css 담당.
   ========================================================================== */


/* ══════════════════════════════════════════════════════════════════════════
   보고서함 (pg-reports)
   기존이 이미 앰버(#F59E0B)를 쓰고 있어 색 방향은 시안과 같다.
   바꾸는 건 ① 하드코딩된 회색·rgba 테두리를 토큰으로 ② 라운드 12→8
   ③ 버튼을 시안 버튼 모양으로 ④ 패널에 그림자.
   [유지] 부서칩의 --dc 부서색, 별표 금색, 안읽음 파랑 = 전부 의미색.
   [유지] 주요 버튼의 검은 글자 — 앰버 배경에 흰 글자는 대비가 크게 떨어진다
          (시안 토큰 --accent-fg 는 흰색이지만 앰버 테마에선 가독성이 나쁘다).
   ══════════════════════════════════════════════════════════════════════════ */

#pg-reports.ds .rc-topbar{
  background:var(--surface-card); border-bottom:var(--bd); color:var(--text-3); }
#pg-reports.ds .rc-topbar .rc-tb-title{ font-size:var(--fs-13); color:var(--text-1); }

/* 좌우 패널 */
#pg-reports.ds .rc-left,
#pg-reports.ds .rc-right{
  background:var(--surface-card); border:var(--bd); border-radius:var(--r-4);
  box-shadow:var(--shadow-1); }
#pg-reports.ds .rc-left-head,
#pg-reports.ds .rc-tabs,
#pg-reports.ds .rc-deptbar,
#pg-reports.ds .rc-detail-head{ border-bottom:1px solid var(--hairline-soft); }
#pg-reports.ds .rc-deptbar{ background:transparent; }
#pg-reports.ds .rc-left-h{ font-size:var(--fs-16); font-weight:800; color:var(--text-1); }
#pg-reports.ds .rc-left-sub,
#pg-reports.ds .rc-new-badge{ font-size:var(--fs-11); color:var(--text-3); }
#pg-reports.ds .rc-new-badge b{ color:var(--accent); }

/* 상단 탭(전체·안읽음·자료요청·시세·브리핑·별표) */
#pg-reports.ds .rc-tab{ border-radius:var(--r-2); color:var(--text-3); }
#pg-reports.ds .rc-tab:hover{ background:var(--surface-sunk); }
#pg-reports.ds .rc-tab.on{ background:var(--accent-soft); box-shadow:inset 0 -2px 0 var(--accent); }
#pg-reports.ds .rc-tab .cnt{ color:var(--text-3); }
#pg-reports.ds .rc-tab.on .cnt{ color:var(--accent); }

/* 부서 칩 — 부서색(--dc)은 그대로, 기본 상태 테두리만 토큰으로 */
#pg-reports.ds .rc-dchip{
  background:var(--surface-sunk); border:1px solid var(--hairline-soft); color:var(--text-2); }
#pg-reports.ds .rc-dchip:hover{ border-color:var(--hairline); }

/* 목록 행 */
#pg-reports.ds .rc-item{ border-bottom:1px solid var(--hairline-soft); }
#pg-reports.ds .rc-item:hover{ background:var(--surface-sunk); }
#pg-reports.ds .rc-item.active{ background:var(--accent-soft)!important; border-left-color:var(--accent)!important; }
#pg-reports.ds .rc-item-title{ font-size:var(--fs-13); color:var(--text-1); }
#pg-reports.ds .rc-item-meta,
#pg-reports.ds .rc-item-time{ font-size:var(--fs-11); color:var(--text-3); }

/* 상세 */
#pg-reports.ds .rc-detail-h1{ color:var(--text-1); letter-spacing:-0.02em; }
#pg-reports.ds .rc-detail-sub{ font-size:var(--fs-12); color:var(--text-3); }
#pg-reports.ds .rc-kv{
  border-top:1px solid var(--hairline-soft); border-bottom:1px solid var(--hairline-soft); }
#pg-reports.ds .rc-kv .k{ font-size:var(--fs-11); color:var(--text-3); }
#pg-reports.ds .rc-kv .v{ color:var(--text-1); }
#pg-reports.ds .rc-kv .vsub{ font-size:var(--fs-11); color:var(--text-3); }
#pg-reports.ds .rc-sec-h{ font-size:var(--fs-15); color:var(--text-1); }
#pg-reports.ds .rc-bullet-num{ background:var(--accent-soft); color:var(--accent); }
#pg-reports.ds .rc-bullet-text{ color:var(--text-2); }
#pg-reports.ds .rc-md p{ color:var(--text-2)!important; }
#pg-reports.ds .rc-md table th{ color:var(--accent); border-bottom-color:var(--hairline); }
#pg-reports.ds .rc-md table td{ color:var(--text-2); border-bottom-color:var(--hairline-soft); }

/* 하단 액션바 · 버튼 */
#pg-reports.ds .rc-actionbar{
  border-top:1px solid var(--hairline-soft); background:transparent; }
#pg-reports.ds .rc-btn{
  background:var(--surface-card); color:var(--text-1); border:var(--bd);
  border-radius:var(--r-2); font-size:var(--fs-12); font-weight:600; padding:8px 14px; }
#pg-reports.ds .rc-btn:hover{ background:var(--surface-sunk); border-color:var(--text-4); }
#pg-reports.ds .rc-btn.pri,
#pg-reports.ds .rc-head-action{
  background:var(--accent); color:#18181B; border:1px solid var(--accent);
  border-radius:var(--r-2); font-weight:700; }
#pg-reports.ds .rc-btn.pri:hover,
#pg-reports.ds .rc-head-action:hover{ background:var(--accent-deep); box-shadow:none; }

/* 좁은 화면 */
@media (max-width:900px){
  #pg-reports.ds .rc-wrap{ padding:12px; gap:12px; }
}
@media (max-width:640px){
  #pg-reports.ds .rc-topbar{ padding:8px 12px; flex-wrap:wrap; gap:6px; }
  #pg-reports.ds .rc-detail-head{ padding:18px 16px 14px; }
  #pg-reports.ds .rc-detail-h1{ font-size:20px; }
  #pg-reports.ds .rc-detail-body{ padding:16px; }
  #pg-reports.ds .rc-actionbar{ padding:12px 16px; flex-wrap:wrap; }
}


/* ══════════════════════════════════════════════════════════════════════════
   업무 달력 (pg-calendar) — FullCalendar 사용
   [주의] .fc-* 는 FullCalendar 가 만드는 DOM 이라 클래스명을 절대 안 건드린다.
          색·라운드만 덮는다. 일정 색(부서색)은 이벤트마다 인라인이라 그대로 둔다.
   ══════════════════════════════════════════════════════════════════════════ */
#pg-calendar.ds .cal-h1{ color:var(--text-1); letter-spacing:-0.015em; }
#pg-calendar.ds .cal-eyebrow{ color:var(--accent); letter-spacing:.10em; }
#pg-calendar.ds .cal-h1-sub{ color:var(--text-3); }
#pg-calendar.ds .cal-card,
#pg-calendar.ds .cal-clock-wrap{
  background:var(--surface-card); border:var(--bd); border-radius:var(--r-4);
  box-shadow:var(--shadow-1); }
#pg-calendar.ds .cal-btn{
  background:var(--surface-card); color:var(--text-1); border:var(--bd);
  border-radius:var(--r-2); font-size:var(--fs-12); font-weight:600; }
#pg-calendar.ds .cal-btn:hover{ background:var(--surface-sunk); border-color:var(--text-4); }
#pg-calendar.ds .cal-btn.pri{ background:var(--accent); color:#18181B; border-color:var(--accent); }
#pg-calendar.ds .cal-btn.pri:hover{ background:var(--accent-deep); }
/* 활성 버튼이 흰 배경이라 시안과 겉돌던 것 → 앰버 톤으로 */
#pg-calendar.ds .cal-btn.on{
  background:var(--accent-soft); color:var(--accent); border-color:var(--accent); }
#pg-calendar.ds #cal-dept-filter{ border-bottom:1px solid var(--hairline-soft); }
#pg-calendar.ds .dept-chip{
  background:var(--surface-sunk); border:1px solid var(--hairline-soft); color:var(--text-2); }
#pg-calendar.ds #cal-clock-digital{ color:var(--text-1); }
#pg-calendar.ds #cal-clock-date{ color:var(--text-3); }
#pg-calendar.ds .fc .fc-toolbar-title{ color:var(--text-1); }
#pg-calendar.ds .fc .fc-button{
  background:var(--surface-card); border:var(--bd); color:var(--text-1); border-radius:var(--r-2); }
#pg-calendar.ds .fc .fc-button:hover{ background:var(--surface-sunk); border-color:var(--text-4); }
#pg-calendar.ds .fc .fc-button-primary{ background:var(--accent); color:#18181B; border-color:var(--accent); }
#pg-calendar.ds .fc .fc-col-header-cell{ background:var(--surface-sunk); color:var(--text-3); }
#pg-calendar.ds .fc .fc-daygrid-day{ border-color:var(--hairline-soft); }
#pg-calendar.ds .fc .fc-daygrid-day-number{ color:var(--text-2); }
#pg-calendar.ds .fc .fc-day-today{ background:var(--accent-soft)!important; }
#pg-calendar.ds .fc .fc-day-today .fc-daygrid-day-number{ color:var(--accent); }
#pg-calendar.ds .fc .fc-event{ border-radius:var(--r-2); }


/* ══════════════════════════════════════════════════════════════════════════
   카톡 발송 (pg-kakao-send)
   [절대 안 건드림] 오른쪽 핸드폰 목업(.phone·.ph-*) — 실제 카카오톡 화면을
   그대로 재현한 미리보기다. 색을 바꾸면 사장님이 실제로 보게 될 화면과 달라진다.
   왼쪽 입력 폼(ks-*)만 시안 결로 맞춘다.
   ══════════════════════════════════════════════════════════════════════════ */
#pg-kakao-send.ds .ks-title{ color:var(--text-1); letter-spacing:-0.015em; }
#pg-kakao-send.ds .ks-sub{ color:var(--text-3); }
#pg-kakao-send.ds .ks-right{ background:var(--surface); border-left:1px solid var(--hairline-soft); }
#pg-kakao-send.ds .ks-block{
  background:var(--surface-card); border:var(--bd); border-radius:var(--r-4);
  padding:14px 16px; box-shadow:var(--shadow-1); }
#pg-kakao-send.ds .ks-block-h{ color:var(--accent); letter-spacing:.08em; }
#pg-kakao-send.ds .ks-input,
#pg-kakao-send.ds .ks-text,
#pg-kakao-send.ds .ks-search-list{
  background:var(--surface-sunk); color:var(--text-1); border:var(--bd); border-radius:var(--r-2); }
#pg-kakao-send.ds .ks-input:focus,
#pg-kakao-send.ds .ks-text:focus{ border-color:var(--accent); outline:none; }
#pg-kakao-send.ds .ks-search-item{ color:var(--text-1); border-bottom:1px solid var(--hairline-soft); }
#pg-kakao-send.ds .ks-search-item:hover{ background:var(--accent-soft); }
#pg-kakao-send.ds .ks-q-btn{
  background:var(--surface-sunk); color:var(--text-2); border:1px solid var(--hairline-soft); }
#pg-kakao-send.ds .ks-q-btn:hover{
  background:var(--accent-soft); border-color:var(--accent); color:var(--accent); }
#pg-kakao-send.ds .ks-radio{ color:var(--text-2); }
#pg-kakao-send.ds .ks-photo-area,
#pg-kakao-send.ds .ks-status-live,
#pg-kakao-send.ds .ks-hist-mini{ color:var(--text-3); }
#pg-kakao-send.ds .ks-hist-mini-row{ border-bottom:1px solid var(--hairline-soft); }
/* 발송 버튼 — 되돌릴 수 없는 동작이라 그라데이션·그림자를 빼고 또렷한 단색으로 */
#pg-kakao-send.ds .ks-send-btn{
  background:var(--accent); color:#18181B; border-radius:var(--r-2);
  box-shadow:none; font-weight:800; }
#pg-kakao-send.ds .ks-send-btn:hover{ background:var(--accent-deep); filter:none; transform:none; }


/* ══════════════════════════════════════════════════════════════════════════
   재고 (pg-stock)
   [유지] 등급 A/B/C/X 색, urgent·warn·done 상태색, 재고 막대 색 = 전부 의미색
   ══════════════════════════════════════════════════════════════════════════ */
#pg-stock.ds .sc-eyebrow{ color:var(--accent); letter-spacing:.10em; }
#pg-stock.ds .sc-h1{ color:var(--text-1); letter-spacing:-0.015em; }
#pg-stock.ds .sc-h1-sub{ color:var(--text-3); }
#pg-stock.ds .sc-kpi,
#pg-stock.ds .sc-card,
#pg-stock.ds .sc-tbl-wrap{
  background:var(--surface-card); border:var(--bd); border-radius:var(--r-4);
  box-shadow:var(--shadow-1); }
#pg-stock.ds .sc-kpi-label{ color:var(--text-3); letter-spacing:.08em; }
#pg-stock.ds .sc-kpi-num{ color:var(--text-1); }
#pg-stock.ds .sc-kpi-delta,
#pg-stock.ds .sc-grade-legend{ color:var(--text-3); }
#pg-stock.ds .sc-h3{ color:var(--text-1); }
#pg-stock.ds .sc-pill{
  background:var(--surface-sunk); border:1px solid var(--hairline-soft); color:var(--text-2); }
#pg-stock.ds .sc-pill:hover{ background:var(--surface-sunk); border-color:var(--hairline); }
#pg-stock.ds .sc-pill.on{ background:var(--accent-soft); color:var(--accent); border-color:var(--accent); }
#pg-stock.ds .sc-search{
  background:var(--surface-sunk); border:var(--bd); color:var(--text-1); border-radius:var(--r-2); }
#pg-stock.ds .sc-search:focus{ border-color:var(--accent); }
#pg-stock.ds .sc-tbl th{
  background:var(--surface-sunk); color:var(--text-3);
  border-bottom:1px solid var(--hairline); letter-spacing:.08em; }
#pg-stock.ds .sc-tbl td{ color:var(--text-1); border-bottom:1px solid var(--hairline-soft); }
#pg-stock.ds .sc-tbl tbody tr:hover td{ background:var(--surface-sunk); }
#pg-stock.ds .sc-bar{ background:var(--surface-sunk); }
#pg-stock.ds .sc-btn{
  background:var(--surface-card); color:var(--text-1); border:var(--bd); border-radius:var(--r-2); }
#pg-stock.ds .sc-btn:hover{ background:var(--surface-sunk); border-color:var(--text-4); }
#pg-stock.ds .sc-btn.pri{ background:var(--accent); color:#18181B; border-color:var(--accent); }
#pg-stock.ds .sc-btn.pri:hover{ background:var(--accent-deep); }


/* ══════════════════════════════════════════════════════════════════════════
   채권 회수 (pg-debt)
   [유지] 받을돈=앰버 / 줄돈=파랑 구분, 연체 구간색(b1~b4), 상태칩 색 = 의미색
   ══════════════════════════════════════════════════════════════════════════ */
#pg-debt.ds .dc-eyebrow{ color:var(--accent); letter-spacing:.10em; }
#pg-debt.ds .dc-h1{ color:var(--text-1); letter-spacing:-0.015em; }
#pg-debt.ds .dc-h1-sub{ color:var(--text-3); }
#pg-debt.ds .dc-btn{
  background:var(--surface-card); color:var(--text-1); border:var(--bd); border-radius:var(--r-2); }
#pg-debt.ds .dc-btn:hover{ background:var(--surface-sunk); border-color:var(--text-4); }
#pg-debt.ds .dc-btn.pri{ background:var(--accent); color:#18181B; border-color:var(--accent); }
#pg-debt.ds .dc-btn.pri:hover{ background:var(--accent-deep); }
#pg-debt.ds .dc-summary,
#pg-debt.ds .dc-tbl-wrap{
  background:var(--surface-card); border:var(--bd); border-radius:var(--r-4);
  box-shadow:var(--shadow-1); }
#pg-debt.ds .dc-cell{ border-right:1px solid var(--hairline-soft); }
#pg-debt.ds .dc-lbl{ color:var(--text-3); letter-spacing:.08em; }
#pg-debt.ds .dc-val{ color:var(--text-1); }
#pg-debt.ds .dc-sub,
#pg-debt.ds .dc-legend,
#pg-debt.ds .dc-foot{ color:var(--text-3); }
#pg-debt.ds .dc-bucket{ background:var(--surface-sunk); }
#pg-debt.ds .dc-pill{
  background:var(--surface-sunk); border:1px solid var(--hairline-soft); color:var(--text-2); }
#pg-debt.ds .dc-pill:hover{ border-color:var(--hairline); background:var(--surface-sunk); }
#pg-debt.ds .dc-pill.on{ background:var(--accent-soft); color:var(--accent); border-color:var(--accent); }
#pg-debt.ds .dc-search{
  background:var(--surface-sunk); border:var(--bd); color:var(--text-1); border-radius:var(--r-2); }
#pg-debt.ds .dc-search:focus{ border-color:var(--accent); }
#pg-debt.ds .dc-tbl th{
  background:var(--surface-sunk); color:var(--text-3);
  border-bottom:1px solid var(--hairline); letter-spacing:.08em; }
#pg-debt.ds .dc-tbl td{ color:var(--text-1); border-bottom:1px solid var(--hairline-soft); }
#pg-debt.ds .dc-tbl tbody tr:hover{ background:var(--surface-sunk); }
#pg-debt.ds .dc-avatar{ background:var(--surface-sunk); color:var(--text-2); border-radius:var(--r-2); }
#pg-debt.ds .dc-biz-name{ color:var(--text-1); }
#pg-debt.ds .dc-biz-meta{ color:var(--text-3); }
#pg-debt.ds .dc-icon{
  background:var(--surface-card); border:var(--bd); color:var(--text-3); border-radius:var(--r-2); }
#pg-debt.ds .dc-icon:hover{ background:var(--accent-soft); color:var(--accent); border-color:var(--accent); }
#pg-debt.ds .dc-bulk{
  background:var(--surface-card); border:1px solid var(--accent); border-radius:var(--r-4); }
#pg-debt.ds .dc-kind{
  background:var(--surface-card); border:1px solid var(--hairline); border-radius:var(--r-4); }
#pg-debt.ds .dc-kind:hover{ border-color:var(--text-4); }
#pg-debt.ds .dc-kind .k-label{ color:var(--text-3); letter-spacing:.08em; }
#pg-debt.ds .dc-kind .k-meta{ color:var(--text-3); }


/* ══════════════════════════════════════════════════════════════════════════
   [검증 기록] 재고·채권 표의 360px 잘림 — 결론: 문제 없음, 손대지 않는다.
   처음엔 "화면 밖 요소 906·3,411개"를 잘림으로 읽었으나, 조상까지 따라가 보니
   표를 감싼 요소가 이미 overflow-x:auto 라 전부 가로 스크롤로 닿을 수 있었다.
   실측(360px, ds 끈 원본): 스크롤로도 못 보는 요소 재고 0개·채권 0개,
   표폭 440/895 · 감싼폭 314 · 스크롤 가능 true.
   한때 min-width 를 넣어봤으나 재고 표를 440→720px 로 넓혀 모바일에서 더 많이
   밀어야 하게 만들 뿐이라 되돌렸다. 넓은 표는 가로 스크롤이 이미 정답.
   ══════════════════════════════════════════════════════════════════════════ */


/* ══════════════════════════════════════════════════════════════════════════
   마진 계산기 (pg-margin)
   이 화면만 옛 토큰 이름(--panel·--card·--cardUp·--border·--sub·--text)을 쓴다.
   값을 바꾸지 않고 '.ds 안에서만' 새 토큰을 가리키게 다시 묶어준다.
   [유지] 이익=초록 / 손실=빨강 / 부가세=앰버 = 판단에 쓰는 의미색
   ══════════════════════════════════════════════════════════════════════════ */
#pg-margin.ds{
  --panel:var(--surface-card); --card:var(--surface-card); --cardUp:var(--surface-sunk);
  --border:var(--hairline); --sub:var(--text-3); --text:var(--text-1);
  --muted:var(--text-4); --radius-lg:var(--r-4); }
#pg-margin.ds .mgc-tabs{ border-radius:var(--r-4); }
#pg-margin.ds .mgc-tabs button{ border-radius:var(--r-2); }
#pg-margin.ds .mgc-tabs button.on{
  background:var(--accent-soft); color:var(--accent); box-shadow:none; }
#pg-margin.ds .mgc-card,
#pg-margin.ds .mgc-rbox{
  border:var(--bd); border-radius:var(--r-4); box-shadow:var(--shadow-1); }
#pg-margin.ds input[type=text],
#pg-margin.ds select{
  background:var(--surface-sunk); border:var(--bd); border-radius:var(--r-2); color:var(--text-1); }
#pg-margin.ds input[type=text]:focus,
#pg-margin.ds select:focus{ border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
#pg-margin.ds .mgc-seg{ background:var(--surface-sunk); border:var(--bd); border-radius:var(--r-2); }
#pg-margin.ds .mgc-seg button{ border-radius:var(--r-1); }
#pg-margin.ds .mgc-seg button.on{ background:var(--accent-soft); color:var(--accent); }
#pg-margin.ds .mgc-hint{
  background:var(--surface-sunk); border:1px dashed var(--hairline); border-radius:var(--r-2); }


/* ══════════════════════════════════════════════════════════════════════════
   문서 생성 (pg-doc)
   [절대 안 건드림] .dprev — 인쇄용 A4 흰 종이 미리보기. 다크 토큰을 들이면
   흰 배경에 흰 글자가 되어 견적서·거래명세서가 안 보인다(과거 에러패턴 8).
   기존 규칙들이 !important 라 같은 강도로만 이길 수 있다.
   ══════════════════════════════════════════════════════════════════════════ */
#pg-doc.ds .scard{
  background:var(--surface-card)!important; border:var(--bd)!important;
  border-radius:var(--r-4)!important; box-shadow:var(--shadow-1); }
#pg-doc.ds .flabel{ color:var(--text-3); letter-spacing:.08em; }
#pg-doc.ds .finput{
  background:var(--surface-sunk)!important; border:var(--bd)!important;
  color:var(--text-1)!important; border-radius:var(--r-2)!important; }
#pg-doc.ds .finput:focus{
  border-color:var(--accent)!important; box-shadow:0 0 0 3px var(--accent-soft)!important; }
#pg-doc.ds .btn{
  background:var(--surface-card); color:var(--text-1); border:var(--bd); border-radius:var(--r-2); }
#pg-doc.ds .btn:hover{ background:var(--surface-sunk); border-color:var(--text-4); }
#pg-doc.ds .btn.pri,
#pg-doc.ds .btn.sm.pri{ background:var(--accent); color:#18181B; border-color:var(--accent); }
#pg-doc.ds .dtype{
  background:var(--surface-card); border:var(--bd); color:var(--text-2); border-radius:var(--r-2); }
#pg-doc.ds .dtype.on{ background:var(--accent); color:#18181B; border-color:var(--accent); }
#pg-doc.ds .stamp-preview{
  border:1px dashed var(--hairline); border-radius:var(--r-2); color:var(--text-3); }


/* ══════════════════════════════════════════════════════════════════════════
   배송 최적화 (pg-delivery)
   [유지] 보라 #A77CF4 = 출고·배송팀 색, 지도 툴팁(.dlv-tip)·노란 고정 라벨,
          코스별 색 띠, 통계 하늘색 = 전부 의미색. 지도 위 요소는 손대지 않는다.
   ══════════════════════════════════════════════════════════════════════════ */
#pg-delivery.ds .dlv-panel,
#pg-delivery.ds .dlv-map,
#pg-delivery.ds .dlv-stats-area{
  background:var(--surface-card); border:var(--bd); border-radius:var(--r-4); }
#pg-delivery.ds .dlv-map{ background:var(--surface); }
#pg-delivery.ds .dlv-h{ color:var(--text-1); font-size:var(--fs-14); }
#pg-delivery.ds label{ color:var(--text-3); letter-spacing:.06em; }
#pg-delivery.ds .dlv-in,
#pg-delivery.ds select.dlv-in{
  background:var(--surface-sunk); color:var(--text-1); border:var(--bd); border-radius:var(--r-2); }
#pg-delivery.ds .dlv-in:focus,
#pg-delivery.ds select.dlv-in:focus{ border-color:var(--accent); outline:none; }
#pg-delivery.ds .dlv-btn{ border-radius:var(--r-2); }
#pg-delivery.ds .dlv-btn-sec,
#pg-delivery.ds .dlv-mini-btn{ border-radius:var(--r-2); }
#pg-delivery.ds .dlv-mini-btn{ border:var(--bd); color:var(--text-2); }
#pg-delivery.ds .dlv-mini-btn:hover{ background:var(--surface-sunk); color:var(--text-1); }
#pg-delivery.ds .dlv-st-l,
#pg-delivery.ds .dlv-sum-l,
#pg-delivery.ds .dlv-course-m,
#pg-delivery.ds .empty{ color:var(--text-3); }
#pg-delivery.ds .dlv-st-v,
#pg-delivery.ds .dlv-sum-v,
#pg-delivery.ds .dlv-course-h{ color:var(--text-1); }
#pg-delivery.ds .dlv-course{ background:var(--surface-sunk); border-radius:var(--r-2); }
#pg-delivery.ds .dlv-course:hover{ background:var(--surface-card); }
#pg-delivery.ds .dlv-cm-row{
  border:1px solid var(--hairline-soft); background:var(--surface-sunk); border-radius:var(--r-2); }
#pg-delivery.ds .dlv-cm-btn{ border-radius:var(--r-1); }
#pg-delivery.ds #dlv-today-date,
#pg-delivery.ds .dlv-bulkbar select,
#pg-delivery.ds .dlv-paintbar select{
  background:var(--surface-sunk); color:var(--text-1); border:var(--bd); border-radius:var(--r-2); }
#pg-delivery.ds .dlv-cal th{ color:var(--text-3); }


/* ══════════════════════════════════════════════════════════════════════════
   부서별 페이지 10개 (pg-team-*) — .tp-* 는 렌더 함수가 페이지마다
   '#pg-<키> .tp-*' 로 <style> 을 직접 만들어 넣는다(id 선택자 = 우선순위 높음).
   그래서 여기서는 같은 강도로 이기려고 !important 를 쓴다.
   [유지] 부서색(col)으로 칠해지는 히어로 배경·아이콘·강조 숫자·아바타 =
          어느 부서 화면인지 알려주는 의미색이라 그대로 둔다.
   ══════════════════════════════════════════════════════════════════════════ */
.ds .tp-hero{ border-radius:var(--r-4)!important; padding:20px 22px!important; }
.ds .tp-icon{ border-radius:var(--r-4)!important; box-shadow:none!important; }
.ds .tp-eyebrow{ color:var(--amber,#F59E0B)!important; letter-spacing:.08em!important; font-size:12px!important; text-transform:uppercase; }
.ds .tp-name{ color:var(--text-1)!important; letter-spacing:-0.015em!important; }
.ds .tp-meta{ color:var(--text-3)!important; }
.ds .tp-section-head{ color:var(--text-1)!important; font-size:var(--fs-14)!important; }
.ds .tp-btn{
  background:var(--surface-card)!important; color:var(--text-1)!important;
  border:var(--bd)!important; border-radius:var(--r-2)!important; }
.ds .tp-btn:hover{ background:var(--surface-sunk)!important; border-color:var(--text-4)!important; }
.ds .tp-member{
  background:var(--surface-card)!important; border:var(--bd)!important;
  border-radius:var(--r-4)!important; box-shadow:var(--shadow-1); }
.ds .tp-member:hover{ background:var(--surface-sunk)!important; }
.ds .tp-m-name{ color:var(--text-1)!important; }
.ds .tp-m-duties{ color:var(--text-3)!important; }


/* ══════════════════════════════════════════════════════════════════════════
   데이터 백업·복원 (pg-backup) — (나) 유형 첫 적용
   이 화면은 색이 전부 style="background:#52C785..." 같은 인라인이라
   CSS 로 그냥은 못 덮는다. 그래서 쓰는 방법:

     ① 인라인 style 은 한 글자도 지우지 않는다  ← 레이아웃 유실 위험 0
     ② class 만 덧붙인다 (bk-btn·bk-btn-pri·bk-card·bk-h1·bk-h3)
     ③ 여기서 '색 속성만' !important 로 덮는다  ← padding·grid 등은 인라인 그대로

   onclick·onchange·id·type·accept 는 건드리지 않았다.
   되돌릴 땐 이 구역과 마크업의 class 만 지우면 인라인 style 이 그대로 살아난다.

   [의도한 변화 1가지] 되돌릴 수 없는 두 버튼(최신 백업으로 복원 · JSON 업로드
   복원)은 지금 하늘색·초록이라 '다운로드' 같은 안전한 버튼과 구분이 안 된다.
   둘 다 사장님 현재 데이터를 덮어쓰므로 시안의 위험 색(--st-urgent)으로 세운다.
   기능은 그대로고 색만 바뀐다.
   ══════════════════════════════════════════════════════════════════════════ */
#pg-backup.ds .bk-h1{ color:var(--text-1)!important; letter-spacing:-0.015em; }
#pg-backup.ds .bk-h3{ color:var(--text-1)!important; }
#pg-backup.ds .bk-card{
  background:var(--surface-card)!important; border:var(--bd)!important;
  border-radius:var(--r-4)!important; box-shadow:var(--shadow-1); }
#pg-backup.ds .bk-btn{
  background:var(--surface-card)!important; color:var(--text-1)!important;
  border:var(--bd)!important; border-radius:var(--r-2)!important;
  font-size:var(--fs-13)!important; font-weight:600!important; }
#pg-backup.ds .bk-btn:hover{
  background:var(--surface-sunk)!important; border-color:var(--text-4)!important; }
#pg-backup.ds .bk-btn-pri{
  background:var(--accent)!important; color:#18181B!important;
  border-color:var(--accent)!important; font-weight:700!important; }
#pg-backup.ds .bk-btn-pri:hover{ background:var(--accent-deep)!important; }
#pg-backup.ds .bk-btn-danger{
  background:var(--st-urgent-bg)!important; color:var(--st-urgent)!important;
  border-color:var(--st-urgent)!important; }
#pg-backup.ds .bk-btn-danger:hover{
  background:var(--st-urgent)!important; color:#FFFFFF!important; }
#pg-backup.ds .bk-btn-ghost{
  background:transparent!important; color:var(--text-3)!important;
  border-color:var(--hairline)!important; }
#pg-backup.ds .bk-btn-sm{ font-size:var(--fs-12)!important; }


/* ══════════════════════════════════════════════════════════════════════════
   AI비서·텔레그램 봇 (pg-aibot)
   내용은 aibotRender() 가 #aibot-container 안에 .aib-* 클래스로 그린다.
   그 규칙은 클래스 하나짜리라 '.ds .aib-*' 로 그냥 이긴다(!important 불필요).
   [유지] 말풍선 좌우 구분 — 사장님 말(오른쪽)과 AI 답(왼쪽)이 섞이면 안 된다.
          색만 시안 토큰으로 바꾸고 정렬·꼬리 모양은 그대로.
   ══════════════════════════════════════════════════════════════════════════ */
#pg-aibot.ds .aib-h1{ color:var(--text-1)!important; letter-spacing:-0.015em; }
.ds .aib-card{
  background:var(--surface-card); border:var(--bd); border-radius:var(--r-4);
  box-shadow:var(--shadow-1); }
.ds .aib-muted{ color:var(--text-3); }
.ds .aib-msg{ border-radius:var(--r-4); }
.ds .aib-u{ background:var(--accent); color:#18181B; }      /* 사장님 말 */
.ds .aib-a{ background:var(--surface-sunk); color:var(--text-1); }  /* AI 답 */
.ds .aib-btn{
  background:var(--accent); color:#18181B; border-radius:var(--r-2);
  font-size:var(--fs-13); font-weight:700; }
.ds .aib-btn:hover{ background:var(--accent-deep); }


/* ══════════════════════════════════════════════════════════════════════════
   거래처 종합조회 — 검색 모달(#sw-client-picker) + 종합 카드(#ks-client-card-modal)

   이 둘은 JS 가 document.body 에 직접 붙이는 모달이라 페이지의 'ds' 밑에 없다.
   그리고 색이 전부 인라인이다. 여기서는 마크업을 아예 안 건드리는 방법을 썼다:
   **인라인 style 문자열을 속성 선택자로 골라 덮는다** ([style*="#F59E0B"] 등).
   장점 — JS 문자열을 한 글자도 수정하지 않는다(핸들러 손상 위험 0).
   한계 — 나중에 그 인라인 색 문자열이 바뀌면 이 규칙이 빗나간다. 그때는
          해당 요소에 class 를 붙이는 (나) 기본 방법으로 바꾸면 된다.
   [유지] 등급색(PREMIUM 초록·LOSS_RISK 빨강·LOW_MARGIN 앰버) = 판단용 의미색
   ══════════════════════════════════════════════════════════════════════════ */
#sw-client-picker > div,
#ks-client-card-modal > div{
  background:var(--surface-card)!important; border:var(--bd)!important;
  border-radius:var(--r-4)!important; }
#sw-client-picker input,
#ks-client-card-modal input{
  background:var(--surface-sunk)!important; border:var(--bd)!important;
  color:var(--text-1)!important; border-radius:var(--r-2)!important; }
#sw-client-picker input:focus{ border-color:var(--accent)!important; outline:none; }
#sw-client-picker button,
#ks-client-card-modal button{ border-radius:var(--r-2)!important; }
/* 주요 동작(앰버 배경) */
#sw-client-picker button[style*="#F59E0B"]{
  background:var(--accent)!important; color:#18181B!important;
  border:1px solid var(--accent)!important; }
/* 닫기·취소(투명 배경) */
#sw-client-picker button[style*="transparent"],
#ks-client-card-modal button[style*="transparent"]{
  background:transparent!important; color:var(--text-2)!important; border:var(--bd)!important; }
#sw-client-picker button[style*="transparent"]:hover,
#ks-client-card-modal button[style*="transparent"]:hover{
  background:var(--surface-sunk)!important; color:var(--text-1)!important; }
/* 카드 안 작은 수치 패널 · 검색 모달의 추천 거래처 줄 */
#ks-client-card-modal div[style*="rgba(0,0,0,.3)"],
#sw-client-picker button[style*="rgba(0,0,0,.3)"]{
  background:var(--surface-sunk)!important; border-radius:var(--r-2)!important; }
#sw-client-picker button[style*="rgba(0,0,0,.3)"]:hover{
  background:var(--accent-soft)!important; }
/* AI 액션 권고 줄 */
#ks-client-card-modal div[style*="rgba(245,158,11,.08)"]{
  background:var(--accent-soft)!important; border:1px solid var(--accent)!important;
  border-radius:var(--r-2)!important; }


/* ══════════════════════════════════════════════════════════════════════════
   [대비 수정] 밝은 배경 위의 흰 글자 (2026-08-12, 2차 — 1차는 되돌림)

   전 화면 자동 스윕(대비비 2.5 미만)으로 찾은 것들. 대부분 원래부터 있던 문제다.
     · 흰 글자 on 앰버 #F59E0B 2.15 / 초록 #52C785 2.13 / 노랑 #F0B146 1.89
     · 흰 글자 on 하늘 #00D4FF 1.77 / 청록 #14B8A6 2.49
   기준은 WCAG AA 4.5:1. 어두운 글자(#18181B)면 앰버 기준 약 9.6:1 이 된다.
   배경은 그대로 두고 '글자색만' 바꾸므로 색이 가진 의미는 유지된다.

   ★ 1차 시도를 되돌린 이유 (실패 기록)
   처음엔 [style*="background:#F59E0B"] 처럼 느슨하게 잡았다가 대비부족이
   131 → 721 로 오히려 폭증했다. 두 가지를 놓쳤다.
     ① 부서 페이지는 인라인에 'background:#F59E0B22' 같은 8자리(반투명) 값을
        쓴다. 앞 6자리가 같아 규칙에 걸리는데 실제로는 거의 투명 = 어두운 배경.
        거기에 어두운 글자를 얹으니 대비 1.08(사실상 안 보임)이 됐다.
     ② color 는 상속된다. 컨테이너 div 하나에 걸리면 그 안 글자가 전부 어두워진다
        (fin-clients 한 화면에서만 602건 발생).
   그래서 지금은 ㉠ 버튼·링크 태그로 한정하고 ㉡ 세미콜론까지 포함해
   'background:#F59E0B;' 처럼 불투명 6자리 값만 정확히 잡는다.
   ══════════════════════════════════════════════════════════════════════════ */
.ds button[style*="background:#F59E0B;"], .ds a[style*="background:#F59E0B;"],
.ds button[style*="background:#52C785;"], .ds a[style*="background:#52C785;"],
.ds button[style*="background:#F0B146;"], .ds a[style*="background:#F0B146;"],
.ds button[style*="background:#00D4FF;"], .ds a[style*="background:#00D4FF;"],
.ds button[style*="background:#14B8A6;"], .ds a[style*="background:#14B8A6;"],
.ds button[style*="background:#03C75A;"], .ds a[style*="background:#03C75A;"],
.ds button[style*="background:#3FB950;"], .ds a[style*="background:#3FB950;"]{
  color:#18181B!important; }

/* 클래스로 색을 준 버튼들 (회계 8종·설정·거래처/상품 관리)
   ★ 같은 클래스가 두 가지 상태를 갖는다 — 이걸 놓쳐서 한 번 크게 틀렸다.
       .fin-btn        = 앰버 배경 + 흰 글자   → 어두운 글자 필요
       .fin-btn.ghost  = 어두운 배경 + 밝은 글자 → 절대 건드리면 안 됨
       .fin-pbtn       = 어두운 배경(기본)      → 그대로
       .fin-pbtn.on    = 앰버 배경(선택됨)      → 어두운 글자 필요
       .swst-btn       = 앰버 배경             → 어두운 글자 필요
       .swst-btn.ghost / .danger = 어두운 배경  → 그대로
   구분 없이 일괄로 넣었더니 fin-clients 한 화면에서만 602건이 어두운 배경에
   어두운 글자가 됐다(대비 1.08). :not() 으로 밝은 배경인 것만 고른다. */
.ds .fin-btn:not(.ghost),
.ds .fin-pbtn.on,
.ds .swst-btn:not(.ghost):not(.danger){ color:#18181B!important; }

/* 별표 토글(꺼진 상태)이 배경에 묻혀 있던 것 — 눌러야 할 버튼은 보여야 한다 */
.ds .rc-star-btn{ color:var(--text-3)!important; }

/* 인라인 배경이 선언 맨 끝이라 세미콜론이 없는 경우도 잡는다.
   [style$="..."] 는 속성값의 '끝'과 정확히 일치할 때만 걸리므로,
   반투명 8자리(#FFD70022 처럼)는 여전히 안 걸린다. */
.ds button[style$="background:#F59E0B"], .ds button[style$="background:#52C785"],
.ds button[style$="background:#F0B146"], .ds button[style$="background:#00D4FF"],
.ds button[style$="background:#14B8A6"], .ds button[style$="background:#FFD700"],
.ds button[style*="background:#FFD700;"], .ds button[style$="background:#03C75A"]{
  color:#18181B!important; }

/* 재고 등급 막대 — 초록·앰버·노랑 위의 흰 글자(2.13/2.15/1.89) */
.ds .sc-grade-bar .seg{ color:#18181B!important; }

/* 배송 지도의 고정 라벨 — 노란 배경에 노란 글자라 '모든 코스 출발·복귀 지점'이
   전혀 안 보였다(대비 1.0). 라벨 안 글자를 전부 어둡게. */
.ds .dlv-tip-perm,
.ds .dlv-tip-perm b,
.ds .dlv-tip-perm span{ color:#18181B!important; }

/* 별표 토글(꺼진 상태) — 인라인으로 #3F4456 을 준 버튼. button 한정이라 상속 없음 */
.ds button[style*="#3F4456"]{ color:var(--text-3)!important; }

/* 카카오워크 봇(폐기 예정 화면) — 어두운 배경에 검은 글자라 안 읽힌다(1.16) */
#pg-kakaowork-bot.ds [style*="color:#000"]{ color:var(--text-1)!important; }


/* ══════════════════════════════════════════════════════════════════════════
   [양식 화면] 견적서·내용증명·근로계약서·급여명세 등 — 'ds' 만 켜고 손대지 않음

   ★ 여기서 두 번 헛짚었다. 기록으로 남긴다.
   ① 종이 안 자손 전체(*)를 어둡게 강제 → 흰 종이 '안'의 어두운 표 머리띠
      (견적서 헤더 #18181B, 문서생성 공급자/수급자 띠 #333)까지 어두워져
      글자가 사라졌다(견적서 6칸 대비 1.0).
   ② 종이 컨테이너에 흰 배경을 강제 → 이 화면들은 '화면에서는 어두운 양식'이고
      흰 종이는 @media print 안에서만이었다. 내가 화면까지 흰색으로 만드는 바람에
      밝은 글자가 흰 배경에 얹혀 안 보이게 됐다(내용증명 6건·근로계약 3건 등).
   결론: 이 화면들은 원래 상태가 이미 맞다. 'ds' 로 카드·버튼·표만 정리되고
   양식 자체는 기존 CSS 가 화면용/인쇄용을 알아서 나눈다. 강제 규칙 없음.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── 흰 종이 위의 밝은 글자 (원래부터 있던 문제, 이번에 잡음) ──────────
   견적서·내용증명·근로계약서·근로 양식 7종은 화면에서도 흰 A4 를 보여주는데,
   그 안 본문 글자가 밝은 색을 상속받아 흰 배경에 흰 글자가 되어 있었다
   (대비 1.0 — 사장님이 인쇄 전 미리보기에서 내용을 못 읽는 상태).
   과거 에러패턴 8 과 같은 종류다.

   ★ 앞서 자손 전체(*)로 덮었다가 종이 안의 어두운 표 머리띠까지 지워버린 적이
     있어, 이번엔 실측으로 확인된 태그만 정확히 짚는다.
     .pd-a4 → p·b   /   .lc-a4 → p·b   /   .lf-a4 → h1·td·직계 div */
.ds .pd-a4 p, .ds .pd-a4 b,
.ds .lc-a4 p, .ds .lc-a4 b,
.ds .lf-a4 h1, .ds .lf-a4 td, .ds .lf-a4 > div{
  color:#18181B!important; }

/* ══════════════════════════════════════════════════════════════════════════
   [QA 발견] 회계 > 거래처의 ✕ 버튼 — 확인창 없이 바로 삭제된다

   실측: <button class="fin-x" onclick="finCliDelIdx(i)">✕</button> 이
   '상세'·'수정' 버튼 바로 옆에 같은 크기로 붙어 있고,
   finCliDelIdx() 는 확인 절차 없이 POST /api/finance/client/delete 를 쏜다
   (QA 클릭 중 실제로 호출됐고, 쓰기 차단 덕분에 서버엔 안 닿았다).

   확인창을 다는 건 JS 로직 변경이라 이번 작업 범위 밖이다 → 사장님께 보고.
   지금 할 수 있는 건 '눈에 띄게 만들어 실수를 줄이는 것'이라, 위험색으로 세운다.
   ══════════════════════════════════════════════════════════════════════════ */
.ds .fin-x{
  background:var(--st-urgent-bg)!important; color:var(--st-urgent)!important;
  border:1px solid var(--st-urgent)!important; border-radius:var(--r-2)!important; }
.ds .fin-x:hover{ background:var(--st-urgent)!important; color:#FFFFFF!important; }

/* ── [라이브 검증에서 발견] 보고서함 차트 제목이 잘 안 보인다 ──────────
   라이브에는 실보고서가 있어 로컬(0건)에서는 안 나타났던 것.
   '카테고리별'·'팀별'·'최근 7일 추세'·'긴급 비율' 네 제목이 인라인
   color:#475569 로 어두운 카드 위에 얹혀 대비 2.17 이었다(기준 4.5).
   ※ 인라인 style 을 쓴 것만 고른다 — 흰 종이 보고서의 .rep-h4/.rep-bq 는
     클래스로 같은 색을 쓰므로 이 규칙에 걸리지 않는다(흰 배경에선 지금이 맞다). */
#pg-reports.ds [style*="color:#475569"]{ color:var(--text-3)!important; }


/* ══════════════════════════════════════════════════════════════════════════
   [2단계 공통 뼈대 — UI-SPEC §3·§5·§6·§7] (2026-08-14)
   화면별 규칙들이 앰버 시절에 정한 값(accent-soft 활성·그림자·채운 칩·
   어두운 글자)을 UI-SPEC 로 통일한다. 이 파일이 화면 CSS 중 마지막에
   로드되므로 같은 선택자를 다시 선언하면 이긴다.
   ══════════════════════════════════════════════════════════════════════════ */

/* §3 카드 무광 — 그림자는 모달만. 앞서 카드에 넣었던 shadow-1 전부 제거 */
#pg-terminal.ds .tm-panel, #pg-terminal.ds .tm-stat,
#pg-reports.ds .rc-left, #pg-reports.ds .rc-right,
#pg-calendar.ds .cal-card, #pg-calendar.ds .cal-clock-wrap,
#pg-kakao-send.ds .ks-block,
#pg-stock.ds .sc-kpi, #pg-stock.ds .sc-card, #pg-stock.ds .sc-tbl-wrap,
#pg-debt.ds .dc-summary, #pg-debt.ds .dc-tbl-wrap,
#pg-margin.ds .mgc-card, #pg-margin.ds .mgc-rbox,
#pg-doc.ds .scard, #pg-backup.ds .bk-card,
.ds .tp-member, .ds .aib-card{
  box-shadow:none!important; border:1px solid var(--hairline-soft)!important; }

/* §7 활성 탭·필터 = secondary(눌린 면+hairline). 앰버 시절 accent-soft 채움 제거 */
#pg-terminal.ds .tm-tg button.on,
#pg-reports.ds .rc-tab.on,
#pg-stock.ds .sc-pill.on,
#pg-debt.ds .dc-pill.on,
#pg-calendar.ds .cal-btn.on,
#pg-margin.ds .mgc-tabs button.on,
#pg-margin.ds .mgc-seg button.on{
  background:var(--surface-sunk)!important; border-color:var(--hairline)!important;
  color:var(--text-1)!important; box-shadow:none!important; }

/* §7 주 행동 버튼 = accent 채움 + 흰 글자.
   앰버 배경엔 어두운 글자가 맞아 #18181B 를 썼지만, 파랑에는 UI-SPEC 대로 흰 글자. */
#pg-calendar.ds .cal-btn.pri,
#pg-reports.ds .rc-btn.pri, #pg-reports.ds .rc-head-action,
#pg-doc.ds .btn.pri, #pg-doc.ds .btn.sm.pri, #pg-doc.ds .dtype.on,
#pg-stock.ds .sc-btn.pri, #pg-debt.ds .dc-btn.pri,
#pg-kakao-send.ds .ks-send-btn,
#pg-backup.ds .bk-btn-pri,
.ds .aib-btn, .ds .aib-u,
.ds .fin-btn:not(.ghost), .ds .fin-pbtn.on,
.ds .swst-btn:not(.ghost):not(.danger){
  color:var(--accent-fg)!important; }

/* §6 상태 칩 — 테두리만, 배경 투명, radius 999px */
#pg-stock.ds .sc-chip, #pg-debt.ds .dc-chip{
  background:transparent!important; border:1px solid currentColor!important;
  border-radius:999px!important; padding:2px 8px!important;
  font-size:10.5px!important; font-weight:800!important; }

/* §5 표 — 헤더 10px/700/.06em + surface-sunk, 본문 12.5px, 우측정렬 숫자 유지 */
#pg-stock.ds .sc-tbl th, #pg-debt.ds .dc-tbl th{
  font-size:10px!important; letter-spacing:.06em!important;
  padding:11px 16px!important; background:var(--surface-sunk)!important; }
#pg-stock.ds .sc-tbl td, #pg-debt.ds .dc-tbl td{
  font-size:12.5px!important; padding:10px 16px!important; }

/* §7 보강 — 진짜 범인은 index.html L382 의 앰버 시절 전역 패치
     .btn.pri,button.pri{background:#F59E0B!important;color:#000!important}
   이게 모든 .pri 버튼을 인라인보다 세게 앰버로 덮고 있었다
   (재고실사·발주서 생성·긴급 일괄 처리·일정 추가 — 전부 class 에 pri).
   처음엔 인라인 배경을 의심해 속성 매칭을 넣었지만 헛발이었다(계산값
   앰버의 출처가 인라인이 아니라 이 !important 전역 패치).
   같은 특이성 이상 + 나중 로드로 UI-SPEC accent 로 되돌린다. */
.ds .btn.pri, .ds button.pri{
  background:var(--accent)!important; color:var(--accent-fg)!important;
  border-color:var(--accent)!important; }
/* 같은 앰버 하드코딩 층의 전역 부품들 — 홈 명령바·채팅 패널·설정 +추가(#30D158) */
.hq-cmd-btn, .cmd-btn, .chat-send,
#chat-panel button, .chat-panel button{
  background:var(--accent)!important; color:var(--accent-fg)!important; }
.hq-cmd-input:focus, .chat-input:focus,
#chat-panel input:focus, #chat-panel textarea:focus{
  border-color:var(--accent)!important;
  box-shadow:0 0 0 3px var(--accent-soft)!important; }
.ds button[style*="background:#30D158"], .ds button[style*="background: #30D158"],
.ds button[style*="background:var(--green)"]{   /* 설정 '+추가' — 인라인 var(--green)+#000 이 흰글자 규칙과 얽혀 2.02 */
  background:var(--accent)!important; border-color:var(--accent)!important;
  color:var(--accent-fg)!important; }


/* ══════════════════════════════════════════════════════════════════════════
   [3단계 공통 — 구팔레트 인라인 색 → UI-SPEC 4색] (2026-08-15)
   JS 렌더가 찍는 인라인 색을 .ds 전역 속성 매칭으로 정렬한다.
   ※ background 는 매칭하지 않는다 — 8자리 반투명(#F59E0B22) 오탐으로
     한 번 크게 데인 패턴. color/fill/stroke 만.
   ※ 부서색(보라 #A77CF4=출고·배송, 하늘 #00D4FF=정보, 금색 #FFD700=별표)은
     정보 구조라 제외 — 지난 회차 결정 유지.
   ※ 홈은 #pg-terminal.ds [style*=…] (ID 포함=특이성 높음) 규칙이 이겨서
     매출 라벨의 앰버→accent 매핑이 유지된다.
   ══════════════════════════════════════════════════════════════════════════ */
.ds [style*="color:#52C785"], .ds [style*="color:#3FB950"], .ds [style*="color:#30D158"]{
  color:var(--st-done)!important; }
.ds [style*="color:#F0B146"], .ds [style*="color:#D29922"]{
  color:var(--st-todo)!important; }
.ds [style*="color:#DA3633"]{ color:var(--st-urgent)!important; }
.ds [style*="color:#3B82F6"], .ds [style*="color:#388BFD"], .ds [style*="color:#2563eb"]{
  color:var(--st-progress)!important; }
.ds [style*="color:#9BA3B7"], .ds [style*="color:#8B949E"]{ color:var(--text-3)!important; }
.ds [style*="color:#cdd0d8"], .ds [style*="color:#C5C9D6"]{ color:var(--text-2)!important; }
.ds [fill="#52C785"]{ fill:var(--st-done)!important; }
.ds [fill="#3FB950"]{ fill:var(--st-done)!important; }
.ds [fill="#F0B146"]{ fill:var(--st-todo)!important; }
.ds [fill="#3B82F6"], .ds [fill="#388BFD"]{ fill:var(--st-progress)!important; }
.ds [stroke="#52C785"], .ds [stroke="#3FB950"]{ stroke:var(--st-done)!important; }
.ds [stroke="#F0B146"]{ stroke:var(--st-todo)!important; }
.ds [stroke="#3B82F6"], .ds [stroke="#388BFD"]{ stroke:var(--st-progress)!important; }


/* ══════════════════════════════════════════════════════════════════════════
   위젯 갤러리 (pg-widgets) — 시안 02-widgets 대조 (2026-08-15)
   차이: 카드가 어두운 톤·추가 버튼이 파랑 풀폭·카테고리 없음(시안).
   카테고리 구분은 기존 정보 구조라 유지, 카드·버튼 결만 시안으로.
   ══════════════════════════════════════════════════════════════════════════ */
#pg-widgets.ds .tm-wrap{ padding:22px 24px 44px; }
#pg-widgets.ds .tm-bar .ttl{ font-size:26px; font-weight:800; color:var(--text-1); letter-spacing:-0.015em; }
#pg-widgets.ds .tm-bar .sub{ color:var(--text-3); }
#pg-widgets.ds .tm-gcat{ color:var(--text-3); border-bottom:1px solid var(--hairline-soft); }
#pg-widgets.ds .tm-gcard{
  background:var(--surface-card); border:1px solid var(--hairline-soft);
  border-radius:var(--r-4); }
#pg-widgets.ds .tm-gprev:after{ background:linear-gradient(transparent,var(--surface-card)); }
#pg-widgets.ds .tm-gfoot{ border-top:1px solid var(--hairline-soft); }
#pg-widgets.ds .tm-gfoot .gt{ color:var(--text-1); }
/* 추가 버튼 — 시안: accent 풀폭. 이미 추가된 것은 done 아웃라인 */
#pg-widgets.ds .tm-gbtn{
  background:var(--accent); border:1px solid var(--accent); color:var(--accent-fg);
  border-radius:var(--r-2); font-weight:700; }
#pg-widgets.ds .tm-gbtn:hover{ background:var(--accent-deep); filter:none; }
#pg-widgets.ds .tm-gbtn.added{
  background:transparent; border-color:var(--st-done); color:var(--st-done); }
#pg-widgets.ds .tm-addbtn{
  background:var(--surface-sunk); border:1px solid var(--hairline); color:var(--text-1);
  border-radius:var(--r-2); font-weight:600; }


/* ══════════════════════════════════════════════════════════════════════════
   보고서함 3단계 보강 — 시안 03-report-inbox 대조 (2026-08-15)
   ══════════════════════════════════════════════════════════════════════════ */
/* 상단 액션: 자료 요청 작성(보라 인라인) → 주 행동 accent, 수동 실행 → ghost 결 유지 */
#pg-reports.ds .rc-head-action[style*="#A77CF4"]{
  background:var(--accent)!important; color:var(--accent-fg)!important; border:0!important; }
/* '강제 리셋'(개발용) — 기능은 유지하되 빨강 채움 → 위험 아웃라인으로 순화 */
#pg-reports.ds .rc-tb-title button[onclick*="reportsForceReset"]{
  background:transparent!important; color:var(--st-urgent)!important;
  border:1px solid var(--st-urgent)!important; border-radius:var(--r-2)!important; }
/* [다이어트 #2] 버전 배지(v-2026.05.21-payslip-inline) — 개발 정보라 화면에서 숨김.
   기능 아님(표시물). 되돌리기: 이 블록 삭제. */
#pg-reports.ds .rc-tb-title > span[style*="rgba(82,199,133"]{ display:none!important; }


/* ══════════════════════════════════════════════════════════════════════════
   [3단계 5~10/20 잔재 정렬] 달력·카톡발송·거래처모달·마진·백업·AI비서
   (2026-08-15, 시안 05~10 대조 — 클래스 정렬은 기존 회차에 완료,
    앰버 시절 남은 강조·칩·포커스만 UI-SPEC 결로)
   ══════════════════════════════════════════════════════════════════════════ */

/* 카톡 발송(06) — 수신자 칩: 앰버 틴트 → accent 결. 목업(.ph-*)은 불변 원칙 유지 */
#pg-kakao-send.ds .ks-chip{
  background:var(--accent-soft)!important; border:1px solid var(--accent)!important;
  color:var(--accent)!important; border-radius:999px!important; }
/* 글자수 가드라인: 형광 노랑 → 주의색 */
#pg-kakao-send.ds .ks-guard-line{ color:var(--st-todo)!important; }
#pg-kakao-send.ds .ks-guard-line.warn{ color:var(--st-urgent)!important; }

/* 마진 계산기(08) — 입력 포커스 초록 → accent (시안 §7: 강조는 accent 하나) */
#pg-margin.ds input[type=text]:focus,
#pg-margin.ds select:focus{
  border-color:var(--accent)!important; box-shadow:0 0 0 3px var(--accent-soft)!important; }
#pg-margin.ds .mgc-hint b{ color:var(--st-todo); }

/* 업무 달력(05) — 오늘 셀·활성은 이미 var(--accent) 기반이라 자동 파랑.
   부서 필터 칩(dept-chip)의 부서색 인라인은 정보 구조라 유지. 추가 조치 없음. */

/* 거래처 종합조회 모달(07) — 앰버 문자열 매칭이 남아 있던 것 정리:
   기존 규칙 [style*="#F59E0B"] 은 이제 앰버 인라인이 없으면 무해하게 잠들 뿐.
   모달 강조(제목 eyebrow·조회 버튼)는 이미 var 기반 → 자동 accent. */
#sw-client-picker div[style*="color:#F59E0B"],
#ks-client-card-modal div[style*="color:#F59E0B"]{ color:var(--accent)!important; }
#ks-client-card-modal div[style*="rgba(245,158,11,.08)"]{
  background:var(--accent-soft)!important; border-color:var(--accent)!important; }

/* 백업(09)·AI비서(10) — bk-*·aib-* 는 var 기반 정렬 완료. 추가 조치 없음. */


/* ══════════════════════════════════════════════════════════════════════════
   [3단계 11~20/20 앰버 잔재 정렬] 재고·채권·배송·인사 (2026-08-15 실측 기반)
   페이지 <style> 클래스에 하드코딩된 옛 앰버(#F0B146/#F59E0B)를 UI-SPEC
   주의색(#F97316)/accent 로. 부서 정체성 색(tp-* 의 팀 색)은 유지.
   ══════════════════════════════════════════════════════════════════════════ */

/* 재고(24): 등급 B·C — 옛 앰버/노랑 → 주의색 단계 (A=done·B=todo·X=urgent 유지) */
#pg-stock.ds .sc-grade.b{ background:var(--st-todo-bg)!important; color:var(--st-todo)!important; }
#pg-stock.ds .sc-grade.c{ background:transparent!important; color:var(--st-todo)!important;
  border:1px solid var(--st-todo)!important; }
#pg-stock.ds .sc-kpi-num.warn{ color:var(--st-todo)!important; }
#pg-stock.ds .sc-grade-bar .seg.b{ background:var(--st-todo)!important; }
#pg-stock.ds .sc-grade-bar .seg.c{ background:#FBA75C!important; }   /* 주의색의 한 단계 연함 */
#pg-stock.ds .sc-bar .fill.low{ background:var(--st-todo)!important; }
#pg-stock.ds .sc-num.warn{ color:var(--st-todo)!important; }
#pg-stock.ds .sc-chip.todo{ color:var(--st-todo)!important; }

/* 채권(23): todo 칩·아바타·받을돈 탭 — 시안 23 대조 */
#pg-debt.ds .dc-chip.todo{ color:var(--st-todo)!important; }
#pg-debt.ds .dc-aging.warn, #pg-debt.ds .dc-num.warn{ color:var(--st-todo)!important; }
#pg-debt.ds .dc-avatar{ background:var(--surface-sunk)!important; color:var(--text-2)!important;
  border:0!important; }
#pg-debt.ds .dc-kind.on.r{ border-color:var(--accent)!important;
  background:var(--accent-soft)!important; }
#pg-debt.ds .dc-kind.r .k-amt, #pg-debt.ds .dc-kind.r .k-icon{ color:var(--accent)!important; }
#pg-debt.ds .dc-bucket .b3{ background:var(--st-todo)!important; }
#pg-debt.ds .dc-row-r td:first-child{ box-shadow:inset 3px 0 0 var(--accent)!important; }

/* 배송(25~27): 예상시각 배지·버튼 테두리·인라인 노랑 세그먼트 → 주의색 */
#pg-delivery.ds .dlv-est{ background:var(--st-todo-bg)!important; color:var(--st-todo)!important;
  border-color:var(--st-todo)!important; }
#pg-delivery.ds .dlv-badge-fb{ color:var(--st-todo)!important;
  background:var(--st-todo-bg)!important; border-color:var(--st-todo)!important; }
#pg-delivery.ds [style*="background:#F0B146"]{ background:var(--st-todo)!important; }
#pg-delivery.ds [style*="color:#F0B146"]{ color:var(--st-todo)!important; }

/* 인사·성과(34): 보조 명령 버튼 57개 앰버 → ghost 결 */
#pg-personnel.ds .hc-ai-aux{ background:transparent!important; color:var(--text-2)!important;
  border:1px solid var(--hairline)!important; }
#pg-personnel.ds .hc-ai-aux:hover{ background:var(--surface-sunk)!important; color:var(--text-1)!important; }


/* ══════════════════════════════════════════════════════════════════════════
   [R3 채권 + 보고서 헤더 절제] (2026-08-17)
   ══════════════════════════════════════════════════════════════════════════ */
/* 채권 분포 게이지 4구간 — UI-SPEC 4색 (b3 은 앞서 정렬, 나머지 정렬) */
#pg-debt.ds .dc-bucket .b1{ background:var(--st-done)!important; }
#pg-debt.ds .dc-bucket .b2{ background:var(--st-progress)!important; }
#pg-debt.ds .dc-bucket .b4{ background:var(--st-urgent)!important; }

/* 보고서 상세 헤더 — 부서색 그라데이션이 통째로 칠해져 시안(무채+포인트)보다
   화려했다. 배경은 카드 결로 절제하고, 부서색은 아이콘·팀명·번호 배지에만 남긴다.
   (인라인 gradient 보다 !important CSS 가 이긴다) */
#pg-reports.ds .rc-detail-head{
  background:var(--surface-card)!important;
  border-bottom:1px solid var(--hairline-soft)!important; }
#pg-reports.ds .rc-detail-head [style*="linear-gradient"]{
  background:var(--surface-sunk)!important; }


/* ══════════════════════════════════════════════════════════════════════════
   [R5~R6] 사내 메시지함·AI 패널 (시안 36) + 잔여 정렬 (2026-08-17)
   hc-ai-panel/chat 패널의 인라인 <style> 앰버(테두리·포커스·머리글)를
   UI-SPEC accent 로. 버튼은 2단계 전역 정렬이 이미 처리 — 여기는 패널 껍데기.
   ══════════════════════════════════════════════════════════════════════════ */
#hc-ai-panel{
  background:var(--surface-card)!important; border:1px solid var(--hairline)!important;
  border-radius:14px!important;
  box-shadow:0 20px 60px rgba(0,0,0,.5)!important; }
#hc-ai-panel .hc-ai-head{ color:var(--accent)!important; }
#hc-ai-panel input{
  background:var(--surface-sunk)!important; border:1px solid var(--hairline)!important;
  caret-color:var(--accent)!important; }
#hc-ai-panel input:focus{
  border-color:var(--accent)!important; box-shadow:0 0 0 3px var(--accent-soft)!important; }
#chat-panel, .chat-panel{ border-color:var(--hairline)!important; }
#chat-panel input, #chat-panel textarea{
  background:var(--surface-sunk)!important; border:1px solid var(--hairline)!important;
  caret-color:var(--accent)!important; }
#chat-panel input:focus, #chat-panel textarea:focus{
  border-color:var(--accent)!important; box-shadow:0 0 0 3px var(--accent-soft)!important; }

/* ============================================================
   R8 카톡 주문 파싱 (#pg-order) — 시안 21-sub-kakao-parse (2026-08-18)
   헤더(eyebrow+h1+설명+부서링크) + 정돈된 툴바 + 조용한 힌트 행.
   결과 렌더 로직은 무접촉(교정·학습 기능 보존) — 톤만 정렬.
   되돌리기: 이 블록 삭제 + index.html okp-head 커밋 revert
   ============================================================ */
#pg-order.ds{padding:20px 24px;overflow-y:auto}
#pg-order.ds .okp-head{margin-bottom:14px}
#pg-order.ds .okp-head-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
#pg-order.ds .okp-eyebrow{font-size:11px;font-weight:700;color:var(--accent,#5B8BF7);letter-spacing:.02em;margin-bottom:4px}
#pg-order.ds .okp-h1{font-size:20px;font-weight:800;letter-spacing:-0.02em;color:var(--text);margin:0 0 4px}
#pg-order.ds .okp-sub{font-size:12px;color:var(--text-2,#B7BEC4);line-height:1.55}
#pg-order.ds .okp-back{white-space:nowrap;flex-shrink:0}
#pg-order.ds .okp-toolbar{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:12px;
  padding:8px;background:var(--surface-card,#141719);border:1px solid var(--hairline,rgba(255,255,255,.07));border-radius:10px}
#pg-order.ds .okp-toolbar .btn.sm{background:transparent;border:1px solid transparent;color:var(--text-2,#B7BEC4);font-weight:600;min-height:30px}
#pg-order.ds .okp-toolbar .btn.sm:hover{background:var(--surface-sunk,#0F1113);color:var(--text)}
#pg-order.ds .okp-toolbar .okp-parse{background:var(--surface-sunk,#0F1113);border:1px solid var(--hairline-strong,rgba(255,255,255,.10));color:var(--text)}
#pg-order.ds .okp-toolbar .okp-parse.pri{background:var(--accent,#5B8BF7)!important;border-color:var(--accent,#5B8BF7)!important;color:#fff!important;font-weight:700}
#pg-order.ds .okp-toolbar .okp-parse.pri:hover{filter:brightness(1.08)}
#pg-order.ds .okp-tb-gap{width:2px;align-self:stretch;background:var(--hairline,rgba(255,255,255,.07));margin:2px 4px}
#pg-order.ds .okp-tb-flex{flex:1;min-width:8px}
#pg-order.ds .okp-hint{display:flex;gap:8px;align-items:center;margin-top:8px;padding:7px 10px;
  background:var(--surface-sunk,#0F1113);border:1px solid var(--hairline,rgba(255,255,255,.07));border-radius:8px}
#pg-order.ds .okp-hint label{font-size:11px;color:var(--text-3,#7C868E);font-weight:600;white-space:nowrap}
#pg-order.ds .okp-hint input{flex:1;min-width:0;background:transparent;border:none;color:var(--text);font-size:12px;font-family:inherit;outline:none;padding:3px 4px}
#pg-order.ds .okp-hint #order-hint-info{font-size:10px;color:var(--text-3,#7C868E);white-space:nowrap}
/* 원본·결과 패널 톤 */
#pg-order.ds .otxt{background:var(--surface-sunk,#0F1113);border:1px solid var(--hairline,rgba(255,255,255,.07));
  border-radius:10px;font-size:12.5px;line-height:1.7;font-family:var(--mono,ui-monospace,monospace)}
#pg-order.ds .otxt:focus{border-color:var(--accent,#5B8BF7)}
#pg-order.ds .oresult{background:var(--surface-card,#141719);border:1px solid var(--hairline,rgba(255,255,255,.07));border-radius:10px}
/* 툴바가 2줄이 될 수 있어 높이 계산 고정 해제 — 내용 기준 */
#pg-order.ds .o2{height:auto;min-height:0}
#pg-order.ds .o2>div{min-height:420px;max-height:calc(100vh - 250px)}
@media (max-width:768px){
  #pg-order.ds{padding:14px}
  #pg-order.ds .o2{grid-template-columns:1fr;height:auto}
  #pg-order.ds .o2>div{max-height:none}
  #pg-order.ds .otxt{min-height:200px}
}

/* ============================================================
   R9 재고 대시보드 (#pg-stock) — 시안 24 마감 (2026-08-18, 재작성)
   등급 B·C 색은 3단계 블록(821행~)의 st-todo 체계를 그대로 따른다(중복 규칙 금지).
   여기는 3단계가 안 다룬 것만: A등급 초록 현행화·pri 버튼 accent·hover·표면 정렬.
   되돌리기: 이 블록 삭제
   ============================================================ */
#pg-stock.ds .sc-grade.a{background:rgba(74,222,128,.14)!important;color:#4ADE80!important}
#pg-stock.ds .sc-grade-bar .seg.a{background:#4ADE80!important;color:#0B0D10!important}
#pg-stock.ds .sc-chip.done{background:rgba(74,222,128,.14)!important;color:#4ADE80!important}
#pg-stock.ds .sc-bar .fill.ok{background:#4ADE80!important}
#pg-stock.ds .sc-pill.on{background:#fff!important;color:#000!important;border-color:#fff!important}
#pg-stock.ds .sc-pill:hover{background:var(--surface-sunk)!important;border-color:var(--hairline-strong,rgba(255,255,255,.10))!important}
#pg-stock.ds .sc-search:focus{border-color:var(--accent)!important;box-shadow:none!important}
#pg-stock.ds .sc-btn{background:var(--surface-sunk)!important}
#pg-stock.ds .sc-btn:hover{background:var(--surface-sunk)!important;border-color:var(--hairline-strong,rgba(255,255,255,.10))!important;color:var(--text)!important}
#pg-stock.ds .sc-btn.pri{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}
#pg-stock.ds .sc-btn.pri:hover{filter:brightness(1.08)}

/* ============================================================
   R10 문서 생성 (#pg-doc) — 시안 22-sub-documents (2026-08-18)
   인라인 <style>의 옛 앰버(F59E0B)를 accent/시안 톤으로 (!important로 이김).
   좌폼+우A4 구조·renderDocPrev 로직 무접촉.
   되돌리기: 이 블록 삭제 + 헤더 커밋 revert
   ============================================================ */
#pg-doc.ds .doc-eyebrow{font-size:11px;font-weight:700;color:var(--accent,#5B8BF7);letter-spacing:.02em;margin-bottom:4px}
#pg-doc.ds .doc-h1{font-size:20px;font-weight:800;letter-spacing:-0.02em;color:var(--text)}
#pg-doc.ds .doc-sub{font-size:12px;color:var(--text-2,#B7BEC4);margin-top:4px;line-height:1.55}
#pg-doc.ds .dtype{background:var(--surface-sunk,#0F1113)!important;border:1px solid var(--hairline,rgba(255,255,255,.07))!important;color:var(--text-2,#B7BEC4)!important}
#pg-doc.ds .dtype:hover{border-color:var(--hairline-strong,rgba(255,255,255,.10))!important;color:var(--text)!important}
#pg-doc.ds .dtype.on{background:#fff!important;color:#000!important;border-color:#fff!important}
#pg-doc.ds .btn{background:var(--surface-sunk,#0F1113)!important;border:1px solid var(--hairline,rgba(255,255,255,.07))!important}
#pg-doc.ds .btn:hover{background:var(--surface-sunk,#0F1113)!important;border-color:var(--hairline-strong,rgba(255,255,255,.10))!important}
#pg-doc.ds .btn.pri,#pg-doc.ds .btn.sm.pri{background:var(--accent,#5B8BF7)!important;border-color:var(--accent,#5B8BF7)!important;color:#fff!important}
#pg-doc.ds .btn.pri:hover{filter:brightness(1.08)}
#pg-doc.ds .finput:focus{border-color:var(--accent,#5B8BF7)!important;box-shadow:0 0 0 3px rgba(91,139,247,.12)!important}

/* ============================================================
   R11-a 배송 최적화 (#pg-delivery) — 시안 25 팔레트 정렬 (2026-08-18)
   옛 보라(#A77CF4)+금색(#FFD700) UI 표면 → accent/무채. 실측 잡색 281건 중
   지도 마커(circleMarker JS)·코스 구분색은 기능 정보라 무접촉 — UI 표면만.
   되돌리기: 이 블록 삭제
   ============================================================ */
#pg-delivery.ds .dlv-btn{background:var(--accent,#5B8BF7)!important;color:#fff!important}
#pg-delivery.ds .dlv-btn:hover{background:var(--accent,#5B8BF7)!important;filter:brightness(1.08)}
#pg-delivery.ds .dlv-btn-sec{color:var(--text-2,#B7BEC4)!important;border-color:var(--hairline-strong,rgba(255,255,255,.10))!important;background:var(--surface-sunk,#0F1113)!important}
#pg-delivery.ds .dlv-btn-sec:hover{color:var(--text)!important;border-color:var(--accent,#5B8BF7)!important}
#pg-delivery.ds .dlv-h .badge{background:var(--accent,#5B8BF7)!important;color:#fff!important}
#pg-delivery.ds .dlv-in,#pg-delivery.ds select.dlv-in{background:var(--surface-sunk,#0F1113)!important;border-color:var(--hairline,rgba(255,255,255,.07))!important}
#pg-delivery.ds .dlv-in:focus{border-color:var(--accent,#5B8BF7)!important}
#pg-delivery.ds .dlv-st-card{background:var(--surface-sunk,#0F1113)!important;border-color:var(--hairline,rgba(255,255,255,.07))!important}
/* 택배 거래처 금색 UI 표면 — 라벨·버튼·점(dot)류. 지도 내부(leaflet svg)는 제외 */
#pg-delivery.ds [style*="color:#FFD700"]:not(path):not(circle){color:var(--st-todo,#F97316)!important}
#pg-delivery.ds button[style*="background:#FFD700"],#pg-delivery.ds [style*="background:#FFD700"][onclick]{background:var(--accent,#5B8BF7)!important;color:#fff!important}
#pg-delivery.ds [style*="border: 1px dashed rgba(255, 215, 0"],#pg-delivery.ds [style*="border:1px dashed rgba(255,215,0"]{border-color:var(--hairline-strong,rgba(255,255,255,.14))!important;background:var(--surface-sunk,#0F1113)!important}
#pg-delivery.ds .dlv-tip.dlv-tip-perm{background:var(--accent,#5B8BF7)!important;color:#fff!important;border-color:var(--accent,#5B8BF7)!important}
/* 옛 앰버 잔재 */
#pg-delivery.ds [style*="color:#F59E0B"]{color:var(--st-todo,#F97316)!important}
#pg-delivery.ds [style*="color:#F0B146"]{color:var(--st-todo,#F97316)!important}

/* ============================================================
   R11-b 카톡발송·달력·SNS 앰버/구초록 정렬 (2026-08-18, 실측 스윕 기반)
   되돌리기: 이 블록 삭제
   ============================================================ */
/* 카톡 발송(06) — 앰버 시스템 → accent. BLOCKED 상태만 주황 유지 */
#pg-kakao-send.ds .ks-btn:hover{background:var(--surface-sunk,#0F1113)!important;border-color:var(--accent,#5B8BF7)!important;color:var(--text)!important}
#pg-kakao-send.ds .ks-chip{background:var(--surface-sunk,#0F1113)!important;border-color:var(--hairline-strong,rgba(255,255,255,.10))!important;color:var(--text-2,#B7BEC4)!important}
#pg-kakao-send.ds .ks-radio input{accent-color:var(--accent,#5B8BF7)!important}
#pg-kakao-send.ds .ks-send-btn{background:var(--accent,#5B8BF7)!important;color:#fff!important}
#pg-kakao-send.ds .ks-send-btn:hover{filter:brightness(1.08)}
#pg-kakao-send.ds [style*="background:rgba(245,158,11"]{background:var(--surface-sunk,#0F1113)!important;border-color:var(--hairline-strong,rgba(255,255,255,.10))!important;color:var(--text)!important}
#pg-kakao-send.ds b[style*="color:#F0B146"]{color:var(--st-todo,#F97316)!important}
/* 업무 달력(05) — pri·풀캘린더 버튼·오늘·시계 초침 → accent */
#pg-calendar.ds .cal-btn.pri{background:var(--accent,#5B8BF7)!important;color:#fff!important;border-color:var(--accent,#5B8BF7)!important}
#pg-calendar.ds .cal-btn:hover,#pg-calendar.ds .cal-btn.on{background:var(--surface-sunk,#0F1113)!important;border-color:var(--accent,#5B8BF7)!important}
#pg-calendar.ds .fc .fc-button-primary{background:var(--accent,#5B8BF7)!important;color:#fff!important;border-color:var(--accent,#5B8BF7)!important}
#pg-calendar.ds .fc .fc-day-today .fc-daygrid-day-number{color:var(--accent,#5B8BF7)!important}
#pg-calendar.ds [stroke="#F59E0B"]{stroke:var(--accent,#5B8BF7)}
#pg-calendar.ds [fill="#F59E0B"]{fill:var(--accent,#5B8BF7)}
#pg-calendar.ds [style*="color:#F0B146"]{color:var(--st-todo,#F97316)!important}
#pg-calendar.ds [style*="color:#A371F7"]{color:var(--accent,#5B8BF7)!important}
/* SNS 업로드(33) — 구초록 #3FB950 → #4ADE80 */
#pg-mkt-instagram.ds .sns-pf-dot.on{background:#4ADE80!important;box-shadow:0 0 6px rgba(74,222,128,.5)!important}
#pg-mkt-instagram.ds .sns-hist-item.ok{border-left-color:#4ADE80!important}
#pg-mkt-instagram.ds .sns-hist-badge.ok{background:rgba(74,222,128,.14)!important;color:#4ADE80!important}
#pg-mkt-instagram.ds [style*="border-left:3px solid #3FB950"]{border-left-color:#4ADE80!important}
/* 카톡발송 BLOCKED 상태 — 옛 앰버 → 주의색(의미 유지) */
#pg-kakao-send.ds .ks-hist-row .st.BLOCKED,#pg-kakao-send.ds .st.BLOCKED{background:rgba(249,115,22,.16)!important;color:#F97316!important}

/* ============================================================
   R13 보고서함 (#pg-reports) 마감 — 시안 03 (2026-08-18)
   상세 렌더 JS는 직접 치환(무광 헤더·노랑 핵심요약·accent 피드백·무채 배지).
   여기는 상단바 버튼 위계만: 자료 요청 작성=흰 주버튼(마크업), 나머지 ghost.
   되돌리기: 이 블록 삭제 + 해당 커밋 revert
   ============================================================ */
#pg-reports.ds .rc-head-action:not([style*="background:#fff"]){background:var(--surface-sunk,#0F1113)!important;border:1px solid var(--hairline,rgba(255,255,255,.08))!important;color:var(--text-2,#B7BEC4)!important}
#pg-reports.ds .rc-head-action:not([style*="background:#fff"]):hover{color:var(--text)!important;border-color:var(--hairline-strong,rgba(255,255,255,.12))!important}

/* ============================================================
   R15 부서 홈 접힘 섹션 (사장님 지시 2026-08-20 "깔끔·간결, 기능 삭제 금지")
   시안 11~20에 없는 섹션(도구·지시사항·보고함·팀원·위젯)을 기본 접힘.
   되돌리기: 이 블록 삭제 + _tpFold 커밋 revert
   ============================================================ */
.tp-fold{margin-bottom:10px;background:var(--surface-card,#141719);border:1px solid var(--hairline,rgba(255,255,255,.07));border-radius:12px;overflow:hidden}
.tp-fold-head{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 16px;cursor:pointer;
  font-size:13px;font-weight:700;color:var(--text-2,#B7BEC4);list-style:none;-webkit-user-select:none;user-select:none}
.tp-fold-head::-webkit-details-marker{display:none}
.tp-fold-head:hover{color:var(--text);background:var(--surface-sunk,#0F1113)}
.tp-fold-caret{margin-left:auto;font-size:11px;color:var(--text-3,#7C868E);transition:transform .15s}
.tp-fold[open] .tp-fold-caret{transform:rotate(180deg)}
.tp-fold[open] .tp-fold-head{color:var(--text);border-bottom:1px solid var(--hairline,rgba(255,255,255,.07))}
.tp-fold-body{padding:14px 16px}
/* 접힘 안의 기존 섹션 머리(중복 방지 — 라벨은 summary가 담당) */
.tp-fold-body>.tp-section{margin-bottom:0}
.tp-fold-body>.tp-section>.tp-section-head{display:none}

/* ============================================================
   R16 공통 — 채팅 FAB 주황 → accent (시안 공통 지적, 2026-08-20)
   되돌리기: 이 블록 삭제
   ============================================================ */
.chat-fab{background:var(--accent,#5B8BF7)!important;color:#fff!important;box-shadow:0 6px 20px rgba(91,139,247,.4)!important}
.chat-fab:hover{box-shadow:0 8px 28px rgba(91,139,247,.55)!important}

/* ============================================================
   R17 카톡 발송 (#pg-kakao-send) 다이어트 — 시안 06 (2026-08-20)
   폰 목업 하늘색은 수신자 실화면 재현(정보)이라 유지, 크기만 축소.
   카드(ks-block) 밀도 압축 + 설명문 소형화. 기능·마크업 무접촉.
   되돌리기: 이 블록 삭제
   ============================================================ */
#pg-kakao-send.ds .phone{width:280px!important;height:540px!important;border-radius:34px!important}
#pg-kakao-send.ds .phone-screen{border-radius:27px!important}
#pg-kakao-send.ds .ks-block{padding:12px 14px!important;margin-bottom:10px!important}
#pg-kakao-send.ds .ks-block-h{font-size:12.5px!important;margin-bottom:8px!important}
#pg-kakao-send.ds .ks-sub{font-size:10.5px!important;color:var(--text-3,#7C868E)!important;line-height:1.5!important}
#pg-kakao-send.ds .ks-guard-line{font-size:10.5px!important;color:var(--text-3,#7C868E)!important}
#pg-kakao-send.ds .ks-row{gap:8px!important}
#pg-kakao-send.ds .ks-quick{gap:6px!important}
#pg-kakao-send.ds .ks-send-btn{min-height:40px!important}
@media (max-width:900px){#pg-kakao-send.ds .phone{display:none!important}}

/* ============================================================
   R18 백업·복원(09) + 인사(34) 다이어트 (2026-08-20, 에이전트 갭 분석 기반)
   되돌리기: 이 블록 삭제
   ============================================================ */
/* 백업: 위험 버튼 아웃라인 순화·버튼 표준화·pri만 accent, 표(Top10)는 스크롤 캡 */
#pg-backup.ds .bk-btn{min-height:36px!important;font-size:12.5px!important;background:var(--surface-sunk,#0F1113)!important;border:1px solid var(--hairline,rgba(255,255,255,.08))!important;color:var(--text-2,#B7BEC4)!important}
#pg-backup.ds .bk-btn:hover{color:var(--text)!important;border-color:var(--hairline-strong,rgba(255,255,255,.12))!important}
#pg-backup.ds .bk-btn-pri{background:var(--accent,#5B8BF7)!important;border-color:var(--accent,#5B8BF7)!important;color:#fff!important}
#pg-backup.ds .bk-btn-danger{background:transparent!important;border:1px solid rgba(239,68,88,.45)!important;color:#EF4458!important}
#pg-backup.ds .bk-card table{font-size:11.5px}
#pg-backup.ds .bk-card table td,#pg-backup.ds .bk-card table th{padding:6px 10px!important}
#pg-backup.ds .bk-card .bk-ls-wrap, #pg-backup.ds .bk-card [id*="ls-table"], #pg-backup.ds .bk-card [id*="storage"]{max-height:220px;overflow-y:auto}
/* 인사: 주황 히어로 → 무광 (부서홈 tp-hero와 동일 원칙) */
#pg-personnel.ds .hr-hero{background:var(--surface-card,#141719)!important;border:1px solid var(--hairline,rgba(255,255,255,.07))!important}
#pg-personnel.ds .hr-hero-icon{background:var(--surface-sunk,#0F1113)!important;border:1px solid rgba(255,159,69,.35);box-shadow:none!important}
#pg-personnel.ds [style*="background:#FF9F45"],#pg-personnel.ds button[style*="FF9F45"]{background:var(--accent,#5B8BF7)!important;color:#fff!important;border-color:var(--accent,#5B8BF7)!important}
#pg-personnel.ds [style*="color:#FF9F45"]{color:var(--text-2,#B7BEC4)!important}

/* ============================================================
   R20 인사팀 메뉴 숨김 (사장님 확정 지시 2026-08-23 "악영향 없으면 없애줘")
   - 사이드바 인사팀 카테고리·하위 메뉴만 숨김. pg-personnel 페이지·데이터(sw_hr_*)·
     goto('personnel') 직접 진입은 전부 보존 — 진입점 숨김이지 기능 제거 아님.
   - 사전 검증: goto('personnel') 참조는 이 메뉴 1곳뿐, 핵심 업무 흐름의 HR 참조 0건,
     personnelCharts는 페이지 진입 시에만 실행(부팅 무관).
   되돌리기: 이 블록 삭제
   ============================================================ */
.nav-cat[data-cat="hr"]{display:none!important}
#cat-hr{display:none!important}

/* ============================================================
   R21 업무 달력(05) 다이어트 (2026-08-23, 로드맵 항목)
   - 이벤트 pill 시간·제목 겹침 정리 / 시계·Google 카드 기본 접힘 /
     부서 필터칩 하단 범례화(클릭 필터 기능 유지) / 주말색 / amber 컨트롤 → accent
   - 부서 칩·일정 dot의 부서 의미색은 유지 (장부 #10 판단 그대로)
   되돌리기: 이 블록 삭제 + index.html 달력 마크업 커밋 revert
   ============================================================ */
/* 접이식 사이드 카드 */
#pg-calendar .cal-fold{background:var(--surface-card,#141719);border:1px solid var(--hairline,rgba(255,255,255,.07));border-radius:12px;overflow:hidden}
#pg-calendar .cal-fold>summary{list-style:none;cursor:pointer;padding:12px 14px;font-size:12.5px;font-weight:700;color:var(--text-2,#B7BEC4);display:flex;align-items:center;gap:8px;user-select:none;min-height:40px}
#pg-calendar .cal-fold>summary::-webkit-details-marker{display:none}
#pg-calendar .cal-fold>summary::after{content:"▸";margin-left:auto;color:var(--text-3,#7C868E);font-size:11px;transition:transform .15s}
#pg-calendar .cal-fold[open]>summary::after{transform:rotate(90deg)}
#pg-calendar .cal-fold[open]>summary{border-bottom:1px solid var(--hairline,rgba(255,255,255,.07));color:#fff}
/* 이벤트 pill — 시간·제목 한 줄 정렬, 겹침·튐 방지 */
#pg-calendar .fc .fc-daygrid-event{display:flex!important;align-items:center;gap:4px;overflow:hidden;min-height:20px}
#pg-calendar .fc .fc-event-time{flex:0 0 auto;font-size:10px!important;font-weight:700;opacity:.85}
#pg-calendar .fc .fc-event-title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#pg-calendar .fc .fc-daygrid-more-link{font-size:10.5px;color:var(--accent,#5B8BF7)}
/* 요일 헤더 — 일요일 빨강·토요일 파랑 */
#pg-calendar .fc .fc-day-sun .fc-daygrid-day-number{color:#EF4458!important}
#pg-calendar .fc .fc-day-sat .fc-daygrid-day-number{color:#5B8BF7!important}
#pg-calendar .fc .fc-col-header-cell.fc-day-sun{color:#EF4458!important}
#pg-calendar .fc .fc-col-header-cell.fc-day-sat{color:#5B8BF7!important}
/* amber 컨트롤 → accent (오늘 하이라이트·부서 의미색은 유지) */
#pg-calendar .cal-btn.pri{background:var(--accent,#5B8BF7)!important;border-color:var(--accent,#5B8BF7)!important;color:#fff!important}
#pg-calendar .cal-btn:hover{background:rgba(91,139,247,.12)!important;border-color:var(--accent,#5B8BF7)!important}
#pg-calendar .fc .fc-button-primary{background:var(--accent,#5B8BF7)!important;border-color:var(--accent,#5B8BF7)!important;color:#fff!important}
#pg-calendar .fc .fc-button:hover{border-color:var(--accent,#5B8BF7)!important}
#pg-calendar .fc .fc-col-header-cell{background:var(--surface-sunk,#0F1113)!important}
/* 하단 필터칩 — 범례 톤(작고 조용하게), 클릭 필터는 그대로 */
#pg-calendar .dept-chip{padding:4px 10px!important;font-size:10.5px!important;background:transparent!important;border:1px solid var(--hairline,rgba(255,255,255,.1))!important}
#pg-calendar .dept-chip:hover{transform:none!important;border-color:var(--hairline-strong,rgba(255,255,255,.16))!important}

/* ============================================================
   R25 거래처 종합조회(07) 다이어트 (2026-08-26, 로드맵 항목)
   - 표 밀도 압축 + 행당 액션 버튼 3개(상세·수정·✕) 소형 ghost 축소
   - onclick·컬럼·기능 전부 그대로
   되돌리기: 이 블록 삭제
   ============================================================ */
#pg-fin-clients.ds .fin-tbl th{padding:7px 9px!important;font-size:10.5px!important}
#pg-fin-clients.ds .fin-tbl td{padding:7px 9px!important;font-size:12px!important}
#pg-fin-clients.ds .fin-tbl td:last-child{white-space:nowrap}
#pg-fin-clients.ds .fin-tbl .fin-btn.sm{padding:3px 8px!important;font-size:10.5px!important;min-height:24px!important;background:transparent!important;border:1px solid var(--hairline,rgba(255,255,255,.1))!important;color:var(--text-3,#9BA3B7)!important;margin-right:3px}
#pg-fin-clients.ds .fin-tbl .fin-btn.sm:hover{color:var(--text)!important;border-color:var(--hairline-strong,rgba(255,255,255,.18))!important}
#pg-fin-clients.ds .fin-tbl .fin-x{background:transparent!important;border:1px solid transparent!important;color:var(--text-3,#7C868E)!important;font-size:12px!important;padding:3px 6px!important;cursor:pointer}
#pg-fin-clients.ds .fin-tbl .fin-x:hover{color:#EF4458!important;border-color:rgba(239,68,88,.4)!important;border-radius:6px}
#pg-fin-clients.ds .fin-sub{font-size:10.5px!important}

/* ============================================================
   R27 위젯 갤러리(02) 다이어트 (2026-08-26, 로드맵 항목)
   - 실물 렌더 미리보기는 유지하되 카드 높이 150px 균일(썸네일화),
     빈 상태 문구 회색 소형화, 카드 표면을 현행 토큰으로
   되돌리기: 이 블록 삭제
   ============================================================ */
#pg-widgets.ds .tm-gcard{background:var(--surface-card,#141719)!important;border:1px solid var(--hairline,rgba(255,255,255,.07))!important}
#pg-widgets.ds .tm-gprev{height:150px!important;min-height:150px!important;max-height:150px!important}
#pg-widgets.ds .tm-gprev:after{background:linear-gradient(transparent,var(--surface-card,#141719))!important}
#pg-widgets.ds .tm-empty{font-size:11px!important;color:var(--text-3,#7C868E)!important;padding:12px!important}
#pg-widgets.ds .tm-empty b{color:var(--text-2,#B7BEC4)!important}

/* ════════════════════════════════════════════════════════════
   R32 보고서함 상세 = 데모(새디자인) 흰 종이 스타일
   (사장님 지시 2026-08-27: "보고서들도 데모페이지에서 확인된 것과 같이 —
    색상이 어지러워 가독성이 떨어진다")
   방향: 우측 상세만 데모의 라이트 종이(흰 카드·진회색 글자·차분한 위계)로.
   좌측 목록·상단바는 앱 다크 유지(내용증명·견적서의 흰 종이 문서와 같은 패턴).
   데모 토큰: 종이 #FFFFFF · 침하 #F4F4F5 · 헤어라인 #E4E4E7
             글자 #09090B/#3F3F46/#71717A · 액센트 #0A84FF · 제목 h2 24/800
   되돌리기 = 이 블록 삭제.
   ════════════════════════════════════════════════════════════ */
/* R89(사장님 지시 2026-09-03): 흰 종이(R32) 철회 — 앱 전역 다크 톤으로 통일(제0조). 가독 위계는 유지 */
#pg-reports.ds .rc-right{background:var(--surface-card,#1B1B1F)!important;border:1px solid var(--hairline,rgba(255,255,255,.08))!important;color:var(--text-2,#B7BEC4)}
#pg-reports.ds .rc-detail-head{border-bottom:1px solid rgba(255,255,255,.08)!important}
#pg-reports.ds .rc-detail-h1:not(.rc-empty-h1){color:#fff!important;font-size:24px!important;font-weight:800!important}
#pg-reports.ds .rc-detail-sub{color:var(--text-3,#9BA3B7)!important}
#pg-reports.ds .rc-detail-body{background:transparent}
#pg-reports.ds .rc-kv{border:0!important;gap:8px;padding:16px 0}
#pg-reports.ds .rc-kv>div{background:var(--surface-sunk,#0F1113);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:10px 12px;min-width:0}
#pg-reports.ds .rc-kv .k{color:var(--text-3,#9BA3B7)!important}
#pg-reports.ds .rc-kv .v{color:#fff!important;font-size:17px!important;font-weight:800!important}
#pg-reports.ds .rc-kv .v.up{color:#52C785!important}
#pg-reports.ds .rc-kv .v.down{color:#EF4458!important}
#pg-reports.ds .rc-kv .v.warn{color:#F0B146!important}
#pg-reports.ds .rc-kv .vsub{color:var(--text-3,#9BA3B7)!important}
#pg-reports.ds .rc-sec-h{font-size:12px!important;font-weight:700!important;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3,#9BA3B7)!important}
#pg-reports.ds .rc-bullet-num{background:rgba(245,158,11,.16)!important;color:#F0B146!important}
#pg-reports.ds .rc-bullet-text{color:#C9D1D9!important}
#pg-reports.ds .rc-bullet-text b{color:#fff!important}
#pg-reports.ds .rc-md{color:#C9D1D9}
#pg-reports.ds .rc-md p{color:#C9D1D9!important;font-size:14px!important}
#pg-reports.ds .rc-md h1,#pg-reports.ds .rc-md h2,#pg-reports.ds .rc-md h3,#pg-reports.ds .rc-md h4{color:#fff!important}
#pg-reports.ds .rc-md li{color:#C9D1D9}
#pg-reports.ds .rc-md table th{color:#fff!important;background:rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.12)!important}
#pg-reports.ds .rc-md table td{color:#C9D1D9!important;border-bottom:1px solid rgba(255,255,255,.06)!important}
#pg-reports.ds .rc-md blockquote{background:rgba(255,255,255,.04);border-left:3px solid rgba(255,255,255,.15);color:#C9D1D9}
#pg-reports.ds .rc-md code{background:rgba(255,255,255,.08);color:#E6EDF3;border-radius:4px;padding:1px 5px}
#pg-reports.ds .rc-actionbar{border-top:1px solid rgba(255,255,255,.08)!important;background:transparent!important}
#pg-reports.ds .rc-btn{background:var(--surface-sunk,#0F1113)!important;color:#E6EDF3!important;border:1px solid rgba(255,255,255,.15)!important}
#pg-reports.ds .rc-btn:hover{background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.3)!important}
#pg-reports.ds .rc-btn.pri{background:#F59E0B!important;color:#000!important;border-color:#F59E0B!important}
#pg-reports.ds .rc-btn.pri:hover{background:#E69009!important;box-shadow:none!important}
/* 상세 안 피드백 입력(있을 때) */
#pg-reports.ds .rc-detail-body textarea,#pg-reports.ds .rc-detail-body input[type=text]{background:#FFFFFF;color:#09090B;border:1px solid #E4E4E7}

/* ════════════════════════════════════════════════════════════
   R31 배송 최적화 무채색 다크 (사장님 지시 2026-08-27:
   "차량설정 화면 색상이 어지러워 — 검은 바탕+흰 글씨, 색은 코스 노선에만")
   위 336~373의 #pg-delivery.ds 규칙과 같은 강도로 뒤에서 이김.
   [유지] 코스별 색 띠·지도 폴리라인·노선 색상 = 의미색 그대로.
   되돌리기 = 이 블록 삭제.
   ════════════════════════════════════════════════════════════ */
#pg-delivery.ds .dlv-panel,
#pg-delivery.ds .dlv-stats-area{ background:#000; border:1px solid rgba(255,255,255,.14); }
#pg-delivery.ds .dlv-map{ background:#000; }
#pg-delivery.ds .dlv-h{ color:#fff; }
#pg-delivery.ds label{ color:#C9D1D9; }
#pg-delivery.ds .dlv-in,
#pg-delivery.ds select.dlv-in{ background:#000; color:#fff; border:1px solid rgba(255,255,255,.2); }
#pg-delivery.ds .dlv-in:focus,
#pg-delivery.ds select.dlv-in:focus{ border-color:#fff; }
#pg-delivery.ds .dlv-btn{ background:#fff; color:#000; }
#pg-delivery.ds .dlv-btn:hover{ background:#E4E4E7; }
#pg-delivery.ds .dlv-btn-sec{ color:#fff; border-color:rgba(255,255,255,.4); }
#pg-delivery.ds .dlv-mini-btn{ border:1px solid rgba(255,255,255,.25); color:#C9D1D9; }
#pg-delivery.ds .dlv-mini-btn:hover{ background:rgba(255,255,255,.08); color:#fff; }
#pg-delivery.ds .dlv-st-l,
#pg-delivery.ds .dlv-sum-l,
#pg-delivery.ds .dlv-course-m,
#pg-delivery.ds .empty{ color:#C9D1D9; }
#pg-delivery.ds .dlv-st-v,
#pg-delivery.ds .dlv-sum-v,
#pg-delivery.ds .dlv-course-h{ color:#fff; }
#pg-delivery.ds .dlv-st-card{ background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.16); }
#pg-delivery.ds .dlv-sum-card{ background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.16); }
#pg-delivery.ds .dlv-course{ background:rgba(255,255,255,.04); }
#pg-delivery.ds .dlv-course:hover{ background:rgba(255,255,255,.09); }
#pg-delivery.ds .dlv-cm-row{ border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.03); }
#pg-delivery.ds #dlv-today-date,
#pg-delivery.ds .dlv-bulkbar select,
#pg-delivery.ds .dlv-paintbar select{ background:#000; color:#fff; border:1px solid rgba(255,255,255,.25); }
#pg-delivery.ds .dlv-cal th{ color:#C9D1D9; }

/* ════════════════════════════════════════════════════════════
   R38 부서 홈 카드 섹션 (사장님 지시 2026-08-30:
   "부서도구·사장님 지시사항·부서 보고함·팀구성원·부서위젯을 카드 섹션으로 깔끔하게")
   전 부서 10곳 공통(teamPageRender 1곳 렌더). 위 R15 tp-fold를 카드로 승격 —
   부서색 아이콘 칩(--tpc, teamPageRender가 페이지별 주입) + 제목/부제 2줄 + 요약 배지.
   기능·접힘 기억·onclick 무접촉. 되돌리기 = 이 블록 삭제 + _tpFold R38 커밋 revert.
   ════════════════════════════════════════════════════════════ */
.tp-card{margin-bottom:14px;border-radius:14px;background:var(--surface-card,#141719);
  border:1px solid var(--hairline,rgba(255,255,255,.07));transition:border-color .15s}
.tp-card[open]{border-color:color-mix(in srgb, var(--tpc,#5B8BF7) 35%, transparent)}
.tp-card>.tp-card-head{min-height:52px;padding:8px 16px;gap:12px}
.tp-card-ic{width:34px;height:34px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  font-size:17px;border-radius:9px;background:color-mix(in srgb, var(--tpc,#5B8BF7) 14%, transparent);
  border:1px solid color-mix(in srgb, var(--tpc,#5B8BF7) 30%, transparent)}
.tp-card-tt{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.tp-card-title{font-size:13.5px;font-weight:800;color:var(--text-1,#F2F4F5);letter-spacing:-.01em}
.tp-card-sub{font-size:10.5px;font-weight:500;color:var(--text-3,#7C868E);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tp-card-badge{flex-shrink:0;font-size:10.5px;font-weight:800;color:var(--tpc,#5B8BF7);
  background:color-mix(in srgb, var(--tpc,#5B8BF7) 12%, transparent);
  border:1px solid color-mix(in srgb, var(--tpc,#5B8BF7) 25%, transparent);
  border-radius:10px;padding:2px 9px;font-variant-numeric:tabular-nums}
.tp-card[open]>.tp-card-head{border-bottom:1px solid var(--hairline,rgba(255,255,255,.07))}
.tp-card>.tp-fold-body{padding:16px}
/* color-mix 미지원 구형 브라우저 폴백 — 칩·배지가 무채색으로만 떨어짐(레이아웃 동일) */
@supports not (background: color-mix(in srgb, red 10%, blue)) {
  .tp-card-ic{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.15)}
  .tp-card-badge{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2)}
  .tp-card[open]{border-color:rgba(255,255,255,.18)}
}
@media (max-width:480px){ .tp-card>.tp-card-head{min-height:46px} .tp-card-title{font-size:12.5px} }

/* ════════════════════════════════════════════════════════════
   R55b 카드뉴스 CoverFlow 미리보기 (2026-08-31, amicro 조사 1순위 — 시안 627f228d 승인)
   #pg-mkt-instagram 미리보기 프레임 안: 편집|미리보기 탭 + 3D 커버플로우. 카드 크기는 JS(cnRenderFlow)가 인라인.
   되돌리기 = 이 블록 삭제 (+ index.html R55b 블록·마크업).
   ════════════════════════════════════════════════════════════ */
#pg-mkt-instagram .cn-vmode{align-self:stretch;display:flex;border:1px solid #30363D;border-radius:7px;overflow:hidden}
#pg-mkt-instagram .cn-vmode button{flex:1;padding:7px 10px;background:#0D1117;color:#8B949E;border:0;font-size:11.5px;font-weight:700;cursor:pointer;font-family:inherit}
#pg-mkt-instagram .cn-vmode button.on{background:#161B22;color:#fff;box-shadow:inset 0 -2px 0 #ff0010}
#pg-mkt-instagram .cn-edit-wrap{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}
#pg-mkt-instagram .cn-edit-wrap.hide{display:none}
#pg-mkt-instagram .cf-wrap{display:none;width:100%;flex-direction:column;align-items:center;gap:8px}
#pg-mkt-instagram .cf-wrap.show{display:flex}
#pg-mkt-instagram .cf-stage{position:relative;width:100%;min-height:200px;perspective:1000px;overflow:hidden;border-radius:8px;outline:none;background:radial-gradient(ellipse at 50% 60%,rgba(255,255,255,.035),transparent 65%)}
#pg-mkt-instagram .cf-stage:focus-visible{box-shadow:inset 0 0 0 2px #5B8BF7}
#pg-mkt-instagram .cf-card{position:absolute;left:50%;top:50%;border-radius:10px;overflow:hidden;border:1px solid rgba(255,255,255,.1);box-shadow:0 18px 40px -12px rgba(0,0,0,.7);cursor:pointer;background:#000;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.34,1.25,.64,1),opacity .4s ease;will-change:transform}
#pg-mkt-instagram .cf-card img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
#pg-mkt-instagram .cf-card .n{position:absolute;top:5px;left:7px;font-size:10px;font-weight:800;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.8)}
#pg-mkt-instagram .cf-card.on{border-color:rgba(255,255,255,.35)}
#pg-mkt-instagram .cf-cap{min-height:18px;font-size:12px;font-weight:700;color:rgba(255,255,255,.85);text-align:center}
#pg-mkt-instagram .cf-cap small{color:#7C868E;font-weight:600;margin-left:6px}
#pg-mkt-instagram .cf-ctl{display:flex;align-items:center;gap:8px;padding:3px 6px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(8px)}
#pg-mkt-instagram .cf-ctl button{width:26px;height:26px;border-radius:50%;border:0;background:transparent;color:#B7BEC4;cursor:pointer;font-size:15px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;font-family:inherit}
#pg-mkt-instagram .cf-ctl button:hover{background:rgba(255,255,255,.1);color:#fff}
#pg-mkt-instagram .cf-ctl button:disabled{opacity:.3;cursor:default;background:transparent}
#pg-mkt-instagram .cf-dots{display:flex;align-items:center;gap:4px}
#pg-mkt-instagram .cf-dot{height:4px;width:4px;border-radius:999px;background:rgba(255,255,255,.3);cursor:pointer;transition:all .3s}
#pg-mkt-instagram .cf-dot:hover{background:rgba(255,255,255,.5)}
#pg-mkt-instagram .cf-dot.on{width:16px;background:#fff}
#pg-mkt-instagram .cf-hint{font-size:10.5px;color:#586273}
@media (prefers-reduced-motion:reduce){#pg-mkt-instagram .cf-card,#pg-mkt-instagram .cf-dot{transition:none}}


/* ══ R70 폰트 소급 통일 (FLOW 제0-1조, 사장님 지시 2026-09-02) — 검증 완료 페이지 한정, 위젯·인쇄 제외 ══ */
@media screen{
#pg-reports [style*="font-size:8px"],#pg-reports [style*="font-size:9px"],#pg-reports [style*="font-size:9.5px"],#pg-reports [style*="font-size:10px"],#pg-reports [style*="font-size:10.5px"],#pg-reports [style*="font-size:11px"],#pg-reports [style*="font-size:11.5px"]{font-size:12px!important}
#pg-reports [style*="font-size:12px"],#pg-reports [style*="font-size:12.5px"]{font-size:13px!important}
#pg-reports [style*="font-size:13px"],#pg-reports [style*="font-size:13.5px"]{font-size:14px!important}
#pg-predict-order [style*="font-size:8px"],#pg-predict-order [style*="font-size:9px"],#pg-predict-order [style*="font-size:9.5px"],#pg-predict-order [style*="font-size:10px"],#pg-predict-order [style*="font-size:10.5px"],#pg-predict-order [style*="font-size:11px"],#pg-predict-order [style*="font-size:11.5px"]{font-size:12px!important}
#pg-predict-order [style*="font-size:12px"],#pg-predict-order [style*="font-size:12.5px"]{font-size:13px!important}
#pg-predict-order [style*="font-size:13px"],#pg-predict-order [style*="font-size:13.5px"]{font-size:14px!important}
#pg-calendar [style*="font-size:8px"],#pg-calendar [style*="font-size:9px"],#pg-calendar [style*="font-size:9.5px"],#pg-calendar [style*="font-size:10px"],#pg-calendar [style*="font-size:10.5px"],#pg-calendar [style*="font-size:11px"],#pg-calendar [style*="font-size:11.5px"]{font-size:12px!important}
#pg-calendar [style*="font-size:12px"],#pg-calendar [style*="font-size:12.5px"]{font-size:13px!important}
#pg-calendar [style*="font-size:13px"],#pg-calendar [style*="font-size:13.5px"]{font-size:14px!important}
#prepcal-modal [style*="font-size:8px"],#prepcal-modal [style*="font-size:9px"],#prepcal-modal [style*="font-size:9.5px"],#prepcal-modal [style*="font-size:10px"],#prepcal-modal [style*="font-size:10.5px"],#prepcal-modal [style*="font-size:11px"],#prepcal-modal [style*="font-size:11.5px"]{font-size:12px!important}
#prepcal-modal [style*="font-size:12px"],#prepcal-modal [style*="font-size:12.5px"]{font-size:13px!important}
#prepcal-modal [style*="font-size:13px"],#prepcal-modal [style*="font-size:13.5px"]{font-size:14px!important}
#poacc-modal [style*="font-size:8px"],#poacc-modal [style*="font-size:9px"],#poacc-modal [style*="font-size:9.5px"],#poacc-modal [style*="font-size:10px"],#poacc-modal [style*="font-size:10.5px"],#poacc-modal [style*="font-size:11px"],#poacc-modal [style*="font-size:11.5px"]{font-size:12px!important}
#poacc-modal [style*="font-size:12px"],#poacc-modal [style*="font-size:12.5px"]{font-size:13px!important}
#poacc-modal [style*="font-size:13px"],#poacc-modal [style*="font-size:13.5px"]{font-size:14px!important}
#po-sendflow [style*="font-size:8px"],#po-sendflow [style*="font-size:9px"],#po-sendflow [style*="font-size:9.5px"],#po-sendflow [style*="font-size:10px"],#po-sendflow [style*="font-size:10.5px"],#po-sendflow [style*="font-size:11px"],#po-sendflow [style*="font-size:11.5px"]{font-size:12px!important}
#po-sendflow [style*="font-size:12px"],#po-sendflow [style*="font-size:12.5px"]{font-size:13px!important}
#po-sendflow [style*="font-size:13px"],#po-sendflow [style*="font-size:13.5px"]{font-size:14px!important}
#cal-auto-modal [style*="font-size:8px"],#cal-auto-modal [style*="font-size:9px"],#cal-auto-modal [style*="font-size:9.5px"],#cal-auto-modal [style*="font-size:10px"],#cal-auto-modal [style*="font-size:10.5px"],#cal-auto-modal [style*="font-size:11px"],#cal-auto-modal [style*="font-size:11.5px"]{font-size:12px!important}
#cal-auto-modal [style*="font-size:12px"],#cal-auto-modal [style*="font-size:12.5px"]{font-size:13px!important}
#cal-auto-modal [style*="font-size:13px"],#cal-auto-modal [style*="font-size:13.5px"]{font-size:14px!important}
/* 보고서함 클래스 위계 (강조=크게·굵게, 메타=12 하한) */
#pg-reports .rc-topbar{font-size:13px!important}
#pg-reports .rc-topbar .rc-tb-title{font-size:14px!important}
#pg-reports .rc-left-sub{font-size:13px!important}
#pg-reports .rc-new-badge{font-size:12px!important}
#pg-reports .rc-tab .cnt{font-size:12px!important}
#pg-reports .rc-item-rno{font-size:12px!important}
#pg-reports .rc-item-title{font-size:14px!important;font-weight:700!important}
#pg-reports .rc-item-meta,#pg-reports .rc-item-time{font-size:12px!important}
#pg-reports .rc-detail-eyebrow{font-size:12px!important}
#pg-reports .rc-detail-sub{font-size:13px!important}
#pg-reports .rc-kv .k,#pg-reports .rc-kv .vsub{font-size:12px!important}
#pg-reports .rc-bullet-num{font-size:13px!important}
#pg-reports .rc-bullet-text{font-size:14px!important}
#pg-reports .rc-btn,#pg-reports .rc-head-action{font-size:13px!important}
#pg-reports .rc-md table th,#pg-reports .rc-md table td{font-size:14px!important}
/* 업무달력 클래스 */
#pg-calendar .cal-eyebrow{font-size:12px!important}
#pg-calendar .cal-h1-sub{font-size:13px!important}
#pg-calendar .cal-btn{font-size:13px!important}
#pg-calendar .dept-chip{font-size:12px!important}
#pg-calendar .fc{font-size:13px!important}
#pg-calendar .fc .fc-button{font-size:12px!important}
#pg-calendar .fc .fc-col-header-cell{font-size:12px!important;text-transform:none}
#pg-calendar .fc .fc-event{font-size:12px!important}
#pg-calendar #cal-clock-date{font-size:13px!important}
#pg-calendar .fc .fc-event-time{font-size:12px!important}
#pg-calendar .fc .fc-daygrid-more-link{font-size:12px!important}
#pg-reports .nm{font-size:13px!important}
#pg-reports .cnt{font-size:12px!important}
}

/* ══ R71 마진 페이지 — 폰트 통일(제0-1조) + 대량 견적 버튼 ══ */
@media screen{
#pg-margin [style*="font-size:8px"],#pg-margin [style*="font-size:9px"],#pg-margin [style*="font-size:9.5px"],#pg-margin [style*="font-size:10px"],#pg-margin [style*="font-size:10.5px"],#pg-margin [style*="font-size:11px"],#pg-margin [style*="font-size:11.5px"]{font-size:12px!important}
#pg-margin [style*="font-size:12px"],#pg-margin [style*="font-size:12.5px"]{font-size:13px!important}
#pg-margin [style*="font-size:13px"],#pg-margin [style*="font-size:13.5px"]{font-size:14px!important}
#pg-margin .mgc-unit,#pg-margin .mgc-hint,#pg-margin .mgc-rbox .t{font-size:12px!important}
#pg-margin .mgc-table th{font-size:12px!important}
#pg-margin .mgc-foot{font-size:12px!important}
#pg-margin .mgc-tabs button{font-size:14px!important}
#pg-margin label{font-size:13px!important}
#pg-margin .mgc-seg button{font-size:13px!important}
#pg-margin .mgc-opts span,#pg-margin .mgc-rbox span{font-size:12px!important}
#pg-margin .mgc-btn2{background:var(--panel,#1B1B1F);color:#e5e7eb;border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:8px 14px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit}
#pg-margin .mgc-btn2:hover{border-color:#F59E0B;color:#F59E0B}
}

/* ══ R73 — AI 비서 패널 CSS 복원 (R53 위젯 레거시 절삭 때 오절삭 → 패널이 벌거벗은 채 우측 노출·닫기 불가. 원본: 429c41d~1 라인 1407~) ══ */
#hc-ai-fab{display:none!important}
#hc-ai-panel{position:fixed;right:18px;bottom:84px;width:min(480px,calc(100vw - 36px));background:#0F0F11;border:1px solid rgba(245,158,11,.3);border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.5),0 0 0 1px rgba(245,158,11,.12);padding:14px;z-index:9000;display:none;flex-direction:column;gap:10px;animation:hcAiSlide .25s cubic-bezier(.34,1.56,.64,1)}
#hc-ai-panel.open{display:flex}
@keyframes hcAiSlide{from{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}
#hc-ai-panel .hc-ai-head{display:flex;align-items:center;gap:8px;font-size:12px;color:#F59E0B;font-weight:700}
#hc-ai-panel .hc-ai-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
#hc-ai-panel input{flex:1;min-width:200px;background:#1B1B1F;border:1px solid rgba(245,158,11,.3);color:#fff;padding:10px 14px;border-radius:8px;font-size:13px;font-family:inherit;outline:none;caret-color:#F59E0B}
#hc-ai-panel input:focus{border-color:#F59E0B;box-shadow:0 0 0 3px rgba(245,158,11,.12)}
#hc-ai-panel .hc-ai-aux,#hc-ai-panel .hc-ai-run{background:#1B1B1F;color:#fff;border:1px solid rgba(255,255,255,.15);padding:9px 14px;border-radius:8px;font-size:12px;cursor:pointer;font-weight:600;font-family:inherit;white-space:nowrap}
#hc-ai-panel .hc-ai-run{background:#F59E0B;color:#000;border-color:#F59E0B}
#hc-ai-panel .hc-ai-aux:hover{background:rgba(245,158,11,.12);border-color:#F59E0B}

/* ══ R74 새창 아이콘 (선만, 색 없음 — currentColor) ══ */
.nav-btn .nav-newwin{display:inline-flex;align-items:center;flex-shrink:0;opacity:.38;padding:3px;border-radius:6px;color:inherit}
.nav-btn:hover .nav-newwin{opacity:.8}
.nav-btn .nav-newwin:hover{opacity:1;background:rgba(255,255,255,.1)}

/* ══ R75 백업 페이지 폰트(제0-1조) — 화면 전용 ══ */
#nb-backup{display:none!important}   /* R75: .nav-btn display!important 전역 규칙이 인라인을 이겨서 id+important로 숨김 */
@media screen{
#pg-backup [style*="font-size:8px"],#pg-backup [style*="font-size:9px"],#pg-backup [style*="font-size:9.5px"],#pg-backup [style*="font-size:10px"],#pg-backup [style*="font-size:10.5px"],#pg-backup [style*="font-size:11px"],#pg-backup [style*="font-size:11.5px"]{font-size:12px!important}
#pg-backup [style*="font-size:12px"],#pg-backup [style*="font-size:12.5px"]{font-size:13px!important}
#pg-backup [style*="font-size:13px"],#pg-backup [style*="font-size:13.5px"]{font-size:14px!important}
}

/* ══ R76 aibot 페이지 폰트(제0-1조) ══ */
@media screen{
#pg-aibot [style*="font-size:8px"],#pg-aibot [style*="font-size:9px"],#pg-aibot [style*="font-size:9.5px"],#pg-aibot [style*="font-size:10px"],#pg-aibot [style*="font-size:10.5px"],#pg-aibot [style*="font-size:11px"],#pg-aibot [style*="font-size:11.5px"]{font-size:12px!important}
#pg-aibot [style*="font-size:12px"],#pg-aibot [style*="font-size:12.5px"]{font-size:13px!important}
#pg-aibot [style*="font-size:13px"],#pg-aibot [style*="font-size:13.5px"]{font-size:14px!important}
}

/* ══ R78 부서 페이지 공용 폰트(제0-1조) — team-page-wrap 전 부서 ══ */
@media screen{
.team-page-wrap [style*="font-size:8px"],.team-page-wrap [style*="font-size:9px"],.team-page-wrap [style*="font-size:9.5px"],.team-page-wrap [style*="font-size:10px"],.team-page-wrap [style*="font-size:10.5px"],.team-page-wrap [style*="font-size:11px"],.team-page-wrap [style*="font-size:11.5px"]{font-size:12px!important}
.team-page-wrap [style*="font-size:12px"],.team-page-wrap [style*="font-size:12.5px"]{font-size:13px!important}
.team-page-wrap [style*="font-size:13px"],.team-page-wrap [style*="font-size:13.5px"]{font-size:14px!important}
}

/* ══ R95 (2026-09-03): 발주 통합(#pg-predict-order) 디자인 레퍼런스 3단계 — 인라인 폰트 12px 하한(R70 패턴)·라운드 8px ══ */
@media screen{
#pg-predict-order [style*="font-size:9.5px"],#pg-predict-order [style*="font-size:10px"],#pg-predict-order [style*="font-size:10.5px"],#pg-predict-order [style*="font-size:11px"],#pg-predict-order [style*="font-size:11.5px"]{font-size:12px!important}
#pg-predict-order [style*="border-radius:12px"]{border-radius:8px!important}
#pg-predict-order [style*="border-radius:10px"]{border-radius:8px!important}
}

/* ══ R99 (2026-09-03): 부서 홈 공용 라운드 8px (디자인 레퍼런스 원칙 6 — R78 폰트 매핑과 짝) ══ */
@media screen{.team-page-wrap [style*="border-radius:10px"],.team-page-wrap [style*="border-radius:12px"],.team-page-wrap [style*="border-radius:14px"]{border-radius:8px!important}}
@media screen{.team-page-wrap .tp-eyebrow,.team-page-wrap .tp-card-sub,.team-page-wrap .tp-card-badge,.team-page-wrap .tp-fold-caret{font-size:12px!important}}

/* ════════════════════════════════════════════════════════════
   R106 분석 페이지 (2026-09-03) — 도형 어휘 9종 + 설명 플로우 바텀시트
   시안 c351ce23 승인분. 카드=흰 종이(보고서함 결), 시트=앱 다크(토스식).
   되돌리기 = 이 블록 + index.html의 R106 표기 5곳 삭제.
   ════════════════════════════════════════════════════════════ */
#pg-analysis .an-wrap{max-width:1180px;margin:0 auto;padding:16px 22px 80px}
#pg-analysis .an-eyebrow{font-size:10.5px;font-weight:700;letter-spacing:.08em;color:var(--text-3,#7C868E);text-transform:uppercase}
#pg-analysis h1{font-size:18px;font-weight:800;color:var(--text-1,#F2F4F5);letter-spacing:-.01em;margin:2px 0 4px}
#pg-analysis .an-sub{font-size:12px;color:var(--text-3,#9BA3B7);margin:0 0 16px}
#pg-analysis .an-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:900px){#pg-analysis .an-grid{grid-template-columns:1fr}}
#pg-analysis .an-card{background:#FFFFFF;border:1px solid #E4E4E7;border-radius:12px;padding:16px 18px 12px;color:#3F3F46;cursor:pointer;transition:box-shadow .15s,transform .15s}
#pg-analysis .an-card:hover{box-shadow:0 10px 30px -12px rgba(0,0,0,.55);transform:translateY(-1px)}
#pg-analysis .an-card:focus-visible{outline:2px solid var(--accent,#5B8BF7);outline-offset:2px}
#pg-analysis .an-card.off{background:var(--surface-card,#141719);border-color:var(--hairline-soft,rgba(255,255,255,.07));color:var(--text-2,#B7BEC4)}
#pg-analysis .an-top{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}
#pg-analysis .an-rank{font-family:var(--font-numeric,Rajdhani,Consolas,monospace);font-size:11px;color:#71717A;font-weight:700}
#pg-analysis .an-card.off .an-rank{color:var(--text-3,#7C868E)}
#pg-analysis .an-title{font-size:14px;font-weight:800;color:#09090B;letter-spacing:-.01em}
#pg-analysis .an-card.off .an-title{color:var(--text-1,#F2F4F5)}
#pg-analysis .an-badge{margin-left:auto;font-size:10px;font-weight:700;border-radius:999px;padding:2px 8px;white-space:nowrap}
#pg-analysis .an-badge.live{background:#DFF3E8;color:#15803D}
#pg-analysis .an-badge.need{background:rgba(255,255,255,.08);color:var(--text-3,#7C868E)}
#pg-analysis .an-conc{font-size:12.5px;color:#3F3F46;margin:0 0 10px;line-height:1.6}
#pg-analysis .an-conc b{color:#09090B}
#pg-analysis .an-conc .bad{color:#E11D2A;font-weight:700}
#pg-analysis .an-empty{padding:26px 10px;text-align:center;font-size:12px;color:var(--text-3,#8B949E);line-height:1.7}
#pg-analysis .an-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:8px;border-top:1px solid #F4F4F5;font-size:11px;color:#71717A}
#pg-analysis .an-card.off .an-foot{border-top-color:var(--hairline-soft,rgba(255,255,255,.07));color:var(--text-3,#7C868E)}
#pg-analysis .an-foot .go{color:#2F6BEB;font-weight:700}
#pg-analysis .an-dim{position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(2px);z-index:90;opacity:0;pointer-events:none;transition:opacity .2s}
#pg-analysis .an-dim.on{opacity:1;pointer-events:auto}
#pg-analysis .an-sheet{position:fixed;left:50%;bottom:0;transform:translate(-50%,105%);width:min(660px,100vw);max-height:86vh;overflow-y:auto;background:#15181C;border:1px solid rgba(255,255,255,.1);border-bottom:0;border-radius:18px 18px 0 0;z-index:91;transition:transform .28s cubic-bezier(.32,.72,.35,1);padding:10px 22px 26px}
#pg-analysis .an-sheet.on{transform:translate(-50%,0)}
#pg-analysis .an-sheet .grab{width:40px;height:4px;border-radius:2px;background:rgba(255,255,255,.2);margin:4px auto 14px}
#pg-analysis .an-sheet .s-eyebrow{font-size:10.5px;font-weight:700;letter-spacing:.08em;color:#7C868E;text-transform:uppercase}
#pg-analysis .an-sheet h2{font-size:18px;font-weight:800;color:#F2F4F5;letter-spacing:-.015em;margin:4px 0 2px;line-height:1.5;word-break:keep-all}
#pg-analysis .an-sheet h2 b{color:#fff}
#pg-analysis .an-sheet h2 .bad{color:#EF4458}
#pg-analysis .an-sheet .s-sub{font-size:12px;color:#9BA3B7;margin:0 0 14px}
#pg-analysis .an-sheet .s-sec{margin:16px 0 0}
#pg-analysis .an-sheet .s-sec-h{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:800;color:#F2F4F5;margin-bottom:7px}
#pg-analysis .an-sheet .s-sec-h .ic{width:22px;height:22px;border-radius:7px;background:rgba(91,139,247,.14);border:1px solid rgba(91,139,247,.3);display:flex;align-items:center;justify-content:center;font-size:12px}
#pg-analysis .an-sheet .s-body{font-size:12.5px;color:#B7BEC4;line-height:1.75;word-break:keep-all}
#pg-analysis .an-sheet .s-body b{color:#F2F4F5}
#pg-analysis .an-sheet .an-basis{background:#0F1215;border:1px solid rgba(255,255,255,.07);border-radius:10px;padding:10px 14px;font-size:12px;color:#B7BEC4;line-height:1.7}
#pg-analysis .an-sheet .an-basis .k{color:#7C868E}
#pg-analysis .an-sheet table{border-collapse:collapse;width:100%;font-size:12px;margin-top:4px}
#pg-analysis .an-sheet th{font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#7C868E;text-align:left;padding:7px 8px;border-bottom:1px solid rgba(255,255,255,.1)}
#pg-analysis .an-sheet td{padding:7px 8px;border-bottom:1px solid rgba(255,255,255,.05);color:#C4CAD2;font-variant-numeric:tabular-nums}
#pg-analysis .an-sheet td.r,#pg-analysis .an-sheet th.r{text-align:right}
#pg-analysis .an-sheet .s-where{display:flex;flex-wrap:wrap;gap:6px}
#pg-analysis .an-sheet .s-where span{font-size:11px;font-weight:700;border-radius:999px;padding:3px 10px;background:rgba(91,139,247,.12);color:#8FB0FF;border:1px solid rgba(91,139,247,.25)}
#pg-analysis .an-sheet .s-close{width:100%;margin-top:20px;padding:12px;border-radius:10px;border:0;background:var(--accent,#5B8BF7);color:#fff;font-size:13.5px;font-weight:800;cursor:pointer;font-family:inherit}
@media (prefers-reduced-motion:reduce){#pg-analysis .an-sheet,#pg-analysis .an-dim,#pg-analysis .an-card{transition:none}}

/* ══ R108 (2026-09-03): 전 페이지 전수조사(사장님 지시) — 인라인 폰트 12px 하한 매핑 확대(R70 패턴). 렌더 예외 4종(A4·폰 목업·.fc·SVG attr)은 인라인 style 미사용이라 비영향 ══ */
#pg-personnel [style*="font-size:8px"],#pg-personnel [style*="font-size:9px"],#pg-personnel [style*="font-size:9.5px"],#pg-personnel [style*="font-size:10px"],#pg-personnel [style*="font-size:10.5px"],#pg-personnel [style*="font-size:11px"],#pg-personnel [style*="font-size:11.5px"]{font-size:12px!important}
#pg-settings [style*="font-size:8px"],#pg-settings [style*="font-size:9px"],#pg-settings [style*="font-size:9.5px"],#pg-settings [style*="font-size:10px"],#pg-settings [style*="font-size:10.5px"],#pg-settings [style*="font-size:11px"],#pg-settings [style*="font-size:11.5px"]{font-size:12px!important}
#pg-analysis [style*="font-size:8px"],#pg-analysis [style*="font-size:9px"],#pg-analysis [style*="font-size:9.5px"],#pg-analysis [style*="font-size:10px"],#pg-analysis [style*="font-size:10.5px"],#pg-analysis [style*="font-size:11px"],#pg-analysis [style*="font-size:11.5px"]{font-size:12px!important}
#pg-delivery [style*="font-size:8px"],#pg-delivery [style*="font-size:9px"],#pg-delivery [style*="font-size:9.5px"],#pg-delivery [style*="font-size:10px"],#pg-delivery [style*="font-size:10.5px"],#pg-delivery [style*="font-size:11px"],#pg-delivery [style*="font-size:11.5px"]{font-size:12px!important}
#pg-debt [style*="font-size:8px"],#pg-debt [style*="font-size:9px"],#pg-debt [style*="font-size:9.5px"],#pg-debt [style*="font-size:10px"],#pg-debt [style*="font-size:10.5px"],#pg-debt [style*="font-size:11px"],#pg-debt [style*="font-size:11.5px"]{font-size:12px!important}
#pg-intel [style*="font-size:8px"],#pg-intel [style*="font-size:9px"],#pg-intel [style*="font-size:9.5px"],#pg-intel [style*="font-size:10px"],#pg-intel [style*="font-size:10.5px"],#pg-intel [style*="font-size:11px"],#pg-intel [style*="font-size:11.5px"]{font-size:12px!important}
#pg-stock [style*="font-size:8px"],#pg-stock [style*="font-size:9px"],#pg-stock [style*="font-size:9.5px"],#pg-stock [style*="font-size:10px"],#pg-stock [style*="font-size:10.5px"],#pg-stock [style*="font-size:11px"],#pg-stock [style*="font-size:11.5px"]{font-size:12px!important}
#pg-legal [style*="font-size:8px"],#pg-legal [style*="font-size:9px"],#pg-legal [style*="font-size:9.5px"],#pg-legal [style*="font-size:10px"],#pg-legal [style*="font-size:10.5px"],#pg-legal [style*="font-size:11px"],#pg-legal [style*="font-size:11.5px"]{font-size:12px!important}
#pg-fin-dashboard [style*="font-size:8px"],#pg-fin-dashboard [style*="font-size:9px"],#pg-fin-dashboard [style*="font-size:9.5px"],#pg-fin-dashboard [style*="font-size:10px"],#pg-fin-dashboard [style*="font-size:10.5px"],#pg-fin-dashboard [style*="font-size:11px"],#pg-fin-dashboard [style*="font-size:11.5px"]{font-size:12px!important}
#pg-taekbae [style*="font-size:8px"],#pg-taekbae [style*="font-size:9px"],#pg-taekbae [style*="font-size:9.5px"],#pg-taekbae [style*="font-size:10px"],#pg-taekbae [style*="font-size:10.5px"],#pg-taekbae [style*="font-size:11px"],#pg-taekbae [style*="font-size:11.5px"]{font-size:12px!important}
#pg-briefing [style*="font-size:8px"],#pg-briefing [style*="font-size:9px"],#pg-briefing [style*="font-size:9.5px"],#pg-briefing [style*="font-size:10px"],#pg-briefing [style*="font-size:10.5px"],#pg-briefing [style*="font-size:11px"],#pg-briefing [style*="font-size:11.5px"]{font-size:12px!important}
#pg-team-sales [style*="font-size:8px"],#pg-team-sales [style*="font-size:9px"],#pg-team-sales [style*="font-size:9.5px"],#pg-team-sales [style*="font-size:10px"],#pg-team-sales [style*="font-size:10.5px"],#pg-team-sales [style*="font-size:11px"],#pg-team-sales [style*="font-size:11.5px"]{font-size:12px!important}
#pg-team-accounting [style*="font-size:8px"],#pg-team-accounting [style*="font-size:9px"],#pg-team-accounting [style*="font-size:9.5px"],#pg-team-accounting [style*="font-size:10px"],#pg-team-accounting [style*="font-size:10.5px"],#pg-team-accounting [style*="font-size:11px"],#pg-team-accounting [style*="font-size:11.5px"]{font-size:12px!important}
#pg-team-warehouse [style*="font-size:8px"],#pg-team-warehouse [style*="font-size:9px"],#pg-team-warehouse [style*="font-size:9.5px"],#pg-team-warehouse [style*="font-size:10px"],#pg-team-warehouse [style*="font-size:10.5px"],#pg-team-warehouse [style*="font-size:11px"],#pg-team-warehouse [style*="font-size:11.5px"]{font-size:12px!important}
#pg-team-shipping [style*="font-size:8px"],#pg-team-shipping [style*="font-size:9px"],#pg-team-shipping [style*="font-size:9.5px"],#pg-team-shipping [style*="font-size:10px"],#pg-team-shipping [style*="font-size:10.5px"],#pg-team-shipping [style*="font-size:11px"],#pg-team-shipping [style*="font-size:11.5px"]{font-size:12px!important}
#pg-team-intel [style*="font-size:8px"],#pg-team-intel [style*="font-size:9px"],#pg-team-intel [style*="font-size:9.5px"],#pg-team-intel [style*="font-size:10px"],#pg-team-intel [style*="font-size:10.5px"],#pg-team-intel [style*="font-size:11px"],#pg-team-intel [style*="font-size:11.5px"]{font-size:12px!important}
#pg-team-planning [style*="font-size:8px"],#pg-team-planning [style*="font-size:9px"],#pg-team-planning [style*="font-size:9.5px"],#pg-team-planning [style*="font-size:10px"],#pg-team-planning [style*="font-size:10.5px"],#pg-team-planning [style*="font-size:11px"],#pg-team-planning [style*="font-size:11.5px"]{font-size:12px!important}
#pg-team-legal [style*="font-size:8px"],#pg-team-legal [style*="font-size:9px"],#pg-team-legal [style*="font-size:9.5px"],#pg-team-legal [style*="font-size:10px"],#pg-team-legal [style*="font-size:10.5px"],#pg-team-legal [style*="font-size:11px"],#pg-team-legal [style*="font-size:11.5px"]{font-size:12px!important}
#pg-team-marketing [style*="font-size:8px"],#pg-team-marketing [style*="font-size:9px"],#pg-team-marketing [style*="font-size:9.5px"],#pg-team-marketing [style*="font-size:10px"],#pg-team-marketing [style*="font-size:10.5px"],#pg-team-marketing [style*="font-size:11px"],#pg-team-marketing [style*="font-size:11.5px"]{font-size:12px!important}
#pg-team-labor [style*="font-size:8px"],#pg-team-labor [style*="font-size:9px"],#pg-team-labor [style*="font-size:9.5px"],#pg-team-labor [style*="font-size:10px"],#pg-team-labor [style*="font-size:10.5px"],#pg-team-labor [style*="font-size:11px"],#pg-team-labor [style*="font-size:11.5px"]{font-size:12px!important}
#pg-team-director [style*="font-size:8px"],#pg-team-director [style*="font-size:9px"],#pg-team-director [style*="font-size:9.5px"],#pg-team-director [style*="font-size:10px"],#pg-team-director [style*="font-size:10.5px"],#pg-team-director [style*="font-size:11px"],#pg-team-director [style*="font-size:11.5px"]{font-size:12px!important}
