:root{--color-bg:#16181d;--color-surface:#1e2128;--color-surface-raised:#262a33;--color-border:#333842;--color-border-subtle:#2a2e36;--color-text:#e8eaed;--color-text-muted:#9aa0ab;--color-text-faint:#6b7280;--color-accent:#c4a265;--color-accent-hover:#d4b87a;--color-accent-muted:#c4a26526;--color-error:#e05c5c;--color-danger:#c94444;--color-danger-hover:#d95555;--color-invoice-bg:#fafaf8;--color-invoice-text:#1a1d23;--color-invoice-muted:#5c6370;--color-invoice-border:#e2e4e8;--color-invoice-accent:#1a1d23;--font-ui:"DM Sans", system-ui, -apple-system, sans-serif;--font-invoice:"DM Sans", system-ui, sans-serif;--font-invoice-display:"Instrument Serif", Georgia, serif;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--shadow-sm:0 1px 3px #0003;--shadow-md:0 4px 20px #00000059;--shadow-invoice:0 8px 40px #00000073}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-ui);background:var(--color-bg);color:var(--color-text);min-height:100vh;line-height:1.5}#root{min-height:100vh}.app{flex-direction:column;min-height:100vh;display:flex}.app-header{justify-content:space-between;align-items:center;gap:var(--space-lg);padding:var(--space-md) var(--space-xl);background:var(--color-surface);border-bottom:1px solid var(--color-border-subtle);z-index:100;flex-wrap:wrap;display:flex;position:sticky;top:0}.app-header__brand{align-items:center;gap:var(--space-md);display:flex}.app-header__mark{background:linear-gradient(135deg, var(--color-accent) 0%, #9a7d4a 100%);border-radius:var(--radius-sm);flex-shrink:0;width:36px;height:36px}.app-header__title{letter-spacing:-.01em;color:var(--color-text);font-size:1.125rem;font-weight:600}.app-header__subtitle{color:var(--color-text-muted);margin-top:1px;font-size:.8125rem}.app-main{flex:1;grid-template-columns:1fr 1fr;gap:0;min-height:0;display:grid}.editor-panel{padding:var(--space-xl);background:var(--color-bg);border-right:1px solid var(--color-border-subtle);max-height:calc(100vh - 73px);overflow-y:auto}.preview-panel{padding:var(--space-xl);background:#12141a;flex-direction:column;align-items:center;max-height:calc(100vh - 73px);display:flex;overflow-y:auto}.preview-panel__label{letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-faint);margin-bottom:var(--space-md);align-self:flex-start;font-size:.6875rem;font-weight:600}.btn{justify-content:center;align-items:center;gap:var(--space-sm);font-family:var(--font-ui);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;padding:.5625rem 1.125rem;font-size:.875rem;font-weight:500;transition:background .15s,border-color .15s,color .15s,opacity .15s;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn--primary{background:var(--color-accent);color:#1a1d23;border-color:var(--color-accent)}.btn--primary:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn--secondary{color:var(--color-text);border-color:var(--color-border);background:0 0}.btn--secondary:hover:not(:disabled){background:var(--color-surface-raised);border-color:var(--color-text-faint)}.btn--ghost{color:var(--color-text-muted);background:0 0;border-color:#0000}.btn--ghost:hover:not(:disabled){color:var(--color-text);background:var(--color-surface-raised)}.btn--danger{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn--danger:hover:not(:disabled){background:var(--color-danger-hover)}.action-bar{align-items:center;gap:var(--space-md);flex-wrap:wrap;display:flex}.action-bar__primary{gap:var(--space-sm);flex-wrap:wrap;display:flex}.confirm-overlay{z-index:200;padding:var(--space-md);background:#000000a6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl);width:100%;max-width:400px;box-shadow:var(--shadow-md)}.confirm-dialog h3{margin-bottom:var(--space-sm);font-size:1.0625rem;font-weight:600}.confirm-dialog p{color:var(--color-text-muted);margin-bottom:var(--space-lg);font-size:.875rem}.confirm-dialog__actions{justify-content:flex-end;gap:var(--space-sm);display:flex}.invoice-form{gap:var(--space-lg);flex-direction:column;max-width:560px;display:flex}.form-section{background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);overflow:hidden}.form-section__title{letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);padding:var(--space-md) var(--space-lg);background:var(--color-accent-muted);border-bottom:1px solid var(--color-border-subtle);font-size:.6875rem;font-weight:600}.form-section__body{padding:var(--space-lg);gap:var(--space-md);flex-direction:column;display:flex}.form-row{gap:var(--space-md);grid-template-columns:1fr 1fr;display:grid}.form-field{gap:var(--space-xs);flex-direction:column;display:flex}.form-field label{color:var(--color-text-muted);font-size:.8125rem;font-weight:500}.required-mark{color:var(--color-accent);margin-left:2px}.form-field input,.form-field textarea,.form-field select{width:100%;font-family:var(--font-ui);color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);outline:none;padding:.625rem .875rem;font-size:.9375rem;transition:border-color .15s,box-shadow .15s}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-muted)}.form-field textarea{resize:vertical;min-height:72px}.form-field select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%239aa0ab' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-position:right .875rem center;background-repeat:no-repeat;padding-right:2rem}.form-field--error input,.form-field--error textarea,.form-field--error select{border-color:var(--color-error)}.field-error{color:var(--color-error);font-size:.75rem}.field-hint{color:var(--color-text-faint);margin-top:2px;font-size:.75rem}.invoice-preview{width:100%;max-width:210mm}.invoice-document{background:var(--color-invoice-bg);color:var(--color-invoice-text);font-family:var(--font-invoice);box-shadow:var(--shadow-invoice);border-radius:2px;flex-direction:column;min-height:297mm;padding:48px 52px;display:flex}.inv-header{justify-content:space-between;align-items:flex-start;gap:var(--space-xl);display:flex}.inv-header__business-name{font-family:var(--font-invoice-display);letter-spacing:-.01em;color:var(--color-invoice-accent);margin-bottom:var(--space-sm);font-size:1.625rem;font-weight:400;line-height:1.2}.inv-header__address{color:var(--color-invoice-muted);white-space:pre-line;font-size:.8125rem;line-height:1.6}.inv-header__contact{color:var(--color-invoice-muted);margin-top:var(--space-sm);font-size:.8125rem}.inv-header__separator{margin:0 .375rem}.inv-header__meta{text-align:right;flex-shrink:0}.inv-header__title{font-family:var(--font-invoice-display);letter-spacing:.06em;color:var(--color-invoice-accent);margin-bottom:var(--space-md);font-size:2.5rem;font-weight:400;line-height:1}.inv-header__details{flex-direction:column;gap:.375rem;display:flex}.inv-header__detail-row{justify-content:flex-end;gap:var(--space-md);font-size:.8125rem;display:flex}.inv-header__detail-row dt{color:var(--color-invoice-muted);font-weight:400}.inv-header__detail-row dd{text-align:right;min-width:120px;font-weight:600}.invoice-document__divider{background:var(--color-invoice-accent);height:2px;margin:var(--space-xl) 0;opacity:.12}.inv-client{margin-bottom:var(--space-xl)}.inv-client__label{letter-spacing:.14em;text-transform:uppercase;color:var(--color-invoice-muted);margin-bottom:var(--space-sm);font-size:.6875rem;font-weight:600}.inv-client__name{margin-bottom:.25rem;font-size:1rem;font-weight:600}.inv-client__address{color:var(--color-invoice-muted);white-space:pre-line;font-size:.8125rem;line-height:1.6}.inv-client__email{color:var(--color-invoice-muted);margin-top:.25rem;font-size:.8125rem}.inv-services{margin-bottom:var(--space-lg)}.inv-table{border-collapse:collapse;width:100%}.inv-table thead tr{border-bottom:2px solid var(--color-invoice-accent)}.inv-table th{letter-spacing:.1em;text-transform:uppercase;color:var(--color-invoice-muted);text-align:left;padding:.625rem 0;font-size:.6875rem;font-weight:600}.inv-table td{border-bottom:1px solid var(--color-invoice-border);vertical-align:top;padding:.875rem 0;font-size:.875rem}.inv-table__service{width:55%}.inv-table__qty{text-align:center;width:15%}.inv-table__amount{text-align:right;font-variant-numeric:tabular-nums;width:30%;font-weight:500}.inv-table th.inv-table__qty{text-align:center}.inv-table th.inv-table__amount{text-align:right}.inv-totals{margin-bottom:var(--space-xl);padding-top:var(--space-sm);justify-content:flex-end;display:flex}.inv-totals__row{align-items:baseline;gap:var(--space-xl);padding:var(--space-md) 0;border-top:2px solid var(--color-invoice-accent);min-width:280px;display:flex}.inv-totals__label{letter-spacing:.08em;text-transform:uppercase;color:var(--color-invoice-accent);font-size:.8125rem;font-weight:700}.inv-totals__amount{font-variant-numeric:tabular-nums;color:var(--color-invoice-accent);font-size:1.375rem;font-weight:700}.inv-payment{margin-bottom:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--color-invoice-border)}.inv-payment__label{letter-spacing:.14em;text-transform:uppercase;color:var(--color-invoice-muted);margin-bottom:var(--space-md);font-size:.6875rem;font-weight:600}.inv-payment__list{grid-template-columns:1fr 1fr;gap:.5rem 2rem;display:grid}.inv-payment__item{flex-direction:column;gap:1px;display:flex}.inv-payment__item dt{color:var(--color-invoice-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.6875rem}.inv-payment__item dd{font-size:.875rem;font-weight:500}.inv-notes{margin-bottom:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--color-invoice-border)}.inv-notes__label{letter-spacing:.14em;text-transform:uppercase;color:var(--color-invoice-muted);margin-bottom:var(--space-sm);font-size:.6875rem;font-weight:600}.inv-notes__text{color:var(--color-invoice-muted);white-space:pre-line;font-size:.8125rem;line-height:1.6}.inv-footer{padding-top:var(--space-xl);text-align:center;margin-top:auto}.inv-footer p{color:var(--color-invoice-muted);letter-spacing:.04em;font-size:.75rem}.invoice-pdf-clone .invoice-document{box-shadow:none;border-radius:0;min-height:auto}@media (width<=1024px){.app-main{grid-template-columns:1fr}.editor-panel{border-right:none;border-bottom:1px solid var(--color-border-subtle);max-height:none}.preview-panel{max-height:none;padding:var(--space-lg)}}@media (width<=640px){.app-header{padding:var(--space-md);flex-direction:column;align-items:stretch}.action-bar{flex-direction:column;align-items:stretch}.action-bar__primary{flex-direction:column}.btn{width:100%}.editor-panel{padding:var(--space-md)}.form-row{grid-template-columns:1fr}.invoice-document{min-height:auto;padding:28px 24px}.inv-header{gap:var(--space-lg);flex-direction:column}.inv-header__meta{text-align:left}.inv-header__title{font-size:2rem}.inv-header__detail-row{justify-content:flex-start}.inv-header__detail-row dd{text-align:left;min-width:auto}.inv-payment__list{grid-template-columns:1fr}.inv-totals__row{justify-content:space-between;min-width:100%}}@media print{@page{size:A4 portrait;margin:12mm}body{background:#fff}.no-print{display:none!important}.app-main{display:block}.preview-panel{background:#fff;max-height:none;padding:0;overflow:visible}.invoice-preview{max-width:none}.invoice-document{box-shadow:none;background:#fff;border-radius:0;min-height:auto;padding:0}.inv-footer{position:fixed;bottom:0;left:0;right:0}}
