.form-body{padding:1.5rem;flex:1;overflow-y:auto}.form-section{margin-bottom:1.75rem}.form-section:last-child{margin-bottom:0}.section-label{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--border)}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.field:last-child{margin-bottom:0}.field label{font-size:12px;font-weight:500;color:var(--text-muted)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.field-row-3{grid-template-columns:1fr 1fr 1fr}.line-item{margin-bottom:10px}.line-item-row{display:flex;gap:8px;align-items:flex-end}.field-grow{flex:1;margin-bottom:0}.field-amount{width:120px;flex-shrink:0;margin-bottom:0}.btn-remove{background:none;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-faint);width:32px;height:36px;font-size:18px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s,border-color .15s;margin-bottom:0}.btn-remove:hover{color:#dc2626;border-color:#dc2626}.btn-add-item{background:none;border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--text-muted);font-size:12px;font-weight:500;padding:7px 14px;width:100%;margin-top:4px;transition:color .15s,border-color .15s}.btn-add-item:hover{color:var(--text);border-color:var(--text)}.invoice-wrap{width:100%}.invoice-paper{background:#fff;border:1px solid #E4E2DC;border-radius:12px;padding:48px 52px;width:100%;max-width:680px;margin:0 auto;font-family:Inter,system-ui,sans-serif;color:#1a1917}.inv-header{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;margin-bottom:32px}.inv-name{font-size:16px;font-weight:600;color:#1a1917;margin-bottom:6px;letter-spacing:-.01em}.inv-detail{font-size:12px;color:#6b6860;line-height:1.8}.inv-meta-block{text-align:right}.inv-title{font-family:"DM Serif Display",Georgia,serif;font-size:32px;color:#1a1917;letter-spacing:-.02em;margin-bottom:10px;line-height:1}.inv-meta-table{margin-left:auto;border-collapse:collapse}.inv-meta-table td{padding:2px 0;font-size:12px}.meta-label{color:#9e9c96;padding-right:16px;white-space:nowrap}.meta-value{color:#1a1917;font-weight:500;text-align:right}.inv-divider{border:none;border-top:1px solid #E4E2DC;margin-bottom:28px}.inv-parties{margin-bottom:32px}.party-label{font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:#9e9c96;font-weight:500;margin-bottom:6px}.party-name{font-size:14px;font-weight:600;color:#1a1917;margin-bottom:4px;letter-spacing:-.01em}.party-detail{font-size:12px;color:#6b6860;line-height:1.8}.inv-table{width:100%;border-collapse:collapse;margin-bottom:0}.inv-table thead tr{border-bottom:1px solid #E4E2DC}.th-desc,.th-amount{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#9e9c96;font-weight:500;padding:0 0 10px}.th-desc{text-align:left;width:70%}.th-amount{text-align:right}.inv-table tbody tr{border-bottom:1px solid #F2F1EE}.td-desc{font-size:13px;color:#1a1917;padding:14px 0;line-height:1.5;padding-right:2rem}.td-amount{font-size:13px;color:#1a1917;font-weight:500;text-align:right;padding:14px 0;white-space:nowrap}.placeholder{color:#c8c5bc;font-style:italic}.inv-total-row{display:flex;justify-content:flex-end;align-items:baseline;gap:48px;padding:18px 0;border-top:1.5px solid #1A1917;margin-top:2px}.total-label{font-size:13px;font-weight:600;color:#1a1917;letter-spacing:-.01em}.total-amount{font-size:20px;font-weight:600;color:#1a1917;letter-spacing:-.02em}.inv-notes{margin-top:28px;padding-top:20px;border-top:1px solid #E4E2DC;font-size:12px;color:#6b6860;line-height:1.7;display:flex;gap:12px}.notes-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#9e9c96;font-weight:500;white-space:nowrap;padding-top:2px}.notes-text{flex:1}.app{display:flex;flex-direction:column;min-height:100vh}.app-header{background:var(--surface);border-bottom:1px solid var(--border);padding:0 2rem;height:52px;display:flex;align-items:center;position:sticky;top:0;z-index:10}.header-inner{display:flex;align-items:center;gap:10px}.header-logo{font-size:20px;color:var(--text-muted)}.header-title{font-size:15px;font-weight:500;letter-spacing:-.01em}.app-main{display:grid;grid-template-columns:420px 1fr;flex:1;height:calc(100vh - 52px)}.pane{overflow-y:auto}.pane-form{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column}.form-actions{padding:1.25rem 1.5rem;border-top:1px solid var(--border);background:var(--surface);position:sticky;bottom:0}.btn-download{width:100%;background:var(--accent);color:var(--accent-fg);border:none;border-radius:var(--radius);padding:11px 20px;font-size:14px;font-weight:500;letter-spacing:-.01em;transition:opacity .15s,transform .1s}.btn-download:hover{opacity:.85}.btn-download:active{transform:scale(.99)}.btn-download:disabled{opacity:.5;cursor:not-allowed}.pane-preview{background:var(--bg);padding:2rem;display:flex;flex-direction:column}.preview-label{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);margin-bottom:1.25rem}.preview-scroll{flex:1}@media (max-width: 900px){.app-main{grid-template-columns:1fr;height:auto}.pane-preview{min-height:600px}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #F7F6F3;--surface: #FFFFFF;--border: #E4E2DC;--border-strong: #C8C5BC;--text: #1A1917;--text-muted: #6B6860;--text-faint: #9E9C96;--accent: #1A1917;--accent-fg: #FFFFFF;--focus: #2563EB;--font-sans: "Inter", system-ui, sans-serif;--font-serif: "DM Serif Display", Georgia, serif;--radius: 8px;--radius-lg: 12px}html{font-size:16px}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}input,textarea,select{font-family:var(--font-sans);font-size:13px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:8px 11px;width:100%;outline:none;transition:border-color .15s;line-height:1.5}input:focus,textarea:focus,select:focus{border-color:var(--focus);box-shadow:0 0 0 3px #2563eb1a}input::placeholder,textarea::placeholder{color:var(--text-faint)}textarea{resize:vertical}button{cursor:pointer;font-family:var(--font-sans)}
