:root{--hal-green:#ff006e;--hal-green-dark:#d9005f;--hal-navy:#0f172a;--hal-slate:#64748b;--hal-border:#e2e8f0;--hal-bg:#f8fafc;--hal-white:#fff;--hal-red:#ef4444;--hal-amber:#f59e0b;--hal-radius:12px;--hal-radius-sm:8px;--hal-shadow:0 1px 3px #0f172a14, 0 1px 2px #0f172a0a;--hal-shadow-lg:0 10px 40px #0f172a1f}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--hal-bg);color:var(--hal-navy);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.hal-topbar{background:var(--hal-white);border-bottom:1px solid var(--hal-border);z-index:100;height:64px;position:fixed;top:0;left:0;right:0}.hal-topbar-inner{justify-content:space-between;align-items:center;width:85%;height:100%;margin:0 auto;padding:0;display:flex}.hal-brand{align-items:center;gap:12px;display:flex}.hal-brand-dot{background:var(--hal-green);border-radius:50%;width:10px;height:10px;animation:2s infinite hal-pulse;box-shadow:0 0 0 4px #ff006e33}@keyframes hal-pulse{0%,to{box-shadow:0 0 0 4px #ff006e33}50%{box-shadow:0 0 0 8px #ff006e1a}}.hal-brand-title{letter-spacing:-.5px;font-size:20px;font-weight:700}.hal-brand-accent{color:var(--hal-green-dark)}.hal-topbar-actions{gap:10px;display:flex}.hal-layout{border-radius:16px;height:700px;min-height:70vh;margin:100px auto 64px;display:flex;overflow:hidden;box-shadow:0 10px 40px #0f172a14}.hal-form-panel{background:var(--hal-white);border-right:1px solid var(--hal-border);flex-direction:column;width:420px;min-width:420px;display:flex}.hal-form-scroll{flex:1;padding:20px 20px 40px;overflow-y:auto}.hal-preview-panel{background:#eef1f5;flex-direction:column;flex:1;display:flex;overflow:hidden}.hal-preview-sticky{flex-direction:column;height:100%;display:flex}.hal-preview-bar{background:var(--hal-white);border-bottom:1px solid var(--hal-border);flex-shrink:0;justify-content:space-between;align-items:center;height:56px;padding:0 24px;display:flex}.hal-preview-label{color:var(--hal-slate);text-transform:uppercase;letter-spacing:.5px;font-size:13px;font-weight:700}.hal-preview-actions{gap:8px;display:flex}.hal-preview-scroll{flex:1;justify-content:center;padding:32px;display:flex;overflow-y:auto}.hal-btn{border-radius:var(--hal-radius-sm);cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:6px;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s;display:inline-flex}.hal-btn-primary{background:var(--hal-navy);color:var(--hal-white)}.hal-btn-primary:hover{box-shadow:var(--hal-shadow-lg);background:#1e293b;transform:translateY(-1px)}.hal-btn-ghost{color:var(--hal-slate);border:1px solid var(--hal-border);background:0 0}.hal-btn-ghost:hover{background:var(--hal-bg);color:var(--hal-navy)}.hal-btn-outline{color:var(--hal-green-dark);border:1.5px dashed var(--hal-green);background:0 0}.hal-btn-outline:hover{background:#ff006e14}.hal-btn-full{justify-content:center;width:100%;margin-top:12px}.hal-accordion{border:1px solid var(--hal-border);border-radius:var(--hal-radius);background:var(--hal-white);margin-bottom:12px;overflow:hidden}.hal-accordion-header{background:var(--hal-white);cursor:pointer;text-align:left;border:none;align-items:center;gap:12px;width:100%;padding:16px 18px;font-family:inherit;transition:background .2s;display:flex}.hal-accordion-header:hover{background:#f8fafc}.hal-accordion-num{color:var(--hal-green-dark);text-align:center;background:#ff006e1f;border-radius:6px;min-width:28px;padding:4px 8px;font-size:11px;font-weight:800}.hal-accordion-title{color:var(--hal-navy);flex:1;font-size:14px;font-weight:700}.hal-accordion-icon{color:var(--hal-slate);transition:transform .3s;display:flex}.hal-accordion-open .hal-accordion-icon{color:var(--hal-green-dark);transform:rotate(45deg)}.hal-accordion-body{max-height:0;padding:0 18px;transition:max-height .35s,padding .35s;overflow:hidden}.hal-accordion-open .hal-accordion-body{max-height:3000px;padding:0 18px 18px}.hal-field-group{margin-bottom:14px}.hal-field-group:last-child{margin-bottom:0}.hal-field-row{gap:12px;display:flex}.hal-field-half{flex:1}.hal-label{color:var(--hal-slate);text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px;font-size:12px;font-weight:700;display:block}.hal-input,.hal-select{border:1.5px solid var(--hal-border);border-radius:var(--hal-radius-sm);width:100%;color:var(--hal-navy);background:var(--hal-white);padding:10px 14px;font-family:inherit;font-size:14px;transition:border-color .2s,box-shadow .2s}.hal-input:focus,.hal-select:focus{border-color:var(--hal-green);outline:none;box-shadow:0 0 0 3px #ff006e26}.hal-textarea{resize:vertical;min-height:60px}.hal-input-sm{margin-bottom:8px}.hal-input-sm:last-child{margin-bottom:0}.hal-file-wrap{border:2px dashed var(--hal-border);border-radius:var(--hal-radius-sm);text-align:center;cursor:pointer;padding:16px;transition:border-color .2s;position:relative}.hal-file-wrap:hover{border-color:var(--hal-green)}.hal-file{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.hal-file-preview{justify-content:center;max-height:80px;margin-bottom:8px;display:flex}.hal-file-preview img{object-fit:contain;border-radius:4px;max-width:100%;max-height:80px}.hal-file-text{color:var(--hal-slate);font-size:12px}.hal-template-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.hal-template-card{cursor:pointer;text-align:center}.hal-template-card input{display:none}.hal-template-thumb{border-radius:var(--hal-radius-sm);border:2px solid var(--hal-border);flex-direction:column;gap:4px;height:70px;margin-bottom:6px;padding:8px;transition:border-color .2s,box-shadow .2s;display:flex}.hal-template-card input:checked+.hal-template-thumb{border-color:var(--hal-green);box-shadow:0 0 0 3px #ff006e26}.hal-template-card span{color:var(--hal-slate);font-size:11px;font-weight:600}.hal-template-card input:checked~span{color:var(--hal-green-dark)}.hal-tbar{border-radius:2px;height:8px}.hal-tline{background:var(--hal-border);border-radius:2px;height:4px}.hal-thumb-modern .hal-tbar{background:var(--hal-green)}.hal-thumb-classic .hal-tbar{background:var(--hal-navy)}.hal-thumb-minimal .hal-tbar{background:#94a3b8}.hal-color-row{align-items:center;gap:10px;display:flex}.hal-color-picker{border-radius:var(--hal-radius-sm);cursor:pointer;border:none;width:44px;height:44px;padding:0;overflow:hidden}.hal-color-picker::-webkit-color-swatch-wrapper{padding:0}.hal-color-picker::-webkit-color-swatch{border:none}.hal-line-item{background:var(--hal-bg);border-radius:var(--hal-radius-sm);border:1px solid var(--hal-border);margin-bottom:10px;padding:14px}.hal-line-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.hal-line-title{color:var(--hal-slate);font-size:12px;font-weight:700}.hal-line-remove{color:var(--hal-red);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-family:inherit;font-size:12px;font-weight:600;transition:background .2s}.hal-line-remove:hover{background:#ef444414}.hal-line-grid{grid-template-columns:2fr 1fr 1fr 1fr;gap:8px;display:grid}.hal-line-grid-5{grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:8px;margin-top:8px;display:grid}.hal-line-grid input,.hal-line-grid-5 input{padding:8px 10px;font-size:13px}.hal-invoice-preview{background:var(--hal-white);width:210mm;min-height:297mm;box-shadow:var(--hal-shadow-lg);border-radius:2px;margin:0 auto;padding:20mm;position:relative}.tpl-modern{color:#0f172a;font-family:Inter,sans-serif}.tpl-modern .inv-header{border-bottom:3px solid var(--brand-color,#28e5a0);justify-content:space-between;align-items:flex-start;margin-bottom:40px;padding-bottom:24px;display:flex}.tpl-modern .inv-brand{align-items:center;gap:16px;display:flex}.tpl-modern .inv-logo{object-fit:contain;max-width:140px;max-height:60px}.tpl-modern .inv-brand-name{letter-spacing:-.5px;font-size:24px;font-weight:800}.tpl-modern .inv-brand-meta{color:#64748b;margin-top:4px;font-size:12px;line-height:1.6}.tpl-modern .inv-title-block{text-align:right}.tpl-modern .inv-title{color:var(--brand-color,#28e5a0);letter-spacing:-1px;margin-bottom:8px;font-size:32px;font-weight:800}.tpl-modern .inv-meta-row{color:#64748b;margin-bottom:4px;font-size:12px}.tpl-modern .inv-meta-row strong{color:#0f172a}.tpl-modern .inv-status{text-transform:uppercase;letter-spacing:.5px;border-radius:20px;margin-top:8px;padding:4px 12px;font-size:11px;font-weight:700;display:inline-block}.tpl-modern .inv-status-paid{color:#0a7a56;background:#28e5a026}.tpl-modern .inv-status-unpaid{color:#b45309;background:#f59e0b26}.tpl-modern .inv-status-overdue{color:#b91c1c;background:#ef444426}.tpl-modern .inv-status-draft{color:#64748b;background:#f1f5f9}.tpl-modern .inv-parties{grid-template-columns:1fr 1fr;gap:40px;margin-bottom:40px;display:grid}.tpl-modern .inv-party-label{text-transform:uppercase;letter-spacing:1px;color:var(--brand-color,#28e5a0);margin-bottom:8px;font-size:10px;font-weight:800}.tpl-modern .inv-party-name{margin-bottom:6px;font-size:16px;font-weight:700}.tpl-modern .inv-party-detail{color:#64748b;font-size:12px;line-height:1.6}.tpl-modern .inv-table{border-collapse:collapse;width:100%;margin-bottom:30px}.tpl-modern .inv-table thead th{color:#fff;text-transform:uppercase;letter-spacing:.5px;text-align:left;background:#0f172a;padding:12px 14px;font-size:11px;font-weight:700}.tpl-modern .inv-table thead th:last-child{text-align:right}.tpl-modern .inv-table tbody td{vertical-align:top;border-bottom:1px solid #e2e8f0;padding:14px;font-size:13px}.tpl-modern .inv-table tbody td:last-child{text-align:right;font-weight:700}.tpl-modern .inv-table tbody tr:nth-child(2n){background:#f8fafc}.tpl-modern .inv-item-desc{font-weight:600}.tpl-modern .inv-item-meta{color:#64748b;margin-top:2px;font-size:11px}.tpl-modern .inv-summary{width:320px;margin-bottom:40px;margin-left:auto}.tpl-modern .inv-sum-row{border-bottom:1px solid #e2e8f0;justify-content:space-between;padding:8px 0;font-size:13px;display:flex}.tpl-modern .inv-sum-row.total{border-top:3px solid var(--brand-color,#28e5a0);border-bottom:none;margin-top:4px;padding-top:12px}.tpl-modern .inv-sum-row.total .sum-label,.tpl-modern .inv-sum-row.total .sum-val{font-size:18px;font-weight:800}.tpl-modern .inv-sum-row.paid{color:#0a7a56}.tpl-modern .inv-sum-row.due{color:#b91c1c;font-weight:700}.tpl-modern .inv-footer{border-top:1px solid #e2e8f0;grid-template-columns:1fr 1fr;gap:40px;margin-top:50px;padding-top:24px;display:grid}.tpl-modern .inv-footer-label{text-transform:uppercase;letter-spacing:1px;color:#64748b;margin-bottom:8px;font-size:10px;font-weight:800}.tpl-modern .inv-footer-text{color:#64748b;font-size:12px;line-height:1.7}.tpl-modern .inv-signature{max-height:60px;margin-top:8px}.tpl-modern .inv-bank-box{background:#f8fafc;border-radius:8px;padding:14px;font-size:12px;line-height:1.8}.tpl-modern .inv-bank-box strong{color:#0f172a}.tpl-classic{color:#0f172a;font-family:Inter,sans-serif}.tpl-classic .inv-header{text-align:center;border-bottom:2px solid #0f172a;margin-bottom:40px;padding-bottom:24px}.tpl-classic .inv-logo-center{max-height:50px;margin-bottom:8px}.tpl-classic .inv-brand-name{font-size:22px;font-weight:800}.tpl-classic .inv-brand-meta{color:#64748b;margin-top:4px;font-size:11px}.tpl-classic .inv-title{letter-spacing:2px;text-transform:uppercase;margin-top:16px;font-size:28px;font-weight:700}.tpl-classic .inv-meta-grid{text-align:center;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:20px;display:grid}.tpl-classic .inv-meta-item{font-size:11px}.tpl-classic .inv-meta-item strong{margin-bottom:2px;font-size:13px;display:block}.tpl-classic .inv-parties{grid-template-columns:1fr 1fr;gap:40px;margin-bottom:36px;display:grid}.tpl-classic .inv-party-box{border:1px solid #e2e8f0;border-radius:8px;padding:16px}.tpl-classic .inv-party-label{text-transform:uppercase;letter-spacing:1px;color:#64748b;margin-bottom:8px;font-size:10px;font-weight:800}.tpl-classic .inv-party-name{margin-bottom:6px;font-size:15px;font-weight:700}.tpl-classic .inv-party-detail{color:#64748b;font-size:12px;line-height:1.6}.tpl-classic .inv-table{border-collapse:collapse;width:100%;margin-bottom:30px}.tpl-classic .inv-table thead th{text-transform:uppercase;letter-spacing:.5px;text-align:left;border-top:2px solid #0f172a;border-bottom:2px solid #0f172a;padding:10px 12px;font-size:11px;font-weight:700}.tpl-classic .inv-table thead th:last-child{text-align:right}.tpl-classic .inv-table tbody td{border-bottom:1px solid #e2e8f0;padding:12px;font-size:13px}.tpl-classic .inv-table tbody td:last-child{text-align:right}.tpl-classic .inv-item-desc{font-weight:600}.tpl-classic .inv-item-meta{color:#64748b;font-size:11px}.tpl-classic .inv-summary{width:300px;margin-left:auto}.tpl-classic .inv-sum-row{justify-content:space-between;padding:6px 0;font-size:13px;display:flex}.tpl-classic .inv-sum-row.total{border-top:2px solid #0f172a;margin-top:6px;padding-top:10px;font-size:16px;font-weight:800}.tpl-classic .inv-sum-row.due{color:#b91c1c;font-weight:700}.tpl-classic .inv-footer{border-top:1px solid #e2e8f0;grid-template-columns:1fr 1fr 1fr;gap:24px;margin-top:50px;padding-top:24px;display:grid}.tpl-classic .inv-footer-label{text-transform:uppercase;letter-spacing:1px;color:#64748b;margin-bottom:6px;font-size:10px;font-weight:800}.tpl-classic .inv-footer-text{color:#64748b;font-size:11px;line-height:1.7}.tpl-classic .inv-signature{max-height:50px;margin-top:6px}.tpl-minimal{color:#0f172a;font-family:Inter,sans-serif}.tpl-minimal .inv-header{justify-content:space-between;align-items:flex-end;margin-bottom:50px;display:flex}.tpl-minimal .inv-brand-name{font-size:20px;font-weight:700}.tpl-minimal .inv-brand-meta{color:#94a3b8;margin-top:4px;font-size:11px;line-height:1.5}.tpl-minimal .inv-title{color:#0f172a;letter-spacing:-2px;font-size:48px;font-weight:800}.tpl-minimal .inv-meta-right{text-align:right;color:#94a3b8;font-size:12px;line-height:1.8}.tpl-minimal .inv-meta-right strong{color:#0f172a;font-weight:600}.tpl-minimal .inv-parties{grid-template-columns:1fr 1fr;gap:60px;margin-bottom:50px;display:grid}.tpl-minimal .inv-party-label{text-transform:uppercase;letter-spacing:1.5px;color:#94a3b8;margin-bottom:10px;font-size:10px;font-weight:700}.tpl-minimal .inv-party-name{margin-bottom:8px;font-size:15px;font-weight:700}.tpl-minimal .inv-party-detail{color:#64748b;font-size:12px;line-height:1.7}.tpl-minimal .inv-table{border-collapse:collapse;width:100%;margin-bottom:40px}.tpl-minimal .inv-table thead th{text-transform:uppercase;letter-spacing:1.5px;color:#94a3b8;text-align:left;border-bottom:1px solid #e2e8f0;padding:12px 0;font-size:10px;font-weight:700}.tpl-minimal .inv-table thead th:last-child{text-align:right}.tpl-minimal .inv-table tbody td{border-bottom:1px solid #e2e8f0;padding:16px 0;font-size:13px}.tpl-minimal .inv-table tbody td:last-child{text-align:right;font-weight:600}.tpl-minimal .inv-item-desc{font-weight:600}.tpl-minimal .inv-item-meta{color:#94a3b8;margin-top:2px;font-size:11px}.tpl-minimal .inv-summary{width:280px;margin-bottom:50px;margin-left:auto}.tpl-minimal .inv-sum-row{color:#64748b;justify-content:space-between;padding:8px 0;font-size:13px;display:flex}.tpl-minimal .inv-sum-row.total{color:#0f172a;border-top:2px solid #0f172a;margin-top:8px;padding-top:12px;font-size:18px;font-weight:800}.tpl-minimal .inv-sum-row.due{color:#b91c1c;font-weight:700}.tpl-minimal .inv-footer{border-top:1px solid #e2e8f0;justify-content:space-between;align-items:flex-end;margin-top:60px;padding-top:30px;display:flex}.tpl-minimal .inv-footer-text{color:#94a3b8;max-width:300px;font-size:11px;line-height:1.8}.tpl-minimal .inv-signature{max-height:50px}.hal-toast{background:var(--hal-navy);color:var(--hal-white);border-radius:var(--hal-radius);box-shadow:var(--hal-shadow-lg);z-index:200;opacity:0;pointer-events:none;padding:12px 24px;font-size:13px;font-weight:600;transition:all .4s cubic-bezier(.175,.885,.32,1.275);position:fixed;bottom:24px;left:50%;transform:translate(-50%)translateY(100px)}.hal-toast.show{opacity:1;transform:translate(-50%)translateY(0)}@media (width<=1100px){.hal-form-panel{width:360px;min-width:360px}.hal-invoice-preview{transform-origin:top;transform:scale(.75)}}@media (width<=900px){.hal-layout{flex-direction:column}.hal-form-panel{border-right:none;border-bottom:1px solid var(--hal-border);width:100%;min-width:0;max-height:50vh}.hal-preview-panel{min-height:50vh}.hal-invoice-preview{transform:scale(.6)}}@media print{.hal-topbar,.hal-form-panel,.hal-preview-bar{display:none!important}.hal-layout{padding-top:0}.hal-preview-panel{background:#fff}.hal-invoice-preview{box-shadow:none;width:100%;margin:0;padding:0}}
