*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-app:#1a1a2e;--bg-card:#16213e;--accent:#e94560;--accent-hover:#ff6b81;--text-primary:#eee;--text-muted:#a0a0b0;--border-color:#2a2a4a;--shadow:0 8px 32px #0000004d;--radius:12px}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;margin:0;padding:0}body{background:var(--bg-app);color:var(--text-primary);justify-content:center;margin:0;padding:0;font-family:Inter,sans-serif;display:flex;overflow-x:hidden}#app{gap:24px;width:1400px;min-height:100vh;margin:0 auto;padding:24px;display:block}.controls-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;width:100%;display:flex}.controls-bar h1{background:linear-gradient(135deg, var(--accent), #ffa07a);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-family:Playfair Display,serif;font-size:1.6rem}.btn-group{gap:10px;display:flex}.btn{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 22px;font-family:Inter,sans-serif;font-size:.9rem;font-weight:600;transition:all .25s;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--accent), #ff6b81);color:#fff;box-shadow:0 4px 15px #e9456059}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #e9456080}.btn-secondary{color:var(--text-primary);border:1px solid var(--border-color);background:#ffffff14}.btn-secondary:hover{background:#ffffff24;transform:translateY(-2px)}.btn-add-row{color:var(--accent);border:1px dashed var(--accent);background:#e945601f;justify-content:center;width:100%;margin-top:8px;padding:8px;font-size:.85rem}.btn-add-row:hover{background:#e9456038}.btn-remove-row{color:#e94560;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:1.1rem;transition:background .2s}.btn-remove-row:hover{background:#e9456033}.invoice-scaler{width:820px;margin:0 auto}.invoice-page{color:#000;border-radius:var(--radius);width:210mm;height:297mm;box-shadow:var(--shadow);background:#fff;flex-direction:column;padding:10mm 15mm 20px;font-family:Inter,Arial,sans-serif;font-size:11pt;line-height:1.5;display:flex;position:relative;overflow:hidden}.invoice-header{justify-content:space-between;align-items:flex-start;margin-bottom:2mm;display:flex}.invoice-header-left{flex:1}.invoice-title{color:#000;margin-bottom:1mm;font-family:Playfair Display,serif;font-size:36pt;font-weight:900;line-height:1.1;text-decoration:underline}.company-name{margin-bottom:0;font-size:14pt;font-weight:700;text-decoration:underline}.company-details{color:#333;font-size:9pt;line-height:1.6}.invoice-header-right{flex-shrink:0;margin-left:8mm}.logo-slot{flex-direction:column;align-items:flex-end;gap:4px;max-width:55mm;display:flex}.logo-slot.has-logo{position:relative}.invoice-logo{object-fit:contain;width:auto;max-width:55mm;height:auto;max-height:28mm;display:block}.logo-upload-label{cursor:pointer;color:#666;text-align:center;background:#fafafa;border:1.5px dashed #bbb;border-radius:6px;align-items:center;min-width:38mm;min-height:22mm;padding:4mm;transition:border-color .2s,background .2s,color .2s}.logo-upload-label:hover{border-color:var(--accent);color:#444;background:#e945600a}.logo-upload-icon{margin-bottom:2mm;font-size:1.4rem;line-height:1;display:block}.logo-upload-text{font-size:8pt;font-weight:600;display:block}.logo-upload-hint{color:#999;margin-top:1mm;font-size:6.5pt;display:block}.logo-actions{gap:4px;display:flex}.logo-action-btn{cursor:pointer;color:#444;background:#fff;border:1px solid #ccc;border-radius:4px;padding:2px 8px;font-family:Inter,Arial,sans-serif;font-size:7pt;font-weight:600;transition:background .2s,border-color .2s}.logo-action-btn:hover{background:#f5f5f5;border-color:#999}.logo-action-btn-danger{color:#c0392b;border-color:#e8b4b0}.logo-action-btn-danger:hover{background:#fdf0ef;border-color:#c0392b}.logo-size-controls{align-items:center;gap:4px;margin-top:4px;display:flex}.logo-size-btn{cursor:pointer;color:#444;background:#fff;border:1px solid #ccc;border-radius:4px;min-width:20px;padding:2px 6px;font-family:Inter,Arial,sans-serif;font-size:10pt;font-weight:600;transition:background .2s,border-color .2s}.logo-size-btn:hover{background:#f5f5f5;border-color:#999}.logo-size-display{color:#666;text-align:center;min-width:35px;font-size:8pt;font-weight:600}.divider{border:none;border-top:2px solid #000;margin:2mm 0}.recipient-block{margin-bottom:2mm}.recipient-block p{font-size:10pt;line-height:1.6}.recipient-block .recipient-name{font-weight:700}.invoice-meta{justify-content:center;gap:30mm;margin-bottom:4mm;font-size:10pt;display:flex}.invoice-meta-item{text-align:center}.invoice-meta-item .label{margin-bottom:1mm;font-weight:600}.invoice-meta-item .value{font-weight:400}.items-table{border-collapse:collapse;table-layout:fixed;width:100%;margin-bottom:2mm;font-size:10pt}.items-table thead th:first-child,.items-table thead th:nth-child(2),.items-table thead th:nth-child(3),.items-table thead th:nth-child(4){width:24%}.items-table thead th:nth-child(5){width:4%}.items-table thead th{border-bottom:1px solid #999;padding:1mm 2mm;font-size:9.5pt;font-weight:600}.items-table thead th:first-child{text-align:left}.items-table thead th:nth-child(2){text-align:center}.items-table thead th:nth-child(3),.items-table thead th:nth-child(4){text-align:right}.items-table tbody td{vertical-align:middle;height:auto;padding:.2mm 2mm}.items-table tbody tr:nth-child(2n){background-color:#f5f5f5}.items-table tbody tr:nth-child(odd){background-color:#fff}.items-table tbody td:first-child{text-align:left}.items-table tbody td:nth-child(2){text-align:center}.items-table tbody td:nth-child(3),.items-table tbody td:nth-child(4){text-align:right}.totals-section{border-top:1px solid #999;margin-top:1mm;padding-top:2mm}.totals-row{justify-content:space-between;padding:.5mm 2mm;font-size:10pt;display:flex}.totals-row.total-final{border-top:1px solid #999;margin-top:1mm;padding-top:2mm;font-size:11pt;font-weight:700}.thank-you-block{color:#333;margin-top:auto;font-size:9pt;line-height:1.7}.closing-block{margin-top:2mm;font-size:10pt}.closing-block .greeting{margin-bottom:0}.closing-block .signer{font-weight:400}.invoice-footer{color:#555;border-top:1px solid #ccc;justify-content:space-between;gap:4mm;margin-top:2mm;padding-top:2mm;font-size:7.5pt;line-height:1.6;display:flex}.footer-col{white-space:pre-line;flex:1}.editable{border:1px solid #0000;border-radius:3px;outline:none;min-width:20px;padding:1px 3px;transition:border-color .2s,background .2s;display:inline-block}.editable:hover{background:#e945600a;border-color:#e945604d}.editable:focus{border-color:var(--accent);background:#e945600f}.table-input{color:#000;width:100%;text-align:inherit;background:0 0;border:1px solid #0000;border-radius:3px;outline:none;height:18px;padding:1px 4px;font-family:Inter,Arial,sans-serif;font-size:10pt;line-height:16px;transition:border-color .2s,background .2s}.table-input:hover{background:#e945600a;border-color:#e945604d}.table-input:focus{border-color:var(--accent);background:#e945600f}.items-table td:nth-child(3) .table-input{text-align:right;width:45px}.number-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.number-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.number-input{appearance:textfield;text-align:inherit}.items-table td:nth-child(3){white-space:nowrap;justify-content:flex-end;align-items:center;gap:2px;display:flex;position:relative}.currency-suffix{color:#333;pointer-events:none;flex-shrink:0;font-size:10pt}.inline-number-input{color:#000;text-align:center;appearance:textfield;background:0 0;border:1px solid #0000;border-radius:3px;outline:none;width:38px;padding:2px 4px;font-family:Inter,Arial,sans-serif;font-size:10pt;transition:border-color .2s,background .2s}.inline-number-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.inline-number-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.inline-number-input:hover{background:#e945600a;border-color:#e945604d}.inline-number-input:focus{border-color:var(--accent);background:#e945600f}.print-text{color:#000;font-family:Inter,Arial,sans-serif;font-size:10pt}.print-hidden{display:none!important}.row-actions{text-align:center;width:30px}@page{size:A4 portrait;margin:0}@media print{html,body{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff;width:210mm;height:296mm;margin:0;padding:0}#app{align-items:stretch;gap:0;padding:0}.invoice-scaler{max-width:none;display:block;width:210mm!important;height:auto!important;overflow:visible!important}.controls-bar,.loading-overlay,.btn-add-row,.row-actions,.btn-remove-row,.logo-upload-label,.logo-actions,.logo-size-controls{display:none!important}.invoice-page{box-shadow:none;page-break-after:avoid;page-break-inside:avoid;border-radius:0;width:210mm;height:296mm;min-height:296mm;max-height:296mm;margin:0;padding:10mm 15mm 20px;overflow:hidden;transform:none!important}.editable{background:0 0!important;border:none!important;padding:0!important}.table-input,.inline-number-input{background:0 0!important;border:none!important}}body.invoice-print-mode .controls-bar,body.invoice-print-mode .loading-overlay,body.invoice-print-mode .btn-add-row,body.invoice-print-mode .row-actions,body.invoice-print-mode .btn-remove-row,body.invoice-print-mode .logo-upload-label,body.invoice-print-mode .logo-actions,body.invoice-print-mode .logo-size-controls{display:none!important}body.invoice-print-mode .invoice-scaler{width:auto!important;height:auto!important;overflow:visible!important}body.invoice-print-mode .invoice-page{box-shadow:none;width:210mm!important;height:296mm!important;min-height:296mm!important;max-height:296mm!important;margin:0!important;padding:10mm 15mm 20px!important;overflow:hidden!important;transform:none!important}body.invoice-print-mode .editable{background:0 0!important;border-color:#0000!important}.loading-overlay{z-index:9999;opacity:0;pointer-events:none;background:#1a1a2ed9;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:fixed;inset:0}.loading-overlay.active{opacity:1;pointer-events:all}.spinner{border:4px solid #ffffff26;border-top-color:var(--accent);border-radius:50%;width:48px;height:48px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}
