  * { box-sizing:border-box; }
  /* 세로 스크롤바 자리를 늘 비워 둔다.
     좌우 여백을 %로 잡아 놨는데, 내용이 짧은 화면(차량수당)은 스크롤바가 없어져
     그 15px 만큼 화면이 넓어지고 메뉴가 오른쪽으로 밀린다. 탭마다 자리가 어긋나는 원인. */
  html { overflow-y:scroll; }
  body { margin:0; background:#f2f4f7; color:#1a2b48;
         font-family:-apple-system,BlinkMacSystemFont,"Malgun Gothic","맑은 고딕",sans-serif; }
  /* 좌우 여백 — 화면 폭의 15% 씩 양옆으로 물려 둔다(내용은 화면의 70%를 쓴다).
     우측 하단 문의 버튼이 표를 가리지 않게 하려는 뜻도 겸한다.
     아주 넓은 화면에서는 여백만 계속 벌어지므로 240px(=1600의 15%)에서 멈춘다. */
  /* 좌우 여백 없이 화면을 다 쓴다 — 표도 계산기도 넓을수록 보기 좋다 */
  .wrap { max-width:none; margin:0 auto; padding:12px 14px 56px; }
  @media (max-width:760px){ .wrap { padding:12px 10px 120px; } }
  h1 { font-size:19px; font-weight:800; margin:0 0 4px; }
  /* 이름을 누르면 첫 화면으로 — 글자 모양은 그대로 둔다 (링크처럼 보이지 않게) */
  h1 > a.home { color:inherit; text-decoration:none; }
  h1 > a.home:hover { color:#1a56db; }
  .sub { font-size:12px; color:#8a93a0; margin-bottom:12px; }
  /* 상단 탭 */
  /* 브랜드 고르기 — 제목 옆 */
  .brands { display:flex; gap:5px; margin-left:6px; }
  .bbtn { padding:6px 16px; border:1px solid #cdd5df; border-radius:8px; background:#fff;
          font-size:13.5px; font-weight:800; color:#667; cursor:pointer; }
  .bbtn:hover { background:#eef3ff; }
  .bbtn.on { background:#1a2b48; color:#fff; border-color:#1a2b48; }
  /* 준비 중 안내 */
  .soon { text-align:center; padding:46px 20px !important; }
  .soon-i { font-size:40px; }
  .soon-t { margin-top:10px; font-size:17px; font-weight:800; color:#1a2b48; }
  .soon-s { margin-top:6px; font-size:13px; color:#8a93a0; }
  .soon-b { display:flex; gap:6px; justify-content:center; margin-top:16px; flex-wrap:wrap; }
  .soon-b .tabb { flex:0 0 auto; padding:9px 16px; }
  /* ── 왼쪽 메뉴 (2026-09-22, 위 탭을 옮겨 왔다) ─────────────────
     붙박이(fixed)로 왼쪽에 세우고, 본문(.wrap)은 그만큼 오른쪽으로 민다.
     화면 덩어리를 옮기지 않아도 되므로 안쪽 화면들은 손댈 것이 없다. */
  :root { --옆폭:212px; }
  body.접힘 { --옆폭:58px; }
  /* 메뉴는 머리줄(이름·브랜드) 아래에서 시작한다 — 높이는 app.js 가 재어
     --머리높이 에 적어 준다 (브랜드 단추가 줄바꿈되면 높이가 달라진다). */
  .kside { position:fixed; left:0; top:var(--머리높이, 96px); bottom:0;
           width:var(--옆폭); z-index:40;
           background:#fff; border-right:1px solid #e6eaf0; padding:8px 8px 14px;
           overflow-y:auto; overflow-x:hidden;
           transition:width .14s ease, top .14s ease; }
  .wrap { padding-left:calc(var(--옆폭) + 14px); transition:padding-left .14s ease; }
  /* 내정보 화면 (2026-09-23) */
  .mepage { display:grid; grid-template-columns:repeat(auto-fit, minmax(320px, 1fr));
            gap:12px; align-items:start; max-width:1100px; }
  .mecard { background:#fff; border:1px solid #e6eaf0; border-radius:12px; padding:14px 16px; }
  /* 한 줄에 상자 여럿 — 내 정보 밑에 비밀번호 (2026-09-25) */
  .mecol { display:flex; flex-direction:column; gap:12px; min-width:0; }
  .mehead { display:flex; align-items:center; gap:8px; margin-bottom:10px; }
  .menm { font-size:18px; font-weight:800; color:#1a2b48; }
  .metag { padding:2px 9px; border-radius:999px; background:#eef4ff; color:#1a56db;
           font-size:11.5px; font-weight:800; }
  .merows { display:flex; flex-direction:column; }
  .merow { display:flex; align-items:baseline; gap:10px; padding:8px 0;
           border-bottom:1px solid #f4f6f9; font-size:13px; }
  .merow:last-child { border-bottom:0; }
  .merow > span { flex:0 0 116px; color:#8a93a0; font-size:12px; font-weight:700; }
  .merow > b { flex:1 1 auto; min-width:0; color:#1a2b48; font-weight:800;
               word-break:break-all; }
  .merow > b > .빔 { font-style:normal; color:#cfd5dd; }
  .merow.큰 > b { font-size:15px; font-variant-numeric:tabular-nums; }
  /* 줄마다 [변경] — 한 칸씩 고친다 (2026-09-25) */
  .merow > .me변경 { flex:0 0 auto; margin-left:auto; padding:4px 10px;
        border:1px solid #e3e8ef; border-radius:999px; background:#fff;
        font-family:inherit; font-size:11px; font-weight:800; color:#8a93a0;
        cursor:pointer; }
  .merow > .me변경:hover { border-color:#b9cdf5; color:#1a56db; background:#f6f9ff; }
  .me대기 { display:block; margin-top:3px; font-style:normal; font-size:11px;
            font-weight:700; color:#c98a00; }
  .me대기 > button { margin-left:6px; padding:1px 7px; border:1px solid #f0dfb4;
        border-radius:999px; background:#fffaf0; font-family:inherit; font-size:10.5px;
        font-weight:800; color:#c98a00; cursor:pointer; }
  .me대기 > button:hover { background:#fff3d8; }
  .mesec { font-size:13px; font-weight:800; color:#1a2b48; margin-bottom:8px; }
  .mehint { margin:0 0 10px; font-size:11.5px; color:#8a93a0; line-height:1.6; }
  .mehint b { color:#56607a; }
  .melab { display:block; margin-bottom:8px; font-size:11.5px; font-weight:700;
           color:#8a93a0; }
  .melab input { display:block; width:100%; margin-top:4px; padding:9px 11px;
                 border:1px solid #d4d9e0; border-radius:8px; font-family:inherit;
                 font-size:13.5px; }
  .melab input:focus { outline:none; border-color:#1a56db;
                       box-shadow:0 0 0 2px rgba(26,86,219,.12); }
  .mecard-img { display:flex; align-items:center; justify-content:center;
                min-height:150px; padding:8px; border:1px dashed #e3e8ef;
                border-radius:10px; background:#fafbfd; color:#a9b1bc; font-size:12.5px; }
  .mecard-img img { max-width:100%; max-height:320px; border-radius:8px; }
  .mecard-img .빔 { color:#a9b1bc; }
  .me명함pdf { padding:9px 14px; border:1px solid #cddcf7; border-radius:9px;
               background:#f2f6ff; color:#1a56db; font-size:12.5px; font-weight:800;
               text-decoration:none; }
  /* ── 진행목록 (2026-09-23) — 폰에서 볼 일이 많아 카드로 짰다 ── */
  /* 표가 넓어 폭을 묶지 않는다 — CR3업무와 같다 */
  #pane-prog .card { max-width:none; }
  .prghead h2 { margin:0 0 3px; font-size:16px; font-weight:800; color:#1a2b48; }
  .prgsub { font-size:12.5px; color:#56607a; margin-bottom:12px; }
  .prgsub .dim { color:#a9b1bc; }
  .prgfilt { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:12px; }
  .prgfilt button { padding:7px 13px; border:1px solid #e3e8ef; border-radius:999px;
        background:#fff; font-family:inherit; font-size:12.5px; font-weight:800;
        color:#56607a; cursor:pointer; }
  .prgfilt button:hover { border-color:#b9cdf5; color:#1a56db; }
  .prgfilt button.on { background:#1a2b48; border-color:#1a2b48; color:#fff; }
  .prgfilt button em { font-style:normal; margin-left:5px; color:#a9b1bc; }
  .prgfilt button.on em { color:#c3cfe4; }
  /* 커뮤니티 — 게시판과 쪽지 (2026-09-25) */
  #pane-comm .card { max-width:none; }
  .cmhead { display:flex; align-items:center; gap:12px; flex-wrap:wrap;
            margin-bottom:12px; }
  .cmhead h2 { margin:0; font-size:17px; color:#1a2b48; }
  .cmtabs { display:flex; gap:4px; }
  .cmtabs button { padding:7px 15px; border:1px solid #e3e8ef; border-radius:999px;
        background:#fff; font-family:inherit; font-size:12.5px; font-weight:800;
        color:#56607a; cursor:pointer; }
  .cmtabs button:hover { border-color:#b9cdf5; color:#1a56db; }
  .cmtabs button.on { background:#1a2b48; border-color:#1a2b48; color:#fff; }
  .cmtabs button > em { font-style:normal; color:#ffd36b; font-weight:800; }
  .cmtools { margin-left:auto; display:flex; gap:6px; align-items:center; }
  .cmtools input { padding:8px 12px; border:1px solid #d4d9e0; border-radius:999px;
                   font-family:inherit; font-size:12.5px; width:190px; }
  .cmtools input:focus { outline:none; border-color:#1a56db; }
  .cmtools .btn { padding:8px 14px; font-size:12.5px; }
  /* 메뉴 옆 안 읽은 쪽지 수 */
  .kside .새쪽지 { margin-left:auto; min-width:18px; padding:1px 6px; border-radius:999px;
        background:#c0392b; color:#fff; font-size:10.5px; font-weight:800;
        text-align:center; }

  /* 글 목록 — 번호 · 제목 · 글쓴이 · 날짜 · 조회 */
  .cmtb tbody tr { cursor:pointer; }
  .cmtb tbody tr:hover { background:#f6f9ff; }
  .cmtb tbody tr.공지 { background:#fffaf0; }
  .cmtb tbody tr.공지:hover { background:#fff3d8; }
  .cmtb .cmno { width:62px; text-align:center; color:#a9b1bc;
                font-variant-numeric:tabular-nums; }
  .cmtb .cmno b { color:#c98a00; }
  .cmtb .cmti { text-align:left; font-weight:700; color:#1a2b48; }
  .cmtb .cmti em { font-style:normal; color:#1a56db; font-weight:800; font-size:11.5px; }
  .cmtb .cmnk { width:130px; text-align:center; color:#56607a; font-weight:700;
                white-space:nowrap; }
  .cmtb .cmnk i { font-style:normal; color:#1a56db; font-size:10.5px; font-weight:800; }
  .cmtb .cmdt { width:96px; text-align:center; color:#a9b1bc; font-size:11.5px;
                font-variant-numeric:tabular-nums; }
  .cmtb .cmvw { width:62px; text-align:center; color:#a9b1bc;
                font-variant-numeric:tabular-nums; }

  /* 글 보기 창 */
  .modal.wide2 { width:min(760px,94vw); max-height:90vh; overflow-y:auto; }
  .cmback { margin-bottom:9px; padding:6px 12px; border:1px solid #e3e8ef;
            border-radius:999px; background:#fff; font-family:inherit; font-size:12px;
            font-weight:800; color:#56607a; cursor:pointer; }
  .cmback:hover { border-color:#b9cdf5; color:#1a56db; background:#f6f9ff; }
  .cmphead h3 { margin:0 0 4px; font-size:17px; color:#1a2b48; }
  .cmphead .공지표 { padding:1px 8px; border-radius:999px; background:#c98a00;
                     color:#fff; font-size:11.5px; vertical-align:2px; }
  .cmpsub { font-size:11.5px; color:#a9b1bc; font-weight:700; }
  .cmpsub b { color:#1a2b48; }
  .cmpsub i { font-style:normal; color:#c0392b; }
  .cmpbody { margin:12px 0; padding:14px 2px; border-top:1px solid #eef1f5;
             border-bottom:1px solid #eef1f5; font-size:13.5px; line-height:1.85;
             color:#1a2b48; white-space:pre-wrap; word-break:break-word; }
  /* 본문이 오기 전 잠깐 — 옅은 줄 세 개로 자리만 잡아 둔다 (2026-09-25) */
  .cmpbody.기다림 { min-height:74px; background:
      linear-gradient(#f1f4f8,#f1f4f8) left 6px/100% 12px no-repeat,
      linear-gradient(#f4f6f9,#f4f6f9) left 30px/92% 12px no-repeat,
      linear-gradient(#f7f9fc,#f7f9fc) left 54px/70% 12px no-repeat; }
  .cmpbtn { display:flex; gap:6px; flex-wrap:wrap; }
  .cmpbtn .btn { padding:7px 13px; font-size:12.5px; }
  .cmpbtn .btn.del { color:#c0392b; border-color:#f0d3cf; }
  .cmcs { margin-top:14px; }
  .cmcst { font-size:12px; font-weight:800; color:#1a2b48; margin-bottom:7px; }
  .cmc { padding:9px 0; border-top:1px solid #f4f6f9; }
  .cmcn { display:flex; align-items:center; gap:7px; font-size:11.5px; color:#a9b1bc; }
  .cmcn b { color:#1a2b48; font-size:12.5px; }
  .cmcn button { padding:1px 7px; border:1px solid #e3e8ef; border-radius:999px;
        background:#fff; font-family:inherit; font-size:10.5px; font-weight:800;
        color:#8a93a0; cursor:pointer; }
  .cmcn button:hover { border-color:#b9cdf5; color:#1a56db; }
  .cmct { margin-top:3px; font-size:13px; color:#1a2b48; line-height:1.7;
          white-space:pre-wrap; word-break:break-word; }
  .cmcadd { margin-top:10px; }
  /* 글쓰기 자리 — 창이 아니라 화면 (2026-09-25) */
  .cmform h3 { margin:0 0 10px; font-size:16px; color:#1a2b48; }
  .cmform input, .cmform textarea { width:100%; margin-bottom:9px; padding:11px 13px;
        border:1px solid #d4d9e0; border-radius:9px; font-family:inherit;
        font-size:14px; line-height:1.8; }
  .cmform textarea { resize:vertical; min-height:240px; }
  /* 사진 붙이기 */
  .cmpics { margin:4px 0 10px; padding:11px 13px; border:1px dashed #dfe5ee;
            border-radius:10px; background:#fafbfd; }
  .cmpick { display:inline-block; padding:7px 14px; border:1px solid #cddcf7;
            border-radius:999px; background:#f2f6ff; color:#1a56db; font-size:12.5px;
            font-weight:800; cursor:pointer; }
  .cmpick:hover { background:#1a56db; color:#fff; border-color:#1a56db; }
  .cmpick input { display:none; }
  .cmpicn { margin-left:9px; font-size:11.5px; font-weight:800; color:#a9b1bc;
            font-variant-numeric:tabular-nums; }
  .cmthumbs { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
  .cmthumbs:empty { display:none; }
  .cmth { position:relative; width:92px; height:92px; border-radius:9px;
          overflow:hidden; border:1px solid #e6eaf0; background:#fff; }
  .cmth img { width:100%; height:100%; object-fit:cover; display:block; }
  .cmth button { position:absolute; top:3px; right:3px; width:20px; height:20px;
        padding:0; border:0; border-radius:999px; background:rgba(20,26,38,.62);
        color:#fff; font-size:11px; font-weight:800; cursor:pointer; line-height:20px; }
  .cmth button:hover { background:#c0392b; }
  .cmpicw { margin:10px 0 0; font-size:11px; color:#a9b1bc; line-height:1.8; }
  .cmpicw b { color:#56607a; }
  .cmpicw b.경고 { color:#c0392b; }
  .cm지움 { margin-top:12px; padding:9px 12px; border:1px dashed #e3e8ef;
            border-radius:9px; background:#fafbfd; font-size:11.5px; color:#a9b1bc;
            white-space:normal; }
  /* 글 속 링크와 미리보기 카드 (2026-09-25) */
  .cmlink { color:#1a56db; font-weight:700; word-break:break-all; }
  /*  본문은 white-space:pre-wrap 이라 줄바꿈이 그대로 살아난다 —
      카드 속까지 물려받으면 글자 사이가 훌쩍 벌어져서 여기서 끊는다 */
  .cmogs, .cmog, .cmog * { white-space:normal; }
  .cmogs { display:flex; flex-direction:column; gap:9px; margin-top:12px; }
  .cmogs:empty { display:none; }
  .cmog { display:flex; gap:11px; padding:10px; border:1px solid #e6eaf0;
          border-radius:11px; background:#fbfcfe; text-decoration:none;
          align-items:center; }
  .cmog:hover { border-color:#b9cdf5; background:#f6f9ff; }
  .cmog .pic { position:relative; flex:0 0 auto; width:128px; height:74px;
               border-radius:8px; overflow:hidden; background:#eef1f5; }
  .cmog.유튜브 .pic { width:160px; height:90px; }
  .cmog .pic img { width:100%; height:100%; object-fit:cover; display:block; }
  .cmog .pic .play { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
        width:34px; height:34px; border-radius:999px; background:rgba(20,26,38,.62);
        color:#fff; font-style:normal; font-size:13px; line-height:34px;
        text-align:center; }
  .cmog .txt { flex:1 1 auto; min-width:0; }
  .cmog .txt b { display:block; font-size:13px; font-weight:800; color:#1a2b48;
                 line-height:1.5; overflow:hidden; display:-webkit-box;
                 -webkit-line-clamp:2; -webkit-box-orient:vertical; }
  .cmog .txt em { display:block; margin-top:3px; font-style:normal; font-size:11.5px;
                  color:#8a93a0; line-height:1.6; overflow:hidden;
                  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
  .cmog .txt .곳 { display:block; margin-top:4px; font-style:normal; font-size:11px;
                   font-weight:800; color:#a9b1bc; }
  @media (max-width:560px){
    .cmog { flex-direction:column; align-items:stretch; }
    .cmog .pic, .cmog.유튜브 .pic { width:100%; height:150px; }
  }

  /* 글에 붙은 사진 */
  .cmpimgs { margin-top:14px; display:flex; flex-direction:column; gap:10px; }
  /*  올린 그대로 두면 화면을 다 덮는다 — 보기 좋은 크기로 줄여 두고,
      누르면 새 창에서 원본을 본다 (2026-09-25) */
  .cmpimgs img { max-width:min(100%, 520px); max-height:60vh; width:auto; height:auto;
                 border-radius:10px; border:1px solid #eef1f5; display:block;
                 cursor:zoom-in; }
  .cmpimgs img:hover { border-color:#b9cdf5; }
  .cmtb .cmti b.pic { font-weight:400; font-size:11px; }
  .cmform input:focus, .cmform textarea:focus { outline:none; border-color:#1a56db;
        box-shadow:0 0 0 2px rgba(26,86,219,.12); }

  /* 1:1 대화 — 왼쪽 상대 · 오른쪽 대화 (2026-09-25) */
  .cmchat { display:grid; grid-template-columns:290px minmax(0,1fr); gap:12px;
            align-items:start; }
  .cmside { display:flex; flex-direction:column; gap:7px; min-width:0; }
  .cmroomfind { width:100%; padding:9px 12px; border:1px solid #d4d9e0;
        border-radius:999px; font-family:inherit; font-size:12.5px; }
  .cmroomfind:focus { outline:none; border-color:#1a56db;
                      box-shadow:0 0 0 2px rgba(26,86,219,.12); }
  .cmrooms { display:flex; flex-direction:column; gap:5px; max-height:56vh;
             overflow-y:auto; padding-right:2px; }
  .cmroomsec { margin:8px 2px 2px; font-size:10.5px; font-weight:800; color:#a9b1bc; }
  .cmroom.새사람 { border-style:dashed; }
  .cmroom.새사람 .말 { color:#c3c9d2; }
  .cmnoroom { padding:26px 14px; text-align:center; font-size:12.5px; color:#a9b1bc;
              line-height:1.8; border:1px dashed #e3e8ef; border-radius:10px; }
  .cmroom { display:grid; grid-template-columns:1fr auto; gap:2px 8px; width:100%;
        padding:10px 12px; border:1px solid #eef1f5; border-radius:10px; background:#fff;
        font-family:inherit; text-align:left; cursor:pointer; }
  .cmroom:hover { border-color:#b9cdf5; background:#f6f9ff; }
  .cmroom.고름 { border-color:#1a2b48; background:#f2f6ff; }
  .cmroom .닉 { font-size:13px; font-weight:800; color:#1a2b48;
                overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .cmroom .때 { font-size:10.5px; color:#c3c9d2; font-variant-numeric:tabular-nums;
                align-self:center; }
  .cmroom .말 { grid-column:1; min-width:0; font-size:12px; color:#8a93a0;
                overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .cmroom .말 i { font-style:normal; color:#c3c9d2; }
  .cmroom .새 { grid-column:2; min-width:18px; padding:1px 6px; border-radius:999px;
                background:#c0392b; color:#fff; font-size:10.5px; font-weight:800;
                text-align:center; align-self:center; }
  .cmtalk { border:1px solid #eef1f5; border-radius:12px; padding:12px; background:#fff; }
  .cmtalkhead { display:flex; align-items:center; gap:7px; margin-bottom:9px;
                padding-bottom:9px; border-bottom:1px solid #f4f6f9; }
  .cmtalkhead:empty { display:none; }
  .cmtalkhead b { font-size:14px; color:#1a2b48; }
  .cmtalkhead span { font-size:11.5px; color:#a9b1bc; font-weight:700; }
  .cmtalkhead .cmback { margin:0; }
  .cmtalkin { display:flex; gap:6px; }
  .cmtalkin input { flex:1 1 auto; min-width:0; padding:10px 12px;
        border:1px solid #d4d9e0; border-radius:9px; font-family:inherit; font-size:13.5px; }
  .cmtalkin input:focus { outline:none; border-color:#1a56db;
                          box-shadow:0 0 0 2px rgba(26,86,219,.12); }
  .cmpick말 { padding:40px 14px; text-align:center; font-size:12.5px; color:#c3c9d2; }
  /* 새 1:1 대화 — 관리자에게 바로 걸기 (2026-09-26) */
  .cm관리자 { display:block; width:100%; margin-bottom:9px; padding:11px;
        border:1px solid #cddcf7; border-radius:10px; background:#f2f6ff;
        font-family:inherit; font-size:13px; font-weight:800; color:#1a56db;
        cursor:pointer; }
  .cm관리자:hover { background:#1a56db; border-color:#1a56db; color:#fff; }
  .폰만 { display:none; }
  .notewrap { height:46vh; overflow-y:auto; padding:10px; margin-bottom:10px;
              border:1px solid #eef1f5; border-radius:10px; background:#fafbfd; }
  @media (max-width:760px){
    /* 좁으면 한 번에 하나만 — 사람을 고르면 대화만 보인다 */
    .cmchat { grid-template-columns:1fr; }
    .cmchat.대화중 .cmrooms { display:none; }
    .cmchat:not(.대화중) .cmtalk { display:none; }
    .cmrooms { max-height:none; }
    .cmtalkhead .폰만 { display:inline-block; }
    .notewrap { height:52vh; }
  }
  .note { display:flex; align-items:flex-end; gap:6px; margin-bottom:7px; }
  .note .말 { max-width:76%; padding:8px 11px; border-radius:12px; background:#fff;
              border:1px solid #e6eaf0; font-size:13px; line-height:1.6; color:#1a2b48;
              white-space:pre-wrap; word-break:break-word; }
  .note .때 { font-size:10px; color:#c3c9d2; font-variant-numeric:tabular-nums; }
  .note.나 { flex-direction:row-reverse; }
  .note.나 .말 { background:#1a56db; border-color:#1a56db; color:#fff; }
  .modal textarea { width:100%; margin-bottom:8px; padding:10px 12px;
        border:1px solid #d4d9e0; border-radius:8px; font-family:inherit;
        font-size:13.5px; line-height:1.7; resize:vertical; }
  .modal textarea:focus { outline:none; border-color:#1a56db;
                          box-shadow:0 0 0 2px rgba(26,86,219,.12); }
  @media (max-width:640px){
    .cmtools { width:100%; }
    .cmtools input { flex:1 1 auto; width:auto; }
    .cmtb .cmvw, .cmtb .cmno { display:none; }
    .cmtb .cmnk { width:92px; }
    .cmroom .닉 { flex:0 0 90px; }
  }

  /* 정산통계 (2026-09-23) */
  #pane-stats .card { max-width:none; }
  /* 위 탭 — 단계별 정산 · 월별 한눈에 (2026-09-28) */
  .sttabs { display:flex; gap:2px; border-bottom:2px solid #e6eaf0; margin:4px 0 14px; }
  .sttab { padding:9px 16px; border:0; background:none; font-family:inherit; font-size:13.5px;
           font-weight:800; color:#8a93a0; cursor:pointer; border-bottom:3px solid transparent;
           margin-bottom:-2px; }
  .sttab:hover { color:#1a56db; }
  .sttab.on { color:#1a2b48; border-bottom-color:#1a2b48; }
  .stb.stm em { font-style:normal; margin-left:4px; font-size:10px; color:#1a56db; }
  .stb.stm.on em { color:#9fc0ff; }
  .stb.stm.빈 { color:#b8c0cc; }
  .stmsum { display:grid; grid-template-columns:repeat(6, minmax(0,1fr)); gap:8px;
            margin-bottom:16px; }
  .stmchip { display:flex; flex-direction:column; gap:1px; padding:9px 11px;
             border:1px solid #e6eaf0; border-radius:10px; background:#fff;
             text-decoration:none; color:#1a2b48; }
  .stmchip:hover { border-color:#b9cdf5; }
  .stmchip b { font-size:13px; }
  .stmchip em { font-style:normal; font-size:11px; color:#8a93a0; }
  .stmchip span { font-size:11.5px; font-weight:800; font-variant-numeric:tabular-nums; }
  .stmchip .나갈 { color:#c0392b; }
  .stmchip .mine { color:#0b7f58; }
  .stmchip.빈 { opacity:.5; }
  .stmsec { margin-bottom:18px; scroll-margin-top:calc(var(--머리높이, 80px) + 10px); }
  .stmhead { display:flex; align-items:baseline; gap:6px; padding:0 2px 6px; }
  .stmhead b { font-size:14.5px; color:#1a2b48; }
  .stmhead em { font-style:normal; font-size:12px; color:#8a93a0; }
  .stmnone { padding:10px 12px; border:1px dashed #e3e8ef; border-radius:9px;
             font-size:12px; color:#a9b1bc; }
  .stvat { margin-left:14px; display:inline-flex; align-items:center; gap:5px; font-size:12px;
           font-weight:800; color:#56607a; cursor:pointer; user-select:none; }
  .stvat input { width:15px; height:15px; margin:0; accent-color:#1a2b48; cursor:pointer; }
  .stm상태 { display:inline-block; padding:2px 8px; border-radius:999px; font-size:11px;
             font-weight:800; background:#eef2f7; color:#56607a; }
  .stm상태.s0 { background:#eef4ff; color:#1a56db; }
  .stm상태.s1 { background:#f1f0ff; color:#5b4bc4; }
  .stm상태.s2 { background:#fff5e8; color:#b86200; }
  .stm상태.s3 { background:#eafaf3; color:#0b7f58; }
  .stm상태.s4 { background:#1a2b48; color:#fff; }
  .stm상태.s5 { background:#e6e9ee; color:#56607a; }
  @media (max-width:760px){ .stmsum { grid-template-columns:repeat(3, minmax(0,1fr)); } }
  .stbar { display:flex; align-items:center; gap:4px; flex-wrap:wrap; margin-bottom:12px; }
  .stk { font-size:11px; font-weight:800; color:#a9b1bc; margin-right:3px; }
  .stk.해 { margin-left:14px; }
  .stb { padding:6px 12px; border:1px solid #e3e8ef; border-radius:999px; background:#fff;
         font-family:inherit; font-size:12px; font-weight:800; color:#56607a; cursor:pointer; }
  .stb:hover { border-color:#b9cdf5; color:#1a56db; }
  .stb.on { background:#1a2b48; border-color:#1a2b48; color:#fff; }
  .stcards { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:9px;
             margin-bottom:14px; }
  .stcard { border:1px solid #e6eaf0; border-radius:12px; padding:12px 14px; background:#fff;
            cursor:pointer; transition:border-color .12s, box-shadow .12s; }
  .stcard:hover { border-color:#b9cdf5; box-shadow:0 2px 10px rgba(26,86,219,.08); }
  .stcard.on { border-color:#1a2b48; box-shadow:0 0 0 2px #1a2b48 inset; background:#f8fbff; }
  .stcard .t { font-size:12.5px; font-weight:800; color:#1a2b48; }
  .stcard .t em { font-style:normal; margin-left:5px; font-size:11px; color:#a9b1bc; }
  /* 카드 속을 칸칸이 — 나갈 · 들어올 · 순수익 (2026-09-23) */
  .stgrid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1px;
            margin-top:8px; background:#eef1f5; border:1px solid #eef1f5;
            border-radius:9px; overflow:hidden; }
  /* 순수익 칸은 대당 평균까지 들어가 조금 넓게 */
  .stgrid.쌓음 { grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.35fr); }
  .stgrid .c { background:#fff; padding:7px 9px; text-align:right;
               min-width:0; overflow:hidden; }
  .stgrid .c > span { display:block; font-size:10px; font-weight:800; color:#a9b1bc; }
  .stgrid .c > b { display:block; margin-top:2px; font-size:14px; font-weight:800;
                   font-variant-numeric:tabular-nums; }
  .stgrid .c.나갈 > b { color:#c0392b; }
  .stgrid .c.나갈 { background:#fffafa; }
  .stgrid .c.들어올 > b { color:#0b7f58; }
  .stgrid .c.들어올 { background:#f9fdfb; }
  .stgrid .c.순 > b { color:#1a56db; }
  .stgrid .c.순 { background:#f7faff; }
  /* 칸마다 율별로 줄을 쌓을 때 (2026-09-23) */
  .stgrid.쌓음 .c { padding:6px 9px 7px; }
  .stgrid.쌓음 .c > em { display:block; font-style:normal; font-size:10px; font-weight:800;
                         color:#a9b1bc; margin-bottom:3px; }
  .stgrid.쌓음 .두줄 { display:flex; align-items:baseline; gap:5px;
                       justify-content:flex-end; line-height:1.55;
                       white-space:nowrap; }
  .stgrid.쌓음 .두줄 > span { font-size:9.5px; font-weight:800; color:#c3c9d2; }
  .stgrid.쌓음 .두줄 > b { font-size:12.5px; font-weight:800;
                           font-variant-numeric:tabular-nums; }
  .stgrid.쌓음 .c.나갈 .두줄 > b { color:#c0392b; }
  .stgrid.쌓음 .c.들어올 .두줄 > b { color:#0b7f58; }
  .stgrid.쌓음 .c.순 .두줄 > b { color:#1a56db; }
  .stcard.하나 .stgrid.쌓음 .두줄 > b { font-size:16px; }
  /* 대당 평균 — 순수익 옆에 작게 (2026-09-23) */
  .stgrid.쌓음 .c.순 > em > i { font-style:normal; color:#c3c9d2; }
  .stgrid.쌓음 .두줄 > u { text-decoration:none; font-size:9.5px; font-weight:800;
        color:#8fa4c6; font-variant-numeric:tabular-nums; min-width:46px;
        text-align:right; flex:0 0 auto; }
  .sttb td.prgm.대당, .sttb th.prgm.대당 { color:#6b86b8; font-weight:800;
        background:#fbfcfe; }
  .sttb td.prgm.대당.빈칸 { color:#e3e8ef; }
  /* 표 안에서 율마다 두 줄 */
  .sttb td.prgm .두줄, .sttb .두줄 { display:flex; align-items:baseline; gap:6px;
        justify-content:flex-end; line-height:1.5; }
  .sttb .두줄 > span { font-size:9.5px; font-weight:800; color:#c3c9d2; }
  .sttb .두줄 + .두줄 { border-top:1px dotted #eef1f5; padding-top:2px; margin-top:2px; }
  .sttb th.prgm > i { display:block; font-style:normal; font-size:9px; color:#c3c9d2;
                      font-weight:700; }
  .stcard.하나 { margin-bottom:14px; border-color:#1a2b48;
                 box-shadow:0 0 0 1px #1a2b48 inset; }
  .stcard.하나 .stgrid .c > b { font-size:19px; }
  .sttb td.prgm.순, .sttb th.prgm.순 { color:#1a56db; font-weight:800; }
  .sttb td.prgm.나갈, .sttb th.prgm.나갈 { color:#c0392b; font-weight:800; }
  .sttb td.prgm.나갈 { background:#fffafa; }
  .sttb td.prgm.순 { background:#f7faff; }
  .sttb td.prgc b { font-variant-numeric:tabular-nums; }
  @media (max-width:1100px){ .stcards { grid-template-columns:repeat(2, minmax(0,1fr)); } }
  @media (max-width:700px){ .stcards { grid-template-columns:1fr; } }

  /* 달마다 수당 (2026-09-23) */
  .prgstat { border:1px solid #e6eaf0; border-radius:11px; padding:11px 13px;
             margin-bottom:12px; background:#fbfcfe; }
  .prgstat:empty { display:none; }
  .prgst-h { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
  .prgst-h > b { font-size:13px; font-weight:800; color:#1a2b48; }
  .prgst-k { margin-left:auto; display:flex; align-items:center; gap:3px;
             font-size:11px; font-weight:800; color:#a9b1bc; }
  .prgst-k button { padding:3px 8px; border:1px solid transparent; border-radius:7px;
        background:transparent; font-family:inherit; font-size:11px; font-weight:800;
        color:#8a93a0; cursor:pointer; }
  .prgst-k button:hover { background:#eef3ff; color:#1a56db; }
  .prgst-k button.on { background:#1a2b48; color:#fff; }
  .prgst-now { margin:9px 0 10px; font-size:13px; color:#56607a; }
  .prgst-now > b { font-size:22px; font-weight:800; color:#0b7f58;
                   font-variant-numeric:tabular-nums; margin:0 3px; }
  .prgst-now > span { margin-left:8px; font-size:11.5px; color:#a9b1bc; }
  .prgst-none { padding:14px 2px; font-size:12.5px; color:#a9b1bc; }
  .prgst-list { display:flex; flex-direction:column; gap:2px; }
  .prgst-r { display:flex; align-items:center; gap:9px; width:100%; padding:5px 7px;
        border:1px solid transparent; border-radius:8px; background:transparent;
        font-family:inherit; font-size:12px; color:#56607a; cursor:pointer; }
  .prgst-r:hover { background:#f2f6ff; border-color:#e0e9fb; }
  .prgst-r.on { background:#eef3ff; border-color:#b9cdf5; color:#1a56db; }
  .prgst-r .달 { flex:0 0 58px; font-weight:800; font-variant-numeric:tabular-nums; }
  .prgst-r.이번 .달 { color:#1a56db; }
  .prgst-r .막 { flex:1 1 auto; height:8px; border-radius:8px; background:#eef1f5; }
  .prgst-r .막 > i { display:block; height:100%; border-radius:8px; background:#8fb0ea;
                     min-width:2px; }
  .prgst-r.이번 .막 > i, .prgst-r.on .막 > i { background:#1a56db; }
  .prgst-r .건 { flex:0 0 38px; text-align:right; color:#a9b1bc; font-size:11px; }
  .prgst-r .돈 { flex:0 0 92px; text-align:right; font-weight:800; color:#1a2b48;
                 font-variant-numeric:tabular-nums; }
  @media (max-width:560px){
    .prgst-r .건 { display:none; }
    .prgst-r .돈 { flex:0 0 84px; font-size:11.5px; }
  }

  .prgnone { padding:34px 16px; text-align:center; color:#99a; font-size:13.5px;
             line-height:1.8; }
  .prgnone .dim { color:#c3c9d2; font-size:12.5px; }
  /* 엑셀 꼴 표 — CR3업무와 같은 규칙 (2026-09-23) */
  .prgwrap { overflow-x:auto; border:1px solid #e6eaf0; border-radius:10px; }
  /* CR3업무처럼 촘촘하게 — 글씨를 줄여 열일곱 칸이 한 화면에 들어오게 */
  .prgxl { width:100%; border-collapse:collapse; font-size:11.5px; }
  .prgxl th, .prgxl td { padding:4px 6px; border-right:1px solid #f1f4f8;
                         border-bottom:1px solid #f1f4f8; white-space:nowrap;
                         vertical-align:middle; }
  .prgxl th { position:sticky; top:0; z-index:2;
              background:#f7f9fc; font-size:10px; font-weight:800; color:#56607a;
              text-align:left; }
  .prgxl th i, .prgxl td i { display:block; font-style:normal; font-size:9.5px;
                             font-weight:700; color:#a9b1bc; margin-top:0; }
  .prgxl tbody tr:hover { background:#f8fbff; }
  .prgxl tr.해약 { color:#c3c9d2; }
  .prgxl tr.해약 b { text-decoration:line-through; }
  .prgxl td.prgn, .prgxl th.prgn { width:1%; text-align:right; color:#a9b1bc;
                                   font-size:11px; }
  .prgxl td.prgc b { font-size:12px; font-weight:800; color:#1a2b48; }
  .prgxl td.prgc { max-width:150px; overflow:hidden; text-overflow:ellipsis; }
  .prgxl td.prgc b { display:block; overflow:hidden; text-overflow:ellipsis; }
  .prgxl td.prgc.번호 b { font-variant-numeric:tabular-nums; letter-spacing:.2px; }
  .prgxl td.prgs { text-align:center; }
  .prgxl td.prgc.탁송 b { font-size:11px; font-weight:700; color:#56607a;
                          display:block; max-width:118px; overflow:hidden;
                          text-overflow:ellipsis; white-space:nowrap; }
  /* 누를 수 있는 칸 */
  .prgxl td.누름 { cursor:pointer; }
  .prgxl td.누름:hover { background:#eef3ff; }
  .prgxl td.누름:hover b { color:#1a56db; }
  /* 자세히 보기 창 */
  #prgBg .modal { max-width:420px; }
  .prgdl { display:flex; flex-direction:column; gap:1px; }
  .prgdl-r { display:flex; align-items:baseline; gap:10px; padding:8px 2px;
             border-bottom:1px solid #f1f4f8; font-size:13px; }
  .prgdl-r:last-child { border-bottom:0; }
  .prgdl-r > span { flex:0 0 96px; font-size:11.5px; font-weight:800; color:#8a93a0; }
  .prgdl-r > span em { font-style:normal; font-weight:700; color:#c3c9d2; }
  .prgdl-r > b { flex:1 1 auto; min-width:0; color:#1a2b48; font-weight:700;
                 word-break:break-all; }
  .prgdl-r > b .큰 { font-size:14.5px; font-weight:800; }
  .prgdl-r.주소 > b { line-height:1.6; }
  .prgdl-r.합 { border-top:1px solid #e6eaf0; }
  .prgdl-r.합 > b { font-size:15px; font-weight:800; }
  .prgdl-r.수당 > b { font-size:15px; font-weight:800; color:#0b7f58; }

  /* 고객 창 — 받아 둔 신분증·사업자등록증 */
  .prgdoc2 { margin-top:4px; }
  .prgdl-r.서류 > span { color:#56607a; }
  .prgcust { margin-top:10px; }
  .prgcust-t { display:flex; align-items:center; gap:8px; margin-bottom:5px;
               font-size:11.5px; font-weight:800; color:#8a93a0; }
  .prgcust-t > a { margin-left:auto; padding:3px 9px; border:1px solid #cddcf7;
        border-radius:7px; background:#f7faff; color:#1a56db; font-size:11px;
        font-weight:800; text-decoration:none; }
  .prgcust-t > a:hover { background:#1a56db; color:#fff; border-color:#1a56db; }
  .prgcust img { width:100%; max-height:44vh; object-fit:contain; background:#f7f9fc;
                 border:1px solid #e6eaf0; border-radius:9px; display:block; }
  /* 수당 창 — 계산서 메일과 복사 단추 */
  .prg메일 { font-weight:800; color:#1a2b48; word-break:break-all; }
  .prg복사 { margin-left:8px; padding:3px 9px; border:1px solid #cddcf7; border-radius:7px;
             background:#f7faff; color:#1a56db; font-family:inherit; font-size:11px;
             font-weight:800; cursor:pointer; }
  .prg복사:hover { background:#1a56db; color:#fff; border-color:#1a56db; }
  .prgxl td.prgm.누름:hover { background:#e7f7ef; }

  /* 서류 갈래 — 신분증 · 사업자등록증을 하나씩 */
  .prg서류탭 { display:flex; gap:5px; flex-wrap:wrap; margin-top:8px; }
  .prg서류탭 button { padding:6px 12px; border:1px solid #e3e8ef; border-radius:999px;
        background:#fff; font-family:inherit; font-size:11.5px; font-weight:800;
        color:#56607a; cursor:pointer; }
  .prg서류탭 button:hover { border-color:#b9cdf5; color:#1a56db; }
  .prg서류탭 button.on { background:#1a2b48; border-color:#1a2b48; color:#fff; }
  /* 창이 길어지면 창 안에서 굴린다 — 화면 밖으로 잘리지 않게 */
  #prgBg .modal { max-height:calc(100vh - 60px); overflow:auto; }

  /* 자료 — 줄 끝 클립 단추와, 눌렀을 때 밑에 펴지는 줄 */
  .prgxl th.prgf, .prgxl td.prgf { width:1%; text-align:center; }
  .prgxl td.prgf button { padding:3px 8px; border:1px solid #e3e8ef; border-radius:7px;
        background:#fff; font-family:inherit; font-size:10.5px; font-weight:800;
        color:#56607a; cursor:pointer; }
  .prgxl td.prgf button:hover { border-color:#b9cdf5; color:#1a56db; }
  .prgxl td.prgf button.on { background:#1a2b48; border-color:#1a2b48; color:#fff; }
  .prgxl td.prgf .dim { color:#d4d9e0; }
  /* 창 안 자료 목록 — 묶음(계약·결제·등록·수당)마다 한 줄 */
  #prgTitle em { font-style:normal; margin-left:7px; font-size:12px; font-weight:700;
                 color:#a9b1bc; font-variant-numeric:tabular-nums; }
  .prgnone2 { padding:22px 6px; text-align:center; color:#99a; font-size:13px; }
  .prgdoc { display:flex; flex-direction:column; gap:10px; }
  .prgdgrp { display:flex; align-items:flex-start; gap:6px; flex-wrap:wrap;
             padding-bottom:9px; border-bottom:1px solid #f1f4f8; }
  .prgdgrp:last-child { border-bottom:0; padding-bottom:0; }
  .prgdgrp > b { flex:0 0 46px; padding-top:6px; font-size:11.5px; font-weight:800;
                 color:#8a93a0; }
  .prgdfile { display:inline-flex; align-items:center; gap:6px; padding:6px 11px;
        border:1px solid #cddcf7; border-radius:8px; background:#f7faff; color:#1a56db;
        font-size:12px; font-weight:800; text-decoration:none; }
  .prgdfile:hover { background:#1a56db; color:#fff; border-color:#1a56db; }
  .prgdfile > i { font-style:normal; font-size:9.5px; color:#a9b1bc; font-weight:700; }
  .prgdfile:hover > i { color:#c3cfe4; }
  .prgxl td.prgm.계약금 b { font-size:12.5px; font-weight:700; }
  .prgxl td.prgm.계약금 i { text-align:right; }
  .prgtel { color:#1a56db; font-weight:800; text-decoration:none;
            font-variant-numeric:tabular-nums; }
  .prgtel:hover { text-decoration:underline; }
  .prgxl th.prgd, .prgxl td.prgd { width:1%; text-align:center; font-size:10px;
                                   color:#c3c9d2; font-variant-numeric:tabular-nums; }
  .prgxl td.prgd.on { color:#1a2b48; font-weight:700; background:#f5f9ff; }
  .prgxl th.prgm, .prgxl td.prgm { text-align:right; font-variant-numeric:tabular-nums; }
  .prgxl td.prgm { font-size:12px; font-weight:700; color:#56607a; }
  .prgxl td.prgm.mine, .prgxl th.prgm.mine { background:#f2fbf6; }
  .prgxl td.prgm.mine { color:#0b7f58; font-weight:800; }
  .prgxl tfoot td { border-bottom:0; border-top:2px solid #e6eaf0; background:#fbfcfe;
                    font-weight:800; color:#1a2b48; }
  .prgxl tfoot td.prgc i { display:inline; margin-left:6px; }
  @media (max-width:760px){
    .prgxl td.prgc { max-width:150px; }
    .prgxl td.prgc.탁송 b { max-width:140px; }
  }

  .prgcard { border:1px solid #e6eaf0; border-radius:12px; padding:13px 14px;
             margin-bottom:10px; background:#fff; }
  .prgcard.해약 { background:#fafafa; border-color:#eee; }
  .prgcard.해약 .prgcar, .prgcard.해약 .prgno { color:#a9b1bc; text-decoration:line-through; }
  .prgtop { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
  .prgno { font-size:13.5px; font-weight:800; color:#1a2b48;
           font-variant-numeric:tabular-nums; letter-spacing:.2px; }
  .prgstate { margin-left:auto; padding:3px 11px; border-radius:999px;
              background:#eef3ff; color:#1a56db; font-size:11.5px; font-weight:800; }
  .prgstate.해약 { background:#fdeeee; color:#c0392b; }
  .prgcar { margin-top:6px; font-size:14.5px; font-weight:800; color:#1a2b48; }
  .prgside { margin-top:3px; font-size:12.5px; color:#56607a; }
  .prgside.dim { color:#a9b1bc; font-size:12px; }
  /* 단계 — 지나온 곳은 파랗게, 다음 차례는 테두리만 */
  .prgsteps { display:flex; gap:2px; margin-top:12px; overflow-x:auto;
              padding-bottom:2px; }
  .prgstep { flex:1 1 0; min-width:44px; text-align:center; position:relative; }
  .prgstep i { display:block; width:11px; height:11px; margin:0 auto 5px;
               border-radius:50%; background:#e7eaee; }
  .prgstep.on i { background:#1a56db; }
  .prgstep.next i { background:#fff; border:2px solid #1a56db; width:9px; height:9px; }
  .prgstep::before { content:''; position:absolute; left:-50%; top:5px; width:100%;
                     height:2px; background:#eef1f5; z-index:0; }
  .prgstep:first-child::before { display:none; }
  .prgstep.on::before { background:#1a56db; }
  .prgstep b { display:block; font-size:10.5px; font-weight:800; color:#a9b1bc; }
  .prgstep.on b { color:#1a2b48; }
  .prgstep.next b { color:#1a56db; }
  .prgstep em { display:block; font-style:normal; font-size:9.5px; color:#c3c9d2;
                font-variant-numeric:tabular-nums; }
  @media (max-width:560px){
    .prgstep { min-width:40px; }
    .prgstep b { font-size:10px; }
  }

  /* 명함 바꾸기 단추 */
  .me명함올리기 { display:inline-block; margin-top:9px; padding:8px 13px;
                  border:1px solid #cddcf7; border-radius:9px; background:#f2f6ff;
                  color:#1a56db; font-size:12.5px; font-weight:800; cursor:pointer; }
  .me명함올리기:hover { background:#1a56db; color:#fff; border-color:#1a56db; }
  .me명함올리기 input { display:none; }
  .me명함pdf > em { font-style:normal; margin-left:6px; font-size:11px; color:#a9b1bc; }
  /* 제조사 링크 — 국산·수입 가름줄과 수입 칸 (2026-09-23) */
  .blsec { margin:14px 2px 8px; font-size:13px; font-weight:800; color:#1a2b48; }
  .blsec:first-child { margin-top:2px; }
  .blsec > em { margin-left:6px; font-style:normal; font-size:11.5px;
                font-weight:700; color:#a9b1bc; }
  .imgrid { display:grid; grid-template-columns:repeat(auto-fill, minmax(232px, 1fr));
            gap:7px; }
  .imcard { display:flex; align-items:center; gap:8px; padding:9px 11px;
            background:#fff; border:1px solid #e6eaf0; border-radius:10px; }
  .imcard .bldot { flex:0 0 9px; height:9px; border-radius:50%; }
  .imcard .imname { flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis;
                    white-space:nowrap; color:#1a2b48; font-size:13px; font-weight:800;
                    text-decoration:none; }
  .imcard .imname:hover { color:#1a56db; }
  .imcard .imname > .go { margin-left:4px; font-size:10.5px; color:#c3c9d2; }
  .imcard .imname:hover > .go { color:#1a56db; }
  .imcard .imtel { flex:0 0 auto; padding:3px 8px; border-radius:999px;
                   background:#f2f6ff; color:#1a56db; font-size:11.5px; font-weight:800;
                   text-decoration:none; font-variant-numeric:tabular-nums; }
  .imcard .imtel:hover { background:#1a56db; color:#fff; }
  .imcard .imtel.빔 { background:#f7f9fc; color:#cfd5dd; }
  /* 회원 눈으로 보기 단추 — 오른쪽 위, 계정 단추 왼쪽 (2026-09-23) */
  .눈바 { position:fixed; top:10px; right:170px; z-index:81; display:flex; gap:6px; }   /* AG 눈 · CM 눈 단추 둘 (2026-10-24) */
  .눈단추 { display:inline-flex; align-items:center; gap:6px; padding:7px 12px;
            border:1px solid #dce1e8; border-radius:999px; background:#fff;
            box-shadow:0 2px 10px rgba(16,24,40,.10); cursor:pointer;
            font-family:inherit; font-size:12.5px; font-weight:800; color:#1a2b48; }
  .눈단추:hover { border-color:#8fb0ea; background:#f8fbff; }
  .눈단추 .ic { font-size:14px; }
  /* 회원 눈으로 보는 중이면 노랗게 — 지금 무슨 눈인지 한눈에 */
  .눈단추.보는중 { background:#fff7e6; border-color:#f0d9a8; color:#8a6d1f; }
  .눈단추.보는중:hover { background:#8a6d1f; border-color:#8a6d1f; color:#fff; }
  @media (max-width:640px){
    .눈단추 { padding:6px 9px; font-size:12px; }
    .눈단추 .말 { display:none; }        /* 좁으면 아이콘만 — 계정 단추 왼쪽에 선다 */
  }
  /* 회원 눈으로 보는 중 띠 (2026-09-23) */
  /* 띠는 본문 자리에 둔다 — 왼쪽으로 눕히면 메뉴 밑에 들어가 글이 잘린다 */
  .회원띠 { display:flex; align-items:center; gap:8px; margin:0 0 10px;
            padding:9px 13px; border-radius:10px;
            background:#fff7e6; border:1px solid #f0d9a8; color:#8a6d1f;
            font-size:12.5px; font-weight:800; }
  .회원띠 > span { font-weight:700; color:#a98b46; }
  .회원띠 > button { margin-left:auto; padding:5px 11px; border:1px solid #e3c98a;
                     border-radius:8px; background:#fff; color:#8a6d1f;
                     font-family:inherit; font-size:12px; font-weight:800; cursor:pointer; }
  .회원띠 > button:hover { background:#8a6d1f; border-color:#8a6d1f; color:#fff; }
  @media (max-width:760px){ .회원띠 { margin-left:0; } }
  /* 머리집 — 왼쪽 끝까지 넓게 눕고(메뉴 위), 화면 맨 위에 붙박인다.
     아래로 굴려도 이름·캐피탈·차종 줄이 남아 있게 (2026-09-22). */
  .머리집 { position:sticky; top:0; z-index:41; background:#f2f4f7;
            margin:-12px 0 0 calc(-1 * var(--옆폭)); padding:12px 0 0;
            transition:margin-left .14s ease; }
  .머리집 > .sub { padding-bottom:10px; border-bottom:1px solid #e6eaf0;
                   margin-bottom:0; }
  .ksbar { display:flex; align-items:center; gap:10px; width:100%; padding:9px 10px;
           border:0; border-radius:10px; background:transparent; cursor:pointer;
           font-family:inherit; font-size:12.5px; font-weight:800; color:#8a93a0; }
  .ksbar:hover { background:#f2f6ff; color:#1a56db; }
  .ksbar .줄 { flex:0 0 18px; display:flex; flex-direction:column; gap:3px; }
  .ksbar .줄 i { display:block; height:2px; border-radius:2px; background:currentColor; }
  .ksmenu { margin-top:6px; display:flex; flex-direction:column; gap:2px; }
  /* 메뉴 한 칸 — 예전 탭(.tabb)을 그대로 쓴다 (화면 바꾸는 길이 그대로 돌게) */
  .kside .tabb, .kside .ks문의 { display:flex; align-items:center; gap:10px; flex:0 0 auto;
                 padding:10px 10px; border:0; border-radius:10px; background:transparent;
                 color:#4a5565; font-size:13px; font-weight:800; text-align:left;
                 white-space:nowrap; text-decoration:none; }
  .kside .tabb .ic, .kside .ks문의 .ic { flex:0 0 20px; font-size:15px;
                                                text-align:center; }
  .kside .tabb:hover, .kside .ks문의:hover { background:#f2f6ff; color:#1a56db; }
  .kside .tabb.on { background:#1a2b48; color:#fff; }
  /* 들여쓴 줄 — 브랜드 · 재고알림 · 업무지원 안쪽 메뉴 */
  .kssub { display:none; flex-direction:column; gap:1px; margin:2px 0 6px 30px;
           padding-left:9px; border-left:1.5px solid #eef1f5; }
  .kssub.펴짐 { display:flex; }
  .kssub > button, .kside .tabb.옆, .kssub > a {
           padding:7px 9px; border:0; border-radius:8px; background:transparent;
           font-family:inherit; font-size:12px; font-weight:700; color:#6b7280;
           text-align:left; white-space:nowrap; cursor:pointer; overflow:hidden;
           text-overflow:ellipsis; text-decoration:none; }
  .kssub > button:hover, .kside .tabb.옆:hover { background:#f6f9ff; color:#1a56db; }
  .kssub > button.on, .kssub > button.bbtn.on { background:#f2f6ff; color:#1a56db;
                                                font-weight:800; }
  .kside .tabb.옆.on { background:#f2f6ff; color:#1a56db; font-weight:800; }
  /* 메뉴 맨 아래 문의 — 걸 곳이 있는 브랜드에서만 보인다 (fab.js 가 .on 을 켠다) */
  .kside .ks문의 { display:none; width:100%; border:0; background:transparent;
                    font-family:inherit; cursor:pointer; }
  .kside .ks문의.on, .kside .ks문의.늘 { display:flex; }
  /* 문의 단추의 펼침 화살표 — 메뉴 다른 줄과 같은 자리 (2026-09-23) */
  .kside .ks문의 > .꼬리, .kside .tabb > .꼬리 {
      margin-left:auto; font-size:10px; color:#c3c9d2; padding:2px 1px 2px 6px; }
  .kside .tabb.on > .꼬리 { color:#8fa4c6; }
  .kside .tabb > .꼬리:hover, .kside .ks문의 > .꼬리:hover { color:#1a56db; }
  body.접힘 .kside .ks문의 > .꼬리, body.접힘 .kside .tabb > .꼬리 { display:none; }
  /* 문의 밑 — 브랜드마다 한 줄, 오른쪽에 번호·담당자 */
  .kside .문의밑 > button { display:flex; align-items:center; gap:6px; }
  .kside .문의밑 > button > em { margin-left:auto; font-style:normal; font-size:11px;
                                color:#a9b1bc; font-weight:700;
                                font-variant-numeric:tabular-nums; }
  .kside .문의밑 > button:hover > em { color:#1a56db; }
  .kside .ks문의#ksMe { margin-top:6px; border-top:1px dashed #eef1f5;
                       padding-top:12px; }
  /* 메뉴 속 '준비중' 딱지 — 현대 재고조회처럼 아직 안 되는 곳에 (2026-09-22) */
  .kssub > button > em.준비 { font-style:normal; margin-left:5px; padding:0 5px;
                       border-radius:999px; background:#f4f6f9; color:#a9b1bc;
                       font-size:10px; font-weight:800; }
  .kssub > button.on > em.준비 { background:#e7efff; color:#6b8fd6; }
  /* 접었을 때 — 아이콘만 남기고 글씨·들여쓴 줄은 감춘다 */
  body.접힘 .kside .tabb { justify-content:center; padding:10px 0; }
  body.접힘 .kside .tabb .말, body.접힘 .kside .ks문의 .말,
  body.접힘 .ksbar .말 { display:none; }
  body.접힘 .kside .ks문의.on { justify-content:center; padding:10px 0; }
  body.접힘 .kssub, body.접힘 .kssub.펴짐 { display:none; }
  /* 머리줄의 폰 전용 ☰ — 폰에서만 보인다 (2026-09-23).
     폰은 메뉴를 접으면 왼쪽 띠가 통째로 사라져서 ☰ 가 갈 자리가 없었다. */
  .폰메뉴 { display:none; flex:0 0 auto; align-items:center; justify-content:center;
            width:38px; height:38px; margin-right:2px; padding:0;
            border:1px solid #e3e8ef; border-radius:10px; background:#fff;
            color:#56607a; cursor:pointer; }
  .폰메뉴:active { background:#eef3ff; }
  .폰메뉴 .줄 { display:flex; flex-direction:column; gap:3px; width:17px; }
  .폰메뉴 .줄 i { display:block; height:2px; border-radius:2px; background:currentColor; }
  /* 메뉴를 편 동안 본문을 덮는 막 (폰에서만) */
  .메뉴막 { display:none; position:fixed; inset:0; z-index:44;
            background:rgba(16,24,40,.38); }
  /* 폰 — 접힌 것이 기본이고, 펴면 본문을 덮는다 */
  @media (max-width:760px){
    /* 덮는 막(.메뉴막 44) 보다 위에 있어야 메뉴가 눌린다 (2026-09-29).
       예전에는 막이 메뉴 위를 덮어 폰에서 메뉴를 눌러도 막만 눌려 닫혔다. */
    .kside { width:212px; box-shadow:6px 0 24px rgba(16,24,40,.16); z-index:46; }
    .wrap { padding-left:14px; }
    .머리집 { margin-left:0; }
    body.접힘 .kside { width:0; padding-left:0; padding-right:0; border:0; }
    .폰메뉴 { display:inline-flex; }
    /* 폰 머리줄 — 오른쪽 위 붙박이 단추(눈·알림·계정·나가기)가 이름을 덮던 것 (2026-09-29).
       이름은 '카마스터' 만, 계정 단추는 아이콘만 남겨 한 줄에 같이 선다. */
    .head h1 .h1꼬리 { display:none; }
    .head h1 { font-size:18px; white-space:nowrap; }
    body .acctfix .ab .an { display:none; }
    .head .brands { flex:0 0 100%; margin-left:0; }   /* 캐피탈 단추는 이름 밑 줄로 */
    /* 업무지원 계산기 — 빠른 단추 줄이 옆으로 넘쳐 화면이 가로로 밀리던 것 */
    .cdq { margin-left:0; flex-wrap:wrap; }
    body:not(.접힘) .메뉴막 { display:block; }
    /* 칸을 누르면 화면이 확 커지던 것(iOS) 막기 — 표 안쪽 작은 칸은 그대로 */
    input:not([type=checkbox]):not([type=radio]):not([type=file]),
    select, textarea { font-size:16px; }
    table input, table select, table textarea,
    .cr3xl input, .cr3xl select, .cr3xl textarea,
    .cr3ln input, .cr3ln select { font-size:12px; }
  }
  .tabs { display:flex; gap:6px; margin-bottom:12px; }
  /* 링크(a)로 바뀌었다 — 밑줄을 지우고 글씨를 가운데로 (단추처럼 보이게) */
  .tabb { flex:1 1 0; padding:11px 6px; border:1px solid #cdd5df; border-radius:10px; background:#fff;
         text-decoration:none; text-align:center; display:block;
          font-size:14px; font-weight:800; color:#667; cursor:pointer; }
  .tabb.on { background:#1a2b48; color:#fff; border-color:#1a2b48; }
  /* 폰에서는 셋을 한 줄에 밀어 넣느라 '재고·코드 조 회' 처럼 단어가 잘렸다.
     글자를 줄이고 줄바꿈을 막아 한 덩어리로 읽히게 한다 */
  @media (max-width:760px){
    .tabs { gap:4px; }
    .tabb { padding:10px 2px; font-size:12.5px; white-space:nowrap; letter-spacing:-.3px; }
  }
  @media (max-width:400px){ .tabb { font-size:11.5px; } }
  .pane .card { max-width:620px; margin:0 auto; }
  /* 보조금은 왼쪽 메뉴 + 표라서 좁으면 답답하다 */
  /* 업무지원·차량수당도 폭을 묶지 않는다 (.pane .card 의 620px 제한을 푼다) */
  #pane-sup .card, #pane-calc .card, #pane-inv2 .card { max-width:none; }

  /* 브랜드 고르기 — 재고조회 차종 칸 위 (2026-09-23) */
  .pbrand { display:flex; gap:5px; padding:0 2px 7px; }
  .pbb { flex:1 1 0; padding:8px 6px; border:1px solid #d4d9e0; border-radius:9px;
         background:#fff; font-family:inherit; font-size:13px; font-weight:800;
         color:#56607a; cursor:pointer; }
  .pbb:hover { background:#eef3ff; border-color:#b9cdf5; color:#1a56db; }
  .pbb.on { background:#1a2b48; border-color:#1a2b48; color:#fff; }
  /* 준비중 브랜드 — 눌러서 들어갈 수는 있다 (안에서 안내를 띄운다) */
  .pbb.준비 { color:#a9b1bc; border-style:dashed; }
  .pbb.준비.on { background:#8a93a0; border-color:#8a93a0; color:#fff;
                 border-style:solid; }
  .pbb.준비.on > em { background:rgba(255,255,255,.22); color:#fff; }
  .pbb > em { font-style:normal; margin-left:5px; padding:0 5px; border-radius:999px;
              background:#eef1f5; color:#a9b1bc; font-size:10px; font-weight:800; }

  /* 상자 안 '준비 중' 안내 */
  .p2soon { padding:34px 16px; text-align:center; }
  .p2soon .soon-i { font-size:34px; }
  .p2soon .soon-t { margin-top:8px; font-size:16px; font-weight:800; color:#1a2b48; }
  .p2soon .soon-s { margin-top:6px; font-size:13px; color:#8a93a0; line-height:1.7; }
  .p2soon .soon-b { display:flex; gap:8px; justify-content:center; margin-top:14px;
                    flex-wrap:wrap; }
  .p2soon .soon-b .tabb { flex:0 0 auto; padding:10px 16px; }

  /* 브랜드 갈래 — 차량수당 차량가 아래 (2026-09-23) */
  .cbrand { display:flex; gap:6px; margin-top:10px;
            flex:1 1 100%; width:100%; }        /* 차량가 줄 '아래' 한 줄을 다 쓴다 */
  .cbb { flex:1 1 0; padding:12px 10px; border:1px solid #d4d9e0; border-radius:11px;
         background:#fff; font-family:inherit; font-size:15px; font-weight:800;
         color:#56607a; cursor:pointer; }
  .cbb:hover { background:#eef3ff; border-color:#b9cdf5; color:#1a56db; }
  .cbb.on { background:#1a2b48; border-color:#1a2b48; color:#fff; }

  /* 차량수당 */
  .lock { text-align:center; padding:34px 18px; }
  .lock .lk-t { font-size:17px; font-weight:800; margin-bottom:8px; }
  .lock p { font-size:13.5px; color:#778; line-height:1.7; margin:0 0 16px; }
  /* 수당 종류 (현금할부 / 리스렌트) */
  .pays2 { display:flex; align-items:center; gap:5px; margin-bottom:9px; }
  .paylbl { flex:0 0 auto; margin-right:3px; font-size:11.5px; font-weight:800; color:#8a93a0; }
  .pay2 { flex:1 1 0; padding:9px 0; border:1px solid #d4d9e0; background:#fff; color:#56607a;
          border-radius:8px; font-size:14px; font-weight:700; cursor:pointer; }
  .pay2.on { background:#1a2b48; color:#fff; border-color:#1a2b48; }
  .cmpay { margin:2px 0 9px; }
  .result .rt small { font-size:11px; font-weight:700; opacity:.7; margin-left:3px; }
  .cats2 { display:flex; flex-wrap:wrap; gap:5px; margin-bottom:9px; min-height:31px; }
  .cat2 { padding:6px 12px; border:1px solid #d4d9e0; border-radius:16px; background:#fff;
          font-size:13px; font-weight:700; color:#556; cursor:pointer; }
  .cat2.on { background:#1a2b48; color:#fff; border-color:#1a2b48; }
  /* 분류를 바꿔도 창이 줄지 않게 최소 높이를 잡아 둔다.
     전 차종(29개)까지 스크롤 없이 다 보이는 높이라 분류를 오가도 흔들림이 없다. */
  .cars2 { display:flex; flex-wrap:wrap; align-content:flex-start; gap:6px;
           min-height:300px; margin-bottom:11px;
           padding:6px; border:1px solid #eef0f3; border-radius:9px; background:#fafbfc; }
  .carb { align-self:flex-start; padding:9px 12px; border:1px solid #d4d9e0; border-radius:8px;
          background:#fff; font-size:14px; font-weight:600; color:#334; cursor:pointer; }
  .carb.on { background:#c0392b; color:#fff; border-color:#c0392b; }
  .cnone { padding:20px; text-align:center; color:#99a; font-size:13px; }
  .pricerow { display:flex; align-items:center; gap:8px; margin-bottom:12px; }
  .pricerow span { font-size:14px; font-weight:800; }
  .pricerow input { flex:1; min-width:0; padding:11px 13px; border:1px solid #d4d9e0;
                    border-radius:8px; font-size:17px; text-align:right;
                    font-variant-numeric:tabular-nums; }
  .pricerow em { font-style:normal; font-size:13px; color:#889; }
  .quick { display:flex; gap:6px; margin-bottom:12px; }
  .quick button { flex:1 1 auto; padding:9px 6px; border:1px solid #cdd5df; border-radius:8px;
                  background:#f4f6f9; font-size:13px; font-weight:700; color:#1a56db; cursor:pointer; }
  .quick .clr { color:#99a; }
  .result { padding:14px 16px; background:#1a2b48; color:#fff; border-radius:10px; }
  .result .rt { font-size:13px; font-weight:700; opacity:.85; margin-bottom:8px; }
  .result .rl { display:flex; align-items:baseline; justify-content:flex-end; gap:8px; }
  .result .rl span { font-size:12px; opacity:.8; }
  .result .rl b { font-size:24px; font-weight:800; font-variant-numeric:tabular-nums; }
  .result .rl i { font-style:normal; font-size:13px; opacity:.85; }
  .result .rex, .result .r33 { margin-top:6px; padding-top:6px;
                               border-top:1px solid rgba(255,255,255,.18); }
  .result .rex b, .result .r33 b { font-size:19px; opacity:.92; }
  .result .r33 b { color:#ffd08a; }
  .cnote { font-size:11.5px; color:#8a93a0; margin-top:9px; text-align:center; }

  /* 차량수당 — 왼쪽 차량 메뉴 / 오른쪽 계산기 */
  .calcwrap { display:flex; gap:14px; align-items:flex-start; flex-wrap:wrap; }
  /* 재고조회의 .left 와 같은 폭·같은 붙박이 — 탭을 오갈 때 왼쪽 메뉴가 안 흔들리게 */
  .calcleft { flex:0 0 230px; position:sticky; top:10px; }
  .calcmid { flex:1 1 360px; min-width:0; }
  .calcdlv { flex:0 1 320px; min-width:0; }
  .calcdlv .dlvcard { margin-bottom:8px; }
  .dlvpick { font-size:14px; font-weight:800; color:#1a2b48; margin:2px 0 9px; }
  /* 목록·칩·정렬은 재고조회(.mlist/.mitem/.cats/.msort)와 같은 것을 그대로 쓴다 */
  /* 목록 높이도 재고조회(.mlist 70vh)와 같게 — 카드 바닥선이 어긋나 보였다 */
  .calchead { font-size:16px; font-weight:800; color:#1a2b48; margin:2px 0 11px; }
  .paytag { margin-left:6px; padding:2px 8px; border-radius:6px;
            font-size:11px; font-weight:800; vertical-align:2px; }
  .paytag.cash { background:#e8effb; color:#2c5bb5; }
  .paytag.lease { background:#f4eeff; color:#7c3aed; }
  @media (max-width:760px){
    .calcleft { flex:1 1 100%; }
    .calcleft .mlist { max-height:240px; }
    .calcmid, .calcdlv { flex:1 1 100%; }
    .cdpair { flex:1 1 100%; flex-wrap:wrap; }
    .cdleft { flex:1 1 100%; }
    .agyleft { flex:1 1 100%; }
    .agyleft .mlist { max-height:190px; }
    .agymain { flex:1 1 100%; }
  }
  /* 업무지원 — 안쪽 탭 */
  /* 안쪽 탭은 한 줄에 네 개씩 — 메뉴가 늘어도 줄이 흐트러지지 않는다 */
  /* 업무지원 안쪽 띠 — 왼쪽 메뉴에 같은 것이 펴져 있으면 안 낸다 (2026-09-22).
     메뉴를 접어 두었을 때만 나온다 — 그때는 메뉴에서 고를 수가 없으니 길을 남긴다. */
  .sups { display:grid; grid-template-columns:repeat(4,1fr); gap:5px; margin-bottom:10px; }
  body:not(.접힘) .sups { display:none; }
  @media (max-width:760px){ .sups { display:grid; } }
  @media (max-width:900px){ .sups { grid-template-columns:repeat(3,1fr); } }
  @media (max-width:560px){ .sups { grid-template-columns:repeat(2,1fr); } }
  .supb { padding:9px 10px; border:1px solid #d4d9e0; border-radius:9px;
          background:#fff; color:#56607a; font-size:13px; font-weight:700; cursor:pointer;
          white-space:nowrap; }
  /* 이름이 긴 메뉴는 두 줄 — 위에 이름, 아래 작은 글씨로 무엇을 하는지 */
  .supb.two i { display:block; font-style:normal; font-size:10.5px;
                font-weight:600; opacity:.68; margin-top:2px; }
  .supb:hover { background:#eef3ff; }
  .supb.on { background:#0d9488; color:#fff; border-color:#0d9488; }
  /* PDF 도구 — 왼쪽 할 일 메뉴 / 오른쪽 파일칸 */
  .pdfwrap { display:flex; gap:12px; align-items:flex-start; flex-wrap:wrap; }
  .pdfmenu { flex:0 0 190px; display:flex; flex-direction:column; gap:5px; }
  .pdfm { text-align:left; padding:10px 12px; border:1px solid #e3e7ec; border-radius:9px;
          background:#fff; cursor:pointer; line-height:1.3; }
  .pdfm b { display:block; font-size:13px; font-weight:800; color:#1a2b48; }
  .pdfm i { display:block; font-style:normal; font-size:11px; color:#8a93a0; margin-top:2px; }
  .pdfm:hover { background:#eef3ff; border-color:#b9cdf5; }
  .pdfm.on { background:#1a2b48; border-color:#1a2b48; }
  .pdfm.on b { color:#fff; }
  .pdfm.on i { color:#c3cfe4; }
  .pdfmain { flex:1 1 320px; min-width:0; }
  /* 위아래로 자르지 않는다 (2026-09-23) — 목록이 길면 화면을 굴려 내려 본다 */
  .pdfmenu { max-height:none; overflow:visible; padding-right:3px; }
  .pdfgrp { margin:8px 0 3px; font-size:10.5px; font-weight:800; color:#a3abb8; letter-spacing:.3px; }
  .pdfgrp:first-child { margin-top:0; }
  .pdfhint { margin-top:6px; font-size:11.5px; color:#8a93a0; line-height:1.5; }
  .pdfhint2 { font-size:11px; color:#a3abb8; margin-left:4px; }
  .pdfopt.small { font-size:12px; color:#8a93a0; }
  .pdfopt input[type=password] { width:170px; margin-left:5px; padding:5px 7px;
                                 border:1px solid #d4d9e0; border-radius:6px; font-size:12.5px; }
  .pdfopt .w80 { width:80px; }
  .pdfopt .w200 { width:200px; }
  .pdfopt .w60 { width:60px; }
  .ttext { width:100%; box-sizing:border-box; min-height:130px; padding:10px 12px;
           border:1px solid #d4d9e0; border-radius:9px; font-size:13.5px; line-height:1.6;
           resize:vertical; font-family:inherit; }
  .ttext:focus { outline:none; border-color:#0d9488; }
  .cntbox { margin-top:10px; }
  .cntbox div { display:flex; justify-content:space-between; padding:7px 11px;
                border-bottom:1px solid #f0f2f5; font-size:13px; }
  .cntbox span { color:#667; }
  .cntbox b { font-variant-numeric:tabular-nums; color:#1a2b48; font-weight:800; }
  .qrbox { margin-top:12px; text-align:center; }
  .qrbox img { max-width:260px; width:100%; border:1px solid #eef1f5; border-radius:10px; }
  .qrbox button { display:block; margin:8px auto 0; }
  .pdfh { font-size:14px; font-weight:800; color:#1a2b48; margin-bottom:9px; }
  .pdfh span { font-size:11.5px; font-weight:700; color:#8a93a0; margin-left:5px; }
  /* 끌어다 놓는 칸 */
  .pdfdrop { padding:26px 14px; border:2px dashed #cdd5df; border-radius:11px;
             background:#fbfcfd; text-align:center; cursor:pointer; transition:.12s; }
  .pdfdrop:hover { border-color:#0d9488; background:#f0fdfa; }
  .pdfdrop.over { border-color:#0d9488; background:#ccfbf1; transform:scale(1.01); }
  .pdfdrop b { display:block; font-size:13.5px; color:#1a2b48; }
  .pdfdrop span { display:block; margin-top:4px; font-size:12px; color:#8a93a0; }
  /* 고른 파일 목록 */
  .pdffhead { display:flex; align-items:center; gap:6px; margin:11px 0 5px;
              font-size:12px; font-weight:800; color:#556; }
  .pdffhead b { color:#0d9488; }
  .pdffhead span { font-weight:700; color:#aab; }
  .pdfclr { margin-left:auto; padding:3px 9px; border:1px solid #e3e7ec; border-radius:6px;
            background:#fff; font-size:11px; font-weight:700; color:#99a; cursor:pointer; }
  .pdff { display:flex; align-items:center; gap:5px; padding:6px 9px; margin-bottom:4px;
          border:1px solid #eef1f5; border-radius:8px; background:#fff; font-size:12.5px; }
  .pdffn { flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis;
           white-space:nowrap; font-weight:700; color:#1a2b48; }
  .pdffs { flex:0 0 auto; font-size:11px; color:#99a; font-variant-numeric:tabular-nums; }
  .pdfmv, .pdfx { flex:0 0 auto; width:20px; height:20px; padding:0; line-height:1;
                  border:1px solid #e3e7ec; border-radius:5px; background:#fff;
                  font-size:10px; font-weight:800; color:#667; cursor:pointer; }
  .pdfmv:disabled { opacity:.3; cursor:default; }
  .pdfx { color:#c0392b; }
  .pdfwarn { margin-top:5px; font-size:11.5px; color:#b45309; }
  .pdfopt { display:block; font-size:12.5px; color:#445; margin:9px 0 0; }
  .pdfopt input[type=text] { width:110px; margin-left:5px; padding:5px 7px;
                             border:1px solid #d4d9e0; border-radius:6px; font-size:12.5px; }
  .pdfopt select { padding:5px 7px; border:1px solid #d4d9e0; border-radius:6px; font-size:12.5px; }
  .pdfgo { width:100%; margin-top:12px; padding:11px; border:0; border-radius:9px;
           background:#1a2b48; color:#fff; font-size:14px; font-weight:800; cursor:pointer; }
  .pdfgo:hover { background:#24395e; }
  .pdfst { min-height:18px; margin-top:9px; font-size:12.5px; color:#667; }
  .pdfst.ok { color:#0e7a52; font-weight:700; }
  .pdfst.err { color:#c81e1e; font-weight:700; }
  @media (max-width:760px){
    .pdfmenu { flex:1 1 100%; flex-direction:row; flex-wrap:wrap; }
    .pdfm { flex:1 1 auto; }
    .pdfm i { display:none; }
  }
  /* 카드 수당계산기 */
  .cdtitle { font-size:15px; font-weight:800; color:#1a2b48; margin-bottom:11px; }
  .cdtitle span { display:block; margin-top:3px; font-size:11.5px; font-weight:700; color:#8a93a0; }
  .cdtitle b { color:#0d9488; }
  /* 왼쪽 = 일시불(메뉴+계산), 오른쪽 = 할부(메뉴+계산). 좁아질 때만 위아래로 */
  .cdwrap { display:flex; gap:12px; align-items:flex-start; flex-wrap:nowrap; }
  @media (max-width:1180px){
    .cdwrap { flex-wrap:wrap; }
    .cdpair { flex:1 1 100%; }
  }
  .cdpair { flex:1 1 0; min-width:0; display:flex; gap:9px; align-items:flex-start; }
  .cdleft { flex:0 0 202px; }
  /* 직접입력 — 접었다 폈다 */
  .cdsub { display:block; width:100%; margin:14px 0 7px; padding:9px 0 0;
           border:0; border-top:1px solid #eef1f5; background:transparent;
           font-size:12px; font-weight:800; color:#556; text-align:left; cursor:pointer; }
  .cdsub:hover { color:#1a56db; }
  .cdsub small { font-size:10.5px; font-weight:700; color:#a3abb8; margin-left:4px; }
  /* 누구 몫인지 색으로 가른다 — 고객은 파랑, 나는 청록 */
  .cmp-tbl td.cust { font-weight:800; color:#1a56db; }
  .cmp-tbl td.mine { font-weight:800; color:#0f766e; }
  .cmp-tbl .crown { font-size:11px; }
  /* 고른 할부 줄 아래 상환 내역 */
  .cmp-tbl tr.det td { background:#f7f9fc; padding:10px 9px; cursor:default; }
  .det-sum { display:flex; flex-wrap:wrap; gap:4px 18px; }
  .det-sum div { display:flex; align-items:baseline; gap:6px; font-size:12.5px; color:#556; }
  .det-sum b { font-variant-numeric:tabular-nums; font-weight:800; color:#1a2b48; }
  .det-sum b.tot { color:#c0392b; }
  .det-sum b.mine { color:#0f766e; }
  .det-sum + .cdmore { margin-top:9px; }
  .cdmore small { font-size:10.5px; font-weight:700; color:#a3abb8; margin-left:4px; }
  .det-none { font-size:12.5px; color:#a3abb8; }
  /* 카드사 비교표 — 금액 바로 아래에 전 카드사 */
  .cmp-wrap { margin-top:10px; border:1px solid #eef1f5; border-radius:9px; overflow:auto; }
  .cmp-tbl { width:100%; border-collapse:collapse; font-size:12.5px; }
  .cmp-tbl th { position:sticky; top:0; z-index:1; background:#f4f6f8; color:#a3abb8;
                font-size:10.5px; font-weight:800; padding:6px 7px; text-align:left;
                cursor:pointer; white-space:nowrap; border-bottom:1px solid #e3e7ec; }
  .cmp-tbl th.r { text-align:right; }
  .cmp-tbl th:hover { color:#1a56db; }
  .cmp-tbl th.on { color:#0f766e; }
  .cmp-tbl th { user-select:none; }
.cmp-tbl th i { font-style:normal; font-size:9px; margin-left:2px;
                 opacity:.35; }
.cmp-tbl th:hover i { opacity:.7; }
.cmp-tbl th.on i { opacity:1; }
  .cmp-tbl td { padding:6px 7px; border-bottom:1px solid #f4f6f8; white-space:nowrap; }
  .cmp-tbl td.r { text-align:right; font-variant-numeric:tabular-nums; }
  .cmp-tbl td.nm { font-weight:800; color:#1a2b48; }
  .cmp-tbl td.lb { color:#8a93a0; }
  .cmp-tbl tbody tr { cursor:pointer; }
  .cmp-tbl tbody tr:hover td { background:#f0f3f8; }
  .cmp-tbl tbody tr.on td { background:#eef4ff; }
  .cmp-tbl tbody tr.self td { background:#fffdf3; }
.cmp-tbl tbody tr.self td.nm { color:#b45309; }
.cmp-tbl tbody tr.self.on td { background:#fef3c7; }
.cmp-tbl tbody tr.on td.nm { color:#1a56db; }
  /* 정렬 중인 칸 — 무엇으로 세웠는지 세로로 보이게 (뒤에 둬야 hover 를 이긴다) */
.cmp-tbl td.sc { background:#eaf1fd; }
.cmp-tbl tbody tr:hover td.sc { background:#dfe9fb; }
.cmp-tbl tbody tr.on td.sc { background:#dbe7fb; }
.cmp-tbl th.sc { background:#e4edfb; color:#1a56db; }
.cmp-none { margin-top:10px; padding:14px; text-align:center; font-size:12.5px; color:#aab;
              border:1px dashed #e3e7ec; border-radius:9px; }
  .cdleft .mitem { padding:8px 10px; font-size:13px; }
  .cdleft .mc { color:#0d9488; }
  .cdleft .mitem.on .mc { color:#fff; }
  .cdlbl { font-size:11px; font-weight:800; color:#8a93a0; margin-bottom:5px; }
  .cdhint2 { margin-top:5px; font-size:10.5px; color:#a3abb8; line-height:1.4; }
  .cdtag { margin-left:5px; padding:1px 7px; border-radius:5px; background:#e8effb;
           color:#2c5bb5; font-size:10.5px; font-weight:800; vertical-align:2px; }
  .cdcol { flex:1 1 0; min-width:0; padding:13px 14px;
           border:1px solid #e3e7ec; border-radius:11px; background:#fff; }
  .cdh { font-size:13.5px; font-weight:800; color:#1a2b48; margin-bottom:10px; }
  .cdf { display:flex; align-items:center; gap:7px; margin-bottom:7px; }
  .cdf > span { flex:0 0 66px; font-size:12px; font-weight:800; color:#556; }
  .cdf input { flex:1; min-width:0; padding:9px 11px; border:1px solid #d4d9e0; border-radius:8px;
               font-size:15px; font-weight:700; text-align:right;
               font-variant-numeric:tabular-nums; }
  .cdf input:focus { outline:none; border-color:#0d9488; }
  .cdf em { flex:0 0 auto; font-style:normal; font-size:11.5px; color:#889; }
  .cdq { display:flex; gap:4px; margin:0 0 9px 73px; }
  .cdq button { flex:1 1 auto; padding:5px 4px; border:1px solid #cdd5df; border-radius:7px;
                background:#fff; font-size:11px; font-weight:700; color:#556; cursor:pointer; }
  .cdq .clr { color:#99a; }
  .cdopts { flex:1; display:flex; flex-wrap:wrap; gap:4px; min-width:0; }
  .cdopt { flex:1 1 0; padding:8px 4px; border:1px solid #d4d9e0; border-radius:6px;
           background:#fff; font-size:12.5px; font-weight:700; color:#445; cursor:pointer;
           font-variant-numeric:tabular-nums; }
  .cdopt:hover { background:#eef3ff; border-color:#b9cdf5; }
  .cdopt.on { background:#1a2b48; color:#fff; border-color:#1a2b48; }
  .cdtbl { width:100%; border-collapse:collapse; font-size:12.5px; }
  .cdtbl th { background:#f4f6f8; color:#556; font-size:11px; font-weight:800;
              padding:6px 7px; border-bottom:1px solid #e3e7ec; text-align:left; }
  .cdtbl th.r, .cdtbl td.r { text-align:right; font-variant-numeric:tabular-nums; }
  .cdtbl td { padding:5px 7px; border-bottom:1px solid #f0f2f5; }
  .cdpb { font-weight:800; color:#0f766e; }
  .cdres { margin-top:11px; padding:11px 13px; background:#f7f9fc;
           border:1px solid #e3e7ec; border-radius:10px; }
  .cdres div { display:flex; align-items:baseline; justify-content:space-between;
               padding:4px 0; font-size:13px; color:#556; }
  .cdres b { font-variant-numeric:tabular-nums; font-weight:800; color:#1a2b48; }
  .cdres .big { padding:2px 0 8px; margin-bottom:4px; border-bottom:1px solid #e3e7ec; }
  .cdres .big b { font-size:24px; color:#0d9488; }
  .cdres .big i { font-style:normal; font-size:12px; color:#8a93a0; margin-left:3px; }
  .cdres .big2 { padding:2px 0 8px; margin-bottom:4px; border-bottom:1px solid #e3e7ec; }
  .cdres .big2 b { font-size:20px; color:#1a56db; }
  .cdres .big2 i { font-style:normal; font-size:12px; color:#8a93a0; margin-left:3px; }
  .cdres .sum { margin-top:4px; padding-top:7px; border-top:1px solid #e3e7ec; }
  .cdres .sum b { color:#c0392b; }
  .cdmore { width:100%; margin-top:8px; padding:9px; border:1px solid #d4d9e0; border-radius:8px;
            background:#fff; font-size:12.5px; font-weight:700; color:#56607a; cursor:pointer; }
  .cdmore:hover { background:#eef3ff; }
  .cdtblwrap { max-height:none; overflow:visible; margin-top:8px;
               border:1px solid #eef1f5; border-radius:8px; }
  .cdtbl thead th { position:sticky; top:var(--머리높이, 96px); z-index:1; }
  .cdtbl tfoot th { position:sticky; bottom:0; background:#1a2b48; color:#fff;
                    font-size:11.5px; padding:7px; text-align:right; }
  .cdtbl tfoot th:first-child { text-align:left; }
  /* 등록대행사 — 왼쪽 시·도 메뉴 / 오른쪽 목록 */
  .agywrap { display:flex; gap:12px; align-items:flex-start; flex-wrap:wrap; }
  .agyleft { flex:0 0 150px; }
  .agyleft .mlist { max-height:calc(100vh - 260px); }
  .agyleft .mitem { padding:7px 10px; font-size:13px; }
  .agymain { flex:1 1 320px; min-width:0; }
  .agyn { font-size:11.5px; font-weight:700; color:#8a93a0; margin-left:4px; }
  .agysearch { width:100%; box-sizing:border-box; margin:8px 0 9px; padding:9px 11px;
               border:1px solid #d4d9e0; border-radius:8px; font-size:13.5px; }
  .agysec { margin-bottom:14px; }
  .agysech { font-size:12px; font-weight:800; color:#0d9488; margin-bottom:4px; }
  .agysech span { color:#aab; font-weight:700; }
  .agyarea { width:88px; color:#7a8397; font-size:12.5px; }
  .agyname { font-weight:700; color:#1a2b48; }
  .agyphone { width:132px; text-align:right; }
  .agyphone a { color:#1a56db; font-weight:700; text-decoration:none;
                font-variant-numeric:tabular-nums; }
  /* 환경공단보조금 */
  .subhead { font-size:13.5px; font-weight:800; color:#1a2b48; margin-bottom:4px; }
  .subnote { font-size:12px; color:#778; line-height:1.65; margin-bottom:10px; }
  .subsrc { font-size:11.5px; color:#99a; margin-top:10px; }
  /* 보조금은 잘못 안내하면 곧장 손해로 이어져서, 눈에 띄게 경고를 둔다 */
  .subwarn { border:1px solid #f0c8c0; background:#fef6f4; border-radius:9px;
             padding:11px 13px; margin-bottom:11px; }
  .subwarn b { display:block; font-size:13.5px; font-weight:800; color:#b3261e; margin-bottom:4px; }
  .subwarn p { margin:0; font-size:12.5px; color:#7a4a44; line-height:1.7; }
  .subwarn a { color:#b3261e; font-weight:800; }
  .subq { width:100%; padding:8px 10px; margin-bottom:9px; border:1px solid #d4d9e0;
          border-radius:8px; font-size:13.5px; }
  /* 브랜드는 왼쪽 메뉴로 — 재고조회의 차종 목록과 같은 모양 */
  .sublay { display:flex; gap:14px; align-items:flex-start; flex-wrap:wrap; }
  .subnav { flex:0 0 190px; position:sticky; top:10px;
            border:1px solid #e6e9ee; border-radius:10px; padding:7px; background:#fbfcfd; }
  .subnav .nvh { font-size:11px; font-weight:800; color:#8a93a0; padding:2px 6px 6px; }
  .subbody { flex:1 1 480px; min-width:0; }
  .bitem { display:flex; align-items:center; gap:6px; width:100%;
           padding:8px 10px; border:0; border-radius:7px; background:transparent; font-size:13.5px;
           font-weight:700; color:#1a2b48; cursor:pointer; text-align:left; }
  .bitem:hover { background:#eef2f8; }
  .bitem.on { background:#0f766e; color:#fff; }
  .bitem .bn { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .bitem .bc { flex:0 0 auto; margin-left:auto; font-size:12px; color:#0f766e; font-weight:800;
               font-variant-numeric:tabular-nums; }
  .bitem.on .bc { color:#c8f0ea; }
  @media (max-width:720px){
    .subnav { flex:1 1 100%; position:static; }
    .subnav .nvlist { display:flex; flex-wrap:wrap; gap:4px; }
    .bitem { width:auto; flex:1 1 auto; }
  }
  .subgrp { font-size:12.5px; font-weight:800; color:#fff; background:#1a2b48;
            display:inline-block; padding:2px 9px; border-radius:11px; margin:12px 0 6px; }
  .subtbl { width:100%; border-collapse:collapse; font-size:13px; }
  .subtbl th { background:#f4f6f8; color:#556; font-size:11.5px; font-weight:800;
               padding:6px 8px; border-bottom:1px solid #e3e7ec; text-align:left; }
  .subtbl td { padding:6px 8px; border-bottom:1px solid #f0f2f5; }
  .subtbl td.n { text-align:right; font-weight:800; font-variant-numeric:tabular-nums; }
  .subtbl td.n em { font-style:normal; font-weight:600; color:#8a93a0; font-size:11px; }
  .subtbl td.n.sum { color:#0f766e; background:#f2fbf9; }
  .subtbl td.n.sum em { color:#7fbdb2; }
  .subtbl tbody tr { cursor:pointer; }
  .subtbl tr:hover td { background:#fafbfc; }
  /* 눌러 둔 줄 — 긴 표에서 보던 자리를 잃지 않게 */
  .subtbl tr.pick td { background:#fff8e1; box-shadow:inset 3px 0 0 #f59e0b; }
  .subtbl tr.pick td.n.sum { background:#fdf3d3; }
  .subtbl tr.pick:hover td { background:#fff4d0; }
  .subsum { font-size:11.5px; color:#8a93a0; font-weight:700; }

  /* 납기정보 */
  .dlvhead { padding:9px 12px; background:#eef4ff; border:1px solid #d6e2fb; border-radius:9px;
             font-size:12.5px; color:#2b4a7d; margin-bottom:10px; }
  .dlvhead span { color:#6b86b5; }
  .cats2 em { font-style:normal; font-size:10.5px; color:#aab; }
  .cat2.on em { color:#cfd8e6; }
  .dlvcard { border:1px solid #e3e7ec; border-radius:10px; padding:10px 12px; margin-bottom:8px; }
  .dlvtop { display:flex; align-items:baseline; gap:7px; margin-bottom:6px;
            padding-bottom:6px; border-bottom:1px solid #f0f2f5; }
  .dlvtop b { font-size:15px; font-weight:800; }
  .dcat { font-size:10.5px; font-weight:800; color:#8a93a0; background:#f2f4f7;
          padding:1px 7px; border-radius:5px; }
  .dlvline { display:flex; align-items:center; gap:10px; padding:5px 0; }
  .dtrim { flex:1 1 auto; font-size:13px; color:#334; min-width:0; }
  .dlead { flex:0 0 auto; padding:3px 10px; border-radius:6px; font-size:12.5px;
           font-weight:800; white-space:nowrap; }
  .dlead.fast { background:#e7f6f2; color:#0f766e; }
  .dlead.mid  { background:#fff3e0; color:#b45309; }
  .dlead.slow { background:#fdeceb; color:#c0392b; }
  .dlead.etc  { background:#f2f4f7; color:#667; }
  .dnote { font-size:11.5px; color:#8a93a0; line-height:1.6; padding:0 0 5px 2px; }
  .dlvlegend { display:flex; gap:6px; justify-content:center; margin-top:12px; flex-wrap:wrap; }
  .dlvlegend .dlead { font-size:11px; font-weight:700; }

  .layout { display:flex; gap:14px; align-items:flex-start; flex-wrap:wrap; }
  .left { flex:0 0 230px; position:sticky; top:10px; }
  .right { flex:1 1 560px; min-width:0; }
  .card { background:#fff; border-radius:12px; box-shadow:0 1px 4px rgba(0,0,0,.07); padding:12px; }

  .cats { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:8px; }
  .catbtn { padding:5px 9px; border:1px solid #d4d9e0; border-radius:14px; background:#fafbfc;
            font-size:12px; font-weight:700; color:#445; cursor:pointer; }
  .catbtn.on { background:#1a2b48; color:#fff; border-color:#1a2b48; }
  .cats .catall { flex:1 1 100%; }                       /* '전체'는 한 줄 독차지 */
  .cats .catbtn:not(.catall) { flex:1 1 auto; padding:5px 6px; white-space:nowrap; }
  .msort { display:flex; gap:4px; margin-bottom:8px; }
  .sortbtn { flex:1; padding:4px 0; border:1px solid #d4d9e0; border-radius:6px; background:#fafbfc;
             font-size:11px; font-weight:700; color:#667; cursor:pointer; }
  .sortbtn.on { background:#0f766e; color:#fff; border-color:#0f766e; }

  .mlist { display:flex; flex-direction:column; gap:2px; max-height:70vh; overflow-y:auto; }
  .mitem { display:flex; align-items:center; gap:6px;
           padding:8px 10px; border:0; border-radius:7px; background:#fff; font-size:13.5px;
           font-weight:700; color:#1a2b48; cursor:pointer; text-align:left; }
  .mitem:hover { background:#f0f3f8; }
  .mitem.on { background:#c0392b; color:#fff; }
  .mitem .mn { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .mitem .my { flex:0 0 auto; font-size:10.5px; color:#aab; font-weight:800; }
  .mitem .mc { flex:0 0 auto; margin-left:auto; font-size:12px; color:#0f766e; font-weight:800;
               font-variant-numeric:tabular-nums; }
  .mitem.on .my { color:#ffd9d3; }
  .mitem.on .mc { color:#fff; }
  .mitem.none { opacity:.5; }                            /* 재고 0 — 주문 조회용으로 남겨 둔다 */
  .mitem.none .mc { color:#c6cbd2; }
  /* 재고표가 갈려 대수가 저절로 고쳐진 자리 — 6초쯤 반짝여서 무엇이 움직였는지 알린다.
     고른 차(.on)는 이미 빨간 바탕이라 건드리지 않는다. */
  .mitem.up:not(.on)   { animation:mbumpU 6s ease-out; }
  .mitem.down:not(.on) { animation:mbumpD 6s ease-out; }
  .mitem.up:not(.on) .mc   { color:#0d9488; }
  .mitem.down:not(.on) .mc { color:#c0392b; }
  @keyframes mbumpU { 0%,55% { background:#d1fae5; } 100% { background:transparent; } }
  @keyframes mbumpD { 0%,55% { background:#fee2e2; } 100% { background:transparent; } }
  .mnone { padding:10px; font-size:12.5px; color:#99a; }

  .rtop { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
  .rtop input.s { flex:1 1 200px; min-width:0; padding:9px 12px; border:1px solid #cdd5df;
                  border-radius:8px; font-size:13.5px; }
  .btn { padding:8px 12px; border:1px solid #cdd5df; border-radius:8px; background:#f4f6f9;
         cursor:pointer; font-size:13px; white-space:nowrap; font-weight:700; color:#445; }
  .btn.on { background:#0f766e; color:#fff; border-color:#0f766e; }
  select.btn { font-weight:700; }

  .facets { display:flex; flex-direction:column; gap:8px; margin-bottom:12px;
            padding:10px 12px; background:#f7f9fc; border-radius:10px; }
  .facet { display:flex; gap:8px; align-items:flex-start; }
  .flabel { flex:0 0 76px; font-size:12px; font-weight:800; color:#667; padding-top:5px; word-break:keep-all; }
  .chips { display:flex; flex-wrap:wrap; gap:5px; flex:1; max-height:112px; overflow-y:auto; }
  .chip { padding:4px 9px; border:1px solid #d4d9e0; border-radius:7px; background:#fff;
          font-size:12px; cursor:pointer; }
  /* 숫자 폭을 고정해 둔다 — 1500 → 100 으로 줄 때 칩 크기가 흔들리지 않게 */
  .chip em { color:#aab; font-style:normal; font-size:10px; display:inline-block;
             min-width:2.6em; text-align:right; font-variant-numeric:tabular-nums; }
  /* 결과가 0이어도 칩은 남긴다(자리 유지). 누를 수는 없게. */
  .chip.zero { opacity:.45; background:#f1f2f4; color:#aab1ba; border-color:#e6e8ec;
               cursor:not-allowed; }
  .chip.zero em { color:#c2c7cf; }
  .chip.on { background:#0f766e; color:#fff; border-color:#0f766e; }
  .chip.on em { color:#bfe; }
  .chip.opt.on { background:#1a56db; border-color:#1a56db; }
  .chip.my { font-weight:800; }
  .chip.my.on { background:#c0392b; border-color:#c0392b; }
  .chip.my.on em { color:#ffd9d3; }
  /* 차 이름 — 구분 맨 앞에 둔다 (긁어 붙였을 때 무슨 차인지 바로 보이게) */
  .mdtag { display:inline-block; padding:1px 7px; margin:0 4px 2px 0; border-radius:5px;
           background:#1a2b48; color:#fff; font-size:11.5px; font-weight:800; }
  .mytag { display:inline-block; padding:1px 6px; margin:0 3px 2px 0; border-radius:5px;
           background:#fdeceb; color:#c0392b; font-size:11px; font-weight:800; }
  .chip.col { display:inline-flex; align-items:center; gap:5px; }
  .chip.col.on { background:#7c3aed; border-color:#7c3aed; }
  .chip.col.on em { color:#e5d9ff; }
  .sw { width:11px; height:11px; border-radius:3px; border:1px solid rgba(0,0,0,.18); flex:0 0 auto; }

  .cnt { font-size:12.5px; color:#667; margin-bottom:6px; font-weight:700; }
  .cnt b { color:#c0392b; }
  table { width:100%; border-collapse:collapse; font-size:12.5px; }
  th { background:#f4f6f9; color:#556; font-weight:800; font-size:11.5px; text-align:left;
       padding:7px 8px; border-bottom:1px solid #e3e7ec; position:sticky; top:0;
       white-space:nowrap; }   /* 폰에서 '구 분 / 사 양 급' 처럼 글자마다 끊기던 것 */
  td { padding:7px 8px; border-bottom:1px solid #eef0f3; vertical-align:top; }
  tr:hover td { background:#fafbfd; }
  /* 코드 칸: 탭을 살려서 보여준다(white-space:pre). 복사하면 탭이 그대로 따라간다. */
  .code { font-family:Consolas,monospace; font-weight:800; letter-spacing:.3px;
          white-space:pre; tab-size:4; -moz-tab-size:4; }
  /* 차량 · 코드 — 윗줄 차명·연식·엔진 / 아랫줄 구동·등급 / 그 밑에 코드 */
  .spec-n { display:flex; flex-wrap:nowrap; align-items:center; gap:0;
            overflow:hidden; margin-bottom:2px; }
  .spec-n > span { flex:0 0 auto; }
  .spec-n:empty { display:none; }
  /* 코드는 차 이름 밑에 한 줄로 — 판매코드 · 옵션 · 외장 · 내장.
     칸이 좁으니 탭을 두 칸으로 좁혀 잡는다 (긁어서 엑셀에 붙이면 그대로 나뉜다) */
  .spec .code { font-size:12px; color:#5b6675; margin-top:2px;
                tab-size:2; -moz-tab-size:2; }

  .code .ecode { color:#0f766e; }
  .code .icode { color:#8a5a2b; }
  .code .ccode { color:#6d28d9; font-weight:700; }   /* 출고센터 번호 Y24 (2026-10-14) */
  /* 옵션 조합코드 — 판매코드 바로 뒤에 붙는다 (재고 엑셀과 같은 배치) */
  .combo { font-family:Consolas,monospace; font-weight:800; color:#1a56db; white-space:nowrap; }
  /* 인승은 차 이름 바로 옆 — 카니발 7인승·9인승처럼 이름만으로는 안 갈리는 차가 있다 */
  .gtag.seat { background:#e8effb; color:#2c5bb5; font-weight:800; }
  /* 등급은 맨 아랫줄에 따로 — 급을 바로 알아보게 조금 진하게 */
  .gtag.tr { background:#eaeef5; color:#2b3a52; font-weight:800; }
  .gtag { display:inline-block; padding:1px 6px; margin:0 3px 2px 0; border-radius:5px;
          background:#eef2f7; color:#455; font-size:11px; font-weight:700; }
  .opt { color:#334; position:relative; }
  /* 띠가 붙는 칸에만 자리를 낸다 (재고가 없는 행은 발견시각도 없다) */
  .opt.seenpad { padding-bottom:19px; }
  .opt .none { color:#aab; }
  /* 이 재고가 잡힌 시각 — 옵션칸 바닥에 붙여 두는 띠.
     칸마다 높이가 달라 글이 뜨는 자리가 들쭉날쭉해지니 아래에 고정한다. */
  .opt .seen { position:absolute; left:0; right:0; bottom:0;
               padding:2px 6px 3px; border-top:1px solid #eef1f5;
               font-size:10.5px; color:#d0302f; font-weight:700;
               white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
               font-variant-numeric:tabular-nums; }
  /* '발견시간' 말머리는 시각보다 한 톤 흐리게 — 눈이 숫자로 먼저 가게 */
  .opt .seen em { font-style:normal; color:#d0302f; font-weight:600; }   /* 빨간 글씨 (2026-10-11) */
  /* 고른 조건을 결과에서 형광펜 친 것처럼 */
  mark.hl { background:#ffd08a; color:#5c3a00; padding:1px 4px; border-radius:4px;
            font-weight:800; }
  .pr { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
  .pr .base { display:block; font-size:11.5px; color:#8a93a0; font-weight:700; }
  .pr .add { display:block; font-size:11.5px; color:#8a93a0; font-weight:700; }
  /* 합계 앞의 가로줄 = 엑셀에서 밑줄 긋고 더하는 그 모양 */
  .pr .sum { display:block; font-size:13px; font-weight:800; color:#1a2b48;
             border-top:1px solid #cdd5df; margin-top:2px; padding-top:2px; }
  .pr .sum.only { border-top:0; margin-top:0; padding-top:0; }
  .pr .zero { color:#d5d9de; font-weight:600; }
  /* 가격 밑의 수당계산 버튼 — 그 행의 가격을 그대로 들고 모달로 간다.
     줄 아무 데나 눌러도 복사되는 화면이라, 이 버튼은 copyRow 가 따로 비켜 준다. */
  .pr .calcb { display:block; width:100%; margin-top:4px; padding:2px 0; cursor:pointer;
               border:1px solid #cfdcf3; border-radius:6px; background:#f4f8ff;
               color:#1a56db; font-size:11px; font-weight:800; }
  .pr .calcb:hover { background:#e2ecff; }
  /* 가격 밑의 수당계산 버튼 — 그 행의 가격을 그대로 들고 모달로 간다 */
  /* 수당계산 모달 */
  .cmcar { font-size:12.5px; color:#1a2b48; font-weight:700; margin-bottom:10px; }
  .cmcar .my { display:inline-block; padding:1px 6px; margin-right:3px; border-radius:5px;
               background:#1a2b48; color:#fff; font-size:11px; }
  .cmbd { border:1px solid #e3e7ec; border-radius:9px; padding:9px 12px; margin-bottom:11px;
          font-variant-numeric:tabular-nums; }
  .cmbd div { display:flex; align-items:baseline; justify-content:space-between; gap:10px;
              font-size:12.5px; color:#667; padding:2px 0; }
  .cmbd div b { font-weight:700; color:#334; }
  .cmbd .tot { margin-top:4px; padding-top:6px; border-top:1px solid #cdd5df; }
  .cmbd .tot span { color:#1a2b48; font-weight:700; }
  .cmbd .tot b { font-size:15px; font-weight:800; color:#1a2b48; }
  .cmsel { display:flex; align-items:center; gap:8px; margin-bottom:11px; font-size:12.5px; color:#556; }
  .cmsel select { flex:1; min-width:0; padding:7px 9px; border:1px solid #d4d9e0;
                  border-radius:8px; font-size:13px; background:#fff; }
  .cmres { padding:14px 16px; background:#1a2b48; color:#fff; border-radius:10px; }
  .cmres .rl { display:flex; align-items:baseline; justify-content:flex-end; gap:8px; }
  .cmres .rl span { font-size:12px; opacity:.8; }
  .cmres .rl b { font-size:24px; font-weight:800; font-variant-numeric:tabular-nums; }
  .cmres .rl i { font-style:normal; font-size:13px; opacity:.85; }
  .cmres .rex, .cmres .r33 { margin-top:6px; padding-top:6px;
                             border-top:1px solid rgba(255,255,255,.18); }
  .cmres .rex b, .cmres .r33 b { font-size:19px; opacity:.92; }
  .cmres .r33 b { color:#ffd08a; }
  .clr .cl { display:flex; align-items:center; gap:4px; font-size:12px; }
  .clr .cl.in { color:#8a93a0; font-size:11.5px; margin-top:2px; }
  .clr .cl em { font-style:normal; font-size:10px; color:#aab; font-family:Consolas,monospace; }
  .clr .zero { color:#b0b6bd; font-size:11.5px; }
  /* 색상 추가금 — 외장색에 붙는 값이라 외장 바로 밑에 둔다.
     별표는 재고표 실측이 아니라 같은 모델·색 관측값을 쓴 것 */
  .cadd2 { display:block; margin:1px 0 2px 16px; font-size:11px; font-weight:800; color:#b45309; }
  .pr .cadd { color:#b45309; }
  .stk { white-space:nowrap; }
  .stk b { color:#0f766e; font-size:13px; }
  .stk .zero { color:#c6cbd2; }
  .stk .br { display:block; font-size:11px; color:#8a93a0; margin-top:2px; white-space:normal; }
  .stk .made { color:#aab1ba; }
  .kd { display:inline-block; padding:0 5px; margin-right:3px; border-radius:4px;
        font-weight:700; background:#eef2f7; color:#556; }
  .kd.k-조건 { background:#fff3e0; color:#b45309; }
  .kd.k-전시 { background:#ede9fe; color:#6d28d9; }
  .kd.k-감가 { background:#fee2e2; color:#b91c1c; }
  .dc { text-align:right; white-space:nowrap; color:#c0392b; font-weight:800; }
  .dc .zero { color:#d5d9de; font-weight:600; }
  /* 구분마다 한 줄 — 구분 이름은 흐리게 앞에 (한정 -30~50만) */
  .dc .dcl { line-height:1.5; }
  .dc .dcl + .dcl { margin-top:1px; }
  .dc .dcl > b { margin-right:4px; color:#98a1ae; font-size:10.5px; font-weight:700; }
  .dc .dcl .dcp { display:block; color:#7a8492; font-size:10.5px; font-weight:400; white-space:nowrap; }   /* 기본 150만 · 한정 100만 */
  .rq { text-align:right; white-space:nowrap; color:#b45309; font-weight:800;
        font-variant-numeric:tabular-nums; }
  .rq .zero { color:#d5d9de; font-weight:600; }
  .chip.kind.on { background:#0f766e; border-color:#0f766e; }
  .chip.kind.k-조건.on { background:#b45309; border-color:#b45309; }
  .chip.kind.k-전시.on { background:#6d28d9; border-color:#6d28d9; }
  .chip.kind.k-감가.on { background:#b91c1c; border-color:#b91c1c; }
  .empty { padding:34px; text-align:center; color:#99a; }

  /* 재고표 기준 시각 띠 */
  .asof:empty { display:none; }
  /* 기준시각 띠 — 언제 자료인지가 중요해서 글자를 키워 둔다 */
  .asof { display:flex; align-items:center; flex-wrap:wrap; gap:9px; margin-bottom:9px; padding:10px 14px;
          background:#eef4ff; border:1px solid #d6e2fb; border-radius:9px;
          font-size:15px; color:#2b4a7d; }
  .asof b { font-weight:800; font-size:16px; color:#1a3f7d;
            font-variant-numeric:tabular-nums; }
  /* 재고표 구성 (정상/조건/전시/감가) — 표 안의 .kd 칩을 그대로 쓴다 */
  .asof .mix { display:flex; align-items:center; flex-wrap:wrap; }
  .asof .mix .tot { font-weight:800; margin-left:3px; }
  .gear { margin-left:auto; border:1px solid #cdd5df; background:#fff; border-radius:7px;
          padding:2px 8px; cursor:pointer; font-size:13px; }

  /* 우측 하단 문의 버튼 — 위 전화 / 아래 카톡 */
  /* 표 오른쪽 아래를 가리지 않게 위로 올려 둔다 */
  .fabs { position:fixed; right:20px; bottom:132px; z-index:40;
          display:flex; flex-direction:column; gap:10px; align-items:center; }
  .fab { width:54px; height:54px; border:0; border-radius:50%; cursor:pointer;
         display:none; align-items:center; justify-content:center;
         padding:0; overflow:hidden; text-decoration:none;
         box-shadow:0 4px 14px rgba(20,26,38,.28); transition:transform .12s, box-shadow .12s; }
  .fab.on { display:flex; }
  .fab:hover { transform:translateY(-2px); box-shadow:0 7px 20px rgba(20,26,38,.34); }
  /* 그림은 car-crm 의 call.png · kakao.png 를 그대로 쓴다.
     call.png 은 회색 여백 안에 초록 동그라미가 60% 크기로 들어 있어 172% 로 키워 꽉 채운다.
     kakao.png 은 노란 사각형이 가장자리까지 차 있어 그대로 두고 둥글게만 자른다. */
  .fab-tel { background:#159737 url('/img/call.png') no-repeat center / 172%; }
  .fab-kko { background:#fae100 url('/img/kakao.png') no-repeat center / 100%; }
  .fab-lbl { position:absolute; right:64px; white-space:nowrap; background:#1a2b48; color:#fff;
             font-size:12px; font-weight:700; padding:5px 9px; border-radius:7px;
             opacity:0; pointer-events:none; transition:opacity .12s; }
  .fab-w { position:relative; display:flex; align-items:center; }
  .fab-w:hover .fab-lbl { opacity:1; }
  /* [문의] 하나로 접어 둔다 — 두 개를 늘 띄워 두면 표 오른쪽 아래를 가린다.
     펼친 것만 위로 자라고, 자리는 아래(문의 단추)에 고정된다. */
  .fab-main { background:#1a2b48; color:#fff; font-family:inherit; font-size:13.5px;
              font-weight:800; letter-spacing:-.02em; }
  .fab-main:hover { background:#12203a; }
  .fabitems { display:none; flex-direction:column; gap:10px; align-items:center; }
  .fabs.open .fabitems { display:flex; }
  /* 카톡 모달 — 1:1 개인톡 / 오픈카톡방 두 갈래 */
  .kko-a { display:flex; align-items:center; gap:11px; padding:13px 15px; margin-bottom:8px;
           border:1px solid #e3e7ec; border-radius:10px; background:#fff;
           text-decoration:none; color:#1a2b48; }
  .kko-a:hover { background:#fffbe6; border-color:#f2d94e; }
  .kko-i { flex:0 0 40px; height:40px; border-radius:10px; background:#fae100;
           display:flex; align-items:center; justify-content:center; overflow:hidden; }
  .kko-i img { width:100%; height:100%; object-fit:cover; display:block; }
  .kko-t { min-width:0; }
  .kko-t b { display:block; font-size:14.5px; font-weight:800; }
  .kko-t span { font-size:12px; color:#8a93a0; }
  .kko-pw { margin-left:auto; flex:0 0 auto; padding:4px 10px; border-radius:7px;
            background:#1a2b48; color:#fff; font-size:12px; font-weight:800;
            font-variant-numeric:tabular-nums; }
  .kko-none { padding:22px; text-align:center; color:#a3abb8; font-size:13px; }
  /* 전화 모달 */
  .tel-who { font-size:13px; color:#8a93a0; margin-bottom:6px; }
  .tel-num { display:block; font-size:26px; font-weight:800; color:#1a2b48;
             letter-spacing:.5px; text-decoration:none; margin-bottom:4px; }
  .tel-num:hover { color:#1a56db; }
  .tel-hint { font-size:12px; color:#a3abb8; }
  /* 폰에서는 화면이 좁아 이 버튼이 표·단추를 덮는다.
     크기를 줄이고 모서리로 더 붙인다. 페이지 맨 아래 내용이 가리지 않게
     .wrap 의 아래 여백도 같이 늘려 둔다(아래 @media 참고) */
  @media (max-width:640px) {
    .fabs { right:10px; bottom:10px; gap:8px; }
    .fab { width:44px; height:44px; box-shadow:0 3px 10px rgba(20,26,38,.3); }
    .fab-lbl { display:none; }
  }
  /* ── 차량가격 찾기 — 수당 계산기 아래 접이식 칸 ──────────────────
     등급·옵션을 골라 그 사양의 총가격을 짚고, 그 값을 위 차량가에 넣는다. */
  .ppwrap { margin-top:12px; border-top:1px solid #eef0f3; padding-top:10px; }
  .ppbtn { width:100%; display:flex; align-items:center; gap:6px; padding:9px 11px;
           border:1px solid #d4d9e0; border-radius:9px; background:#fafbfc;
           font-size:13px; font-weight:800; color:#1a2b48; cursor:pointer; text-align:left; }
  .ppbtn:hover { background:#eef3ff; border-color:#b9cdf5; }
  .ppbtn i { font-style:normal; font-size:11px; font-weight:600; color:#8a93a0; }
  .ppbtn .ar { margin-left:auto; color:#8a93a0; font-size:11px; }
  .ppbody { padding:12px 2px 2px; }
  .pprow { display:flex; align-items:flex-start; gap:8px; margin-bottom:9px; }
  .pplbl { flex:0 0 52px; font-size:11.5px; font-weight:800; color:#8a93a0; padding-top:7px; }
  .ppfields { flex:1; min-width:0; display:flex; flex-wrap:wrap; gap:5px; }
  /* 구분·연식도 옵션과 같이 버튼으로 고른다. 고른 것을 한 번 더 누르면 풀린다 */
  .ppchip { padding:6px 12px; border:1px solid #d4d9e0; border-radius:7px; background:#fff;
            font-size:12.5px; font-weight:700; color:#334; cursor:pointer; }
  .ppchip:hover { background:#eef3ff; border-color:#b9cdf5; }
  .ppchip.on { background:#0f766e; color:#fff; border-color:#0f766e; }
  .ppfix { flex:0 0 auto; padding:7px 11px; border:1px solid #eef0f3; border-radius:7px;
           background:#f7f9fc; font-size:12.5px; font-weight:700; color:#8a93a0; }
  .ppopt { padding:6px 11px; border:1px solid #d4d9e0; border-radius:14px; background:#fff;
           font-size:12px; font-weight:700; color:#445; cursor:pointer; }
  .ppopt:hover { background:#eef3ff; border-color:#b9cdf5; }
  .ppopt.on { background:#1a2b48; color:#fff; border-color:#1a2b48; }
  .ppopt.off { opacity:.35; cursor:not-allowed; }
  .ppopt.off:hover { background:#fff; border-color:#d4d9e0; }
  .ppnone { font-size:12px; color:#a3abb8; padding:4px 0; }
  .ppres { margin-top:10px; padding:11px 13px; border-radius:9px;
           background:#f4f7fd; border:1px solid #dde6f7; }
  .ppsum { font-size:11.5px; color:#6b7f9e; margin-bottom:4px; }
  .pptot { display:flex; align-items:baseline; gap:6px; }
  .pptot b { font-size:22px; font-weight:800; color:#1a2b48; font-variant-numeric:tabular-nums; }
  .pptot span { font-size:12px; color:#8a93a0; }
  .ppcode { margin-left:auto; font-size:11px; font-weight:700; color:#8a93a0;
            font-family:Consolas,"D2Coding",monospace; }
  .ppgo { width:100%; margin-top:9px; padding:10px; border:0; border-radius:8px;
          background:#1a56db; color:#fff; font-size:13.5px; font-weight:800; cursor:pointer; }
  .ppgo:hover { background:#164ac0; }
  .ppwait { font-size:12px; color:#a3abb8; padding:10px 0; }
  /* ── 제조사 링크 — 브랜드마다 카드 하나, 안에 링크 단추 ─────────── */
  .blgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:12px; }
  .blcard { border:1px solid #e3e7ec; border-radius:12px; padding:13px 14px 14px; background:#fff; }
  .blhead { display:flex; align-items:center; gap:8px; margin-bottom:10px; }
  .bldot { width:10px; height:10px; border-radius:50%; flex:0 0 auto;
           box-shadow:0 0 0 2px #fff, 0 0 0 3px #e3e7ec; }
  .blname { font-size:15px; font-weight:800; color:#1a2b48; }
  .bla { display:flex; align-items:center; gap:7px; padding:9px 11px; margin-bottom:5px;
         border:1px solid #e3e7ec; border-radius:8px; background:#fafbfc;
         font-size:13px; font-weight:700; color:#1a2b48; text-decoration:none; }
  .bla:hover { background:#eef3ff; border-color:#b9cdf5; color:#1a56db; }
  .bla:last-child { margin-bottom:0; }
  .bla em { font-style:normal; font-size:11px; font-weight:600; color:#a3abb8; }
  .bla .go { margin-left:auto; font-size:11px; color:#a3abb8; }
  .bla:hover .go { color:#1a56db; }
  /* ── 캐피탈별 비교 — 행=항목 / 열=회사. 표 안에서만 가로로 움직인다 ── */
  /* 회사 줄은 접지 않는다 — '하나만' 단추가 아래로 떨어지면 줄이 깨져 보인다.
     화면이 좁으면 그 줄 안에서만 옆으로 민다 */
  .cpbar { display:flex; flex-wrap:nowrap; gap:4px; align-items:center; margin-bottom:8px;
           overflow-x:auto; padding-bottom:2px; }
  .cpbar > * { flex:0 0 auto; }
  .cpbar .cpq { flex:1 1 180px; }
  .cpbar .lbl { font-size:11.5px; font-weight:800; color:#8a93a0; margin-right:2px; }
  .cpco { padding:5px 9px; border:1px solid #d4d9e0; border-radius:14px; background:#fff;
          font-size:11.5px; font-weight:700; color:#445; cursor:pointer; white-space:nowrap; }
  .cpco:hover { background:#eef3ff; border-color:#b9cdf5; }
  .cpco.on { background:#1a2b48; color:#fff; border-color:#1a2b48; }
  .cpbtn { padding:5px 10px; border:1px solid #d4d9e0; border-radius:7px; background:#f4f6f9;
           font-size:11.5px; font-weight:700; color:#56607a; cursor:pointer; white-space:nowrap; }
  .cpbtn:hover { background:#eef3ff; border-color:#b9cdf5; color:#1a56db; }
  .cpq { flex:1 1 180px; min-width:0; padding:7px 11px; border:1px solid #d4d9e0;
         border-radius:8px; font-size:12.5px; }
  .cpq:focus { outline:0; border-color:#1a56db; }
  .cpwrap { overflow:visible; max-height:none;
            border:1px solid #e3e7ec; border-radius:10px; background:#fff; }
  .cptbl { border-collapse:separate; border-spacing:0; font-size:12px; }
  .cptbl th, .cptbl td { border-bottom:1px solid #eef0f3; border-right:1px solid #f2f4f7;
                         padding:9px 11px; vertical-align:top; text-align:left;
                         white-space:pre-line; line-height:1.6; }
  .cptbl thead th { position:sticky; top:var(--머리높이, 96px); z-index:3;
                    background:#1a2b48; color:#fff;
                    font-size:11.5px; font-weight:800; white-space:nowrap; }
  .cptbl tbody th { position:sticky; left:0; z-index:2; background:#f7f9fc; color:#1a2b48;
                    font-size:11.5px; font-weight:800; white-space:nowrap;
                    min-width:118px; box-shadow:1px 0 0 #e3e7ec; }
  .cptbl thead th:first-child { left:0; z-index:4; background:#132038; }
  .cptbl tbody th small { display:block; font-weight:600; color:#a3abb8; margin-top:2px; }
  .cptbl td { min-width:180px; max-width:300px; color:#334; }
  .cptbl tbody tr:nth-child(even) td { background:#fcfdfe; }
  .cptbl tbody tr:hover td { background:#f4f8ff; }
  .cptbl td.no { color:#c0392b; font-weight:700; }
  .cptbl td.yes { color:#0f766e; font-weight:700; }
  .cptbl td a { color:#1a56db; }
  .cpnone { padding:24px; text-align:center; color:#a3abb8; font-size:13px; }
  /* 둘 비교 — 값이 다른 줄만 눈에 띄게. 같은 줄은 흐리게 빼 준다 */
  .cptbl tr.diff th { background:#fff6f4; color:#c0392b; }
  .cptbl tr.diff td { background:#fffaf9; }
  .cptbl tr.same th, .cptbl tr.same td { color:#9aa3ad; }
  .cptbl th .ne { float:right; margin-left:6px; color:#c0392b; font-size:12px; }
  .cp2 .cptbl td { min-width:230px; max-width:none; width:50%; font-size:12.5px; }
  .cpmode { display:flex; gap:4px; }
  .cpmode button { padding:5px 12px; border:1px solid #d4d9e0; border-radius:7px; background:#fff;
                   font-size:11.5px; font-weight:800; color:#56607a; cursor:pointer; white-space:nowrap; }
  .cpmode button.on { background:#1a2b48; color:#fff; border-color:#1a2b48; }
  .cpside { flex:0 0 auto; font-size:11.5px; font-weight:800; color:#8a93a0; margin-right:2px; }
  /* 재고 엑셀 교체 모달 */
  .modalbg { display:none; position:fixed; inset:0; background:rgba(20,26,38,.45); z-index:50; }
  .modalbg.show { display:flex; align-items:center; justify-content:center; }
  .modal { background:#fff; border-radius:12px; padding:18px 18px 16px; width:min(460px,92vw);
           box-shadow:0 10px 40px rgba(0,0,0,.2); }
  .modal h3 { margin:0 0 12px; font-size:16px; }
  .modal .mp { font-size:13px; color:#556; line-height:1.6; margin:0 0 12px; }
  .modal .mp2 { font-size:11.5px; color:#8a93a0; }
  /* 개인정보 수집·이용 동의 — 가입 창 (2026-09-25) */
  .uagree { margin:2px 0 10px; padding:10px 12px; border:1px solid #e3e8ef;
            border-radius:10px; background:#fafbfd; }
  .uchk { display:flex; align-items:flex-start; gap:7px; font-size:12.5px;
          color:#1a2b48; cursor:pointer; }
  /*  창 안의 칸은 .modal input 에서 width:100% 를 받는다 — 네모 칸은 빼 준다
      (안 빼면 네모가 줄을 다 먹고 글씨가 세로로 선다, 2026-09-25) */
  .uchk input[type=checkbox] { margin:2px 0 0; width:16px; min-width:16px; height:16px;
                               flex:0 0 auto; padding:0; }
  .uchk > span { flex:1 1 auto; min-width:0; line-height:1.5; }
  .uchk em { font-style:normal; color:#c0392b; font-weight:800; font-size:11.5px; }
  .ulnk { margin-top:6px; padding:0; border:0; background:none; font-family:inherit;
          font-size:11.5px; font-weight:800; color:#1a56db; cursor:pointer;
          text-decoration:underline; }
  .uterms { margin-top:8px; max-height:190px; overflow-y:auto; padding:10px 11px;
            border:1px solid #eef1f5; border-radius:8px; background:#fff;
            font-size:11.5px; line-height:1.75; color:#56607a; white-space:pre-line; }
  .uterms b { display:block; margin-top:7px; color:#1a2b48; font-size:11.5px; }
  .uterms b:first-child { margin-top:0; }

  .modal .mrow { display:flex; gap:6px; }
  .modal .mrow input { flex:1; padding:9px 12px; border:1px solid #d4d9e0; border-radius:8px; font-size:14px; }
  .modal .mrow2 { display:flex; gap:6px; margin-top:12px; }
  .modal.wide { width:min(1000px,96vw); max-height:92vh; overflow-y:auto; }
  /* 왼쪽=조건 고르기, 오른쪽=알림 설정 */
  .wcols { display:flex; gap:16px; align-items:flex-start; }
  .wcol { flex:1 1 0; min-width:0; }
  .wsec { font-size:12px; font-weight:800; color:#1a2b48; margin-bottom:8px;
          padding-bottom:5px; border-bottom:2px solid #e3e7ec; }
  .wfull { width:100%; margin-bottom:7px; }
  button.btn.wfull { padding:11px; font-size:14px; }
  @media (max-width:780px){ .wcols { flex-direction:column; } .wcol { width:100%; } }
  .head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
  .bell { margin-left:auto; }
  .who { font-size:12px; color:#556; font-weight:700; }
  .who em { font-style:normal; color:#8a93a0; font-weight:600; }
  .lnk { border:0; background:none; color:#1a56db; font-size:12px; font-weight:800;
         cursor:pointer; padding:2px 4px; }
  /* 로그인 / 회원가입 */
  .modal input { width:100%; padding:10px 12px; border:1px solid #d4d9e0; border-radius:8px;
                 font-size:14px; margin-bottom:7px; }
  .urow { display:flex; gap:6px; margin-bottom:8px; }
  .ukind { flex:1; padding:9px; border:1px solid #cdd5df; border-radius:8px; background:#fff;
           font-size:13.5px; font-weight:800; color:#556; cursor:pointer; }
  .ukind.on { background:#1a2b48; color:#fff; border-color:#1a2b48; }
  .ulab { display:block; font-size:11.5px; color:#8a93a0; font-weight:800; margin:2px 0 4px; }
  .modal input[type=file] { padding:7px 9px; font-size:12.5px; background:#fafbfc; }
  /* 회원 관리 */
  .ulist { display:flex; flex-direction:column; gap:8px; max-height:62vh; overflow-y:auto; }
  .uitem { display:flex; gap:11px; align-items:flex-start; padding:10px;
           border:1px solid #e3e7ec; border-radius:9px; }
  .ucard { width:96px; height:58px; object-fit:cover; border-radius:6px; border:1px solid #e3e7ec;
           flex:0 0 auto; background:#f4f6f9; }
  .ucard.none, .ucard.pdf { display:flex; align-items:center; justify-content:center;
                            font-size:11px; font-weight:800; color:#aab; text-align:center;
                            text-decoration:none; }
  .ucard.pdf { color:#c0392b; }
  .utag { display:inline-block; padding:1px 6px; border-radius:5px; font-size:10.5px;
          font-weight:800; margin-left:4px; }
  .utag.ag { background:#e8f0fe; color:#1a56db; }
  .utag.cm { background:#e7f6f2; color:#0f766e; }
  .uopts { display:flex; gap:14px; margin:2px 0 4px; flex-wrap:wrap; }
  .uopts label { display:flex; align-items:center; gap:5px; font-size:12.5px; color:#556;
                 font-weight:700; cursor:pointer; }
  .uopts input { width:auto; margin:0; }
  .uopts em { font-style:normal; color:#8a93a0; font-size:11px; }
  .findpw { margin-top:10px; text-align:center; }
  .findbox { padding:11px; background:#f7f9fc; border-radius:9px; font-size:12.5px;
             color:#556; line-height:1.8; }
  .findbox a { color:#1a56db; text-decoration:none; font-size:15px; }
  .findbox span { font-size:11.5px; color:#8a93a0; }
  .pme { padding:9px 11px; background:#f7f9fc; border-radius:8px; font-size:12.5px;
         color:#556; margin-bottom:9px; }
  .psep { margin:14px 0 8px; padding-top:12px; border-top:1px solid #eef0f3;
          font-size:12px; font-weight:800; color:#8a93a0; }
  .wexp { color:#c0392b; }
  .witem.over { background:#fdf3f2; border-color:#f3d3cf; }
  /* 알림 — 현재 조건 요약 */
  .wpick { display:flex; gap:6px; margin-bottom:10px; }
  .wpick select { flex:1; padding:8px 10px; border:1px solid #d4d9e0; border-radius:8px;
                  font-size:13.5px; font-weight:700; }
  .wfacets { max-height:44vh; overflow-y:auto; }
  .wexact { flex-direction:column; align-items:flex-start; gap:6px; }
  .wcur { padding:9px 11px; background:#f7f9fc; border-radius:9px; margin-bottom:10px;
          font-size:12.5px; line-height:1.7; color:#334; }
  .wcur b { color:#c0392b; }
  .wcur .none { color:#99a; }
  .wnow { margin-top:4px; padding-top:4px; border-top:1px solid #e3e7ec; color:#0f766e; }
  .wnow b { color:#0f766e; font-size:13px; }
  .wnow .wzero { color:#b45309; font-weight:700; }
  /* '전체' 칩 — 그 항목에 조건을 안 건 상태 */
  .chip.all { font-weight:800; }
  .chip.all.on { background:#1a2b48; color:#fff; border-color:#1a2b48; }
  /* 알림 설정 스위치 (필터가 아니라 '어떻게 울릴지') */
  .wexact { display:flex; align-items:flex-start; gap:10px; margin-bottom:8px; flex-wrap:wrap; }
  .wswwrap { position:relative; display:inline-flex; align-items:center; gap:4px; }
  .whelp { width:19px; height:19px; padding:0; border:1px solid #cdd5df; border-radius:50%;
           background:#fff; color:#8a93a0; font-size:11px; font-weight:800; cursor:pointer;
           line-height:1; flex:0 0 auto; }
  .whelp:hover { background:#f0f3f8; color:#1a2b48; }
  .wtip { position:absolute; z-index:60; top:26px; left:0; width:270px; padding:10px 12px;
          background:#1a2b48; color:#fff; border-radius:9px; font-size:12px; line-height:1.65;
          font-weight:600; white-space:pre-line; box-shadow:0 6px 20px rgba(0,0,0,.25);
          cursor:pointer; }
  .wsw { padding:6px 11px; border:1px solid #cdd5df; border-radius:8px; background:#fff;
         font-size:12.5px; font-weight:800; color:#445; cursor:pointer; white-space:nowrap; }
  .wsw.on { background:#b45309; color:#fff; border-color:#b45309; }
  .wsw.dis { opacity:.45; cursor:not-allowed; }
  .wswb { font-size:13px; }
  .wswt { font-size:11.5px; color:#8a93a0; }
  .wswt b { color:#b45309; }
  .wcust { display:flex; gap:6px; margin-bottom:8px; }
  .wcust input { flex:1; min-width:0; padding:8px 10px; border:1px solid #d4d9e0;
                 border-radius:8px; font-size:13px; }
  .whint { font-size:11.5px; color:#8a93a0; margin:-4px 0 8px; }
  .whint b { color:#b45309; }
  .wex { margin-top:4px; padding-top:4px; border-top:1px solid #e3e7ec; font-size:12px; color:#556; }
  .wex b { font-family:Consolas,monospace; color:#1a56db; margin-right:2px; }
  .exm { font-style:normal; font-size:10.5px; font-weight:800; color:#b45309;
         background:#fff3e0; border-radius:4px; padding:1px 5px; }
  .wsep { margin:14px 0 6px; font-size:12px; font-weight:800; color:#8a93a0; }
  .wlist { margin-top:12px; display:flex; flex-direction:column; gap:6px;
           max-height:40vh; overflow-y:auto; }
  .witem { display:flex; align-items:flex-start; gap:8px; padding:9px 11px;
           border:1px solid #e3e7ec; border-radius:9px; font-size:12.5px; }
  .witem.off { opacity:.5; background:#fafbfc; }
  .witem .wn { font-weight:800; color:#1a2b48; }
  .witem .wc { color:#8a93a0; font-size:11.5px; margin-top:2px; line-height:1.6; }
  .witem .wbtns { margin-left:auto; display:flex; gap:4px; flex:0 0 auto; }
  .witem .wbtns button { border:1px solid #cdd5df; background:#fff; border-radius:6px;
                         padding:3px 8px; font-size:11.5px; cursor:pointer; }
  .witem .wbtns .del { color:#c0392b; }
  .wempty { padding:16px; text-align:center; color:#99a; font-size:12.5px; }
  .btn.go { background:#1a2b48; color:#fff; border-color:#1a2b48; }
  .merr { min-height:18px; margin-top:9px; font-size:12.5px; font-weight:700; color:#d23;
          white-space:pre-line; }
  .merr.ok { color:#0f766e; }
  /* CR3업무 — 어느 화면이 어디 있는지 알려 주는 한 줄 */
  .crm3note { margin:0 0 8px; padding:8px 11px; background:#f7f9fc;
              border:1px solid #e6eaf0; border-radius:9px;
              font-size:12.5px; color:#56607a; line-height:1.7; }
  .crm3note b { color:#1a2b48; }
  .crm3note .lnkb { border:1px solid #dbe2ec; background:#fff; border-radius:7px;
                    padding:3px 8px; margin:0 1px; font-family:inherit; font-size:12px;
                    font-weight:800; color:#1a56db; cursor:pointer;
                    text-decoration:none; display:inline-block; }
  .crm3note .lnkb:hover { border-color:#8fb0ea; background:#f4f8ff; }

  /* ── CR3업무 — 엑셀처럼 보이는 표 ── */
  .cr3bar { display:flex; align-items:center; gap:8px; margin-bottom:9px; flex-wrap:wrap; }
  .cr3add { padding:8px 14px; border:1px solid #0f766e; border-radius:9px;
            background:#0f766e; color:#fff; font-family:inherit; font-size:12.5px;
            font-weight:800; cursor:pointer; }
  .cr3add:hover { background:#0b5d56; }
  .cr3more { padding:8px 12px; border:1px solid #d8dee6; border-radius:9px;
             background:#fff; color:#556; font-family:inherit; font-size:12.5px;
             font-weight:800; cursor:pointer; }
  .cr3more:hover { border-color:#8fb0ea; background:#f6f9ff; }
  /* 걸러 보기 — 캐피탈·차량 */
  .cr3filt { padding:7px 9px; border:1px solid #d8dee6; border-radius:9px;
             background:#fff; color:#556; font-family:inherit; font-size:12.5px;
             font-weight:800; cursor:pointer; max-width:190px; }
  .cr3filt:hover { border-color:#8fb0ea; }
  .cr3filt.on { border-color:#1a56db; color:#1a56db; background:#f4f8ff; }
  .cr3bar .cr3state { flex:1 1 auto; min-width:0; }
  /* 년도 · 월별 걸러 보기 (캐피탈·차량 아래 한 줄) */
  .cr3bar2 { display:flex; align-items:center; gap:7px; margin:-3px 0 9px;
             flex-wrap:wrap; }
  .cr3mons { display:flex; align-items:center; gap:3px; flex-wrap:wrap; }
  .cr3mon { display:inline-flex; align-items:center; gap:3px; padding:5px 8px;
            border:1px solid #e3e8ef; border-radius:8px; background:#fff;
            color:#8a93a0; font-family:inherit; font-size:11.5px; font-weight:800;
            cursor:pointer; }
  .cr3mon:hover { border-color:#8fb0ea; color:#1a56db; }
  .cr3mon.켬 { border-color:#1a2b48; background:#1a2b48; color:#fff; }
  .cr3mon.빔 { color:#cfd5dd; }
  .cr3mon.빔:hover { color:#8a93a0; }
  .cr3mon i { font-style:normal; font-size:9.5px; font-weight:700; opacity:.8; }
  .cr3ftlab { font-size:11px; font-weight:800; color:#a9b1bc; padding-right:3px; }
  /* 상태 단추 — 표의 상태 색과 같게 (고른 것은 짙게) */
  .cr3mon.발주:not(.켬):not(.빔), .cr3mon.배정:not(.켬):not(.빔),
  .cr3mon.결제:not(.켬):not(.빔) { color:#1a56db; border-color:#dbe6f7; }
  .cr3mon.등록:not(.켬):not(.빔) { color:#b45309; border-color:#f3e2bc; }
  .cr3mon.인도:not(.켬):not(.빔) { color:#7c3aed; border-color:#e4d8fb; }
  .cr3mon.정산:not(.켬):not(.빔),
  .cr3mon.완료:not(.켬):not(.빔),
  .cr3mon.수령:not(.켬):not(.빔) { color:#0f766e; border-color:#c7e6db; }
  .cr3mon.해약:not(.켬):not(.빔) { color:#c0392b; border-color:#f0cfcf; }
  .cr3mon.해약.켬 { background:#c0392b; border-color:#c0392b; }
  .cr3tip b { color:#56607a; }
  /* 저장 상태 — 글자만 바뀐다 (자리가 흔들리면 눈에 거슬린다) */
  .cr3state { min-width:100px; font-size:12px; font-weight:800; color:#8a93a0; }
  .cr3state.saving { color:#b45309; }
  .cr3state.done { color:#0f766e; }
  .cr3state.bad { color:#c0392b; }
  .cr3cnt { font-size:12px; font-weight:800; color:#8a93a0; }

  /* 위아래로 자르지 않는다 — 줄이 많으면 화면을 굴려 내려 본다 (2026-09-22).
     좌우로만 밀 수 있게 두고, 칸 이름줄은 머리집 아래에 붙는다. */
  .cr3sheet { overflow:visible; max-height:none;
              border:1px solid #dfe4ea; border-radius:9px; background:#fff; }
  /* 폭을 못박아 둔다(fixed) — 칸이 늘어도 표가 화면 폭에 맞는다.
     좁은 화면에서는 min-width 만큼만 지키고 좌우로 밀린다 (폰에서 글자가 뭉치면 못 읽는다) */
  table.cr3xl { table-layout:fixed; border-collapse:separate; border-spacing:0;
                width:100%; min-width:1040px;
                font-size:12.5px; font-variant-numeric:tabular-nums; }
  /* 머리줄도 두 줄 — 칸 속 위·아래가 무엇인지 그대로 알려 준다 */
  .cr3xl th { position:sticky; top:var(--머리높이, 96px); z-index:3;
              padding:5px 7px; background:#f3f6fa;
              border-bottom:1px solid #dfe4ea; border-right:1px solid #e8ecf1;
              text-align:left; white-space:nowrap; overflow:hidden; }
  .cr3xl th .h1 { font-size:11.5px; font-weight:800; color:#56607a;
                  overflow:hidden; text-overflow:ellipsis; }
  .cr3xl th .h2 { margin-top:1px; font-size:10.5px; font-weight:700; color:#a9b1bc;
                  overflow:hidden; text-overflow:ellipsis; }
  .cr3xl td { padding:0; vertical-align:top;
              border-bottom:1px solid #e8ecf1; border-right:1px solid #eef1f5; }
  .cr3xl tbody tr:last-child td { border-bottom:0; }
  /* 한 칸 안의 한 줄 — 위·아래 두 줄이 들어간다 */
  .cr3ln { display:flex; align-items:center; gap:2px; height:26px; padding:0 3px;
           overflow:hidden; }
  .cr3ln:first-child { border-bottom:1px dashed #f1f3f6; }
  /* 코드 ↔ 한글 뒤집기 — 누르면 코드 자리에 한글이 들어온다 */
  /* 뒤집은 줄은 두 줄까지 펼친다 — 그 줄만 키가 커진다 (한글이 코드보다 길다) */
  .cr3ln.flip { cursor:pointer; background:#f7faff; height:auto; min-height:26px;
                padding:3px 5px; }
  .cr3ln.flip:hover { background:#eef4ff; }
  .cr3kr { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
           flex:1 1 auto; min-width:0; font-size:11px; line-height:1.35;
           color:#1a56db; font-weight:700; white-space:normal; overflow:hidden; }
  /* 단축 — 계약번호·계약자를 짧은 꼴로 (표 전체) */
  .cr3short { flex:0 0 auto; margin-left:auto; padding:1px 4px; height:19px;
              border:1px solid #e3e8ef; border-radius:5px; background:#fff;
              color:#b6bdc7; font-family:inherit; font-size:9.5px; font-weight:800;
              line-height:1; cursor:pointer; white-space:nowrap; }
  .cr3xl tr:hover .cr3short { border-color:#cddcf7; color:#1a56db; }
  .cr3short.켬 { border-color:#1a56db; background:#eef4ff; color:#1a56db; }
  .cr3in.짧 { color:#1a56db; font-weight:700; cursor:default; }

  .cr3flip { flex:0 0 auto; margin-left:auto; width:19px; height:19px; padding:0;
             border:1px solid #e3e8ef; border-radius:5px; background:#fff;
             color:#b6bdc7; font-family:inherit; font-size:10.5px; font-weight:800;
             line-height:1; cursor:pointer; }
  .cr3xl tr:hover .cr3flip { border-color:#cddcf7; color:#1a56db; }
  .cr3flip:hover { background:#eef4ff !important; }
  /* 곁글 — 그 줄 끝에 곁들이는 글 (연락처). 고치는 곳이 아니다 */
  /* 곁글 — 이름 오른쪽에 직급·회사·전화. 자리가 좁으면 … 로 줄인다 */
  /* 곁글은 자리가 모자라면 먼저 줄어든다 (이름은 그대로 다 보이게) */
  .cr3side { flex:1 1 auto; min-width:0; padding-left:5px; font-size:10.5px;
             color:#8a93a0; text-align:right; white-space:nowrap; overflow:hidden;
             text-overflow:ellipsis; }
  /* 칸 안은 테두리 없는 입력칸 — 누르면 바로 고쳐진다 */
  .cr3in, .cr3xl select { flex:1 1 auto; width:100%; min-width:0; padding:3px 5px;
                          border:0; border-radius:4px; background:transparent;
                          font-family:inherit; font-size:12.5px; color:#1a2b48;
                          outline:0; }
  .cr3in:focus, .cr3xl select:focus { background:#eef4ff;
                                      box-shadow:inset 0 0 0 2px #1a56db; }
  .cr3in.dirty { background:#fffdf5; }
  .cr3in::placeholder { color:#d3d9e0; }
  /* 코드 칸 — 적는 동안에도 대문자로 보인다 (저장할 때 서버가 올린다) */
  .cr3in.up { text-transform:uppercase; letter-spacing:.2px; }
  /* 판매코드·옵션·외장·내장·출하센터 — 글자 수만큼만 넓혀 서로 붙여 둔다.
     폭은 화면이 칸마다 적어 준다 (cr3.py 의 '자리'). 늘어나게 두면 사이가 벌어진다 */
  .cr3in.tight { flex:0 0 auto; padding:3px 3px; text-align:center; }
  /* 판매코드처럼 긴 코드는 왼쪽 맞춤 — 가운데로 두면 글자 수가 다른 줄끼리
     좌우로 흔들려 표가 어지럽다 */
  .cr3in.tight.wide { text-align:left; padding-left:5px; }
  .cr3in.tight + .cr3in.tight { border-left:1px solid #eef1f5; border-radius:0 4px 4px 0; }
  .cr3ln.many { justify-content:flex-start; }
  /* 돈 칸 — 오른쪽에 붙이고 자릿수를 가른다 */
  .cr3in.money { text-align:right; font-variant-numeric:tabular-nums; }
  /* VAT 단추 — 차량수당 왼쪽. 누르면 표 전체가 포함(O) ↔ 제외(X) */
  .cr3vat { flex:0 0 auto; display:flex; align-items:center; gap:2px; height:19px;
            padding:0 3px; border:1px solid #e3e8ef; border-radius:5px;
            background:#fff; color:#b6bdc7; font-family:inherit; font-size:9px;
            font-weight:800; line-height:1; cursor:pointer; }
  .cr3vat i { font-style:normal; font-size:10px; }
  .cr3vat.켬 { border-color:#bfe3d6; background:#effaf6; color:#0f766e; }
  .cr3vat:not(.켬) { border-color:#f3d9b0; background:#fff8ec; color:#b45309; }
  .cr3vat:hover { border-color:#8fb0ea !important; }
  /* 셈해서 저절로 들어간 값은 파랑, 직접 적은 값은 빨강 */
  .cr3in.money.자동 { color:#1a56db; }
  .cr3in.money.손 { color:#c0392b; font-weight:700; }
  /* 다른 칸과 한 줄에 놓인 돈 칸(탁송료) — 오른쪽에 붙여 폭을 잡아 둔다 */
  .cr3in.moneyfix { flex:0 0 auto; width:88px; margin-left:auto;
                    border-left:1px solid #eef1f5; border-radius:0 4px 4px 0; }
  /* 코드 아래 한글 풀이 — 손대는 곳이 아니다. 길면 … 로 줄이고 전체는 덧말로 본다 */
  .cr3pul { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical;
            width:100%; font-size:10.5px; line-height:1.32; color:#8a93a0;
            white-space:normal; overflow:hidden; word-break:break-all; }
  /* 줄번호 — 왼쪽에 붙박이 */
  .cr3xl th.cr3no, .cr3xl td.cr3no { position:sticky; left:0; z-index:2;
              background:#f7f9fc; border-right:1px solid #dfe4ea; text-align:center;
              color:#98a1ae; font-size:11px; font-weight:800;
              padding-top:5px; vertical-align:top; }
  .cr3xl th.cr3no { z-index:4; }
  /* 머리줄의 # — 누르면 때 차례로 (2026-09-20) */
  .cr3nosort { display:flex; align-items:center; justify-content:center; gap:1px;
               height:100%; border-radius:5px; cursor:pointer; }
  .cr3nosort:hover { background:#eef4ff; color:#1a56db; }
  .cr3nosort > i { font-style:normal; font-size:8px; }
  .cr3nosort.켬 { color:#1a56db; font-weight:800; }
  /* 줄번호 — 누르면 때 기록. 때가 있으면 작은 점을 찍는다 */
  .cr3xl td.cr3no.눌러 { cursor:pointer; position:relative; }
  .cr3xl td.cr3no.눌러:hover { background:#eef4ff; color:#1a56db; }
  .cr3xl td.cr3no .점 { position:absolute; left:50%; transform:translateX(-50%);
                        bottom:6px; width:4px; height:4px; border-radius:50%;
                        background:#1a56db; }
  /* 고르기 칸 — 상태·등기. 고른 값에 따라 색이 갈린다 */
  .cr3xl select { appearance:none; cursor:pointer; font-weight:700; color:#b6bdc7; }
  .cr3xl select[data-v]:not([data-v=""]) { color:#1a2b48; }
  .cr3xl select[data-v="계약"],
  .cr3xl select[data-v="발송준비"] { color:#8a93a0; }
  .cr3xl select[data-v="발주"],
  .cr3xl select[data-v="배정"],
  .cr3xl select[data-v="결제"] { color:#1a56db; }
  .cr3xl select[data-v="등록"],
  .cr3xl select[data-v="발송"] { color:#b45309; }
  .cr3xl select[data-v="인도"] { color:#7c3aed; }
  .cr3xl select[data-v="정산"],
  .cr3xl select[data-v="완료"],
  .cr3xl select[data-v="수령"],
  .cr3xl select[data-v="수령"] { color:#0f766e; }
  .cr3xl select[data-v="해약"] { color:#c0392b; }
  /* 계약금 출처 — 캐피탈이 낸 것은 파랑, 내가 낸 것은 빨강 */
  .cr3xl select[data-v="캐피탈"] { color:#1a56db; }
  .cr3xl select[data-v="내가"] { color:#c0392b; }
  .cr3xl tbody tr:hover td.cr3no { background:#eef2f7; color:#56607a; }
  /* 맨 아래 흐린 줄 — 아직 없는 줄이다. 적으면 그때 만들어진다 */
  .cr3xl tr.cr3new td { background:#fcfdff; }
  /* 선출고 — 후불 결제가 남은 줄은 빨갛게 (카드전표가 들어오면 풀린다, 2026-10-15) */
  .cr3xl tr.cr3후불 td { background:#fdecec; }
  .cr3xl tr.cr3후불 td.cr3no { box-shadow: inset 4px 0 0 #dc2626; color:#b91c1c; font-weight:700; }
  .cr3xl tr.cr3후불:hover td { background:#fbdcdc; }
  .cr3선출칩 { margin-left:4px; padding:0 5px; height:18px; line-height:16px; font-size:11px;
              font-weight:700; border-radius:9px; border:1px solid #dc2626; background:#dc2626;
              color:#fff; cursor:pointer; vertical-align:middle; }
  .cr3선출칩.됨 { background:#fff; color:#8a93a0; border-color:#cdd5df; font-weight:500; }
  .cr3mon.cr3후불단추 { color:#b91c1c; border-color:#f5b5b5; font-weight:700; }
  .cr3mon.cr3후불단추.켬 { background:#dc2626; color:#fff; border-color:#dc2626; }
  .cr3xl tr.cr3new td.cr3no { color:#c7cfda; }
  /* 지우기 ✕ — 오른쪽에 붙박이. 칸이 많아 오른쪽 끝까지 밀어야 보이면 못 쓴다 */
  .cr3xl th.cr3del, .cr3xl td.cr3del { position:sticky; right:0; z-index:2;
                                       text-align:center; background:#f7f9fc;
                                       border-right:0; border-left:1px solid #dfe4ea; }
  .cr3xl th.cr3del { z-index:4; background:#f3f6fa; }
  /* 머리글 정렬 — 이름을 누르면 오름 ▲ · 내림 ▼ · 원래 차례 */
  .cr3xl th .cr3sort { cursor:pointer; user-select:none; }
  .cr3xl th .cr3sort:hover { color:#1a56db; }
  .cr3xl th .cr3sort.켬 { color:#1a56db; }
  .cr3xl td.cr3del { padding:3px 2px 0; }
  .cr3xl tbody tr:hover td.cr3del { background:#eef2f7; }
  .cr3del button { width:22px; height:22px; padding:0; border:1px solid transparent;
                   border-radius:5px; background:transparent; color:#c7cfda;
                   font-family:inherit; font-size:13px; font-weight:800;
                   line-height:1; cursor:pointer; }
  .cr3xl tr:hover .cr3del button { border-color:#e8ebf0; color:#98a1ae; }
  .cr3del button:hover { border-color:#e88 !important; color:#c0392b !important;
                         background:#fff5f5; }
  .cr3empty { padding:28px; text-align:center; color:#99a; font-size:13px; }

  /* 셈한 값 (순수익) — 손대는 곳이 아니다. 어떻게 나온 값인지는 마우스를 올려 본다 */
  .cr3sum { flex:1 1 auto; min-width:0; padding:3px 5px; text-align:right;
            font-size:12.5px; font-weight:800; color:#0f766e;
            font-variant-numeric:tabular-nums; white-space:nowrap;
            overflow:hidden; text-overflow:ellipsis; cursor:help; }
  .cr3sum.빔 { color:#cfd5dd; font-weight:700; }
  .cr3sum.빼기 { color:#c0392b; }          /* 지급금액이 진짜수당보다 크면 마이너스다 */
  /* 어떤 요율로 셈했나 — 누르면 계약 요약이 열린다 (마우스를 올리면 셈 풀이) */
  .cr3rate { flex:0 0 auto; padding:1px 4px; border:1px solid #e3e8ef; border-radius:4px;
             background:#f7f9fc; color:#8a93a0; font-family:inherit; font-size:9.5px;
             font-weight:800; cursor:pointer; white-space:nowrap; }
  .cr3xl tr:hover .cr3rate { border-color:#cddcf7; color:#1a56db; }
  .cr3rate:hover { background:#eef4ff !important; }

  /* 계약 요약 모달 — 그대로 복사해 보낼 수 있게 글로만 짠다 */
  .modal.cr3sum2 { max-width:520px; padding:0; }
  .cr3sumhead { display:flex; align-items:center; gap:8px; padding:12px 14px;
                border-bottom:1px solid #eef1f5; }
  .cr3sumhead > b { flex:1 1 auto; min-width:0; font-size:14px; color:#1a2b48;
                    overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .cr3copy { padding:6px 11px; border:1px solid #1a56db; border-radius:8px;
             white-space:nowrap; flex:0 0 auto;
             background:#1a56db; color:#fff; font-family:inherit; font-size:12px;
             font-weight:800; cursor:pointer; }
  .cr3copy:hover { background:#1546b5; }
  /* 계약 요약 ↔ 캐피탈정보 — 복사 왼쪽의 둘째 단추 (2026-09-17) */
  /* CR3업무 찾기 칸 — 걸러 보기 왼쪽 (2026-09-19) */
  .cr3srchbox { position:relative; display:inline-flex; align-items:center; }
  .cr3srch { width:290px; max-width:44vw; height:30px; box-sizing:border-box;
             padding:0 26px 0 10px; border:1px solid #dce1e8; border-radius:8px;
             background:#fff; font-family:inherit; font-size:12.5px; color:#1a2b48; }
  .cr3srch::placeholder { color:#b6bdc7; }
  .cr3srch:focus { outline:0; border-color:#8fb0ea; background:#f7faff; }
  .cr3allfind { margin-left:6px; padding:3px 9px; border:1px solid #1a56db; border-radius:999px;
                background:#fff; color:#1a56db; font-family:inherit; font-size:11.5px;
                font-weight:800; cursor:pointer; }
  .cr3allfind:hover { background:#1a56db; color:#fff; }
  .cr3srch.on { border-color:#1a56db; background:#f2f6ff; font-weight:700; }
  .cr3srch::-webkit-search-cancel-button { display:none; }
  .cr3srchx { position:absolute; right:4px; width:20px; height:20px; padding:0;
              border:0; border-radius:5px; background:transparent; color:#98a1ae;
              font-family:inherit; font-size:11px; cursor:pointer; }
  .cr3srchx:hover { background:#eef1f5; color:#c0392b; }
  /* 내가 낸 계약금 창 (2026-09-17) */
  /* 칸이 여섯이라 넓게 — .modal 이 width 를 460px 로 못박아 두어 여기서 다시 준다 */
  .modal.cr3depbox { width:min(760px, 94vw); max-width:none; padding:0; }
  .cr3deptop { padding:14px 16px 10px; border-bottom:1px solid #eef1f5; }
  .cr3depsum { display:flex; align-items:baseline; gap:8px; }
  .cr3depsum > span { font-size:12px; color:#8a93a0; font-weight:700; }
  .cr3depsum > b { margin-left:auto; font-size:24px; font-weight:800; color:#1a56db;
                   font-variant-numeric:tabular-nums; letter-spacing:-.4px; }
  .cr3depsum > i { font-style:normal; font-size:13px; color:#8a93a0; font-weight:700; }
  .cr3depwhy { margin-top:5px; font-size:11.5px; color:#a9b1bc; }
  /* 상태로 걸러 보는 칩 줄 (2026-09-19) */
  .cr3depfilt { display:flex; flex-wrap:wrap; gap:4px; margin-top:10px; }
  .cr3depchip { display:inline-flex; align-items:center; gap:4px; padding:4px 9px;
                border:1px solid #e3e8ef; border-radius:999px; background:#fff;
                font-family:inherit; font-size:11.5px; font-weight:800; color:#6b7280;
                white-space:nowrap; cursor:pointer; }
  .cr3depchip:hover { border-color:#8fb0ea; color:#1a56db; }
  .cr3depchip > i { font-style:normal; font-size:10.5px; font-weight:700; color:#a9b1bc; }
  .cr3depchip.켬 { border-color:#1a56db; background:#1a56db; color:#fff; }
  .cr3depchip.켬 > i { color:rgba(255,255,255,.75); }
  .cr3depchip.해약 { color:#b6bdc7; }
  .cr3depchip.해약.켬 { border-color:#98a1ae; background:#98a1ae; color:#fff; }
  .cr3deplist { max-height:46vh; overflow:auto; padding:6px 8px 10px; }
  .cr3depline { display:flex; align-items:center; gap:8px; padding:7px 8px;
                border-bottom:1px solid #f4f6f9; font-size:12.5px; color:#1a2b48; }
  .cr3depline:last-child { border-bottom:0; }
  .cr3depline .번 { flex:0 0 72px; font-weight:800; font-family:inherit; }
  .cr3depline .누 { flex:1 1 172px; min-width:140px; overflow:hidden;
                    text-overflow:ellipsis; white-space:nowrap; color:#4a5565; }
  /* AG담당자 — 이름 위, 연락처 아래 (돌려받을 때 걸 곳) */
  .cr3depline .에이 { flex:0 0 116px; min-width:0; display:flex; flex-direction:column;
                      line-height:1.3; overflow:hidden; }
  .cr3depline .에이 > em { font-style:normal; font-size:10.5px; color:#a9b1bc;
                           font-variant-numeric:tabular-nums; }
  .cr3depline .에이 > .빔 { font-style:normal; color:#cfd5dd; font-weight:700; }
  .cr3depline.해약 .에이 { color:#b6bdc7; }
  .cr3depline .상 { flex:0 0 auto; }
  .cr3depline .상 > i { font-style:normal; padding:1px 6px; border-radius:999px;
                        background:#f2f6ff; color:#1a56db; font-size:10.5px;
                        font-weight:800; }
  .cr3depline .때 { flex:0 0 76px; text-align:right; font-size:11px; color:#a9b1bc;
                    font-variant-numeric:tabular-nums; }
  .cr3depline .돈 { flex:0 0 78px; text-align:right; font-weight:800;
                    font-variant-numeric:tabular-nums; }
  .cr3depline.해약 { color:#b6bdc7; }
  .cr3depline.해약 .누, .cr3depline.해약 .돈 { color:#b6bdc7; }
  .cr3depline.해약 .상 > i { background:#f6f7f9; color:#98a1ae; }
  /* 받을자료 — AG 앞으로 담는 자료 딱지 (2026-09-22) */
  .cr3docbox .것 .줄 > em.AG앞 { background:#eef4ff; color:#1a56db;
                               border:1px solid #cddcf7; }
  .cr3docbox .파일.AG앞 > a { color:#1a56db; }
  .cr3docbox .파일.AG앞::before { content:'AG'; margin-right:3px; padding:0 4px;
                                 border-radius:999px; background:#eef4ff;
                                 color:#1a56db; font-size:9.5px; font-weight:800; }
  /* 차량 선택 띠의 가격 칸 — 얼마 이상 ~ 얼마 이하 (2026-09-22) */
  .p2price { display:inline-flex; align-items:center; gap:4px; padding:4px 8px;
             border:1px solid #e3e8ef; border-radius:9px; background:#fff;
             font-size:12.5px; color:#56607a; }
  .p2price.on { border-color:#1a56db; background:#f4f8ff; }
  /* 손님용으로 보기 단추 — 진하게 (2026-10-15) */
  .p2guest { padding:6px 12px; border-radius:8px; border:2px solid #1a2b48; background:#1a2b48; color:#fff;
             font-size:13px; font-weight:800; cursor:pointer; }
  .p2guest:hover { background:#24395f; }
  .p2guest.on { background:#dc2626; border-color:#dc2626; }
  .p2price > b { font-size:12.5px; color:#1a2b48; }
  .p2price .pnum { width:66px; padding:5px 7px; border:1px solid #d8dee6;
                   border-radius:7px; font-family:inherit; font-size:12.5px;
                   text-align:right; font-variant-numeric:tabular-nums; }
  .p2price .pnum:focus { outline:none; border-color:#1a56db;
                         box-shadow:0 0 0 2px rgba(26,86,219,.12); }
  .p2price .wave, .p2price .unit { color:#8a93a0; font-weight:700; }
  .p2price .pnumx { width:20px; height:20px; padding:0; border:0; border-radius:5px;
                    background:transparent; color:#98a1ae; font-family:inherit;
                    font-size:11px; cursor:pointer; }
  .p2price .pnumx:hover { background:#fdeeec; color:#c0392b; }
  /* 재고 결과 오른쪽 위 — 한번에 복사 · 이미지 복사 (2026-09-22) */
  .invcopy { margin-left:auto; display:flex; gap:6px; flex:0 0 auto; }
  .cpb { padding:6px 11px; border:1px solid #cddcf7; border-radius:9px;
         background:#f2f6ff; color:#1a56db; font-family:inherit; font-size:12.5px;
         font-weight:800; white-space:nowrap; cursor:pointer; }
  .cpb:hover { border-color:#1a56db; background:#1a56db; color:#fff; }
  @media (max-width:640px){
    .invcopy { width:100%; margin-left:0; margin-top:6px; }
    .cpb { flex:1 1 0; text-align:center; padding:9px 8px; }
    .cntrow .cnt { flex:1 1 100%; order:3; }
  }
  /* 오늘 할 일 창 (2026-09-20) — 계약금 · 등기 · 인도확인 */
  .cr3more.할일 { border-color:#cddcf7; background:#f2f6ff; color:#1a56db; }
  .cr3more.할일:hover { border-color:#1a56db; background:#e7efff; }
  .cr3more.할일 > i { display:inline-block; margin-left:6px; min-width:17px; padding:1px 6px;
                      border-radius:999px; background:#1a56db; color:#fff;
                      font-style:normal; font-size:11px; font-weight:800;
                      font-variant-numeric:tabular-nums; }
  .cr3more.할일 > i:empty { display:none; }
  /* .modal 이 width 를 460px 로 못박아 두어 여기서 다시 준다 */
  /* 크기를 못박는다 — 탭을 옮겨 다녀도 창이 커졌다 작아졌다 하지 않게
     (줄 수가 갈래마다 달라서 그랬다). 넘치는 줄은 가운데 칸이 굴러간다. */
  .modal.cr3todobox { width:min(880px, 95vw); max-width:none; padding:0;
                      height:min(76vh, 720px); display:flex; flex-direction:column; }
  .cr3todobox > .cr3sumhead, .cr3todobox > .cr3todotabs,
  .cr3todobox > .cr3sumfoot { flex:0 0 auto; }
  .cr3tododay { flex:0 0 auto; font-size:12px; font-weight:800; color:#a9b1bc;
                margin-right:2px; }
  /* 갈래 탭 — 누른 것만 파랗다. 할 일이 없는 갈래는 흐리게 */
  .cr3todotabs { display:flex; flex-wrap:wrap; gap:6px; padding:11px 14px;
                 border-bottom:1px solid #eef1f5; background:#fafbfd; }
  .cr3todotab { display:inline-flex; align-items:center; gap:6px; padding:7px 13px;
                border:1px solid #e3e8ef; border-radius:10px; background:#fff;
                font-family:inherit; font-size:12.5px; font-weight:800; color:#56607a;
                cursor:pointer; transition:border-color .12s, background .12s, color .12s; }
  .cr3todotab:hover { border-color:#8fb0ea; color:#1a56db; }
  .cr3todotab > i { font-style:normal; min-width:17px; padding:1px 6px; border-radius:999px;
                    background:#eef1f5; color:#8a93a0; font-size:11px; text-align:center;
                    font-variant-numeric:tabular-nums; }
  .cr3todotab.켬 { border-color:#1a56db; background:#1a56db; color:#fff;
                   box-shadow:0 2px 9px rgba(26,86,219,.22); }
  .cr3todotab.켬 > i { background:rgba(255,255,255,.24); color:#fff; }
  .cr3todotab.빔 { color:#c3c9d2; }
  .cr3todotab.빔 > i { color:#cfd5dd; }
  .cr3todobody { flex:1 1 auto; min-height:0; overflow:auto; padding:2px 14px 12px; }
  .cr3todosec + .cr3todosec { margin-top:14px; }
  .cr3todohead { display:flex; align-items:baseline; gap:8px; padding:12px 2px 7px; }
  .cr3todohead > b { font-size:13px; color:#1a2b48; }
  .cr3todohead > span { font-size:11.5px; color:#a9b1bc; font-weight:700; }
  /* 합계 — 돈 칸마다 하나씩. 첫 것이 오른쪽으로 밀려간다 */
  .cr3todohead > em { margin-left:auto; font-style:normal; font-size:11.5px;
                      font-weight:800; color:#a9b1bc; white-space:nowrap; }
  .cr3todohead > em > b { font-size:13px; color:#1a56db;
                          font-variant-numeric:tabular-nums; }
  .cr3todohead > em + em { margin-left:14px; }
  /* 한 줄 — 왼쪽 띠가 급한 정도를 알려 준다 (사흘 노랑 · 이레 빨강) */
  .cr3todoline { display:flex; align-items:center; gap:9px; margin-bottom:5px;
                 padding:9px 11px; border:1px solid #edf0f4; border-left:3px solid #dbe2ec;
                 border-radius:10px; background:#fff; font-size:12.5px; color:#1a2b48;
                 cursor:pointer; transition:border-color .12s, background .12s; }
  .cr3todoline:hover { border-color:#c3d6f6; border-left-color:#1a56db; background:#f8fbff; }
  .cr3todoline.더디 { border-left-color:#f0b429; }
  .cr3todoline.늦음 { border-left-color:#e2685c; }
  /* 칸 너비는 줄과 이름줄(.cr3todocols)이 같이 쓴다 — 자리가 맞게 */
  .cr3todoline .번, .cr3todocols .번 { flex:0 0 64px; font-weight:800;
                       font-variant-numeric:tabular-nums; }
  .cr3todoline .누, .cr3todocols .누 { flex:0 0 84px; min-width:0; overflow:hidden;
                       text-overflow:ellipsis; white-space:nowrap; color:#4a5565;
                       font-weight:700; }
  .cr3todoline .곁, .cr3todocols .곁 { flex:1 1 150px; min-width:0; overflow:hidden;
                       text-overflow:ellipsis; white-space:nowrap; color:#8a93a0;
                       font-size:11.5px; }
  .cr3todoline .곁 > .빔 { font-style:normal; color:#cfd5dd; font-weight:700; }
  /* AG담당자 — 이름 위, 연락처 아래 (무슨 일이든 걸 사람이다) */
  .cr3todoline .에이, .cr3todocols .에이 { flex:0 0 118px; min-width:0; }
  .cr3todoline .에이 { display:flex; flex-direction:column; line-height:1.3;
                       overflow:hidden; font-weight:700; }
  .cr3todoline .에이 > em { font-style:normal; font-size:10.5px; color:#a9b1bc;
                       font-weight:700; font-variant-numeric:tabular-nums; }
  .cr3todoline .에이 > .빔 { font-style:normal; color:#cfd5dd; font-weight:700; }
  .cr3todoline .상, .cr3todocols .상 { flex:0 0 46px; }
  .cr3todoline .상 > i { font-style:normal; padding:1px 7px; border-radius:999px;
                         background:#f2f6ff; color:#1a56db; font-size:10.5px;
                         font-weight:800; }
  .cr3todoline .날, .cr3todocols .날 { flex:0 0 62px; text-align:right;
                       font-size:11.5px; font-weight:800; color:#a9b1bc;
                       font-variant-numeric:tabular-nums; }
  .cr3todoline .날.더디 { color:#c98600; }
  .cr3todoline .날.늦음 { color:#c0392b; }
  .cr3todoline .돈, .cr3todocols .돈 { flex:0 0 84px; text-align:right;
                       font-weight:800; font-variant-numeric:tabular-nums; }
  /* 돈이 둘이면 뒤엣것(순수익)이 알맹이다 — 앞엣것은 한 칸 흐리게 */
  .cr3todoline .돈 ~ .돈 { color:#1a56db; }
  .cr3todoline .돈:has(~ .돈) { color:#6b7280; font-weight:700; }
  .cr3todoline .짓, .cr3todocols .짓 { flex:0 0 auto; min-width:74px; display:flex;
                       gap:4px; justify-content:flex-end; }
  /* 메모 — 곁글 자리에 놓는 적는 칸 (인도확인). 적힌 것이 있어야 ✕ 가 보인다 */
  .cr3todoline .메모, .cr3todocols .메모 { flex:1 1 150px; min-width:0;
                       display:flex; align-items:center; gap:3px; }
  .cr3todomemo { flex:1 1 auto; min-width:0; padding:5px 8px; border:1px solid #e8ecf2;
                 border-radius:7px; background:#fbfcfe; font-family:inherit;
                 font-size:11.5px; color:#1a2b48; }
  .cr3todomemo::placeholder { color:#cfd5dd; }
  .cr3todomemo:hover { border-color:#c3d6f6; }
  .cr3todomemo:focus { outline:none; border-color:#1a56db; background:#fff;
                       box-shadow:0 0 0 2px rgba(26,86,219,.12); }
  .cr3todoline .메모 > .지움 { display:none; width:20px; height:20px; padding:0;
                       flex:0 0 20px; border:0; border-radius:5px; background:transparent;
                       color:#c3c9d2; font-family:inherit; font-size:10px; cursor:pointer; }
  .cr3todoline .메모.찬 > .지움 { display:inline-block; }
  .cr3todoline .메모 > .지움:hover { background:#fdeeec; color:#c0392b; }
  /* 칸 이름줄 — 줄과 같은 자리에 무슨 값인지만 적어 둔다 (2026-09-20) */
  .cr3todocols { display:flex; align-items:center; gap:9px; padding:0 11px 5px;
                 border-bottom:1px solid #eef1f5; margin-bottom:6px;
                 font-size:10.5px; font-weight:800; color:#b6bdc7; }
  .cr3todocols > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .cr3todobtn { padding:5px 11px; border:1px solid #cddcf7; border-radius:8px;
                background:#f2f6ff; color:#1a56db; font-family:inherit; font-size:11.5px;
                font-weight:800; white-space:nowrap; cursor:pointer; }
  .cr3todobtn:hover { border-color:#1a56db; background:#1a56db; color:#fff; }
  .cr3todonone { padding:10px 11px; border:1px dashed #e8ecf2; border-radius:10px;
                 color:#c3c9d2; font-size:12px; font-weight:700; }
  .cr3todoempty { display:flex; flex-direction:column; align-items:center; gap:8px;
                  padding:44px 10px; color:#a9b1bc; font-size:12.5px; font-weight:700; }
  .cr3todoempty > b { font-size:26px; }
  /* 창에서 줄을 누르면 표의 그 줄을 잠깐 짚어 준다 */
  .cr3xl tbody tr.짚음 > td { background:#fff6d6; }
  /* 가입 신청 — 명함을 끌어다 놓는 자리 (2026-09-18) */
  .udrop { padding:8px; border:1.5px dashed #cdd5df; border-radius:10px;
           background:#fafbfd; transition:border-color .12s, background .12s; }
  .udrop.끌림 { border-color:#1a56db; background:#eef4ff; }
  .udrophint { margin-top:6px; text-align:center; font-size:11.5px; color:#a9b1bc; }
  .udrophint b { color:#4a5565; }
  .udrop.끌림 .udrophint { color:#1a56db; }
  .udrop.끌림 .udrophint b { color:#1a56db; }
  /* 머리줄 [🏦 캐피탈] — 현대·기아 오른쪽. 회원 누구나 본다 (2026-09-17) */
  .capbtn { margin-left:6px; padding:6px 12px; border:1px solid #cddcf7;
            border-radius:9px; background:#f2f6ff; color:#1a56db;
            font-family:inherit; font-size:13px; font-weight:800;
            white-space:nowrap; cursor:pointer; }
  .capbtn:hover { border-color:#1a56db; background:#e7efff; }
  .cr3capbox input[readonly] { background:#f7f9fc; color:#4a5565; cursor:default; }
  .cr3capinfo { padding:6px 10px; border:1px solid #cddcf7; border-radius:8px;
                background:#f2f6ff; color:#1a56db; font-family:inherit;
                font-size:12px; font-weight:800; white-space:nowrap; cursor:pointer; }
  .cr3capinfo:hover { border-color:#1a56db; background:#e7efff; }
  .modal.cr3sum2 > pre a { color:#1a56db; }
  .cr3sumfoot a { color:#1a56db; font-weight:700; }
  .cr3sumx { width:28px; height:28px; padding:0; border:1px solid #e8ebf0;
             border-radius:8px; background:#fff; color:#98a1ae; font-family:inherit;
             font-size:12px; cursor:pointer; }
  .cr3sumx:hover { border-color:#e88; color:#c0392b; }
  .modal.cr3sum2 > pre { margin:0; padding:14px; max-height:52vh; overflow:auto;
                         font-family:Consolas,"D2Coding",monospace; font-size:12.5px;
                         line-height:1.75; color:#1a2b48; white-space:pre-wrap;
                         word-break:break-all; }
  .cr3sumfoot { padding:0 14px 13px; font-size:11.5px; color:#8a93a0; min-height:16px; }
  /* 계약 요약의 합산가 — 파랗고 굵게 (복사되는 글은 민글 그대로다) */
  .cr3sumbig { color:#1a56db; font-size:1.2em; font-weight:800; letter-spacing:-.2px; }

  /* 완료된 줄의 [수령] 단추 */
  .cr3del .cr3rc { width:auto; padding:1px 5px; border:1px solid #bfe3d6;
                   border-radius:5px; background:#effaf6; color:#0f766e;
                   font-family:inherit; font-size:10px; font-weight:800;
                   line-height:1.6; cursor:pointer; }
  .cr3del .cr3rc:hover { background:#0f766e !important; border-color:#0f766e;
                         color:#fff !important; }

  /* 수령 창 — 진짜수당·지급한 수당·순수익을 견준다 */
  .modal.cr3rcbox { max-width:460px; padding:0; }
  .cr3rcbody { padding:13px 14px 14px; }
  .cr3rcnum { margin-bottom:11px; }
  .cr3rcline { display:flex; align-items:baseline; gap:8px; padding:7px 10px;
               border:1px solid #eef1f5; border-radius:8px; margin-bottom:5px; }
  .cr3rcline > span { flex:0 0 96px; font-size:12px; font-weight:800; color:#8a93a0; }
  .cr3rcline > b { font-size:15px; font-variant-numeric:tabular-nums; color:#1a2b48; }
  .cr3rcline > i { margin-left:auto; font-style:normal; font-size:10.5px;
                   color:#a9b1bc; text-align:right; }
  .cr3rcline.진짜 { background:#f7fffc; border-color:#c7e6db; }
  .cr3rcline.진짜 > b { color:#0f766e; }
  .cr3rcline.지급 > b { color:#c0392b; }
  .cr3rcline.순수익 { background:#f7faff; border-color:#dbe6f7; }
  .cr3rcline.순수익 > b { color:#1a56db; font-size:17px; }
  .cr3rcline.고침 > input { flex:1 1 auto; min-width:0; padding:7px 10px; text-align:right;
      border:1px solid #d4d9e0; border-radius:8px; font-family:inherit; font-size:15px;
      font-weight:800; color:#1a2b48; font-variant-numeric:tabular-nums; }
  .cr3rcline.고침 > input:focus { outline:none; border-color:#1a56db;
      box-shadow:0 0 0 3px #e8efff; }
  .cr3rcline.고침 > input::placeholder { color:#c3c9d2; font-weight:700; font-size:13px; }
  .cr3rcline.고침 > em { font-style:normal; margin-left:6px; font-size:12px;
      font-weight:800; color:#8a93a0; }
  .cr3rchelp { margin:6px 2px 0; font-size:11.5px; color:#a9b1bc; }
  .cr3rcwhy { padding:7px 10px; background:#f7f9fc; border-radius:8px;
              font-size:10.5px; color:#8a93a0; line-height:1.7;
              white-space:pre-wrap; }

  /* 결제부터 줄 오른쪽 [내신서] — 모자라면 빨강, 다 갖추면 파랑 (완료 줄은 [수령] 아래) */
  .cr3del .cr3rc, .cr3del .cr3ns { display:block; margin:0 auto; }
  .cr3del .cr3rc + .cr3ns { margin-top:2px; }
  .cr3del .cr3ns { width:auto; height:auto; padding:1px 4px; border-radius:5px;
                   font-size:10px; line-height:1.6; }
  .cr3del .cr3ns.ready, .cr3xl tr:hover .cr3del .cr3ns.ready {
    border-color:#bcd0f5; background:#f2f6ff; color:#1a56db; }
  .cr3del .cr3ns.miss, .cr3xl tr:hover .cr3del .cr3ns.miss {
    border-color:#f0c4bd; background:#fdf3f2; color:#c0392b; }
  .cr3del .cr3ns.ready:hover { background:#1a56db !important; border-color:#1a56db !important;
                               color:#fff !important; }
  .cr3del .cr3ns.miss:hover { background:#c0392b !important; border-color:#c0392b !important;
                              color:#fff !important; }

  /* 판매내신서 창 — 5050 의 창을 옮겼다 */
  .modal.cr3nsbox { max-width:460px; padding:0; }
  .cr3nsbody { padding:12px 14px 14px; }
  .cr3nsmiss { margin-bottom:10px; padding:8px 10px; border:1px solid #f0c4bd;
               border-radius:8px; background:#fdf3f2; color:#c0392b;
               font-size:12px; line-height:1.65; }
  .cr3nstwo { display:flex; flex-wrap:wrap; gap:12px; }
  .cr3nstwo > div { flex:1 1 160px; }
  .cr3nslbl { display:block; margin:10px 0 5px; font-size:11.5px; font-weight:800;
              color:#8a93a0; }
  .cr3nstwo .cr3nslbl { margin-top:0; }
  .cr3nsbar { display:flex; gap:6px; }
  .cr3nsb { flex:1 1 0; padding:7px 8px; border:1px solid #dce1e8; border-radius:8px;
            background:#fff; color:#56607a; font-family:inherit; font-size:12.5px;
            font-weight:800; cursor:pointer; }
  .cr3nsb:hover { border-color:#8fb0ea; }
  .cr3nsb.on { border-color:#1a56db; background:#eef4ff; color:#1a56db; }
  .cr3nsin, #cr3NsPw { width:100%; box-sizing:border-box; padding:8px 10px;
                       border:1px solid #dce1e8; border-radius:8px;
                       font-family:inherit; font-size:13px; }
  .cr3nsin:focus, #cr3NsPw:focus { outline:0; border-color:#8fb0ea; background:#f7faff; }
  .cr3nspw { margin-top:10px; padding:9px 10px; border:1px solid #f3dca8;
             border-radius:8px; background:#fffaf0; }
  .cr3nspw .cr3pwmsg { margin-bottom:7px; }
  .cr3nsline { display:flex; align-items:center; gap:6px; }
  .cr3nsline > input { flex:1 1 auto; min-width:0; letter-spacing:3px; }
  .cr3nsline > code { flex:1 1 auto; min-width:0; padding:7px 9px; border:1px solid #eef1f5;
                      border-radius:8px; background:#f7f9fc; font-size:11px; color:#56607a;
                      overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .cr3nsno { padding:6px 11px; border:1px solid #dce1e8; border-radius:8px; background:#fff;
             color:#56607a; font-family:inherit; font-size:12px; font-weight:800;
             cursor:pointer; white-space:nowrap; }
  .cr3nsno:hover { border-color:#8fb0ea; color:#1a56db; }
  .cr3copy:disabled { opacity:.45; cursor:not-allowed; }

  /* 해약 창 — 비밀번호를 물어본다 */
  .modal.cr3pwbox { max-width:400px; padding:0; }
  .cr3pwbody { padding:13px 14px 14px; }
  .cr3pwmsg { margin:0 0 10px; font-size:12.5px; color:#56607a; line-height:1.6; }
  #cr3PwIn { width:100%; padding:9px 11px; border:1px solid #dce1e8; border-radius:8px;
             font-family:inherit; font-size:14px; letter-spacing:3px; }
  #cr3PwIn:focus { outline:0; border-color:#8fb0ea; background:#f7faff; }
  .cr3pwbtns { display:flex; align-items:center; gap:8px; margin-top:11px; }
  .cr3pwdel { margin-left:auto; padding:6px 10px; border:1px solid #f0cfcf;
              border-radius:8px; background:#fff; color:#c0392b; font-family:inherit;
              font-size:11.5px; font-weight:800; cursor:pointer; }
  .cr3pwdel:hover { background:#fff5f5; }
  .cr3pwnote { margin-top:9px; min-height:16px; font-size:11.5px; color:#c0392b; }

  /* 캐피탈 명부 창 */
  .modal.cr3capbox { max-width:620px; padding:0; }
  /* 캐피탈 창은 위쪽에 붙이고 목록을 길게 — 한 곳을 펴면 칸·등록증·저장까지 다 보이게 */
  #cr3CapBg.show { align-items:flex-start; padding-top:3vh; }
  .cr3caplist { max-height:calc(94vh - 110px); overflow:auto; padding:6px; }
  .cr3cap { border:1px solid #eef1f5; border-radius:9px; margin-bottom:5px; }
  .cr3cap.펴짐 { border-color:#cddcf7; background:#fbfdff; }
  .cr3capline { display:flex; align-items:center; gap:7px; padding:9px 11px;
                cursor:pointer; }
  .cr3capline:hover { background:#f6f9ff; }
  .cr3capline > b { flex:0 0 auto; font-size:13px; color:#1a2b48; }
  .cr3capline .실 { flex:1 1 auto; min-width:0; font-size:11.5px; color:#8a93a0;
                    overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .cr3capline .증 { flex:0 0 auto; padding:1px 5px; border-radius:999px;
                    background:#effaf6; border:1px solid #bfe3d6; color:#0f766e;
                    font-style:normal; font-size:10px; font-weight:800; }
  .cr3capline .꺽 { flex:0 0 auto; color:#b6bdc7; font-style:normal; font-size:11px; }
  .cr3capbody { padding:2px 11px 11px; }
  .cr3capf { display:flex; align-items:center; gap:7px; margin-bottom:5px; }
  .cr3capf > span { flex:0 0 74px; font-size:11.5px; font-weight:800; color:#8a93a0; }
  .cr3capf input { flex:1 1 auto; min-width:0; padding:6px 8px; border:1px solid #dce1e8;
                   border-radius:7px; font-family:inherit; font-size:12.5px;
                   color:#1a2b48; }
  .cr3capf input:focus { outline:0; border-color:#8fb0ea; background:#f7faff; }
  .cr3capregs { margin:8px 0 4px; padding:7px 8px; background:#f7f9fc;
                border:1px solid #eef1f5; border-radius:8px; }
  .cr3capregs .머리 { display:block; margin-bottom:4px; font-size:11px;
                      font-weight:800; color:#8a93a0; }
  .cr3capreg { display:flex; gap:4px; margin-bottom:4px; }
  .cr3capreg input { flex:1 1 0; min-width:0; padding:5px 7px; border:1px solid #e3e8ef;
                     border-radius:6px; font-family:inherit; font-size:11.5px; }
  .cr3capreg input:focus { outline:0; border-color:#8fb0ea; background:#fff; }
  .cr3caplic { display:flex; align-items:center; gap:7px; flex-wrap:wrap;
               margin:7px 0 0; font-size:11.5px; }
  .cr3caplic > a { color:#1a56db; font-weight:800; }
  .cr3caplic .dim { color:#a9b1bc; }
  .cr3caplic .지움 { width:20px; height:20px; padding:0; border:1px solid #e8ebf0;
                     border-radius:5px; background:#fff; color:#a9b1bc;
                     font-family:inherit; font-size:10px; cursor:pointer; }
  .cr3caplic .지움:hover { border-color:#e88; color:#c0392b; }
  .cr3caplic label.올리기 { margin-left:auto; padding:4px 9px; border:1px dashed #cddcf7;
                            border-radius:7px; background:#fff; color:#1a56db;
                            font-size:11.5px; font-weight:800; cursor:pointer; }
  .cr3caplic label.올리기:hover { background:#eef4ff; border-style:solid; }
  .cr3caplic label.올리기 input { display:none; }
  .cr3capbtns { display:flex; align-items:center; gap:7px; margin-top:10px; }
  .cr3capdel { margin-left:auto; padding:6px 10px; border:1px solid #f0cfcf;
               border-radius:8px; background:#fff; color:#c0392b; font-family:inherit;
               font-size:11.5px; font-weight:800; cursor:pointer; }
  .cr3capdel:hover { background:#fff5f5; }

  /* 받을자료 챌표 — 표에는 몇 개 챘는지만, 누르면 목록이 펴진다 */
  .cr3docs { display:flex; align-items:center; gap:3px; flex:1 1 auto; min-width:0; }
  /* 한 줄에 고르기가 둘이면(상태·상품구분) 자리를 나눠 쓴다 */
  .cr3ln.many > select { flex:1 1 0; min-width:54px; }
  /* 계약금 · 출처 · 고객이름 셋이 한 줄에 설 때 (2026-09-22) —
     돈은 제 너비를 갖고, 고르기와 글이 남은 자리를 나눈다. 안 그러면
     가운데 고르기가 10px 로 찌부러져 무엇을 골랐는지 안 보였다. */
  .cr3ln.many > input.money { flex:0 0 74px; }
  .cr3ln.many > input[data-k="고객이름"] { flex:1 1 60px; min-width:44px; }
  .cr3ln.many > select + select { border-left:1px solid #eef1f5; border-radius:0 4px 4px 0; }
  /* 받을자료 아랫줄 단추 셋 — 의무보험 · 등기발송 · 내신서 (2026-09-16).
     여기 있던 비고 칸을 걷어낸 자리다. 칩과 같은 꼴로 두어 위아래가 맞는다. */
  .cr3btns { display:flex; align-items:center; gap:3px; flex:1 1 auto; min-width:0; }
  .cr3doc.등기, .cr3doc.보험, .cr3doc.ns, .cr3doc.ec { flex:1 1 0; }
  /* 전자계약 — 끝(O)이면 초록, 아직(X)이면 주황 (2026-10-03) */
  .cr3doc.ec.done { border-color:#b7e4d4; background:#effaf5; color:#0f766e; }
  .cr3doc.ec.todo { border-color:#f5d9b0; background:#fff8ee; color:#b45309; }
  .cr3doc.ec.done:hover { background:#0f766e; border-color:#0f766e; color:#fff; }
  .cr3doc.ec.todo:hover { background:#b45309; border-color:#b45309; color:#fff; }
  .cr3doc.ec i.nso, .cr3doc.ec i.nsx { margin-left:3px; font-size:10.5px; font-weight:900; }
  .cr3doc.ec i.nso { color:#0f766e; }
  .cr3doc.ec i.nsx { color:#b45309; }
  .cr3doc.ec:hover i.nso, .cr3doc.ec:hover i.nsx { color:#fff; }
  .cr3doc.등기 i, .cr3doc.보험 i { font-weight:800; }
  /* 내신서 — 모자란 것이 있으면 빨강, 다 갖추면 파랑 (끝 칸에 있던 색 그대로) */
  .cr3doc.ns.ready { border-color:#bcd0f5; background:#f2f6ff; color:#1a56db; }
  .cr3doc.ns.miss { border-color:#f0c4bd; background:#fdf3f2; color:#c0392b; }
  .cr3doc.ns.ready:hover { background:#1a56db; border-color:#1a56db; color:#fff; }
  .cr3doc.ns.miss:hover { background:#c0392b; border-color:#c0392b; color:#fff; }
  /* 결제 전에는 내신서를 쓸 수 없다 — 흐리게 두고 누르지 못하게 */
  .cr3doc[disabled] { opacity:.4; cursor:default; }
  .cr3doc[disabled]:hover { border-color:#e3e8ef; }
  /* 의무보험 창 — 낸 사람 셋을 한 줄에 나란히 */
  /* 여러 장을 창 아무 데나 끌어다 놓을 때 (2026-09-23) */
  .cr3docbox.놓는중 { outline:2px dashed #1a56db; outline-offset:-4px;
                      background:#f7faff; }
  .cr3docdrop { margin:8px 2px 0; padding:8px 10px; border:1px dashed #d4dcea;
                border-radius:9px; font-size:11.5px; color:#8a93a0; text-align:center; }
  .cr3docbox.놓는중 .cr3docdrop { border-color:#1a56db; color:#1a56db;
                                  background:#eef3ff; font-weight:800; }
  .cr3docbox .고름줄 { display:flex; gap:4px; padding:0 2px 2px; }
  .cr3docbox .고름줄 label.고름 { flex:1 1 0; justify-content:center; gap:3px;
                                  padding:5px 1px; border:1px solid #eef1f5;
                                  font-size:11px; white-space:nowrap; }
  .cr3docbox .고름줄 label.고름 input { flex:0 0 auto; width:13px; height:13px; }
  .cr3docbox .고름줄 label.고름:hover { border-color:#8fb0ea; }
  .cr3docbox label.적기 input.money { text-align:right; }
  /* 등기발송 창 맨 위 주소 메모칸 */
  .cr3docbox textarea.메모 { display:block; width:calc(100% - 8px); margin:2px 4px 4px;
                             box-sizing:border-box; padding:7px 9px; resize:vertical;
                             border:1px solid #e3e8ef; border-radius:7px;
                             background:#fcfdff; font-family:inherit; font-size:12px;
                             line-height:1.6; color:#1a2b48; }
  .cr3docbox textarea.메모:focus { outline:0; border-color:#8fb0ea; background:#f7faff; }
  .cr3docbox textarea.메모::placeholder { color:#b6bdc7; }
  .cr3docbox label.고름 input { width:14px; height:14px; accent-color:#0f766e; }
  .cr3doc { flex:1 1 0; min-width:0; display:flex; align-items:center;
            justify-content:center; gap:3px; height:20px; padding:0 3px;
            border:1px solid #e3e8ef; border-radius:5px; background:#fff;
            font-family:inherit; font-size:10.5px; font-weight:800; color:#98a1ae;
            white-space:nowrap; overflow:hidden; cursor:pointer; }
  .cr3doc i { font-style:normal; font-size:9.5px; font-weight:700; opacity:.85; }
  .cr3doc:hover { border-color:#8fb0ea; }
  .cr3doc.part { background:#fff8ec; border-color:#f3d9b0; color:#b45309; }
  .cr3doc.done { background:#effaf6; border-color:#bfe3d6; color:#0f766e; }
  .cr3docbox { position:fixed; z-index:60; min-width:216px; max-height:320px;
               overflow:auto; padding:4px; background:#fff;
               border:1px solid #cddcf7; border-radius:9px;
               box-shadow:0 10px 28px rgba(16,24,40,.16); }
  .cr3docbox .머리 { display:flex; align-items:center; gap:5px; padding:4px 6px 6px;
                     font-size:11.5px; color:#8a93a0; }
  .cr3docbox .머리 b { color:#1a2b48; font-size:12.5px; }
  .cr3docclose { margin-left:auto; width:20px; height:20px; padding:0;
                 border:1px solid #e8ebf0; border-radius:5px; background:#fff;
                 color:#98a1ae; font-family:inherit; font-size:11px; cursor:pointer; }
  .cr3docclose:hover { border-color:#e88; color:#c0392b; }
  .cr3docbox .때 { padding:5px 6px 2px; font-size:10.5px; font-weight:800;
                   color:#a9b1bc; }
  .cr3docbox label { display:flex; align-items:center; gap:6px; padding:5px 6px;
                     border-radius:6px; font-size:12px; color:#1a2b48;
                     cursor:pointer; }
  .cr3docbox label:hover { background:#f4f8ff; }
  .cr3docbox label input { width:14px; height:14px; accent-color:#0f766e;
                           cursor:pointer; }
  .cr3docbox label em { margin-left:auto; font-style:normal; font-size:10px;
                        font-weight:800; color:#b6bdc7; }
  /* 자료 한 줄 — 누르면 붙여넣을 자리가 된다 (Ctrl+V) */
  .cr3docbox .것 { padding:3px 0 5px; border:1px solid transparent; border-radius:7px;
                   border-bottom:1px dashed #f1f3f6; cursor:pointer; }
  .cr3docbox .것:last-of-type { border-bottom:1px solid transparent; }
  .cr3docbox .것:hover { background:#f8fbff; }
  .cr3docbox .것.고름 { background:#eef4ff; border-color:#cddcf7;
                        border-bottom-color:#cddcf7; }
  .cr3docbox .것 .줄 { display:flex; align-items:center; gap:6px; padding:2px 7px; }
  .cr3docbox .것 .줄 > span { font-size:12px; color:#1a2b48; }
  .cr3docbox .것 .줄 > b { width:14px; text-align:center; font-size:12px; }
  .cr3docbox .것 .줄 > b.찬 { color:#0f766e; }
  .cr3docbox .것 .줄 > b.빈 { color:#cfd5dd; font-weight:700; }
  .cr3docbox .것 .줄 > em { margin-left:auto; font-style:normal; font-size:10px;
                            font-weight:800; color:#b6bdc7; }
  .cr3docbox .것 .여기 { margin-left:auto; font-style:normal; font-size:10px;
                         font-weight:800; color:#1a56db; white-space:nowrap; }
  .cr3docbox .것 .줄 > em + .여기 { margin-left:6px; }
  .cr3docbox .파일들 { display:flex; flex-wrap:wrap; gap:4px; padding:0 7px 0 27px; }
  .cr3docbox .파일 { display:inline-flex; align-items:center; max-width:100%;
                     border:1px solid #dbe6f7; border-radius:5px; background:#f6faff; }
  .cr3docbox .파일 > a { max-width:132px; padding:2px 5px; overflow:hidden;
                         text-overflow:ellipsis; white-space:nowrap;
                         font-size:10.5px; color:#1a56db; text-decoration:none; }
  .cr3docbox .파일 > a:hover { text-decoration:underline; }
  .cr3docbox .파일 .지움 { width:16px; padding:0; border:0; border-left:1px solid #dbe6f7;
                           background:transparent; color:#a9b1bc; font-size:10px;
                           line-height:1; cursor:pointer; }
  .cr3docbox .파일 .지움:hover { color:#c0392b; background:#fff5f5; }
  .cr3docbox label.올리기 { display:inline-flex; align-items:center; padding:2px 7px;
                            border:1px dashed #cddcf7; border-radius:5px;
                            background:#fff; color:#1a56db; font-size:10.5px;
                            font-weight:800; cursor:pointer; }
  .cr3docbox label.올리기:hover { background:#eef4ff; border-style:solid; }
  .cr3docbox label.올리기 input { display:none; }
  .cr3docbox input[type=checkbox]:disabled { accent-color:#0f766e; opacity:.85; }

  /* 목록 속 적는 칸 — 고객 이름·연락처 */
  .cr3docbox label.적기 { align-items:center; gap:6px; margin-top:2px;
                          padding:4px 6px; }
  .cr3docbox label.적기 > span { flex:0 0 62px; font-size:11px; color:#8a93a0;
                                 font-weight:800; }
  .cr3docbox label.적기 input { flex:1 1 auto; min-width:0; width:auto; height:26px;
                                padding:3px 7px; border:1px solid #dce1e8;
                                border-radius:6px; font-family:inherit;
                                font-size:12px; color:#1a2b48; }
  .cr3docbox label.적기 input:focus { outline:0; border-color:#8fb0ea;
                                      background:#f7faff; }

  /* 때 기록 — 줄번호를 누르면 펴진다 */
  .cr3timebox { position:fixed; z-index:60; width:352px; max-height:420px;
                overflow:auto; padding:5px; background:#fff;
                border:1px solid #cddcf7; border-radius:9px;
                box-shadow:0 10px 28px rgba(16,24,40,.16); }
  .cr3timebox .머리 { display:flex; align-items:center; gap:6px; padding:4px 6px 7px;
                      font-size:11.5px; color:#8a93a0; }
  .cr3timebox .머리 b { color:#1a2b48; font-size:12.5px; }
  .cr3timeclose { margin-left:auto; width:20px; height:20px; padding:0;
                  border:1px solid #e8ebf0; border-radius:5px; background:#fff;
                  color:#98a1ae; font-family:inherit; font-size:11px; cursor:pointer; }
  .cr3timeclose:hover { border-color:#e88; color:#c0392b; }
  .때줄 { display:flex; align-items:center; gap:4px; padding:3px 6px; border-radius:6px; }
  .때줄:hover { background:#f7faff; }
  .때줄.찍힘 .이름 { color:#0f766e; }
  .때줄 .이름 { flex:0 0 74px; font-size:11.5px; font-weight:800; color:#8a93a0; }
  .때줄 input { flex:0 0 150px; padding:3px 5px; border:1px solid #dce1e8;
                border-radius:6px; font-family:inherit; font-size:11px;
                color:#1a2b48; }
  .때줄.찍힘 input { border-color:#bfe3d6; background:#f7fffc; }
  .때줄 input:focus { outline:0; border-color:#8fb0ea; background:#f7faff; }
  .때줄 .이제, .때줄 .비움 { flex:0 0 auto; padding:2px 5px; border:1px solid #e3e8ef;
                            border-radius:5px; background:#fff; color:#8a93a0;
                            font-family:inherit; font-size:10px; font-weight:800;
                            cursor:pointer; }
  .때줄 .이제:hover { border-color:#8fb0ea; color:#1a56db; }
  .때줄 .비움:hover { border-color:#e88; color:#c0392b; }
  .때줄 em { flex:1 1 100%; padding-left:80px; font-style:normal; font-size:10px;
             color:#c3cad3; white-space:nowrap; overflow:hidden;
             text-overflow:ellipsis; }
  .cr3timebox .꼬리 { padding:5px 7px 3px; font-size:10.5px; color:#a9b1bc; }

  /* AG담당자 고르기 — 한 글자만 쳐도 걸러 보여 준다 (화면 맨 위에 띄운다) */
  .cr3pick { position:fixed; z-index:60; max-height:260px; overflow:auto;
             background:#fff; border:1px solid #cddcf7; border-radius:9px;
             box-shadow:0 10px 28px rgba(16,24,40,.16); padding:3px; }
  .cr3pick > div { display:flex; align-items:center; gap:6px; padding:6px 8px;
                   border-radius:6px; font-size:12px; color:#1a2b48; cursor:pointer;
                   white-space:nowrap; }
  .cr3pick > div.on { background:#eef4ff; }
  .cr3pick > div:hover { background:#f4f8ff; }
  .cr3pick b { font-weight:800; }
  .cr3pick .q { color:#8a93a0; font-size:11.5px; overflow:hidden;
                text-overflow:ellipsis; }
  .cr3pick .t { margin-left:auto; color:#1a56db; font-size:11.5px; font-weight:700;
                font-variant-numeric:tabular-nums; }
  /* 번호가 둘인 사람 — 대표번호 옆에 '+1' (2026-09-22) */
  .cr3pick .t > .또 { font-style:normal; margin-left:3px; padding:0 4px;
                       border-radius:999px; background:#eef4ff; color:#6b7280;
                       font-size:10px; font-weight:800; }
  .cr3pick .더 { padding:6px 8px; border-top:1px dashed #e3e8ef; color:#a9b1bc;
                 font-size:10.5px; white-space:normal; }
  /* AG담당자 칸 오른쪽 ▾ — 누르면 명부가 그대로 펴진다 */
  /* AG담당자 이름 — 글자 수만큼 넓혀 두어 잘리지 않는다 (폭은 화면이 적어 준다) */
  .cr3in.ag { flex:0 0 auto; }
  /* ▾ — 그 칸 맨 오른쪽 붙박이 */
  .cr3agdown { flex:0 0 auto; margin-left:auto; width:16px; height:20px; padding:0;
               border:0; background:transparent; color:#c7cfda; font-family:inherit;
               font-size:10px; line-height:1; cursor:pointer; }
  .cr3xl tr:hover .cr3agdown { color:#8a93a0; }
  .cr3agdown:hover { color:#1a56db !important; }

  @media (max-width:760px){
    /* 폰 — 표가 화면보다 넓으니 좌우로 밀어 보게 한다 (그때는 칸 이름줄이 안 붙는다)
       둘 다 가질 수는 없다 — 가로 스크롤 통이 있으면 세로 붙박이가 그 안에 갇힌다. */
    .cr3sheet { max-height:none; overflow-x:auto; }
    .tblwrap, .cpwrap, .cdtblwrap { overflow-x:auto; }
    .cr3cnt { margin-left:0; }
    /* 좌우로 미는 통이 생기면 칸 이름줄은 그 통 맨 위에 붙어야 한다.
       화면 머리 높이(--머리높이)만큼 내리면 줄 한가운데에 떠서 줄을 덮는다
       (PC 에서는 통이 없어 화면 머리 아래에 붙는 것이 맞다, 2026-09-23). */
    .cr3xl th, .tblwrap table th, #inv2Res thead th,
    .cptbl thead th, .cdtbl thead th { top:0; }
  }

  .tblwrap { max-height:none; overflow:visible; }
  /* 재고 목록 칸 이름줄만 화면 머리 아래에 붙인다 (2026-09-23).
     th 전체에 주었더니 제 스크롤을 쓰는 표들(수당 표 …)에서 머리가 한가운데
     떠서 줄을 덮었다 — 그 표들은 예전대로 제 통 맨 위(top:0)에 붙는다. */
  .tblwrap table th { top:var(--머리높이, 96px); }
  /* ── 폰에서는 줄 하나를 카드 하나로 (2026-09-13) ──────────────────
     칸이 여덟인 표는 폰 폭에 안 들어간다. 예전에는 표에 최소 폭 720px 을 주고
     좌우로 밀어 보게 했는데, 한 줄 보려면 오른쪽으로 밀고 다음 줄 보려면 다시
     왼쪽으로 밀어야 했다. 그래서 칸을 세로로 접어 쌓는다 — 좌우로 밀 일이 없다.
     표(table)의 뼈대는 그대로 두고 보이는 꼴만 바꾼다 — 줄을 만드는 곳(재고줄)이
     한 군데라, 여기 CSS 만으로 두 화면(재고조회·재고알림)이 같이 바뀐다. */
  @media (max-width:760px){
    .tblwrap table { min-width:0; }
    .tblwrap thead { display:none; }            /* 머리글 대신 칸마다 이름을 붙인다 */
    .tblwrap table, .tblwrap tbody { display:block; width:100%; }
    .tblwrap tbody tr { display:grid; grid-template-columns:1fr auto;
                        gap:1px 9px; align-items:start;
                        margin:0 0 7px; padding:9px 10px; background:#fff;
                        border:1px solid #e6eaf0; border-radius:11px; }
    .tblwrap tbody tr > td { display:block; border:0; padding:1px 0;
                             max-width:100%; overflow:hidden; }
    .tblwrap tbody tr > td.spec,
    .tblwrap tbody tr > td.opt,
    .tblwrap tbody tr > td.stk { grid-column:1 / -1; }
    .tblwrap tbody tr > td.clr { grid-column:1; }
    .tblwrap tbody tr > td.pr  { grid-column:2; text-align:right; }
    /* 차종·사양을 한 줄로 — 칩이 이어 흐르게 (세 줄로 끊겨 있었다) */
    .tblwrap tbody tr > td.spec .spec-n { display:inline; }
    .tblwrap tbody tr > td.spec .spec-n > span { display:inline-block; }
    /* 색상 — 「외장 : ○○ / 내장 : ○○」 한 줄 */
    .tblwrap tbody tr > td.clr { white-space:normal; }
    .tblwrap tbody tr > td.clr .cl { display:inline; }
    .tblwrap tbody tr > td.clr .cl.in { margin-top:0; }
    .tblwrap tbody tr > td.clr .cl::before { content:'외장 : '; color:#b0b6bd;
                                             font-size:10.5px; font-weight:800; }
    .tblwrap tbody tr > td.clr .cl.in::before { content:' / 내장 : '; }
    .tblwrap tbody tr > td.clr .sw { display:inline-block; vertical-align:-1px;
                                     margin-right:2px; }
    .tblwrap tbody tr > td.clr .cadd2 { display:inline; margin:0 0 0 3px; }
    /* 재고 대수·구분·출고센터·생산일도 한 줄 */
    .tblwrap tbody tr > td.stk { white-space:normal; }
    .tblwrap tbody tr > td.stk .br { display:inline; margin:0 0 0 6px; }
    .tblwrap tbody tr > td.stk .ctrbtn { margin-left:6px; vertical-align:1px; }
    /* 발견시간은 카드 맨 아래 — 띠가 tr 을 기준으로 자리잡게 .opt 를 풀어 준다 */
    .tblwrap tbody tr { position:relative; padding-bottom:24px; }
    .tblwrap tbody tr > td.opt { position:static; }
    .tblwrap tbody tr > td.opt.seenpad { padding-bottom:1px; }
    .tblwrap tbody tr > td.opt .seen { left:10px; right:10px; bottom:6px;
                                       padding:3px 0 0; }
    .tblwrap tbody tr > td.dc  { grid-column:1; }
    .tblwrap tbody tr > td.rq  { grid-column:2; text-align:right; }
    /* 무슨 값인지 알 수 있게 칸 이름을 앞에 붙인다 (머리글이 없으므로) */
    .tblwrap tbody tr > td.opt::before,
    .tblwrap tbody tr > td.dc::before,
    .tblwrap tbody tr > td.rq::before {
      display:block; font-size:10px; font-weight:800; color:#b0b6bd;
      letter-spacing:.02em; }
    .tblwrap tbody tr > td.opt::before { content:'옵션'; }
    .tblwrap tbody tr > td.dc::before  { content:'할인'; }
    .tblwrap tbody tr > td.rq::before  { content:'요청'; }
    /* 할인·요청은 '-' 뿐인 줄이 대부분이다 — 그런 칸은 접는다 (:has 를 모르는
       브라우저에서는 그냥 '-' 로 보인다. 틀린 값이 보이는 것은 아니다) */
    .tblwrap tbody tr > td.dc:has(> .zero),
    .tblwrap tbody tr > td.rq:has(> .zero) { display:none; }
    .tblwrap tbody tr > td.stk { margin-top:4px; padding-top:5px;
                                 border-top:1px solid #f1f4f8; }
    .tblwrap tbody tr > td.pr { font-size:13.5px; }
    /* 빈 줄('조건에 맞는 차가 없습니다') 은 칸 하나뿐이라 가운데로 */
    .tblwrap tbody tr > td.empty { grid-column:1 / -1; text-align:center; }
  }
  @media (max-width:820px){ .left { flex:1 1 100%; position:static; } .mlist { flex-direction:row; flex-wrap:wrap; max-height:none; } .mitem { flex:0 0 auto; border:1px solid #e3e7ec; } }


  /* 주문 가능 색상 보기 */
  .clrbtn { border:1px dashed #c8cfda; background:#fbfcfe; color:#55617a; border-radius:7px;
            padding:4px 9px; font-size:12px; cursor:pointer; }
  .clrbtn:hover { background:#eef4ff; border-color:#9fbdf0; color:#1a56db; }
  .clrbtn em { font-style:normal; color:#1a56db; font-weight:700; }
  .cl-sec { font-size:12px; font-weight:800; color:#8a93a0; margin:12px 0 6px; }
  .cl-list { display:flex; flex-wrap:wrap; gap:6px; }
  .cl-it { display:inline-flex; align-items:center; gap:6px; border:1px solid #e3e7ee;
           border-radius:8px; padding:5px 9px; font-size:12.5px; background:#fff; }
  .cl-it code { color:#8a93a0; font-size:11.5px; }

  /* 출고센터 — 재고칸의 버튼과, 그 버튼이 여는 모달 */
  .stk .ctrbtn { display:inline-block; margin-top:3px;
                 border:1px solid #dfe4ec; background:#fff; color:#55617a;
                 border-radius:7px; padding:2px 7px; font-size:11px; font-weight:700;
                 cursor:pointer; white-space:nowrap; }
  .stk .ctrbtn:hover { background:#eef4ff; border-color:#9fbdf0; color:#1a56db; }
  .stk .ctrbtn em { font-style:normal; color:#1a56db; font-weight:800; }
  /* 머리줄 — 무슨 색 차를 몇 대 보고 있는지 */
  .ct-head { display:flex; flex-wrap:wrap; align-items:center; gap:8px;
             padding:8px 10px; border:1px solid #e8ecf3; border-radius:9px;
             background:#f8fafc; margin-bottom:4px; }
  .ct-head .ct-car { font-size:13px; font-weight:700; color:#334; }
  .ct-head .ct-tot { font-size:14px; font-weight:800; color:#1a56db; }
  .ct-sec { font-size:12px; font-weight:800; color:#8a93a0; margin:12px 0 6px; }
  .ct-list { display:flex; flex-wrap:wrap; gap:6px; }
  .ct-it { border:1px solid #e3e7ee; border-radius:8px; padding:5px 10px;
           font-size:12.5px; background:#fff; }
  .ct-it b { color:#1a56db; margin-left:3px; }
  /* Y코드 — 주문서에 적는 값이라 긁어 쓰기 좋게 통째로 잡히게 둔다 */
  .ctr-c { font-family:Consolas,monospace; font-size:11.5px; font-weight:800;
           color:#0f766e; user-select:all; }
  .ct-note { margin-top:8px; font-size:12px; color:#8a6d3b;
             background:#fdf6e3; border:1px solid #f3e7c4;
             border-radius:7px; padding:6px 9px; }
  /* 생산번호 표 — 대수가 많으면 표만 따로 굴린다 */
  .ct-tb { width:100%; border-collapse:collapse; font-size:12.5px; }
  .ct-tb th { text-align:left; font-size:11px; font-weight:800; color:#8a93a0;
              padding:4px 8px; border-bottom:1px solid #e8ecf3; white-space:nowrap; }
  .ct-tb td { padding:4px 8px; border-bottom:1px solid #f2f4f8; white-space:nowrap; }
  .ct-tb tr:hover td { background:#f8fafc; }
  .ct-tb .no { font-family:Consolas,monospace; font-weight:700; color:#1a56db;
               user-select:all; }
  .ct-tb .r { text-align:right; font-variant-numeric:tabular-nums; }

  /* 줄을 누르면 차량 정보가 복사된다 — 누를 수 있다는 티를 낸다 */
  tbody tr.pick { cursor:pointer; }
  tbody tr.pick:hover td { background:#f6f9ff; }
  /* 누른 자리에 잠깐 뜨는 쪽지 */
  #copyToast { position:fixed; z-index:9999; pointer-events:none;
               padding:5px 10px; border-radius:7px;
               background:#1f2937; color:#fff; font-size:12px; font-weight:700;
               box-shadow:0 4px 14px rgba(0,0,0,.22);
               opacity:0; transform:translateY(4px);
               transition:opacity .12s, transform .12s; }
  #copyToast.on { opacity:1; transform:translateY(0); }

  /* 차종은 스무 개 남짓이다. 안에서 굴리면 아래쪽 차가 안 보여 답답하다 —
     굴림을 없애고 길이를 늘려 한눈에 다 보이게 한다.
     왼쪽 칸은 sticky 라, 화면보다 길어지면 그 칸만 따로 굴린다.
     ※ 폰에서는 위쪽 media 가 정해 둔 높이(240·190px)를 그대로 둔다 —
       여기서 풀어 버리면 목록이 화면을 다 잡아먹는다. */
  @media (min-width:761px){
    #mlist, .calcleft .mlist { max-height:none; overflow:visible; }
    .left, .calcleft { max-height:calc(100vh - 20px); overflow-y:auto; }
  }

/* ── 차량수당 표 (5050 수당 화면과 같은 꼴) ────────────
   차량가 하나로 전 차종을 한 표에서 견준다. 요율·퍼센트는 안 찍는다 —
   서버가 셈해서 금액만 내려보내므로 화면에 요율이 남지 않는다. */
.ctop { display:flex; align-items:center; gap:14px; flex-wrap:wrap;
        padding-bottom:10px; margin-bottom:10px; border-bottom:1px solid #eef1f5; }
.ctprice { display:flex; align-items:center; gap:7px; }
.ctprice > span { font-size:13px; font-weight:800; color:#56607a; }
.ctprice input { width:170px; padding:8px 11px; border:1px solid #dce1e8; border-radius:8px;
                 font-family:inherit; font-size:16px; font-weight:800; color:#1a2b48;
                 text-align:right; font-variant-numeric:tabular-nums; }
.ctprice input:focus { outline:none; border-color:#1a56db; box-shadow:0 0 0 3px #e8efff; }
.ctprice > em { font-style:normal; font-size:13px; font-weight:700; color:#8a93a3; }
.ctq { padding:6px 10px; border:1px solid #dce1e8; border-radius:7px; background:#fff;
       font-family:inherit; font-size:12px; font-weight:700; color:#56607a; cursor:pointer; }
.ctq:hover { border-color:#1a56db; color:#1a56db; }
.ctq.clr { color:#c2410c; }

.ctwrap { overflow-x:auto; }
.cttb { width:100%; border-collapse:collapse; }
.cttb th { padding:6px 8px; background:#f7f9fc; border-bottom:1px solid #e2e6ec;
           font-size:12.5px; font-weight:800; color:#56607a; text-align:right;
           white-space:nowrap; }
.cttb th:first-child, .cttb th:nth-child(2) { text-align:left; }
.cttb th.key { color:#0b7f58; }
.cttb td { padding:5px 8px; border-bottom:1px solid #f1f4f8; font-size:13.5px;
           text-align:right; white-space:nowrap; }
.cttb tbody tr { cursor:pointer; }
.cttb tbody tr:hover td { background:#f6f9ff; }
/* 고른 줄 — 지급금액·진짜수당 칸은 제 바탕색이 따로 있어서 줄 표시가 먹히지 않았다.
   그 칸들까지 한 번에 짚어 준다 (어느 차를 눌렀는지 눈으로 바로 보이게). */
.cttb tbody tr.on > td { background:#e4ecfb; }
.cttb tbody tr.on > td.ctn { font-weight:800; box-shadow:inset 3px 0 0 #1a56db; }
.cttb tbody tr.on > td.ctv.key { background:#d9e7fa; }
.cttb tbody tr.on > td.ctv.mine { background:#cfe0fa; }
.cttb tbody tr.on:hover > td { background:#dde8fb; }
.cttb tbody tr.on:hover > td.ctv.key { background:#d2e2f8; }
.cttb tbody tr.on:hover > td.ctv.mine { background:#c7dbf8; }
.cttb tr.ctgap td { border-top:2px solid #e2e6ec; }
.cttb td.ctn { text-align:left; font-weight:800; }
.cttb td.ctc { text-align:left; }
.cttb td.ctc em { font-style:normal; font-size:11px; font-weight:800; color:#8a93a3;
                  padding:2px 7px; border-radius:999px; background:#f1f4f8; }
.cttb td.ctv { font-variant-numeric:tabular-nums; font-weight:700; color:#334; }
.cttb td.ctv.key { color:#0b7f58; font-weight:800; }
/* 차량가를 아직 안 넣었을 때의 빈 금액 칸 */
.cttb td.ctv.none { color:#c3cad6; font-weight:700; }

/* 납기 — 표 아래 한 줄로 눕힌다 (예전에는 오른쪽 칸이었다) */
#dlvBox .dlvrow { display:flex; gap:9px; flex-wrap:wrap; }
#dlvBox .dlvcard { flex:1 1 240px; min-width:0; }



/* 엑셀처럼 한 표 — 값 칸은 VAT 포함 · 제외 · 3.3% 공제 셋으로 나눠 둔다 */
.cttb td.ctc { color:#8a93a3; font-size:12px; font-weight:700; }
.cttb td.ctv.c33 { color:#0b7f58; font-weight:800; }
.cttb th.key { color:#0b7f58; }
.cttb th:nth-child(n+6), .cttb td.ctv { min-width:84px; }

/* 왼쪽 표 / 오른쪽 납기. 납기는 화면을 내려도 따라온다 */
/* 수당표 — 좌우 반으로 (왼쪽 내연기관 · 오른쪽 전기차) */
.cthalf { display:flex; gap:12px; align-items:flex-start; }
.cthalf .cthb { flex:1 1 0; min-width:0; }
.cthh { display:flex; align-items:center; gap:6px; padding:6px 8px; margin-bottom:6px;
        background:#f4f6f9; border:1px solid #e6eaf0; border-radius:7px;
        font-size:12.5px; font-weight:800; color:#46506a; }
.cthh.ev { background:#eef7f3; border-color:#cfe3d8; color:#0b7f58; }
.cthh em { font-style:normal; margin-left:auto; font-size:11.5px; font-weight:700;
           color:#8a93a3; }
.ctwrap2 { overflow-x:auto; }
/* 좌우로 갈린 표 — 구분(승용·RV·상용) 칸은 좁게, 차종 이름은 줄바꿈 없이 */
.cthb .cttb th.ctc, .cthb .cttb td.ctc { width:58px; white-space:nowrap; }
.cthb .cttb th.ctn, .cthb .cttb td.ctn { white-space:nowrap; }
/* 내연기관 ↔ 전기차 탭 — 폰에서만 (PC 는 두 표를 나란히 본다) */
.cttabs { display:none; }
@media (max-width:900px){
  .cthalf { flex-wrap:wrap; }
  .cthalf .cthb { flex:1 1 100%; }
  .cttabs { display:flex; gap:6px; margin-bottom:9px; }
  .ctt { flex:1 1 0; padding:10px 8px; border:1px solid #e3e8ef; border-radius:9px;
         background:#fff; font-family:inherit; font-size:13px; font-weight:800;
         color:#56607a; cursor:pointer; }
  .ctt > em { font-style:normal; margin-left:3px; font-size:11.5px; color:#aab1ba; }
  .ctt.on { background:#1a2b48; border-color:#1a2b48; color:#fff; }
  .ctt.on > em { color:#9fb3d6; }
  /* 고른 쪽만 보여 준다 — 탭이 머리말 구실을 하니 안쪽 머리말은 감춘다 */
  .cthalf[data-side="ice"] > .cthb:nth-child(2),
  .cthalf[data-side="ev"] > .cthb:nth-child(1) { display:none; }
  .cthalf .cthh { display:none; }
  /* 차량가 줄 — 단추가 화면 밖으로 밀려 [지우기]·[부가세] 가 안 보였다.
     줄을 바꿔서라도 다 보이게 한다. */
  .ctprice { flex-wrap:wrap; row-gap:7px; }
  .ctprice input { width:150px; }
}
/* 왼쪽 수당표는 필요한 만큼만, 오른쪽 납기를 넓게 —
   수당표는 칸 넷(차종·구분·차량가·지급금액)이라 더 넓어도 빈칸만 늘어난다.
   납기는 사양 이름이 길어서(‘2.5 가솔린 노블레스 7인승’) 좁으면 줄이 접힌다. */
.ctrow { display:flex; gap:12px; align-items:flex-start; }
.ctrow .ctwrap { flex:1 1 auto; min-width:0; max-width:820px; }
.ctrow .ctdlv { flex:1 1 480px; min-width:0; position:sticky; top:10px; }
.ctdlv .dlvrow { display:flex; flex-wrap:wrap; gap:8px; }
.ctdlv .dlvcard { flex:1 1 300px; margin-bottom:0; }
.ctdlv .dlvpick { font-size:14px; }
.ctdlv .dtrim { font-size:13.5px; }
.ctdlv .dlead { font-size:13px; }
@media (max-width:1100px) {
  .ctrow { flex-direction:column; }
  .ctrow .ctwrap, .ctrow .ctdlv { flex:1 1 auto; width:100%; max-width:none;
                                  position:static; }
  .ctdlv .dlvcard { flex:1 1 260px; }
}

/* 칸을 좁힌 만큼 글자도 한 호 줄여 촘촘하게 */
.cttb th { font-size:11.5px; }
.cttb td { font-size:12.5px; }
.cttb td.ctn { font-size:12.5px; }
.cttb td.ctc { font-size:11px; }
.cttb td.ctv { font-variant-numeric:tabular-nums; }
/* 차종 이름이 길어도 한 줄로 (카니발 하이리무진 4인승) */
.cttb td.ctn { white-space:nowrap; }

/* 차종·분류·요율은 서로 바짝 붙인다 — 금액 칸과 눈으로 갈리게.
   min-width 는 금액 칸(3번째부터)에만 걸려 있으므로 이 셋은 내용만큼만 차지한다. */
.cttb th.ctc, .cttb td.ctc { padding-left:2px; padding-right:6px; width:1%;
                             white-space:nowrap; text-align:left; }
.cttb th.ctr, .cttb td.ctr { padding-left:6px; padding-right:10px; width:1%;
                             white-space:nowrap; text-align:right;
                             font-variant-numeric:tabular-nums; }
.cttb td.ctr { font-size:11.5px; font-weight:800; color:#8a93a3; }
.cttb th.ctr { text-align:right; }
.cttb td.ctn { padding-right:4px; }
/* 차종도 내용만큼만 — 남는 폭은 맨 끝 빈 칸이 먹는다.
   안 그러면 차종 칸이 늘어나면서 분류·요율이 멀찍이 떨어진다. */
.cttb th.ctn, .cttb td.ctn { width:1%; }
.cttb th.ctfill, .cttb td.ctfill { width:auto; padding:0; border-bottom-color:#f1f4f8; }
/* 금액 칸도 내용만큼만 (최소 너비는 지킨다) */
.cttb th:nth-child(n+6):not(.ctfill), .cttb td.ctv { width:1%; }

/* 차량가 · 면세 후 가격 — 셈의 밑돌이라 옅게 둔다 (받는 돈이 아니다) */
.cttb th.ctp, .cttb td.ctp { width:1%; white-space:nowrap; text-align:right;
                             padding-left:8px; padding-right:8px;
                             font-variant-numeric:tabular-nums; }
.cttb td.ctp { font-size:12px; font-weight:700; color:#8a93a3; }
/* 요율까지가 '어떻게 나왔나', 그 뒤가 '얼마' — 사이에 옅은 금을 긋는다 */
.cttb th.ctr, .cttb td.ctr { border-right:1px solid #e2e6ec; }
/* 부가세는 더해지는 것이라 옅게, 지급금액 앞에 금을 하나 더 */
.cttb td.ctv.vatc { color:#a8b0be; font-weight:700; }
.cttb th.key, .cttb td.ctv.key { border-left:1px solid #e2e6ec; }

/* 칸이 차종·분류·차량가·지급금액 넷뿐이라 지급금액을 또렷하게 */
.cttb td.ctv.key { font-size:14.5px; font-weight:800; color:#0b7f58; }
.cttb th.key, .cttb td.ctv.key { min-width:120px; background:#f6fbf8; }

/* 회원제 문턱 — 로그인 전에는 화면을 흐려 두고 만질 수 없게 한다.
   모달 자체는 그대로 보이므로 로그인·가입 신청은 할 수 있다. */
body.locked > *:not(.modalbg) { filter:blur(5px); pointer-events:none;
                                user-select:none; }
body.locked { overflow:hidden; }
/* 문턱일 때는 바깥을 눌러도 안 닫힌다 (닫으면 흐린 화면만 남는다) */
.modalbg.nolock-close { background:rgba(16,24,40,.62); }
.uhint { margin-top:8px; font-size:12px; line-height:1.65; color:#889; }

/* 비밀번호 찾기 — 로그인 창 안에서 펼쳐진다 */
.findbox { margin-top:10px; padding:11px 12px; border:1px solid #dde;
           border-radius:9px; background:#fafbfd; font-size:12.5px; line-height:1.7; }
.findbox > b { display:block; margin-bottom:4px; font-size:13px; color:#334; }
.findbox > span { display:block; color:#778; }
.findrow { display:flex; gap:6px; margin:8px 0 6px; }
.findrow input { flex:1; min-width:0; padding:8px 10px; border:1px solid #d4d9e0;
                 border-radius:7px; font-family:inherit; font-size:13.5px; }
.findrow button { flex:none; padding:8px 14px; border:0; border-radius:7px;
                  background:#1a56db; color:#fff; font-family:inherit;
                  font-size:13px; font-weight:700; cursor:pointer; }
.findrow button:disabled { background:#c3cad6; cursor:default; }
.findmsg { min-height:18px; font-size:12.5px; font-weight:700; color:#778; }
.findmsg.ok { color:#0f766e; }
.findmsg.bad { color:#c0392b; }

/* ── 머리말 내 계정 메뉴 (2026-09-11) ──────────────────────
   예전 🔔 알림설정 단추 자리. 로그인 정보·내 정보·알림설정·로그아웃을 모았다. */
.acct { position:relative; display:flex; gap:6px; align-items:center; }
.acct .acctb { display:inline-flex; align-items:center; gap:6px; }
.acct .acctb .ai { font-size:14px; }
.acct .acctb .an { font-weight:800; }
.acct .acctb .ad { font-size:10px; color:#8a93a3; }
.acctmenu { display:none; position:absolute; right:0; top:calc(100% + 6px); z-index:60;
            width:268px; background:#fff; border:1px solid #e3e7ec; border-radius:12px;
            box-shadow:0 10px 30px rgba(16,24,40,.18); overflow:hidden; }
.acctmenu.show { display:block; }
.am-head { padding:12px 13px; background:#f7f9fc; border-bottom:1px solid #eef0f3; }
.am-nm { font-size:14.5px; font-weight:800; color:#1a2b48; }
.am-tag { display:inline-block; margin-left:6px; padding:1px 7px; border-radius:6px;
          background:#e8f0fe; color:#1a56db; font-size:11px; font-weight:800;
          vertical-align:2px; }
.am-id { margin-top:3px; font-size:12px; font-weight:700; color:#56607a;
         font-variant-numeric:tabular-nums; }
.am-sub { margin-top:2px; font-size:11.5px; font-weight:700; color:#8a93a3; }
.am-it { display:block; width:100%; padding:10px 13px; border:0; border-bottom:1px solid #f4f6f9;
         background:#fff; text-align:left; cursor:pointer; text-decoration:none;
         font-family:inherit; }
.am-it:hover { background:#f6f9ff; }
.am-it b { display:block; font-size:13px; font-weight:800; color:#1a2b48; }
.am-it em { display:block; margin-top:2px; font-style:normal; font-size:11.5px;
            font-weight:700; color:#8a93a3; }
.am-it:last-child { border-bottom:0; }
.am-it.out b { color:#c0392b; }
@media (max-width:560px){ .acctmenu { width:min(268px, calc(100vw - 28px)); } }

/* 가입 신청 — 명함은 꼭 첨부 (2026-09-11) */
.ulab .must { margin-left:5px; padding:1px 6px; border-radius:5px; background:#fdeceb;
              color:#c0392b; font-size:10.5px; font-weight:800; vertical-align:1px; }
.upick { margin:-4px 0 8px; font-size:11.5px; font-weight:700; color:#b0b6bd; }
.upick.ok { color:#0b7f58; }
.upick.bad { color:#c0392b; }
.btn.go.off, .btn.go:disabled { background:#e7eaee; border-color:#e7eaee; color:#a8b0be;
                                cursor:default; box-shadow:none; }

/* 내가 받는 수당 ↔ 순수익 — 관리자에게만 보이는 칸 (2026-09-11)
   너비를 못 박아 둔다. 안 그러면 이름이 바뀔 때마다 칸이 늘었다 줄었다 해서
   표 전체가 움찔거린다. */
.cttb th.mine, .cttb td.ctv.mine { width:116px; min-width:116px; max-width:116px; }
.cttb th.mine { color:#1a56db; cursor:pointer; user-select:none; }
.cttb th.mine:hover { background:#eef4ff; }
.cttb th.mine .swap { margin-left:4px; font-size:10px; color:#8fb0ea; }
.cttb td.ctv.mine { cursor:pointer; }
.cttb td.ctv.mine.minus { color:#c0392b; }
.cttb td.ctv.mine { color:#1a56db; font-weight:800; background:#f7faff; }
.cttb td.ctv.mine.none { color:#c3cad6; background:#fbfcfe; }

/* 표 아래 한 줄 — 글이 길어지면 두 줄이 되면서 화면이 들썩였다.
   한 줄로 못 박고, 넘치면 말줄임표로 자른다. */
.cnote { height:17px; line-height:17px; overflow:hidden; text-overflow:ellipsis;
         white-space:nowrap; }

/* 차량가 옆 요율 — 관리자에게만 보인다 (2026-09-12) */
.cttb td.ctp .rt { display:inline-block; margin-left:6px; padding:0 5px; border-radius:5px;
                   background:#eef2f7; color:#5a6478; font-style:normal; font-size:11px;
                   font-weight:800; vertical-align:1px; }
.cttb td.ctp.none .rt { background:#f4f6f9; color:#98a1ae; }
/* 폰 — 줄마다 같은 차량가가 되풀이돼 지급금액이 화면 밖으로 밀렸다.
   차량가는 표 위에 이미 적혀 있으므로 폰에서는 요율만 남긴다 (2026-09-23). */
@media (max-width:760px){
  /* 칸 사이 여백도 조금 줄여 한 화면에 들어오게 */
  .cttb th, .cttb td { padding-left:5px; padding-right:5px; }
  .cttb th.ctp { font-size:0; }
  .cttb th.ctp .thsub { font-size:10.5px; }
  .cttb td.ctp { font-size:0; }
  .cttb td.ctp .rt { font-size:11px; margin-left:0; }
}

/* 차량가 줄의 '부가세 포함 / 제외' — 지금 어느 쪽인지 한눈에 보이게
   글자와 색을 둘 다 바꾼다. 연한 색만으로는 눌린 건지 아닌지 알기 어려웠다. */
.ctq.vat { min-width:112px; font-weight:800; }
.ctq.vat.on { background:#1a56db; border-color:#1a56db; color:#fff; }
.ctq.vat.on:hover { background:#1546b5; border-color:#1546b5; color:#fff; }
.ctq.vat.off { background:#fff4e8; border-color:#f0c99a; color:#b45309; }
.ctq.vat.off:hover { background:#ffeeda; border-color:#e0b884; color:#b45309; }

/* 비밀번호 칸 오른쪽 눈 (2026-09-12) */
.pwwrap { position:relative; display:block; }
.pwwrap > input { width:100%; padding-right:40px !important; }
/* 눈 단추 — 흑백 선 그림 하나. 바탕 없이 글자색만 진해진다 */
.pweye { position:absolute; right:6px; top:50%; transform:translateY(-50%);
         display:flex; align-items:center; justify-content:center;
         width:28px; height:26px; border:0; border-radius:6px; background:transparent;
         cursor:pointer; color:#aab2bd; padding:0; }
.pweye:hover { color:#56607a; }
.pweye.on { color:#1a2b48; }

/* 비밀번호 찾기 — 인증번호 방식 (2026-09-12) */
.findcol { display:flex; flex-direction:column; gap:6px; margin:7px 0 2px; }
.findcol input { width:100%; padding:10px 12px; border:1px solid #d4d9e0; border-radius:8px;
                 font-size:14px; }
.findcol button { padding:10px 12px; border:0; border-radius:8px; background:#1a56db;
                  color:#fff; font-size:14px; font-weight:800; cursor:pointer; }
.findcol button:disabled { background:#a9bde8; cursor:default; }
.findagain { display:flex; gap:8px; margin-top:4px; }
.findbox #fCode { font-variant-numeric:tabular-nums; letter-spacing:3px; text-align:center;
                  font-weight:800; }

/* ══════════ 재고조회2 — 골라 내려가는 칸 (2026-09-12) ══════════
   5002(재고 찾기·알림)의 차량선택과 같은 꼴. 칸 높이를 하나로 못 박아 두고,
   넘치는 것은 칸 안에서 굴린다 — 들쭉날쭉하면 눈이 어지럽다. */
/* 재고 엑셀 내려받기 띠 — 차량선택 칸 바로 위 (2026-09-16) */
.invxls { display:flex; flex-wrap:wrap; align-items:center; gap:7px;
          background:#fff; border:1px solid #e3e8ef; border-radius:11px;
          padding:9px 12px; margin-bottom:10px; }
.invxls .xlab { font-size:12px; font-weight:800; color:#56607a; margin-right:3px; }
.invxls .xbtn { display:inline-flex; align-items:center; gap:5px; text-decoration:none;
                padding:6px 11px; border:1px solid #d8dee6; border-radius:8px;
                background:#fff; font-size:12px; font-weight:700; color:#1a2b48; }
.invxls .xbtn:hover { border-color:#1a56db; color:#1a56db; background:#f6f9ff; }
.invxls .xbtn em { font-style:normal; font-size:11px; font-weight:700; color:#8a93a3; }
.invxls .xbtn.off { color:#b6bdc9; background:#f7f8fa; cursor:default; }
@media (max-width:640px){ .invxls { padding:8px 9px; gap:6px; }
                          .invxls .xbtn { padding:5px 9px; } }

.pickbox { background:#fff; border:1px solid #e3e8ef; border-radius:11px;
           padding:12px; margin-bottom:10px; }
.pickbox .ph { font-size:12px; color:#7a8397; margin-bottom:9px; }
.pickbox .ph b { color:#1a2b48; font-weight:800; }
.pickbox .phx { margin-left:8px; font-size:11.5px; font-weight:800; color:#1a56db; }
.pcols { display:grid; gap:8px; }
.pcol { height:346px; min-width:0; border:1px solid #eef1f5; border-radius:9px;
        background:#fbfcfe; display:flex; flex-direction:column; overflow:hidden; }
/* flex 칸 안에서 자리가 모자라면 자식이 눌린다 — 머리글이 납작해져 '차종' 글자가
   가려지던 까닭이다. 머리글과 분류 줄은 제 높이를 지키게 못 박는다. */
.pct { flex:0 0 auto; padding:6px 10px; font-size:11px; font-weight:800; color:#56607a;
       background:#f2f5f9; border-bottom:1px solid #eef1f5; white-space:nowrap;
       overflow:hidden; text-overflow:ellipsis; }
.pcat { flex:0 0 auto; }
.pct em { font-style:normal; margin-left:4px; padding:0 5px; border-radius:999px;
          background:#1a56db; color:#fff; font-size:10px; }
.pcl { flex:1 1 auto; min-height:0; padding:5px; overflow-y:auto;
       display:flex; flex-direction:column; gap:2px; }
.pi { flex:0 0 auto; padding:6px 8px; border:0; border-radius:6px; background:transparent;
      cursor:pointer; font-family:inherit; font-size:12px; font-weight:700; color:#1a2b48;
      text-align:left; line-height:1.5; display:flex; align-items:center; gap:6px;
      overflow:hidden; }
/* 이름은 제 칸에 담아 넘칠 때 '…' 로 끊는다 — 글자가 반쯤 잘려 보이던 까닭 */
.pi > .pin { flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis;
             white-space:nowrap; }
.pi > i { font-style:normal; font-size:10px; color:#98a1af; flex:0 0 auto; }
.pi:hover { background:#eef3ff; color:#1a56db; }
.pi.on { background:#1a2b48; color:#fff; }
.pi.on > i { color:#9fb3d6; }
.pi.off { color:#d5dae2; cursor:default; }
.pi.off:hover { background:transparent; color:#d5dae2; }
.pi.off > i { color:#e3e7ec; }
.pdim { padding:10px; font-size:11.5px; color:#c2c9d4; }

/* 재고구분 칩 — 재고조회의 것과 같은 넷 */
.p2kind { display:flex; align-items:center; gap:5px; flex-wrap:wrap; margin-top:10px; }
.p2kt { font-size:11px; font-weight:800; color:#8a93a3; margin-right:3px; }
.p2k { padding:5px 11px; border:1px solid #dce1e8; border-radius:999px; background:#fff;
       cursor:pointer; font-family:inherit; font-size:12px; font-weight:800; color:#56607a; }
.p2k:hover { border-color:#1a56db; color:#1a56db; }
.p2k.on { background:#1a2b48; border-color:#1a2b48; color:#fff; }
.p2k > i { font-style:normal; margin-left:4px; font-size:10.5px; color:#98a1af; }
.p2k.on > i { color:#9fb3d6; }

.p2bar { display:flex; align-items:center; gap:8px; margin-top:11px; }
.p2bar .go { padding:9px 22px; border:0; border-radius:9px; background:#1a56db; color:#fff;
             font-family:inherit; font-size:14px; font-weight:800; cursor:pointer; }
.p2bar .go:hover { background:#1546b5; }
.p2msg { font-size:12px; font-weight:700; color:#8a93a3; }
@media (max-width:900px){ .pcols { grid-template-columns:repeat(2, minmax(0,1fr)) !important; }
                          .pcol { height:260px; } }

/* 사양 칸 — 연식·인승·등급·구동·유종을 한 칸에 줄줄이 (2026-09-12) */
.pcol.spec .pcl.pfacet { gap:6px; padding:8px; }
.pfr { display:flex; flex-wrap:wrap; align-items:center; gap:3px; }
.pfk { flex:0 0 34px; font-size:10.5px; font-weight:800; color:#8a93a3; }
.pfv { padding:3px 8px; border:1px solid #e3e8ef; border-radius:999px; background:#fff;
       cursor:pointer; font-family:inherit; font-size:11.5px; font-weight:700; color:#56607a;
       display:inline-flex; align-items:center; gap:3px; }
.pfv:hover { border-color:#1a56db; color:#1a56db; }
.pfv.on { background:#1a2b48; border-color:#1a2b48; color:#fff; }
.pfv > i { font-style:normal; font-size:10px; color:#98a1af; }
.pfv.on > i { color:#9fb3d6; }
.pfv.off { color:#d5dae2; border-color:#f1f4f8; cursor:default; }
.pfv.off:hover { border-color:#f1f4f8; color:#d5dae2; }
.pfv.off > i { color:#e8ebef; }
@media (max-width:900px){ .pcols { grid-template-columns:1fr !important; }
                          .pcol.spec { height:auto; max-height:300px; } }

/* ── 폰에서 한 칸씩 (2026-09-13) ─────────────────────────────
   PC 에서는 발자취·넘기기 단추를 아예 감춘다 — 다섯 칸이 한눈에 보이니 쓸 데가 없다.
   칸을 감추는 규칙이 여기 한 곳에만 있어야 자바스크립트와 어긋나지 않는다. */
#p2step, #p2nav, #cpstep, #cpnav { display:none; }
@media (max-width:900px){
  #p2step, #cpstep { display:flex; gap:6px; overflow-x:auto; padding:0 0 8px;
            -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  #p2step::-webkit-scrollbar, #cpstep::-webkit-scrollbar { display:none; }
  .p2sb { flex:0 0 auto; max-width:42vw; text-align:left; cursor:pointer;
          background:#f7f9fc; border:1px solid #e3e8ef; border-radius:9px;
          padding:5px 9px; font-family:inherit; }
  .p2sb > b { display:block; font-size:11px; font-weight:800; color:#8a93a3; }
  .p2sb > span { display:block; max-width:38vw; font-size:12px; font-weight:700;
                 color:#c2c9d4; white-space:nowrap; overflow:hidden;
                 text-overflow:ellipsis; }
  .p2sb.done > span { color:#1a2b48; }
  .p2sb.on { background:#eef4ff; border-color:#b9ccf7; }
  .p2sb.on > b { color:#1a56db; }
  /* 오른쪽 끝은 비워 둔다 — 전화·톡 단추(고정)가 그 자리에 떠 있어서
     ‘다음’ 단추가 그 밑에 깔린다. 가장 많이 누르는 단추가 가려지면 안 된다. */
  #p2nav, #cpnav { display:flex; align-items:center; gap:10px; margin-top:8px;
           padding-right:64px; }        /* 걸어 둔 알림(.alcard)과 같은 값 */
  /* 폰에서는 도움말 한 마디를 감춘다 — 발자취가 그 구실을 한다 */
  .pickbox .ph .phh { display:none; }
  .p2nb { flex:0 0 auto; background:#fff; border:1px solid #dbe2ec; border-radius:9px;
          padding:10px 15px; font-family:inherit; font-size:13.5px; font-weight:800;
          color:#33415c; cursor:pointer; }
  .p2nb:disabled { color:#c8cfd9; border-color:#eef1f5; cursor:default; }
  .p2nb.go { margin-left:auto; background:#1a56db; border-color:#1a56db; color:#fff; }
  .p2nc { font-size:12px; color:#8a93a3; }
  .p2nc > b { color:#1a2b48; }
  /* 지금 칸만 보인다 — 칸 차례는 pick2Draw 가 담는 차례와 같다 */
  .pcols.단계식 { grid-template-columns:1fr !important; }
  .pcols.단계식 > .pcol { display:none; height:auto; }
  /* 목록 칸(차종·옵션·외장·내장)은 늘 다섯 줄 자리 — 한 줄 30px + 틈 2px + 위아래 여백.
     분류를 눌러 세 줄만 남아도 칸 크기가 그대로라 단추 자리가 안 흔들린다. */
  .pcols.단계식 .pcl:not(.pfacet) { height:168px; flex:0 0 auto; }
  .pcols.단계식[data-step="0"] > .pcol:nth-child(1),
  .pcols.단계식[data-step="1"] > .pcol:nth-child(2),
  .pcols.단계식[data-step="2"] > .pcol:nth-child(3),
  .pcols.단계식[data-step="3"] > .pcol:nth-child(4),
  .pcols.단계식[data-step="4"] > .pcol:nth-child(5) { display:flex; }
  .pcols.단계식 > .pcol.spec { max-height:62vh; }
}

/* 반만 고른 것 — 그 등급의 배터리 가운데 일부만 골랐을 때 (2026-09-12) */
.pfv.half { background:#eef4ff; border-color:#8fb0ea; color:#1a56db; }
.pfv.half > i { color:#6f96dd; }
.pi.half { background:#eef4ff; color:#1a56db; }
.pi.half > i { color:#6f96dd; }

/* 재고조회2 의 결과 — 화면 폭을 다 쓰고 테두리·여백을 줄여 엑셀처럼 (2026-09-12) */
#inv2Res { width:100%; }
/* 위아래로 안 자른다 (2026-09-23) — 카드가 표를 덮어 잘라 버리던 것을 푼다
   (overflow:hidden 이면 아무리 긴 표도 카드 높이에서 잘린다). */
#inv2Res .card { padding:0; border-radius:10px; overflow:visible; max-width:none;
                 margin:0; width:100%; }
#inv2Res .tblwrap { max-height:none; }
#inv2Res .cnt { padding:8px 10px; margin:0; border-bottom:1px solid #eef1f5; }
#inv2Res .tblwrap { border:0; border-radius:0; }
#inv2Res table { border-collapse:collapse; }
#inv2Res thead th { position:sticky; top:var(--머리높이, 96px); z-index:2; }
#inv2Res td, #inv2Res th { border-right:1px solid #f1f4f8; }
#inv2Res td:last-child, #inv2Res th:last-child { border-right:0; }
.pane.wide { max-width:none; }

/* 재고조회2 차종 칸 위의 분류 단추 (2026-09-12) */
/* 분류 단추 — 전체가 한 줄, 나머지 넷(승용·RV·전기·상용)이 아래 한 줄에 4칸 */
.pcat { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:2px;
        padding:4px 5px; background:#fff; border-bottom:1px solid #eef1f5; }
.pcb { padding:3px 2px; border:1px solid #e3e8ef; border-radius:5px; text-align:center;
       background:#fff; cursor:pointer; font-family:inherit; font-size:10px;
       font-weight:800; color:#8a93a3; white-space:nowrap; line-height:1.5;
       letter-spacing:-.3px; }
.pcb.all { grid-column:1 / -1; font-size:10.5px; }
.pcb:hover { border-color:#1a56db; color:#1a56db; }
.pcb.on { background:#1a56db; border-color:#1a56db; color:#fff; }

  /* ── 재고알림 ── */
  /* 셈 줄 왼쪽 '내 알림' */
  .cntrow { display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
  .cntrow .cnt { flex:1 1 auto; min-width:0; }
  .albtn { flex:0 0 auto; padding:5px 11px; border:1px solid #d8dee6; border-radius:8px;
           background:#fff; font-size:12px; font-weight:800; color:#8a93a0;
           text-decoration:none; white-space:nowrap; }
  .albtn:hover { border-color:#f0c070; color:#b45309; }
  .albtn.has { border-color:#f0c070; background:#fffaf2; color:#b45309; }

  /* 재고구분 줄 — 사양 칸 맨 위에 온다. 아래에 가는 선을 둬서 사양과 구분해 준다 */
  .pfr.kindrow { padding-bottom:5px; margin-bottom:4px;
                 border-bottom:1px dashed #e2e6ec; }
  /* '재고구분' 은 넉 자라 다른 줄 이름(구동·등급)보다 길다 — 쪼개지지 않게 넓혀 준다 */
  .pfr.kindrow > .pfk { white-space:nowrap; }
  /* 알림 탭 — 사양은 하나씩만 골라진다는 안내. 구분 줄 바로 아래에 온다 */
  .pfhint { margin:0 0 5px 38px; font-size:10.5px; font-weight:700; color:#a8b0ba;
            line-height:1.5; }
  .pfhint b { color:#8a93a0; }
  .p2kind:empty { display:none; }        /* 옮겨서 빈 자리는 접어 둔다 */

  /* ── 재고알림 탭 ── */
  /* 고르는 칸의 숫자를 감춘다.
     탭마다 뜻이 달라 헷갈린다 — 차종 칸은 '재고 대수', 나머지는 '사양 가지수' 다
     (알림은 재고로 거르지 않으니 그렇게 된다). 재고 0 인 차를 고르는 곳이라
     대수가 쓸모도 없다.
     재고구분 칩(.p2k)의 숫자는 남긴다 — 진짜 재고 대수이고, 무엇을 기다릴지
     정하는 데 필요하다. */
  #pane-alarm .pcl .pi > i,
  #pane-alarm .pcl .pfv > i { display:none; }


  /* 차 고르는 칸은 재고조회2 것을 옮겨 쓰므로 여기서 따로 꾸미지 않는다 */
  #pane-alarm { display:block; }

  .alform { margin-top:10px; padding:12px 13px; background:#fff;
            border:1px solid #e6eaf0; border-radius:11px; }
  .alfound { padding:11px 13px; border-radius:9px; border:1px solid #e6eaf0;
             background:#f7f9fc; font-size:12.5px; font-weight:700; color:#46506a;
             line-height:1.7; margin-bottom:11px; }
  .alfound.ok { background:#f2faf6; border-color:#cfe3d8; }
  .alfound.wait { background:#fffaf2; border-color:#f0dfc0; color:#7a5a20; }
  .alfound.dup { background:#fdeceb; border-color:#f0d5d2; color:#8a4038; }
  .alfound.gone { background:#f4f6f9; border-color:#dfe4ea; color:#8a93a0; }
  .alfound b { color:#1a2b48; }
  .alfound .big { display:block; margin-top:3px; font-size:13.5px; }
  .alfound .cd { display:block; margin-top:3px; font-family:Consolas,monospace;
                 font-size:12px; color:#5a6478; }
  .alrow { display:flex; gap:9px; flex-wrap:wrap; }
  .alrow > div { flex:1 1 190px; }
  .alrow label { display:block; font-size:11.5px; font-weight:800; color:#5a6478;
                 margin-bottom:4px; }
  .alrow label em { font-style:normal; font-weight:700; color:#b0b6bd; }
  .alrow input { width:100%; padding:8px 11px; border:1px solid #d4d9e0;
                 border-radius:8px; font-size:13.5px; font-family:inherit; }
  .alrow input:focus { outline:none; border-color:#1a56db; box-shadow:0 0 0 2px #e8efff; }
  .alrel { display:block; margin-top:6px; font-size:12px; color:#b45309;
         background:#fff7ed; border:1px solid #fed7aa; border-radius:8px;
         padding:5px 8px; line-height:1.5; }
.alrel b { color:#92400e; }
.alto { padding:9px 11px; margin-bottom:9px; background:#f7f9fc;
          border:1px solid #e6eaf0; border-radius:9px; font-size:12.5px;
          font-weight:700; color:#46506a; }
  .alto b { font-variant-numeric:tabular-nums; color:#1a2b48; }
  .algo { width:100%; margin-top:10px; padding:11px; border:1px solid #1a2b48;
          border-radius:9px; background:#1a2b48; color:#fff; font-size:13.5px;
          font-weight:800; font-family:inherit; cursor:pointer; }
  .algo:disabled { background:#fff; border-color:#d8dee6; color:#b0b6bd; cursor:default; }

  /* 걸어 둔 알림 */
  /* 오른쪽을 비워 둔다 — 전화·TALK 붙박이 단추가 그 자리를 덮어 [삭제] 를 못 누른다 */
  .alcard { margin:10px 64px 0 0; padding:12px 13px; background:#fff;
            border:1px solid #e6eaf0; border-radius:11px; }
  .alcnt { font-size:12.5px; font-weight:800; color:#8a93a0; margin-bottom:7px; }
  .alcnt b { color:#b45309; }
  .alcnt .dim { color:#b0b6bd; font-weight:700; }
  .alnone { padding:26px; text-align:center; font-size:12.5px; font-weight:700;
            color:#b0b6bd; line-height:1.8; }
  .alitem { display:flex; gap:11px; align-items:flex-start; padding:10px 2px;
            border-bottom:1px solid #eef1f5; }
  .alitem:last-child { border-bottom:0; }
  .alitem.off { opacity:.55; }
  .alno { flex:0 0 auto; width:25px; height:25px; border-radius:50%; background:#f4f6f9;
          color:#8a93a0; font-size:11.5px; font-weight:800; display:flex;
          align-items:center; justify-content:center; }
  .almid { flex:1 1 auto; min-width:0; }
  .alnm { font-size:13px; font-weight:800; }
  /* 메모 — 무엇 때문에 걸어 뒀는지가 차 이름보다 중요할 때가 많다 */
  .almemo { font-size:12px; font-weight:700; color:#5a6478; }
  .altag { display:inline-block; margin-left:5px; padding:1px 6px; border-radius:5px;
           font-size:10.5px; font-weight:800; background:#eef2f7; color:#56607a; }
  .altag.on { background:#e7f6f2; color:#0f766e; }
  .altag.stop { background:#fdeceb; color:#c0392b; }
  .altag.now { background:#fff4e8; color:#b45309; }
  .alcd { margin-top:3px; font-family:Consolas,monospace; font-size:11.5px; color:#8a93a0; }
  .alsub { margin-top:3px; font-size:11.5px; font-weight:700; color:#8a93a0; }
  .alact { flex:0 0 auto; display:flex; gap:5px; align-items:center; }
  .alact button { padding:5px 9px; border:1px solid #d8dee6; border-radius:7px;
                  background:#fff; font-size:11.5px; font-weight:800; color:#556;
                  font-family:inherit; cursor:pointer; white-space:nowrap; }
  .alact button:hover { border-color:#8fb0ea; color:#1a56db; }
  .alact button.del:hover { border-color:#d9534f; color:#c0392b; }
  .alnote { margin-top:9px; font-size:11px; color:#b0b6bd; line-height:1.7; }

  /* 걸어 둔 알림 표 — 줄은 재고조회와 같은 함수(재고줄)가 만든다.
     그래서 칸 모양도 재고조회 표의 규칙을 그대로 물려받는다. */
  table.altbl { width:100%; border-collapse:collapse; }
  .altbl th { padding:7px 9px; background:#f4f6f9; border-bottom:1px solid #dfe4ea;
              font-size:11.5px; font-weight:800; color:#5a6478; white-space:nowrap;
              text-align:left; position:sticky; top:0; z-index:2; }
  .altbl td { border-bottom:1px solid #eef1f5; vertical-align:top; }
  .altbl tr:last-child td { border-bottom:0; }
  /* 알림 칸 — 끄기·연장·삭제와 딱지 */
  .alcell { padding:8px 9px; }
  .alcell .alnm { font-size:12px; font-weight:800; }
  .alcell .alsub { margin-top:3px; font-size:11px; font-weight:700; color:#8a93a0;
                   line-height:1.6; }
  .alcell .alact { margin-top:6px; }
  .algone td { padding:10px 9px; font-size:12px; font-weight:700; color:#b0a08a;
               background:#fffaf2; }

  /* 이미 재고가 있을 때 뜨는 물음 모달 */
  .modal.alabox { width:min(430px,94vw); }
  .alqbody { padding:11px 13px; background:#fffaf2; border:1px solid #f0dfc0;
             border-radius:9px; margin-bottom:12px; }
  .alqcar { font-size:13.5px; font-weight:800; }
  .alqcar .cd { display:block; margin-top:3px; font-family:Consolas,monospace;
                font-size:11.5px; font-weight:700; color:#8a7a52; }
  .alqnow { margin-top:7px; font-size:13.5px; font-weight:800; color:#b45309; }
  .alqmsg { margin-top:7px; padding-top:7px; border-top:1px dashed #ead9b8;
            font-size:12px; font-weight:700; color:#7a5a20; line-height:1.6; }
  .alqfoot { margin-top:9px; font-size:11px; color:#b0b6bd; line-height:1.6;
             text-align:center; }
  .alabtns { display:flex; flex-wrap:wrap; gap:7px; }
  .alabtns button { flex:1 1 0; padding:10px; border-radius:9px; font-size:13px;
                    font-weight:800; font-family:inherit; cursor:pointer; }
  .alabtns .ok { background:#1a2b48; border:1px solid #1a2b48; color:#fff; }
  .alabtns .no { background:#fff; border:1px solid #d8dee6; color:#667; }
  /* [닫기] 는 아래 한 줄로 — 고르는 단추 둘과 섞이면 잘못 누른다 */
  .alabtns .cls { flex:1 1 100%; background:#f7f9fc; border:1px solid #e3e8ef;
                  color:#8a93a0; }
  .alabtns .cls:hover { border-color:#c8cfd9; color:#667; }

  /* 색 칸 맨 위 [전체선택] */
  .p2any { padding:0 6px 5px; }
  .anyb { width:100%; padding:4px 6px; border:1px dashed #cdd5df; border-radius:6px;
          background:#fff; font-size:11px; font-weight:800; color:#8a93a0;
          font-family:inherit; cursor:pointer; }
  .anyb:hover { border-color:#8fb0ea; color:#1a56db; }
  .anyb.on { background:#1a2b48; border-style:solid; border-color:#1a2b48; color:#fff; }

  /* 옵션 '딱 맞게' 고르기 — 옵션 칸 머리 아래에 붙는다 */
  .p2opx { display:flex; gap:4px; padding:0 6px 5px; }
  .opx { flex:1 1 0; padding:4px 6px; border:1px solid #d8dee6; border-radius:6px;
         background:#fff; font-size:10.5px; font-weight:800; color:#8a93a0;
         font-family:inherit; cursor:pointer; white-space:nowrap; }
  .opx:hover { border-color:#8fb0ea; color:#1a56db; }
  .opx.on { background:#eef4ff; border-color:#8fb0ea; color:#1a56db; }

  /* 납기 — 모든 차에 걸리는 안내 (시트의 [전차종 공통]·[전기차 공통] 상자) */
  .dlvall { margin-top:9px; padding:8px 11px; background:#f7f9fc;
            border:1px solid #e6eaf0; border-radius:8px; }
  .dlvall div { font-size:11.5px; font-weight:700; color:#5a6478; line-height:1.6; }
  .dlvall div + div { margin-top:2px; }

  /* ── 한 사람 한 자리 — 로그인창 안에서 '끊고 들어갈까?' 를 묻는 칸 ── */
  .merr.kick { color:#1a2b48; font-weight:700; line-height:1.55; text-align:left;
               background:#fff8e6; border:1px solid #f0d9a0; border-radius:9px;
               padding:10px 11px; }
  .merr.kick .dim { color:#8a7a52; font-weight:600; font-size:11.5px; }
  .merr.kick .kickbtn { display:flex; gap:6px; margin-top:9px; }
  .merr.kick .kickbtn button { flex:1 1 0; padding:8px 10px; border-radius:8px;
               font-size:12.5px; font-weight:800; font-family:inherit; cursor:pointer; }
  .merr.kick .kickbtn .ok { background:#1a2b48; border:1px solid #1a2b48; color:#fff; }
  .merr.kick .kickbtn .no { background:#fff; border:1px solid #d8cfb4; color:#6b6350; }

/* ══ 캐피탈견적 — 세션 상태 ═══════════════════════════ */
.capqbar { display:flex; align-items:baseline; gap:10px; margin:4px 0 12px; }
.capqbar > b { font-size:15px; color:#1a2b48; }
.capqhint { font-size:12px; color:#8a93a0; }
.capqstat { display:flex; flex-direction:column; gap:6px; max-width:560px; }
.capqrow { display:flex; align-items:center; gap:10px; padding:11px 14px;
           border:1px solid #e8ebf0; border-radius:10px; background:#fff; }
.capqrow > .capqic { font-size:15px; }
.capqrow > b { flex:0 0 120px; font-size:13.5px; color:#1a2b48; }
.capqrow > .capqst { flex:1 1 auto; font-size:13px; color:#56607a; }
.capqrow > .capqtm { font-size:11.5px; color:#a9b1bc; font-variant-numeric:tabular-nums; }
/* 로그인 상태 — 조건 **왼쪽에 따로 한 칸** (2026-09-20).
   좁으니 이름·상태를 한 줄, 시각을 그 아래로 눕힌다. */
.capqrun > .capqstat { flex:0 0 176px; max-width:none; gap:4px; margin:0;
                       border:1px solid #e6eaf0; border-radius:12px;
                       background:#fbfcfe; padding:10px; align-self:flex-start; }
.capqrun > .capqstat .capqrow { flex-wrap:wrap; gap:3px 6px; padding:6px 8px;
                                border-radius:8px; background:#f8fafc; }
.capqrun > .capqstat .capqrow > .capqic { font-size:12px; }
.capqrun > .capqstat .capqrow > b { flex:1 1 auto; font-size:11.5px; }
.capqrun > .capqstat .capqrow > .capqst { flex:1 1 100%; font-size:10.5px; }
.capqrun > .capqstat .capqrow > .capqtm { flex:1 1 100%; font-size:10px; text-align:right; }
/* 엑셀 견적기 줄 — 로그인이 아니라 '파일 날짜' 라는 걸 눈으로 구분되게 */
.capqrun > .capqstat .capqrow.xls { background:#f2f7f2; }
.capqrun > .capqstat .capqrow.xls > .capqtm { color:#5f8a63; }

/* 캐피탈견적 — 견적 입력·결과 */
/* 왼쪽 = 조건(세로) · 오른쪽 = 캐피탈별 결과 (2026-09-20 사장님 지시) */
.capqrun { display:flex; gap:18px; align-items:flex-start; margin:6px 0 14px; }
.capqrun > .cqresult { flex:1 1 auto; min-width:0; }
.capqform { display:flex; flex-direction:column; gap:9px; align-items:stretch;
            /* 연령(만26세↑·만21세↑·만35세↑)이 줄바꿈 없이 한 줄에 들어가게 넓혔다
               (사장님 지시 2026-09-20) */
            flex:0 0 286px; margin:0;
            border:1px solid #e6eaf0; border-radius:12px; background:#fbfcfe; padding:13px 13px 15px; }
.capqform label { display:flex; flex-direction:column; gap:4px; font-size:11.5px;
                  font-weight:800; color:#8a93a0; }
.capqform input, .capqform select { padding:8px 10px; border:1px solid #dce1e8;
                  border-radius:8px; font-family:inherit; font-size:13px;
                  min-width:0; width:100%; box-sizing:border-box; }
/* 조건 칩 — 기간·약정거리·고객·연령·만기처리 (2026-09-20) */
.cqgrp { display:flex; flex-direction:column; gap:5px; }
.cqgrp .cqk { font-size:11.5px; font-weight:800; color:#8a93a0; }
.cqchips { display:flex; flex-wrap:wrap; gap:4px; }
.cqchip { padding:6px 8px; border:1px solid #dce1e8; border-radius:7px; background:#fff;
          font-family:inherit; font-size:12px; font-weight:700; color:#5a6474; cursor:pointer;
          line-height:1.1; white-space:nowrap; }
.cqchip:hover { border-color:#b9c6dd; background:#f7faff; }
.cqchip.on { border-color:#1a56db; background:#1a56db; color:#fff; }
/* 숫자 두 칸을 나란히 (보증금/선납금 · AG/CM) */
.cqtwo { display:flex; gap:8px; }
.cqtwo > label { flex:1 1 0; min-width:0; }

/* 가운데 — 조건과 결과 사이의 조회 단추 */
.capqgo { flex:0 0 164px; align-self:stretch; display:flex; flex-direction:column;
          align-items:center; justify-content:center; gap:10px; padding:4px 0; }
.capqgo .cqbtn { width:100%; padding:16px 10px; font-size:14.5px; border-radius:12px;
                 box-shadow:0 2px 10px rgba(26,86,219,.22); letter-spacing:-.2px; }
.capqgo .cqbtn:not(:disabled):hover { transform:translateY(-1px);
                 box-shadow:0 4px 14px rgba(26,86,219,.28); }
.capqgo .cqbtn:disabled { box-shadow:none; }
.capqgo .cqready { max-width:none; margin:0; width:100%; box-sizing:border-box;
                   text-align:center; line-height:1.5; }
/* 좁은 화면에서는 위아래로 */
@media (max-width: 1200px) {
  .capqrun { flex-wrap:wrap; }
  .capqrun > .capqstat { flex:1 1 100%; }
  .capqrun > .capqstat .capqrow > b { flex:0 0 120px; }
  .capqrun > .capqstat .capqrow > .capqst { flex:1 1 auto; }
  .capqrun > .capqstat .capqrow > .capqtm { flex:0 0 auto; }
}
@media (max-width: 900px) {
  .capqrun { flex-direction:column; }
  .capqform { flex:1 1 auto; width:100%; box-sizing:border-box; }
  .capqgo { flex:1 1 auto; width:100%; align-self:auto; }
}
.capqform input:focus, .capqform select:focus { outline:0; border-color:#8fb0ea; background:#f7faff; }
.cqbtn { padding:9px 18px; border:1px solid #1a56db; border-radius:8px; background:#1a56db;
         color:#fff; font-family:inherit; font-size:13px; font-weight:800; cursor:pointer; }
.cqbtn:hover { background:#1546b5; } .cqbtn:disabled { opacity:.5; cursor:not-allowed; }
.cqwait { color:#8a93a0; font-size:13px; padding:10px 2px; }
.cqfail { color:#c0392b; font-size:13px; padding:12px 14px; border:1px solid #f0c4bd;
          border-radius:10px; background:#fdf3f2; max-width:560px; }
.cqcard { max-width:420px; border:1px solid #dbe6f7; border-radius:12px; padding:16px 18px;
          background:#f7faff; }
.cqcard .cqname { font-size:13.5px; font-weight:800; color:#1a2b48; margin-bottom:4px; }
.cqcard .cqbig { font-size:26px; font-weight:800; color:#1a56db;
                 font-variant-numeric:tabular-nums; margin-bottom:10px; }
.cqtab { width:100%; border-collapse:collapse; }
.cqtab th { text-align:left; color:#8a93a0; font-size:12px; font-weight:800;
            padding:5px 0; width:110px; vertical-align:top; }
.cqtab td { text-align:right; color:#1a2b48; font-size:13px; padding:5px 0;
            font-variant-numeric:tabular-nums; }
.cqadd { color:#2f7d3a; font-size:12px; font-weight:800; }
.cqwarn { margin-top:8px; color:#b26a00; font-size:12px; font-weight:700;
          background:#fff6e5; border:1px solid #f0dcae; border-radius:8px; padding:7px 10px; }

/* 캐피탈견적 결과표 — 월납입 싼 차례. 못 낸 곳은 까닭을 달아 아래에 */
.cqhead { display:flex; align-items:baseline; gap:9px; flex-wrap:wrap; margin:10px 0 2px; }
.cqhead b { font-size:15px; color:#16233d; }
.cqhead .cqcode { font-size:12px; font-weight:800; color:#1a56db; background:#eef3fe;
                  border-radius:6px; padding:2px 7px; font-variant-numeric:tabular-nums; }
.cqhead .cqsub { font-size:12px; color:#7a8496; }
.cqcond { font-size:12px; color:#7a8496; margin:0 0 10px; }

.cqtbl { border-collapse:collapse; max-width:860px; width:100%; background:#fff;
         border:1px solid #e3e8f0; border-radius:11px; overflow:hidden; }
.cqtbl th { background:#f6f8fb; color:#7a8496; font-size:11.5px; font-weight:800;
            padding:8px 10px; text-align:left; border-bottom:1px solid #e3e8f0;
            white-space:nowrap; }
.cqtbl td { padding:10px; font-size:13px; color:#1a2b48; border-bottom:1px solid #eef1f6;
            white-space:nowrap; }
.cqtbl .r { text-align:right; font-variant-numeric:tabular-nums; }
.cqtbl tbody tr:last-child td { border-bottom:0; }
.cqtbl tr.best td { background:#f2fbf4; }
.cqtbl tr.best .pay { color:#256b30; }
.cqtbl .pay { font-size:16px; font-weight:800; }
.cqtbl .cqpan { font-size:11px; font-weight:700; color:#7a8496; background:#f0f2f6;
                border-radius:5px; padding:1px 5px; }
.cqtbl tr.cqnote td { font-size:11.5px; color:#b26a00; background:#fff9ec;
                      white-space:normal; padding:6px 10px; }
/* 카마스터에 없어 저절로 정한 칸 안내 — 경고(주황)와 구별되게 파랑으로 */
.cqtbl tr.cqset td { color:#2b62a8; background:#f1f6fd; }
/* 옵션 칸 아래 '고른 옵션 합계' */
.p2sum { font-size:12px; color:#2b62a8; background:#f1f6fd; border-radius:7px;
         padding:5px 8px; margin:0 0 6px; }
.p2sum b { font-weight:800; }
/* 견적 조회 단추 옆 안내 — 무엇이 모자란지 / 무엇으로 뽑는지 */
.cqready { max-width:none; margin:6px 0 0; font-size:12px; color:#5a6474;
           background:#f8fafc; border:1px solid #e6eaf0; border-radius:9px; padding:7px 11px; }
.cqbtn.off, .cqbtn:disabled { opacity:.45; cursor:not-allowed; }
/* 결과표 — 캐피탈이 고른 차 이름 칸 (길어도 표가 안 흔들리게) */
/* 같은 캐피탈이 두 줄일 때 — 한 칸을 반반 나눈다 (판마다 이름표) */
.cqsplit { display:flex; flex-direction:column; gap:0; }
.cqsplit.many > span { display:flex; align-items:baseline; gap:6px; padding:3px 0;
                       justify-content:flex-end; }
.cqsplit.many > span + span { border-top:1px dashed #e3e8f0; }
.cqtbl td.cqcar .cqsplit.many > span { justify-content:flex-start; }
.cqsplit.many .cqpan { font-style:normal; font-size:10px; padding:1px 4px;
                       background:#eef2f8; color:#6b7686; border-radius:4px; flex:0 0 auto; }
.cqwaiting { max-width:860px; margin:8px 0 0; font-size:12px; color:#2b62a8;
             background:#f1f6fd; border-radius:9px; padding:7px 11px; }
.cqtbl td.cqcar { max-width:230px; overflow:hidden; text-overflow:ellipsis;
                  white-space:nowrap; font-size:11.5px; color:#48505e; }

.cqoff { max-width:860px; margin:12px 0 0; border:1px dashed #dfe4ec; border-radius:11px;
         background:#f8fafc; padding:10px 14px; }
.cqoff > b { font-size:12px; color:#7a8496; }
.cqoffrow { display:flex; gap:10px; align-items:baseline; padding:6px 0;
            border-top:1px solid #edf0f5; margin-top:6px; }
.cqoffcap { flex:0 0 130px; font-weight:800; color:#56607a; font-size:13px; }
.cqoffwhy { flex:1 1 auto; font-size:12.5px; color:#8a93a0; }
@media (max-width:560px){
  .cqoffrow { flex-direction:column; gap:2px; }
  .cqoffcap { flex-basis:auto; }
}
/* 짝짓기 한눈에 — 캐피탈견적 화면에서 새 창으로 */
.capqlink { margin-left:auto; text-decoration:none; font-size:12px; font-weight:800;
            color:#1a56db; border:1px solid #cdd5df; border-radius:8px; padding:5px 10px;
            background:#fff; white-space:nowrap; }
.capqlink:hover { border-color:#8fb0ea; background:#f7faff; }

.capqform .cqhide { flex-direction:row; align-items:center; gap:5px; font-weight:700; color:#56607a; }

/* 캐피탈견적 차량 칸 선택기 — 재고조회 .pcol 재활용, 높이만 조금 낮게 */
.capqcols { max-width:760px; margin:4px 0 14px; }
.capqcols .pcol { height:240px; }
.capqpick { margin:4px 0 4px; }
.capqpick .pickbox { margin:0; }

/* 캐피탈견적 — 차례 기다림 안내 (2026-09-21) */
.cqq { color:#3a6fb5; }
.cqq.wait { color:#b4600a; }
.cqwho { color:#8a7a5e; font-size:11px; }
.cqqsep { color:#b9c6da; margin:0 6px; }

/* 보증금·선납금 한도 안내 (2026-09-21) */
/* 조건을 고르면 **어느 캐피탈이 못 받는지** 미리 알려 주는 칸 (2026-09-24).
   조회 단추 바로 위에 둔다 — 누르기 전에 눈에 들어와야 뜻이 있다.
   할 말이 없으면 통째로 사라진다 (:empty). */
/* 저장해 둔 값으로 낸 견적이라는 표시 (2026-09-25).
   캐피탈에 매번 물으면 계정이 막히니 받은 값을 되찾아 쓴다 — 그걸 숨기면
   오늘 값인지 지난달 값인지 알 수가 없어서 반드시 보이게 한다. */
.cqsaved { display:inline-block; margin-left:6px; padding:1px 6px; border-radius:6px;
           font-size:10.5px; font-weight:600; letter-spacing:.01em;
           color:#5a6474; background:#eef1f5; border:1px solid #dde3ea;
           vertical-align:middle; cursor:help; }

.cqcaps { width:100%; box-sizing:border-box; margin:0 0 8px; font-size:11.5px;
          line-height:1.5; display:flex; flex-direction:column; gap:5px; }
.cqcaps:empty { display:none; }
.cqcaps .cqcl { border-radius:8px; padding:6px 9px; border:1px solid transparent; }
.cqcaps .cqcl b { font-weight:600; }
.cqcaps .cqcl.warn { color:#b4600a; background:#fff8ee; border-color:#f4dfc2; }
.cqcaps .cqcl.bad  { color:#c0392b; background:#fdf1f0; border-color:#f3cfcb; }
.cqcaps .cqcl.info { color:#5a6474; background:#f4f6f9; border-color:#e2e7ee; }
.cqcaps .cqwho { display:block; color:inherit; opacity:.85; margin-top:1px; }

.cqdep { font-size:11.5px; color:#6b7686; margin:-2px 0 6px; line-height:1.45; }
.cqdep:empty { display:none; }
.cqdep.warn { color:#b4600a; background:#fff8ee; border:1px solid #f4dfc2;
              border-radius:8px; padding:5px 8px; }
.cqdep.bad { color:#c0392b; background:#fdf1f0; border:1px solid #f3cfcb;
             border-radius:8px; padding:5px 8px; }

/* 캐피탈 줄 밑 — 기본은 접어 두고 [자세히] 로 편다 (2026-09-21) */
.cqfold td { padding-top:3px !important; padding-bottom:5px !important; }
.cqbrief { display:inline-flex; flex-wrap:wrap; gap:4px 6px; margin-left:8px;
           vertical-align:middle; }
.cqbrief[hidden] { display:none; }
.cqsum { font-size:11px; font-weight:800; border-radius:7px; padding:2px 8px; }
.cqsum.warn { color:#b4600a; background:#fff8ee; border:1px solid #f4dfc2; }
.cqsum.info { color:#2b62a8; background:#f1f6fd; border:1px solid #d7e5f8; }
.cqfoldbox { margin-top:7px; }
.cqline { font-size:12px; color:#48505e; margin:5px 0 3px; line-height:1.5; }
.cqline.set { color:#2b62a8; }
.cqline.warn { color:#b4600a; }

/* 견적 내역 — 그 캐피탈이 실제로 쓴 값 (2026-09-21) */
.cqdetb { border:1px solid #dbe2ec; background:#fff; color:#4a5568; font-family:inherit;
          font-size:11.5px; font-weight:700; border-radius:7px; padding:3px 9px;
          cursor:pointer; }
.cqdetb:hover { border-color:#8fb0ea; background:#f6f9ff; color:#1a56db; }
.cqdetbox { display:flex; flex-wrap:wrap; gap:4px 6px; margin-top:6px; }
.cqdi { font-size:11.5px; color:#39414f; background:#f5f7fb; border:1px solid #e6ebf3;
        border-radius:7px; padding:2px 8px; }
.cqdi i { font-style:normal; color:#8a93a0; font-weight:700; margin-right:5px; }

/* 고르기 칸 밑 짧은 안내 (색상코드표가 아직 없을 때 등) */
.p2note { font-size:11px; color:#b4600a; background:#fff8ee; border:1px solid #f4dfc2;
          border-radius:7px; padding:4px 7px; margin:0 0 5px; line-height:1.4; }

/* 조건 칸 — 칩 + 직접입력을 한 줄에 (2026-09-24) */
.cqgrp .cqin{ display:inline-flex; align-items:center; gap:5px; margin-left:6px;
              font-size:11.5px; color:#6b7686; }
.cqgrp .cqin input{ width:62px; text-align:right; }
.cqgrp > select{ font:inherit; font-size:12.5px; padding:4px 8px; border-radius:7px;
                 border:1px solid #dbe2ec; background:#fff; color:#39414f; min-width:96px; }

/* 캐피탈견적 — 렌트 안 되는 차를 골랐을 때 오른쪽 칸을 대신 채운다 (2026-09-24) */
.pcol.cqno{ display:flex; align-items:center; justify-content:center; }
.cqnobox{ text-align:center; padding:26px 18px; max-width:420px; }
.cqnoi{ font-size:34px; line-height:1; margin-bottom:10px; }
.cqnot{ font-size:19px; font-weight:800; color:#c0392b; letter-spacing:-.01em; }
.cqnos{ margin-top:9px; font-size:13px; color:#6b7686; line-height:1.55; }
.cqnos b{ color:#39414f; }

/* 드롭다운 + 직접입력을 한 줄로 — 드롭다운이 왼쪽 (2026-09-24).
   ★ .capqform select 에 width:100% 가 걸려 있어서 그냥 두면 칸을 넘어간다.
     여기서 폭을 못박는다 (이름표 56 + 드롭다운 1fr + 직접칸 58 = 286px 안에 들어간다). */
.cqgrp.cqone{ flex-direction:row; align-items:center; gap:7px; flex-wrap:nowrap; }
.cqgrp.cqone > .cqk{ flex:0 0 56px; }
.cqgrp.cqone > select{ flex:1 1 auto; width:auto; min-width:0; padding:7px 6px;
                       font-size:12.5px; }
.cqgrp.cqone > .cqin2{ flex:0 0 104px; width:104px; min-width:0; text-align:right;
                       padding:7px 8px; font-size:12.5px;
                       font-variant-numeric:tabular-nums; }
/*  ★ 보증금·선납금·잔존가치 세 줄은 **너비가 같아야 한다** (사장님 지시 2026-09-24).
    잔존가치 직접칸만 62px 로 좁혀 두었더니, 그 줄의 드롭다운만 42px 더 넓어져
    세 줄이 어긋나 보였다 (드롭다운이 flex:1 로 남는 자리를 다 먹는다).
    잔존가치는 % 라 칸이 남지만, 줄이 맞는 쪽이 낫다. */

/* ★ `hidden` 이 먹게 한다 (2026-09-24).
   .capqform label 에 display:flex 가 걸려 있어서 hidden 이 눌렸다 —
   그래서 특판/대리점을 눌러도 탁송 지역과 탁송비가 둘 다 보였다. */
.capqform label[hidden], .capqform [hidden] { display:none !important; }

/* ── 재고표 쪽 나누기 (50줄씩, 2026-09-28) ── */
.tbpager { display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap:6px; padding:14px 8px 6px; }
.tbpager[hidden] { display:none; }
.tbpager button { min-width:36px; height:34px; padding:0 10px; border:1px solid #d5dbe5;
  border-radius:8px; background:#fff; color:#1a2b48; font-size:13px; font-weight:700;
  cursor:pointer; }
.tbpager button:hover:not(:disabled) { border-color:#1a56db; color:#1a56db; }
.tbpager button.on { background:#1a2b48; border-color:#1a2b48; color:#fff; }
.tbpager button:disabled { opacity:.4; cursor:default; }
.tbpager .pg-gap { color:#99a; padding:0 2px; }
.tbpager .pg-info { margin-left:8px; font-size:12px; color:#8a93a0; }
@media (max-width:640px) {
  .tbpager .pg-info { flex-basis:100%; text-align:center; margin:4px 0 0; }
}

/* ── 재고표 머리글 눌러 정렬 (2026-09-28) ── */
th.srt { cursor:pointer; user-select:none; white-space:nowrap; }
th.srt:hover { color:#1a56db; }
th.srt.on { color:#1a56db; }
th.srt i { font-style:normal; margin-left:3px; font-size:10px; }

/* 액세서리(파츠) (2026-09-30) — 옵션 칸 아래 따로 */
.optparts { margin-top:3px; font-size:12px; font-weight:800; color:#c2410c; }
.optparts mark.hl { color:#c2410c; }
.p2parts { margin:10px 4px 5px; padding-top:8px; border-top:1px dashed #e3e8ef;
           font-size:11px; font-weight:800; color:#c2410c; }
.partswarn { display:block; margin-top:3px; font-size:10.5px; font-weight:800; color:#c2410c;
              white-space:nowrap; }
.partsin { display:block; margin-top:3px; font-size:10.5px; font-weight:700; color:#8a93a0;
           white-space:nowrap; }
/* 가격 옆 수당 (2026-09-30) */
.alw { display:block; margin-top:4px; padding-top:3px; border-top:1px dotted #e3e8ef;
       font-size:12.5px; font-weight:800; color:#1a56db; white-space:nowrap;
       font-variant-numeric:tabular-nums; }
.alw em { font-style:normal; font-size:10px; font-weight:800; color:#8fa4c6; margin-right:4px; }
.alw.fail { color:#c0392b; font-size:10.5px; line-height:1.35; white-space:normal; }
/* 재고칸 구분별 출고센터 (2026-09-30) — '한정 1대 - Y01' */
.kdc { display:flex; flex-direction:column; gap:2px; margin-top:3px; }
.kdl { display:block; width:100%; text-align:left; padding:2px 4px; margin:0 -4px;
       border:0; border-radius:6px; background:none; cursor:pointer; font-family:inherit;
       font-size:11.5px; font-weight:700; color:#56607a; white-space:normal;
       font-variant-numeric:tabular-nums; }
.kdl .kd { margin-right:0; }
.kdl em { font-style:normal; color:#a9b1bc; }
.kdl em.req { color:#c2410c; font-weight:800; }
.kdl:hover { background:#eef4ff; color:#1a56db; }
/* 결과 표 — 가격·할인·요청·재고 칸은 줄바꿈 없이 (2026-09-30).
   넓은 화면에서만 — 폰은 카드 모양이라 따로 논다 */
@media (min-width:761px){
  .tblwrap td.pr, .tblwrap td.pr *, .tblwrap td.dc, .tblwrap td.dc *,
  .tblwrap td.rq { white-space:nowrap; }
  .tblwrap td.stk > b, .tblwrap td.stk .kd, .tblwrap td.stk .made { white-space:nowrap; }
  .alw.fail { white-space:nowrap; }
}
.kdl .nw { white-space:nowrap; }

/* 탁송료 실시간 조회 (2026-09-30) — 차종 · 출발지 · 도착지 세 목록을 옆으로 */
#pane-fare .card.fare { max-width:1100px; }
.farest { display:inline-flex; align-items:center; gap:7px; font-size:12.5px; font-weight:800; color:#56607a; }
.farest .dot { width:9px; height:9px; border-radius:50%; background:#cfd5dd; }
.farest.on .dot { background:#16a34a; }
.farest.off { color:#c0392b; }
.farest.off .dot { background:#c0392b; }
.farepick { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:10px; }
.farecol { display:flex; flex-direction:column; min-width:0; border:1px solid #e6eaf0;
           border-radius:11px; background:#fff; overflow:hidden; }
.farehd { padding:9px 11px 7px; font-size:12.5px; font-weight:800; color:#1a2b48;
          background:#f7f9fc; border-bottom:1px solid #eef1f5; white-space:nowrap;
          overflow:hidden; text-overflow:ellipsis; }
.farehd em { font-style:normal; margin-left:4px; color:#1a56db; }
.farefind { margin:8px 8px 4px; padding:7px 9px; border:1px solid #e3e8ef; border-radius:8px;
            font-family:inherit; font-size:12.5px; color:#1a2b48; }
.farefind:focus { outline:none; border-color:#8fb0ea; }
/* 세 칸 높이를 맞춘다 — 도착지는 지역 칩만큼 목록이 줄어든다 */
.farecol { height:440px; }
.farelist { flex:1 1 auto; min-height:0; overflow-y:auto; padding:2px 6px 8px; }
.fareit { display:flex; align-items:baseline; gap:7px; width:100%; text-align:left;
          padding:7px 8px; margin:1px 0; border:0; border-radius:7px; background:none;
          font-family:inherit; font-size:13px; color:#1a2b48; cursor:pointer; }
.fareit:hover { background:#f2f6ff; }
.fareit code { flex:0 0 auto; font-size:11.5px; font-weight:800; color:#8a93a0;
               font-family:ui-monospace, Consolas, monospace; }
.fareit span { min-width:0; }
.fareit.on { background:#1a2b48; color:#fff; }
.fareit.on code { color:#9fc0ff; }
.faregrp { position:sticky; top:0; z-index:1; margin:6px -6px 2px; padding:4px 12px;
           font-size:11px; font-weight:800; color:#56607a; background:#eef2f7; }
.faredim { padding:14px 6px; font-size:12px; color:#a9b1bc; text-align:center; }
.farego { display:block; width:100%; max-width:360px; margin:14px auto 0; padding:12px; border:0;
          border-radius:10px; background:#1a56db; color:#fff; font-family:inherit; font-size:15px;
          font-weight:800; cursor:pointer; }
.farego:disabled { background:#e7eaee; color:#a8b0be; cursor:default; }
.fareres { max-width:360px; margin:14px auto 0; }
.farewait { padding:18px; text-align:center; font-size:14px; font-weight:800; color:#1a56db;
            background:#f4f8ff; border-radius:10px; }
.farewait small { display:block; margin-top:4px; font-size:11.5px; color:#8a93a0; font-weight:700; }
.farefail { padding:16px; text-align:center; font-size:14px; font-weight:800; color:#c0392b;
            background:#fff5f4; border-radius:10px; }
.farewon { border:1px solid #e3e8ef; border-radius:10px; overflow:hidden; }
.farewon .l { display:flex; justify-content:space-between; padding:13px 16px; font-size:14px; }
.farewon .l span { color:#56607a; font-weight:700; }
.farewon .l b { color:#1a2b48; font-variant-numeric:tabular-nums; }
.farewon .l.tot { background:#f4f8ff; }
.farewon .l.tot b { color:#1a56db; font-size:19px; }
@media (max-width:760px){
  .farepick { grid-template-columns:1fr; }
  .farecol { height:auto; }
  .farelist { flex:none; height:220px; }
}
/* 도착지 지역 필터 칩 (2026-09-30) */
.farergs { display:flex; flex-wrap:wrap; gap:4px; padding:8px 8px 0; }
.farerg { padding:4px 9px; border:1px solid #e3e8ef; border-radius:999px; background:#fff;
          font-family:inherit; font-size:11.5px; font-weight:800; color:#56607a; cursor:pointer; }
.farerg:hover { border-color:#b9cdf5; color:#1a56db; }
.farerg.on { background:#1a2b48; border-color:#1a2b48; color:#fff; }
.farehd, .farergs, .farefind { flex-shrink:0; }
/* 탁송료 목록 새로고침 (관리자만, 2026-09-30) */
.farerf { margin-left:auto; padding:6px 11px; border:1px solid #e3e8ef; border-radius:8px; background:#fff;
          font-family:inherit; font-size:12px; font-weight:800; color:#56607a; cursor:pointer; }
.farerf:hover { border-color:#b9cdf5; color:#1a56db; }
.farerf:disabled { opacity:.55; cursor:default; }
.farerfmsg { font-size:11.5px; font-weight:700; color:#8a93a0; margin-left:8px; }
#pane-fare .prghead { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.farewhat { padding:12px 16px 10px; border-bottom:1px solid #eef1f5; }
.farewhat b { display:block; font-size:15px; color:#1a2b48; }
.farewhat span { display:block; margin-top:3px; font-size:13px; font-weight:700; color:#56607a; }
.fareres { max-width:460px; }
.farefail small { display:block; margin-top:5px; font-size:12px; font-weight:700; color:#8a93a0; }
/* 출고센터 운영현황 (2026-09-30) */
#pane-ship .card.ship { max-width:640px; }
.shiptb td.prgm, .shiptb th.prgm { text-align:right; font-variant-numeric:tabular-nums; }
.shiptb tr.tot td { background:#f4f8ff; font-weight:800; color:#1a2b48; }
.farelead { margin-left:auto; padding-left:6px; font-style:normal; font-size:11px; font-weight:800;
             color:#0f766e; white-space:nowrap; }
.fareit.on .farelead { color:#9fe3d0; }
/* 탁송료 — 오른쪽 많이 조회 · 최근 조회 (2026-10-01) */
#pane-fare .card.fare { max-width:1400px; }
.farebody { display:grid; grid-template-columns:minmax(0, 1fr) 290px; gap:14px; align-items:start; }
.fareside { border:1px solid #e6eaf0; border-radius:11px; background:#fff; max-height:640px;
            overflow-y:auto; padding:4px 8px 10px; }
.faresh { position:sticky; top:-4px; z-index:1; margin:0 -8px; padding:9px 12px 6px; background:#f7f9fc;
          border-bottom:1px solid #eef1f5; font-size:12.5px; font-weight:800; color:#1a2b48; }
.faresh small { font-size:10.5px; color:#a9b1bc; margin-left:3px; }
.faresi { display:block; width:100%; text-align:left; padding:8px 6px; border:0; border-bottom:1px dashed #eef1f5;
          background:none; font-family:inherit; cursor:pointer; border-radius:7px; }
.faresi:hover { background:#f2f6ff; }
.faresi b { display:block; font-size:13px; color:#1a2b48; }
.faresi span { display:block; margin-top:1px; font-size:11.5px; font-weight:700; color:#56607a; }
.faresi em { display:flex; justify-content:space-between; align-items:baseline; margin-top:3px;
             font-style:normal; font-size:12.5px; font-weight:800; color:#1a56db; }
.faresi em i { font-style:normal; font-size:10.5px; font-weight:700; color:#a9b1bc; }
@media (max-width:1100px){ .farebody { grid-template-columns:1fr; } .fareside { max-height:none; } }
.farerf2 { color:#c0392b; }
.farerf2:hover { border-color:#f0c9c4; color:#c0392b; background:#fff5f4; }
.farerf2 + .farerf { margin-left:0; }
.farehours { margin-left:6px; font-size:11.5px; font-weight:700; color:#8a93a0; }
.farewarn { max-width:460px; margin:10px auto 0; padding:9px 12px; border-radius:9px; background:#fffaf0;
             border:1px solid #f5dfb0; font-size:12px; font-weight:700; color:#8a6d1f; line-height:1.6; }
.farewarn b { color:#b45309; }
.farewarn { max-width:560px; margin-top:14px; padding:13px 16px; font-size:14.5px; line-height:1.7; border-width:1.5px; }
.farewarn b { font-size:15px; }
.fareit.off { cursor:not-allowed; color:#b8c0cc; }
.fareit.off:hover { background:none; }
.fareit.off code { color:#cfd5dd; }
.fareban { margin-left:auto; padding:1px 7px; border-radius:999px; background:#f3f4f6; font-style:normal;
           font-size:10.5px; font-weight:800; color:#9aa3af; white-space:nowrap; }
.farelimit { margin-top:8px; padding-top:8px; border-top:1px dashed #f0d9a8; font-size:13px; color:#8a6d1f; }
.farelimit b { font-size:13px; }
/* 탁송료 워커 알림 띠 — 관리자만 (2026-10-01) */
.farealert { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0 0 8px; padding:10px 14px;
             border-radius:10px; text-decoration:none; font-size:13px; font-weight:700; }
.farealert.login { background:#fff1f0; border:1.5px solid #f5b5ad; color:#b42318; }
.farealert.att { background:#fffaf0; border:1.5px solid #f5dfb0; color:#8a6d1f; }
.farealert b { font-size:13.5px; }
.farealert span { color:inherit; opacity:.9; }
.farealert em { margin-left:auto; font-style:normal; font-size:11.5px; opacity:.7; }
.farealx { padding:4px 10px; border:1px solid currentColor; border-radius:7px; background:#fff;
            font-family:inherit; font-size:12px; font-weight:800; color:inherit; cursor:pointer; }
.farealnote { flex-basis:100%; font-size:11.5px; font-weight:700; opacity:.75; }
/* CR3 — 계약금출처가 '내가' 면 빨간 글씨 (내 돈이 나간 줄, 2026-10-01) */
.cr3xl select[data-k="계약금출처"][data-v="내가"],
select[data-k="계약금출처"][data-v="내가"] { color:#c0392b; font-weight:800; }
/* CR3 — 지금 고치고 있는 줄을 옅은 파랑으로 (칸 안에 커서가 있거나 고르기를 연 줄, 2026-10-02) */
.cr3xl tbody tr:focus-within > td,
.cr3xl tbody tr:focus-within > td input,
.cr3xl tbody tr:focus-within > td select,
.cr3xl tbody tr:focus-within > td textarea { background:#eaf2ff; }
.cr3xl tbody tr:focus-within > td.cr3no { background:#d6e4ff; color:#1a56db; font-weight:800; }
.cr3xl tbody tr:focus-within > td:first-child { box-shadow:inset 3px 0 0 #1a56db; }
.cr3ln:focus-within { background:#eaf2ff; box-shadow:inset 3px 0 0 #1a56db; }
/* CR3 계약일 — 계약번호 오른쪽 작게 (2026-10-02) */
.cr3cdate { flex:0 0 auto; margin-left:auto; padding:0 4px; font-size:11px; font-weight:700; color:#8a93a0;
            font-variant-numeric:tabular-nums; white-space:nowrap; align-self:center; }
.cr3cdate + .cr3short { margin-left:2px; }
.faretime { float:right; font-size:10.5px; font-weight:700; color:#0f766e; }
.faretime.old { color:#c2410c; }
/* 관리자 메모장 (2026-10-02) */
#pane-memo .card.memo { max-width:1100px; padding:0; overflow:hidden; display:flex; flex-direction:column; }
.memotabs { display:flex; align-items:flex-end; gap:2px; flex-wrap:wrap; padding:8px 8px 0;
            background:#f2f4f7; border-bottom:1px solid #e3e8ef; }
.memotab { display:flex; align-items:center; gap:6px; max-width:220px; padding:7px 8px 7px 12px;
           border:1px solid transparent; border-bottom:0; border-radius:9px 9px 0 0;
           font-size:13px; font-weight:800; color:#8a93a0; cursor:pointer; user-select:none; }
.memotab span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.memotab:hover { color:#1a56db; background:#f8faff; }
.memotab.on { background:#fff; border-color:#e3e8ef; color:#1a2b48; margin-bottom:-1px; }
.memox { padding:0 3px; border:0; background:none; color:#c3c9d2; font-size:11px; cursor:pointer; border-radius:4px; }
.memox:hover { color:#c0392b; background:#fff1f0; }
.memoadd { margin:0 0 4px 4px; padding:4px 10px; border:1px dashed #c8cfd9; border-radius:8px; background:#fff;
           font-family:inherit; font-size:14px; font-weight:800; color:#56607a; cursor:pointer; }
.memoadd:hover { border-color:#1a56db; color:#1a56db; }
.memotext { display:block; width:100%; box-sizing:border-box; min-height:calc(100vh - var(--머리높이, 96px) - 150px);
            padding:16px 18px; border:0; outline:none; resize:vertical; font-family:inherit;
            font-size:14.5px; line-height:1.75; color:#1a2b48; background:#fff; tab-size:4; -moz-tab-size:4; }
.memofoot { display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; padding:8px 14px;
            border-top:1px solid #eef1f5; background:#fafbfd; font-size:11.5px; font-weight:700; color:#8a93a0; }
.memohelp { color:#b0b6bd; }
/* 머리줄 안내 — 캐피탈 단추 오른쪽 (2026-10-02) */
.headnote { align-self:center; margin-left:6px; padding:6px 12px; border-radius:999px; background:#f0fdf4;
            border:1px solid #bbf7d0; font-size:12.5px; font-weight:700; color:#166534; white-space:nowrap; }
.headnote b { color:#15803d; }
@media (max-width:760px){ .headnote { white-space:normal; margin-left:0; font-size:12px; } }
/* CR3 받을자료 — 계약사실확인서·입금계좌발급증 두 개 한번에 넣는 줄 (2026-10-02) */
.cr3docbox .것.한번에 { background:#f8fafc; }
.cr3docbox .것.한번에 .줄 > b.빈 { color:#2563eb; }
.cr3docbox .한번에글 { font-size:11px; color:#64748b; margin-right:6px; }

/* CR3 계약 요약 — 왼쪽 요약 · 오른쪽 캐피탈정보 나란히 (2026-10-02) */
.modal.cr3sum2 { width:min(900px, 94vw); max-width:none; }
.cr3sumpanes { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); }
.cr3sumpane { min-width:0; display:flex; flex-direction:column; }
.cr3sumpane.cap { border-left:1px solid #eef1f5; background:#fbfcfe; }
.cr3panehd { display:flex; align-items:center; justify-content:space-between; gap:8px;
             padding:9px 14px 0; font-size:12.5px; font-weight:800; color:#56607a; }
.cr3sumpane > pre { margin:0; padding:10px 14px 14px; max-height:62vh; overflow:auto;
                    font-family:Consolas,"D2Coding",monospace; font-size:12.5px;
                    line-height:1.75; color:#1a2b48; white-space:pre-wrap; word-break:break-all; }
.cr3sumpane > pre a { color:#1a56db; }
@media (max-width:760px){
  .cr3sumpanes { grid-template-columns:1fr; }
  .cr3sumpane.cap { border-left:0; border-top:1px solid #eef1f5; }
  .cr3sumpane > pre { max-height:none; }
}

/* 재고 자동 새로고침 알림 (2026-10-02) */
.invfresh { position:fixed; left:50%; bottom:22px; transform:translate(-50%, 20px); z-index:9000;
            padding:9px 16px; border-radius:999px; background:#0f766e; color:#fff; font-size:13px;
            font-weight:700; box-shadow:0 6px 20px rgba(0,0,0,.18); opacity:0; pointer-events:none;
            transition:opacity .25s, transform .25s; }
.invfresh.show { opacity:1; transform:translate(-50%, 0); }

/* ══ 커뮤니티 = 단톡방 (2026-10-02) ══════════════════════════════════ */
.card.chat { display:flex; flex-direction:column; padding:0; overflow:hidden;
             height:calc(100vh - var(--머리높이, 96px) - 40px); min-height:420px; position:relative; }
.chhead { display:flex; align-items:baseline; gap:10px; padding:14px 18px 10px; border-bottom:1px solid #eef1f5; }
.chhead h2 { margin:0; font-size:17px; color:#1a2b48; }
.chsub { font-size:12px; color:#8a93a0; }
.chnotice { display:flex; align-items:center; gap:10px; padding:9px 16px; background:#fff8e6;
            border-bottom:1px solid #f6e3b4; font-size:13px; color:#7a5200; }
.chnotice b { flex:0 0 auto; }
.chnotice span { flex:1 1 auto; min-width:0; white-space:pre-wrap; word-break:break-all; }
.chnotice button { flex:0 0 auto; padding:3px 9px; border:1px solid #e8cf8f; border-radius:7px; background:#fff;
                   font-family:inherit; font-size:11.5px; color:#7a5200; cursor:pointer; }
.chlist { flex:1 1 auto; overflow-y:auto; padding:10px 16px 14px; background:#b9cfe4; }
.chempty { margin:60px auto; text-align:center; color:#3f5873; font-size:14px; line-height:1.8; }
.chmore { display:block; margin:4px auto 10px; padding:5px 14px; border:0; border-radius:999px;
          background:rgba(255,255,255,.6); font-family:inherit; font-size:12px; color:#3f5873; cursor:pointer; }
.chday { text-align:center; margin:14px 0 8px; }
.chday span { display:inline-block; padding:3px 12px; border-radius:999px; background:rgba(0,0,0,.14);
              color:#fff; font-size:11.5px; }
.chrow { margin-top:8px; max-width:78%; }
.chrow.cont { margin-top:3px; }
.chrow.me { margin-left:auto; }
.chwho { font-size:12px; color:#2b3a4e; margin:0 0 3px 2px; }
.chwho em { font-style:normal; font-size:10.5px; font-weight:800; color:#fff; background:#1a56db;
            padding:1px 6px; border-radius:6px; }
.chwho small { color:#56677d; }
.chline { display:flex; align-items:flex-end; gap:5px; }
.chrow.me .chline { flex-direction:row-reverse; }
.chbub { min-width:0; padding:7px 11px; border-radius:4px 14px 14px 14px; background:#fff;
         font-size:14px; line-height:1.55; color:#1a2b48; box-shadow:0 1px 1px rgba(0,0,0,.06); }
.chrow.me .chbub { background:#fee500; border-radius:14px 4px 14px 14px; }
.chrow.cont .chbub { border-radius:14px; }
.chbub.gone { background:rgba(255,255,255,.55) !important; }
.chtxt { white-space:pre-wrap; word-break:break-word; }
.chtxt a { color:#1a56db; word-break:break-all; }
.chdel { font-style:normal; font-size:12.5px; color:#8a93a0; }
.chimg { display:block; max-width:min(260px, 60vw); max-height:320px; margin:4px 0 2px; border-radius:8px; }
.chtime { flex:0 0 auto; font-size:10.5px; color:#4d6075; }
.chhand { flex:0 0 auto; display:none; gap:2px; }
.chrow:hover .chhand { display:inline-flex; }
.chx { padding:1px 5px; border:0; border-radius:6px; background:rgba(255,255,255,.75); font-size:11px;
       color:#56607a; cursor:pointer; }
.chx:hover { background:#fff; color:#c0392b; }
.chnew { position:absolute; left:50%; bottom:86px; transform:translateX(-50%); padding:7px 16px; border:0;
         border-radius:999px; background:#1a2b48; color:#fff; font-family:inherit; font-size:12.5px;
         font-weight:700; box-shadow:0 4px 14px rgba(0,0,0,.2); cursor:pointer; }
.chthumbs { display:flex; gap:6px; flex-wrap:wrap; padding:0 14px; }
.chthumbs:not(:empty) { padding-top:8px; }
.chth { position:relative; }
.chth img { width:56px; height:56px; object-fit:cover; border-radius:8px; border:1px solid #e3e8ef; }
.chth button { position:absolute; top:-6px; right:-6px; width:20px; height:20px; padding:0; border:0;
               border-radius:50%; background:#1a2b48; color:#fff; font-size:10px; cursor:pointer; }
.chin { display:flex; align-items:flex-end; gap:8px; padding:10px 14px 4px; }
.chpic { flex:0 0 auto; display:flex; align-items:center; justify-content:center; width:40px; height:40px;
         border:1px solid #e3e8ef; border-radius:10px; background:#f7f9fc; font-size:18px; cursor:pointer; }
.chpic input { display:none; }
.chin textarea { flex:1 1 auto; min-width:0; resize:none; padding:9px 12px; border:1px solid #d6dde7;
                 border-radius:10px; font-family:inherit; font-size:14px; line-height:1.45; max-height:140px; }
.chin .btn.go { flex:0 0 auto; height:40px; }
#chMsg { padding:0 16px 8px; min-height:14px; }
@media (max-width:760px){
  .card.chat { height:calc(100vh - var(--머리높이, 64px) - 20px); border-radius:0; }
  .chrow { max-width:88%; }
  .chhand { display:inline-flex; }
}

/* 내신서 칩 — 뽑았으면 O (초록), 안 뽑았으면 X (2026-10-02) */
.cr3doc.ns i.nso, .cr3doc.ns i.nsx { margin-left:3px; font-size:10.5px; font-weight:900; opacity:1; }
.cr3doc.ns i.nso { color:#0f766e; }
.cr3doc.ns i.nsx { color:#b6bdc7; }
.cr3doc.ns:hover i.nso, .cr3doc.ns:hover i.nsx { color:#fff; }

/* 해약 탭 — 해약 전체 완전삭제 (2026-10-02) */
.cr3purge { margin-left:10px; padding:4px 10px; border:1px solid #e8b4ad; border-radius:8px; background:#fdf3f2;
            color:#c0392b; font-family:inherit; font-size:12px; font-weight:800; cursor:pointer; white-space:nowrap; }
.cr3purge:hover { background:#c0392b; border-color:#c0392b; color:#fff; }

/* 단톡방 — 관리자에게만 보이는 보낸 사람 정보 (이름·직함·소속·번호) */
.chwho small.chid { margin-left:4px; padding:1px 7px; border-radius:6px; background:rgba(255,255,255,.55);
                    color:#2b3a4e; font-size:11px; }

/* ══ 재고조회 점검 모드 (2026-10-03) ══ */
#pane-inv2.점검중 > :not(#invMaint) { display:none !important; }
.maintbox.full { margin:40px auto; max-width:560px; padding:40px 28px; border-radius:16px; background:#fff;
                 box-shadow:0 4px 24px rgba(26,43,72,.08); text-align:center; }
.maintic { font-size:44px; }
.mainttx { margin:14px 0 6px; font-size:18px; font-weight:800; line-height:1.7; color:#1a2b48; }
.maintwhen { margin-bottom:18px; font-size:12.5px; color:#8a93a0; }
.maintbox.bar { display:flex; align-items:center; gap:10px; margin:0 0 10px; padding:9px 14px; border-radius:10px;
                background:#fff8e6; border:1px solid #f6e3b4; color:#7a5200; font-size:13px; }
.maintbox.bar span { flex:1 1 auto; }
.maintbox.bar button { padding:4px 10px; border:1px solid #e8cf8f; border-radius:7px; background:#fff;
                       font-family:inherit; font-size:12px; font-weight:700; color:#7a5200; cursor:pointer; }
.btn.maintbtn.on { background:#fff8e6; border-color:#e8cf8f; color:#7a5200; }
.maintlink { display:inline-block; text-decoration:none; }
.maintpw { margin-top:10px; font-size:13px; color:#56607a; }
.maintpw b { color:#1a2b48; letter-spacing:1px; }

  /* ══ 공지사항 · 공지 팝업 (2026-10-04) ══ */
  #pane-notice .card { max-width:860px; }
  .ntchead { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
  .ntchead h2 { margin:0; font-size:19px; }
  .ntcsub { color:#6b7a90; font-size:13px; }
  .ntcbtns { margin-left:auto; display:flex; gap:6px; }
  .ntcbtn { border:1px solid #c9d3e3; background:#fff; color:#1a2b48; border-radius:8px;
            padding:7px 12px; font-size:13px; font-weight:700; cursor:pointer; }
  .ntcbtn:hover { background:#f2f6fc; }
  .ntcbtn.go { background:#1f3864; border-color:#1f3864; color:#fff; }
  .ntcbtn.go:hover { background:#2b4a80; }
  .ntctabs { display:flex; gap:6px; margin-bottom:10px; border-bottom:1px solid #e3e8f0; }
  .ntctab { border:0; background:none; padding:8px 12px; font-size:14px; font-weight:700;
            color:#6b7a90; cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-1px; }
  .ntctab.on { color:#1f3864; border-bottom-color:#1f3864; }
  .ntcnone { padding:28px 8px; text-align:center; color:#8a97aa; }

  .ntclist { border-top:1px solid #e3e8f0; }
  .ntcitem { border-bottom:1px solid #e3e8f0; }
  .ntcitem.pin { background:#fbfcfe; }
  .ntcrow { display:flex; align-items:center; gap:8px; padding:12px 6px; cursor:pointer; }
  .ntcrow:hover { background:#f6f9ff; }
  .ntcpin { font-size:13px; }
  .ntcN { background:#c0392b; color:#fff; font-size:10.5px; font-weight:800; border-radius:999px;
          padding:1px 6px; }
  .ntctitle { flex:1; min-width:0; font-size:15px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .ntcitem.new .ntctitle { font-weight:800; }
  .ntcitem.open .ntctitle { white-space:normal; }
  .ntcdate { color:#8a97aa; font-size:12.5px; white-space:nowrap; }
  .ntcadm { display:flex; gap:4px; }
  .ntcadm button, .popadm button { border:1px solid #d5dce8; background:#fff; border-radius:6px;
            font-size:12px; padding:3px 8px; cursor:pointer; color:#3b4b63; }
  .ntcadm button:hover, .popadm button:hover { background:#f2f6fc; }
  .ntcview { padding:4px 10px 16px 10px; }
  .ntctext { font-size:14.5px; line-height:1.7; word-break:break-word; }
  .ntctext a { color:#1f5fbf; }
  .ntcpics { display:flex; flex-direction:column; gap:10px; margin-top:12px; }
  .ntcpics img { max-width:100%; border-radius:8px; border:1px solid #e3e8f0; display:block; }
  .ntcedited { margin-top:10px; color:#9aa6b8; font-size:12px; }

  .ntcform { display:flex; flex-direction:column; gap:12px; }
  .ntcform label { display:flex; flex-direction:column; gap:5px; font-size:13px; font-weight:700; color:#3b4b63; }
  .ntcform small { font-weight:400; color:#8a97aa; }
  .ntcform input:not([type=checkbox]), .ntcform textarea, .ntcform select {
            border:1px solid #c9d3e3; border-radius:8px; padding:9px 10px; font-size:14px;
            font-family:inherit; font-weight:400; color:#1a2b48; background:#fff; }
  .ntcform textarea { resize:vertical; line-height:1.6; }
  .ntcform label.ntccheck { flex-direction:row; align-items:center; gap:8px; font-weight:600; }
  .ntcpicsedit { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
  .ntcthumb { position:relative; width:96px; height:96px; border-radius:8px; overflow:hidden; border:1px solid #d5dce8; }
  .ntcthumb.big { width:200px; height:auto; max-height:200px; }
  .ntcthumb img { width:100%; height:100%; object-fit:cover; display:block; }
  .ntcthumb button { position:absolute; top:3px; right:3px; border:0; border-radius:999px; width:22px; height:22px;
            background:rgba(0,0,0,.6); color:#fff; cursor:pointer; font-size:12px; line-height:22px; padding:0; }
  .ntcform label.ntcadd { flex-direction:row; align-items:center; justify-content:center; width:auto; padding:10px 14px;
            border:1px dashed #9fb0c9; border-radius:8px; cursor:pointer; color:#1f3864; background:#f7f9fc; }
  .ntcdates { display:flex; gap:10px; flex-wrap:wrap; }
  .ntcdates label { flex:1; min-width:150px; }
  .ntcformbtns { display:flex; gap:8px; align-items:center; justify-content:flex-end; flex-wrap:wrap; }
  .ntcmsg { margin-right:auto; color:#c0392b; font-size:13px; }

  .poplist { display:flex; flex-direction:column; gap:10px; }
  .popitem { display:flex; gap:12px; border:1px solid #e3e8f0; border-radius:10px; padding:10px; background:#fff; }
  .popitem.off { opacity:.55; }
  .popitem > img, .popnoimg { width:90px; height:90px; object-fit:cover; border-radius:8px; flex:none; }
  .popnoimg { display:flex; align-items:center; justify-content:center; background:#f2f4f7; color:#8a97aa; font-size:12px; }
  .popinfo { flex:1; min-width:0; display:flex; flex-direction:column; gap:4px; }
  .poptit { font-weight:800; font-size:15px; }
  .popmeta { color:#6b7a90; font-size:12.5px; }
  .popadm { display:flex; gap:4px; flex-wrap:wrap; margin-top:auto; }

  /* 회원에게 뜨는 팝업 */
  .popl { position:fixed; inset:0; z-index:9000; background:rgba(15,23,42,.45);
          display:flex; align-items:center; justify-content:center; padding:16px; }
  .popbox { position:relative; width:min(440px, 100%); max-height:calc(100vh - 32px); display:flex; flex-direction:column;
            background:#fff; border-radius:12px; overflow:hidden; box-shadow:0 18px 50px rgba(0,0,0,.3); }
  .poptop { padding:13px 16px; font-weight:800; font-size:16px; background:#1f3864; color:#fff; }
  .popmain { overflow:auto; }
  .popmain img { display:block; width:100%; height:auto; }
  .poptext { padding:14px 16px; font-size:14.5px; line-height:1.7; word-break:break-word; }
  .poptext a { color:#1f5fbf; }
  .popfoot { display:flex; border-top:1px solid #e3e8f0; }
  .popfoot button { flex:1; border:0; background:#f7f9fc; padding:13px 8px; font-size:14px; cursor:pointer; color:#3b4b63; }
  .popfoot button + button { border-left:1px solid #e3e8f0; }
  .popfoot button.close { background:#1f3864; color:#fff; font-weight:700; }
  .popfoot button.more { background:#1a56db; color:#fff; font-weight:700; }   /* 자세히 보기 → 연결한 공지 (2026-10-25) */
  .popprev { position:absolute; top:8px; right:8px; background:#c0392b; color:#fff; font-size:11px;
             padding:3px 8px; border-radius:999px; font-weight:700; }

  @media (max-width: 600px) {
    .ntcrow { flex-wrap:wrap; }
    .ntctitle { flex-basis:100%; order:3; white-space:normal; }
    .ntcbtns { margin-left:0; width:100%; justify-content:flex-end; }
  }

  /* 공지 조회수 · 댓글 (2026-10-04) */
  .ntcstat { color:#8a97aa; font-size:12px; white-space:nowrap; }
  .ntccmts { margin-top:16px; border-top:1px dashed #d5dce8; padding-top:12px; }
  .ntccmttit { font-weight:800; font-size:13.5px; color:#3b4b63; margin-bottom:8px; }
  .ntccmt { padding:9px 10px; border-radius:8px; background:#f7f9fc; margin-bottom:6px; }
  .ntccmthead { display:flex; align-items:center; gap:6px; font-size:13px; flex-wrap:wrap; }
  .ntcadmtag { background:#1f3864; color:#fff; font-size:10.5px; font-weight:700; border-radius:4px; padding:1px 5px; }
  .ntccmttime { color:#9aa6b8; font-size:12px; }
  .ntccmtdel { margin-left:auto; border:1px solid #e3c2bd; background:#fff; color:#c0392b; border-radius:6px;
               font-size:11.5px; padding:2px 7px; cursor:pointer; }
  .ntccmttext { margin-top:4px; font-size:14px; line-height:1.6; word-break:break-word; }
  .ntccmtnew { display:flex; gap:8px; align-items:stretch; margin-top:8px; }
  .ntccmtnew textarea { flex:1; border:1px solid #c9d3e3; border-radius:8px; padding:8px 10px; font-size:14px;
                        font-family:inherit; resize:vertical; }
  .ntccmtoff { color:#8a97aa; font-size:13px; padding:6px 2px; }
  .ntccmtwhere { color:#1f5fbf; font-size:12.5px; cursor:pointer; text-decoration:underline; }
  .ntccmtall .ntccmt { background:#fff; border:1px solid #e3e8f0; }

  /* 메뉴 묶음 머리줄 — 국산차 업무 · 게시판 (2026-10-04). 누르면 그 묶음을 접고 편다 */
  .kside .ksgrp { display:flex; align-items:center; gap:10px; width:100%; margin-top:8px;
                  padding:7px 10px 5px; border:0; background:transparent; cursor:pointer;
                  font-family:inherit; font-size:11.5px; font-weight:800; color:#94a0b4;
                  letter-spacing:.02em; text-align:left; white-space:nowrap; }
  .kside .ksgrp .ic { flex:0 0 20px; font-size:13px; text-align:center; }
  .kside .ksgrp > .꼬리 { margin-left:auto; font-size:10px; color:#c3c9d2; padding:2px 1px 2px 6px; }
  .kside .ksgrp:hover, .kside .ksgrp:hover > .꼬리 { color:#1a56db; }
  .ksgrpbox { display:none; flex-direction:column; gap:2px; margin-left:8px; }
  .ksgrpbox.펴짐 { display:flex; }
  /* 메뉴를 아이콘만 남기고 접었을 때 — 머리줄은 감추고 안쪽 메뉴는 늘 보인다 */
  body.접힘 .kside .ksgrp { display:none; }
  body.접힘 .ksgrpbox { display:flex; margin-left:0; }
  /* 자료실 준비 중 */
  .filesoon { text-align:center; padding:48px 16px; }
  .filesoonic { font-size:44px; }
  .filesoon h2 { margin:8px 0 6px; }
  .filesoon p { color:#6b7a90; margin:0; }

  /* 묶음 안쪽을 업무지원 안쪽 메뉴처럼 — 작은 글씨·작은 아이콘·들여쓰기·왼쪽 선 (2026-10-04 사용자)
     머리줄(국산차 업무·게시판)은 업무지원과 같은 크기의 메뉴 줄로. 아이콘만 남긴 접힘 모드는 예전대로 */
  body:not(.접힘) .kside .ksgrp { margin-top:0; padding:10px; border-radius:10px; font-size:13px;
                                  font-weight:800; color:#4a5565; letter-spacing:0; }
  body:not(.접힘) .kside .ksgrp .ic { font-size:15px; }
  .kside .ksgrp:hover { background:#f2f6ff; color:#1a56db; }
  body:not(.접힘) .ksgrpbox { gap:1px; margin:2px 0 6px 30px; padding-left:9px;
                              border-left:1.5px solid #eef1f5; }
  body:not(.접힘) .ksgrpbox > .tabb { gap:6px; padding:7px 9px; border-radius:8px;
                                      font-size:12px; font-weight:700; color:#6b7280; }
  body:not(.접힘) .ksgrpbox > .tabb .ic { flex:0 0 auto; font-size:12px; }   /* 업무지원 안쪽처럼 작은 아이콘 */
  body:not(.접힘) .ksgrpbox > .tabb:hover { background:#f6f9ff; color:#1a56db; }
  body:not(.접힘) .ksgrpbox > .tabb.on { background:#f2f6ff; color:#1a56db; font-weight:800; }
  body:not(.접힘) .ksgrpbox .kssub { margin:1px 0 4px 10px; }

  /* 게시판 머리줄의 합친 빨간 숫자 — 접어 두었을 때만 (2026-10-04) */
  .kside .ksgrp > .새쪽지 + .꼬리 { margin-left:6px; }

  /* ══ 차량수당 화면 — ① 차량 고르기 ② 차량가 ③ 수당 · 오른쪽 납기표 사진 (2026-10-05) ══ */
  .ctop .ctitle { font-size:17px; font-weight:800; margin-right:auto; }
  .ctrow .ctwrap { flex:0 1 560px; max-width:560px; overflow:visible; }
  .ctrow .ctdlv { flex:1 1 520px; }
  .cstep { margin:14px 0 8px; font-size:13.5px; font-weight:800; color:#1a2b48; }
  .cstep:first-child { margin-top:0; }
  .cstep b { display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px;
             border-radius:999px; background:#1f3864; color:#fff; font-size:11.5px; margin-right:4px; }
  .cpkbar { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:8px; }
  .cpktabs { display:flex; gap:4px; flex-wrap:wrap; }
  .cpktab { border:1px solid #d5dce8; background:#fff; color:#4a5565; border-radius:999px;
            padding:5px 11px; font-size:12.5px; font-weight:700; cursor:pointer; font-family:inherit; }
  .cpktab.on { background:#1f3864; border-color:#1f3864; color:#fff; }
  .cpkfind { flex:1; min-width:120px; border:1px solid #d5dce8; border-radius:8px; padding:6px 10px;
             font-size:13px; font-family:inherit; }
  .cpklist { }                      /* 굴림 없이 다 보이게 (2026-10-05 사용자) */
  .cpkcat { margin:8px 0 4px; font-size:11.5px; font-weight:800; color:#94a0b4; }
  .cpkcat:first-child { margin-top:0; }
  /* 한 줄 6칸 고정 (2026-10-11 사용자) — 폰에서는 3칸 */
  .cpkgrid { display:grid; grid-template-columns:repeat(6, minmax(0, 1fr)); gap:4px; }
  @media (max-width:760px){ .cpkgrid { grid-template-columns:repeat(3, minmax(0, 1fr)); } }
  .cpkgrid + .cpkgrid { margin-top:4px; }   /* 차 이름으로 줄을 나눈 다음 줄 (2026-10-11) */
  .cpkbtn { border:1px solid #e3e8f0; background:#fff; border-radius:8px; padding:6px 5px; font-size:12px;
            font-weight:700; color:#1a2b48; cursor:pointer; text-align:center; font-family:inherit;
            overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .cpkbtn:hover { border-color:#9fb5d8; background:#f6f9ff; }
  .cpkbtn.on { background:#1f3864; border-color:#1f3864; color:#fff; }
  #calcTable .ctprice { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
  #calcTable .ctprice input { flex:1; min-width:150px; font-size:18px; font-weight:800; text-align:right;
            border:1.5px solid #c9d3e3; border-radius:8px; padding:9px 12px; font-family:inherit; }
  #calcTable .ctprice input:focus { outline:none; border-color:#1f3864; }
  #calcTable .ctprice em { font-style:normal; font-weight:700; color:#4a5565; }
  .cresnone { padding:18px 6px; color:#8a97aa; text-align:center; font-size:13.5px; }
  .crespick { font-weight:800; font-size:15px; margin-bottom:8px; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
  /* 수당 안내 그림 복사 — 오른쪽 위 (2026-10-16) */
  .cresimg { margin-left:auto; padding:5px 10px; border:1px solid #cddcf7; border-radius:9px; background:#f5f8ff;
             color:#1a56db; font-weight:800; font-size:12.5px; cursor:pointer; font-family:inherit; }
  .cresimg:hover { border-color:#1a56db; background:#1a56db; color:#fff; }
  .crespick span { font-weight:600; color:#6b7a90; font-size:13px; }
  .cresmain { background:#f2f6ff; border:1px solid #d6e2fb; border-radius:10px; padding:14px 16px; }
  .creslabel { font-size:13px; font-weight:700; color:#3b4b63; }
  .creslabel em, .cressub em { font-style:normal; font-weight:600; color:#8a97aa; font-size:12px; margin-left:4px; }
  .cresval { margin-top:4px; font-size:28px; font-weight:900; color:#1a56db; font-variant-numeric:tabular-nums; }
  .cresval small { font-size:15px; font-weight:700; margin-left:2px; }
  .cressub { display:flex; justify-content:space-between; align-items:center; padding:10px 4px;
             border-bottom:1px solid #eef1f5; font-size:13.5px; }
  .cressub b { font-variant-numeric:tabular-nums; }
  .cressub b i { font-style:normal; font-weight:600; color:#8a97aa; font-size:12px; }
  .cressub.mine { background:#fffaf0; }
  .cressub b.minus { color:#c0392b; }
  .cresnote { margin-top:8px; color:#9aa6b8; font-size:12px; }
  /* 납기표 사진 */
  .ctdlv .dlvhead { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
  .dlvwhen { color:#8a97aa; font-size:12px; font-weight:600; }
  .dlvup { margin-left:auto; border:1px dashed #9fb0c9; border-radius:8px; padding:5px 10px; cursor:pointer;
           font-size:12.5px; font-weight:700; color:#1f3864; background:#f7f9fc; }
  .dlvimgs { display:flex; flex-direction:column; gap:10px; margin-top:10px; }
  .dlvimg { position:relative; }
  .dlvimg img { display:block; width:100%; height:auto; border-radius:8px; border:1px solid #e3e8f0; }
  .dlvdel { position:absolute; top:8px; right:8px; border:0; border-radius:6px; background:rgba(192,57,43,.9);
            color:#fff; font-size:12px; padding:4px 8px; cursor:pointer; }
  @media (max-width: 900px) {
    .ctrow .ctwrap { max-width:none; flex-basis:auto; }
    .ctrow .ctdlv { position:static; }
  }

  /* 오른쪽 자료 탭 — 납기표 · 판매조건표 … (2026-10-05) */
  .dlvtabs { display:flex; gap:4px; flex-wrap:wrap; align-items:flex-end; border-bottom:2px solid #1f3864; }
  .dlvtab { border:1px solid #d5dce8; border-bottom:0; background:#f4f6fa; color:#4a5565; border-radius:8px 8px 0 0;
            padding:8px 14px; font-size:13px; font-weight:800; cursor:pointer; font-family:inherit; }
  .dlvtab:hover { background:#eaf0fb; }
  .dlvtab.on { background:#1f3864; border-color:#1f3864; color:#fff; }
  .dlvempty { padding:8px 4px; font-weight:800; color:#1a2b48; }
  .dlvtabs .dlvup { margin:0 0 4px auto; }
  .dlvtool { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:8px 0; }
  .dlvadm { margin-left:auto; display:flex; gap:4px; }
  .dlvadm button { border:1px solid #d5dce8; background:#fff; border-radius:6px; font-size:12px; padding:4px 8px;
                   cursor:pointer; color:#3b4b63; font-family:inherit; }
  .dlvadm button:disabled { opacity:.35; cursor:default; }
  .dlvadm button.del { color:#c0392b; border-color:#e3c2bd; }
  /* 머리줄 브랜드 단추 — 늘어나지 않게 */
  #calcTop .ctop { display:flex; align-items:center; gap:10px; }
  #calcTop .cbrand { flex:0 0 auto; display:flex; gap:4px; }
  #calcTop .cbrand .cbb { flex:0 0 auto; min-width:72px; padding:7px 16px; }

  /* CR3업무 쪽 번호 — 50줄씩 (2026-10-05) */
  .cr3pager { display:flex; align-items:center; justify-content:center; gap:4px; flex-wrap:wrap; padding:12px 0 4px; }
  .cr3pg { min-width:34px; height:32px; border:1px solid #d5dce8; background:#fff; border-radius:8px; cursor:pointer;
           font-size:13px; font-weight:700; color:#3b4b63; font-family:inherit; font-variant-numeric:tabular-nums; }
  .cr3pg:hover:not(:disabled) { background:#f2f6ff; border-color:#9fb5d8; }
  .cr3pg.on { background:#1f3864; border-color:#1f3864; color:#fff; }
  .cr3pg:disabled { opacity:.35; cursor:default; }
  .cr3pgsum { margin-left:10px; color:#8a97aa; font-size:12.5px; }

  /* 지급수당 — 부가세 포함·세금계산서 발행 필수는 진한 빨강 (2026-10-05 사용자) */
  .creslabel .cresvat { color:#c0392b; font-weight:900; font-size:13px; margin-left:6px; }

  /* 메뉴 '준비중' 딱지 — 캐피탈견적 (권한 없는 회원) (2026-10-05) */
  .kside .tabb .준비딱지 { margin-left:auto; font-style:normal; padding:0 6px; border-radius:999px;
                          background:#f4f6f9; color:#a9b1bc; font-size:10px; font-weight:800; }
  body.접힘 .kside .tabb .준비딱지 { display:none; }

  /* ══ 캐피탈별 비교 — 항목별 · 회사별 보기 (2026-10-05) ══ */
  #pane-capcmp .card { max-width:none; }
  .cphead { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
  .cphtitle { font-size:18px; font-weight:800; margin-right:auto; }
  .cphtitle span { font-size:12.5px; color:#8a97aa; font-weight:600; margin-left:6px; }
  .cpmodes { display:flex; gap:4px; background:#f2f4f7; padding:3px; border-radius:10px; }
  .cpmodes button { border:0; background:transparent; padding:7px 12px; border-radius:8px; font-size:13px;
                    font-weight:700; color:#4a5565; cursor:pointer; font-family:inherit; }
  .cpmodes button.on { background:#fff; color:#1a2b48; box-shadow:0 1px 3px rgba(0,0,0,.12); }
  .cpq { width:100%; }
  .cpitemview { display:grid; grid-template-columns:220px 1fr; gap:14px; align-items:start; }
  .cpitems { display:flex; flex-direction:column; gap:2px; position:sticky; top:10px; max-height:calc(100vh - 40px); overflow:auto;
             border-right:1px solid #eef1f5; padding-right:8px; }
  .cpgrp { font-size:11.5px; font-weight:800; color:#94a0b4; margin:10px 0 3px 6px; }
  .cpgrp:first-child { margin-top:0; }
  .cpitem { text-align:left; border:0; background:transparent; padding:7px 10px; border-radius:8px; font-size:13px;
            font-weight:700; color:#4a5565; cursor:pointer; font-family:inherit; }
  .cpitem:hover { background:#f6f9ff; color:#1a56db; }
  .cpitem.on { background:#1f3864; color:#fff; }
  .cpatitle { font-size:18px; font-weight:800; margin-bottom:6px; }
  .cpatitle small { display:block; font-size:12px; color:#8a97aa; font-weight:600; }
  .cpcount { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:10px; }
  .cpcount span { font-size:12px; font-weight:800; padding:3px 9px; border-radius:999px; }
  .cpcount .yes { background:#e7f6ec; color:#1e7a3c; } .cpcount .no { background:#fdecea; color:#c0392b; }
  .cpcount .etc { background:#fff6e5; color:#a15c00; } .cpcount .none { background:#f2f4f7; color:#8a97aa; }
  .cpans { display:grid; grid-template-columns:150px 1fr; gap:12px; align-items:start; padding:10px 12px;
           border:1px solid #eef1f5; border-left:4px solid #d5dce8; border-radius:8px; margin-bottom:6px; background:#fff; }
  .cpans.yes { border-left-color:#2e9e57; } .cpans.no { border-left-color:#d64535; background:#fffafa; }
  .cpans.etc { border-left-color:#e0a030; } .cpans.none { opacity:.65; }
  .cpansco { text-align:left; border:0; background:none; padding:0; font-size:14px; font-weight:800; color:#1a2b48;
             cursor:pointer; font-family:inherit; }
  .cpansco:hover { color:#1a56db; text-decoration:underline; }
  .cpansv, .cprv { font-size:14px; line-height:1.6; word-break:break-word; }
  .cpdash { color:#a9b1bc; }
  .cpchips { flex-wrap:wrap; }
  .cpcotitle { font-size:20px; font-weight:900; margin:6px 0 10px; }
  .cpsecs { display:grid; grid-template-columns:repeat(auto-fill, minmax(420px, 1fr)); gap:12px; }
  .cpsec { border:1px solid #e3e8f0; border-radius:10px; padding:10px 14px; background:#fff; }
  .cpsectit { font-size:13px; font-weight:800; color:#1f3864; margin-bottom:4px; }
  .cprow { display:grid; grid-template-columns:140px 1fr; gap:10px; padding:8px 0; border-top:1px solid #f0f2f6; }
  .cprow:first-of-type { border-top:0; }
  .cprk { font-size:13px; font-weight:700; color:#4a5565; }
  .cprk small { display:block; color:#a9b1bc; font-weight:600; font-size:11px; }
  .cprow.yes .cprv { color:#1e7a3c; font-weight:700; } .cprow.no .cprv { color:#c0392b; font-weight:700; }
  @media (max-width: 760px) {
    .cpitemview { grid-template-columns:1fr; }
    .cpitems { position:static; max-height:220px; border-right:0; border-bottom:1px solid #eef1f5; padding:0 0 8px; }
    .cpans { grid-template-columns:1fr; gap:4px; }
    .cpsecs { grid-template-columns:1fr; }
    .cprow { grid-template-columns:1fr; gap:2px; }
  }
  /* 항목별 답 — 넓은 화면에서는 두세 칸으로 나란히 (오른쪽이 비지 않게) */
  .cpanswers .cpanslist { display:grid; grid-template-columns:repeat(auto-fill, minmax(340px, 1fr)); gap:6px; }
  .cpanswers .cpanslist .cpans { margin-bottom:0; grid-template-columns:120px 1fr; }
  /* 메뉴 접힘(아이콘만) — 묶음 머리줄 자리에 옅은 선을 그어 묶음이 갈리는 것을 보인다 (2026-10-05).
     머리줄(.ksgrp)이 그대로 선이 되므로 묶음을 더해도 저절로 따라온다 */
  body.접힘 .kside .ksgrp { display:block; height:1px; min-height:0; margin:7px 10px; padding:0;
                            background:#e3e8ef; border-radius:1px; overflow:hidden; font-size:0; pointer-events:none; }
  body.접힘 .kside .ksgrp > * { display:none; }
  /* 탁송료 조회 — 조회 시간이 아닐 때 두 줄, 단추를 키운다 (2026-10-05) */
  .farego.두줄 { max-width:420px; padding:16px 12px; font-size:16px; font-weight:800; line-height:1.4; }
  .farego.두줄 small { display:block; margin-top:4px; font-size:14px; font-weight:700; }
  /* 묶음 다음에 오는 홑 메뉴(업무지원 등) 앞에도 선 — 접힘 모드 */
  body.접힘 .kside .ksgrpbox + .tabb { position:relative; margin-top:15px; }
  body.접힘 .kside .ksgrpbox + .tabb::before { content:''; position:absolute; left:10px; right:10px; top:-8px;
                                               height:1px; background:#e3e8ef; }
  /* 차량수당 화면 — 브랜드 단추 오른쪽 안내, '선정산' 은 진한 빨강 (2026-10-05) */
  #calcTop .calcnote { margin-left:4px; }
  #calcTop .calcnote .선정산 { color:#c0392b; font-weight:900; }
  #calcTop .ctop { flex-wrap:wrap; }
  /* 차종 단추 — 잘리지 않게 두 줄까지, 괄호 부분은 아랫줄 작게 (2026-10-05) */
  .cpkbtn { white-space:normal; overflow:visible; text-overflow:clip; line-height:1.25; min-height:34px;
            display:flex; flex-direction:column; align-items:center; justify-content:center; word-break:keep-all; }
  .cpkbtn small { display:block; font-size:10.5px; font-weight:600; opacity:.75; margin-top:1px; }
  /* 머리줄 — 제목 · 브랜드 · 안내를 한 줄로 (좁은 화면에서만 접힌다) */
  #calcTop .ctop { flex-wrap:nowrap; gap:12px; }
  #calcTop .ctop .ctitle { margin-right:0; white-space:nowrap; }
  #calcTop .calcnote { margin-left:0; white-space:nowrap; }
  @media (max-width: 900px) { #calcTop .ctop { flex-wrap:wrap; } #calcTop .calcnote { white-space:normal; } }
  #calcTop .cbrand { width:auto; max-width:none; }   /* 원래 .cbrand 가 폭을 꽉 채워 안내가 화면 밖으로 밀렸다 */
  /* 납기표 사진 편집 창 (2026-10-05) */
  .imged { position:fixed; inset:0; z-index:9500; background:rgba(15,23,42,.55); display:flex;
           align-items:center; justify-content:center; padding:16px; }
  .imedbox { background:#fff; border-radius:12px; width:min(1100px, 100%); max-height:calc(100vh - 32px);
             display:flex; flex-direction:column; overflow:hidden; box-shadow:0 18px 50px rgba(0,0,0,.3); }
  .imedhead { display:flex; align-items:center; padding:12px 16px; border-bottom:1px solid #e3e8f0; font-size:15px; }
  .imedx { margin-left:auto; border:0; background:none; font-size:18px; cursor:pointer; color:#6b7a90; }
  .imedtools { display:flex; gap:6px; flex-wrap:wrap; align-items:center; padding:10px 16px 4px; }
  .imedtools button, .imedfoot button { border:1px solid #d5dce8; background:#fff; border-radius:8px; padding:7px 12px;
             font-size:13px; font-weight:700; cursor:pointer; color:#3b4b63; font-family:inherit; }
  .imedtools button:disabled { opacity:.4; cursor:default; }
  .imedtools .imedorig { margin-left:auto; color:#c0392b; border-color:#e3c2bd; }
  .imedsize { display:flex; align-items:center; gap:5px; font-size:13px; font-weight:700; color:#3b4b63; margin-left:8px; }
  .imedsize input { width:80px; border:1px solid #c9d3e3; border-radius:6px; padding:5px 7px; font-size:13px; text-align:right; }
  .imedsize em { font-style:normal; font-weight:600; color:#8a97aa; font-size:12px; }
  .imedhint { padding:2px 16px 8px; color:#8a97aa; font-size:12.5px; }
  .imedstage { position:relative; flex:1; overflow:auto; background:#f2f4f7; display:flex; justify-content:center;
               align-items:flex-start; padding:2px; cursor:crosshair; touch-action:none; user-select:none; }
  .imedstage canvas { display:block; background:#fff; box-shadow:0 1px 4px rgba(0,0,0,.15); }
  .imedsel { position:absolute; border:2px dashed #1a56db; background:rgba(26,86,219,.12);
             box-shadow:0 0 0 9999px rgba(0,0,0,.35); pointer-events:none; }
  .imedfoot { display:flex; gap:8px; align-items:center; justify-content:flex-end; padding:10px 16px; border-top:1px solid #e3e8f0; }
  .imedfoot .go { background:#1f3864; border-color:#1f3864; color:#fff; }
  .imedmsg { margin-right:auto; color:#c0392b; font-size:13px; }
  /* 납기표 크게 보기 — ◀ ▶ (2026-10-05) */
  .dlvlight { position:fixed; inset:0; z-index:9600; background:rgba(10,15,25,.88); display:flex; flex-direction:column; }
  .dlvlbar { display:flex; align-items:center; gap:12px; padding:10px 16px; color:#fff; font-size:15px; }
  .dlvlbar span { color:#c6cede; font-size:13px; }
  .dlvlbar a { margin-left:auto; color:#c6d7ff; font-size:13px; }
  .dlvlbar button { border:0; background:rgba(255,255,255,.15); color:#fff; width:34px; height:34px; border-radius:999px;
                    font-size:16px; cursor:pointer; }
  .dlvlstage { flex:1; overflow:auto; display:flex; align-items:flex-start; justify-content:center; padding:0 60px 20px; }
  .dlvlstage img { max-width:100%; height:auto; background:#fff; border-radius:4px; }
  .dlvlnav { position:fixed; top:50%; transform:translateY(-50%); border:0; width:48px; height:72px; border-radius:10px;
             background:rgba(255,255,255,.16); color:#fff; font-size:24px; cursor:pointer; }
  .dlvlnav:hover { background:rgba(255,255,255,.3); }
  .dlvlnav.prev { left:8px; } .dlvlnav.next { right:8px; }
  @media (max-width: 760px) { .dlvlstage { padding:0 8px 16px; } .dlvlnav { width:38px; height:56px; font-size:18px; } }

  /* CR3 의무보험료 월별 (2026-10-05) */
  .cr3insmon { display:flex; align-items:center; gap:10px; padding:10px 8px; border-bottom:1px solid #eef1f5;
               cursor:pointer; font-size:14px; }
  .cr3insmon:hover { background:#f6f9ff; }
  .cr3insmon.켬 { background:#f2f6ff; font-weight:800; }
  .cr3insmon .달 { flex:0 0 130px; font-weight:800; }
  .cr3insmon .건 { flex:0 0 50px; color:#6b7a90; font-size:13px; }
  .cr3insmon .남 { flex:1; color:#8a97aa; font-size:12px; }
  .cr3insmon .돈 { margin-left:auto; font-size:15px; font-variant-numeric:tabular-nums; }
  .cr3insmon .돈 i { font-style:normal; font-size:12px; margin-left:1px; font-weight:600; }
  .cr3insin { background:#fafbfd; padding:2px 0 6px 12px; border-bottom:1px solid #eef1f5; }
  .cr3insline .차 { flex:1; min-width:0; color:#6b7a90; font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .cr3insline.남 { opacity:.6; }

  /* ══ 캐피탈재고 (2026-10-05) ══ */
  #pane-capstock .card { max-width:none; }
  .cstkhead { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
  .cstkhead h2 { margin:0; font-size:19px; }
  .cstkwhen { color:#8a97aa; font-size:12.5px; }
  .cstkbtns { margin-left:auto; }
  .cstklogos { display:grid; grid-template-columns:repeat(auto-fill, minmax(132px, 1fr)); gap:6px; margin-bottom:12px; }
  .cstklogo { display:flex; flex-direction:column; align-items:center; gap:3px; padding:9px 6px 7px; border:1.5px solid #e3e8f0;
              border-radius:10px; background:#fff; cursor:pointer; font-family:inherit; min-height:84px; justify-content:center; }
  .cstklogo:hover { border-color:#9fb5d8; background:#f8fbff; }
  .cstklogo.on { border-color:#1f3864; background:#f2f6ff; box-shadow:0 0 0 2px rgba(31,56,100,.12); }
  .cstklogo img { max-width:110px; max-height:30px; object-fit:contain; }
  .cstklogo b { font-size:13px; color:#1a2b48; }
  .cstkname { font-size:11.5px; font-weight:700; color:#4a5565; text-align:center; line-height:1.2; }
  .cstklogo em { font-style:normal; font-size:11px; font-weight:800; color:#1a56db; }
  .cstklogo.빔 { opacity:.55; } .cstklogo.빔 em { color:#a9b1bc; }
  .cstkbar { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:8px; }
  .cstktitle { display:flex; align-items:center; gap:8px; }
  .cstktitle img { height:26px; } .cstktitle b { font-size:16px; } .cstktitle span { color:#6b7a90; font-size:12.5px; }
  .cstkfind { flex:1; min-width:220px; border:1px solid #c9d3e3; border-radius:8px; padding:8px 11px; font-size:13.5px; font-family:inherit; }
  .cstkwrap { overflow:auto; max-height:calc(100vh - 260px); border:1px solid #e3e8f0; border-radius:8px; }
  .cstktb { border-collapse:collapse; width:100%; font-size:12.5px; }
  .cstktb th { position:sticky; top:0; background:#1f3864; color:#fff; padding:8px 8px; text-align:left; white-space:nowrap; font-weight:700; z-index:1; }
  .cstktb td { padding:6px 8px; border-bottom:1px solid #eef1f5; vertical-align:top; max-width:340px; }
  .cstktb tbody tr:nth-child(even) td { background:#fafbfd; }
  .cstktb tbody tr:hover td { background:#f2f6ff; }
  .cstktb td.num { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
  .cstkempty { padding:40px 16px; text-align:center; color:#6b7a90; line-height:1.8; }

  /* 캐피탈재고 — 시트 그림 (2026-10-05) */
  .cstkimgbox { margin-bottom:10px; }
  .cstkimgtog { border:1px dashed #9fb0c9; background:#f7f9fc; color:#1f3864; border-radius:8px; padding:7px 12px;
                font-size:13px; font-weight:800; cursor:pointer; font-family:inherit; }
  .cstkimgs { display:grid; grid-template-columns:repeat(auto-fill, minmax(360px, 1fr)); gap:10px; margin-top:10px; }
  .cstkimgs a { display:block; border:1px solid #e3e8f0; border-radius:8px; overflow:hidden; background:#fff; }
  .cstkimgs img { display:block; width:100%; height:auto; }
  .cstkimgs a:hover { border-color:#9fb5d8; box-shadow:0 2px 8px rgba(0,0,0,.08); }
  /* 머리줄 밑 '차종 20종 · 연식 27MY, 26MY' 줄 — 감춘다 (2026-10-05 사용자). 채우는 코드는 그대로 둔다 */
  #sub { display:none !important; }
  /* 캐피탈 특판재고 로고 단추 — 마우스를 올리면 이름이 뜬다 (2026-10-05) */
  .cstklogo { position:relative; min-height:70px; }
  .cstkhover { position:absolute; left:50%; bottom:calc(100% + 6px); transform:translateX(-50%); z-index:5;
               background:#1a2b48; color:#fff; font-size:12.5px; font-weight:800; padding:6px 10px; border-radius:8px;
               white-space:nowrap; pointer-events:none; opacity:0; transition:opacity .12s; box-shadow:0 4px 12px rgba(0,0,0,.18); }
  .cstkhover small { display:block; font-size:10.5px; font-weight:600; opacity:.75; text-align:center; }
  .cstkhover::after { content:''; position:absolute; top:100%; left:50%; transform:translateX(-50%);
                      border:6px solid transparent; border-top-color:#1a2b48; }
  .cstklogo:hover .cstkhover, .cstklogo:focus-visible .cstkhover { opacity:1; }
  /* 그림만 있는 캐피탈 — 한 줄에 하나, 화면 폭에 맞춰 크게. 표 위 접힌 그림은 빈 칸 없이 늘인다 */
  .cstkimgs { grid-template-columns:repeat(auto-fit, minmax(360px, 1fr)); }
  .cstkimgs.크게 { grid-template-columns:1fr; max-width:1400px; }
  .cstkimgs.크게 img { min-width:min(100%, 900px); }

  /* 캐피탈 특판재고 — 브랜드 줄 (2026-10-05) */
  .cstkbrands { display:flex; flex-direction:column; gap:6px; margin-bottom:12px; padding:10px 12px;
                background:#f7f9fc; border:1px solid #e3e8f0; border-radius:10px; }
  .cstkbrandrow { display:flex; flex-wrap:wrap; align-items:center; gap:5px; }
  .cstkbrandlab { flex:0 0 40px; font-size:12px; font-weight:800; color:#6b7a90; }
  .cstkbrandrow > i { font-style:normal; font-size:11.5px; color:#94a0b4; margin-left:4px; }
  .cstkbrand { display:inline-flex; align-items:center; gap:5px; padding:4px 10px 4px 6px; border:1.5px solid #e3e8f0;
               border-radius:999px; background:#fff; cursor:pointer; font-family:inherit; font-size:12.5px; font-weight:700; color:#1a2b48; }
  .cstkbrand img { width:30px; height:20px; object-fit:contain; }
  .cstkbrand em { font-style:normal; font-size:11px; font-weight:800; color:#fff; background:#94a0b4; border-radius:999px; padding:0 6px; }
  .cstkbrand:hover { border-color:#9fb5d8; }
  .cstkbrand.on { border-color:#1a56db; background:#eef4ff; }
  .cstkbrand.on em { background:#1a56db; }
  .cstkrow1 .cstkbrand:not(:has(img)) { padding-left:10px; }
  /* 캐피탈 특판재고 — 왼쪽 엑셀 · 오른쪽 사진, 사진 탭 (2026-10-05) */
  .cstklogos { display:grid; grid-template-columns:3fr 2fr; gap:12px; margin-bottom:12px; }
  .cstkside { border:1px solid #e3e8f0; border-radius:10px; padding:10px; background:#fbfcfe; }
  .cstkside.사진 { background:#fffcf7; border-color:#f0e4cf; }
  .cstksidet { font-size:13px; font-weight:800; color:#1a2b48; margin:0 2px 8px; }
  .cstksidet span { font-weight:600; color:#8a97aa; font-size:12px; margin-left:4px; }
  .cstkgrid { display:grid; grid-template-columns:repeat(auto-fill, minmax(118px, 1fr)); gap:6px; }
  .cstkpick { padding:30px 10px; text-align:center; color:#8a97aa; font-size:14px; }
  .cstkphototabs { display:flex; flex-wrap:wrap; gap:4px; margin:4px 0 10px; }
  .cstkphototabs button { border:1px solid #d5dce8; background:#fff; color:#4a5565; border-radius:999px; padding:5px 12px;
                          font-size:12.5px; font-weight:700; cursor:pointer; font-family:inherit; }
  .cstkphototabs button i { font-style:normal; color:#8a97aa; margin-left:2px; }
  .cstkphototabs button.on { background:#1f3864; border-color:#1f3864; color:#fff; }
  .cstkphototabs button.on i { color:#c6d2ea; }
  .cstkphotos { display:flex; flex-direction:column; gap:14px; max-width:1400px; }
  .cstkphoto { border:1px solid #e3e8f0; border-radius:10px; overflow:hidden; background:#fff; }
  .cstkphotobar { display:flex; align-items:center; gap:8px; padding:7px 12px; background:#f4f6fa; border-bottom:1px solid #e3e8f0; font-size:13px; }
  .cstkphotoadm { margin-left:auto; display:flex; gap:4px; }
  .cstkphotoadm button { border:1px solid #d5dce8; background:#fff; border-radius:6px; font-size:12px; padding:3px 9px; cursor:pointer;
                         font-family:inherit; color:#3b4b63; }
  .cstkphotoadm button:disabled { opacity:.35; cursor:default; }
  .cstkphoto img { display:block; width:100%; height:auto; }
  @media (max-width: 900px) { .cstklogos { grid-template-columns:1fr; } }
  /* 사진 크기 조절 (2026-10-05) — --사진폭 만큼, 작게 하면 여러 장씩 옆으로 */
  .cstkphototop { display:flex; align-items:flex-start; gap:10px; flex-wrap:wrap; margin:4px 0 10px; }
  .cstkphototop .cstkphototabs { flex:1; margin:0; }
  .cstkzoom { display:flex; align-items:center; gap:5px; font-size:12.5px; font-weight:700; color:#4a5565; white-space:nowrap;
              background:#f4f6fa; border:1px solid #e3e8f0; border-radius:999px; padding:3px 10px; }
  .cstkzoom button { border:1px solid #d5dce8; background:#fff; border-radius:6px; width:24px; height:22px; cursor:pointer;
                     font-size:13px; line-height:1; padding:0; color:#1a2b48; }
  .cstkzoom input { width:110px; accent-color:#1f3864; }
  .cstkzoom b { min-width:38px; text-align:right; color:#1a2b48; }
  .cstkphotos { flex-direction:row !important; flex-wrap:wrap; align-items:flex-start; max-width:none !important; }
  .cstkphotos .cstkphoto { flex:0 0 calc(var(--사진폭, 60%) - 10px); max-width:calc(var(--사진폭, 60%) - 10px); }
  @media (max-width: 760px) { .cstkphotos .cstkphoto { flex-basis:100%; max-width:100%; } .cstkzoom input { width:80px; } }
  /* 왼쪽·오른쪽 머리글(📊 엑셀 재고 · 🖼️ 사진 재고) 은 감춘다 (2026-10-05 사용자) */
  .cstksidet { display:none; }

  /* 사진 한 장 보기 — 양옆 ‹ › (2026-10-05) */
  .cstkphotoimg { position:relative; }
  .cstkside-nav { position:absolute; top:50%; transform:translateY(-50%); z-index:2; width:44px; height:88px; border:0;
                  border-radius:10px; background:rgba(26,43,72,.55); color:#fff; font-size:34px; line-height:1; cursor:pointer;
                  display:flex; align-items:center; justify-content:center; padding:0 0 4px; }
  .cstkside-nav:hover { background:rgba(26,43,72,.85); }
  .cstkside-nav.prev { left:8px; } .cstkside-nav.next { right:8px; }
  .cstkphotocnt { color:#8a97aa; font-size:12px; margin-left:6px; }
  .cstkorder { border:1px solid #d5dce8; background:#fff; color:#3b4b63; border-radius:999px; padding:4px 11px; font-size:12.5px;
               font-weight:700; cursor:pointer; font-family:inherit; white-space:nowrap; }
  .cstkorder.on { background:#fff4e0; border-color:#e0a030; color:#a15c00; }

  /* 사진 차례 설정 창 (2026-10-05) */
  .cstksetbox { width:min(1000px, 100%); }
  .cstksetgrid { display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:10px; padding:4px 16px 12px;
                 overflow:auto; }
  .cstksetitem { position:relative; border:2px solid #e3e8f0; border-radius:10px; background:#fff; padding:6px; cursor:grab; }
  .cstksetitem.끄는중 { opacity:.4; }
  .cstksetitem.위 { border-color:#1a56db; background:#eef4ff; }
  .cstksetitem b { position:absolute; top:4px; left:4px; background:#1f3864; color:#fff; border-radius:999px;
                   min-width:24px; height:24px; display:flex; align-items:center; justify-content:center; font-size:12px; }
  .cstksetitem img { display:block; width:100%; height:110px; object-fit:cover; object-position:top; border-radius:6px; }
  .cstksetbtn { display:flex; justify-content:space-between; margin-top:5px; }
  .cstksetbtn button { border:1px solid #d5dce8; background:#fff; border-radius:6px; width:40%; padding:3px 0; cursor:pointer; }
  .cstksetbtn button:disabled { opacity:.35; cursor:default; }
  /* 한 장 보기 머리줄 오른쪽 — ‹ 이전 · 다음 › (2026-10-05) */
  .cstkphotonav { margin-left:auto; display:flex; gap:4px; }
  .cstkphotonav button { border:1px solid #c9d3e3; background:#fff; color:#1a2b48; border-radius:8px; padding:4px 12px;
                         font-size:13px; font-weight:800; cursor:pointer; font-family:inherit; }
  .cstkphotonav button:hover { background:#1f3864; border-color:#1f3864; color:#fff; }
  /* ══ 캐피탈자료실 (2026-10-05) ══ */
  #pane-capfiles .card { max-width:none; }
  .cftabs { display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-bottom:10px; }
  .cftab { border:1px solid #d5dce8; background:#fff; color:#4a5565; border-radius:10px; padding:8px 14px; font-size:14px;
           font-weight:800; cursor:pointer; font-family:inherit; }
  .cftab i { font-style:normal; font-size:12px; color:#8a97aa; margin-left:3px; }
  .cftab.on { background:#1f3864; border-color:#1f3864; color:#fff; } .cftab.on i { color:#c6d2ea; }
  .cffind { flex:1; min-width:200px; margin-left:auto; border:1px solid #c9d3e3; border-radius:8px; padding:8px 11px; font-size:13.5px; font-family:inherit; }
  .cfcaps { display:flex; flex-wrap:wrap; gap:5px; margin-bottom:12px; }
  .cfcap { display:inline-flex; align-items:center; gap:5px; border:1.5px solid #e3e8f0; background:#fff; border-radius:999px;
           padding:4px 11px; font-size:12.5px; font-weight:700; color:#1a2b48; cursor:pointer; font-family:inherit; }
  .cfcap img { height:16px; max-width:56px; object-fit:contain; }
  .cfcap.on { border-color:#1a56db; background:#eef4ff; }
  .cflist { display:grid; grid-template-columns:repeat(auto-fill, minmax(380px, 1fr)); gap:10px; align-items:start; }
  .cfgroup { display:flex; flex-direction:column; gap:6px; }
  .cfcard { border:1px solid #e3e8f0; border-radius:10px; padding:10px 12px; background:#fff; }
  .cfcard.옛 { background:#fafbfd; opacity:.85; margin-left:14px; }
  .cfhead { display:flex; align-items:center; gap:7px; font-size:13px; }
  .cfhead img { height:20px; max-width:70px; object-fit:contain; }
  .cfkind { background:#eef4ff; color:#1a56db; font-size:11.5px; font-weight:800; border-radius:999px; padding:1px 8px; }
  .cfdate { margin-left:auto; color:#8a97aa; font-size:12px; }
  .cfdel { border:1px solid #e3c2bd; background:#fff; color:#c0392b; border-radius:6px; font-size:11.5px; padding:2px 7px; cursor:pointer; }
  .cftitle { font-weight:800; font-size:14px; margin:6px 0 4px; word-break:break-word; }
  .cfmemo { font-size:12.5px; color:#4a5565; background:#f7f9fc; border-radius:6px; padding:6px 8px; margin-bottom:6px; line-height:1.55; }
  .cffiles { display:flex; flex-direction:column; gap:4px; }
  .cffile { display:flex; align-items:center; gap:6px; border:1px solid #d6e2fb; background:#f5f8ff; color:#1a56db; border-radius:7px;
            padding:6px 9px; font-size:12.5px; font-weight:700; text-decoration:none; word-break:break-all; }
  .cffile:hover { background:#1f3864; color:#fff; border-color:#1f3864; }
  .cffile em { font-style:normal; font-weight:600; opacity:.7; margin-left:auto; white-space:nowrap; }
  .cfold { align-self:flex-start; border:1px dashed #b8c4d8; background:#fff; color:#4a5565; border-radius:7px; padding:4px 10px;
           font-size:12px; font-weight:700; cursor:pointer; font-family:inherit; }
  .cfupbox { width:min(560px, 100%); }
  /* 캐피탈자료실 — 위 로고 단추, 아래 왼쪽 견적기 · 오른쪽 양식 (2026-10-05) */
  .cfcapgrid { display:grid; grid-template-columns:repeat(auto-fill, minmax(118px, 1fr)); gap:6px; margin-bottom:12px; }
  .cflogo em { font-size:10.5px; }
  .cfbar { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:10px; }
  .cfsplit { display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:start; }
  .cfcol { display:flex; flex-direction:column; gap:8px; min-width:0; }
  .cfcolt { font-size:15px; font-weight:800; color:#1a2b48; padding:6px 2px; border-bottom:2px solid #1f3864; }
  .cfcolt i { font-style:normal; font-size:12px; color:#8a97aa; margin-left:4px; }
  .cfhead .cftitle { margin:0; font-size:13.5px; flex:1; min-width:0; }
  @media (max-width: 900px) { .cfsplit { grid-template-columns:1fr; } }
  /* 캐피탈자료실 세 칸 — 견적기 목록 | 양식 목록 | 글 내용 (2026-10-05) */
  #pane-capfiles .cfsplit { grid-template-columns:1fr 1fr 1.25fr; }
  .cfrows { display:flex; flex-direction:column; border:1px solid #e3e8f0; border-radius:8px; overflow:hidden; max-height:620px; overflow-y:auto; }
  .cfrow { display:flex; align-items:center; gap:6px; width:100%; padding:8px 10px; border:0; border-bottom:1px solid #eef1f6;
           background:#fff; text-align:left; cursor:pointer; font:inherit; font-size:13px; color:#1a2b48; }
  .cfrow:last-child { border-bottom:0; } .cfrow:hover { background:#f6f8fc; }
  .cfrow.on { background:#eaf1ff; box-shadow:inset 3px 0 0 #1f3864; font-weight:700; }
  .cfrowt { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .cfrow .cfdate { flex:none; font-size:11px; color:#8a97aa; }
  .cfrowold { flex:none; font-size:10.5px; color:#6b7a90; background:#eef1f6; border-radius:8px; padding:0 5px; }
  .cfviewcol { position:sticky; top:10px; }
  .cfview { border:1px solid #d6deea; border-radius:10px; padding:14px; background:#fbfcfe; }
  .cfvhead { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
  .cfvkind { font-size:12px; font-weight:700; color:#6b7a90; } .cfvhead .cfdel { margin-left:auto; }
  .cfvtitle { margin:8px 0 10px; font-size:16px; color:#1a2b48; word-break:break-all; }
  .cfview .cffiles { display:flex; flex-direction:column; gap:6px; margin-top:10px; }
  .cfvold { margin-top:14px; border-top:1px dashed #d6deea; padding-top:10px; }
  .cfvoldt { font-size:12px; font-weight:700; color:#6b7a90; margin-bottom:6px; }
  .cfvold .cfrow { border:1px solid #eef1f6; border-radius:6px; margin-bottom:4px; color:#6b7a90; }
  @media (max-width: 1100px) { #pane-capfiles .cfsplit { grid-template-columns:1fr 1fr; } #pane-capfiles .cfviewcol { grid-column:1 / -1; position:static; } }
  @media (max-width: 700px) { #pane-capfiles .cfsplit { grid-template-columns:1fr; } }
  /* 특판재고 받아오기 설정 창 (관리자) */
  .cstkgetbox { width:min(560px, 100%); padding-bottom:14px; }
  .cstkgetrow { display:flex; gap:12px; padding:10px 16px; border-bottom:1px solid #eef1f6; font-size:13.5px; align-items:flex-start; }
  .cstkgetrow > span { flex:none; width:120px; color:#6b7a90; font-weight:700; }
  .cstkgetrow.col { flex-direction:column; gap:6px; } .cstkgetrow.col > span { width:auto; }
  .cstkgetrow input { width:100%; padding:7px 9px; border:1px solid #c9d3e1; border-radius:6px; font-size:12.5px; }
  .cstkgetrow small { color:#6b7a90; line-height:1.5; }
  .cstkgetbtns { display:flex; gap:8px; padding:10px 16px; }
  .cstkgetrow .cstkgetbtns { padding:0; }
  .cstkgetbtns button { padding:7px 14px; border:1px solid #c9d3e1; border-radius:6px; background:#fff; cursor:pointer; font-weight:700; }
  .cstkgetbtns button.go { background:#1f3864; color:#fff; border-color:#1f3864; }
  .cstkgetbtns button.cstkstop { background:#c0392b; color:#fff; border-color:#c0392b; }
  .cstkon { color:#1e7d3c; } .cstkoff { color:#c0392b; font-style:normal; }
  .cstkgetmsg { margin:8px 16px 0; padding:8px 10px; background:#f2f6ff; border-radius:6px; font-size:13px; }

  /* 캐피탈자료실 — 목록 15줄 높이 고정 + 쪽 나누기, 수정 창 (2026-10-05) */
  #pane-capfiles .cfrows { height:calc(15 * 38px + 2px); max-height:none; overflow:hidden; }
  #pane-capfiles .cfrow { height:38px; flex:none; box-sizing:border-box; }
  #pane-capfiles .cfrow:last-child { border-bottom:1px solid #eef1f6; }
  #pane-capfiles .cfrows .cnone { padding:20px; }
  #pane-capfiles .cfviewcol .cfview { min-height:calc(15 * 38px + 2px + 32px); box-sizing:border-box; }
  .cfpager { display:flex; justify-content:center; gap:3px; flex-wrap:wrap; min-height:30px; margin-top:4px; }
  .cfpager button { min-width:28px; height:26px; padding:0 6px; border:1px solid #d6deea; border-radius:5px; background:#fff; cursor:pointer; font-size:12px; color:#1a2b48; }
  .cfpager button.on { background:#1f3864; color:#fff; border-color:#1f3864; font-weight:700; }
  .cfpager button:disabled { opacity:.4; cursor:default; }
  .cfvbtns { margin-left:auto; display:flex; gap:4px; }
  .cfvhead .cfvbtns .cfdel { margin-left:0; }
  .cfedit { padding:3px 10px; border:1px solid #1f3864; border-radius:5px; background:#fff; color:#1f3864; font-size:12px; font-weight:700; cursor:pointer; }
  .cfedfiles { display:flex; flex-direction:column; gap:4px; margin:-4px 0 8px; }
  .cfedfile { display:flex; align-items:center; gap:8px; padding:6px 9px; border:1px solid #e3e8f0; border-radius:6px; font-size:13px; }
  .cfedfile span { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .cfedfile em { font-style:normal; color:#8a97aa; font-size:11.5px; }
  .cfedfile button { flex:none; padding:3px 9px; border:1px solid #d6deea; border-radius:5px; background:#fff; cursor:pointer; font-size:12px; }
  .cfedfile.뺌 span { text-decoration:line-through; color:#a9b1bc; } .cfedfile.뺌 { background:#fbf1f0; }
  .cfedfile.새 { background:#f0f8f2; border-color:#cfe8d6; }
  .cfdrop { border:2px dashed #c9d3e1; border-radius:8px; padding:18px 10px; text-align:center; color:#6b7a90; font-size:13px; cursor:pointer; }
  .cfdrop.on, .cfdrop:hover { border-color:#1f3864; background:#f2f6ff; color:#1f3864; }
  .cfdrop small { display:block; margin-top:3px; font-size:11px; }
  @media (max-width: 700px) { #pane-capfiles .cfrows { height:auto; } #pane-capfiles .cfviewcol .cfview { min-height:0; } }

  /* 캐피탈자료실 [전체] */
  .cflogo.cfall b { font-size:15px; color:#1f3864; }
  .cfcapn { flex:none; font-size:11px; font-weight:700; color:#1f3864; background:#eef3fb; border-radius:4px; padding:1px 5px; max-width:90px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

  /* 캐피탈자료실 캐피탈 차례 설정 */
  .cfordtip { padding:6px 16px 10px; font-size:12.5px; color:#6b7a90; }
  .cfordgrid { grid-template-columns:repeat(auto-fill, minmax(130px, 1fr)); }
  .cforditem { text-align:center; }
  .cfordlogo { height:44px; display:flex; align-items:center; justify-content:center; margin-top:14px; }
  .cfordlogo img { max-width:100%; max-height:40px; width:auto; height:auto; object-fit:contain; }
  .cfordname { font-size:12.5px; font-weight:700; color:#1a2b48; margin-top:4px; }

  /* 캐피탈자료실 — 머리 [＋] · 줄마다 삭제 */
  .cfcolt { display:flex; align-items:center; gap:4px; }
  .cfplus { margin-left:auto; width:26px; height:26px; border:1px solid #1f3864; border-radius:6px; background:#1f3864; color:#fff;
            font-size:16px; font-weight:800; line-height:1; cursor:pointer; padding:0; }
  .cfplus:hover { background:#2c4f8c; }
  .cfrowdel { flex:none; border:0; background:none; cursor:pointer; font-size:13px; padding:2px 4px; border-radius:4px; opacity:0; }
  .cfrow:hover .cfrowdel, .cfrow.on .cfrowdel { opacity:.55; }
  .cfrowdel:hover { opacity:1 !important; background:#fbe3e0; }
  @media (hover: none) { .cfrowdel { opacity:.55; } }

  .cfordcnt { font-size:11px; color:#8a97aa; }
  .cforddel { width:100%; margin-top:5px; border:1px solid #f0c9c4; background:#fff; color:#c0392b; border-radius:6px; padding:3px 0; font-size:12px; cursor:pointer; }
  .cforddel:hover { background:#fbe3e0; }
  .cfview .cffiles { margin:0 0 12px; }
  .cfview .cffiles + .cfmemo { border-top:1px solid #e3e8f0; padding-top:12px; }
  #pane-capfiles .cfviewcol { scroll-margin-top:12px; }

  /* 캐피탈자료실 — 가운데 칸 위 사업자등록증 (5줄 고정) · 아래 서류 양식 */
  #pane-capfiles .cfrows.cfrows사 { height:calc(5 * 38px + 2px); }
  .cfcolt.cfcolt2 { margin-top:6px; }
  .faregrp.farebangrp { color:#c0392b; border-top:1px dashed #e8b4ad; margin-top:6px; }

  /* 캐피탈 특판재고 — 왼쪽 재고 · 오른쪽 안내 사진 (2026-10-05) */
  .cstksplit { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:14px; align-items:start; }
  .cstksplit.엑셀 { grid-template-columns:minmax(0, 3fr) minmax(0, 2fr); }
  .cstkright { position:sticky; top:10px; max-height:calc(100vh - 20px); overflow-y:auto; }
  .cstkhalf { display:flex; align-items:center; gap:6px; font-size:15px; font-weight:800; color:#1a2b48;
              padding:6px 2px; border-bottom:2px solid #1f3864; margin-bottom:8px; }
  .cstkhalf i { font-style:normal; font-size:12px; color:#8a97aa; }
  .cstkhalf .cstkorder { margin-left:auto; }
  .cstkguide { display:flex; flex-direction:column; gap:10px; }
  .cstkguide a { display:block; border:1px solid #e3e8f0; border-radius:8px; overflow:hidden; background:#fff; }
  .cstkguide img { display:block; width:100%; height:auto; }
  .cstksetitem.안내 { border-color:#e0a800; background:#fffaf0; }
  .cstksetside { display:flex; gap:4px; margin-top:5px; }
  .cstksetside button { flex:1; border:1px solid #d5dce8; background:#fff; border-radius:6px; padding:3px 0; font-size:11.5px; cursor:pointer; }
  .cstksetside button.on { background:#1f3864; color:#fff; border-color:#1f3864; font-weight:700; }
  .cstksetitem.안내 .cstksetside button.on { background:#e0a800; border-color:#e0a800; }
  @media (max-width: 900px) { .cstksplit, .cstksplit.엑셀 { grid-template-columns:1fr; } .cstkright { position:static; max-height:none; } }

  .xbtn.xall { background:#1f3864; color:#fff; border-color:#1f3864; font-weight:800; }
  .xbtn.xall:hover { background:#2c4f8c; }

  /* 특판재고 표 정리 — 한 줄로, 길면 … (마우스 올리면 전체) · 안내 사진 접기 (2026-10-05) */
  .cstktb td { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:200px; vertical-align:middle; padding:6px 9px; }
  .cstktb th { padding:7px 9px; }
  .cstksplit.엑셀 .cstktb { font-size:12px; }
  .cstksplit.엑셀 .cstktb td { max-width:150px; padding:5px 7px; }
  .cstksplit.엑셀 .cstktb th { padding:6px 7px; }
  .cstkhalf .cstkorder + .cstkguidefold { margin-left:4px; }
  .cstkguidefold { margin-left:auto; border:1px solid #d5dce8; background:#fff; border-radius:6px; padding:3px 9px; font-size:12px; font-weight:700; color:#1f3864; cursor:pointer; }
  .cstkguidefold:hover { background:#f2f6ff; }
  .cstkfoldwrap { display:grid; grid-template-columns:minmax(0, 1fr) 44px; gap:10px; align-items:start; }
  .cstkguideopen { position:sticky; top:10px; display:flex; flex-direction:column; align-items:center; gap:4px; padding:12px 0;
                   border:1px solid #d5dce8; border-radius:8px; background:#f7f9fc; color:#1f3864; cursor:pointer; font-size:16px; }
  .cstkguideopen:hover { background:#eaf1ff; border-color:#1f3864; }
  .cstkguideopen b { font-size:12px; writing-mode:vertical-rl; letter-spacing:2px; }
  .cstkguideopen i { font-style:normal; font-size:10.5px; color:#6b7a90; }
  .cstkguideopen span { font-size:10.5px; writing-mode:vertical-rl; color:#6b7a90; }
  @media (max-width: 900px) { .cstkfoldwrap { grid-template-columns:1fr; } .cstkguideopen { position:static; flex-direction:row; justify-content:center; }
    .cstkguideopen b, .cstkguideopen span { writing-mode:horizontal-tb; } }

  /* 안내 사진 칸 — 좁은 칸이라 탭·크기 줄을 감싸게 */
  .cstkright .cstkphototop { flex-wrap:wrap; gap:6px; }
  .cstkright .cstkzoom input[type=range] { width:80px; }
  /* 재고 사진 칸도 안내처럼 따로 스크롤 — 탭·크기 줄은 칸 위에 붙어 있게 (2026-10-05) */
  .cstksplit:not(.엑셀) .cstkleft { position:sticky; top:10px; max-height:calc(100vh - 20px); overflow-y:auto; }
  .cstksplit .cstkleft .cstkhalf, .cstkright .cstkhalf { position:sticky; top:0; z-index:3; background:#fff; margin-bottom:0; }
  .cstksplit:not(.엑셀) .cstkleft .cstkphototop, .cstkright .cstkphototop { position:sticky; top:38px; z-index:2; background:#fff; padding:6px 0; margin-top:0; }
  /* [▲ 맨 위로] — 칸 아래 가운데에 붙는다 (높이 0 띠 안에서 떠 있음) */
  .맨위띠 { position:sticky; bottom:0; left:0; height:0; z-index:5; pointer-events:none; }
  .맨위띠 button { position:absolute; bottom:14px; left:50%; transform:translate(-50%, 20px); opacity:0; pointer-events:none;
                  padding:7px 16px; border:0; border-radius:999px; background:rgba(31,56,100,.92); color:#fff; font-size:12.5px; font-weight:700;
                  box-shadow:0 4px 14px rgba(15,23,42,.25); cursor:pointer; transition:opacity .2s, transform .2s; white-space:nowrap; }
  .맨위띠.on button { opacity:1; transform:translate(-50%, 0); pointer-events:auto; }
  .맨위띠 button:hover { background:#1f3864; }
  .cstksplit.엑셀 .cstkleft .cstkhalf, .cstkfoldwrap .cstkhalf { margin-bottom:8px; }
  .cstkleftbar { display:flex; margin-bottom:8px; } .cstkleftbar .cstkfind { min-width:0; }
  #cstkBrandSlot { margin-bottom:8px; }
  #pageTop { position:fixed; left:50%; bottom:18px; z-index:40; transform:translate(-50%, 24px); opacity:0; pointer-events:none;
             padding:8px 18px; border:0; border-radius:999px; background:rgba(31,56,100,.92); color:#fff; font-size:13px; font-weight:700;
             box-shadow:0 4px 16px rgba(15,23,42,.28); cursor:pointer; transition:opacity .2s, transform .2s; white-space:nowrap; }
  #pageTop.on { opacity:1; transform:translate(-50%, 0); pointer-events:auto; }
  #pageTop:hover { background:#1f3864; }
  #pane-capfiles .cfrows.cfrows사 { height:calc(2 * 38px + 2px); }

  /* 납기·캐피탈 사진 — 끌어 놓기 · 길게 눌러 저장 막기 */
  img[src*="/capstock/img/"], img[src*="/delivery/img/"] { -webkit-touch-callout:none; -webkit-user-drag:none; user-select:none; -webkit-user-select:none; }

  /* 차종별 기본조건 */
  .bdbtn { margin-left:6px; border:1px solid #c9d3e1; background:#fff; border-radius:6px; padding:2px 9px; font-size:12px; font-weight:700; color:#6b3fa0; cursor:pointer; }
  .bdbtn:hover { background:#f5effc; }
  .bdbox { width:min(900px, 100%); }
  .bdlist { display:flex; flex-direction:column; gap:6px; padding:4px 16px; max-height:60vh; overflow-y:auto; }
  .bdrow { display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:8px; border:1px solid #e3e8f0; border-radius:8px; }
  .bdrow.지남 { background:#f6f6f6; opacity:.7; }
  .bdrow input { border:1px solid #c9d3e1; border-radius:6px; padding:5px 7px; font:inherit; font-size:13px; }
  .bdmodel { width:150px; } .bdmemo { flex:1; min-width:140px; }
  .bdamt { display:flex; align-items:center; gap:3px; font-size:12.5px; } .bdamt input { width:70px; text-align:right; }
  .bdkinds { display:flex; gap:6px; font-size:12.5px; } .bdkinds label { display:flex; align-items:center; gap:2px; }
  .bduntil { display:flex; align-items:center; gap:3px; font-size:12.5px; color:#6b7a90; }
  .bddel { border:0; background:none; cursor:pointer; font-size:14px; }
  .bdadd { padding:8px 16px; } .bdadd button { border:1px dashed #9aa7bb; background:#fff; border-radius:6px; padding:5px 12px; cursor:pointer; font-weight:700; color:#1f3864; }
  .bdbtn.bdbtn2 { margin-left:auto; align-self:center; padding:5px 11px; font-size:12.5px; }

  .dc .dcl .dctot { color:#d0021b; font-weight:800; font-size:13px; white-space:nowrap; }
/* 메모장 낱말 색 — 뒤에 깐 색칠 판 + 투명 글자 textarea */
.memowrap { position:relative; }
.memohl { position:absolute; inset:0; margin:0; overflow-y:scroll; overflow-x:hidden; white-space:pre-wrap; overflow-wrap:break-word;
          word-break:normal; pointer-events:none; min-height:0; resize:none; }   /* 스크롤 막대 폭까지 같아야 줄바꿈이 맞는다 */
.memotext.memoclear { position:relative; z-index:1; background:transparent; color:transparent; caret-color:#1a2b48;
                      white-space:pre-wrap; overflow-wrap:break-word; overflow-y:scroll; }
.memotext.memoclear::selection { background:rgba(26,86,219,.25); color:transparent; }
.memotext.memoclear::placeholder { color:#b0b6bd; }
.memohl .mk-red { color:#d0021b; }      /* 굵게 하면 글자 폭이 달라져 커서가 어긋난다 — 색만 */
.memohl .mk-blue { color:#1a56db; }
.memohl .mk-green { color:#15803d; }
/* 선결제 — 빨간 바탕 흰 글씨 굵게. 글자 폭이 바뀌면 커서가 어긋나므로 굵기는 그림자로, 여백은 box-shadow 로 (자리는 안 차지함) */
.memohl .mk-pay { color:#fff; background:#d0021b; border-radius:3px; box-shadow:0 0 0 2px #d0021b;
                  text-shadow:0.45px 0 0 #fff, -0.2px 0 0 #fff; }
/* 선점·배정·재고도 굵게 — 같은 방법(그림자)으로, 글자 폭은 그대로 */
.memohl .mk-red   { text-shadow:0.45px 0 0 #d0021b, -0.2px 0 0 #d0021b; }
.memohl .mk-blue  { text-shadow:0.45px 0 0 #1a56db, -0.2px 0 0 #1a56db; }
.memohl .mk-green { text-shadow:0.45px 0 0 #15803d, -0.2px 0 0 #15803d; }
/* 메모장 하단 — 자동 색 낱말 안내 */
.memolegend { display:inline-flex; align-items:center; gap:7px; color:#8a93a0; }
.memolegend span { font-weight:800; font-size:12px; }
.memolegend .mk-pay { color:#fff; background:#d0021b; border-radius:3px; padding:0 4px; }
.memolegend .mk-red { color:#d0021b; } .memolegend .mk-blue { color:#1a56db; } .memolegend .mk-green { color:#15803d; }
.memohl .mk-no { color:#000; text-shadow:0.45px 0 0 #000, -0.2px 0 0 #000; }   /* 계약번호 — 검은 굵은 글씨 */
.memolegend .mk-no { color:#000; }

/* 메모장 이름 단추 [?] — 단추 판은 textarea 위, 단추만 마우스를 받는다 */
.memobadges { position:absolute; inset:0; z-index:2; pointer-events:none; overflow:hidden; }
.memobadge { position:absolute; width:13px; height:13px; border-radius:50%; background:#1a56db; color:#fff; font-size:9.5px; font-weight:800;
             line-height:13px; text-align:center; pointer-events:auto; cursor:help; box-shadow:0 1px 3px rgba(0,0,0,.25); }
.memobadge .mbtip { display:none; position:absolute; left:16px; top:-4px; z-index:5; min-width:180px; max-width:320px; padding:8px 10px;
                    background:#1f2937; color:#fff; border-radius:8px; font-size:12.5px; font-weight:500; line-height:1.5; text-align:left;
                    white-space:nowrap; box-shadow:0 6px 18px rgba(0,0,0,.25); }
.memobadge:hover .mbtip { display:block; }
.mbtip1 + .mbtip1 { margin-top:6px; padding-top:6px; border-top:1px solid rgba(255,255,255,.15); }
.mbtip1 b { font-weight:800; } .mbtip1 span { color:#cbd5e1; } .mbtip1 em { display:block; font-style:normal; color:#93c5fd; }
/* 메모장 칸 나누기 (2026-10-05) — 1~3칸, 칸마다 다른 탭 */
.memopanes { display:grid; grid-template-columns:repeat(var(--memo-cols, 3), minmax(0, 1fr)); gap:0; }
.memopane { min-width:0; border-left:1px solid #e6eaf0; display:flex; flex-direction:column; }
.memopane:first-child { border-left:0; }
.memopanehead { display:flex; align-items:center; gap:6px; padding:6px 12px; border-bottom:1px solid #eef1f5; background:#fafbfd;
                font-size:12.5px; font-weight:800; color:#56607a; min-height:30px; box-sizing:border-box; }
.memopane.on .memopanehead { background:#eef4ff; color:#1a56db; box-shadow:inset 0 -2px 0 #1a56db; }
.memopanen { display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; border-radius:50%;
             background:#c9d3e1; color:#fff; font-size:11px; }
.memopane.on .memopanen { background:#1a56db; }
.memopanet { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.memopanest { font-size:11px; font-weight:600; color:#8a93a0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:55%; }
.memopane .memotext { padding:12px 14px; }
.memopane .memotext:disabled { background:transparent; }
.memotab .memotabn { font-style:normal; display:inline-flex; align-items:center; justify-content:center; width:16px; height:16px;
                     border-radius:50%; background:#c9d3e1; color:#fff; font-size:10.5px; font-weight:800; margin-right:4px; }
.memotab.now .memotabn { background:#1a56db; }
.memocols { display:inline-flex; align-items:center; gap:3px; }
.memocols button { border:1px solid #d5dce8; background:#fff; border-radius:5px; padding:1px 7px; font-size:11.5px; font-weight:700; color:#56607a; cursor:pointer; }
.memocols button.on { background:#1a56db; border-color:#1a56db; color:#fff; }
.memolegend .mk-person { color:#1a2b48; } .memolegend .mk-person sup { display:inline-block; width:12px; height:12px; border-radius:50%;
  background:#1a56db; color:#fff; font-size:8.5px; line-height:12px; text-align:center; margin-left:1px; }
@media (max-width: 900px) { .memopanes { grid-template-columns:1fr; } .memopane { border-left:0; border-top:1px solid #e6eaf0; } }
/* 메모장 다섯 칸 — 칸 하나가 메모 하나 (탭 줄 없음) */
.memopane .memotext { padding:10px 11px; font-size:13.5px; }
.memopanehead { background:#f3f6fb; }
.memopanet { cursor:text; color:#1a2b48; font-size:13px; }
.memopanet:hover { color:#1a56db; text-decoration:underline dotted; }
@media (max-width: 1300px) { .memopanes { grid-template-columns:repeat(3, minmax(0, 1fr)); } }
@media (max-width: 900px) { .memopanes { grid-template-columns:1fr; } }
input.memopanet { border:1px solid transparent; background:transparent; border-radius:5px; padding:2px 5px; font:inherit; font-weight:800;
                  font-size:13px; color:#1a2b48; min-width:0; text-decoration:none; }
input.memopanet:hover { border-color:#d5dce8; background:#fff; }
input.memopanet:focus { border-color:#1a56db; background:#fff; outline:none; }
/* 메모장 — 화면 너비·높이를 꽉 채워 다섯 칸 (2026-10-05) */
#pane-memo .card.memo { max-width:none; width:100%; }
#pane-memo .memopanes { grid-template-columns:repeat(var(--memo-cols, 3), minmax(0, 1fr)); }
#pane-memo .memopane .memotext { min-height:calc(100vh - var(--머리높이, 96px) - 120px); }
#pane-memo .memopane .memohl { min-height:0; }
@media (max-width: 1100px) { #pane-memo .memopanes { grid-template-columns:repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { #pane-memo .memopanes { grid-template-columns:1fr; } }
/* 이름 표시 — [?] 대신 점선 밑줄, 밑줄 위에 마우스를 올리면 직급·회사·번호 (2026-10-05) */
.memohl .mk-person { text-decoration:underline dotted #1a56db; text-decoration-thickness:1.5px; text-underline-offset:3px; }
.memobadge { width:auto; height:7px; border-radius:0; background:transparent; box-shadow:none; color:transparent; font-size:0; }
.memobadge:hover { background:rgba(26,86,219,.12); }
.memobadge .mbtip { left:0; top:9px; font-size:12.5px; }
.memolegend .mk-person { text-decoration:underline dotted #1a56db; text-underline-offset:3px; } .memolegend .mk-person sup { display:none; }
/* 이름 표시 — 밑줄 대신 이름 왼쪽 위 작은 * (2026-10-05) */
.memohl .mk-person { text-decoration:none; }
.memobadge { width:8px; height:12px; line-height:12px; font-size:12px; font-weight:800; color:#1a56db; background:transparent; text-align:center; }
.memobadge:hover { background:transparent; color:#d0021b; }
.memobadge .mbtip { left:10px; top:12px; }
.memolegend .mk-person { text-decoration:none; } .memolegend .mk-person sup { display:inline; width:auto; height:auto; background:none; color:#1a56db; font-size:11px; margin-right:1px; }

  /* 공지사항 — 왼쪽 목록 · 오른쪽 내용 (2026-10-05) */
  #pane-notice .card.ntc { max-width:1300px; }
  .ntcsplit { display:grid; grid-template-columns:minmax(0, 2fr) minmax(0, 3fr); gap:16px; align-items:start; }
  .ntcleft .ntctitle { font-size:14px; }
  .ntcleft .ntcitem.open { background:#eaf1ff; box-shadow:inset 3px 0 0 #1f3864; }
  .ntcleft .ntcitem.open .ntctitle { white-space:nowrap; font-weight:800; }
  .ntcleft .ntcstat { font-size:11.5px; color:#8a97aa; white-space:nowrap; }
  .ntcright { position:sticky; top:10px; border:1px solid #e3e8f0; border-radius:10px; background:#fbfcfe; min-height:300px;
              max-height:calc(100vh - 20px); overflow-y:auto; scroll-margin-top:12px; }
  .ntcright .ntcview { padding:16px 18px; }
  .ntcvhead { display:flex; align-items:flex-start; gap:8px; }
  .ntcvhead h3 { flex:1; margin:0; font-size:18px; color:#1a2b48; word-break:break-word; }
  .ntcvmeta { margin:6px 0 14px; font-size:12px; color:#8a97aa; padding-bottom:10px; border-bottom:1px solid #e3e8f0; }
  @media (max-width: 860px) { .ntcsplit { grid-template-columns:1fr; } .ntcright { position:static; max-height:none; } }
  /* 공지 내용 칸 더 크게 — 목록 1 : 내용 2.3, 높이도 넉넉히 */
  #pane-notice .card.ntc { max-width:1500px; }
  .ntcsplit { grid-template-columns:minmax(300px, 1fr) minmax(0, 2.3fr); }
  .ntcright { min-height:calc(100vh - var(--머리높이, 96px) - 140px); }
  .ntcright .ntcview { padding:20px 26px; }
  .ntcright .ntctext { font-size:15px; line-height:1.8; }
  @media (max-width: 860px) { .ntcsplit { grid-template-columns:1fr; } .ntcright { min-height:0; } }
  /* 공지 — 칸 안 스크롤 없이 페이지 하나로 다 보이게, 제목도 줄이지 않고 다 (2026-10-05) */
  .ntcright { position:static; max-height:none; overflow:visible; }
  .ntcleft .ntctitle, .ntcleft .ntcitem.open .ntctitle { white-space:normal; overflow:visible; text-overflow:clip; word-break:break-word; }
  .ntcleft .ntcrow { align-items:flex-start; flex-wrap:wrap; }

  /* 월별 한눈에 — 계산식 · 퍼센트 설정 */
  .stb.stset { margin-left:8px; }
  .stformula { margin-top:12px; padding:12px 14px; border:1px solid #e3e8f0; border-radius:8px; background:#fafbfd; font-size:13px; line-height:1.8; color:#3b4b63; }
  .stformula > b { color:#1a2b48; } .stformula small { display:block; color:#8a97aa; margin-top:4px; }
  .stformula .나갈 { color:#c0392b; font-weight:800; } .stformula .mine { color:#1a56db; font-weight:800; } .stformula .순 { color:#15803d; font-weight:800; }
  .strbox { width:min(440px, 100%); }
  .strform { padding:14px 18px; display:flex; flex-direction:column; gap:12px; }
  .strform label { display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:14px; }
  .strform input { width:80px; padding:6px 8px; border:1px solid #c9d3e1; border-radius:6px; font:inherit; text-align:right; }
  .strform small { color:#8a97aa; line-height:1.5; }
  .strform .나갈 { color:#c0392b; font-weight:800; } .strform .mine { color:#1a56db; font-weight:800; }

  .strsep { border-top:1px dashed #d6deea; }
  .strform select { padding:5px 7px; border:1px solid #c9d3e1; border-radius:6px; font:inherit; }
  .strform input[type=checkbox] { width:auto; }
  .strprev { padding:10px 12px; background:#f2f6ff; border-radius:8px; font-size:13px; line-height:1.7; color:#1a2b48; }
  .strprev span { color:#3b4b63; }
  /* 정산 월별 — 요율 칸 */
  .stmtb .prgr { text-align:center; white-space:nowrap; font-size:12px; color:#56607a; font-variant-numeric:tabular-nums; }
  .stmtb th.prgr { font-size:11.5px; }
  .stmtb .prgr i { font-style:normal; color:#b45309; font-weight:700; }
  .stmtb .prgr.나갈 { color:#c0392b; } .stmtb .prgr.mine { color:#1a56db; }

  .stmtb .stcode { display:block; font-style:normal; font-size:11px; color:#8a97aa; font-family:Consolas, monospace; letter-spacing:.2px; }
  .stmtb .strate { display:block; font-style:normal; font-size:11px; font-weight:600; color:#8a97aa; }
  .stmtb td.나갈 .strate { color:#d98a80; } .stmtb td.mine .strate { color:#7d9fe0; }

  .stmtb .strate { white-space:nowrap; font-size:10.5px; letter-spacing:-.1px; font-variant-numeric:tabular-nums; }
  /* 계산식 글자색을 표 머리와 같게 — 지급 빨강 · 나올 초록 · 순수익 파랑 */
  .stformula .나갈 { color:#c0392b; } .stformula .mine { color:#0b7f58; } .stformula .순 { color:#1a56db; }
  .stmtb td.mine .strate { color:#5fae8f; }
  .price .add.gap, .add.gap { color:#8a6d1f; background:#fff8e1; border-radius:4px; padding:0 4px; font-size:11px; }
.cr3cdate.결제 { color:#0b7f58; }
.cr3cdate.결제 b { font-size:9px; font-weight:800; margin-right:1px; background:#e6f6ee; border-radius:3px; padding:0 2px; }

/* ── CR3업무 촘촘하게 (2026-10-07 사장님: 글씨 줄여도 한눈에 다 보이게) ── */
#pane-cr3 .cr3bar { gap:5px; margin-bottom:5px; }
#pane-cr3 .cr3bar2 { gap:5px; margin:-1px 0 5px; }
#pane-cr3 .cr3add, #pane-cr3 .cr3more { padding:5px 10px; border-radius:7px; font-size:11.5px; }
#pane-cr3 .cr3filt { padding:4px 7px; border-radius:7px; font-size:11.5px; }
#pane-cr3 .cr3mon { padding:3px 6px; border-radius:6px; font-size:10.5px; }
#pane-cr3 table.cr3xl { font-size:11.5px; min-width:960px; }
#pane-cr3 .cr3xl th { padding:2px 4px; }
#pane-cr3 .cr3xl th .h1 { font-size:10.5px; }
#pane-cr3 .cr3xl th .h2 { margin-top:0; font-size:9.5px; }
#pane-cr3 .cr3ln { height:21px; padding:0 2px; gap:1px; }
#pane-cr3 .cr3ln.flip { min-height:21px; padding:1px 3px; }
#pane-cr3 .cr3in, #pane-cr3 .cr3xl select { padding:1px 3px; font-size:11.5px; }
#pane-cr3 .cr3in.tight { padding:1px 2px; }
#pane-cr3 .cr3in.tight.wide { padding-left:3px; }
#pane-cr3 .cr3in.moneyfix { width:76px; }
#pane-cr3 .cr3kr { font-size:10px; line-height:1.25; }
#pane-cr3 .cr3pul { font-size:9.5px; line-height:1.25; }
#pane-cr3 .cr3side { padding-left:3px; font-size:9.5px; }
#pane-cr3 .cr3cdate { font-size:10px; padding:0 2px; }
#pane-cr3 .cr3short, #pane-cr3 .cr3flip, #pane-cr3 .cr3vat { height:16px; font-size:9px; }
#pane-cr3 .cr3flip { width:16px; }
#pane-cr3 .cr3rate { padding:0 3px; font-size:9.5px; }
#pane-cr3 .cr3xl th.cr3no, #pane-cr3 .cr3xl td.cr3no { font-size:10px; padding-top:3px; }
#pane-cr3 .cr3xl td.cr3del { padding:1px 1px 0; }
#pane-cr3 .cr3del button { width:18px; height:18px; }
/* 계약(줄)마다 구분선 진하게 (2026-10-07) */
#pane-cr3 .cr3xl td { border-bottom:1px solid #b9c3d0; }
#pane-cr3 .cr3xl tbody tr:last-child td { border-bottom:0; }
/* AG 곁글 — 전화번호는 다 보이고, 직급·회사만 줄어든다 (2026-10-07) */
#pane-cr3 .cr3side:has(.cr3sidet) { display:flex; justify-content:flex-end; min-width:0; text-overflow:clip; }
.cr3sidef { flex:0 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cr3sidet { flex:0 0 auto; white-space:nowrap; color:#56607a; font-weight:700; }

/* 가입 창 회사명 찾기 (2026-10-07) */
.ucobox { position:relative; }
.ucobox #uCo { width:100%; box-sizing:border-box; }
.ucolist { position:absolute; left:0; right:0; top:100%; z-index:30; margin-top:2px; max-height:220px; overflow:auto;
           background:#fff; border:1px solid #cdd5df; border-radius:8px; box-shadow:0 6px 18px rgba(20,40,80,.14); }
.ucoi { padding:8px 11px; font-size:13.5px; font-weight:700; color:#1a2b48; cursor:pointer; }
.ucoi small { font-weight:600; color:#8a93a0; }
.ucoi:hover, .ucoi.on { background:#eef4ff; color:#1a56db; }
.ucohint { min-height:0; font-size:11.5px; color:#b45309; margin:2px 2px 4px; }
.ucohint:empty { display:none; }

/* ── 랭킹 (2026-10-07) ── */
.rkhead { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.rkhead h2 { margin:0 6px 0 0; }
.rkchips { display:inline-flex; gap:3px; padding:3px; background:#f1f4f8; border-radius:9px; }
.rkchips button { padding:5px 11px; border:0; border-radius:7px; background:transparent; color:#667;
  font-family:inherit; font-size:12.5px; font-weight:800; cursor:pointer; }
.rkchips button.on { background:#1a2b48; color:#fff; }
.rkme { padding:10px 13px; margin-bottom:12px; border-radius:10px; background:#f4f8ff; border:1px solid #dbe6fb;
  font-size:13px; font-weight:700; color:#1a2b48; }
.rkme .rkbig { font-size:16px; font-weight:900; color:#1a56db; }
.rkme .rkdim { color:#8a93a0; }
.rkme .rksep { color:#c7cfda; margin:0 4px; }
.rkgrid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:820px){ .rkgrid { grid-template-columns:1fr; } }
.rkbox h3 { margin:0 0 6px; font-size:14px; font-weight:800; }
.rkbox h3 small { font-size:11.5px; color:#8a93a0; font-weight:700; }
.rktb { width:100%; border-collapse:collapse; font-size:13px; font-variant-numeric:tabular-nums; }
.rktb th { padding:6px 8px; font-size:11.5px; color:#8a93a0; font-weight:800; text-align:left;
  background:#f7f9fc; border-bottom:1px solid #e3e7ec; }
.rktb td { padding:6px 8px; border-bottom:1px solid #eef0f3; }
.rktb .c { text-align:center; width:48px; }
.rktb .r { text-align:right; white-space:nowrap; }
.rktb th.on { color:#1a56db; }
.rktb td.on { font-weight:800; color:#1a2b48; }
.rktb tr.top .rkno { font-size:16px; }
.rktb .rkno { font-weight:800; color:#8a93a0; }
.rktb tr.me td { background:#fff8e1; }
.rktb .rkanon { color:#a9b1bc; font-weight:600; }
.rktag { display:inline-block; padding:0 6px; border-radius:5px; background:#1a56db; color:#fff;
  font-size:11px; font-weight:800; line-height:18px; }
.rkempty { padding:28px; text-align:center; color:#99a; font-size:13px; }
.rknote { margin:12px 2px 0; font-size:11.5px; color:#a9b1bc; font-weight:600; }
.rksu { color:#0b7f58; }
.rktb td.rksu.on { color:#0b7f58; }
.rkmon { padding:6px 9px; border:1px solid #d8dee6; border-radius:9px; background:#fff; color:#556;
  font-family:inherit; font-size:12.5px; font-weight:800; cursor:pointer; }
.rkmon.on { background:#1a2b48; border-color:#1a2b48; color:#fff; }
.rktb .rkanon { color:#56607a; font-weight:700; }
.rkadm { display:inline-block; margin-right:6px; padding:1px 7px; border-radius:5px; background:#c0392b; color:#fff; font-size:11px; font-weight:800; }
/* 랭킹 — 폭을 묶지 않는다 (.pane .card 620px 제한 풀기), 칸 안은 줄바꿈 없이 (2026-10-07) */
#pane-rank .card { max-width:none; }
.rktb th, .rktb td { white-space:nowrap; }
.rkbox { min-width:0; overflow-x:auto; }
.rkhead { flex-wrap:nowrap; overflow-x:auto; }
.rkme { white-space:nowrap; overflow-x:auto; }
/* 랭킹 왼쪽 · 통계 오른쪽 (2026-10-07) */
.rkgrid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; }
@media (max-width:1100px){ .rkgrid { grid-template-columns:1fr; } }
.rkside { display:flex; flex-direction:column; gap:14px; min-width:0; }
.rkside-h { font-size:15px; font-weight:900; color:#1a2b48; padding-bottom:6px; border-bottom:2px solid #1a2b48; }
.rkpct { color:#8a93a0; font-size:12px; }
.rkbar { display:inline-block; width:56px; height:6px; margin-right:6px; vertical-align:1px; background:#eef2f7;
  border-radius:3px; overflow:hidden; }
.rkbar i { display:block; height:100%; background:#1a56db; border-radius:3px; }
.rkmons { display:flex; align-items:center; gap:3px; flex-wrap:wrap; margin:-2px 0 10px; }
.rkmons button { min-width:42px; padding:5px 8px; border:1px solid #e3e8ef; border-radius:8px; background:#fff;
  color:#56607a; font-family:inherit; font-size:12px; font-weight:800; cursor:pointer; }
.rkmons button:hover { border-color:#8fb0ea; color:#1a56db; }
.rkmons button.on { background:#1a2b48; border-color:#1a2b48; color:#fff; }
.rkmons button.빔 { color:#cfd5dd; }
.rkyrs { display:inline-flex; gap:3px; margin-right:6px; padding-right:8px; border-right:1px solid #e3e8ef; }
.rkyr1 { margin-right:6px; font-size:12px; font-weight:800; color:#8a93a0; }
.rkmons .rkall { margin-right:6px; }
.rkmons button.해고름 { border-color:#1a2b48; color:#1a2b48; }
.rktb th.rksort { cursor:pointer; user-select:none; }
.rktb th.rksort:hover { color:#1a56db; }
.rkco { margin-left:3px; padding:0 6px; border-radius:5px; background:#f1f4f8; color:#8a93a0; font-size:11px; font-weight:700; line-height:18px; display:inline-block; }
.rkrank { margin-left:2px; color:#4a5568; font-size:12px; font-weight:600; }  /* 관리자만 보는 직급 (2026-10-11) */
/* 랭킹 쪽 나누기 — 10줄씩 (2026-10-07) */
.rkpage { display:flex; justify-content:center; flex-wrap:wrap; gap:3px; margin-top:8px; }
.rkpage button { min-width:28px; height:26px; padding:0 7px; border:1px solid #dfe4eb; border-radius:6px; background:#fff;
  color:#56607a; font-family:inherit; font-size:12px; font-weight:800; cursor:pointer; }
.rkpage button:hover:not(:disabled) { border-color:#1a56db; color:#1a56db; }
.rkpage button.on { background:#1a2b48; border-color:#1a2b48; color:#fff; }
.rkpage button:disabled { opacity:.35; cursor:default; }
/* 랭킹&이벤트 — 이벤트 띠 · 상품 표시 (2026-10-07) */
.rkevent { display:flex; align-items:center; gap:10px; padding:10px 14px; margin-bottom:10px; border-radius:10px;
  background:linear-gradient(90deg,#fff4e0,#fffaf0); border:1px solid #f5d9a8; font-size:13.5px; color:#5a3b00; }
.rkevent .rkev-ic { font-size:22px; }
.rkevent .rkev-hl { color:#d9480f; }
.rkevent small { display:block; margin-top:2px; font-size:11.5px; color:#9a7a45; font-weight:600; }
.rkgift { display:inline-block; padding:0 6px; border-radius:5px; background:#fff0d9; border:1px solid #f5c77e;
  color:#c05600; font-size:11px; font-weight:800; line-height:17px; white-space:nowrap; }
/* 대화방 왼쪽 — 접속 중인 사람 (2026-10-07) */
.chwrap { display:flex; gap:12px; align-items:flex-start; }
.chwrap > .card.chat { flex:1 1 auto; min-width:0; margin:0; }
.chon { flex:0 0 170px; height:calc(100vh - var(--머리높이, 96px) - 40px); min-height:420px; display:flex; flex-direction:column;
  background:#fff; border:1px solid #e3e7ec; border-radius:14px; overflow:hidden; }
.chon-h { padding:14px 14px 10px; border-bottom:1px solid #eef1f5; font-size:13.5px; font-weight:800; color:#1a2b48; }
.chon-h b { color:#12b886; }
.chon-l { flex:1 1 auto; overflow-y:auto; padding:6px 0; }
.chon-p { display:flex; align-items:center; gap:7px; padding:5px 14px; font-size:13px; font-weight:700; color:#33415c;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.chon-p i { flex:0 0 7px; height:7px; border-radius:50%; background:#12b886; }
.chon-p.me { background:#f4f8ff; }
.chon-p small { font-size:10.5px; color:#1a56db; font-weight:800; }
.chon-x { padding:6px 14px; font-size:12px; color:#8a93a0; }
.chonm { display:none; margin-left:auto; font-size:12px; color:#33415c; font-weight:700; }
.chonm b { color:#12b886; }
@media (max-width:760px){
  .chon { display:none; }
  .chonm { display:inline; }
  .chwrap { display:block; }
}
/* 메뉴 대화방(3) — 접속 인원 (2026-10-07) */
.tabb .접속수 { margin-left:1px; font-size:.86em; font-weight:800; color:#12b886; }
.chon .who { cursor:help; }
.chon .chon-p.who:hover { background:#eef4ff; }
.chon-h { display:flex; align-items:center; gap:4px; }
.chon-re { margin-left:auto; width:26px; height:26px; border:1px solid #dfe4eb; border-radius:7px; background:#fff;
  color:#56607a; font-size:14px; font-weight:800; line-height:1; cursor:pointer; }
.chon-re:hover { border-color:#1a56db; color:#1a56db; }
.chon-re.돎 { animation:chonspin .4s linear; }
@keyframes chonspin { to { transform:rotate(360deg); } }

/* ── 용품점 (2026-10-07) ── */
#pane-shop .card { max-width:none; }
.shhead { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
.shhead h2 { margin:0 6px 0 0; }
.shkinds, .shsi { display:flex; flex-wrap:wrap; gap:4px; }
.shkinds button, .shsi button { padding:4px 10px; border:1px solid #dfe4eb; border-radius:999px; background:#fff; color:#56607a;
  font-family:inherit; font-size:12.5px; font-weight:800; cursor:pointer; }
.shkinds button i, .shsi button i { font-style:normal; color:#a0a8b4; font-size:11px; }
.shkinds button.on, .shsi button.on { background:#1a2b48; border-color:#1a2b48; color:#fff; }
.shkinds button.on i, .shsi button.on i { color:#cdd6e4; }
.shq { margin-left:auto; width:220px; padding:7px 10px; border:1px solid #dfe4eb; border-radius:8px; font-family:inherit; font-size:13px; }
.shgrid { display:grid; grid-template-columns:minmax(260px, 400px) minmax(0, 1fr); gap:18px; align-items:start; }
@media (max-width:860px){ .shgrid { grid-template-columns:1fr; } .shmap { max-width:360px; margin:0 auto; } .shq { margin-left:0; width:100%; } }
.shmap { position:sticky; top:12px; padding:10px; background:#f4f8fc; border:1px solid #e3e9f1; border-radius:14px; }
.krmap { display:block; width:100%; height:auto; }
.krmap g { --f:#dfe7f1; cursor:pointer; }
.krmap g.있음 { --f:#b9d0ee; }
.krmap g:hover { --f:#8fb4e6; }
.krmap g.on { --f:#1a56db; }
.krmap g path { fill:var(--f); stroke:#fff; stroke-width:1.2; stroke-linejoin:round; transition:fill .15s; }
.krmap g path.m { stroke:var(--f); stroke-width:.6; }
.krmap .krl { font-size:12.5px; font-weight:900; fill:#1a2b48; text-anchor:middle; cursor:pointer; paint-order:stroke;
  stroke:#ffffffcc; stroke-width:3px; }
.krmap .krl .krn { font-size:11px; font-weight:800; fill:#1a56db; }
.krmap .krl.on { fill:#fff; stroke:#1a56db; }
.krmap .krl.on .krn { fill:#dbe8ff; }
.shall { display:block; margin:8px auto 0; padding:5px 14px; border:1px solid #cfd8e4; border-radius:999px; background:#fff;
  font-family:inherit; font-size:12.5px; font-weight:800; color:#33415c; cursor:pointer; }
.shtitle { font-size:16px; color:#1a2b48; margin-bottom:8px; display:flex; align-items:center; gap:8px; }
.shtitle span { font-size:13px; color:#8a93a0; font-weight:700; }
.shback { padding:2px 9px; border:1px solid #dfe4eb; border-radius:7px; background:#fff; font-family:inherit; font-size:11.5px; color:#56607a; cursor:pointer; }
.shsi { margin-bottom:10px; }
.shrow { padding:11px 13px; margin-bottom:8px; border:1px solid #e6eaf0; border-radius:11px; background:#fff; }
.shrow:hover { border-color:#c9d6ea; }
.shn { display:flex; align-items:center; flex-wrap:wrap; gap:5px; font-size:14.5px; color:#1a2b48; }
.shk, .shdo, .shsg { padding:0 6px; border-radius:5px; font-size:11px; font-weight:800; line-height:18px; }
.shk { background:#eef3ff; color:#1a56db; }
.shdo { background:#f1f4f8; color:#56607a; }
.shsg { background:#f6f7f9; color:#7a8494; }
.shjh { padding:0 7px; border-radius:5px; background:#e9f9f1; color:#0f8a5f; font-size:11.5px; font-weight:800; line-height:19px; }
.shfix { margin-left:auto; padding:2px 9px; border:1px solid #dfe4eb; border-radius:7px; background:#fff; font-family:inherit;
  font-size:11.5px; color:#56607a; cursor:pointer; }
.sha { margin-top:5px; font-size:12.5px; color:#56607a; }
.sha a { margin-left:4px; font-size:11.5px; font-weight:800; color:#1a56db; text-decoration:none; }
.shp { display:flex; flex-wrap:wrap; gap:12px; margin-top:4px; font-size:12.5px; color:#56607a; }
.shp a { color:#1a2b48; font-weight:800; text-decoration:none; }
.shmemo { margin-top:6px; padding:5px 8px; border-radius:7px; background:#fffbea; font-size:12px; color:#7a5d00; }
.shempty { padding:40px 10px; text-align:center; color:#99a; font-size:13.5px; line-height:1.8; }
.shed { width:min(560px, 94vw); }
.shedgrid { display:grid; grid-template-columns:1fr 1fr; gap:8px 10px; margin:10px 0 6px; }
.shedgrid label { display:flex; flex-direction:column; gap:3px; font-size:12px; font-weight:800; color:#56607a; }
.shedgrid label.wide { grid-column:1 / -1; }
.shedgrid input, .shedgrid select, .shedgrid textarea { padding:7px 9px; border:1px solid #dfe4eb; border-radius:8px;
  font-family:inherit; font-size:13.5px; font-weight:500; color:#1a2b48; background:#fff; }
.shed .mbtns { display:flex; gap:6px; justify-content:flex-end; margin-top:8px; }
.shed .shdel { margin-right:auto; color:#d6336c; }
/* 준비 중 화면 — 제휴문의 (2026-10-07) */
.filesoon .soonq { margin-top:14px; display:inline-block; padding:7px 16px; border-radius:999px; background:#f1f5fb;
  color:#33415c; font-size:13.5px; font-weight:700; }
.filesoon .soonq a { color:#1a56db; font-weight:900; text-decoration:none; margin-left:4px; }
/* 용품점 상세 지역 고르기 (2026-10-07) */
.sharea { display:flex; flex-direction:column; gap:12px; }
.shallarea { align-self:flex-start; padding:7px 14px; border:1px solid #1a2b48; border-radius:9px; background:#1a2b48; color:#fff;
  font-family:inherit; font-size:13px; font-weight:800; cursor:pointer; }
.shallarea i { font-style:normal; color:#cdd6e4; margin-left:3px; }
.sharea-h { margin-bottom:6px; font-size:13px; font-weight:900; color:#1a2b48; padding-left:2px; border-left:3px solid #1a56db; padding-left:7px; }
.sharea-b { display:grid; grid-template-columns:repeat(auto-fill, minmax(92px, 1fr)); gap:5px; }
.sharea-b button { padding:8px 4px; border:1px solid #dfe4eb; border-radius:9px; background:#fff; color:#1a2b48;
  font-family:inherit; font-size:13px; font-weight:800; cursor:pointer; white-space:nowrap; }
.sharea-b button:hover { border-color:#1a56db; color:#1a56db; background:#f4f8ff; }
.sharea-b button i { font-style:normal; margin-left:2px; padding:0 5px; border-radius:999px; background:#1a56db; color:#fff; font-size:11px; }
.sharea-b button.빔 { color:#8a93a0; font-weight:600; }
.shsi > .sharea { flex:1 1 100%; min-width:0; }
/* 등록대행사 지도 · 목록 탭 (2026-10-07) */
.agytabs { display:inline-flex; gap:3px; padding:3px; margin:4px 0 8px; background:#f1f4f8; border-radius:9px; }
.agytabs button { padding:6px 14px; border:0; border-radius:7px; background:transparent; color:#667; font-family:inherit;
  font-size:13px; font-weight:800; cursor:pointer; }
.agytabs button.on { background:#1a2b48; color:#fff; }
.agymapgrid { margin-top:10px; }
.shp .shmapl { color:#1a56db; font-weight:700; }
/* 등록대행사 고치기 · 목록 머리 위로 (2026-10-07) */
.agyadd { margin-left:auto; padding:5px 12px; font-size:12.5px; }
#agyBox > .subhead { display:flex; align-items:center; gap:8px; }
.agylistwrap { margin-top:8px; }
.agyfix { width:60px; text-align:right; }
/* 용품점 지도 · 목록 탭 (2026-10-07) */
.shhead .agytabs { margin:0; }
#shListView .agyname .shk, #shListView .agyname .shjh { margin-left:3px; vertical-align:1px; }
/* 용품점 · 등록대행사 같은 머리 (2026-10-07) */
.dirhead { margin-bottom:12px; }
.dirtop { display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.dirtop h2 { margin:0; font-size:18px; font-weight:900; color:#1a2b48; }
.dirtop .dirn { margin-left:4px; font-size:13px; font-weight:700; color:#8a93a0; }
.dirtop .diradd { margin-left:auto; padding:6px 13px; font-size:13px; }
.dirbar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.dirbar .agytabs { margin:0; }
.dirq { margin-left:auto; width:260px; box-sizing:border-box; padding:8px 11px; border:1px solid #dfe4eb; border-radius:9px;
  font-family:inherit; font-size:13.5px; background:#fff; }
@media (max-width:760px){ .dirq { margin-left:0; width:100%; } }
#agyBox .shgrid, #agyBox .agywrap, #pane-shop .agywrap { margin-top:0; }
/* 지도 명부 목록 보기 — 도 → 묶음 → 지역 (2026-10-07) */
.mlist .mitem.빔 { opacity:.45; }
.dtop { display:flex; align-items:center; flex-wrap:wrap; gap:8px; padding:2px 2px 10px; border-bottom:2px solid #1a2b48; margin-bottom:10px; }
.dtop b { font-size:16px; color:#1a2b48; }
.dtop > span { font-size:12.5px; color:#8a93a0; font-weight:700; }
.djump { display:flex; gap:4px; margin-left:auto; flex-wrap:wrap; }
.djump button { padding:4px 11px; border:1px solid #dfe4eb; border-radius:999px; background:#fff; color:#1a2b48;
  font-family:inherit; font-size:12.5px; font-weight:800; cursor:pointer; }
.djump button:hover { border-color:#1a56db; color:#1a56db; }
.djump button i { font-style:normal; color:#1a56db; margin-left:2px; }
.dsec { margin-bottom:16px; }
.dsec-h { padding:6px 2px; margin-bottom:6px; font-size:15px; font-weight:900; color:#1a2b48; border-bottom:2px solid #1a2b48; }
.dsec-h span { font-size:12px; color:#8a93a0; font-weight:700; margin-left:4px; }
.dgrp { margin-bottom:12px; scroll-margin-top:70px; }
.dgrp-h { display:inline-block; margin:2px 0 5px; padding:2px 10px; border-radius:6px; background:#eef3ff;
  font-size:12.5px; font-weight:900; color:#1a56db; }
.dgrp-h span { color:#7d97d6; font-weight:700; margin-left:2px; }
.dtbl td.agyarea { width:110px; font-weight:800; color:#33415c; }
.dtbl tr.이어 td { border-top-color:transparent; }
.dtbl tr.이어 td.agyarea { color:transparent; }
.dtbl { width:100%; max-width:760px; }
.dtbl td.agyphone { width:150px; text-align:left; }
.dtbl td.agyfix { width:64px; }
.agymain .dsec, .agymain .dtop { max-width:760px; }
/* 등록 요청 · 요청함 (2026-10-07) */
.dirtop .dirreq { margin-left:auto; padding:6px 13px; font-size:13px; background:#fff7e6; border:1px solid #f5d9a8; color:#8a5300; }
.dirtop .dirinbox { margin-left:auto; padding:6px 13px; font-size:13px; }
.dirtop .dirinbox + .diradd { margin-left:6px; }
.dirinbox .rqn { display:inline-block; min-width:18px; padding:0 5px; margin-left:3px; border-radius:999px; background:#e03131;
  color:#fff; font-size:11px; line-height:18px; text-align:center; }
.rqmine { margin-top:8px; max-height:150px; overflow:auto; }
.rqmine-h { font-size:12px; font-weight:800; color:#8a93a0; margin-bottom:4px; }
.rqmine-r { font-size:12.5px; color:#33415c; padding:3px 0; border-bottom:1px solid #f1f3f6; }
.rqmine-r small { color:#8a93a0; }
.rqst { display:inline-block; padding:0 7px; border-radius:5px; font-size:11px; font-weight:800; line-height:18px; background:#eef1f5; color:#56607a; }
.rqst.w { background:#fff4e0; color:#c05600; }
.rqst.ok { background:#e9f9f1; color:#0f8a5f; }
.rqst.no { background:#fdecee; color:#c92a2a; }
.modal.rqlist { width:min(720px, 95vw); }
.rqchips { display:flex; flex-direction:column; gap:6px; margin:8px 0 10px; }
.rqchips > div { display:flex; flex-wrap:wrap; gap:4px; }
.rqchips button { padding:4px 11px; border:1px solid #dfe4eb; border-radius:999px; background:#fff; color:#56607a;
  font-family:inherit; font-size:12.5px; font-weight:800; cursor:pointer; }
.rqchips button.on { background:#1a2b48; border-color:#1a2b48; color:#fff; }
.rqchips button i { font-style:normal; opacity:.7; margin-left:2px; }
.rqitems { max-height:60vh; overflow:auto; display:flex; flex-direction:column; gap:8px; }
.rqitem { padding:10px 12px; border:1px solid #e6eaf0; border-radius:10px; background:#fff; }
.rqi-h { display:flex; align-items:center; flex-wrap:wrap; gap:6px; font-size:14px; color:#1a2b48; }
.rqi-t { margin-left:auto; font-size:11.5px; color:#8a93a0; }
.rqi-b { margin-top:4px; font-size:12.5px; color:#56607a; }
.rqi-m { margin-top:4px; padding:5px 8px; border-radius:7px; background:#f7f9fc; font-size:12.5px; color:#33415c; white-space:pre-wrap; }
.rqi-who { margin-top:5px; font-size:12.5px; color:#33415c; }
.rqi-done { margin-top:3px; font-size:11.5px; color:#8a93a0; }
.rqi-btns { display:flex; gap:6px; justify-content:flex-end; margin-top:6px; }
.rqi-btns .btn { padding:4px 12px; font-size:12.5px; }
/* 단계별 정산 — 나갈 · 들어올 수당 계산식 (2026-10-07) */
.sttb .strate { display:block; font-style:normal; font-size:10.5px; font-weight:600; color:#8a97aa; white-space:nowrap;
  letter-spacing:-.1px; font-variant-numeric:tabular-nums; }
.sttb td.나갈 .strate { color:#d98a80; } .sttb td.mine .strate { color:#7d9fe0; }
/* 회사별 정산 (2026-10-07) */
#stCompany .stb.빔 { opacity:.45; }
.stco-sum { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:10px 0; padding:9px 13px; border-radius:10px;
  background:#f4f8ff; border:1px solid #dbe6fb; font-size:13px; color:#1a2b48; }
.stco-sum span { color:#56607a; font-weight:700; }
.stco-sum span.순 b { color:#0f8a5f; font-size:15px; }
.stco .r { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.stco th i { display:block; font-style:normal; font-size:10.5px; font-weight:600; opacity:.7; }
.stco td.나갈 { color:#c0392b; } .stco td.mine { color:#1a56db; } .stco td.순 b { color:#0f8a5f; }
.stco-r { cursor:pointer; }
.stco-r:hover td { background:#f6f9ff; }
.stco-r.on td { background:#eef4ff; font-weight:700; }
.stco-n { font-weight:800; color:#1a2b48; white-space:nowrap; }
.stco-ar { display:inline-block; width:12px; color:#8a93a0; }
.stco tfoot td { font-weight:900; border-top:2px solid #1a2b48; background:#f7f9fc; }
.stco-in > td { background:#fbfcfe; padding:4px 8px 10px; }
.stco-sub { width:100%; border-collapse:collapse; font-size:12px; }
.stco-sub th { padding:4px 6px; font-size:11px; color:#8a93a0; font-weight:800; text-align:left; border-bottom:1px solid #e3e7ec; }
.stco-sub td { padding:4px 6px; border-bottom:1px solid #f0f2f5; white-space:nowrap; }
.stco-sub td small { color:#8a93a0; }
.stco-sub .r { text-align:right; }
.stco-sub td.나갈 { color:#c0392b; } .stco-sub td.mine { color:#1a56db; } .stco-sub td.순 { color:#0f8a5f; font-weight:700; }
.stco-note { margin:10px 2px 0; font-size:11.5px; color:#a9b1bc; }
.stco .c { text-align:center; }
.stco-x { display:inline-block; padding:3px 9px; border:1px solid #b7e1c8; border-radius:7px; background:#effaf3; color:#0f8a5f;
  font-size:12px; font-weight:800; text-decoration:none; white-space:nowrap; }
.stco-x:hover { background:#0f8a5f; border-color:#0f8a5f; color:#fff; }
/* 회사별 정산 — 회사마다 정산서 꼴 카드 (2026-10-07) */
.stco-card { margin-bottom:16px; border:1px solid #e3e7ec; border-radius:12px; overflow:hidden; background:#fff; }
.stco-h { display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:9px 13px; background:#f7f9fc; border-bottom:1px solid #e3e7ec; }
.stco-h > b { font-size:15px; color:#1a2b48; }
.stco-h > span { font-size:12.5px; color:#8a93a0; font-weight:700; }
.stco-h .stco-hs { margin-left:auto; color:#56607a; }
.stco-h .stco-hs b.나갈 { color:#c0392b; } .stco-h .stco-hs b.순 { color:#0f8a5f; }
.stco-card .prgwrap { margin:0; border:0; border-radius:0; }
.stco td.dim { color:#a0a8b4; }
.stco th.뒤, .stco td.뒤 { border-left:2px solid #dbe3ee; }
.stco-hand { margin-left:4px; font-style:normal; font-size:10px; color:#8a93a0; }
.stco td.순 { color:#0f8a5f; }
.stco-h { cursor:pointer; user-select:none; }
.stco-h:hover { background:#eef4ff; }
.stco-card:not(.on) .stco-h { border-bottom:0; }
.stco-h .stco-ar { width:14px; color:#8a93a0; font-size:12px; }
.stco-all { margin-left:auto; display:inline-flex; gap:4px; }
.stco-all button { padding:3px 10px; border:1px solid #cfd8e4; border-radius:7px; background:#fff; font-family:inherit;
  font-size:12px; font-weight:800; color:#33415c; cursor:pointer; }
.stco td, .stco th { white-space:nowrap; }
/* 정산함 — 빨간 줄 (2026-10-07) */
.stco tr.stco-donerow td { color:#c92a2a !important; text-decoration:line-through; text-decoration-color:#e03131;
  text-decoration-thickness:1.5px; background:#fff5f5; }
.stco tr.stco-donerow td:last-child { text-decoration:none; }
.stco-done { padding:0 7px; border-radius:5px; background:#fdecee; color:#c92a2a !important; font-size:11.5px !important; font-weight:800; }
.stco-mk { padding:2px 8px; border:1px solid #dfe4eb; border-radius:6px; background:#fff; color:#8a93a0; font-family:inherit;
  font-size:11.5px; font-weight:800; cursor:pointer; }
.stco-mk:hover { border-color:#e03131; color:#e03131; }
.stco-mk.on { border-color:#f5b5b5; background:#fdecee; color:#c92a2a; }
button.stco-x { font-family:inherit; cursor:pointer; }
.stxopts { display:flex; flex-direction:column; gap:6px; margin:10px 0; }
.stxopts label, .stxmark { display:flex; align-items:center; gap:6px; font-size:13.5px; color:#1a2b48; cursor:pointer; }
.stxmark { margin:6px 0 4px; font-size:13px; color:#56607a; }
.stxred { color:#c92a2a; }
#stxBg .modal label { display:flex !important; flex-direction:row !important; justify-content:flex-start !important;
  align-items:center; gap:7px; width:auto; text-align:left; margin:0; }
#stxBg .modal label input { width:auto !important; flex:0 0 auto; margin:0; height:auto; padding:0; }
#stxBg .modal label span, #stxBg .modal label b { flex:0 1 auto; width:auto; }
.stco-mk.자동 { display:inline-block; cursor:default; }
.stco-h .stco-co { font-size:11.5px; color:#8a93a0; font-weight:700; }
/* 인도 전 경고 (2026-10-07) */
.stco-st { display:inline-block; padding:0 7px; border-radius:5px; font-size:11px; font-weight:800; line-height:18px; background:#eef1f5; color:#56607a; }
.stco-st.pre { background:#fff4e0; color:#d9480f; border:1px solid #ffc078; }
.stco tr.stco-donerow .stco-st { text-decoration:none; }
.stco-pre { padding:0 7px; border-radius:5px; background:#fff4e0; color:#d9480f !important; font-size:11.5px !important; font-weight:800; border:1px solid #ffc078; }
.stxwarn { margin:8px 0; padding:9px 11px; border-radius:9px; background:#fff4e0; border:1px solid #ffc078; color:#8a3c00; font-size:13px; }
.stxwarn-h b { color:#d9480f; }
.stxwarn-l { display:flex; flex-direction:column; gap:2px; margin:6px 0; font-size:12px; color:#8a5300; max-height:110px; overflow:auto; }
#stxBg .stxwarn label { font-weight:800; color:#8a3c00; }
#stxBg .stxwarn label small { font-weight:600; color:#b0701f; }
/* 회사별 · 개인별 정렬 (2026-10-07) */
.stco-sort { margin-left:auto; display:inline-flex; align-items:center; gap:3px; padding:2px; background:#fff; border:1px solid #dbe6fb; border-radius:9px; }
.stco-sort i { font-style:normal; font-size:11.5px; color:#8a93a0; font-weight:800; padding:0 4px 0 6px; }
.stco-sort button { padding:3px 9px; border:0; border-radius:7px; background:transparent; font-family:inherit; font-size:12px; font-weight:800; color:#56607a; cursor:pointer; }
.stco-sort button.on { background:#1a2b48; color:#fff; }
.stco-sort + .stco-all { margin-left:6px; }

/* ── 오늘의 운세 (2026-10-07) ── */
#pane-fortune .card { max-width:880px; }
.fthead { display:flex; align-items:baseline; gap:10px; margin-bottom:12px; }
.fthead h2 { margin:0; }
.ftdate { font-size:14px; font-weight:800; color:#7048e8; }
.ftgrid { display:grid; grid-template-columns:repeat(6, 1fr); gap:6px; margin-bottom:14px; }
@media (max-width:640px){ .ftgrid { grid-template-columns:repeat(4, 1fr); } }
.ftb { display:flex; flex-direction:column; align-items:center; gap:1px; padding:8px 2px; border:1px solid #e3e7ec; border-radius:12px;
  background:#fff; font-family:inherit; cursor:pointer; color:#1a2b48; }
.ftb:hover { border-color:#b197fc; background:#f8f5ff; }
.ftb.on { border-color:#7048e8; background:#7048e8; color:#fff; }
.ftb .fte { font-size:24px; line-height:1.2; }
.ftb b { font-size:12.5px; }
.fts { font-size:10.5px; color:#f59f00; letter-spacing:-1px; }
.fts i { font-style:normal; color:#dee2e6; }
.ftb.on .fts i { color:#9775fa; }
.ftb.on .fts { color:#ffe066; }
.ftempty { padding:40px 10px; text-align:center; color:#8a93a0; font-size:15px; line-height:1.8; }
.ftme { display:flex; align-items:center; gap:16px; flex-wrap:wrap; padding:14px 16px; border-radius:14px;
  background:linear-gradient(120deg,#f3f0ff,#fff4e6); margin-bottom:12px; }
.ftme-l { display:flex; align-items:center; gap:10px; }
.ftbig { font-size:46px; line-height:1; }
.ftme-l b { font-size:18px; color:#1a2b48; }
.ftme-l small { font-size:12px; color:#8a93a0; font-weight:700; }
.fts.big { font-size:17px; letter-spacing:0; margin-top:2px; }
.ftword { flex:1 1 240px; font-size:16px; font-weight:800; color:#5f3dc4; line-height:1.5; }
.ftsecs { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
@media (max-width:640px){ .ftsecs { grid-template-columns:1fr; } }
.ftsec { padding:11px 13px; border:1px solid #eceff3; border-radius:12px; background:#fff; }
.ftsec:first-child { grid-column:1 / -1; background:#fffdf5; border-color:#ffe8a3; }
.ftsec-h { font-size:13px; font-weight:900; color:#1a2b48; margin-bottom:4px; }
.ftsec p { margin:0; font-size:14.5px; line-height:1.6; color:#33415c; }
.ftlucky { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.ftlucky span { padding:7px 12px; border-radius:999px; background:#f1f3f5; font-size:13px; color:#495057; font-weight:700; }
.ftlucky b { color:#7048e8; margin-left:3px; }
.ftnote { margin:12px 2px 0; font-size:11.5px; color:#a9b1bc; }
.ftb .fty { font-size:10px; color:#8a93a0; font-weight:700; letter-spacing:-.3px; white-space:nowrap; }
.ftb.on .fty { color:#e5dbff; }
/* 오늘의 운세 — 한줄 코멘트 (2026-10-07) */
#pane-fortune .card { max-width:1180px; }
.ftlay { display:grid; grid-template-columns:minmax(0, 1fr) 320px; gap:16px; align-items:start; }
@media (max-width:980px){ .ftlay { grid-template-columns:1fr; } }
.ftcm { border:1px solid #e9e3ff; border-radius:14px; background:#fbfaff; padding:12px; position:sticky; top:12px; }
.ftcm-h { font-size:14px; font-weight:900; color:#5f3dc4; margin-bottom:8px; }
.ftcm-h small { font-size:11.5px; color:#9775fa; font-weight:700; }
.ftcm-in { display:flex; gap:6px; }
.ftcm-in input { flex:1 1 auto; min-width:0; padding:8px 10px; border:1px solid #d0bfff; border-radius:9px; font-family:inherit; font-size:13px; background:#fff; }
.ftcm-in .btn { padding:6px 12px; font-size:13px; white-space:nowrap; }
.ftcm-l { margin-top:8px; max-height:560px; overflow-y:auto; display:flex; flex-direction:column; gap:6px; }
.ftcm-r { padding:7px 10px; border-radius:10px; background:#fff; border:1px solid #efeaff; }
.ftcm-r.me { border-color:#b197fc; }
.ftcm-w { display:flex; align-items:center; gap:5px; font-size:12px; color:#5f3dc4; }
.ftcm-w small { color:#a9a3c4; font-size:11px; }
.ftcm-t { padding:0 5px; border-radius:4px; background:#f3f0ff; color:#7048e8; font-size:10.5px; font-weight:800; }
.ftcm-x { margin-left:auto; border:0; background:none; color:#c0b8de; cursor:pointer; font-size:12px; }
.ftcm-x:hover { color:#e03131; }
.ftcm-g { margin-top:2px; font-size:13.5px; color:#33415c; line-height:1.5; word-break:break-all; }
.ftcm-e { padding:24px 6px; text-align:center; color:#a9a3c4; font-size:13px; line-height:1.7; }
.ftcm-l { max-height:none; }
.ftcm-pg { display:flex; justify-content:center; gap:3px; margin-top:8px; }
.ftcm-pg button { min-width:26px; height:24px; padding:0 6px; border:1px solid #e0d8ff; border-radius:6px; background:#fff;
  color:#7048e8; font-family:inherit; font-size:12px; font-weight:800; cursor:pointer; }
.ftcm-pg button.on { background:#7048e8; border-color:#7048e8; color:#fff; }
.ftcm-pg button:disabled { opacity:.35; cursor:default; }
/* 캐피탈 특판재고 — 전체 보기 (2026-10-09) */
.cstksidet .cstkallbtn { margin-left:auto; padding:4px 11px; border:1px solid #1a56db; border-radius:8px; background:#eef4ff;
  color:#1a56db; font-family:inherit; font-size:12.5px; font-weight:900; cursor:pointer; }
.cstksidet .cstkallbtn em { font-style:normal; font-weight:700; opacity:.75; margin-left:3px; }
.cstksidet .cstkallbtn.on, .cstksidet .cstkallbtn:hover { background:#1a56db; color:#fff; }
.cstksidet { display:flex; align-items:center; gap:6px; }
.cstkxls { margin-left:auto; padding:6px 12px; border-radius:8px; background:#0f8a5f; color:#fff; font-size:12.5px; font-weight:800; text-decoration:none; white-space:nowrap; }
.cstkxls:hover { background:#0b6e4b; }
.cstkfilt { display:flex; flex-wrap:wrap; align-items:center; gap:4px; margin:6px 0; }
.cstkfl { font-size:12px; font-weight:900; color:#56607a; margin-right:4px; min-width:62px; }
.cstkchip { padding:3px 9px; border:1px solid #dfe4eb; border-radius:999px; background:#fff; color:#33415c; font-family:inherit;
  font-size:12px; font-weight:800; cursor:pointer; }
.cstkchip i { font-style:normal; color:#8a93a0; font-weight:700; }
.cstkchip.on { background:#1a2b48; border-color:#1a2b48; color:#fff; }
.cstkchip.on i { color:#cdd6e4; }
.cstkchip.more { border-style:dashed; color:#1a56db; }
.cstkclear { margin-left:6px; padding:5px 10px; border:1px solid #f5b5b5; border-radius:8px; background:#fff5f5; color:#c92a2a;
  font-family:inherit; font-size:12px; font-weight:800; cursor:pointer; }
.cstktb td.cstkcar { font-weight:800; color:#1a2b48; }
.cstknote { margin:8px 2px 0; font-size:11.5px; color:#a9b1bc; }
/* 전체 보기 — 캐피탈 단추와 같은 꼴, 맨 앞 (2026-10-09) */
.cstklogo.cstkalltile b { color:#1a56db; font-size:13.5px; font-weight:900; }
.cstklogo.cstkalltile { border-color:#a5c0f5; background:#f4f8ff; }
.cstklogo.cstkalltile.on { border-color:#1a56db; }
.cstkchip.off { opacity:.4; cursor:default; background:#f6f7f9; }
/* 전체 보기 — 표 안에서 굴리지 않는다 (페이지가 길어진다) (2026-10-09) */
.cstkwrap.cstkallwrap { max-height:none; overflow-x:auto; overflow-y:visible; }
.cstkwrap.cstkallwrap .cstktb th { top:0; }
.cstkleftbar .cstkclear { margin:0 6px 0 0; flex:0 0 auto; white-space:nowrap; }
.cstkleftbar .cstkclear:disabled { opacity:.4; cursor:default; }
.cstkleftbar { display:flex; align-items:center; }
.cstkleftbar .cstkclear { margin:0 6px 0 0; flex:0 0 auto; white-space:nowrap; }
.cstkleftbar .cstkclear:disabled { opacity:.4; cursor:default; }
.cstkchip.all { font-weight:900; }
.cstkchip.all:not(.on) { border-color:#a5c0f5; color:#1a56db; }
.cstktb th.cstksort { cursor:pointer; user-select:none; }
.cstktb th.cstksort:hover { background:#2b4a7e; }
.cstktb th.cstksort.on { background:#1a56db; }
/* 전체 보기 — 표 양옆 쪽 넘기기 (2026-10-09) */
.cstkside3 { display:grid; grid-template-columns:40px minmax(0, 1fr) 40px; gap:6px; align-items:stretch; }
.cstkside-pg { position:sticky; top:42vh; align-self:start; height:84px; margin-top:40px; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:2px; border:1px solid #cfd8e4; border-radius:12px; background:#fff;
  color:#1a2b48; font-family:inherit; font-size:30px; font-weight:900; line-height:1; cursor:pointer; box-shadow:0 2px 8px rgba(26,43,72,.08); }
.cstkside-pg small { font-size:10px; font-weight:800; color:#8a93a0; }
.cstkside-pg:hover:not(:disabled) { background:#1a56db; border-color:#1a56db; color:#fff; }
.cstkside-pg:hover:not(:disabled) small { color:#dbe8ff; }
.cstkside-pg:disabled { opacity:.3; cursor:default; }
@media (max-width:760px){ .cstkside3 { grid-template-columns:28px minmax(0, 1fr) 28px; gap:3px; } .cstkside-pg { font-size:22px; height:64px; } }
/* 양옆 쪽 단추 — 화면에 띄운다 (sticky 대신, 2026-10-09) */
.cstkside-pg { position:fixed; top:calc(50% - 42px); margin-top:0; z-index:20; }
.cstkside3 > .cstkallwrap { grid-column:2; }
.cr3wk { margin-left:8px; font-size:11.5px; font-weight:700; color:#0f8a5f; white-space:nowrap; }
.cr3wk.멈춤 { color:#c92a2a; }

/* ── 현대 재고조회 (2026-10-11, static/hmc.js) ── */
#pane-inv2.hmc켬 #invXls { display:none !important; }
.hmcbox .hmckind { margin:4px 0 10px; }
/* 칸 너비는 기아 재고조회와 같게 (app.js pick2Draw — 차종·사양·옵션·외장·내장) */
.hmccols.pcols { display:grid; grid-template-columns: 1.15fr 2.3fr 1.2fr 1fr 1fr; gap:8px; }
.hmccols .pi > .pin { white-space:normal; overflow:visible; text-overflow:clip; text-align:left; line-height:1.35; }
.hmcres { margin-top:14px; }
.hmchd { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:6px 2px 8px; font-size:14px; }
.hmchd .btn { margin-left:auto; }
.hmct { width:100%; border-collapse:collapse; font-size:13px; }
.hmct th { background:#f3f5f9; text-align:left; padding:7px 8px; border-bottom:1px solid #dde2ea; white-space:nowrap; cursor:pointer; }
.hmct th i { font-style:normal; margin-left:3px; color:#4a6cf7; }
.hmct td { padding:7px 8px; border-bottom:1px solid #eef0f4; vertical-align:top; }
.hmct td.r { text-align:right; white-space:nowrap; }
.hmct .hmcm { font-weight:600; }
.hmcsub { color:#7a8293; font-size:12px; margin-top:2px; }
.hmcnote { color:#b15b00; }
.hmcdc { color:#d0302f; }
.hmcc { display:inline-block; margin:0 6px 2px 0; padding:1px 6px; border-radius:6px; background:#eef3ff; white-space:nowrap; }
.hmcc em { font-style:normal; color:#7a8293; font-size:11px; }
.hmcmore { text-align:center; margin:10px 0; }
@media (max-width: 800px) {
  .hmccols.pcols { grid-template-columns: 1fr !important; }
  .hmct { font-size:12px; }
}

#hmcRes .hmccard { margin-top:10px; }

/* 재고조회에서는 브랜드 줄이 상자 밖(맨 위)으로 나온다 (2026-10-11) — 상자처럼 보이게 */
#pane-inv2 > .pbrand { background:#fff; border:1px solid #e3e8ef; border-radius:11px; padding:8px; margin-bottom:10px; }

/* 차종 칸 맨 위 현대·기아 (2026-10-11) — 분류 단추와 같은 꼴, 두 칸 */
.pcbrand { display:grid; grid-template-columns:1fr 1fr; gap:2px; padding:5px 5px 0; background:#fff; flex:0 0 auto; }
.pcbrand .pcb { font-weight:800; }

/* 재고 대수 옆 안내 — 몇 분 단위로 새로 받는지 (2026-10-11) */
.cnt .updnote { margin-left:10px; color:#1a56db; font-weight:700; font-size:12px; }

/* 탁송료 조회 — 현대 · 기아 단추 (2026-10-11). 모양은 재고조회 .pbb 그대로, 폭만 줄인다 */
.farebrand { max-width:260px; padding:2px 0 10px; }

/* 차량수당 · 납기 — 브랜드 단추를 차량 고르기 위에 크게 (2026-10-11) */
#calcTable .cbbig { display:flex; gap:8px; width:100%; margin:0 0 12px; }
#calcTable .cbbig .cbb { flex:1 1 0; padding:16px 10px; font-size:19px; border-radius:12px; }

/* ══ 수입차 업무 — 재고조회 · 할인정보 (2026-10-13, static/imp.js) ══ */
.impbox { max-width:1400px; }
.imphead { display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.imphead h2 { margin:0; font-size:20px; }
.impsub { color:#7a879a; font-size:13px; }
.impup { margin-left:auto; border:0; background:#1f3864; color:#fff; border-radius:10px; padding:10px 16px;
         font-size:14px; font-weight:800; cursor:pointer; font-family:inherit; }
.impnone .impup { margin:12px 0 0; }
.impbrands { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }
.impb { border:1px solid #d4d9e0; background:#fff; border-radius:10px; padding:8px 14px; font-size:14px; font-weight:800;
        color:#56607a; cursor:pointer; font-family:inherit; }
.impb em { font-style:normal; font-weight:700; color:#9aa6b8; margin-left:5px; font-size:12px; }
.impb.on { background:#1a2b48; border-color:#1a2b48; color:#fff; }
.impb.on em { color:#c9d4ea; }
.impsearch input { width:100%; box-sizing:border-box; border:2px solid #c9d3e3; border-radius:11px; padding:12px 14px;
                   font-size:15px; font-family:inherit; margin-bottom:12px; }
.impsearch input:focus { outline:none; border-color:#1a56db; }
.impnone { padding:40px 10px; text-align:center; color:#8a97aa; }
.impgrid { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:12px; }
.impcard { background:#fff; border:1px solid #e3e8ef; border-radius:12px; padding:12px 14px; }
.impcardh { display:flex; align-items:center; gap:8px; font-size:16px; margin-bottom:6px; }
.impbrand { background:#eef3ff; color:#1a56db; border-radius:6px; padding:2px 7px; font-size:12px; font-weight:800; }
.impitem { border-top:1px solid #eef1f5; padding:8px 0 4px; }
.impitem.오래 { opacity:.5; }
.impwho { font-weight:700; color:#3b4b63; font-size:13.5px; }
.impwhen { color:#8a97aa; font-weight:600; font-size:12px; margin-left:8px; }
.impfile { font-size:13px; color:#3b4b63; margin-top:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.impfile i { font-style:normal; color:#9aa6b8; font-size:12px; margin-left:4px; }
.impmemo { font-size:12.5px; color:#56607a; background:#f6f8fb; border-radius:6px; padding:5px 8px; margin-top:5px; white-space:pre-wrap; }
.impbtns { display:flex; gap:6px; margin-top:7px; }
.impbtns button, .impbtns a { border:1px solid #d5dce8; background:#fff; border-radius:8px; padding:6px 11px; font-size:13px;
        font-weight:700; color:#3b4b63; cursor:pointer; text-decoration:none; font-family:inherit; }
.impbtns .go { background:#1f3864; border-color:#1f3864; color:#fff; }
.impbtns .del { margin-left:auto; color:#c0392b; border-color:#e3c2bd; }
.impold summary { cursor:pointer; color:#8a97aa; font-size:12.5px; padding:6px 0 2px; }
.impres { background:#fff; border:1px solid #e3e8ef; border-radius:12px; margin-bottom:14px; overflow:hidden; }
.impreshead { padding:10px 14px; border-bottom:1px solid #eef1f5; font-size:14px; }
.impreshead span { color:#9aa6b8; font-size:12px; margin-left:8px; }
.imprestb { max-height:60vh; overflow:auto; }
.imphit { padding:8px 14px; border-bottom:1px solid #f1f3f7; cursor:pointer; }
.imphit:hover { background:#f6f9ff; }
.imphitwho { font-size:13px; margin-bottom:4px; }
.imphitwho i { font-style:normal; color:#8a97aa; font-size:12px; margin-left:8px; }
.imphitrow { display:flex; flex-wrap:wrap; gap:4px 14px; font-size:13.5px; font-weight:700; color:#1f2a3c; }
.imphitrow span { display:flex; flex-direction:column; }
.imphitrow em { font-style:normal; font-size:11px; color:#9aa6b8; font-weight:600; min-height:13px; }
.impsheetbox { width:min(1400px, 100%); height:calc(100vh - 32px); }
.impsheetwho { color:#8a97aa; font-size:12.5px; margin-left:10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.impsheetmemo { padding:8px 16px 0; font-size:13px; color:#56607a; white-space:pre-wrap; }
.impsheetbox .imedtools button.on { background:#1a2b48; border-color:#1a2b48; color:#fff; }
.impsheetq { border:1px solid #c9d3e3; border-radius:8px; padding:7px 10px; font-size:13px; font-family:inherit; min-width:200px; }
.impdl { margin-left:auto; font-size:13px; font-weight:700; color:#1a56db; text-decoration:none; }
.impsheetbody { flex:1; overflow:auto; padding:0 16px 16px; }
.impimg { max-width:100%; display:block; margin:10px auto; }
.impxl { border-collapse:collapse; font-size:12.5px; margin-top:8px; }
.impxl td { border:1px solid #e3e8ef; padding:4px 8px; white-space:nowrap; max-width:320px; overflow:hidden; text-overflow:ellipsis; }
.impxl td.n { text-align:right; font-variant-numeric:tabular-nums; }
.impxl tr.imphd td { position:sticky; top:0; background:#1f3864; color:#fff; font-weight:800; z-index:1; }
.impxl tr:nth-child(even):not(.imphd) td { background:#fafbfd; }
.impupbox { width:min(520px, 100%); }
.impform { display:flex; flex-direction:column; gap:10px; padding:14px 16px; }
.impform label { display:flex; flex-direction:column; gap:4px; font-size:13px; font-weight:700; color:#3b4b63; }
.impform label i { font-style:normal; color:#9aa6b8; font-weight:600; }
.impform input, .impform textarea, .impform select { border:1px solid #c9d3e3; border-radius:8px; padding:8px 10px; font-size:14px; font-family:inherit; }
.impform small { color:#8a97aa; font-size:12px; }
@media (max-width: 760px) {
  .imphead { flex-wrap:wrap; }
  .impgrid { grid-template-columns:1fr; }
  .impsheetwho { display:none; }
}

/* 맨 위 필터 (브랜드 → 딜러사 · 찾기) + 브랜드·딜러사 관리 창 (2026-10-13) */
.impmng { margin-left:auto; border:1px solid #c9d3e3; background:#fff; color:#3b4b63; border-radius:10px; padding:9px 14px;
          font-size:13px; font-weight:800; cursor:pointer; font-family:inherit; }
.impmng + .impup { margin-left:0; }
.impfilter { background:#fff; border:1px solid #e3e8ef; border-radius:12px; padding:10px 12px; margin-bottom:12px;
             display:flex; flex-direction:column; gap:8px; }
.impfrow { display:flex; align-items:flex-start; gap:10px; }
.impflab { flex:0 0 52px; padding-top:8px; font-size:13px; font-weight:800; color:#7a879a; }
.impchips { display:flex; flex-wrap:wrap; gap:6px; flex:1; }
.impb.빔 { opacity:.5; }
.impb.빔.on { opacity:1; }
.impfnone { color:#9aa6b8; font-size:13px; padding:8px 0; }
.impfilter .impsearch { align-items:center; }
.impfilter .impsearch input { margin-bottom:0; flex:1; }
.impold2 { white-space:nowrap; font-size:13px; color:#56607a; display:flex; align-items:center; gap:4px; cursor:pointer; }
.implistbox { width:min(760px, 100%); }
.implisthelp { padding:10px 16px 0; color:#7a879a; font-size:13px; }
.implistbody { padding:10px 16px; max-height:62vh; overflow:auto; display:flex; flex-direction:column; gap:10px; }
.implb { border:1px solid #e3e8ef; border-radius:10px; padding:10px 12px; }
.implbh { display:flex; align-items:center; gap:8px; font-size:16px; }
.implbh i { font-style:normal; color:#9aa6b8; font-size:12px; }
.implact { margin-left:auto; display:flex; gap:4px; }
.implb button { border:1px solid #d5dce8; background:#fff; border-radius:7px; padding:4px 9px; font-size:12px;
                cursor:pointer; font-family:inherit; color:#3b4b63; }
.implb button:disabled { opacity:.35; cursor:default; }
.implb button.del { color:#c0392b; border-color:#e3c2bd; }
.impld { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; align-items:center; }
.impldi { display:inline-flex; align-items:center; gap:3px; background:#f3f6fb; border-radius:8px; padding:4px 6px 4px 10px;
          font-size:13px; font-weight:700; }
.impldi em { font-style:normal; color:#1a56db; font-size:11px; margin:0 3px; }
.impldi button { padding:2px 6px; font-size:11px; }
.impladd { display:inline-flex; gap:4px; }
.impladd input, .implnew { border:1px solid #c9d3e3; border-radius:8px; padding:5px 9px; font-size:13px; font-family:inherit; width:150px; }
.implnew { margin-left:auto; width:200px; padding:7px 10px; }
.imedfoot .imedmsg:empty + .implnew { margin-left:auto; }
@media (max-width: 760px) {
  .impfrow { flex-direction:column; gap:4px; }
  .impflab { padding-top:0; }
  .impfilter .impsearch { align-items:stretch; }
  .implbh { flex-wrap:wrap; }
}

/* 요약 창 — 캐피탈정보 아래 차량등록정보 (2026-10-13) */
.cr3panehd.car { border-top:1px solid #eef1f5; }
.cr3carbad { color:#c0392b; }

/* 요약 창 — 위 찾기 칸 · 큰 [닫기] (2026-10-13). 바깥을 눌러서는 안 닫힌다 */
.cr3sumfind { position:relative; flex:0 1 240px; }
.cr3sumfind input { width:100%; box-sizing:border-box; padding:8px 11px; border:1px solid #cdd5df; border-radius:9px;
                    font-family:inherit; font-size:13px; outline:0; }
.cr3sumfind input:focus { border-color:#1a56db; box-shadow:0 0 0 2px #dbe6fb; }
.cr3sumpick { position:absolute; top:calc(100% + 4px); left:0; right:0; z-index:5; background:#fff;
              border:1px solid #d8dee6; border-radius:9px; box-shadow:0 8px 24px rgba(0,0,0,.14); overflow:hidden; min-width:300px; }
.cr3sumpick:empty { display:none; }
.cr3sumpick div { padding:8px 11px; font-size:12.5px; cursor:pointer; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cr3sumpick div b { color:#1a2b48; margin-right:4px; }
.cr3sumpick div i { font-style:normal; color:#8a93a0; }
.cr3sumpick div.on, .cr3sumpick div[data-id]:hover { background:#eef4ff; }
.cr3sumpick div.none { color:#8a93a0; cursor:default; }
.cr3sumclose { flex:0 0 auto; padding:8px 18px; border:1px solid #cdd5df; border-radius:9px; background:#fff;
               color:#3b4b63; font-family:inherit; font-size:14px; font-weight:800; cursor:pointer; }
.cr3sumclose:hover { border-color:#e88; color:#c0392b; background:#fff5f5; }
@media (max-width:760px){ .cr3sumfind { flex:1 1 140px; } .cr3sumpick { min-width:0; } }

/* 요약 창 — 진짜수당 (구분선 아래, 복사 안 됨) (2026-10-13) */
.cr3summine { margin:0 14px 10px; padding:9px 0 0; border-top:2px dashed #d5dce8;
              font-family:Consolas,"D2Coding",monospace; font-size:12.5px; line-height:1.75; color:#1a2b48; }
.cr3summine:empty { display:none; }
.cr3summine .hd { font-family:inherit; font-size:12px; font-weight:800; color:#b45309; }
.cr3summine .hd i { font-style:normal; font-weight:700; color:#8a93a0; margin-left:4px; }
.cr3summine .v b { color:#b45309; }
.cr3summine .dim { color:#8a93a0; }

/* 값 하나만 복사 (계좌번호 · 차대번호 옆) · 등록 서류 링크 (2026-10-13) */
.cr3cp { margin-left:6px; padding:1px 8px; border:1px solid #1a56db; border-radius:6px; background:#fff; color:#1a56db;
         font-family:inherit; font-size:11px; font-weight:800; cursor:pointer; vertical-align:1px; line-height:1.5; }
.cr3cp::after { content:'복사'; }
.cr3cp:hover { background:#eef4ff; }
.cr3cp.done { background:#0b7f58; border-color:#0b7f58; color:#fff; }
.cr3cp.done::after { content:'복사됨'; }
.cr3cp.bad::after { content:'안 됨'; }
.cr3cardocs { display:flex; flex-wrap:wrap; gap:6px; margin-top:7px; }
.cr3cardocs a { padding:4px 10px; border:1px solid #d5dce8; border-radius:7px; background:#fff; color:#1a56db;
                font-size:12px; font-weight:800; text-decoration:none; }
.cr3cardocs a:hover { border-color:#1a56db; background:#eef4ff; }
.cr3cardocs.none { color:#8a93a0; font-size:11.5px; }
.cr3doclink { margin-left:6px; padding:1px 8px; border:1px solid #d5dce8; border-radius:6px; background:#fff;
              color:#1a56db !important; font-family:"Malgun Gothic",sans-serif; font-size:11px; font-weight:800;
              text-decoration:none; vertical-align:1px; }
.cr3doclink::after { content:'📄 ' attr(data-t); }
.cr3doclink:hover { border-color:#1a56db; background:#eef4ff; }
.cr3print { margin-left:-3px; padding:3px 8px; border:1px solid #d5dce8; border-radius:7px; background:#fff;
             font-size:13px; cursor:pointer; line-height:1.2; }
.cr3print:hover { border-color:#1a56db; background:#eef4ff; }

/* ══ 모바일 다듬기 (2026-10-13) — 폰(가로 640 이하)에서 옆으로 삐져나가거나 글자가 세로로 쪼개지는 곳 ══
   폰 앱으로도 쓸 생각이라, 화면이 폰 폭을 넘지 않는 것을 먼저 지킨다. */
@media (max-width: 640px) {
  /* 실시간 재고조회 — 점검 · 새로고침 · 초기화 · 가격 칸이 한 줄에 다 안 들어가 화면이 504 로 넓어졌다 */
  .p2bar { flex-wrap:wrap; }
  .p2bar .p2price { flex:1 1 100%; box-sizing:border-box; min-width:0; }
  .p2bar .p2price .pnum { flex:1 1 0; min-width:0; width:0; }
  /* 캐피탈견적 — '견적 조회' 가 한 글자씩 세로로 쪼개졌다 */
  .capqbar { flex-wrap:wrap; align-items:center; gap:6px 10px; }
  .capqbar > b { white-space:nowrap; }
  .capqbar .capqhint { flex:1 1 100%; }
  /* 캐피탈 진행조건 — 항목별 · 회사별 … 단추가 두 줄로 쪼개졌다 → 한 줄, 넘치면 옆으로 민다 */
  .cpmodes { overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .cpmodes button { white-space:nowrap; flex:0 0 auto; }
  /* 캐피탈재고 전체 보기 머리 */
  .cstktitle { flex-wrap:wrap; }
  .cstktitle b { white-space:nowrap; }
}
/* 캐피탈 특판재고 — 캐피탈 하나를 누르면 표가 칸을 넓혀 화면이 898 까지 밀렸다.
   좁은 화면의 한 칸 짜리 grid 를 1fr 이 아니라 minmax(0,1fr) 로 — 표는 그 안에서 옆으로 민다 */
@media (max-width: 900px) {
  .cstksplit, .cstksplit.엑셀 { grid-template-columns:minmax(0, 1fr); }
  .cstkleft, .cstkright { min-width:0; }
}
/* AG 이름 바로 옆에 직급·회사·전화를 붙인다 (2026-10-17 사장님 — 이름은 왼쪽 끝, 곁글은 오른쪽 끝이라 따로 놀았다) */
#pane-cr3 .cr3in[data-pick="AG"] { flex:0 1 auto; width:auto; field-sizing:content; min-width:3.5em; max-width:45%; }
#pane-cr3 .cr3ln:has(.cr3in[data-pick="AG"]) .cr3side { text-align:left; padding-left:6px; }
#pane-cr3 .cr3ln:has(.cr3in[data-pick="AG"]) .cr3side:has(.cr3sidet) { justify-content:flex-start; }
#pane-cr3 .cr3ln:has(.cr3in[data-pick="AG"]) { cursor:text; }
#pane-cr3 .cr3ln:has(.cr3in[data-pick="AG"]):hover { background:#f4f8ff; border-radius:4px; }
/* 계약일 '계' 네모 — 결제일 '결' 네모와 같은 꼴, 회색 (2026-10-17) */
.cr3cdate:not(.결제) b { font-size:9px; font-weight:800; margin-right:1px; background:#eef1f5; color:#5a6478; border-radius:3px; padding:0 2px; }
/* 단축을 누르고 풀 때 상태·상품구분·고객이 옆으로 밀리지 않게 자리를 붙박는다 (2026-10-17 사장님) */
#pane-cr3 .cr3ln:has(> [data-k="계약번호"]) > [data-k="계약번호"] { flex:1 1 0; width:0; min-width:0; }
#pane-cr3 .cr3ln:has(> [data-k="계약번호"]) > [data-k="상태"] { flex:0 0 52px; width:52px; }
#pane-cr3 .cr3ln:has(> [data-k="계약자"]) > [data-k="계약자"] { flex:1 1 0; width:0; min-width:0; }
#pane-cr3 .cr3ln:has(> [data-k="계약자"]) > [data-k="상품구분"] { flex:0 0 52px; width:52px; }
#pane-cr3 .cr3ln:has(> [data-k="계약자"]) > [data-k="고객이름"] { flex:0 0 74px; width:74px; }
/* ⚠ 차량수당 적은 뒤 판매코드가 바뀜 (2026-10-17) */
.cr3sudangwarn { flex:0 0 auto; height:16px; padding:0 3px; margin-left:2px; border:1px solid #f5c26b; border-radius:4px;
                 background:#fff7e6; color:#b45309; font-size:10px; line-height:1; cursor:pointer; }
.cr3sudangwarn:hover { background:#ffedc2; }
.cr3sudangwarn.ok { border-color:#9ddcbf; background:#e9f8f0; color:#0b7f58; }
.cr3sudangwarn.ok:hover { background:#d4f2e2; }
.sdchk { background:#fff; border-radius:14px; box-shadow:0 18px 50px rgba(0,0,0,.25); max-width:400px; width:calc(100vw - 32px); padding:18px 20px; position:relative; box-sizing:border-box; }
.sdchk .imedx { position:absolute; top:10px; right:12px; }
.sdchkh { font-size:16px; font-weight:900; color:#1a2b48; margin-bottom:6px; padding-right:24px; }
.sdchks { font-size:12.5px; color:#5a6478; margin-bottom:12px; }
.sdchkt { width:100%; border-collapse:collapse; font-size:13.5px; }
.sdchkt th { text-align:left; font-weight:700; color:#5a6478; padding:6px 0; }
.sdchkt td { text-align:right; padding:6px 0; font-variant-numeric:tabular-nums; }
.sdchkt tr.차 td { font-weight:900; color:#b45309; border-top:1px solid #e3e8ef; }
.sdchkt .빔 { color:#a9b1bc; font-size:12px; }
.sdchkf { margin-top:8px; padding:8px 10px; background:#f7f9fc; border-radius:6px; font-size:11.5px; color:#5a6478; white-space:pre-wrap; line-height:1.5; }
.sdchkb { display:flex; gap:6px; margin-top:14px; flex-wrap:wrap; }
.sdchkb .btn { flex:1; }
.sdchkb .btn.sdok { background:#0b7f58; border-color:#0b7f58; color:#fff; }
.sdchkm { min-height:16px; margin-top:6px; font-size:12px; font-weight:800; color:#c0392b; }
/* [부가세 포함] 체크 — 상태 줄 오른쪽 (2026-10-17) */
.cr3vatchk { display:inline-flex; align-items:center; gap:4px; margin-left:10px; padding:2px 8px; border:1px solid #bfe3d6;
             border-radius:6px; background:#effaf6; color:#0f766e; font-size:11.5px; font-weight:800; cursor:pointer; user-select:none; }
.cr3vatchk:has(input:not(:checked)) { border-color:#d6dbe3; background:#fff; color:#8a93a0; }
.cr3vatchk input { margin:0; accent-color:#0f766e; cursor:pointer; }
/* 맨 왼쪽 상태 칸 (2026-10-17 — 줄번호 대신) · 결제일/계약일 누르면 때 기록 */
#pane-cr3 .cr3xl td.cr3no.cr3st { padding:0 2px; vertical-align:middle; }
#pane-cr3 .cr3xl td.cr3st select { width:100%; padding:2px 1px; font-size:11.5px; font-weight:800; text-align:center; }
#pane-cr3 .cr3cdate { cursor:pointer; border-radius:4px; }
#pane-cr3 .cr3cdate:hover { background:#eef4ff; }
/* 상태 칸 색 — 상태마다 다르게 (2026-10-17 사장님) */
#pane-cr3 .cr3xl td.cr3st select { border-radius:6px; border:1px solid transparent; }
#pane-cr3 td.cr3st select[data-v="계약"] { background:#f1f3f6; color:#56607a; border-color:#dfe3ea; }
#pane-cr3 td.cr3st select[data-v="발주"] { background:#e8f4fd; color:#0369a1; border-color:#c3e2f7; }
#pane-cr3 td.cr3st select[data-v="배정"] { background:#eef0ff; color:#4338ca; border-color:#d4d8fb; }
#pane-cr3 td.cr3st select[data-v="결제"] { background:#e7efff; color:#1a56db; border-color:#c6d7f8; }
#pane-cr3 td.cr3st select[data-v="등록"] { background:#fff4e0; color:#b45309; border-color:#f3dcae; }
#pane-cr3 td.cr3st select[data-v="인도"] { background:#f3ecff; color:#7c3aed; border-color:#e0d1fb; }
#pane-cr3 td.cr3st select[data-v="완료"] { background:#e3f6f0; color:#0f766e; border-color:#bfe6d8; }
#pane-cr3 td.cr3st select[data-v="수령"] { background:#0f766e; color:#fff; border-color:#0f766e; }
#pane-cr3 td.cr3st select[data-v="해약"] { background:#fdecec; color:#c0392b; border-color:#f3c9c9; }
#pane-cr3 td.cr3st select option { background:#fff; color:#1a2b48; }
/* 결제일·계약일 글씨 키움 (2026-10-17) — 상품구분 칸 아랫줄에 혼자 있어 자리가 넉넉하다 */
#pane-cr3 .cr3cdate { font-size:12.5px; padding:1px 4px; margin-left:0; }
#pane-cr3 .cr3cdate b { font-size:10.5px; padding:0 3px; margin-right:3px; }
/* 고객 자료 📎 (2026-10-17) */
.cr3idup { flex:0 0 auto; height:17px; padding:0 3px; margin-left:2px; border:1px dashed #c8cfd9; border-radius:4px; background:#fff;
           font-size:10px; line-height:1; cursor:pointer; opacity:.55; display:inline-flex; align-items:center; gap:1px; }
.cr3idup:hover { opacity:1; border-color:#1a56db; background:#eef4ff; }
.cr3idup.있음 { opacity:1; border-style:solid; border-color:#bfe3d6; background:#effaf6; }
.cr3idup i { font-style:normal; font-size:9px; font-weight:800; color:#0f766e; }
.cr3cid { position:fixed; z-index:70; width:290px; padding:10px; background:#fff; border:1px solid #d6dde8; border-radius:10px;
          box-shadow:0 10px 30px rgba(15,23,42,.18); box-sizing:border-box; }
.cr3cid .cidtop { display:flex; align-items:center; margin-bottom:8px; font-size:12.5px; font-weight:800; color:#1a2b48; }
.cr3cid .cidbox { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.cr3cid .cidz { display:flex; flex-direction:column; gap:3px; padding:10px 8px; border:1.5px dashed #c8cfd9; border-radius:8px;
                text-align:center; cursor:pointer; background:#fafbfd; }
.cr3cid .cidz:hover, .cr3cid .cidz.위 { border-color:#1a56db; background:#eef4ff; }
.cr3cid .cidz.고름 { border-style:solid; border-color:#1a56db; background:#eef4ff; }
.cr3cid .cidz b { font-size:12.5px; color:#1a2b48; }
.cr3cid .cidz span { font-size:11.5px; font-weight:800; color:#0f766e; }
.cr3cid .cidz em { font-style:normal; font-size:10.5px; color:#8a93a0; }
/* 상품구분 단추 렌트 ↔ 리스 (2026-10-17) */
.cr3prod { flex:0 0 auto; height:18px; padding:0 8px; border:1px solid #d6dde8; border-radius:5px; background:#fff;
           font-size:11.5px; font-weight:800; color:#1a2b48; cursor:pointer; line-height:1; }
.cr3prod:hover { border-color:#1a56db; background:#eef4ff; }
.cr3prod.리스 { color:#d0021b; border-color:#f3b4b4; background:#fff1f1; }
.cr3prod.현금할부 { color:#0b7f58; border-color:#a8dcc4; background:#ecf8f2; letter-spacing:-.5px; }
.cr3prod:disabled { opacity:.5; cursor:default; }
/* 상품구분 단추를 칸 폭에 꽉 맞게 (2026-10-17) */
#pane-cr3 .cr3prod { flex:1 1 auto; width:100%; height:20px; padding:0; text-align:center; }
/* 상태 필터 단추 — 표의 상태 칸 색과 같게 (2026-10-17). 고른 것은 그 색으로 꽉 칠한다 */
.cr3mon.계약:not(.켬):not(.빔) { background:#f1f3f6; color:#56607a; border-color:#dfe3ea; }
.cr3mon.계약.켬 { background:#56607a; color:#fff; border-color:#56607a; }
.cr3mon.발주:not(.켬):not(.빔) { background:#e8f4fd; color:#0369a1; border-color:#c3e2f7; }
.cr3mon.발주.켬 { background:#0369a1; color:#fff; border-color:#0369a1; }
.cr3mon.배정:not(.켬):not(.빔) { background:#eef0ff; color:#4338ca; border-color:#d4d8fb; }
.cr3mon.배정.켬 { background:#4338ca; color:#fff; border-color:#4338ca; }
.cr3mon.결제:not(.켬):not(.빔) { background:#e7efff; color:#1a56db; border-color:#c6d7f8; }
.cr3mon.결제.켬 { background:#1a56db; color:#fff; border-color:#1a56db; }
.cr3mon.등록:not(.켬):not(.빔) { background:#fff4e0; color:#b45309; border-color:#f3dcae; }
.cr3mon.등록.켬 { background:#b45309; color:#fff; border-color:#b45309; }
.cr3mon.인도:not(.켬):not(.빔) { background:#f3ecff; color:#7c3aed; border-color:#e0d1fb; }
.cr3mon.인도.켬 { background:#7c3aed; color:#fff; border-color:#7c3aed; }
.cr3mon.완료:not(.켬):not(.빔) { background:#e3f6f0; color:#0f766e; border-color:#bfe6d8; }
.cr3mon.완료.켬 { background:#0f766e; color:#fff; border-color:#0f766e; }
.cr3mon.수령:not(.켬):not(.빔) { background:#e3f6f0; color:#0f766e; border-color:#9fd8c3; }
.cr3mon.수령.켬 { background:#0f766e; color:#fff; border-color:#0f766e; }
.cr3mon.해약:not(.켬):not(.빔) { background:#fdecec; color:#c0392b; border-color:#f3c9c9; }
.cr3mon.해약.켬 { background:#c0392b; color:#fff; border-color:#c0392b; }
/* 계약금 출처 단추 — 내가는 빨간 글씨 (2026-10-17) */
.cr3prod.cr3dep.내가 { color:#d0021b; border-color:#f3b4b4; background:#fff1f1; }
/* 계약번호·계약자 — 누르면 짧게 ↔ 온전히 (2026-10-17) */
#pane-cr3 .cr3in.cr3cno { cursor:pointer; }
#pane-cr3 .cr3in.cr3cno:hover { background:#eef4ff; }
#pane-cr3 .cr3in.cr3cno:focus { outline:none; }
/* 위 단추(렌트·리스 / 내가·캐피탈)와 아래 내용(결제일 / 계약금)이 같은 폭·가운데로 (2026-10-17) */
#pane-cr3 .cr3ln:has(.cr3cdate) .cr3cdate { flex:1 1 auto; text-align:center; margin:0; padding:1px 0; }
#pane-cr3 .cr3ln:has(> [data-k="계약금"]) > [data-k="계약금"] { text-align:center; padding-left:0; padding-right:0; }
/* 계약번호·계약자 — 한 덩어리로 눌리고 같이 밝아진다 (2026-10-17) */
#pane-cr3 .cr3in.cr3cno:hover { background:transparent; }
#pane-cr3 .cr3xl td:has(.cr3cno) { cursor:pointer; }
#pane-cr3 .cr3xl td:has(.cr3cno):hover { background:#eef4ff; }
/* 탁송지 혼자 두 줄 (2026-10-17) */
#pane-cr3 .cr3xl td.cr3tall { vertical-align:middle; }
#pane-cr3 .cr3xl td.cr3tall .cr3ln { height:auto; }
#pane-cr3 textarea.cr3addr { display:block; width:100%; height:36px; resize:none; overflow:hidden; line-height:1.4;
                             font-size:11.5px; white-space:normal; word-break:keep-all; overflow-wrap:anywhere; }
#pane-cr3 textarea.cr3addr:focus { overflow:auto; background:#fff; box-shadow:inset 0 0 0 1px #1a56db; }
/* ══ 받을자료 단추 하나 + 전부 창 (2026-10-17) ══ */
#pane-cr3 .cr3docall { flex:1 1 auto; width:100%; justify-content:center; font-weight:800; }
#pane-cr3 .cr3btns { gap:2px; }
#pane-cr3 .cr3btns .cr3doc { flex:1 1 0; min-width:0; padding:0 2px; font-size:9.5px; gap:1px; justify-content:center; overflow:hidden; }
#pane-cr3 .cr3btns .cr3doc i { font-size:9px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#pane-cr3 .cr3list { color:#56607a; font-weight:700; }
.cr3docbox.전부 { left:50% !important; top:50% !important; transform:translate(-50%, -50%); width:min(880px, calc(100vw - 32px));
                  max-height:min(86vh, 760px); padding:10px 12px; border-radius:14px; box-shadow:0 24px 70px rgba(16,24,40,.35); box-sizing:border-box; }
.cr3docbox.전부 .머리 { font-size:13px; padding:2px 2px 8px; }
.cr3docbox.전부 .머리 b { font-size:15px; }
.cr3docbox.전부 .전부찾기줄 { position:relative; margin-bottom:8px; }
.cr3docbox.전부 .전부찾기 { width:100%; box-sizing:border-box; padding:7px 10px; border:1px solid #cddcf7; border-radius:8px; font-size:13px; }
.cr3docbox.전부 .전부찾은것 { display:flex; flex-direction:column; gap:2px; margin-top:3px; }
.cr3docbox.전부 .전부찾은것 button { display:flex; gap:6px; align-items:center; padding:6px 10px; border:1px solid #e3e8ef; border-radius:7px;
                                    background:#fff; text-align:left; font-size:12.5px; cursor:pointer; }
.cr3docbox.전부 .전부찾은것 button:hover { background:#eef4ff; border-color:#8fb0ea; }
.cr3docbox.전부 .전부찾은것 button i { margin-left:auto; font-style:normal; font-size:11px; color:#8a93a0; }
.cr3docbox.전부 .전부찾은것 span { font-size:12px; color:#a9b1bc; padding:4px 2px; }
.cr3docbox.전부 .전부판 { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px; }
.cr3docbox.전부 .전부묶음 { border:1px solid #e6eaf0; border-radius:10px; padding:6px; min-width:0; }
.cr3docbox.전부 .전부머리 { display:flex; align-items:center; gap:6px; padding:2px 4px 6px; font-size:13px; font-weight:900; color:#1a2b48; }
.cr3docbox.전부 .전부머리 i { font-style:normal; font-size:11px; font-weight:800; padding:1px 6px; border-radius:6px; background:#f1f3f6; color:#8a93a0; }
.cr3docbox.전부 .전부머리.done i { background:#e3f6f0; color:#0f766e; }
.cr3docbox.전부 .전부머리.part i { background:#fff4e0; color:#b45309; }
@media (max-width: 760px) { .cr3docbox.전부 .전부판 { grid-template-columns:1fr; } }
/* 상태 아래 결제일 · 상품구분 아래 [요약] (2026-10-17) */
#pane-cr3 .cr3xl td.cr3st { vertical-align:top; padding-top:2px; }
#pane-cr3 td.cr3st .cr3cdate { display:block; margin-top:2px; padding:1px 0; font-size:10.5px; text-align:center; white-space:nowrap; }
#pane-cr3 td.cr3st .cr3cdate b { font-size:9px; padding:0 2px; margin-right:1px; }
#pane-cr3 .cr3sumbtn { flex:1 1 auto; width:100%; height:20px; padding:0; border:1px solid #cddcf7; border-radius:5px; background:#f4f8ff;
                       color:#1a56db; font-size:11px; font-weight:800; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:3px; }
#pane-cr3 .cr3sumbtn:hover { background:#e3edff; border-color:#8fb0ea; }
#pane-cr3 .cr3sumbtn i { font-style:normal; font-size:10px; font-weight:700; color:#56607a; }
/* 가격 칸 ⇄ (2026-10-17) — 단추는 왼쪽에 세로로, 뒤집은 줄은 연한 보라 */
#pane-cr3 .cr3xl td.cr3swaptd { position:relative; padding-left:16px; }
#pane-cr3 .cr3swap { position:absolute; left:1px; top:50%; transform:translateY(-50%); width:14px; height:30px; padding:0;
                     border:1px solid #d6dde8; border-radius:4px; background:#fff; color:#8a93a0; font-size:10px; line-height:1; cursor:pointer; }
#pane-cr3 .cr3swap:hover { border-color:#7c3aed; color:#7c3aed; background:#f6f1ff; }
#pane-cr3 td.cr3swaptd.뒤집음 { background:#f7f2ff; }
#pane-cr3 td.cr3swaptd.뒤집음 .cr3swap { border-color:#c4b0f5; color:#7c3aed; background:#efe6ff; }
#pane-cr3 .cr3real { color:#7c3aed; font-weight:700; }
/* 🔍 가격·수당 자세히 창 (2026-10-17) */
.cr3pm { position:relative; background:#fff; border-radius:14px; box-shadow:0 24px 70px rgba(16,24,40,.35);
         width:min(760px, calc(100vw - 32px)); max-height:88vh; overflow:auto; padding:18px 20px; box-sizing:border-box; }
.cr3pm .imedx { position:absolute; top:12px; right:14px; }
.cr3pm .pmh { font-size:17px; font-weight:900; color:#1a2b48; padding-right:28px; }
.cr3pm .pms { font-size:12.5px; color:#6b7a90; margin:3px 0 12px; }
.cr3pm .pmg { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.cr3pm section { border:1px solid #e6eaf0; border-radius:10px; padding:10px 12px; min-width:0; }
.cr3pm h4 { margin:0 0 6px; font-size:13px; font-weight:900; color:#1a2b48; }
.cr3pm table { width:100%; border-collapse:collapse; font-size:13px; font-variant-numeric:tabular-nums; }
.cr3pm th { text-align:left; font-weight:600; color:#6b7a90; padding:3px 0; }
.cr3pm td { text-align:right; padding:3px 0; color:#1a2b48; }
.cr3pm tr.합 th, .cr3pm tr.합 td { border-bottom:1px solid #eef1f5; padding-bottom:6px; }
.cr3pm tr.합 td b { font-size:14.5px; }
.cr3pm .pmf { margin-top:6px; padding:6px 8px; background:#f7f9fc; border-radius:6px; font-size:11.5px; color:#56607a; line-height:1.5; }
.cr3pm .pmn { margin-top:6px; font-size:12px; color:#8a93a0; }
.cr3pm .pmn.bad { color:#b45309; font-weight:800; } .cr3pm .pmn.ok { color:#0f766e; font-weight:800; }
.cr3pm .pmt { display:flex; align-items:baseline; gap:10px; margin-top:12px; padding:10px 14px; border-radius:10px; background:#f3ecff; }
.cr3pm .pmt span { font-size:13px; font-weight:800; color:#5b21b6; }
.cr3pm .pmt b { margin-left:auto; font-size:18px; font-weight:900; color:#5b21b6; }
.cr3pm .pmt i { font-style:normal; font-size:12px; color:#7c6aa8; }
@media (max-width: 640px) { .cr3pm .pmg { grid-template-columns:1fr; } }
/* 🔍 비밀번호 창 (2026-10-17) */
.cr3pw { position:relative; background:#fff; border-radius:14px; box-shadow:0 24px 70px rgba(16,24,40,.35); width:min(300px, calc(100vw - 32px));
         padding:18px 20px; box-sizing:border-box; display:flex; flex-direction:column; gap:8px; }
.cr3pw .imedx { position:absolute; top:10px; right:12px; }
.cr3pw .pwh { font-size:16px; font-weight:900; color:#1a2b48; }
.cr3pw .pws { font-size:12.5px; color:#6b7a90; }
.cr3pw .pwi { padding:9px 12px; border:1px solid #cddcf7; border-radius:8px; font-size:15px; letter-spacing:3px; }
.cr3pw .pwm { min-height:16px; font-size:12px; font-weight:800; color:#c0392b; }
.cr3pw .pwgo { background:#5b21b6; border-color:#5b21b6; color:#fff; }
.cr3cid .cidfile { margin-top:3px; align-self:center; padding:2px 8px; border:1px solid #d6dde8; border-radius:6px; background:#fff;
                   font-size:10.5px; color:#56607a; cursor:pointer; }
.cr3cid .cidfile:hover { border-color:#1a56db; color:#1a56db; }
.cr3cid .cidz.고름 em { color:#1a56db; font-weight:800; }

/* 계약금 출처 내가 → 캐피탈 확인 창 (2026-10-17) */
.depask { position:fixed; z-index:9999; width:270px; background:#fff; border:1px solid #d5dce6; border-radius:10px;
          box-shadow:0 6px 20px rgba(0,0,0,.18); padding:11px 12px 10px; font-size:12.5px; color:#1a2b48; }
.depask .dq1 { font-size:13.5px; font-weight:900; color:#c0392b; }
.depask .dq2 { margin-top:5px; line-height:1.5; font-weight:600; }
.depask .dqb { display:flex; gap:6px; justify-content:flex-end; margin-top:10px; }
.depask button { padding:5px 10px; border-radius:7px; font-family:inherit; font-size:12px; font-weight:800; cursor:pointer;
                 border:1px solid #cdd5df; background:#fff; color:#56607a; }
.depask button.yes { background:#1a56db; border-color:#1a56db; color:#fff; }

.cr3pm .pmpct { font-weight:800; color:#c0392b; margin-left:2px; }

/* 정산통계 대리점수수료 70+18% (2026-10-17) */
.sttb td.prgm.st7018, .sttb th.prgm.st7018, .stformula .st7018 { color:#0b7f58 !important; font-weight:800; }
.sttb th.st7018 { background:#e6f6ef; }

/* 고객 자료 창 — 들어 있는 파일 열어 보기 (2026-10-17) */
.cr3cid .cidls { display:flex; flex-wrap:wrap; gap:4px; margin-top:6px; }
.cr3cid .cidopen { display:inline-block; padding:3px 8px; border-radius:6px; background:#e6f0ff; color:#1a56db;
                   font-size:11.5px; font-weight:800; text-decoration:none; }
.cr3cid .cidopen:hover { background:#1a56db; color:#fff; }

/* 가격·수당 창 — 판매시스템가 직접 입력 (2026-10-17) */
.cr3pm .pmedit, .cr3pm .pmsave, .cr3pm .pmfree { margin-left:6px; padding:2px 8px; border:1px solid #cdd5df; border-radius:6px;
  background:#fff; color:#1a56db; font-family:inherit; font-size:11.5px; font-weight:800; cursor:pointer; }
.cr3pm .pmsave { background:#1a56db; border-color:#1a56db; color:#fff; }
.cr3pm .pmfree { color:#8a93a0; }
.cr3pm .pmin { width:130px; padding:4px 6px; border:1px solid #cdd5df; border-radius:6px; font-family:inherit; font-size:13px; text-align:right; }
.cr3pm .pmhand { padding:1px 6px; border-radius:5px; background:#fff4e0; color:#b45309; font-size:11px; font-weight:800; }

/* 사양 칸 — 위(구분·연식·인승·구동·엔진…) / 가는 구분선 / 아래 등급 (2026-10-17 사장님).
   위쪽이 칸 높이의 반쯤을 늘 차지해서, 등급 줄이 차종마다 같은 높이에 온다. */
.pcol.spec .pfup { flex:0 0 auto; min-height:46%; display:flex; flex-direction:column; gap:6px; }
.pcol.spec .pfgrade { flex:0 0 auto; margin-top:2px; padding-top:8px; border-top:1px solid #eef0f4; }

/* 등급 갈래 줄 (가솔린·전기 / 스탠다드·롱레인지 …) — 줄 이름이 길어 줄이 맞게 폭을 잡는다 (2026-10-17) */
.pcol.spec .pfgrade { display:flex; flex-direction:column; gap:4px; }

/* ══ 로그인 첫 화면 — 가운데 카드 (2026-10-17 사장님, 업퍼센트 오마주) ══════════════
   문턱(#uBg.nolock-close)일 때만. 화면 가운데 알맞은 크기의 카드 하나 — 왼쪽 로그인, 오른쪽 OG 그림.
   그림은 <img> 로 둔다 — 다크모드(dark.js)가 그림은 뒤집지 않으니 색이 그대로 나온다. */
#uBg .ugwrap { display:contents; }
#uBg .ugside, #uBg .ugbrand { display:none; }
#uBg.nolock-close.show { background:linear-gradient(160deg, #f4f7fc 0%, #e4ecf8 100%); overflow-y:auto; padding:24px; }
#uBg.nolock-close .ugwrap { display:grid; grid-template-columns:minmax(0, 420px) minmax(0, 560px);
                            width:min(980px, 100%); margin:auto; background:#fff; border-radius:22px; overflow:hidden;
                            box-shadow:0 24px 70px rgba(26,56,120,.16); }
#uBg.nolock-close .ugside { display:block; order:2; position:relative; overflow:hidden; background:#dceafd; min-height:560px; }
#uBg.nolock-close .ugside picture { display:contents; }
/* 세로 그림(1120×1159)은 잘리지 않게 통째로(contain) 가운데 — 가입하기로 칸이 길어지면 위아래 빈 곳은
   같은 그림을 크게 흐리게 깔아 채운다 (2026-10-19 사장님 '가입할 때 그림이 잘림').
   다크모드에서는 dark.js 가 .ugside 칸째로 되돌려 흐린 바탕·그림 모두 원래 색 */
#uBg.nolock-close .ugside::before { content:''; position:absolute; inset:-40px;
                                    background:url('/static/login.jpg') center/cover no-repeat;
                                    filter:blur(28px) saturate(1.1); opacity:.85; }
#uBg.nolock-close .ugside img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; object-position:50% 50%; }
#uBg.nolock-close .modal { order:1; width:auto; max-width:none; border-radius:0; box-shadow:none; min-width:0;
                           display:flex; flex-direction:column; justify-content:center; padding:44px 40px 36px; background:#fff; }
#uBg.nolock-close .ugbrand { display:block; margin-bottom:26px; }
#uBg.nolock-close .ugbrand .uglogo { font-size:20px; font-weight:900; color:#0f1b33; letter-spacing:-.5px; }
#uBg.nolock-close .ugbrand .uglogo b { color:#1a56db; font-size:15px; margin-left:1px; }
#uBg.nolock-close .ugbrand .ugcopy { margin-top:18px; font-size:26px; line-height:1.3; font-weight:900;
                                     color:#0f1b33; letter-spacing:-1px; }
#uBg.nolock-close .ugbrand .ugsub { margin-top:8px; font-size:13px; font-weight:600; color:#7a8698; }
#uBg.nolock-close .modal h3 { font-size:17px; margin:0 0 4px; }
#uBg.nolock-close .modal .mp { font-size:12.5px; color:#8a93a0; margin-bottom:14px; }
#uBg.nolock-close .modal input:not([type=checkbox]):not([type=file]) { height:46px; border-radius:10px;
                           font-size:14.5px; padding:0 14px; }
#uBg.nolock-close #uGo { height:48px; border-radius:10px; font-size:15.5px; font-weight:800; background:#1a56db;
                         border-color:#1a56db; }
/* 숨긴 비밀번호 칸(가입 때만 쓰는 '비밀번호 확인')의 눈 단추가 혼자 떠 있던 것 — 칸이 숨으면 같이 숨긴다 */
.pwwrap:has(> input[style*="display: none"]), .pwwrap:has(> input[style*="display:none"]) { display:none; }
/* 로그인 단추는 한 줄 가득, 회원가입 · 비밀번호찾기는 그 아래 나란히 */
#uBg.nolock-close .mrow2 { flex-wrap:wrap; gap:8px; margin-top:14px; }
#uBg.nolock-close .mrow2 #uGo { flex:1 1 100%; }
#uBg.nolock-close .mrow2 #uSwap, #uBg.nolock-close .mrow2 #uFindBtn { flex:1 1 0; height:40px; border-radius:10px;
                           background:#fff; color:#56607a; font-weight:700; }
#uBg.nolock-close .uopts { margin-top:4px; }
/* 가입하기로 바꾸면 칸이 길어진다 — 카드가 화면보다 길면 바깥(#uBg)이 굴러간다 */
@media (max-width:860px) {
  #uBg.nolock-close.show { padding:12px; }
  #uBg.nolock-close .ugwrap { grid-template-columns:minmax(0, 1fr); width:min(480px, 100%); }
  #uBg.nolock-close .ugside { order:0; padding:14px 14px 0; background:transparent; min-height:0; }  /* 카드 흰 바탕이 비친다 — 다크모드에서 흰 띠가 남지 않게 */
  #uBg.nolock-close .ugside::before { display:none; }
  #uBg.nolock-close .ugside img { position:static; height:auto; border-radius:12px; box-shadow:0 8px 24px rgba(26,56,120,.14); }
  #uBg.nolock-close .modal { padding:22px 20px 26px; }
  #uBg.nolock-close .ugbrand { margin-bottom:18px; }
  #uBg.nolock-close .ugbrand .ugcopy { font-size:22px; margin-top:10px; }
}

/* ══ 대시보드 2판 (2026-10-17) ══════════════════════════════════════ */
.dash { max-width:1240px; margin:0 auto; padding:2px 0 36px; --d-line:#eef1f6; --d-ink:#0f1b33; --d-sub:#7a8698; }
.dsh-empty { padding:40px; text-align:center; color:#8a93a0; font-weight:700; }
/* ① 머리 띠 */
.dsh-hero { position:relative; overflow:hidden; display:flex; align-items:center; min-height:178px; margin-bottom:14px;
            padding:26px 30px; border-radius:20px; color:#fff;
            background:radial-gradient(120% 140% at 0% 0%, #2f6cf0 0%, #1a46c8 45%, #13308f 100%);
            box-shadow:0 14px 36px rgba(26,70,200,.25); }
.dsh-hero::before { content:''; position:absolute; right:-80px; top:-120px; width:420px; height:420px; border-radius:50%;
                    background:radial-gradient(circle, rgba(255,255,255,.18), rgba(255,255,255,0) 70%); }
.dsh-hero-txt { position:relative; z-index:1; max-width:60%; }
.dsh-hero .dsh-date { font-size:13px; font-weight:700; color:rgba(255,255,255,.82); letter-spacing:.2px; }
.dsh-hero h2 { margin:6px 0 6px; font-size:27px; font-weight:900; letter-spacing:-.6px; line-height:1.25; }
.dsh-hero p { margin:0; font-size:14px; font-weight:600; opacity:.85; }
.dsh-hero .wave { display:inline-block; animation:dshWave 2.2s ease-in-out 1; transform-origin:70% 70%; }
@keyframes dshWave { 0%,60%,100% { transform:rotate(0) } 10%,30% { transform:rotate(14deg) } 20%,40% { transform:rotate(-8deg) } }
.dsh-news { display:flex; gap:6px; flex-wrap:wrap; margin-top:14px; }
.dsh-news button { padding:7px 13px; border:0; border-radius:999px; background:rgba(255,255,255,.18); color:#fff;
                   font-family:inherit; font-size:13px; font-weight:800; cursor:pointer; backdrop-filter:blur(4px); }
.dsh-news button:hover { background:rgba(255,255,255,.3); }
.dsh-news b { margin-left:4px; padding:0 7px; border-radius:999px; background:#ff5a5f; }
.dsh-hero-img { position:absolute; right:0; bottom:0; height:100%; width:auto; max-width:46%; object-fit:cover; object-position:left center;
                -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 34%); mask-image:linear-gradient(90deg, transparent 0, #000 34%); }
/* ② 숫자 네 칸 */
.dsh-kpis { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:12px; margin-bottom:14px; }
.dsh-kpi { position:relative; display:grid; grid-template-columns:auto 1fr; grid-template-areas:'ic name' 'val val' 'sub sub';
           align-items:center; column-gap:10px; padding:16px 18px; border:1px solid var(--d-line); border-radius:16px; background:#fff;
           text-align:left; font-family:inherit; cursor:pointer; box-shadow:0 1px 2px rgba(16,24,40,.04); transition:transform .12s, box-shadow .12s; }
.dsh-kpi:hover { transform:translateY(-2px); box-shadow:0 10px 24px rgba(16,24,40,.08); }
.dsh-kpi-ic { grid-area:ic; width:36px; height:36px; border-radius:11px; display:grid; place-items:center; font-size:18px; }
.dsh-kpi-name { grid-area:name; font-size:13px; font-weight:800; color:var(--d-sub); }
.dsh-kpi-val { grid-area:val; margin-top:10px; font-size:28px; font-weight:900; color:var(--d-ink); letter-spacing:-.5px; font-variant-numeric:tabular-nums; }
.dsh-kpi-val small { font-size:14px; font-weight:800; margin-left:2px; color:var(--d-sub); }
.dsh-kpi-sub { grid-area:sub; margin-top:2px; font-size:12px; font-weight:700; color:#a0a8b4; }
.dsh-kpi.파랑 .dsh-kpi-ic { background:#e8f0ff; } .dsh-kpi.초록 .dsh-kpi-ic { background:#e3f7ee; }
.dsh-kpi.보라 .dsh-kpi-ic { background:#f0eaff; } .dsh-kpi.주황 .dsh-kpi-ic { background:#fff1e0; }
/* ③ 바로가기 */
.dsh-gos { display:grid; grid-template-columns:repeat(auto-fill, minmax(112px, 1fr)); gap:10px; margin-bottom:14px; }
.dsh-go { display:flex; flex-direction:column; align-items:center; gap:8px; padding:14px 6px 12px; border:1px solid var(--d-line);
          border-radius:16px; background:#fff; font-family:inherit; font-size:13px; font-weight:800; color:#1a2b48; cursor:pointer;
          transition:transform .12s, box-shadow .12s, border-color .12s; }
.dsh-go:hover { transform:translateY(-2px); box-shadow:0 10px 22px rgba(26,86,219,.1); border-color:#cfdcf7; }
.dsh-go-ic { width:46px; height:46px; border-radius:14px; display:grid; place-items:center; font-size:22px; }
.dsh-go-ic.파랑 { background:#e8f0ff; } .dsh-go-ic.초록 { background:#e3f7ee; } .dsh-go-ic.보라 { background:#f0eaff; }
.dsh-go-ic.주황 { background:#fff1e0; } .dsh-go-ic.빨강 { background:#ffecec; } .dsh-go-ic.하늘 { background:#e3f6fc; }
.dsh-go-ic.남색 { background:#e6e9f5; }
/* ④ 칸들 */
.dsh-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:14px; align-items:start; }
.dsh-span2 { grid-column:span 2; } .dsh-span3 { grid-column:1 / -1; }
.dsh-col { display:flex; flex-direction:column; gap:14px; min-width:0; }
.dsh-card { padding:18px 18px 14px; border-radius:18px; border:1px solid var(--d-line); box-shadow:0 1px 2px rgba(16,24,40,.04); min-width:0; }
.dsh-h { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:14px; }
.dsh-h h3 { margin:0; font-size:16px; font-weight:900; color:var(--d-ink); display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.dsh-h h3 em { font-style:normal; font-size:11.5px; font-weight:700; color:#a0a8b4; }
.dsh-more { flex:0 0 auto; padding:4px 2px; border:0; background:none; font-family:inherit; font-size:12.5px; font-weight:800;
            color:#1a56db; cursor:pointer; white-space:nowrap; }
.dsh-sub { margin:16px 0 6px; font-size:12px; font-weight:800; color:#a0a8b4; }
.dsh-dim { font-size:12.5px; color:#a0a8b4; font-weight:700; padding:6px 2px; }
.dsh-pill { padding:1px 8px; border-radius:999px; background:#ff5a5f; color:#fff; font-size:11.5px; font-weight:800; }
/* 계약 단계 막대 */
.dsh-pipes { display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); gap:8px; align-items:end; }
.dsh-pipe { text-align:center; }
.dsh-pipe-n { font-size:18px; font-weight:900; color:#c3c9d2; font-variant-numeric:tabular-nums; }
.dsh-pipe.있음 .dsh-pipe-n { color:var(--d-ink); }
.dsh-pipe-bar { height:74px; margin:6px auto 6px; width:70%; border-radius:10px; background:#f3f5f9; display:flex; align-items:flex-end; overflow:hidden; }
.dsh-pipe-bar i { display:block; width:100%; border-radius:10px; background:linear-gradient(180deg, #5b8dff, #1a56db); }
.dsh-pipe:not(.있음) .dsh-pipe-bar i { background:#e3e8ef; }
.dsh-pipe-k { font-size:12px; font-weight:800; color:var(--d-sub); }
.dsh-recent { display:grid; grid-template-columns:52px minmax(0,1.4fr) minmax(0,1fr) auto; align-items:center; gap:10px;
              padding:9px 4px; border-top:1px solid var(--d-line); font-size:13px; font-weight:700; color:#1a2b48; cursor:pointer; }
.dsh-recent:hover { background:#f8faff; }
.dsh-recent-car { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dsh-recent-who { color:var(--d-sub); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dsh-recent-no { font-size:12px; color:#a0a8b4; font-variant-numeric:tabular-nums; }
.dsh-badge { justify-self:start; padding:3px 8px; border-radius:7px; font-size:11.5px; font-weight:800; background:#eef2f7; color:#56607a; }
.dsh-badge.s-배정, .dsh-badge.s-발주 { background:#fff1e0; color:#b45309; }
.dsh-badge.s-결제, .dsh-badge.s-등록 { background:#e8f0ff; color:#1a56db; }
.dsh-badge.s-인도, .dsh-badge.s-완료 { background:#e3f7ee; color:#0b7f58; }
.dsh-none { padding:28px 10px; text-align:center; font-size:14px; font-weight:800; color:#56607a; line-height:1.7; }
.dsh-none small { font-size:12.5px; color:#a0a8b4; font-weight:700; }
.dsh-none-ic { font-size:34px; margin-bottom:6px; }
/* 재고 업데이트 */
.dsh-up { display:flex; align-items:center; gap:10px; padding:9px 2px; border-top:1px solid var(--d-line); font-size:13.5px; font-weight:700; color:#a0a8b4; }
.dsh-up:first-of-type { border-top:0; }
.dsh-up i { width:8px; height:8px; border-radius:50%; background:#d5dbe3; flex:0 0 auto; }
.dsh-up span { flex:1 1 auto; } .dsh-up b { font-variant-numeric:tabular-nums; }
.dsh-up.오늘 { color:#1a2b48; } .dsh-up.오늘 i { background:#16b47e; box-shadow:0 0 0 4px #dcf5ea; } .dsh-up.오늘 b { color:#0b7f58; }
/* 공지 */
.dsh-notice { display:flex; justify-content:space-between; gap:10px; padding:9px 2px; border-top:1px solid var(--d-line); font-size:13.5px;
              font-weight:700; color:#1a2b48; cursor:pointer; }
.dsh-notice:first-of-type { border-top:0; }
.dsh-notice:hover .dsh-t { color:#1a56db; }
.dsh-notice em { font-style:normal; font-size:12px; color:#a0a8b4; white-space:nowrap; }
.dsh-t { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dsh-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:#ff5a5f; margin-right:7px; vertical-align:middle; }
/* ⑤ 차종별 재고 */
.dsh-cars { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); column-gap:28px; row-gap:4px; }
.dsh-car { display:grid; grid-template-columns:86px minmax(0,1fr) 60px; align-items:center; gap:10px; padding:6px 4px; border:0;
           background:none; border-radius:8px; font-family:inherit; font-size:13px; font-weight:800; color:#1a2b48; cursor:pointer; text-align:left; }
.dsh-car:hover { background:#f6f8fc; }
.dsh-car-name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dsh-car-bar { height:10px; border-radius:999px; background:#f1f4f8; overflow:hidden; }
.dsh-car-bar i { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg, #7aa5ff, #1a56db); }
.dsh-car b { text-align:right; font-variant-numeric:tabular-nums; color:#56607a; }
/* ⑥ 관리자 */
.dsh-legend { display:flex; gap:14px; font-size:12px; font-weight:700; color:var(--d-sub); margin:-6px 0 10px; }
.dsh-legend i { display:inline-block; width:10px; height:10px; border-radius:3px; margin-right:5px; vertical-align:-1px; }
.dsh-legend i.나올, .dsh-bar-col i.나올 { background:#1a56db; } .dsh-legend i.지급, .dsh-bar-col i.지급 { background:#b9cdf6; }
.dsh-bars { display:grid; grid-template-columns:repeat(6, minmax(0,1fr)); gap:12px; align-items:end; height:170px; }
.dsh-bar { display:flex; flex-direction:column; align-items:center; height:100%; }
.dsh-bar-v { font-size:11.5px; font-weight:800; color:#0b7f58; min-height:16px; }
.dsh-bar-col { flex:1 1 auto; width:100%; display:flex; justify-content:center; align-items:flex-end; gap:4px; }
.dsh-bar-col i { width:34%; max-width:22px; border-radius:6px 6px 2px 2px; min-height:2px; }
.dsh-bar-k { margin-top:6px; font-size:12px; font-weight:800; color:#a0a8b4; }
.dsh-bar.이번 .dsh-bar-k { color:#1a56db; }
.dsh-month { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:10px; margin-top:16px; }
.dsh-month > div { padding:12px 14px; border-radius:12px; background:#f6f8fc; }
.dsh-month span { display:block; font-size:12px; font-weight:800; color:var(--d-sub); }
.dsh-month b { display:block; margin-top:4px; font-size:17px; font-weight:900; color:var(--d-ink); font-variant-numeric:tabular-nums; }
.dsh-month .순 { background:#e7f7ef; } .dsh-month .순 b { color:#0b7f58; }
.dsh-chips { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:8px; }
.dsh-chip { padding:10px 8px; border-radius:12px; background:#f3f6fb; text-align:center; font-size:12px; font-weight:800; color:var(--d-sub); }
.dsh-chip b { display:block; font-size:20px; color:var(--d-ink); }
.dsh-chip.해약 { background:#fdf0f0; } .dsh-chip.해약 b { color:#c0392b; }
.dsh-todo { display:flex; justify-content:space-between; align-items:center; gap:8px; padding:10px 12px; margin-top:6px; border-radius:12px;
            background:#f6f8fc; font-size:13px; font-weight:800; color:#1a2b48; }
.dsh-todo b { font-variant-numeric:tabular-nums; white-space:nowrap; }
.dsh-todo.빨강 { background:#fff0f0; color:#c0392b; } .dsh-todo.끝 { color:#0b7f58; background:#ecf8f2; }
@media (max-width:1080px) {
  .dsh-grid { grid-template-columns:repeat(2, minmax(0,1fr)); }
  .dsh-span2 { grid-column:1 / -1; }
}
@media (max-width:760px) {
  .dsh-hero { padding:20px 18px; min-height:150px; }
  .dsh-hero-txt { max-width:68%; }
  .dsh-hero h2 { font-size:21px; }
  .dsh-hero p { font-size:12.5px; }
  .dsh-hero-img { max-width:42%; }
  .dsh-kpis { grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; }
  .dsh-kpi { padding:14px; } .dsh-kpi-val { font-size:23px; }
  .dsh-gos { grid-template-columns:repeat(4, minmax(0,1fr)); gap:8px; }
  .dsh-go { padding:10px 2px; font-size:11.5px; } .dsh-go-ic { width:40px; height:40px; font-size:19px; }
  .dsh-grid { grid-template-columns:minmax(0,1fr); }
  .dsh-cars { grid-template-columns:minmax(0,1fr); }
  .dsh-pipes { gap:4px; } .dsh-pipe-bar { width:84%; height:60px; }
  .dsh-recent { grid-template-columns:48px minmax(0,1fr) auto; } .dsh-recent-who { display:none; }
  .dsh-month { grid-template-columns:minmax(0,1fr); }
}

/* 머리 로고 그림 (2026-10-17) — 누르면 대시보드. 폰에서는 조금 작게 */
h1 > a.home { display:inline-flex; align-items:center; }
.hlogo { display:block; height:36px; width:auto; transition:transform .15s; }
h1 > a.home:hover .hlogo { transform:scale(1.03); }
@media (max-width:760px) { .hlogo { height:28px; } }

/* 진행목록 (2026-10-17) — 고객 칸은 반쯤 좁게 · 계약번호 풀로/짧게 단추 · 상태별 색 */
.prgxl td.prgc.prgcust { max-width:76px; }
.prgxl th.prgcust { width:76px; }
.prgnobtn { margin-left:4px; padding:0 6px; height:17px; border:1px solid #cdd5df; border-radius:5px; background:#fff;
            font-family:inherit; font-size:10px; font-weight:800; color:#1a56db; cursor:pointer; vertical-align:1px; }
.prgnobtn:hover { background:#eef4ff; }
.prgxl .prgstate { display:inline-block; margin-left:0; padding:2px 9px; font-size:11px; font-weight:800; border-radius:999px; }
.prgstate.s-계약 { background:#eef1f5; color:#56607a; }
.prgstate.s-발주 { background:#fff4e0; color:#b45309; }
.prgstate.s-배정 { background:#fde9d7; color:#c2410c; }
.prgstate.s-결제 { background:#e3edff; color:#1a56db; }
.prgstate.s-등록 { background:#ede7ff; color:#6d28d9; }
.prgstate.s-인도 { background:#dff4fb; color:#0e7490; }
.prgstate.s-완료, .prgstate.s-수령 { background:#e3f7ee; color:#0b7f58; }
.prgstate.s-해약 { background:#fdeeee; color:#c0392b; }
/* 계약번호 밑 계약자(캐피탈) — 작고 흐려 안 보이던 것 (2026-10-17 사장님) */
.prgxl td.prgc.번호 i { margin-top:1px; font-size:11.5px; font-weight:800; color:#1a56db; }
.prgxl tr.해약 td.prgc.번호 i { color:#c3c9d2; }
/* 계약번호 칸 — 번호 글자 길이에 딱 맞게 (풀로 · 짧게 어느 쪽이든). 계약자 이름은 칸을 넓히지 않고 … 로 줄인다 (2026-10-17) */
.prgxl th.prgnoth { width:1%; white-space:nowrap; }
.prgxl td.prgc.번호 { width:1%; max-width:none; white-space:nowrap; }
.prgxl td.prgc.번호 i { width:0; min-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
/* [풀로] 일 때는 캐피탈 실제 이름(주식회사 아이엠캐피탈)을 자르지 않는다 — 칸이 그 길이만큼 넓어진다 */
.prgxl td.prgc.번호.풀 i { width:auto; min-width:0; overflow:visible; }

/* 진행목록 달 필터 — 상태 필터 아래 한 줄 (2026-10-17) */
.prgfilt.prgmonf { margin-top:-4px; }
.prgfilt.prgmonf:empty { display:none; }
.prgfilt.prgmonf button { padding:5px 11px; font-size:12.5px; }

/* 진행목록 상태 옆 날짜 — 결제일(없으면 계약일) (2026-10-17) */
.prgxl .prg날 { margin-left:5px; font-size:11.5px; font-weight:700; color:#56607a;
                        white-space:nowrap; font-variant-numeric:tabular-nums; }
.prgxl .prg날 em { font-style:normal; display:inline-block; margin-right:3px; padding:0 3px;
                           border-radius:4px; font-size:10px; background:#eef1f5; color:#8a93a0; }
.prgxl .prg날.결 em { background:#e6f4ee; color:#0b7f58; }
.prgxl td.prgs { white-space:nowrap; }

/* 진행목록 오른쪽 위 — 지급 전 · 지급된 수당 (2026-10-17) */
#pane-prog .prghead { position:relative; padding-right:330px; min-height:40px; }
#pane-prog .prgpay { position:absolute; right:0; top:0; display:flex; gap:8px; }
#pane-prog .prgpay:empty { display:none; }
#pane-prog .prgpay > div { border:1px solid #e3e8ef; border-radius:10px; padding:6px 12px;
                           background:#fbfcfe; text-align:right; min-width:140px; }
#pane-prog .prgpay span { display:block; font-size:11px; font-weight:700; color:#8a93a0; }
#pane-prog .prgpay span i { font-style:normal; color:#b6bdc7; margin-left:3px; }
#pane-prog .prgpay b { font-size:16px; font-weight:800; font-variant-numeric:tabular-nums; }
#pane-prog .prgpay .전 b { color:#c2410c; }
#pane-prog .prgpay .됨 b { color:#0b7f58; }
@media (max-width:760px){
  #pane-prog .prghead { padding-right:0; }
  #pane-prog .prgpay { position:static; margin:6px 0 10px; }
}

/* 진행목록 날짜 칸 — 상태와 따로 (2026-10-17) */
.prgxl th.prgdt, .prgxl td.prgdt { text-align:center; white-space:nowrap; }
.prgxl td.prgdt .prg날 { margin-left:0; display:inline-block; padding-top:3px; }
.prgxl .prg날.결 em { background:#e3edff; color:#1a56db; }   /* 결 = 결제 상태와 같은 파랑 (2026-10-17) */

/* 상태 · 날짜 칸은 글자만큼만 (2026-10-17) */
.prgxl th.prgs, .prgxl td.prgs, .prgxl th.prgdt, .prgxl td.prgdt { width:1%; padding-left:3px; padding-right:3px; }
.prgxl td.prgs .prgstate { padding:2px 6px; }
.prgxl .prg날 em { margin-right:2px; }

/* 대시보드 재고 업데이트 — 기아 · 현대 두 칸 나란히 (2026-10-17) */
.dsh-up2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.dsh-up2 > div { min-width:0; }
.dsh-up-h { font-size:12px; font-weight:800; color:#56607a; padding:2px 2px 4px; border-bottom:2px solid var(--d-line); }
.dsh-up2 .dsh-up { font-size:12.5px; gap:7px; padding:8px 2px; }
.dsh-up2 .dsh-up:first-of-type { border-top:1px solid var(--d-line); }
.dsh-up-h + .dsh-up { border-top:0; }
.dsh-up2 .dsh-up span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
/* 공지사항 — 10줄 자리 고정 */
.dsh-notices { height:390px; overflow:hidden; }
.dsh-notices .dsh-notice { height:39px; box-sizing:border-box; align-items:center; }
.dsh-notices .dsh-t { min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* ══ 대시보드 아래 칸 정리 (2026-10-17) ══
   1줄 내 계약 진행(2) · 탁송료 조회(1) / 2줄 공지사항(2) · 재고 업데이트(1) / 3줄 차종별 재고 — 한 줄 칸들은 키를 맞춘다 */
.dsh-grid { align-items:stretch; }
.dsh-grid > .dsh-card { display:flex; flex-direction:column; }
/* 재고 업데이트 — 기아 위 · 현대 아래 */
.dsh-up2 { grid-template-columns:1fr; gap:12px; }
.dsh-up-h { display:flex; align-items:center; gap:6px; }
.dsh-up2 .dsh-up { font-size:13px; }
/* 탁송료 조회 */
.dsh-h h3 em#dshFareSt { padding:2px 8px; border-radius:999px; background:#f1f4f8; color:#8a93a0; }
.dsh-h h3 em#dshFareSt.켬 { background:#e3f7ee; color:#0b7f58; }
.dsh-h h3 em#dshFareSt.꺼짐 { background:#fff1e0; color:#b45309; }
#dshFareBody { display:flex; flex-direction:column; gap:9px; flex:1 1 auto; }
.dsh-f { display:flex; flex-direction:column; gap:4px; }
.dsh-f span { font-size:12px; font-weight:800; color:var(--d-sub); }
.dsh-f select { width:100%; padding:9px 10px; border:1px solid #dfe4ea; border-radius:10px; background:#fff;
                font-family:inherit; font-size:13.5px; font-weight:700; color:#1a2b48; }
.dsh-f select:focus { outline:0; border-color:#5b8dff; box-shadow:0 0 0 3px #e3edff; }
.dsh-fgo { margin-top:4px; padding:11px; border:0; border-radius:11px; background:#1a56db; color:#fff;
           font-family:inherit; font-size:14px; font-weight:800; cursor:pointer; }
.dsh-fgo:hover:not(:disabled) { background:#1747b8; }
.dsh-fgo:disabled { background:#e8ecf2; color:#8a93a0; cursor:default; }
.dsh-fres:empty { display:none; }
.dsh-fwon { display:flex; justify-content:space-between; align-items:baseline; padding:12px 14px; border-radius:12px; background:#eef4ff; }
.dsh-fwon span { font-size:13px; font-weight:800; color:#56607a; }
.dsh-fwon b { font-size:22px; font-weight:900; color:#1a56db; font-variant-numeric:tabular-nums; }
.dsh-fwait, .dsh-ffail { padding:11px 14px; border-radius:12px; font-size:13px; font-weight:800; }
.dsh-fwait { background:#f6f8fc; color:#56607a; }
.dsh-ffail { background:#fff1f0; color:#c0392b; }
.dsh-fwait small, .dsh-ffail small { display:block; margin-top:2px; font-size:11.5px; font-weight:700; opacity:.8; }
.dsh-fwarn { margin-top:auto; padding-top:6px; font-size:11.5px; font-weight:700; color:#a0a8b4; line-height:1.5; }
/* 좁으면 한 줄에 한 칸 — 두 칸 바둑판은 탁송·재고 칸 옆이 비어 보인다 */
@media (max-width:1080px){
  .dsh-grid { grid-template-columns:minmax(0,1fr); }
  .dsh-span2 { grid-column:auto; }
}
.dsh-notices .dsh-notice.빈 { cursor:default; }
.dsh-notices .dsh-dim { height:39px; box-sizing:border-box; padding:9px 2px; }

/* ══ 대시보드 3판 (2026-10-17) — 업퍼센트·카트너처럼: 얇은 선 · 작은 모서리 · 그림자 없음 · 12칸 바둑판 ══ */
.dash.d3 { max-width:1280px; --d3-line:#e6e9ee; --d3-row:#f0f2f5; }
.d3-grid { display:grid; grid-template-columns:repeat(12, minmax(0,1fr)); gap:12px; align-items:stretch; }
.d3-4 { grid-column:span 4; } .d3-6 { grid-column:span 6; } .d3-8 { grid-column:span 8; } .d3-12 { grid-column:1 / -1; }
.d3 .dsh-hero, .d3 .dsh-kpis, .d3 .dsh-gos { margin:0; }
/* 칸 — 얇은 선, 제목줄 밑에 선 */
.d3 .dsh-card { padding:0; border:1px solid var(--d3-line); border-radius:10px; box-shadow:none; background:#fff;
                display:flex; flex-direction:column; overflow:hidden; }
.d3 .dsh-h { margin:0; padding:13px 16px; border-bottom:1px solid var(--d3-line); }
.d3 .dsh-h h3 { font-size:14.5px; font-weight:800; letter-spacing:-.2px; }
.d3 .dsh-more { font-size:12.5px; font-weight:700; color:#6b7684; }
.d3 .dsh-more:hover { color:#1a56db; }
.d3 .dsh-card > :not(.dsh-h) { margin-left:16px; margin-right:16px; }
.d3 .dsh-card > :last-child { margin-bottom:12px; }
/* 인사 띠 — 납작하게 */
.d3 .dsh-hero { min-height:0; padding:22px 26px; border-radius:10px; box-shadow:none;
                background:linear-gradient(120deg, #1f5be6 0%, #1a46c8 60%, #15379e 100%); }
.d3 .dsh-hero h2 { font-size:23px; }
.d3 .dsh-hero p { font-size:13px; }
/* 숫자 네 칸 — 2 x 2, 칸막이 */
.d3 .dsh-kpis { grid-template-columns:repeat(2, minmax(0,1fr)); gap:0; border:1px solid var(--d3-line); border-radius:10px; overflow:hidden; background:#fff; }
.d3 .dsh-kpi { border:0; border-radius:0; box-shadow:none; padding:14px 16px; }
.d3 .dsh-kpi:hover { transform:none; box-shadow:none; background:#f8faff; }
.d3 .dsh-kpi:nth-child(odd) { border-right:1px solid var(--d3-line); }
.d3 .dsh-kpi:nth-child(-n+2) { border-bottom:1px solid var(--d3-line); }
.d3 .dsh-kpi-ic { width:28px; height:28px; border-radius:8px; font-size:15px; }
.d3 .dsh-kpi-name { font-size:12.5px; }
.d3 .dsh-kpi-val { margin-top:8px; font-size:23px; }
/* 바로가기 — 칸막이로 나눈 한 줄 */
.d3 .dsh-gos { display:flex; gap:0; border:1px solid var(--d3-line); border-radius:10px; overflow:hidden; background:#fff; }
.d3 .dsh-go { flex:1 1 0; border:0; border-radius:0; border-right:1px solid var(--d3-line); padding:16px 4px 14px; gap:7px;
              font-size:12.5px; font-weight:700; color:#333d4b; }
.d3 .dsh-go:last-child { border-right:0; }
.d3 .dsh-go:hover { transform:none; box-shadow:none; background:#f8faff; color:#1a56db; }
.d3 .dsh-go-ic { width:auto; height:auto; background:none !important; font-size:24px; }
/* 공지 — 10줄, 날짜 오른쪽 회색 */
.d3 .dsh-notices { height:auto; margin:0 !important; }
.d3 .dsh-notices .dsh-notice { height:38px; padding:0 16px; border-top:1px solid var(--d3-row); font-size:13px; font-weight:600; color:#333d4b; }
.d3 .dsh-notices .dsh-notice:first-child { border-top:0; }
.d3 .dsh-notices .dsh-notice:not(.빈):hover { background:#f8faff; }
.d3 .dsh-notice em { font-size:12px; color:#9aa3ae; font-variant-numeric:tabular-nums; }
.d3 .dsh-notices .dsh-dim { padding:0 16px; height:38px; display:flex; align-items:center; }
/* 재고 업데이트 표 */
.d3 .d3-tb { width:auto; border-collapse:collapse; font-size:13px; margin:0 !important; }
.d3 .dsh-card > .d3-tb { width:100%; }
.d3 .d3-tb th { height:34px; padding:0 16px; background:#f7f8fa; border-bottom:1px solid var(--d3-line);
                font-size:12px; font-weight:700; color:#6b7684; text-align:left; }
.d3 .d3-tb td { height:38px; padding:0 16px; border-top:1px solid var(--d3-row); color:#333d4b; font-weight:600; }
.d3 .d3-tb tr:first-child td { border-top:0; }
.d3 .d3-tb .d3-tm { color:#6b7684; font-variant-numeric:tabular-nums; }
.d3 .d3-tb th:last-child, .d3 .d3-tb td.d3-st { text-align:right; }
.d3 .d3-br { display:inline-block; padding:2px 7px; border-radius:5px; font-size:11.5px; font-weight:800; }
.d3 .d3-br.기아 { background:#eef1f6; color:#05141f; } .d3 .d3-br.현대 { background:#e8f0fb; color:#002c5f; }
.d3 .d3-ok { color:#1a56db; font-weight:800; font-size:12.5px; }
.d3 .d3-old { color:#e67700; font-weight:800; font-size:12.5px; }
/* 내 계약 진행 */
.d3 .dsh-pipes { margin-top:14px; }
.d3 .dsh-pipe-bar { height:60px; border-radius:7px; } .d3 .dsh-pipe-bar i { border-radius:7px; }
.d3 .dsh-recent { padding:0 2px; height:38px; border-top:1px solid var(--d3-row); font-size:13px; font-weight:600; }
.d3 .dsh-sub { margin:12px 0 4px; }
.d3 .dsh-badge { border-radius:5px; }
.d3 .dsh-none { padding:40px 10px; }
/* 탁송료 조회 */
.d3 #dshFareBody { padding-top:12px; gap:8px; }
.d3 .dsh-f select { padding:8px 10px; border-radius:8px; border-color:var(--d3-line); font-size:13px; }
.d3 .dsh-fgo { border-radius:8px; padding:10px; font-size:13.5px; }
.d3 .dsh-fwon, .d3 .dsh-fwait, .d3 .dsh-ffail { border-radius:8px; }
/* 차종별 재고 */
.d3 .dsh-cars { padding-top:10px; }
.d3 .dsh-car { padding:7px 4px; font-weight:700; }
@media (max-width:1080px){
  .d3-4, .d3-6, .d3-8 { grid-column:1 / -1; }
  .d3 .dsh-gos { flex-wrap:wrap; }
  .d3 .dsh-go { flex:1 1 25%; border-bottom:1px solid var(--d3-line); }
}
.d3 .d3-tb th, .d3 .d3-tb td { vertical-align:middle; }
/* 대시보드 칸은 '.pane .card' 의 620px · 가운데 정렬을 받지 않는다 — 받으면 칸 사이가 벌어지고 왼쪽 줄이 안 맞는다 (2026-10-17) */
#pane-home .dash .dsh-card, #pane-home .dash .card { max-width:none; margin:0; }

/* 대시보드 3판 c (2026-10-17) — 인사 띠 옆 = 내 계약 진행(숫자 셋 + 단계 막대 + 최근 3건) */
.d3 .d3-prog .d3-nums { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); margin:0 !important;
                        border-bottom:1px solid var(--d3-line); }
.d3 .d3-nums > div { padding:10px 14px; border-right:1px solid var(--d3-line); min-width:0; }
.d3 .d3-nums > div:last-child { border-right:0; }
.d3 .d3-nums span { display:block; font-size:11.5px; font-weight:700; color:#6b7684; }
.d3 .d3-nums b { display:block; margin-top:2px; font-size:19px; font-weight:900; color:var(--d-ink); letter-spacing:-.4px;
                 font-variant-numeric:tabular-nums; white-space:nowrap; }
.d3 .d3-nums b small { font-size:12px; font-weight:800; color:#6b7684; margin-left:1px; }
.d3 .d3-nums em { font-style:normal; font-size:11px; font-weight:700; color:#9aa3ae; }
.d3 .d3-prog .dsh-pipes { margin-top:10px; gap:4px; }
.d3 .d3-prog .dsh-pipe-n { font-size:14px; }
.d3 .d3-prog .dsh-pipe-bar { height:40px; width:78%; margin:4px auto; }
.d3 .d3-prog .dsh-pipe-k { font-size:11px; }
.d3 .d3-prog .dsh-sub { margin:8px 16px 2px; }
.d3 .d3-prog .dsh-recent { grid-template-columns:44px minmax(0,1fr) auto; height:34px; font-size:12.5px; }
.d3 .d3-prog .dsh-recent-who { display:none; }
/* 공지 · 재고 업데이트 · 탁송료 — 한 줄 세 칸, 재고 표는 칸 높이를 다 채운다 */
.d3 .dsh-card > .d3-tb { flex:1 1 auto; height:100%; }
.d3 .dsh-card > .d3-tb th, .d3 .dsh-card > .d3-tb td { padding:0 12px; }

/* 대시보드 인사 띠 — 배경 그림 한 장 (2026-10-17, 왼쪽 45% 는 글자 자리로 비운 그림) */
.d3 .dsh-hero { background:#1747d6 url('/static/dash_bg.jpg') right center / cover no-repeat; }
.d3 .dsh-hero::before { display:none; }
.d3 .dsh-hero-txt { max-width:46%; text-shadow:0 1px 2px rgba(10,30,110,.25); }
@media (max-width:760px){ .d3 .dsh-hero { background-position:72% center; } .d3 .dsh-hero-txt { max-width:58%; } }
.d3 .dsh-hero-txt { max-width:54%; } .d3 .dsh-hero h2 { word-break:keep-all; }
/* 인사말 손 흔들기 👋 — 크게 (2026-10-17 사장님) */
.d3 .dsh-hero .wave { font-size:1.6em; line-height:1; vertical-align:-.12em; margin-left:4px; }

/* 캐피탈 명부 화면 (2026-10-17 창 → 화면) */
#pane-capbook .card.cappage { max-width:860px; margin:0 auto; padding:18px 20px; }
#pane-capbook .cstkhead { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
#pane-capbook .cstkhead h2 { margin:0; font-size:18px; }
#pane-capbook #cr3CapNew { margin-left:auto; }
#pane-capbook .cr3caplist { max-height:none; overflow:visible; padding:0; }
#pane-capbook .cr3sumfoot { margin-top:10px; }
/* 새 로고(2026-10-18)는 글자가 진한 남색 — 다크모드에서는 그림 되돌리기를 빼서 화면과 같이 뒤집혀 밝은 글자로 보이게 */
@media screen { html.dark img.hlogo { filter:none; } }

/* 재고 업데이트 — 기아 · 현대 좌우 반반, 줄마다 ⬇ 받기 (2026-10-18) */
.d3 .dsh-card > .d3-halves { margin:0 !important; flex:1 1 auto; display:grid; grid-template-columns:1fr 1fr; }
.d3 .d3-half { min-width:0; display:flex; flex-direction:column; }
.d3 .d3-half + .d3-half { border-left:1px solid var(--d3-line); }
.d3 .d3-half-h { padding:8px 12px; background:#f7f8fa; border-bottom:1px solid var(--d3-line); }
.d3 .d3-half .d3-tb { width:100%; margin:0 !important; }
.d3 .d3-half .d3-tb td { height:40px; padding:0 0 0 12px; font-size:13px; }
.d3 .d3-half .d3-tb td.d3-nm { white-space:nowrap; }
.d3 .d3-half .d3-tb td.d3-tm { text-align:right; color:#9aa3ae; font-size:12px; padding-left:4px; }
.d3 .d3-half .d3-tb tr.오늘 td.d3-tm { color:#1a56db; font-weight:800; }
.d3 .d3-half .d3-tb td.d3-dl { width:40px; padding:0 8px 0 4px; text-align:center; }
.d3 .d3-dl a { display:inline-grid; place-items:center; width:28px; height:28px; border-radius:7px; border:1px solid var(--d3-line);
               color:#1a56db; font-weight:900; text-decoration:none; background:#fff; }
.d3 .d3-dl a:hover { background:#1a56db; border-color:#1a56db; color:#fff; }
.d3 .d3-half .d3-tb tr:first-child td { font-weight:800; }
.d3 .d3-half-h { display:flex; align-items:center; justify-content:space-between; padding-right:52px; }
.d3 .d3-half-h em { font-style:normal; font-size:11.5px; font-weight:700; color:#6b7684; }
.d3 .d3-half .d3-tb td.d3-tm { white-space:nowrap; font-variant-numeric:tabular-nums; }
.d3 .d3-dl a svg { display:block; }   /* 받기 단추 — 화살표 + 받침 그림 (2026-10-18) */
/* 다크모드 — 바로가기 그림글자(🔎💰📇…)는 원래 색으로 되돌린다 (2026-10-18). dark.js 의 .ic 와 같은 처리 */
@media screen { html.dark .dsh-go-ic, html.dark .dsh-none-ic { filter:invert(1) hue-rotate(180deg); } }

/* 현대 결과표도 기아 재고조회2 결과(#inv2Res)와 똑같이 (2026-10-18 사장님 — 현대↔기아 바꿔 눌러도 자리·모양이 같게) */
#hmcRes { width:100%; }
#hmcRes .hmccard { margin-top:0; }
#hmcRes .card { padding:0; border-radius:10px; overflow:visible; max-width:none; margin:0; width:100%; }
#hmcRes .tblwrap { max-height:none; border:0; border-radius:0; }
#hmcRes .cnt { padding:8px 10px; margin:0; border-bottom:1px solid #eef1f5; }
#hmcRes table { border-collapse:collapse; }
#hmcRes thead th { position:sticky; top:var(--머리높이, 96px); z-index:2; }
#hmcRes td, #hmcRes th { border-right:1px solid #f1f4f8; }
#hmcRes td:last-child, #hmcRes th:last-child { border-right:0; }
@media (max-width:760px){ #hmcRes thead th { top:0; } }   /* 폰은 기아와 같게 — 좌우로 미는 통 안에서 맨 위 */

/* ══ 대시보드 대화방 (2026-10-18) — 공지사항 칸 자리, 단톡방(/api/chat) 그대로 ══ */
.d3 .dsh-chat .dsh-chat-list { margin:0 !important; height:340px; overflow-y:auto; padding:10px 14px;
                                background:#f7f9fc; display:flex; flex-direction:column; gap:8px; }
.dsh-chat-m { max-width:86%; align-self:flex-start; }
.dsh-chat-m.나 { align-self:flex-end; text-align:right; }
.dsh-chat-who { font-size:11px; color:#9aa3ae; margin:0 2px 2px; display:flex; gap:5px; align-items:center; }
.dsh-chat-m.나 .dsh-chat-who { justify-content:flex-end; }
.dsh-chat-who b { color:#56607a; font-weight:800; }
.dsh-chat-who i { font-style:normal; font-size:10px; font-weight:800; color:#1a56db; background:#e8f0ff; padding:0 5px; border-radius:4px; }
.dsh-chat-who em { font-style:normal; }
.dsh-chat-say { display:inline-block; padding:7px 11px; border-radius:12px; border-top-left-radius:4px;
                background:#fff; border:1px solid #e6e9ee; font-size:13px; font-weight:600; color:#1a2b48;
                line-height:1.45; white-space:pre-wrap; word-break:break-word; text-align:left; }
.dsh-chat-m.나 .dsh-chat-say { background:#1a56db; border-color:#1a56db; color:#fff; border-radius:12px; border-top-right-radius:4px; }
.dsh-chat-m.나 .dsh-chat-say a { color:#fff; }
.dsh-chat-pic { display:inline-block; margin-left:4px; font-size:12px; opacity:.8; }
.dsh-chat-none { margin:auto; text-align:center; font-size:12.5px; font-weight:700; color:#9aa3ae; line-height:1.7; }
.dsh-chat-none button { display:block; margin:8px auto 0; padding:6px 12px; border:1px solid #cfdcf7; border-radius:8px;
                        background:#fff; color:#1a56db; font-family:inherit; font-weight:800; cursor:pointer; }
.d3 .dsh-chat .dsh-chat-form { margin:0 !important; display:flex; gap:6px; padding:10px 12px; border-top:1px solid var(--d3-line); }
.dsh-chat-form input { flex:1 1 auto; min-width:0; padding:9px 11px; border:1px solid #dfe4ea; border-radius:8px;
                       font-family:inherit; font-size:13px; }
.dsh-chat-form input:focus { outline:0; border-color:#5b8dff; box-shadow:0 0 0 3px #e3edff; }
.dsh-chat-form button { flex:0 0 auto; padding:0 14px; border:0; border-radius:8px; background:#1a56db; color:#fff;
                        font-family:inherit; font-size:13px; font-weight:800; cursor:pointer; }
.dsh-chat-form button:hover { background:#1747b8; }
.d3 .dsh-chat .dsh-chat-list { height:auto; flex:1 1 0; min-height:240px; }   /* 칸 높이는 옆 칸(탁송료)에 맞추고 목록이 남는 자리를 채운다 */

/* 대시보드 인사 띠 — 지금 이용 중 · 오늘 방문 (2026-10-18) */
.dsh-live { display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }
.dsh-live span { display:inline-flex; align-items:center; gap:6px; padding:5px 12px; border-radius:999px;
                 background:rgba(255,255,255,.16); color:#fff; font-size:12.5px; font-weight:700; backdrop-filter:blur(4px); }
.dsh-live b { font-size:14px; font-weight:900; font-variant-numeric:tabular-nums; }
.dsh-live .dot { width:8px; height:8px; border-radius:50%; background:#3ee08f; box-shadow:0 0 0 0 rgba(62,224,143,.7); animation:dshLive 1.8s infinite; }
@keyframes dshLive { 0% { box-shadow:0 0 0 0 rgba(62,224,143,.7); } 70% { box-shadow:0 0 0 7px rgba(62,224,143,0); } 100% { box-shadow:0 0 0 0 rgba(62,224,143,0); } }

/* 대시보드 차종별 재고 — 기아 · 현대 좌우 반반 (2026-10-18) */
.d3 .dsh-card > .dsh-carhalves { margin:0 !important; display:grid; grid-template-columns:1fr 1fr; }
.d3 .dsh-carhalf { min-width:0; }
.d3 .dsh-carhalf + .dsh-carhalf { border-left:1px solid var(--d3-line); }
.d3 .dsh-carhalf .d3-half-h { padding-right:16px; }
.d3 .dsh-cars1 { display:flex; flex-direction:column; gap:2px; padding:8px 12px 10px; }
@media (max-width:1080px){ .d3 .dsh-card > .dsh-carhalves { grid-template-columns:1fr; } .d3 .dsh-carhalf + .dsh-carhalf { border-left:0; border-top:1px solid var(--d3-line); } }
.d3 .dsh-cars1 .dsh-car { grid-template-columns:118px minmax(0,1fr) 56px; }   /* 팰리세이드(LX3) 같은 긴 이름이 안 잘리게 */

/* 대시보드 이용자 누구 (2026-10-18) — 최고관리자만 누른다 */
.dsh-live.봄 span { cursor:pointer; }
.dsh-live.봄 span:hover { background:rgba(255,255,255,.28); }
.dshwho-tabs { flex-wrap:wrap; }
.dshwho tr.me td { background:rgba(47,107,255,.07); }
.dshwho { position:relative; background:var(--card, #fff); color:var(--text, #1d2433); border-radius:16px; padding:20px 20px 16px;
          width:min(640px, calc(100vw - 32px)); max-height:80vh; display:flex; flex-direction:column; box-shadow:0 20px 60px rgba(0,0,0,.25); }
.dshwho .imedx { position:absolute; top:12px; right:12px; }
.dshwho-h { font-size:17px; font-weight:900; margin-bottom:12px; }
.dshwho-tabs { display:flex; gap:6px; margin-bottom:10px; }
.dshwho-tabs button { border:1px solid rgba(128,128,128,.3); background:transparent; color:inherit; border-radius:999px; padding:5px 14px; font-weight:700; cursor:pointer; }
.dshwho-tabs button.on { background:#2f6bff; border-color:#2f6bff; color:#fff; }
.dshwho-b { overflow:auto; }
.dshwho table { width:100%; border-collapse:collapse; font-size:13px; }
.dshwho th { text-align:left; font-weight:700; opacity:.65; padding:6px 8px; border-bottom:1px solid rgba(128,128,128,.25); position:sticky; top:0; background:var(--card, #fff); }
.dshwho td { padding:7px 8px; border-bottom:1px solid rgba(128,128,128,.12); white-space:nowrap; }
.dshwho td i { font-style:normal; opacity:.6; font-size:12px; }
.dshwho td.n { font-variant-numeric:tabular-nums; }
.dshwho-0 { padding:30px; text-align:center; opacity:.6; }

/* 가입 구분 AG / CM (2026-10-19) */
.ukind { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:0 0 8px; }
.ukind button { display:flex; flex-direction:column; align-items:center; gap:1px; padding:9px 6px; border-radius:10px;
                border:1.5px solid #d6dbe4; background:#fff; color:#1a2b48; cursor:pointer; font:inherit; }
.ukind button b { font-size:15px; font-weight:900; }
.ukind button span { font-size:11.5px; opacity:.65; }
.ukind button:hover { border-color:#9db4ff; }
.ukind button.on { border-color:#2f6bff; background:#eef3ff; color:#1f4fd8; box-shadow:0 0 0 2px rgba(47,107,255,.15); }

/* 정산통계 월별 한눈에 — 연 전체 (2026-10-19) */
.stb.stm.전체 { font-weight:700; margin-right:4px; }
.styrsum { margin-bottom:12px; }
.styrsum table { width:auto; min-width:560px; }
.styrsum .styrrow { cursor:pointer; }
.styrsum .styrrow:hover td { background:#eef4ff; }

/* 가입 창 CM 브랜드 단추 (2026-10-19) */
.ubrand { margin:0 0 8px; }
.ubrand .ulab { display:block; margin:2px 0 6px; }
.ubrandbtns { display:flex; flex-wrap:wrap; gap:6px; }
.ubrandbtns button { padding:7px 12px; border:1px solid #cdd5df; border-radius:999px; background:#fff;
                     font-size:13px; font-weight:700; color:#3b4b63; cursor:pointer; }
.ubrandbtns button:hover { border-color:#9db4ff; }
.ubrandbtns button.on { border-color:#2f6bff; background:#eef3ff; color:#1f4fd8; box-shadow:0 0 0 2px rgba(47,107,255,.15); }
#uBrandEtc { margin-top:8px; }

/* 가입 창 — 이름 · 직함을 한 줄에 나란히 (AG · CM 모두, 2026-10-19 사장님).
   #uMore 를 줄바꿈 flex 로 두고 나머지 칸은 한 줄 가득, 이름·직함만 반씩 */
#uMore { display:flex; flex-wrap:wrap; column-gap:8px; }
#uMore > * { flex:1 1 100%; min-width:0; }
#uMore > #uName, #uMore > #uRank { flex:1 1 0; width:auto; }

/* 가입 창 브랜드 · 딜러사 드롭다운 (2026-10-19) */
#uMore .usel { width:100%; height:46px; padding:0 12px; margin:0 0 8px; border:1px solid #cdd5df; border-radius:10px;
               background:#fff; font-size:14.5px; color:#1f2a3c; }
#uMore .usel:focus { outline:none; border-color:#2f6bff; box-shadow:0 0 0 2px rgba(47,107,255,.15); }

/* 가입 창 소속 고르기 — 단추 + 창 (왼쪽 브랜드 · 오른쪽 딜러사, 2026-10-19) */
.uorgbtn { width:100%; height:46px; margin:0 0 8px; padding:0 14px; display:flex; align-items:center; gap:6px;
           border:1px dashed #9db4ff; border-radius:10px; background:#f5f8ff; color:#1f4fd8; font-size:14.5px;
           font-weight:700; cursor:pointer; text-align:left; }
.uorgbtn span { margin-left:auto; font-size:12.5px; opacity:.75; }
.uorgbtn.on { border-style:solid; border-color:#cdd5df; background:#fff; color:#1f2a3c; font-weight:600; }
.uorgbtn.on b { color:#1f4fd8; }
#uOrgBg { z-index:80; }
.uorg { width:min(640px, calc(100vw - 24px)); height:min(560px, calc(100vh - 40px)); background:#fff; border-radius:16px;
        box-shadow:0 24px 70px rgba(16,24,40,.3); display:flex; flex-direction:column; overflow:hidden; }
.uorghd { display:flex; align-items:center; padding:14px 16px; border-bottom:1px solid #edf0f5; font-size:16px; }
.uorghd .imedx { margin-left:auto; border:0; background:none; font-size:18px; cursor:pointer; color:#56607a; }
.uorgbody { flex:1; min-height:0; display:grid; grid-template-columns:minmax(110px, 36%) 1fr; }
.uorgl { overflow-y:auto; background:#f6f8fb; border-right:1px solid #edf0f5; padding:6px; }
.uorgg { font-size:11.5px; font-weight:800; color:#8a93a0; padding:10px 8px 4px; }
.uorgl button { display:block; width:100%; text-align:left; padding:9px 10px; border:0; border-radius:8px;
                background:none; font-size:14px; font-weight:600; color:#3b4b63; cursor:pointer; }
.uorgl button:hover { background:#e9eef7; }
.uorgl button.on { background:#1f4fd8; color:#fff; }
.uorgr { overflow-y:auto; padding:12px 14px; display:flex; flex-direction:column; gap:8px; }
.uorgt { font-size:15px; font-weight:800; color:#0f1b33; }
.uorgr input { width:100%; height:42px; padding:0 12px; border:1px solid #cdd5df; border-radius:9px; font-size:14px; }
.uorglist { display:flex; flex-direction:column; gap:6px; }
.uorglist button { text-align:left; padding:11px 12px; border:1px solid #e3e8ef; border-radius:9px; background:#fff;
                   font-size:14px; font-weight:600; color:#1f2a3c; cursor:pointer; }
.uorglist button:hover { border-color:#2f6bff; background:#eef3ff; color:#1f4fd8; }
.uorgnone { padding:14px 4px; color:#8a93a0; font-size:13px; }
.uorgetc { display:flex; gap:6px; margin-top:4px; }
.uorgetc button, .uorgok { flex:none; height:42px; padding:0 14px; border:0; border-radius:9px; background:#1f4fd8;
                           color:#fff; font-weight:700; cursor:pointer; }

/* 추천인 (2026-10-19) — 가입 창 안내 · 내정보 칸 */
.ulab .opt { font-weight:400; color:#8a93a0; font-size:12px; }
.urefhint { font-size:12px !important; color:#8a5a00 !important; background:#fff8e6; border-radius:8px; padding:7px 10px; margin:-2px 0 10px !important; }
.mereflock { background:#fff8e6; color:#6b4a00; border-radius:8px; padding:8px 10px; }
.merefask { padding:10px 12px; border:1px solid #cdd8f5; border-radius:10px; background:#f5f8ff; line-height:1.6; }
.merefask span { font-size:12.5px; color:#b42318; }
.merefbtns { display:flex; gap:8px; margin-top:10px; }
.merefbtns .btn { flex:1; }
.mereffrom { margin-top:10px; padding-top:10px; border-top:1px dashed #e3e8ef; }

/* 내정보 — 내 포인트 (2026-10-19) */
.meptbal { font-size:26px; font-weight:900; color:#1a56db; letter-spacing:-.5px; margin:2px 0 6px; font-variant-numeric:tabular-nums; }
.meptbal small { font-size:14px; color:#7a8698; font-weight:700; }
.meptlist { border-top:1px solid #eef0f3; }
.meptrow { display:flex; gap:8px; align-items:center; padding:7px 0; border-bottom:1px solid #f3f5f8; font-size:12.5px; }
.meptwhy { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#3b4b63; }
.meptrow b { font-variant-numeric:tabular-nums; } .meptrow b.p { color:#1a56db; } .meptrow b.m { color:#c0392b; }
.dsh-mine { margin-top:6px; }   /* 내 포인트 · 추천 (2026-10-19) */

/* 내정보 — 비밀번호 변경 단추 · 창 (2026-10-19) */
.mepwbtn { margin-left:auto; padding:6px 11px; border:1px solid #d8dde4; border-radius:8px; background:#fff;
           font-size:12.5px; font-weight:700; color:#3b4b63; cursor:pointer; white-space:nowrap; }
.mepwbtn:hover { border-color:#8fb0ea; color:#1a56db; }
.mepwmodal { max-width:380px; }
.mepwhd { display:flex; align-items:center; }
.mepwhd h3 { margin:0; }
.mepwhd .imedx { margin-left:auto; border:0; background:none; font-size:17px; cursor:pointer; color:#667; }
.mepwmodal .melab { display:block; margin-bottom:8px; }

/* 💬 CR3 문자 기록 (2026-10-23) — [문자] 칩과 창 */
.cr3doc.문자 { flex:1 1 0; }
.cr3doc.문자.done { border-color:#c7d7fb; background:#eef3ff; color:#1a56db; }
.cr3doc.문자.done:hover { background:#1a56db; border-color:#1a56db; color:#fff; }
.cr3doc.문자.none { color:#a0a8b5; }
.cr3doc.문자 i { font-weight:800; }
.cr3sms .smsl { display:flex; flex-direction:column; gap:10px; }
.cr3sms .smsi { border:1px solid #e3e8ef; border-radius:10px; padding:10px 12px; background:#fafbfd; }
.cr3sms .smsh { display:flex; flex-wrap:wrap; gap:4px 12px; align-items:baseline; font-size:12.5px; color:#6b7a90; margin-bottom:6px; }
.cr3sms .smsh b { color:#1a2b48; font-size:13.5px; }
.cr3sms .smsh .ok { color:#0f766e; font-weight:700; }
.cr3sms .smsh .bad { color:#b42318; font-weight:700; }
.cr3sms .smsb { white-space:pre-wrap; word-break:break-word; font-size:13.5px; line-height:1.55; color:#33404f; }
.cr3sms .smsnone { padding:30px 0; text-align:center; color:#8a93a0; }

/* 보험 · 문자 칩 칸 (2026-10-23) — 차량가 오른쪽, 칩 하나가 칸을 채운다. 문자는 아주 작게 */
#pane-cr3 .cr3xl td.cr3chiptd { vertical-align:middle; padding:2px 2px; }
#pane-cr3 .cr3xl td.cr3chiptd .cr3doc { width:100%; justify-content:center; flex-direction:column; gap:1px;
  height:auto; min-height:34px; padding:2px 1px; font-size:10.5px; overflow:hidden; }
#pane-cr3 .cr3xl td.cr3chiptd .cr3doc i { font-size:10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
#pane-cr3 .cr3xl td.cr3chiptd.문자 .cr3doc { font-size:9px; min-height:28px; }
#pane-cr3 .cr3xl td.cr3chiptd.문자 .cr3doc i { font-size:9px; }

/* 진행목록 💬 문자 창 (2026-10-23) */
.prgsms { display:flex; flex-direction:column; gap:10px; }
.prgsms-i { border:1px solid #e3e8ef; border-radius:10px; padding:10px 12px; background:#fafbfd; }
.prgsms-h { display:flex; flex-wrap:wrap; gap:4px 12px; align-items:baseline; font-size:12.5px; color:#6b7a90; margin-bottom:6px; }
.prgsms-h b { color:#1a2b48; font-size:13.5px; }
.prgsms-b { white-space:pre-wrap; word-break:break-word; font-size:13.5px; line-height:1.55; color:#33404f; }
/* 정산처리 — 받으면서 인도 줄을 CR3 완료로 (2026-10-23) */
.stxfin { margin-top:12px; padding-top:10px; border-top:1px dashed #d5dbe5; display:flex; flex-direction:column; gap:5px; }
.stxfin .btn { align-self:flex-end; background:#e8f5ec; color:#1d6b3a; border:1px solid #9ccfae; font-weight:700; }
.stxfin .btn.warn { background:#fff1e6; color:#b4500f; border-color:#f0b07f; }
.stxfin .btn:disabled { opacity:.6; cursor:wait; }
.stxfin-m { font-size:12.5px; color:#5b6676; text-align:right; }

/* CM(카마스터·딜러) 계정 — 수당은 안 보인다 (2026-10-24 사장님). body.cm계정 은 app.js crm3탭보이기 가 붙인다 */
body.cm계정 #prgPay, body.cm계정 .prgxl .prgm.mine, body.cm계정 .rksu { display:none !important; }
/* CR3 탁송 한 칸 (2026-10-24) — 왼쪽 탁송지 두 줄, 오른쪽 끝 위 연락처 · 아래 탁송료 */
#pane-cr3 .cr3xl td.cr3side2 { padding:0; }
#pane-cr3 .cr3s2 { display:flex; align-items:stretch; }
#pane-cr3 .cr3s2a { flex:1 1 auto; min-width:0; display:flex; align-items:center; }
#pane-cr3 .cr3s2a .cr3ln { width:100%; }
#pane-cr3 .cr3s2b { flex:0 0 90px; border-left:1px solid #eef1f5; }
#pane-cr3 .cr3s2b .cr3ln { height:21px; }
#pane-cr3 .cr3s2b .cr3in { width:100%; text-align:right; }
/* 고객이름 · 사업자명 한 줄 (2026-10-24) */
#pane-cr3 .cr3ln.many > input[data-k="사업자명"] { flex:1 1 60px; min-width:44px; border-left:1px solid #eef1f5; }
/* 탁송 칸을 줄이고 (2026-10-24) 탁송지는 작은 글씨 세 줄까지 */
#pane-cr3 .cr3s2a textarea.cr3addr { height:38px; font-size:10.5px; line-height:1.18; padding:1px 3px; }
#pane-cr3 .cr3ln.many > input[data-k="사업자명"]::placeholder { color:#c3c9d2; }
/* 고객이름은 세 글자면 충분 — 남는 폭은 사업자명에 (2026-10-24) */
#pane-cr3 .cr3ln.many > input[data-k="고객이름"] { flex:0 0 46px; min-width:40px; }
#pane-cr3 .cr3ln.many > input[data-k="사업자명"] { flex:1 1 auto; }

/* 상품권 교환 (2026-10-25) — 내정보 > 내 포인트 */
.melab select { display:block; width:100%; margin-top:4px; padding:9px 11px; border:1px solid #d4d9e0;
                border-radius:8px; font-family:inherit; font-size:13.5px; background:#fff; color:#1f2937; }
.meptform { border:1px solid #e3e8ef; border-radius:10px; padding:12px; background:#f8fafc; margin:4px 0 8px; }
.meptex { margin:8px 0 4px; border:1px dashed #f0b429; border-radius:8px; padding:2px 10px; background:#fffbeb; }
.meptex .meptrow { border-bottom:0; }
.meptrow .btn.sm { padding:3px 9px; font-size:11.5px; margin-left:auto; }
#mePtEx { margin:6px 0 10px; }
