.data-table{gap:.5rem;display:grid}.data-table-meta{color:var(--muted,#5d6a63);align-items:center;gap:1rem;font-size:.875rem;display:flex}.data-table-meta button{font:inherit;border:1px solid var(--border,#d9d3c3);color:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:.2rem .6rem}.data-table-scroll{border:1px solid var(--border,#d9d3c3);background:var(--surface,#fffdf7);border-radius:.75rem;overflow-x:auto}.data-table table{border-collapse:collapse;width:100%;font-size:.9375rem}.data-table th,.data-table td{text-align:start;white-space:nowrap;border-bottom:1px solid var(--border,#d9d3c3);padding:.5rem .75rem}.data-table .align-end{text-align:end}.data-table th button{all:unset;cursor:pointer;align-items:baseline;gap:.25rem;font-weight:600;display:inline-flex}.data-table th button:focus-visible{outline:2px solid var(--accent,#1f5f4a);outline-offset:2px}.data-table .sort-indicator{color:var(--accent,#1f5f4a);font-size:.7rem}.data-table .filter-row td{padding-top:0}.data-table .filter-row input{width:100%;min-width:5rem;font:inherit;border:1px solid var(--border,#d9d3c3);background:var(--bg,#f4f1e8);color:inherit;border-radius:.375rem;padding:.25rem .4rem;font-size:.875rem}.data-table .filter-row input[aria-invalid=true]{border-color:#c0392b;outline-color:#c0392b}.data-table tbody tr:last-child td{border-bottom:none}.data-table tfoot td{border-top:2px solid var(--border,#d9d3c3);font-variant-numeric:tabular-nums;border-bottom:none;font-weight:700}.data-table tbody tr.clickable{cursor:pointer}.data-table tbody tr.clickable:hover{background:color-mix(in srgb, var(--accent,#1f5f4a) 8%, transparent)}.data-table-empty{text-align:center;color:var(--muted,#5d6a63)}@media (width<=640px){.data-table .secondary{display:none}}.data-table tbody.loading{opacity:.55;transition:opacity .15s .15s}.data-table th button:disabled{cursor:default}.data-table-error{color:var(--danger,#c0392b);margin:0}.data-table-pager{color:var(--muted,#5d6a63);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;font-size:.875rem;display:flex}.data-table-pages{align-items:center;gap:.25rem;display:inline-flex}.data-table-pages [aria-current]{font-variant-numeric:tabular-nums;padding:0 .5rem}.data-table-pages button{min-width:2.25rem;min-height:2.25rem;font:inherit;border:1px solid var(--border,#d9d3c3);background:var(--surface,#fffdf7);color:var(--text,inherit);cursor:pointer;border-radius:.5rem;font-size:1rem}.data-table-pages button:disabled{opacity:.4;cursor:default}.data-table-page-size{align-items:center;gap:.5rem;margin-inline-start:auto;display:inline-flex}.data-table-page-size select{font:inherit;border:1px solid var(--border,#d9d3c3);background:var(--bg,#f4f1e8);color:var(--text,inherit);border-radius:.375rem;padding:.25rem .4rem}.update-banner{z-index:50;padding:.5rem 2.75rem .5rem 1rem;padding-top:max(.5rem, env(safe-area-inset-top));background:var(--accent,#1f5f4a);color:var(--accent-text,#f4f1e8);text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:.25rem .75rem;font-size:.9rem;display:flex;position:sticky;top:0}.update-banner-reload{color:inherit;font:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:999px;padding:.25rem .75rem;font-weight:600}.update-banner-reload:hover,.update-banner-reload:focus-visible{background:var(--accent-text,#f4f1e8);color:var(--accent,#1f5f4a)}.update-banner-close{width:2rem;height:2rem;color:inherit;cursor:pointer;background:0 0;border:0;font-size:1.25rem;line-height:1;position:absolute;bottom:.35rem;right:.5rem}.version-footer{padding:1.5rem 1rem;padding-bottom:max(1.5rem, env(safe-area-inset-bottom));color:var(--muted,#5d6a63);font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:center;gap:.25rem .5rem;font-size:.75rem;display:flex}.toasts{right:max(1rem, env(safe-area-inset-right));bottom:max(1rem, env(safe-area-inset-bottom));z-index:1000;pointer-events:none;flex-direction:column;align-items:flex-end;gap:.5rem;max-width:calc(100vw - 2rem);display:flex;position:fixed}.toast{border:1px solid var(--border,#d0d7d3);border-left:4px solid var(--accent,#2e7d5b);background:var(--surface,#fff);width:24rem;max-width:100%;color:var(--text,inherit);pointer-events:auto;border-radius:8px;align-items:flex-start;gap:.75rem;padding:.75rem .75rem .75rem 1rem;animation:.25s ease-out toast-in;display:flex;box-shadow:0 6px 24px #0000002e}.toast-error{border-left-color:var(--danger,#c0392b)}.toast-message{overflow-wrap:anywhere;flex:1;min-width:0}.toast-close{color:var(--muted,#5d6a63);cursor:pointer;background:0 0;border:none;flex:none;padding:0 .35rem;font-size:1.25rem;line-height:1}@keyframes toast-in{0%{opacity:0;transform:translate(calc(100% + 1rem))}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}.chat-launcher,.chat-panel button,.chat-panel input{font:inherit}.chat-launcher,.chat-icon-button{border:1px solid var(--accent,#1f5f4a);cursor:pointer;border-radius:999px;flex:none;place-items:center;padding:0;display:grid}.chat-launcher{right:max(1rem, env(safe-area-inset-right));bottom:max(1rem, env(safe-area-inset-bottom));z-index:900;background:var(--accent,#1f5f4a);width:3.5rem;height:3.5rem;color:var(--accent-text,#fff);position:fixed;box-shadow:0 6px 20px #00000040}body .toasts{bottom:calc(max(1rem, env(safe-area-inset-bottom)) + 4.25rem)}.chat-panel{right:max(1rem, env(safe-area-inset-right));bottom:max(1rem, env(safe-area-inset-bottom));z-index:900;background:var(--bg,#f6f6f6);width:min(24rem,100vw - 2rem);height:min(36rem,100dvh - 6rem);color:var(--text,#1d2420);border:1px solid var(--border,#d9d9d9);border-radius:1rem;flex-direction:column;display:flex;position:fixed;overflow:hidden;box-shadow:0 12px 40px #0000004d}@media (width<=40rem){.chat-panel{width:auto;height:auto;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);border:0;border-radius:0;inset:0}}.chat-header{background:var(--accent,#1f5f4a);color:var(--accent-text,#fff);justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .5rem .5rem 1rem;display:flex}.chat-header h2{margin:0;font-size:1.05rem}.chat-icon-button{width:2.5rem;height:2.5rem;color:var(--accent,#1f5f4a);background:0 0}.chat-icon-button:disabled{opacity:.45;cursor:default}.chat-header .chat-icon-button{color:inherit;border-color:#0000}.chat-icon-button.chat-send{background:var(--accent,#1f5f4a);color:var(--accent-text,#fff)}.chat-icon-button.listening{background:var(--danger,#b03a2e);border-color:var(--danger,#b03a2e);color:var(--surface,#fff);animation:1.2s ease-in-out infinite chat-pulse}@keyframes chat-pulse{50%{box-shadow:0 0 0 .4rem #b03a2e40}}@media (prefers-reduced-motion:reduce){.chat-icon-button.listening{animation:none}}.chat-log{overscroll-behavior:contain;flex-direction:column;flex:1;gap:.5rem;margin:0;padding:1rem;list-style:none;display:flex;overflow-y:auto}.chat-log li{overflow-wrap:anywhere;white-space:pre-line;border-radius:1rem;max-width:85%;padding:.5rem .85rem}.chat-me{background:var(--accent,#1f5f4a);color:var(--accent-text,#fff);align-self:flex-end;border-bottom-right-radius:.25rem!important}.chat-bot{background:var(--surface,#fff);border:1px solid var(--border,#d9d9d9);align-self:flex-start;border-bottom-left-radius:.25rem!important}.chat-bot a{color:var(--accent,#1f5f4a)}.chat-error{border-color:var(--danger,#b03a2e)}.chat-hint{color:var(--muted,#5d6a63);padding-inline:0!important}.chat-input{border-top:1px solid var(--border,#d9d9d9);background:var(--surface,#fff);align-items:center;gap:.4rem;padding:.6rem;display:flex}.chat-input input{border:1px solid var(--border,#d9d9d9);background:var(--surface,#fff);min-width:0;color:var(--text,#1d2420);border-radius:999px;flex:1;padding:.45rem .9rem}.chat-input input:disabled{opacity:.7}:root{--bg:#f4f1e8;--surface:#fffdf7;--text:#1d2420;--muted:#5d6a63;--accent:#1f5f4a;--accent-text:#f4f1e8;--border:#d9d3c3;--danger:#b03a2e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121614;--surface:#1b211e;--text:#e7ebe8;--muted:#9aa8a0;--accent:#6fbf9c;--accent-text:#0f1311;--border:#2d3631;--danger:#f08a7e;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#121614;--surface:#1b211e;--text:#e7ebe8;--muted:#9aa8a0;--accent:#6fbf9c;--accent-text:#0f1311;--border:#2d3631;--danger:#f08a7e;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.5}.topbar{padding:.75rem 1rem;padding-top:max(.75rem, env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.5rem 1.5rem;display:flex}.brand{letter-spacing:.02em;font-weight:700}.topbar nav{gap:.25rem;display:flex;overflow-x:auto}.topbar nav a{color:var(--muted);white-space:nowrap;border-radius:999px;padding:.4rem .75rem;text-decoration:none}.topbar nav a.active{background:var(--accent);color:var(--accent-text)}.content{max-width:72rem;margin:0 auto;padding:1rem}.settings{gap:1rem;max-width:24rem;display:grid}.settings label{color:var(--muted);gap:.25rem;display:grid}select{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:.5rem;padding:.5rem}a{color:var(--accent)}h1{overflow-wrap:anywhere;margin:.25rem 0 1rem;font-size:1.6rem}h2{margin:1.75rem 0 .75rem;font-size:1.15rem}.muted,.status{color:var(--muted)}.status.error{color:#c0392b}.pre{white-space:pre-line}.detail .back{margin-bottom:.25rem;font-size:.9rem;text-decoration:none;display:inline-block}.title-row{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-bottom:1rem;display:flex}.title-row h1{margin:0}.columns{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));align-items:start;gap:1rem 2rem;display:grid}.facts{grid-template-columns:minmax(8rem,max-content) 1fr;gap:.35rem 1rem;margin:0;display:grid}.facts dt{color:var(--muted)}.facts dd{overflow-wrap:anywhere;margin:0}.card{border:1px solid var(--border);background:var(--surface);border-radius:.75rem;padding:.75rem 1rem;font-style:normal;display:grid}.badge{background:var(--border);color:var(--text);border-radius:999px;padding:.1rem .6rem;font-size:.8rem;font-weight:600;display:inline-block}.badge-paid{background:var(--accent);color:var(--accent-text)}.lines-scroll{border:1px solid var(--border);background:var(--surface);border-radius:.75rem;position:relative;overflow-x:auto}.lines{border-collapse:collapse;width:100%}.lines th,.lines td{text-align:start;border-bottom:1px solid var(--border);white-space:nowrap;padding:.45rem .75rem}.lines tbody tr:last-child td{border-bottom:none}.lines .num{text-align:end}.lines .description{white-space:normal;min-width:12rem}.totals{grid-template-columns:max-content minmax(7rem,max-content);justify-content:end;gap:.25rem 1.5rem;margin:.75rem 0;display:grid}.totals dt{color:var(--muted)}.totals dd{text-align:end;font-variant-numeric:tabular-nums;margin:0}.totals dt:last-of-type,.totals dd:last-of-type{color:var(--text);font-weight:700}.shell{flex-direction:column;min-height:100dvh;padding-bottom:4.5rem;display:flex}.shell>.content{flex:1;width:100%}.pdf-link{white-space:nowrap}.title-row .pdf-link{border:1px solid var(--accent);border-radius:999px;padding:.2rem .75rem;font-size:.9rem;text-decoration:none}.undo-redo-bar,.actions{flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 1rem;display:flex}button,a.button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:var(--accent-text);cursor:pointer;white-space:nowrap;border-radius:999px;padding:.45rem .9rem;text-decoration:none}button:disabled{opacity:.45;cursor:default}button.secondary,.undo-redo-bar button{color:var(--accent);background:0 0}button.danger{border-color:var(--danger);color:var(--danger);background:0 0}button.danger.solid{background:var(--danger);color:var(--surface)}.danger-zone{border-top:1px solid var(--border);margin-top:2.5rem;padding-top:1rem}.notice.danger-notice{border-color:var(--danger)}.icon-button{color:var(--muted);background:0 0;border-color:#0000;padding:.2rem .5rem}.save-status{color:var(--muted);margin-inline-start:auto;font-size:.9rem}.save-status-error,.save-status-invalid{color:#c0392b}.form-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));align-items:start;gap:.75rem 1rem;display:grid}.field{gap:.25rem;min-width:0;display:grid}.field>span,.field>label{color:var(--muted);font-size:.9rem}.field.wide{grid-column:1/-1}input,textarea{font:inherit;border:1px solid var(--border);background:var(--surface);width:100%;min-width:0;color:var(--text);border-radius:.5rem;padding:.45rem .6rem}textarea{resize:vertical}input[aria-invalid=true]{border-color:#c0392b}input:disabled,textarea:disabled,select:disabled{opacity:.7}.hint{color:var(--muted);white-space:pre-line;overflow-wrap:anywhere;font-size:.85rem;display:block}fieldset.plain{border:0;min-width:0;margin:0;padding:0}.notice{border:1px solid var(--accent);background:var(--surface);border-radius:.75rem;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin:1rem 0;padding:.75rem 1rem;display:flex}.notice p{flex:16rem;margin:0}h2.with-link{flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;display:flex}h2.with-link a{font-size:.9rem;font-weight:400}.lines-editor{justify-items:start;gap:.5rem;display:grid}.lines-editor .lines-scroll{width:100%}.lines-editor td{vertical-align:top;padding:.3rem .4rem}.lines-editor td.num{padding-top:.75rem}.lines-editor td.num:has(input){padding-top:.3rem}.lines-editor .line-description{min-width:16rem}.lines-editor .line-unit{width:6rem}.lines-editor .line-quantity,.lines-editor .line-unitPrice{text-align:end;width:7rem}.lines-editor .line-vat{text-align:end;width:4.5rem}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.pdf-actions{align-items:center;gap:.25rem;display:inline-flex}.title-notice{flex-basis:100%;margin:0}.logo-preview{background:#fff;border-radius:.5rem;max-width:min(100%,12rem);max-height:8rem;margin-bottom:.75rem;display:block}.file-button{display:inline-block}.file-button input{opacity:0;width:1px;height:1px;position:absolute}.file-button:focus-within{outline:2px solid var(--accent);outline-offset:2px}.login{min-height:100dvh;padding:max(1rem, env(safe-area-inset-top)) 1rem max(1rem, env(safe-area-inset-bottom));align-content:center;place-items:center;gap:1rem;display:grid}.login-card{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:16px;justify-items:center;gap:.75rem;width:min(100%,24rem);padding:2rem 1.5rem;display:grid}.login-card h1,.login-card p{margin:0}.login-card .status{width:100%}.login-privacy{color:var(--muted);font-size:.9rem}.privacy{max-width:44rem;padding:max(1rem, env(safe-area-inset-top)) 1rem max(2rem, env(safe-area-inset-bottom));overflow-wrap:anywhere;margin:0 auto;line-height:1.55}.privacy-languages{justify-content:flex-end;gap:.5rem;display:flex}.privacy-languages button[aria-pressed=true]{background:var(--accent);color:var(--accent-text)}.privacy h2{margin-top:1.75rem;font-size:1.15rem}.google-button{justify-content:center;min-height:44px;display:flex}.account{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-bottom:1.5rem;padding:1rem;display:flex}.account-who{overflow-wrap:anywhere;flex:12rem;min-width:0;display:grid}.avatar{object-fit:cover;border-radius:50%;width:56px;height:56px}.avatar-initial{color:var(--accent-text);background:var(--accent);place-items:center;font-size:1.5rem;font-weight:700;display:grid}.account .status{flex-basis:100%}
