
/* Quotation components share the workspace palette, type and control geometry. */
:root{--quote-border:#e5e8ef;--quote-soft:#f7f8fb;--quote-blue:#0071e3;--quote-ink:#202631}
.page-admin .qq-setup,.page-customer .pick-setup{padding:14px;background:var(--quote-soft);border:1px solid var(--quote-border);border-radius:13px}
.page-admin .qq-setup{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;gap:8px;padding:10px 12px}
.page-admin .qq-setup-row{gap:8px;padding:0;min-width:0;flex-wrap:nowrap}
.page-admin .qq-setup-row:last-child{grid-column:1/-1}
.page-admin .qq-setup-label,.page-admin .pick-label,.page-customer .pick-label{font-size:15px;font-weight:600;color:#5c6472;border:0}
.page-admin .qq-setup-opts{gap:7px;flex-wrap:wrap}
.page-admin .qq-opt,.page-admin .qq-setup .qq-opt{font-family:inherit;min-height:42px;padding:8px 14px;font-size:16px;font-weight:600;border:1px solid #e2e5ed;background:#fff;color:#4f5866;box-shadow:none;border-radius:10px}
.page-admin .qq-opt.on,.page-admin .qq-opt-rent.on{color:#006bd6;background:#eaf3ff;border-color:#bedaff}
.page-admin .qq-opt-grade.on,.page-admin .qq-opt-sale.on{color:#7650ab;background:#f2edfb;border-color:#dfd2f2}
.page-admin .qq-opt-3d,.page-admin .qq-opt-list{display:inline-flex;align-items:center;gap:8px}
.page-admin .qq-setup-hint,.page-admin .qq-3d-panel span{font-size:14px;color:#697281;line-height:1.6}
.page-admin .qq-3d-panel{background:#f5f8fd;border:1px solid #dce7f6;border-radius:13px;box-shadow:none}
.page-admin .qq-3d-panel b{font-size:19px;color:var(--quote-ink)}
.page-admin .pick-group,.page-admin .pick-group.grade-group{border:1px solid var(--quote-border);border-radius:10px;background:#f8f9fc;padding:4px 7px;gap:7px}
.page-admin .seg .subtab,.page-admin .subtabs button,.page-admin .quick-cat,.page-admin .grade-buttons button{font-family:inherit;font-size:16px;font-weight:600;min-height:40px;border:1px solid var(--quote-border);border-radius:9px;box-shadow:none;background:#fff;color:#586272;padding:7px 12px}
.page-admin .seg .subtab.active,.page-admin .subtabs button.active,.page-admin .quick-cat.active,.page-admin .grade-buttons button.active{background:#eaf3ff;color:#006bd6;border-color:#c3dcf7;box-shadow:none}
.page-admin .grade-seg .subtab.active{background:#f2edfb;color:#7650ab;border-color:#dfd2f2}
.page-admin .tier-set-btn,.page-admin .set-manage{background:#edf4ff;color:#086bc6;border:1px solid #d2e3f9;border-radius:9px;min-height:40px;font-size:16px;font-weight:600;box-shadow:none}
.page-admin .tier-set-btn:hover{background:#dfedff}
.page-admin .cat-btn{font-size:15px;min-height:40px;font-weight:600;border-radius:9px;background:#fff;color:#61728b;border:1px solid #dce5f1;box-shadow:none}
.page-admin .cat-btn.active{background:#eaf3ff;color:#0071e3;border-color:#c3dbfa}
.page-admin .cat-btn.active em{background:#d6e8ff;color:#0067ce}
.page-admin .set-pick select,.page-admin .set-row select{font:inherit;font-size:16px;min-height:40px;background:#fff;border-color:var(--quote-border);color:var(--quote-ink)}
.page-admin .qq-cart,.page-admin .set-card{background:#fff;border:1px solid var(--quote-border);border-radius:12px;box-shadow:none}
.page-admin .qq-cart-head,.page-admin .qq-cart-title{background:#f0f5fd;color:#315d97;font-size:16px;font-weight:600}
.page-admin .qq-cart-items,.page-admin .set-card-body,.page-admin .set-preview{font-size:14px;line-height:1.6;color:#606a79}
.page-admin .qq-cart-items em{color:#657083}
.page-admin .qq-cart-del{color:#ba4355;background:#fff0f3;border-color:#f0d8df}
/* 담은 세트 — 세트 이름·× 개수 확실히 보이게(2026-09-22 오너 지시). */
.page-admin .qq-cart-title{background:transparent}
.page-admin .qq-cart-title b{color:#0f172a;font-size:16.5px;font-weight:800}
.page-admin .qq-cart-x{font-size:16px;font-weight:900;color:#fff;background:#e8842c;padding:3px 14px;border-radius:999px}
/* 1·2·3등급 버튼을 등급별로 다른 색으로(2026-09-22 오너 지시). 품목/가격의 등급색(.gr-g1/2/3)과 통일. */
.page-admin .qq-opt-grade.qq-g1.on{background:#1d4ed8;border-color:#1d4ed8;color:#fff}
.page-admin .qq-opt-grade.qq-g2.on{background:#0d9488;border-color:#0d9488;color:#fff}
.page-admin .qq-opt-grade.qq-g3.on{background:#c2740c;border-color:#c2740c;color:#fff}
/* ===== 1·2·3등급 색 통일(2026-09-23 오너 "모든 곳 통일") — 1=파랑 2=청록 3=앰버 =====
   품목/가격(.gr-g1/2/3)·직접입력(.qq-g)과 같은 색을 견적데이터 탭·발송·뱃지에도 그대로. */
.page-admin .grade-buttons #grade-1.active{background:#eaf0ff;color:#1d4ed8;border-color:#bcd2f7}
.page-admin .grade-buttons #grade-2.active{background:#e2f6f1;color:#0d9488;border-color:#9fe0d3}
.page-admin .grade-buttons #grade-3.active{background:#fff3e0;color:#c2740c;border-color:#f4c78a}
.page-admin .sg-grades button.sg-g1.active{background:#1d4ed8!important;border-color:#1d4ed8!important;color:#fff}
.page-admin .sg-grades button.sg-g2.active{background:#0d9488!important;border-color:#0d9488!important;color:#fff}
.page-admin .sg-grades button.sg-g3.active{background:#c2740c!important;border-color:#c2740c!important;color:#fff}
.page-admin .badge-grade.bg-g1{background:#eaf0ff!important;color:#1d4ed8!important;border-color:#bcd2f7!important}
.page-admin .badge-grade.bg-g2{background:#e2f6f1!important;color:#0d9488!important;border-color:#9fe0d3!important}
.page-admin .badge-grade.bg-g3{background:#fff3e0!important;color:#c2740c!important;border-color:#f4c78a!important}
.page-admin .quick-entry td.qname-cell{cursor:pointer}
.page-admin .quick-entry td.qname-cell:hover b{color:#0071e3;text-decoration:underline}
.page-admin .quick-entry th{background:#f7f8fb;color:#596474;font-size:15px;font-weight:600;border-color:var(--quote-border)}
.page-admin .quick-entry td{font-size:16px;color:#343d49;border-color:#edf0f5;background:#fff}
/* 직접입력표 세로 칸 구분선(2026-09-23 오너 "세로선 다 그어줘"). 끝 칸·빈 채움칸은 긋지 않는다. */
.page-admin .quick-entry th{border-right:1px solid #dfe4ee}
.page-admin .quick-entry td{border-right:1px solid #ececf3}
.page-admin .quick-entry th:last-child,.page-admin .quick-entry td:last-child,.page-admin .quick-entry th.cell-fill,.page-admin .quick-entry td.cell-fill{border-right:0}
/* 표 정렬 통일(2026-09-23 오너 "정렬 좀 깔끔하게" → V3.2.8 "체크 버튼 위치가 비뚤어"). 머리글은
   그 칸의 값과 같은 쪽으로 맞춘다. 표 본문은 기존 규칙으로 가운데이므로 머리글도 가운데,
   숫자·금액 칸(.num)은 머리글·값 모두 오른쪽, 체크·버튼 칸은 가운데.
   V3.2.7에서 머리글만 왼쪽으로 보내 본문(가운데)과 어긋났던 것을 되돌린다.
   회계표의 .master-table.compact .num 가 가운데였던 것(admin_styles 608행)은 오른쪽으로 덮는다. */
.page-admin .master-table th{text-align:center;vertical-align:middle}
.page-admin .master-table th.cell-pick,.page-admin .master-table td.cell-pick,
.page-admin .master-table th.cell-rowops,.page-admin .master-table td.cell-rowops{text-align:center;vertical-align:middle}
.page-admin .master-table td.col-memo{text-align:left}
/* 조회 줄의 월·날짜 칸이 화면 끝까지 늘어나던 것(회계 등) → 내용 크기만 차지(2026-09-23). */
.page-admin .toolbar input[type=month],.page-admin .toolbar input[type=date]{flex:0 0 190px;width:190px;min-width:0}
.page-admin .toolbar select{flex:0 0 auto;min-width:120px}
/* 표 안의 정산·수정 버튼과 세금계산서 상태 표시가 너무 작아 읽기 힘들던 것 → 읽을 수 있는 크기로. */
.page-admin .master-table td.row-more button{font-size:14px;min-height:34px;padding:4px 14px;font-weight:600}
.page-admin .master-table .tax-pill{font-size:13px;padding:3px 10px;font-weight:700}
.page-admin .master-table td.num,.page-admin .master-table th.num,
.page-admin .master-table.compact .num{text-align:right;font-variant-numeric:tabular-nums}
.page-admin .master-table td.row-more,.page-admin .master-table th.row-more{text-align:center}
/* 주문한(수량>0) 행 = 주황. 고객 목록·3D의 주황 선택색과 통일(2026-09-22 오너 지시).
   admin_styles의 tr.picked td{...!important}를 이기려 !important. */
.page-admin .quick-entry tr.picked td{background:#ffe9d4!important}
.page-admin .quick-entry tr.picked td.cell-rowops{box-shadow:inset 4px 0 0 #e8842c}
.page-admin .quick-entry td.cost-cell{background:#faf7ff;color:#765597}
.page-admin .quick-entry .qunit{font-size:16px;border:1px solid #dfe5ef;border-radius:8px;background:#fff}
.page-admin .qty-stepper,.page-customer .qty-stepper{border-color:#d6e2f2;border-radius:9px;box-shadow:none;background:#fff}
/* ＋ 파랑 · － 빨강 — 고객 카드(.qty)·3D(.b3-row .st)와 색을 완전히 통일한다(2026-09-22 오너 지시).
   row-reverse라 ＋(last-child)는 왼쪽, －(first-child)는 오른쪽에 온다. */
.page-admin .qty-stepper .step:last-child,.page-customer .qty-stepper .step:last-child{background:#eff6ff;color:#1d4ed8;border-color:#cfe0f5;font-weight:800}
.page-admin .qty-stepper .step:first-child,.page-customer .qty-stepper .step:first-child{background:#fef2f2;color:#dc2626;border-color:#fecaca;font-weight:800}
.page-admin .qty-stepper input,.page-customer .qty-stepper input{background:#fff;color:#202631;font-weight:600}
/* 고객 견적서 — 확정 전 '내 정보 확인·수정' 카드 (2026-09-22) */
.page-customer .cust-info{margin:16px 0 4px;padding:16px;background:#f7f9fc;border:1px solid #e3e9f2;border-radius:12px;display:flex;flex-direction:column;gap:11px}
.page-customer .cust-info .ci-head{font-size:15px;font-weight:700;color:#293548}
.page-customer .ci-line{display:flex;flex-direction:column;gap:5px}
.page-customer .ci-line>span{font-size:14px;font-weight:600;color:#51607a}
.page-customer .ci-line input,.page-customer .ci-line textarea{width:100%;padding:11px 12px;border:1px solid #cdd6e4;border-radius:9px;font:inherit;font-size:16px;background:#fff;color:#1c2430;box-sizing:border-box}
.page-customer .ci-line textarea{resize:vertical;min-height:52px}
.page-customer .ci-line input:focus,.page-customer .ci-line textarea:focus{outline:none;border-color:#0071e3;box-shadow:0 0 0 3px #0071e320}
/* 결제 안내(요청서 #8) — 확정된 견적에 QR+계좌+금액. */
.pay-box{margin:16px 0;padding:18px;background:#fff8ef;border:1px solid #f2d9b8;border-radius:14px;text-align:center}
.pay-head{font-size:18px;font-weight:800;color:#b45309;margin-bottom:10px}
.pay-amount{font-size:16px;color:#334155;margin-bottom:6px}
.pay-amount b{font-size:22px;color:#0f172a;margin-left:4px}
.pay-acct{font-size:15px;color:#475569;margin:12px 0 4px}
.pay-acct b{color:#0f172a;margin-left:6px}
.pay-qr{display:inline-block;padding:10px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-top:14px}
.pay-qr img{display:block;width:200px;height:200px}
.pay-qr-cap{font-size:13px;color:#64748b;margin-top:8px}
.pay-link{display:block;margin-top:14px;padding:15px;background:#0071e3;color:#fff;border-radius:10px;font-weight:800;font-size:17px;text-decoration:none}
.pay-sub{font-size:13px;color:#64748b;margin-top:7px}
.pay-ref{font-size:13px;color:#8a5a12;background:#fff3e0;border:1px dashed #f2c78a;border-radius:10px;padding:9px 12px;margin-top:12px;line-height:1.5}
.pay-ref b{color:#b45309}
/* QR·거래조건은 접어 둔다(할아버지도 쉽게 — 큰 버튼·계좌만 먼저 보이게). */
.pay-box .pay-more{margin-top:12px}
.pay-box .pay-more summary,.page-quote .terms-box summary{cursor:pointer;font-size:14px;font-weight:600;color:#5b6b80;padding:9px 0;list-style:none}
.pay-box .pay-more summary::-webkit-details-marker,.page-quote .terms-box summary::-webkit-details-marker{display:none}
.pay-box .pay-more summary::before,.page-quote .terms-box summary::before{content:'▸ ';color:#9aa7b8}
.pay-box .pay-more[open] summary::before,.page-quote .terms-box[open] summary::before{content:'▾ '}
.page-quote .terms-box{margin:8px 0}
/* 탭/카테고리를 눌러도 버튼이 안 밀리게 — 활성 상태에서 글자 굵기가 달라지면 폭이 바뀌어
   옆 버튼이 이리저리 움직였다. 활성/비활성을 같은 굵기로 고정한다(2026-09-22 오너 지시).
   활성 표시는 배경·색으로 충분히 구분된다. */
.page-admin .nav-cats .nav-home,.page-admin .nav-cats .nav-cat,
.page-admin .nav-cats .nav-home.active,.page-admin .nav-cats .nav-cat.active{font-weight:600}
.page-admin .admin-topnav .nav-items button,.page-admin .admin-topnav .nav-items button.active{font-weight:800}
.page-admin .admin-topnav button,.page-admin .admin-topnav button.active{font-weight:600}
.page-admin .quick-totals .tot span{font-size:14px;font-weight:500;color:#637083}
.page-admin .quick-totals .tot b{font-size:18px;font-weight:650;color:#293548}
.page-admin .quick-totals .tot.grand b{font-size:23px;color:#0071e3}
.page-admin .qq-preview-empty{display:flex;align-items:center;justify-content:center;min-height:180px;padding:24px;color:#727d8d;font-size:16px;font-weight:400;background:#fafbfe;line-height:1.7;text-align:center}

/* Saved estimates and price editing use the same surfaces as the board. */
.page-admin .quote-workspace .admin-search{background:#fafbfe;border-bottom:1px solid var(--quote-border);padding:12px}
.page-admin .quote-workspace .admin-search input,.page-admin .quote-workspace .admin-search select{font-size:16px;min-height:42px;border:1px solid #dce2ec;border-radius:10px;background:#fff}
.page-admin .quote-workspace .admin-search-row{flex-wrap:wrap;gap:7px}
.page-admin .quote-workspace .admin-search input{flex:1 1 100%;min-width:0;width:100%}
.page-admin .quote-workspace .admin-search select{flex:1;min-width:0}
.page-admin .quote-workspace .request-row{padding:13px 12px;border-bottom:1px solid #edf0f5;background:#fff;box-shadow:none}
.page-admin .quote-workspace .request-row:hover{background:#f7faff}
.page-admin .quote-workspace .request-row.open{background:#eef5ff;box-shadow:inset 3px 0 0 #0071e3}
.page-admin .quote-workspace .request-row.picked{background:#f0f5fd}
.page-admin .quote-workspace .rr-company{font-size:17px;font-weight:650;color:#263244}
.page-admin .quote-workspace .request-row .line2{font-size:14px;line-height:1.6;color:#697487}
.page-admin .quote-workspace .request-row .rr-addr{color:#697487}
.page-admin .quote-workspace .badge,.page-admin .estimate-detail .badge{font-size:14px;font-weight:600;background:#eef4fd;border:0;color:#3569a9;border-radius:6px;padding:4px 7px;box-shadow:none}
.page-admin .estimate-detail{padding:16px}
.page-admin .estimate-detail h2{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-size:23px;letter-spacing:-.025em;margin-bottom:12px}
.page-admin .estimate-detail h3{font-size:18px;font-weight:650;margin:18px 0 10px}
.page-admin .estimate-detail .form-grid{gap:10px}
.page-admin .estimate-detail .field{gap:5px}
.page-admin .estimate-detail .field label{font-size:15px;font-weight:500;color:#5e6a7b}
/* 등급 뱃지 색은 위 통일 규칙(.badge-grade.bg-g1/2/3)이 정한다 — 여기서 보라로 덮지 않는다. */
.page-admin .grade-hint{padding:10px 12px;background:#f4f7fc;color:#626d7e;border:1px solid #e5ebf4;border-radius:9px;font-size:14px;font-weight:400;line-height:1.6}
.page-admin .quote-view-status{font-size:14px;font-weight:500;padding:8px 11px;border-radius:8px;background:#ecf7f0;color:#378155}
.page-admin .quote-view-status.unread{color:#667285;background:#f2f4f8}
.page-admin .estimate-items-scroll{overflow:auto;border:1px solid var(--quote-border);border-radius:11px;margin-top:10px}
.page-admin .estimate-items-scroll .edit-items{min-width:850px;margin:0}
.page-admin .estimate-detail .edit-items input:not(.qty-input),.page-admin .estimate-detail .edit-items select{font-size:16px;min-height:38px;background:#fff;border:1px solid #dce3ef;border-radius:8px}
.page-admin .estimate-detail .i-spec{font-size:14px;color:#69758a;font-weight:400}
.page-admin .estimate-detail .add-line{gap:8px;padding:10px;background:#f7f9fc;border-radius:10px}
.page-admin .estimate-detail .add-line input,.page-admin .estimate-detail .add-line select{font-size:16px;min-height:40px;border:1px solid #dce3ef;border-radius:8px}
.page-admin .estimate-detail .add-line button{font-size:16px;min-height:40px}
.page-admin .totalbox{background:#f5f8fd;border:1px solid #e0e8f4;border-radius:12px;color:#334155;padding:12px;font-size:16px}
.page-admin .totalbox .grand{color:#0071e3;font-weight:700}
.page-admin .estimate-detail .totalbox{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.page-admin .estimate-detail .totalrow{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;padding:7px 9px;margin:0;border:0;font-size:15px}
.page-admin .estimate-detail .totalrow span:last-child{font-size:18px;font-weight:650;font-variant-numeric:tabular-nums}
.page-admin .estimate-detail .totalrow.grand{background:#e8f2ff;border-radius:9px}
.page-admin .quote-actionbar{padding:12px 0 0;gap:8px;border-top:1px solid var(--quote-border);background:#fff}
.page-admin .quote-actionbar button,.page-admin .quote-actionbar .action-send{min-height:44px;font-size:16px;font-weight:600;border-radius:10px;box-shadow:none;background:#0071e3;border:1px solid #0071e3;color:#fff}
.page-admin .quote-actionbar .secondary{background:#f7f9fc;color:#4d617e;border-color:#dde5ef}
.page-admin .quote-actionbar .action-confirm{background:#eaf6ee;color:#2e8050;border-color:#cfe5d7}
.page-admin .version-chip{background:#f3f6fb;color:#58708e;border:1px solid #e0e7f1;border-radius:8px;min-height:38px;font-size:14px}
.page-admin .copy-box{background:#f5f8fd;color:#526c90;border:1px solid #e1e9f5;border-radius:9px;font-size:14px}

/* One document style for live previews, saved estimates and the customer copy. */
.quote-doc-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 22px;border-bottom:2px solid #0071e3;background:#fff}
.quote-doc-identity{display:flex;align-items:center;gap:10px;min-width:0}
.quote-doc-identity>span:last-child{display:flex;flex-direction:column;gap:3px}
.quote-doc-identity b{font-size:16px;font-weight:650;color:#263244}
.quote-doc-identity small{font-size:12px;color:#6a7d96;letter-spacing:.12em}
.quote-doc-heading h2{margin:0;font-size:27px;letter-spacing:-.045em;font-weight:700;color:#202b3c;white-space:nowrap}
.page-admin .quote-paper,.page-admin .qq-preview .quote-paper,.page-admin .qpv-scroll .quote-paper{font-family:inherit;font-size:16px;line-height:1.55;padding:0;border:1px solid var(--quote-border);border-radius:14px;background:#fff;color:var(--quote-ink);box-shadow:0 4px 18px #26344d08;overflow:hidden;flex-shrink:0}
.page-admin .qq-preview .quote-paper{border:0;border-radius:0;overflow:visible;width:100%;min-width:0;margin:0}
.page-admin .quote-paper .qp-top{display:grid;grid-template-columns:1fr 1.2fr;gap:12px;padding:18px;margin:0}
.page-admin .quote-paper .qp-to,.page-admin .quote-paper .qp-from{border:1px solid var(--quote-border);border-radius:10px;padding:13px;background:#fafbfe;min-width:0}
.page-admin .quote-paper .qp-to::before,.page-admin .quote-paper .qp-from::before{display:block;font-size:14px;color:#65748b;font-weight:600;margin-bottom:9px}
.page-admin .quote-paper .qp-to::before{content:'받는 분'}
.page-admin .quote-paper .qp-from::before{content:'공급자'}
.page-admin .quote-paper .qp-date{font-size:14px;text-decoration:none;font-weight:500;color:#6b778b;margin-bottom:8px}
.page-admin .quote-paper .qp-row{border:0;padding:4px 0;gap:8px}
.page-admin .quote-paper .qp-row b{font-size:16px;font-weight:600;white-space:normal;overflow:visible;overflow-wrap:anywhere}
.page-admin .quote-paper .qp-row span{font-size:14px;color:#69778e}
.page-admin .quote-paper .qp-from div{font-size:14px;line-height:1.7;border:0;overflow-wrap:anywhere}
.page-admin .quote-paper .qp-sum-line{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;margin:0 18px 16px;padding:14px 16px;background:#edf5ff;border:1px solid #dbe9fa;border-radius:11px;color:#446286;font-size:14px;font-weight:500;text-align:left}
.page-admin .quote-paper .qp-sum-line b{font-size:25px;font-weight:700;color:#006bd6;white-space:nowrap}
.quote-document-table,.page-quote .quote-table-wrap{max-width:100%;overflow:auto;overscroll-behavior-x:contain}
.page-admin .quote-paper .qp-table,.page-quote .quote-items-table{width:100%;min-width:660px;border-collapse:collapse}
.page-admin .quote-paper .qp-table th,.page-admin .quote-paper .qp-table td,.page-quote .quote-items-table th,.page-quote .quote-items-table td{border:0;border-bottom:1px solid #e8edf4;padding:10px 12px;font-size:16px;line-height:1.45}
.page-admin .quote-paper .qp-table th,.page-quote .quote-items-table th{background:#f5f7fb;color:#596b82;font-weight:600;font-size:15px;white-space:nowrap}
.page-admin .quote-paper .qp-table tbody tr:nth-child(even) td,.page-quote .quote-items-table tbody tr:nth-child(even) td{background:#fbfcfe}
.page-admin .quote-paper .qp-table .qp-name{font-weight:600;color:#29384d}
.page-admin .quote-paper .qp-table .qp-spec{font-weight:400;color:#65738a}
.page-admin .quote-paper .qp-table .num{white-space:nowrap;font-variant-numeric:tabular-nums}
/* 폰에서 고객 견적서 품목표: 660px 표라 가로 스크롤됐다(2026-09-23 오너). 폰에서는
   품목마다 카드로 쌓아 한눈에 다 보이게 한다 — 이름은 큰 제목, 나머지는 라벨:값 줄. */
@media(max-width:560px){
  .page-quote .quote-table-wrap{overflow:visible}
  .page-quote .quote-items-table{min-width:0;display:block}
  .page-quote .quote-items-table thead{display:none}
  .page-quote .quote-items-table tbody{display:block}
  .page-quote .quote-items-table tr{display:block;border:1px solid #e3e9f1;border-radius:12px;padding:10px 13px;margin-bottom:10px;background:#fff}
  .page-quote .quote-items-table tbody tr:nth-child(even) td{background:transparent}
  .page-quote .quote-items-table td{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border:0;padding:4px 0;font-size:15px;text-align:right}
  .page-quote .quote-items-table td.qi-name{display:block;text-align:left;font-size:17px;font-weight:700;color:#0f172a;border-bottom:1px solid #eef2f7;padding-bottom:8px;margin-bottom:6px}
  .page-quote .quote-items-table td[data-label]::before{content:attr(data-label);color:#8a97a8;font-weight:600;font-size:14px;text-align:left}
  .page-quote .quote-items-table td[data-label]:empty{display:none}
}
.page-admin .quote-paper .qp-table tr.qp-group td{background:#edf4ff;color:#346cad;font-size:15px;font-weight:600}
/* 합계표는 전체 폭으로 — 항목명 왼쪽, 금액 오른쪽으로 깔끔히 정렬(2026-09-22 오너
   "정렬 잘되게"). 예전엔 max-width:430px + margin auto라 오른쪽에 좁게 몰려 있었다.
   상단 가운데 합계금액 박스(qp-sum-line)는 없앴고 총금액은 이 표(맨 아래)에만 둔다. */
.page-admin .quote-paper .qp-total,.page-quote .total-table{width:calc(100% - 36px);margin:16px 18px;border-collapse:collapse}
.page-admin .quote-paper .qp-total td,.page-quote .total-table td{border:0;border-bottom:1px solid #e9edf3;padding:8px 12px;font-size:16px;color:#536174;font-weight:400}
.page-admin .quote-paper .qp-total td.num,.page-quote .total-table td:last-child{font-weight:600;text-align:right;color:#273a53;white-space:nowrap}
.page-admin .quote-paper .qp-total tr.grand td,.page-quote .total-table tr:has(.total-yellow) td{background:#edf5ff;color:#0071e3;font-size:19px;font-weight:700;border:0}
.page-quote .total-table tr:has(.total-green) td{background:#edf7f0;color:#2f7b50;font-weight:600}
.page-admin .quote-paper .qp-terms,.page-admin .qq-preview .qp-terms,.page-quote .terms{font-size:14px;font-weight:400;color:#657186;line-height:1.75;margin:0;padding:16px 22px 16px 38px;background:#fafbfe;border-top:1px solid var(--quote-border)}
.page-admin .quote-paper .qp-foot,.page-quote .bank{padding:14px 18px;background:#f0f5fd;color:#456185;font-size:15px;font-weight:600;text-align:center;border:0;overflow-wrap:anywhere}
.page-admin .quote-paper .qp-bless,.page-quote .footer{font-size:14px;font-weight:400;color:#758195;padding:14px 18px;text-align:center}
.page-admin .quote-paper .qp-stamp{opacity:.85}
.page-admin .quote-paper .qp-page-badge{position:static;text-align:right;border-radius:0;background:#f2f6fc;color:#5e7290;font-size:14px;font-weight:500;padding:6px 18px}
.page-admin .qq-preview .quote-paper .qp-top{grid-template-columns:1fr;padding:12px;gap:10px}
.page-admin .qq-preview .quote-doc-heading{padding:14px}
.page-admin .qq-preview .quote-doc-heading h2{font-size:24px}
.page-admin .qq-preview-head{display:flex;flex-wrap:wrap;gap:5px;justify-content:space-between;background:#f8fafd;color:#526983;border-bottom:1px solid var(--quote-border)}
.page-admin .qpv-head,.page-admin .qpv-actions{padding:14px 18px;background:#fff;border-color:var(--quote-border)}
.page-admin .qpv-head b{font-size:20px;font-weight:650;color:#29354a}
.page-admin .qpv-head .muted{font-size:14px;color:#6c778a}
.page-admin .qpv-close{min-width:40px;min-height:40px;font-size:18px;background:#f5f7fb;border-color:#e1e7f0;color:#5b6c83}
.page-admin .qpv-scroll{background:#f5f6f9;padding:16px;gap:18px}
.page-admin .qpv-actions button{font-size:16px;font-weight:600;min-height:46px}
.page-quote .paper{border-color:var(--quote-border);border-radius:14px}
.page-quote .info-grid{grid-template-columns:1fr 1.2fr;gap:12px;padding:18px;border:0}
.page-quote .info-grid>div{padding:14px;background:#fafbfe;border:1px solid var(--quote-border);border-radius:10px;font-size:16px;min-width:0}
.quote-party-label{display:block;font-size:14px;color:#65748b;font-weight:600;margin-bottom:10px}
.quote-recipient{display:flex;flex-direction:column;gap:9px}
.quote-recipient strong{font-size:20px;color:#29384d;font-weight:650}
.page-quote .info-line{font-size:16px;padding:5px 0;border:0;grid-template-columns:90px 1fr;gap:8px}
.page-quote .info-line b{font-size:14px;font-weight:500;color:#69778e}
.page-quote .lead{padding:12px 18px;text-align:left;border:0;font-size:16px;color:#52647c}
.page-quote .amount-lead{margin:0 18px 16px;padding:12px 16px;border:1px solid #dbe9fa;border-radius:10px;background:#edf5ff;text-align:left;color:#416795;font-size:16px;font-weight:500}
.page-quote .terms{padding:16px 22px;font-size:16px}
.page-quote .customer-decision .revise{background:#fff;border:1px solid #dde5ef;color:#536b89}
.page-customer .review-sheet,.page-customer .pick-review{border-color:var(--quote-border);background:#fff;color:var(--quote-ink)}
.page-customer .pick-confirmed,.page-customer .picked-box{border-color:#dce6f4;background:#f8fbff}
.page-customer .pick-confirmed-head b,.page-customer .pick-edit-link{color:#356faf}

/* Customer review keeps the same document appearance without exposing prices. */
.page-customer .review-head{background:#fff;color:#29354a;font-size:20px;font-weight:650;padding:15px 18px;text-align:left;border-bottom:1px solid var(--quote-border)}
.page-customer .review-body{background:#f5f6f9;padding:14px}
.page-customer .qp-paper{padding:0;border:1px solid var(--quote-border);border-radius:13px;background:#fff;overflow:hidden;box-shadow:none;font-family:inherit}
.page-customer .qp-caution{background:#fff7eb;color:#9b6b30;font-size:14px;font-weight:500;padding:10px 14px;line-height:1.6;margin:12px;border:1px solid #f4e6cf;border-radius:8px}
.page-customer .qp-parties{display:grid;grid-template-columns:1.4fr 1fr;gap:10px;padding:0 12px;margin:12px 0}
.page-customer .qp-party{min-width:0;background:#fafbfe;border:1px solid var(--quote-border);border-radius:10px;padding:12px}
.page-customer .qp-party>b{display:block;font-size:14px;color:#65748b;font-weight:600;margin-bottom:8px;border:0;padding:0}
.page-customer .qp-row{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px;padding:5px 0;border:0;line-height:1.5}
.page-customer .qp-row span{font-size:14px;color:#69778e}
.page-customer .qp-row b{font-size:16px;color:#29384d;font-weight:600;overflow-wrap:anywhere}
.page-customer .qp-notes{background:#f7f9fc;border:1px solid var(--quote-border);border-radius:9px;margin:12px;padding:12px;font-size:16px;line-height:1.6}
.page-customer .qp-notes b{font-size:14px;color:#69778e;font-weight:600}
.page-customer .qp-sub{background:#edf5ff;color:#346cad;font-size:16px;font-weight:600;padding:12px;margin:0}
.page-customer .qp-table-wrap{overflow:auto;max-width:100%}
.page-customer .qp-items-table{width:100%;min-width:420px;border-collapse:collapse}
.page-customer .qp-items-table th,.page-customer .qp-items-table td{padding:12px;border:0;border-bottom:1px solid #e8edf4;font-size:16px;color:#29384d}
.page-customer .qp-items-table th{background:#f5f7fb;color:#596b82;font-size:15px;font-weight:600}
.page-customer .qp-foot{margin:0;background:#f0f5fd;color:#456185;font-size:14px;font-weight:500;line-height:1.6;padding:14px}
.page-customer .review-actions{background:#fff;border-top:1px solid var(--quote-border);padding:12px 14px;gap:10px}
.page-customer .review-actions button{font-family:inherit;min-height:46px;font-size:16px;font-weight:600;border-radius:10px;box-shadow:none}
.page-customer .review-actions .rv-back{background:#fff;border:1px solid #dde5ef;color:#536b89}
.page-customer .review-actions .rv-go{background:#0071e3;border:1px solid #0071e3;color:#fff}

/* 3D selection changes only its UI; model geometry and green focus remain intact. */
body #ab3dLayer,body #bt3dLayer{background:#f5f6f9;font-family:"Pretendard Variable",Pretendard,-apple-system,"Malgun Gothic",sans-serif;color:#273549}
#ab3dLayer .a3-head,#bt3dLayer .b3-head{background:#fff;color:#273549;border-bottom:1px solid #e1e6ee;padding:10px 14px;box-shadow:0 2px 8px #27354905}
#ab3dLayer .a3-head b{font-size:19px;font-weight:650}
#ab3dLayer .a3-head small,#bt3dLayer .b3-head-hint{color:#65758d;font-size:14px;font-weight:500;line-height:1.5}
#ab3dLayer .a3-close,#bt3dLayer .b3-close{background:#f5f7fb;color:#526981;border:1px solid #e0e6ef;border-radius:9px;font-size:16px;font-weight:600;height:40px;min-height:40px}
#ab3dLayer .a3-mode span{background:#f3effb;border-color:#e1d8f1;color:#7754a8;font-size:15px;font-weight:600;border-radius:7px}
#ab3dLayer .a3-mode span.rent{background:#edf5ff;border-color:#cfe2f9;color:#006bd6}
#ab3dLayer .a3-mode span.sale{background:#f3effb;border-color:#e1d8f1;color:#7754a8}
#ab3dLayer .a3-vp,#bt3dLayer .b3-vp{background:radial-gradient(ellipse at 50% 40%,#fff 0%,#eef3fa 70%,#dfe8f3 100%)}
#ab3dLayer .a3-panel,#bt3dLayer .b3-panel{background:#fff;border-color:#e1e6ee}
#ab3dLayer .a3-setpick,#bt3dLayer .b3-setpick{background:#f4f0fb;border:1px solid #e5daf5;border-radius:12px}
#ab3dLayer .a3-piecepick,#bt3dLayer .b3-piecepick{background:#f2f7fe;border:1px solid #dce8f8;border-radius:12px}
#ab3dLayer .a3-setpick-head,#bt3dLayer .b3-setpick-head{color:#7855a7;font-size:16px;font-weight:650}
#ab3dLayer .a3-piece-head,#bt3dLayer .b3-piece-head{color:#306aa7;font-size:16px;font-weight:650}
#ab3dLayer .a3-cat-label,#bt3dLayer .b3-cat-label{color:#6a7689;font-size:14px;font-weight:500}
#ab3dLayer .a3-cat,#bt3dLayer .b3-cat{font-family:inherit;background:#fff;color:#596b82;border:1px solid #dfe5ef;border-radius:8px;font-size:15px;font-weight:500;min-height:40px;padding:7px 10px}
#ab3dLayer .a3-cat.on,#bt3dLayer .b3-cat.on{background:#eaf3ff;color:#006bd6;border-color:#bbd6f7}
#ab3dLayer .a3-search,#bt3dLayer .b3-search{font-family:inherit;font-size:16px;min-height:42px;border:1px solid #dce4ef;border-radius:10px;color:#263a55;background:#fff}
#ab3dLayer .a3-row,#bt3dLayer .b3-row{border:1px solid #e0e7f1;border-radius:10px;background:#fff;padding:10px;box-shadow:none}
#ab3dLayer .a3-row .nm,#bt3dLayer .b3-row .nm{font-size:16px;font-weight:600;color:#2d3e55}
#ab3dLayer .a3-row .nm small,#bt3dLayer .b3-row .nm small{font-size:14px;font-weight:400;color:#6b7a90}
#ab3dLayer .a3-row .nm small b.a3-size,#bt3dLayer .b3-row .nm small b.b3-size{color:#7855a7;font-size:14px}
#ab3dLayer .a3-set-card,#bt3dLayer .b3-set-card{background:#fff;border:1px solid #e0d7ee;color:#63498b;border-radius:9px;font-size:16px;font-weight:600;min-height:44px}
#ab3dLayer .a3-set-card.has,#bt3dLayer .b3-set-card.has{background:#f0eafa;border-color:#cfbde9;box-shadow:0 0 0 1px #cfbde9 inset}
#ab3dLayer .a3-set-card-top b,#ab3dLayer .a3-set-card.has .a3-set-card-top b{font-size:16px;color:#6f4a9b;font-weight:650}
#ab3dLayer .a3-set-card small,#ab3dLayer .a3-set-price{font-size:14px;color:#7b6a90;font-weight:500}
#ab3dLayer .a3-row.sel,#bt3dLayer .b3-row.sel{background:#eef5ff;border-color:#c5dcf7}
#ab3dLayer .a3-row .pr{font-size:15px;color:#5577a6;font-weight:600}
#ab3dLayer .a3-row.sel .q,#bt3dLayer .b3-row.sel .q{color:#0071e3}
#ab3dLayer .a3-finish,#bt3dLayer .b3-finish{background:#0071e3;color:#fff;border:1px solid #0071e3;border-radius:11px;min-height:46px;font-size:17px;font-weight:600;box-shadow:none}
#ab3dLayer .a3-note,#bt3dLayer .b3-note{font-size:14px;color:#69768a;line-height:1.6}
@media(max-width:760px){
  .page-customer .qp-parties{grid-template-columns:1fr}
  .page-customer .review-body{padding:10px}
  .page-admin .qq-setup{grid-template-columns:1fr}
  .page-admin .qq-setup-row{align-items:center}
  .page-admin .qq-setup-label{flex:0 0 38px;line-height:1.4;padding:0}
  body.page-admin.mcards #sectionHost .quick-entry{min-width:0!important;width:100%!important}
  body.page-admin.mcards .qq-panel{padding:0!important}
  body.page-admin.mcards .qq-main .toolbar{display:flex;flex-direction:row;flex-wrap:wrap}
  body.page-admin.mcards .qq-main .toolbar .inline-check{width:auto!important}
  body.page-admin.mcards .qq-main .toolbar input[type=checkbox]{width:20px!important;min-height:20px!important;height:20px!important;padding:0!important}
  body.page-admin.mcards .qq-main .set-pick{display:grid;grid-template-columns:minmax(0,1fr) auto;flex:1 1 100%;width:100%;gap:7px}
  body.page-admin.mcards .qq-main .set-pick select{grid-column:1/-1;width:100%!important;min-width:0}
  body.page-admin.mcards .qq-main .set-pick button{width:auto!important;min-width:0}
  .page-admin .quote-workspace .admin-search{padding:10px}
  .page-admin .quote-workspace .admin-search-row{flex-wrap:wrap;gap:7px}
  .page-admin .quote-workspace .admin-search input{flex:1 1 100%;min-width:0}
  .page-admin .estimate-detail h2{font-size:21px}
  .page-admin .estimate-detail .form-grid{grid-template-columns:1fr}
  .page-admin .estimate-detail .add-line{flex-wrap:wrap}
  .page-admin .quote-actionbar{display:grid;grid-template-columns:1fr 1fr}
  .page-admin .quote-actionbar button{width:100%;white-space:normal;padding:9px 10px}
  .page-admin .quote-paper .qp-top,.page-quote .info-grid{grid-template-columns:1fr;padding:12px;gap:10px}
  .quote-doc-heading{padding:16px;gap:10px}
  .quote-doc-heading h2{font-size:25px}
  .quote-doc-identity .brand-mark{width:30px;height:30px;font-size:19px;border-radius:9px}
  .page-admin .qpv-head,.page-admin .qpv-actions{padding:12px}
  .page-admin .qpv-scroll{padding:10px;align-items:stretch}
  .page-admin .qpv-sheet{max-height:100dvh;height:100dvh;border-radius:0}
  .page-admin .qq-opt,.page-admin .qq-setup .qq-opt{padding:8px 10px}
  #ab3dLayer .a3-head{flex-wrap:wrap;gap:7px}
  #ab3dLayer .a3-head small{display:none}
  #ab3dLayer .a3-mode{margin-left:0;gap:4px}
  #ab3dLayer .a3-mode span{padding:5px 8px}
}
/* V2.7.7: compact workspace hierarchy, readable controls and mobile navigation. */
@media screen{
  :root{--ink:#202936;--muted:#596779;--line:#dde4ed}
  .page-admin .admin-shell{padding-inline:10px}
  .page-admin .admin-header{min-height:54px;padding-block:6px}
  .page-admin .admin-topnav{gap:8px;padding-block:6px;align-items:flex-start}
  .page-admin .nav-cats{gap:6px;min-width:0}
  .page-admin .nav-cats .nav-home,.page-admin .nav-cats .nav-cat{min-height:40px;border:1px solid #dce3ec;background:#fff;color:#526174;font-size:16px;font-weight:650;padding:7px 16px;line-height:1.4}
  .page-admin .nav-cats .nav-home.active,.page-admin #cat-quote.active{background:#0868d0;color:#fff;border-color:#0868d0;box-shadow:0 2px 5px #0868d018}
  .page-admin #cat-manage.active{background:#087e79;color:#fff;border-color:#087e79}
  .page-admin #cat-system.active{background:#7350a8;color:#fff;border-color:#7350a8}
  .page-admin .nav-cat.active .nav-badge{color:inherit;background:#ffffff26}
  .page-admin .nav-items{--nav-color:#0966c5;--nav-soft:#edf5ff;display:flex;flex-basis:100%;gap:5px;margin:0;padding:6px;background:#edf1f6;border:1px solid #dde4ed;border-radius:10px}
  .page-admin #cat-manage+.nav-items{--nav-color:#087e79;--nav-soft:#eaf7f3}
  .page-admin #cat-system+.nav-items{--nav-color:#7350a8;--nav-soft:#f3effa}
  .page-admin .admin-topnav .nav-items button{min-height:38px;padding:6px 13px;color:#536174;font-size:16px;font-weight:550;line-height:1.4;border:1px solid transparent;border-radius:7px}
  .page-admin .admin-topnav .nav-items button.active{color:var(--nav-color);background:#fff;border-color:#cfdbe9;box-shadow:inset 0 -3px var(--nav-color);font-weight:700}
  .page-admin .panel{border-radius:12px;border-color:#dde4ed}
  .page-admin .panel-head{padding:10px 14px;background:#f7f9fc;border-bottom:1px solid #dfe6ef;font-size:17px;font-weight:650;line-height:1.45}
  .page-admin .detail{padding:12px}
  .page-admin .toolbar{margin-bottom:9px;gap:7px;align-items:center}
  .page-admin .toolbar input,.page-admin .toolbar select{padding:7px 10px;border-color:#d8e1ec;background:#fff}
  .page-admin .field,.page-customer .field{gap:4px}
  .page-admin .field label,.page-admin .qq-fields label,.page-customer .field label{font-weight:550;color:#46566b;line-height:1.4}
  .page-admin .form-grid{gap:10px 12px}
  .page-admin .master-table th,.page-admin .quick-entry th{color:#475a71;background:#eef3f9;border-bottom-color:#d3deec;font-weight:650;line-height:1.4;vertical-align:middle}
  .page-admin .master-table td,.page-admin .quick-entry td{line-height:1.45;vertical-align:middle;font-variant-numeric:tabular-nums}
  .page-admin .master-table tbody tr:hover td:not(.cost-cell){background:#f1f6fd}
  .page-admin .cat-bar,.page-admin .subtabs,.page-customer .pick-cats{gap:6px;margin-block:6px 9px}
  .page-admin .cat-btn,.page-admin .quick-cat,.page-admin .seg .subtab,.page-admin .subtabs button,.page-customer .pick-cat,
  #ab3dLayer .a3-cat,#bt3dLayer .b3-cat{border-color:#d5dfec;color:#4d6078;background:#fff;min-height:40px;font-size:16px;font-weight:600;line-height:1.4;padding:7px 12px;border-radius:8px;box-shadow:none}
  .page-admin .cat-btn.active,.page-admin .quick-cat.active,.page-admin .seg .subtab.active,.page-admin .subtabs button.active,.page-customer .pick-cat.on,
  #ab3dLayer .a3-cat.on,#bt3dLayer .b3-cat.on{background:#0969cc;border-color:#0969cc;color:#fff;box-shadow:0 2px 4px #0969cc15}
  .page-admin .cat-btn.active em{background:#ffffff29;color:#fff}
  .page-admin .grade-seg .subtab.active{background:#7350a8;border-color:#7350a8;color:#fff}
  .page-admin .qq-opt.on,.page-admin .qq-opt-rent.on{background:#e5f0ff;border-color:#80b5ee;color:#0758b0;box-shadow:inset 0 -2px #0969cc}
  .page-admin .qq-opt-grade.on,.page-admin .qq-opt-sale.on{background:#f0eafa;border-color:#b79ad9;color:#694095;box-shadow:inset 0 -2px #7350a8}
  .page-admin .qq-side-head,.page-admin .qq-preview-head{background:#eff4fa;color:#425973;font-size:16px;font-weight:650;padding:8px 10px}
  .page-admin .qq-fields{gap:7px;padding:10px}
  .page-admin .estimate-detail{padding:12px}
  .page-admin .estimate-detail h3{margin:12px 0 7px}
  .page-admin .user-card,.page-admin .result-card{border-color:#dce4ee;border-radius:12px}
  .page-customer .topbar{padding-block:10px}
  .page-customer .content{padding-top:12px}
  .page-customer .card{padding:16px;margin-bottom:12px;border-radius:13px}
  .page-customer .card h2{margin-bottom:12px;font-size:20px}
  .page-customer .field{margin-bottom:10px}
  .page-customer .pick-setup{padding:10px}
  .page-driver .card,.page-driver .confirm{padding:14px;border-radius:12px}
  .page-driver .driver-wrap{padding:12px}
  .page-quote .quote-wrap{margin-top:12px}
  .page-quote .q-overview>div{padding:12px 14px}
  .page-admin .notice,.page-customer .notice{padding:9px 12px;line-height:1.55}
}
@media screen and (max-width:760px){
  body.page-admin.mcards .admin-header{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;padding:8px 0}
  body.page-admin.mcards .admin-header .hd-id{grid-column:1/4;grid-row:1;width:auto;min-width:0;gap:7px}
  body.page-admin.mcards .workspace-tools,body.page-admin.mcards .workspace-tools-panel{display:contents}
  body.page-admin.mcards .workspace-tools .zoom-ctl{grid-column:4/7;grid-row:1;justify-content:flex-end;gap:5px;padding:3px}
  body.page-admin.mcards .workspace-tools .zoom-name{display:none}
  body.page-admin.mcards .workspace-tools .zoom-ctl button{width:32px;height:34px;min-height:34px}
  body.page-admin.mcards .workspace-tools-panel>button{grid-column:span 2;min-height:40px;font-size:14px}
  body.page-admin.mcards .admin-topnav .nav-cats{display:flex;flex-wrap:wrap;overflow:visible;width:100%;padding:0;gap:5px}
  body.page-admin.mcards .nav-cats .nav-home,body.page-admin.mcards .nav-cats .nav-cat{flex:1 1 0!important;min-width:0;padding:8px 3px;margin:0;gap:4px;font-size:16px;min-height:44px}
  body.page-admin.mcards .admin-topnav .nav-items{display:flex;flex:1 1 100%!important;width:100%;box-sizing:border-box;flex-wrap:wrap;overflow:visible;padding:5px;gap:4px}
  body.page-admin.mcards .admin-topnav .nav-items button{flex:1 1 auto!important;min-height:42px;padding:7px 9px;font-size:15px;white-space:normal}
  .page-admin .nav-cats .ui-icon{width:17px;height:17px}
  .page-admin .panel-head{padding:9px 10px}
  .page-admin .detail{padding:10px}
  .page-admin .qq-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px}
  .page-admin .qq-fields>.field{min-width:0;margin:0}
  .page-admin .qq-fields>.field:nth-child(n+3){grid-column:1/-1}
  .page-admin .qq-fields input,.page-admin .qq-fields select{font-size:16px;min-height:44px;min-width:0}
  .page-admin .qq-fields label{font-size:15px}
  .page-admin .qq-side,.page-admin .qq-main{min-width:0}
  .page-admin .qq-setup{padding:9px;gap:7px}
  .page-admin .qq-opt,.page-admin .qq-setup .qq-opt{min-height:44px;padding:7px 10px;font-size:16px}
  .page-admin .cat-btn,.page-admin .quick-cat,.page-customer .pick-cat,#ab3dLayer .a3-cat,#bt3dLayer .b3-cat{min-height:42px;padding:7px 10px;font-size:15px}
  .page-customer .content{padding:10px 10px 120px}
  .page-customer .card{padding:14px;margin-bottom:10px}
  .page-customer .card h2{font-size:19px;margin-bottom:12px}
  .page-customer input,.page-customer select,.page-customer textarea{font-size:16px}
  .page-admin .form-grid{gap:8px}
  body.page-admin.mcards .toolbar:has(#accMonth),body.page-admin.mcards .toolbar:has(#reportMonth){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  body.page-admin.mcards .toolbar:has(#accMonth)>*,body.page-admin.mcards .toolbar:has(#reportMonth)>*{min-width:0!important;width:100%!important;box-sizing:border-box;padding:7px 8px;min-height:44px}
  .page-admin .estimate-detail{padding:10px}
  .page-admin .quote-actionbar{gap:6px;padding-top:9px}
  .page-admin .quote-actionbar button{font-size:16px;min-height:46px}
  .page-quote .q-overview{gap:6px}
  .page-quote .q-overview>div{padding:10px}
  .page-driver .driver-wrap{padding:10px}
  .page-driver .card,.page-driver .confirm{padding:12px}
}
@media print{
  @page{size:A4;margin:10mm}
  .quote-doc-heading{break-after:avoid;border-bottom-color:#0071e3}
  .page-admin .quote-paper,.page-quote .paper{box-shadow:none;border:0;border-radius:0}
  .quote-document-table,.page-quote .quote-table-wrap{overflow:visible}
  .page-admin .quote-paper .qp-table,.page-quote .quote-items-table{min-width:0}
  .page-admin .quote-paper .qp-table th,.page-admin .quote-paper .qp-table td,.page-quote .quote-items-table th,.page-quote .quote-items-table td{font-size:10pt;padding:6px}
  .page-admin .quote-paper .qp-terms,.page-quote .terms{font-size:10pt}
  .page-quote .quote-status{position:static}
  .page-quote .quote-wrap{padding:0;margin:0}
  .page-quote .q-overview{margin:8px 0;gap:6px;grid-template-columns:repeat(4,minmax(0,1fr))}
  .page-quote .q-overview>div{padding:8px}
  .page-quote .q-overview span{font-size:9pt;margin-bottom:4px}
  .page-quote .q-overview b{font-size:11pt}
  .page-quote .quote-doc-heading{padding:10px 12px}
  .page-quote .info-grid{padding:10px;gap:8px;grid-template-columns:1fr 1.2fr}
  .page-quote .info-grid>div{padding:8px;font-size:10pt}
  .page-quote .info-line{font-size:10pt;padding:2px 0}
  .page-quote .info-line b,.page-quote .quote-party-label{font-size:9pt}
  .page-quote .total-table{margin:8px 10px 8px auto}
  .page-quote .total-table td{font-size:10pt;padding:4px 8px}
  .page-quote .terms{padding:10px 14px;line-height:1.55}
  .page-quote .bank,.page-quote .footer{padding:8px;font-size:10pt}
}

/* ═══ 견적서 문서 서식 (2026-09-23 오너 "실제 견적서 느낌, 프로의 냄새, 깔끔하게") ═══
   관리자 [견적서 보기]·견적서입력 미리보기(admin_js quoteDocHtml_)와 고객 견적서(quote_js)가 같이 쓴다.
   남색 한 가지 색 + 가는 회색 선. 공급자는 실제 세금계산서처럼 칸을 나눈 표, 총액은 맨 아래 합계 칸에만. */
.quote-paper.qd{
  --qd-ink:#1b2430;--qd-sub:#5f6b7a;--qd-line:#d3d9e2;--qd-navy:#1f3a5c;--qd-soft:#f3f5f8;
  container-type:inline-size;position:relative;
  background:#fff !important;color:var(--qd-ink) !important;
  border:1px solid #d7dce4 !important;border-radius:6px !important;
  box-shadow:0 8px 28px rgba(22,33,52,.09) !important;
  padding:40px 42px 30px !important;overflow:visible !important;
  font-size:14.5px !important;line-height:1.55 !important;font-variant-numeric:tabular-nums;
}
.quote-paper.qd table{border-collapse:collapse}
/* 고객 견적서 화면(quote_styles)의 th,td{border:1px solid #444;text-align:center} 가 새 서식 표에 번지지 않게
   먼저 비운다. 아래 각 표 규칙(.qd-items td 등)이 같은 세기로 뒤에 오므로 필요한 선·여백은 다시 그린다. */
.qd th,.qd td{border:0;padding:0;background:transparent;text-align:left;font-size:inherit;color:inherit}
.qd-page{position:absolute;top:14px;right:18px;font-size:12px;color:#8a94a3;font-weight:600}

/* 머리 — 왼쪽 회사, 가운데 제목, 오른쪽 번호·날짜 */
.qd-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:18px;padding-bottom:16px;border-bottom:3px double var(--qd-navy)}
.qd-brand{display:flex;align-items:center;gap:11px;min-width:0}
.qd-brand .brand-mark{width:38px;height:38px;border-radius:9px;font-size:19px;flex:none}
.qd-brand b{display:block;font-size:17px;font-weight:800;color:var(--qd-navy);letter-spacing:-.02em;line-height:1.25}
.qd-brand small{display:block;font-size:10px;letter-spacing:.16em;color:#8791a0;font-weight:700;margin-top:2px}
.qd-title{margin:0;font-size:36px;line-height:1.1;font-weight:800;letter-spacing:.5em;padding-left:.5em;color:#101722;white-space:nowrap;text-align:center}
.qd-meta{justify-self:end;font-size:13px}
.qd-meta th{color:var(--qd-sub);font-weight:600;text-align:left;padding:2px 12px 2px 0;white-space:nowrap}
.qd-meta td{font-weight:700;text-align:right;white-space:nowrap;color:var(--qd-ink)}

/* 받는 분 / 공급자 */
.qd-parties{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:26px;margin:24px 0 22px;align-items:start}
.qd-to{min-width:0}
.qd-to-name{font-size:24px;font-weight:800;color:#101722;padding:2px 0 9px;border-bottom:2px solid var(--qd-ink);margin-bottom:10px;overflow-wrap:anywhere;line-height:1.3}
.qd-to-name span{font-size:16px;font-weight:600;margin-left:10px;color:#3b4552}
.qd-kv{width:100%}
.qd-kv th{width:74px;text-align:left;color:var(--qd-sub);font-weight:600;padding:5px 0;vertical-align:top;font-size:13.5px;white-space:nowrap}
.qd-kv td{padding:5px 0;font-weight:600;overflow-wrap:anywhere}
.qd-lead{margin:16px 0 0;font-size:14px;color:#3b4552;font-weight:500}
.qd-from{width:100%;table-layout:fixed;border:1.5px solid var(--qd-navy);font-size:13.5px}
.qd-from th{width:66px;background:var(--qd-soft);color:#3b4552;font-weight:600;border:1px solid var(--qd-line);padding:7px 6px;text-align:center;white-space:nowrap}
.qd-from td{border:1px solid var(--qd-line);padding:7px 9px;font-weight:500;overflow-wrap:anywhere}
.qd-from td.qd-side{width:30px;background:var(--qd-navy);color:#fff;font-weight:700;text-align:center;line-height:2;padding:6px 0;border-color:var(--qd-navy)}
.qd-from td.qd-bizno{font-weight:700;letter-spacing:.04em}
.qd-seal{position:relative}
.qd-in{color:#a1a9b4;font-size:12px;margin-left:6px}
.qd-seal img{position:absolute;right:2px;top:50%;transform:translateY(-50%) rotate(-4deg);width:56px;height:56px;object-fit:contain;opacity:.92;pointer-events:none;mix-blend-mode:multiply}

/* 품목 표 */
.qd-items-wrap{overflow-x:auto;max-width:100%}
.qd-items{width:100%;min-width:620px;table-layout:fixed;border-top:2px solid var(--qd-navy);border-bottom:2px solid var(--qd-navy);font-size:14px}
.qd-items col.qd-c-no{width:44px}.qd-items col.qd-c-spec{width:17%}.qd-items col.qd-c-qty{width:62px}
.qd-items col.qd-c-unit{width:13%}.qd-items col.qd-c-amt{width:15%}.qd-items col.qd-c-loss{width:11%}
.qd-items th{background:var(--qd-navy);color:#fff;font-weight:600;font-size:13.5px;padding:9px 8px;border:1px solid var(--qd-navy);border-left-color:#35507a;white-space:nowrap;text-align:center}
.qd-items td{border:1px solid var(--qd-line);padding:8px 10px;vertical-align:middle;overflow-wrap:anywhere}
.qd-items td.num{text-align:right;white-space:nowrap}
.qd-items td.qd-no{text-align:center;color:#8791a0;font-size:13px}
.qd-items td.qd-name{font-weight:600;color:#101722}
.qd-items td.qd-spec{text-align:center;color:#4a5563}
.qd-items td.qd-amt{font-weight:700;color:#101722}
.qd-items tbody tr:nth-child(even) td{background:#fafbfc}
.qd-items tr.qp-group td{background:#e9eef5 !important;color:var(--qd-navy);font-weight:700;font-size:13.5px;padding:7px 12px}

/* 아래 — 왼쪽 조건·계좌, 오른쪽 합계 */
.qd-bottom{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:26px;margin-top:20px;align-items:start}
.qd-notes{min-width:0}
.qd-notes h4{margin:0 0 8px;font-size:14px;color:var(--qd-navy);font-weight:800;border-bottom:1px solid var(--qd-line);padding-bottom:7px;letter-spacing:.02em}
.qd-notes ol{margin:0;padding-left:18px;font-size:12.8px;color:#4a5563;line-height:1.75}
.qd-bank{margin-top:14px;padding:11px 13px;border:1px solid var(--qd-line);border-left:3px solid var(--qd-navy);background:var(--qd-soft);font-size:13.5px;font-weight:600;color:var(--qd-ink);overflow-wrap:anywhere}
.qd-bank b{display:block;font-size:12px;color:var(--qd-navy);margin-bottom:3px;letter-spacing:.04em}
.qd-sum{width:100%;border:1.5px solid var(--qd-navy);font-size:14px}
.qd-sum th{background:var(--qd-soft);text-align:left;font-weight:600;color:#3b4552;padding:8px 13px;border-bottom:1px solid var(--qd-line);white-space:nowrap}
.qd-sum td{text-align:right;padding:8px 13px;font-weight:600;border-bottom:1px solid var(--qd-line);white-space:nowrap}
.qd-sum tr.grand th,.qd-sum tr.grand td{background:var(--qd-navy);color:#fff;font-size:17px;font-weight:800;border-bottom:0;padding:11px 13px}
.qd-sum tr.words td{text-align:right;font-size:13px;color:var(--qd-ink);font-weight:700;background:#fff;white-space:normal;padding:8px 13px}
.qd-sum tr.words span{color:var(--qd-sub);font-weight:500;margin-left:4px}
.qd-sum tr.dep th,.qd-sum tr.dep td{font-weight:800;color:var(--qd-navy)}
.qd-foot{margin-top:24px;padding-top:14px;border-top:1px solid var(--qd-line);text-align:center;font-size:13.5px;color:var(--qd-sub);letter-spacing:.06em}

/* 좁은 자리(견적서입력 오른쪽 미리보기·태블릿) */
.page-admin .qq-preview .quote-paper.qd{padding:20px 18px !important;border:0 !important;border-radius:0 !important;box-shadow:none !important}
@container (max-width:760px){
  .qd-head{grid-template-columns:1fr;justify-items:center;text-align:center;gap:10px}
  .qd-meta{justify-self:center}
  .qd-title{font-size:30px}
  .qd-parties,.qd-bottom{grid-template-columns:1fr;gap:18px}
}
/* 폰 — 품목을 카드로 */
@container (max-width:560px){
  .quote-paper.qd{padding:22px 16px !important}
  .qd-title{font-size:27px;letter-spacing:.35em;padding-left:.35em}
  .qd-to-name{font-size:21px}
  .qd-from{font-size:13px}
  .qd-from th{width:56px}
  .qd-items{min-width:0;border:0;table-layout:auto}
  .qd-items colgroup,.qd-items thead{display:none}
  .qd-items,.qd-items tbody,.qd-items tr{display:block}
  .qd-items tr{border:1px solid var(--qd-line);border-radius:8px;margin-bottom:8px;padding:9px 12px;background:#fff}
  .qd-items tbody tr:nth-child(even) td{background:transparent}
  .qd-items td{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border:0;padding:3px 0;text-align:right}
  .qd-items td[data-label]::before{content:attr(data-label);color:var(--qd-sub);font-weight:600;font-size:13px;text-align:left}
  .qd-items td:empty,.qd-items td.qd-no{display:none}
  .qd-items td.qd-name{display:block;text-align:left;font-size:16px;border-bottom:1px solid #edf0f4;padding-bottom:7px;margin-bottom:4px}
  .qd-items tr.qp-group{border:0;padding:0;background:transparent}
  .qd-items tr.qp-group td{display:block;border-radius:6px}
}
@media print{
  .quote-paper.qd{box-shadow:none !important;border:0 !important;padding:0 !important}
  .qd-items th,.qd-from td.qd-side,.qd-sum tr.grand th,.qd-sum tr.grand td{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
.qd-items-6 col.qd-c-spec{width:18%}.qd-items-6 col.qd-c-unit{width:14%}.qd-items-6 col.qd-c-amt{width:16%}
/* 줄 등급(2026-10-12 오너 "품명과 규격 사이에 등급 — 기본, A, S, 신재 작은 글씨") */
.qd-items col.qd-c-grade{width:32px}
.qd-items td.qd-grade{text-align:center;color:#4a5563;white-space:nowrap;padding-left:2px;padding-right:2px}
.qd-items td.qd-grade small{font-size:12px;font-weight:700}
.qd-items th.qd-th-grade{padding-left:2px;padding-right:2px;font-size:12px}
.qd-tag{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:4px;background:#eef2f7;color:var(--qd-navy);font-size:11.5px;font-weight:700;vertical-align:middle}
.qd-terms summary{cursor:pointer;font-size:14px;font-weight:800;color:var(--qd-navy);padding:0 0 7px;border-bottom:1px solid var(--qd-line);list-style:none}
.qd-terms summary::-webkit-details-marker{display:none}
.qd-terms summary::after{content:' ▾';color:var(--qd-sub);font-weight:600}
.qd-terms[open] summary::after{content:' ▴'}
.qd-terms ol{margin:8px 0 0;padding-left:18px;font-size:12.8px;color:#4a5563;line-height:1.75}
.qd-remark{margin:10px 0 0;font-size:13px;color:var(--qd-ink)}
.qd-remark b{color:var(--qd-navy);margin-right:6px}
.qd-from col.qd-cg-side{width:30px}.qd-from col.qd-cg-th{width:66px}.qd-from col.qd-cg-val{width:36%}
.qd-from td.qd-seal{padding-right:62px}
@container (max-width:560px){.qd-from col.qd-cg-side{width:22px}.qd-from td.qd-side{font-size:12px;line-height:1.7}.qd-from col.qd-cg-th{width:50px}.qd-from col.qd-cg-val{width:auto}.qd-from{font-size:12.5px}.qd-from th{padding:6px 3px}.qd-from td{padding:6px 7px}.qd-from td.qd-seal{padding-right:24px;white-space:nowrap}.qd-seal img{width:38px;height:38px;right:0}.qd-in{margin-left:3px}}
@container (max-width:380px){.qd-seal img{width:30px;height:30px}.qd-from td.qd-seal{padding-right:18px}.qd-from{font-size:12px}}
.quote-paper.qd .qd-title{letter-spacing:.5em !important;padding-left:.5em !important;font-weight:800 !important}
@container (max-width:560px){.quote-paper.qd .qd-title{letter-spacing:.35em !important;padding-left:.35em !important}}

/* ═══ 2026-09-24 오너 "로고가 공간을 쓸데없이 차지, 모바일 견적서 폭이 좁다, 폰트·정렬 들쭉날쭉 — 통일" ═══ */
/* 견적서 머리 — 로고 네모 빼고 한 줄로 낮게. 좁은 화면은 제목·번호만(회사명은 공급자 칸에 있다) */
.qd-brand .brand-mark{display:none}
.qd-head{padding-bottom:12px;align-items:center}
.qd-brand b{font-size:15px}
.qd-brand small{font-size:9.5px}
@container (max-width:760px){
  .qd-head{grid-template-columns:1fr auto;justify-items:stretch;text-align:left;gap:10px}
  .qd-brand{display:none}
  .qd-title{text-align:left;font-size:26px}
  .qd-meta{justify-self:end;font-size:12.5px}
}
@container (max-width:560px){
  .quote-paper.qd .qd-title{font-size:23px;letter-spacing:.3em !important;padding-left:0 !important}
  .qd-meta th{padding-right:8px}
}
/* 폰에서 견적서를 화면 양옆까지 */
@media (max-width:650px){
  .page-quote .quote-wrap{padding-left:6px !important;padding-right:6px !important;margin-top:8px}
  .page-quote .quote-paper.qd{padding:18px 12px !important;border-radius:4px !important}
  .qpv-back{padding:0 !important}
  .qpv-back .qpv-sheet{width:100vw !important;max-width:none !important;border-radius:0 !important;max-height:100dvh !important}
  .qpv-back .qpv-scroll{padding:6px !important}
  .qpv-back .quote-paper.qd{padding:16px 12px !important}
}

/* 고객 견적서 — 받으실 정보·확정·수정 요청 */
.page-quote .qa-card{background:#fff;border:1px solid #e1e7ef;border-radius:14px;padding:18px;margin:16px 0;box-shadow:none}
.page-quote .qa-head b{display:block;font-size:17px;font-weight:800;color:#1f3a5c}
.page-quote .qa-head span{display:block;font-size:14px;color:#5f6b7a;margin-top:5px;line-height:1.55}
.page-quote .qa-head em{font-style:normal;font-weight:700;color:#1f3a5c}
.page-quote .qa-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px;margin-top:14px}
.page-quote .ci-line{display:flex;flex-direction:column;gap:6px;min-width:0}
.page-quote .ci-line.wide{grid-column:1/-1}
.page-quote .ci-line>span{font-size:14px;font-weight:700;color:#3b4552}
.page-quote .ci-line input,.page-quote .ci-line textarea,.page-quote .revision-box textarea{
  width:100%;box-sizing:border-box;min-height:50px;padding:12px 14px;border:1px solid #cfd7e2;border-radius:10px;
  font:inherit;font-size:16px;background:#fbfcfe;color:#1b2430}
.page-quote .ci-line textarea{min-height:64px;resize:vertical}
.page-quote .ci-line input:focus,.page-quote .ci-line textarea:focus,.page-quote .revision-box textarea:focus{outline:none;border-color:#1f3a5c;background:#fff;box-shadow:0 0 0 3px #1f3a5c1f}
.page-quote .revision-box{display:none;margin-top:12px}
.page-quote .revision-box textarea{min-height:110px;margin-top:12px;resize:vertical}
.page-quote .qa-row{display:flex;gap:10px;margin-top:12px}
.page-quote .qa-row .btn{flex:1;min-width:0;min-height:52px;border-radius:12px;font-size:16px;font-weight:700;margin:0}
.page-quote .btn.ghost{background:#fff;border:1px solid #d5dce6;color:#3b4552}
.page-quote .btn.revise-send{background:#1f3a5c;color:#fff;border:0}
.page-quote .qa-bar.customer-decision{display:grid;grid-template-columns:1fr 1.5fr;gap:10px;padding:10px}
.page-quote .qa-bar.customer-decision:has(.pdf){grid-template-columns:auto 1fr 1.5fr}
.page-quote .qa-bar.customer-decision .btn{min-height:54px;font-size:16px;font-weight:800;border-radius:12px;margin:0;min-width:0;grid-column:auto;order:0}
.page-quote .qa-bar.customer-decision .confirm{background:#1f3a5c;color:#fff;border:0;box-shadow:0 6px 16px #1f3a5c33}
.page-quote .qa-bar.customer-decision .revise{background:#fff;color:#1f3a5c;border:1.5px solid #c9d4e3}
.page-quote .qa-bar.customer-decision .pdf{background:#f3f5f8;color:#3b4552;border:1px solid #d5dce6;padding:0 16px}
@media (max-width:650px){
  .page-quote .qa-card{padding:16px 14px;margin:12px 0}
  .page-quote .qa-grid{grid-template-columns:1fr}
  .page-quote .qa-bar.customer-decision,.page-quote .qa-bar.customer-decision:has(.pdf){grid-template-columns:1fr;margin:10px 0}
  .page-quote .qa-bar.customer-decision .confirm{order:-1}
}

/* 관리자 표 — 글자 크기 한 가지 체계로, 본문은 모두 가운데 */
.page-admin .master-table td.num,.page-admin .master-table th.num,.page-admin .master-table.compact .num{text-align:center}
.page-admin .master-table.fixed td.bal{white-space:normal;overflow:visible;text-overflow:clip}
.page-admin .board-table td.bal .pay-tag{display:block;width:max-content;margin:3px auto 0}
.page-admin .edit-items th,.page-admin .edit-items td{font-size:15px;padding:9px 10px;text-align:center;vertical-align:middle}
.page-admin .edit-items th{font-size:14px;font-weight:600;color:#5a6677}
.page-admin .edit-items td.col-item{text-align:center;line-height:1.35}
.page-admin .edit-items td.col-item b{display:block;font-size:15px;font-weight:600;color:#1b2430}
.page-admin .edit-items td.col-item .i-spec{display:block;font-size:12.5px;font-weight:600;color:#2f6fbd;margin-top:2px}
.page-admin .edit-items select.item-type{font-size:15px !important;height:38px;min-width:68px;padding:0 8px !important;text-align:center !important;text-align-last:center !important}
.page-admin .edit-items .applied-input{font-size:15px;height:38px;text-align:center}
.page-admin .edit-items .col-list{font-size:15px}
.page-admin .edit-items .margin{font-size:15px;font-weight:700}
.page-admin .edit-items .margin small{font-size:12.5px;font-weight:600}
.page-admin .edit-items .diff{display:inline-block;font-size:12.5px;font-weight:700;padding:2px 8px;border-radius:6px}
.page-admin .edit-items .remove-btn{font-size:14px;font-weight:600;min-height:34px;padding:4px 14px;color:#c0392b;background:#fdecec;border:1px solid #f6caca;opacity:1}
.page-admin .edit-items .p-hint{font-size:12.5px}
/* PC에서 고객 폰 화면 보기 — 폭 390px 폰 틀(실제 폰과 같은 폭) */
.phone-prev-back{padding:12px}
.phone-prev{display:flex;flex-direction:column;background:#101722;border-radius:34px;padding:12px 12px 16px;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.phone-prev-bar{display:flex;align-items:center;gap:10px;padding:4px 8px 10px;color:#e6ebf2}
.phone-prev-bar b{font-size:15px}
.phone-prev-bar span{font-size:12px;color:#9aa6b6;flex:1}
.phone-prev-close{background:#2a3647;color:#fff;border:0;border-radius:10px;width:34px;height:34px;font-size:16px;cursor:pointer}
.phone-prev-frame{width:390px;height:min(844px,calc(100dvh - 110px));border-radius:24px;overflow:hidden;background:#fff}
.phone-prev-frame iframe{width:390px;height:100%;border:0;display:block}

/* ═══ 2026-09-24 2차 정돈: 표 선 맞춤 · 품목 머리 3줄 · 등급색 하나 · 표 선 통일 · 견적데이터 아래 · 고객 확인창 ═══ */

/* ① 견적데이터 품목표: 머리줄과 본문이 따로 표처럼 폭을 잡아 세로선이 어긋났다(thead/tbody display:table).
      한 표로 되돌린다 — 머리줄 고정(sticky)은 th에 그대로 걸린다. */
.edit-items{display:table !important;width:100%;min-width:850px;table-layout:fixed;border-collapse:collapse !important;border:0 !important;border-radius:0 !important}
.edit-items thead{display:table-header-group !important}
.edit-items tbody{display:table-row-group !important}
.edit-items thead,.edit-items tbody{width:auto !important;min-width:0 !important}

/* ② 품목/가격 설정 머리 — 세 줄 */
.page-admin .prod-head{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.page-admin .prod-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0}
.page-admin .prod-spacer{flex:1 1 auto}
.page-admin .prod-tabs{display:inline-flex;background:#eef1f5;border-radius:12px;padding:4px;gap:4px;border:0}
.page-admin .prod-tabs .subtab{min-width:88px;min-height:40px;border-radius:9px;font-size:16px;font-weight:700;border:0;background:transparent;color:#5a6677}
.page-admin .prod-tabs .subtab.active{background:#fff;color:#1f3a5c;box-shadow:0 2px 8px rgba(20,30,50,.12)}
.page-admin .prod-head .mode-btns button{min-height:40px;min-width:76px;font-size:15px}
.page-admin .prod-cats.cat-bar{display:flex;flex-wrap:wrap;gap:0;border-bottom:2px solid #e3e8ef;padding:0;margin:0;background:transparent}
.page-admin .prod-cats.cat-bar button{border:0 !important;border-radius:0 !important;background:transparent !important;box-shadow:none !important;
  color:#5a6677;font-size:15px;font-weight:600;min-height:42px;padding:0 14px;margin-bottom:-2px;border-bottom:3px solid transparent !important}
.page-admin .prod-cats.cat-bar button.active,.page-admin .prod-cats.cat-bar button.on{color:#1f3a5c !important;border-bottom-color:#1f3a5c !important}
.page-admin .prod-row-tools #productFilter{flex:0 1 300px;min-width:180px}

/* ③ 1·2·3등급 색 — 어디서든 같은 색(1 파랑 · 2 청록 · 3 앰버). 기존에 쓰던 색 그대로. */
:root{--g1:#1d4ed8;--g1t:#eef3fe;--g1b:#bcd2f7;--g2:#0d9488;--g2t:#e6f6f3;--g2b:#9fe0d3;--g3:#c2740c;--g3t:#fdf3e4;--g3b:#f4c78a}
.page-admin .qq-opt-grade.qq-g1,.page-admin .grade-buttons #grade-1,.page-admin .sg-grades button.sg-g1{color:var(--g1) !important;background:var(--g1t) !important;border:1.5px solid var(--g1b) !important}
.page-admin .qq-opt-grade.qq-g2,.page-admin .grade-buttons #grade-2,.page-admin .sg-grades button.sg-g2{color:var(--g2) !important;background:var(--g2t) !important;border:1.5px solid var(--g2b) !important}
.page-admin .qq-opt-grade.qq-g3,.page-admin .grade-buttons #grade-3,.page-admin .sg-grades button.sg-g3{color:var(--g3) !important;background:var(--g3t) !important;border:1.5px solid var(--g3b) !important}
.page-admin .qq-opt-grade.qq-g1.on,.page-admin .grade-buttons #grade-1.active,.page-admin .sg-grades button.sg-g1.active{color:#fff !important;background:var(--g1) !important;border-color:var(--g1) !important}
.page-admin .qq-opt-grade.qq-g2.on,.page-admin .grade-buttons #grade-2.active,.page-admin .sg-grades button.sg-g2.active{color:#fff !important;background:var(--g2) !important;border-color:var(--g2) !important}
.page-admin .qq-opt-grade.qq-g3.on,.page-admin .grade-buttons #grade-3.active,.page-admin .sg-grades button.sg-g3.active{color:#fff !important;background:var(--g3) !important;border-color:var(--g3) !important}
.page-admin .grade-buttons button{min-height:40px;min-width:80px;border-radius:10px;font-size:15px;font-weight:700}
.page-admin .grade-rate .gr-g1{--grade:var(--g1);--grade-tint:var(--g1t);border-color:var(--g1b) !important;background:var(--g1t) !important}
.page-admin .grade-rate .gr-g2{--grade:var(--g2);--grade-tint:var(--g2t);border-color:var(--g2b) !important;background:var(--g2t) !important}
.page-admin .grade-rate .gr-g3{--grade:var(--g3);--grade-tint:var(--g3t);border-color:var(--g3b) !important;background:var(--g3t) !important}
.page-admin .grade-rate .gr-g1 .gr-name{background:var(--g1) !important;color:#fff !important}
.page-admin .grade-rate .gr-g2 .gr-name{background:var(--g2) !important;color:#fff !important}
.page-admin .grade-rate .gr-g3 .gr-name{background:var(--g3) !important;color:#fff !important}
.page-admin .grade-rate .gr-g1 input{color:var(--g1) !important}
.page-admin .grade-rate .gr-g2 input{color:var(--g2) !important}
.page-admin .grade-rate .gr-g3 input{color:var(--g3) !important}

/* ④ 관리자 표 선 — 한 가지 모양(가는 회색 격자, 머리줄 연회색). 회계·현황판·품목·견적 전부. */
.page-admin .master-table thead th,.page-admin .edit-items thead th{background:#f5f7fa !important;color:#4b5563;border-top:0 !important;border-left:0 !important;
  border-right:1px solid #e3e7ee !important;border-bottom:1px solid #d9dfe7 !important}
.page-admin .master-table tbody td,.page-admin .edit-items tbody td{border-left:0 !important;border-right:1px solid #edf0f4 !important;border-bottom:1px solid #edf0f4 !important}
.page-admin .master-table thead th:last-child,.page-admin .master-table tbody td:last-child,
.page-admin .edit-items thead th:last-child,.page-admin .edit-items tbody td:last-child{border-right:0 !important}
.page-admin .master-table tfoot td{background:#f5f7fa;border-top:1px solid #d9dfe7;border-right:1px solid #e3e7ee;font-weight:700}
.page-admin .master-scroll,.page-admin .estimate-items-scroll{border:1px solid #dfe4eb !important;border-radius:10px !important;overflow:auto}
.page-admin .rep-sec{margin:18px 0 0}
.page-admin .rep-sec-head{font-size:15px;font-weight:800;color:#1f3a5c;margin:0 0 8px}
.page-admin .rep-sec-head .muted{font-size:13px;font-weight:500;margin-left:6px}
/* 회계 미수 구간 — 표 대신 칸 카드(표가 세 개 겹쳐 선이 제각각이던 것) */
.page-admin .aging-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:0 0 12px}
.page-admin .aging-tile{border:1px solid #dfe4eb;border-radius:10px;padding:10px 12px;background:#fff;text-align:center}
.page-admin .aging-tile span{display:block;font-size:13px;color:#5f6b7a;font-weight:600}
.page-admin .aging-tile b{display:block;font-size:17px;font-weight:800;color:#1b2430;margin-top:3px;font-variant-numeric:tabular-nums}
.page-admin .aging-tile.zero b{color:#a3acb8;font-weight:600}
.page-admin .aging-tile.bad{border-color:#f6caca;background:#fff5f5}.page-admin .aging-tile.bad b{color:#c0392b}
.page-admin .aging-tile.total{border-color:#1f3a5c;background:#1f3a5c}.page-admin .aging-tile.total span,.page-admin .aging-tile.total b{color:#fff}
/* 현황판 결제상태는 입금날짜 칸에 — 날짜 아래 한 줄 */
.page-admin .board-table td .pay-tag{display:inline-block;margin:0 0 0 4px}
.page-admin .master-table.fixed td{text-overflow:clip}

/* ⑤ 견적데이터 아래쪽 — 품목 추가 · 금액 · 합계 · 발송 · 버튼을 한 흐름으로 */
.page-admin .estimate-detail .add-line{display:grid;grid-template-columns:1fr 96px auto;gap:8px;align-items:center;margin:12px 0 0;padding:10px;background:#f5f7fa;border:1px solid #e3e8ef;border-radius:10px}
.page-admin .estimate-detail .add-line button{min-width:96px}
.page-admin .money-grid{display:grid !important;grid-template-columns:repeat(3,minmax(0,170px)) !important;gap:10px !important;margin:14px 0 0 !important}
.page-admin .money-grid label,.page-admin .money-grid .field{font-size:13px;font-weight:700;color:#4b5563}
.page-admin .money-grid input{min-height:40px;font-size:15px;text-align:right}
.page-admin .estimate-detail .totalbox{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(130px,1fr)) !important;gap:0 !important;
  margin-top:12px;padding:0 !important;background:#fff !important;border:1px solid #dfe4eb !important;border-radius:10px !important;overflow:hidden}
.page-admin .estimate-detail .totalbox .totalrow{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border-right:1px solid #edf0f4;background:#fff}
.page-admin .estimate-detail .totalbox .totalrow span:first-child{font-size:13px;font-weight:600;color:#5f6b7a}
.page-admin .estimate-detail .totalbox .totalrow span:last-child{font-size:18px;font-weight:800;color:#1b2430;font-variant-numeric:tabular-nums}
.page-admin .estimate-detail .totalbox .totalrow.grand{background:#1f3a5c}
.page-admin .estimate-detail .totalbox .totalrow.grand span{color:#fff !important}
.page-admin .version-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}
.page-admin .version-line b{font-size:14px;color:#1f3a5c}
.page-admin .copy-box{margin-top:8px;padding:9px 12px;font-size:13px;color:#5f6b7a;background:#f5f7fa;border:1px solid #e3e8ef;border-radius:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.page-admin .quote-actionbar{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;padding:12px 0 0;border-top:1px solid #e3e8ef}
.page-admin .quote-actionbar button{min-height:46px;min-width:120px;font-size:15px;font-weight:700;border-radius:10px;padding:0 18px}
.page-admin .quote-actionbar .primary{background:#1f3a5c !important;border-color:#1f3a5c !important;color:#fff !important}
.page-admin .quote-actionbar .secondary{background:#fff !important;border:1px solid #cfd7e2 !important;color:#1f3a5c !important}
.page-admin .quote-actionbar .action-confirm{background:#15803d !important;border-color:#15803d !important;color:#fff !important;margin-left:auto}
@media (max-width:760px){
  .page-admin .estimate-detail .add-line{grid-template-columns:1fr 80px}
  .page-admin .estimate-detail .add-line button{grid-column:1/-1}
  .page-admin .quote-actionbar{display:grid;grid-template-columns:1fr 1fr}
  .page-admin .quote-actionbar .action-confirm{margin-left:0}
}

/* ⑥ 고객 견적 신청 확인창 — 폰은 화면 전체 한 장, 스크롤은 본문 하나만 */
.qd-notice{margin:14px 0 0;padding:10px 12px;border-radius:8px;background:#fff7e8;border:1px solid #f4e2bf;color:#8a5a14;font-size:14px;font-weight:600;text-align:center}
.qd-request .qd-to{margin:16px 0 14px}
.qd-sub{font-size:14px;font-weight:800;color:#1f3a5c;margin:0 0 8px}
.qd-items-5 col.qd-c-spec{width:22%}.qd-items-5 col.qd-c-type{width:70px}.qd-items-5 col.qd-c-qty{width:76px}
.qd-request .qd-bank{margin-top:14px}
.page-customer .review-sheet.qp-sheet{display:flex;flex-direction:column;width:min(860px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:hidden}
.page-customer .review-sheet.qp-sheet .review-body{flex:1 1 auto;overflow:auto;padding:12px;background:#f3f5f8}
.page-customer .review-sheet.qp-sheet .quote-paper.qd{box-shadow:none !important}
.page-customer .review-sheet.qp-sheet .review-actions{flex:none}
body.page-customer:has(.review-sheet){overflow:hidden}
@media (max-width:650px){
  .page-customer .review-back:has(.qp-sheet){padding:0 !important;align-items:stretch !important}
  .page-customer .review-sheet.qp-sheet{width:100vw;max-width:none;height:100dvh;max-height:100dvh;border-radius:0}
  .page-customer .review-sheet.qp-sheet .review-body{padding:6px}
  .page-customer .review-sheet.qp-sheet .quote-paper.qd{padding:16px 12px !important}
}
/* 견적서 보기 — 카톡 보내기(이미지+문구) · 문구 복사 · 이미지 저장 */
.qpv-actions{display:flex;gap:8px;flex-wrap:wrap}
.qpv-actions .qpv-send{flex:1 1 280px;min-height:50px;font-size:16px;font-weight:800;background:#1f3a5c;border-color:#1f3a5c;color:#fff}
.qpv-actions .secondary{flex:0 0 auto;min-height:50px;min-width:110px;font-size:15px;font-weight:700}
.qpv-actions .secondary.next{background:#fff7e8 !important;border:2px solid #e8842c !important;color:#9a4e0c !important}
@media (max-width:650px){.qpv-actions .qpv-send{flex-basis:100%}.qpv-actions .secondary{flex:1 1 0}}
/* ═══ 견적데이터 편집 화면 다듬기(2026-09-24 오너 "여기서 바로 품목 추가·삭제·수정 쉽게, 폰트·정렬·빈 공간") ═══ */
.page-admin .estimate-fields{display:grid !important;grid-template-columns:repeat(4,minmax(0,1fr)) !important;gap:10px 12px !important}
.page-admin .estimate-fields label,.page-admin .estimate-fields .field{min-width:0}
.page-admin .estimate-fields input{font-size:15px;min-height:42px}
@media (max-width:760px){.page-admin .estimate-fields{grid-template-columns:1fr 1fr !important}}
.page-admin .grade-hint{font-size:13px;padding:8px 12px;margin:8px 0 0;line-height:1.5}
/* 품목표 열 폭 — 품목이 절반을 차지하고 삭제가 끝에 떨어져 있던 것 */
.page-admin .edit-items th.col-type{width:84px}
.page-admin .edit-items th.col-grade{width:68px}
.page-admin .edit-items th.col-list,.page-admin .edit-items th.col-cost{width:112px}
.page-admin .edit-items th.col-margin{width:140px}
.page-admin .edit-items th.col-qty{width:156px}
.page-admin .edit-items th.col-applied{width:128px}
.page-admin .edit-items th.col-diff{width:84px}
.page-admin .edit-items th.col-del{width:78px}
.page-admin .estimate-items-scroll .edit-items{min-width:0 !important}
.page-admin .edit-items tbody td{padding:8px 8px}
.page-admin .edit-items tbody tr:hover td{background:#f5f9ff}
.page-admin .edit-items tr.row-just-added td{animation:rowAdded 1.4s ease}
@keyframes rowAdded{0%{background:#fff1e0}100%{background:transparent}}
/* 품목 추가 줄 — 검색해서 고른다 */
.page-admin .estimate-detail .add-line.add-line-search{grid-template-columns:auto 1fr 90px auto !important;background:#fff !important;border:1.5px dashed #c9d4e3 !important}
.page-admin .add-line-search .add-line-label{font-size:14px;font-weight:800;color:#1f3a5c;white-space:nowrap;padding:0 4px}
.page-admin .add-line-search input{min-height:42px;font-size:15px}
.page-admin .add-line-search #addQty{text-align:center}
.page-admin .add-line-search button{min-height:42px;min-width:84px;font-size:15px;font-weight:700}
@media (max-width:760px){
  .page-admin .estimate-detail .add-line.add-line-search{grid-template-columns:1fr 80px !important}
  .page-admin .add-line-search .add-line-label{grid-column:1/-1}
  .page-admin .add-line-search button{grid-column:1/-1}
}
/* 품목 추가 드롭다운(분류별, 큰 글씨) */
.page-admin .ap-wrap{position:relative;min-width:0}
.page-admin .ap-wrap input{width:100%;box-sizing:border-box}
.page-admin .ap-list{display:none;position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:60;max-height:360px;overflow:auto;
  background:#fff;border:1px solid #cfd7e2;border-radius:12px;box-shadow:0 14px 34px rgba(20,30,50,.18);padding:4px 0}
.page-admin .ap-list.up{top:auto;bottom:calc(100% + 4px)}
.page-admin .ap-list.open{display:block}
.page-admin .ap-cat{position:sticky;top:0;background:#f3f5f8;color:#1f3a5c;font-size:13px;font-weight:800;padding:6px 14px;border-bottom:1px solid #e3e8ef}
.page-admin .ap-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px 14px;cursor:pointer;border-bottom:1px solid #f0f2f6}
.page-admin .ap-item:hover,.page-admin .ap-item.hi{background:#eef4ff}
.page-admin .ap-name{font-size:15px;font-weight:700;color:#1b2430;overflow-wrap:anywhere}
.page-admin .ap-spec{font-size:14px;color:#2f6fbd;font-weight:600;white-space:nowrap}
.page-admin .ap-type{font-size:12.5px;font-weight:700;padding:2px 9px;border-radius:6px}
.page-admin .ap-type.ap-rent{background:#eef3fe;color:#1d4ed8}
.page-admin .ap-type.ap-sale{background:#fdf3e4;color:#c2740c}
.page-admin .ap-empty{padding:16px;text-align:center;color:#8a94a3;font-size:14px}
/* 품목 추가 — 가운데 목록 창 */
.page-admin .estimate-detail .add-line.add-line-btn{display:flex !important;align-items:center;gap:12px;background:transparent !important;border:0 !important;padding:6px 0 !important}
.page-admin .add-line-btn .muted{font-size:13px}
.ap-back{padding:16px}
.ap-modal{display:flex;flex-direction:column;width:min(720px,calc(100vw - 32px));max-height:min(760px,calc(100dvh - 32px));background:#fff;border-radius:16px;box-shadow:0 24px 60px rgba(15,23,42,.30);overflow:hidden}
.ap-modal .ap-head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid #e3e8ef}
.ap-modal .ap-head b{font-size:18px;color:#1f3a5c}
.ap-modal .ap-added{flex:1;font-size:14px;font-weight:700;color:#15803d;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ap-modal .ap-tools{display:flex;gap:10px;align-items:center;padding:12px 16px;border-bottom:1px solid #eef1f5}
.ap-modal .ap-tools #addProductSearch{flex:1;min-width:0;min-height:44px;font-size:16px;padding:0 12px;border:1px solid #cfd7e2;border-radius:10px}
.ap-modal .ap-qty{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:700;color:#4b5563;white-space:nowrap}
.ap-modal .ap-qty input{width:70px;min-height:44px;text-align:center;font-size:16px;border:1px solid #cfd7e2;border-radius:10px}
.ap-modal .ap-list{position:static !important;display:block !important;max-height:none;flex:1 1 auto;overflow:auto;border:0;border-radius:0;box-shadow:none;padding:0}
.ap-modal .ap-cat{position:sticky;top:0;background:#f3f5f8;color:#1f3a5c;font-size:13px;font-weight:800;padding:7px 16px;border-bottom:1px solid #e3e8ef;z-index:1}
.ap-modal .ap-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;border-bottom:1px solid #f0f2f6}
.ap-modal .ap-item:hover,.ap-modal .ap-item.hi{background:#eef4ff}
.ap-modal .ap-item.done{animation:apDone 1.2s ease}
@keyframes apDone{0%{background:#dcfce7}100%{background:transparent}}
.ap-modal .ap-name{font-size:16px;font-weight:700;color:#1b2430;overflow-wrap:anywhere}
.ap-modal .ap-spec{font-size:14px;color:#2f6fbd;font-weight:600;white-space:nowrap}
.ap-modal .ap-type{font-size:12.5px;font-weight:700;padding:2px 9px;border-radius:6px}
.ap-modal .ap-type.ap-rent{background:#eef3fe;color:#1d4ed8}
.ap-modal .ap-type.ap-sale{background:#fdf3e4;color:#c2740c}
.ap-modal .ap-empty{padding:24px;text-align:center;color:#8a94a3;font-size:15px}
@media (max-width:650px){.ap-back{padding:0}.ap-modal{width:100vw;max-height:100dvh;height:100dvh;border-radius:0}}

/* ═══ 버튼은 글씨만큼(2026-09-24 오너 "버튼은 공간낭비하지 말고 글씨만큼, 모든 UI 버튼 전체 검토") ═══
   버튼 묶음은 오른쪽으로 모으고, 각 버튼은 글씨 폭 + 여백만. 누르기 좋게 높이는 44px 이상 유지.
   (탭 메뉴·수량 −/＋ 는 버튼 묶음이 아니라 대상에서 뺀다) */
:is(.lk-actions,.set-card-actions,.cat-actions,.mlink-actions,.modal-actions,.ask-actions,.confirm-actions,.wheel-actions,
    .qpv-actions,.admin-actions,.quote-actionbar,.review-actions,.pl-actions,.qa-bar,.qa-row,.qsc-actions,.oracle-account-actions){
  display:flex !important;flex-wrap:wrap !important;justify-content:flex-end !important;align-items:center;gap:8px !important;grid-template-columns:none !important}
:is(.lk-actions,.set-card-actions,.cat-actions,.mlink-actions,.modal-actions,.ask-actions,.confirm-actions,.wheel-actions,
    .qpv-actions,.admin-actions,.quote-actionbar,.review-actions,.pl-actions,.qa-bar,.qa-row,.qsc-actions,.oracle-account-actions) :is(button,.btn){
  flex:0 0 auto !important;width:auto !important;min-width:0 !important;max-width:100%;grid-column:auto !important;
  padding-left:20px !important;padding-right:20px !important;white-space:nowrap}
.page-admin .quote-actionbar .action-confirm{margin-left:auto !important}
.page-admin .add-line-search button,.page-admin .estimate-detail .add-line button{grid-column:auto !important;width:auto !important}
#ab3dLayer .a3-finish,#bt3dLayer .b3-finish{width:fit-content !important;min-width:0 !important;margin-left:auto !important;margin-right:auto !important;padding:0 28px !important}
.page-customer .submit-bar button,.page-customer #submitBtn{width:auto;padding-left:28px;padding-right:28px}
.set-card-actions :is(button,.btn){padding-left:14px !important;padding-right:14px !important}
.cal-foot{display:flex;justify-content:flex-end}.cal-foot button{width:auto !important;padding:0 16px}
body.page-admin.mcards .product-toolbar #productModeBtns button{flex:0 0 auto !important;padding:8px 16px !important}
.page-driver .actions{justify-content:flex-end;flex-wrap:wrap}.page-driver .actions button.primary{flex:0 0 auto}
/* 견적데이터 품목: 체크하고 한 번에 삭제 */
.page-admin .item-pick-bar{display:flex;align-items:center;gap:12px;margin:6px 0 8px}
.page-admin .item-pick-bar button{flex:0 0 auto;min-height:40px;padding:0 18px;font-weight:800}
.page-admin .item-pick-bar button:not(:disabled){background:#dc2626;border-color:#dc2626;color:#fff}
.page-admin .item-pick-bar .muted{font-size:14px}
.page-admin .edit-items th.col-itempick,.page-admin .edit-items td.col-itempick{width:52px;text-align:center;cursor:pointer}
.page-admin .edit-items .col-itempick input{width:20px;height:20px;margin:0;accent-color:#dc2626;cursor:pointer}
.page-admin .edit-items tr.picked-del td{background:#fef2f2 !important}
body.touchin .page-admin .edit-items .col-itempick input,body.touchin.page-admin .edit-items .col-itempick input{width:30px;height:30px}
.page-admin .edit-items th.col-item,.page-admin .edit-items td.col-item{width:auto !important}
.page-admin .edit-items td.col-itempick{width:auto}
/* 수정 모드 전환 때 화면이 흔들리지 않게: 안내줄은 두 모드가 같은 높이, ＋－·체크 칸은 자리만 두고 비움 */
.page-admin .edit-banner{box-sizing:border-box;height:38px;line-height:36px;display:block;padding:0 12px !important;margin-bottom:8px !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}
.page-admin .edit-banner.idle{background:#f6f8fb;border-color:#e3e8ef;color:#6b7686}
.page-admin .master-table.ops-idle .cell-rowops > *,.page-admin .master-table.ops-idle .cell-pick > *{visibility:hidden}
body.product-editing .product-scroll{box-shadow:none}
.page-admin .product-scroll{outline:2px solid transparent;outline-offset:-2px}
body.product-editing .page-admin .product-scroll,body.page-admin.product-editing .product-scroll{outline-color:#fed7aa}
@media (max-width:650px){.page-admin .edit-banner .muted{display:none}}
/* 운영 상태 칩·선택창 */
.ops-chip{display:inline-block;padding:3px 10px;border-radius:999px;font-size:13.5px;font-weight:700;white-space:nowrap;line-height:1.4}
.ops-wait{background:#f1f3f6;color:#5b6573}
.ops-ready{background:#e8f0fe;color:#1d4ed8}
.ops-unpaid{background:#fdecec;color:#c62828}
.ops-paid{background:#e6f6ec;color:#15803d}
.page-admin .board-table td.cell-ops{text-align:center;cursor:pointer}
.page-admin .board-table td.cell-ops:hover .ops-chip{box-shadow:0 0 0 2px currentColor}
.ops-sheet .ops-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:4px 18px 14px}
.ops-sheet .ops-choice{min-height:52px;border-radius:12px;border:2px solid transparent;font-size:16px;font-weight:800}
.ops-sheet .ops-choice.on{border-color:currentColor}
/* 창고(하남/남양주) 선택 */
.page-admin .wh-seg{display:flex;align-items:center;gap:6px;margin:8px 0}
.page-admin .wh-seg .wh-label{font-size:14px;font-weight:800;color:#4b5563;margin-right:4px}
.page-admin .wh-seg .wh-btn{min-height:38px;padding:0 16px;border-radius:10px;border:1px solid #cfd7e2;background:#fff;color:#374151;font-weight:700}
.page-admin .wh-seg .wh-btn.active{background:#334155;border-color:#334155;color:#fff}
.page-admin .wh-seg .wh-note{font-size:13px;margin-left:6px}
/* 거래처 발주 창 */
.vo-back{padding:16px}
.vo-modal{display:flex;flex-direction:column;width:min(1100px,calc(100vw - 32px));max-height:calc(100dvh - 32px);background:#fff;border-radius:16px;box-shadow:0 24px 60px rgba(15,23,42,.3);overflow:hidden}
.vo-modal .vo-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid #e3e8ef}
.vo-modal .vo-head b{font-size:18px;color:#1f3a5c}
.vo-modal .vo-vendors{display:flex;flex-wrap:wrap;gap:8px;padding:12px 16px 4px}
.vo-modal .vo-vbtn{min-height:40px;padding:0 18px;border-radius:10px;border:1px solid #cfd7e2;background:#fff;font-weight:800;font-size:15px}
.vo-modal .vo-vbtn.active{background:#334155;border-color:#334155;color:#fff}
.vo-modal .vo-to{padding:6px 16px 10px;font-size:14px;color:#374151}
.vo-modal .vo-body{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:14px;padding:0 16px 12px;overflow:auto}
.vo-modal .vo-preview{background:#f3f5f8;border-radius:12px;padding:12px;overflow:auto}
.vo-modal .vo-text{width:100%;min-height:320px;box-sizing:border-box;font-size:15px;line-height:1.6;padding:12px;border:1px solid #cfd7e2;border-radius:12px;resize:vertical;font-family:inherit}
.vo-modal .vo-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid #e3e8ef}
.vo-modal .vo-actions button{flex:0 0 auto;min-height:46px;padding:0 20px;font-weight:800}
.vo-modal .vo-actions .next{box-shadow:0 0 0 3px #f59e0b}
.vo-sheet{background:#fff;color:#111;padding:26px 28px;font-size:14px;border:1px solid #d6dbe3}
.vo-sheet .vo-title{text-align:center;font-size:26px;font-weight:900;letter-spacing:10px;margin-bottom:16px}
.vo-sheet table{width:100%;border-collapse:collapse}
.vo-sheet .vo-kv th,.vo-sheet .vo-kv td{border:1px solid #9aa3af;padding:7px 9px;text-align:left}
.vo-sheet .vo-kv th{background:#f1f3f6;width:70px;font-weight:800;white-space:nowrap}
.vo-sheet .vo-kv td span{color:#6b7280;font-size:12.5px}
.vo-sheet .vo-items{margin-top:14px}
.vo-sheet .vo-items th,.vo-sheet .vo-items td{border:1px solid #9aa3af;padding:7px 8px;text-align:center}
.vo-sheet .vo-items th{background:#f1f3f6;font-weight:800}
.vo-sheet .vo-items td.l{text-align:left}
.vo-sheet .vo-items td.q{font-weight:900;font-size:15px}
.vo-sheet .vo-items tfoot td{font-weight:900;background:#fafbfc}
.vo-sheet .vo-memo{margin-top:12px;font-size:13.5px}
@media (max-width:760px){.vo-back{padding:0}.vo-modal{width:100vw;max-height:100dvh;height:100dvh;border-radius:0}.vo-modal .vo-body{grid-template-columns:1fr}.vo-modal .vo-text{min-height:220px}}
/* 설정: 거래처 등록 */
.page-admin .vendor-help{font-size:13px;margin:4px 0 10px;line-height:1.5}
.page-admin .vendor-row{border:1px solid #e3e8ef;border-radius:12px;padding:12px;margin-bottom:10px;background:#fbfcfd}
.page-admin .vendor-fields{display:grid;grid-template-columns:1fr 1.4fr 1fr auto;gap:10px;align-items:end}
.page-admin .vendor-row label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:700;color:#4b5563}
.page-admin .vendor-row input,.page-admin .vendor-row textarea{font-size:15px;padding:8px 10px;border:1px solid #cfd7e2;border-radius:8px;font-family:inherit}
.page-admin .vendor-row .vd-tpl-label{margin-top:10px}
.page-admin .vendor-row .vd-del{min-height:40px;padding:0 14px}
.page-admin .vendor-btns{display:flex;gap:8px;justify-content:flex-end}
@media (max-width:650px){.page-admin .vendor-fields{grid-template-columns:1fr 1fr}}
/* 폰에서 일반견적서 스크롤 때 화면이 위아래로 찢어지던 것(2026-09-24 오너 신고).
   위에 붙은 머리줄(sticky)과 아래 고정 막대(fixed)가 반투명+배경 흐림(backdrop-filter:blur)이라
   스크롤할 때마다 뒤 화면을 다시 흐리게 그려야 했다 — 폰 브라우저가 이걸 못 따라가 줄이 찢어진다.
   흐림을 빼고 거의 불투명한 배경으로 바꾸고, 두 막대를 따로 그리는 층으로 떼어 낸다. */
.page-customer .topbar,.page-customer .bottom,.page-quote .customer-decision,.page-driver .driver-head{
  -webkit-backdrop-filter:none !important;backdrop-filter:none !important}
.page-customer .topbar{background:#f5f5f7 !important}
.page-customer .bottom,.page-quote .customer-decision{background:#ffffff !important}
.page-customer .topbar{transform:translateZ(0);backface-visibility:hidden}
/* 수정요청서(2026-09-24) — 규격 색 · 담긴 줄 노란색 · 목록 촘촘 · 확인 표 · 도장 */
.p-size-in{color:#db2777;font-weight:800}
.p-comp{color:inherit;font-weight:700}
.page-customer .p-sub .p-comp,.page-customer .pk-main small .p-comp{color:#173b63}
.page-customer .pk-main small .p-size,.qd-request .qd-spec .p-size{color:#db2777;font-weight:800}
.qd-request .qd-spec .p-comp{color:#101722;font-weight:600}
#bt3dLayer .b3-row .nm small b.b3-size{color:#db2777 !important}
#bt3dLayer .b3-row .nm small b.p-comp{color:#173b63}
/* 14번: 수량을 담은 줄은 글자색(갈색) 대신 칸 전체를 옅은 노란색으로 */
.page-customer .product.selected .p-name{color:#173b63 !important}
#bt3dLayer .b3-row.sel .q{color:inherit}
/* 5번: 일반견적서 목록을 촘촘하게 — 한 화면에 더 많이 보이게 */
.page-customer .product-list{gap:4px}
.page-customer .product{padding:3px 8px 3px 12px}
.page-customer .product .qty{height:42px}
.page-customer .p-name{line-height:1.25}
.page-customer .p-sub{margin-top:0}
/* 16번: 견적서 확인·고객 최종 견적서는 폰에서도 종이 견적서처럼 표 하나로(카드로 늘어뜨리지 않는다) */
@container (max-width:560px){
  .qd:is(.qd-request,.qd-compact) .qd-items{display:table !important;width:100%;min-width:0;table-layout:auto;border-top:2px solid var(--qd-navy);border-bottom:2px solid var(--qd-navy);font-size:13px}
  .qd:is(.qd-request,.qd-compact) .qd-items thead{display:table-header-group !important}
  .qd:is(.qd-request,.qd-compact) .qd-items tbody{display:table-row-group !important}
  .qd:is(.qd-request,.qd-compact) .qd-items tr{display:table-row !important;border:0;border-radius:0;margin:0;padding:0;background:transparent}
  .qd:is(.qd-request,.qd-compact) .qd-items th,.qd:is(.qd-request,.qd-compact) .qd-items td{display:table-cell !important;border:1px solid var(--qd-line);padding:5px 5px;text-align:center;font-size:13px;margin:0}
  .qd:is(.qd-request,.qd-compact) .qd-items td::before{content:none !important}
  .qd:is(.qd-request,.qd-compact) .qd-items td.qd-no{display:table-cell !important;width:24px;color:#8791a0}
  .qd:is(.qd-request,.qd-compact) .qd-items td.qd-name{text-align:left;font-size:13.5px;border-bottom:1px solid var(--qd-line);padding-bottom:5px;margin:0}
  .qd:is(.qd-request,.qd-compact) .qd-items td.qd-amt{white-space:nowrap;font-weight:800}
  .qd:is(.qd-request,.qd-compact) .qd-items td.qd-spec{white-space:nowrap}
}
/* 도장: 오른쪽 끝이 아니라 '(인)' 글자 위에 겹쳐 찍는다(마지막 요청) */
.qd-inwrap{position:relative;display:inline-block;margin-left:6px}
.qd-inwrap .qd-in{margin-left:0}
.qd-seal .qd-inwrap img{position:absolute;left:50%;right:auto !important;top:50%;transform:translate(-50%,-50%) rotate(-4deg);width:52px;height:52px}
.qd-from td.qd-seal{padding-right:9px !important}
@container (max-width:560px){.qd-seal .qd-inwrap img{width:40px;height:40px}}
@container (max-width:560px){.qd.qd-compact .qd-items td.num{text-align:right}.qd.qd-compact .qd-items th,.qd.qd-compact .qd-items td{padding:5px 4px;font-size:12.5px}.qd.qd-compact .qd-items td.qd-name{font-size:13px}}
/* 고객: 빠진 정보 미리 표시(아래 막대) */
.page-customer .missing-help{display:block;font-size:13.5px;margin-top:2px}
.page-customer .missing-help.need{color:#c62828}
.page-customer .missing-help.need b{font-weight:800}
.page-customer .missing-help.ok{color:#15803d;font-weight:700}
.page-customer #submitBtn.not-ready{opacity:.55}
/* 선택된 것은 모두 파란색 하나로(2026-09-24 오너 "선택된 컬러는 통일해라 파란색으로")
   — 임대/구매, 방식(3D 가설재 보기/일반 견적서), 분류, 담은 품목 줄. 안 고른 것은 흰 바탕·회색 글씨. */
.page-customer .pick-opt.pk-rent,.page-customer .pick-opt.pk-sale,
.page-customer .pick-opt.pk-3d,.page-customer .pick-opt.pk-list,
.page-customer .pick-setup-crumb .pick-opt.pk-3d,.page-customer .pick-setup-crumb .pick-opt.pk-list{
  background:#fff !important;border:1.5px solid #cfd7e2 !important;color:#374151 !important;font-weight:800;box-shadow:none !important}
.page-customer .pick-opt.pk-rent.on,.page-customer .pick-opt.pk-sale.on,
.page-customer .pick-opt.pk-3d.on,.page-customer .pick-opt.pk-list.on,
.page-customer .pick-setup-crumb .pick-opt.pk-3d.on,.page-customer .pick-setup-crumb .pick-opt.pk-list.on{
  background:#1d4ed8 !important;border-color:#1d4ed8 !important;color:#fff !important}
.page-customer .product.selected{background:#e8f0ff !important;border-color:#3b82f6 !important}
.page-customer .product.selected .p-name{color:#173b63 !important}
.page-admin .qq-opt-rent,.page-admin .qq-opt-sale{border:2px solid #cfd7e2 !important;color:#374151 !important;background:#fff !important;font-weight:800}
.page-admin .qq-opt-rent.on,.page-admin .qq-opt-sale.on{background:#1d4ed8 !important;border-color:#1d4ed8 !important;color:#fff !important;box-shadow:none !important}
/* 방식 버튼 두 개는 한 줄에 반씩(구분 임대/구매와 같은 모양) */
.page-customer .pick-setup-opts{display:grid !important;grid-template-columns:1fr 1fr;gap:8px}
.page-customer .pick-setup-opts .pick-opt{width:100% !important;min-width:0 !important;min-height:48px;padding:0 6px;white-space:nowrap;font-size:15.5px}
/* PC 에서는 단추가 화면 폭을 꽉 채워 한 개 405px 로 쓸데없이 컸다(2026-10-12 오너 "버튼 공간이 너무 쓸데없이 큰데 좀 줄일까?").
   글자에 맞는 고정 폭(200px)·높이 42px 로 왼쪽에 모은다. 줄마다 같은 폭이라 위아래 단추가 반듯하게 맞는다. 폰(760px 이하)은 두 칸 꽉 채움 그대로. */
@media (min-width:761px){
  .page-customer .pick-setup-opts{grid-template-columns:repeat(2,200px);justify-content:start}
  .page-customer .pick-setup-opts .pick-opt{min-height:42px;font-size:15px}
}
/* 품목 줄: 너무 촘촘하던 것을 조금 벌린다 */
.page-customer .product-list{gap:7px}
.page-customer .product{padding:7px 8px 7px 12px}
/* 폰에서는 화면 좌우를 꽉 채운다 */
@media (max-width:520px){
  .page-customer .content{padding-left:4px !important;padding-right:4px !important}
  .page-customer .card{padding:12px 8px !important;border-radius:12px}
  .page-customer .pick-setup{padding:10px 8px}
  .page-customer .pick-pick{padding:11px 7px 12px}
}
/* ═══ 견적데이터 상세 압축(2026-09-24 오너 "공간낭비 심하다, 목록이 최대한 많이 보이게, 입력창은 입력될 만큼만") ═══ */
.page-admin .estimate-fields{display:flex !important;flex-wrap:wrap;gap:6px 10px !important;align-items:flex-end}
.page-admin .estimate-fields .field{flex:0 0 auto;margin:0}
.page-admin .estimate-fields .field label{font-size:12.5px;margin-bottom:2px;color:#6b7686}
.page-admin .estimate-fields input{min-height:36px !important;height:36px;font-size:14.5px !important;padding:0 9px !important}
.page-admin .estimate-fields .fw-name{width:170px}
.page-admin .estimate-fields .fw-phone{width:140px}
.page-admin .estimate-fields .fw-when{width:185px}
.page-admin .estimate-fields .fw-date{width:150px}
.page-admin .estimate-fields .fw-grow{flex:1 1 220px;min-width:180px}
.page-admin .estimate-fields .fw-addr{flex-basis:300px}
.page-admin .estimate-detail h2{margin-bottom:6px !important}
/* 품목/가격 머리 한 줄 */
.page-admin .ip-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;margin:10px 0 6px}
.page-admin .ip-bar h3{margin:0 !important;font-size:16px}
.page-admin .ip-bar .ip-grp{display:inline-flex !important;align-items:center;gap:5px;margin:0 !important}
.page-admin .ip-bar .ip-lab{font-size:13px;font-weight:800;color:#6b7686;margin-right:2px}
.page-admin .ip-bar .ip-sp{flex:1}
.page-admin .ip-bar .item-pick-bar{margin:0 !important;gap:8px}
.page-admin .ip-bar .item-pick-bar .muted{font-size:13px}
.page-admin .ip-bar .grade-buttons button,.page-admin .ip-bar .wh-btn{min-height:34px !important;min-width:0 !important;padding:0 14px !important;font-size:14px !important;border-radius:9px}
.page-admin .ip-bar .item-pick-bar button{min-height:34px;padding:0 14px}
/* 선택된 것은 모두 파란색(등급·창고) — 안 고른 것은 흰 바탕 회색 글씨 */
.page-admin .ip-bar .grade-buttons button,.page-admin .ip-bar .wh-btn{background:#fff !important;color:#374151 !important;border:1.5px solid #cfd7e2 !important}
.page-admin .ip-bar .grade-buttons button.active,.page-admin .ip-bar .wh-btn.active{background:#1d4ed8 !important;color:#fff !important;border-color:#1d4ed8 !important}
.page-admin .qq-opt-grade.on,.page-admin .qq-opt-wh.on{background:#1d4ed8 !important;color:#fff !important;border-color:#1d4ed8 !important}
.page-admin .qq-opt-grade:not(.on),.page-admin .qq-opt-wh:not(.on){background:#fff !important;color:#374151 !important;border:1.5px solid #cfd7e2 !important}
/* 품목 표 줄 높이 줄이기 */
.page-admin .edit-items td{padding-top:3px !important;padding-bottom:3px !important}
.page-admin .edit-items{--qstep-h:34px}
.page-admin .edit-items .qty-stepper{height:34px !important}
.page-admin .edit-items .applied-input{min-height:32px !important;height:32px}
.page-admin .edit-items select.item-type{height:32px !important}
.page-admin .edit-items td.col-item b{font-size:14.5px}
.page-admin .edit-items td.col-item .i-spec{margin-top:0}
.page-admin .edit-items .price-hints{margin-top:1px}
@media (max-width:760px){.page-admin .estimate-fields .field{flex:1 1 45%;width:auto}}
.page-admin .ip-bar #grade-1,.page-admin .ip-bar #grade-2,.page-admin .ip-bar #grade-3{background:#fff !important;color:#374151 !important;border:1.5px solid #cfd7e2 !important}
.page-admin .ip-bar #grade-1.active,.page-admin .ip-bar #grade-2.active,.page-admin .ip-bar #grade-3.active{background:#1d4ed8 !important;color:#fff !important;border-color:#1d4ed8 !important}
.page-admin .estimate-fields .fw-name{width:150px}
.page-admin .estimate-fields .fw-phone{width:132px}
.page-admin .estimate-fields .fw-when{width:165px}
.page-admin .estimate-fields .fw-date{width:138px}
.page-admin .estimate-fields .fw-grow{flex:1 1 150px;min-width:130px}
.page-admin .estimate-fields .fw-addr{flex:2 1 240px}
.page-admin .estimate-detail .quote-view-status{display:inline-flex;padding:3px 10px !important;font-size:12.5px !important;margin:0 0 6px !important;min-height:0}
/* 품목 칸이 좁은 화면(1280)에서 한 글자로 찌그러지던 것 — 다른 칸을 줄이고, 그래도 좁으면 표만 가로로 민다 */
.page-admin .estimate-items-scroll .edit-items{min-width:900px !important}
.page-admin .edit-items th.col-itempick{width:44px !important}
.page-admin .edit-items th.col-type{width:72px !important}
.page-admin .edit-items th.col-grade{width:62px !important}
.page-admin .edit-items th.col-list,.page-admin .edit-items th.col-cost{width:94px !important}
.page-admin .edit-items th.col-margin{width:112px !important}
.page-admin .edit-items th.col-qty{width:138px !important}
.page-admin .edit-items th.col-applied{width:108px !important}
.page-admin .edit-items th.col-diff{width:72px !important}
.page-admin .edit-items select.item-type{min-width:0 !important;width:60px}
/* 견적데이터 아래쪽 정돈(2026-09-24): 버튼·금액 입력 한 줄, 합계 띠 낮게, 발송 이력·링크 작게 */
.page-admin .ed-tools{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;margin:10px 0 8px}
.page-admin .ed-tools>button{flex:0 0 auto;min-height:38px;padding:0 16px;font-size:14.5px;font-weight:800;border-radius:9px}
.page-admin .ed-tools #itemDelBtn:not(:disabled){background:#dc2626;border-color:#dc2626;color:#fff}
.page-admin .ed-tools #itemPickCount{font-size:13px}
.page-admin .ed-tools .ed-sp{flex:1}
.page-admin .ed-money{display:flex;gap:10px;align-items:center}
.page-admin .ed-money .field{display:flex;align-items:center;gap:6px;margin:0}
.page-admin .ed-money .field label{font-size:13px;font-weight:700;color:#6b7686;white-space:nowrap;margin:0}
.page-admin .ed-money input{width:110px !important;min-height:36px !important;height:36px;text-align:right;font-size:14.5px !important;padding:0 9px !important}
.page-admin .estimate-detail .totalbox{margin-top:4px !important}
.page-admin .estimate-detail .totalbox .totalrow{padding:7px 12px !important;min-height:0 !important}
.page-admin .estimate-detail .totalbox .totalrow span:first-child{font-size:12.5px}
.page-admin .estimate-detail .totalbox .totalrow span:last-child{font-size:17px}
.page-admin .estimate-detail .version-line{display:flex;align-items:center;gap:8px;margin:8px 0 4px !important;font-size:13px}
.page-admin .estimate-detail .version-line .version-chip{min-height:28px;padding:0 10px;font-size:13px}
.page-admin .estimate-detail .copy-box{font-size:12px !important;padding:6px 10px !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0 0 6px !important}
@media (max-width:760px){.page-admin .ed-money{flex-wrap:wrap}.page-admin .ed-tools .ed-sp{display:none}}
/* 견적 품목 표: 품목/가격 설정과 같은 ＋－·체크 칸(보기 모드에선 자리만 두고 비움) */
.page-admin .edit-items th.col-itemops,.page-admin .edit-items td.col-itemops{width:70px !important;text-align:center}
.page-admin .edit-items .rowops-in{display:inline-flex;gap:4px}
.page-admin .edit-items.ops-idle .col-itemops>*,.page-admin .edit-items.ops-idle .col-itempick>*{visibility:hidden}
.page-admin #itemModeBtns{display:flex;gap:6px;flex:0 0 auto}
.page-admin #itemModeBtns>button{min-height:36px;min-width:64px;padding:0 14px;font-size:14.5px;font-weight:800;border-radius:9px}
.page-admin #itemModeBtns>button:disabled{opacity:.4}
.page-admin #itemEditBtn{min-width:72px}
/* ═══ 견적서입력 위쪽 한 줄 정돈(2026-09-24 오너) — 구분·창고·등급·방식을 한 줄에, 각각 '둘(셋) 중 하나'로 보이는 붙은 버튼 ═══ */
.page-admin .qq-setup{display:flex !important;flex-wrap:wrap;align-items:center;gap:8px 18px !important;padding:8px 12px !important;grid-template-columns:none !important}
.page-admin .qq-setup-row{display:inline-flex !important;align-items:center;gap:8px;flex:0 0 auto !important;grid-column:auto !important}
.page-admin .qq-setup-row+.qq-setup-row{padding-left:18px !important;border-left:1px solid #dfe5ee}
.page-admin .qq-setup-label{font-size:13.5px !important;font-weight:800 !important;color:#6b7686 !important;flex:0 0 auto !important;padding:0 !important}
.page-admin .qq-setup-opts{display:inline-flex !important;gap:0 !important;flex-wrap:nowrap !important;border:1.5px solid #cfd7e2;border-radius:10px;overflow:hidden;background:#fff}
.page-admin .qq-setup-opts .qq-opt{border:0 !important;border-radius:0 !important;min-height:36px !important;padding:0 14px !important;font-size:14.5px !important;margin:0 !important;box-shadow:none !important;background:#fff !important;color:#4b5563 !important}
.page-admin .qq-setup-opts .qq-opt+.qq-opt{border-left:1.5px solid #cfd7e2 !important}
.page-admin .qq-setup-opts .qq-opt.on{background:#1d4ed8 !important;color:#fff !important}
.page-admin .qq-setup-opts .qq-opt-3d{background:#fff !important;color:#4b5563 !important}
/* 분류 + 세트 담기 한 줄 */
.page-admin .pick-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0}
.page-admin .pick-line .cat-bar{display:flex;flex-wrap:wrap;gap:6px;margin:0 !important;padding:0 !important;border:0 !important;background:transparent !important}
.page-admin .pick-line .pl-sep{width:1px;height:26px;background:#dfe5ee;margin:0 6px}
.page-admin .pick-line .pl-lab{font-size:13px;font-weight:800;color:#b45309}
.page-admin .pick-line .tier-set-btn{background:#fff4e5 !important;color:#b45309 !important;border:1.5px solid #f3c27c !important;min-height:36px !important;padding:0 12px !important;font-size:14.5px !important;font-weight:800 !important;border-radius:9px !important}
.page-admin .pick-line .tier-set-btn:hover{background:#ffe7c7 !important}
/* 품목/가격 설정: 수정 안내를 버튼 줄 안에 */
.page-admin .mode-note{font-size:13px;font-weight:700;color:#b45309;white-space:nowrap}
.page-admin .mode-note:empty{display:none}
/* ═══ 발주서 — 견적서와 같은 문서 톤(남색 머리·연회색 칸·자간 넓은 제목) ═══ */
.vo-sheet{font-family:inherit;color:#1b2430;padding:30px 32px !important;border:1px solid #d5dce6 !important;box-shadow:0 2px 10px rgba(15,23,42,.06)}
.vo-sheet .vo-title{font-size:30px !important;letter-spacing:.55em !important;padding-left:.55em;margin-bottom:6px !important;color:#1f3a5c}
.vo-sheet .vo-title::after{content:'';display:block;height:4px;border-top:2px solid #1f3a5c;border-bottom:1px solid #1f3a5c;margin:12px 0 16px}
.vo-sheet .vo-kv th,.vo-sheet .vo-kv td{border:1px solid #d5dce6 !important;padding:8px 10px !important;font-size:14px}
.vo-sheet .vo-kv th{background:#f3f6fa !important;color:#3b4552;font-weight:700;width:72px}
.vo-sheet .vo-items{margin-top:16px !important;border-top:2px solid #1f3a5c;border-bottom:2px solid #1f3a5c}
.vo-sheet .vo-items th{background:#1f3a5c !important;color:#fff !important;border:1px solid #1f3a5c !important;padding:8px 6px !important;font-weight:700}
.vo-sheet .vo-items td{border:1px solid #d5dce6 !important;padding:7px 8px !important;font-size:14px}
.vo-sheet .vo-items tbody tr:nth-child(even) td{background:#fafbfd}
.vo-sheet .vo-items td.q{color:#1f3a5c}
.vo-sheet .vo-items tfoot td{background:#eef2f8 !important;color:#1f3a5c;border:1px solid #d5dce6 !important}
.vo-modal .vo-vendors{gap:0 !important;display:inline-flex !important;align-self:flex-start;margin:12px 16px 4px;padding:0 !important;border:1.5px solid #cfd7e2;border-radius:10px;overflow:hidden}
.vo-modal .vo-vbtn{border:0 !important;border-radius:0 !important;min-height:38px}
.vo-modal .vo-vbtn+.vo-vbtn{border-left:1.5px solid #cfd7e2 !important}
.vo-modal .vo-vbtn.active{background:#1d4ed8 !important;color:#fff !important}
.vo-modal .vo-text{font-size:14.5px}
.page-admin .qq-setup{flex-direction:row !important;justify-content:flex-start !important;align-items:center !important;max-width:none !important}
.page-admin .qq-setup-row{width:auto !important;justify-content:flex-start !important}
.page-admin #qqPickArea .toolbar{flex-wrap:nowrap}
.page-admin #qqPickArea .toolbar #qProductSearch{flex:1 1 160px;min-width:120px}
.page-admin #qqPickArea .toolbar .set-pick select{max-width:150px}
/* 체크 칸은 보기 모드에서도 보인다 — ＋/－만 흐리게(수정 모드에서 켜짐) */
.page-admin .master-table.ops-idle .cell-pick>*,.page-admin .edit-items.ops-idle .col-itempick>*{visibility:visible !important}
.page-admin .master-table.ops-idle .cell-rowops>*,.page-admin .edit-items.ops-idle .col-itemops>*{visibility:visible !important;opacity:.3;pointer-events:none}
/* 견적서입력 한 줄 도구 + 체크 칸 */
.page-admin .qq-tools{display:flex !important;align-items:center;flex-wrap:wrap;gap:6px 8px}
.page-admin .qq-tools .qq-tools-sp{flex:1}
.page-admin .qq-tools #qqDelBtn{min-height:36px;min-width:64px;padding:0 14px;font-weight:800;border-radius:9px}
.page-admin .qq-tools #qqDelBtn:disabled{opacity:.4}
.page-admin .qq-tools .pl-lab{font-size:13px;font-weight:800;color:#b45309}
.page-admin .qq-tools .tier-set-btn{background:#fff4e5 !important;color:#b45309 !important;border:1.5px solid #f3c27c !important;min-height:36px !important;padding:0 11px !important;font-size:14px !important;font-weight:800 !important;border-radius:9px !important}
.page-admin .quick-entry col.c-qpick{width:40px}
.page-admin .quick-entry .qpick{text-align:center;width:40px}
.page-admin .quick-entry .qpick input{width:18px;height:18px}
.page-admin .quick-entry tr.picked-del td{background:#fef2f2 !important}
.page-admin #qqPickArea .toolbar.qq-tools{flex-wrap:wrap !important}
.page-admin .qq-tools .pl-lab{white-space:nowrap}
.page-admin .qq-tools #qProductSearch{flex:1 1 150px !important;min-width:130px !important}
.page-admin .qq-tools .set-pick{display:inline-flex;gap:6px;flex:0 0 auto}
.page-admin .qq-tools .set-pick select{max-width:140px}
/* ═══ 목록 공통: 표 바로 위 줄 = 왼쪽 [수정][취소][삭제], 오른쪽 검색·필터 (모든 목록 같은 모양) ═══ */
.page-admin .list-actions{display:flex !important;align-items:center;flex-wrap:wrap;gap:6px 8px;margin:6px 0 !important;padding:0 !important;background:transparent !important;border:0 !important}
.page-admin .list-actions .mode-btns,.page-admin .list-actions #boardModeBtns .btn-group,.page-admin .list-actions #customerModeBtns .btn-group{display:inline-flex !important;gap:6px}
.page-admin .list-actions .mode-btns>button,.page-admin .list-actions .btn-group>button{min-height:36px !important;min-width:64px;padding:0 14px !important;font-size:14.5px !important;font-weight:800;border-radius:9px !important}
.page-admin .list-actions .mode-btns>button:disabled,.page-admin .list-actions .btn-group>button:disabled{opacity:.4}
.page-admin .list-actions .prod-spacer{flex:1}
.page-admin .list-actions input[type=text],.page-admin .list-actions input:not([type]),.page-admin .list-actions select{min-height:36px;height:36px;font-size:14.5px}
.page-admin .list-actions #productFilter,.page-admin .list-actions #customerSearch,.page-admin .list-actions #qProductSearch{flex:0 1 260px;min-width:160px}
.page-admin .board-toolbar.list-actions #boardSearch{flex:0 1 300px;min-width:180px}
/* 품목/가격 위 줄: 구분 + 분류가 한 덩어리로 보이게 */
.page-admin .prod-row-top{display:flex !important;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:8px 10px !important;background:#f6f8fb;border:1px solid #e3e8ef;border-radius:12px;margin-bottom:4px}
.page-admin .prod-row-top .prod-cats{border:0 !important;margin:0 !important;padding:0 !important;flex:0 1 auto}
.page-admin .prod-row-top .prod-spacer{flex:1}
/* 견적 목록 위 [전체][삭제] */
.page-admin .req-actions{padding:6px 12px !important;border-bottom:1px solid #eef1f5 !important}
.page-admin .req-actions .req-all{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:700;color:#4b5563}
.page-admin .req-actions .req-all input{width:18px;height:18px}
.page-admin .req-actions .req-count{font-size:13px}
/* 견적서입력 미리보기: 품목이 늘어 세로 스크롤이 생겨도 폭이 그대로(스크롤바 자리를 늘 비워 둔다) —
   폭이 줄면 견적서가 좁은 모양으로 갑자기 바뀌었다(2026-09-24 오너 "견적서 넣다 보면 위치가 변한다") */
/* 휠이 안 먹던 것(2026-09-24 오너): 실제로 스크롤되는 곳은 #qPreview 인데, 안쪽 종이(.quote-paper)가
   넘치지도 않는 '스크롤 상자' + overscroll contain 이라 휠을 먹고 위로 넘기지 않았다. 스크롤은 바깥 하나만. */
.page-admin .qq-preview .quote-paper{overflow:visible !important;overscroll-behavior:auto !important;flex:0 0 auto !important}
.page-admin #qPreview.qq-preview{overflow-y:scroll !important;scrollbar-gutter:stable;overscroll-behavior:contain}
/* 품목 추가 창 [임대|판매] */
.ap-modal .ap-type-seg{display:inline-flex;border:1.5px solid #cfd7e2;border-radius:10px;overflow:hidden;flex:0 0 auto}
.ap-modal .ap-type-seg button{min-height:44px;padding:0 16px;border:0;background:#fff;color:#4b5563;font-size:15px;font-weight:800}
.ap-modal .ap-type-seg button+button{border-left:1.5px solid #cfd7e2}
.ap-modal .ap-type-seg button.on{background:#1d4ed8;color:#fff}
/* 상태 고르기 창: 여섯 단계 */
.stage-sheet .stage-choices{grid-template-columns:repeat(3,1fr) !important}
.stage-choice.st-open{background:#eaf3ff;color:#1d4ed8}
.stage-choice.st-priced{background:#f2edfb;color:#6d3fb0}
.stage-choice.st-sent{background:#e8f0fe;color:#0f4fb5}
.stage-choice.st-revision{background:#fff4e5;color:#b45309}
.stage-choice.st-done{background:#e6f6ec;color:#15803d}
.stage-choice.st-cancel{background:#f1f3f6;color:#6b7280}
.stage-choice:disabled{opacity:.35;cursor:not-allowed}
.page-admin .board-table td.cell-status.editable{cursor:pointer}
/* 칸 아래 드롭다운(상태·운영 상태) */
.cell-dd{padding:4px !important;border-radius:10px !important;box-shadow:0 10px 28px rgba(15,23,42,.18) !important;border:1px solid #dfe5ee !important;background:#fff !important;z-index:2147483000 !important}
.cell-dd .dd-title{font-size:12px;font-weight:700;color:#8a94a3;padding:4px 8px 2px}
.cell-dd .dd-item{display:flex;align-items:center;gap:8px;width:100%;min-height:36px;padding:0 10px;border:0;border-radius:7px;background:transparent;font-size:14.5px;font-weight:700;text-align:left;color:#1b2430;cursor:pointer}
.cell-dd .dd-item:hover:not(:disabled){background:#f1f5fb}
.cell-dd .dd-item.on{background:#eaf1ff}
.cell-dd .dd-item:disabled{opacity:.35;cursor:not-allowed}
.cell-dd .dd-dot{width:9px;height:9px;border-radius:50%;background:currentColor;flex:0 0 auto}
.cell-dd .dd-check{margin-left:auto;color:#1d4ed8;font-weight:900}
.cell-dd .dd-item.st-open{color:#1d4ed8}.cell-dd .dd-item.st-priced{color:#6d3fb0}.cell-dd .dd-item.st-sent{color:#0f4fb5}
.cell-dd .dd-item.st-revision{color:#b45309}.cell-dd .dd-item.st-done{color:#15803d}.cell-dd .dd-item.st-cancel{color:#6b7280}
.cell-dd .dd-item.ops-wait{color:#5b6573}.cell-dd .dd-item.ops-ready{color:#1d4ed8}.cell-dd .dd-item.ops-unpaid{color:#c62828}.cell-dd .dd-item.ops-paid{color:#15803d}
.cell-dd .dd-item span:not(.dd-dot):not(.dd-check){color:inherit}
/* 견적데이터 머리: 상태·운영 칩(누르면 드롭다운) + 오른쪽 [저장] */
.page-admin .est-head{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.page-admin .est-head .est-head-sp{flex:1}
.page-admin .est-head #estSaveBtn{min-height:38px;padding:0 22px;font-size:15px;font-weight:800;border-radius:9px}
.page-admin .stage-chip{border:1.5px solid currentColor;border-radius:999px;padding:3px 11px;font-size:13.5px;font-weight:800;cursor:pointer;background:#fff;line-height:1.4;min-height:0}
.page-admin .stage-chip:hover:not(:disabled){filter:brightness(.95)}
.page-admin .stage-chip.st-open{color:#1d4ed8;background:#eaf3ff}.page-admin .stage-chip.st-priced{color:#6d3fb0;background:#f2edfb}
.page-admin .stage-chip.st-sent{color:#0f4fb5;background:#e8f0fe}.page-admin .stage-chip.st-revision{color:#b45309;background:#fff4e5}
.page-admin .stage-chip.st-done{color:#15803d;background:#e6f6ec}.page-admin .stage-chip.st-cancel{color:#6b7280;background:#f1f3f6}
/* 아래 버튼 색 */
.page-admin .quote-actionbar .action-send{background:#1d4ed8 !important;border-color:#1d4ed8 !important;color:#fff !important}
.page-admin .quote-actionbar .action-vendor{background:#d97706 !important;border:1px solid #d97706 !important;color:#fff !important}
.page-admin .quote-actionbar .action-preview{background:#7c3aed !important;border:1px solid #7c3aed !important;color:#fff !important}
.page-admin .quote-actionbar .secondary{background:#475569 !important;border-color:#475569 !important;color:#fff !important}
.page-admin .quote-actionbar button{font-weight:800}
/* 품목 추가 창 가격 */
.ap-modal .ap-item{grid-template-columns:minmax(0,1fr) auto auto auto !important}
.ap-modal .ap-price{font-size:14.5px;font-weight:800;color:#1b2430;min-width:78px;text-align:right;font-variant-numeric:tabular-nums}
/* 고객 맨 위 한 줄: 로그인가설 견적서 · 버전 · [내 주문조회] */
.page-customer .brand{display:flex !important;align-items:center;gap:8px;flex-wrap:nowrap !important;white-space:nowrap}
.page-customer .brand .app-version{margin:0 !important}
.page-customer .my-orders-btn{position:static !important;margin:0 !important;min-height:32px !important;padding:0 12px !important;font-size:13px !important;border-radius:999px !important;flex:0 0 auto}
/* 일반 견적서 세트 담기 */
.page-customer .pick-set-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.page-customer .pick-set-lab{font-size:13px;font-weight:800;color:#b45309;margin-right:2px}
.page-customer .pick-set-btn{min-height:38px;padding:0 12px;border-radius:10px;border:1.5px solid #f3c27c;background:#fff4e5;color:#b45309;font-size:14.5px;font-weight:800}
.page-customer .pick-set-btn:active{background:#ffe7c7}
.page-customer .pick-cat-row .pick-cats{margin:0}
/* 품목/가격: 임대·판매 = 같은 파랑, 같은 크기(눌러도 틀이 안 움직임) · 분류는 칩으로 뚜렷하게(2026-09-24 오너) */
.page-admin .prod-tabs{flex:0 0 auto !important}
.page-admin .prod-tabs .subtab,.page-admin .prod-tabs .subtab.active{width:92px !important;min-width:92px !important;height:42px !important;min-height:42px !important;padding:0 !important;margin:0 !important;font-size:16px !important;font-weight:800 !important;border:0 !important;transform:none !important;box-sizing:border-box}
.page-admin .prod-tabs .subtab.active{background:#1d4ed8 !important;color:#fff !important;box-shadow:0 2px 6px rgba(29,78,216,.3) !important}
.page-admin .prod-row-top{flex-wrap:nowrap !important;min-height:58px;align-items:center}
.page-admin .prod-row-top .prod-cats.cat-bar{flex:1 1 auto !important;min-width:0;flex-wrap:nowrap !important;overflow-x:auto;gap:6px !important;border:0 !important;padding:0 0 0 12px !important;margin-left:4px !important;border-left:2px solid #dfe5ee !important;scrollbar-width:thin}
.page-admin .prod-row-top .prod-cats.cat-bar button{flex:0 0 auto;height:38px !important;min-height:38px !important;padding:0 12px !important;border:1.5px solid #d6dde7 !important;border-radius:9px !important;background:#fff !important;color:#374151 !important;font-size:14.5px !important;font-weight:700 !important;white-space:nowrap;margin:0 !important}
.page-admin .prod-row-top .prod-cats.cat-bar button.active,.page-admin .prod-row-top .prod-cats.cat-bar button.on{background:#eaf1ff !important;border-color:#1d4ed8 !important;color:#1d4ed8 !important}
.page-admin .prod-row-top .prod-spacer{display:none}
.page-admin .prod-row-top .grade-rate{flex:0 0 auto;margin-left:8px}
/* 분류가 잘리지 않게 자기 줄로: 위 줄 = [임대|판매] ··· 등급 할인율, 아래 줄 = 분류 칩 */
.page-admin .prod-row-top{flex-wrap:wrap !important;row-gap:10px}
.page-admin .prod-row-top .prod-spacer{display:block !important;flex:1 1 auto}
.page-admin .prod-row-top .prod-cats.cat-bar{order:5;flex:1 1 100% !important;border-left:0 !important;padding:10px 0 0 !important;margin:0 !important;border-top:1.5px solid #e3e8ef !important;flex-wrap:wrap !important;overflow:visible}
.page-admin .prod-row-top .prod-cats.cat-bar button span,.page-admin .prod-row-top .prod-cats.cat-bar button small,.page-admin .prod-row-top .prod-cats.cat-bar button .cnt{color:#6b7280 !important;background:#f1f3f6 !important}
.page-admin .prod-row-top .prod-cats.cat-bar button.active span,.page-admin .prod-row-top .prod-cats.cat-bar button.active small,.page-admin .prod-row-top .prod-cats.cat-bar button.active .cnt{color:#1d4ed8 !important;background:#dbe7ff !important}
/* 아래 버튼줄: 거래 확정도 왼쪽에 붙여 나란히(2026-09-24 오너) */
.page-admin .quote-actionbar .action-confirm{margin-left:0 !important}
.page-admin .quote-actionbar{justify-content:flex-start !important}
/* 분류 칩: 골라도 글자 굵기·테두리 두께가 같아 폭이 안 변한다 */
.page-admin .prod-row-top .prod-cats.cat-bar button,.page-admin .prod-row-top .prod-cats.cat-bar button.active,.page-admin .prod-row-top .prod-cats.cat-bar button.on{font-weight:700 !important;border-width:1.5px !important;letter-spacing:0 !important}
.page-admin .prod-row-top .prod-cats.cat-bar button *{font-weight:700 !important}
/* 결제 안내 창: 문구가 다 보이게 넓고 길게 */
.pg-sheet{width:min(640px,94vw) !important;max-width:none !important}
.pg-sheet .pg-text{display:block;width:100% !important;box-sizing:border-box;min-height:300px;height:44vh;max-height:520px;padding:12px 14px;font-size:15.5px;line-height:1.6;border:1.5px solid #d6dde7;border-radius:10px;resize:vertical;white-space:pre-wrap}
/* 품목/가격 머리 다시 배치(2026-09-24 오너): 위 줄 = [임대|판매] ┃ 분류 칩, 다음 줄 = 등급 할인율(왼쪽), 표 위 = 수정·취소·삭제 + 검색·필터(왼쪽) */
.page-admin .prod-row-top{flex-wrap:wrap !important;justify-content:flex-start !important;align-items:center;gap:10px 0 !important}
.page-admin .prod-row-top .prod-spacer{display:none !important}
.page-admin .prod-row-top .prod-tabs{order:1;background:#e7ecf3 !important;border:1.5px solid #cfd8e4 !important;border-radius:12px !important}
.page-admin .prod-row-top .prod-cats.cat-bar{order:2;flex:1 1 0 !important;min-width:0;flex-wrap:wrap !important;overflow:visible;border-top:0 !important;border-left:3px solid #9fb0c6 !important;margin:0 0 0 14px !important;padding:0 0 0 14px !important;gap:6px !important;row-gap:6px !important}
.page-admin .prod-row-top .grade-rate{order:3;flex:0 0 auto;margin:0 !important;justify-content:flex-start !important;display:flex}
.page-admin .prod-row-top .grade-rate>*{flex:0 0 auto}
/* 분류 칩 숫자: 잘 보이게 */
.page-admin .prod-row-top .prod-cats.cat-bar button em{font-style:normal;display:inline-block;min-width:20px;padding:1px 6px;margin-left:5px;border-radius:999px;font-size:12.5px;font-weight:800 !important;color:#fff !important;background:#64748b !important;line-height:1.35;text-align:center}
.page-admin .prod-row-top .prod-cats.cat-bar button.active em{background:#1d4ed8 !important;color:#fff !important}
/* 표 위: 검색·필터를 왼쪽으로 */
.page-admin .prod-row-tools{justify-content:flex-start !important}
.page-admin .prod-row-tools #productFilter{margin-left:12px !important;width:240px !important;flex:0 0 auto !important}
.page-admin .prod-row-tools .prod-spacer{flex:1 1 auto}
/* 품목 표: 칸 폭 그대로(늘려 채우지 않음) — 임대/판매 바꿔도 같은 칸은 같은 자리 */
.page-admin .product-scroll table.master-table{width:max-content !important;min-width:0 !important}
.page-admin .board-table tr.board-row{cursor:default}
.cart-fab{touch-action:none;user-select:none;-webkit-user-select:none}
.cart-fab.dragging{transition:none !important;transform:scale(1.08);box-shadow:0 10px 26px rgba(15,23,42,.35) !important;cursor:grabbing}
/* 폰 관리자: [수정][취소][삭제] 가 한 줄에 셋 나란히(세로로 늘어나 옆으로 밀려 나가던 것, 2026-09-25) */
@media (max-width:640px){
  .page-admin .mode-btns{display:flex !important;flex-wrap:nowrap !important;width:100% !important;gap:6px !important;max-width:100%}
  .page-admin .mode-btns>button{flex:1 1 0 !important;width:auto !important;min-width:0 !important;margin:0 !important}
  .page-admin .list-actions{flex-wrap:wrap !important;max-width:100%}
  .page-admin .list-actions>*{max-width:100%}
}
@media (max-width:640px){
  .page-admin #boardModeBtns{display:block !important;width:100% !important;max-width:100%}
  .page-admin #boardModeBtns .btn-group{display:flex !important;flex-wrap:nowrap !important;width:100% !important;gap:6px !important}
  .page-admin #boardModeBtns .btn-group>button{flex:1 1 0 !important;width:auto !important;min-width:0 !important;margin:0 !important;padding:8px 6px !important}
}
/* 폰 관리자 머리: 로고 옆 오른쪽에 로그아웃만 작게(한 줄) */
@media (max-width:640px){
  .page-admin .workspace-tools{margin:0 !important}
  .page-admin .workspace-tools-panel{display:flex !important;justify-content:flex-end;padding:0 !important;background:transparent !important;border:0 !important}
  .page-admin .workspace-tools-panel .logout-btn{min-height:36px !important;padding:0 12px !important;font-size:14px !important;width:auto !important}
}
@media (max-width:640px){
  .page-admin .workspace-tools{flex:0 0 auto !important;width:auto !important;margin-left:auto !important;grid-column:auto !important}
  .page-admin .workspace-tools-panel .logout-btn{white-space:nowrap !important;flex:0 0 auto !important;display:inline-flex !important;align-items:center;gap:4px}
}
/* 폰 현황판 짧은 카드 */
.page-admin .mb-list{display:flex;flex-direction:column;gap:8px;padding:2px 0 12px}
.page-admin .mb-card{background:#fff;border:1px solid #e3e8ef;border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}
.page-admin .mb-top{display:flex;align-items:center;gap:6px;min-width:0}
.page-admin .mb-top input{width:18px;height:18px;flex:0 0 auto;margin:0}
.page-admin .mb-co{font-size:17px;font-weight:800;color:#111827;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.page-admin .mb-top .status-chip,.page-admin .mb-top .ops-chip{flex:0 0 auto;font-size:13px;padding:3px 9px;border-radius:999px;white-space:nowrap}
.page-admin .mb-tap{cursor:pointer}
.page-admin .mb-sub{font-size:13px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.page-admin .mb-items{font-size:14px;color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.page-admin .mb-bottom{display:flex;align-items:center;gap:10px;margin-top:2px}
.page-admin .mb-amt{font-size:13px;color:#6b7280;white-space:nowrap}
.page-admin .mb-amt b{font-size:15px;color:#111827;font-variant-numeric:tabular-nums}
.page-admin .mb-amt.mb-bal b{color:#dc2626}
.page-admin .mb-open{margin-left:auto !important;min-height:36px !important;padding:0 16px !important;width:auto !important;flex:0 0 auto}
.page-admin .mb-empty{padding:20px;text-align:center}
/* 폰 현황판 도구줄: 검색 한 줄, [상태][잔액만][새로고침] 한 줄, 통계 카드 4개 한 줄 */
@media (max-width:760px){
  body.page-admin.mcards .board-toolbar{grid-template-columns:1fr auto auto !important;align-items:center}
  body.page-admin.mcards .board-toolbar>select{grid-column:auto !important;min-height:40px !important}
  body.page-admin.mcards .board-toolbar .inline-check{grid-column:auto !important;white-space:nowrap}
  body.page-admin.mcards .board-toolbar>button:not(.icon-btn){grid-column:auto !important;min-height:40px !important;padding:0 12px !important;width:auto !important}
  body.page-admin.mcards .board-toolbar #boardCount{display:none}
  .page-admin .workspace-stats{display:grid !important;grid-template-columns:repeat(4,minmax(0,1fr)) !important;gap:6px !important;margin-bottom:10px !important}
  .page-admin .workspace-stats .stat{min-height:0 !important;padding:8px 4px !important;display:flex !important;flex-direction:column !important;align-items:center !important;gap:0 !important;text-align:center}
  .page-admin .workspace-stats .stat b{font-size:22px !important;line-height:1.1}
  .page-admin .workspace-stats .stat span,.page-admin .workspace-stats .stat small{font-size:12px !important;white-space:nowrap}
  .page-admin .workspace-stats .stat .stat-icon{display:none !important}
}
@media (max-width:760px){
  body.page-admin .board-toolbar,body.page-admin.mcards .board-toolbar{display:flex !important;flex-direction:row !important;flex-wrap:wrap !important;gap:6px !important;align-items:center !important}
  body.page-admin .board-toolbar>#boardModeBtns,body.page-admin .board-toolbar>#boardSearch{flex:1 1 100% !important;width:100% !important}
  body.page-admin .board-toolbar>.prod-spacer,body.page-admin .board-toolbar>.icon-btn,body.page-admin .board-toolbar>#boardCount{display:none !important}
  body.page-admin .board-toolbar>#boardStatus{flex:1 1 0 !important;width:auto !important;min-width:0 !important;min-height:40px !important}
  body.page-admin .board-toolbar>.inline-check{flex:0 0 auto !important;width:auto !important;margin:0 4px !important}
  body.page-admin .board-toolbar>button.secondary{flex:0 0 auto !important;width:auto !important;min-height:40px !important;padding:0 12px !important}
  .page-admin .workspace-stats .stat{flex-direction:row !important;flex-wrap:wrap !important;justify-content:center !important;align-items:baseline !important;column-gap:2px !important}
  .page-admin .workspace-stats .stat .stat-label{flex:1 1 100% !important;text-align:center}
  .page-admin .workspace-stats .stat .ui-icon{display:none !important}
  .page-admin .mb-bottom{gap:6px}
  .page-admin .mb-open{padding:0 12px !important}
}
.page-admin .mb-back{display:none}
@media (max-width:760px){
  .page-admin .mb-back{display:inline-flex !important;min-height:36px !important;padding:0 10px !important;width:auto !important;font-size:14px !important}
  .page-admin .admin-search-row{display:flex !important;flex-wrap:nowrap !important;gap:6px !important}
  .page-admin .admin-search-row>input{flex:1 1 auto !important;min-width:0 !important;width:auto !important}
  .page-admin .admin-search-row>select{flex:0 0 118px !important;width:118px !important}
  .page-admin .req-actions{display:flex !important;flex-direction:row !important;align-items:center;gap:8px}
  .page-admin .req-actions button{width:auto !important;flex:0 0 auto !important;min-height:36px !important;padding:0 16px !important}
  .page-admin #requestList{max-height:42vh;overflow:auto}
}
/* 폰 견적데이터 품목: 가로 스크롤 표 대신 한 품목 = 두 줄 카드(이름 전체 / 구분·정가·원가·마진·단가·수량) */
@media (max-width:760px){
  .page-admin .estimate-items-scroll{overflow:visible !important}
  .page-admin table.edit-items,.page-admin table.edit-items tbody{display:block !important;width:100% !important;min-width:0 !important}
  .page-admin table.edit-items thead{display:none !important}
  .page-admin table.edit-items tbody tr{display:flex !important;flex-wrap:wrap !important;align-items:center !important;gap:6px 8px !important;padding:8px 6px !important;border-bottom:1px solid #e8edf3 !important;height:auto !important}
  .page-admin table.edit-items tbody td{display:block !important;border:0 !important;padding:0 !important;width:auto !important;min-width:0 !important;height:auto !important;background:transparent}
  .page-admin table.edit-items td.col-itemops{order:1;flex:0 0 auto}
  .page-admin table.edit-items td.col-itempick{order:2;flex:0 0 auto}
  .page-admin table.edit-items td.col-item{order:3;flex:1 1 0 !important;text-align:left !important;white-space:normal !important;overflow:visible !important}
  .page-admin table.edit-items td.col-item b{white-space:normal !important;overflow:visible !important;text-overflow:clip !important;font-size:15px}
  .page-admin table.edit-items td.col-item .i-spec{display:inline-block;margin-left:6px}
  .page-admin table.edit-items td:has(.item-type){order:4;flex:0 0 auto}
  .page-admin table.edit-items td:has(.item-type) select{min-height:34px;padding:0 6px;width:auto !important}
  .page-admin table.edit-items td.col-list,.page-admin table.edit-items td.cost-td,.page-admin table.edit-items td.col-margin{order:5;flex:0 0 auto;font-size:12.5px;color:#6b7280}
  .page-admin table.edit-items td.col-applied{order:6;flex:0 0 auto;margin-left:auto}
  .page-admin table.edit-items td.col-applied input{width:86px !important;min-height:34px !important}
  .page-admin table.edit-items td.col-qty{order:7;flex:0 0 auto}
  .page-admin table.edit-items td.col-diff{order:8}
  .page-admin table.edit-items td.col-diff:empty{display:none !important}
}
@media (max-width:760px){
  .page-admin .estimate-items-scroll,.page-admin table.edit-items,.page-admin table.edit-items tbody,.page-admin table.edit-items tbody tr{max-width:100% !important;width:100% !important;min-width:0 !important;box-sizing:border-box}
  .page-admin table.edit-items td.col-item{flex:1 1 calc(100% - 130px) !important}
}
@media (max-width:760px){ html body.page-admin #detailPane table.edit-items{min-width:0 !important;width:100% !important;max-width:100% !important} }
/* 폰 견적서입력: 품목 한 개 = 두 줄(이름·규격 / 원가·단가·수량·합산). 칸 이름 줄은 뺀다 */
@media (max-width:760px){
  html body.page-admin.mcards #sectionHost table.quick-entry tbody tr{display:flex !important;flex-wrap:wrap !important;align-items:center !important;gap:6px 8px !important;padding:8px 10px !important;margin-bottom:6px !important;border-radius:10px !important}
  html body.page-admin.mcards #sectionHost table.quick-entry tbody td{display:block !important;padding:0 !important;border:0 !important;width:auto !important;min-width:0 !important;font-size:14px}
  html body.page-admin.mcards #sectionHost table.quick-entry tbody td::before{display:none !important;content:none !important}
  html body.page-admin.mcards #sectionHost table.quick-entry tbody td.line-no,
  html body.page-admin.mcards #sectionHost table.quick-entry tbody td:nth-child(2),
  html body.page-admin.mcards #sectionHost table.quick-entry tbody td.cell-fill{display:none !important}
  html body.page-admin.mcards #sectionHost table.quick-entry tbody td.qname-cell{order:1;flex:1 1 auto !important;text-align:left !important;font-size:15px}
  html body.page-admin.mcards #sectionHost table.quick-entry tbody td.cell-spec{order:2;flex:0 0 auto !important;color:#2563eb;font-weight:700}
  html body.page-admin.mcards #sectionHost table.quick-entry tbody td.cost-cell{order:3;flex:0 0 100% !important;font-size:12.5px;text-align:left !important;display:none !important}
  html body.page-admin.mcards #sectionHost table.quick-entry tbody td:has(.qunit){order:4;flex:0 0 auto !important}
  html body.page-admin.mcards #sectionHost table.quick-entry tbody td:has(.qunit) input{width:84px !important;min-height:38px !important;text-align:right}
  html body.page-admin.mcards #sectionHost table.quick-entry tbody td:has(.qty-stepper){order:5;flex:0 0 auto !important}
  html body.page-admin.mcards #sectionHost table.quick-entry tbody td.q-line-total{order:6;flex:1 1 auto !important;text-align:right !important;font-weight:800}
}
@media (max-width:760px){
  html body.page-admin.mcards #sectionHost table.quick-entry tbody td.qname-cell{flex:1 1 calc(100% - 120px) !important}
  html body.page-admin.mcards #sectionHost table.quick-entry tbody tr.picked td{background:transparent !important}
  html body.page-admin.mcards #sectionHost table.quick-entry tbody tr.picked{background:#ffe8d4 !important}
  /* 세트 담기·불러오기 줄: 버튼을 한 줄에 나란히 */
  .page-admin .qq-tools.list-actions{display:flex !important;flex-direction:row !important;flex-wrap:wrap !important;gap:6px !important}
  .page-admin .qq-tools.list-actions>*{width:auto !important;flex:0 0 auto !important;min-height:38px !important}
  .page-admin .qq-tools.list-actions>input[type=search],.page-admin .qq-tools.list-actions>input:not([type=checkbox]){flex:1 1 100% !important}
  .page-admin .qq-tools.list-actions button{padding:0 10px !important}
}
/* ── 폰 관리자 전체 정리(2026-09-25 오너 "휠이 안 먹는다, 공간낭비 없이") ── */
@media (max-width:760px){
  /* 휠: PC용 칸 안 스크롤(overscroll contain, 고정 높이)이 폰에서는 넘치지도 않는 칸이 휠을 삼켰다 → 페이지 하나로 스크롤 */
  html body.page-admin *{overscroll-behavior:auto !important}
  html body.page-admin #sectionHost,html body.page-admin #sectionRoot,html body.page-admin .admin-grid,html body.page-admin .quote-workspace,
  html body.page-admin .quote-workspace>.panel,html body.page-admin #detailPane,html body.page-admin .qq-side,html body.page-admin .qq-side>.qq-fields,
  html body.page-admin .qq-panel,html body.page-admin .qq-main{height:auto !important;max-height:none !important;overflow:visible !important}
  html body.page-admin #requestList{max-height:46vh !important;overflow:auto !important}
  html body.page-admin #detailPane.detail-empty{display:none !important}
  html body.page-admin .req-actions{display:flex !important;flex-direction:row !important;flex-wrap:nowrap !important;align-items:center !important;gap:10px !important;padding:6px 10px !important;min-height:0 !important}
  html body.page-admin .req-actions>*{margin:0 !important;flex:0 0 auto !important;width:auto !important}
  html body.page-admin [id$=ModeBtns]{display:block !important;width:100% !important;max-width:100% !important;flex:1 1 100% !important}
  html body.page-admin [id$=ModeBtns] .btn-group,html body.page-admin [id$=ModeBtns].mode-btns{display:flex !important;flex-wrap:nowrap !important;width:100% !important;gap:6px !important}
  html body.page-admin [id$=ModeBtns] button{flex:1 1 0 !important;width:auto !important;min-width:0 !important;margin:0 !important;min-height:40px !important}
  html body.page-admin .prod-row-top{display:flex !important;flex-direction:column !important;align-items:stretch !important;gap:8px !important;padding:8px !important}
  html body.page-admin .prod-row-top .prod-tabs{order:1 !important;width:100% !important;display:flex !important}
  html body.page-admin .prod-row-top .prod-tabs .subtab,html body.page-admin .prod-row-top .prod-tabs .subtab.active{flex:1 1 0 !important;width:auto !important;min-width:0 !important;height:40px !important;min-height:40px !important}
  html body.page-admin .prod-row-top .prod-cats.cat-bar{order:2 !important;flex:0 0 auto !important;width:100% !important;flex-wrap:nowrap !important;overflow-x:auto !important;overflow-y:hidden !important;border:0 !important;margin:0 !important;padding:0 0 4px !important;flex-direction:row !important;display:flex !important}
  html body.page-admin .prod-row-top .prod-cats.cat-bar button{flex:0 0 auto !important;height:36px !important;min-height:36px !important;padding:0 10px !important;font-size:14px !important;width:auto !important}
  html body.page-admin .prod-row-top .grade-rate{order:3 !important;flex:0 0 auto !important;width:100% !important;margin:0 !important}
  html body.page-admin .prod-row-top .prod-spacer{display:none !important}
  html body.page-admin .prod-row-tools{display:flex !important;flex-wrap:wrap !important;gap:6px !important}
  html body.page-admin .prod-row-tools #productFilter{flex:1 1 auto !important;width:auto !important;min-width:0 !important;margin:0 !important}
  html body.page-admin .prod-row-tools>button{flex:0 0 auto !important;width:auto !important;min-height:40px !important;padding:0 12px !important}
  html body.page-admin .prod-row-tools .prod-spacer,html body.page-admin .prod-row-tools .mode-note{display:none !important}
  html body.page-admin.mcards #sectionHost table.master-table:not(.quick-entry):not(.board-table) tbody tr{display:flex !important;flex-wrap:wrap !important;gap:0 12px !important;padding:8px 10px !important;margin-bottom:8px !important}
  html body.page-admin.mcards #sectionHost table.master-table:not(.quick-entry):not(.board-table) tbody td{display:flex !important;flex-direction:column !important;align-items:flex-start !important;justify-content:flex-start !important;flex:1 1 calc(50% - 12px) !important;min-width:0 !important;padding:4px 0 !important;border:0 !important;text-align:left !important;font-size:15px !important;white-space:normal !important;overflow:visible !important}
  html body.page-admin.mcards #sectionHost table.master-table:not(.quick-entry):not(.board-table) tbody td::before{font-size:11.5px !important;line-height:1.2 !important;margin:0 0 1px !important;text-align:left !important}
  html body.page-admin.mcards #sectionHost table.master-table:not(.quick-entry):not(.board-table) tbody td.cell-rowops,
  html body.page-admin.mcards #sectionHost table.master-table:not(.quick-entry):not(.board-table) tbody td.cell-pick{flex:0 0 auto !important;flex-direction:row !important;align-items:center !important}
  html body.page-admin.mcards #sectionHost table.master-table:not(.quick-entry):not(.board-table) tbody td.cell-rowops::before,
  html body.page-admin.mcards #sectionHost table.master-table:not(.quick-entry):not(.board-table) tbody td.cell-pick::before{display:none !important}
  html body.page-admin.mcards #sectionHost table.master-table:not(.quick-entry):not(.board-table) tbody td.cell-name{flex:1 1 100% !important;font-size:16px !important;font-weight:800}
  html body.page-admin.mcards #sectionHost table.master-table:not(.quick-entry):not(.board-table) tbody td:empty{display:none !important}
  html body.page-admin.mcards #sectionHost table.master-table:not(.quick-entry):not(.board-table) tbody td.row-more{flex:1 1 100% !important}
}
/* 폰: 등급 할인율 = [등급 할인율 ··· 단가에서 계산] 한 줄 + 1·2·3등급 세 칸 한 줄 */
@media (max-width:760px){
  html body.page-admin .prod-row-top .grade-rate{display:flex !important;flex-wrap:wrap !important;align-items:center !important;gap:6px !important;padding:8px !important;box-sizing:border-box}
  html body.page-admin .grade-rate .gr-title{flex:1 1 auto !important;font-size:13px !important;font-weight:800;position:static !important;margin:0 !important}
  html body.page-admin .grade-rate .gr-apply{flex:0 0 auto !important;order:2;min-height:32px !important;padding:0 10px !important;font-size:13px !important;width:auto !important;position:static !important;margin:0 !important}
  html body.page-admin .grade-rate .gr-group{order:3;flex:1 1 100% !important;display:grid !important;grid-template-columns:repeat(3,minmax(0,1fr)) !important;gap:6px !important;width:100% !important;margin:0 !important}
  html body.page-admin .grade-rate .gr-one{display:grid !important;grid-template-columns:24px minmax(0,1fr) 24px !important;grid-template-rows:auto auto;align-items:center !important;gap:4px 2px !important;padding:6px 4px !important;min-width:0 !important;width:auto !important;border-radius:10px}
  html body.page-admin .grade-rate .gr-one .gr-name{grid-column:1/-1 !important;justify-self:center;font-size:13px !important;padding:2px 10px !important;min-height:0 !important}
  html body.page-admin .grade-rate .gr-one .gr-step{width:24px !important;min-width:24px !important;height:32px !important;min-height:32px !important;padding:0 !important}
  html body.page-admin .grade-rate .gr-one .gr-value{display:flex !important;align-items:center !important;justify-content:center;min-width:0 !important;width:auto !important}
  html body.page-admin .grade-rate .gr-one .gr-value input{width:100% !important;min-width:0 !important;height:32px !important;min-height:32px !important;font-size:17px !important;padding:0 2px !important;text-align:center}
  html body.page-admin .grade-rate .gr-one .gr-value em{font-size:12px}
  /* 품목 도구줄: 수정·취소·삭제 한 줄 / 검색 + 필터 + ? 한 줄 */
  html body.page-admin .prod-row-tools>#productFilterBtn,html body.page-admin .prod-row-tools>.icon-btn{flex:0 0 auto !important;width:auto !important}
  html body.page-admin .prod-row-tools>#productFilter{flex:1 1 0 !important}
  /* 목록 카드: ＋−·체크를 이름 줄 옆에 */
  html body.page-admin.mcards #sectionHost table.master-table:not(.quick-entry):not(.board-table) tbody td.cell-name{flex:1 1 55% !important}
}
/* 현황판 수정 모드: 고칠 수 있는 칸 = 연노랑 + 점선 밑줄, 못 고치는 칸 = 회색으로 흐리게(2026-09-25 오너) */
.page-admin .board-table.board-editing tbody tr:not(.filler-row) td:not(.editable):not(.cell-pick):not(.row-more){background:#f3f4f6 !important;color:#9ca3af !important}
.page-admin .board-table.board-editing tbody tr:not(.filler-row) td:not(.editable):not(.cell-pick):not(.row-more) *{color:inherit}
.page-admin .board-table.board-editing tbody td.editable{background:#fffbe6 !important;box-shadow:inset 0 -2px 0 #f5c451;cursor:text}
.page-admin .board-table.board-editing tbody td.editable:hover{background:#fff3c4 !important}
.page-admin .board-table.board-editing tbody td.cell-dirty{background:#ffe8a3 !important}
@media (max-width:760px){
  html body.page-admin.mcards .prod-row-tools.product-toolbar{display:flex !important;flex-direction:row !important;flex-wrap:wrap !important}
  html body.page-admin.mcards .prod-row-tools.product-toolbar>#productModeBtns{flex:1 1 100% !important}
  html body.page-admin.mcards .prod-row-tools.product-toolbar>#productFilter{flex:1 1 0 !important;width:auto !important;min-width:0 !important}
  html body.page-admin.mcards .prod-row-tools.product-toolbar>#productFilterBtn,html body.page-admin.mcards .prod-row-tools.product-toolbar>.icon-btn{flex:0 0 auto !important;width:auto !important;padding:0 12px !important}
  html body.page-admin .grade-rate .gr-one .gr-value em{display:none !important}
  html body.page-admin.mcards #sectionHost .product-scroll,html body.page-admin.mcards #sectionHost .product-scroll table.master-table{width:100% !important;max-width:100% !important;min-width:0 !important}
  html body.page-admin.mcards #sectionHost .product-scroll table.master-table tbody tr{box-sizing:border-box;width:100% !important}
}
/* 품목 추가 창: 줄마다 −/＋·개수, [확인] 파랑 */
.ap-modal .ap-item{grid-template-columns:minmax(0,1fr) auto auto auto !important}
.ap-modal .ap-item .ap-type{display:none}
.ap-modal .ap-step{display:inline-flex;align-items:center;gap:4px}
.ap-modal .ap-step button{width:34px;height:34px;min-height:34px;padding:0;border-radius:9px;font-size:18px;font-weight:900;border:1.5px solid #d6dde7;background:#fff}
.ap-modal .ap-step .ap-minus{color:#dc2626;background:#fff5f5;border-color:#fecaca}
.ap-modal .ap-step .ap-plus{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}
.ap-modal .ap-cnt{min-width:26px;text-align:center;font-size:16px;color:#9ca3af;font-variant-numeric:tabular-nums}
.ap-modal .ap-item.has .ap-cnt{color:#111827}
.ap-modal .ap-item.has{background:#eaf1ff}
.ap-modal .ap-cnt.bump{animation:apBump .35s ease}
@keyframes apBump{0%{transform:scale(1)}40%{transform:scale(1.5);color:#1d4ed8}100%{transform:scale(1)}}
.ap-modal .ap-ok{background:#1d4ed8 !important;border-color:#1d4ed8 !important;color:#fff !important;min-height:40px;padding:0 22px !important;font-weight:800}
/* 폰 품목/가격: 분류 칩은 스크롤 없이 줄바꿈으로 다 보이게 */
@media (max-width:760px){
  html body.page-admin .prod-row-top .prod-cats.cat-bar{flex-wrap:wrap !important;overflow:visible !important;row-gap:6px !important;gap:6px !important}
  html body.page-admin .prod-row-top .prod-cats.cat-bar button{height:34px !important;min-height:34px !important;padding:0 9px !important;font-size:13.5px !important}
  .ap-modal .ap-item{gap:6px !important}
  .ap-modal .ap-step button{width:32px;height:32px;min-height:32px}
}
/* 폰 견적서입력: 고객·현장 칸(qq-side)이 PC처럼 화면에 붙어(sticky) 품목 위에 겹쳐 따로 움직였다 → 폰에서는 그냥 위에서 아래로 흐르게 */
@media (max-width:760px){
  html body.page-admin .qq-side,html body.page-admin .qq-preview,html body.page-admin .qq-tools{position:static !important;top:auto !important;z-index:auto !important}
  html body.page-admin .quick-entry thead th{position:static !important}
}
/* ── 폰: 들쭉날쭉한 줄바꿈(flex-wrap) 대신 고정 격자(grid)로 — 모든 카드가 같은 자리에 같은 것(2026-09-25 오너 "비뚤대서 정리가 안 돼") ── */
@media (max-width:760px){
  /* 견적서입력 설정: 이름표 칸 폭 고정, 들여쓰기·세로선 없음, 버튼은 칸을 꽉 채워 같은 폭 */
  html body.page-admin .qq-setup{display:grid !important;grid-template-columns:1fr !important;gap:6px !important;padding:8px !important}
  html body.page-admin .qq-setup-row{display:grid !important;grid-template-columns:40px 1fr !important;align-items:center !important;gap:8px !important;margin:0 !important;padding:0 !important;border:0 !important}
  html body.page-admin .qq-setup-row::before{display:none !important}
  html body.page-admin .qq-setup-label{margin:0 !important;padding:0 !important;border:0 !important;font-size:13px !important;text-align:left}
  html body.page-admin .qq-setup-opts{display:flex !important;width:100% !important;margin:0 !important}
  html body.page-admin .qq-setup-opts>*{flex:1 1 0 !important;min-width:0 !important;height:38px !important;min-height:38px !important;padding:0 4px !important;font-size:14px !important}

  /* 견적서입력 도구: ① 수량 지우기 | 검색  ② 입력한 것만  ③ 세트 담기 1·2·3단  ④ 세트 불러오기 | 세트로 만들기 | 관리 */
  html body.page-admin .qq-tools.list-actions{display:grid !important;grid-template-columns:repeat(12,minmax(0,1fr)) !important;gap:6px !important;align-items:center !important}
  html body.page-admin .qq-tools.list-actions>*{grid-column:1/-1 !important;width:100% !important;min-width:0 !important;margin:0 !important;flex:none !important}
  html body.page-admin .qq-tools.list-actions>.qq-tools-sp{display:none !important}
  html body.page-admin .qq-tools.list-actions>button:first-child{grid-column:1/5 !important}
  html body.page-admin .qq-tools.list-actions>#qProductSearch{grid-column:5/13 !important}
  html body.page-admin .qq-tools.list-actions>.inline-check{grid-column:1/-1 !important}
  html body.page-admin .qq-tools.list-actions>.pl-lab{grid-column:1/4 !important;text-align:left;font-size:13px}
  html body.page-admin .qq-tools.list-actions>.tier-1{grid-column:4/7 !important}
  html body.page-admin .qq-tools.list-actions>.tier-2{grid-column:7/10 !important}
  html body.page-admin .qq-tools.list-actions>.tier-3{grid-column:10/13 !important}
  html body.page-admin .qq-tools.list-actions>.tier-set-btn{padding:0 2px !important;font-size:13px !important;min-height:38px !important}
  html body.page-admin .qq-tools.list-actions>.set-pick{display:flex !important;gap:6px !important;align-items:center !important}
  html body.page-admin .qq-tools.list-actions>.set-pick>select{flex:1 1 auto !important;min-width:0 !important;width:auto !important;min-height:38px !important}
  html body.page-admin .qq-tools.list-actions>.set-pick>button{flex:0 0 auto !important;width:auto !important;min-height:38px !important;padding:0 10px !important}

  /* 견적서입력 품목 카드: [이름 ········ 규격] / [단가 | −수량+ | ······ 합계] */
  html body.page-admin.mcards #sectionHost table.quick-entry tbody tr{display:grid !important;grid-template-columns:92px auto 1fr !important;grid-template-areas:"name name spec" "unit qty total" !important;align-items:center !important;gap:6px 8px !important;padding:8px 10px !important}
  html body.page-admin.mcards #sectionHost table.quick-entry tbody td.qname-cell{grid-area:name !important}
  html body.page-admin.mcards #sectionHost table.quick-entry tbody td.cell-spec{grid-area:spec !important;justify-self:end !important;display:block !important;white-space:nowrap}
  html body.page-admin.mcards #sectionHost table.quick-entry tbody td:has(.qunit){grid-area:unit !important}
  html body.page-admin.mcards #sectionHost table.quick-entry tbody td:has(.qunit) input{width:92px !important}
  html body.page-admin.mcards #sectionHost table.quick-entry tbody td:has(.qty-stepper){grid-area:qty !important}
  html body.page-admin.mcards #sectionHost table.quick-entry tbody td.q-line-total{grid-area:total !important;justify-self:end !important}

  /* 견적데이터 품목 카드(6칸 격자):
     [＋− | 이름·규격 ··········· | 구분]
     [정가 ···· | 원가 ···· | 마진 ····]
     [단가 ···· | −수량＋ ········ | 정가표시] */
  html body.page-admin table.edit-items tbody tr{display:grid !important;grid-template-columns:76px repeat(4,minmax(0,1fr)) 64px !important;align-items:center !important;gap:6px 6px !important}
  html body.page-admin table.edit-items tbody td{order:0 !important;margin:0 !important}
  html body.page-admin table.edit-items td.col-itemops{grid-column:1 !important;grid-row:1 !important}
  html body.page-admin table.edit-items td.col-item{grid-column:2/6 !important;grid-row:1 !important}
  html body.page-admin table.edit-items td:has(.item-type){grid-column:6 !important;grid-row:1 !important;justify-self:end !important}
  html body.page-admin table.edit-items td.col-list{grid-column:1/3 !important;grid-row:2 !important}
  html body.page-admin table.edit-items td.cost-td{grid-column:3/5 !important;grid-row:2 !important}
  html body.page-admin table.edit-items td.col-margin{grid-column:5/7 !important;grid-row:2 !important;justify-self:end !important}
  html body.page-admin table.edit-items td.col-applied{grid-column:1/3 !important;grid-row:3 !important;margin:0 !important;display:flex !important;align-items:center !important;gap:4px !important}
  html body.page-admin table.edit-items td.col-applied input{width:100% !important}
  html body.page-admin table.edit-items td.col-qty{grid-column:3/6 !important;grid-row:3 !important}
  html body.page-admin table.edit-items td.col-diff{grid-column:6 !important;grid-row:3 !important;justify-self:end !important}
  html body.page-admin table.edit-items td.col-applied .price-hints{display:none !important}

  /* 견적데이터 아래 버튼 4개: 2×2 같은 크기 */
  html body.page-admin .quote-actionbar{display:grid !important;grid-template-columns:1fr 1fr !important;gap:6px !important}
  html body.page-admin .quote-actionbar>*{width:100% !important;margin:0 !important;min-width:0 !important}
  html body.page-admin .quote-actionbar button{width:100% !important;min-height:44px !important;padding:0 6px !important}
}
@media (max-width:760px){
  html body.page-admin table.edit-items tbody tr{grid-template-columns:64px repeat(4,minmax(0,1fr)) 60px !important}
  html body.page-admin table.edit-items td.col-list,html body.page-admin table.edit-items td.cost-td{justify-self:start !important;text-align:left !important}
  html body.page-admin #detailPane{padding-bottom:120px !important}
}
/* ===== V3.7.3 정돈 (2026-09-25 오너: "수정 UI 너무 구리다 · 품목만 넓다 · 버튼 컬러 촌스럽다 ·
   오른쪽 공간이 빈다 · 임대/판매 글자만 크다") — 톤: 흰 바탕 + 회색 선 + 파랑(#0071e3) 한 가지 강조 ===== */

/* 1) 현황판 수정 모드 — 연노랑·노란 밑줄 대신, 고칠 수 있는 칸은 흰 바탕에 얇은 파란 테두리,
      못 고치는 칸은 연한 회색 글자만. 고친 칸은 왼쪽 파란 막대로 표시. */
.page-admin.board-editing .board-scroll,body.board-editing .board-scroll{box-shadow:0 0 0 1px #cfe0f5 !important}
.page-admin .board-table.board-editing tbody tr:not(.filler-row) td:not(.editable):not(.cell-pick):not(.row-more){background:#fbfbfd !important;color:#a1a1aa !important}
.page-admin .board-table.board-editing tbody td.editable{background:#fff !important;box-shadow:inset 0 0 0 1px #d7e6f7 !important;cursor:text}
.page-admin .board-table.board-editing tbody td.editable:hover{background:#f5f9ff !important;box-shadow:inset 0 0 0 1px #7fb3ea !important}
.page-admin .board-table.board-editing tbody td.cell-dirty{background:#eef5ff !important;box-shadow:inset 3px 0 0 #0071e3,inset 0 0 0 1px #b9d5f3 !important}

/* 2) 견적서입력 품목표 — 품목만 넓어지던 것. 모든 열에 폭을 주고(품목도) 남는 폭은 열마다 비율대로 나눈다.
      규격·원가·단가·합산은 잘리지 않고 다 보인다(좁으면 줄이지 않고 가로 스크롤). 열 폭 저장 키 quick7. */
@media (min-width:761px){
  html body.page-admin:not(.mcards) .quick-entry{min-width:870px !important}
  html body.page-admin:not(.mcards) .quick-entry col.c-grade{width:36px !important}
  html body.page-admin:not(.mcards) .quick-entry col.c-no{width:36px !important}
  html body.page-admin:not(.mcards) .quick-entry col.c-cat{width:88px !important}
  html body.page-admin:not(.mcards) .quick-entry col.c-name{width:170px !important}
  html body.page-admin:not(.mcards) .quick-entry col.c-spec{width:100px !important}
  html body.page-admin:not(.mcards) .quick-entry col.c-cost{width:92px !important}
  html body.page-admin:not(.mcards) .quick-entry col.c-unit{width:96px !important}
  html body.page-admin:not(.mcards) .quick-entry col.c-sum{width:104px !important}
  html body.page-admin:not(.mcards) .quick-entry td.cell-spec,
  html body.page-admin:not(.mcards) .quick-entry td.cost-cell,
  html body.page-admin:not(.mcards) .quick-entry td.q-line-total,
  html body.page-admin:not(.mcards) .quick-entry th{overflow:visible !important;text-overflow:clip !important;white-space:nowrap}
  html body.page-admin:not(.mcards) .quick-entry .qunit{max-width:none !important;width:100% !important}
}

/* 3) 견적 상세 품목표 — 품목 칸이 1000px 넘게 늘던 것. 품목에도 폭을 주어 남는 폭을 모든 칸이 나눠 갖게. */
@media (min-width:761px){
  html body.page-admin:not(.mcards) .edit-items th.col-item,html body.page-admin:not(.mcards) .edit-items td.col-item{width:300px !important}
  html body.page-admin:not(.mcards) .edit-items th.col-itemops,html body.page-admin:not(.mcards) .edit-items td.col-itemops{width:132px !important}
}

/* 4) 줄 버튼 ＋추가 / －삭제 — 글자가 붙어도 한 줄로, 조용한 색 */
.page-admin .rowop{width:auto !important;min-width:0 !important;padding:0 9px !important;white-space:nowrap;font-size:12.5px !important;font-weight:600 !important;border-radius:7px !important;height:26px}
.page-admin .rowop.add{background:#f2f7ff !important;color:#0b62c4 !important;border:1px solid #d3e3f6 !important}
.page-admin .rowop.del{background:#fff5f6 !important;color:#b83243 !important;border:1px solid #f1d4d9 !important}
.page-admin .rowop.add:hover:not(:disabled){background:#e4efff !important}
.page-admin .rowop.del:hover:not(:disabled){background:#ffe9ec !important}
.page-admin .rowops-in{display:inline-flex;gap:5px;align-items:center;white-space:nowrap}
.page-admin td.cell-rowops,.page-admin th.cell-rowops{width:132px}

/* 5) 견적 상세 아래 버튼 — 네 가지 원색 대신: 보내기=파랑(주), 발주·견적서 보기=흰 바탕 윤곽, 거래 확정=초록(주). */
.page-admin .quote-actionbar button{min-height:44px !important;font-size:15px !important;font-weight:600 !important;border-radius:10px !important;box-shadow:none !important}
.page-admin .quote-actionbar .action-send{background:#0071e3 !important;border:1px solid #0071e3 !important;color:#fff !important}
.page-admin .quote-actionbar .action-confirm{background:#24824d !important;border:1px solid #24824d !important;color:#fff !important}
.page-admin .quote-actionbar .action-confirm:hover{background:#1f7244 !important}

/* 6) 품목/가격 설정 — 표가 글자 폭만큼만 차지해 오른쪽이 비던 것 → 화면 폭을 채우고 열마다 비율대로 넓어진다.
      좁은 화면에서는 줄이지 않고 가로 스크롤. 임대/판매 전환 버튼은 다른 선택 버튼과 같은 크기로. */
@media (min-width:761px){
  html body.page-admin:not(.mcards) .product-scroll table.master-table{width:100% !important;min-width:max-content !important}
}
html body.page-admin #productSeg{padding:3px !important;border-radius:10px !important}
html body.page-admin #productSeg .subtab{font-size:14.5px !important;min-height:34px !important;height:34px !important;padding:0 16px !important;border-radius:8px !important;font-weight:600 !important}
html body.page-admin #ptab-임대.active,html body.page-admin #ptab-판매.active{box-shadow:none !important}
/* 견적서입력(PC): 세 구역이 한눈에 갈리게 — ① 설정(회색) ② 분류(파란 테두리 상자·이름표) ③ 도구(흰 상자, 세트 담기는 주황 묶음), 1·2·3단 세트는 초록·파랑·보라 (2026-09-25 오너) */
.page-admin .pick-line{display:flex !important;align-items:center !important;gap:10px !important;background:#f4f8ff !important;border:1.5px solid #cfe0fb !important;border-radius:12px !important;padding:8px 10px !important;margin:8px 0 !important}
.page-admin .pick-line .pl-title{flex:0 0 auto;font-size:13px;font-weight:800;color:#1d4ed8;background:#dbe7ff;border-radius:8px;padding:6px 10px}
.page-admin .pick-line .cat-bar{flex:1 1 auto;display:flex !important;flex-wrap:wrap !important;gap:6px !important;margin:0 !important;border:0 !important;padding:0 !important;background:transparent !important}
.page-admin .pick-line .cat-bar button{height:38px !important;min-height:38px !important;padding:0 12px !important;border:1.5px solid #d6dde7 !important;border-radius:9px !important;background:#fff !important;color:#374151 !important;font-size:15px !important;font-weight:700 !important;box-shadow:none !important}
.page-admin .pick-line .cat-bar button em,.page-admin .pick-line .cat-bar button small,.page-admin .pick-line .cat-bar button span{font-style:normal;display:inline-block;min-width:20px;padding:1px 6px;margin-left:5px;border-radius:999px;font-size:12.5px;font-weight:800;color:#fff !important;background:#64748b !important;text-align:center}
.page-admin .pick-line .cat-bar button.active,.page-admin .pick-line .cat-bar button.on{background:#1d4ed8 !important;border-color:#1d4ed8 !important;color:#fff !important}
.page-admin .pick-line .cat-bar button.active em,.page-admin .pick-line .cat-bar button.on em,.page-admin .pick-line .cat-bar button.active span,.page-admin .pick-line .cat-bar button.on span{background:#fff !important;color:#1d4ed8 !important}
.page-admin .qq-tools.list-actions{background:#fff !important;border:1.5px solid #e3e8ef !important;border-radius:12px !important;padding:8px 10px !important;margin:0 0 8px !important}
.page-admin .qq-tools .pl-lab{background:#fff4e5;color:#b45309;border:1.5px solid #f3c27c;border-radius:8px;padding:6px 10px;font-size:13px;font-weight:800;margin-left:6px}
.page-admin .qq-tools .tier-set-btn{border-radius:9px !important;font-weight:800 !important;border-width:1.5px !important;border-style:solid !important}
.page-admin .qq-tools .tier-set-btn.tier-1{background:#e8f7ee !important;border-color:#86d3a4 !important;color:#15803d !important}
.page-admin .qq-tools .tier-set-btn.tier-2{background:#eaf1ff !important;border-color:#9dbcf5 !important;color:#1d4ed8 !important}
.page-admin .qq-tools .tier-set-btn.tier-3{background:#f3edfd !important;border-color:#c4a8f0 !important;color:#6d28d9 !important}
.page-admin .qq-tools .tier-set-btn:hover{filter:brightness(.96)}
@media (max-width:760px){ .page-admin .pick-line{flex-direction:column !important;align-items:stretch !important} .page-admin .pick-line .pl-title{align-self:flex-start} }
@media (min-width:761px){ html body.page-admin .pick-line{flex-direction:row !important;align-items:center !important} }
@media (min-width:761px){ html body.page-admin .pick-line{flex-wrap:nowrap !important} html body.page-admin .pick-line .cat-bar{flex:1 1 0 !important;min-width:0 !important} }
/* 합계 줄: 총금액만 짙은 남색으로 튀던 것 → 다른 칸과 같은 바탕, 글자만 굵고 크게 */
.page-admin .totalrow.grand,.page-admin .estimate-detail .totalrow.grand,.page-admin .money-summary .grand,.page-admin [class*=total] .grand{background:#fff !important;color:#111827 !important;border-color:#e3e8ef !important}
.page-admin .totalrow.grand span,.page-admin [class*=total] .grand span{color:inherit !important}
.page-admin .totalrow.grand span:last-child{font-size:1.12em;font-weight:900 !important;color:#1d4ed8 !important}
/* 보내기 버튼 줄은 왼쪽부터 이미지 복사 · 문구 복사 · 카톡으로 보내기 */
.page-admin .qpv-actions{display:flex !important;justify-content:flex-end;gap:8px}
/* 품목 표: 임대·판매 어느 쪽이든 칸 폭 그대로(표를 화면 폭에 맞춰 늘리지 않음) — 앞의 같은 규칙이 다른 100% 규칙에 밀렸다 */
@media (min-width:761px){ html body.page-admin #productBody .product-scroll table.master-table{width:max-content !important;min-width:0 !important;max-width:none !important} }
html.in-phone-preview,html.in-phone-preview body{scrollbar-width:none}
html.in-phone-preview ::-webkit-scrollbar{width:0;height:0;display:none}
@media (max-width:760px){
  /* 스크롤은 페이지 하나만: 견적데이터 목록의 자체 스크롤을 없앤다 */
  html body.page-admin #requestList{max-height:none !important;overflow:visible !important}
  /* 현황판: 상태 카드를 눌러 목록이 줄어도 화면(카드·도구줄 위치)이 흔들리지 않게 목록 자리 높이를 유지 */
  html body.page-admin #boardRoot{min-height:calc(100dvh - 120px) !important}
  html body.page-admin .workspace-stats .stat{border-width:1.5px !important;box-sizing:border-box}
  html body.page-admin .workspace-stats .stat[aria-pressed=true]{background:#eaf1ff !important;border-color:#1d4ed8 !important;box-shadow:none !important}
}
.page-admin .workspace-stats .stat{border-width:1.5px !important;transform:none !important}
.page-admin .workspace-stats .stat[aria-pressed=true]{border-color:#1d4ed8 !important;background:#eaf1ff !important}
/* ── 관리·시스템 화면 정리(2026-09-25 오너) ── */
/* 계정관리: [관리자 추가]는 왼쪽, 아이디·이름·비번 칸은 필요한 만큼만 */
.page-admin .admin-actions{display:flex !important;justify-content:flex-start !important;margin:6px 0 8px !important}
.page-admin .user-card .user-line{display:flex !important;flex-wrap:wrap !important;align-items:flex-end !important;gap:8px !important;grid-template-columns:none !important}
.page-admin .user-card .uf{display:flex !important;flex-direction:column !important;gap:3px !important;min-width:0 !important}
.page-admin .user-card .uf>span{font-size:12px !important;color:#6b7280}
.page-admin .user-card .uf-email{flex:0 0 180px !important;width:180px !important}
.page-admin .user-card .uf-name{flex:0 0 150px !important;width:150px !important}
.page-admin .user-card .uf-password{flex:0 0 200px !important;width:200px !important}
.page-admin .user-card .uf-role{flex:0 0 110px !important;width:110px !important}
.page-admin .user-card .uf-active{flex:0 0 auto !important;align-items:center !important}
.page-admin .user-card .uf input:not([type=checkbox]),.page-admin .user-card .uf select{width:100% !important;min-height:38px !important;height:38px !important}
.page-admin .user-card .user-save,.page-admin .user-card .user-lock{flex:0 0 auto !important;min-height:38px !important}
/* 오류센터 도구줄: [해결완료 포함] 체크는 작게, 새로고침 옆 */
.page-admin .check-line{display:inline-flex !important;align-items:center !important;gap:6px !important;width:auto !important;flex:0 0 auto !important;white-space:nowrap}
.page-admin .check-line input{width:18px !important;height:18px !important;min-height:18px !important;flex:none !important;margin:0 !important}
/* 백업 목록: 이름은 한 줄(넘치면 …), 날짜·크기 아래, 버튼은 오른쪽 */
.page-admin .result-card{position:relative;overflow:hidden}
.page-admin .result-card>b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:120px}
.page-admin .result-card>span[style*=float]{float:none !important;position:absolute;right:10px;top:50%;transform:translateY(-50%)}
.page-admin .result-card>.muted{padding-right:120px}
@media (max-width:760px){
  /* 고객: [수정]과 검색을 한 줄에(수정 왼쪽) */
  html body.page-admin #customerModeBtns{flex:0 0 auto !important;width:auto !important}
  html body.page-admin #customerModeBtns button{flex:0 0 auto !important;width:auto !important;padding:0 16px !important}
  html body.page-admin .toolbar:has(#customerModeBtns){display:flex !important;flex-direction:row !important;flex-wrap:nowrap !important;align-items:center !important;gap:6px !important}
  html body.page-admin .toolbar:has(#customerModeBtns)>#customerSearch{flex:1 1 auto !important;min-width:0 !important;width:auto !important}
  html body.page-admin .toolbar:has(#customerModeBtns)>.prod-spacer,html body.page-admin .toolbar:has(#customerModeBtns)>#customerCount{display:none !important}
  /* 목록 카드의 ＋추가/−삭제 칸: 이름 옆에 작게 */
  html body.page-admin.mcards #sectionHost table.master-table tbody td.cell-rowops button{min-height:30px !important;height:30px !important;padding:0 8px !important;font-size:12px !important}
  /* 오류센터: 도구줄 한 줄, 넘치는 글자는 줄바꿈 */
  html body.page-admin .panel .detail>.toolbar{display:flex !important;flex-direction:row !important;flex-wrap:wrap !important;align-items:center !important;gap:8px !important}
  html body.page-admin .panel .detail>.toolbar>button{width:auto !important;flex:0 0 auto !important}
  html body.page-admin #errorCenterRoot,html body.page-admin #errorCenterRoot *{overflow-wrap:anywhere;word-break:break-word;max-width:100%}
  /* 설정 거래처 칸: 한 칸씩 위아래로(옆으로 넘치던 것) */
  html body.page-admin .vendor-fields{display:grid !important;grid-template-columns:1fr 1fr !important;gap:6px !important}
  html body.page-admin .vendor-fields>label{min-width:0 !important;width:auto !important}
  html body.page-admin .vendor-fields>label input{width:100% !important;min-width:0 !important}
  html body.page-admin .vendor-fields>.vd-del{grid-column:auto !important;align-self:end;width:100% !important}
  html body.page-admin .vendor-row textarea{width:100% !important;box-sizing:border-box}
  /* 계정관리(폰): 아이디·이름 한 줄, 비번·역할 한 줄, 사용·저장 한 줄 */
  html body.page-admin .user-card .uf-email,html body.page-admin .user-card .uf-name,html body.page-admin .user-card .uf-password{flex:1 1 calc(50% - 8px) !important;width:auto !important}
  html body.page-admin .user-card .uf-role{flex:1 1 calc(50% - 8px) !important;width:auto !important}
  html body.page-admin .result-card>b,html body.page-admin .result-card>.muted{padding-right:0}
  html body.page-admin .result-card>span[style*=float]{position:static;transform:none;display:block;margin-top:6px}
  html body.page-admin .result-card>span[style*=float] button{width:100% !important}
  /* 시스템 하위 메뉴 5개: 한 줄에 */
  html body.page-admin .nav-sub,html body.page-admin .subnav{flex-wrap:nowrap !important;overflow-x:auto}
}
@media (max-width:760px){
  /* 하위 메뉴(계정관리·작업기록·오류센터·시스템관리·설정 등): 한 줄에 같은 폭으로 */
  html body.page-admin .nav-items{display:grid !important;grid-auto-flow:column !important;grid-auto-columns:minmax(0,1fr) !important;gap:2px !important;overflow:visible !important}
  html body.page-admin .nav-items>*{min-width:0 !important;padding:8px 2px !important;font-size:13.5px !important;white-space:nowrap !important;width:auto !important}
  /* 오류센터 [해결완료 포함]: 작은 체크 + 글자 한 줄 */
  html body.page-admin .panel .detail>.toolbar>.check-line{display:inline-flex !important;flex-direction:row !important;align-items:center !important;width:auto !important;flex:0 0 auto !important;gap:6px !important;font-size:14px !important}
  html body.page-admin .panel .detail>.toolbar>.check-line>input{width:20px !important;height:20px !important;min-width:20px !important;min-height:20px !important;max-width:20px !important;flex:none !important}
  /* 목록 카드의 ＋추가/−삭제 칸은 보기 모드에선 숨김(수정 모드에서만 보임) */
  html body.page-admin.mcards #sectionHost table.master-table.ops-idle tbody td.cell-rowops,
  html body.page-admin.mcards #sectionHost table.master-table:not(.editing):has(td.cell-rowops button:disabled) tbody td.cell-rowops{display:none !important}
}
.pk-head{display:flex;align-items:center;gap:8px}
.pk-head .pk-clear{margin-left:auto;min-height:32px;padding:0 12px;border-radius:8px;border:1.5px solid #fecaca;background:#fff5f5;color:#dc2626;font-size:13px;font-weight:800;cursor:pointer}
.page-admin .qq-tools .tier-set-btn.tier-full{background:#fdecec !important;border-color:#f3a3a3 !important;color:#b91c1c !important}
.page-customer .pick-set-btn.pick-set-full{background:#fdecec;border-color:#f3a3a3;color:#b91c1c}
@media (max-width:760px){ html body.page-admin .qq-tools.list-actions>.tier-full{grid-column:1/-1 !important} }
/* 담은 품목: 연한 에메랄드 연두 바탕 + 초록 테두리로 위 품목 목록과 확실히 분리(2026-09-26 오너) */
.picked-box{background:#ecfdf5 !important;border:2px solid #6ee7b7 !important;border-radius:14px !important;margin-top:18px !important;box-shadow:0 4px 14px rgba(16,185,129,.12) !important;overflow:hidden}
.picked-box .pk-head{background:#d1fae5 !important;border-bottom:1.5px solid #a7f3d0 !important;padding:10px 12px !important}
.picked-box .pk-head b{color:#065f46 !important}
.picked-box .pk-head span{color:#047857 !important}
.picked-box .pk-row,.picked-box>div:not(.pk-head){background:transparent}
.picked-box .pk-row{border-bottom:1px solid #bbf7d0 !important}
.picked-box .pk-del{background:#fff !important;border-color:#a7f3d0 !important}
.cust-cal{position:absolute;z-index:3000;width:300px;background:#fff;border:1px solid #dfe5ee;border-radius:14px;box-shadow:0 14px 34px rgba(15,23,42,.18);padding:10px}
.cust-cal .cc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.cust-cal .cc-head b{font-size:16px}
.cust-cal .cc-head button{width:36px;height:36px;border:0;border-radius:9px;background:#f1f5f9;font-size:20px;cursor:pointer}
.cust-cal .cc-dow,.cust-cal .cc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.cust-cal .cc-dow span{font-size:13px;font-weight:800;color:#475569;padding:4px 0}
.cust-cal .cc-cell{height:38px;border:0;border-radius:9px;background:transparent;font-size:15px;font-weight:700;color:#1f2937;cursor:pointer}
.cust-cal .cc-cell:hover:not(:disabled){background:#eff6ff}
.cust-cal .red{color:#dc2626 !important}.cust-cal .blue{color:#2563eb !important}
.cust-cal .cc-cell.today{box-shadow:inset 0 0 0 1.5px #93c5fd}
.cust-cal .cc-cell.sel{background:#1d4ed8 !important;color:#fff !important}
.cust-cal .cc-cell.past{opacity:.3;cursor:not-allowed}
.cust-cal .cc-foot{display:flex;justify-content:flex-end;margin-top:6px}
.cust-cal .cc-foot button{border:0;background:transparent;color:#1d4ed8;font-weight:800;font-size:14px;cursor:pointer}
.cc-input{cursor:pointer;background-image:none}
.cal-cell.sun,.cal-dow .sun{color:#dc2626 !important}.cal-cell.sat,.cal-dow .sat{color:#2563eb !important}
/* 기본 세트에서 계단·개폐식을 미리 볼 때는 계단 쪽 발판을 걷어 겹치지 않게 */
.stair-preview .deck-stairside{display:none !important}
.cart-fab{display:none !important}   /* 장바구니 버튼 뺌(수정요청 18) */
.time-pair{display:grid;grid-template-columns:1fr 96px;gap:6px}
.time-pair select:disabled{opacity:.45}

/* ── 운임비(2026-09-26 수정요청 21) ── */
.page-admin .ed-money .freight-btn{flex:0 0 auto;min-height:36px;padding:0 14px;border-radius:9px;font-size:14px;font-weight:800;background:#0f766e;border:1px solid #0f766e;color:#fff;margin-left:-4px}
.page-admin .ed-money .freight-btn:hover{background:#115e59}
.fr-sheet{max-width:520px}
.fr-sheet .fr-line{display:grid;grid-template-columns:86px 1fr;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid #eef1f5}
.fr-sheet .fr-lab{font-size:13.5px;font-weight:800;color:#5b6675}
.fr-sheet .fr-val{font-size:15px;color:#1f2937;word-break:keep-all}
.fr-sheet .fr-seg{display:flex;gap:6px;flex-wrap:wrap}
.fr-sheet .fr-seg button{min-height:38px;min-width:64px;padding:0 14px;border-radius:9px;border:1px solid #cfd6e0;background:#fff;color:#334155;font-size:14.5px;font-weight:800}
.fr-sheet .fr-seg button.active{background:#2563eb;border-color:#2563eb;color:#fff}
.fr-sheet .fr-amt input{width:150px !important;height:42px;font-size:18px !important;font-weight:800;text-align:right}
.fr-sheet .fr-miss{color:#b45309;font-weight:700;font-size:13.5px}
.fr-sheet .fr-note{margin-top:10px;font-size:13px;line-height:1.5}
.freight-box .fr-rule{margin:6px 0 10px;font-size:14px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.freight-box .fr-rule input{width:64px !important;height:34px;text-align:center}
.freight-box .fr-table-wrap{overflow-x:auto;border:1px solid #e3e8ef;border-radius:10px}
.freight-box .fr-table{border-collapse:collapse;width:100%;min-width:760px;font-size:13.5px}
.freight-box .fr-table th{background:#f4f7fb;font-weight:800;color:#475467;padding:6px 6px;border-bottom:1px solid #e3e8ef;white-space:nowrap}
.freight-box .fr-table td{padding:4px 5px;border-bottom:1px solid #f0f2f6}
.freight-box .fr-table td.fr-region,.freight-box .fr-table th.fr-region{min-width:170px}
.freight-box .fr-table input{width:100% !important;min-width:0 !important;height:34px;font-size:14px !important;padding:0 7px !important}
.freight-box .fr-table input.fr-fee{text-align:right;min-width:82px !important}
html body.page-admin .freight-box .fr-table input{height:36px !important;min-height:36px !important}
html body.page-admin .freight-box .fr-table td:last-child{width:64px}
html body.page-admin .freight-box .fr-table td:last-child button{white-space:nowrap;min-width:56px;height:36px;min-height:36px;padding:0 10px;writing-mode:horizontal-tb}
@media (max-width:760px){
  .fr-sheet .fr-line{grid-template-columns:74px 1fr}
  html body.page-admin .ed-money .freight-btn{min-height:40px}
}

/* 담은 품목 줄 금액(가격이 실린 링크) */
.picked-box .pk-qty{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15}
.picked-box .pk-qty .pk-won{font-size:12.5px;font-weight:800;color:#0f766e;margin-top:2px;white-space:nowrap}

/* 견적서입력 아래 막대: 가운데 정렬 + 버튼 색(2026-09-27 오너) */
html body.page-admin .quick-actionbar .qab-inner{justify-content:center !important;gap:28px}
html body.page-admin .quick-actionbar .qab-inner .quick-totals{flex:0 0 auto !important;width:auto !important;margin:0 !important;justify-content:center}
html body.page-admin .quick-actionbar .qab-buttons{margin:0 !important;flex:0 0 auto !important}
html body.page-admin .quick-actionbar .qab-buttons button.qab-link{background:#0f766e !important;border-color:#0f766e !important;color:#fff !important}
html body.page-admin .quick-actionbar .qab-buttons button.qab-save{background:#7c3aed !important;border-color:#7c3aed !important;color:#fff !important}
html body.page-admin .quick-actionbar .qab-buttons button.qab-link:disabled,html body.page-admin .quick-actionbar .qab-buttons button.qab-save:disabled{opacity:.55}

/* 견적서입력 아래 막대: 숫자가 늘어도 칸 폭이 안 변하게 칸마다 고정 폭(2026-09-27 오너 "담으면 움직이면 안된다").
   1억 단위(123,456,789원)까지 들어가는 폭. 숫자는 같은 폭 글꼴 숫자로. */
html body.page-admin .quick-actionbar .quick-totals .tot{flex:0 0 auto;box-sizing:border-box;white-space:nowrap;overflow:hidden}
html body.page-admin .quick-actionbar .quick-totals .tot b{font-variant-numeric:tabular-nums}
html body.page-admin .quick-actionbar .quick-totals .tot:nth-child(1){width:72px}
html body.page-admin .quick-actionbar .quick-totals .tot:nth-child(2),html body.page-admin .quick-actionbar .quick-totals .tot:nth-child(4){width:160px}
html body.page-admin .quick-actionbar .quick-totals .tot:nth-child(3),html body.page-admin .quick-actionbar .quick-totals .tot:nth-child(5){width:150px}
html body.page-admin .quick-actionbar .quick-totals .tot.grand{width:220px}

/* 견적데이터 합계 줄의 총금액이 흰 바탕에 흰 글씨로 안 보였다(2026-09-27 오너 "견적서에 금액 제대로").
   발송 창·고객 견적서와 같은 숫자가 한눈에 보이게 파란 테두리 칸 + 큰 파란 숫자. */
html body.page-admin .estimate-detail .totalbox .totalrow.grand{background:#eef5ff !important;border:2px solid #2563eb !important;border-radius:10px}
html body.page-admin .estimate-detail .totalbox .totalrow.grand span{color:#1e3a8a !important}
html body.page-admin .estimate-detail .totalbox .totalrow.grand span:last-child{color:#1d4ed8 !important;font-size:1.35em;font-weight:900 !important}

/* 견적데이터 아래 버튼 색(2026-09-27 오너): 거래처 발주 = 주황, 견적서 보기 = 보라 */

/* 고객 견적서 맨 위 견적번호 줄은 위에 붙어 떠다니지 않고 같이 스크롤된다(2026-09-27 오너 "모바일에서 따로 겉돈다") */
html body.page-quote .quote-status,html body .quote-status{position:static !important;top:auto !important;backdrop-filter:none !important}

/* 고객 견적서 맨 아래: [수정 요청] 왼쪽 · [이 내용으로 확정] 오른쪽 한 줄(2026-09-27 오너) */
html body #quoteActions.qa-bar{display:flex !important;flex-direction:row !important;flex-wrap:nowrap !important;align-items:stretch;gap:8px}
html body #quoteActions.qa-bar .btn{width:auto !important;margin:0 !important;min-height:52px;white-space:nowrap;font-size:15px}
html body #quoteActions.qa-bar .btn.pdf{flex:0 0 auto}
html body #quoteActions.qa-bar .btn.revise{flex:1 1 0;order:1}
html body #quoteActions.qa-bar .btn.confirm{flex:1.4 1 0;order:2}

/* ── 임대·판매 색 — 프로그램 전체 통일(2026-09-27 오너 "임대 판매 구분이 잘 안 된다, 이 프로그램 전체 통일")
   임대 = 파랑(#2563eb), 판매(고객 화면의 '구매') = 보라(#9333ea). 새 화면을 만들 때도 이 두 색만 쓴다. ── */
:root{--rent:#2563eb;--rent-bg:#eff6ff;--rent-bd:#bfdbfe;--sale:#9333ea;--sale-bg:#faf5ff;--sale-bd:#e9d5ff}
/* 선택된 버튼(꽉 찬 색) */
html body #stab-임대.active,html body #ptab-임대.active,html body .qq-opt-rent.on,html body .qq-opt-rent.active,html body .qq-opt-rent[aria-pressed=true],
html body .pick-opt.pk-rent.on,html body .type-rent-btn.on{background:var(--rent) !important;border-color:var(--rent) !important;color:#fff !important}
html body #stab-판매.active,html body #ptab-판매.active,html body .qq-opt-sale.on,html body .qq-opt-sale.active,html body .qq-opt-sale[aria-pressed=true],
html body .pick-opt.pk-sale.on,html body .type-sale-btn.on{background:var(--sale) !important;border-color:var(--sale) !important;color:#fff !important}
/* 안 고른 버튼(글자·테두리만 그 색) */
html body #stab-임대:not(.active),html body #ptab-임대:not(.active),html body .qq-opt-rent:not(.on):not(.active),html body .pick-opt.pk-rent:not(.on),html body .type-rent-btn:not(.on){color:var(--rent) !important;border-color:var(--rent-bd) !important;background:#fff !important}
html body #stab-판매:not(.active),html body #ptab-판매:not(.active),html body .qq-opt-sale:not(.on):not(.active),html body .pick-opt.pk-sale:not(.on),html body .type-sale-btn:not(.on){color:var(--sale) !important;border-color:var(--sale-bd) !important;background:#fff !important}
/* 표 안 구분 선택칸·글자·배지 */
html body select.item-type.it-rent{background:var(--rent-bg) !important;color:var(--rent) !important;border-color:var(--rent-bd) !important;font-weight:800}
html body select.item-type.it-sale{background:var(--sale-bg) !important;color:var(--sale) !important;border-color:var(--sale-bd) !important;font-weight:800}
html body .badge.type-rent,html body .pk-group-label.pk-rent,html body td.type-rent-txt{background:var(--rent-bg) !important;color:var(--rent) !important;font-weight:800}
html body .badge.type-sale,html body .pk-group-label.pk-sale,html body td.type-sale-txt{background:var(--sale-bg) !important;color:var(--sale) !important;font-weight:800}
html body .badge.type-mix{background:linear-gradient(90deg,var(--rent-bg),var(--sale-bg)) !important;color:#4c1d95 !important;font-weight:800}

/* 수량이 들어간 품목은 노랗게 빛나게(2026-09-27 오너) — 고객 목록·관리자 견적서입력 표 같은 규칙 */
@keyframes pickGlow{0%,100%{box-shadow:0 0 0 2px #facc15,0 0 10px 2px rgba(250,204,21,.55)}50%{box-shadow:0 0 0 2px #fde047,0 0 18px 5px rgba(250,204,21,.8)}}
html body.page-customer #productList .product.selected,html body .product.selected{background:#fefce8 !important;border-color:#facc15 !important;animation:pickGlow 1.8s ease-in-out infinite}
html body.page-admin .quick-entry tbody tr.picked > td{background:#fef9c3 !important}
html body.page-admin .quick-entry tbody tr.picked{box-shadow:inset 4px 0 0 #eab308}
@media (prefers-reduced-motion:reduce){html body .product.selected{animation:none;box-shadow:0 0 0 2px #facc15}}

/* 고객 화면 아래 막대: 위아래 빈 공간 줄이기(2026-09-27 오너 "쓸데없이 아래 공간") */
html body.page-customer .bottom{padding:8px 14px calc(8px + env(safe-area-inset-bottom)) !important}
html body.page-customer .bottom-inner{padding-top:0 !important;padding-bottom:0 !important;gap:6px !important}

/* 폰: 아래 막대를 화면 아래에 붙인다(흐름 안이라 빈 공간 없음, 자판이 떠도 customer_js 가 bottom 으로 올림) */
@media (max-width:760px){html body.page-customer .bottom{position:sticky !important;bottom:0;left:auto !important;transform:none !important;width:100% !important}}

/* 고객 [견적서 확인] 창 촘촘하게(2026-09-27 오너 "공간낭비 없애, 모바일로 한눈에") */
html body .review-sheet .review-head{padding:10px 14px !important;font-size:17px}
html body .review-sheet .review-body{padding:8px !important}
html body .qd-request{padding:12px 12px 10px !important}
html body .qd-request .qd-to{margin:0 0 6px !important;padding:0 0 6px !important}
html body .qd-request .qd-to-name{font-size:18px !important;margin-bottom:4px !important}
html body .qd-request .qd-kv th,html body .qd-request .qd-kv td{padding:3px 6px !important;font-size:14px}
html body .qd-request .qd-sub{margin:6px 0 4px !important;font-size:13px}
html body .qd-request .qd-items th,html body .qd-request .qd-items td{padding:5px 4px !important}
html body .qd-request .rv-sum th,html body .qd-request .rv-sum td{padding:5px 10px !important}
html body .qd-request .qd-bank{margin-top:6px !important;padding:6px 10px !important;font-size:12.5px}

/* 견적데이터 아래 버튼 — 순서·색(2026-09-27 오너 "순서: 견적서 확인→고객에게 보내기→발주→거래확정", "색이 튄다, 톤앤매너")
   흐름 순서대로 놓고, 같은 파랑·남색 계열 안에서 옅은 것→진한 것으로 구분한다. 마지막 [거래 확정]만 차분한 초록. */
html body.page-admin .quote-actionbar{display:flex;flex-wrap:wrap;gap:8px}
html body.page-admin .quote-actionbar > button{order:5}
html body.page-admin .quote-actionbar button.action-preview{order:1;background:#eef2ff !important;border:1px solid #c7d2fe !important;color:#3730a3 !important}
html body.page-admin .quote-actionbar button.action-send{order:2;background:#2563eb !important;border:1px solid #2563eb !important;color:#fff !important}
html body.page-admin .quote-actionbar button.action-vendor{order:3;background:#f1f5f9 !important;border:1px solid #cbd5e1 !important;color:#1e3a5f !important}
html body.page-admin .quote-actionbar button.action-confirm{order:4;background:#2f7d5b !important;border:1px solid #2f7d5b !important;color:#fff !important}
html body.page-admin .quote-actionbar button.action-preview:hover{background:#e0e7ff !important}
html body.page-admin .quote-actionbar button.action-vendor:hover{background:#e2e8f0 !important}

/* 현황판 [견적보기] 버튼 색 — 옅은 파랑(견적데이터 [만들어진 견적서 확인]과 같은 계열) (2026-09-27 오너) */
html body.page-admin .board-table td.row-more button{background:#eaf1ff !important;border:1px solid #bfd3fb !important;color:#1d4ed8 !important;font-weight:700 !important}
html body.page-admin .board-table td.row-more button:hover{background:#dbe7ff !important}
html body.page-admin .board-table th.row-more{text-align:center}

/* 견적데이터 아래 버튼 — 같은 모양·같은 폭·같은 진하기(2026-09-27 오너 "정렬 제대로, 톤앤매너 비슷하게").
   네 버튼 모두 흰 글씨 + 비슷한 진하기의 차분한 색, 폭은 똑같이 나눈다. */
html body.page-admin .quote-actionbar{display:flex !important;flex-direction:row !important;flex-wrap:wrap !important;gap:10px !important;align-items:stretch}
html body.page-admin .quote-actionbar > button{flex:0 0 210px !important;width:210px !important;min-height:48px !important;margin:0 !important;border-radius:10px !important;font-size:15px !important;font-weight:700 !important;color:#fff !important;white-space:nowrap}
html body.page-admin .quote-actionbar > button:not(.action-preview):not(.action-send):not(.action-vendor):not(.action-confirm){background:#64748b !important;border:1px solid #64748b !important}
html body.page-admin .quote-actionbar button.action-preview{background:#4f5fa8 !important;border:1px solid #4f5fa8 !important;color:#fff !important}
html body.page-admin .quote-actionbar button.action-send{background:#2563eb !important;border:1px solid #2563eb !important}
html body.page-admin .quote-actionbar button.action-vendor{background:#3f6f8f !important;border:1px solid #3f6f8f !important;color:#fff !important}
html body.page-admin .quote-actionbar button.action-confirm{background:#2f7d5b !important;border:1px solid #2f7d5b !important}
html body.page-admin .quote-actionbar > button:hover{filter:brightness(1.08)}
@media (max-width:760px){html body.page-admin .quote-actionbar > button{flex:1 1 calc(50% - 5px) !important;width:auto !important}}

/* 견적서 확인하고 보내기 — 창 위 등급 고르기(2026-09-27) */
html body .qpv-head{flex-wrap:wrap;gap:10px}
html body .qpv-grades{display:flex;align-items:center;gap:6px;margin-left:auto;margin-right:12px}
html body .qpv-grades > span{font-size:13px;font-weight:800;color:#475569;margin-right:4px}
html body .qpv-grades button{min-width:84px;min-height:42px;border-radius:10px;border:1px solid #cbd5e1;background:#fff;color:#334155;font-size:15px;font-weight:800;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1}
html body .qpv-grades button small{font-size:10.5px;font-weight:700;opacity:.8}
html body .qpv-grades button.active{background:#2563eb;border-color:#2563eb;color:#fff}
html body .qpv-actions .qpv-go{background:#2563eb !important;border-color:#2563eb !important}
@media (max-width:760px){html body .qpv-grades{margin:6px 0 0;width:100%}html body .qpv-grades button{flex:1;min-width:0}}

/* 현황판 수정 모드 — 선을 한 가지로 통일(2026-09-27 오너 "통일성 없다, 정확히 구분되게").
   모든 칸에 같은 가는 격자선. 고칠 수 있는 칸 = 흰 바탕·진한 글씨, 못 고치는 칸 = 옅은 회색 바탕·회색 글씨.
   칸마다 따로 그리던 안쪽 테두리 상자는 없앴다(칸 크기가 제각각이라 선이 들쭉날쭉해 보였다). */
html body.page-admin .board-table.board-editing{border-collapse:collapse !important}
html body.page-admin .board-table.board-editing th,html body.page-admin .board-table.board-editing td{border:1px solid #dbe3ee !important}
html body.page-admin .board-table.board-editing tbody tr:not(.filler-row) td{box-shadow:none !important}
html body.page-admin .board-table.board-editing tbody tr:not(.filler-row) td:not(.editable):not(.cell-pick):not(.row-more){background:#f4f6f9 !important;color:#94a3b8 !important}
html body.page-admin .board-table.board-editing tbody tr:not(.filler-row) td.editable{background:#fff !important;color:#0f172a !important;font-weight:600;cursor:text}
html body.page-admin .board-table.board-editing tbody tr:not(.filler-row) td.editable:hover{background:#eff6ff !important;outline:2px solid #93c5fd;outline-offset:-2px}
html body.page-admin .board-table.board-editing tbody tr:not(.filler-row) td.cell-dirty{background:#dbeafe !important;box-shadow:inset 3px 0 0 #2563eb !important}
html body.page-admin .board-table.board-editing tbody tr:not(.filler-row) td.cell-pick,html body.page-admin .board-table.board-editing tbody tr:not(.filler-row) td.row-more{background:#fff !important}

/* 보낼 가격 1·2·3등급을 창 가운데로(2026-09-27 오너) — 머리를 세 칸(제목 | 등급 | 닫기)으로 */
@media (min-width:761px){
  html body .qpv-sheet .qpv-head:has(.qpv-grades){display:grid !important;grid-template-columns:1fr auto 1fr;align-items:center}
  html body .qpv-sheet .qpv-head .qpv-grades{margin:0 !important;justify-self:center}
  html body .qpv-sheet .qpv-head .qpv-close{justify-self:end}
}
html body .qpv-grades > span{font-size:15px !important;color:#1e293b !important}
html body .qpv-grades button{min-width:96px !important;min-height:46px !important;font-size:16px !important}

/* 등급을 바꿔도 버튼 크기가 그대로(2026-09-27 오너) — 모두 고정 폭·높이, '고객 기본' 표시는 버튼 크기에 영향 없게 */
html body .qpv-grades button{position:relative;width:96px !important;height:46px !important;min-width:0 !important;min-height:0 !important;padding:0 !important;box-sizing:border-box}
html body .qpv-grades button small{position:absolute;left:0;right:0;bottom:3px;font-size:10px !important;line-height:1}
html body .qpv-grades button.active,html body .qpv-grades button:not(.active){border-width:1px !important}
html body .qpv-actions > button{height:48px !important;min-height:0 !important;box-sizing:border-box;white-space:nowrap}
html body .qpv-actions > button.qpv-go{width:240px !important;flex:0 0 240px !important}

/* [내 주문조회] 크게·잘 보이게(2026-09-27 오너) — 머리 오른쪽 끝, 꽉 찬 파랑 */
html body.page-customer .topbar .brand{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}
html body.page-customer .topbar .my-orders-btn{margin-left:auto !important;min-height:44px !important;padding:0 16px !important;font-size:16px !important;font-weight:800 !important;
  background:#2563eb !important;border:1px solid #2563eb !important;color:#fff !important;border-radius:12px !important;box-shadow:0 3px 10px rgba(37,99,235,.25) !important;white-space:nowrap}
@media (max-width:420px){html body.page-customer .topbar .app-version{display:none}}

/* 내 견적·주문 조회 창(2026-09-27) — 위에서 내려오는 창, 머리 ✕, 자판을 뺀 높이에 맞춤 */
html body .mo-back{align-items:flex-start !important}
html body .mo-sheet{position:fixed !important;left:50%;transform:translateX(-50%);top:0;width:min(520px,100%);display:flex;flex-direction:column;border-radius:0 0 18px 18px !important;margin:0 !important}
html body .mo-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px 10px 16px !important;flex:0 0 auto}
html body .mo-x{width:44px;height:44px;border-radius:12px;border:1px solid #e2e8f0;background:#f8fafc;font-size:20px;font-weight:700;color:#334155;flex:0 0 auto}
html body .mo-body{padding:12px 16px 16px !important;overflow:auto;flex:1 1 auto;min-height:0}
html body .mo-lab{display:block;font-size:14px;font-weight:700;color:#475569;margin-bottom:10px}
html body .mo-lab input{display:block;width:100%;box-sizing:border-box;margin-top:5px;height:50px;font-size:18px;padding:0 14px;border:1px solid #cbd5e1;border-radius:12px;background:#fff}
html body .mo-lab input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.15)}
html body .mo-go{width:100%;height:52px;font-size:17px;margin:4px 0 12px}

/* 버튼 줄 맞춤(2026-09-27 오너 "삐뚤거린다") */
html body.page-admin .ed-money{align-items:flex-end !important}
html body.page-admin .ed-money .freight-btn{align-self:flex-end !important;height:38px !important;min-height:38px !important;margin:0 !important;display:inline-flex;align-items:center;justify-content:center}
html body.page-admin .ed-money input{height:38px !important;min-height:38px !important;box-sizing:border-box}
html body .qpv-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}
html body .qpv-actions > button.qpv-go{width:auto !important;flex:0 0 auto !important;min-width:240px;padding:0 24px !important;display:inline-flex;align-items:center;justify-content:center;text-align:center}
html body.page-admin .qq-tools.list-actions{align-items:center !important}
html body.page-admin .qq-tools.list-actions > button,html body.page-admin .qq-tools.list-actions > input,html body.page-admin .qq-tools.list-actions > select{height:38px !important;min-height:38px !important;box-sizing:border-box;margin-top:0 !important;margin-bottom:0 !important}

/* 운반비·보증금·멸실료 줄 크게(2026-09-27 오너 "운임비=운반비, 너무 작다, 잘 보이게") */
html body.page-admin .ed-money{gap:14px !important;align-items:flex-end !important;flex-wrap:wrap}
html body.page-admin .ed-money .field{display:flex !important;flex-direction:column !important;align-items:stretch !important;gap:5px !important}
html body.page-admin .ed-money .field label{font-size:15px !important;font-weight:800 !important;color:#1e293b !important;text-align:left}
html body.page-admin .ed-money input{width:160px !important;height:46px !important;min-height:46px !important;font-size:18px !important;font-weight:700 !important;padding:0 12px !important}
html body.page-admin .ed-money .freight-btn{height:46px !important;min-height:46px !important;padding:0 16px !important;font-size:15px !important;margin-left:-6px !important;border-radius:10px !important}

/* 관리자 폰: 품목/가격 설정 카드를 촘촘하게(2026-09-27 오너 "폰에서 한눈에").
   품목·규격을 한 줄, 가격들은 세 칸 격자에 작은 이름표. 빈 값(·)·분류 칸은 숨긴다(분류는 위 분류 버튼으로 본다). */
@media (max-width:760px){
  html body.page-admin.mcards #sectionHost #productBody table.master-table tbody tr{display:grid !important;grid-template-columns:repeat(3,minmax(0,1fr)) !important;gap:4px 10px !important;padding:10px 12px !important;align-items:start !important}
  html body.page-admin.mcards #sectionHost #productBody table.master-table tbody td{display:block !important;padding:0 !important;border:0 !important;min-height:0 !important;text-align:left !important;font-size:15px !important;font-weight:700;width:auto !important}
  html body.page-admin.mcards #sectionHost #productBody table.master-table tbody td::before{content:attr(data-l);display:block !important;font-size:11px !important;font-weight:600 !important;color:#94a3b8 !important;margin:0 0 1px !important;position:static !important;width:auto !important}
  html body.page-admin.mcards #sectionHost #productBody table.master-table tbody td.pf-empty,
  html body.page-admin.mcards #sectionHost #productBody table.master-table tbody td[data-pf="category"]{display:none !important}
  html body.page-admin.mcards #sectionHost #productBody table.master-table tbody td[data-pf="name"]{grid-column:1 / span 2;font-size:16px !important;font-weight:800;color:#0f172a}
  html body.page-admin.mcards #sectionHost #productBody table.master-table tbody td[data-pf="spec"]{grid-column:3;color:#db2777 !important;font-weight:800}
  html body.page-admin.mcards #sectionHost #productBody table.master-table tbody td[data-pf="name"]::before,html body.page-admin.mcards #sectionHost #productBody table.master-table tbody td[data-pf="spec"]::before{display:none !important}
  html body.page-admin.mcards #sectionHost #productBody table.master-table tbody td.grade-calc{color:#475569 !important}
}
@media (max-width:760px){
  html body.page-admin.mcards #sectionHost #productBody table.master-table tbody td{order:5}
  html body.page-admin.mcards #sectionHost #productBody table.master-table tbody td[data-pf="name"]{order:1}
  html body.page-admin.mcards #sectionHost #productBody table.master-table tbody td[data-pf="spec"]{order:2}
  html body.page-admin.mcards #sectionHost #productBody table.master-table tbody td.cell-rowops,html body.page-admin.mcards #sectionHost #productBody table.master-table tbody td.cell-pick,html body.page-admin.mcards #sectionHost #productBody table.master-table tbody td.row-more{order:90;align-self:center}
  html body.page-admin.mcards #sectionHost #productBody table.master-table tbody td.cell-rowops{grid-column:1 / span 2}
  html body.page-admin.mcards #sectionHost #productBody table.master-table tbody td.cell-rowops::before,html body.page-admin.mcards #sectionHost #productBody table.master-table tbody td.cell-pick::before,html body.page-admin.mcards #sectionHost #productBody table.master-table tbody td.row-more::before{display:none !important}
  html body.page-admin.mcards #sectionHost #productBody table.master-table thead{display:none !important}
}
@media (max-width:760px){
  html body.page-admin.mcards #sectionHost #productBody table.master-table tbody td.cell-rowops:has(button:disabled),html body.page-admin.mcards #sectionHost #productBody table.master-table tbody td.cell-pick:has(input:disabled){display:none !important}
}

/* 수정·취소·삭제 버튼 — 모든 화면 같은 색(2026-09-27 오너 "잘 보이게 컬러")
   수정/저장 = 파랑, 취소 = 회청, 삭제 = 빨강. 못 누를 때(흐림)도 글자는 읽히게 옅은 같은 계열. */
html body.page-admin #boardModeBtns button,html body.page-admin #closedModeBtns button,html body.page-admin #customerModeBtns button,html body.page-admin #itemModeBtns button,html body.page-admin #productModeBtns button,html body.page-admin #reqModeBtns button,html body.page-admin .mode-btns button{min-height:40px !important;min-width:64px;padding:0 16px !important;font-size:15px !important;font-weight:800 !important;border-radius:10px !important;opacity:1 !important}
html body.page-admin #boardModeBtns button.primary,html body.page-admin #closedModeBtns button.primary,html body.page-admin #customerModeBtns button.primary,html body.page-admin #itemModeBtns button.primary,html body.page-admin #productModeBtns button.primary,html body.page-admin #reqModeBtns button.primary,html body.page-admin .mode-btns button.primary{background:#2563eb !important;border:1px solid #2563eb !important;color:#fff !important}
html body.page-admin #boardModeBtns button.secondary:not(:disabled),html body.page-admin #closedModeBtns button.secondary:not(:disabled),html body.page-admin #customerModeBtns button.secondary:not(:disabled),html body.page-admin #itemModeBtns button.secondary:not(:disabled),html body.page-admin #productModeBtns button.secondary:not(:disabled),html body.page-admin #reqModeBtns button.secondary:not(:disabled),html body.page-admin .mode-btns button.secondary:not(:disabled){background:#64748b !important;border:1px solid #64748b !important;color:#fff !important}
html body.page-admin #boardModeBtns button.secondary:disabled,html body.page-admin #closedModeBtns button.secondary:disabled,html body.page-admin #customerModeBtns button.secondary:disabled,html body.page-admin #itemModeBtns button.secondary:disabled,html body.page-admin #productModeBtns button.secondary:disabled,html body.page-admin #reqModeBtns button.secondary:disabled,html body.page-admin .mode-btns button.secondary:disabled{background:#f1f5f9 !important;border:1px solid #cbd5e1 !important;color:#64748b !important}
html body.page-admin #boardModeBtns button.danger:not(:disabled),html body.page-admin #closedModeBtns button.danger:not(:disabled),html body.page-admin #customerModeBtns button.danger:not(:disabled),html body.page-admin #itemModeBtns button.danger:not(:disabled),html body.page-admin #productModeBtns button.danger:not(:disabled),html body.page-admin #reqModeBtns button.danger:not(:disabled),html body.page-admin .mode-btns button.danger:not(:disabled){background:#dc2626 !important;border:1px solid #dc2626 !important;color:#fff !important}
html body.page-admin #boardModeBtns button.danger:disabled,html body.page-admin #closedModeBtns button.danger:disabled,html body.page-admin #customerModeBtns button.danger:disabled,html body.page-admin #itemModeBtns button.danger:disabled,html body.page-admin #productModeBtns button.danger:disabled,html body.page-admin #reqModeBtns button.danger:disabled,html body.page-admin .mode-btns button.danger:disabled{background:#fef2f2 !important;border:1px solid #fecaca !important;color:#dc2626 !important}

/* [고객에게 보내기] 고르는 창(2026-09-27) */
html body .qqc-sheet{max-width:520px}
html body .qqc-opt{display:block;width:100%;text-align:left;padding:14px 16px;margin:0 0 10px;border-radius:14px;border:2px solid #cbd5e1;background:#fff;cursor:pointer}
html body .qqc-opt b{display:block;font-size:17px;color:#0f172a;margin-bottom:4px}
html body .qqc-opt span{display:block;font-size:14px;line-height:1.5;color:#475569}
html body .qqc-opt em{display:block;font-style:normal;font-size:13px;color:#b45309;margin-top:6px;font-weight:700}
html body .qqc-quote:not(:disabled){border-color:#2563eb;background:#eff6ff}
html body .qqc-quote:not(:disabled) b{color:#1d4ed8}
html body .qqc-fill:hover,html body .qqc-quote:not(:disabled):hover{filter:brightness(.98)}
html body .qqc-opt:disabled{opacity:.6;cursor:not-allowed}

/* 로고 — 'L' 글자 대신 로그인가설 로고(2026-09-27 오너 "프로그램 전체 로고 들어가는 곳에"). brand-mark 쓰는 곳 전부(관리자·고객·견적서·로그인 카드) */
html body .brand-mark{background:#fff url('/assets/logo-mark.png') center/84% no-repeat !important;color:transparent !important;text-shadow:none !important;border:1px solid #e2e8f0 !important;box-shadow:0 1px 3px rgba(15,23,42,.08) !important;overflow:hidden}
html body .qd-brand{display:flex !important;align-items:center;gap:10px}
html body .qd-brand .brand-mark{display:inline-block !important;flex:0 0 auto;width:46px !important;height:46px !important;border-radius:10px !important}
@media (max-width:560px){html body .qd-brand .brand-mark{width:36px !important;height:36px !important}}
html body.page-admin .quick-entry tbody tr{cursor:pointer}
html body.page-admin .quick-entry input.qunit-locked{background:#f8fafc !important;border-color:#e2e8f0 !important;color:#334155 !important;cursor:pointer;pointer-events:none}

/* 세트 관리 창 크게(2026-09-27) */
html body .sets-sheet{width:min(1000px,96vw) !important;max-width:none !important;max-height:92vh}
html body .sets-sheet .lk-head{font-size:20px !important}
html body .sets-sheet .sets-body{overflow:auto;padding:14px 18px !important}
html body .set-top{margin-bottom:12px}
html body .set-new{min-height:48px !important;padding:0 20px !important;font-size:16px !important;font-weight:800 !important;border-radius:12px !important}
html body .set-list{display:flex;flex-direction:column;gap:10px}
html body .set-row{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid #dbe3ee;border-radius:14px;background:#fff}
html body .set-main{flex:1 1 auto;min-width:0}
html body .set-title{display:flex;align-items:baseline;gap:8px;margin-bottom:8px}
html body .set-title b{font-size:18px;color:#0f172a}
html body .set-title span{font-size:14px;color:#64748b;font-weight:700}
html body .set-chips{display:flex;flex-wrap:wrap;gap:6px}
html body .set-chip{font-size:13.5px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;padding:3px 8px;color:#334155}
html body .set-chip b{color:#1d4ed8}
html body .set-btns{display:flex;gap:8px;flex:0 0 auto}
html body .set-btns button{width:78px;height:46px;border-radius:10px;font-size:16px;font-weight:800;color:#fff;border:0;cursor:pointer}
html body .set-btns .set-pick{background:#2563eb}
html body .set-btns .set-edit{background:#64748b}
html body .set-btns .set-del{background:#dc2626}
html body .set-btns button:hover{filter:brightness(1.08)}
@media (max-width:760px){html body .set-row{flex-direction:column;align-items:stretch}html body .set-btns button{flex:1}}

/* 분류 버튼 숫자 칸 고정 폭 — 임대/판매를 바꿔 숫자 자릿수가 달라져도 버튼 크기가 그대로(2026-09-27 오너) */
html body.page-admin .cat-btn em{display:inline-flex !important;justify-content:center;align-items:center;width:36px !important;min-width:36px !important;padding:0 !important;box-sizing:border-box;font-variant-numeric:tabular-nums;font-style:normal}
html body .set-btns button{display:inline-flex;align-items:center;justify-content:center;padding:0 !important;text-align:center}

/* 현황판 한 칸 상태 — 수정요청 빨간 점, 취소 칩 */
html body .rev-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#dc2626;margin-left:6px;vertical-align:middle;box-shadow:0 0 0 2px #fee2e2}
html body .ops-chip.ops-cancel{background:#f1f5f9 !important;color:#94a3b8 !important;text-decoration:line-through}
html body.page-admin .quick-actionbar .qab-buttons button.qab-save.is-off{opacity:.55 !important;cursor:help}
html body .qpv-sheet .qpv-head:not(:has(.qpv-grades)){display:flex !important;justify-content:space-between;align-items:flex-start;gap:12px}
html body .qpv-sheet .qpv-head .qpv-close{flex:0 0 auto;margin-left:auto}
html body .qpv-actions > button{height:50px !important;min-height:50px !important;display:inline-flex !important;align-items:center;justify-content:center;padding:0 22px !important;line-height:1 !important;vertical-align:middle;margin:0 !important}
html body.page-admin .quick-actionbar .qab-buttons{margin-left:56px !important}

/* 견적서입력 단가: 잠금 + 이 고객만 [수정](2026-09-27) */
html body.page-admin .quick-entry td.qunit-cell{white-space:nowrap}
html body.page-admin .quick-entry td.qunit-cell input.qunit{width:calc(100% - 52px) !important;min-width:0 !important;display:inline-block;vertical-align:middle}
html body.page-admin .quick-entry .qunit-edit{width:46px;height:32px;margin-left:4px;vertical-align:middle;border-radius:8px;border:1px solid #cbd5e1;background:#fff;color:#334155;font-size:12.5px;font-weight:800;cursor:pointer}
html body.page-admin .quick-entry .qunit-edit:hover{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8}
html body.page-admin .quick-entry input.qunit.qunit-open{background:#fff !important;border-color:#2563eb !important;pointer-events:auto !important;cursor:text;box-shadow:0 0 0 3px rgba(37,99,235,.15)}
html body.page-admin .quick-entry input.qunit.qunit-custom{color:#b45309 !important;font-weight:800;background:#fffbeb !important;border-color:#fcd34d !important}

/* 운반비 편도/왕복 + 설명(2026-09-27) */
html body.page-admin .ed-ship{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 4px;justify-content:flex-end}
html body.page-admin .ed-ship-lab{font-size:15px;font-weight:800;color:#1e293b}
html body.page-admin .ed-ship-seg{display:inline-flex;border:1px solid #cbd5e1;border-radius:10px;overflow:hidden}
html body.page-admin .ed-ship-seg button{width:72px;height:44px;border:0;background:#fff;font-size:15px;font-weight:800;color:#334155;cursor:pointer}
html body.page-admin .ed-ship-seg button + button{border-left:1px solid #cbd5e1}
html body.page-admin .ed-ship-seg button.on{background:#2563eb;color:#fff}
html body.page-admin .ed-ship-note{width:min(520px,100%) !important;height:44px !important;font-size:15px !important;padding:0 12px !important}
html body .qd-ship-mode{font-size:.85em;font-weight:700;color:#475569}
html body .qd-sum tr.qd-ship-note td{font-size:12.5px;color:#475569;background:#f8fafc;text-align:left !important;padding:6px 10px !important;line-height:1.45}

/* 도장: 이름을 가리지 않게 (인) 자리에서 오른쪽으로(2026-09-27 오너) — 도장 왼쪽 끝을 (인) 앞에 맞춘다 */
html body .qd-seal .qd-inwrap img{left:-4px !important;right:auto !important;transform:translate(0,-50%) rotate(-4deg) !important}

/* 견적데이터 정돈(2026-09-27 오너 "한눈에 깔끔하게") — 운반비·보증금·멸실료·편도/왕복을 한 상자로, 합계 줄은 총 금액이 맨 끝·넓게 */
html body.page-admin .estimate-detail .ed-tools,html body.page-admin .estimate-detail .ed-ship{background:#f8fafc;border:1px solid #e2e8f0;padding:10px 14px;margin:10px 0 0 !important}
html body.page-admin .estimate-detail .ed-tools{border-radius:12px 12px 0 0;border-bottom:0}
html body.page-admin .estimate-detail .ed-ship{border-radius:0 0 12px 12px;border-top:1px dashed #e2e8f0;margin-top:0 !important;margin-bottom:12px !important}
html body.page-admin .estimate-detail #editTotals{display:flex !important;flex-wrap:wrap;gap:0 !important}
html body.page-admin .estimate-detail #editTotals .totalrow{flex:1 1 0;min-width:120px}
html body.page-admin .estimate-detail #editTotals .totalrow.grand{flex:1.6 1 0;order:99}

/* 발주서 로고(2026-09-27) */
html body .vo-brand{display:flex;align-items:center;gap:10px;margin:0 0 6px}
html body .vo-brand img{width:44px;height:44px;object-fit:contain;border:1px solid #e2e8f0;border-radius:10px;background:#fff;padding:2px}
html body .vo-brand b{display:block;font-size:17px;color:#1e3a5f}
html body .vo-brand small{display:block;font-size:10.5px;letter-spacing:.14em;color:#64748b;font-weight:700}
html body.page-admin .estimate-detail #editTotals .totalrow span:last-child{white-space:nowrap}
html body.page-admin .estimate-detail #editTotals .totalrow.margin-row{min-width:170px}

/* 운임비 요약·창 안 안내 칸, 견적서입력 버튼 맨 왼쪽(2026-09-27) */
html body.page-admin .ed-money .ship-sum{align-self:center;max-width:260px;font-size:14px;font-weight:700;color:#0f766e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.page-admin .ed-money .ship-sum:empty{display:none}
html body .fr-sheet .fr-note-in{width:100% !important;min-height:56px;font-size:14px;padding:8px 10px;box-sizing:border-box;resize:vertical}
html body.page-admin .quick-actionbar .qab-inner{justify-content:flex-start !important}
html body.page-admin .quick-actionbar .qab-buttons{order:-1 !important;margin-left:0 !important;margin-right:40px !important}
html body.page-admin .estimate-detail .ed-tools{border-radius:12px !important;border-bottom:1px solid #e2e8f0 !important;margin-bottom:12px !important}
/* 견적서입력 아래 버튼: 오른쪽 끝(2026-09-27 오너 — 맨 왼쪽→오른쪽 끝으로 다시) */
html body.page-admin .quick-actionbar .qab-inner{justify-content:flex-start !important}
html body.page-admin .quick-actionbar .qab-buttons{order:99 !important;margin-left:auto !important;margin-right:0 !important}

/* 고객 견적서 확인 표 — 단가·금액 칸(2026-09-27) */
html body .qd-request .qd-items col.qd-c-unit{width:15%}
html body .qd-request .qd-items col.qd-c-line{width:17%}
html body .qd-request .qd-items td.rv-line{font-weight:800}
@media (max-width:560px){html body .qd-request .qd-items th,html body .qd-request .qd-items td{font-size:12px !important;padding:5px 3px !important}}
html body .mo-forget{display:block;width:100%;margin-top:12px;height:44px;border-radius:12px;border:1px solid #cbd5e1;background:#fff;color:#475569;font-size:14px;font-weight:700}

/* 고객에게 보낸 기록·고객 견적서 링크(2026-09-27) */
html body.page-admin .version-line .vl-help{font-size:12.5px;margin-left:8px}
html body.page-admin .version-chip b{color:#1d4ed8}
html body.page-admin .plink{display:flex;align-items:center;gap:10px;margin-top:8px}
html body.page-admin .plink > b{font-size:14px;white-space:nowrap;color:#1e293b}
html body.page-admin .plink .copy-box{flex:1 1 auto;min-width:0;margin:0 !important;font-size:12px !important;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body.page-admin .plink-copy{flex:0 0 auto;height:40px;padding:0 16px !important}
/* [운임비 정하기]를 운임비 칸 왼쪽으로(2026-09-27 오너) */
html body.page-admin .ed-money .freight-btn{order:-2;margin-left:0 !important}
html body.page-admin .ed-money .field:has(#eTransport){order:-1}
html body.page-admin .ed-money .ship-sum{order:0}
html body.page-admin .ed-money .field:has(#eDeposit),html body.page-admin .ed-money .field:has(#eLossFee){order:1}

/* 수정요청 칩·깜박이는 빨간 불·현황판 메뉴 숫자(2026-09-27) */
@keyframes revBlink{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(220,38,38,.6)}50%{opacity:.55;box-shadow:0 0 0 5px rgba(220,38,38,0)}}
html body .ops-chip.ops-rev{position:relative;background:#fee2e2 !important;color:#b91c1c !important;border:1px solid #fca5a5 !important;font-weight:800 !important;padding-left:14px !important}
html body .ops-chip.ops-rev .rev-light{position:absolute;left:-4px;top:-4px;width:11px;height:11px;border-radius:50%;background:#dc2626;border:2px solid #fff;animation:revBlink 1.2s ease-in-out infinite}
html body #nav-board{position:relative}
html body #nav-board .rev-badge{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:#dc2626;color:#fff;font-size:12px;font-weight:800;line-height:20px;text-align:center;box-shadow:0 0 0 2px #fff;animation:revBlink 1.2s ease-in-out infinite}
/* 견적서입력 도구줄: [수량 지우기] 색, '기본세트'는 버튼이 아니라 글자(2026-09-27 오너) */
html body.page-admin .qq-tools .qq-clear{background:#fef2f2 !important;border:1px solid #fca5a5 !important;color:#b91c1c !important;font-weight:800 !important}
html body.page-admin .qq-tools .qq-clear:hover{background:#fee2e2 !important}
html body.page-admin .qq-tools .pl-lab{background:transparent !important;border:0 !important;padding:0 2px 0 8px !important;color:#475569 !important;font-size:14px !important;font-weight:800 !important;height:auto !important;min-height:0 !important}

/* 세트 편집(세트 관리 창) — 움직이지 않게·저장 버튼 보이게(2026-09-27 오너) */
html body .sets-sheet .sets-body{overflow-x:hidden !important}
html body .sets-sheet #setsRoot .cat-bar{display:flex !important;flex-wrap:nowrap !important;overflow-x:auto;overflow-y:hidden;gap:8px;height:60px;align-items:center;padding-bottom:4px}
html body .sets-sheet #setsRoot .cat-bar .cat-btn{flex:0 0 auto}
html body .sets-sheet #setItems{height:420px;overflow:hidden}
html body .sets-sheet #setItems .master-scroll{height:420px !important;max-height:420px !important;overflow:auto !important}
html body .sets-sheet #setsRoot .quick-actionbar{position:static !important;width:100% !important;left:auto !important;right:auto !important;transform:none !important;margin-top:12px;box-shadow:none !important;border:1px solid #e2e8f0;border-radius:12px}
html body .sets-sheet #setsRoot .quick-actionbar .qab-inner{display:flex !important;justify-content:space-between !important;align-items:center;width:100% !important;max-width:none !important;box-sizing:border-box}
html body .sets-sheet #setsRoot .quick-actionbar .qab-buttons{margin:0 !important;order:0 !important}
html body .sets-sheet #setsRoot .quick-actionbar .qab-buttons button{height:46px;padding:0 20px !important;font-size:15px;font-weight:800}
html body.page-admin .board-table td.cell-ops.clickable{cursor:pointer}
html body.page-admin .board-table td.cell-ops.clickable:hover .ops-rev{filter:brightness(.95);text-decoration:underline}

/* 견적데이터 품목표 추가/삭제 칸 좁게(2026-09-27 오너 "공간 낭비") */
html body.page-admin:not(.mcards) #detailPane .edit-items th.col-itemops,html body.page-admin:not(.mcards) #detailPane .edit-items td.col-itemops{width:120px !important;padding:4px 6px !important;text-align:left !important}
html body.page-admin #detailPane .edit-items td.col-itemops .rowops-in{display:inline-flex;gap:4px}
html body.page-admin #detailPane .edit-items .rowop{height:28px !important;min-height:28px !important;padding:0 7px !important;font-size:12px !important;border-radius:7px !important}
/* 고객 수정요청 알림 상자(2026-09-27) */
html body.page-admin .rev-notice{display:flex;align-items:center;gap:14px;background:#fef2f2;border:2px solid #f87171;border-radius:14px;padding:14px 18px;margin:0 0 14px}
html body.page-admin .rev-notice .rn-ico{width:14px;height:14px;border-radius:50%;background:#dc2626;flex:0 0 auto;animation:revBlink 1.2s ease-in-out infinite}
html body.page-admin .rev-notice .rn-body{flex:1 1 auto;min-width:0}
html body.page-admin .rev-notice .rn-body b{display:block;font-size:15px;color:#b91c1c;margin-bottom:3px}
html body.page-admin .rev-notice .rn-body div{font-size:18px;font-weight:700;color:#111827;white-space:pre-wrap;word-break:break-word}
html body.page-admin .rev-notice .rn-ack{flex:0 0 auto;height:46px;padding:0 18px;border-radius:10px;border:0;background:#dc2626;color:#fff;font-size:15px;font-weight:800;cursor:pointer}
html body.page-admin .rev-notice.done{background:#f8fafc;border-color:#cbd5e1}
html body.page-admin .rev-notice.done .rn-body b{color:#475569}

/* 보낼 가격(등급)을 아래 왼쪽 묶음으로 */
html body .qpv-actions .qpv-grades-foot{margin:0 !important;padding:6px 12px 6px 0;border-right:1px solid #e2e8f0;display:flex;align-items:center;gap:6px}
html body .qpv-actions .qpv-sp{flex:1 1 auto}
html body .qpv-actions{justify-content:flex-start !important}
@media (max-width:760px){html body .qpv-actions{flex-wrap:wrap}html body .qpv-actions .qpv-grades-foot{width:100%;border-right:0;padding-right:0}html body .qpv-actions .qpv-grades-foot button{flex:1}}
@media (min-width:761px){html body .qpv-actions .qpv-grades-foot button{flex:0 0 96px !important;width:96px !important}}
/* V4.4.0 견적데이터 아래 버튼 줄: 글자에 맞는 크기, 안쪽 여백으로 가장자리에서 띄움(2026-09-27 오너 "작게 딱맞게, 아래랑 왼쪽이 붙어있잖아") */
html body.page-admin .quote-actionbar{display:flex !important;flex-wrap:wrap !important;align-items:center !important;justify-content:flex-start !important;gap:10px !important;width:auto !important;margin:14px 0 0 !important;padding:14px 16px !important;box-sizing:border-box !important}
html body.page-admin .quote-actionbar > button{flex:0 0 auto !important;width:auto !important;min-width:150px !important;max-width:none !important;margin:0 !important;height:44px !important;min-height:44px !important;padding:0 20px !important;font-size:15px !important;white-space:nowrap !important}
html body.page-admin .quote-actionbar > button.action-preview{background:#4f5fa8 !important;border:1px solid #4f5fa8 !important;color:#fff !important;opacity:1 !important}
/* V4.3.8 고객 결제 칸: 계좌 크게+복사, 전화 버튼(2026-09-27 오너) */
html body .pay-acct{display:flex;flex-direction:column;align-items:center;gap:8px;margin:16px 0 6px;font-size:16px}
html body .pay-acct b{font-size:22px;margin:0;word-break:keep-all}
html body .pay-copy{min-height:52px;padding:0 26px;font-size:18px;font-weight:800;border-radius:12px;background:#0f172a;color:#fff;border:0}
html body .pay-ref{font-size:17px}
html body .pay-call{display:block;margin-top:14px;padding:16px;border-radius:12px;background:#16a34a;color:#fff;font-size:19px;font-weight:800;text-decoration:none;text-align:center}
/* V4.4.1 불러온 세트 표시 띠 */
html body .qq-set-banner{margin:8px 0;padding:12px 16px;border-radius:10px;background:#ecfdf5;border:1px solid #86efac;color:#166534;font-size:16px;font-weight:600}
html body .qq-set-banner b{font-weight:800}
html body .qq-set-banner span{color:#4b5563;font-weight:500;font-size:14px;margin-left:6px}
/* V4.4.2 [수정] 전에는 취소·삭제가 꺼진 것이 한눈에 보이게 — 회색(2026-09-27 오너 "수정버튼 누를때나 활성화되야지") */
html body.page-admin #boardModeBtns button:disabled,html body.page-admin #reqModeBtns button:disabled,html body.page-admin .mode-btns button:disabled,html body.page-admin .btn-group button:disabled{background:#f1f5f9 !important;border:1px solid #e2e8f0 !important;color:#b6c0cc !important;box-shadow:none !important;opacity:1 !important;cursor:not-allowed !important}
/* V4.4.4 기본세트 묶음을 세트 불러오기와 떼어 놓는다(2026-09-27 오너) */
html body.page-admin .tier-set-btn.tier-3{margin-right:28px !important}
html body .pay-qr{display:flex;flex-direction:column;align-items:center;gap:8px;margin:16px 0 4px}
html body .pay-qr img{background:#fff;padding:10px;border-radius:12px;border:1px solid #e5e7eb}
html body .pay-qr-cap{font-size:15px;color:#475569}
/* V4.4.7 수정·취소·삭제 버튼 폭 고정 — 상태·숫자가 바뀌어도 안 움직인다 */
html body.page-admin #reqModeBtns button,html body.page-admin #boardModeBtns button{flex:0 0 96px !important;width:96px !important;min-width:96px !important;max-width:96px !important;height:44px !important;padding:0 !important;white-space:nowrap !important;box-sizing:border-box !important}
html body.page-admin #reqModeBtns button.is-on{box-shadow:inset 0 0 0 3px rgba(255,255,255,.55) !important}
html body .lk-what{padding:14px 16px;border-radius:12px;background:#f1f5f9;border:1px solid #e2e8f0;margin-bottom:14px}
html body .lk-what b{display:block;font-size:16px;color:#0f172a}
html body .lk-what small{display:block;margin-top:4px;color:#475569;font-size:14px}
/* V4.4.9 수정·저장·취소·삭제: 켜진 것만 색, 꺼진 것은 흑백(2026-09-27 오너). 옛 :disabled 규칙보다 구체적으로 */
html body.page-admin #boardModeBtns button.primary:disabled,html body.page-admin #boardModeBtns button.secondary:disabled,html body.page-admin #boardModeBtns button.danger:disabled,html body.page-admin #boardModeBtns button.save-on:disabled,html body.page-admin #reqModeBtns button.primary:disabled,html body.page-admin #reqModeBtns button.secondary:disabled,html body.page-admin #reqModeBtns button.danger:disabled{background:#f1f5f9 !important;border:1px solid #e2e8f0 !important;color:#b6c0cc !important;box-shadow:none !important;cursor:not-allowed !important}
html body.page-admin #boardModeBtns button.save-on:not(:disabled){background:#16a34a !important;border:1px solid #16a34a !important;color:#fff !important}
/* V4.5.0 새 세트 만들기: 목록을 창 높이만큼 길게, 줄은 촘촘하게(2026-09-27 오너 "최대한 스크롤없게 한번에") */
html body .sets-sheet{height:94vh !important;max-height:94vh !important;display:flex !important;flex-direction:column !important}
html body .sets-sheet .sets-body{flex:1 1 auto !important;min-height:0 !important;display:flex !important;flex-direction:column !important}
html body .sets-sheet #setsRoot{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
html body .sets-sheet #setsRoot .toolbar{margin-bottom:8px !important}
html body .sets-sheet #setsRoot .cat-bar{height:48px !important;margin-bottom:6px !important}
html body .sets-sheet #setsRoot .cat-bar .cat-btn{min-height:38px !important;padding:0 12px !important;font-size:15px !important}
html body .sets-sheet #setItems{flex:1 1 auto !important;height:auto !important;min-height:0 !important}
html body .sets-sheet #setItems .master-scroll{height:100% !important;max-height:none !important}
html body .sets-sheet #setItems td,html body .sets-sheet #setItems th{padding-top:3px !important;padding-bottom:3px !important;height:40px !important;font-size:15px !important}
html body .sets-sheet #setItems .qty-stepper{--qstep-h:34px;height:34px !important}
html body .sets-sheet #setItems .qty-stepper .step,html body .sets-sheet #setItems .qty-stepper input{height:34px !important;min-height:34px !important;font-size:17px !important}
html body .sets-sheet #setsRoot .quick-actionbar{flex:0 0 auto;margin-top:8px !important}
html body .sets-sheet #setItems,html body .sets-sheet #setItems .master-scroll{height:calc(94vh - 440px) !important;min-height:240px !important;max-height:none !important}
html body .sets-sheet .sets-body{overflow:hidden !important}
/* 세트 저장·세트 관리 버튼 색을 다르게(2026-09-27 오너) */
html body.page-admin .set-pick .set-manage.set-save{background:#16a34a !important;border:1px solid #16a34a !important;color:#fff !important}
html body.page-admin .set-pick .set-manage.set-admin{background:#475569 !important;border:1px solid #475569 !important;color:#fff !important}
html body.page-admin .sets-sheet #setItems,html body.page-admin .sets-sheet #setItems .master-scroll.set-scroll.fit-scroll.quick-scroll{height:calc(94vh - 440px) !important;min-height:240px !important;max-height:calc(94vh - 440px) !important}
html body.page-admin .sets-sheet #setItems{flex:0 0 auto !important;overflow:visible !important}
html body.page-admin .sets-sheet #setsRoot > *{flex-shrink:0 !important}
html body.page-admin .sets-sheet #setItems,html body.page-admin .sets-sheet #setItems .master-scroll.set-scroll.fit-scroll.quick-scroll{height:calc(94vh - 470px) !important;max-height:calc(94vh - 470px) !important}
/* V4.5.1 담은 품목: "1개"를 한 줄로(2026-09-27 오너 "1개가 왜 위아래냐") */
html body .pk-qty .pk-n{display:inline-flex;align-items:baseline;gap:2px;white-space:nowrap}
html body .pk-qty .pk-n i{font-size:14px}
/* V4.5.2 주문조회: 내가 넣은 견적 펼쳐 보기 */
html body .mo-mine{margin-top:10px}
html body .mo-mine summary{display:block;padding:14px;border-radius:12px;background:#0071e3;color:#fff;font-size:17px;font-weight:800;text-align:center;cursor:pointer;list-style:none}
html body .mo-mine summary::-webkit-details-marker{display:none}
html body .mo-mine[open] summary{background:#475569}
html body .mo-lines{margin-top:10px;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}
html body .mo-line{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid #eef2f7;font-size:16px}
html body .mo-line:first-child{border-top:0}
html body .mo-line b{display:block}
html body .mo-line small{display:block;color:#be185d;font-weight:700}
html body .mo-line em{font-style:normal;font-weight:800;white-space:nowrap}
/* V4.5.3 임대 종료 임박 색 */
html body .field.rent-warn5 input{background:#fef9c3 !important;border-color:#facc15 !important}
html body .field.rent-warn3 input{background:#ffedd5 !important;border-color:#fb923c !important}
html body .field.rent-over input{background:#fee2e2 !important;border-color:#f87171 !important}
html body .rent-left{margin-left:6px;padding:1px 7px;border-radius:999px;font-size:12px;font-weight:800;color:#fff;background:#ca8a04}
html body .rent-warn3 .rent-left{background:#ea580c}
html body .rent-over .rent-left{background:#dc2626}
/* V4.5.4 견적서입력 아래 금액 줄: 칸마다 가운데 정렬(2026-09-27 오너) */
html body.page-admin .quick-actionbar .tot{display:flex !important;flex-direction:column !important;align-items:center !important;justify-content:center !important;text-align:center !important}
html body.page-admin .quick-actionbar .tot span,html body.page-admin .quick-actionbar .tot b{text-align:center !important;width:100%}
/* V4.5.5 현황판 상태 칸은 손으로 안 고른다 — 마우스 올려도 테두리·손가락 없음(수정요청 칸만 누를 수 있음) (2026-09-27 오너) */
html body.page-admin .board-table td.cell-ops,html body.page-admin .board-table td.cell-ops .ops-chip{cursor:default !important}
html body.page-admin .board-table td.cell-ops:hover .ops-chip{box-shadow:none !important}
html body.page-admin .board-table td.cell-ops .ops-chip.ops-rev{cursor:pointer !important}
html body.page-admin .board-table td.cell-ops:hover .ops-chip.ops-rev{box-shadow:0 0 0 2px #fca5a5 !important}
/* V4.5.6 [거래처에 발주넣기]만 마우스 올리면 하얘지던 옛 hover 규칙 덮기 — 아래 버튼 줄은 모두 같은 방식으로 살짝 진해진다 */
html body.page-admin .quote-actionbar button.action-vendor:hover{background:#3f6f8f !important;border-color:#3f6f8f !important;color:#fff !important}
html body.page-admin .quote-actionbar > button:hover:not(:disabled){filter:brightness(.9)}
/* V4.5.7 견적서입력 아래 금액 줄: 묶음을 가운데에, 칸 폭을 똑같이, 글자 줄을 맞춤(2026-09-28 오너) */
html body.page-admin .quick-actionbar .qab-inner{display:flex !important;align-items:center !important}
html body.page-admin .quick-actionbar #qTotals.quick-totals{flex:1 1 auto !important;display:flex !important;justify-content:center !important;align-items:stretch !important;gap:0 !important;min-width:0}
html body.page-admin .quick-actionbar #qTotals .tot{flex:0 0 150px !important;width:150px !important;padding:0 8px !important;border-left:1px solid #e2e8f0 !important;gap:4px !important;justify-content:center !important}
html body.page-admin .quick-actionbar #qTotals .tot:first-child{border-left:0 !important;flex-basis:90px !important;width:90px !important}
html body.page-admin .quick-actionbar #qTotals .tot span{font-size:13px !important;line-height:18px !important;height:18px}
html body.page-admin .quick-actionbar #qTotals .tot b{font-size:19px !important;line-height:28px !important;height:28px}
html body.page-admin .quick-actionbar #qTotals .tot.grand b{font-size:24px !important}
html body.page-admin .quick-actionbar #qTotals .tot.grand{flex-basis:180px !important;width:180px !important}
@media (max-width:1500px){
html body.page-admin .quick-actionbar .qab-inner{flex-wrap:nowrap !important}
html body.page-admin .quick-actionbar #qTotals .tot{flex-basis:112px !important;width:112px !important}
html body.page-admin .quick-actionbar #qTotals .tot:first-child{flex-basis:70px !important;width:70px !important}
html body.page-admin .quick-actionbar #qTotals .tot.grand{flex-basis:140px !important;width:140px !important}
}
/* V4.5.8 견적서·발주서 창의 [이미지 복사]·[문구 복사]를 색 버튼으로(2026-09-28 오너) */
html body button.btn-copy-img{background:#7c3aed !important;border:1px solid #7c3aed !important;color:#fff !important;font-weight:800 !important}
html body button.btn-copy-text{background:#0d9488 !important;border:1px solid #0d9488 !important;color:#fff !important;font-weight:800 !important}
html body button.btn-copy-img:hover,html body button.btn-copy-text:hover{filter:brightness(.9)}
/* V4.6.0 고객 현장 주소 검색: 검색칸 하나 + 결과 목록 */
html body .address-sheet .addr-q{display:flex;gap:8px;padding:12px 14px;border-bottom:1px solid #e5e7eb}
html body .address-sheet .addr-q input{flex:1 1 auto;min-width:0;height:52px;padding:0 14px;font-size:18px;border:2px solid #2563eb;border-radius:12px}
html body .address-sheet .addr-q button{flex:0 0 auto;height:52px;padding:0 20px;font-size:18px;font-weight:800;border-radius:12px}
html body .address-sheet .addr-hint{padding:18px 16px;font-size:16px;color:#475569;line-height:1.5}
/* V4.6.1 규격은 숫자든 구성(수직2/횡대4)이든 전부 분홍으로 통일(2026-09-28 오너) */
html body .p-comp,html body .page-customer .p-sub .p-comp,html body .page-customer .pk-main small .p-comp,
html body .qd-request .qd-spec .p-comp,html body #bt3dLayer .b3-row .nm small b,html body #ab3dLayer .a3-row .nm small b{color:#db2777 !important;font-weight:800 !important}
/* V4.6.2 고객 견적서 확인 표 정리: 품명 속 숫자(800)는 품명과 같은 검정, 규격은 칸에서 분홍. 품명 칸을 넓혀 줄바꿈 줄임(2026-09-28 오너) */
html body .qd-request .p-size-in,html body .qd .qd-items .p-size-in{color:inherit !important;font-weight:inherit !important}
html body .qd-request .qd-items col.qd-c-no{width:6%}
html body .qd-request .qd-items col.qd-c-spec{width:15%}
html body .qd-request .qd-items col.qd-c-type{width:8%}
html body .qd-request .qd-items col.qd-c-qty{width:8%}
html body .qd-request .qd-items col.qd-c-unit{width:13%}
html body .qd-request .qd-items col.qd-c-line{width:14%}
html body .qd-request .qd-items td.qd-spec,html body .qd-request .qd-items td:nth-child(3){white-space:nowrap}
html body .qd-request .qd-items td:nth-child(4),html body .qd-request .qd-items th:nth-child(4),html body .qd-request .qd-items td:nth-child(5),html body .qd-request .qd-items th:nth-child(5){text-align:center !important}
/* V4.6.3 주문조회 카드: 통째로 누르기 */
html body .mo-item.mo-tap{cursor:pointer;border:2px solid #bfdbfe !important;transition:background .15s}
html body .mo-item.mo-tap:active{background:#eff6ff}
html body .mo-kind{display:inline-block;margin-bottom:6px;padding:2px 10px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:13px;font-weight:800}
html body .mo-sent .mo-kind{background:#dcfce7;color:#15803d}
html body .mo-item .mo-go{margin-top:8px;font-size:15px;font-weight:800;color:#1d4ed8;text-align:right}
html body .mo-item .mo-detail,html body .mo-item .mo-g-close{display:none}
html body .mo-item.open .mo-detail{display:block;margin-top:10px}
html body .mo-item.open .mo-g-open{display:none}
html body .mo-item.open .mo-g-close{display:inline}
/* V4.6.5 접수 완료 화면 버튼 */
html body .success .success-actions{display:flex;flex-direction:column;gap:10px;max-width:360px;margin:28px auto 0}
html body .success .success-actions button{height:54px;font-size:18px;font-weight:800;border-radius:12px}
/* V4.6.6 등급 할인율을 필터 옆 줄로 */
html body.page-admin .prod-row-tools .grade-rate{margin-left:12px !important;flex:0 0 auto}
html body.page-admin .prod-row-top .prod-cats{flex:1 1 auto;min-width:0}
/* V4.6.7 고객 정보 DB: 네 버튼·검색 옆·추가/삭제 칸 좁게·체크 칸 */
html body.page-admin #customerModeBtns button{flex:0 0 96px !important;width:96px !important;height:44px !important;padding:0 !important}
html body.page-admin #customerModeBtns button.primary:disabled,html body.page-admin #customerModeBtns button.secondary:disabled,html body.page-admin #customerModeBtns button.danger:disabled,html body.page-admin #customerModeBtns button.save-on:disabled{background:#f1f5f9 !important;border:1px solid #e2e8f0 !important;color:#b6c0cc !important;box-shadow:none !important;cursor:not-allowed !important}
html body.page-admin #customerModeBtns button.save-on:not(:disabled){background:#16a34a !important;border:1px solid #16a34a !important;color:#fff !important}
html body.page-admin #customerSearch{width:280px !important;max-width:40vw;margin-left:10px}
html body.page-admin .cust-scroll .rowops-in{gap:4px !important}
html body.page-admin .cust-scroll .rowop{padding:2px 6px !important;font-size:12px !important;min-height:26px !important}
html body.page-admin .cust-scroll .cell-pick{text-align:center}
html body.page-admin .cust-scroll .cell-pick input{width:18px;height:18px}
html body.page-admin .cust-scroll th.cell-pick,html body.page-admin .cust-scroll td.cell-pick,html body.page-admin .cust-scroll td.cell-rowops{position:static !important;left:auto !important}
html body.page-admin .cust-scroll thead th.cell-pick,html body.page-admin .cust-scroll thead th.cell-rowops{position:sticky !important;top:0 !important;left:auto !important}
/* V4.6.8 견적서(보기 창·이미지 복사)는 A4 한 장처럼 통째로 — 품목표 안에 스크롤이 생기지 않게(2026-09-28 오너) */
html body .qimg-stage .qd-items-wrap,html body #qpvBack .qd-items-wrap{overflow:visible !important;max-height:none !important;height:auto !important}
html body .qimg-stage .qd-items,html body #qpvBack .qd-items{width:100% !important;min-width:0 !important;table-layout:fixed !important}
html body .qimg-stage .qd-items th,html body .qimg-stage .qd-items td,html body #qpvBack .qd-items th,html body #qpvBack .qd-items td{white-space:normal !important;word-break:keep-all;overflow-wrap:anywhere}
html body .qimg-stage *{scrollbar-width:none}
html body .qimg-stage .quote-paper{max-height:none !important;overflow:visible !important}
/* V4.7.0 휴지통 */
html body.page-admin #trashBtns button{flex:0 0 auto;min-width:110px;height:44px}
html body.page-admin #trashBtns button:disabled{background:#f1f5f9 !important;border:1px solid #e2e8f0 !important;color:#b6c0cc !important}
html body.page-admin .trash-kind{display:inline-block;padding:2px 10px;border-radius:999px;background:#eef2ff;color:#3730a3;font-weight:800;font-size:13px}
html body.page-admin .trash-table th.cell-pick,html body.page-admin .trash-table td.cell-pick{position:static !important;left:auto !important}
html body.page-admin .trash-table thead th{position:sticky !important;top:0 !important;left:auto !important}
/* V4.7.6 견적 상세 진행 막대 */
html body.page-admin .deal-flow{position:relative;margin:6px 0 14px;padding:14px 10px 8px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}
html body.page-admin .deal-flow .df-track{position:absolute;left:calc(10px + (100% - 20px)/var(--df-n,9)/2);right:calc(10px + (100% - 20px)/var(--df-n,9)/2);top:29px;height:6px;border-radius:99px;background:#e5e7eb}
html body.page-admin .deal-flow .df-fill{height:100%;width:var(--df-pct);border-radius:99px;background:linear-gradient(90deg,#2563eb,#16a34a);transition:width .6s ease}
html body.page-admin .deal-flow .df-steps{position:relative;display:flex;list-style:none;margin:0;padding:0}
html body.page-admin .deal-flow .df-step{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center}
html body.page-admin .deal-flow .df-dot{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;border:3px solid #cbd5e1;color:#94a3b8;font-weight:800;font-size:15px;z-index:1}
html body.page-admin .deal-flow .df-step b{font-size:14px;color:#94a3b8;font-weight:700;white-space:nowrap}
html body.page-admin .deal-flow .df-step small{font-size:12px;color:#64748b}
html body.page-admin .deal-flow .df-step.done .df-dot{background:#16a34a;border-color:#16a34a;color:#fff}
html body.page-admin .deal-flow .df-step.done b{color:#166534}
html body.page-admin .deal-flow .df-step.cur .df-dot{border-color:#2563eb;color:#2563eb;box-shadow:0 0 0 5px rgba(37,99,235,.15)}
html body.page-admin .deal-flow .df-step.cur b{color:#1d4ed8;font-weight:800}
html body.page-admin .deal-flow .df-now{color:#2563eb !important;font-weight:800}
html body.page-admin .deal-flow .df-step.warn .df-dot{background:#f59e0b;border-color:#f59e0b;color:#fff}
html body.page-admin .deal-flow .df-step.warn b{color:#b45309;font-weight:800}
html body.page-admin .deal-flow.df-canceled{opacity:.55;filter:grayscale(1)}
html body.page-admin .deal-flow .df-cancel-tag{position:absolute;right:12px;top:8px;font-weight:800;color:#dc2626;filter:none}
@media (max-width:700px){html body.page-admin .deal-flow .df-step b{font-size:11px}html body.page-admin .deal-flow .df-dot{width:26px;height:26px;font-size:12px}html body.page-admin .deal-flow .df-track{top:24px}}
/* V4.7.7 진행 막대 설명 말풍선 · 새 견적 N 표시 */
html body.page-admin .deal-flow .df-step{position:relative;cursor:help;outline:none}
html body.page-admin .deal-flow .df-step[data-tip]:hover::after,html body.page-admin .deal-flow .df-step[data-tip]:focus::after{
  content:attr(data-tip);position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);z-index:50;
  width:max-content;max-width:280px;padding:9px 12px;border-radius:10px;background:#0f172a;color:#fff;font-size:13px;font-weight:600;line-height:1.5;
  text-align:left;white-space:normal;box-shadow:0 8px 24px rgba(15,23,42,.25);pointer-events:none}
html body.page-admin .deal-flow .df-step.tip-l[data-tip]:hover::after,html body.page-admin .deal-flow .df-step.tip-l[data-tip]:focus::after{left:0;transform:none}
html body.page-admin .deal-flow .df-step.tip-r[data-tip]:hover::after,html body.page-admin .deal-flow .df-step.tip-r[data-tip]:focus::after{left:auto;right:0;transform:none}
html body.page-admin .board-table .row-more button{position:relative}
html body.page-admin .new-n{position:absolute;top:-7px;right:-7px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:#dc2626;color:#fff;font-size:11px;font-weight:900;line-height:18px;text-align:center;box-shadow:0 0 0 2px #fff;animation:newNPulse 1.6s ease-in-out infinite}
@keyframes newNPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}
/* V4.7.9 폰(좁은 화면) 정리: 진행 막대 글자 겹침·날짜 줄바꿈, 아래 버튼 2열 꽉 채우기 */
@media (max-width:700px){
  html body.page-admin .deal-flow{padding:10px 4px 6px}
  html body.page-admin .deal-flow .df-step small:not(.df-now){display:none}
  html body.page-admin .deal-flow .df-step b{font-size:10.5px !important;letter-spacing:-.4px;white-space:normal;word-break:keep-all;line-height:1.15;max-width:100%}
  html body.page-admin .deal-flow .df-dot{width:24px !important;height:24px !important;font-size:11px !important;border-width:2px}
  html body.page-admin .deal-flow .df-track{top:22px !important;height:4px}
  html body.page-admin .deal-flow .df-now{font-size:10px !important}
  html body.page-admin .quote-actionbar{display:grid !important;grid-template-columns:1fr 1fr !important;gap:8px !important;padding:10px !important}
  html body.page-admin .quote-actionbar > button{width:100% !important;min-width:0 !important;max-width:none !important;height:48px !important;padding:0 6px !important;font-size:14px !important;white-space:normal !important;line-height:1.2}
}
/* V4.7.9 폰: 진행 막대는 번호만, 지금 단계 이름만 크게(9개 글자가 한 줄에 안 들어간다). 단계를 누르면 설명 */
@media (max-width:700px){
  html body.page-admin .deal-flow .df-step b{display:none}
  html body.page-admin .deal-flow .df-step.cur b,html body.page-admin .deal-flow .df-step.warn b{display:block;position:absolute;top:30px;left:50%;transform:translateX(-50%);white-space:nowrap !important;font-size:12px !important;letter-spacing:0}
  html body.page-admin .deal-flow .df-step.cur .df-now{position:absolute;top:46px;left:50%;transform:translateX(-50%);white-space:nowrap}
  html body.page-admin .deal-flow{padding-bottom:40px !important}
  html body.page-admin .deal-flow .df-step.tip-l.cur b,html body.page-admin .deal-flow .df-step.tip-l.cur .df-now{left:0;transform:none}
  html body.page-admin .deal-flow .df-step.tip-r.cur b,html body.page-admin .deal-flow .df-step.tip-r.cur .df-now{left:auto;right:0;transform:none}
  html body.page-admin label.req-all{white-space:nowrap;flex:0 0 auto}
}
@media (max-width:700px){
  html body.page-admin #reqModeBtns button,html body.page-admin #boardModeBtns button,html body.page-admin #customerModeBtns button{flex:0 0 70px !important;width:70px !important;min-width:70px !important;max-width:70px !important;font-size:14px !important}
}
html body.page-admin .new-n.conf{background:#16a34a;min-width:30px;font-size:10.5px;right:-12px}
/* V4.8.2 설정 화면 탭 */
html body.page-admin .set-page{max-width:1200px}
html body.page-admin .set-tabs{position:sticky;top:0;z-index:5;display:flex;gap:6px;padding:8px;margin-bottom:14px;background:#f1f5f9;border-radius:12px;overflow-x:auto}
html body.page-admin .set-tab{flex:0 0 auto;height:42px;padding:0 18px;border-radius:10px;border:0;background:transparent;color:#475569;font-size:15px;font-weight:700;white-space:nowrap}
html body.page-admin .set-tab.active{background:#fff;color:#1d4ed8;box-shadow:0 1px 3px rgba(15,23,42,.12)}
html body.page-admin .set-pane{padding:4px 2px}
html body.page-admin .set-title{font-size:18px;font-weight:800;color:#0f172a;margin:4px 0 14px}
html body.page-admin .set-title small{font-size:13px;font-weight:500;color:#64748b;margin-left:8px}
html body.page-admin .set-note{margin-top:8px;font-size:13px}
html body.page-admin .set-check{display:flex !important;align-items:center;gap:8px;margin-top:16px;font-size:15px}
html body.page-admin .set-btnrow{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
html body.page-admin .set-btnrow button{height:42px;padding:0 16px}
html body.page-admin .set-foot{position:sticky;bottom:0;margin-top:18px;padding:12px 0;background:linear-gradient(transparent,#fff 30%);display:flex;justify-content:flex-end}
html body.page-admin .set-foot button{height:46px;padding:0 28px;font-size:16px}
html body.page-admin .set-page .stamp-row{display:flex;gap:16px;align-items:flex-start}
html body.page-admin .set-page .stamp-view{width:120px;height:120px;flex:0 0 120px;display:flex;align-items:center;justify-content:center;border:1px dashed #cbd5e1;border-radius:12px;background:#f8fafc}
html body.page-admin .set-page .stamp-view img{max-width:100%;max-height:100%}
html body.page-admin .set-page .vendor-box,html body.page-admin .set-page .freight-box{border:0 !important;padding:0 !important;background:transparent !important;margin:0 !important}
/* V4.8.3 견적데이터 상세 정리(2026-09-28 오너 "정신없고 정리가 안 된 느낌") — 칸·버튼은 그대로, 배치·간격만 */
html body.page-admin #detailPane .deal-flow{padding:8px 10px 6px !important;margin:4px 0 10px !important}
html body.page-admin #detailPane .deal-flow .df-dot{width:28px;height:28px;font-size:13px;border-width:2px}
html body.page-admin #detailPane .deal-flow .df-track{top:21px;height:5px}
html body.page-admin #detailPane .deal-flow .df-step b{font-size:13px}
html body.page-admin #detailPane .deal-flow .df-step small{font-size:11px}
html body.page-admin #detailPane .quote-view-status{display:inline-flex !important;margin:0 0 8px !important;padding:3px 10px !important;font-size:12px !important;border-radius:999px}
html body.page-admin #detailPane .estimate-fields{margin-bottom:10px !important}
/* 운임비·보증금·멸실료: 회색 큰 상자 대신 표 바로 아래 한 줄 */
html body.page-admin #detailPane .ed-tools{display:flex !important;align-items:center !important;justify-content:flex-start !important;gap:10px !important;background:transparent !important;border:0 !important;box-shadow:none !important;padding:10px 0 !important;margin:0 !important;min-height:0 !important}
html body.page-admin #detailPane .ed-tools .ed-sp{display:none !important}
html body.page-admin #detailPane .ed-money{display:flex !important;flex-wrap:wrap !important;align-items:center !important;gap:8px 16px !important;margin:0 !important;padding:0 !important;background:transparent !important;border:0 !important;width:auto !important}
html body.page-admin #detailPane .ed-money .field{display:flex !important;flex-direction:row !important;align-items:center !important;gap:6px !important;margin:0 !important;width:auto !important;min-width:0 !important}
html body.page-admin #detailPane .ed-money .field label{margin:0 !important;font-size:14px !important;font-weight:700 !important;color:#334155 !important;white-space:nowrap}
html body.page-admin #detailPane .ed-money .field input{width:130px !important;height:40px !important;text-align:right !important;font-size:16px !important}
html body.page-admin #detailPane .ed-money .freight-btn{order:-1;height:40px !important;padding:0 14px !important;font-size:14px !important;border-radius:10px !important}
html body.page-admin #detailPane .ed-money .ship-sum{font-size:13px;color:#64748b;margin-left:-8px}
html body.page-admin #detailPane .ed-money .ship-sum:empty{display:none}
/* 합계 줄: 낮게 */
html body.page-admin #detailPane .totalbox{margin:4px 0 10px !important}
html body.page-admin #detailPane .totalbox > *{padding-top:8px !important;padding-bottom:8px !important}
/* 보낸 기록 + 고객 링크 한 줄 */
html body.page-admin #detailPane .ed-sent{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin:0 0 10px}
html body.page-admin #detailPane .ed-sent:empty{display:none}
html body.page-admin #detailPane .ed-sent .version-line,html body.page-admin #detailPane .ed-sent .plink{display:flex !important;align-items:center !important;gap:8px !important;margin:0 !important;padding:0 !important;flex:0 1 auto;min-width:0}
html body.page-admin #detailPane .ed-sent .plink{flex:1 1 360px}
html body.page-admin #detailPane .ed-sent .vl-help{display:none}
html body.page-admin #detailPane .ed-sent .version-chips{display:flex;flex-wrap:wrap;gap:6px}
html body.page-admin #detailPane .ed-sent .plink .copy-box{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px !important;padding:6px 10px !important}
html body.page-admin #detailPane .ed-sent b{white-space:nowrap;font-size:13px}
html body.page-admin #detailPane .ed-money .freight-btn{order:-1 !important}
html body.page-admin #detailPane .ed-money .field:first-of-type{order:0}
/* 견적데이터 왼쪽 목록은 폭이 좁다 — 수정·취소·삭제 버튼을 좁게(삭제가 잘리던 것) */
html body.page-admin #reqModeBtns button{flex:0 0 64px !important;width:64px !important;min-width:64px !important;max-width:64px !important;font-size:14px !important}
html body.page-admin #reqModeBtns{flex-wrap:nowrap !important;gap:6px !important}
/* V4.8.4 상태 표시는 누르는 버튼이 아니다 */
html body.page-admin .stage-chip.static{cursor:default !important;pointer-events:none}
html body.page-admin .quote-actionbar > button.action-paid{background:#16a34a !important;border:1px solid #16a34a !important;color:#fff !important}
html body.page-admin .quote-actionbar > button.action-cancel{background:#fff !important;border:1px solid #fca5a5 !important;color:#dc2626 !important}
/* V4.8.5 폰 견적서 머리 정리(2026-09-28 오너 "위에 쓸데없이 공간낭비") — 로고·상호 | 견 적 서 한 줄, 번호·일자 한 줄 */
@media (max-width:560px){
  html body .qd.qd-compact .qd-head{display:grid !important;grid-template-columns:1fr auto !important;align-items:center !important;gap:4px 10px !important;padding-bottom:8px !important;margin-bottom:10px !important}
  html body .qd.qd-compact .qd-brand{gap:8px !important}
  html body .qd.qd-compact .qd-brand .brand-mark{width:38px !important;height:38px !important;flex:0 0 38px !important}
  html body .qd.qd-compact .qd-brand b{font-size:17px !important}
  html body .qd.qd-compact .qd-title{font-size:24px !important;letter-spacing:6px !important;margin:0 !important;text-align:right}
  html body .qd.qd-compact .qd-meta{grid-column:1 / -1;width:100% !important;margin:2px 0 0 !important}
  html body .qd.qd-compact .qd-meta tr{display:inline-flex;align-items:center;gap:6px;margin-right:14px}
  html body .qd.qd-compact .qd-meta th,html body .qd.qd-compact .qd-meta td{padding:0 !important;font-size:13px !important;text-align:left !important;width:auto !important}
  html body .qd.qd-compact .qd-to-name{font-size:20px !important;padding-bottom:6px !important;margin-bottom:6px !important}
  html body .qd.qd-compact .qd-kv th,html body .qd.qd-compact .qd-kv td{padding:3px 0 !important;font-size:14px !important}
  html body .qd.qd-compact .qd-kv th{width:72px !important}
  html body .qd.qd-compact .qd-lead{margin:6px 0 10px !important;font-size:13px !important}
  html body .qd.qd-compact .qd-from th,html body .qd.qd-compact .qd-from td{padding:5px 6px !important;font-size:13px !important}
  html body .qd.qd-compact .qd-parties{gap:10px !important;margin-bottom:10px !important}
}
/* V4.8.6 아래 버튼: 지금 할 일 하나(크게) + 견적서 보기 · 거래처 발주 · 더보기 */
html body.page-admin #detailPane .smart-bar > button{height:46px !important;min-width:0 !important;padding:0 18px !important;font-size:15px !important;filter:none !important;opacity:1 !important}
html body.page-admin #detailPane .smart-bar > button.act-next{min-width:220px !important;font-size:16px !important;font-weight:800 !important}
html body.page-admin #detailPane .smart-bar > button.action-next{background:#2563eb !important;border:1px solid #2563eb !important;color:#fff !important}
html body.page-admin #detailPane .smart-bar > button.action-paid{background:#16a34a !important;border:1px solid #16a34a !important;color:#fff !important}
html body.page-admin #detailPane .smart-bar > button.action-preview{background:#fff !important;border:1px solid #c7d2fe !important;color:#3730a3 !important}
html body.page-admin #detailPane .smart-bar > button.action-vendor{background:#fff !important;border:1px solid #bae6fd !important;color:#0e7490 !important}
html body.page-admin #detailPane .smart-bar > button.action-more{background:#fff !important;border:1px solid #cbd5e1 !important;color:#334155 !important;margin-left:auto !important}
html body .cell-dd .dd-item.dd-danger{color:#dc2626 !important}
/* 운임비 줄 다시: 칸 좁게, 한 덩어리로 */
html body.page-admin #detailPane .ed-money{gap:6px 14px !important}
html body.page-admin #detailPane .ed-money .field input{width:100px !important;height:36px !important;font-size:15px !important;padding:0 8px !important}
html body.page-admin #detailPane .ed-money .field label{font-size:13px !important}
html body.page-admin #detailPane .ed-money .freight-btn{height:36px !important;padding:0 12px !important;font-size:13px !important}
html body.page-admin #detailPane .ed-money .ship-sum{margin-left:-10px !important;font-size:12px !important}
html body.page-admin #detailPane .ed-tools{padding:8px 0 6px !important}
/* V4.8.9 아래 버튼마다 자기 색(채움·흰 글자), 채도는 낮게 맞춤(2026-09-28 오너 "톤앤매너 지키면서 컬러는 다 다르게") */
html body.page-admin #detailPane .smart-bar > button{border-radius:10px !important;color:#fff !important;box-shadow:none !important}
html body.page-admin #detailPane .smart-bar > button.action-send{background:#2f6fde !important;border:1px solid #2f6fde !important}
html body.page-admin #detailPane .smart-bar > button.action-next{background:#5b5bd6 !important;border:1px solid #5b5bd6 !important}
html body.page-admin #detailPane .smart-bar > button.action-paid{background:#2f9e6a !important;border:1px solid #2f9e6a !important}
html body.page-admin #detailPane .smart-bar > button.action-preview{background:#8a63c9 !important;border:1px solid #8a63c9 !important;color:#fff !important}
html body.page-admin #detailPane .smart-bar > button.action-vendor{background:#2b8a9a !important;border:1px solid #2b8a9a !important;color:#fff !important}
html body.page-admin #detailPane .smart-bar > button.action-more{background:#6b7a90 !important;border:1px solid #6b7a90 !important;color:#fff !important}
html body.page-admin #detailPane .smart-bar > button:hover{filter:brightness(.93) !important}
/* V4.9.0 고객 견적서 맨 아래 닫기 */
html body .quote-close-row{max-width:900px;margin:18px auto 90px;padding:0 12px}
html body .quote-close-row .quote-close{width:100%;height:52px;border-radius:12px;background:#64748b;color:#fff;font-size:17px;font-weight:800;border:0}
/* V4.9.1 진행 변화 반짝임 */
html body.page-admin .df-news{display:flex;align-items:center;gap:8px;margin:4px 0 8px;padding:10px 14px;border-radius:12px;background:#ecfdf5;border:1px solid #86efac;color:#14532d;font-size:15px;animation:dfNewsIn .5s ease}
html body.page-admin .df-news b{color:#15803d}
html body.page-admin .df-news-dot{width:10px;height:10px;border-radius:50%;background:#16a34a;animation:dfBlink 1s ease-in-out infinite}
html body.page-admin .deal-flow .df-step.df-new .df-dot{animation:dfGlow 1.2s ease-in-out infinite}
html body.page-admin .deal-flow .df-step.df-new b{color:#15803d !important}
html body.page-admin .board-table tr.row-flash td{animation:rowFlash 1.6s ease-in-out 4}
@keyframes dfGlow{0%,100%{box-shadow:0 0 0 0 rgba(22,163,74,.55)}50%{box-shadow:0 0 0 10px rgba(22,163,74,0)}}
@keyframes dfBlink{0%,100%{opacity:1}50%{opacity:.25}}
@keyframes dfNewsIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes rowFlash{0%,100%{background:inherit}50%{background:#dcfce7}}
/* V4.9.2 고객 결제 칸: 계좌이체 | 카드결제 두 덩어리 */
html body .pay-box.pay-box2{padding:14px !important;text-align:left !important}
html body .pay-box2 .pay-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:0 4px 12px;border-bottom:1px solid #fde2c4;margin-bottom:12px}
html body .pay-box2 .pay-top span{font-size:16px;color:#7c4a14;font-weight:700}
html body .pay-box2 .pay-top b{font-size:26px;color:#0f172a;font-weight:900}
html body .pay-box2 .pay-ways{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}
html body .pay-box2 .pay-way{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:12px 14px}
html body .pay-box2 .pay-way-h{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:800;color:#0f172a;margin-bottom:10px}
html body .pay-box2 .pay-no{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:13px;color:#fff;background:#2f6fde}
html body .pay-box2 .pay-way-card .pay-no{background:#2f9e6a}
html body .pay-box2 .pay-acct-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
html body .pay-box2 .pay-acct-line b{font-size:19px;font-weight:900;color:#0f172a;word-break:keep-all}
html body .pay-box2 .pay-copy{min-height:38px !important;height:38px !important;padding:0 16px !important;font-size:15px !important;margin-left:auto}
html body .pay-box2 .pay-name{margin-top:8px;font-size:14px;color:#7c4a14;line-height:1.5}
html body .pay-box2 .pay-link{display:block;margin:0 0 10px !important;padding:13px !important;text-align:center;font-size:17px !important;background:#2f9e6a !important;border-radius:10px}
html body .pay-box2 .pay-qr-mini{display:flex;align-items:center;gap:12px}
html body .pay-box2 .pay-qr-mini img{width:110px;height:110px;flex:0 0 110px;border:1px solid #e5e7eb;border-radius:10px;padding:4px;background:#fff}
html body .pay-box2 .pay-qr-mini span{font-size:13px;color:#475569;line-height:1.5}
/* V4.9.3 단계별 버튼 색(채움·낮은 채도) */
html body.page-admin #detailPane .smart-bar > button.action-confirm{background:#3d7f86 !important;border:1px solid #3d7f86 !important;color:#fff !important}
html body.page-admin #detailPane .smart-bar > button.action-dispatch{background:#6b7fa6 !important;border:1px solid #6b7fa6 !important;color:#fff !important}
html body.page-admin #detailPane .smart-bar > button.action-ship{background:#b7792f !important;border:1px solid #b7792f !important;color:#fff !important}
html body.page-admin #detailPane .smart-bar > button.action-guide{background:#7a8aa0 !important;border:1px solid #7a8aa0 !important;color:#fff !important}
html body.page-admin #detailPane .smart-bar > button.action-return{background:#8b5fbf !important;border:1px solid #8b5fbf !important;color:#fff !important}
html body.page-admin #detailPane .smart-bar > button.action-finish{background:#334155 !important;border:1px solid #334155 !important;color:#fff !important}
html body.page-admin #detailPane .smart-bar > button.action-cancel{background:#fff !important;border:1px solid #f1b4b4 !important;color:#c24141 !important;margin-left:auto !important}
/* V4.9.4 견적데이터 목록: 진행 중 / 종료·취소 탭 + 작은 검색 */
html body.page-admin .req-tabs{display:flex;gap:4px;padding:8px 8px 0}
html body.page-admin .req-tab{flex:1 1 0;height:38px;border:0;border-radius:10px 10px 0 0;background:#eef2f7;color:#64748b;font-size:14px;font-weight:700}
html body.page-admin .req-tab.active{background:#fff;color:#1d4ed8;box-shadow:inset 0 -3px 0 #2563eb}
html body.page-admin .quote-workspace .admin-search{padding:8px !important}
html body.page-admin .quote-workspace .admin-search-row{display:block !important}
html body.page-admin .quote-workspace #requestSearch{width:100% !important;height:36px !important;font-size:14px !important}
/* V4.9.6 확인·선택 창 다듬기(2026-09-28 오너 "썰렁해, 컬러 살짝") — 모든 confirm-sheet 공통 */
html body .modal-back .confirm-sheet{border-radius:20px !important;overflow:hidden !important;padding:0 !important;box-shadow:0 24px 60px rgba(15,23,42,.28) !important}
html body .modal-back .confirm-sheet .confirm-head{margin:0 !important;padding:18px 22px 14px !important;font-size:19px !important;font-weight:800 !important;color:#0f172a;background:linear-gradient(135deg,#eef4ff,#f5f0ff);border-bottom:1px solid #e5e9f5}
html body .modal-back .confirm-sheet .confirm-body{padding:18px 22px !important;font-size:15px;line-height:1.6;color:#334155;white-space:pre-line}
html body .modal-back .confirm-sheet .confirm-actions{padding:12px 22px 18px !important;margin:0 !important;background:#f8fafc;border-top:1px solid #eef2f7;display:flex;justify-content:flex-end;gap:8px}
html body .modal-back .confirm-sheet .confirm-actions button{height:44px;min-width:96px;border-radius:12px;font-weight:800}
html body .qqc-sheet .confirm-body{display:grid;gap:12px;white-space:normal}
html body .qqc-opt{display:block;width:100%;text-align:left;padding:16px 18px !important;border-radius:16px !important;border:1.5px solid #dbe4f3 !important;background:#fff !important;transition:transform .12s,box-shadow .12s,border-color .12s}
html body .qqc-opt:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(37,99,235,.12);border-color:#93b4f5 !important}
html body .qqc-opt b{display:flex;align-items:center;gap:10px;font-size:17px;color:#0f172a}
html body .qqc-opt span{display:block;margin-top:6px;padding-left:38px;font-size:14px;color:#64748b}
html body .qqc-opt em{display:block;margin-top:6px;padding-left:38px;font-style:normal;font-size:13px;font-weight:700;color:#d97706}
html body .qqc-ico{width:28px;height:28px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;font-style:normal;font-size:15px}
html body .qqc-quote .qqc-ico{background:#e0ebff}
html body .qqc-fill .qqc-ico{background:#ecfdf5}
html body .qqc-quote{border-left:5px solid #2f6fde !important}
html body .qqc-fill{border-left:5px solid #2f9e6a !important}
html body .qqc-opt:disabled{opacity:.6;cursor:not-allowed}
/* V4.9.7 고객 화면 확인창(카톡 안 브라우저용) */
/* 고객 [더 쓸게요(연장)] 기간 고르기(2026-10-03) — 큰 버튼 넷, 두 줄 */
html body .xt-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px 14px}
html body .xt-opt{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:64px;border:1.5px solid #cbd5e1;border-radius:14px;background:#fff;color:#0f172a;cursor:pointer}
html body .xt-opt b{font-size:17px;font-weight:800}
html body .xt-opt small{font-size:13px;color:#64748b}
html body .xt-opt:active{background:#eff6ff;border-color:#1e3a5f}
html body .xt-msg{padding:0 18px 8px;color:#dc2626;font-size:14px}
html body .xt-msg:empty{display:none}
html body .cust-act .ca-btn.ca-ext{background:#fff !important;color:#1e3a5f !important;border:1.5px solid #1e3a5f !important}
html body .mo-item .mo-extend{display:block;width:100%;height:44px;margin-top:8px;border-radius:10px;border:1.5px solid #1e3a5f;background:#fff;color:#1e3a5f;font-size:16px;font-weight:800}
html body .qc-back{position:fixed;inset:0;z-index:99999;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:18px}
html body .qc-card{width:100%;max-width:380px;background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 24px 60px rgba(15,23,42,.3)}
html body .qc-title{padding:18px 20px 8px;font-size:19px;font-weight:800;color:#0f172a}
html body .qc-msg{padding:0 20px 18px;font-size:15px;line-height:1.6;color:#475569}
html body .qc-btns{display:flex;gap:8px;padding:12px 16px 16px;background:#f8fafc;border-top:1px solid #eef2f7}
html body .qc-btns button{flex:1;height:50px;border-radius:12px;font-size:16px;font-weight:800;border:0}
html body .qc-no{background:#e2e8f0;color:#334155}
html body .qc-ok{background:#1e3a5f;color:#fff}
/* V4.9.8 버튼 통일(2026-09-28 오너 "각 기능과 버튼 디자인과 컬러는 모두 통일") — 창 아래 버튼줄 전부 같은 크기·같은 색 규칙
   닫기·취소 = 흰 바탕 회색 테두리 · 주 동작 = 파랑 · 위험 = 빨강 · 이미지 복사 = 보라 · 문구 복사 = 청록 */
html body .qpv-actions button,html body .vo-actions button,html body .confirm-actions button,html body .lk-actions button,html body .qc-btns button{height:46px !important;min-height:46px !important;padding:0 20px !important;border-radius:12px !important;font-size:15px !important;font-weight:800 !important;box-shadow:none !important;filter:none}
html body .qpv-actions button:hover,html body .vo-actions button:hover,html body .confirm-actions button:hover,html body .lk-actions button:hover{filter:brightness(.94)}
html body .qpv-actions button.primary,html body .vo-actions button.primary,html body .confirm-actions button.primary,html body .lk-actions button.primary{background:#2f6fde !important;border:1px solid #2f6fde !important;color:#fff !important}
html body .qpv-actions button.danger,html body .confirm-actions button.danger{background:#dc2626 !important;border:1px solid #dc2626 !important;color:#fff !important}
html body button.btn-close,html body .qpv-actions button.secondary,html body .confirm-actions button.secondary,html body .lk-actions button.secondary,html body .qsc-actions #qscCancel{background:#fff !important;border:1px solid #cbd5e1 !important;color:#334155 !important}
html body .qpv-actions .btn-close,html body .vo-actions .btn-close{margin-right:auto !important}
html body button.btn-copy-img{background:#8a63c9 !important;border:1px solid #8a63c9 !important;color:#fff !important}
html body button.btn-copy-text{background:#2b8a9a !important;border:1px solid #2b8a9a !important;color:#fff !important}
html body .vo-actions{display:flex !important;gap:8px !important;align-items:center}
/* 고객 화면 버튼도 같은 규칙(높이 52·모서리 12) */
html body #quoteApp .qa-bar .btn,html body .quote-close-row .quote-close,html body .success .success-actions button{height:52px !important;border-radius:12px !important;font-size:16px !important;font-weight:800 !important}
html body .quote-close-row .quote-close{background:#fff !important;border:1px solid #cbd5e1 !important;color:#334155 !important}
html body .qc-no{background:#fff !important;border:1px solid #cbd5e1 !important;color:#334155 !important}
html body .qc-ok{background:#2f6fde !important;color:#fff !important}
/* V4.9.8 아래 버튼: 모두 같은 크기, 순서는 코드 순서 그대로(지금 할 일이 맨 앞) */
html body.page-admin #detailPane .smart-bar > button{order:0 !important;min-width:0 !important;height:46px !important;padding:0 20px !important;font-size:15px !important;font-weight:800 !important}
html body.page-admin #detailPane .smart-bar > button.act-next{min-width:0 !important;font-size:15px !important}
html body.page-admin #detailPane .smart-bar > button.action-cancel{order:9 !important}
/* 견적데이터 목록 탭: 파란 채움으로 지금 탭이 확실히 보이게 */
html body.page-admin .req-tabs{display:flex !important;gap:0 !important;margin:10px 10px 0 !important;padding:4px !important;background:#eef2f7 !important;border-radius:12px !important}
html body.page-admin .req-tab{flex:1 1 0 !important;height:38px !important;border:0 !important;border-radius:9px !important;background:transparent !important;color:#64748b !important;font-size:14px !important;font-weight:800 !important;box-shadow:none !important}
html body.page-admin .req-tab.active{background:#2563eb !important;color:#fff !important;box-shadow:0 2px 6px rgba(37,99,235,.35) !important}
/* V5.0.0 상태 표시 하나(제목·목록 공통) */
html body.page-admin .stage-one{border-radius:999px !important;font-weight:800 !important;white-space:nowrap}
html body.page-admin .stage-one.sl-open{background:#eef2ff !important;color:#3730a3 !important;border:1px solid #c7d2fe !important}
html body.page-admin .stage-one.sl-sent{background:#e0f2fe !important;color:#075985 !important;border:1px solid #bae6fd !important}
html body.page-admin .stage-one.sl-confirmed{background:#dcfce7 !important;color:#166534 !important;border:1px solid #86efac !important}
html body.page-admin .stage-one.sl-dispatch{background:#ede9fe !important;color:#5b21b6 !important;border:1px solid #c4b5fd !important}
html body.page-admin .stage-one.sl-paid{background:#d1fae5 !important;color:#065f46 !important;border:1px solid #6ee7b7 !important}
html body.page-admin .stage-one.sl-warn{background:#fef3c7 !important;color:#92400e !important;border:1px solid #fcd34d !important}
html body.page-admin .stage-one.sl-closed{background:#e2e8f0 !important;color:#334155 !important;border:1px solid #cbd5e1 !important}
html body.page-admin .stage-one.sl-cancel{background:#fee2e2 !important;color:#991b1b !important;border:1px solid #fca5a5 !important}
/* V5.0.1 계정관리 권한 묶음 */
html body.page-admin .user-card .perm-group{display:flex;align-items:flex-start;gap:12px;margin-top:10px;padding:10px 12px;border-radius:12px;background:#f8fafc;border:1px solid #e2e8f0}
html body.page-admin .user-card .perm-title{flex:0 0 auto;padding:6px 10px;border-radius:8px;background:#1e3a5f;color:#fff;font-size:13px;font-weight:800;white-space:nowrap}
html body.page-admin .user-card .perm-group .perm-row{flex:1 1 auto;margin:0 !important;padding:0 !important;border:0 !important}
/* V5.0.2 닫기 통일 · 버튼은 늘 색 있게(2026-09-28 오너 "위에는 ✕, 아래는 닫기, 버튼은 무조건 컬러")
   닫기 = 회청(#64748b) 채움 · 일반(보조) 버튼 = 옅은 파랑 채움 · 주 동작 파랑 · 위험 빨강 */
html body button.btn-close,html body .qpv-actions button.secondary,html body .confirm-actions button.secondary,html body .lk-actions button.secondary,html body .qsc-actions #qscCancel,html body .quote-close-row .quote-close,html body .qc-no{
  background:#64748b !important;border:1px solid #64748b !important;color:#fff !important;height:46px;min-width:96px;border-radius:12px !important;font-weight:800 !important}
html body button.btn-close:hover{filter:brightness(.92)}
html body .qpv-close,html body .vo-head .qpv-close{width:40px !important;height:40px !important;min-width:40px !important;padding:0 !important;border-radius:10px !important;background:#f1f5f9 !important;border:1px solid #e2e8f0 !important;color:#334155 !important;font-size:18px !important;font-weight:800 !important}
html body .vo-head{display:flex;align-items:center;justify-content:space-between}
html body.page-admin button.secondary:not(:disabled):not(.stage-chip):not(.version-chip):not(.cat-btn):not(.subtab){background:#e8f0fe;border:1px solid #c6d8fb;color:#1e40af;font-weight:700}
html body.page-admin button.secondary:not(:disabled):hover{background:#dbe7fd}
/* V5.0.3 지금 할 버튼은 테두리 강조 */
/* 지금 할 버튼의 파란 테두리는 없앴다(2026-09-30 오너 "가운데 버튼 테두리에 뭐가 그려지네 없애") */
html body.page-admin #detailPane .smart-bar > button.act-next{box-shadow:none !important;outline:0 !important}
/* V5.0.3 결제 세 칸(계좌 | 카드 | QR) 꽉 차게 */
html body .pay-box2 .pay-ways{grid-template-columns:repeat(auto-fit,minmax(220px,1fr)) !important;align-items:stretch}
html body .pay-box2 .pay-way{display:flex;flex-direction:column}
html body .pay-box2 .pay-way-card .pay-link{flex:1 1 auto;display:flex !important;align-items:center;justify-content:center;min-height:56px}
html body .pay-box2 .pay-qr-big{display:flex;align-items:center;gap:12px;flex:1 1 auto}
html body .pay-box2 .pay-qr-big img{width:120px;height:120px;flex:0 0 120px;border:1px solid #e5e7eb;border-radius:10px;padding:4px;background:#fff}
html body .pay-box2 .pay-qr-big span{font-size:13px;color:#475569;line-height:1.5}
/* V5.0.3 견적데이터 목록: 버튼·검색 한 줄 */
html body.page-admin .quote-workspace .req-oneline{display:flex !important;align-items:center !important;gap:6px !important;padding:8px !important;flex-wrap:nowrap !important}
html body.page-admin .req-oneline #reqBar{display:flex !important;align-items:center;gap:4px;margin:0 !important;padding:0 !important;border:0 !important;flex:0 0 auto;background:transparent !important}
html body.page-admin .req-oneline #reqModeBtns button{flex:0 0 50px !important;width:50px !important;min-width:50px !important;max-width:50px !important;height:36px !important;font-size:13px !important;padding:0 !important}
html body.page-admin .req-oneline .req-all{font-size:0 !important;margin:0 2px !important}
html body.page-admin .req-oneline .req-all input{margin:0 !important;width:18px;height:18px}
html body.page-admin .req-oneline #requestSearch{flex:1 1 auto !important;min-width:60px !important;width:auto !important;height:36px !important;font-size:14px !important}
html body.page-admin .req-oneline .admin-search-row{display:contents}
/* V5.0.4 고정된 견적 */
html body.page-admin .locked-note{margin-left:8px;padding:4px 10px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:13px;font-weight:700}
html body.page-admin #detailPane input.ro-locked{background:#f8fafc !important;color:#334155 !important;cursor:default}
/* V5.0.5 현황판 임대 종료 임박 */
html body .rent-due{display:inline-block;margin-left:4px;padding:1px 7px;border-radius:999px;font-size:11.5px;font-weight:900;color:#fff;vertical-align:middle}
html body .rent-due.rd-5{background:#ca8a04}
html body .rent-due.rd-3{background:#ea580c}
html body .rent-due.rd-over{background:#dc2626;animation:dfBlink 1.2s ease-in-out infinite}
/* V5.0.6 확인창 글씨: 첫 줄은 굵은 질문, 나머지는 설명(2026-09-28 오너 "보기 나쁘다, 한눈에") */
html body .modal-back .confirm-sheet{max-width:460px !important;width:calc(100vw - 32px) !important}
html body .modal-back .confirm-sheet .confirm-body{font-size:15px !important;line-height:1.65 !important;color:#475569 !important;padding:20px 24px !important}
html body .modal-back .confirm-sheet .confirm-body::first-line{font-size:18px;font-weight:800;color:#0f172a}
html body .modal-back .confirm-sheet .confirm-actions{justify-content:stretch !important}
html body .modal-back .confirm-sheet .confirm-actions button{flex:1 1 0 !important}
html body.page-admin #detailPane .est-head .quote-view-status{margin:0 !important;font-size:13px !important;font-weight:600;align-self:center}
/* V5.0.7 견적 상세를 세 구역으로(2026-09-28 오너 "카테고리 선을 긋고 확실하게, 수정·품목가격·등급·창고 구분") */
html body.page-admin #detailPane .ed-sec{border:1px solid #d6dde8;border-radius:12px;background:#fff;padding:12px 14px;margin:12px 0 0}
html body.page-admin #detailPane .ed-sec-h{display:flex;align-items:center;gap:8px;margin:0 0 10px !important;font-size:16px !important;font-weight:800;color:#0f172a}
html body.page-admin #detailPane .ed-no{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#0f172a;color:#fff;font-size:13px;font-weight:800;flex:0 0 auto}
html body.page-admin #detailPane .ed-sec .estimate-fields{margin:0 !important}
html body.page-admin #detailPane .ed-sec-items .ip-bar{margin:-12px -14px 12px !important;padding:10px 14px;background:#f1f5f9;border-bottom:1px solid #d6dde8;border-radius:12px 12px 0 0;gap:10px 16px}
html body.page-admin #detailPane .ed-sec-items .ip-bar .ed-sec-h{margin:0 !important}
html body.page-admin #detailPane .ip-bar .ip-sp{flex:1 1 auto}
/* 가격 기준 상자: 등급 ┃ 창고 */
html body.page-admin #detailPane .price-basis{display:inline-flex;align-items:center;gap:12px;background:#fff;border:1px solid #cbd5e1;border-radius:10px;padding:5px 12px 5px 10px}
html body.page-admin #detailPane .price-basis .pb-cap{font-size:12px;font-weight:800;color:#fff;background:#64748b;border-radius:6px;padding:3px 8px;white-space:nowrap}
html body.page-admin #detailPane .price-basis .ip-grp+.ip-grp{border-left:1px solid #cbd5e1;padding-left:12px}
html body.page-admin #detailPane .price-basis .ip-lab{font-size:13px;color:#334155}
/* 선택된 등급·창고는 진한 남색(파란 [수정] 버튼과 헷갈리지 않게) */
html body.page-admin #detailPane .ip-bar #grade-1.active,html body.page-admin #detailPane .ip-bar #grade-2.active,html body.page-admin #detailPane .ip-bar #grade-3.active,html body.page-admin #detailPane .ip-bar .wh-btn.active{background:#1e293b !important;border-color:#1e293b !important;color:#fff !important}
/* [수정]은 표를 고치는 버튼 — 오른쪽 끝, 앞에 연필 표시 */
html body.page-admin #detailPane #itemModeBtns{margin-left:auto}
html body.page-admin #detailPane #itemEditBtn::before{content:"✎ 품목 "}
html body.page-admin #detailPane .ed-sec-items .estimate-items-scroll{margin:0 !important}
html body.page-admin #detailPane .ed-sec-items .ed-tools{border-top:1px dashed #d6dde8 !important;margin-top:10px !important;padding-top:10px !important}
html body.page-admin #detailPane .ed-sec-sum .totalbox{margin:0 !important}
@media (max-width:760px){html body.page-admin #detailPane .ed-sec{padding:10px}html body.page-admin #detailPane .ed-sec-items .ip-bar{margin:-10px -10px 10px !important;padding:8px 10px}html body.page-admin #detailPane .price-basis{flex-wrap:wrap}}
/* V4.8.7 견적서 머리 한 줄(2026-09-29 오너 "견적서 위에 공간낭비가 심하다 — 번호·견적일자 로고 옆으로, 견적일자와 납품희망 묶어서")
   로고·상호 | 견적번호·견적일자·납품희망 | 견 적 서. 받는 분 칸의 '납품 희망' 줄은 머리로 올라왔다. */
html body .qd .qd-head.qd-head-v2{display:flex !important;align-items:center !important;flex-wrap:wrap;gap:8px 16px !important;padding-bottom:10px !important;margin-bottom:0 !important;text-align:left}
html body .qd .qd-head-v2 .qd-brand{display:flex !important;flex:0 0 auto}
html body .qd .qd-head-v2 .qd-meta{flex:0 1 auto;width:auto !important;margin:0 !important;justify-self:auto;border-left:1px solid var(--qd-line);padding-left:14px}
html body .qd .qd-head-v2 .qd-meta tr{display:table-row !important;margin:0 !important}
html body .qd .qd-head-v2 .qd-meta th,html body .qd .qd-head-v2 .qd-meta td{padding:1px 0 !important;font-size:12.5px !important;text-align:left !important;line-height:1.45;width:auto !important}
html body .qd .qd-head-v2 .qd-meta th{padding-right:10px !important}
html body .qd .qd-head-v2 .qd-title{margin:0 0 0 auto !important;font-size:30px !important;text-align:right !important;line-height:1}
html body .qd .qd-head-v2 + .qd-parties{margin-top:12px !important}
html body .qd .qd-head-v2 ~ .qd-parties .qd-lead{margin-top:8px !important}
/* 좁으면: 로고·상호 | 견 적 서 한 줄, 번호·일자·납품희망은 그 아래 한 줄로 이어서 */
@container (max-width:560px){
  html body .qd .qd-head-v2 .qd-meta{order:3;flex:1 1 100%;border-left:0;padding-left:0}
  html body .qd .qd-head-v2 .qd-meta tbody{display:flex;flex-wrap:wrap;gap:0 14px}
  html body .qd .qd-head-v2 .qd-meta tr{display:inline-flex !important;gap:6px}
  html body .qd .qd-head-v2 .qd-meta th{padding-right:0 !important}
  html body .qd .qd-head-v2 .qd-title{font-size:23px !important}
}
@media (max-width:560px){
  html body .qd .qd-head-v2 .qd-meta{order:3;flex:1 1 100%;border-left:0;padding-left:0}
  html body .qd .qd-head-v2 .qd-meta tbody{display:flex;flex-wrap:wrap;gap:0 14px}
  html body .qd .qd-head-v2 .qd-meta tr{display:inline-flex !important;gap:6px}
  html body .qd .qd-head-v2 .qd-meta th{padding-right:0 !important}
  html body .qd .qd-head-v2 .qd-title{font-size:23px !important}
}
/* V5.0.8 등급 색 통일 + 창고 상자 분리(2026-09-29 오너 "123등급은 컬러를 통일해야 안헷갈리지 · 창고도 카테고리 완전분류해서 떨어진 느낌")
   등급 색은 :root --g1(파랑)·--g2(청록)·--g3(주황) 하나뿐이다. 등급 버튼·칩은 전부 여기 색을 쓴다 —
   고르지 않은 것은 옅은 바탕+그 색 글자, 고른 것은 그 색으로 꽉 채운다. 새 화면에서 등급 색을 따로 정하지 말 것. */
html body.page-admin .grade-buttons button#grade-1,html body.page-admin .sg-grades button.sg-g1,html body .qpv-grades button.sg-g1{color:var(--g1) !important;background:var(--g1t) !important;border:1.5px solid var(--g1b) !important}
html body.page-admin .grade-buttons button#grade-2,html body.page-admin .sg-grades button.sg-g2,html body .qpv-grades button.sg-g2{color:var(--g2) !important;background:var(--g2t) !important;border:1.5px solid var(--g2b) !important}
html body.page-admin .grade-buttons button#grade-3,html body.page-admin .sg-grades button.sg-g3,html body .qpv-grades button.sg-g3{color:var(--g3) !important;background:var(--g3t) !important;border:1.5px solid var(--g3b) !important}
html body.page-admin .grade-buttons button#grade-1.active,html body.page-admin .sg-grades button.sg-g1.active,html body .qpv-grades button.sg-g1.active,html body .qpv-actions > button.qpv-go.qpv-go-g1{color:#fff !important;background:var(--g1) !important;border-color:var(--g1) !important}
html body.page-admin .grade-buttons button#grade-2.active,html body.page-admin .sg-grades button.sg-g2.active,html body .qpv-grades button.sg-g2.active,html body .qpv-actions > button.qpv-go.qpv-go-g2{color:#fff !important;background:var(--g2) !important;border-color:var(--g2) !important}
html body.page-admin .grade-buttons button#grade-3.active,html body.page-admin .sg-grades button.sg-g3.active,html body .qpv-grades button.sg-g3.active,html body .qpv-actions > button.qpv-go.qpv-go-g3{color:#fff !important;background:var(--g3) !important;border-color:var(--g3) !important}
html body.page-admin .grade-buttons button.active,html body .qpv-grades button.active{box-shadow:0 2px 6px rgba(15,23,42,.18)}
/* 품목/가격 머리: [가격 등급] 상자와 [창고 · 원가] 상자를 따로, 사이를 띄운다 */
html body.page-admin #detailPane .ip-bar .price-basis{gap:8px;padding:5px 10px 5px 6px;border-radius:12px}
html body.page-admin #detailPane .ip-bar .price-basis + .price-basis{margin-left:14px}
html body.page-admin #detailPane .ip-bar .price-basis .ip-grp{display:inline-flex;gap:6px;border-left:0 !important;padding-left:0 !important}
html body.page-admin #detailPane .ip-bar .pb-grade{background:#fff;border:1px solid #cbd5e1}
html body.page-admin #detailPane .ip-bar .pb-grade .pb-cap{background:#475569}
/* 창고는 우리 원가 쪽이라 등급과 전혀 다른 색(따뜻한 회갈색)으로 — 등급 색과 섞이지 않게 */
html body.page-admin #detailPane .ip-bar .pb-wh{background:#faf7f2;border:1px dashed #c8b8a0}
html body.page-admin #detailPane .ip-bar .pb-wh .pb-cap{background:#8a6f4d}
html body.page-admin #detailPane .ip-bar .pb-wh .wh-btn{background:#fff !important;color:#6b5238 !important;border:1.5px solid #dccbb2 !important}
html body.page-admin #detailPane .ip-bar .pb-wh .wh-btn.active{background:#6b5238 !important;color:#fff !important;border-color:#6b5238 !important}
html body.page-admin #detailPane .ip-bar .grade-buttons button#grade-1{color:var(--g1) !important;background:var(--g1t) !important;border:1.5px solid var(--g1b) !important}
html body.page-admin #detailPane .ip-bar .grade-buttons button#grade-2{color:var(--g2) !important;background:var(--g2t) !important;border:1.5px solid var(--g2b) !important}
html body.page-admin #detailPane .ip-bar .grade-buttons button#grade-3{color:var(--g3) !important;background:var(--g3t) !important;border:1.5px solid var(--g3b) !important}
html body.page-admin #detailPane .ip-bar .grade-buttons button#grade-1.active{color:#fff !important;background:var(--g1) !important;border-color:var(--g1) !important}
html body.page-admin #detailPane .ip-bar .grade-buttons button#grade-2.active{color:#fff !important;background:var(--g2) !important;border-color:var(--g2) !important}
html body.page-admin #detailPane .ip-bar .grade-buttons button#grade-3.active{color:#fff !important;background:var(--g3) !important;border-color:var(--g3) !important}
@media (max-width:760px){html body.page-admin #detailPane .ip-bar .price-basis + .price-basis{margin-left:0;margin-top:6px}}
/* V5.0.9 글을 보여 주는 창(배차 문구·결제 안내)은 넓게 — 확인창 규칙(폭 460 · 첫 줄 굵게)이 그대로 걸려
   글칸이 좁고 안내 한 줄이 제목처럼 굵어졌다(2026-09-29 오너 "배차문구 이게 뭐냐 한눈에 잘 보이게"). */
html body .modal-back .confirm-sheet.pg-sheet{max-width:640px !important;width:calc(100vw - 32px) !important}
html body .modal-back .confirm-sheet.pg-sheet .confirm-body{white-space:normal}
html body .modal-back .confirm-sheet.pg-sheet .confirm-body::first-line{font-size:inherit;font-weight:inherit;color:inherit}
html body .modal-back .confirm-sheet.pg-sheet .confirm-body > .muted{font-size:13.5px;color:#64748b}
html body .modal-back .confirm-sheet.pg-sheet .pg-text{height:56vh;max-height:620px;font-size:16px;color:#0f172a}
/* V5.1.0 정렬(2026-09-29 오너 "버튼이 왼쪽으로 붙었다"): 고객 견적서 결정 버튼 줄·닫기 줄을 위 카드와 같은 폭·같은 끝선으로.
   글이 길면 줄지 않고 삐져나가던 것 -> 버튼이 줄어들고 글은 두 줄까지 허용 */
html body #quoteActions.qa-bar{margin:12px 0 !important;box-sizing:border-box;width:auto !important}
html body #quoteActions.qa-bar .btn{min-width:0 !important;white-space:normal !important;line-height:1.25;padding:0 10px !important;word-break:keep-all}
html body .quote-close-row{padding:0 !important}
/* 달력·시계 아이콘: 누를 때 공통 규칙(button:active 아래로 1px)이 가운데 맞춤(translateY)을 덮어 아이콘이 아래로 튀고 클릭이 안 되던 것 */
html body .date-field .cal-btn,html body .time-field .clock-btn{transform:none !important}
html body .date-field,html body .time-field{cursor:pointer}
/* 견적데이터 목록 머리 줄: 검색칸이 목록 칸 오른쪽 밖으로 21px 삐져나가 잘리던 것 */
html body.page-admin .req-oneline #reqModeBtns button{flex:0 0 44px !important;width:44px !important;min-width:44px !important;max-width:44px !important}
html body.page-admin .req-oneline #requestSearch{min-width:0 !important;flex:1 1 0 !important}
/* V5.1.0 견적 상세 정돈(2026-09-29 오너): 구역마다 색 · 금액 칸 가운데·위아래 버튼 없음 · 합계 가운데 · 가격 등급/창고 글씨 통일 */
html body.page-admin #detailPane .ed-sec{border-left-width:5px !important;padding-top:0 !important}
html body.page-admin #detailPane .ed-sec-info{--sec:#4f46e5;--sec-bg:#eef2ff}
html body.page-admin #detailPane .ed-sec-items{--sec:#0d9488;--sec-bg:#ecfdf5}
html body.page-admin #detailPane .ed-sec-sum{--sec:#db2777;--sec-bg:#fdf2f8}
html body.page-admin #detailPane .ed-sec{border-left-color:var(--sec) !important}
html body.page-admin #detailPane .ed-sec>.ed-sec-h,html body.page-admin #detailPane .ed-sec-items>.ip-bar{background:var(--sec-bg) !important;margin:0 -14px 12px !important;padding:10px 14px !important;border-bottom:1px solid #e2e8f0;border-radius:0 11px 0 0}
html body.page-admin #detailPane .ed-sec-items>.ip-bar{margin-top:0 !important}
html body.page-admin #detailPane .ed-sec .ed-sec-h{color:var(--sec) !important;font-size:17px !important}
html body.page-admin #detailPane .ed-no{background:var(--sec) !important;width:26px;height:26px;font-size:14px}
html body.page-admin #detailPane .ed-sec-sum{padding-bottom:12px}
/* 금액 칸: 숫자 가운데, 위아래 화살표 없음(클릭하고 바로 숫자 입력) */
html body.page-admin #detailPane .ed-money .field input,html body.page-admin #detailPane .ed-money input{text-align:center !important;padding:0 8px !important;-moz-appearance:textfield;appearance:textfield}
html body.page-admin #detailPane .ed-money input::-webkit-outer-spin-button,html body.page-admin #detailPane .ed-money input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
html body.page-admin #detailPane .ed-money .field label{font-size:14px !important;font-weight:800 !important;color:#334155 !important}
/* 합계: 칸마다 글씨 가운데 */
html body.page-admin #detailPane #editTotals .totalrow{display:flex !important;flex-direction:column !important;align-items:center !important;justify-content:center !important;text-align:center !important}
html body.page-admin #detailPane #editTotals .totalrow>span{width:100%;text-align:center !important}
/* 가격 등급 · 창고 원가: 이름표·버튼 글씨와 높이를 하나로 */
html body.page-admin #detailPane .ip-bar .price-basis{height:44px;box-sizing:border-box;padding:0 6px !important;gap:6px !important}
html body.page-admin #detailPane .ip-bar .price-basis .pb-cap{font-size:14px !important;font-weight:800 !important;height:32px;display:inline-flex;align-items:center;padding:0 10px !important;border-radius:8px}
html body.page-admin #detailPane .ip-bar .price-basis .ip-grp{gap:6px !important;border:0 !important;padding:0 !important}
html body.page-admin #detailPane .ip-bar .price-basis button{height:32px !important;min-height:32px !important;font-size:14px !important;font-weight:800 !important;padding:0 14px !important;border-radius:8px !important;line-height:1 !important}
html body.page-admin #detailPane .ip-bar #itemEditBtn{height:40px !important;font-size:15px !important}
/* V5.1.0 고객 견적요청(2026-09-29 오너 "공간 낭비 없이"): 날짜·시간 한 줄, 시계 팝업, 담은 품목 촘촘하게 */
.page-customer .grid2.dt-pair{grid-template-columns:1fr 1fr !important;gap:8px !important}
.page-customer .ct-input{text-align:center;cursor:pointer}
.cust-time{position:absolute;z-index:3000;width:200px;background:#fff;border:1px solid #cbd5e1;border-radius:16px;box-shadow:0 14px 34px rgba(15,23,42,.18);padding:10px 12px}
.cust-time .wheel-top{display:flex;align-items:center;justify-content:space-between;padding:0 2px 8px;border-bottom:1px solid #e2e8f0;margin-bottom:6px}
.cust-time .wheel-top b{font-size:22px;font-weight:900;color:#173b63;font-variant-numeric:tabular-nums}
.cust-time .ct-none{height:32px;padding:0 12px;border-radius:8px;border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;font-weight:800;font-size:14px}
.cust-time .wheel-row{position:relative;display:flex;align-items:center;justify-content:center;gap:4px;height:200px}
.cust-time .wheel{height:200px;overflow-y:auto;scroll-snap-type:y mandatory;flex:1;text-align:center;scrollbar-width:none;position:relative;z-index:1}
.cust-time .wheel::-webkit-scrollbar{display:none}
.cust-time .w-item{height:40px;line-height:40px;scroll-snap-align:center;font-size:20px;font-weight:700;color:#cbd5e1;cursor:pointer;font-variant-numeric:tabular-nums;transition:transform .12s,color .12s}
.cust-time .w-item.near{color:#64748b}
.cust-time .w-item.on{color:#173b63;font-weight:900;transform:scale(1.2)}
.cust-time .w-pad{height:80px}
.cust-time .wheel-colon{font-size:22px;font-weight:900;color:#94a3b8;z-index:2}
.cust-time .wheel-mark{position:absolute;left:0;right:0;top:80px;height:40px;border-radius:10px;background:#eff6ff;border:1.5px solid #93c5fd;z-index:0;pointer-events:none}
.picked-box .pk-head{padding:8px 12px !important}
.picked-box .pk-row{padding:8px 12px !important;gap:8px !important;min-height:0 !important}
.picked-box .pk-main b{font-size:16px !important;line-height:1.3}
.picked-box .pk-main small{font-size:13.5px !important;margin-top:1px}
.picked-box .pk-del{width:38px !important;height:38px !important;min-height:38px !important}
.picked-box .pk-qty .pk-n{font-size:18px}
/* 현황판: 아직 아무도 안 열어 본 줄은 줄 전체를 노랑(새 견적)·초록(고객 확정)으로 — 무엇이 새로 들어왔는지 한눈에(2026-09-29 오너) */
html body.page-admin .board-row.row-unseen>td{background:#fffbeb !important}
html body.page-admin .board-row.row-unseen>td:first-child{box-shadow:inset 5px 0 0 #f59e0b}
html body.page-admin .board-row.row-unseen.conf>td{background:#ecfdf5 !important}
html body.page-admin .board-row.row-unseen.conf>td:first-child{box-shadow:inset 5px 0 0 #10b981}
html body.page-admin .board-row.row-unseen>td{font-weight:700}
/* 결제 금액 줄: 금액 + [금액 복사](2026-09-29 오너) */
html body .pay-box2 .pay-top{display:flex !important;align-items:center !important;gap:10px;flex-wrap:wrap}
html body .pay-box2 .pay-top>span{flex:1 1 auto}
html body .pay-box2 .pay-top .pay-amt-copy{flex:0 0 auto;height:40px;padding:0 14px;border-radius:10px;border:0;background:#0f766e;color:#fff;font-size:15px;font-weight:800;white-space:nowrap}
/* 견적서 입력 위쪽 등급 버튼도 등급 색(1 파랑·2 청록·3 주황) — 공통 "고른 것=파랑" 규칙에 덮여 2등급도 파랑이던 것(2026-09-29 오너) */
html body.page-admin .qq-setup-opts .qq-opt.qq-opt-grade.qq-g1{color:var(--g1) !important;background:var(--g1t) !important}
html body.page-admin .qq-setup-opts .qq-opt.qq-opt-grade.qq-g1.on{color:#fff !important;background:var(--g1) !important}
html body.page-admin .qq-setup-opts .qq-opt.qq-opt-grade.qq-g2{color:var(--g2) !important;background:var(--g2t) !important}
html body.page-admin .qq-setup-opts .qq-opt.qq-opt-grade.qq-g2.on{color:#fff !important;background:var(--g2) !important}
html body.page-admin .qq-setup-opts .qq-opt.qq-opt-grade.qq-g3{color:var(--g3) !important;background:var(--g3t) !important}
html body.page-admin .qq-setup-opts .qq-opt.qq-opt-grade.qq-g3.on{color:#fff !important;background:var(--g3) !important}
/* 견적서 입력 임대단가 칸: 금액 + [수정] 버튼이 96px 에 들어가 금액이 "4:"로 잘리던 것 -> 칸을 넓힌다 */
html body.page-admin .quick-entry td.qunit-cell{padding-left:4px !important;padding-right:4px !important}
html body.page-admin .quick-entry td.qunit-cell input.qunit{width:calc(100% - 32px) !important;font-size:15px !important;padding:0 2px !important}
html body.page-admin .quick-entry .qunit-edit{width:28px !important;height:32px !important;margin-left:2px !important;padding:0 !important;font-size:15px !important}
/* 현황판 진행 중 / 거래종료·취소 탭 */
html body.page-admin .board-tabs{margin:10px 12px 0 !important;max-width:520px}
html body.page-admin .board-tabs .req-tab b{margin-left:4px;font-size:13px;opacity:.8}
html body.page-admin .ops-chip.stage-one{white-space:nowrap}
/* 고객: 자판이 떠 있거나 글을 치는 동안 아래 막대는 화면에 떠 있지 않고(가리지 않게, 2026-09-29 오너) 페이지 맨 끝에 놓인다 —
   끝까지 내리면 보이고 눌린다(2026-10-03 오너 "타자판이 올라온 상태에서도 끝까지 스크롤하면 올라와서 버튼 누를수 있어야해"). */
html body.page-customer.kb-open .bottom,html body.page-customer.kb-typing .bottom{position:static !important;transform:none !important;left:auto !important;width:100% !important;box-shadow:none !important;border-top:1px solid #e2e8f0 !important;border-radius:14px !important;margin:0 0 12px !important}
html body.page-customer.kb-open .content,html body.page-customer.kb-typing .content{padding-bottom:16px !important}
/* 시계 머리: [미정] 시각 [확인] */
.cust-time .wheel-top{gap:6px}
.cust-time .wheel-top b{flex:1;text-align:center}
.cust-time .ct-ok{height:32px;padding:0 12px;border-radius:8px;border:0;background:#1d4ed8;color:#fff;font-weight:800;font-size:14px}
/* 이전 주문 불러오기 */
.page-customer .prev-order-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:46px;margin:0 0 12px;border-radius:12px;border:1.5px dashed #93c5fd;background:#eff6ff;color:#1d4ed8;font-size:15px;font-weight:800}
.page-customer .prev-order-btn small{font-size:12.5px;font-weight:600;color:#3b82f6}
.mo-item .mo-addr{margin-top:4px;color:#334155}
.mo-item .mo-reuse{display:block;width:100%;height:40px;margin-top:8px;border-radius:10px;border:0;background:#1d4ed8;color:#fff;font-size:14.5px;font-weight:800}
.cust-time{width:236px !important}
.cust-time .ct-none,.cust-time .ct-ok{white-space:nowrap;flex:0 0 auto;min-width:52px}
.cust-time .wheel-top b{font-size:20px !important}
/* 업데이트됨 알림 띠(2026-09-29) */
.updated-note{position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:99990;display:flex;align-items:center;gap:8px;padding:12px 12px 12px 18px;border-radius:14px;background:#0f172a;color:#fff;font-size:15px;box-shadow:0 12px 30px rgba(15,23,42,.28);transition:opacity .4s}
.updated-note b{color:#86efac;font-size:16px}
.updated-note .un-from{color:#94a3b8;font-size:13px}
.updated-note button{margin-left:6px;width:30px;height:30px;border-radius:8px;border:0;background:#334155;color:#fff;font-size:14px;cursor:pointer}
.updated-note.out{opacity:0}
/* V5.1.8 현황판 머리 정리(2026-09-29 오너 "공간낭비, 카테고리 확실하게") */
html body.page-admin .board-overview.bo-compact{flex-wrap:nowrap !important;gap:12px !important;margin:0 0 10px !important;align-items:center !important}
html body.page-admin .bo-compact .bo-sp{flex:1 1 auto}
html body.page-admin .bo-compact .new-quote{min-height:44px !important;height:44px}
html body.page-admin .bo-compact .board-tabs{margin:0 !important;flex:0 0 360px;max-width:360px;height:44px;box-sizing:border-box}
html body.page-admin .bo-compact .board-tabs .req-tab{height:36px !important;font-size:15px !important}
html body.page-admin .bo-compact .workspace-stats{flex:0 1 auto;min-width:0;flex-wrap:nowrap}
html body.page-admin .board-panel .bt-grouped{display:flex !important;align-items:center !important;gap:10px !important;flex-wrap:wrap;padding:10px 12px !important}
html body.page-admin .bt-grouped .bt-grp{display:flex;align-items:center;gap:8px;padding:5px 8px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}
html body.page-admin .bt-grouped .bt-find{flex:0 1 620px;min-width:0}
html body.page-admin .bt-grouped .bt-find #boardSearch{flex:1 1 auto;min-width:120px;height:38px !important;margin:0 !important}
html body.page-admin .bt-grouped .bt-find select{height:38px !important;margin:0 !important;width:auto !important}
html body.page-admin .bt-grouped .bt-find .inline-check{white-space:nowrap;margin:0 !important}
html body.page-admin .bt-grouped .bt-misc{background:transparent;border-color:transparent}
html body.page-admin .bt-grouped .bt-misc button{height:38px !important;min-height:38px !important}
html body.page-admin .bt-grouped #boardModeBtns button{height:38px !important;min-height:38px !important}
@media (max-width:1100px){html body.page-admin .board-overview.bo-compact{flex-wrap:wrap !important}html body.page-admin .bo-compact .board-tabs{flex:1 1 300px}}
/* 알림소리 버튼 */
html body.page-admin .sound-btn{white-space:nowrap;background:#ecfdf5 !important;color:#047857 !important;border:1px solid #6ee7b7 !important;font-weight:800 !important}
html body.page-admin .sound-btn.off{background:#f1f5f9 !important;color:#64748b !important;border-color:#cbd5e1 !important}
/* V5.2.0 현황판: 위아래 여백 줄이고, 진행 중/거래종료 탭을 목록 상자에 붙은 폴더 탭으로(2026-09-29 오너) */
html body.page-admin .board-overview.bo-compact{margin:0 0 6px !important;padding:0 !important;min-height:0 !important}
html body.page-admin .bo-compact .new-quote{height:40px !important;min-height:40px !important}
html body.page-admin .bo-compact .workspace-stats .stat{padding-top:4px !important;padding-bottom:4px !important;min-height:40px !important}
html body.page-admin .board-folder{display:flex;flex-direction:column;min-height:0;flex:1 1 auto}
/* 거래처설정 쉽게(2026-10-03) — ① 거래처 한 줄씩 ② 발주 문구 하나: 체크칸 | 미리보기 */
html body.page-admin #vendorBox .vd-sec{border:1px solid #e2e8f0;border-radius:14px;background:#fff;padding:16px 18px;margin-bottom:14px}
html body.page-admin #vendorBox .vd-h{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;font-size:17px;font-weight:800;color:#0f172a;margin-bottom:12px}
html body.page-admin #vendorBox .vd-h small{font-size:13px;font-weight:600;color:#64748b}
html body.page-admin #vendorBox .vd-no{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#1e3a5f;color:#fff;font-size:13px}
html body.page-admin #vendorBox .vd-colh,html body.page-admin #vendorBox .vd-line{display:grid;grid-template-columns:minmax(120px,1fr) minmax(160px,1.6fr) minmax(140px,1fr) 72px;gap:8px;align-items:center}
html body.page-admin #vendorBox .vd-colh{font-size:13px;font-weight:700;color:#64748b;padding:0 2px 6px}
html body.page-admin #vendorBox .vd-line{margin-bottom:8px;padding:0;border:0;background:none}
html body.page-admin #vendorBox .vd-line input{height:44px;font-size:16px;margin:0;width:100%;box-sizing:border-box}
html body.page-admin #vendorBox .vd-line .vd-name{font-weight:800}
html body.page-admin #vendorBox .vd-del{height:44px;width:100%;margin:0;display:inline-flex;align-items:center;justify-content:center}
html body.page-admin #vendorBox .vd-add{margin-top:4px;height:42px}
html body.page-admin #vendorBox .vd-note{margin:0 0 12px;padding:10px 12px;border-radius:10px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:14px}
html body.page-admin #vendorBox .vd-grid{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:18px;align-items:start}
html body.page-admin #vendorBox .vd-pick-h{font-size:14px;font-weight:800;color:#334155;margin:0 0 8px}
html body.page-admin #vendorBox .vd-pick-h small{font-weight:600;color:#94a3b8}
html body.page-admin #vendorBox .vd-title-l{display:block;font-size:14px;font-weight:800;color:#334155;margin-bottom:14px}
html body.page-admin #vendorBox .vd-title-l input{display:block;width:100%;height:44px;margin-top:6px;font-size:16px;box-sizing:border-box}
html body.page-admin #vendorBox #vdParts{display:grid;grid-template-columns:1fr 1fr;gap:6px}
html body.page-admin #vendorBox .vd-part{display:flex;align-items:center;gap:8px;min-height:42px;padding:0 10px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;font-size:15px;font-weight:700;color:#0f172a;cursor:pointer}
html body.page-admin #vendorBox .vd-part input{width:20px;height:20px;margin:0;flex:0 0 auto}
html body.page-admin #vendorBox .vd-part:has(input:checked){background:#eff6ff;border-color:#93c5fd}
html body.page-admin #vendorBox .vd-part small{font-weight:600;color:#94a3b8}
html body.page-admin #vendorBox .vd-fixed{cursor:default}
html body.page-admin #vendorBox .vd-preview{margin:0;padding:16px 18px;border-radius:12px;background:#fef9c3;border:1px solid #fde68a;font:inherit;font-size:16px;line-height:1.7;color:#0f172a;white-space:pre-wrap;min-height:220px}
html body.page-admin #vendorBox .vd-edit{margin-top:14px}
html body.page-admin #vendorBox .vd-edit summary{cursor:pointer;font-size:14px;font-weight:700;color:#64748b}
html body.page-admin #vendorBox .vd-edit-help{margin:8px 0;font-size:13px;line-height:1.6}
html body.page-admin #vendorBox .vd-edit textarea{width:100%;box-sizing:border-box;font-size:15px;line-height:1.6}
html body.page-admin #vendorBox .vd-save{height:48px;min-width:160px;font-size:16px}
@media (max-width:767px){
  html body.page-admin #vendorBox .vd-colh{display:none}
  html body.page-admin #vendorBox .vd-line{grid-template-columns:1fr 1fr;padding:10px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}
  html body.page-admin #vendorBox .vd-line .vd-name,html body.page-admin #vendorBox .vd-line .vd-kakao{grid-column:1 / -1}
  html body.page-admin #vendorBox .vd-grid{grid-template-columns:1fr}
}
html body.page-admin .board-folder .bf-tabs{display:flex;gap:4px;padding-left:12px;position:relative;z-index:2;margin-bottom:-1px}
html body.page-admin .board-folder .bf-tab{height:42px;padding:0 22px;border:1px solid #cbd5e1;border-bottom:0;border-radius:12px 12px 0 0;background:#e2e8f0;color:#64748b;font-size:15px;font-weight:800;cursor:pointer}
html body.page-admin .board-folder .bf-tab b{margin-left:6px;display:inline-block;min-width:22px;padding:1px 7px;border-radius:999px;background:#cbd5e1;color:#334155;font-size:13px}
html body.page-admin .board-folder .bf-tab.active{background:#fff;color:#1d4ed8;height:46px;margin-top:-4px;border-color:#94a3b8;border-top:3px solid #2563eb;box-shadow:0 -2px 6px rgba(15,23,42,.06)}
html body.page-admin .board-folder .bf-tab.active b{background:#2563eb;color:#fff}
html body.page-admin .board-folder .bf-tab[data-v=done].active{color:#475569;border-top-color:#64748b}
html body.page-admin .board-folder .bf-tab[data-v=done].active b{background:#64748b}
html body.page-admin .board-folder .board-panel{border:1px solid #94a3b8 !important;border-radius:0 14px 14px 14px !important;margin-top:0 !important}
html body.page-admin .board-panel .bt-grouped{padding:8px 10px !important;margin:0 !important;min-height:0 !important}
html body.page-admin .board-panel .detail{padding-top:0 !important}
/* 가격 등급·창고 원가 이름표 = 버튼이 아니라 글자(2026-09-29 오너 "분류가 아니라 버튼처럼 보인다") — 바탕 없이, 옆 버튼들과 세로선으로 나눈다 */
html body.page-admin #detailPane .ip-bar .price-basis .pb-cap{background:transparent !important;color:#475569 !important;font-size:13px !important;font-weight:800 !important;height:auto !important;padding:0 10px 0 4px !important;border-radius:0 !important;border-right:1.5px solid #cbd5e1;letter-spacing:-.02em}
html body.page-admin #detailPane .ip-bar .pb-wh .pb-cap{color:#6b5238 !important;border-right-color:#dccbb2}
html body.page-admin #detailPane .ip-bar .price-basis{background:#fff !important;padding:0 6px 0 8px !important}
html body.page-admin #detailPane .ip-bar .pb-wh{background:#fdfaf5 !important}
/* 현황판 도구 줄은 한 줄 유지 — 찾기 묶음이 줄어든다 */
html body.page-admin .board-panel .bt-grouped{flex-wrap:nowrap !important}
html body.page-admin .bt-grouped .bt-find{flex:1 1 auto !important;min-width:0}
html body.page-admin .bt-grouped .bt-misc{flex:0 0 auto}
html body.page-admin .bt-grouped .bt-edit{flex:0 0 auto}
html body.page-admin .sound-btn{height:38px;padding:0 14px !important;font-size:14.5px !important;border-radius:10px !important}
html body.page-admin .admin-topnav .nav-utility{margin-left:auto;display:flex;align-items:center;gap:8px}
/* 맨 위 도구 버튼: 알림 버튼이 들어가도 1280 폭에서 한 줄 */
html body.page-admin .workspace-tools-panel{gap:6px !important;flex-wrap:nowrap !important}
html body.page-admin .workspace-tools-panel>button{padding-left:10px !important;padding-right:10px !important;white-space:nowrap}
/* V5.2.1 현황판 한 줄 줄이기 · [새 견적] 도구 줄 맨 왼쪽 · 폰 버튼 색 (2026-09-29 오너) */
html body.page-admin .board-folder .bf-head{display:flex;align-items:flex-end;gap:12px;margin:0 0 -1px;position:relative;z-index:2}
html body.page-admin .board-folder .bf-head .bf-tabs{margin:0 !important}
html body.page-admin .board-folder .bf-head .bo-sp{flex:1 1 auto}
html body.page-admin .board-folder .bf-head .workspace-stats{display:flex;flex-wrap:nowrap;gap:6px;padding-bottom:6px;min-width:0}
html body.page-admin .board-folder .bf-head .workspace-stats .stat{min-height:36px !important;padding:2px 12px !important}
html body.page-admin .bt-grouped .bt-new{flex:0 0 auto;padding-right:12px;margin-right:2px;border-right:2px solid #e2e8f0}
html body.page-admin .bt-grouped .bt-new .new-quote{height:42px !important;min-height:42px !important;padding:0 22px !important;font-size:16px !important;font-weight:800 !important;border-radius:11px !important;background:#1d4ed8 !important;border:0 !important;color:#fff !important;box-shadow:0 4px 12px rgba(29,78,216,.28);display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
html body.page-admin .bt-grouped .bt-new .new-quote:hover{background:#1e40af !important}
/* 폰 관련 버튼 = 보라 */
html body.page-admin .workspace-tools-panel>button.phone-view-btn{background:#f5f3ff !important;color:#6d28d9 !important;border:1px solid #c4b5fd !important}
html body.page-admin .workspace-tools-panel>button.phone-view-btn:hover{background:#ede9fe !important}
html body.page-admin .workspace-tools-panel>button.phone-view-btn .ui-icon{color:#6d28d9}
html body.page-admin .workspace-tools-panel>.sound-btn{height:36px !important;padding:0 12px !important;font-size:14px !important}
@media (max-width:1100px){html body.page-admin .board-folder .bf-head{flex-wrap:wrap}}
/* V5.2.2 관리자 규격 = 분홍(고객 화면과 통일, 2026-09-29 오너) */
html body.page-admin td.cell-spec,html body.page-admin .quick-entry td.cell-spec,html body.page-admin #detailPane .edit-items .i-spec,html body.page-admin .qd-spec,html body.page-admin #productBody td[data-pf="spec"],html body.page-admin #productBody td.cell-spec{color:#db2777 !important;font-weight:800 !important}
html body.page-admin .cat-bar .cat-btn.cat-all{margin-left:4px}
/* 업데이트 알림 = 파란 창 + 버튼 */
#updateBar.update-pop{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:99995;display:flex;align-items:center;gap:14px;padding:14px 14px 14px 18px;border-radius:18px;background:linear-gradient(135deg,#2563eb,#1d4ed8 60%,#1e40af);color:#fff;box-shadow:0 18px 40px rgba(29,78,216,.35);max-width:calc(100vw - 24px);animation:upPop .35s ease-out}
@keyframes upPop{from{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translate(-50%,0)}}
#updateBar .up-ico{width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;font-size:22px;flex:0 0 auto}
#updateBar .up-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
#updateBar .up-txt b{font-size:16px;font-weight:800;white-space:nowrap}
#updateBar .up-txt b em{font-style:normal;color:#bfdbfe}
#updateBar .up-txt span{font-size:12.5px;color:#dbeafe}
#updateBar .up-go{height:42px;padding:0 18px;border:0;border-radius:11px;background:#fff;color:#1d4ed8;font-size:15px;font-weight:800;cursor:pointer;white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,.15)}
#updateBar .up-go:hover{background:#eff6ff}
#updateBar .up-later{height:42px;padding:0 12px;border:1px solid rgba(255,255,255,.4);border-radius:11px;background:transparent;color:#fff;font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap}
/* 업데이트됨 띠도 파랗게 */
.updated-note{background:linear-gradient(135deg,#2563eb,#1d4ed8) !important;box-shadow:0 14px 34px rgba(29,78,216,.35) !important}
.updated-note b{color:#fff !important}
.updated-note .un-from{color:#bfdbfe !important}
.updated-note button{background:rgba(255,255,255,.2) !important}
/* 메뉴 줄 가운데 단계별 개수 */
html body.page-admin .admin-topnav .nav-stats{display:flex;align-items:center;gap:6px;margin:0 auto;flex-wrap:nowrap;min-width:0}
html body.page-admin .admin-topnav .nav-stats .stat{min-height:36px !important;padding:2px 12px !important}
html body.page-admin .admin-topnav .nav-stats+.nav-utility{margin-left:0}
html body.page-admin .board-folder .bf-head{margin-top:4px}
@media (min-width:1500px){html body.page-admin .admin-topnav{position:relative}html body.page-admin .admin-topnav .nav-stats{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0}}
html body.page-admin .board-folder .bf-head .bf-stats{flex:1 1 auto;display:flex;justify-content:center;align-items:center;gap:6px;flex-wrap:nowrap;padding-bottom:6px;min-width:0}
html body.page-admin .board-folder .bf-head .bf-stats .stat{min-height:36px !important;padding:2px 12px !important}
/* V5.2.4 맨 위 줄 정돈 — 같은 높이·같은 글씨, 묶음마다 색(2026-09-29 오너 "깔끔하게 컬러") */
html body.page-admin .admin-header .workspace-account{height:38px;padding:0 12px 0 4px;border-radius:999px;background:#f1f5f9;border:1px solid #e2e8f0;gap:8px}
html body.page-admin .admin-header .workspace-account .account-avatar{width:30px;height:30px}
html body.page-admin .admin-header .workspace-account .account-name{font-size:14px;font-weight:800}
html body.page-admin .workspace-tools-panel{gap:8px !important;align-items:center !important}
html body.page-admin .workspace-tools-panel>button,html body.page-admin .workspace-tools .zoom-ctl{height:38px !important;min-height:38px !important;box-sizing:border-box;border-radius:10px !important;font-size:14px !important;font-weight:800 !important}
html body.page-admin .workspace-tools .zoom-ctl{display:flex !important;align-items:center;gap:4px;padding:0 4px 0 12px !important;background:#eef2ff !important;border:1px solid #c7d2fe !important;color:#3730a3 !important}
html body.page-admin .workspace-tools .zoom-ctl .zoom-name{font-size:13px;font-weight:800;margin-right:4px}
html body.page-admin .workspace-tools .zoom-ctl .zoom-value{font-size:13px;font-weight:800;min-width:40px;text-align:center}
html body.page-admin .workspace-tools .zoom-ctl button{width:28px !important;height:28px !important;min-height:28px !important;border-radius:7px !important;background:#fff !important;color:#4338ca !important;border:1px solid #c7d2fe !important;padding:0 !important}
html body.page-admin .workspace-tools-panel>button.phone-view-btn{background:#ede9fe !important;color:#5b21b6 !important;border:1px solid #c4b5fd !important}
html body.page-admin .workspace-tools-panel>button.phone-view-btn:hover{background:#ddd6fe !important}
html body.page-admin .workspace-tools-panel>button.sound-btn{background:#d1fae5 !important;color:#047857 !important;border:1px solid #6ee7b7 !important}
html body.page-admin .workspace-tools-panel>button.sound-btn.off{background:#f1f5f9 !important;color:#64748b !important;border-color:#cbd5e1 !important}
/* 폰 알림(웹 푸시) 버튼 — 파랑(켬) / 옅은 파랑 테두리(아직 안 켬) (2026-10-03) */
html body.page-admin .workspace-tools-panel>button.push-btn{background:#dbeafe !important;color:#1d4ed8 !important;border:1px solid #93c5fd !important;white-space:nowrap}
html body.page-admin .workspace-tools-panel>button.push-btn.off{background:#fff !important;color:#1d4ed8 !important;border:1.5px dashed #60a5fa !important}
html body.page-admin .workspace-tools-panel>button.logout-btn{background:#fee2e2 !important;color:#b91c1c !important;border:1px solid #fca5a5 !important}
/* 탭 줄: 위아래 빈 공간 없이 */
html body.page-admin #sectionHost{padding-top:6px !important}
html body.page-admin .board-folder .bf-head{align-items:flex-end !important;margin-top:0 !important;min-height:0}
html body.page-admin .board-folder .bf-head .bf-stats{align-self:center;padding:0 0 2px !important}
html body.page-admin .board-folder .bf-tab{height:40px}
html body.page-admin .board-folder .bf-tab.active{height:44px}
html body.page-admin .board-folder .bf-head{position:relative}
html body.page-admin .board-folder .bf-head .bf-stats{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:0 !important;margin:0 !important}
html body.page-admin .board-folder .bf-head .bf-stats .stat{min-height:34px !important;height:34px;padding:0 12px !important}
/* 현황판 [전체] 개수 칸 */
html body.page-admin .stats .stat.stat-slate .stat-icon{background:#e2e8f0;color:#334155}
html body.page-admin .stats .stat[aria-pressed="true"]{border-color:#2563eb !important;box-shadow:0 0 0 2px rgba(37,99,235,.18) !important}
html body.page-admin .stats .stat.stat-static{cursor:default !important;display:inline-flex;align-items:center;gap:8px;box-sizing:border-box;border:1px solid #e2e8f0;border-radius:12px;background:#fff;box-shadow:none !important;transform:none !important}
html body.page-admin .stats .stat.stat-static:hover{border-color:#e2e8f0 !important;box-shadow:none !important;transform:none !important}
/* 폰 버튼 셋 = 각각 다른 색(2026-09-29 오너) */
html body.page-admin .workspace-tools-panel>button.pv-handoff{background:#e0f2fe !important;color:#0369a1 !important;border-color:#7dd3fc !important}
html body.page-admin .workspace-tools-panel>button.pv-handoff .ui-icon{color:#0369a1 !important}
html body.page-admin .workspace-tools-panel>button.pv-quote{background:#ffedd5 !important;color:#c2410c !important;border-color:#fdba74 !important}
html body.page-admin .workspace-tools-panel>button.pv-admin{background:#fae8ff !important;color:#a21caf !important;border-color:#f0abfc !important}
html body.page-admin .workspace-tools-panel>button.pv-handoff:hover{background:#bae6fd !important}
html body.page-admin .workspace-tools-panel>button.pv-quote:hover{background:#fed7aa !important}
html body.page-admin .workspace-tools-panel>button.pv-admin:hover{background:#f5d0fe !important}
/* 알림 켬 + 소리 고르기 한 묶음 */
html body.page-admin .workspace-tools-panel .sound-grp{display:inline-flex;align-items:stretch}
html body.page-admin .workspace-tools-panel .sound-grp .sound-btn{height:38px !important;border-radius:10px 0 0 10px !important;font-size:14px !important;font-weight:800 !important;background:#d1fae5 !important;color:#047857 !important;border:1px solid #6ee7b7 !important;padding:0 12px !important}
html body.page-admin .workspace-tools-panel .sound-grp .sound-btn.off{background:#f1f5f9 !important;color:#64748b !important;border-color:#cbd5e1 !important}
html body.page-admin .workspace-tools-panel .sound-grp .tone-btn{height:38px !important;min-height:38px !important;width:38px;padding:0 !important;border-radius:0 10px 10px 0 !important;border:1px solid #6ee7b7 !important;border-left:0 !important;background:#ecfdf5 !important;font-size:15px}
/* 소리 고르기 창 */
#tonePop{padding:12px !important}
#tonePop .tp-head{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}
#tonePop .tp-head b{font-size:16px;color:#0f172a}
#tonePop .tp-head span{font-size:12.5px;color:#64748b}
#tonePop .tp-row{display:flex;align-items:center;gap:6px;padding:6px;border-radius:12px;border:1.5px solid transparent}
#tonePop .tp-row+.tp-row{margin-top:4px}
#tonePop .tp-row.on{border-color:#2563eb;background:#eff6ff}
#tonePop .tp-pick{flex:1 1 auto;display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:4px 6px;border:0;background:transparent;text-align:left;cursor:pointer;min-width:0}
#tonePop .tp-pick b{font-size:15px;color:#0f172a}
#tonePop .tp-pick small{font-size:12px;color:#64748b}
#tonePop .tp-play{flex:0 0 auto;height:34px;padding:0 10px;border-radius:9px;border:1px solid #93c5fd;background:#eff6ff;color:#1d4ed8;font-size:13px;font-weight:800;cursor:pointer;white-space:nowrap}
#tonePop .tp-play2{border-color:#86efac;background:#f0fdf4;color:#15803d}
/* 견적데이터 목록 탭 = 현황판과 같은 폴더 탭(2026-09-29 오너) */
html body.page-admin .req-tabs.req-folder{display:flex !important;gap:4px !important;margin:0 !important;padding:10px 10px 0 !important;background:#f1f5f9 !important;border-radius:14px 14px 0 0 !important;border-bottom:1px solid #94a3b8 !important}
html body.page-admin .req-folder .req-tab{flex:1 1 0 !important;height:40px !important;margin-bottom:-1px !important;border:1px solid #cbd5e1 !important;border-bottom:0 !important;border-radius:12px 12px 0 0 !important;background:#e2e8f0 !important;color:#64748b !important;font-size:14.5px !important;font-weight:800 !important;box-shadow:none !important}
html body.page-admin .req-folder .req-tab.active{background:#fff !important;color:#1d4ed8 !important;height:44px !important;margin-top:-4px !important;border-color:#94a3b8 !important;border-top:3px solid #2563eb !important;box-shadow:0 -2px 6px rgba(15,23,42,.06) !important}
html body.page-admin .req-folder .req-tab[data-v="종료"].active{color:#475569 !important;border-top-color:#64748b !important}
html body.page-admin .req-folder .req-tab{white-space:nowrap !important;padding:0 6px !important;overflow:hidden;text-overflow:ellipsis}
/* V5.3.0 알림·확인 창 모양 통일(2026-09-29 오너 "팝업 디자인 예쁘게 다듬어서 통일") — 둥근 흰 창 · 파란 머리 · 옅은 회색 버튼 줄 */
html body .modal-back{background:rgba(15,23,42,.45) !important;backdrop-filter:blur(3px)}
html body .modal-back .modal-sheet{border-radius:20px !important;overflow:hidden !important;border:0 !important;box-shadow:0 24px 60px rgba(15,23,42,.30) !important;background:#fff !important}
html body .modal-back .modal-sheet>.confirm-head,html body .modal-back .modal-sheet>.modal-head,html body .modal-back .modal-sheet>.lk-head,html body .modal-back .modal-sheet>.mlink-head,html body .modal-back .modal-sheet>.file-head,html body .modal-back .modal-sheet>.vo-head{background:linear-gradient(135deg,#2563eb,#1d4ed8) !important;color:#fff !important;font-size:17px !important;font-weight:800 !important;padding:16px 20px !important;margin:0 !important;border:0 !important;letter-spacing:-.01em}
html body .modal-back .modal-sheet>.confirm-head *,html body .modal-back .modal-sheet>.modal-head>b,html body .modal-back .modal-sheet>.modal-head>span{color:inherit}
html body .modal-back .modal-sheet .confirm-body,html body .modal-back .modal-sheet .modal-body{padding:16px 20px !important}
html body .modal-back .modal-sheet .confirm-body .muted{color:#64748b !important;font-size:13px !important}
html body .modal-back .modal-sheet .confirm-actions,html body .modal-back .modal-sheet .modal-actions{background:#f8fafc !important;border-top:1px solid #e2e8f0 !important;padding:12px 16px !important;margin:0 !important;gap:10px !important}
html body .modal-back .modal-sheet .confirm-actions button,html body .modal-back .modal-sheet .modal-actions button{height:46px !important;border-radius:12px !important;font-size:15px !important;font-weight:800 !important}
html body .modal-back .modal-sheet .pg-text{border-radius:12px !important;border:1.5px solid #cbd5e1 !important;background:#f8fafc !important;font-size:15px !important;line-height:1.6 !important;padding:12px 14px !important}
html body .modal-back .modal-sheet .pg-text:focus{border-color:#2563eb !important;background:#fff !important;outline:0}
html body .modal-back .modal-sheet>.qpv-head{background:linear-gradient(135deg,#2563eb,#1d4ed8) !important;color:#fff !important;border:0 !important}
html body .modal-back .modal-sheet>.qpv-head b,html body .modal-back .modal-sheet>.qpv-head .qpv-title{color:#fff !important}
html body .modal-back .modal-sheet>.qpv-head *{color:#e0ecff !important}
html body .modal-back .modal-sheet>.qpv-head h3,html body .modal-back .modal-sheet>.qpv-head b,html body .modal-back .modal-sheet>.qpv-head strong{color:#fff !important}
html body .modal-back .modal-sheet>.qpv-head button{color:#1e3a8a !important}
html body .modal-back .modal-sheet .qpv-actions{background:#f8fafc !important;border-top:1px solid #e2e8f0 !important}
/* 운임비·보증금·멸실료 줄은 오른쪽 끝(2026-09-30 오너) */
html body.page-admin #detailPane .ed-tools{justify-content:flex-end !important}
html body.page-admin #detailPane .ed-tools .ed-money{margin-left:auto !important;justify-content:flex-end !important}
/* 자동 저장 표시(2026-09-30) */
html body.page-admin #detailPane .autosave-note{margin-left:auto;font-size:13.5px;font-weight:800;color:#64748b;padding:6px 12px;border-radius:999px;background:#f1f5f9;border:1px solid #e2e8f0;white-space:nowrap}
html body.page-admin #detailPane .autosave-note.ok{color:#047857;background:#ecfdf5;border-color:#a7f3d0}
html body.page-admin #detailPane .autosave-note.bad{color:#b91c1c;background:#fef2f2;border-color:#fecaca}
/* 견적데이터 목록 수정·취소·삭제 크게, 전체 체크 없앰(2026-09-30 오너) */
html body.page-admin .req-oneline #reqModeBtns button{flex:0 0 58px !important;width:58px !important;min-width:58px !important;max-width:58px !important;height:42px !important;font-size:14.5px !important}
html body.page-admin .req-oneline .req-all{display:none !important}
/* V5.3.2 줄무늬 없애기(2026-09-30 오너 "UI 에 줄무늬 생기는 현상") — 바탕을 꽉 채운 버튼·칩은 테두리를 바탕과 같은 색으로
   그리면 화면 배율(125%·150%)에서 테두리와 바탕 경계가 반 칸씩 어긋나 가는 밝은 줄이 생긴다. 테두리를 투명하게 해
   경계선 자체를 없애고, 바탕이 테두리 자리까지 덮게 한다(크기는 그대로). */
html body .cat-btn.active,html body .qq-opt.on,html body .qq-setup-opts .qq-opt.on,html body .pick-cat.on,html body .pick-opt.on,
html body #grade-1.active,html body #grade-2.active,html body #grade-3.active,html body .qq-opt-grade.on,html body .wh-btn.active,
html body .mode-btns button.primary,html body .mode-btns button.danger,html body .mode-btns button.secondary:not(:disabled),
html body button.primary,html body .new-quote,html body .req-tab.active,html body .bf-tab b,html body .cat-btn em,html body .stat .stat-icon,
html body .qty-stepper .step,html body .rowop,html body .tier-set-btn,html body .freight-btn,html body .sound-btn,html body .logout-btn,html body .phone-view-btn{
  background-clip:border-box !important}
html body .cat-btn.active,html body .qq-setup-opts .qq-opt.on,html body .pick-cat.on,html body .wh-btn.active,
html body #grade-1.active,html body #grade-2.active,html body #grade-3.active,html body .mode-btns button.primary,html body .mode-btns button.danger,
html body button.primary:not(.secondary),html body .new-quote{border-color:transparent !important}
html body .cat-btn em,html body .bf-tab b{border:0 !important}
/* 거래처 발주 완료(끝난 단계) 버튼 */
html body.page-admin .smart-bar .action-vdone{background:#0e7490 !important;color:#fff !important;border-color:transparent !important}
html body.page-admin .smart-bar .action-done{background:#ecfdf5 !important;color:#047857 !important;border:1px solid #a7f3d0 !important;opacity:1 !important;cursor:default}
html body.page-admin #detailPane .smart-bar > button{order:0 !important}
html body.page-admin #detailPane .quote-actionbar > button.action-done{background:#ecfdf5 !important;color:#047857 !important;border:1px solid #6ee7b7 !important;opacity:1 !important}
html body.page-admin #detailPane .quote-actionbar > button.action-vdone{background:#0e7490 !important;color:#fff !important;border:1px solid #0e7490 !important}
/* V5.3.5 줄무늬 원인 — 관리자 화면 전체에 '화면 크기' 배율(CSS zoom, 기본 105%)이 걸려 있어 테두리 1px 가 0.95px 같은 소수로 그려진다.
   바탕과 같은 짙은 색 테두리를 그리는 꽉 찬 버튼은 브라우저에 따라 안쪽에 가는 선이 생긴다(2026-09-30 오너 두 번 지적).
   꽉 찬 버튼은 테두리를 아예 그리지 않는다. 흰 바탕 + 색 테두리 버튼(견적 취소 등)은 그대로. */
html body.page-admin .cat-btn.active,
html body.page-admin .set-manage,
html body.page-admin .qq-setup-opts .qq-opt.on,
html body.page-admin .pick-cat.on,
html body.page-admin .grade-buttons button.active,
html body.page-admin .wh-btn.active,
html body.page-admin .mode-btns button:not(:disabled):not(.secondary),
html body.page-admin button.primary,
html body.page-admin .new-quote,
html body.page-admin #detailPane .quote-actionbar > button:not(.action-done):not(.action-cancel),
html body.page-admin .freight-btn,
html body.page-admin .modal-back .confirm-actions button,
html body.page-admin .modal-back .modal-actions button,
html body.page-admin .qpv-actions button,
html body.page-admin .btn-copy-img,
html body.page-admin .btn-copy-text,
html body.page-admin .btn-close,
html body.page-admin .rn-ack,
html body.page-admin .ed-tools > button,
html body.page-admin .updated-note button,
html body.page-admin #updateBar .up-go{border-width:0 !important;border-style:none !important;box-shadow:none}
/* V5.3.6 고객 DB 필터·정렬 줄(2026-09-30 오너) */
html body.page-admin .cust-filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;margin:0 0 8px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}
html body.page-admin .cust-filter-bar .cf-grp{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
html body.page-admin .cust-filter-bar .cf-grp + .cf-grp{padding-left:10px;border-left:1px solid #e2e8f0}
html body.page-admin .cust-filter-bar .cf-lab{font-size:13px;font-weight:700;color:#64748b;margin-right:2px;white-space:nowrap}
html body.page-admin .cust-filter-bar select{height:34px !important;min-height:34px !important;margin:0 !important;width:auto !important;padding:0 28px 0 10px;font-size:14px}
html body.page-admin .cust-filter-bar .cf-chip{height:32px !important;min-height:32px !important;padding:0 12px !important;border-radius:999px !important;border:1.5px solid #cbd5e1 !important;background:#fff !important;color:#334155 !important;font-size:13px !important;font-weight:700;white-space:nowrap;box-shadow:none}
html body.page-admin .cust-filter-bar .cf-chip.on{background:#1d4ed8 !important;border-color:#1d4ed8 !important;color:#fff !important}
html body.page-admin .cust-filter-bar .cf-chip.g1{color:var(--g1) !important;border-color:var(--g1b) !important;background:var(--g1t) !important}
html body.page-admin .cust-filter-bar .cf-chip.g2{color:var(--g2) !important;border-color:var(--g2b) !important;background:var(--g2t) !important}
html body.page-admin .cust-filter-bar .cf-chip.g3{color:var(--g3) !important;border-color:var(--g3b) !important;background:var(--g3t) !important}
html body.page-admin .cust-filter-bar .cf-chip.g1.on{background:var(--g1) !important;border-color:var(--g1) !important;color:#fff !important}
html body.page-admin .cust-filter-bar .cf-chip.g2.on{background:var(--g2) !important;border-color:var(--g2) !important;color:#fff !important}
html body.page-admin .cust-filter-bar .cf-chip.g3.on{background:var(--g3) !important;border-color:var(--g3) !important;color:#fff !important}
html body.page-admin .cust-filter-bar .cf-reset{margin-left:auto;height:32px !important;min-height:32px !important;padding:0 14px !important;border-radius:10px !important;background:#64748b !important;border:0 !important;color:#fff !important;font-size:13px !important;font-weight:700}
html body.page-admin .cust-filter-bar .cf-reset:disabled{background:#e2e8f0 !important;color:#94a3b8 !important}
html body.page-admin .cust-scroll th.th-sort{cursor:pointer;user-select:none;white-space:nowrap}
html body.page-admin .cust-scroll th.th-sort:hover{background:#eef2ff}
html body.page-admin .cust-scroll th.th-sort.on{color:#1d4ed8}
html body.page-admin .cust-scroll th .sort-ar{margin-left:4px;font-size:11px}
html body.page-admin .cust-scroll th .sort-ar.off{color:#cbd5e1}
html body.page-admin .cust-scroll .cell-pick input:disabled{opacity:.35;cursor:not-allowed}
/* V5.3.9 이미지·문구 복사가 있는 창은 [닫기]를 맨 오른쪽(2026-09-30 오너) */
html body .qpv-actions .btn-close.close-end,html body .vo-actions .btn-close.close-end{margin-right:0 !important;margin-left:0 !important;order:99 !important}
html body .vo-actions{justify-content:flex-end !important}
/* V5.4.2 알림·입력 창 크기·글자 통일(2026-09-30 오너 "폰트크기는 같아야지. 통일성있게")
   모든 알림창: 폭 460 · 파란 머리 17px · 첫 줄 질문 19px 굵게 · 설명 16px · 버튼 줄 같은 모양. 입력 창(askForm_)도 같은 틀. */
html body .modal-back .confirm-sheet:not(.pg-sheet),html body .modal-back .ask-sheet{max-width:460px !important;width:calc(100vw - 32px) !important}
html body .modal-back .modal-sheet>.ask-head{background:linear-gradient(135deg,#2563eb,#1d4ed8) !important;color:#fff !important;font-size:17px !important;font-weight:800 !important;padding:16px 20px !important;margin:0 !important;letter-spacing:0 !important}
html body .modal-back .confirm-sheet:not(.pg-sheet):not(.qqc-sheet) .confirm-body{font-size:16px !important;line-height:1.65 !important;color:#475569 !important;padding:18px 22px !important;white-space:pre-line}
html body .modal-back .confirm-sheet:not(.pg-sheet):not(.qqc-sheet) .confirm-body::first-line{font-size:19px !important;font-weight:800 !important;color:#0f172a !important}
html body .modal-back .ask-sheet .ask-desc{font-size:16px !important;line-height:1.65 !important;color:#475569 !important;padding:18px 22px 0 !important;white-space:normal}
html body .modal-back .ask-sheet .ask-desc .ask-q{font-size:19px;font-weight:800;color:#0f172a;margin-bottom:10px}
html body .modal-back .ask-sheet .ask-body{padding:14px 22px 16px !important}
html body .modal-back .ask-sheet .ask-actions{background:#f8fafc !important;border-top:1px solid #e2e8f0 !important;padding:12px 16px !important;margin:0 !important;gap:10px !important}
html body .modal-back .ask-sheet .ask-actions button,html body .modal-back .confirm-sheet .confirm-actions button{min-height:52px !important;height:52px !important;font-size:17px !important;font-weight:800 !important;border-radius:14px !important;flex:1 1 0 !important}
/* V5.4.3 출고 뒤 '사용 중' 칸(2026-09-30 오너) — 임박하면 노랑(5일)·주황(3일)·빨강(지남) */
html body.page-admin .use-panel{margin:12px 0 0;padding:14px 18px;border:1.5px solid #bbf7d0;border-radius:14px;background:#f0fdf4}
html body.page-admin .use-panel.up-wait{border-color:#bfdbfe;background:#eff6ff}
html body.page-admin .use-panel.up-done{border-color:#e2e8f0;background:#f8fafc}
html body.page-admin .use-panel.up-5{border-color:#fde68a;background:#fffbeb}
html body.page-admin .use-panel.up-3{border-color:#fdba74;background:#fff7ed}
html body.page-admin .use-panel.up-over{border-color:#fca5a5;background:#fef2f2}
html body.page-admin .use-panel .up-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:16px;color:#0f172a}
html body.page-admin .use-panel .up-head b{font-size:18px;font-weight:800}
html body.page-admin .use-panel .up-tag{display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:999px;background:#16a34a;color:#fff;font-size:14px;font-weight:800}
html body.page-admin .use-panel.up-wait .up-tag{background:#2563eb}
html body.page-admin .use-panel.up-done .up-tag{background:#64748b}
html body.page-admin .use-panel .up-due{font-size:18px;font-weight:900;color:#15803d}
html body.page-admin .use-panel.up-5 .up-due{color:#b45309}
html body.page-admin .use-panel.up-3 .up-due{color:#c2410c}
html body.page-admin .use-panel.up-over .up-due{color:#dc2626}
html body.page-admin .use-panel .up-sub{font-size:14px;color:#64748b}
html body.page-admin .use-panel .up-ext{margin-top:12px;padding-top:10px;border-top:1px dashed #cbd5e1;display:grid;gap:6px}
html body.page-admin .use-panel .up-ext-title{font-size:14px;font-weight:800;color:#334155}
html body.page-admin .use-panel .up-ext-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:15px;color:#334155}
html body.page-admin .use-panel .up-n{font-weight:800;color:#0f766e;min-width:28px}
html body.page-admin .use-panel .up-amt{font-weight:800;color:#0f172a}
html body.page-admin .use-panel .up-paid{font-size:14px;font-weight:700;color:#15803d}
html body.page-admin .use-panel .up-memo{font-size:13px;color:#64748b}
html body.page-admin .use-panel .up-pay{height:32px !important;min-height:32px !important;padding:0 12px !important;border-radius:10px !important;background:#2563eb !important;border:0 !important;color:#fff !important;font-size:13px !important;font-weight:800}
html body.page-admin .use-panel .up-ext-sum{margin-top:4px;font-size:15px;color:#334155}
html body.page-admin .use-panel .up-due-amt{color:#dc2626;font-weight:800}
html body.page-admin #detailPane .quote-actionbar button.action-received{background:#2563eb !important;border:0 !important;color:#fff !important}
html body.page-admin #detailPane .quote-actionbar button.action-extend{background:#0f766e !important;border:0 !important;color:#fff !important}
/* V5.4.5 4번 구역 '사용 · 반납' — 1·2·3 구역과 같은 틀, 합계 칸과 같은 글자 체계(2026-09-30 오너 "체계적으로") */
html body.page-admin #detailPane .ed-sec-use{--sec:#0891b2;--sec-bg:#ecfeff;padding-bottom:14px}
html body.page-admin #detailPane .ed-sec-use.up-5{--sec:#d97706;--sec-bg:#fffbeb}
html body.page-admin #detailPane .ed-sec-use.up-3{--sec:#ea580c;--sec-bg:#fff7ed}
html body.page-admin #detailPane .ed-sec-use.up-over{--sec:#dc2626;--sec-bg:#fef2f2}
html body.page-admin #detailPane .ed-sec-use.us-done{--sec:#64748b;--sec-bg:#f8fafc}
html body.page-admin #detailPane .ed-sec-use.us-wait{--sec:#2563eb;--sec-bg:#eff6ff}
html body.page-admin #detailPane .ed-sec-use .us-state{margin-left:10px;display:inline-flex;align-items:center;height:26px;padding:0 12px;border-radius:999px;background:var(--sec);color:#fff;font-size:13px;font-weight:800}
html body.page-admin #detailPane .us-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;background:#fff}
html body.page-admin #detailPane .us-stat{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:12px 8px;border-right:1px solid #eef2f7;text-align:center;min-width:0}
html body.page-admin #detailPane .us-stat:last-child{border-right:0}
html body.page-admin #detailPane .us-l{font-size:13px;font-weight:600;color:#64748b}
html body.page-admin #detailPane .us-v{font-size:17px;font-weight:800;color:#0f172a;white-space:nowrap}
html body.page-admin #detailPane .us-due .us-v{color:var(--sec)}
html body.page-admin #detailPane .us-red .us-v{color:#dc2626}
html body.page-admin #detailPane .us-strong .us-v{color:#1d4ed8}
html body.page-admin #detailPane .us-note{margin-top:10px;font-size:15px;color:#475569}
html body.page-admin #detailPane .us-block{margin-top:14px}
html body.page-admin #detailPane .us-bt{font-size:14px;font-weight:800;color:#334155;margin:0 0 6px 2px}
html body.page-admin #detailPane .us-table{width:100%;border-collapse:collapse;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;background:#fff}
html body.page-admin #detailPane .us-table th{white-space:nowrap;background:#f8fafc;font-size:13px;font-weight:700;color:#64748b;padding:8px 10px;border-bottom:1px solid #e2e8f0;text-align:center}
html body.page-admin #detailPane .us-table td{font-size:15px;color:#0f172a;padding:9px 10px;border-bottom:1px solid #f1f5f9;text-align:center;white-space:nowrap}
html body.page-admin #detailPane .us-table tr:last-child td{border-bottom:0}
html body.page-admin #detailPane .us-table td.us-name{text-align:left;font-weight:700;white-space:normal}
html body.page-admin #detailPane .us-table small{font-size:12px;color:#db2777;font-weight:700}
html body.page-admin #detailPane .us-table td.us-left{font-weight:800;color:#0891b2}
html body.page-admin #detailPane .us-table tr.us-row-done td{color:#94a3b8}
html body.page-admin #detailPane .us-table tr.us-row-done td.us-left{color:#16a34a}
html body.page-admin #detailPane .us-table td.us-memo{font-size:13px;color:#64748b;white-space:normal;text-align:left}
html body.page-admin #detailPane .us-ok{font-size:14px;font-weight:700;color:#16a34a}
html body.page-admin #detailPane .us-pay{height:30px !important;min-height:30px !important;padding:0 12px !important;border-radius:9px !important;background:#2563eb !important;border:0 !important;color:#fff !important;font-size:13px !important;font-weight:800}
html body.page-admin #detailPane .us-req{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 12px;padding:12px 14px;border:1.5px solid #fca5a5;border-radius:10px;background:#fef2f2}
html body.page-admin #detailPane .us-req-t{font-size:15px;font-weight:800;color:#b91c1c}
html body.page-admin #detailPane .us-req-t small{font-size:12px;font-weight:600;color:#94a3b8;margin-left:6px}
html body.page-admin #detailPane .us-req-b{font-size:15px;color:#0f172a;flex:1 1 300px}
html body.page-admin #detailPane .us-req-x{height:32px !important;min-height:32px !important;padding:0 12px !important;border-radius:9px !important;background:#fff !important;border:1px solid #fca5a5 !important;color:#b91c1c !important;font-size:13px !important;font-weight:800}
html body.page-admin #detailPane .us-scroll{overflow-x:auto;border-radius:10px}
@media (max-width:760px){html body.page-admin #detailPane .us-v{white-space:normal;font-size:15px}html body.page-admin #detailPane .us-stats{grid-template-columns:repeat(2,minmax(0,1fr))}html body.page-admin #detailPane .us-stat{border-bottom:1px solid #eef2f7}html body.page-admin #detailPane .us-table td,html body.page-admin #detailPane .us-table th{padding:7px 6px;font-size:13px}}
/* 반납 확인 창 — 모두/일부 + 품목별 수량 */
html body .modal-back .ask-sheet.ret-sheet{max-width:680px !important}
html body .ret-sheet .ret-req{margin-top:8px;padding:8px 10px;border-radius:8px;background:#fef2f2;color:#b91c1c;font-size:14px;font-weight:700}
html body .ret-sheet .ret-mode{display:flex;gap:8px;padding:14px 22px 0}
html body .ret-sheet .ret-mode button{flex:1;height:44px;border-radius:12px;border:1.5px solid #cbd5e1;background:#fff;color:#334155;font-size:16px;font-weight:800}
html body .ret-sheet .ret-mode button.on{background:#2563eb;border-color:#2563eb;color:#fff}
html body .ret-sheet .ret-table-wrap{padding:12px 22px 0;max-height:42vh;overflow:auto}
html body .ret-sheet .ret-table{width:100%;border-collapse:collapse;border:1px solid #e2e8f0}
html body .ret-sheet .ret-table th{background:#f8fafc;font-size:13px;font-weight:700;color:#64748b;padding:8px 6px;border-bottom:1px solid #e2e8f0;position:sticky;top:0}
html body .ret-sheet .ret-table td{padding:6px;border-bottom:1px solid #f1f5f9;text-align:center;font-size:15px}
html body .ret-sheet .ret-table td.ret-name{text-align:left}
html body .ret-sheet .ret-table td.ret-name small{display:block;font-size:12px;color:#db2777;font-weight:700}
html body .ret-sheet .ret-table td.ret-left{font-weight:800;color:#0891b2}
html body .ret-sheet .ret-in{width:64px;height:38px;border:1.5px solid #cbd5e1;border-radius:9px;text-align:center;font-size:16px;font-weight:800;color:#0f172a}
html body .ret-sheet .ret-extra{display:grid !important;grid-template-columns:1fr 1fr;gap:10px 12px !important}
html body .ret-sheet .ret-extra .ret-note{grid-column:1/-1}
html body .ret-sheet .ret-extra input{min-height:42px !important;font-size:15px !important}
/* V5.4.5 고객 내 주문 조회 — 임대중 표시 · 반납하기(모두/일부 + 나머지 연장) */
html body .mo-status.mo-use{background:#dcfce7;color:#15803d}
html body .mo-status.mo-use-req{background:#fee2e2;color:#b91c1c}
html body .mo-status.mo-use-done{background:#f1f5f9;color:#475569}
html body .mo-rent{margin-top:6px;font-size:14px;color:#334155}
html body .mo-rent b{color:#0f172a}
html body .mo-item .mo-return{display:block;width:100%;height:44px;margin-top:10px;border-radius:10px;border:0;background:#16a34a;color:#fff;font-size:16px;font-weight:800}
html body .rt-back{align-items:flex-start !important}
html body .rt-sheet{position:fixed !important;left:50%;transform:translateX(-50%);top:0;width:min(520px,100%);max-height:100vh;display:flex;flex-direction:column;border-radius:0 0 18px 18px !important;margin:0 !important}
html body .rt-head{display:flex;align-items:center;justify-content:space-between;font-size:18px;font-weight:800}
html body .rt-body{overflow:auto;display:flex;flex-direction:column;gap:12px;padding:14px 16px 20px !important}
html body .rt-period{font-size:15px;color:#334155}
html body .rt-period b{color:#0f172a}
html body .rt-pending{padding:10px 12px;border-radius:10px;background:#fef2f2;color:#b91c1c;font-size:14px;font-weight:700}
html body .rt-mode{display:grid;grid-template-columns:1fr 1fr;gap:10px}
html body .rt-mode button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 8px;border-radius:14px;border:2px solid #cbd5e1;background:#fff;color:#0f172a}
html body .rt-mode button b{font-size:17px}
html body .rt-mode button small{font-size:13px;color:#64748b}
html body .rt-mode button.on{border-color:#16a34a;background:#f0fdf4}
html body .rt-mode button.on b{color:#15803d}
html body .rt-title{font-size:14px;font-weight:800;color:#334155;margin:4px 0 6px}
html body .rt-items{display:flex;flex-direction:column;gap:8px}
html body .rt-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border:1.5px solid #e2e8f0;border-radius:12px;background:#fff}
html body .rt-item.on{border-color:#16a34a;background:#f0fdf4}
html body .rt-name{display:flex;flex-direction:column;min-width:0}
html body .rt-name b{font-size:15px;color:#0f172a}
html body .rt-name small{font-size:12px;color:#db2777;font-weight:700}
html body .rt-name em{font-style:normal;font-size:13px;color:#64748b}
html body .rt-step{display:flex;align-items:center;gap:4px;flex:none}
html body .rt-step button{width:38px;height:38px;border-radius:10px;border:0;font-size:20px;font-weight:800}
html body .rt-step .rt-minus{background:#fee2e2;color:#dc2626}
html body .rt-step .rt-plus{background:#dbeafe;color:#1d4ed8}
html body .rt-step .rt-all{width:auto;padding:0 10px;font-size:13px;background:#f1f5f9;color:#334155}
html body .rt-step .rt-q{min-width:32px;text-align:center;font-size:18px;font-weight:800}
html body .rt-ext{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
html body .rt-ext button{height:40px;border-radius:10px;border:1.5px solid #cbd5e1;background:#fff;font-size:14px;font-weight:700;color:#334155}
html body .rt-ext button.on{border-color:#0891b2;background:#ecfeff;color:#0e7490}
html body .rt-lab{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:700;color:#334155}
html body .rt-lab input{height:44px;border:1.5px solid #cbd5e1;border-radius:10px;padding:0 12px;font-size:16px}
html body .rt-go{width:100%;height:52px;font-size:17px;font-weight:800;border-radius:12px}
html body .rt-help{font-size:13px;color:#64748b;text-align:center}
html body .rt-done{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 0;text-align:center}
html body .rt-done-i{width:56px;height:56px;border-radius:50%;background:#16a34a;color:#fff;font-size:30px;display:flex;align-items:center;justify-content:center}
html body .rt-done b{font-size:18px}
html body .rt-done p{margin:0;color:#64748b}
/* V5.4.6 아래 버튼 줄(2026-09-30 오너): [현재 견적서 보기]만 왼쪽에 따로(세로 줄로 구분), 나머지 단계 버튼과 [견적 취소]는 그 바로 옆에 붙여서 */
html body.page-admin #detailPane .smart-bar > button.action-preview{position:relative;margin-right:18px !important}
html body.page-admin #detailPane .smart-bar > button.action-preview::after{content:'';position:absolute;right:-14px;top:8px;bottom:8px;width:2px;border-radius:2px;background:#cbd5e1;pointer-events:none}
html body.page-admin #detailPane .smart-bar > button.action-preview:last-child{margin-right:0 !important}
html body.page-admin #detailPane .smart-bar > button.action-preview:last-child::after{display:none}
html body.page-admin #detailPane .smart-bar > button.action-cancel{margin-left:0 !important}
/* V5.4.6 날짜 칸: 달력 버튼을 날짜 바로 옆에, 조금 크게(2026-09-30 오너 "날짜랑 달력버튼이 너무 떨어져") */
html body input[type=date]::-webkit-calendar-picker-indicator{width:26px;height:26px;margin-left:10px;padding:2px;cursor:pointer;opacity:.85;border-radius:6px}
html body input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1;background:#eff6ff}
/* V5.4.6 달력 통일(2026-09-30 오너 "달력버튼들 모두 통일해 버튼 좀 크게하고 누르면 달력좀 크게") */
html body #calPop{z-index:5000 !important;padding:14px !important}
html body #calPop .cal-head{margin-bottom:10px}
html body #calPop .cal-head b{font-size:18px}
html body #calPop .cal-head button{width:42px;height:42px;font-size:22px}
html body #calPop .cal-dow span{font-size:13px;padding:5px 0}
html body #calPop .cal-grid{gap:4px}
html body #calPop .cal-cell{height:42px;font-size:16px;border-radius:10px}
html body #calPop .cal-foot button{height:40px;font-size:15px;padding:0 16px}
html body .date-field.date-auto input[type=date]::-webkit-calendar-picker-indicator{display:none}
html body .rt-date{position:relative;display:flex}
html body .rt-date input{flex:1;padding-right:56px !important;background:#fff;cursor:pointer}
html body .rt-date .rt-cal{position:absolute;right:4px;top:0;bottom:0;margin:auto 0;width:44px;height:40px;border:1px solid #e2e8f0;border-radius:9px;background:#f1f5f9;font-size:21px}
html body .cust-cal{z-index:6000 !important;padding:12px !important}
html body .cust-cal .cc-head b{font-size:18px}
html body .cust-cal .cc-head button{width:42px;height:42px;font-size:22px}
html body .cust-cal .cc-cell{height:44px;font-size:16px}
/* V5.4.7 날짜 칸 + 달력 버튼 — 어느 화면에 들어가도 칸 모양이 안 깨지게(2026-09-30 오너 "UI가 엉망이 됐네")
   칸은 원래 자리 폭을 그대로 쓰고, 버튼은 칸 안 오른쪽에 칸 높이에 맞춰 들어간다(칸보다 커지지 않는다). */
html body .date-field.date-auto{position:relative !important;display:flex !important;align-items:stretch;width:100% !important;max-width:none !important;min-width:0 !important;margin:0 !important;padding:0 !important;border:0 !important;background:none !important;box-shadow:none !important;flex:1 1 auto}
html body .toolbar .date-field.date-auto,html body .settle-row .date-field.date-auto{width:auto !important;flex:0 0 190px}
html body .date-field.date-auto > input[type=date]{flex:1 1 auto !important;width:100% !important;min-width:0 !important;max-width:none !important;margin:0 !important;padding-right:46px !important;box-sizing:border-box}
html body .date-field > .cal-btn{position:absolute !important;right:3px !important;top:3px !important;bottom:3px !important;margin:0 !important;height:auto !important;width:40px !important;max-height:44px;min-height:0 !important;min-width:0 !important;padding:0 !important;display:flex !important;align-items:center;justify-content:center;font-size:20px !important;line-height:1 !important;border-radius:8px !important;border:1px solid #e2e8f0 !important;background:#f1f5f9 !important;transform:none !important;box-shadow:none !important}
html body .date-field > .cal-btn:hover{background:#e0ecff !important;border-color:#bfdbfe !important}
html body .date-field > input[type=text]{padding-right:48px !important}
/* 임대 시작·종료 칸: 달력 버튼이 들어가도 날짜가 다 보이게 폭을 넓힌다 */
html body.page-admin .estimate-fields .fw-date{width:176px !important}
html body .date-field.date-auto > input[type=date]{padding-right:44px !important;font-variant-numeric:tabular-nums}
html body .date-field.date-auto > input[type=date]::-webkit-inner-spin-button,html body .date-field.date-auto > input[type=date]::-webkit-clear-button{display:none}
/* 사용·반납 칸: 긴 날짜(임대 기간)는 줄을 바꿔 칸 밖으로 나가지 않게 */
html body.page-admin #detailPane .us-v{white-space:normal;overflow-wrap:anywhere}
/* V5.4.7 전체 화면 점검(2026-09-30 오너 "전체 UI들 전부 검토") */
html body.page-admin .user-card .uf-role{flex:0 0 132px !important;width:132px !important}
html body.page-admin .cust-scroll td.row-more{padding:4px 6px !important}
html body.page-admin .cust-scroll td.row-more button{min-width:0 !important;width:100%;padding:0 8px !important}
/* 폰 화면(폭 760 이하): 뒤에 덧붙인 PC용 메뉴 규칙이 폰 규칙을 덮어 메뉴 버튼이 겹치고 검색 줄이 밖으로 나갔다 */
@media (max-width:760px){
  html body.page-admin.mcards .workspace-tools-panel{display:flex !important;flex-wrap:wrap !important;overflow:visible !important;gap:6px !important;width:100% !important;justify-content:flex-start !important}
  html body.page-admin.mcards .workspace-tools-panel>button,html body.page-admin.mcards .workspace-tools-panel>.zoom-ctl{flex:1 1 auto !important;min-width:0 !important;font-size:13px !important;white-space:nowrap}
  html body.page-admin.mcards .admin-topnav .nav-cats{display:flex !important;flex-wrap:wrap !important;overflow:visible !important;width:100% !important;gap:6px !important;padding:0 !important}
  html body.page-admin.mcards .admin-topnav .nav-group{display:contents !important}
  html body.page-admin.mcards .admin-topnav .nav-cats .nav-home,html body.page-admin.mcards .admin-topnav .nav-cats .nav-cat{flex:1 1 0 !important;min-width:0 !important;padding:8px 4px !important;gap:4px !important;font-size:15px !important;min-height:44px !important;white-space:nowrap !important;justify-content:center !important;overflow:hidden}
  html body.page-admin.mcards .admin-topnav .nav-cats .ui-icon,html body.page-admin.mcards .admin-topnav .nav-cats svg{flex:none !important;width:17px !important;height:17px !important}
  html body.page-admin.mcards .admin-topnav .nav-items{display:flex !important;order:9;flex:1 1 100% !important;width:100% !important;flex-wrap:wrap !important;overflow:visible !important;gap:4px !important;padding:5px !important;box-sizing:border-box}
  html body.page-admin.mcards .admin-topnav .nav-items button{flex:1 1 auto !important;min-width:0 !important;min-height:42px !important;padding:6px 8px !important;font-size:14px !important;white-space:nowrap !important}
  html body.page-admin.mcards .admin-topnav .nav-utility{flex:1 1 100% !important;order:10}
  html body.page-admin.mcards .board-panel .bt-grouped{flex-wrap:wrap !important}
  html body.page-admin.mcards .bt-grouped .bt-grp{flex:1 1 100% !important;flex-wrap:wrap !important;min-width:0 !important}
  html body.page-admin.mcards .bt-grouped .bt-find #boardSearch{flex:1 1 100% !important;min-width:0 !important}
  html body.page-admin.mcards .bt-grouped .bt-misc{justify-content:flex-end}
  html body.page-admin.mcards .cust-toolbar{flex-wrap:wrap !important}
  html body.page-admin.mcards .cust-toolbar #customerSearch{flex:1 1 100% !important;min-width:0 !important}
  html body.page-admin.mcards .cust-filter-bar .cf-grp + .cf-grp{border-left:0;padding-left:0}
}
@media (max-width:760px){
  /* 폰 폭 머리: 로고 한 줄, 도구 버튼은 그 아래 두 개씩(세로로 길게 쌓이던 것) */
  html body.page-admin.mcards .admin-header{display:flex !important;flex-wrap:wrap !important;align-items:center !important;gap:6px !important}
  html body.page-admin.mcards .admin-header .hd-id{flex:1 1 auto !important;min-width:0 !important}
  html body.page-admin.mcards .admin-header .workspace-account{flex:0 0 auto !important}
  html body.page-admin.mcards .workspace-tools{display:block !important;flex:1 1 100% !important;width:100% !important}
  html body.page-admin.mcards .workspace-tools-panel{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:6px !important}
  html body.page-admin.mcards .workspace-tools-panel>*{grid-column:auto !important;min-width:0 !important;width:auto !important;margin:0 !important;justify-content:center !important;font-size:13px !important;min-height:38px !important;overflow:hidden}
  html body.page-admin.mcards .workspace-tools-panel>.zoom-ctl{grid-column:1/-1 !important;display:flex !important;justify-content:center !important}
  html body.page-admin.mcards .workspace-tools-panel>.zoom-ctl .zoom-name{display:inline !important}
  html body.page-admin.mcards .workspace-tools-panel .ui-icon,html body.page-admin.mcards .workspace-tools-panel svg{flex:none !important;width:15px !important;height:15px !important}
  html body.page-admin.mcards .cust-toolbar>#customerModeBtns{flex:1 1 100% !important;min-width:0 !important}
  html body.page-admin.mcards .cust-toolbar #customerSearch{width:100% !important;max-width:none !important}
  html body.page-admin.mcards .btn-group{flex-wrap:wrap !important;max-width:100%}
  html body.page-admin.mcards #gradeRate,html body.page-admin.mcards .grade-rate{flex-wrap:wrap !important;max-width:100% !important;min-width:0 !important}
  html body.page-admin.mcards .product-toolbar{flex-wrap:wrap !important}
}
@media (max-width:760px){
  html body.page-admin #detailPane .ed-sec>.ed-sec-h,html body.page-admin #detailPane .ed-sec-items>.ip-bar{margin-left:-10px !important;margin-right:-10px !important;padding-left:10px !important;padding-right:10px !important}
  html body.page-admin.mcards .grade-rate .gr-value{min-width:0 !important;max-width:100%}
  html body.page-admin.mcards .grade-rate .gr-value input{width:56px !important;min-width:0 !important}
  html body.page-admin.mcards .product-toolbar #gradeRate{flex:1 1 100% !important;width:100% !important;margin:0 !important}
}
/* V5.4.8 정돈(2026-09-30 오너 "견적취소는 빨간버튼 · 칸이 너무 넓으면 한눈에 안들어와 · 선 정렬·분류해서 심플하게") */
html body.page-admin #detailPane .smart-bar > button.action-cancel{background:#dc2626 !important;border:0 !important;color:#fff !important}
html body.page-admin #detailPane .smart-bar > button.action-cancel:hover{background:#b91c1c !important}
/* 사용·반납: 칸은 내용만큼만, 왼쪽부터 가지런히 */
html body.page-admin #detailPane .us-stats{grid-template-columns:repeat(auto-fill,minmax(150px,200px)) !important;justify-content:start;width:max-content;max-width:100%}
html body.page-admin #detailPane .us-stat{border-right:1px solid #eef2f7 !important;padding:10px 16px}
html body.page-admin #detailPane .us-blocks{display:flex;flex-wrap:wrap;gap:14px 20px;align-items:flex-start;margin-top:14px}
html body.page-admin #detailPane .us-blocks .us-block{margin-top:0;flex:0 1 auto;max-width:100%}
html body.page-admin #detailPane .us-blocks .us-table{width:auto !important;min-width:0}
html body.page-admin #detailPane .us-blocks .us-table th,html body.page-admin #detailPane .us-blocks .us-table td{padding:8px 14px}
html body.page-admin #detailPane .us-blocks .us-table td.us-name{min-width:200px;max-width:340px}
html body.page-admin #detailPane .us-blocks .us-table td.us-memo{max-width:220px}
@media (max-width:760px){html body.page-admin #detailPane .us-stats{width:auto;grid-template-columns:repeat(2,minmax(0,1fr)) !important}html body.page-admin #detailPane .us-blocks .us-block{flex:1 1 100%}}
@media (min-width:761px){
  html body.page-admin #detailPane .us-stats{grid-template-columns:none !important;grid-auto-flow:column;grid-auto-columns:max-content;width:max-content;max-width:100%;overflow-x:auto}
  html body.page-admin #detailPane .us-stat{padding:10px 26px !important;min-width:120px}
  html body.page-admin #detailPane .us-v{white-space:nowrap !important}
}
/* V5.4.9 사용·반납 표에 세로줄 — 칸마다 확실히 갈라 한눈에(2026-10-01 오너 "세로로도 선 제대로 그어서") */
html body.page-admin #detailPane .us-table{border-collapse:separate !important;border-spacing:0;border:1px solid #cbd5e1 !important;border-radius:10px;overflow:hidden}
html body.page-admin #detailPane .us-table th{background:#f1f5f9 !important;color:#475569 !important;font-weight:800 !important;border-bottom:1px solid #cbd5e1 !important;border-right:1px solid #e2e8f0}
html body.page-admin #detailPane .us-table td{border-bottom:1px solid #e2e8f0 !important;border-right:1px solid #e2e8f0}
html body.page-admin #detailPane .us-table th:last-child,html body.page-admin #detailPane .us-table td:last-child{border-right:0}
html body.page-admin #detailPane .us-table tbody tr:last-child td{border-bottom:0 !important}
html body.page-admin #detailPane .us-table tbody tr:nth-child(even) td{background:#fafbfc}
html body.page-admin #detailPane .us-stats{border:1px solid #cbd5e1 !important}
html body.page-admin #detailPane .us-stat{border-right:1px solid #e2e8f0 !important}
html body.page-admin #detailPane .us-stat:last-child{border-right:0 !important}
html body.page-admin #detailPane .us-bt{font-size:15px !important;margin-bottom:8px !important}
/* 거래 종료 버튼도 다른 단계 버튼처럼 꽉 찬 한 색(테두리 없음) */
html body.page-admin #detailPane .smart-bar > button.action-finish{background:#0f766e !important;border:0 !important;color:#fff !important}
/* V5.5.0 사용·반납 배치(2026-10-01 오너 "임대기간 표도 위에 선 · 왼쪽 쏠림 없이 공간 낭비 없게")
   요약 칸 = 아래 표와 같은 모양(위 이름 줄 회색 띠 + 선, 아래 값). 요약은 구역 폭 전체, 두 표는 반반으로 나란히. */
html body.page-admin #detailPane .us-stats{display:grid !important;grid-auto-flow:row !important;grid-template-columns:repeat(auto-fit,minmax(130px,1fr)) !important;grid-auto-columns:auto !important;width:100% !important;max-width:none !important;border:1px solid #cbd5e1 !important;border-radius:10px;overflow:hidden}
html body.page-admin #detailPane .us-stat{padding:0 !important;gap:0 !important;min-width:0 !important;justify-content:flex-start !important}
html body.page-admin #detailPane .us-stat .us-l{display:block;width:100%;padding:8px 6px;background:#f1f5f9;border-bottom:1px solid #cbd5e1;font-size:13px;font-weight:800;color:#475569;text-align:center}
html body.page-admin #detailPane .us-stat .us-v{display:block;width:100%;padding:12px 8px;text-align:center}
html body.page-admin #detailPane .us-blocks{display:grid !important;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;align-items:start;width:100%}
html body.page-admin #detailPane .us-blocks .us-block{min-width:0;max-width:none !important}
html body.page-admin #detailPane .us-blocks .us-block:only-child{grid-column:1/-1}
html body.page-admin #detailPane .us-blocks .us-table{width:100% !important}
html body.page-admin #detailPane .us-blocks .us-table td.us-name{min-width:0 !important;max-width:none !important}
@media (max-width:1100px){html body.page-admin #detailPane .us-blocks{grid-template-columns:minmax(0,1fr)}}
html body.page-admin #detailPane .quote-actionbar.smart-bar > button.action-finish{border:0 !important;box-shadow:none !important;outline:0 !important}
/* V5.5.1 견적 취소 창: [취소] [견적 취소(주황)] [데이터 삭제(빨강)] */
html body .modal-back .confirm-sheet .confirm-actions button#confirmOk.cd-cancel{background:#ea580c !important;border:0 !important;color:#fff !important}
html body .modal-back .confirm-sheet .confirm-actions button#confirmOk.cd-cancel:hover{background:#c2410c !important}
html body .modal-back .confirm-sheet .confirm-actions button.cd-delete{background:#dc2626 !important;border:0 !important;color:#fff !important}
html body .modal-back .confirm-sheet .confirm-actions button.cd-delete:hover{background:#b91c1c !important}
/* V5.5.2 견적 상세 품목 표: 어떤 품목이든 줄 높이 하나(2026-10-01 오너 "크기가 서로 다르니까 공간이 다르잖아")
   '지난 …원' 힌트가 있는 줄만 높아지던 것 — 모든 줄을 같은 높이로 두고 힌트는 그 안에 작게. */
html body.page-admin #detailPane table.edit-items tbody td{height:62px !important;padding-top:4px !important;padding-bottom:4px !important;vertical-align:middle !important;box-sizing:border-box}
html body.page-admin #detailPane table.edit-items tbody td.col-item{line-height:1.25}
html body.page-admin #detailPane table.edit-items tbody td.col-item b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body.page-admin #detailPane table.edit-items tbody td.col-item .i-spec{display:block;margin-top:2px}
html body.page-admin #detailPane table.edit-items td.col-applied .price-hints{display:block !important;margin-top:3px !important;line-height:1.15;white-space:nowrap}
html body.page-admin #detailPane table.edit-items td.col-applied .p-hint{font-size:11.5px !important;padding:1px 6px !important}
html body.page-admin #detailPane table.edit-items td.col-applied .applied-input{height:34px !important}
/* 반납 확인 창: 표 머리가 맨 위에 붙을 때 그 위로 숫자가 비치지 않게 — 스크롤 칸 안쪽 위 여백을 없애고 머리를 불투명하게 */
html body .ret-sheet .ret-table-wrap{padding:0 !important;margin:12px 22px 0 !important;border:1px solid #cbd5e1;border-radius:10px;max-height:42vh;overflow:auto}
html body .ret-sheet .ret-table{border:0 !important;border-collapse:separate !important;border-spacing:0}
html body .ret-sheet .ret-table thead th{position:sticky;top:0;z-index:3;background:#f1f5f9 !important;border-bottom:1px solid #cbd5e1 !important;box-shadow:0 1px 0 #cbd5e1}
html body .ret-sheet .ret-table td{height:58px;vertical-align:middle}
html body .ret-sheet .ret-table td.ret-name b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}
/* V5.5.3 관리자 폰 화면 정돈(2026-10-01 오너 "1번이 가려진다 · 뒤에 보인다 · 정렬 · 위아래 선") */
@media (max-width:760px){
  /* 메뉴 버튼의 숫자 표시가 잘리지 않게 — 버튼 오른쪽 위 모서리에 */
  html body.page-admin.mcards .admin-topnav .nav-cats .nav-home,html body.page-admin.mcards .admin-topnav .nav-cats .nav-cat{overflow:visible !important;position:relative !important}
  html body.page-admin.mcards .admin-topnav .nav-cats .nav-badge{position:absolute !important;top:-8px;right:-6px;margin:0 !important;z-index:3;min-width:20px;height:20px;line-height:20px !important;padding:0 5px !important;border-radius:10px;font-size:11px !important;background:#dc2626 !important;color:#fff !important;box-shadow:0 0 0 2px #fff}
  /* 현황판 탭 뒤에 비치던 단계 개수는 폰에서 숨기고, 탭 둘은 반반 */
  html body.page-admin.mcards .bf-head .bf-stats{display:none !important}
  html body.page-admin.mcards .bf-head .bf-tabs{display:flex !important;width:100% !important;gap:6px}
  html body.page-admin.mcards .bf-head .bf-tab{flex:1 1 0 !important;min-width:0 !important;justify-content:center !important;white-space:nowrap;overflow:hidden}
  /* 현황판 도구 줄: 상자 안 상자를 없애고 선으로 나눈 세 줄 */
  html body.page-admin.mcards .board-panel .bt-grouped{display:grid !important;grid-template-columns:minmax(0,1fr) !important;gap:0 !important;padding:0 !important}
  html body.page-admin.mcards .bt-grouped .bt-grp{background:transparent !important;border:0 !important;border-radius:0 !important;padding:10px 12px !important;margin:0 !important;width:auto !important}
  html body.page-admin.mcards .bt-grouped .bt-grp + .bt-grp{border-top:1px solid #e2e8f0 !important}
  html body.page-admin.mcards .bt-grouped #boardModeBtns{display:block !important;width:100% !important}
  html body.page-admin.mcards .bt-grouped #boardModeBtns .btn-group{display:grid !important;grid-template-columns:repeat(4,minmax(0,1fr)) !important;gap:6px !important;width:100% !important;padding:0 !important;border:0 !important;background:none !important}
  html body.page-admin.mcards .bt-grouped #boardModeBtns button{width:100% !important;min-width:0 !important;height:42px !important}
  html body.page-admin.mcards .bt-grouped .bt-find{display:grid !important;grid-template-columns:minmax(0,1fr) auto !important;gap:8px !important;align-items:center}
  html body.page-admin.mcards .bt-grouped .bt-find #boardSearch{grid-column:1/-1 !important;width:100% !important;height:42px !important}
  html body.page-admin.mcards .bt-grouped .bt-find select{width:100% !important;height:42px !important}
  html body.page-admin.mcards .bt-grouped .bt-misc{display:flex !important;align-items:center;justify-content:flex-end;gap:8px}
  html body.page-admin.mcards .bt-grouped .bt-misc #boardCount{margin-right:auto}
  html body.page-admin.mcards .bt-grouped .bt-misc button{height:40px !important;min-height:40px !important}
  /* 새 견적서 입력: 이름 칸 폭을 하나로, 고르는 버튼은 칸을 똑같이 나눠 위아래가 딱 맞게 */
  html body.page-admin.mcards .qq-setup{display:block !important;padding:0 !important}
  html body.page-admin.mcards .qq-setup-row{display:grid !important;grid-template-columns:40px minmax(0,1fr) !important;align-items:center !important;gap:8px !important;padding:8px 10px !important;margin:0 !important}
  html body.page-admin.mcards .qq-setup-row + .qq-setup-row{border-top:1px solid #e2e8f0 !important}
  html body.page-admin.mcards .qq-setup-label{width:auto !important;padding:0 !important;text-align:left !important;font-size:13px !important}
  html body.page-admin.mcards .qq-setup-opts{display:grid !important;grid-auto-flow:column !important;grid-auto-columns:minmax(0,1fr) !important;width:100% !important;margin:0 !important}
  html body.page-admin.mcards .qq-setup-opts > *{width:100% !important;min-width:0 !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;justify-content:center}
  html body.page-admin.mcards #qCatBar{display:grid !important;grid-template-columns:repeat(3,minmax(0,1fr)) !important;gap:6px !important}
  html body.page-admin.mcards #qCatBar .cat-btn{width:100% !important;min-width:0 !important;margin:0 !important;justify-content:space-between !important}
  /* 아래 합계: 두 칸씩 선으로 나눈 표 + 총 금액 한 줄, 버튼 둘은 반반 */
  html body.page-admin.mcards .quick-actionbar .qab-inner{display:flex !important;flex-direction:column !important;gap:10px !important;align-items:stretch !important}
  html body.page-admin.mcards .quick-totals{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:0 !important;border:1px solid #cbd5e1 !important;border-radius:10px;overflow:hidden;width:100% !important;margin:0 !important}
  html body.page-admin.mcards .quick-totals .tot{display:flex !important;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:8px 4px !important;margin:0 !important;border:0 !important;border-bottom:1px solid #e2e8f0 !important;min-width:0 !important}
  html body.page-admin.mcards .quick-totals .tot:nth-child(odd):not(.grand){border-right:1px solid #e2e8f0 !important}
  html body.page-admin.mcards .quick-totals .tot.grand{grid-column:1/-1 !important;border-bottom:0 !important;background:#eff6ff}
  html body.page-admin.mcards .quick-totals .tot::before,html body.page-admin.mcards .quick-totals .tot::after{display:none !important}
  html body.page-admin.mcards .quick-actionbar .qab-buttons{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:8px !important;width:100% !important;margin:0 !important}
  html body.page-admin.mcards .quick-actionbar .qab-buttons button{width:100% !important;min-width:0 !important;height:50px !important;margin:0 !important;font-size:15px !important;white-space:normal;line-height:1.2}
}
@media (max-width:760px){
  html body.page-admin.mcards #qCatBar .cat-btn{display:flex !important;align-items:center !important;gap:4px !important;padding:0 8px !important;overflow:hidden !important;white-space:nowrap !important}
  html body.page-admin.mcards #qCatBar .cat-btn em{flex:none !important;margin-left:auto !important;padding:0 7px !important}
}
@media (max-width:760px){
  html body.page-admin.mcards .bf-head .bf-tab{font-size:14px !important;padding:0 8px !important;gap:4px !important}
  html body.page-admin.mcards #qCatBar .cat-btn{font-size:14px !important}
}
@media (max-width:760px){
  /* 합계: PC용 고정 폭(72·160·150·220px)을 풀고 2칸 표 + 총 금액 한 줄 */
  html body.page-admin.mcards .quick-actionbar .qab-inner #qTotals.quick-totals{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;width:100% !important;flex:none !important;justify-content:stretch !important}
  html body.page-admin.mcards .quick-actionbar #qTotals.quick-totals .tot{width:auto !important;flex:none !important;border-left:0 !important;padding:8px 4px !important}
  html body.page-admin.mcards .quick-actionbar .qab-buttons button{font-size:14px !important;white-space:nowrap !important;padding:0 6px !important}
  /* 세트 줄(flex 줄 바꿈): [수량 지우기] / [기본세트][1단][2단][3단 풀] / [불러오기 ▾] / [세트저장][세트 관리] */
  html body.page-admin.mcards #quickQuoteRoot .qq-tools > input,html body.page-admin.mcards #quickQuoteRoot .qq-tools .qq-tools-sp{display:none !important}
  html body.page-admin.mcards #quickQuoteRoot .qq-tools{display:flex !important;flex-wrap:wrap !important;gap:8px !important;align-items:center !important;padding:10px !important;grid-template-columns:none !important}
  html body.page-admin.mcards #quickQuoteRoot .qq-tools > *{grid-column:auto !important}
  html body.page-admin.mcards #quickQuoteRoot .qq-tools .qq-clear{flex:0 0 auto !important;margin:0 !important}
  html body.page-admin.mcards #quickQuoteRoot .qq-tools .qq-clear::after{content:'';}
  html body.page-admin.mcards #quickQuoteRoot .qq-tools .pl-lab{flex:0 0 100% !important;margin:0 !important;padding:6px 0 0 !important;border-top:1px solid #e2e8f0 !important;font-size:13px !important}
  html body.page-admin.mcards #quickQuoteRoot .qq-tools .tier-set-btn{flex:1 1 0 !important;width:auto !important;min-width:0 !important;margin:0 !important;padding:0 4px !important;font-size:13px !important;white-space:nowrap;height:40px !important}
  html body.page-admin.mcards #quickQuoteRoot .qq-tools .set-pick{flex:0 0 100% !important;display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;grid-auto-flow:row !important;gap:8px !important;width:100% !important;margin:0 !important;padding:8px 0 0 !important;border-top:1px solid #e2e8f0}
  html body.page-admin.mcards #quickQuoteRoot .qq-tools .set-pick #qTemplate{grid-column:1/-1 !important;width:100% !important;min-width:0 !important;height:42px !important;margin:0 !important}
  html body.page-admin.mcards #quickQuoteRoot .qq-tools .set-pick .set-manage{width:100% !important;min-width:0 !important;margin:0 !important;height:42px !important;font-size:13px !important;white-space:nowrap;padding:0 4px !important}
}
}
@media (max-width:760px){
  html body.page-admin.mcards #quickQuoteRoot .qq-tools .set-pick > :first-child{grid-column:1 / span 2 !important;width:100% !important;max-width:none !important}
  html body.page-admin.mcards #quickQuoteRoot .qq-tools .set-pick select{width:100% !important;max-width:none !important}
}
@media (max-width:760px){
  html body.page-admin.mcards #quickQuoteRoot #qTemplate{grid-column:1 / span 2 !important;width:100% !important;max-width:none !important;min-width:0 !important;flex:none !important}
}
/* V5.5.6 시스템관리 안쪽 탭 — 설정 탭과 같은 모양 */
html body.page-admin .sys-tabs{position:sticky;top:0;z-index:5;display:flex;gap:6px;padding:8px;margin-bottom:14px;background:#f1f5f9;border-radius:12px;overflow-x:auto}
html body.page-admin .sys-tab{flex:0 0 auto;height:42px;padding:0 18px;border-radius:10px;border:0;background:transparent;color:#475569;font-size:15px;font-weight:700;white-space:nowrap}
html body.page-admin .sys-tab.active{background:#fff;color:#1d4ed8;box-shadow:0 1px 3px rgba(15,23,42,.12)}
html body.page-admin .sys-pane{padding:4px 2px}
html body.page-admin .sys-pane .set-title.sys-sub{margin-top:26px;padding-top:18px;border-top:1px solid #e2e8f0}
html body.page-admin .sys-pane .report-cards{margin-bottom:14px}
html body.page-admin .sys-pane .admin-actions{margin:0 0 12px;flex-wrap:wrap}
html body.page-admin .sys-pane .toolbar{margin-bottom:12px}
/* V5.5.7 맨 위 도구 버튼 색 정돈(2026-10-02 오너 "너무 알록달록 — 톤앤매너 지키면서 다양하게")
   바탕은 모두 같은 옅은 회청 계열, 글자·아이콘 색만 같은 파랑 계열 안에서 조금씩 다르게. 로그아웃만 옅은 빨강 글자. */
html body.page-admin .workspace-tools-panel>button.phone-view-btn,html body.page-admin .workspace-tools-panel>button.sound-btn,html body.page-admin .workspace-tools-panel>button.logout-btn,html body.page-admin .workspace-tools-panel .sound-grp .sound-btn{background:#f8fafc !important;border:1px solid #dbe3ee !important;box-shadow:none !important;font-weight:700 !important}
html body.page-admin .workspace-tools-panel>button.pv-handoff{color:#1d4ed8 !important}
html body.page-admin .workspace-tools-panel>button.pv-quote{color:#4338ca !important}
html body.page-admin .workspace-tools-panel>button.pv-admin{color:#334155 !important}
html body.page-admin .workspace-tools-panel>button.pv-handoff .ui-icon,html body.page-admin .workspace-tools-panel>button.phone-view-btn .ui-icon{color:inherit !important}
html body.page-admin .workspace-tools-panel>button.sound-btn,html body.page-admin .workspace-tools-panel .sound-grp .sound-btn{color:#0f766e !important}
html body.page-admin .workspace-tools-panel>button.sound-btn.off,html body.page-admin .workspace-tools-panel .sound-grp .sound-btn.off{color:#64748b !important}
html body.page-admin .workspace-tools-panel>button.logout-btn{color:#b91c1c !important}
html body.page-admin .workspace-tools-panel>button.phone-view-btn:hover,html body.page-admin .workspace-tools-panel>button.sound-btn:hover,html body.page-admin .workspace-tools-panel>button.logout-btn:hover{background:#eef2f7 !important;border-color:#c7d2e0 !important}
html body.page-admin .workspace-tools-panel>button.logout-btn:hover{background:#fef2f2 !important;border-color:#fecaca !important}
/* V5.5.9 확인 두 길: 배송 정보·기사 링크 버튼, 수령 확인 줄, 고객 입금 알림 줄 */
html body.page-admin #detailPane .quote-actionbar.smart-bar > button.action-driver{background:#3f78b5 !important;color:#fff !important}
html body.page-admin #detailPane .us-note.us-who{font-size:14px;color:#334155;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
html body.page-admin .dl-plan{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:15px}
html body.page-admin .dl-plan .dl-edit{min-height:34px;padding:0 12px}
html body.page-admin #detailPane .claim-note{margin:12px 0 0;padding:12px 14px;border-radius:10px;background:#fff7ed;border:1px solid #fdba74;color:#9a3412;font-size:15px;font-weight:800}
/* V5.6.2 현황판 임대기간·남은기간 칸(연장N 표시) */
html body.page-admin .rp-dates{font-variant-numeric:tabular-nums;font-weight:700;color:#334155}
html body.page-admin .ext-tag{display:inline-block;margin-left:4px;padding:1px 7px;border-radius:999px;background:#ede9fe;color:#5b21b6;font-size:11.5px;font-weight:900;vertical-align:middle}
html body .rent-due.rd-ok{background:#0f766e}
html body.page-admin .rl-wait{color:#64748b;font-size:12.5px;font-weight:700}
html body.page-admin .rl-done{color:#94a3b8;font-size:12.5px;font-weight:700}
/* V5.6.4 고객 주문조회 카드의 버튼 하나(잘 받았어요·입금했어요) */
html body .mo-item .mo-act{display:block;width:100%;height:48px;margin-top:10px;border-radius:10px;border:0;background:#173b63;color:#fff;font-size:17px;font-weight:900}
html body .mo-item .mo-act:disabled{opacity:.6}
html body .mo-item .mo-claimed{margin-top:10px;padding:10px 12px;border-radius:10px;background:#f0fdf4;border:1px solid #86efac;color:#166534;font-size:14px;font-weight:800;text-align:center}
/* V5.6.5 고객 요청 알림 상자(수정요청·반납요청·입금 알림) — 떠 있어서 화면을 밀지 않는다 */
/* 고객 요청 알림 — 화면 위 가운데 한 장(2026-10-03 오너 "알림창은 위에다 … 통일"). 짧은 알림·업데이트 알림과 같은 자리 */
html body.page-admin .cust-req-bar{position:fixed;left:50%;top:10px;transform:translateX(-50%);z-index:5000;width:min(760px,calc(100vw - 24px));box-sizing:border-box;background:#fff;border:1px solid #fecaca;border-left:6px solid #dc2626;border-radius:14px;box-shadow:0 14px 34px rgba(15,23,42,.22);padding:10px 12px;display:flex;flex-direction:column;gap:8px}
html body.page-admin .cust-req-bar .crb-head{display:flex;align-items:center;gap:8px;min-height:30px}
html body.page-admin .cust-req-bar .crb-bell{font-size:18px;line-height:1}
html body.page-admin .cust-req-bar .crb-title{font-size:16px;font-weight:900;color:#991b1b;white-space:nowrap}
html body.page-admin .cust-req-bar .crb-title b{font-size:18px}
html body.page-admin .cust-req-bar .crb-new{padding:3px 10px;border-radius:999px;background:#dc2626;color:#fff;font-size:13px;font-weight:900}
html body.page-admin .cust-req-bar .crb-fold{margin-left:auto;height:32px;padding:0 12px;border-radius:9px;border:1px solid #e2e8f0;background:#f8fafc;color:#334155;font-size:13px;font-weight:800;cursor:pointer}
html body.page-admin .cust-req-bar .crb-list{display:flex;flex-wrap:wrap;gap:6px}
html body.page-admin .cust-req-bar .crb-item{display:inline-flex;align-items:center;gap:8px;height:40px;max-width:100%;padding:0 12px 0 6px;border:1.5px solid #fecaca;border-radius:999px;background:#fff7f7;cursor:pointer}
html body.page-admin .cust-req-bar .crb-item:hover{background:#fee2e2}
html body.page-admin .cust-req-bar .crb-tag{flex:0 0 auto;height:28px;display:inline-flex;align-items:center;padding:0 10px;border-radius:999px;font-size:13px;font-weight:900;color:#fff;background:#dc2626}
html body.page-admin .cust-req-bar .crb-ret .crb-tag{background:#7c3aed}
html body.page-admin .cust-req-bar .crb-claim .crb-tag{background:#0f766e}
html body.page-admin .cust-req-bar .crb-ext .crb-tag{background:#c2410c}
html body.page-admin .cust-req-bar .crb-recv .crb-tag{background:#15803d}
html body.page-admin .cust-req-bar .crb-co{min-width:0;font-size:15px;font-weight:800;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@keyframes crbPulse{0%,100%{box-shadow:0 0 0 0 rgba(220,38,38,.55)}50%{box-shadow:0 0 0 5px rgba(220,38,38,0)}}
html body.page-admin .cust-req-bar .crb-unseen{border-color:#dc2626;animation:crbPulse 1.2s ease-in-out infinite}
html body.page-admin .cust-req-bar .crb-more{align-self:center;font-size:13px;color:#64748b;font-weight:700}
html body.page-admin .cust-req-bar.crb-min{width:auto;padding:6px 10px}
html body.page-admin .cust-req-bar.crb-min .crb-list{display:none}
@media (max-width:767px){html body.page-admin .cust-req-bar{top:6px;padding:8px 10px}html body.page-admin .cust-req-bar .crb-title{font-size:15px}}
/* V5.6.6 "전화 필요"(상대 확인이 늦음) — 현황판 표시 · 상세 한 줄 */
html body.page-admin .call-tag{display:inline-block;margin-left:4px;padding:2px 8px;border-radius:999px;background:#fff1f2;border:1px solid #dc2626;color:#b91c1c;font-size:12px;font-weight:900;white-space:nowrap;vertical-align:middle}
html body.page-admin #detailPane .call-note{margin:12px 0 0;padding:12px 14px;border-radius:10px;background:#fff1f2;border:1px solid #fca5a5;color:#991b1b;font-size:15px;font-weight:700;line-height:1.5}
html body.page-admin #detailPane .call-note .call-tel{display:inline-block;margin-left:6px;padding:4px 10px;border-radius:8px;background:#b91c1c;color:#fff;font-weight:900;text-decoration:none;white-space:nowrap}
/* V5.6.7 보증금 정산 · 되돌리기 버튼 */
html body.page-admin #detailPane .quote-actionbar.smart-bar > button.action-deposit{background:#7c3aed !important;color:#fff !important}
html body.page-admin #detailPane .quote-actionbar.smart-bar > button.action-undo{background:#fff !important;color:#64748b !important;border:1px solid #cbd5e1 !important;border-style:solid !important;border-width:1px !important}
/* V5.6.8 거래처 답(일부·불가) 한 줄 · 사용·반납 구역의 회수 줄 */
html body.page-admin #detailPane .call-note.vendor-note{background:#fffbeb;border-color:#fcd34d;color:#92400e}
html body.page-admin #detailPane .call-note .vn-help{font-weight:600;font-size:14px;color:#78350f}
html body.page-admin #detailPane .us-pick{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;padding:10px 12px;border:1px dashed #cbd5e1;border-radius:10px;font-size:15px}
html body.page-admin #detailPane .us-pick .up-t{font-weight:900;color:#334155}
html body.page-admin #detailPane .us-pick .up-btns{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
/* V5.7.1 고객이 가격을 보고 넣은 견적 한 줄 */
html body.page-admin #detailPane .cust-saw-note{margin:12px 0 0;padding:12px 14px;border-radius:10px;background:#ecfdf5;border:1px solid #86efac;color:#065f46;font-size:15px;line-height:1.5}
/* 납품희망 칸이 "2026-10-05 / 오전 09:00" 을 다 보이게(V5.7.1) */
@media (min-width:768px){html body.page-admin .estimate-fields .fw-when{width:214px !important}}
@media (max-width:767px){html body.page-admin .estimate-fields .fw-when,html body.page-admin .estimate-fields .fw-phone{grid-column:1/-1;flex:1 1 100% !important;width:100% !important;max-width:none !important}}
/* V5.7.2 회수 버튼 */
html body.page-admin #detailPane .quote-actionbar.smart-bar > button.action-pickup{background:#0e7490 !important;color:#fff !important}
html body .mo-item .mo-claimed.mo-fee{background:#fff7ed;border-color:#fdba74;color:#9a3412}
/* V5.7.2 지금 누구 차례 — 우리(주황, 할 일) · 고객(파랑) · 거래처(보라) · 기사(청록) · 할 일 없음(회색) */
html body.page-admin .wait-chip{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12.5px;line-height:1.5;white-space:nowrap;border:1px solid transparent}
html body.page-admin .wait-chip small{font-weight:600;opacity:.85}
html body.page-admin .wait-chip.w-us{background:#fff7ed;border-color:#fb923c;color:#9a3412}
html body.page-admin .wait-chip.w-customer{background:#eff6ff;border-color:#93c5fd;color:#1e40af}
html body.page-admin .wait-chip.w-vendor{background:#f5f3ff;border-color:#c4b5fd;color:#5b21b6}
html body.page-admin .wait-chip.w-driver{background:#ecfeff;border-color:#67e8f9;color:#155e75}
html body.page-admin .wait-chip.w-none,html body.page-admin .wait-chip.w-done{background:#f8fafc;border-color:#e2e8f0;color:#64748b}
html body.page-admin #detailPane .wait-line{margin:8px 0 0;font-size:15px}
html body.page-admin #detailPane .wait-line .wait-chip{white-space:normal;font-size:14.5px;padding:8px 14px;border-radius:12px;display:block}
/* V5.7.2 진행 막대 15칸 — 폰(좁은 폭)에서 동그라미가 칸 밖으로 3px 나가던 것 */
@media (max-width:440px){
  html body.page-admin .deal-flow{padding-left:2px !important;padding-right:2px !important}
  html body.page-admin .deal-flow .df-dot{width:21px !important;height:21px !important;font-size:10px !important}
  html body.page-admin .deal-flow .df-track{top:17px !important}
}
/* V5.7.3 등급 4단계(기본형 파랑 · B급 청록 · A급 주황 · 신재 보라) — 3등급 규칙을 그대로 4로 */
:root{--g4:#7c3aed;--g4t:#f5f3ff;--g4b:#c4b5fd}
.page-admin .qq-opt-grade.qq-g4.on{background:#7c3aed;border-color:#7c3aed;color:#fff}
.page-admin .grade-buttons #grade-4.active{background:#f5f3ff;color:#7c3aed;border-color:#c4b5fd}
.page-admin .sg-grades button.sg-g4.active{background:#7c3aed!important;border-color:#7c3aed!important;color:#fff}
.page-admin .badge-grade.bg-g4{background:#f5f3ff!important;color:#7c3aed!important;border-color:#c4b5fd!important}
.page-admin .qq-opt-grade.qq-g4,.page-admin .grade-buttons #grade-4,.page-admin .sg-grades button.sg-g4{color:var(--g4) !important;background:var(--g4t) !important;border:1.5px solid var(--g4b) !important}
.page-admin .qq-opt-grade.qq-g4.on,.page-admin .grade-buttons #grade-4.active,.page-admin .sg-grades button.sg-g4.active{color:#fff !important;background:var(--g4) !important;border-color:var(--g4) !important}
.page-admin .ip-bar #grade-1,.page-admin .ip-bar #grade-2,.page-admin .ip-bar #grade-4{background:#fff !important;color:#374151 !important;border:1.5px solid #cfd7e2 !important}
.page-admin .ip-bar #grade-1.active,.page-admin .ip-bar #grade-2.active,.page-admin .ip-bar #grade-4.active{background:#1d4ed8 !important;color:#fff !important;border-color:#1d4ed8 !important}
html body.page-admin #detailPane .ip-bar #grade-1.active,html body.page-admin #detailPane .ip-bar #grade-2.active,html body.page-admin #detailPane .ip-bar #grade-4.active,html body.page-admin #detailPane .ip-bar .wh-btn.active{background:#1e293b !important;border-color:#1e293b !important;color:#fff !important}
html body.page-admin .grade-buttons button#grade-4,html body.page-admin .sg-grades button.sg-g4,html body .qpv-grades button.sg-g4{color:var(--g4) !important;background:var(--g4t) !important;border:1.5px solid var(--g4b) !important}
html body.page-admin .grade-buttons button#grade-4.active,html body.page-admin .sg-grades button.sg-g4.active,html body .qpv-grades button.sg-g4.active,html body .qpv-actions > button.qpv-go.qpv-go-g4{color:#fff !important;background:var(--g4) !important;border-color:var(--g4) !important}
html body.page-admin #detailPane .ip-bar .grade-buttons button#grade-4{color:var(--g4) !important;background:var(--g4t) !important;border:1.5px solid var(--g4b) !important}
html body.page-admin #detailPane .ip-bar .grade-buttons button#grade-4.active{color:#fff !important;background:var(--g4) !important;border-color:var(--g4) !important}
html body.page-admin .qq-setup-opts .qq-opt.qq-opt-grade.qq-g4{color:var(--g4) !important;background:var(--g4t) !important}
html body.page-admin .qq-setup-opts .qq-opt.qq-opt-grade.qq-g4.on{color:#fff !important;background:var(--g4) !important}
html body.page-admin .cust-filter-bar .cf-chip.g4{color:var(--g4) !important;border-color:var(--g4b) !important;background:var(--g4t) !important}
html body.page-admin .cust-filter-bar .cf-chip.g4.on{background:var(--g4) !important;border-color:var(--g4) !important;color:#fff !important}
/* 단가 없는 줄(이 등급 단가가 비어 0원) */
html body.page-admin #editItemBody tr.no-price .applied-input{border-color:#dc2626 !important;background:#fef2f2 !important;color:#b91c1c !important}
html body.page-admin #editItemBody tr.no-price td.col-applied::after{content:'단가 없음';display:block;margin-top:2px;color:#dc2626;font-size:11.5px;font-weight:800;text-align:right}
html body .qpv-zero{color:#dc2626}
/* 고객 링크 창 등급 5개(가격 숨김 + 4) */
html body.page-admin .sg-grades.sg-grades-5{display:grid !important;grid-template-columns:repeat(5,minmax(0,1fr)) !important;gap:6px}
@media (max-width:480px){html body.page-admin .sg-grades.sg-grades-5{grid-template-columns:repeat(3,minmax(0,1fr)) !important}}
/* 품목/가격 설정의 등급 단가 칸 머리 색 */
html body.page-admin #productBody td.grade-cell-g2{color:var(--g2)}
html body.page-admin #productBody td.grade-cell-g3{color:var(--g3)}
html body.page-admin #productBody td.grade-cell-g4{color:var(--g4)}
/* V5.7.4 누구 차례 — 현황판은 상태 옆 고정 칸에 한 줄(칩 하나, 글씨 상태 칩과 같은 크기), 상세는 진행 막대 위에 크게 */
html body.page-admin .board-table td.cell-wait{text-align:left;white-space:nowrap;overflow:hidden}
html body.page-admin .board-table td.cell-wait .wait-chip{font-size:13.5px;padding:3px 10px;font-weight:700}
html body.page-admin .board-table td.cell-wait .wait-chip small{font-size:13px;font-weight:700}
html body.page-admin .mb-card .mb-top .wait-chip{font-size:13px;padding:2px 9px}
html body.page-admin #detailPane .wait-line{margin:0 0 10px}
html body.page-admin #detailPane .wait-line .wait-chip{display:block;white-space:normal;font-size:17px;line-height:1.45;padding:12px 18px;border-radius:14px;border-width:2px}
html body.page-admin #detailPane .wait-line .wait-chip b{font-size:18px;font-weight:900}
html body.page-admin #detailPane .wait-line .wait-chip small{font-size:15px;font-weight:700}
@media (max-width:700px){html body.page-admin #detailPane .wait-line .wait-chip{font-size:15px;padding:10px 12px}html body.page-admin #detailPane .wait-line .wait-chip b{font-size:16px}html body.page-admin #detailPane .wait-line .wait-chip small{font-size:13px}}
/* 파란 머리글 안의 작은 설명 글씨 — 회색이라 파란 바탕에서 안 보였다(링크 보내기 창 "고객이 직접 품목을 골라 보내옵니다") */
html body .modal-back .modal-sheet>.lk-head .muted,html body .modal-back .modal-sheet>.modal-head .muted,html body .modal-back .modal-sheet>.mlink-head .muted,html body .modal-back .modal-sheet>.confirm-head .muted,html body .modal-back .modal-sheet>.file-head .muted,html body .modal-back .modal-sheet>.vo-head .muted{color:rgba(255,255,255,.9) !important;font-weight:600}
/* V5.7.5 현황판 상태 한 줄 칩 — 색이 누구 차례 */
html body.page-admin .board-table td.cell-ops{white-space:nowrap;overflow:hidden}
html body .ops-chip.st-wait{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;font-size:13.5px;font-weight:800;padding:3px 11px;border-radius:999px;border:1.5px solid transparent}
html body .ops-chip.st-wait small{font-size:12.5px;font-weight:700;opacity:.8}
html body .ops-chip.st-wait.wc-us{background:#fff7ed !important;border-color:#fb923c !important;color:#9a3412 !important}
html body .ops-chip.st-wait.wc-customer{background:#eff6ff !important;border-color:#93c5fd !important;color:#1e40af !important}
html body .ops-chip.st-wait.wc-vendor{background:#f5f3ff !important;border-color:#c4b5fd !important;color:#5b21b6 !important}
html body .ops-chip.st-wait.wc-driver{background:#ecfeff !important;border-color:#67e8f9 !important;color:#155e75 !important}
html body .ops-chip.st-wait.wc-none{background:#ecfdf5 !important;border-color:#6ee7b7 !important;color:#047857 !important}
html body .ops-chip.st-wait.wc-done{background:#f1f5f9 !important;border-color:#cbd5e1 !important;color:#475569 !important}
html body .ops-chip.st-wait.wc-call{border-color:#dc2626 !important;box-shadow:0 0 0 1px #dc2626 inset}
/* V5.7.5 큰 메뉴 '데이터관리'(다섯 글자) — 폰 폭에서는 그림을 빼고 글자만(네 버튼 같은 폭에 다 보이게) */
@media (max-width:520px){
  html body.page-admin .nav-cat svg,html body.page-admin .nav-home svg{display:none !important}
  html body.page-admin .nav-cat,html body.page-admin .nav-home{padding-left:4px !important;padding-right:4px !important;gap:0 !important;letter-spacing:-.3px}
}
/* V5.7.6 견적 상세 한 상자: "방금 …" 소식 → 지금 누구 차례 */
html body.page-admin #detailPane .wait-line .wl-news{display:inline-flex;align-items:center;gap:6px;color:#15803d;font-weight:700;font-size:15.5px}
html body.page-admin #detailPane .wait-line .wl-news b{font-size:15.5px;color:#15803d}
html body.page-admin #detailPane .wait-line .wl-news .df-news-dot{display:inline-block;flex:0 0 auto}
html body.page-admin #detailPane .wait-line .wl-arrow{margin:0 10px;color:#94a3b8;font-weight:900}
/* V5.7.6 버튼 글자 가운데(2026-10-03 오너 "버튼들이 글씨가 가운데 정렬이 안된 버튼들이 많으니") — 높이를 고정한 버튼은
   위아래 여백+줄 높이가 높이보다 커서 글자가 2~3px 아래로 밀렸다. 창 아래 버튼·목록 버튼·현황판 도구 버튼을 flex 가운데로. */
html body .modal-back .modal-actions > button,html body .modal-back .confirm-actions > button,html body .modal-back .ask-actions > button,
html body .modal-back .modal-actions > a,html body .modal-back .qpv-actions > button,
html body.page-admin .bt-grp > button,html body.page-admin .list-actions > button,html body.page-admin .mode-btns > button{
  display:inline-flex !important;align-items:center !important;justify-content:center !important;text-align:center !important;padding-top:0 !important;padding-bottom:0 !important;line-height:1.25 !important}
html body.page-admin .mb-back{align-items:center !important;justify-content:center !important;line-height:1.2 !important}
@media (max-width:700px){
  html body.page-admin #detailPane .wait-line .wl-news{display:flex;margin-bottom:6px}
  html body.page-admin #detailPane .wait-line .wl-arrow{display:none}
}
/* V5.7.7 맨 위 '회계' 메뉴(주황) */
html body.page-admin #cat-money.active{background:#c2560c !important;color:#fff !important;border-color:#c2560c !important}
html body.page-admin #cat-money+.nav-items{--nav-color:#c2560c;--nav-soft:#fff4ea}
/* V5.7.7 맨 위 '셋팅' 메뉴(남색) · 큰 메뉴 6개 — 폰은 3개씩 두 줄 */
html body.page-admin #cat-setup.active{background:#334155 !important;color:#fff !important;border-color:#334155 !important}
html body.page-admin #cat-setup+.nav-items{--nav-color:#334155;--nav-soft:#f1f5f9}
@media (max-width:760px){
  html body.page-admin.mcards .admin-topnav .nav-cats .nav-home,html body.page-admin.mcards .admin-topnav .nav-cats .nav-cat{flex:1 1 calc(33.333% - 6px) !important}
}
/* V5.7.8 할아버지 눈높이 정리 */
/* 맨 위 [보기 ▾] — 확인용 버튼 묶음 */
html body.page-admin .view-menu{position:relative}
html body.page-admin .view-menu>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 14px;border-radius:10px;border:1px solid #dce3ec;background:#fff;color:#334155;font-weight:700;font-size:14px;white-space:nowrap}
html body.page-admin .view-menu>summary::-webkit-details-marker{display:none}
html body.page-admin .view-menu .vm-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:60;display:flex;flex-direction:column;gap:8px;padding:12px;background:#fff;border:1px solid #dce3ec;border-radius:14px;box-shadow:0 12px 30px rgba(15,23,42,.18);min-width:260px}
html body.page-admin .view-menu .vm-pop>button{width:100%;justify-content:flex-start}
/* 견적 상세 진행 버튼: 지금 할 일 하나만 크게(색), 나머지는 작은 회색 */
html body.page-admin #detailPane .quote-actionbar.smart-bar > button:not(.act-next),html body.page-admin #detailPane .smart-bar > button:not(.act-next){background:#f1f5f9 !important;color:#334155 !important;border:1px solid #d6dee8 !important;box-shadow:none !important;font-size:14.5px !important;font-weight:700 !important;min-height:42px !important;height:42px !important}
html body.page-admin #detailPane .quote-actionbar.smart-bar > button.action-cancel:not(.act-next){color:#b91c1c !important}
html body.page-admin #detailPane .smart-bar > button.act-next{min-height:54px !important;height:54px !important;font-size:18px !important;font-weight:900 !important;padding:0 26px !important;box-shadow:0 4px 12px rgba(15,23,42,.18) !important}
html body.page-admin #detailPane .smart-bar{align-items:center !important}
@media (max-width:760px){
  html body.page-admin #detailPane .smart-bar > button.act-next{grid-column:1/-1 !important;order:-1}
  html body.page-admin #detailPane .smart-bar > button:not(.act-next){height:44px !important;min-height:44px !important;font-size:14px !important}
}
/* 확정된 견적의 칸은 글자처럼(입력칸 테두리·배경 없이) */
html body.page-admin #detailPane input.ro-locked,html body.page-admin #detailPane textarea.ro-locked{background:transparent !important;border-color:transparent !important;box-shadow:none !important;padding-left:2px !important;font-weight:700 !important;color:#0f172a !important}
html body.page-admin #detailPane input.ro-locked::placeholder{color:#94a3b8 !important;font-weight:600 !important}
html body.page-admin #detailPane .df-locked .cal-btn{display:none !important}
/* 휴지통: 내려도 맨 위 줄(전체선택 칸 포함)이 따라오고 아래 줄이 비치지 않게(2026-10-03 오너 "스크롤하면 전체선택까지 없어진다") */
html body.page-admin .trash-table thead th,html body.page-admin .trash-table thead th.cell-pick{position:sticky !important;top:0 !important;z-index:4 !important;background:#f6f8fb !important;box-shadow:0 1px 0 #dde4ed}
html body.page-admin .board-table thead th.cell-pick{position:sticky !important;top:0 !important;z-index:4 !important;background:#f6f8fb !important}
/* V5.8.0 현황판 글자 정렬·꼬리표 하나의 모양(2026-10-03 오너 "각 글씨들 정렬잘하고 표시디자인도 잘 통일시켜")
   꼬리표(연장N·N일 남음·반납완료·수령 전·완납·미입금·부분입금·과입금)는 같은 높이·같은 둥근 모양·옅은 바탕+진한 글자. 색만 뜻대로. */
html body.page-admin .board-table td.c-mid{text-align:center !important}
html body.page-admin .rp-dates{font-weight:600 !important;color:#1e293b !important}
html body.page-admin .board-table .pay-tag,html body.page-admin .board-table .ext-tag,html body.page-admin .board-table .rent-due,
html body.page-admin .board-table .rl-done,html body.page-admin .board-table .rl-wait{
  display:inline-flex !important;align-items:center !important;justify-content:center !important;height:24px !important;padding:0 10px !important;margin:0 0 0 6px !important;
  border-radius:999px !important;font-size:12.5px !important;font-weight:800 !important;line-height:1 !important;white-space:nowrap !important;vertical-align:middle !important;animation:none !important;border:0 !important}
html body.page-admin .board-table td>.pay-tag:first-child,html body.page-admin .board-table td>.rent-due:first-child,html body.page-admin .board-table td>.rl-done:first-child,html body.page-admin .board-table td>.rl-wait:first-child,html body.page-admin .board-table td>.ext-tag:first-child{margin-left:0 !important}
html body.page-admin .board-table td.bal .pay-tag{display:inline-flex !important;margin:0 0 0 6px !important}
html body.page-admin .board-table .pt-done,html body.page-admin .board-table .rent-due.rd-ok{background:#dcfce7 !important;color:#166534 !important}
html body.page-admin .board-table .pt-part,html body.page-admin .board-table .rent-due.rd-5{background:#fef3c7 !important;color:#92400e !important}
html body.page-admin .board-table .rent-due.rd-3{background:#ffedd5 !important;color:#9a3412 !important}
html body.page-admin .board-table .pt-none,html body.page-admin .board-table .rent-due.rd-over{background:#fee2e2 !important;color:#b91c1c !important}
html body.page-admin .board-table .pt-over{background:#dbeafe !important;color:#1e40af !important}
html body.page-admin .board-table .ext-tag{background:#ede9fe !important;color:#5b21b6 !important}
html body.page-admin .board-table .rl-done,html body.page-admin .board-table .rl-wait{background:#f1f5f9 !important;color:#475569 !important}
/* 거래처 발주 문구 — 미리보기 먼저, 고치기는 펼쳐서(V5.8.0) */
html body.page-admin .vendor-row .vd-pv-label{margin:12px 0 6px;font-size:14px;font-weight:800;color:#334155}
html body.page-admin .vendor-row .vd-pv-label small{font-weight:600;color:#94a3b8}
html body.page-admin .vendor-row .vd-preview{margin:0;padding:12px 14px;border-radius:12px;background:#fef9c3;border:1px solid #fde68a;color:#1f2937;font-size:14.5px;font-weight:600;line-height:1.6;font-family:inherit;white-space:pre-wrap;word-break:keep-all}
html body.page-admin .vendor-row .vd-edit{margin-top:8px}
html body.page-admin .vendor-row .vd-edit>summary{cursor:pointer;display:inline-flex;align-items:center;min-height:38px;padding:0 14px;border-radius:10px;border:1px solid #d6dee8;background:#f8fafc;color:#334155;font-weight:800;font-size:14px;list-style:none}
html body.page-admin .vendor-row .vd-edit>summary::-webkit-details-marker{display:none}
html body.page-admin .vendor-row .vd-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0 8px}
html body.page-admin .vendor-row .vd-chips span{font-size:13px;color:#64748b;font-weight:700;margin-right:4px}
html body.page-admin .vendor-row .vd-chip{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:0 10px;border-radius:999px;border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;font-weight:800;font-size:13px}

/* ═══ 버튼 색 한 곳(2026-10-03 오너 "회색버튼들 없게해 다들 각자 고유의 컬러가 있어야지 … 중복되는 버튼들도 전부 통일") ═══
   ① 견적 진행 버튼 줄: 단계마다 제 색(--ac). 지금 할 일(act-next)은 그 색으로 꽉 채워 크게, 나머지는 같은 색 옅은 바탕·색 글자 — 회색 없음.
   ② 어디서나 나오는 버튼(수정·저장·취소·삭제·닫기·열기·복사…)은 글자로 색을 정한다(admin_js tagButtonKinds_ 가 bk-* 를 붙인다).
   색을 바꿀 때는 여기 한 곳만 고친다. */
html body.page-admin #detailPane .smart-bar > button.action-preview{--ac:#4f46e5}
html body.page-admin #detailPane .smart-bar > button.action-send,html body.page-admin #detailPane .smart-bar > button.action-next{--ac:#2563eb}
html body.page-admin #detailPane .smart-bar > button.action-confirm{--ac:#0d9488}
html body.page-admin #detailPane .smart-bar > button.action-vendor{--ac:#0891b2}
html body.page-admin #detailPane .smart-bar > button.action-vdone{--ac:#155e75}
html body.page-admin #detailPane .smart-bar > button.action-guide{--ac:#d97706}
html body.page-admin #detailPane .smart-bar > button.action-paid{--ac:#16a34a}
html body.page-admin #detailPane .smart-bar > button.action-deposit{--ac:#65a30d}
html body.page-admin #detailPane .smart-bar > button.action-driver{--ac:#1e40af}
html body.page-admin #detailPane .smart-bar > button.action-ship{--ac:#ea580c}
html body.page-admin #detailPane .smart-bar > button.action-received{--ac:#059669}
html body.page-admin #detailPane .smart-bar > button.action-extend{--ac:#db2777}
html body.page-admin #detailPane .smart-bar > button.action-pickup{--ac:#a16207}
html body.page-admin #detailPane .smart-bar > button.action-return{--ac:#7c3aed}
html body.page-admin #detailPane .smart-bar > button.action-finish{--ac:#9333ea}
html body.page-admin #detailPane .smart-bar > button.action-undo{--ac:#78350f}
html body.page-admin #detailPane .smart-bar > button.action-cancel{--ac:#dc2626}
html body.page-admin #detailPane .smart-bar > button.action-done{--ac:#047857}
html body.page-admin #detailPane .quote-actionbar.smart-bar > button:not(.act-next),html body.page-admin #detailPane .smart-bar > button:not(.act-next){background:color-mix(in srgb,var(--ac,#2563eb) 10%,#fff) !important;color:var(--ac,#2563eb) !important;border:1.5px solid color-mix(in srgb,var(--ac,#2563eb) 45%,#fff) !important}
html body.page-admin #detailPane .quote-actionbar.smart-bar > button:not(.act-next):hover{background:color-mix(in srgb,var(--ac,#2563eb) 18%,#fff) !important;filter:none !important}
html body.page-admin #detailPane .quote-actionbar.smart-bar > button.act-next,html body.page-admin #detailPane .smart-bar > button.act-next{background:var(--ac,#2563eb) !important;color:#fff !important;border:0 !important}
html body.page-admin #detailPane .smart-bar > button.action-preview::after{background:color-mix(in srgb,#4f46e5 35%,#fff) !important}

/* ② 글자로 정하는 공통 버튼 색 — 같은 글자 = 같은 색(어느 화면이든) */
html body.page-admin button.bk-edit{--bk:#2563eb}
html body.page-admin button.bk-save{--bk:#16a34a}
html body.page-admin button.bk-undo{--bk:#d97706}
html body.page-admin button.bk-del{--bk:#dc2626}
html body.page-admin button.bk-close{--bk:#1e3a5f}
html body.page-admin button.bk-open{--bk:#4f46e5}
html body.page-admin button.bk-refresh{--bk:#0d9488}
html body.page-admin button.bk-add{--bk:#059669}
html body.page-admin button.bk-copytext{--bk:#0891b2}
html body.page-admin button.bk-copyimg{--bk:#7c3aed}
html body.page-admin button.bk-copylink{--bk:#0369a1}
html body.page-admin button.bk-copymoney{--bk:#b45309}
html body.page-admin button.bk-reset{--bk:#a16207}
html body.page-admin button.bk-filter{--bk:#6366f1}
html body.page-admin button.bk-help{--bk:#0ea5e9}
html body.page-admin:is(#bkRoot,body) :is(#bkScope,div,section,td,span,header,nav,main,form) button.bk{background:color-mix(in srgb,var(--bk) 10%,#fff) !important;color:var(--bk) !important;border:1.5px solid color-mix(in srgb,var(--bk) 45%,#fff) !important;box-shadow:none !important}
html body.page-admin:is(#bkRoot,body) :is(#bkScope,div,section,td,span,header,nav,main,form) button.bk:hover:not(:disabled){background:color-mix(in srgb,var(--bk) 18%,#fff) !important}
/* 꽉 찬 버튼(그 화면의 주된 일 — primary)은 같은 색으로 채운다 */
html body.page-admin:is(#bkRoot,body) :is(#bkScope,div,section,td,span,header,nav,main,form) button.bk:is(.primary,.save-on,.danger):not(:disabled){background:var(--bk) !important;color:#fff !important;border-color:var(--bk) !important}
/* 지금 못 누르는 버튼도 회색이 아니라 제 색을 옅게 */
html body.page-admin:is(#bkRoot,body) :is(#bkScope,div,section,td,span,header,nav,main,form) button.bk:disabled{background:color-mix(in srgb,var(--bk) 6%,#fff) !important;color:color-mix(in srgb,var(--bk) 55%,#fff) !important;border:1.5px solid color-mix(in srgb,var(--bk) 25%,#fff) !important;opacity:1 !important}

/* 권한 칸 설명 말풍선(2026-10-03) — 마우스를 올리거나(키보드로 고르면) 칸 위에 뜬다. 할 수 있는 것 ✓ / 못 하는 것 ✕ */
html body.page-admin .perm-chip.has-tip{position:relative}
html body.page-admin .perm-chip .perm-tip{display:none !important}
html body.page-admin .perm-tip-float{display:none;position:fixed;left:0;top:0;z-index:100000;width:min(340px,calc(100vw - 16px));box-sizing:border-box;padding:12px 14px;border-radius:12px;background:#0f172a;color:#f8fafc;font-size:14.5px;font-weight:600;line-height:1.6;text-align:left;white-space:normal;box-shadow:0 12px 30px rgba(15,23,42,.35);pointer-events:none;opacity:1}
html body.page-admin .perm-tip-float.pt-on{display:block}
html body.page-admin .perm-tip-float::after{content:'';position:absolute;left:var(--ax,50%);top:100%;transform:translateX(-50%);border:7px solid transparent;border-top-color:#0f172a}
html body.page-admin .perm-tip-float.pt-below::after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:#0f172a}
html body.page-admin .perm-tip-float b{display:block;font-size:16px;font-weight:800;margin-bottom:6px;color:#fff}
html body.page-admin .perm-tip-float .pt-can{display:block;color:#bbf7d0;margin-bottom:6px}
html body.page-admin .perm-tip-float .pt-cant{display:block;color:#fecaca}
html body.page-admin .owner-only-field{background:#f8fafc !important;color:#64748b !important;cursor:not-allowed}

/* 맨 위 버튼마다 제 색(2026-10-03 오너 "보기는 드롭다운에 넣지말고 밖으로 빼. 각자 컬러 넣어서") */
html body.page-admin .workspace-tools .workspace-tools-panel>.zoom-ctl{background:#eef2ff !important;border:1.5px solid #a5b4fc !important;color:#3730a3 !important}
html body.page-admin .workspace-tools .workspace-tools-panel>button.pv-handoff{background:#e0f2fe !important;color:#0369a1 !important;border:1.5px solid #7dd3fc !important}
html body.page-admin .workspace-tools .workspace-tools-panel>button.pv-handoff .ui-icon{color:#0369a1 !important}
html body.page-admin .workspace-tools .workspace-tools-panel>button.pv-quote{background:#ffedd5 !important;color:#c2410c !important;border:1.5px solid #fdba74 !important}
html body.page-admin .workspace-tools .workspace-tools-panel>button.pv-admin{background:#fae8ff !important;color:#a21caf !important;border:1.5px solid #f0abfc !important}
html body.page-admin .workspace-tools .workspace-tools-panel>button.push-btn{background:#dbeafe !important;color:#1d4ed8 !important;border:1.5px solid #93c5fd !important}
html body.page-admin .workspace-tools .workspace-tools-panel>button.push-btn.off{background:#fff !important;border:1.5px dashed #60a5fa !important}
html body.page-admin .workspace-tools .workspace-tools-panel>button.sound-btn{background:#d1fae5 !important;color:#047857 !important;border:1.5px solid #6ee7b7 !important}
html body.page-admin .workspace-tools .workspace-tools-panel>button.sound-btn.off{background:#fef3c7 !important;color:#92400e !important;border:1.5px solid #fcd34d !important}
html body.page-admin .workspace-tools .workspace-tools-panel>button.logout-btn{background:#fee2e2 !important;color:#b91c1c !important;border:1.5px solid #fca5a5 !important}
html body.page-admin .workspace-tools .workspace-tools-panel>button:hover{filter:brightness(.96)}
/* 현황판 탭(진행 중·거래종료/취소)이 폰 폭에 들어가게 */
@media (max-width:767px){
  html body.page-admin .board-folder .bf-tabs{padding-left:4px;gap:3px}
  html body.page-admin .board-folder .bf-tab{padding:0 9px;font-size:13.5px;white-space:nowrap}
  html body.page-admin .board-folder .bf-tab b{margin-left:3px;padding:1px 5px;min-width:18px}
}


/* [수정]을 누르기 전에는 [수정]만(2026-10-03 오너 "수정 누르기전에는 다른버튼 나오게 하지마 수정만 보여야해").
   [저장][취소][삭제]는 자리만 지키고 안 보인다 — 사라졌다 나타나며 옆 검색칸이 밀리지 않게(visibility). 묶음 테두리도 보기 때는 없앤다. */
html body.page-admin #boardModeBtns[data-mode="view"] button:not(:first-child),
html body.page-admin #customerModeBtns[data-mode="view"] button:not(:first-child),
html body.page-admin #reqModeBtns[data-mode="view"] button:not(:first-child),
html body.page-admin #reqBar[data-mode="view"] .req-all{visibility:hidden !important;pointer-events:none !important}
html body.page-admin .bt-grouped .bt-edit:has(#boardModeBtns[data-mode="view"]),
html body.page-admin #boardModeBtns[data-mode="view"] .btn-group,
html body.page-admin #customerModeBtns[data-mode="view"] .btn-group,
html body.page-admin #reqModeBtns[data-mode="view"]{background:transparent !important;border-color:transparent !important;box-shadow:none !important}

/* 1·2·3단 세트 버튼마다 다른 색(2026-10-03 오너 "모바일 123단세트 컬러다르게") — 1단 초록 · 2단 파랑 · 3단 보라 */
html body .pick-set-row .pick-set-btn.ps-1{background:#dcfce7 !important;color:#15803d !important;border:1.5px solid #86efac !important}
html body .pick-set-row .pick-set-btn.ps-2{background:#dbeafe !important;color:#1d4ed8 !important;border:1.5px solid #93c5fd !important}
html body .pick-set-row .pick-set-btn.ps-3{background:#f3e8ff !important;color:#7e22ce !important;border:1.5px solid #d8b4fe !important}

/* 운임비 자동 표시(견적 상세 운임비 칸 옆) · 운임표 권역 색(2026-10-03 오너 운임표) */
html body.page-admin .fr-auto{display:inline-flex;align-items:center;font-size:13px;font-weight:700;white-space:nowrap}
html body.page-admin .fr-auto .fa-auto{color:#0f766e;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;padding:3px 8px}
html body.page-admin .fr-auto .fa-manual{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:3px 8px}
html body.page-admin .fr-auto .fa-miss{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:3px 8px}
html body.page-admin .fr-table tr.fr-area-1 td{background:#fff1f2}
html body.page-admin .fr-table tr.fr-area-2 td{background:#eff6ff}
html body.page-admin .fr-table tr.fr-area-3 td{background:#f0fdf4}
html body.page-admin .fr-table tr.fr-area-4 td{background:#fefce8}
html body.page-admin .fr-table .fr-ar{min-width:92px}
html body.page-admin .fr-rule input{width:64px;display:inline-block}
@media (max-width:767px){ html body.page-admin .fr-auto{white-space:normal} }

/* 운임표 도착지 칸 넓게(이름이 잘리지 않게) · 금액 칸은 좁게 */
html body.page-admin #freightBox .fr-table-wrap{overflow-x:auto}
html body.page-admin #freightBox .fr-table td.fr-region .fr-rg{min-width:420px;width:100%}
html body.page-admin #freightBox .fr-table .fr-fee{width:96px;min-width:96px}
html body.page-admin #freightBox .set-page,html body.page-admin .set-page:has(#freightBox){max-width:none}

/* 운임표 정렬(2026-10-03 오너 "공간낭비가 심하고 정렬이 제대로 안되어 있으니 다시 정렬해") — 칸 폭 고정, 금액 좁게·가운데·쉼표, 도착지가 남는 폭 */
html body.page-admin #freightBox .frs-head{display:flex;align-items:center;gap:10px;margin:0 0 8px;font-size:17px}
html body.page-admin #freightBox .frs-head .muted{font-size:13px}
html body.page-admin #freightBox .frs-more{margin-left:auto;height:36px}
html body.page-admin #freightBox .frs-rule{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:0 0 6px;font-size:14px;color:#334155}
html body.page-admin #freightBox .frs-rule input{width:56px !important;height:34px;padding:0 6px;text-align:center;margin:0}
html body.page-admin #freightBox .frs-sep{color:#cbd5e1;margin:0 4px}
html body.page-admin #freightBox .frs-help{font-size:12.5px;line-height:1.5;margin:0 0 10px}
html body.page-admin #freightBox .frs-table{table-layout:fixed;width:100%;border-collapse:separate;border-spacing:0}
html body.page-admin #freightBox .frs-table col.c-ar{width:104px}
html body.page-admin #freightBox .frs-table col.c-fee{width:104px}
html body.page-admin #freightBox .frs-table col.c-del{width:64px}
html body.page-admin #freightBox .frs-table th{padding:6px 4px;font-size:13px;font-weight:800;color:#334155;text-align:center;white-space:nowrap}
html body.page-admin #freightBox .frs-table th small{font-weight:600;color:#94a3b8}
html body.page-admin #freightBox .frs-table th.frs-wh{border-bottom:2px solid #cbd5e1}
html body.page-admin #freightBox .frs-table td{padding:3px 3px;vertical-align:middle}
html body.page-admin #freightBox .frs-table td input,html body.page-admin #freightBox .frs-table td select{width:100% !important;min-width:0 !important;height:34px !important;min-height:34px !important;margin:0 !important;box-sizing:border-box;font-size:14px}
html body.page-admin #freightBox .frs-table td .fr-rg{text-overflow:ellipsis}
html body.page-admin #freightBox .frs-table td .fr-fee{text-align:center;font-variant-numeric:tabular-nums;padding:0 4px}
html body.page-admin #freightBox .frs-table td .danger-lite{width:100%;height:34px;min-height:34px;padding:0;margin:0;display:inline-flex;align-items:center;justify-content:center}
@media (max-width:1100px){ html body.page-admin #freightBox .frs-table{min-width:980px} }

/* 운임표 폭 줄임(남는 공간 없이) · 규칙 숫자 칸 작게 · 원본 운임표 그림 창 */
html body.page-admin #freightBox .frs-table{max-width:1120px}
html body.page-admin #freightBox .frs-rule input[type=number]{width:56px !important;height:34px !important;min-height:34px !important;padding:0 6px !important;font-size:15px !important}
html body.page-admin #freightBox .frs-head .frs-img{margin-left:8px;height:36px}
/* 버튼은 표 바로 옆·아래 왼쪽에(2026-10-03 오너 "버튼이 저멀리 가있으면 안보이잖아. 왼쪽에 붙여줘야지") */
html body.page-admin #freightBox .frs-head .frs-more{margin-left:0}
html body.page-admin #freightBox .vendor-btns{justify-content:flex-start;margin-top:12px}
html body.page-admin .frs-img{--bk:#7c3aed;background:#f5f3ff !important;color:#6d28d9 !important;border:1.5px solid #c4b5fd !important}
html body.page-admin .fr-img-back{z-index:100001;display:flex;align-items:center;justify-content:center;padding:16px}
html body.page-admin .fr-img-card{background:#fff;border-radius:16px;max-width:min(1100px,96vw);max-height:94vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 60px rgba(15,23,42,.35)}
html body.page-admin .fr-img-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid #eef2f7;font-size:16px}
html body.page-admin .fr-img-body{overflow:auto;padding:10px;background:#f8fafc}
html body.page-admin .fr-img-body img{display:block;width:100%;height:auto;max-width:1060px;margin:0 auto}

/* 고객 견적서 맨 아래 확정 카드(2026-10-03) — 다 본 뒤 누르게 */
html body .confirm-bottom{margin:16px 0;padding:18px 16px;border:2px solid #1e3a5f;border-radius:16px;background:#fff;text-align:center}
html body .confirm-bottom .cb-t{font-size:17px;font-weight:800;color:#0f172a;margin-bottom:12px}
html body .confirm-bottom .ca-btn{width:100%;min-height:56px;font-size:18px;font-weight:900}
html body .confirm-bottom .cb-s{margin-top:10px;font-size:14px;color:#64748b}
html body .confirm-bottom .cb-s a{color:#1d4ed8;font-weight:700}
/* 고객 [품목·수량 직접 고치기](2026-10-12 오너) — 확정 버튼 바로 아래, 덜 눈에 띄는 흰 버튼 */
html body .confirm-bottom .se-open{display:block;width:100%;min-height:48px;margin-top:10px;border-radius:12px;border:1.5px solid #fdba74 !important;background:#fff7ed !important;color:#c2410c !important;font-size:16px;font-weight:800;box-shadow:none !important}
/* 주문 화면 고치기 모드 머리(2026-10-12 오너 "처음부터 수정을 하듯이") — 어느 견적을 고치는지 · [그만두기] */
html body .edit-head{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:12px 14px;border:1.5px solid #fdba74;border-radius:14px;background:#fff7ed}
html body .edit-head>div{flex:1 1 auto;min-width:0}
html body .edit-head b{display:block;font-size:16px;color:#9a3412}
html body .edit-head span{display:block;margin-top:3px;font-size:13.5px;color:#9a3412;line-height:1.45}
html body .edit-head .edit-quit{flex:none;min-width:76px;height:42px;padding:0 10px;border-radius:10px;border:1px solid #fdba74;background:#fff;color:#c2410c;font-size:14px;font-weight:800}
html body .cust-act .ca-btn.ca-down{background:#fff !important;color:#1e3a5f !important;border:1.5px solid #1e3a5f !important}

/* [이 정보로 새 주문 넣기] — 카드 맨 아래, 덜 눈에 띄게(2026-10-03) */
html body .mo-item .mo-reuse{display:block;width:100%;height:40px;margin-top:12px;border-radius:10px;border:1px solid #cbd5e1 !important;background:#fff !important;color:#475569 !important;font-size:14px;font-weight:700;box-shadow:none !important}

/* 내 주문조회 펼친 내용 맨 아래 [확인] — 누르면 조회 창이 닫힌다(2026-10-03) */
html body .mo-item .mo-ok{display:block;width:100%;height:50px;margin-top:14px;border-radius:12px;border:0;background:#1e3a5f;color:#fff;font-size:17px;font-weight:800}
/* [수정하기] [확인] 반반 한 줄(2026-10-12 오너 "수정하는 버튼을 확인 버튼 왼쪽에, 확인 버튼은 반으로") */
html body .mo-item .mo-okrow{display:flex;gap:8px;margin-top:14px}
html body .mo-item .mo-okrow button{flex:1 1 0;min-width:0;margin-top:0}
html body .mo-item .mo-rev{display:block;height:50px;border-radius:12px;border:1.5px solid #fdba74;background:#fff7ed;color:#c2410c;font-size:17px;font-weight:800}
html body .mo-item .mo-revnote{margin-top:10px;padding:10px 12px;border-radius:10px;background:#fff7ed;border:1px solid #fdba74;color:#9a3412;font-size:14px;line-height:1.45;white-space:pre-line;text-align:left}
html body .mo-item .mo-revnote b{display:block;margin-bottom:2px}

/* 내 주문조회 맨 아래 한 줄: [이 정보로 새 주문 넣기](초록) [주문정보 지우기](주황) — 2026-10-03 */
html body .mo-foot{display:flex;gap:8px;margin:12px 0 4px}
html body .mo-foot button{flex:1 1 0;min-width:0;height:48px;margin:0 !important;border-radius:12px;font-size:15px;font-weight:800;box-shadow:none !important}
html body .mo-foot .mo-reuse{background:#dcfce7 !important;color:#15803d !important;border:1.5px solid #86efac !important}
html body .mo-foot .mo-forget{background:#fff7ed !important;color:#c2410c !important;border:1.5px solid #fdba74 !important}

/* 알림 설정 창(2026-10-03) */
html body.page-admin .as-sheet{max-width:520px}
html body.page-admin .as-sheet .as-row{display:grid;grid-template-columns:110px 1fr;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #eef1f5}
html body.page-admin .as-sheet .as-lab{font-size:14px;font-weight:800;color:#475569}
html body.page-admin .as-sheet .as-vol{display:flex;align-items:center;gap:10px}
html body.page-admin .as-sheet .as-vol input{flex:1}
html body.page-admin .as-sheet .as-vol b{min-width:34px;text-align:right}
html body.page-admin .as-sheet .as-try{display:flex;gap:6px;flex-wrap:wrap}
html body.page-admin .as-sheet .as-try button{height:38px}
html body.page-admin .as-sheet .as-note{font-size:13px;margin-top:10px;line-height:1.5}
html body.page-admin .as-sheet .fr-seg{display:flex;gap:6px;flex-wrap:wrap}
html body.page-admin .as-sheet .fr-seg button{min-height:38px;min-width:56px;padding:0 12px;border-radius:9px;border:1px solid #cfd6e0;background:#fff;color:#334155;font-size:14.5px;font-weight:800}
html body.page-admin .as-sheet .fr-seg button.active{background:#2563eb;border-color:#2563eb;color:#fff}

/* 알림 설정 창의 폰 알림 줄(2026-10-03 버튼 하나로 합침) */
html body.page-admin .as-sheet .as-lab small{display:block;font-size:11.5px;font-weight:600;color:#94a3b8}
html body.page-admin .as-sheet .as-push{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
html body.page-admin .as-sheet .as-push-st{font-size:14px;color:#94a3b8}
html body.page-admin .as-sheet .as-push-st.on{color:#047857}
html body.page-admin .as-sheet .as-push button{height:38px}

/* 고객 화면 알림 띠(확정되면 "결제 칸에서 결제해 주세요") · 관리자 [문자로 보내기] */
html body .q-toast{position:fixed;left:50%;top:14px;transform:translateX(-50%);z-index:100000;max-width:calc(100vw - 24px);padding:12px 16px;border-radius:12px;background:#1e3a5f;color:#fff;font-size:15px;font-weight:800;box-shadow:0 10px 30px rgba(15,23,42,.3);transition:opacity .4s}
html body .q-toast.out{opacity:0}
html body.page-admin .pg-sheet .pg-sms{background:#16a34a !important;border-color:#16a34a !important;color:#fff !important}

/* 현황판 '글자 + 꼬리표' 칸 정렬(2026-10-03) — 글자는 오른쪽 맞춤, 꼬리표는 폭 고정 자리(없어도 비워 둠) → 줄마다 같은 위치 */
html body.page-admin .board-table td .cv2{display:grid;grid-template-columns:1fr 58px;align-items:center;column-gap:8px;width:100%}
html body.page-admin .board-table td .cv2 .cv-main{text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
html body.page-admin .board-table td .cv2 .cv-tag{display:flex;justify-content:flex-start;align-items:center;min-width:0}
html body.page-admin .board-table td .cv2 .cv-tag>span{margin:0 !important}

/* 결제 칸 하나 — 눈에 잘 띄게(2026-10-03 오너 "밖에 결제창이 잘보이게 해") */
html body .pay-box.pay-main{border:2.5px solid #1e3a5f !important;background:#fff !important;box-shadow:0 8px 24px rgba(30,58,95,.15);scroll-margin-top:12px}
html body .pay-box.pay-main .pay-title{font-size:20px;font-weight:900;color:#1e3a5f;margin:0 0 10px}
html body .pay-box.pay-main .pay-top b{font-size:24px}

html body .pay-box.pay-main{padding:22px 16px !important;border-width:3px !important}
html body .pay-box.pay-main .pay-title{font-size:24px}
html body .pay-box.pay-main .pay-top b{font-size:28px}
html body .pay-box.pay-main .pay-link{display:flex !important;align-items:center;justify-content:center;min-height:64px;font-size:20px !important;font-weight:900 !important;border-radius:14px}

html body .mo-item .mo-pay{display:block;width:100%;height:56px;margin-top:12px;border-radius:12px;border:0;background:#1e3a5f;color:#fff;font-size:19px;font-weight:900}

/* 💰 입금 찾기(2026-10-03) */
html body.page-admin button.pf-btn{background:#fef3c7 !important;color:#92400e !important;border:1.5px solid #fcd34d !important}
html body.page-admin .pf-sheet{max-width:560px}
html body.page-admin .pf-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:12px 14px;margin:0 0 8px;border:1.5px solid #e2e8f0;border-radius:12px;background:#fff;text-align:left;cursor:pointer;font:inherit}
html body.page-admin .pf-item:hover{border-color:#93c5fd;background:#eff6ff}
html body.page-admin .pf-co b{font-size:16px}
html body.page-admin .pf-co small,html body.page-admin .pf-amt small{display:block;font-size:12.5px;color:#64748b;margin-top:2px}
html body.page-admin .pf-amt{text-align:right;font-weight:800;white-space:nowrap}
html body.page-admin .pf-why{color:#059669 !important;font-weight:700}

/* 주문조회 카드 — 결제 확인 띠(2026-10-03) */
html body .mo-item .mo-paid{margin-top:12px;padding:14px 12px;border-radius:12px;background:#dcfce7;border:2px solid #22c55e;color:#15803d;font-size:18px;font-weight:900;text-align:center}
html body .mo-item .mo-paid small{display:block;margin-top:4px;font-size:14px;font-weight:700;color:#166534}

/* 날짜 입력칸 옆 요일(2026-10-03) */
html body .wd-tag{display:inline;margin-left:4px;font-size:inherit;font-weight:800;color:#2563eb;white-space:nowrap}

/* 임대·판매 꼬리표(2026-10-03) — 임대 파랑, 판매 주황 */
html body .biz-tag{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:24px;padding:0 8px;border-radius:999px;font-size:13px;font-weight:900;letter-spacing:.02em;white-space:nowrap;vertical-align:middle}
html body .biz-tag.biz-rent{background:#dbeafe;color:#1d4ed8;border:1.5px solid #93c5fd}
html body .biz-tag.biz-sale{background:#ffedd5;color:#c2410c;border:1.5px solid #fdba74}
html body.page-admin .request-row .line2 .biz-tag{height:20px;min-width:34px;font-size:12px;margin-right:6px}
html body.page-admin .request-row .rr-chip{display:inline-flex;max-width:62%;overflow:hidden}
html body.page-admin .request-row .rr-chip .ops-chip{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
html body .biz-tag.biz-mix{background:#f3e8ff;color:#7e22ce;border:1.5px solid #d8b4fe}
html body.page-admin #detailPane h2 .biz-tag,html body.page-admin .detail-title .biz-tag{height:28px;font-size:14.5px;padding:0 12px}

/* 주문조회 카드 [📄 견적서 보기] — 작은 글자 대신 버튼(2026-10-03 오너 "견적서 결제하기 가 너무 작잖아 버튼으로") */
html body .mo-item .mo-go.mo-go-btn{display:flex;align-items:center;justify-content:center;width:100%;height:50px;margin-top:10px;border-radius:12px;border:2px solid #1e3a5f;background:#fff;color:#1e3a5f;font-size:17px;font-weight:900;text-align:center}
