:root{--ink:#19332f;--green:#173b36;--soft:#edf2ec;--paper:#fffefa;--bg:#f5f4ee;--muted:#66746e;--line:#e0e5dc;--accent:#c1d0a8;--red:#a33e34;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;border-radius:8px;min-height:42px;padding:10px 16px;font-weight:600;font-size:13px;line-height:1.3}button:hover{filter:brightness(.95)}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid #b09745;outline-offset:3px}.primary{background:var(--green);color:white}.secondary{background:white;border:1px solid #cfd8ce;color:var(--green)}.quiet{color:var(--green);background:transparent}.text-button{padding:4px 2px;min-height:36px;color:var(--green);background:transparent;text-decoration:underline;text-underline-offset:3px}.danger{background:#fcf0eb;color:var(--red)}.icon-button{background:transparent;font-size:18px;padding:8px;min-width:42px}.topbar{height:86px;display:flex;justify-content:space-between;align-items:center;padding:0 5vw;border-bottom:1px solid var(--line);background:var(--paper)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--green);font-size:12px;font-weight:750;letter-spacing:1.4px}.brand small{display:block;font-size:9px;letter-spacing:2.6px;margin-top:6px;font-weight:500}.brand-icon{height:42px;width:42px;display:grid;place-items:center;background:var(--green);color:#f2ecd8;border-radius:50%;font:26px Georgia,serif}.topbar nav{display:flex;gap:8px}main{max-width:1240px;margin:auto;padding:54px 36px 20px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:36px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:var(--muted)}h1{font:clamp(30px,4vw,46px)/1.15 Georgia,serif;letter-spacing:-1.4px;margin:13px 0}p{font-size:14px;line-height:1.6}h2{font:26px Georgia,serif;margin:6px 0}h3{font-size:14px;margin:0 0 16px}p,.muted{color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:24px 0}.metrics>div{padding:0 28px;border-right:1px solid var(--line)}.metrics>div:last-child{border:0}.metrics span{display:block;font-size:12px;color:var(--muted);margin-bottom:12px}.metrics strong{font-size:30px;letter-spacing:-1px;font-weight:500}.metrics>div:last-child strong{color:#7b6734}.privacy-note{display:flex;gap:8px;align-items:center;font-size:11px;line-height:1.5;margin:18px 0 38px;flex-wrap:wrap;color:var(--muted)}.privacy-note button{margin-left:auto;font-size:11px}.dot{background:#6d8767;border-radius:50%;width:6px;height:6px}.panel{border:1px solid var(--line);border-radius:12px;background:var(--paper);overflow:hidden}.section-top{display:flex;align-items:center;justify-content:space-between;gap:16px}.invoice-list>.section-top{padding:26px}.filters{display:flex;gap:8px}.filters input{width:245px}.filters select{width:150px}.empty{padding:54px 24px 64px;text-align:center;border-top:1px solid var(--line)}.empty-symbol{background:var(--soft);width:58px;height:65px;display:grid;place-items:center;margin:0 auto 20px;border-radius:12px;color:#577264;font:32px Georgia}.empty h3{font:23px Georgia,serif;margin:0}.empty p{max-width:360px;margin:12px auto 22px}.record{display:grid;grid-template-columns:1.4fr 1.4fr 1fr .8fr auto;gap:16px;padding:20px 26px;align-items:center;border-top:1px solid var(--line);font-size:13px}.record strong{display:block;margin-bottom:6px}.record small{color:var(--muted);font-size:11px}.record .amount{text-align:right}.status{display:inline-block;padding:5px 9px;border-radius:30px;font-size:10px;font-weight:650;background:#f4edda;color:#7a5d25;white-space:nowrap}.status.paid{background:#e3efdf;color:#38623c}.status.partial{background:#e7eef5;color:#3d607c}footer{display:flex;justify-content:space-between;color:#819087;font-size:10px;padding:24px 0;gap:16px}dialog{border:1px solid var(--line);padding:0;border-radius:16px;color:var(--ink);background:var(--paper);box-shadow:0 24px 100px #15382d30;max-height:93dvh;width:calc(100% - 32px)}dialog::backdrop{background:#11282080;backdrop-filter:blur(3px)}.editor-dialog{max-width:880px}.viewer-dialog{max-width:960px}.settings-dialog{max-width:560px}.dialog-head{display:flex;justify-content:space-between;align-items:center;padding:22px 28px;border-bottom:1px solid var(--line)}.editor-body{padding:26px 28px}.dialog-foot{display:flex;justify-content:flex-end;gap:12px;padding:18px 28px;border-top:1px solid var(--line);background:#f7f8f1}.type-options{border:0;padding:0;margin:0 0 30px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.type-options legend{font-size:14px;font-weight:650;margin-bottom:16px}.type-options label{display:flex;gap:10px;border:1px solid var(--line);border-radius:10px;padding:16px 12px;cursor:pointer;align-items:center}.type-options label:has(:checked){border-color:var(--green);background:var(--soft)}.type-options input{width:16px;accent-color:var(--green);margin:0;flex-shrink:0}.type-options b{display:block;font-size:13px}.type-options small{display:block;font-size:10px;color:var(--muted);margin-top:6px}label{display:block;font-size:12px;color:var(--ink);line-height:1.5}input,select,textarea{width:100%;padding:10px 11px;border:1px solid #cdd7cc;border-radius:7px;background:white;color:var(--ink);font-size:14px;min-height:42px;margin-top:5px}input:focus,select:focus,textarea:focus{outline:2px solid #8fa787;outline-offset:1px}textarea{resize:vertical}.required{color:var(--red)}.form-section{border-top:1px solid var(--line);padding-top:22px;margin-top:26px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.form-section>label+label{margin-top:14px}.form-section .section-top h3{margin:0}.muted{font-size:11px;line-height:1.6}.line-item{display:grid;grid-template-columns:2.2fr .9fr .7fr .85fr .8fr 36px;gap:8px;align-items:end;padding:14px 0;border-bottom:1px solid var(--line)}.line-item input,.line-item select{min-width:0;font-size:13px;padding:10px 7px}.line-total{font-size:13px;padding:12px 0;text-align:right}.remove-item{background:transparent;color:var(--red);padding:10px 0;min-height:42px}.adjustments{display:flex;justify-content:flex-end;gap:16px;margin:20px 0}.adjustments label{max-width:185px}.editor-total{display:flex;justify-content:space-between;background:var(--soft);padding:18px;border-radius:8px;font-size:14px;align-items:center}.editor-total strong{font-size:24px}.viewer-actions{padding:16px 28px;display:flex;gap:8px;flex-wrap:wrap;background:#f7f8f1}.paper{background:white;padding:44px;margin:24px;border:1px solid var(--line);font-size:12px;color:#253d36}.invoice-top{display:flex;justify-content:space-between;gap:20px;padding-bottom:28px;border-bottom:2px solid var(--green)}.invoice-brand{font:30px Georgia,serif;color:var(--green);margin-bottom:8px}.invoice-brand.petals{color:#81525f}.business-info{line-height:1.8;white-space:pre-line;font-size:11px}.invoice-label{text-align:right}.invoice-label h2{font:30px Georgia,serif;margin-bottom:12px}.invoice-info{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:26px 0;line-height:1.9}.invoice-info b{display:block}.paper .eyebrow{font-size:9px}.invoice-dates{text-align:right}.invoice-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:11px}.invoice-table th{background:#edf2ec;text-align:left;font-size:9px;letter-spacing:.5px;padding:11px 8px}.invoice-table td{border-bottom:1px solid #e6ebe2;padding:13px 8px;vertical-align:top;overflow-wrap:anywhere}.invoice-table th:first-child{width:46%}.invoice-table th:nth-child(2){width:18%}.invoice-table th:nth-child(n+3),.invoice-table td:nth-child(n+3){text-align:right}.totals{margin:20px 0 20px auto;width:280px;max-width:100%}.total-row{display:flex;justify-content:space-between;gap:14px;padding:7px 0;font-size:12px}.total-row.balance{font-size:18px;font-weight:700;border-top:1px solid #cad7c8;margin-top:9px;padding-top:14px}.invoice-notes{border-top:1px solid var(--line);padding-top:18px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.invoice-notes p{font-size:11px;color:#485c53;white-space:pre-wrap}.invoice-thanks{margin-top:30px;font:18px Georgia,serif;color:#577264}.payment-section{padding:10px 28px 24px}.payment-form{display:grid;grid-template-columns:1fr 1fr 1.3fr auto;gap:12px;align-items:end;margin-top:16px}.payment-row{display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding:12px 0;font-size:12px}.payment-row span{flex:1;overflow-wrap:anywhere}.payment-row small{display:block;color:var(--muted);margin-top:4px}.viewer-bottom{padding:18px 28px;border-top:1px solid var(--line)}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:12px 20px;background:var(--green);color:white;border-radius:8px;font-size:13px;z-index:100;box-shadow:0 4px 20px #0002;display:none;max-width:90vw}#printArea{display:none}body:has(dialog[open]){overflow:hidden}#settingsForm label{margin-bottom:15px}
@media(max-width:700px){.topbar{height:74px;padding:0 18px}.brand{font-size:9px;gap:8px;letter-spacing:.7px}.brand small{font-size:8px;letter-spacing:1.5px}.brand-icon{width:34px;height:34px;font-size:22px}.topbar nav{gap:0}.topbar button{font-size:11px;padding:7px;min-height:44px}main{padding:30px 18px 12px}.page-heading{display:block;margin-bottom:26px}.page-heading>.primary{margin-top:12px;width:100%}.page-heading h1{font-size:34px}.eyebrow{font-size:8px;letter-spacing:1.4px}.metrics{padding:20px 0}.metrics>div{padding:0 12px}.metrics strong{font-size:21px}.metrics span{font-size:9px;min-height:24px;margin-bottom:8px}.privacy-note{margin-bottom:26px;font-size:10px}.privacy-note span:not(.dot){flex-basis:100%;margin-left:14px}.privacy-note button{margin-left:14px}.invoice-list>.section-top{display:block;padding:20px}.filters{margin-top:18px}.filters input{width:100%;min-width:0}.filters select{width:120px;font-size:12px}.record{grid-template-columns:1fr auto;gap:10px;padding:18px 20px}.record .customer{grid-column:1}.record .amount{grid-column:2;grid-row:1/3}.record .status-cell{grid-column:1}.record .open-record{grid-column:2;grid-row:3}.record>div:first-child{grid-column:1}.record .customer strong{font-size:14px}footer{font-size:9px;display:block;line-height:1.8}footer span{display:block}.dialog-head{padding:18px}.dialog-head h2{font-size:23px}.editor-body{padding:20px 18px}.dialog-foot{padding:16px 18px}.type-options{gap:6px}.type-options label{padding:12px 8px;display:block}.type-options input{margin-bottom:8px}.type-options b{font-size:11px}.type-options small{font-size:9px}.form-grid{gap:14px}.form-grid input{font-size:16px}.line-item{grid-template-columns:repeat(3,1fr) 32px;gap:8px;padding:18px 0}.line-item>label:first-child{grid-column:1/4}.line-item>label:nth-child(2){grid-column:1;grid-row:2}.line-item>label:nth-child(3){grid-column:2;grid-row:2}.line-item>label:nth-child(4){grid-column:3;grid-row:2}.line-item .line-total{grid-column:1/4;grid-row:3;text-align:left;padding:2px 0}.line-item .remove-item{grid-column:4;grid-row:1}.line-item input,.line-item select{font-size:16px}.adjustments{gap:12px}.adjustments label{max-width:50%}.viewer-actions{padding:14px 18px;gap:6px}.viewer-actions button{font-size:11px;padding:10px 12px}.paper{margin:12px;padding:20px 14px}.invoice-brand{font-size:23px}.invoice-label h2{font-size:21px}.invoice-top{gap:10px}.business-info{font-size:9px;overflow-wrap:anywhere}.invoice-info{font-size:10px;gap:12px}.invoice-table{font-size:9px}.invoice-table th,.invoice-table td{padding:10px 4px}.invoice-table th{font-size:8px}.invoice-table th:first-child{width:40%}.invoice-table th:nth-child(2){width:20%}.payment-section{padding:10px 18px 20px}.payment-form{grid-template-columns:1fr 1fr}.payment-form label:nth-child(3){grid-column:1/3}.payment-form button{grid-column:1/3}.payment-form input{font-size:16px}.payment-section .section-top{display:block}.payment-row{font-size:11px}.viewer-bottom{padding:16px 18px}dialog{max-height:96dvh;width:calc(100% - 16px);border-radius:12px}}
@media print{@page{size:letter;margin:.55in}body{background:white}body>*{display:none!important}#printArea{display:block!important}.paper{border:0;margin:0;padding:0;font-size:11px}.invoice-top{break-inside:avoid}.invoice-info,.totals,.invoice-notes{break-inside:avoid}.invoice-table tr{break-inside:avoid}.invoice-table thead{display:table-header-group}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

[hidden]{display:none!important}
.lock-screen{min-height:100dvh;display:grid;place-items:center;padding:24px;background:var(--bg)}.lock-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:38px;max-width:460px;width:100%;box-shadow:0 20px 80px #173b3610}.lock-card .brand-icon{margin-bottom:24px}.lock-card h1{font-size:36px;letter-spacing:-1px}.lock-card form{margin:24px 0}.lock-card form button{width:100%;margin-top:16px}.lock-card a{color:var(--green);font-size:13px}.lock-card input{font-size:16px}body.locked>.topbar,body.locked>#workspace{display:none}body:not(.locked)>#lockScreen{display:none}.invoice-footer{border-top:1px solid var(--line);margin-top:28px;padding-top:18px;display:flex;align-items:center;gap:20px;break-inside:avoid}.invoice-footer address{font-size:10px;font-style:normal;line-height:1.8;overflow-wrap:anywhere;flex:1}.review-block{display:flex;align-items:center;gap:12px;max-width:235px;font-size:10px;color:var(--ink);text-decoration:none}.review-block img{width:94px;height:94px;flex-shrink:0}.review-block strong{display:block;margin-bottom:6px}.security-notice{font-size:11px;padding:0 28px}.document-seal-note{font-size:9px;line-height:1.8;overflow-wrap:anywhere;border-top:1px solid var(--line);margin-top:18px;padding-top:12px}.verify-page{max-width:760px;padding-top:60px}.verify-card{padding:28px;margin:28px 0}.verify-card input{padding:16px;font-size:14px}.verification-result{border-left:4px solid #9c644d;padding:16px 20px;margin-top:24px;background:#faf0e9;overflow-wrap:anywhere}.verification-result.valid{border-color:#53865a;background:#e9f3e5}.verification-result h2{font-size:25px}.verification-result p{font-size:12px}.auth-dialog{max-width:450px}.auth-dialog input{font-size:16px}@media(max-width:700px){.invoice-footer{gap:10px;flex-wrap:wrap}.review-block{max-width:none}.invoice-footer address{min-width:155px}.review-block img{width:82px;height:82px}.review-block span{max-width:110px}.lock-card{padding:28px}.security-notice{padding:0 18px}.topbar nav{flex-wrap:wrap;justify-content:flex-end;gap:0}.topbar button{padding:5px;font-size:10px}}@media print{body>.lock-screen{display:none!important}.invoice-footer{break-inside:avoid}}
/* Version 3: consistent controls, service-aware cards, and iPhone-safe sizing. */
button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:7px;vertical-align:middle}.primary,.secondary,.danger{padding:11px 16px;border-radius:8px;font-size:13px;line-height:1.3}.icon-button{width:44px;min-width:44px;height:44px}.dialog-head{position:sticky;top:0;z-index:4;background:var(--paper);flex-shrink:0}.editor-dialog{overflow:hidden}.editor-dialog>form{display:flex;flex-direction:column;max-height:93dvh}.editor-dialog .editor-body{overflow:auto;min-height:0;overscroll-behavior:contain}.editor-dialog .dialog-foot{flex-shrink:0}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid>label{min-width:0}.form-grid input{min-width:0;max-width:100%;box-sizing:border-box}input[type=date]{display:block;min-width:0;width:100%;max-width:100%;appearance:none;-webkit-appearance:none;min-height:46px;text-align:left}input[type=date]::-webkit-date-and-time-value{text-align:left;min-height:1.2em}select{max-width:100%;min-width:0;text-overflow:ellipsis}.item-card.line-item{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 90px;gap:14px;padding:18px;margin:14px 0;border:1px solid var(--line);border-radius:10px;background:#fff}.item-card>label{min-width:0}.item-card.line-item>.item-service{grid-column:1/3;grid-row:1}.item-card.line-item>.item-description{grid-column:3/6;grid-row:1}.item-card.line-item>.item-unit{grid-column:1;grid-row:2}.item-card.line-item>.item-qty{grid-column:2;grid-row:2}.item-card.line-item>.item-rate{grid-column:3;grid-row:2}.item-card.line-item>.item-total{grid-column:4;grid-row:2;padding:12px 0;align-self:end;font-weight:700}.item-card.line-item>.item-remove{grid-column:5;grid-row:2;background:#fff6f3;border:1px solid #ebd6cd;color:#9d4337;padding:10px;min-height:44px;font-size:11px}.item-card input,.item-card select{font-size:14px;padding:11px;min-height:44px;margin-top:6px}.viewer-actions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch}.viewer-actions button{min-height:44px;font-size:12px;padding:10px 8px}.viewer-bottom{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.instagram-contact{color:inherit;text-decoration:none}.theme-petals{--invoice-ink:#703d50;--invoice-soft:#f8f0f2;--invoice-gold:#b18b65}.theme-notary{--invoice-ink:#233e5b;--invoice-soft:#eef2f7;--invoice-gold:#aa8b51}.theme-general{--invoice-ink:#173b36;--invoice-soft:#edf3ef;--invoice-gold:#8eaa91}.paper[class*=theme-]{border-top:5px solid var(--invoice-ink)}.paper[class*=theme-] .invoice-top{background:var(--invoice-soft);margin:-44px -44px 0;padding:32px 44px 28px;border-bottom:2px solid var(--invoice-gold)}.paper[class*=theme-] .invoice-brand,.paper[class*=theme-] .invoice-label,.paper[class*=theme-] .invoice-thanks{color:var(--invoice-ink)}.theme-petals .invoice-brand{font-style:italic;font-size:36px}.paper[class*=theme-] .invoice-table th{background:var(--invoice-ink);color:#fff;padding-top:14px;padding-bottom:14px}.paper[class*=theme-] .invoice-table tbody tr:nth-child(odd){background:var(--invoice-soft)}.paper[class*=theme-] .totals{background:var(--invoice-soft);padding:16px 18px;width:285px}.paper[class*=theme-] .invoice-footer{border-color:var(--invoice-gold)}.paper[class*=theme-] .total-row.balance{border-color:var(--invoice-gold);color:var(--invoice-ink)}#editor[data-theme=petals]{--green:#703d50;--soft:#f8f0f2}#editor[data-theme=notary]{--green:#233e5b;--soft:#eef2f7}
@media(max-width:700px){.editor-dialog>form{max-height:96dvh}.type-options{grid-template-columns:repeat(3,minmax(0,1fr))}.type-options label{min-width:0}.form-grid{gap:14px 12px}.item-card.line-item{grid-template-columns:repeat(2,minmax(0,1fr));padding:14px;gap:14px}.item-card.line-item>.item-service{grid-column:1/3;grid-row:1}.item-card.line-item>.item-description{grid-column:1/3;grid-row:2}.item-card.line-item>.item-unit{grid-column:1/3;grid-row:3}.item-card.line-item>.item-qty{grid-column:1;grid-row:4}.item-card.line-item>.item-rate{grid-column:2;grid-row:4}.item-card.line-item>.item-total{grid-column:1;grid-row:5;text-align:left;align-self:center;padding:8px 0}.item-card.line-item>.item-remove{grid-column:2;grid-row:5;justify-self:end;width:94px}.item-card input,.item-card select{font-size:16px;min-height:46px}.viewer-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.viewer-actions button:first-child{grid-column:1/3}.viewer-actions button{font-size:12px;padding:12px;min-height:44px}.paper[class*=theme-] .invoice-top{margin:-20px -14px 0;padding:22px 14px 20px}.paper .invoice-info{margin-top:24px}.theme-petals .invoice-brand{font-size:27px}.topbar{height:auto;min-height:80px;gap:14px;padding:14px 18px;align-items:flex-start}.topbar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px}.topbar button{font-size:10px;min-height:36px;padding:6px}.brand{margin-top:8px}.viewer-bottom button{width:100%}}
@media(max-width:380px){.form-grid{grid-template-columns:minmax(0,1fr)}.type-options b{font-size:10px}.type-options small{font-size:8px}}
@media print{.paper[class*=theme-]{border:0}.paper[class*=theme-] .invoice-top{margin:0 0 24px;padding:24px;background:var(--invoice-soft)}.paper .invoice-label{min-width:145px}.paper .invoice-brand{font-size:30px}.paper .invoice-table{font-size:10px}}
/* 3.1: explicit Safari button colors and readable invoice filters. */
button{color:var(--green);-webkit-text-fill-color:currentColor;touch-action:manipulation}.primary{color:#fff}.danger{color:var(--red)}.icon-button{color:var(--green);-webkit-appearance:none;appearance:none}.item-card.line-item>.item-remove{color:#9d4337;background:#fff6f3;border-color:#e4c7bc}.filters input,.filters select{min-width:0}.record>div{min-width:0}.record strong,.record small{overflow-wrap:anywhere}.record .amount{white-space:nowrap}.record .amount strong,.record .amount small{overflow-wrap:normal}
@media(max-width:700px){.filters{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.filters input,.filters select{width:100%;font-size:16px;min-height:44px}.record{grid-template-columns:minmax(0,1fr) auto;gap:10px 16px}.record .open-record{min-width:82px}.viewer-actions button{font-size:13px}.item-card.line-item>.item-remove{min-width:94px}}
