.app{--bg: #eaecf1;--surface: #ffffff;--surface-2: #f5f6f9;--border: #e1e4ea;--border-strong: #cfd4dd;--ink: #1b2230;--muted: #667085;--faint: #98a1b0;--app-accent: #0d9488;--app-accent-ink: #ffffff;--good: #12855f;--good-bg: #dff3ea;--warn: #b7791f;--warn-bg: #fbf0d9;--danger: #b42318;--danger-bg: #fdecea;--danger-border: #f3b4b4;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 18px 44px rgba(16, 24, 40, .13);--radius: 10px;--paper: #ffffff;--paper-ink: #2b3038;--paper-head: #191d23;--paper-muted: #7a828d;--paper-line: #dcdfe4;--accent: #1f2430;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.45;display:grid;grid-template-rows:auto 1fr}@media(prefers-color-scheme:dark){.app{--bg: #0c0f14;--surface: #161a21;--surface-2: #1c212a;--border: #29303b;--border-strong: #3a424f;--ink: #e8ecf3;--muted: #9aa4b2;--faint: #6b7686;--app-accent: #17b3a4;--good: #4ade80;--good-bg: #12281f;--warn: #f0c674;--warn-bg: #2a2313;--danger: #f5a3a3;--danger-bg: #3a1414;--danger-border: #6b2222;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 20px 48px rgba(0, 0, 0, .55)}}.app button{cursor:pointer}.app input,.app select,.app textarea{font-family:inherit}.app :focus-visible{outline:2px solid var(--app-accent);outline-offset:2px;border-radius:4px}.topbar{display:flex;flex-wrap:wrap;align-items:center;gap:14px;row-gap:8px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:65px;z-index:20;min-width:0}.brand{display:flex;align-items:center;gap:10px;padding-right:4px}.brand .mark{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,var(--app-accent),#0b7d73);display:grid;place-items:center;color:#fff;font-size:16px}.brand .kicker{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-weight:600}.brand .name{font-size:14px;font-weight:700;line-height:1.1}.tb-group{display:flex;align-items:center;gap:8px;padding:0 12px;border-left:1px solid var(--border);height:34px}.tb-label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-weight:600}.tmpl-btn{border:1px solid var(--border-strong);background:var(--surface-2);color:var(--ink);border-radius:8px;padding:5px 10px;font-size:12.5px;font-weight:600;display:flex;gap:6px;align-items:center}.tmpl-btn .glyph{width:15px;height:20px;border-radius:2px;border:1px solid var(--border-strong);position:relative;overflow:hidden;background:#fff;flex:none}.tmpl-btn[data-t=minimal] .glyph:before{content:"";position:absolute;left:2px;top:3px;width:7px;height:3px;background:var(--ink)}.tmpl-btn[data-t=modern] .glyph:before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:var(--accent)}.tmpl-btn[data-t=classic] .glyph:before{content:"";position:absolute;left:3px;right:3px;top:4px;border-top:1px solid #999;border-bottom:1px solid #999;height:4px}.tmpl-btn.active{border-color:var(--app-accent);box-shadow:0 0 0 1px var(--app-accent) inset}.swatches{display:flex;gap:6px;align-items:center}.sw{width:20px;height:20px;border-radius:50%;border:2px solid transparent;box-shadow:0 0 0 1px var(--border-strong);cursor:pointer;padding:0}.sw.active{box-shadow:0 0 0 2px var(--ink)}.sw.suggested{position:relative}.sw.suggested:after{content:"logo";position:absolute;top:-15px;left:50%;transform:translate(-50%);font-size:8px;letter-spacing:.06em;text-transform:uppercase;color:var(--app-accent);font-weight:700;white-space:nowrap}.accent-native{width:22px;height:22px;padding:0;border:none;border-radius:50%;background:transparent;cursor:pointer}.accent-native::-webkit-color-swatch-wrapper{padding:0;border-radius:50%}.accent-native::-webkit-color-swatch{border:1px solid var(--border-strong);border-radius:50%}.accent-hex{width:76px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--ink);border-radius:8px;padding:5px 8px;font-size:12px;font-weight:600;font-family:ui-monospace,monospace}select.currency{border:1px solid var(--border-strong);background:var(--surface-2);color:var(--ink);border-radius:8px;padding:6px 8px;font-size:12.5px;font-weight:600}.fit-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:5px 10px;border-radius:999px;background:var(--good-bg);color:var(--good)}.fit-pill .dot{width:7px;height:7px;border-radius:50%;background:currentColor}.fit-pill.warn{background:var(--warn-bg);color:var(--warn)}.spacer{flex:1 1 auto}.icon-btn{border:1px solid var(--border-strong);background:var(--surface-2);color:var(--ink);border-radius:8px;width:34px;height:34px;display:grid;place-items:center;font-size:15px}.btn-primary{border:none;background:var(--app-accent);color:var(--app-accent-ink);border-radius:9px;padding:9px 16px;font-size:13.5px;font-weight:700;display:inline-flex;align-items:center;gap:8px;box-shadow:0 1px 2px #10182826}.btn-primary:hover{filter:brightness(1.05)}.body{display:grid;grid-template-columns:248px 1fr;min-height:0;min-width:0}.rail{background:var(--surface);border-right:1px solid var(--border);padding:16px 14px;overflow-y:auto;display:flex;flex-direction:column;gap:18px}.rail-toggle,.rail-close,.rail-head,.rail-backdrop{display:none}.rail h3{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin:0 0 8px;font-weight:700}.rail-btn{width:100%;text-align:left;border:1px dashed var(--border-strong);background:transparent;color:var(--ink);border-radius:9px;padding:9px 12px;font-size:13px;font-weight:600;display:flex;gap:8px;align-items:center}.rail-btn:hover{border-color:var(--app-accent);color:var(--app-accent)}.recent-row{display:flex;align-items:center;gap:8px;padding:8px;border-radius:8px}.recent-row:hover{background:var(--surface-2)}.recent-row .rd{flex:1;min-width:0}.recent-row .rn{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-row .rs{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-row.active{background:var(--surface-2);box-shadow:inset 2px 0 0 var(--accent)}.recent-row .ra{display:flex;gap:2px;transition:opacity .12s}@media(hover:hover)and (pointer:fine){.recent-row .ra{opacity:0}.recent-row:hover .ra,.recent-row:focus-within .ra{opacity:1}}.mini{border:none;background:transparent;color:var(--muted);width:24px;height:24px;border-radius:6px;font-size:13px}.mini:hover{background:var(--border);color:var(--ink)}.brandkit{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2)}.brandkit .logo{width:40px;height:40px;border-radius:7px;background:#fff;border:1px solid var(--border);display:grid;place-items:center;font-size:10px;color:var(--faint);overflow:hidden}.brandkit .logo img{max-width:100%;max-height:100%}.brandkit .bk{font-size:11.5px;color:var(--muted)}.brandkit .bk b{color:var(--ink);font-size:12.5px;display:block}.privacy{display:flex;gap:8px;align-items:flex-start;font-size:11.5px;background:var(--good-bg);color:var(--good);padding:10px;border-radius:9px;line-height:1.35}.privacy b{color:var(--good)}.rail-foot{margin-top:auto}.link-btn{border:none;background:transparent;color:var(--muted);font-size:12px;font-weight:600;padding:6px 0;display:flex;gap:7px;align-items:center}.link-btn:hover{color:var(--ink)}.stage{padding:30px;display:flex;justify-content:center;align-items:flex-start;min-width:0}.error-summary{background:var(--danger-bg);border:1px solid var(--danger-border);border-left:4px solid var(--danger);border-radius:var(--radius);color:var(--danger);padding:12px 16px;margin-bottom:16px;font-size:13px}.error-summary p{margin:0;font-weight:600}.error-summary p+p{margin-top:4px}.paper{--pad: 62px;width:794px;min-height:1123px;background:var(--paper);color:var(--paper-ink);box-shadow:var(--shadow);border-radius:2px;padding:var(--pad);position:relative;font-family:var(--font-sans);font-size:13.5px;font-weight:400}.page-edge{position:absolute;left:0;right:0;top:1123px;border-top:1px dashed #c9ced8;pointer-events:none;display:none}.page-edge:after{content:"page 1 ends";position:absolute;right:4px;top:4px;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#b6bcc8}.f{border:1px solid transparent;border-radius:5px;background:transparent;color:inherit;font:inherit;padding:2px 5px;margin:-2px -5px;width:100%;transition:background .1s,border-color .1s}.f:hover{background:#f2f4f8}.f:focus{background:#fff;border-color:var(--accent);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}.f::placeholder{color:#c3c8d1}textarea.f{resize:none;overflow:hidden;line-height:1.55}.lbl{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--paper-head);font-weight:700;margin-bottom:7px}.ihead{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:start}.title-wrap{min-width:0;display:flex;flex-direction:column;align-items:flex-start}.inv-title{font-size:22px;font-weight:600;letter-spacing:.04em;color:var(--accent);line-height:1.1;max-width:100%;padding:2px 6px;margin:-2px -6px}.ihead>.logo-zone{justify-self:end;align-self:start}.paper[data-tmpl=minimal] .ihead{grid-template-columns:1fr}.paper[data-tmpl=minimal] .title-wrap{display:none}.paper[data-tmpl=minimal] .ihead>.logo-zone{justify-self:start}.logo-zone{width:132px;height:74px;border:1.5px dashed var(--border-strong);border-radius:10px;display:grid;place-items:center;text-align:center;color:var(--paper-muted);font:inherit;font-size:11px;background:none;appearance:none;cursor:pointer;position:relative;overflow:hidden}.logo-zone:hover{border-color:var(--accent);color:var(--accent)}.logo-zone img{position:absolute;inset:0;margin:auto;max-width:100%;max-height:100%;object-fit:contain}.logo-zone.filled{border-style:solid;border-color:transparent}.logo-controls{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:6px 0 0}.logo-hint{margin:0;font-size:10.5px;color:var(--paper-muted)}.paper[data-tmpl=minimal] .logo-controls{justify-content:flex-start}.biz-name{text-align:right;font-weight:600;font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:var(--paper-head);width:auto}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px 44px;margin-top:44px}.blk{min-width:0}.f.big{font-weight:600;font-size:15px;color:var(--paper-head)}.kv{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:2px 0;font-size:12.5px}.kv-k{color:var(--paper-muted);white-space:nowrap}.kv-v{width:auto;max-width:max-content;text-align:right;color:var(--paper-head)}table.items{width:100%;border-collapse:collapse;margin-top:60px}table.items thead th{text-align:left;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--paper-head);padding:0 8px 12px;font-weight:700;border-bottom:1px solid var(--paper-head)}table.items thead th.num{text-align:right}table.items tbody td{padding:13px 8px;border-bottom:1px solid var(--paper-line);vertical-align:middle}table.items tbody tr:last-child td{border-bottom:1px solid var(--paper-head)}table.items tbody td.num .f{text-align:right}table.items tbody td.amt{text-align:right;font-variant-numeric:tabular-nums;padding-right:6px;white-space:nowrap;font-weight:600;color:var(--paper-head)}.col-drag{width:18px;color:#cfd4dd;cursor:grab;text-align:center;user-select:none}.col-rate{width:96px}.col-qty{width:74px}.col-amt{width:118px}.col-del{width:26px}.col-tax{width:56px;text-align:center}.del-row{border:none;background:transparent;color:#c9ced8;width:24px;height:24px;border-radius:6px;font-size:15px}tr:hover .del-row{color:#e5646f}.add-line{margin-top:12px;display:flex;gap:10px;align-items:center}.add-line button{border:1px solid var(--border-strong);background:#fff;color:var(--paper-ink);border-radius:7px;padding:6px 11px;font-size:12px;font-weight:600}.add-line button:hover{border-color:var(--accent);color:var(--accent)}.add-line .hintline{font-size:11px;color:var(--paper-muted)}kbd{background:#eef1f6;border:1px solid #d7dce4;border-bottom-width:2px;border-radius:4px;padding:0 5px;font-size:10.5px;font-family:ui-monospace,monospace;color:#445}.lower{display:grid;grid-template-columns:1fr 288px;gap:30px;margin-top:26px}.addons{display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start}.chip-add{border:1px dashed var(--border-strong);background:transparent;color:var(--paper-muted);border-radius:999px;padding:5px 12px;font-size:11.5px;font-weight:600}.chip-add:hover{border-color:var(--accent);color:var(--accent)}.chip-add.hidden{display:none}.totals{font-size:13px}.totals .row{display:flex;justify-content:space-between;align-items:center;padding:7px 0}.totals .row .lab{color:var(--paper-muted);display:flex;align-items:center;gap:6px}.totals .row.sub .lab{color:var(--paper-head);font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:11px}.totals .row.sub .val{font-weight:700;color:var(--paper-head)}.totals .row .val{font-variant-numeric:tabular-nums}.totals .row.total{margin-top:4px;padding-top:12px;font-size:15px;font-weight:800;letter-spacing:.06em}.totals .row.total .lab{color:var(--paper-head);text-transform:uppercase;font-size:12px;letter-spacing:.12em}.totals .row.total .val{color:var(--accent)}.tax-label-sel,.disc-mode{border:1px solid var(--paper-line);background:#fff;border-radius:5px;font-size:11px;padding:1px 3px;color:var(--paper-ink)}.mini-input{width:50px;text-align:right;border:1px solid var(--paper-line);border-radius:5px;padding:2px 5px;font:inherit;font-size:12px}.rm-addon{border:none;background:transparent;color:#c9ced8;font-size:13px;padding:0 2px}.rm-addon:hover{color:#e5646f}.tax-inclusive-toggle{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;color:var(--paper-muted);white-space:nowrap;cursor:pointer}.ifoot{display:block;margin-top:44px}.note-block{margin-bottom:18px}.payinfo{max-width:460px}.paper[data-tmpl=modern] .ihead{background:var(--accent);margin:calc(-1 * var(--pad)) calc(-1 * var(--pad)) 0;padding:var(--pad) var(--pad) 28px;border-radius:2px 2px 0 0;align-items:flex-start}.paper[data-tmpl=modern] .inv-title{color:#fff}.paper[data-tmpl=modern] .logo-zone{border-color:#ffffff8c;color:#ffffffd9;background:#ffffff1a}.paper[data-tmpl=modern] .logo-zone.filled{background:transparent;border-color:transparent}.paper[data-tmpl=modern] .info-grid{margin-top:36px}.paper[data-tmpl=modern] table.items thead th{color:var(--accent);border-bottom:2px solid var(--accent)}.paper[data-tmpl=classic]{font-family:Georgia,Times New Roman,serif}.paper[data-tmpl=classic] .ihead{align-items:center;border-bottom:2px double var(--paper-head);padding-bottom:20px}.paper[data-tmpl=classic] .inv-title{color:var(--paper-head);letter-spacing:.18em}.paper[data-tmpl=classic] .info-grid{margin-top:32px}.paper[data-tmpl=classic] table.items thead th{color:var(--paper-head);border-top:1.5px solid var(--paper-head);border-bottom:1.5px solid var(--paper-head);padding-top:10px}.paper[data-tmpl=classic] .totals .row.total .val{color:var(--paper-head)}@media(max-width:940px){.body{grid-template-columns:1fr}.rail{position:fixed;top:0;left:0;bottom:0;width:84%;max-width:320px;z-index:60;transform:translate(-100%);transition:transform .25s ease;box-shadow:0 0 40px #00000040}.rail.open{transform:translate(0)}.rail-toggle{display:inline-flex;align-items:center;justify-content:center;width:38px;height:34px;flex:none;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--ink);border-radius:8px;font-size:16px;cursor:pointer}.rail-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;margin-bottom:2px;border-bottom:1px solid var(--border)}.rail-head-title{font-size:13px;font-weight:700;color:var(--ink)}.rail-close{display:grid;place-items:center;width:40px;height:40px;margin:-3px -4px -3px 0;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--ink);font-size:19px;line-height:1;border-radius:8px;cursor:pointer}.rail-close:active{background:var(--border)}.mini{width:34px;height:34px;border:1px solid var(--border);background:var(--surface-2);color:var(--ink);font-size:15px}.mini:active{background:var(--border)}.recent-row{padding:8px 4px}.rail-backdrop{display:block;position:fixed;inset:0;z-index:55;border:none;padding:0;background:#00000073;opacity:0;pointer-events:none;transition:opacity .25s ease;cursor:pointer}.rail-backdrop.open{opacity:1;pointer-events:auto}.topbar{flex-wrap:wrap;row-gap:8px}.tb-group{border-left:none;padding:0 8px 0 0;flex-wrap:wrap;height:auto;min-width:0}.stage{padding:16px}.paper{width:100%;--pad: 28px}.inv-title{font-size:21px}}@media(max-width:620px){.paper{--pad: 20px;font-size:13px}.ihead{gap:12px}.inv-title{font-size:20px;max-width:100%}.logo-zone{width:120px;height:64px}.info-grid{grid-template-columns:1fr;gap:20px;margin-top:28px}table.items,table.items thead,table.items tbody,table.items tr,table.items td{display:block}table.items{margin-top:34px}table.items thead{display:none}table.items tbody tr{position:relative;border:1px solid var(--paper-line);border-radius:10px;padding:10px 40px 10px 12px;margin-bottom:12px}table.items tbody tr td{border-bottom:none;padding:5px 0}table.items tbody tr:last-child td{border-bottom:none}table.items td.col-drag{display:none}td.cell-desc{border-bottom:1px solid var(--paper-line);padding-bottom:9px!important;margin-bottom:5px}td.cell-desc .f{font-weight:600}table.items tbody td.num,table.items tbody td.amt{display:flex;justify-content:space-between;align-items:center;text-align:left}td.num .f{width:auto;min-width:90px;text-align:right}td[data-label]:before{content:attr(data-label);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--paper-muted);font-weight:700}.col-del{position:absolute;top:8px;right:8px;padding:0}.del-row{color:#b3bac6}.lower{grid-template-columns:1fr;gap:18px}.title-wrap{align-items:flex-start}.inv-sub{text-align:left}.payinfo{max-width:none}}@media(prefers-reduced-motion:reduce){.app *{animation:none!important;transition:none!important}}@media print{.paper,.paper *{print-color-adjust:exact;-webkit-print-color-adjust:exact}.topbar,.rail,.hint-bar,.add-line,.col-del,.col-drag,.col-tax,.page-edge,.chip-add,.rm-addon,.tax-inclusive-toggle,.logo-controls{display:none!important}.app,.body,.stage{display:block!important;height:auto!important;overflow:visible!important}.paper{box-shadow:none;width:100%;min-height:0;margin:0;--pad: 14mm}.f,.mini-input,.tax-label-sel,.disc-mode{border-color:transparent!important;background:transparent!important;box-shadow:none!important}.f::placeholder{color:transparent!important}.logo-zone:not(.filled){display:none!important}table.items tr,.blk,.ihead,.totals,.ifoot{break-inside:avoid}@page{margin:0}}
