*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.border{border-width:1px}.uppercase{text-transform:uppercase}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.app-layout{min-height:100vh;display:flex;flex-direction:column}.app-content{flex:1}.tabs-secondary{display:flex;align-items:center;gap:0;flex-wrap:wrap;border-bottom:2px solid #e5e7eb;margin-bottom:16px}.tabs-secondary a,.tabs-secondary button{padding:8px 16px;font-size:13px;font-weight:600;color:#6b7280;text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;font-family:inherit;transition:all .15s;white-space:nowrap}.tabs-secondary a:hover{color:#dc2626;border-bottom-color:#fca5a5}.tabs-secondary a.active{color:#dc2626;border-bottom-color:#dc2626;font-weight:700}@keyframes pulse-new{0%,to{box-shadow:0 0 #10b98180}50%{box-shadow:0 0 0 6px #10b98100}}body.compact-mode .container-wide{max-width:100%;padding:24px 18px}#tbl-docs.compact-view{font-size:11px;table-layout:fixed;width:auto;min-width:100%}#tbl-docs.compact-view th,#tbl-docs.compact-view td{padding:4px 5px;line-height:1.25}#tbl-docs.compact-view th{font-size:10.5px;font-weight:600}#tbl-docs.compact-view td.cell-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#tbl-docs.compact-view td.num{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#tbl-docs.compact-view .pill{font-size:9.5px;padding:1px 5px}#tbl-docs.compact-view .num{font-variant-numeric:tabular-nums}#tbl-docs.compact-view .col-date{width:130px;min-width:130px}#tbl-docs.compact-view .col-num{width:92px;min-width:92px}#tbl-docs.compact-view .col-pct{width:58px;min-width:58px}#tbl-docs.compact-view .col-status{width:64px;min-width:64px}#tbl-docs.compact-view .col-icon{width:28px;min-width:28px}#tbl-docs.compact-view .col-no{width:32px;min-width:32px}#tbl-docs.compact-view .col-site{width:50px;min-width:50px}#tbl-docs.compact-view .col-docno{width:96px;min-width:96px}#tbl-docs.compact-view .col-vendor{width:134px;min-width:110px}#tbl-docs.compact-view .col-vshort{width:86px;min-width:80px}#tbl-docs.compact-view .col-desc{width:180px;min-width:140px}body.compact-mode .tbl-wrap{overflow-x:auto;overflow-y:auto;position:relative}#tbl-docs.compact-view th{position:relative}#tbl-docs.compact-view th .col-resize-handle{position:absolute;top:0;right:-3px;width:6px;height:100%;cursor:col-resize;z-index:10;-webkit-user-select:none;-moz-user-select:none;user-select:none}#tbl-docs.compact-view th .col-resize-handle:hover,#tbl-docs.compact-view th .col-resize-handle.dragging{background:linear-gradient(90deg,transparent 40%,#3b82f6 40%,#3b82f6 60%,transparent 60%)}body.col-resizing{cursor:col-resize!important;-webkit-user-select:none;-moz-user-select:none;user-select:none}body.col-resizing *{cursor:col-resize!important}#thead-docs th{-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .15s}#thead-docs th:hover{background:#eff6ff!important}#thead-docs th.th-dragging{opacity:.4}#thead-docs th.th-drop-target{background:#dbeafe!important;box-shadow:inset 4px 0 #3b82f6}.th-hideable{position:relative}.col-hide-btn{display:inline-flex;align-items:center;justify-content:center;position:absolute;top:2px;right:2px;width:14px;height:14px;border-radius:3px;background:transparent;color:#9ca3af;font-size:10px;font-weight:700;cursor:pointer;opacity:0;transition:all .12s;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.th-hideable:hover .col-hide-btn{opacity:1}.col-hide-btn:hover{background:#fee2e2;color:#dc2626;opacity:1!important;transform:scale(1.15)}.hcol-chip{padding:4px 10px;font-size:11px;font-weight:700;border:1.5px solid;background:#fff;border-radius:14px;cursor:pointer;font-family:inherit;transition:all .15s;display:inline-flex;align-items:center;gap:3px}.hcol-chip:hover{transform:translateY(-1px);color:#fff}.hcol-chip:active{transform:translateY(0)}.hcol-grp{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px;padding:4px 10px 4px 8px;border-radius:10px;border:1.5px solid}.hcol-grp-label{font-size:11px;font-weight:800;margin-right:3px;letter-spacing:.3px;white-space:nowrap}.hcol-grp-order{background:#eff6ff;border-color:#bfdbfe}.hcol-grp-order .hcol-grp-label{color:#1e40af}.hcol-grp-order .hcol-chip{border-color:#3b82f6;color:#1e40af}.hcol-grp-order .hcol-chip:hover{background:linear-gradient(135deg,#3b82f6,#1e40af);box-shadow:0 3px 8px #3b82f666}.hcol-grp-recv{background:#fef3c7;border-color:#fcd34d}.hcol-grp-recv .hcol-grp-label{color:#92400e}.hcol-grp-recv .hcol-chip{border-color:#d97706;color:#92400e}.hcol-grp-recv .hcol-chip:hover{background:linear-gradient(135deg,#d97706,#b45309);box-shadow:0 3px 8px #d9770666}.hcol-grp-pay{background:#fee2e2;border-color:#fca5a5}.hcol-grp-pay .hcol-grp-label{color:#991b1b}.hcol-grp-pay .hcol-chip{border-color:#dc2626;color:#991b1b}.hcol-grp-pay .hcol-chip:hover{background:linear-gradient(135deg,#dc2626,#991b1b);box-shadow:0 3px 8px #dc262666}.hcol-grp-other{background:#f3f4f6;border-color:#d1d5db}.hcol-grp-other .hcol-grp-label{color:#374151}.hcol-grp-other .hcol-chip{border-color:#9ca3af;color:#374151}.hcol-grp-other .hcol-chip:hover{background:linear-gradient(135deg,#6b7280,#374151);box-shadow:0 3px 8px #6b728066}.user-chip:hover .logout-btn{display:block!important}.nav-dropdown{position:relative;display:inline-block}.nav-dropdown-menu{display:none;position:absolute;top:100%;left:0;background:#fff;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 6px 20px #00000014;min-width:-moz-max-content;min-width:max-content;width:-moz-max-content;width:max-content;z-index:100;overflow:hidden;margin-top:4px}.nav-dropdown-menu a{display:block;padding:10px 18px;color:#1f2937;text-decoration:none;border-radius:0;white-space:nowrap;font-size:13px}.nav-dropdown-menu a:hover{background:#f3f4f6}.nav-dropdown-menu a.active{background:#fef3c7;color:#b45309}.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown.open .nav-dropdown-menu{display:block}.nav-dropdown-toggle{color:#374151;padding:8px 12px;border-radius:6px;text-decoration:none;font-size:14px;font-weight:500;transition:.2s;line-height:1.3;cursor:pointer;display:inline-flex;align-items:center;gap:4px;border:none;background:transparent;font-family:inherit;white-space:nowrap}.nav-dropdown-toggle:hover{background:#fef2f2;color:#dc2626}.nav-dropdown-toggle.active{color:#dc2626;text-decoration:underline;text-underline-offset:6px;font-weight:600}.nav-dropdown-toggle .caret{font-size:10px;margin-left:2px;opacity:.7}.user-chip{margin-left:auto;flex-shrink:0;cursor:pointer}.user-info{text-align:right;line-height:1.3}.user-name{font-weight:600;font-size:13px;color:#1f2937}.user-role{color:#6b7280;font-size:11px}.legacy-page-wrapper{flex:1;display:flex;flex-direction:column}.legacy-iframe{flex:1;width:100%;min-height:calc(100vh - 65px);border:none;background:#fafafa}@media (max-width: 1280px){.nav-dropdown-toggle{padding:8px 10px;font-size:13.5px}}@media (max-width: 768px){.nav-dropdown-menu{position:fixed!important;top:60px!important;left:10px!important;right:10px!important;width:auto!important;min-width:0!important;max-height:60vh;overflow-y:auto;box-shadow:0 12px 32px #0000002e!important}}.filter-input,.filter-select{padding:8px 14px;border:1.5px solid #d1d5db;border-radius:8px;font-size:13px;font-family:inherit;background:#fff;color:#1f2937;transition:border-color .2s}.filter-input:focus,.filter-select:focus{border-color:#dc2626;outline:none;box-shadow:0 0 0 3px #dc26261a}.filter-input{min-width:200px;flex:1;max-width:320px}.filter-select{min-width:140px;cursor:pointer}.btn-refresh{padding:8px 14px;border:1.5px solid #d1d5db;border-radius:8px;background:#fff;font-size:13px;font-family:inherit;cursor:pointer;color:#374151;transition:.2s}.btn-refresh:hover{background:#f3f4f6;border-color:#9ca3af}.tab-view,.tab-view-active{padding:6px 12px;font-size:12px;font-weight:600;color:#6b7280;cursor:pointer;border:none;background:none;font-family:inherit}.tab-view-active{background:#dc2626!important;color:#fff!important}.btn-create{margin-left:10px;padding:7px 18px;background:linear-gradient(135deg,#dc2626,#991b1b);color:#fff;border:0;border-radius:8px;font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;box-shadow:0 2px 6px #dc26264d;display:inline-flex;align-items:center;gap:6px;transition:.2s}.btn-create:hover{transform:translateY(-1px);box-shadow:0 4px 12px #dc262666}.tbl-summary-bar{padding:8px 14px;border-bottom:1px solid #e5e7eb;background:#f9fafb;font-size:11px;color:#6b7280;display:flex;justify-content:space-between;align-items:center}.tr-clickable{cursor:pointer;transition:background .15s}.th-sortable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.th-sortable:hover{background:#eff6ff!important;color:#2563eb}.cell-text{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-cell{color:#2563eb;font-weight:600}.text-red{color:#dc2626}.loading-state,.error-state,.empty-state{padding:60px 20px;text-align:center;color:#9ca3af}.loading-state{font-size:16px}.error-state{color:#dc2626;font-size:14px}.empty-state .empty-icon{font-size:48px;margin-bottom:12px}.empty-state .empty-text{font-size:16px;font-weight:600;color:#374151;margin-bottom:4px}.empty-state .empty-hint{font-size:13px;color:#9ca3af}.page-title-sub{font-size:13px;font-weight:400;color:#9ca3af}.dash-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.dash-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:14px 16px;box-shadow:0 2px 8px #0000000f}.dash-card .lbl{font-size:11px;color:#6b7280;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.dash-card .val{font-size:24px;font-weight:800;margin-top:4px;line-height:1.1}.dash-card .sub{font-size:11px;margin-top:4px;color:#6b7280}.dash-card.alert{border-color:#fca5a5;background:#fef2f2}.dash-card.warn{border-color:#fcd34d;background:#fffbeb}.dash-card.success{border-color:#86efac;background:#f0fdf4}.dash-card.info{border-color:#93c5fd;background:#eff6ff}.dash-2col{display:grid;grid-template-columns:1fr 380px;gap:14px;margin-bottom:14px}.dash-3col{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px}.dash-section-title{font-size:14px;font-weight:700;margin-bottom:10px}.alert-row{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#fef2f2;border-left:3px solid #ef4444;border-radius:4px;margin-bottom:6px;font-size:13px}.alert-row.warn{background:#fffbeb;border-left-color:#f59e0b}.alert-row.info{background:#eff6ff;border-left-color:#3b82f6}.top-list .row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px dashed #e5e7eb}.top-list .row:last-child{border-bottom:0}.top-list .num{color:#6b7280;font-size:11px;width:18px;text-align:right;flex-shrink:0;margin-right:8px;font-weight:600}.top-list .name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-list .amt{font-weight:700;color:#1e40af}.chart-wrap{height:280px;position:relative}.summary-rows{font-size:13px;line-height:1.9}.summary-row{display:flex;justify-content:space-between}.summary-label{color:#6b7280}.summary-row-divider{border-top:1px dashed #e5e7eb;margin:6px 0}.text-green{color:#059669}.text-muted{font-size:11px;color:#6b7280}.top-list{font-size:13px}.top-list-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px dashed #e5e7eb;text-decoration:none;color:#1f2937;transition:.15s}.top-list-row:last-child{border-bottom:0}.top-list-row:hover{background:#fef2f2;padding-left:4px;padding-right:4px;border-radius:4px}.top-list-num{color:#9ca3af;font-size:11px;width:18px;text-align:right;flex-shrink:0;margin-right:8px;font-weight:600}.top-list-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.top-list-date{font-size:11px;color:#9ca3af;margin:0 8px;flex-shrink:0}.top-list-amt{font-weight:700;color:#1e40af;flex-shrink:0}.dash-actions{display:flex;gap:10px;flex-wrap:wrap}.dash-action-btn{padding:10px 20px;background:#fff;border:1.5px solid #d1d5db;border-radius:8px;font-size:13px;font-weight:600;font-family:inherit;text-decoration:none;color:#374151;transition:.2s;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.dash-action-btn:hover{border-color:#dc2626;color:#dc2626;transform:translateY(-1px);box-shadow:0 4px 14px #00000014}@media (max-width: 768px){.dash-grid{grid-template-columns:repeat(2,1fr)}.dash-2col{grid-template-columns:1fr}}@media (max-width: 480px){.dash-grid{grid-template-columns:1fr}}.alert-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.alert-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:14px 18px;display:flex;align-items:center;gap:14px;cursor:pointer;transition:all .15s}.alert-card:hover{box-shadow:0 4px 14px #00000014;transform:translateY(-1px)}.alert-card.urgent{border-left:5px solid #dc2626;background:linear-gradient(135deg,#fef2f2,#fff)}.alert-card.warn{border-left:5px solid #f59e0b;background:linear-gradient(135deg,#fefce8,#fff)}.alert-card.info{border-left:5px solid #3b82f6;background:linear-gradient(135deg,#eff6ff,#fff)}.alert-icon{font-size:32px}.alert-info{flex:1;min-width:0}.alert-info .num{font-size:28px;font-weight:800;line-height:1.1}.alert-info .lbl{font-size:12px;color:#6b7280;margin-top:2px}.alert-card.urgent .alert-info .num{color:#dc2626}.alert-card.warn .alert-info .num{color:#d97706}.alert-card.info .alert-info .num{color:#1e40af}.qa-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:16px 18px;margin-bottom:18px}.qa-card h3{margin:0 0 10px;font-size:14px;font-weight:700;color:#374151;display:flex;align-items:center;gap:8px}.qa-btn{width:100%;padding:10px;background:#1e40af;color:#fff;border:0;border-radius:6px;font-weight:600;cursor:pointer;font-family:inherit;font-size:13px;transition:.15s}.qa-btn:hover{background:#1e3a8a}.section{background:#fff;border:1px solid #e5e7eb;border-radius:10px;margin-bottom:18px;overflow:hidden}.section-hdr{padding:12px 18px;background:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center}.section-hdr h2{margin:0;font-size:15px;font-weight:700;color:#374151;display:flex;align-items:center;gap:8px}.count{background:#dc2626;color:#fff;padding:2px 10px;border-radius:12px;font-size:11px;font-weight:700;margin-left:8px}.count.warn{background:#f59e0b}.count.info{background:#3b82f6}.empty{padding:24px 18px;text-align:center;color:#9ca3af;font-size:13px}.doc-row{display:flex;align-items:center;gap:12px;padding:10px 18px;border-bottom:1px solid #f3f4f6;cursor:pointer;transition:background .12s}.doc-badge{background:#fee2e2;color:#dc2626;padding:5px 10px;border-radius:6px;font-weight:700;font-size:11px;text-align:center;min-width:80px;flex-shrink:0}.doc-badge.future{background:#dbeafe;color:#1e40af}.doc-badge.overdue{background:#dc2626;color:#fff}.doc-info-col{flex:1;min-width:0}.doc-no-link{font-size:12px;color:#1e40af;font-weight:700}.doc-vendor{font-size:13px;font-weight:600;color:#374151;margin-top:2px}.doc-amount{font-weight:700;color:#dc2626;font-variant-numeric:tabular-nums;font-size:14px;text-align:right;flex-shrink:0}@media (max-width: 768px){.alert-grid{grid-template-columns:1fr 1fr;gap:10px}}@media (max-width: 480px){.alert-grid{grid-template-columns:1fr;gap:8px}.section-hdr{padding:10px 12px;flex-direction:column;align-items:flex-start;gap:4px}.section-hdr h2{font-size:14px}}.btn-create{padding:8px 18px;background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff;border:0;border-radius:8px;cursor:pointer;font-weight:700;font-size:13px;font-family:inherit;white-space:nowrap;box-shadow:0 2px 8px #dc262640;transition:all .15s}.btn-create:hover{background:linear-gradient(135deg,#b91c1c,#991b1b);box-shadow:0 4px 12px #dc262659;transform:translateY(-1px)}.qc-sec{border-radius:10px;padding:14px 16px;border:1.5px solid;display:flex;flex-direction:column;gap:10px}.qc-sec-title{font-size:12px;font-weight:700;letter-spacing:.3px;display:flex;align-items:center;gap:6px;margin:-2px 0 4px}.qc-sec-info{background:linear-gradient(135deg,#eff6ff,#fff);border-color:#bfdbfe}.qc-sec-info .qc-sec-title{color:#1e40af}.qc-sec-info input{border-color:#bfdbfe}.qc-sec-info input:focus{border-color:#1e40af;box-shadow:0 0 0 3px #1e40af1f}.qc-sec-money{background:linear-gradient(135deg,#fff7ed,#fff);border-color:#fed7aa}.qc-sec-money .qc-sec-title{color:#c2410c}.qc-sec-money input{border-color:#fed7aa}.qc-sec-money input:focus{border-color:#dc2626;box-shadow:0 0 0 3px #dc26261f}.qc-sec-net{background:linear-gradient(135deg,#dcfce7,#86efac);border-color:#22c55e;text-align:center;padding:16px 18px}.qc-net-label{font-size:13px;font-weight:700;color:#15803d;margin-bottom:8px}.qc-net-display{width:100%;border:0!important;background:transparent!important;font-size:32px!important;font-weight:900;color:#14532d!important;text-align:center;font-variant-numeric:tabular-nums;padding:6px 0!important;letter-spacing:.5px}.qc-net-display:focus{outline:none}.qc-net-hint{font-size:11px;color:#16a34a;font-weight:500;margin-top:4px}.qc-field{display:flex;flex-direction:column;gap:5px}.qc-field label{font-size:11.5px;color:#374151;font-weight:600;display:flex;align-items:center;gap:4px}.qc-field input{padding:9px 12px;border:1.5px solid #d1d5db;border-radius:7px;font-size:13.5px;font-family:inherit;background:#fff;color:#1f2937;transition:all .12s;width:100%;box-sizing:border-box}.qc-field input:focus{outline:none}.qc-field input[readonly]{cursor:default}.qc-req{color:#dc2626;font-weight:700}.qc-opt{color:#9ca3af;font-weight:400;font-size:10.5px}.qc-money-input{text-align:right!important;font-variant-numeric:tabular-nums;font-weight:600}.qc-money-big{font-size:18px!important;padding:12px 14px!important;font-weight:700;color:#c2410c!important}.qc-money-deduct{color:#b91c1c}.qc-row-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media (max-width:560px){.qc-row-2{grid-template-columns:1fr}}.qc-input-with-btn{display:flex;gap:6px;align-items:center}.qc-input-with-btn input{flex:1}.qc-pct-btn{padding:8px 12px;background:#fff;border:1.5px solid #fed7aa;color:#c2410c;border-radius:6px;font-weight:700;font-size:11px;cursor:pointer;font-family:inherit;transition:all .12s;flex-shrink:0;min-width:48px;display:inline-flex;align-items:center;justify-content:center;gap:3px}.qc-pct-btn:hover{background:#fed7aa;color:#9a3412}.qc-pct-btn.active{background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff;border-color:#991b1b;box-shadow:0 2px 6px #dc262659}.qc-pct-btn.active:hover{background:linear-gradient(135deg,#b91c1c,#991b1b);color:#fff}.qc-pct-btn.active:before{content:"✓";font-size:10px}.qc-type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:6px}@media (max-width:640px){.qc-type-grid{grid-template-columns:repeat(2,1fr)}}.qc-step2-grid{gap:12px}.qc-type-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:18px 8px;border:2px solid #e5e7eb;border-radius:10px;background:#fff;cursor:pointer;transition:all .15s;font-family:inherit}.qc-type-btn:hover{border-color:#dc2626;background:#fef2f2;transform:translateY(-2px);box-shadow:0 6px 16px #dc262626}.qc-type-btn:active{transform:translateY(0)}.qc-type-icon{font-size:32px;line-height:1}.qc-type-name{font-size:13px;font-weight:700;color:#374151}.qc-type-btn:hover .qc-type-name{color:#dc2626}.qc-type-sub{font-size:10px;color:#9ca3af;font-weight:500}.qc-vat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:4px}@media (max-width:560px){.qc-vat-grid{grid-template-columns:1fr}}.qc-vat-opt{position:relative;cursor:pointer}.qc-vat-opt input{position:absolute;opacity:0;pointer-events:none}.qc-vat-opt span{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:8px 6px;border:1.5px solid #fed7aa;border-radius:7px;background:#fff;font-size:11.5px;font-weight:700;color:#9a3412;text-align:center;transition:all .12s;line-height:1.2}.qc-vat-opt span small{font-size:9.5px;font-weight:500;color:#c2410c;opacity:.85}.qc-vat-opt:hover span{border-color:#fb923c;background:#fff7ed}.qc-vat-opt input:checked+span{border-color:#dc2626;background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff;box-shadow:0 2px 6px #dc26264d}.qc-vat-opt input:checked+span small{color:#fee2e2}.qc-vat-mini{display:inline-flex!important;gap:3px;grid-template-columns:none!important;margin:0}.qc-vat-mini .qc-vat-opt span{padding:3px 8px;font-size:10.5px;border-width:1px;border-radius:5px;font-weight:600;line-height:1.3;flex-direction:row}.qc-vat-mini .qc-vat-opt input:checked+span{box-shadow:0 1px 3px #dc26264d}.qc-vendor-combo{position:relative;display:flex;align-items:stretch}.qc-vendor-combo input{flex:1;padding-right:34px!important}.qc-vendor-toggle{position:absolute;right:0;top:0;bottom:0;width:32px;border:0;background:transparent;cursor:pointer;color:#6b7280;font-size:14px;padding:0;font-family:inherit}.qc-vendor-toggle:hover{color:#dc2626}.qc-vendor-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:300;background:#fff;border:1px solid #d1d5db;border-radius:8px;box-shadow:0 8px 24px #0000001f;max-height:260px;overflow-y:auto}.qc-vendor-item{padding:8px 12px;cursor:pointer;border-bottom:1px solid #f3f4f6;font-size:13px;display:flex;justify-content:space-between;align-items:center;gap:8px}.qc-vendor-item:last-child{border-bottom:0}.qc-vendor-item:hover,.qc-vendor-item.qc-vendor-active{background:#fef2f2;color:#dc2626}.qc-vendor-item .qc-vendor-name{font-weight:500;color:#1f2937;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qc-vendor-item:hover .qc-vendor-name,.qc-vendor-item.qc-vendor-active .qc-vendor-name{color:#dc2626}.qc-vendor-item .qc-vendor-code{font-size:11px;color:#9ca3af;font-weight:600}.qc-vendor-empty{padding:14px;text-align:center;color:#15803d;font-size:12px;background:#f0fdf4;font-weight:500}.qc-vendor-new{padding:10px 12px;background:#f0fdf4;color:#15803d;font-weight:600;font-size:12px;cursor:pointer;border-top:1px solid #d1fae5}.qc-vendor-new:hover{background:#dcfce7}.qc-gross-row{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:2px}.qc-gross-row label{margin:0}.qc-vat-breakdown{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:6px;padding:6px 10px;background:#ffffffb3;border:1px dashed #fed7aa;border-radius:6px;font-size:11px;color:#7c2d12;font-variant-numeric:tabular-nums}.qc-vat-breakdown b{font-weight:700;color:#c2410c}.qc-vat-breakdown .qc-vat-sep{color:#9ca3af;font-weight:600}.qc-base-hint{font-size:9.5px;color:#9ca3af;font-weight:500;margin-left:2px}.doc-row{display:grid;grid-template-columns:auto 1fr auto auto auto;gap:12px;padding:10px 18px;border-bottom:1px solid #f3f4f6;align-items:center;cursor:pointer;transition:background .12s}.doc-row:hover{background:#fef3c7}.doc-row:last-child{border-bottom:none}.doc-row .badge-date{background:#fee2e2;color:#dc2626;padding:5px 10px;border-radius:6px;font-weight:700;font-size:11px;text-align:center;min-width:80px}.doc-row .badge-date.future{background:#dbeafe;color:#1e40af}.doc-row .badge-date.overdue{background:#dc2626;color:#fff}.doc-row .doc-info{min-width:0}.doc-row .doc-no{font-size:12px;color:#1e40af;font-weight:700}.doc-row .vendor{font-size:13px;font-weight:600;color:#374151;margin-top:2px}.doc-row .desc{font-size:11px;color:#6b7280;margin-top:1px}.doc-row .amount{font-weight:700;color:#dc2626;font-variant-numeric:tabular-nums;font-size:14px;text-align:right}.doc-row .pct{font-size:11px;color:#6b7280;text-align:right}.doc-row .actions{display:flex;gap:4px}.doc-row .actions .btn{padding:5px 10px;font-size:11px;border:0;border-radius:5px;cursor:pointer;font-family:inherit;font-weight:600}.doc-row .btn-recv{background:#10b981;color:#fff}.doc-row .btn-recv:hover{background:#059669}.doc-row .btn-postpone{background:#fef3c7;color:#92400e}.doc-row .btn-postpone:hover{background:#fde68a}.doc-row .btn-open{background:#dbeafe;color:#1e40af}.doc-row .btn-open:hover{background:#bfdbfe}.empty{padding:30px 18px;text-align:center;color:#9ca3af;font-size:13px}.toast{position:fixed;bottom:30px;right:30px;background:#10b981;color:#fff;padding:12px 22px;border-radius:8px;box-shadow:0 8px 24px #00000040;font-weight:600;z-index:99999;animation:slide-in .3s ease}@keyframes slide-in{0%{transform:translate(50px);opacity:0}to{transform:translate(0);opacity:1}}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:9999;display:flex;align-items:center;justify-content:center}.modal{background:#fff;border-radius:12px;width:600px;max-width:96vw;max-height:90vh;overflow:auto;box-shadow:0 25px 70px #00000059}.modal-hdr{padding:18px 24px;background:linear-gradient(135deg,#1e40af,#3b82f6);color:#fff}.modal-hdr h3{margin:0;font-size:18px;font-weight:700}.modal-hdr .sub{font-size:12px;opacity:.85;margin-top:3px}.modal-body{padding:20px 24px}.modal-footer{padding:14px 24px;border-top:1px solid #e5e7eb;background:#f9fafb;display:flex;justify-content:flex-end;gap:8px}.modal-footer button{padding:9px 18px;border:0;border-radius:6px;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer}.modal-footer .btn-ghost{background:#fff;color:#374151;border:1px solid #d1d5db}.modal-footer .btn-primary{background:#1e40af;color:#fff}.modal-footer .btn-primary:hover{background:#1e3a8a}.modal-footer .btn-success{background:#10b981;color:#fff}.modal-footer .btn-success:hover{background:#059669}.modal-info-grid{display:grid;grid-template-columns:130px 1fr;gap:8px 14px;font-size:13px;line-height:1.4}.modal-info-grid .lbl{color:#6b7280}.modal-info-grid .val{font-weight:600}.qa-card .btn-primary{width:100%;padding:10px;background:#1e40af;color:#fff;border:0;border-radius:6px;font-weight:600;cursor:pointer;font-family:inherit;font-size:13px;margin-top:6px}.qa-card .btn-primary:hover{background:#1e3a8a}.qc-vendor-warn{padding:8px 12px;background:#fffbeb;color:#92400e;font-size:11px;font-weight:700;border-bottom:1px solid #fde68a;text-transform:uppercase;letter-spacing:.3px}.qc-vendor-item-warn{background:#fffef5}.qc-vendor-item-warn:hover{background:#fef3c7;color:#92400e}.qc-vendor-item-warn:hover .qc-vendor-name{color:#92400e}.qc-vendor-tag{display:inline-block;background:#fde68a;color:#92400e;padding:1px 6px;border-radius:4px;font-size:9px;font-weight:700;margin-left:4px;vertical-align:middle}.qc-vendor-sep{padding:6px 12px;background:#f9fafb;color:#6b7280;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb}@media (max-width:768px){.container-wide{padding:14px 12px}.page-title{font-size:18px}.alert-grid{grid-template-columns:1fr 1fr;gap:10px}.quick-action-grid{grid-template-columns:1fr;gap:10px}.qa-card .form-row{grid-template-columns:1fr}.alert-icon{font-size:28px}.alert-info .num{font-size:24px}.doc-row{grid-template-columns:auto 1fr auto;gap:8px;padding:8px 14px}}@media (max-width:480px){.container-wide{padding:10px 8px}.page-title{font-size:17px;flex-direction:column;align-items:flex-start;gap:6px}.page-title>div{font-size:11px}.alert-grid{grid-template-columns:1fr;gap:8px}.alert-card{padding:10px 14px;gap:10px}.alert-icon{font-size:24px}.alert-info .num{font-size:22px}.alert-info .lbl{font-size:11px}.qa-card{padding:12px 14px}.qa-card h3{font-size:13px}.qa-card .btn-primary{padding:12px;font-size:14px;min-height:44px}.section-hdr{padding:10px 12px;flex-direction:column;align-items:flex-start;gap:4px}.section-hdr h2{font-size:14px}.section-hdr>span:not(.count){font-size:10px}.doc-row{grid-template-columns:auto 1fr;grid-template-areas:"date info" "amt amt" "actions actions";gap:6px 10px;padding:10px 12px}.doc-row .badge-date{grid-area:date;min-width:auto;padding:4px 8px;font-size:10.5px}.doc-row .doc-info{grid-area:info}.doc-row .doc-no{font-size:11px}.doc-row .vendor{font-size:13px}.doc-row .desc{font-size:10.5px}.doc-row .amount{grid-area:amt;text-align:left;font-size:14px}.doc-row .pct{display:inline;font-size:11px;margin-left:8px}.doc-row .actions{grid-area:actions;justify-content:flex-end;flex-wrap:wrap}.doc-row .actions .btn{padding:8px 14px;font-size:12px;min-height:40px;flex:1;min-width:90px;text-align:center}.empty{padding:20px 12px;font-size:12px}.modal{width:100%;max-width:100%;max-height:100vh;border-radius:0;display:flex;flex-direction:column}.modal-hdr{padding:14px 16px;border-radius:0}.modal-hdr h3{font-size:16px}.modal-hdr .sub{font-size:11px}.modal-body{padding:14px 16px;flex:1}.modal-info-grid{grid-template-columns:1fr;gap:4px 0;font-size:13px}.modal-info-grid .lbl{margin-top:8px;color:#6b7280;font-size:11px}.modal-info-grid .val{padding-left:0;font-size:13px}.modal-footer{padding:12px 14px;flex-direction:column-reverse;gap:6px}.modal-footer button{width:100%;padding:12px;font-size:14px;min-height:44px}.toast{right:10px;bottom:10px;left:10px;text-align:center;padding:14px;font-size:14px}}.boq-card{border:1px solid var(--g200);border-radius:6px;padding:10px 14px;margin-bottom:6px;background:#fff;cursor:pointer;display:flex;align-items:center;gap:14px;transition:all .12s}.boq-card:hover{border-color:var(--blue);box-shadow:0 1px 6px #0000000f}.boq-card.selected{border-color:var(--blue);background:#eff6ff;box-shadow:0 0 0 2px #93c5fd}.boq-info{flex:1;min-width:0}.boq-title{font-weight:600;color:var(--blue);font-size:14px}.boq-sub{font-size:11px;color:#6b7280;margin-top:2px}.boq-stat{text-align:right;font-size:11px;color:#6b7280;white-space:nowrap}.boq-stat .v{font-size:14px;font-weight:700;display:block}.pill-site{display:inline-block;padding:2px 8px;background:#ede9fe;color:#6b21a8;border-radius:10px;font-size:11px;font-weight:600;margin-left:6px}.pill-site.pill-no-site{background:#fef3c7;color:#92400e}.editable{border:1px solid transparent;padding:3px 6px;border-radius:4px;background:transparent;width:100%;font-family:inherit;font-size:13px;box-sizing:border-box}.editable:focus{border-color:var(--blue);outline:none;background:#fff}.field-num{width:80px;text-align:right}.field-qty{width:60px;text-align:right}.top-tabs{display:flex;gap:6px;margin-bottom:14px;border-bottom:2px solid #e5e7eb}.top-tabs button{background:transparent;border:0;padding:10px 20px;cursor:pointer;font-family:inherit;font-size:14px;font-weight:500;color:#6b7280;border-bottom:3px solid transparent;margin-bottom:-2px;display:flex;gap:6px;align-items:center}.top-tabs button:hover{color:#1e40af}.top-tabs button.active{color:#1e40af;border-bottom-color:#1e40af;background:#eff6ff}.bg-progress{height:6px;background:#e5e7eb;border-radius:3px;overflow:hidden;margin-top:3px}.bg-progress>div{height:100%;background:linear-gradient(90deg,#10b981,#059669);transition:width .3s}.bg-progress.warn>div{background:linear-gradient(90deg,#f59e0b,#d97706)}.bg-progress.over>div{background:linear-gradient(90deg,#dc2626,#991b1b);width:100%!important}
