.invoice-workspace { padding: 20px; background: #f4f6f9; min-height: calc(100vh - 72px); color: #1d2939; } .invoice-hero { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 8px; } .invoice-hero > div:first-child > span { font-size: 11px; letter-spacing: 0.14em; color: #667085; } .invoice-hero h2 { margin: 3px 0 2px; font-weight: 700; } .invoice-hero p, .editor-card .card-header small, .invoice-list-card .card-header small { display: block; color: #667085; } .hero-actions { display: flex; gap: 8px; flex-wrap: wrap; } .sales-section-nav { display: flex; gap: 7px; padding: 7px; margin-bottom: 16px; background: #fff; border: 1px solid #e4e7ec; border-radius: 13px; overflow-x: auto; } .sales-section-nav a { display: flex; align-items: center; gap: 7px; padding: 9px 13px; border-radius: 8px; color: #475467; text-decoration: none; white-space: nowrap; } .sales-section-nav a.active { background: #ef7d00; color: #fff; } .sales-section-nav b { min-width: 19px; padding: 1px 6px; border-radius: 10px; background: #dc3545; color: #fff; text-align: center; font-size: 11px; } .invoice-metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 16px; } .invoice-metrics article { padding: 15px; background: #fff; border: 1px solid #e4e7ec; border-radius: 12px; } .invoice-metrics small, .invoice-metrics span { display: block; color: #667085; } .invoice-metrics strong { display: block; margin: 5px 0; font-size: 20px; } .invoice-list-card, .editor-card { border: 1px solid #e4e7ec; border-radius: 13px; box-shadow: 0 5px 20px rgba(16, 24, 40, 0.04); overflow: hidden; } .invoice-list-card > .card-header, .editor-card > .card-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 16px; background: #fff; } .invoice-filters { display: grid; grid-template-columns: repeat(5, minmax(135px, 1fr)) auto; gap: 10px; align-items: end; padding: 14px 16px; background: #f8fafc; border-top: 1px solid #eaecf0; border-bottom: 1px solid #eaecf0; } .invoice-filters label, .item-form-card label { font-size: 12px; font-weight: 600; margin-bottom: 5px; } .filter-action { display: flex; gap: 6px; } .invoice-list-card th, .item-list-card th { font-size: 10px; text-transform: uppercase; letter-spacing: 0.05em; color: #667085; background: #f8fafc; white-space: nowrap; } .invoice-list-card td small, .item-list-card td small { display: block; color: #667085; } .invoice-table-actions { display: flex; gap: 5px; flex-wrap: wrap; min-width: 215px; } .invoice-status { display: inline-flex; padding: 4px 9px; border-radius: 15px; font-size: 11px; font-weight: 700; background: #eef2f6; color: #344054; } .status-draft { background: #e0f2fe; color: #026aa2; } .status-submitted { background: #fef0c7; color: #b54708; } .status-posted { background: #dcfae6; color: #067647; } .status-rejected { background: #fee4e2; color: #b42318; } #invoicePdfModal iframe { width: 100%; height: min(84vh, 940px); border: 0; } #invoicePdfModal .modal-content { max-height: 94vh; } .invoice-progress { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; margin-bottom: 15px; background: #eaecf0; border-radius: 11px; overflow: hidden; } .invoice-progress span { padding: 11px; text-align: center; background: #f8fafc; color: #667085; font-size: 12px; } .invoice-progress span.done { background: #ecfdf3; color: #067647; font-weight: 700; } .invoice-progress span.optional { background: #fff6ed; color: #b54708; font-weight: 700; } .invoice-editor-grid { display: grid; grid-template-columns: minmax(330px, 37%) minmax(0, 63%); gap: 15px; align-items: start; } .invoice-editor-grid.is-creating { grid-template-columns: minmax(360px, 42%) minmax(0, 58%); } .invoice-editor-left { display: grid; gap: 15px; } .editor-card .card-body { padding: 16px; } .disabled-card .card-body, .invoice-empty { min-height: 180px; display: flex; align-items: center; justify-content: center; flex-direction: column; text-align: center; color: #667085; } .disabled-card i, .invoice-empty i { font-size: 36px; color: #98a2b3; margin-bottom: 8px; } .invoice-rule-list { display: grid; gap: 0; margin: 0; } .invoice-rule-list > div { display: flex; justify-content: space-between; gap: 15px; padding: 8px 0; border-bottom: 1px solid #eaecf0; } .invoice-rule-list dt { color: #667085; font-weight: 500; } .invoice-rule-list dd { text-align: right; font-weight: 600; margin: 0; } .invoice-note { margin-top: 12px; padding: 10px; border-radius: 9px; background: #f8fafc; } .invoice-note small { display: block; color: #667085; } .line-type-switch { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; } .line-type-switch input { position: absolute; opacity: 0; } .line-type-switch span { display: flex; align-items: center; justify-content: center; gap: 7px; padding: 10px; border: 1px solid #d0d5dd; border-radius: 9px; cursor: pointer; font-size: 12px; } .line-type-switch input:checked + span { border-color: #ef7d00; background: #fff6ed; color: #b54708; font-weight: 700; } .form-text { font-size: 11px; color: #667085; } .barcode-panel { padding: 12px; border: 1px solid #e4e7ec; border-radius: 10px; background: #f8fafc; } .barcode-scan { display: flex; gap: 6px; } .selected-barcodes { display: grid; gap: 6px; margin-top: 9px; } .selected-barcode { display: grid; grid-template-columns: minmax(0, 1fr) 90px 30px; gap: 7px; align-items: center; padding: 7px; background: #fff; border: 1px solid #e4e7ec; border-radius: 8px; } .selected-barcode small { display: block; color: #667085; overflow: hidden; text-overflow: ellipsis; } .selected-barcode button { border: 0; background: transparent; color: #dc3545; } .line-live-total { display: flex; justify-content: space-between; align-items: center; margin: 15px 0 10px; padding: 11px; border-radius: 9px; background: #fff6ed; color: #7a2e0e; } .item-list-card { min-height: 520px; } .item-list-card > .card-body { padding: 0; } .item-list-card .dataTables_wrapper { padding: 12px; } .count-badge { padding: 4px 9px; background: #eef2f6; border-radius: 12px; font-size: 11px; } .invoice-summary { margin-left: auto; width: min(430px, 100%); padding: 14px 18px; } .invoice-summary > div { display: flex; justify-content: space-between; padding: 5px 0; } .invoice-summary .grand { margin-top: 6px; padding-top: 10px; border-top: 2px solid #e4e7ec; font-size: 17px; } .editor-actions { position: sticky; bottom: 10px; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; padding: 13px 15px; background: #fff; border: 1px solid #e4e7ec; border-radius: 12px; box-shadow: 0 8px 25px rgba(16, 24, 40, 0.12); z-index: 4; } .editor-actions small { display: block; color: #667085; } .editor-actions > div:last-child { display: flex; gap: 7px; flex-wrap: wrap; } .money-input { text-align: right; } .barcode-cell { max-width: 220px; white-space: normal; } .barcode-cell span { display: block; font-size: 11px; } .dataTables_processing { z-index: 5; } .select2-container { width: 100% !important; } @media (max-width: 1199px) { .invoice-filters { grid-template-columns: repeat(3, 1fr); } .invoice-editor-grid, .invoice-editor-grid.is-creating { grid-template-columns: 40% 60%; } } @media (max-width: 991px) { .invoice-editor-grid, .invoice-editor-grid.is-creating { grid-template-columns: 1fr; } .invoice-editor-left { order: 1; } .invoice-editor-right { order: 2; } .invoice-metrics { grid-template-columns: repeat(2, 1fr); } .invoice-progress { overflow-x: auto; grid-template-columns: repeat(4, minmax(155px, 1fr)); } .item-list-card { min-height: 360px; } } .invoice-item-modal.editing-line .invoice-batch-list, .invoice-item-modal.editing-line .batch-live-summary, .invoice-item-modal.editing-line .batch-submit-button { display: none !important; } @media (max-width: 767px) { .invoice-workspace { padding: 12px; } .invoice-hero { flex-direction: column; } .hero-actions, .hero-actions .btn { width: 100%; } .invoice-filters { display: none; grid-template-columns: 1fr 1fr; } .invoice-filters.open { display: grid; } .filter-action { grid-column: 1/-1; } .invoice-metrics { grid-template-columns: 1fr 1fr; } .invoice-metrics article { padding: 12px; } .invoice-metrics strong { font-size: 16px; } .line-type-switch { grid-template-columns: 1fr; } .editor-actions { align-items: stretch; flex-direction: column; bottom: 66px; } .editor-actions > div:last-child, .editor-actions .btn, .editor-actions a { width: 100%; } .invoice-rule-list > div { flex-direction: column; gap: 2px; } .invoice-rule-list dd { text-align: left; } .modal-dialog { margin: 0; max-width: none; height: 100%; } .modal-content { min-height: 100%; border-radius: 0; } } @media (max-width: 767px) { #invoiceTable thead, #invoiceLinesTable thead { display: none; } #invoiceTable, #invoiceTable tbody, #invoiceTable tr, #invoiceTable td, #invoiceLinesTable, #invoiceLinesTable tbody, #invoiceLinesTable tr, #invoiceLinesTable td { display: block; width: 100% !important; } #invoiceTable tbody tr, #invoiceLinesTable tbody tr { margin: 10px 0; padding: 8px; border: 1px solid #e4e7ec; border-radius: 11px; background: #fff; } #invoiceTable tbody td, #invoiceLinesTable tbody td { position: relative; min-height: 34px; padding: 7px 8px 7px 42% !important; border: 0; border-bottom: 1px dashed #eaecf0; text-align: left !important; white-space: normal; } #invoiceTable tbody td:last-child, #invoiceLinesTable tbody td:last-child { border-bottom: 0; } #invoiceTable tbody td:before, #invoiceLinesTable tbody td:before { content: attr(data-label); position: absolute; left: 8px; top: 8px; width: 37%; font-size: 10px; font-weight: 700; text-transform: uppercase; color: #667085; } .invoice-table-actions { min-width: 0; } .item-list-card .dataTables_wrapper { padding: 7px; } }