/* ══════════════════════════════════════════════════════════════
   현장 비서 — 전산(ERP) 테마          ※ mkerp.py가 만든 파일입니다
   손으로 고치지 말고 mkerp.py를 고쳐 다시 만드세요.
   손으로 덧붙이면 같은 셀렉터가 여러 번 적혀(한때 58군데) 어느 줄이
   진짜인지 알 수 없게 됩니다.

   하는 일
     각 화면의 <style> 뒤에 덧씌워 생김새만 바꾼다. 칸 배치와 본문
     글자 크기는 건드리지 않는다 — 배치를 손대면 360px에서 어디가
     터지는지 전수로 다시 봐야 한다.

   전산 화면이 전산처럼 보이는 이유 (따라한 것)
     (1) 모서리가 각지다        (2) 그림자가 없다
     (3) 숫자 자리수가 맞는다   (4) 머리줄이 회색 띠다
     (5) 표에 격자선이 있다     (6) 색이 번지지 않는다
   ══════════════════════════════════════════════════════════════ */

/* ── 바탕·선·색 ───────────────────────────────────────────────
   화면마다 이름이 다른 변수를 한 번에 맞춘다. 이 파일이 각 화면
   <style> 뒤에 오므로 같은 :root라도 이쪽이 이긴다. */
:root{
  --bg:#EEF1F4; --paper:#EEF1F4; --card:#FFFFFF;
  --line:#DDE2E7; --line2:#EDF0F3;
  --ink:#141A21; --ink2:#2C3540; --sub:#5A646F; --muted:#5A646F; --faint:#8A939E;
  --soft:#EEF2F4; --onsoft:#2C3540; /* --gray는 덮지 않는다: 화면마다 뜻이 달라(5곳은 글자색, 6곳은 바탕색) 한 값으로 덮으면 글자가 바탕에 묻힌다 */
  --green-bg:#EFF4F1; --gsoft:#EFF4F1; --blue-bg:#EDF1F4;
  --rsoft:#FBF0EF; --asoft:#FAF4EA;
  --r:3px; --rs:2px; --rm:3px; --rl:3px; --r-sm:2px;
}
/* 숫자 자리수를 세로로 맞춘다 — 본수·톤수·금액을 눈으로 비교하는 앱이다 */
body{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;}

/* ── 판·칩 모서리 (손으로 쓰는 기본값) ───────────────────────── */
.card,.rcard,.note,.refbox,.copybar,.stk,.tb,.doc,.empty,.hero,
.search,.gb,.kpi,.stat,.cmp,.pc,.rw,.stq,.mrow,.total-row,.disc-b,
table,pre,details,.main,.row,.list,.plate,.sheet,.mgrid,.lockmsg,.panel,.box
{border-radius:3px !important;}
.chip,.rchip,.tag,.bdg,.fchip,.btn,.more,.st,.gr,
button,input,select,textarea,a.btn,.tabs button,.secnav button,.mtab
{border-radius:2px !important;}
/* 둥근 게 의미인 것은 되돌린다 */
.rbar,.rbar i,.hbar,.hbar i,.bar,.bar i,.dot{border-radius:999px !important;}

/* ── 그림자 대신 선 ──────────────────────────────────────────── */
/* [26.11.13 부장님] "줄이 쳐져 있다" — 여기 .mt·.item 이 들어 있었다.
   .mt 는 판이 아니라 화면마다 다른 뜻의 글자 줄(홈 메뉴 이름, 팀실적 거래처 보조줄)이고
   .item 은 목록의 한 줄이다. 판 테두리를 씌우니 글자에 상자가 둘러지고 줄마다 카드가 됐다.
   이 규칙에는 '혼자 서는 판'만 넣는다. 목록의 줄·글자 줄은 넣지 않는다. */
.card,.rcard,.note,.refbox,.copybar,.tb,.doc,.search,.gb,
.kpi,.stat,.cmp,.pc,.stq{box-shadow:none !important;border:1px solid var(--line);}
.secnav{box-shadow:0 1px 0 var(--line) !important;}

/* ── 머리줄·표 ───────────────────────────────────────────────── */
.card-title{
  background:#F4F6F8;margin:-12px -13px 10px !important;padding:8px 13px !important;
  border-bottom:1px solid var(--line);border-radius:2px 2px 0 0;
  font-size:11.5px !important;letter-spacing:.6px !important;color:#48525E !important;
}
.sec-h{border-left:3px solid var(--ink);padding-left:8px;margin:12px 2px 7px !important;}
.sec-h b{letter-spacing:0 !important;font-size:inherit !important;}
table{border-collapse:collapse !important;}
th{background:#3F7FC9 !important;border-bottom:1px solid #2F69AD !important;
   border-right:1px solid #5C95D6;color:#fff !important;font-weight:700 !important;letter-spacing:.3px;}
td{border-bottom:1px solid var(--line2);}

/* ── 밀도 (글자는 줄이지 않는다 — 부장님 지시) ────────────────── */
.card{padding:12px 13px !important;margin-bottom:8px !important;}
.rcard{padding:9px 10px !important;}
.wrap,.app{padding-left:12px !important;padding-right:12px !important;}
.hero{padding:14px 14px 12px !important;}
.hrail,.tabs,.secnav{gap:5px !important;}
.tabs{margin-bottom:8px !important;}
.rcard .rv{font-size:17px !important;}
.card + .card,.item + .item{margin-top:6px !important;}
input,select,textarea{background:#fff !important;border-color:#C9D1D8 !important;}

/* ── 화면 제목 — 머리줄이 이름을 달고 있으니 본문 제목은 줄인다 ── */
h1,.page-title,.hd-title{font-size:16px !important;letter-spacing:-.01em !important;
  margin-bottom:3px !important;line-height:1.35 !important;}
h1 b,.page-title b,.hd-title b,.ttl b{font-size:inherit !important;}
.page-sub,.sub,.subtitle{font-size:11.5px !important;line-height:1.5 !important;}
.back{font-size:12px !important;margin-bottom:8px !important;}
.chev,.bc-chev,.ch{font-size:13px !important;color:#9AA3AE !important;}

/* ── 너무 작은 글자만 올린다 (작게 만들지 않는다) ──────────────── */
.rcard .rs,.rchip .t,.raillb,.hint,.foot,.stk small{
  font-size:11px !important;line-height:1.55 !important;}

/* ── 이모지 지운 자리 — 빈 아이콘 칸은 접는다 ─────────────────── */
.mi:empty,.ic:empty,.bc-ic:empty,.mtile .mi:empty,.link .ic:empty,
.fs .n:empty,.ct:empty,.tag:empty{display:none !important;}
.mtile,.link{gap:9px !important;}

/* ── 상태 마커 — 색 동그라미 이모지를 대신한다 ────────────────── */
.erp-sq{display:inline-block;width:9px;height:9px;border-radius:2px;
  vertical-align:-1px;margin-right:5px;flex:0 0 auto;}
.erp-sq.r{background:#BF2F2A} .erp-sq.o{background:#B54708} .erp-sq.y{background:#9A7B16}
.erp-sq.g{background:#0E7A48} .erp-sq.b{background:#1F4E79} .erp-sq.k{background:#2C3540}
.erp-sq.w{background:#fff;border:1px solid #C9D1D8} .erp-sq.p{background:#5B4B8A}
.erp-sq.n{background:#6B5444}
/* 흐린 배지 대비 — 테마에서 배경을 중성색으로 낮추면서 흰 글자 배지가 안 보이게 됐다 */
.tag.solo,.tag.mkt,.bdg.none{background:#EDF1F4 !important;color:#48525E !important;border:1px solid #D5DBE1;}

/* ══ 전산 틀 (erp.js가 세운다) ═══════════════════════════════════
   [26.11.12 부장님] 더존 화면처럼 — 왼쪽 트리 메뉴 · 위쪽 탭 줄 · 파란 격자 머리.
   색은 업무 프로그램의 파랑 한 가지(#1F5FA8 계열)로 모은다.
   z-index는 화면의 PIN 창(100)보다 낮게 둔다 — 틀이 창을 덮으면 안 된다. */
.erp-bar{position:sticky;top:0;z-index:60;display:flex;align-items:stretch;gap:0;
  height:36px;margin:0 0 10px;background:#E9EDF2;border-bottom:1px solid #B9C4D0;
  font-size:12px;font-weight:700;color:#2C3540;min-width:0;white-space:nowrap;overflow:hidden;}
.erp-bar .mn{flex:0 0 42px;border:0;border-radius:0 !important;background:#1F5FA8;color:#fff;
  font-size:16px;font-family:inherit;cursor:pointer;}
.erp-bar .scr{display:flex;align-items:center;padding:0 12px;font-weight:800;color:#141A21;
  min-width:0;overflow:hidden;text-overflow:ellipsis;}
.erp-bar .tabs{display:none;align-items:flex-end;gap:2px;padding:0 6px;min-width:0;overflow:hidden;}
.erp-bar .tb{display:inline-flex;align-items:center;gap:6px;height:29px;padding:0 10px;
  background:#F7F9FB;border:1px solid #B9C4D0;border-bottom:0;border-radius:3px 3px 0 0;
  color:#48525E;text-decoration:none;font-size:12px;font-weight:700;}
.erp-bar .tb a{color:inherit;text-decoration:none;}
.erp-bar .tb.on{background:#5B6B7D;border-color:#5B6B7D;color:#fff;}
.erp-bar .tb .x{border:0;background:none;padding:0 0 1px;color:inherit;opacity:.7;
  font-size:14px;line-height:1;font-family:inherit;cursor:pointer;}
.erp-bar .ao{margin-left:auto;display:flex;align-items:center;padding:0 12px;flex:0 0 auto;
  color:#5A646F;font-weight:700;font-size:11px;font-variant-numeric:tabular-nums;}
body>.wrap:first-of-type,body>.app:first-of-type{padding-top:0 !important;}
.erp-bar + *{margin-top:0 !important;}

/* 왼쪽 트리 메뉴 — 폰에서는 옆에서 나오는 서랍, PC에서는 늘 붙어 있다 */
.erp-side{position:fixed;top:0;left:0;bottom:0;width:232px;z-index:70;background:#fff;
  border-right:1px solid #B9C4D0;display:flex;flex-direction:column;
  transform:translateX(-100%);transition:transform .16s ease-out;}
body.erp-open .erp-side{transform:none;}
.erp-dim{position:fixed;inset:0;z-index:65;background:rgba(20,26,33,.45);display:none;}
body.erp-open .erp-dim{display:block;}
.erp-side .hd{flex:0 0 auto;display:flex;align-items:center;gap:6px;height:44px;padding:0 12px;
  background:#1F5FA8;color:#fff;}
.erp-side .hd b{font-size:14px;font-weight:800;letter-spacing:.2px;}
.erp-side .hd span{font-size:12px;font-weight:700;opacity:.85;}
.erp-side .hd .cl{margin-left:auto;border:0;background:none;color:#fff;font-size:20px;
  line-height:1;font-family:inherit;cursor:pointer;padding:4px 6px;}
.erp-side .cap{flex:0 0 auto;padding:9px 12px 7px;font-size:13px;font-weight:800;color:#141A21;
  border-bottom:1px solid #DDE2E7;}
.erp-ft{flex:0 0 auto;border-top:1px solid var(--line);padding:8px 12px 10px;background:#F7F9FA;}
.erp-ft .ver{font-size:11.5px;font-weight:800;color:#2B4A6B;font-variant-numeric:tabular-nums;word-break:break-all;}
.erp-ft .tip{margin-top:4px;font-size:11px;line-height:1.45;color:#68717E;}
.erp-ft .tip:empty{display:none;}
.erp-ft .ins{display:block;width:100%;margin-top:6px;padding:8px;border:1px solid #1F4E79;border-radius:2px;
  background:#1F4E79;color:#fff;font-size:12.5px;font-weight:800;font-family:inherit;cursor:pointer;}
.erp-ft .ins[hidden]{display:none;}
.erp-tree{flex:1 1 auto;overflow-y:auto;padding:6px 0 16px;-webkit-overflow-scrolling:touch;}
.erp-tree .it{display:block;padding:6px 12px 6px 40px;font-size:12.5px;font-weight:600;
  color:#232B34;text-decoration:none;position:relative;line-height:1.4;}
.erp-tree .it::before{content:"";position:absolute;left:24px;top:8px;width:9px;height:11px;
  border:1px solid #7E8C9B;background:#fff;border-radius:1px;}
.erp-tree .it.home{padding-left:28px;font-weight:800;}
.erp-tree .it.home::before{left:12px;}
.erp-tree .it.on{background:#1E6FD0;color:#fff;}
.erp-tree .fh{display:flex;align-items:center;gap:6px;width:100%;padding:6px 12px;border:0;
  background:none;font-family:inherit;font-size:12.5px;font-weight:800;color:#141A21;
  text-align:left;cursor:pointer;border-radius:0 !important;}
.erp-tree .fh i{width:0;height:0;border-left:5px solid #48525E;border-top:4px solid transparent;
  border-bottom:4px solid transparent;transition:transform .12s;flex:0 0 auto;}
.erp-tree .fd.open>.fh i{transform:rotate(90deg);}
.erp-tree .fb{display:none;}
.erp-tree .fd.open>.fb{display:block;}
.erp-tree .msg{padding:10px 12px;font-size:11.5px;color:#68717E;font-weight:600;line-height:1.6;}
.erp-tree .msg a{color:#1F5FA8;font-weight:800;}

/* PC — 트리는 늘 붙어 있고, 위는 탭 줄, 본문은 왼쪽 정렬로 넓게 */
@media (min-width:1024px){
  body.erp-shell{padding-left:232px;}
  .erp-side{transform:none;}
  .erp-side .hd .cl,.erp-dim{display:none !important;}
  .erp-bar .mn,.erp-bar .scr{display:none;}
  .erp-bar .tabs{display:flex;}
  /* [26.11.13 부장님] "여백이 심하다" — 창을 끝까지 채우니 이름은 왼쪽 끝, 숫자는 오른쪽 끝으로 벌어졌다.
     표는 1280px까지만 넓히고(한 줄을 눈으로 따라갈 수 있는 폭), 홈은 그 폭을 칸으로 나눠 쓴다. */
  .wrap,.app{max-width:1280px !important;margin-left:0 !important;margin-right:0 !important;
    padding-left:20px !important;padding-right:20px !important;}
  /* 홈: 현황 요약과 연락 거래처를 나란히, 메뉴는 3칸 */
  #dashboard{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:10px;align-items:start;}
  #dashboard.locked{display:none;}
  #dashboard .etbl{margin:0;}
  /* 팀실적 거래처 목록: 이름 · 보조줄 · 등급 · 톤수를 한 줄에 */
  .item .mid{display:flex;align-items:baseline;gap:14px;}
  .item .mid .nm{flex:0 0 250px;}
  .item .mid .mt{flex:1 1 auto;margin-top:0;font-size:12px;}
  .item .rt{flex-direction:row !important;align-items:center !important;gap:6px;}
  .item .rt .gr{margin-top:0 !important;}
  .item .rt .kg{order:9;min-width:74px;text-align:right;}
}

/* 목록의 한 줄(.item) — 카드가 아니라 선으로만 나눈다. 판 테두리는 목록(.list)이 한 번만 가진다 */
.list>.item{border:0 !important;border-bottom:1px solid var(--line2) !important;border-radius:0 !important;margin:0 !important;background:#fff;}
.list>.item:last-child{border-bottom:0 !important;}
.item .mt{border:0 !important;}

/* 홈 메뉴 — 타일·검은 카드 대신 전산 목록 한 줄씩 */
.brief-card{background:#fff !important;border:1px solid var(--line) !important;border-radius:3px !important;
  padding:10px 12px !important;margin-top:6px !important;box-shadow:none !important;}
.brief-card .bc-mid b{color:#141A21 !important;font-size:13.5px !important;}
.brief-card .bc-mid i{color:#68717E !important;}
.mgrid{display:block !important;border:1px solid var(--line);background:#fff;}
.mtile{display:flex !important;align-items:baseline;gap:10px;padding:9px 12px !important;
  border:0 !important;border-bottom:1px solid var(--line2) !important;background:#fff !important;
  border-radius:0 !important;}
.mgrid>a.mtile:last-child{border-bottom:0 !important;}
.mtile .mt{display:flex !important;align-items:baseline;gap:10px;min-width:0;flex:1;}
.mtile .mt b{flex:0 0 auto;font-size:13px !important;}
.mtile .mt em{flex:1 1 auto;min-width:0;text-align:right;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;}
.mtab.on{background:#1F5FA8 !important;border-color:#1F5FA8 !important;color:#fff !important;}
.mtile{min-height:0 !important;}
.mgrid>a.mtile:last-child:nth-child(odd){grid-column:auto !important;}
/* PC — 메뉴는 4칸 격자, 표는 줄 간격을 조금 좁힌다(넓은 화면에서 줄이 듬성듬성해 보이지 않게) */
@media (min-width:1024px){
  .mgrid{display:grid !important;grid-template-columns:repeat(4,minmax(0,1fr));}
  .mgrid>a.mtile{border-right:1px solid var(--line2) !important;border-bottom:1px solid var(--line2) !important;}
  .mgrid>a.mtile:nth-child(4n){border-right:0 !important;}
  .mtile .mt{display:block !important;}
  .mtile .mt em{display:block;text-align:left;margin-top:1px;}
  .etbl td{padding-top:6px !important;padding-bottom:6px !important;}
  .brief-card{padding:8px 12px !important;}
}

/* ── 발주서 재고 기준일시 줄 ──────────────────────────────────
   flex라서 '가용재고 기준' / 날짜 / 안내문이 각각 독립 항목이 되어
   좁은 폭에서 "2026-" / "11-02"처럼 날짜 한가운데가 접혔다.
   한 줄 글로 되돌려 자연스럽게 넘어가게 한다. */
.stk-asof{display:block !important;line-height:1.7;}
.stk-asof .dot{display:inline-block;margin-right:5px;vertical-align:1px;}
.stk-asof b{white-space:nowrap;}

/* ── 발주 입력부 — 조회 조건 입력칸처럼 촘촘하게 ─────────────── */
label.field-label{font-size:11px !important;margin-top:8px !important;margin-bottom:3px !important;
  letter-spacing:.3px !important;}
.card input,.card select,.card textarea{padding:8px 10px !important;font-size:13.5px !important;}

/* ── 뿌연 효과 제거 ─────────────────────────────────────────
   [26.11.04 부장님] "메뉴가 흐리게 보이면 안 된다"
   PIN 창이 열릴 때 뒤 화면에 backdrop-filter:blur(3px)가 걸려 있었다.
   메뉴 글자가 뭉개져 무슨 메뉴인지 안 읽힌다. 업무 프로그램은 뒤를
   흐리게 하지 않는다 — 어둡게만 덮는다. */
.modal{backdrop-filter:none !important;-webkit-backdrop-filter:none !important;
  background:rgba(20,26,33,.62) !important;}

/* ── 오늘 현황 숫자 — 단위와 설명을 같이 ────────────────────── */
.stat-sub{font-size:11px;color:#8A939E;font-weight:700;padding:0 0 8px;line-height:1.5;}
.stat .nums .n u{text-decoration:none;font-size:11px;font-weight:800;color:#8A939E;margin-left:2px;}
.stat .nums .n i{font-style:normal;display:block;font-size:10.5px;line-height:1.45;}

/* ── 눌려 담긴 줄 펴기 ────────────────────────────────────────
   brief.html 자료기준일 줄이 "판 / 매  2026-10- / 30" 처럼 글자 단위로
   접혀 있었다. summary가 display:flex라 '판매'·날짜·'· 수금'이 각각
   독립된 flex 항목이 되어 따로 줄바꿈된 것이다(테마와 무관한 기존 버그). */
.dfresh1>summary{display:block !important;position:relative;padding-right:54px !important;line-height:1.7;}
.dfresh1 .dmore{position:absolute;right:13px;top:10px;margin-left:0 !important;}

/* ── 가로 짤림 방지 (프로젝트 규칙) ───────────────────────────── */
.card,.rcard,.copybar,.item,.tb,.hero,.stk{max-width:100%;}
.card>*,.item>*,.stk>*{min-width:0;}

/* ══ 전산 조회표 — 화면을 '카드 더미'에서 '표'로 바꿀 때 쓰는 부품 ══
   라벨:값이 줄줄이 붙어 있는 모양이 전산 조회창이다.
   팀실적·재고판정·거래처등급이 이걸 쓴다. */
.etbl{width:100%;border:1px solid var(--line);border-radius:3px;background:#fff;overflow:hidden;}
.etbl-h{display:flex;align-items:center;gap:8px;padding:7px 10px;background:#E3EDF8;
  border-bottom:1px solid var(--line);font-size:11px;font-weight:800;letter-spacing:.5px;color:#2C3540;}
.etbl-h .cnt{margin-left:auto;font-weight:800;color:#48525E;font-variant-numeric:tabular-nums;}
.etbl table{width:100%;border-collapse:collapse;font-size:12px;}
/* 머리줄을 화면에 붙여 두려고 sticky를 썼었는데, .etbl이 overflow:hidden이라
   표 안에서 36px 내려앉아 첫 줄을 덮었다(머리줄이 자료 위에 떠 보였다). 붙이지 않는다. */
.etbl th{background:#3F7FC9;padding:6px 8px;
  font-size:11px;font-weight:700;color:#fff;letter-spacing:.3px;
  border-bottom:1px solid #2F69AD;text-align:left;white-space:nowrap;}
.etbl td{padding:7px 8px;border-bottom:1px solid var(--line2);color:#1C232B;
  font-weight:700;line-height:1.4;}
.etbl tr:nth-child(even) td{background:#FAFBFC;}
.etbl td.num,.etbl th.num{text-align:right;font-variant-numeric:tabular-nums;}
.etbl td.nm{font-weight:800;}
.etbl td small{display:block;font-size:10.5px;color:#8A939E;font-weight:700;margin-top:1px;}
.etbl .bad{color:#BF2F2A;font-weight:800;}
.etbl .warn{color:#B54708;font-weight:800;}
.etbl .ok{color:#0E7A48;font-weight:800;}
.etbl tr.click{cursor:pointer;}
.etbl tr.click:active td{background:#EDF1F4;}
.etbl-s div.click{cursor:pointer;}
/* 요약줄을 표 밖에 단독으로 쓸 때 (hero 자리) — 테두리를 스스로 갖는다 */
.hero > .etbl-s,#hero > .etbl-s{border:1px solid var(--line);border-top:0;background:#fff;}
/* hero 자리에 요약줄을 넣을 때 — 원래 hero는 자기만의 flex/grid를 갖고 있어
   그대로 두면 요약줄이 그 격자의 '한 칸'으로 끼여 폭이 안 찬다(오른쪽이 빈다).
   블록으로 되돌려 요약줄이 한 줄을 통째로 쓰게 한다. */
#hero{display:block !important;background:#fff !important;padding:0 !important;
  border:1px solid var(--line);gap:0 !important;}
#hero .etbl-s{border:0;}
#hero .etbl-s .k{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.etbl-s .v.bad{color:#BF2F2A;} .etbl-s .v.warn{color:#B54708;} .etbl-s .v.ok{color:#0E7A48;}
.etbl-s div.click:active{background:#EDF1F4;}
.etbl-s{display:flex;gap:0;border-top:1px solid var(--line);background:#F7F9FA;}
.etbl-s div{flex:1 1 0;min-width:0;padding:7px 8px;border-right:1px solid var(--line2);}
.etbl-s div:last-child{border-right:0;}
.etbl-s .k{font-size:10px;font-weight:800;color:#8A939E;letter-spacing:.3px;}
.etbl-s .v{font-size:14px;font-weight:800;color:#141A21;font-variant-numeric:tabular-nums;margin-top:1px;}
.etbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
/* 상세 펼치기 표시 — 누르면 보조줄이 열린다 */
.etbl .erp-tg{display:inline-block;width:13px;color:#8A939E;font-weight:800;font-size:10px;}
.etbl tr.click td{cursor:pointer;}

/* 조회표 검색줄 — 표마다 자동으로 붙는다 */
.etbl-find{display:flex;align-items:center;gap:6px;padding:6px 8px;background:#F7F9FA;
  border-bottom:1px solid var(--line);}
.etbl-find input{flex:1 1 auto;min-width:0;padding:7px 9px !important;border:1px solid #C9D1D8;
  border-radius:2px;font-size:12.5px !important;font-family:inherit;background:#fff;color:#141A21;}
.etbl-find input:focus{outline:none;border-color:#1F4E79;}
.etbl-clr{flex:0 0 auto;padding:7px 9px;border:1px solid #C9D1D8;border-radius:2px;
  background:#fff;color:#48525E;font-size:11.5px;font-weight:800;font-family:inherit;cursor:pointer;}
.etbl-fc{flex:0 0 auto;font-size:11px;font-weight:800;color:#5A646F;
  font-variant-numeric:tabular-nums;white-space:nowrap;}
.etbl-fc.zero{color:#BF2F2A;}
.etbl-none{padding:14px 10px;text-align:center;font-size:12px;font-weight:700;color:#8A939E;
  border-top:1px solid var(--line2);}

/* 조회 버튼 방식 — 화면을 열면 조건부만 보이고, [조회]를 눌러야 결과가 뜬다(더존 조회창과 같은 순서).
   결과는 패널 뒤에 오는 형제들이다. 대기 중에는 안내 한 줄만 남긴다. */
.cond-btns{display:flex;gap:6px;flex:0 0 auto;}
.cond-go{padding:5px 16px;border:1px solid #1F4E79;border-radius:2px;background:#1F4E79;color:#fff;
  font-size:12px;font-weight:800;font-family:inherit;cursor:pointer;}
.cond-al{padding:5px 11px;border:1px solid #BF2F2A;border-radius:2px;background:#fff;color:#BF2F2A;
  font-size:12px;font-weight:800;font-family:inherit;cursor:pointer;white-space:nowrap;}
.cond-h{flex-wrap:wrap;row-gap:5px;}
.cond-hint.warn{border-color:#BF2F2A;color:#BF2F2A;}
.cond-hint.warn b{color:#BF2F2A;}
.cond-hint{display:none;margin:0 0 10px;padding:22px 12px;border:1px dashed #B9C4CF;background:#fff;
  text-align:center;font-size:13px;font-weight:700;color:#5A6673;line-height:1.6;}
.cond-hint b{color:#1F4E79;}
body.cond-wait .cond-hint{display:block;}
body.cond-wait .cond ~ *:not(.cond-hint){display:none !important;}
.cond-emp{display:none !important;}

/* 표의 칸을 폭에 따라 접는다 — 폰은 이름 아래 한 줄(.c-mo), PC는 칸으로(.c-pc) */
.etbl .c-pc{display:none;}
.etbl small.c-mo{display:block;font-size:11.5px;font-weight:600;color:#7A8591;line-height:1.4;margin-top:1px;white-space:normal;}
@media (min-width:760px){
  .etbl .c-pc{display:table-cell;}
  .etbl small.c-mo{display:none;}
}
.etbl tr.det .detail{display:block !important;padding:6px 0 4px !important;max-width:760px;}

/* 홈 현황판 — 줄마다 [구분 · 현재 값 · 자료 기준일]. 낡은 자료는 기준일 칸이 붉게 뜬다. */
#dashboard{border:0 !important;background:none !important;padding:0 !important;margin:0 0 10px !important;overflow:visible !important;}
#dashboard .etbl{margin:0 0 10px;}
#dashboard .etbl:empty{display:none;}
#dashboard td{vertical-align:middle;}
#dashboard td small{display:block;font-size:11.5px;font-weight:600;color:#7A8591;line-height:1.4;margin-top:1px;white-space:normal;}
#dashboard td.nm{font-weight:800;}
#homeSum table{table-layout:fixed;width:100%;}
#homeSum th:nth-child(2){width:39%;} #homeSum th:nth-child(3){width:86px;}
#dashboard td.num b{white-space:nowrap;}
#dashboard td.nm{white-space:normal;word-break:keep-all;}
#dashboard td.num b{font-size:16px;font-weight:800;color:#1B232C;}
#dashboard td.num b.ok{color:#0E7A48;} #dashboard td.num b.bad{color:#BF2F2A;}
#dashboard td.src{white-space:normal;font-size:12px;font-weight:700;color:#3A4450;}
#dashboard td.src small.old{color:#BF2F2A;font-weight:800;}
#dashboard th.num{text-align:right;}

/* 조회조건 패널 — 라벨 칸(연파랑) + 입력 칸 격자. erp.js가 화면의 칩·탭·검색창을 여기로 모은다.
   원래 칩·탭(.cond-src)은 숨기되 DOM에는 남긴다 — 패널이 그 버튼을 대신 눌러 준다. */
.cond-src{display:none !important;}
.cond{margin:0 0 10px;border:1px solid #AEBFD2;background:#fff;border-radius:3px;overflow:hidden;}
.cond-h{display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:5px 8px 5px 10px;background:#DCE7F3;border-bottom:1px solid #AEBFD2;}
.cond-h b{font-size:12px;font-weight:800;color:#1F4E79;letter-spacing:.4px;}
.cond-rs{flex:0 0 auto;padding:5px 11px;border:1px solid #9FB3C8;border-radius:2px;background:#fff;
  color:#1F4E79;font-size:11.5px;font-weight:800;font-family:inherit;cursor:pointer;}
.cond-g{display:grid;grid-template-columns:1fr;}
.cr{display:flex;align-items:stretch;min-width:0;border-bottom:1px solid #D5DEE8;}
.cr:last-child{border-bottom:0;}
.ck{flex:0 0 78px;display:flex;align-items:center;padding:0 8px;background:#EAF1F9;
  border-right:1px solid #D5DEE8;font-size:12.5px;font-weight:800;color:#2B4A6B;white-space:nowrap;}
.cv{flex:1 1 auto;min-width:0;padding:5px 6px;display:flex;align-items:center;}
.cv select,.cv input{width:100%;min-width:0;height:38px;padding:0 9px !important;margin:0 !important;
  border:1px solid #B9C4CF !important;border-radius:2px !important;background:#fff !important;
  color:#1B232C !important;font-size:16px !important;font-weight:700;font-family:inherit;box-shadow:none !important;}
.cv select:focus,.cv input:focus{outline:none;border-color:#1F4E79 !important;}
.ctgs{display:flex;flex-wrap:wrap;gap:5px;min-width:0;}
.ctg{padding:7px 11px;border:1px solid #B9C4CF;border-radius:2px;background:#fff;color:#3A4450;
  font-size:13px;font-weight:800;font-family:inherit;cursor:pointer;white-space:nowrap;}
.ctg.on{background:#1F4E79;border-color:#1F4E79;color:#fff;}
@media (min-width:760px){
  .cond-g{grid-template-columns:repeat(2,minmax(0,1fr));}
  .cr{border-right:1px solid #D5DEE8;}
  .cr:nth-child(2n){border-right:0;}
  .ck{flex-basis:92px;}
  .cv select,.cv input{font-size:14px !important;height:34px;}
}

/* 화면 묶음 탭(견적·발주서·생산의뢰) — 둥근 그라데이션 알약 대신 밑줄 탭 */
.ptabs{display:flex;margin:0 0 10px;border-bottom:2px solid #1F4E79;background:#fff;border:1px solid #C9D1D8;border-bottom:2px solid #1F4E79;}
.ptabs a{flex:1 1 0;min-width:0;padding:11px 6px;text-align:center;font-size:13.5px;font-weight:800;color:#48525E;
  text-decoration:none;border-right:1px solid #DDE2E7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ptabs a:last-child{border-right:0;}
.ptabs a.on{background:#1F4E79;color:#fff;}
.hero + .ptabs{border-top:0;}

/* 넓은 화면에서만 보이는 열(.pc) / 좁은 화면에서만 보이는 줄(.mo) */
.etbl .pc{display:none;}
@media (min-width:760px){
  .etbl th.pc,.etbl td.pc{display:table-cell;}
  .etbl span.pc{display:inline;}
  .etbl .mo{display:none;}
}

/* 긴 표의 펼치기 버튼 — 표 아래에 붙는 한 줄 */
.etbl-more{display:block;width:100%;padding:10px;border:0;border-top:1px solid var(--line);
  background:#F4F6F8;color:#1F4E79;font-size:12px;font-weight:800;font-family:inherit;
  cursor:pointer;letter-spacing:.3px;}
.etbl-more:active{background:#E7ECF1;}
.etbl-more.open{color:#5A646F;}
/* 표가 아닌 목록 아래에 단독으로 붙을 때 — 스스로 테두리를 갖는다 */
.etbl-more.standalone{border:1px solid var(--line);border-radius:3px;margin-top:6px;}
.etbl-foot{padding:6px 10px;font-size:10.5px;color:#8A939E;font-weight:700;border-top:1px solid var(--line2);}
/* 열이 많은 표는 칸을 쥐어짜지 않고 격자만 좌우로 민다 —
   전산 조회창이 하는 방식이다. 쥐어짜면 '임/박'처럼 글자가 세로로 접힌다. */
.etbl.wide table{min-width:560px;}
.etbl td .bdg,.etbl td .ok,.etbl td .bad,.etbl td .warn{white-space:nowrap;}
.etbl td.nm{min-width:148px;}
.etbl td.nm small{white-space:normal;}
/* 보조 줄 — 한 항목의 둘째 줄. 윗줄과 한 덩어리로 보이게 선을 없애고
   줄무늬도 윗줄과 맞춘다(안 맞추면 두 항목처럼 보인다). */
.etbl tr.det td{border-bottom:1px solid var(--line);padding:0 8px 7px;
  font-size:10.5px;font-weight:700;color:#6B7580;line-height:1.55;white-space:normal;}
.etbl tr.det td b{font-weight:800;}
.etbl .nowrap{white-space:nowrap;}
.etbl td small .bg,.etbl td small .sgb{font-size:9.5px;padding:1px 4px;}
.etbl tr:nth-child(even) td{background:transparent;}
.etbl tr.det{background:#FAFBFC;}
/* 표 안 구분줄 — 묶음 제목(팀·담당자 그룹)을 한 행으로 쓴다.
   div로 두면 브라우저가 <table> 밖으로 밀어내 표 위에 빈 줄처럼 쌓인다. */
.etbl tr.grp td{background:#EDF1F4 !important;font-size:10.5px;font-weight:800;
  color:#48525E;letter-spacing:.5px;padding:5px 8px;border-bottom:1px solid var(--line);}
.etbl tr.det td{background:#FAFBFC;}


/* ══ 자동 생성 — 화면 CSS에서 뽑은 것 ══════════════════════════
   손으로 고른 게 아니라 각 화면의 <style>과 ui.css에서 실제 값을
   읽어 뽑았다. 그래서 빠진 화면이 없다.
   [중요] 규칙을 한 줄씩 쓴다. CSS는 콤마로 묶은 셀렉터 중 하나만
   틀려도 그 규칙 전체를 버린다 — 191개를 묶었다가 통째로 안 먹은
   적이 있다(화면은 멀쩡해 보이고 모서리만 안 바뀌어 눈치채기 어렵다).
   모서리 176개 · 큰글자 11개 · 그라데이션 43개
   ══════════════════════════════════════════════════════════════ */
.ctl{border-radius:3px !important}
.srch{border-radius:3px !important}
.tab{border-radius:3px !important}
.fchip .fn{border-radius:3px !important}
.dfresh span{border-radius:3px !important}
.dwarn{border-radius:3px !important}
.moreBtn{border-radius:3px !important}
.item{border-radius:3px !important}
.tl-date{border-radius:3px !important}
.tl-body{border-radius:3px !important}
.bn{border-radius:3px !important}
.dfresh1{border-radius:3px !important}
.dgrid span{border-radius:3px !important}
.ic{border-radius:3px !important}
.tel{border-radius:3px !important}
.seg{border-radius:3px !important}
.sg{border-radius:3px !important}
.out{border-radius:3px !important}
.pill{border-radius:3px !important}
.site .s{border-radius:3px !important}
.ds-btn{border-radius:3px !important}
.ds-val{border-radius:3px !important}
.dchip{border-radius:3px !important}
.act{border-radius:3px !important}
.toast{border-radius:3px !important}
.err{border-radius:3px !important}
.why{border-radius:3px !important}
.mtabs{border-radius:3px !important}
.mtb{border-radius:3px !important}
.rrow{border-radius:3px !important}
.rtop .mg{border-radius:3px !important}
.sc{border-radius:3px !important}
.sbox input{border-radius:3px !important}
#mgr{border-radius:3px !important}
.mgrbar{border-radius:3px !important}
.tabs{border-radius:3px !important}
input.s{border-radius:3px !important}
.badge{border-radius:3px !important}
.kpi div{border-radius:3px !important}
.cell{border-radius:3px !important}
.alert{border-radius:3px !important}
.sprk{border-radius:3px !important}
.spnext{border-radius:3px !important}
.moreBtn2{border-radius:3px !important}
.lenchip{border-radius:3px !important}
.lenbadge{border-radius:3px !important}
.tabbar{border-radius:3px !important}
.tabbtn{border-radius:3px !important}
.ibox{border-radius:3px !important}
.bundle-hint{border-radius:3px !important}
.bundle-warn{border-radius:3px !important}
.oitem{border-radius:3px !important}
.mat-tag{border-radius:3px !important}
#orderImg{border-radius:3px !important}
.mode-btn{border-radius:3px !important}
.recv-note{border-radius:3px !important}
.price-box{border-radius:3px !important}
.pb-custom{border-radius:3px !important}
.pb-applied{border-radius:3px !important}
.pu-btn{border-radius:3px !important}
.src-badge{border-radius:3px !important}
.dest-hint{border-radius:3px !important}
.finalp{border-radius:3px !important}
.rc{border-radius:3px !important}
.spec .m{border-radius:3px !important}
.est{border-radius:3px !important}
.guide{border-radius:3px !important}
.warn{border-radius:3px !important}
.s4{border-radius:3px !important}
.jd{border-radius:3px !important}
.mstk{border-radius:3px !important}
.sec{border-radius:3px !important}
.money>div{border-radius:3px !important}
input.search{border-radius:3px !important}
.doc .badge{border-radius:3px !important}
.acts a{border-radius:3px !important}
.refbox .rlinks a{border-radius:3px !important}
.qbtn{border-radius:3px !important}
.qbtn .ic{border-radius:3px !important}
.linkbtn{border-radius:3px !important}
.callbtn{border-radius:3px !important}
.prodchip{border-radius:3px !important}
.frow input{border-radius:3px !important}
.calcres{border-radius:3px !important}
.psel{border-radius:3px !important}
.card2{border-radius:3px !important}
.stksearch input{border-radius:3px !important}
.stksearch button{border-radius:3px !important}
.stq.mini{border-radius:3px !important}
.dchip2{border-radius:3px !important}
.cycnote{border-radius:3px !important}
.clnote{border-radius:3px !important}
.toptabs{border-radius:3px !important}
.toptab{border-radius:3px !important}
.stkhero{border-radius:3px !important}
.stkbtn{border-radius:3px !important}
.stkc{border-radius:3px !important}
.tr-tabs{border-radius:3px !important}
.tr-card{border-radius:3px !important}
.fc{border-radius:3px !important}
.bg{border-radius:3px !important}
.sgb{border-radius:3px !important}
.gd{border-radius:3px !important}
.bc-ic{border-radius:3px !important}
.mtile .mi{border-radius:3px !important}
.lockbtn{border-radius:3px !important}
.dm{border-radius:3px !important}
.sheet input{border-radius:3px !important}
.btns button{border-radius:3px !important}
.b-lock{border-radius:3px !important}
.cmp .side{border-radius:3px !important}
.pb-baserow{border-radius:3px !important}
.stk-asof{border-radius:3px !important}
.d{border-radius:3px !important}
.mtag{border-radius:3px !important}
.mq{border-radius:3px !important}
.mbtn{border-radius:3px !important}
.qbox{border-radius:3px !important}
.dom input{border-radius:3px !important}
.top .tag{border-radius:3px !important}
.searchcard{border-radius:3px !important}
.acbox{border-radius:3px !important}
.custcard{border-radius:3px !important}
.risk{border-radius:3px !important}
.quote{border-radius:3px !important}
.rt{border-radius:3px !important}
.p2{border-radius:3px !important}
.tabs2{border-radius:3px !important}
.tb2{border-radius:3px !important}
.mchip{border-radius:3px !important}
.flow{border-radius:3px !important}
.fs{border-radius:3px !important}
.note .nb .rule{border-radius:3px !important}
.link{border-radius:3px !important}
.link .ic{border-radius:3px !important}
.barwrap{border-radius:3px !important}
.reco-grid .box{border-radius:3px !important}
.toggle-row button{border-radius:3px !important}
.hint{border-radius:3px !important}
.mt{border-radius:3px !important}
.plan{border-radius:3px !important}
.fac-row span{border-radius:3px !important}
.scope-seg{border-radius:3px !important}
.scope-btn{border-radius:3px !important}
.seg .box{border-radius:3px !important}
.filterbar .inner{border-radius:3px !important}
.item .rt .gr{border-radius:3px !important}
.avg3 .a{border-radius:3px !important}
.reason{border-radius:3px !important}
.segb{border-radius:3px !important}
.pchip{border-radius:3px !important}
.frow select{border-radius:3px !important}
.rec{border-radius:3px !important}
.rec .fee{border-radius:3px !important}
.warn-box{border-radius:3px !important}
.mode-tabs{border-radius:3px !important}
.mode-tabs button{border-radius:3px !important}
.spec-item{border-radius:3px !important}
.sched-date{border-radius:3px !important}
.stock-box{border-radius:3px !important}
.co-bar{border-radius:3px !important}
.co-fill{border-radius:3px !important}
.expand-btn{border-radius:3px !important}
.jo-item{border-radius:3px !important}
.sched-subtabs .ss{border-radius:3px !important}
.mch-row{border-radius:3px !important}
.mch-badge{border-radius:3px !important}
.dv-in input{border-radius:3px !important}
.dv-in button{border-radius:3px !important}
.cal-nav button{border-radius:3px !important}
.cal td .cnt{border-radius:3px !important}
.sc-none.warn{border-radius:3px !important}
.lenb{border-radius:3px !important}
.wk-chip{border-radius:3px !important}
.tt-nav button{border-radius:3px !important}
.tt-wrap{border-radius:3px !important}
.ttl{font-size:18px !important;letter-spacing:-.01em !important}
.bn .n{font-size:18px !important;letter-spacing:-.01em !important}
.out-row.big .v{font-size:20px !important;letter-spacing:-.01em !important}
.ds-btn{font-size:18px !important;letter-spacing:-.01em !important}
.hero .n b{font-size:23px !important;letter-spacing:-.01em !important}
.calcres .big{font-size:18px !important;letter-spacing:-.01em !important}
.n b{font-size:18px !important;letter-spacing:-.01em !important}
.stat .value{font-size:18px !important;letter-spacing:-.01em !important}
.hero .hv b{font-size:23px !important;letter-spacing:-.01em !important}
.rec .tt{font-size:18px !important;letter-spacing:-.01em !important}
.hero .hv{font-size:23px !important;letter-spacing:-.01em !important}
.hbar.tgt{background:#E8A15C !important}
.hero::after{content:none !important;display:none !important}
.cell{background:#FAFAF8 !important}
.bar.sel{background:#1F6FEB !important}
.tabbtn.on{background:#0E7C86 !important}
.est{background:#F2F9FA !important}
.btn-p{background:#0E7C86 !important}
.hbar.bad{background:#E8A15C !important}
.hbar.dead{background:#E08A80 !important}
.calcres{background:#f7faff !important}
.stkhero{background:#10151B !important}
.stkbtn{background:#0E7C86 !important}
.brief-card::after{content:none !important;display:none !important}
.quote{background:#F2F9FA !important}
.bar.hi{background:#0E7C86 !important}
.matrow .mc{background:#5FB8BF !important}
.r-bar i.ok{background:#0E7A48 !important}
.r-bar i.low{background:#B42318 !important}
.scope-btn.active{background:#0E7C86 !important}
.box.ok{background:#34c759 !important}
.box.warn{background:#ff9f0a !important}
.box.dang{background:#ff453a !important}
.box.obs{background:#8e97a3 !important}
.mch-badge{background:#0E7C86 !important}
