:root{--a4-paper:#fff;--a4-ink:#111;--a4-muted:#555;--a4-line:#b8b8b8;--a4-olive:#fff;--a4-olive-deep:#222;--a4-green:#111;--a4-white:#fff}
*{box-sizing:border-box}
body.a4-document{margin:0;background:#ececec;color:var(--a4-ink);font-family:"Pretendard","Noto Sans KR","맑은 고딕",sans-serif;font-size:11px;line-height:1.55}
.print-toolbar{position:sticky;top:0;z-index:5;display:flex;justify-content:center;gap:8px;padding:12px;background:#fff;border-bottom:1px solid #222;box-shadow:none}.print-toolbar a,.print-toolbar button{border:1px solid #222;border-radius:7px;padding:10px 15px;background:#fff;color:#111;font:inherit;font-weight:900;text-decoration:none;cursor:pointer}.print-toolbar .primary{background:#fff;border-color:#222;color:#111}
.a4-page{position:relative;box-sizing:border-box;width:210mm;min-height:297mm;margin:10mm auto;padding:12mm 15mm 10mm;background:var(--a4-paper);color:var(--a4-ink);border:1px solid #bdbdbd;border-radius:0 30px 0 30px;box-shadow:0 8px 26px #00000016;font-family:inherit;page:portrait-page;overflow:hidden}.a4-page:before{content:"";position:absolute;top:0;left:0;right:0;height:7px;background:var(--a4-olive-deep)}.a4-page.landscape{width:297mm;min-height:210mm;page:landscape-page}
.a4-title{position:relative;text-align:left;margin:1mm 0 5mm;color:var(--a4-green);font-size:25px;font-weight:800;letter-spacing:0}.a4-title:before{content:"";display:inline-block;width:9px;height:23px;margin-right:10px;border-radius:2px;background:var(--a4-olive-deep);vertical-align:-2px}
.a4-meta{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;margin-bottom:5mm;border:0}.a4-meta div{min-height:10mm;padding:2mm 0;border-bottom:1px solid var(--a4-line)}.a4-meta div:nth-child(even){border-right:0}.a4-meta b{display:inline-block;width:28mm;color:var(--a4-muted);font-size:10px;font-weight:800}
.a4-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;color:var(--a4-ink);font-size:10px}.a4-table th,.a4-table td{padding:2mm 1.5mm;border:0;border-bottom:1px solid var(--a4-line);text-align:center;word-break:break-all}.a4-table thead th{border-top:1px solid var(--a4-olive-deep);border-bottom:1px solid var(--a4-olive-deep);background:var(--a4-olive);color:var(--a4-green);font-weight:900}.a4-table .left{text-align:left}.a4-table .right{text-align:right}.a4-table tbody tr:last-child td{border-bottom-color:var(--a4-olive-deep)}
.a4-total{display:flex;justify-content:flex-end;gap:10mm;margin-top:5mm;padding:3mm 0;border-top:1px solid var(--a4-olive-deep);border-bottom:2px solid var(--a4-green);color:var(--a4-ink)}.a4-total strong{font-size:18px;color:var(--a4-green)}.quantity-journal-table th:last-child,.quantity-journal-table td:last-child{font-weight:900}.quantity-total{justify-content:flex-end}.a4-sign{display:flex;justify-content:space-between;margin-top:10mm;padding-top:3mm;border-top:1px solid var(--a4-line);color:var(--a4-muted)}.a4-note{margin-top:3mm;color:var(--a4-muted);font-size:10px}.document-form-menu{display:flex;flex-wrap:wrap;gap:8px}.document-form-menu form{margin:0}.document-form-menu a,.document-form-menu button{border:1px solid var(--a4-olive-deep);border-radius:7px;padding:9px 12px;background:var(--a4-white);color:var(--a4-green);text-decoration:none;font:inherit;font-weight:800;cursor:pointer}

/* 견적서 공통 헤더·하단 정보 */
.a4-brand{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:0 0 5mm}.a4-brand-id{display:flex;align-items:center;gap:10px}.a4-logo-mark{display:grid;place-items:center;width:16mm;height:16mm;background:#fff;border:1px solid #222;color:var(--a4-green);font-size:20px;font-weight:900}.a4-brand-name{display:block;color:var(--a4-green);font-size:18px;font-weight:900;line-height:1.05}.a4-brand-sub{display:block;margin-top:4px;color:var(--a4-muted);font-size:10px}.a4-brand-meta{text-align:right;color:var(--a4-muted);font-size:10px}.a4-brand-meta strong{display:block;color:var(--a4-green);font-size:12px}.a4-document-title-row{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:4mm}.a4-document-title-row .a4-title{margin:0}.a4-document-stamp{color:var(--a4-muted);font-size:10px;text-align:right}.quote-page .a4-title{font-size:29px}.quote-page .a4-title:before{height:27px}.quote-parties{display:grid;grid-template-columns:1fr 1fr;gap:12mm;margin:1mm 0 5mm}.quote-party{position:relative;display:grid;gap:2px;padding:0 0 1mm 6mm;border-left:5px solid #ddd}.quote-party span{color:var(--a4-muted);font-size:10px;font-weight:800}.quote-party b{font-size:12px}.quote-party small{color:var(--a4-ink)}.quote-spec{display:block;margin-top:2px;color:var(--a4-muted);font-size:9px}.quote-table th:first-child{text-align:left}.quote-table th:nth-child(1){width:52%}.quote-table th:nth-child(2){width:12%}.quote-table th:nth-child(3),.quote-table th:nth-child(4){width:18%}.quote-summary{display:flex;justify-content:flex-end;margin-top:5mm}.quote-summary-inner{display:grid;grid-template-columns:auto auto;gap:3px 26mm;min-width:70mm;padding:2mm 0 2mm 6mm;border-left:5px solid #ddd}.quote-summary-inner span:nth-child(odd){color:var(--a4-muted)}.quote-summary-inner span:nth-child(even){text-align:right}.quote-summary-inner strong{font-size:16px;color:var(--a4-green)}.a4-footer{display:grid;grid-template-columns:1fr 1fr;gap:12mm;margin-top:18mm;padding-top:5mm;border-top:1px solid var(--a4-line)}.a4-footer section{display:grid;gap:2px}.a4-footer-label{color:var(--a4-muted);font-size:10px;font-weight:800}.a4-footer strong{color:var(--a4-green);font-size:13px}.a4-footer small{font-size:10px}.a4-footer-brand{display:flex;align-items:center;gap:8px}.a4-footer-brand .a4-logo-mark{width:10mm;height:10mm;font-size:14px}

/* 개별 출력자료도 같은 아이보리·올리브 체계로 유지 */
.a4-document .report-table,.a4-document .inventory-print-table,.a4-document .workforce-table{border-collapse:separate;border-spacing:0;color:var(--a4-ink)}.a4-document .report-table th,.a4-document .inventory-print-table th,.a4-document .workforce-table th{background:var(--a4-olive)!important;color:var(--a4-green);border:0!important;border-top:1px solid var(--a4-olive-deep)!important;border-bottom:1px solid var(--a4-olive-deep)!important}.a4-document .report-table td,.a4-document .inventory-print-table td,.a4-document .workforce-table td{border:0!important;border-bottom:1px solid var(--a4-line)!important}.a4-document .report-table tr:last-child td,.a4-document .inventory-print-table tr:last-child td,.a4-document .workforce-table tr:last-child td{border-bottom-color:var(--a4-olive-deep)!important}.inventory-print-head{border-bottom-color:var(--a4-olive-deep)!important}.inventory-print-summary span,.settle-summary span,.workforce-summary span{border-color:var(--a4-olive-deep)!important;background:var(--a4-olive)!important;color:var(--a4-green)}.section-title{border-bottom-color:var(--a4-olive-deep)!important;color:var(--a4-green)}.a4-document .attention{color:#a83e36}.a4-document .print-actions button,.a4-document .print-actions a{background:var(--a4-green);color:var(--a4-paper)}.a4-document .print-actions a.excel{background:#526a4c}
.sales-slip-page .slip-copy-type{margin:-4mm 0 6mm;color:var(--a4-muted);font-size:10px;font-weight:800}.sales-slip-page .slip-table{font-size:9.5px}.sales-slip-page .slip-table th,.sales-slip-page .slip-table td{padding:2.2mm 1.2mm}.sales-slip-page .slip-table th:nth-child(1){width:9%}.sales-slip-page .slip-table th:nth-child(2){width:28%}.sales-slip-page .slip-table th:nth-child(3){width:15%}.sales-slip-page .slip-table th:nth-child(4),.sales-slip-page .slip-table th:nth-child(5),.sales-slip-page .slip-table th:nth-child(6),.sales-slip-page .slip-table th:nth-child(7){width:12%}.sales-slip-page .statement-slip-table th:nth-child(1){width:8%}.sales-slip-page .statement-slip-table th:nth-child(2){width:27%}.sales-slip-page .statement-slip-table th:nth-child(3){width:11%}.sales-slip-page .statement-slip-table th:nth-child(4),.sales-slip-page .statement-slip-table th:nth-child(5),.sales-slip-page .statement-slip-table th:nth-child(6),.sales-slip-page .statement-slip-table th:nth-child(7){width:13.5%}
@page portrait-page{size:A4 portrait;margin:0}@page landscape-page{size:A4 landscape;margin:0}@media print{body{background:#fff}.topbar,.workspace-tabs,.mobile-nav,.print-toolbar{display:none!important}.shell{width:auto!important;margin:0!important;padding:0!important}.a4-page{width:210mm;min-height:297mm;margin:0;padding:11mm 12mm 9mm;box-shadow:none;border-radius:0;page-break-after:always}.a4-page.landscape{width:297mm;min-height:210mm}.a4-page:last-child{page-break-after:auto}.a4-table thead{display:table-header-group}.a4-table tr{break-inside:avoid}.a4-footer{margin-top:12mm}body.a4-document:not(.color-print){filter:grayscale(100%)}body.a4-document.color-print{filter:none}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}
@media screen{html,body{width:100%;min-width:0;overflow-x:hidden}body.a4-document{min-height:100vh}.print-toolbar{width:100%;min-width:0;box-sizing:border-box}.a4-page{width:min(210mm,calc(100vw - 32px));min-width:0;margin:16px auto;padding:clamp(16px,3vw,32px)}.a4-page.landscape{width:min(297mm,calc(100vw - 32px));min-width:0}.a4-page table{width:100%;max-width:100%;table-layout:fixed}.a4-page th,.a4-page td{min-width:0;overflow-wrap:anywhere}}
@media screen and (max-width:760px){.a4-title{font-size:clamp(21px,6vw,29px)}.a4-meta{grid-template-columns:1fr}.a4-total{flex-wrap:wrap;gap:12px;font-size:14px}.a4-brand{align-items:flex-start;flex-direction:column}.a4-brand-meta{text-align:left}.a4-document-title-row{align-items:flex-start;flex-direction:column}.a4-document-stamp{text-align:left}.a4-footer{grid-template-columns:1fr;margin-top:12mm}.quote-summary{justify-content:stretch}.quote-summary-inner{width:100%;min-width:0}}
@media screen and (max-width:560px){.quote-parties{grid-template-columns:1fr}}

/* 모든 공식 출력물은 A4 세로를 기본으로 사용합니다. 예전 landscape 클래스도
   기존 링크가 남아 있는 동안에는 세로 문서로 안전하게 해석합니다. */
@page{size:A4 portrait!important;margin:8mm!important}
@page landscape-page{size:A4 portrait!important;margin:0!important}
.a4-page.landscape{width:210mm;min-height:297mm;page:portrait-page}
@media print{.a4-page.landscape{width:210mm;min-height:297mm}}
@media screen{.a4-page.landscape{width:min(210mm,calc(100vw - 32px));min-width:0}}

/* 기간 거래명세서·매입 거래내역도 공식 출력물과 같은 톤을 사용합니다. */
.customer-period-document .sheet{max-width:297mm;margin:10mm auto;padding:16mm 15mm;background:var(--a4-paper);color:var(--a4-ink);border:1px solid #d2d4c0;border-radius:0 30px 0 30px;box-shadow:0 8px 26px #344d3822}.customer-period-document .preview-notice{border-color:var(--a4-olive-deep)!important;background:var(--a4-olive)!important;color:var(--a4-green)!important}.customer-period-document .actions button,.customer-period-document .actions a{background:var(--a4-green)!important;border-color:var(--a4-green)!important;color:var(--a4-paper)!important}.customer-period-document .preview-notice small,.customer-period-document .head p,.customer-period-document .head-info,.customer-period-document .ledger-title span{color:var(--a4-muted)!important}.customer-period-document .head{border-bottom-color:var(--a4-olive-deep)!important}.customer-period-document .head h1,.customer-period-document .ledger-title h2{color:var(--a4-green)}.customer-period-document .summary div{border-color:var(--a4-olive-deep)!important;background:var(--a4-olive)!important}.customer-period-document .summary .payment,.customer-period-document .summary .closing{background:var(--a4-olive)!important}.customer-period-document .summary span{color:var(--a4-muted)!important}.customer-period-document .data{border-collapse:separate;border-spacing:0;color:var(--a4-ink)}.customer-period-document .data th{background:var(--a4-olive)!important;color:var(--a4-green);border:0!important;border-top:1px solid var(--a4-olive-deep)!important;border-bottom:1px solid var(--a4-olive-deep)!important}.customer-period-document .data td{border:0!important;border-bottom:1px solid var(--a4-line)!important}.customer-period-document .data tr.payment,.customer-period-document .data tr.freight{background:transparent}.customer-period-document .data tr.payment td,.customer-period-document .data tr.freight td{background:var(--a4-olive)!important;border-color:var(--a4-line)!important}.customer-period-document .data tr.payment .payment-amount{color:var(--a4-green)!important}.customer-period-document .formula{border-color:var(--a4-green)!important;background:transparent!important;color:var(--a4-ink)}.customer-period-document .formula b{color:var(--a4-green)!important}
.supplier-statement-page{max-width:1900px;margin:0 auto;padding:22px;color:var(--a4-ink);background:var(--a4-paper);border:1px solid #d2d4c0;border-radius:0 30px 0 30px;box-shadow:0 8px 26px #344d3822}.supplier-statement-page .statement-head span{color:var(--a4-muted)}.supplier-statement-page .statement-head h1{color:var(--a4-green)}.supplier-statement-page .statement-head p{color:var(--a4-muted)}.supplier-statement-page .statement-actions a,.supplier-statement-page .statement-actions button{border-color:var(--a4-olive-deep);background:var(--a4-white);color:var(--a4-green)}.supplier-statement-page .statement-actions button{background:var(--a4-green);color:var(--a4-paper);border-color:var(--a4-green)}.supplier-statement-page .statement-summary article{border-color:var(--a4-olive-deep);border-top-color:var(--a4-olive-deep);background:var(--a4-olive)}.supplier-statement-page .statement-summary span,.supplier-statement-page .statement-summary small{color:var(--a4-muted)}.supplier-statement-page .statement-summary strong{color:var(--a4-green)}.supplier-statement-page .statement-table-wrap{border-color:var(--a4-olive-deep);border-radius:0}.supplier-statement-page .statement-table-wrap th{background:var(--a4-olive);color:var(--a4-green);border-color:var(--a4-line)}.supplier-statement-page .statement-table-wrap td{border-color:var(--a4-line)}.supplier-statement-page .statement-table-wrap tr.payment{background:var(--a4-olive)}

/* 거래처 정보 화면도 견적서의 공식 문서 톤으로 연결합니다. */
.customer-overview{overflow:hidden;border:1px solid #d2d4c0;border-radius:0 24px 0 24px;background:var(--a4-paper);box-shadow:0 8px 26px #344d3822}
.customer-overview>header{border-bottom:1px solid var(--a4-olive-deep);background:var(--a4-olive)}
.customer-overview>header span,.customer-info-modal-head span,.customer-contact-assignment header span{color:var(--a4-green)!important}
.customer-overview>header h2,.customer-info-modal-head h2,.customer-contact-assignment h2{color:var(--a4-green)}
.customer-overview>header p,.customer-info-modal-head p{color:var(--a4-muted)!important}
.customer-overview>header button,.customer-info-trigger,.customer-contact-assignment header a,.customer-contact-assignment header button{border-color:var(--a4-green);background:var(--a4-green);color:var(--a4-paper)}
.customer-overview-grid article{background:var(--a4-white);border-color:var(--a4-line)}
.customer-overview-grid span,.customer-overview-grid small,.contact-grid span,.customer-detail-grid span{color:var(--a4-muted)!important}
.customer-overview-grid b,.contact-grid b,.customer-detail-grid b{color:var(--a4-green)}
.customer-overview-grid article.balance{background:#fff;color:var(--a4-ink)}
.customer-overview-grid article.balance span,.customer-overview-grid article.balance b{color:var(--a4-ink)!important}
.customer-overview>footer{border-top:1px solid var(--a4-line);background:#fff;color:var(--a4-muted)}
.customer-overview>footer a,.contact-grid a{color:var(--a4-green)}
.customer-info-trigger{border-color:var(--a4-green);background:var(--a4-green);color:var(--a4-paper)}
.customer-info-trigger span{background:var(--a4-olive);color:var(--a4-green)}
.customer-info-trigger:hover,.customer-info-trigger:focus-visible{border-color:var(--a4-olive-deep);background:#405d44;outline-color:#344d3833}
.customer-info-dialog{border:1px solid #d2d4c0;background:var(--a4-paper);color:var(--a4-ink);box-shadow:0 30px 90px #344d3855}
.customer-info-dialog::backdrop{background:#263828aa}
.customer-info-modal-head{border-bottom-color:var(--a4-olive-deep);background:var(--a4-olive)}
.customer-info-close{border-color:var(--a4-olive-deep);background:var(--a4-white);color:var(--a4-green)}
.customer-contact-assignment{background:var(--a4-paper)}
.customer-contact-assignment>article{border-color:var(--a4-line);border-radius:0 18px 0 18px;background:var(--a4-white);box-shadow:0 8px 24px #0000000d}
.contact-grid>div,.customer-detail-grid>div{background:#fff;border-left:3px solid var(--a4-olive-deep)}
.contact-edit-form,.assignment-change-form,.customer-detail-edit-form{border-top-color:var(--a4-line)}
.contact-edit-form label,.assignment-change-form label,.customer-detail-edit-form label{color:var(--a4-muted)}
.contact-edit-form input,.assignment-change-form input,.assignment-change-form select,.customer-detail-edit-form input,.customer-detail-edit-form select,.customer-detail-edit-form textarea{border-color:var(--a4-line);background:var(--a4-white)}
.contact-edit-form button,.assignment-change-form button,.customer-detail-edit-form button,.customer-info-modal-foot button{background:var(--a4-green);color:var(--a4-paper)}
.customer-info-modal-foot{border-top-color:var(--a4-olive-deep);background:#fff;color:var(--a4-muted)}
.customer-info-modal-foot b{color:var(--a4-green)}

@media print{
  .customer-period-document .sheet,.supplier-statement-page{max-width:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}
}
