@import url('./assets/fonts.css');
:root{--blue:#2158d5;--blue-dark:#1643ad;--ink:#172438;--muted:#7c8798;--line:#e4e9f0;--soft:#f6f8fc;--red:#bb3546;--font:'Be Vietnam Pro',Arial,sans-serif;color-scheme:light;font-family:var(--font);color:var(--ink);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:#f3f5f8;font-size:13px;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button{cursor:pointer}svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.65;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icon-library{position:absolute;width:0;height:0;overflow:hidden}button,input,textarea,select{ -webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #6b9bff;outline-offset:3px}button{transition:background .16s,box-shadow .16s,transform .16s}button:active{transform:translateY(1px)}
.workspace-header{height:86px;border-bottom:1px solid #e0e5ed;display:flex;align-items:center;justify-content:space-between;padding:0 max(32px,calc((100vw - 1100px)/2));background:#fff}.brand{display:flex;align-items:center;gap:13px}.brand-mark{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--blue);color:white;border-radius:12px;font:700 29px Arial,sans-serif;letter-spacing:-2px}.brand-mark span{font-size:21px;align-self:flex-end;margin-bottom:6px;color:#bcd2ff}.brand strong{display:block;font-size:12px;letter-spacing:1.7px;font-weight:800}.brand small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.save-state{display:flex;align-items:center;gap:7px;font-size:10px;color:#718096}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#39a77b;flex-shrink:0}.workspace{max-width:1100px;margin:0 auto;padding:43px 24px 24px}.workspace-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.eyebrow{font-size:9px;letter-spacing:1.8px;font-weight:700;color:#8993a3;margin:0 0 10px}h1{font-weight:700;font-size:29px;letter-spacing:-1.15px;line-height:1.35;margin:0}h1>span{color:var(--blue)}.intro{font-size:11px;color:var(--muted);margin:9px 0 0}.document-badge{display:flex;align-items:center;gap:7px;border:1px solid #e2e7ee;padding:9px 12px;border-radius:6px;color:#718096;font-size:10px;background:#f9fafc}.document-badge .status-dot{background:#8da2c4}.toolbar{display:flex;justify-content:space-between;margin-bottom:16px;gap:12px}.toolbar-left,.toolbar-right{display:flex;gap:9px}.button{border:1px solid transparent;padding:11px 15px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:11px;font-weight:600;white-space:nowrap;line-height:1.2}.button svg{width:15px;height:15px}.button-primary{background:var(--blue);color:#fff;box-shadow:0 3px 7px #2158d514}.button-primary:hover{background:var(--blue-dark);box-shadow:0 4px 10px #2158d528}.button-soft{background:#e8efff;color:var(--blue);border-color:#dbe6ff}.button-soft:hover{background:#dce7ff}.button-outline{background:#fff;border-color:#dce2eb;color:#47556b}.button-outline:hover{border-color:#aabbd6;background:#fbfcff}.button-quiet{background:transparent;color:#7a8697}.button-quiet:hover{background:#e8edf4;color:var(--ink)}
.invoice{background:#fff;box-shadow:0 9px 30px #253b6010,0 1px 3px #253b6010;border:1px solid #e1e6ee;border-radius:9px;overflow:hidden;position:relative}.paper-topline{height:5px;background:var(--blue);width:100%}.invoice-body{padding:35px 44px 25px}.seller-section{display:flex;align-items:center;justify-content:space-between;padding-bottom:26px;border-bottom:1px solid var(--line);gap:25px}.seller-identity{flex:1;min-width:0}.editable{color:inherit;background:transparent;border:1px solid transparent;border-bottom-color:#e1e7ef;border-radius:2px;padding:5px 0;min-width:0;width:100%;transition:background .15s,border-color .15s;line-height:1.6;box-shadow:none}.editable:hover{background:#f4f7fc;border-bottom-color:#adbfdd}.editable:focus{background:#f1f6ff;border-bottom-color:var(--blue);outline:none}.editable::placeholder{color:#a2aab7;font-weight:400}.company-name{font-size:14px;font-weight:700;letter-spacing:-.25px;border-color:transparent}.address-line{display:flex;gap:10px;align-items:baseline;font-size:9px;color:#7c8796}.address-line>span{white-space:nowrap}.address-line textarea{font-size:9px;border-color:transparent;color:#647185}.autogrow{display:block;resize:none;overflow:hidden;min-height:28px}.paper-brand{color:var(--blue);font:700 42px Arial,sans-serif;letter-spacing:-3px;line-height:1}.paper-brand span{color:#a7bff6}.invoice-title-section{display:flex;align-items:center;justify-content:space-between;padding:30px 0 29px;gap:30px}.invoice-title{flex:1;max-width:460px}.invoice-title>input{color:var(--blue);font-size:25px;font-weight:800;letter-spacing:-.75px;line-height:1.5;border-color:transparent;padding:0}.invoice-title>input.subtitle{font-weight:400;font-size:9px;letter-spacing:2.3px;color:#a0a7b2;margin-top:3px}.invoice-meta{display:grid;gap:8px;min-width:210px}.invoice-meta label{display:grid;grid-template-columns:76px 1fr;align-items:center;color:#8a93a2;font-size:9px}.invoice-meta input{font-size:10px;color:#34435a;font-weight:600;padding:3px 0;max-width:148px;min-height:26px}.customer-card{background:#f7f9fd;border:1px solid #e8edf4;border-radius:7px;padding:18px 21px 20px;margin-bottom:25px}h2{margin:0;font-weight:700;font-size:10px;letter-spacing:.5px;display:flex;align-items:center;gap:7px}.customer-card h2{color:var(--blue);font-size:9px;letter-spacing:.9px;margin-bottom:15px}h2 svg{width:13px;height:13px}.customer-grid{display:grid;grid-template-columns:1.35fr 1fr;column-gap:32px;row-gap:14px}.customer-grid label{font-size:8px;color:#8993a4;letter-spacing:.15px}.customer-grid input,.customer-grid textarea{font-size:11px;letter-spacing:0;color:#36455a;padding:3px 0 5px;min-height:28px}.customer-name input{font-weight:600}
.table-scroll{overflow-x:auto}.items-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:11px}.col-number{width:4.5%}.col-product{width:34%}.col-unit{width:6.5%}.col-quantity{width:9%}.col-price{width:19%}.col-total{width:24%}.col-delete{width:3%}.items-table thead{background:#f5f7fb}.items-table th{font-size:8px;letter-spacing:.1px;color:#7f8b9d;font-weight:600;padding:12px 5px;white-space:nowrap;text-align:left}.items-table th:first-child{padding-left:11px}.items-table th.numeric{text-align:right}.items-table th:nth-child(4){padding-right:11px}.items-table td{border-bottom:1px solid var(--line);padding:14px 5px;vertical-align:middle}.items-table td:first-child{text-align:center;color:#a1abba;font-size:10px}.items-table td:nth-child(2){padding-right:15px}.items-table textarea{font-size:11px;line-height:1.7;padding:4px 0;border-color:transparent;min-height:30px}.items-table .unit{font-size:10px;color:#7c8796;text-align:center;border-color:transparent}.items-table .quantity,.items-table .price{text-align:right;font-variant-numeric:tabular-nums;font-size:11px;padding:5px 7px;border:1px solid #e4e9f0;border-radius:4px}.items-table .price{background:#fafbfd}.items-table .line-total{text-align:right;white-space:nowrap;font-weight:600;font-variant-numeric:tabular-nums;font-size:11px;padding-right:5px}.delete-row{display:flex;justify-content:center;align-items:center;width:25px;height:30px;background:transparent;color:#c1c8d4;border:0;border-radius:4px;padding:4px}.delete-row svg{width:13px;height:13px}.delete-row:hover{color:var(--red);background:#fff0f1}.add-inline{display:flex;align-items:center;justify-content:flex-start;gap:5px;border:0;background:transparent;color:#7d8fac;font-size:9px;padding:12px 0 0}.add-inline svg{width:13px;height:13px}.add-inline:hover{color:var(--blue)}.table-error{color:var(--red);font-size:10px;margin:12px 0 0}.editable[aria-invalid=true]{border-color:#df6876;background:#fff5f6;color:#a93141}
.settlement{display:grid;grid-template-columns:1.1fr 1fr;gap:36px;margin-top:29px;align-items:start}.payment-card{border:1px solid #e0e8f5;border-radius:7px;background:linear-gradient(130deg,#f9fbff,#f4f8ff);padding:16px}.payment-card h2{font-size:9px;letter-spacing:.25px;color:#405879;margin-bottom:16px}.payment-card h2>span{margin-left:auto;color:var(--blue);font-size:10px;font-weight:800;font-style:italic;letter-spacing:-.4px}.payment-content{display:grid;grid-template-columns:127px 1fr;gap:14px}.qr-column{text-align:center}.qr-frame{background:#fff;padding:9px;border:1px solid #e0e7f1;border-radius:6px;aspect-ratio:1;display:flex;align-items:center;justify-content:center}.qr-frame svg{display:block;width:100%;height:auto;stroke:none;fill:#101c30;shape-rendering:crispEdges}.qr-frame .qr-empty{font-size:9px;color:#9da8b9;line-height:1.7}.qr-caption{display:block;font-size:7px;color:#95a2b5;margin-top:7px}.bank-fields{display:flex;flex-direction:column;gap:7px;min-width:0}.bank-fields label,.transfer-description{display:block;font-size:7px;color:#8391a6;line-height:1.3}.bank-fields .editable{font-size:9px;line-height:1.7;padding:2px 0 3px;color:#334b69;border-bottom-color:#d9e2f1}.bank-fields select{cursor:pointer;text-overflow:ellipsis;width:100%;appearance:auto;font-size:8px!important}.bank-fields .account-number{font-size:12px;font-weight:700;letter-spacing:.5px}.bank-fields .account-name{font-weight:600;font-size:8px}.transfer-description{margin-top:13px}.transfer-description .editable{display:block;font-size:9px;color:#425775;padding:3px 0;border-bottom-color:#dce5f3}.qr-status{color:#7b8da7;line-height:1.6;font-size:7px;margin:8px 0 0}.qr-status.error{color:var(--red)}.totals{padding-top:11px}.subtotal{display:flex;justify-content:space-between;border-bottom:1px solid #d6dfed;padding:0 0 16px;font-size:10px;color:#7c889a}.subtotal output{font-size:12px;font-weight:600;color:#42546c}.total-main{padding:17px 0 20px;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.total-main>span{align-self:flex-start;font-size:9px;font-weight:700;color:#445772;letter-spacing:.3px}.total-main output{color:var(--blue);font-size:28px;letter-spacing:-1px;line-height:1.3;font-weight:800;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.total-main small{font-size:14px;letter-spacing:-.2px;font-weight:600}.in-words{background:#f8fafc;border-radius:5px;padding:12px 13px;line-height:1.8}.in-words>span{display:block;font-size:8px;color:#99a3b3;margin-bottom:5px}.in-words output{display:block;font-size:10px;font-weight:600;color:#566a86;font-style:italic}.total-note{display:flex;gap:6px;align-items:flex-start;font-size:7px;color:#9aa7b9;line-height:1.7;margin-top:13px}.total-note svg{width:12px;height:12px}.invoice-footer{border-top:1px solid #edf0f5;margin-top:34px;padding-top:17px;text-align:center}.invoice-footer textarea{font-size:9px;text-align:center;color:#9ba6b6;border-color:transparent;padding:4px}.workspace-footnote{display:flex;justify-content:space-between;color:#9ba5b5;font-size:8px;margin:17px 3px 0;gap:20px}.toast{position:fixed;left:50%;bottom:25px;transform:translateX(-50%);z-index:10;max-width:calc(100vw - 30px);border-radius:8px;background:#203451;color:#fff;font-size:11px;padding:13px 20px;box-shadow:0 5px 30px #10224330;line-height:1.6}.toast[hidden]{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}dialog{border:1px solid #dce4f0;border-radius:12px;padding:28px;width:430px;max-width:calc(100% - 32px);color:var(--ink);box-shadow:0 20px 80px #192e5d30}dialog::backdrop{background:#182c4c66;backdrop-filter:blur(3px)}.dialog-icon{width:38px;height:38px;border-radius:9px;display:grid;place-items:center;background:#edf3ff;color:var(--blue);margin-bottom:17px}dialog h2{font-size:17px;letter-spacing:-.3px}dialog p{font-size:11px;color:#8290a4;line-height:1.9;margin:12px 0 23px}.dialog-actions{display:flex;gap:8px;justify-content:flex-end}.dialog-actions .button{font-size:10px}
@media(min-width:1500px){.workspace{padding-top:50px}}
@media(max-width:850px){.workspace-header{padding:0 25px;height:73px}.workspace{padding:30px 20px 24px}.invoice-body{padding:28px}.invoice-title>input{font-size:21px}.invoice-title-section{gap:20px}.invoice-meta{min-width:190px}.settlement{gap:24px}.payment-content{grid-template-columns:105px 1fr;gap:10px}.payment-card{padding:13px}.total-main output{font-size:25px}.customer-grid{column-gap:20px}.items-table{min-width:650px}.company-name{font-size:12px}}
@media(max-width:640px){.save-state{font-size:0;gap:0}.save-state .status-dot{width:7px;height:7px}.brand small{font-size:8px}.workspace-header{height:68px;padding:0 18px}.brand-mark{width:37px;height:37px;font-size:25px;border-radius:10px}.brand-mark span{font-size:18px}.workspace{padding:26px 12px 20px}.eyebrow{font-size:8px;letter-spacing:1.4px}h1{font-size:25px}.intro{font-size:9px;max-width:260px;line-height:1.8}.document-badge{display:none}.workspace-heading{margin-bottom:22px;padding:0 3px}.toolbar{gap:4px;align-items:center}.toolbar-left,.toolbar-right{gap:4px}.toolbar .button{font-size:9px;padding:10px 9px;gap:5px}.toolbar .button svg{width:13px;height:13px}.toolbar #resetButton{font-size:0;padding:10px}.toolbar #resetButton svg{width:14px;height:14px}.toolbar #copyButton{font-size:0;padding:10px}.toolbar #copyButton svg{width:14px;height:14px}.invoice-body{padding:23px 18px 18px}.seller-section{padding-bottom:20px;gap:8px}.company-name{font-size:10px;letter-spacing:-.35px}.paper-brand{font-size:31px}.address-line{font-size:8px;gap:6px}.address-line textarea{font-size:8px}.invoice-title-section{display:block;padding:21px 0}.invoice-title{max-width:100%}.invoice-title>input{font-size:23px}.invoice-meta{margin-top:15px;display:grid;grid-template-columns:1fr 1fr;gap:12px;min-width:0}.invoice-meta label{display:flex;flex-direction:column;align-items:flex-start;gap:3px;font-size:8px}.invoice-meta input{width:100%;font-size:9px;max-width:100%}.customer-card{padding:15px 13px;margin-bottom:19px}.customer-card h2{font-size:8px;margin-bottom:13px}.customer-grid{grid-template-columns:1fr;gap:10px}.customer-grid label{font-size:7px}.customer-grid input,.customer-grid textarea{font-size:10px;min-height:27px}.settlement{grid-template-columns:1fr;gap:20px;margin-top:23px}.payment-content{grid-template-columns:125px 1fr;gap:17px}.payment-card{padding:16px}.bank-fields .account-name{font-size:9px}.bank-fields .editable{font-size:10px}.bank-fields .account-number{font-size:13px}.bank-fields label{font-size:8px}.qr-status{font-size:8px}.transfer-description{font-size:8px}.transfer-description .editable{font-size:10px}.totals{padding-top:0}.total-main{flex-direction:row;align-items:center;gap:8px;padding:18px 0}.total-main>span{align-self:center;font-size:8px}.total-main output{margin-left:auto;font-size:26px}.total-main small{font-size:11px}.in-words output{font-size:10px}.total-note{font-size:8px}.invoice-footer{margin-top:25px}.invoice-footer textarea{font-size:8px}.workspace-footnote{display:block;font-size:8px;line-height:1.9}.workspace-footnote span{display:block}.dialog-actions{flex-wrap:wrap}}
@page{size:A4;margin:12mm}
@media print{html,body{background:#fff!important;font-size:10pt;print-color-adjust:exact;-webkit-print-color-adjust:exact}.no-print,.add-inline,.total-note{display:none!important}.workspace{max-width:none;padding:0;margin:0}.invoice{border:0;border-radius:0;box-shadow:none;overflow:visible}.paper-topline{height:1.2mm}.invoice-body{padding:8mm 2mm 0}.seller-section{padding-bottom:5mm}.company-name{font-size:11pt}.address-line,.address-line textarea{font-size:7pt}.paper-brand{font-size:32pt}.invoice-title-section{display:flex;padding:6mm 0;gap:6mm}.invoice-title{max-width:110mm}.invoice-title>input{font-size:20pt}.invoice-title>input.subtitle{font-size:7pt}.invoice-meta{display:grid;grid-template-columns:1fr;min-width:48mm;margin:0;gap:2mm}.invoice-meta label{display:grid;grid-template-columns:19mm 1fr;font-size:7pt;gap:1mm}.invoice-meta input{font-size:8pt;max-width:34mm}.customer-card{padding:4mm 5mm;margin-bottom:5mm}.customer-grid{grid-template-columns:1.35fr 1fr;gap:3mm 6mm}.customer-card h2{font-size:7pt}.customer-grid label{font-size:6pt}.customer-grid input,.customer-grid textarea{font-size:8pt}.editable{background:transparent!important;outline:none!important;box-shadow:none!important;border-color:transparent!important;border-bottom-color:#e7ebf1!important}.company-name,.invoice-title>.editable,.address-line .editable,.items-table textarea,.items-table .unit,.invoice-footer .editable{border-color:transparent!important}input[type=date]::-webkit-calendar-picker-indicator{display:none}textarea{resize:none!important}select{appearance:none!important;-webkit-appearance:none!important;background-image:none!important;color:#334b69!important}.table-scroll{overflow:visible}.items-table{min-width:0;table-layout:fixed;font-size:8pt}.col-number{width:5%}.col-product{width:35%}.col-unit{width:7%}.col-quantity{width:9%}.col-price{width:20%}.col-total{width:24%}.items-table th{font-size:6pt;padding:3mm 1mm}.items-table td{padding:3mm 1mm}.items-table textarea{font-size:8pt;line-height:1.6}.items-table .unit{font-size:7pt}.items-table .price,.items-table .quantity{font-size:8pt;padding:1mm}.items-table .line-total{font-size:8pt}.items-table tr{break-inside:avoid}thead{display:table-header-group}.settlement{display:grid;grid-template-columns:1.1fr 1fr;gap:8mm;margin-top:7mm;break-inside:avoid}.payment-card{padding:4mm}.payment-card h2{font-size:7pt}.payment-content{grid-template-columns:30mm 1fr;gap:3mm}.qr-frame{padding:2mm}.qr-caption{font-size:5pt}.bank-fields label{font-size:5.5pt}.bank-fields .editable{font-size:7pt}.bank-fields .account-number{font-size:9pt}.bank-fields .account-name{font-size:6.5pt}.bank-fields select{font-size:6pt!important}.transfer-description{font-size:5.5pt}.transfer-description .editable{font-size:7pt}.totals{padding-top:2mm}.subtotal{font-size:8pt;padding-bottom:4mm}.subtotal output{font-size:9pt}.total-main{display:flex;flex-direction:column;align-items:flex-end;padding:4mm 0;gap:2mm}.total-main>span{font-size:7pt;align-self:flex-start}.total-main output{font-size:21pt}.total-main small{font-size:11pt}.in-words{padding:3mm}.in-words>span{font-size:6pt}.in-words output{font-size:7.5pt}.invoice-footer{break-inside:avoid;margin-top:8mm;padding-top:4mm}.invoice-footer textarea{font-size:7pt}.toast,dialog{display:none!important}}
.items-table td:last-child{padding-left:0;padding-right:0}@media(min-width:851px){.table-scroll{overflow:visible}}
.customer-name textarea{font-weight:600}.company-name{line-height:1.6}.toolbar .button svg{flex-shrink:0}@media(max-width:380px){.toolbar{flex-wrap:wrap}.toolbar-left,.toolbar-right{flex:1}.toolbar-right{justify-content:flex-end}}
