.public-signature,.public-signature-loading,.public-signature-error,.public-signature-success{color:var(--color-text-primary);background:var(--color-bg-page);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Geist,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.public-signature-loading{color:var(--color-text-secondary);justify-content:center;align-items:center;font-size:14px;display:flex}.public-signature-error,.public-signature-success{justify-content:center;align-items:center;padding:32px 16px;display:flex}.public-signature-error-card,.public-signature-success-card{background:var(--color-bg-surface);border:1px solid var(--color-border-subtle);width:100%;max-width:420px;box-shadow:0 8px 24px var(--color-shadow-md);text-align:center;border-radius:12px;padding:32px}.public-signature-error-card h1,.public-signature-success-card h1{color:var(--color-text-primary);margin:0 0 12px;font-size:20px;font-weight:600}.public-signature-success-icon{background:var(--color-success-bg-strong);width:56px;height:56px;color:var(--color-success-text);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;font-size:28px;font-weight:700;display:flex}.public-signature-success-card .muted,.public-signature-error-card p{color:var(--color-text-secondary);margin:8px 0;font-size:13px;line-height:1.5}.signature-id{color:var(--color-text-tertiary);margin-top:16px;font-size:11px}.signature-id code{background:var(--color-bg-subtle);color:var(--color-text-body);border-radius:4px;padding:2px 6px;font-family:ui-monospace,Menlo,monospace}.public-signature{flex-direction:column;padding-bottom:96px;display:flex}.public-signature-header{background:var(--color-bg-surface);border-bottom:1px solid var(--color-border-subtle);justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 24px;display:flex}.public-signature-emitter{color:var(--color-text-primary);font-size:15px;font-weight:600}.public-signature-emitter-meta{color:var(--color-text-tertiary);letter-spacing:.02em;margin-top:2px;font-size:11px}.public-signature-quote-number{color:var(--color-text-secondary);text-align:right;font-size:12px;font-weight:500}.public-signature-main{box-sizing:border-box;width:100%;max-width:720px;margin:0 auto;padding:24px 20px}.public-signature-title{color:var(--color-text-primary);margin:0 0 4px;font-size:22px;font-weight:600}.public-signature-customer{color:var(--color-text-secondary);margin:0 0 24px;font-size:13px}.public-signature-meta{background:var(--color-bg-surface);border:1px solid var(--color-border-subtle);border-radius:8px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px 20px;margin:0 0 16px;padding:16px;font-size:13px;display:grid}.public-signature-meta>div{flex-direction:column;gap:2px;display:flex}.public-signature-meta dt{color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:10px;font-weight:500}.public-signature-meta dd{color:var(--color-text-primary);margin:0;font-weight:500}.public-signature-intro,.public-signature-conclusion{background:var(--color-bg-surface);border:1px solid var(--color-border-subtle);white-space:pre-wrap;color:var(--color-text-body);border-radius:8px;margin:0 0 16px;padding:16px;font-size:13px;line-height:1.55}.public-signature-conclusion{margin-top:16px}.public-signature-lines-toolbar{align-items:center;gap:4px;margin:0 0 8px;display:flex}.public-signature-lines-toolbar-spacer{flex:1}.public-signature-lines-toolbar .btn{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;padding:5px 10px;font-family:inherit;font-size:12px;font-weight:500;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.public-signature-lines-toolbar .btn:hover{background:var(--color-bg-subtle);color:var(--color-text-primary)}.public-signature-lines-toolbar .btn:focus-visible{outline:2px solid var(--color-accent-focus-ring);outline-offset:2px}.public-signature-lines{background:var(--color-bg-surface);border:1px solid var(--color-border-subtle);border-radius:8px;margin:0 0 16px;overflow:hidden}.public-signature-line{border-bottom:1px solid var(--color-border-subtle);color:var(--color-text-body);grid-template-columns:minmax(0,1fr) 90px 60px 100px;align-items:baseline;gap:16px;padding:12px 16px;font-size:13px;display:grid}.public-signature-line:last-child{border-bottom:none}.public-signature-line-header{background:var(--color-bg-subtle);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-tertiary);padding:10px 16px;font-size:10px;font-weight:600}.public-signature-line-header>div{text-align:inherit}.public-signature-line-name-header{padding-left:24px}.public-signature-line-vat{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--color-text-tertiary);font-size:12px}@media (width<=540px){.public-signature-line{grid-template-columns:minmax(0,1fr) 70px 90px}.public-signature-line-vat,.public-signature-line-header .public-signature-line-vat{display:none}}.public-signature-line-section,.public-signature-line-subsection{background:var(--color-bg-subtle);color:var(--color-text-primary);font-weight:600}.public-signature-line-text{color:var(--color-text-secondary);font-style:italic}.public-signature-line-name{align-items:flex-start;gap:6px;min-width:0;display:flex}.public-signature-line-name-text{flex:1;min-width:0}.public-signature-line-chevron{width:18px;height:18px;color:var(--color-text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;place-items:center;margin-top:1px;padding:0;transition:background .12s,color .12s;display:grid}.public-signature-line-chevron:hover{background:var(--color-bg-subtle);color:var(--color-text-primary)}.public-signature-line-chevron:focus-visible{outline:2px solid var(--color-accent-focus-ring);outline-offset:1px}.public-signature-line-chevron svg{transition:transform .16s cubic-bezier(.4,0,.2,1)}.public-signature-line-chevron.expanded svg{transform:rotate(90deg)}.public-signature-line-chevron.leaf{visibility:hidden;cursor:default;pointer-events:none}.public-signature-line-desc{color:var(--color-text-tertiary);white-space:pre-wrap;margin-top:2px;font-size:12px}.public-signature-line-qty,.public-signature-line-amount{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.public-signature-line-qty{color:var(--color-text-tertiary);font-size:12px}.public-signature-line-amount{color:var(--color-text-primary);font-weight:500}.public-signature-totals{background:var(--color-bg-surface);border:1px solid var(--color-border-subtle);border-radius:8px;margin:0 0 16px;padding:16px}.public-signature-totals>div{color:var(--color-text-body);font-variant-numeric:tabular-nums;justify-content:space-between;padding:6px 0;font-size:13px;display:flex}.public-signature-totals-grand{border-top:1px solid var(--color-border-subtle);margin-top:8px;color:var(--color-text-primary)!important;padding-top:12px!important;font-size:16px!important}.public-signature-totals-grand strong{font-size:18px;font-weight:600}.public-signature-cta-bar{background:var(--color-bg-surface);border-top:1px solid var(--color-border-subtle);padding:12px 16px calc(12px + env(safe-area-inset-bottom));box-shadow:0 -4px 16px var(--color-shadow-sm);z-index:10;position:fixed;bottom:0;left:0;right:0}.public-signature-sign-btn{background:var(--color-brand-solid);width:100%;max-width:480px;color:var(--color-brand-on-solid);border:1px solid var(--color-brand-border);cursor:pointer;border-radius:8px;margin:0 auto;padding:14px 24px;font-size:15px;font-weight:600;transition:background .12s,border-color .12s;display:block}.public-signature-sign-btn:hover{background:var(--color-brand-solid-hover);border-color:var(--color-brand-solid-hover)}.public-signature-sign-btn:active{background:var(--color-brand-solid-active);border-color:var(--color-brand-solid-active)}.public-signature-sign-btn:focus-visible{outline:2px solid var(--color-brand-focus-ring);outline-offset:2px}.public-signature-modal-backdrop{background:var(--color-overlay);z-index:100;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}@media (width>=640px){.public-signature-modal-backdrop{align-items:center;padding:16px}}.public-signature-modal{background:var(--color-bg-surface);border:1px solid var(--color-border-subtle);width:100%;max-width:560px;max-height:92vh;box-shadow:0 -8px 32px var(--color-shadow-lg);border-bottom:none;border-radius:12px 12px 0 0;padding:24px;overflow-y:auto}@media (width>=640px){.public-signature-modal{border-bottom:1px solid var(--color-border-subtle);box-shadow:0 12px 32px var(--color-shadow-lg);border-radius:12px}}.public-signature-modal h2{color:var(--color-text-primary);margin:0 0 20px;font-size:18px;font-weight:600}.public-signature-modal-field{margin-bottom:16px;display:block}.public-signature-modal-field>span{color:var(--color-text-secondary);margin-bottom:6px;font-size:12px;font-weight:500;display:block}.public-signature-modal-field input[type=text],.public-signature-modal-field input[type=tel],.public-signature-modal-field input[type=email]{border:1px solid var(--color-border-default);background:var(--color-bg-surface);width:100%;color:var(--color-text-primary);box-sizing:border-box;border-radius:6px;padding:10px 12px;font-family:inherit;font-size:16px;transition:border-color .12s,box-shadow .12s}.public-signature-modal-field input:focus{border-color:var(--color-accent-solid);box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}.public-signature-modal-clear{border:1px solid var(--color-border-subtle);color:var(--color-text-secondary);cursor:pointer;background:0 0;border-radius:6px;margin-top:8px;padding:6px 10px;font-size:12px}.public-signature-modal-clear:hover{background:var(--color-bg-subtle);color:var(--color-text-primary)}.public-signature-modal-consent{color:var(--color-text-body);background:var(--color-bg-subtle);border:1px solid var(--color-border-subtle);cursor:pointer;border-radius:6px;align-items:flex-start;gap:10px;margin:16px 0;padding:12px;font-size:12px;line-height:1.55;display:flex}.public-signature-modal-consent input[type=checkbox]{accent-color:var(--color-accent-solid);flex-shrink:0;margin-top:2px}.public-signature-modal-error{color:var(--color-danger-text);background:var(--color-danger-bg);border:1px solid var(--color-danger-border);border-radius:6px;margin-bottom:12px;padding:10px 12px;font-size:12px}.public-signature-modal-actions{justify-content:flex-end;gap:8px;display:flex}.public-signature-modal-actions .btn{border:1px solid var(--color-border-default);background:var(--color-bg-surface);color:var(--color-text-primary);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:background .12s,border-color .12s;display:inline-flex}.public-signature-modal-actions .btn:hover{background:var(--color-bg-subtle);border-color:var(--color-border-strong)}.public-signature-modal-actions .btn.subtle{color:var(--color-text-secondary);background:0 0;border-color:#0000}.public-signature-modal-actions .btn.subtle:hover{background:var(--color-bg-subtle);color:var(--color-text-primary)}.public-signature-modal-actions .btn.primary{background:var(--color-brand-solid);color:var(--color-brand-on-solid);border-color:var(--color-brand-border)}.public-signature-modal-actions .btn.primary:hover{background:var(--color-brand-solid-hover);border-color:var(--color-brand-solid-hover)}.public-signature-modal-actions .btn.primary:active{background:var(--color-brand-solid-active);border-color:var(--color-brand-solid-active)}.public-signature-modal-actions .btn:disabled{opacity:.5;cursor:not-allowed}.public-signature-modal-actions .btn:focus-visible{outline:2px solid var(--color-accent-focus-ring);outline-offset:2px}.public-signature-success-cta{background:var(--color-brand-solid);color:var(--color-brand-on-solid);border:1px solid var(--color-brand-border);border-radius:8px;margin-top:16px;padding:12px 24px;font-size:14px;font-weight:600;text-decoration:none;transition:background .12s,border-color .12s;display:inline-block}.public-signature-success-cta:hover{background:var(--color-brand-solid-hover);border-color:var(--color-brand-solid-hover)}.public-signature-success-error{color:var(--color-danger-text);margin:8px 0;font-size:13px}.public-signature-otp-intro{color:var(--color-text-secondary);margin:0 0 16px;font-size:13px;line-height:1.5}.public-signature-otp-actions-stack{flex-direction:column;gap:10px}.public-signature-otp-send-btn{justify-content:center;width:100%}.public-signature-otp-code-input{letter-spacing:.4em;text-align:center;font-variant-numeric:tabular-nums;font-size:22px!important}.public-signature-otp-attempts{color:var(--color-text-tertiary);text-align:center;margin:8px 0 0;font-size:11px}.public-preview-backdrop{background:var(--color-overlay);z-index:200;justify-content:center;align-items:center;padding:24px 0;display:flex;position:fixed;inset:0;overflow-y:auto}.public-preview-panel{background:var(--color-bg-page);box-sizing:border-box;flex-direction:column;gap:12px;width:100%;max-width:900px;padding:0 16px 24px;display:flex}.public-preview-toolbar{background:var(--color-bg-page);z-index:1;justify-content:flex-end;gap:8px;padding:12px 0;display:flex;position:sticky;top:0}.public-preview-toolbar .btn{border:1px solid var(--color-border-default);background:var(--color-bg-surface);color:var(--color-text-primary);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:background .12s,border-color .12s;display:inline-flex}.public-preview-toolbar .btn:hover{background:var(--color-bg-subtle);border-color:var(--color-border-strong)}.public-preview-toolbar .btn.subtle{color:var(--color-text-secondary);background:0 0;border-color:#0000}.public-preview-toolbar .btn.subtle:hover{background:var(--color-bg-subtle);color:var(--color-text-primary)}.public-preview-toolbar .btn.primary{background:var(--color-brand-solid);color:var(--color-brand-on-solid);border-color:var(--color-brand-border)}.public-preview-toolbar .btn.primary:hover{background:var(--color-brand-solid-hover);border-color:var(--color-brand-solid-hover)}.public-preview-toolbar .btn:disabled{opacity:.5;cursor:not-allowed}.public-preview-a4{color:#14140f;box-sizing:border-box;width:210mm;min-height:297mm;box-shadow:0 4px 24px var(--color-shadow-md);background:#fff;margin:0 auto;padding:18mm 16mm;font-family:Geist,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:10pt;line-height:1.45}@media (width<=760px){.public-preview-a4{width:100%;padding:16px}}.public-preview-head{border-bottom:1px solid #ededeb;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:16pt;padding-bottom:12pt;display:flex}.public-preview-eyebrow{text-transform:uppercase;letter-spacing:.08em;color:#74736c;font-size:9pt;font-weight:500}.public-preview-title{color:#14140f;margin:4pt 0 0;font-size:18pt;font-weight:700}.public-preview-customer{color:#52514c;margin-top:6pt;font-size:10pt}.public-preview-emitter{text-align:right;color:#52514c;flex-direction:column;align-items:flex-end;font-size:9pt;line-height:1.55;display:flex}.public-preview-logo{object-fit:contain;max-width:200px;max-height:56px;margin-bottom:6pt;display:block}.public-preview-emitter-name{color:#14140f;margin-bottom:2pt;font-size:10pt;font-weight:600}.public-preview-meta{grid-template-columns:repeat(4,1fr);gap:8pt 16pt;margin:0 0 14pt;font-size:9pt;display:grid}.public-preview-meta>div{flex-direction:column;display:flex}.public-preview-meta dt{color:#74736c;text-transform:uppercase;letter-spacing:.05em;margin:0 0 2pt;font-size:8pt}.public-preview-meta dd{color:#14140f;margin:0;font-weight:600}.public-preview-intro,.public-preview-conclusion{white-space:pre-wrap;color:#383834;margin:0 0 14pt;font-size:10pt;line-height:1.55}.public-preview-conclusion{margin-top:18pt}.public-preview-table{border-collapse:collapse;table-layout:fixed;width:100%;margin:0 0 14pt;font-size:9pt}.public-preview-table th,.public-preview-table td{text-align:left;vertical-align:top;border-bottom:1px solid #ededeb;padding:6pt 4pt}.public-preview-table thead th{text-transform:uppercase;letter-spacing:.05em;color:#74736c;border-bottom:2px solid #c5c4bb;font-size:8pt;font-weight:600}.public-preview-table .col-num{color:#74736c;width:8%}.public-preview-table .col-qty{text-align:right;font-variant-numeric:tabular-nums;width:7%}.public-preview-table .col-unit{width:6%}.public-preview-table .col-pu{text-align:right;font-variant-numeric:tabular-nums;width:12%}.public-preview-table .col-vat{text-align:right;font-variant-numeric:tabular-nums;color:#52514c;width:8%}.public-preview-table .col-total{text-align:right;font-variant-numeric:tabular-nums;width:14%;font-weight:600}.public-preview-table .col-desc{width:auto}.public-preview-name{color:#14140f;font-weight:500}.public-preview-desc{color:#52514c;white-space:pre-wrap;margin-top:2pt;font-size:8.5pt}.public-preview-row.is-section{background:#f7f7f5}.public-preview-row.is-section .public-preview-name{text-transform:uppercase;letter-spacing:.04em;font-size:9pt;font-weight:700}.public-preview-row.is-composite .public-preview-name{font-weight:600}.public-preview-totals{border-top:2px solid #c5c4bb;width:50%;margin-left:auto;padding-top:8pt}.public-preview-totals-row{color:#383834;justify-content:space-between;padding:3pt 0;font-size:10pt;display:flex}.public-preview-totals-grand{color:#14140f;border-top:1px solid #ededeb;margin-top:4pt;padding-top:8pt;font-size:12pt}.public-preview-totals-grand strong{font-size:14pt}.public-verify{background:var(--color-bg-page);color:#211f1a;-webkit-font-smoothing:antialiased;justify-content:center;align-items:flex-start;min-height:100vh;padding:32px 16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex}.public-verify-card{text-align:center;background:#fefdfb;border-top:4px solid #0000;border-radius:16px;width:100%;max-width:640px;padding:32px;box-shadow:0 8px 24px #0000000f}.public-verify-card-ok{border-top-color:#4e8244}.public-verify-card-fail{border-top-color:#b7432c}.public-verify-icon{color:#534e44;background:#f2f0ea;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 12px;font-size:36px;font-weight:700;display:flex}.public-verify-card-ok .public-verify-icon{color:#31562c;background:#dbe8d6}.public-verify-card-fail .public-verify-icon{color:#9c3522;background:#f4d9d2}.public-verify h1{margin:0 0 24px;font-size:22px}.public-verify-meta{text-align:left;background:#faf9f5;border-radius:12px;grid-template-columns:1fr;gap:6px;margin:0 0 24px;padding:16px;font-size:13px;display:grid}.public-verify-meta>div{gap:10px;display:flex}.public-verify-meta dt{color:#8c8678;flex:0 0 130px;font-weight:500}.public-verify-meta dd{word-break:break-all;flex:1;margin:0}.public-verify-meta code{background:#e7e4db;border-radius:3px;padding:1px 5px;font-family:ui-monospace,Menlo,monospace;font-size:12px}.public-verify-checks{text-align:left;flex-direction:column;gap:8px;margin:0 0 24px;display:flex}.public-verify-check{background:#faf9f5;border-radius:8px;grid-template-columns:24px 1fr;align-items:baseline;gap:8px;padding:10px 12px;font-size:14px;display:grid}.public-verify-check-pass{background:#eff5ed}.public-verify-check-fail{color:#9c3522;background:#faf0ed}.public-verify-check-skipped{color:#8c8678;background:#f2f0ea}.public-verify-check-icon{text-align:center;font-size:16px;font-weight:700}.public-verify-check-label{font-weight:500}.public-verify-check-detail{color:#6d685c;word-break:break-all;grid-column:2;font-family:ui-monospace,Menlo,monospace;font-size:12px}.public-verify-explanation{color:#6d685c;margin:16px 0 24px;font-size:13px;line-height:1.5}.public-verify-actions .btn{color:#fff;cursor:pointer;background:#211f1a;border:none;border-radius:8px;padding:12px 24px;font-size:14px;font-weight:600;text-decoration:none;display:inline-block}.public-subco-page{max-width:720px;font-family:var(--sans);color:var(--fg);margin:40px auto 80px;padding:0 20px}.public-subco-head{flex-direction:column;gap:8px;margin-bottom:24px;display:flex}.public-subco-pill{text-transform:uppercase;letter-spacing:.06em;color:var(--accent-fg);background:var(--accent-soft);border-radius:999px;align-self:flex-start;padding:4px 10px;font-size:11px;font-weight:600}.public-subco-head h1{letter-spacing:-.01em;color:var(--fg);margin:0;font-size:22px}.public-subco-sub{color:var(--fg-muted);margin:0;line-height:1.5}.public-subco-list{flex-direction:column;gap:12px;display:flex}.public-subco-row{background:var(--bg);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:12px;padding:16px 18px;display:flex}.public-subco-row>header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.public-subco-row h3{margin:0 0 2px;font-size:14px;font-weight:600}.public-subco-row p{color:var(--fg-muted);margin:0;font-size:12px;line-height:1.5}.public-subco-validity{color:var(--fg-subtle);margin-top:4px;font-size:11px;display:inline-block}.public-subco-current{color:var(--fg-muted);background:var(--bg-subtle);border-radius:8px;padding:8px 12px;font-size:13px}.public-subco-actions{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.public-subco-date{color:var(--fg-muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.public-subco-date input{border:1px solid var(--border-strong);height:36px;font:inherit;color:var(--fg);background:var(--bg);border-radius:8px;padding:0 10px;font-size:13px}.public-subco-chip{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:600}.public-subco-chip-success{background:var(--color-success-bg);color:var(--color-success-text)}.public-subco-chip-progress{background:var(--color-warning-bg);color:var(--color-warning-text)}.public-subco-chip-danger{background:var(--color-danger-bg);color:var(--color-danger-text)}.public-subco-chip-neutral{background:var(--bg-subtle);color:var(--fg-muted)}.public-subco-error{background:var(--color-danger-bg);color:var(--color-danger-text);border-radius:6px;padding:8px 12px;font-size:13px}.public-subco-foot{border-top:1px solid var(--border);color:var(--fg-muted);margin-top:32px;padding-top:16px;font-size:12px;line-height:1.5}.public-consult-page{background:var(--bg-subtle);flex-direction:column;min-height:100vh;display:flex}.public-consult-head{background:var(--bg);border-bottom:1px solid var(--border);padding:32px 0}.public-consult-head-inner{max-width:800px;margin:0 auto;padding:0 24px}.public-consult-head h1{letter-spacing:-.01em;margin:0 0 6px;font-size:24px;font-weight:600}.public-consult-head p{color:var(--fg-muted);margin:0;font-size:14px}.public-consult-main{flex-direction:column;flex:1;gap:32px;width:100%;max-width:800px;margin:0 auto;padding:32px 24px 64px;display:flex}.public-consult-section h2{text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted);margin:0 0 12px;font-size:14px;font-weight:600}.public-consult-tree{background:var(--bg);border:1px solid var(--border);border-radius:8px;margin:12px 0 0;padding:12px 16px;list-style:none}.public-consult-tree li{border-bottom:1px solid var(--border);padding:6px 0;font-size:13px}.public-consult-tree li:last-child{border-bottom:none}.public-consult-tree .muted{color:var(--fg-muted);font-size:12px}.public-consult-tree .qty{color:var(--fg-muted);font-variant-numeric:tabular-nums}.public-consult-tree .desc{color:var(--fg-muted);margin:4px 0 0;font-size:12px;font-style:italic}.public-consult-dropzone{border:2px dashed var(--border);text-align:center;color:var(--fg-muted);background:var(--bg);cursor:pointer;border-radius:10px;margin-top:12px;padding:36px;transition:border-color .12s,background .12s}.public-consult-dropzone:hover,.public-consult-dropzone.is-drag{border-color:var(--accent);background:var(--bg-hover);color:var(--fg)}.public-consult-error-msg{color:var(--color-danger-solid);margin-top:8px;font-size:13px}.public-consult-success-msg{color:var(--color-success-solid);margin-top:8px;font-size:13px}.public-consult-doc-list{background:var(--bg);border:1px solid var(--border);border-radius:8px;margin:8px 0 0;padding:0;list-style:none}.public-consult-doc-list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;display:flex}.public-consult-doc-list li:last-child{border-bottom:none}.public-consult-doc-list .muted{color:var(--fg-muted);font-size:12px}.public-consult-foot{text-align:center;color:var(--fg-muted);border-top:1px solid var(--border);background:var(--bg);padding:24px;font-size:12px}.public-consult-error{text-align:center;background:var(--bg);border:1px solid var(--border);border-radius:10px;max-width:480px;margin:80px auto;padding:32px}.public-consult-error h1{margin:0 0 8px;font-size:18px}.public-consult-error p{color:var(--fg-muted);margin:0}.doc-emitter{align-items:flex-start;gap:16px;margin-bottom:14px;padding-bottom:14px;display:flex}.doc-logo{object-fit:contain;flex-shrink:0;max-width:200px;max-height:56px}.doc-emitter-info{flex-direction:column;gap:2px;display:flex}.doc-emitter-name{color:#1a1a1a;font-size:13px;font-weight:600}.doc-emitter-line{color:#534e44;font-size:10px}.doc-parties{align-items:flex-start;gap:24px;margin-bottom:18px;display:flex}.doc-party{text-align:left;max-width:280px}.doc-party.is-right{text-align:right;margin-left:auto}.doc-party-label{color:#8c8678;text-transform:uppercase;letter-spacing:.12em;margin-bottom:4px;font-size:10px;font-weight:600}.doc-party-name{color:#1a1a1a;font-size:13px;font-weight:600}.doc-party-line{color:#534e44;font-size:10px}.doc-head{border-bottom:1px solid #dbd7cc;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:18px;padding-bottom:14px;display:flex}.doc-eyebrow{color:#8c8678;text-transform:uppercase;letter-spacing:.12em;margin-bottom:4px;font-size:10px;font-weight:600}.doc-title{color:#1a1a1a;letter-spacing:-.01em;margin:0;font-size:22px;font-weight:600}.doc-meta{text-align:right;gap:4px;min-width:180px;display:grid}.doc-meta>div{justify-content:space-between;gap:12px;font-size:11px;display:flex}.doc-meta span{color:#8c8678}.doc-meta strong{color:#1a1a1a;font-weight:500}.doc-intro{color:#3e3a32;white-space:pre-wrap;margin:0 0 18px;font-size:11px}.doc-conclusion{color:#3e3a32;white-space:pre-wrap;margin:18px 0 0;font-size:11px}.doc-table{border-collapse:collapse;width:100%;margin:0 0 18px;font-size:11px}.doc-table thead th{text-align:left;color:#534e44;text-transform:uppercase;letter-spacing:.04em;background:#faf9f5;border-bottom:1px solid #c9c5b9;padding:6px;font-size:9.5px;font-weight:500}.doc-table .col-num{text-align:left;color:#8c8678;width:38px;font-size:10px}.doc-table .col-qty{text-align:right;width:50px}.doc-table .col-unit{text-align:center;color:#6d685c;width:36px}.doc-table .col-pu{text-align:right;width:78px}.doc-table .col-vat{text-align:right;color:#6d685c;width:48px}.doc-table .col-total{text-align:right;width:88px}.doc-table tbody td{vertical-align:top;color:#1a1a1a;border-bottom:1px solid #e7e4db;padding:6px}.doc-table .col-qty,.doc-table .col-pu,.doc-table .col-vat,.doc-table .col-total{font-variant-numeric:tabular-nums}.doc-name{font-weight:400}.doc-desc{color:#6d685c;margin-top:2px;font-size:10px}.doc-table .col-desc{padding-left:6px}.doc-desc-inner{align-items:stretch;min-height:16px;display:flex}.doc-desc-text{flex:1;min-width:0}.doc-indent{flex-shrink:0;align-self:stretch;width:14px;position:relative}.doc-indent.tree:before{content:"";background:#dbd7cc;width:1px;position:absolute;top:-6px;bottom:-6px;left:5px}.doc-indent.tree.last:before{background:0 0;border-bottom:1px solid #dbd7cc;border-left:1px solid #dbd7cc;border-bottom-left-radius:6px;width:7px;bottom:calc(50% - 1px)}.doc-indent.tree.connect:after{content:"";background:#dbd7cc;width:7px;height:1px;position:absolute;top:50%;left:5px}.doc-row.is-section td{background:#faf9f5;border-bottom-color:#c9c5b9;font-weight:600}.doc-row.is-section .doc-name{font-weight:600}.doc-row.depth-0.is-section td{background:#f2f0ea}.doc-row.is-composite .doc-name{font-weight:500}.doc-lotrecap{margin:0 0 18px;font-size:11px}.doc-lotrecap-title{color:#534e44;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #c9c5b9;margin-bottom:6px;padding-bottom:6px;font-size:10px;font-weight:600}.doc-lotrecap-row{justify-content:space-between;gap:16px;padding:4px 0;display:flex}.doc-lotrecap-row span{color:#1a1a1a}.doc-lotrecap-row strong{color:#1a1a1a;font-variant-numeric:tabular-nums;font-weight:600}.doc-lotrecap-sub{padding-left:16px}.doc-lotrecap-sub span,.doc-lotrecap-sub strong{color:#6d685c;font-weight:400}.doc-lotrecap-total{border-top:1px solid #c9c5b9;margin-top:4px;padding-top:8px}.doc-lotrecap-total span{font-weight:600}.doc-summary{justify-content:space-between;align-items:flex-start;gap:32px;margin:0 0 18px;display:flex}.doc-terms{color:#3e3a32;white-space:pre-wrap;flex:1;min-width:0;font-size:11px;line-height:1.5}.doc-totals{flex:0 0 260px;gap:4px;width:260px;font-size:11px;display:grid}.doc-totals-row{justify-content:space-between;padding:4px 0;display:flex}.doc-totals-row span{color:#534e44}.doc-totals-row strong{color:#1a1a1a;font-variant-numeric:tabular-nums;font-weight:500}.doc-totals-grand{border-top:1px solid #c9c5b9;margin-top:4px;padding-top:8px;font-size:13px}.doc-totals-grand strong{font-size:14px;font-weight:600}.doc-footer{color:#8c8678;white-space:pre-wrap;text-align:center;border-top:1px solid #c9c5b9;margin:28px 0 0;padding-top:12px;font-size:10px;line-height:1.5}.doc-text{margin:0 0 18px}.doc-text-heading{color:#1a1a1a;margin:0 0 4px;font-size:13px;font-weight:600}.doc-text-body{color:#3e3a32;white-space:pre-wrap;font-size:11px;line-height:1.5}.doc-image{margin:0 0 18px}.doc-image img{max-width:100%;height:auto;display:inline-block}:root{--bg:var(--color-bg-surface);--bg-subtle:var(--color-bg-page);--bg-hover:var(--color-bg-subtle);--bg-selected:var(--color-accent-bg);--bg-drop:var(--color-accent-bg-hover);--border:var(--color-border-subtle);--border-strong:var(--color-border-default);--tree-line:var(--color-border-subtle);--tree-line-active:var(--color-accent-solid);--fg:var(--color-text-primary);--fg-muted:var(--color-text-secondary);--fg-subtle:var(--color-text-tertiary);--accent:var(--color-accent-solid);--accent-soft:var(--color-accent-bg);--accent-fg:var(--color-accent-text);--row-h-comfort:40px;--row-h-compact:30px;--indent:22px;--radius:6px;--shadow-sm:0 1px 2px var(--color-shadow-sm);--shadow:0 4px 12px var(--color-shadow-md), 0 1px 3px var(--color-shadow-sm);--shadow-lg:0 12px 32px var(--color-shadow-lg), 0 2px 6px var(--color-shadow-sm);--internal-tint:var(--color-shadow-sm);--mono:"Geist", system-ui, -apple-system, sans-serif;--sans:"Geist", system-ui, -apple-system, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{font-family:var(--sans);color:var(--fg);background:var(--bg-subtle);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11", "ss01", "ss03";overscroll-behavior:none;scroll-behavior:smooth;-webkit-user-select:none;user-select:none;margin:0;padding:0;font-size:14px}body,#root{flex-direction:column;min-height:100vh;display:flex}button{font-family:inherit;font-size:inherit;cursor:pointer;color:inherit;background:0 0;border:none;padding:0}input{font-family:inherit}.app-header{background:var(--bg);border-bottom:1px solid var(--border);z-index:30;align-items:center;gap:16px;padding:14px 28px;display:flex;position:sticky;top:0}.app-header .crumb{color:var(--fg-muted);align-items:center;gap:8px;font-size:13px;display:flex}.app-header .crumb strong{color:var(--fg);font-weight:600}.app-header .crumb .sep{color:var(--border-strong)}.app-header .spacer{flex:1}.app-header-home-icon{color:var(--fg-muted);flex-shrink:0}.app-header .ref{font-family:var(--mono);color:var(--fg-muted);background:var(--bg-subtle);border:1px solid var(--border);border-radius:4px;padding:4px 8px;font-size:12px}.app-header .status-badge,.toolbar .status-badge,.invoice-workspace-heading .status-badge{text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-radius:10px;align-items:center;padding:3px 8px;font-size:11px;font-weight:500;display:inline-flex}.app-header .status-badge.draft,.toolbar .status-badge.draft,.invoice-workspace-heading .status-badge.draft{background:var(--color-warning-bg);color:var(--color-warning-text)}.app-header .status-badge.sent,.toolbar .status-badge.sent,.invoice-workspace-heading .status-badge.sent{background:var(--color-info-bg);color:var(--color-info-text)}.app-header .status-badge.accepted,.toolbar .status-badge.accepted,.invoice-workspace-heading .status-badge.accepted{background:var(--color-success-bg);color:var(--color-success-text)}.invoice-workspace-heading .status-badge.classification-main_contract{background:var(--color-info-bg);color:var(--color-info-text)}.invoice-workspace-heading .status-badge.classification-amendment{background:var(--color-warning-bg);color:var(--color-warning-text)}.classif-picker{display:inline-flex;position:relative}.invoice-workspace-heading .status-badge.classif-picker-btn{cursor:pointer;border:0;gap:4px;font-family:inherit}.classif-picker-btn:hover{filter:brightness(.96)}.classif-picker .classif-popover{z-index:50;min-width:240px;position:absolute;top:calc(100% + 4px);left:0}.classif-picker .classif-popover .popover-item.is-selected{color:var(--accent-fg);font-weight:600}.classification-control{align-items:center;gap:6px;display:inline-flex}.classification-select{border:1px solid var(--border);background:var(--bg);color:var(--fg);cursor:pointer;border-radius:8px;max-width:260px;padding:3px 6px;font-size:11px;font-weight:500}.classification-select:hover{border-color:var(--fg-muted)}.classification-parent-static{color:var(--fg-muted);white-space:nowrap;font-size:11px}.classification-parent-static.muted{opacity:.85;font-style:italic}.toolbar{background:var(--bg);border-bottom:1px solid var(--border);z-index:10;align-items:center;gap:18px;padding:10px 28px;display:flex;position:sticky;top:0}.tool-group{align-items:center;gap:8px;display:flex}.tool-group .label{color:var(--fg-muted);white-space:nowrap;font-size:12px;font-weight:500}.tool-divider{background:var(--border);width:1px;height:18px}.stepper{border:1px solid var(--border);background:var(--bg);border-radius:7px;align-items:center;display:inline-flex;overflow:hidden}.stepper button{width:28px;height:26px;color:var(--fg-muted);place-items:center;transition:background .12s;display:grid}.stepper button:hover{background:var(--bg-hover);color:var(--fg)}.stepper button:disabled{opacity:.35;cursor:not-allowed}.stepper .value{font-family:var(--mono);text-align:center;border-left:1px solid var(--border);border-right:1px solid var(--border);font-variant-numeric:tabular-nums;min-width:36px;color:var(--fg);padding:0 10px;font-size:12px;font-weight:500}.btn{border:1px solid var(--color-accent-border);background:var(--bg);color:var(--color-accent-text);border-radius:6px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:500;transition:all .12s;display:inline-flex}.btn:hover{background:var(--color-accent-bg);border-color:var(--color-accent-border-hover);color:var(--color-accent-text-hover)}.btn.subtle{color:var(--color-accent-text);background:0 0;border:none}.btn.subtle:hover{background:var(--color-accent-bg);color:var(--color-accent-text-hover)}.btn.icon-only{border-color:var(--border);width:28px;height:28px;color:var(--fg-muted);justify-content:center;padding:0}.btn.icon-only:hover{background:var(--bg-hover);border-color:var(--border-strong);color:var(--fg)}.btn.subtle.icon-only{border:none}.back-btn{margin-right:4px}.kbd{font-family:var(--mono);border:1px solid var(--border);background:var(--bg-subtle);color:var(--fg-muted);border-bottom-width:2px;border-radius:3px;padding:1px 5px;font-size:10px;line-height:1.4}.app-main{background:var(--bg);flex-direction:column;flex:1;width:100%;padding:24px 40px 80px;display:flex}.devis-card{background:var(--bg);border-radius:10px;overflow:visible}.devis-add-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.devis-line-count{color:var(--fg-muted);align-items:center;margin-left:auto;font-size:12px;display:flex}.devis-thead{border-bottom:1px solid var(--border);background:var(--bg-subtle);text-transform:uppercase;letter-spacing:.04em;height:36px;color:var(--fg-muted);z-index:5;border-top-left-radius:10px;border-top-right-radius:10px;grid-template-columns:0 32px minmax(220px,1fr) 96px 90px 110px 96px 90px 70px 100px;align-items:center;column-gap:0;padding:0 8px 0 4px;font-size:11px;font-weight:500;display:grid}.devis-body>.devis-row:last-child{border-bottom-right-radius:10px;border-bottom-left-radius:10px}.devis-thead>div{white-space:nowrap;text-align:center;text-overflow:ellipsis;text-indent:.04em;overflow:hidden}.devis-thead>div:nth-child(3){text-align:left;text-indent:0}.devis-thead,.devis-row{position:relative}.devis-thead:before,.devis-row:before{content:"";background-color:var(--internal-tint);pointer-events:none;grid-area:1/5/auto/8;align-self:stretch}.devis-thead>div,.devis-row>*{padding-left:6px;padding-right:6px}.devis-thead>div:first-child,.devis-row>:first-child{grid-area:1/1}.devis-thead>div:nth-child(2),.devis-row>:nth-child(2){grid-area:1/2}.devis-thead>div:nth-child(3),.devis-row>:nth-child(3){grid-area:1/3}.devis-thead>div:nth-child(4),.devis-row>:nth-child(4){grid-area:1/4}.devis-thead>div:nth-child(5),.devis-row>:nth-child(5){grid-area:1/5}.devis-thead>div:nth-child(6),.devis-row>:nth-child(6){grid-area:1/6}.devis-thead>div:nth-child(7),.devis-row>:nth-child(7){grid-area:1/7}.devis-thead>div:nth-child(8),.devis-row>:nth-child(8){grid-area:1/8}.devis-thead>div:nth-child(9),.devis-row>:nth-child(9){grid-area:1/9}.devis-thead>div:nth-child(10),.devis-row>:nth-child(10){grid-area:1/10}.devis-body{padding:0}.devis-row{min-height:var(--row-h);border-radius:0;grid-template-columns:0 32px minmax(220px,1fr) 96px 90px 110px 96px 90px 70px 100px;align-items:center;column-gap:0;padding:0 8px 0 4px;transition:background .1s;display:grid;position:relative}.devis-row.selected{background:var(--bg-selected)}.devis-row.selected:hover{background:var(--color-accent-bg-hover)}.devis-row.dragging,.devis-row.dragging-descendant{opacity:.4}.devis-row.drop-before{box-shadow:inset 0 2px 0 0 var(--accent)}.devis-row.drop-after{box-shadow:inset 0 -2px 0 0 var(--accent)}.devis-row.drop-inside{background:var(--bg-drop);box-shadow:inset 0 0 0 1px var(--accent)}.devis-row.drop-invalid{box-shadow:inset 0 0 0 2px var(--color-danger-solid);cursor:no-drop}@keyframes quote-row-just-moved{0%{background:var(--color-accent-bg-hover)}to{background:0 0}}.devis-row.just-moved{animation:.7s ease-out quote-row-just-moved}.drag-chip{background:var(--color-bg-surface);border:1px solid var(--color-border-default);box-shadow:var(--shadow);font-family:var(--sans);color:var(--color-text-primary);white-space:nowrap;pointer-events:none;border-radius:8px;align-items:center;gap:8px;padding:6px 10px;font-size:13px;font-weight:500;display:inline-flex}.drag-chip-count{background:var(--color-accent-bg);color:var(--color-accent-text);font-variant-numeric:tabular-nums;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:500}.row-handle{width:24px;height:100%;color:var(--fg-subtle);opacity:0;cursor:grab;-webkit-user-select:none;user-select:none;place-items:center;transition:opacity .12s;display:grid;position:absolute;top:0;left:-36px}.devis-row:hover .row-handle{opacity:.7}.row-handle:hover{color:var(--fg);opacity:1!important}.row-handle:active{cursor:grabbing}.devis-card.is-locked .row-handle{cursor:default}.devis-card.is-locked .devis-thead,.devis-card.is-locked .devis-row{grid-template-columns:0 0 minmax(220px,1fr) 96px 90px 110px 96px 90px 70px 100px}.devis-card.is-locked .row-handle,.devis-card.is-locked .row-check,.devis-card.is-locked .devis-thead>div:first-child,.devis-card.is-locked .devis-thead>div:nth-child(2){padding:0}.row-check{place-items:center;height:100%;display:grid}.checkbox{border:1.5px solid var(--border-strong);background:var(--bg);cursor:pointer;color:#fff;opacity:0;border-radius:4px;place-items:center;width:16px;height:16px;transition:all .12s;display:grid}.devis-row:hover .checkbox,.checkbox.checked,.checkbox.indeterminate,.checkbox:focus-visible{opacity:1}.checkbox:hover{border-color:var(--accent)}.checkbox.checked,.checkbox.indeterminate{background:var(--accent);border-color:var(--accent)}.row-designation{align-items:center;min-width:0;height:100%;padding-right:12px;display:flex;position:relative}.indent{flex-shrink:0;align-self:stretch;display:flex}.indent-cell{width:var(--indent);flex-shrink:0;height:100%;position:relative}.indent-cell.tree:before{content:"";background:var(--tree-line);width:1px;position:absolute;top:0;bottom:0;left:10px}.indent-cell.tree.last:before{border-left:1px solid var(--tree-line);border-bottom:1px solid var(--tree-line);background:0 0;border-bottom-left-radius:8px;width:8px;bottom:50%}.indent-cell.tree.last:after{content:none}.indent-cell.tree.connect:after{content:"";background:var(--tree-line);width:8px;height:1px;position:absolute;top:50%;left:10px}.devis-row.selected .indent-cell.tree:before,.devis-row.selected .indent-cell.tree:after{background:var(--tree-line-active);opacity:.5}.devis-row.selected .indent-cell.tree.last:before{border-color:var(--tree-line-active);background:0 0}.chevron{width:18px;height:18px;color:var(--fg-muted);border-radius:4px;flex-shrink:0;place-items:center;margin-right:4px;transition:all .12s;display:grid}.chevron:hover{background:var(--bg-hover);color:var(--fg)}.chevron svg{transition:transform .16s cubic-bezier(.4,0,.2,1)}.chevron.expanded svg{transform:rotate(90deg)}.chevron.leaf{visibility:hidden}.row-text{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.row-ref{font-family:var(--mono);color:var(--fg-muted);background:var(--color-bg-page);letter-spacing:-.01em;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:11px}.row-ref.placeholder{letter-spacing:.04em;font-weight:500}.row-name{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0;color:var(--fg);flex:1;padding-top:6px;padding-bottom:6px;font-size:13px}.row-input-multiline{resize:none;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.35;overflow:hidden}.row-children-count{color:var(--fg-subtle);font-variant-numeric:tabular-nums;font-size:11px;font-family:var(--mono);flex-shrink:0}.cell-num{font-family:var(--mono);text-align:right;font-variant-numeric:tabular-nums;color:var(--fg);padding-right:6px;font-size:13px}.cell-num.muted{color:var(--fg-muted)}.cell-num .currency{color:var(--fg-subtle);margin-left:2px;font-size:13px}.cell-unit{color:var(--fg-muted);text-align:center;font-size:13px;font-family:var(--mono)}.cell-qty{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--fg);justify-content:flex-end;align-items:center;gap:2px;padding-right:6px;font-size:13px;display:flex}.cell-unit-btn{font-family:var(--mono);color:var(--fg-muted);cursor:pointer;text-align:center;background:0 0;border:1px solid #0000;border-radius:4px;min-width:32px;padding:2px 4px;font-size:13px;transition:border-color .12s,background .12s,color .12s}.cell-unit-btn:hover:not(:disabled){border-color:var(--border-strong);background:var(--bg-hover);color:var(--fg)}.cell-unit-btn:disabled{cursor:default;opacity:.6}.cell-vat{justify-content:flex-end;align-items:center;display:flex}.cell-vat-btn{font-family:var(--mono);color:var(--fg-muted);cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border:1px solid #0000;border-radius:4px;padding:2px 6px;font-size:12px;transition:border-color .12s,background .12s,color .12s}.cell-vat-btn:hover:not(:disabled){border-color:var(--border-strong);background:var(--bg-hover);color:var(--fg)}.cell-vat-btn:disabled{cursor:default;opacity:.6}.unit-popover{max-height:320px;overflow-y:auto}.unit-popover-item{align-items:baseline;gap:4px;display:flex!important}.unit-popover-symbol{font-family:var(--mono);color:var(--fg);min-width:36px;font-size:12px}.unit-popover-label{color:var(--fg-muted);font-size:12px}.unit-popover-item.is-selected{background:var(--accent-soft);color:var(--accent-fg)}.unit-popover-item.is-selected .unit-popover-symbol,.unit-popover-item.is-selected .unit-popover-label{color:var(--accent-fg);font-weight:500}.row-actions{opacity:0;place-items:center;transition:opacity .12s;display:grid}.devis-row:hover .row-actions{opacity:1}.row-action-btn{width:24px;height:24px;color:var(--fg-muted);border-radius:4px;place-items:center;display:grid}.row-action-btn:hover{background:var(--bg-hover);color:var(--fg)}.row-numbering{font-family:var(--mono);color:var(--fg-subtle);font-variant-numeric:tabular-nums;flex-shrink:0;min-width:18px;margin-right:4px;font-size:12px}.devis-foot{border-top:1px solid var(--border);background:var(--bg-subtle);grid-template-columns:1fr auto auto;align-items:baseline;gap:32px;padding:14px 16px 14px 84px;display:grid}.foot-label{color:var(--fg-muted);font-size:12px;font-weight:500}.foot-stats{color:var(--fg-muted);gap:24px;font-size:12px;display:flex}.foot-stats strong{font-family:var(--mono);color:var(--fg);font-variant-numeric:tabular-nums;font-weight:500}.foot-total{font-family:var(--mono);color:var(--fg);font-variant-numeric:tabular-nums;font-size:18px;font-weight:600}.foot-total .currency{color:var(--fg-muted);margin-left:4px;font-size:13px;font-weight:400}.selection-bar{background:var(--color-bg-inverse);color:var(--color-text-inverse);box-shadow:var(--shadow-lg);z-index:20;border-radius:10px;align-items:center;gap:14px;padding:10px 12px 10px 18px;font-size:13px;animation:.2s cubic-bezier(.4,0,.2,1) slideUp;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}.selection-bar .count{font-variant-numeric:tabular-nums;font-weight:600}.selection-bar button{color:var(--color-text-inverse);background:#ffffff1a;border-radius:6px;padding:5px 10px;font-size:12px;font-weight:500;transition:background .12s}.selection-bar button:hover{background:#ffffff2e}.selection-bar button.danger:hover{background:var(--color-danger-solid)}.selection-bar .divider{background:#ffffff26;width:1px;height:18px}.loading-container{min-height:200px;color:var(--fg-muted);justify-content:center;align-items:center;font-size:13px;display:flex}.empty-state{color:var(--fg-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:48px 24px;font-size:13px;display:flex}.empty-state strong{color:var(--fg);font-size:14px}.quote-picker{width:100%;max-width:640px;margin:0 auto;padding:48px 28px}.quote-picker h2{color:var(--fg);margin:0 0 4px;font-size:18px;font-weight:600}.quote-picker .sub{color:var(--fg-muted);margin:0 0 24px;font-size:13px}.login-screen{justify-content:center;align-items:center;min-height:100vh;padding:28px;display:flex}.login-box{text-align:left;flex-direction:column;width:360px;max-width:100%;display:flex}.login-logo{align-self:flex-start;width:auto;height:28px;margin-bottom:60px}.login-box h2{color:var(--fg);margin:0 0 4px;font-size:20px;font-weight:600}.login-box .sub{color:var(--fg-muted);margin:0 0 24px;font-size:13px}.login-form{flex-direction:column;gap:12px;display:flex}.login-form .login-input,.login-form .login-submit{width:100%}.login-submit{justify-content:center;padding:9px 20px}.login-mode-toggle{justify-content:center;font-size:13px}.login-error{color:var(--color-danger-solid);font-size:13px}.login-hint{color:var(--fg-muted);margin:0 0 4px;font-size:13px;line-height:1.5}.login-hint strong{color:var(--fg);font-weight:500}.login-code-input{text-align:center;font-family:var(--mono);letter-spacing:.4em;text-indent:.4em;font-size:22px}.quote-list{flex-direction:column;gap:8px;display:flex}.quote-item{background:var(--bg);border:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:center;gap:16px;padding:14px 16px;transition:all .12s;display:flex}.quote-item:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}.quote-item .q-title{color:var(--fg);flex:1;font-size:13px;font-weight:500}.quote-item .q-number{font-family:var(--mono);color:var(--fg-muted);background:var(--bg-subtle);border-radius:4px;padding:2px 6px;font-size:11px}.quote-item .q-status{text-transform:uppercase;letter-spacing:.03em;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:500}.quote-item .q-status.draft{background:var(--color-warning-bg);color:var(--color-warning-text)}.quote-item .q-status.sent{background:var(--color-info-bg);color:var(--color-info-text)}.quote-item .q-status.accepted{background:var(--color-success-bg);color:var(--color-success-text)}.login-input{border:1px solid var(--border);background:var(--bg);height:36px;color:var(--fg);font-size:13px;font-family:var(--sans);border-radius:6px;outline:none;padding:0 12px;transition:border-color .12s}.login-input:focus{border-color:var(--accent)}.btn.primary{background:var(--color-brand-solid);color:var(--color-brand-on-solid);border:1px solid var(--color-brand-solid);font-weight:500}.btn.primary:hover{background:var(--color-brand-solid-hover);border-color:var(--color-brand-solid-hover)}.btn.primary:active{background:var(--color-brand-solid-active);border-color:var(--color-brand-solid-active)}.btn.primary:disabled{opacity:.6;cursor:not-allowed}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:disabled:hover{background:var(--bg);border-color:var(--border)}.app-header .status-badge.locked{background:var(--color-warning-bg);color:var(--color-warning-text)}:where(.row-input){font-family:inherit;font-size:inherit;font-weight:inherit;color:inherit;width:100%;min-width:0;letter-spacing:inherit;background:0 0;border:0;border-radius:3px;outline:none;margin:0;padding:0}:where(.row-input):focus{background:var(--bg);box-shadow:inset 0 0 0 1.5px var(--accent);border-radius:4px}.row-input-num{text-align:right}.row-num-edit{justify-content:flex-end;align-items:baseline;display:inline-flex}.row-num-edit .row-input-num{flex:0 auto;width:56px;min-width:0;max-width:100%}.row-num-suffix{color:inherit;pointer-events:none;white-space:pre;flex-shrink:0}.devis-row .row-name{cursor:text}.devis-row.is-pending{opacity:.65}.devis-row.is-pending .row-name:after{content:" · sync…";color:var(--fg-subtle);font-size:11px;font-style:italic;font-weight:400}.popover-menu{z-index:30;background:var(--bg);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:8px;min-width:220px;padding:4px;animation:.12s popoverIn;position:fixed}@keyframes popoverIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.popover-item{text-align:left;width:100%;color:var(--fg);cursor:pointer;border-radius:6px;padding:6px;font-size:12px;transition:background .1s;display:block}.popover-item:hover{background:var(--bg-hover)}.popover-item.danger{color:var(--color-danger-text)}.popover-item.danger:hover{background:var(--color-danger-bg)}.popover-sep{background:var(--border);height:1px;margin:4px 0}.suggest-popover{max-height:280px;overflow-y:auto}.suggest-item{align-items:baseline;gap:8px;display:flex}.suggest-item.is-active{background:var(--bg-hover)}.suggest-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.suggest-code{color:var(--fg-subtle);font-variant-numeric:tabular-nums;flex:none;font-size:10px;font-weight:600}.suggest-meta{color:var(--fg-muted);font-variant-numeric:tabular-nums;flex:none;margin-left:auto}.popover-backdrop{z-index:29;position:fixed;inset:0}.popover-label{text-transform:uppercase;letter-spacing:.04em;color:var(--fg-subtle);padding:4px 6px 2px;font-size:10px;font-weight:600}.picker-backdrop{background:var(--color-overlay);z-index:40;place-items:center;animation:.12s fadeIn;display:grid;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.library-picker{background:var(--bg);border:1px solid var(--border);width:min(720px,92vw);max-height:min(640px,86vh);box-shadow:var(--shadow-lg);border-radius:12px;flex-direction:column;animation:.16s cubic-bezier(.4,0,.2,1) pickerIn;display:flex;overflow:hidden}@keyframes pickerIn{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:none}}.picker-header{border-bottom:1px solid var(--border);background:var(--bg-subtle);align-items:center;gap:10px;padding:12px 14px;display:flex}.picker-search{border:1px solid var(--border);background:var(--bg);height:34px;color:var(--fg);border-radius:6px;outline:none;flex:1;padding:0 12px;font-size:13px;transition:border-color .12s}.picker-search:focus{border-color:var(--accent)}.picker-close{width:30px;height:30px;color:var(--fg-muted);border-radius:6px;place-items:center;font-size:18px;line-height:1;display:grid}.picker-close:hover{background:var(--bg-hover);color:var(--fg)}.picker-body{flex:1;padding:8px 6px;overflow-y:auto}.picker-empty{text-align:center;color:var(--fg-muted);padding:32px 16px;font-size:13px}.picker-group{margin:6px 0 12px}.picker-group-label{letter-spacing:.05em;text-transform:uppercase;color:var(--fg-subtle);padding:6px 10px 4px;font-size:10px;font-weight:600}.picker-item{text-align:left;cursor:pointer;border-radius:6px;grid-template-columns:90px 100px 1fr 40px 100px;align-items:center;gap:10px;width:100%;padding:8px 10px;font-size:12.5px;transition:background .1s;display:grid}.picker-item:hover{background:var(--bg-hover)}.picker-item-kind{color:var(--fg-muted);background:var(--bg-subtle);text-align:center;text-transform:uppercase;letter-spacing:.03em;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:500}.picker-item-code{font-family:var(--mono);color:var(--fg-muted);font-size:11px}.picker-item-name{color:var(--fg);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.picker-item-unit{font-family:var(--mono);color:var(--fg-muted);text-align:center;font-size:11px}.picker-item-price{font-family:var(--mono);color:var(--fg);text-align:right;font-variant-numeric:tabular-nums;font-size:12px}.library-block-picker{width:min(900px,94vw);max-height:min(720px,88vh)}.block-picker-body{padding:6px 4px}.block-picker-row{padding:4px 8px 4px calc(8px + var(--depth,0) * 18px);border-radius:6px;grid-template-columns:22px 1fr auto;align-items:center;gap:8px;min-height:36px;font-size:12.5px;transition:background .1s;display:grid}.block-picker-row:hover{background:var(--bg-hover)}.block-picker-row.dimmed{opacity:.55}.block-picker-chevron{width:22px;height:22px;color:var(--fg-muted);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid}.block-picker-chevron:disabled{cursor:default}.block-picker-chevron .chev{transition:transform .12s;display:inline-flex}.block-picker-chevron .chev.open{transform:rotate(90deg)}.block-picker-main{align-items:center;gap:10px;min-width:0;display:flex}.block-picker-kind{letter-spacing:.03em;text-transform:uppercase;background:var(--bg-subtle);color:var(--fg-muted);white-space:nowrap;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:600}.block-picker-kind.kind-section,.block-picker-kind.kind-subsection{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent)}.block-picker-kind.kind-composite{background:color-mix(in srgb, var(--color-warning-solid,#b07000) 14%, transparent);color:var(--color-warning-solid,#b07000)}.block-picker-code{font-family:var(--mono);color:var(--fg-muted);white-space:nowrap;font-size:11px}.block-picker-name{color:var(--fg);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.block-picker-row.kind-section .block-picker-name,.block-picker-row.kind-subsection .block-picker-name{font-weight:600}.block-picker-unit{font-family:var(--mono);color:var(--fg-muted);white-space:nowrap;font-size:11px}.block-picker-price{font-family:var(--mono);color:var(--fg);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}.block-picker-actions{opacity:0;align-items:center;gap:4px;transition:opacity .1s;display:flex}.block-picker-row:hover .block-picker-actions,.block-picker-row:focus-within .block-picker-actions{opacity:1}.block-picker-actions .btn.pill{border-radius:999px;gap:3px;height:24px;padding:3px 8px;font-size:11px}.block-picker-actions .btn.pill.subtle{color:var(--fg-muted);border:1px solid var(--border);background:0 0}.block-picker-actions .btn.pill.subtle:hover{color:var(--fg);background:var(--bg-subtle)}.block-picker-actions .btn.pill.primary{background:var(--accent);color:var(--accent-fg,white);border:1px solid var(--accent)}.block-picker-actions .btn.pill.primary:hover{filter:brightness(1.05)}.toast-container{z-index:50;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:20px;right:20px}.toast{pointer-events:auto;background:var(--bg);border:1px solid var(--border);box-shadow:var(--shadow-lg);color:var(--fg);border-radius:8px;align-items:center;gap:12px;min-width:280px;max-width:420px;padding:10px 12px 10px 14px;font-size:13px;animation:.18s cubic-bezier(.4,0,.2,1) toastIn;display:flex}@keyframes toastIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:none}}.toast-error{border-color:var(--color-danger-border);background:var(--color-danger-bg);color:var(--color-danger-text)}.toast-success{border-color:var(--color-success-border);background:var(--color-success-bg);color:var(--color-success-text)}.toast button{width:22px;height:22px;color:inherit;opacity:.6;border-radius:4px;place-items:center;font-size:14px;line-height:1;transition:all .1s;display:grid}.toast button:hover{opacity:1;background:var(--color-bg-subtle)}.empty-state{padding:48px 24px}[data-theme=dark] .login-input{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=dark] .selection-bar{border:1px solid var(--color-border-default)}.preview-backdrop{z-index:100;flex-direction:row;justify-content:flex-end;align-items:stretch;padding:0;display:flex;overflow:hidden}.preview-panel{aspect-ratio:210/297;background:var(--bg-subtle);flex-direction:column;width:min(70.7071vh,100vw);height:100vh;animation:.2s cubic-bezier(.4,0,.2,1) previewSlideIn;display:flex;box-shadow:-24px 0 48px #00000040}@keyframes previewSlideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.preview-toolbar{border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.preview-a4{color:#1a1a1a;width:100%;font-family:var(--sans);background:#fff;flex:1;padding:32px;font-size:11px;line-height:1.5;overflow-y:auto}.preview-emitter{align-items:flex-start;gap:16px;margin-bottom:14px;padding-bottom:14px;display:flex}.preview-logo{object-fit:contain;flex-shrink:0;max-width:200px;max-height:56px}.preview-emitter-info{flex-direction:column;gap:2px;display:flex}.preview-emitter-name{color:#1a1a1a;font-size:13px;font-weight:600}.preview-emitter-line{color:#534e44;font-size:10px}.preview-parties{align-items:flex-start;gap:24px;margin-bottom:18px;display:flex}.preview-site{text-align:left;max-width:280px}.preview-client{text-align:right;max-width:280px;margin-left:auto}.preview-client-label{color:#8c8678;text-transform:uppercase;letter-spacing:.12em;margin-bottom:4px;font-size:10px;font-weight:600}.preview-client-name{color:#1a1a1a;font-size:13px;font-weight:600}.preview-client-line{color:#534e44;font-size:10px}.preview-head{border-bottom:1px solid #dbd7cc;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:18px;padding-bottom:14px;display:flex}.preview-eyebrow{color:#8c8678;text-transform:uppercase;letter-spacing:.12em;margin-bottom:4px;font-size:10px;font-weight:600}.preview-title{color:#1a1a1a;letter-spacing:-.01em;margin:0;font-size:22px;font-weight:600}.preview-meta{text-align:right;gap:4px;min-width:180px;display:grid}.preview-meta>div{justify-content:space-between;gap:12px;font-size:11px;display:flex}.preview-meta span{color:#8c8678}.preview-meta strong{color:#1a1a1a;font-weight:500}.preview-intro{color:#3e3a32;white-space:pre-wrap;margin:0 0 18px;font-size:11px}.preview-table{border-collapse:collapse;width:100%;margin:0 0 18px;font-size:11px}.preview-table thead th{text-align:left;color:#534e44;text-transform:uppercase;letter-spacing:.04em;background:#faf9f5;border-bottom:1px solid #c9c5b9;padding:6px;font-size:9.5px;font-weight:500}.preview-table .col-num{text-align:left;width:38px}.preview-table .col-qty{text-align:right;width:50px}.preview-table .col-unit{text-align:center;width:36px}.preview-table .col-pu{text-align:right;width:78px}.preview-table .col-total{text-align:right;width:88px}.preview-table tbody td{vertical-align:top;color:#1a1a1a;border-bottom:1px solid #e7e4db;padding:6px}.preview-table .col-qty,.preview-table .col-pu,.preview-table .col-total{font-variant-numeric:tabular-nums}.preview-table .col-pu,.preview-table .col-total{text-align:right}.preview-table .col-unit{text-align:center;color:#6d685c}.preview-table .col-num{color:#8c8678;font-size:10px}.preview-name{font-weight:400}.preview-desc{color:#6d685c;margin-top:2px;font-size:10px}.preview-table .col-desc{padding-left:6px}.preview-desc-inner{align-items:stretch;min-height:16px;display:flex}.preview-desc-text{flex:1;min-width:0}.preview-indent{flex-shrink:0;align-self:stretch;width:14px;position:relative}.preview-indent.tree:before{content:"";background:#dbd7cc;width:1px;position:absolute;top:-6px;bottom:-6px;left:5px}.preview-indent.tree.last:before{background:0 0;border-bottom:1px solid #dbd7cc;border-left:1px solid #dbd7cc;border-bottom-left-radius:6px;width:7px;bottom:calc(50% - 1px)}.preview-indent.tree.connect:after{content:"";background:#dbd7cc;width:7px;height:1px;position:absolute;top:50%;left:5px}.preview-row.is-section td{background:#faf9f5;border-bottom-color:#c9c5b9;font-weight:600}.preview-row.is-section .preview-name{font-weight:600}.preview-row.depth-0.is-section td{background:#f2f0ea}.preview-row.is-composite .preview-name{font-weight:500}.preview-summary{justify-content:space-between;align-items:flex-start;gap:32px;margin:0 0 18px;display:flex}.preview-terms{color:#3e3a32;white-space:pre-wrap;flex:1;min-width:0;font-size:11px;line-height:1.5}.preview-totals{flex:0 0 260px;gap:4px;width:260px;font-size:11px;display:grid}.preview-footer{color:#8c8678;white-space:pre-wrap;text-align:center;border-top:1px solid #c9c5b9;margin:28px 0 0;padding-top:12px;font-size:10px;line-height:1.5}.preview-totals-row{justify-content:space-between;padding:4px 0;display:flex}.preview-totals-row span{color:#534e44}.preview-totals-row strong{color:#1a1a1a;font-variant-numeric:tabular-nums;font-weight:500}.preview-totals-grand{border-top:1px solid #c9c5b9;margin-top:4px;padding-top:8px;font-size:13px}.preview-totals-grand strong{font-size:14px;font-weight:600}.version-compare-btn{border:1px solid var(--border-strong);background:var(--bg);width:100%;color:var(--fg-muted);cursor:pointer;border-radius:6px;margin-top:4px;padding:4px 8px;font-size:11px}.version-compare-btn:hover{background:var(--bg-hover);color:var(--fg)}.cmp-panel{background:var(--bg);color:var(--fg);flex-direction:column;width:92%;max-width:920px;display:flex}.cmp-toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.cmp-toolbar-left{align-items:center;gap:8px;font-size:14px;display:flex}.cmp-toolbar-right{align-items:center;gap:12px;display:flex}.cmp-vs{font-weight:600}.cmp-arrow{color:var(--fg-muted)}.cmp-base-select select{border:1px solid var(--border-strong);background:var(--bg-hover);color:var(--fg);cursor:pointer;border-radius:6px;padding:2px 6px;font-size:13px}.cmp-counts{gap:6px;margin-left:8px;display:inline-flex}.cmp-chip{font-variant-numeric:tabular-nums;border-radius:10px;padding:1px 7px;font-size:12px;font-weight:600}.cmp-chip.added{background:var(--color-success-bg,#e3f2e5);color:var(--color-success-solid,#2e7d32)}.cmp-chip.changed{background:var(--color-warning-bg,#fbeedb);color:var(--color-warning-solid,#b26a00)}.cmp-chip.removed{background:var(--color-danger-bg,#fbe4e2);color:var(--color-danger-solid,#c0392b)}.cmp-empty{text-align:center;color:var(--fg-muted);padding:40px}.cmp-body{padding:16px 20px 24px;overflow-y:auto}.cmp-totals{border:1px solid var(--border);background:var(--bg-subtle);border-radius:10px;flex-wrap:wrap;gap:24px;margin-bottom:16px;padding:12px 14px;display:flex}.cmp-totals>div{flex-direction:column;gap:2px;font-size:12px;display:flex}.cmp-totals span:first-child{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.06em;font-size:10px}.cmp-totals strong{font-variant-numeric:tabular-nums}.cmp-delta{font-variant-numeric:tabular-nums;font-weight:600}.cmp-delta.pos{color:var(--color-success-solid,#2e7d32)}.cmp-delta.neg{color:var(--color-danger-solid,#c0392b)}.cmp-table{border-collapse:collapse;width:100%;font-size:12px}.cmp-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-muted);border-bottom:1px solid var(--border);padding:6px 8px;font-size:10px}.cmp-table th.num,.cmp-table td.num{text-align:right;font-variant-numeric:tabular-nums}.cmp-table td{border-bottom:1px solid var(--border);vertical-align:top;padding:7px 8px}.cmp-table td.num{white-space:nowrap}.cmp-desig-cell{padding:0 8px 0 0;position:relative}.cmp-indent-abs{display:flex;position:absolute;top:0;bottom:0;left:0}.cmp-indent-abs .indent-cell{height:100%}.cmp-desig{align-items:center;min-height:32px;padding:7px 0;display:flex}.cmp-disclosure{width:20px;color:var(--fg-muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.cmp-desig-text{flex-wrap:wrap;align-items:baseline;min-width:0;display:flex}.cmp-badge{border-radius:4px;justify-content:center;align-items:center;width:16px;height:16px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.cmp-row.cmp-added{background:var(--color-success-bg,#e3f2e5)}.cmp-row.cmp-changed{background:var(--color-warning-bg,#fbeedb)}.cmp-row.cmp-removed{background:var(--color-danger-bg,#fbe4e2)}.cmp-added .cmp-badge{background:var(--color-success-solid,#2e7d32);color:#fff}.cmp-changed .cmp-badge{background:var(--color-warning-solid,#b26a00);color:#fff}.cmp-removed .cmp-badge{background:var(--color-danger-solid,#c0392b);color:#fff}.cmp-row.cmp-removed td{opacity:.75;text-decoration:line-through}.cmp-name{align-items:baseline;gap:6px;display:inline-flex}.cmp-code{color:var(--fg-muted);font-variant-numeric:tabular-nums;font-size:10px}.cmp-ba{align-items:baseline;gap:5px;display:inline-flex}.cmp-before{color:var(--fg-muted);text-decoration:line-through}.cmp-after{font-weight:600}.cmp-collapsible{cursor:pointer}.cmp-lot-header>td{background:var(--surface-2,var(--bg-subtle));border-top:1px solid var(--border)}.cmp-lot-header:hover>td{background:var(--surface-hover,var(--bg-subtle))}.cmp-sublot-header>td{background:color-mix(in srgb, var(--surface-2,var(--bg-subtle)) 50%, transparent)}.cmp-sublot-header:hover>td{background:var(--surface-2,var(--bg-subtle))}.cmp-lot-header .cmp-name strong,.cmp-sublot-header .cmp-name strong{font-weight:600}.cmp-lot-counts{vertical-align:middle;gap:5px;margin-left:10px;display:inline-flex}.cmp-agg{flex-direction:column;align-items:flex-end;gap:1px;display:inline-flex}.cmp-agg .cmp-delta{font-size:11px}.cmp-lot-header .cmp-agg .cmp-after,.cmp-lot-header .cmp-agg>span:only-child{font-weight:700}.cmp-pdf-wrap{position:fixed;top:0;left:-10000px}.cmp-pdf{box-sizing:border-box;color:#211f1a;width:210mm;min-height:297mm;font-family:var(--sans);background:#fff;padding:16mm;font-size:11px}.cmp-pdf-head h1{margin:0;font-size:20px;font-weight:600}.cmp-pdf-sub{color:#6d685c;flex-wrap:wrap;gap:14px;margin-top:4px;font-size:11px;display:flex}.cmp-pdf-totals{gap:28px;margin:20px 0 12px;display:flex}.cmp-pdf-totals>div{flex-direction:column;gap:2px;display:flex}.cmp-pdf-totals>div>span:first-child{text-transform:uppercase;letter-spacing:.06em;color:#6d685c;font-size:9px}.cmp-pdf-totals strong{font-variant-numeric:tabular-nums;font-size:13px}.cmp-pdf-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:8px}.cmp-pdf-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:#6d685c;border-bottom:1px solid #c9c5b9;padding:6px 8px;font-size:9px}.cmp-pdf-table th.num,.cmp-pdf-table td.num{text-align:right;white-space:nowrap}.cmp-pdf-table td{border-bottom:1px solid #e7e4db;padding:7px 8px}.cmp-pdf-table tfoot td{border-top:2px solid #c9c5b9;border-bottom:none;font-weight:700}.cmp-pdf-table .code{color:#6d685c;margin-right:6px}.cmp-pdf-table tr.st-added td:first-child{border-left:3px solid #2e7d32}.cmp-pdf-table tr.st-removed td:first-child{border-left:3px solid #c0392b}.cmp-pdf .pos{color:#2e7d32}.cmp-pdf .neg{color:#c0392b}.cmp-comment-btn{width:20px;height:20px;color:var(--fg-subtle);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;margin-left:6px;transition:opacity .12s,color .12s,background .12s;display:inline-flex}.cmp-row:hover .cmp-comment-btn{opacity:1}.cmp-comment-btn:hover{background:var(--bg-hover);color:var(--fg)}.cmp-comment-btn.has{opacity:1;color:var(--accent)}.cmp-comment-row>td{border-bottom:1px solid var(--border);padding:0 8px 8px}.cmp-comment-edit{flex-direction:column;gap:8px;padding-top:4px;display:flex}.cmp-comment-input{resize:vertical;border:1px solid var(--border-strong);background:var(--bg);width:100%;min-height:56px;color:var(--fg);font:inherit;border-radius:6px;padding:8px 10px;font-size:12px}.cmp-comment-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}.cmp-comment-actions{align-items:center;gap:8px;display:flex}.cmp-comment-display{color:var(--fg-muted);cursor:text;align-items:flex-start;gap:8px;padding-top:4px;font-size:12px;display:flex}.cmp-comment-display svg{color:var(--accent);flex-shrink:0;margin-top:1px}.cmp-include-comments{color:var(--fg-muted);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.cmp-pdf-comments{margin-top:22px}.cmp-pdf-comments h2{margin:0 0 8px;font-size:13px;font-weight:700}.cmp-pdf-comment{border-top:1px solid #e7e4db;padding:8px 0}.cmp-pdf-comment-head{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.cmp-pdf-comment-head .code{color:#6d685c}.cmp-pdf-comment-amt{color:#6d685c;font-variant-numeric:tabular-nums}.cmp-pdf-comment-body{white-space:pre-wrap;margin-top:3px}@page{size:A4;margin:0}@media print{body *{visibility:hidden!important}.preview-a4,.preview-a4 *{visibility:visible!important}.preview-backdrop{background:0 0!important;padding:0!important;display:block!important;position:absolute!important;inset:0!important;overflow:visible!important}.preview-panel{aspect-ratio:auto!important;width:100%!important;height:auto!important;box-shadow:none!important;background:#fff!important;position:static!important}.preview-toolbar{display:none!important}.preview-a4{width:100%!important;height:auto!important;padding:14mm!important;position:absolute!important;inset:0!important;overflow:visible!important}}.workspace-body{grid-template-columns:minmax(0,1fr) 300px;align-items:start;display:grid}.workspace-main-col{flex-direction:column;min-width:0;display:flex}.side-panel{--header-h:59px;top:var(--header-h);height:calc(100vh - var(--header-h));background:var(--bg);border-left:1px solid var(--border);flex-direction:column;align-self:start;display:flex;position:sticky;overflow-y:auto;box-shadow:-4px 0 16px oklch(0% 0 0/.025)}.side-panel-toggle{border:1px solid var(--border-strong);background:var(--bg);width:30px;height:30px;color:var(--fg-muted);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;display:none}.side-panel-toggle:hover{background:var(--bg-hover);color:var(--fg)}.side-panel-backdrop{background:var(--color-overlay);z-index:99;animation:.12s fadeIn;position:fixed;inset:0}@media (width<=1439px){.workspace-body{grid-template-columns:minmax(0,1fr)}.side-panel-toggle{display:inline-flex}.side-panel{z-index:100;width:320px;max-width:88vw;height:100vh;transition:transform .2s cubic-bezier(.4,0,.2,1);position:fixed;top:0;right:0;transform:translate(100%);box-shadow:-24px 0 48px #0003}.side-panel.is-open{transform:translate(0)}}.side-panel-section{flex-direction:column;gap:10px;padding:20px;display:flex;position:relative}.side-panel-section:not(:last-child):after{content:"";background:var(--border);height:1px;position:absolute;bottom:0;left:20px;right:20px}.side-panel-actions{background:linear-gradient(to bottom, transparent 0, var(--bg) 32px);gap:8px;margin-top:auto;padding-top:32px;position:sticky;bottom:0}.side-panel-section h3{text-transform:uppercase;letter-spacing:.06em;color:var(--fg-muted);margin:0;font-size:11px;font-weight:600}.side-panel-msg{color:var(--fg-muted);margin:0;font-size:12px;line-height:1.4}.side-panel-btn{justify-content:center;width:100%;padding:8px 12px;font-size:13px}.total-hero{align-items:flex-start;gap:8px}.total-hero-icon{background:var(--fg);width:36px;height:36px;color:var(--bg);border-radius:10px;place-items:center;display:grid}[data-theme=dark] .total-hero-icon{color:#211f1a;background:oklch(100% 0 0/.92)}.total-hero-amount{color:var(--fg);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:26px;font-weight:600;line-height:1.1}.total-hero-label{color:var(--fg-muted);font-size:12px}.side-panel-stats{flex-direction:column;gap:6px;margin:0;font-size:13px;display:flex}.side-panel-stats.secondary{font-size:12px}.side-panel-stats.secondary dt,.side-panel-stats.secondary dd{color:var(--fg-muted)}.side-panel-stats>div{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.side-panel-stats dt{color:var(--fg-muted);white-space:nowrap;margin:0}.side-panel-stats dd{color:var(--fg);font-variant-numeric:tabular-nums;text-align:right;margin:0}.side-panel-stats-total dd{font-weight:600}.side-panel-stats-total.margin-good dd{color:var(--color-success-solid)}.side-panel-stats-total.margin-warn dd{color:var(--color-warning-solid)}.side-panel-stats-total.margin-bad dd{color:var(--color-danger-solid)}[data-theme=dark] .side-panel-stats-total.margin-good dd{color:#94b989}[data-theme=dark] .side-panel-stats-total.margin-warn dd{color:#dca46b}[data-theme=dark] .side-panel-stats-total.margin-bad dd{color:#da8975}.version-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.version-item{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--fg);text-align:left;cursor:pointer;border-radius:6px;flex-direction:column;gap:4px;padding:8px 10px;font-size:12px;transition:all .12s;display:flex}.version-item:hover{background:var(--bg-hover);border-color:var(--border-strong)}.version-item.active{border-color:var(--accent);background:var(--bg-subtle)}.version-head{align-items:center;gap:6px;display:flex}.version-num{font-weight:600;font-family:var(--mono)}.version-tag{text-transform:uppercase;letter-spacing:.04em;border-radius:8px;padding:1px 6px;font-size:10px}.version-tag.current{background:var(--color-success-bg-strong);color:var(--color-success-text)}.version-tag.locked{background:0 0;padding:0;font-size:12px}.version-meta{color:var(--fg-muted);justify-content:space-between;font-size:11px;display:flex}.version-total{font-variant-numeric:tabular-nums}.app-header .status-badge.version,.toolbar .status-badge.version,.invoice-workspace-heading .status-badge.version{background:var(--bg-subtle);color:var(--fg-muted);font-family:var(--mono);border:1px solid var(--border)}.app-header .status-badge.readonly{background:var(--color-sand-bg-strong);color:var(--sand-700)}[data-theme=dark] .app-header .status-badge.version{color:#a9a496;background:oklch(100% 0 0/.06)}[data-theme=dark] .app-header .status-badge.readonly{color:#d8cdb8;background:oklch(100% 0 0/.08)}[data-theme=dark] .version-tag.current{color:#dbe8d6;background:#3d6c36}.send-dialog-backdrop{z-index:100;background:oklch(0% 0 0/.45);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.send-dialog{background:var(--bg);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:16px;width:100%;max-width:460px;padding:24px;display:flex;box-shadow:0 24px 48px oklch(0% 0 0/.18)}.send-dialog h2{margin:0;font-size:18px;font-weight:600}.send-dialog-sub{color:var(--fg-muted);margin:0;font-size:13px;line-height:1.5}.send-dialog-recap{background:var(--bg-subtle);border-radius:8px;flex-direction:column;gap:6px;margin:0;padding:14px;font-size:13px;display:flex}.send-dialog-recap>div{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.send-dialog-recap dt{color:var(--fg-muted);margin:0}.send-dialog-recap dd{color:var(--fg);font-variant-numeric:tabular-nums;text-align:right;margin:0}.send-dialog-recap em{color:var(--fg-muted);font-size:12px;font-style:normal}.send-dialog-total{border-top:1px solid var(--border);padding-top:6px}.send-dialog-error{background:var(--color-danger-bg);color:var(--color-danger-text);border:1px solid var(--danger-200);border-radius:6px;padding:10px 12px;font-size:12px}[data-theme=dark] .send-dialog-error{color:#f4d9d2;background:#602217;border-color:#7d2b1c}.send-dialog-actions{justify-content:flex-end;gap:8px;display:flex}.send-dialog-toggle{border:1px solid var(--color-border-subtle,#00000014);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:flex-start;gap:10px;margin:16px 0 0;padding:12px 14px;font-weight:500;display:flex}.send-dialog-toggle input[type=checkbox]{flex-shrink:0;margin-top:2px}.send-dialog-toggle-otp{background:0 0;border-style:dashed;margin-top:8px}.send-dialog-signature-fields{background:var(--color-bg-subtle,#00000005);border-radius:8px;flex-direction:column;gap:12px;margin:16px 0 0;padding:16px;display:flex}.send-dialog-field{flex-direction:column;gap:4px;display:flex}.send-dialog-field label{color:var(--text-muted,#534e44);font-size:12px;font-weight:500}.send-dialog-field input{border:1px solid var(--color-border,#0000001f);background:var(--color-bg-page,#fff);width:100%;color:var(--text-primary,inherit);border-radius:6px;padding:8px 10px;font-size:14px}.send-dialog-field input:focus{outline-offset:-1px;border-color:var(--color-accent-border-hover);outline:2px solid #2b45c94d}.send-dialog-field input:disabled{opacity:.6}.send-dialog-link-row{gap:8px;margin:16px 0;display:flex}.send-dialog-link-input{border:1px solid var(--color-border,#0000001f);background:var(--color-bg-subtle,#00000005);border-radius:6px;flex:1;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.signature-status{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);color:var(--fg);margin:28px 28px 0;padding:12px 14px;font-size:12px}.signature-status-row{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.signature-status-row-main{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.signature-status-badge{letter-spacing:.01em;border:1px solid #0000;border-radius:999px;align-self:flex-start;align-items:center;gap:6px;padding:3px 9px 3px 8px;font-size:11px;font-weight:600;line-height:1.4;display:inline-flex}.signature-status-badge svg{flex-shrink:0}.signature-status-badge-pending{background:var(--color-warning-bg);color:var(--color-warning-text);border-color:var(--color-warning-border)}.signature-status-badge-progress{background:var(--color-info-bg);color:var(--color-info-text);border-color:var(--color-info-border)}.signature-status-badge-success{background:var(--color-success-bg);color:var(--color-success-text);border-color:var(--color-success-border)}.signature-status-badge-neutral{background:var(--color-bg-subtle);color:var(--color-text-secondary);border-color:var(--border)}.signature-status-badge-danger{background:var(--color-danger-bg);color:var(--color-danger-text);border-color:var(--color-danger-border)}.signature-status-details{flex-direction:column;gap:4px;margin:0;font-size:12px;display:flex}.signature-status-details>div{align-items:baseline;gap:8px;min-width:0;display:flex}.signature-status-details dt{color:var(--fg-muted);white-space:nowrap;flex-shrink:0;width:116px;font-weight:500}.signature-status-details dd{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;overflow:hidden}.signature-status-email{color:var(--fg-muted);font-variant-numeric:tabular-nums;margin-left:6px}.signature-status-meta{color:var(--fg-subtle)}.signature-status-side{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:8px;display:flex}.signature-status-actions{flex-direction:column;align-items:stretch;gap:6px;display:flex}.signature-status-error{color:var(--color-danger-text);text-align:right;font-size:11px}.library-screen{background:var(--color-bg-page);flex-direction:column;flex:1;gap:16px;padding:18px 28px 48px;display:flex}.library-toolbar{flex-direction:column;gap:10px;display:flex}.library-search{border:1px solid var(--border);background:var(--bg);width:100%;height:38px;color:var(--fg);font-size:14px;font-family:var(--sans);border-radius:8px;outline:none;padding:0 14px;transition:border-color .12s,box-shadow .12s}.library-search:focus{border-color:var(--color-accent-border-hover);box-shadow:0 0 0 3px var(--color-focus-ring)}.library-kind-filters{flex-wrap:wrap;gap:6px;display:flex}.library-chip{border:1px solid var(--border);background:var(--bg);color:var(--fg-muted);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:5px 11px;font-size:12px;font-weight:500;transition:all .12s;display:inline-flex}.library-chip:hover{background:var(--bg-hover);color:var(--fg)}.library-chip.active{background:var(--color-accent-bg);border-color:var(--color-accent-border);color:var(--color-accent-text)}.library-chip-count{font-variant-numeric:tabular-nums;background:var(--color-bg-muted);color:var(--fg-muted);border-radius:999px;padding:1px 6px;font-size:11px}.library-chip.active .library-chip-count{background:var(--color-accent-bg-hover);color:var(--color-accent-text)}.search-hl{background:var(--color-accent-bg);color:var(--color-accent-text);border-radius:3px;padding:0 1px;font-weight:600}.tree-row.search-dim{opacity:.45}.tree-row.search-dim:hover{opacity:1}.library-tree-card .devis-thead,.library-tree-card .devis-row{grid-template-columns:0 32px minmax(280px,1fr) 60px 92px 104px 84px 92px 64px 0}.devis-card.vat-hidden .devis-thead,.devis-card.vat-hidden .devis-row{grid-template-columns:0 32px minmax(220px,1fr) 96px 90px 110px 96px 90px 0 100px}.library-tree-card.vat-hidden .devis-thead,.library-tree-card.vat-hidden .devis-row{grid-template-columns:0 32px minmax(280px,1fr) 60px 92px 104px 84px 92px 0 0}.devis-card.vat-hidden .devis-thead>div:nth-child(9),.devis-card.vat-hidden .devis-row>:nth-child(9){visibility:hidden;padding:0;overflow:hidden}.vat-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.vat-header h3{margin:0}.vat-global-rate-edit{background:var(--bg-hover);cursor:pointer;border-radius:6px;align-items:center;padding:2px 7px;transition:background .12s,box-shadow .12s;display:inline-flex}.vat-global-rate-edit:hover{background:var(--bg-selected,var(--bg-hover));box-shadow:inset 0 0 0 1px var(--border-strong)}.vat-global-rate-select{appearance:none;color:inherit;font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:0;outline:none;margin:0;padding:0}.library-empty{text-align:center;color:var(--fg-muted);background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:48px;font-size:13px}.library-list{background:var(--bg);border:1px solid var(--border);border-radius:10px;overflow:hidden}.library-list-head,.library-row{grid-template-columns:minmax(0,1fr) 110px 60px 100px 100px 60px 80px;align-items:center;gap:12px;padding:10px 16px;display:grid}.library-list-head{text-transform:uppercase;letter-spacing:.04em;color:var(--fg-subtle);background:var(--bg-subtle);border-bottom:1px solid var(--border);font-size:11px}.library-list-head .col-purchase,.library-list-head .col-sale,.library-list-head .col-margin,.library-row .col-purchase,.library-row .col-sale,.library-row .col-margin{text-align:right}.library-list-head .col-unit,.library-list-head .col-vat,.library-row .col-unit,.library-row .col-vat{text-align:center}.library-group+.library-group{border-top:1px solid var(--border)}.library-group-head{background:var(--bg-subtle);color:var(--fg-muted);text-transform:uppercase;letter-spacing:.03em;justify-content:space-between;align-items:center;padding:8px 16px;font-size:12px;font-weight:600;display:flex}.library-group-count{color:var(--fg-subtle);font-variant-numeric:tabular-nums;font-weight:500}.library-row{border-top:1px solid var(--border);color:var(--fg);cursor:pointer;font-size:13px;transition:background 80ms}.library-row:hover{background:var(--bg-hover)}.library-row.library-row-composite:hover{background:var(--color-accent-bg)}.library-row .col-name{align-items:center;gap:10px;min-width:0;display:flex}.library-name-stack{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.library-row-name{color:var(--fg);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;font-weight:500;display:inline-flex;overflow:hidden}.library-row-desc{color:var(--fg-subtle);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.library-favorite{color:var(--color-warning-solid);flex-shrink:0;font-size:12px}.library-row .row-ref{flex-shrink:0}.library-row .row-ref.kind-composite{color:var(--color-accent-text);border:1px solid var(--color-accent-border);background:0 0;padding:1px 5px;font-weight:500}.library-row .row-ref.kind-item{background:var(--color-bg-page);color:var(--fg-muted)}.library-kind-badge{background:var(--color-bg-muted);color:var(--fg-muted);border-radius:4px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.library-row .col-purchase,.library-row .col-sale,.library-row .col-margin,.library-row .col-vat{font-variant-numeric:tabular-nums;color:var(--fg-muted)}.library-row .col-sale{color:var(--fg);font-weight:500}.lib-drawer-backdrop{background:var(--color-overlay);z-index:100;justify-content:flex-end;animation:.12s fadeIn;display:flex;position:fixed;inset:0}.lib-drawer{background:var(--bg);border-left:1px solid var(--border);width:min(720px,100vw);height:100vh;box-shadow:-24px 0 48px var(--color-shadow-lg);flex-direction:column;animation:.2s cubic-bezier(.4,0,.2,1) previewSlideIn;display:flex}.lib-drawer-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 24px 16px;display:flex}.lib-drawer-head h2{color:var(--fg);margin:0;font-size:18px;font-weight:600}.lib-drawer-sub{color:var(--fg-muted);margin:4px 0 0;font-size:12px}.lib-drawer-body{flex-direction:column;flex:1;gap:16px;padding:20px 24px;display:flex;overflow-y:auto}.lib-drawer-foot{border-top:1px solid var(--border);background:var(--bg-subtle);justify-content:flex-end;gap:8px;padding:14px 24px;display:flex}.import-quote-drawer{width:min(840px,100vw)}.import-quote-body{min-height:0;overflow:hidden}.import-quote-select{position:relative}.import-quote-select-trigger{cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.import-quote-select-trigger>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.import-quote-select-trigger .placeholder{color:var(--fg-subtle)}.import-quote-select-trigger svg{color:var(--fg-muted);flex-shrink:0}.import-quote-select-pop{z-index:20;background:var(--bg);border:1px solid var(--border);max-height:320px;box-shadow:0 8px 24px var(--color-shadow-lg);border-radius:8px;flex-direction:column;padding:6px;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0}.import-quote-select-pop .picker-search{flex-shrink:0;margin-bottom:6px}.import-quote-select-list{flex-direction:column;min-height:0;display:flex;overflow-y:auto}.import-quote-select-list .popover-item.is-selected{background:var(--bg-selected)}.import-quote-card{border:1px solid var(--border);border-radius:8px;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.import-quote-card .devis-body{min-height:0;overflow-y:auto}.import-quote-card .checkbox{opacity:1}.import-quote-card .devis-thead,.import-quote-card .devis-row{grid-template-columns:0 32px minmax(220px,1fr) 0 0 0 0 90px 0 100px}.import-quote-card .devis-thead>div:nth-child(4),.import-quote-card .devis-row>:nth-child(4),.import-quote-card .devis-thead>div:nth-child(5),.import-quote-card .devis-row>:nth-child(5),.import-quote-card .devis-thead>div:nth-child(6),.import-quote-card .devis-row>:nth-child(6),.import-quote-card .devis-thead>div:nth-child(7),.import-quote-card .devis-row>:nth-child(7),.import-quote-card .devis-thead>div:nth-child(9),.import-quote-card .devis-row>:nth-child(9){visibility:hidden;padding:0;overflow:hidden}.lib-field{flex-direction:column;gap:6px;display:flex}.lib-field-row{gap:12px;display:flex}.lib-field label{color:var(--fg-muted);font-size:12px;font-weight:500}.lib-input{border:1px solid var(--border);background:var(--bg);height:36px;color:var(--fg);font-size:13px;font-family:var(--sans);border-radius:6px;outline:none;padding:0 12px;transition:border-color .12s,box-shadow .12s}.lib-input:focus{border-color:var(--color-accent-border-hover);box-shadow:0 0 0 3px var(--color-focus-ring)}.lib-textarea{resize:vertical;height:auto;min-height:60px;padding:8px 12px;line-height:1.45}.lib-readonly{background:var(--bg-subtle);height:36px;color:var(--fg);font-variant-numeric:tabular-nums;border:1px solid #0000;border-radius:6px;align-items:center;padding:0 12px;font-size:13px;display:flex}.lib-segment{background:var(--bg-subtle);border-radius:8px;flex-wrap:wrap;gap:4px;width:fit-content;padding:4px;display:inline-flex}.lib-segment-btn{color:var(--fg-muted);cursor:pointer;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:500;transition:all .12s}.lib-segment-btn:hover{color:var(--fg)}.lib-segment-btn.active{background:var(--bg);color:var(--fg);box-shadow:var(--shadow-sm)}.lib-checkbox{color:var(--fg);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:inline-flex}.lib-children-head{justify-content:space-between;align-items:center;display:flex}.lib-children-empty{border:1px dashed var(--border);text-align:center;color:var(--fg-muted);border-radius:8px;padding:16px;font-size:12px}.lib-children-list{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:4px;padding:4px;display:flex}.lib-contacts{border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px;min-height:44px;padding:8px;display:flex}.lib-contact-chip{background:var(--bg-subtle);border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:2px 4px 2px 6px;font-size:12px;display:inline-flex}.lib-contact-name{color:var(--fg);padding:0 2px}.lib-contact-remove{cursor:pointer;width:18px;height:18px;color:var(--fg-muted);background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;font-size:14px;line-height:1;display:inline-flex}.lib-contact-remove:hover{background:var(--bg-hover);color:var(--fg)}.lib-contacts-empty{color:var(--fg-muted);padding:4px;font-size:12px}.lib-contacts-actions{gap:8px;margin-top:8px;display:flex}.lib-child-row{border-radius:6px;grid-template-columns:minmax(0,1fr) 80px 50px 90px 100px 28px;align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:grid}.lib-child-row:hover{background:var(--bg-hover)}.lib-child-name{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.lib-child-qty{text-align:right;font-variant-numeric:tabular-nums;height:28px;padding:0 8px;font-size:12px}.lib-child-unit{color:var(--fg-muted);text-align:center;font-size:12px}.lib-child-price,.lib-child-total{text-align:right;font-variant-numeric:tabular-nums;color:var(--fg-muted);font-size:12px}.lib-child-total{color:var(--fg);font-weight:500}.lib-child-del{width:24px;height:24px;color:var(--fg-muted);place-items:center;padding:0;font-size:16px;line-height:1;display:grid}.lib-child-del:hover{color:var(--color-danger-text);background:var(--color-danger-bg)}.lib-child-add{border-top:1px dashed var(--border);align-items:center;gap:8px;margin-top:2px;padding:6px 8px;display:flex;position:relative}.lib-child-add-icon{background:var(--bg-subtle);width:18px;height:18px;color:var(--fg-muted);border-radius:4px;flex-shrink:0;place-items:center;font-size:13px;font-weight:500;display:grid}.lib-child-add-input{min-width:0;height:28px;color:var(--fg);font-family:var(--sans);background:0 0;border:0;outline:none;flex:1;padding:0 4px;font-size:13px}.lib-child-add-input::placeholder{color:var(--fg-subtle)}.lib-child-add-results{z-index:10;background:var(--bg);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:8px;flex-direction:column;gap:1px;max-height:280px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.lib-child-add-result{text-align:left;font-family:var(--sans);color:var(--fg);cursor:pointer;background:0 0;border:0;border-radius:6px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;padding:6px 8px;font-size:13px;display:grid}.lib-child-add-result:hover{background:var(--color-accent-bg)}.lib-child-add-result-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.lib-child-add-result-meta{color:var(--fg-muted);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:11px}.lib-child-add-empty{color:var(--fg-muted);text-align:center;padding:8px;font-size:12px}.lib-error{border:1px solid var(--color-danger-border);background:var(--color-danger-bg);color:var(--color-danger-text);border-radius:6px;padding:10px 12px;font-size:12px}.library-toolbar-actions{flex-shrink:0;gap:8px;display:flex}.library-toolbar-actions .btn{white-space:nowrap}.app-layout{background:var(--bg-subtle);flex:1;min-height:100vh;display:flex}.app-layout-main{flex-direction:column;flex:1;min-width:0;display:flex}.sidebar{z-index:90;background:var(--bg);border-right:1px solid var(--border);width:64px;height:100vh;box-shadow:none;flex-direction:column;align-items:stretch;gap:4px;padding:10px 12px;display:flex;position:fixed;top:0;left:0}.app-layout.sidebar-pinned .sidebar{box-shadow:none;transition:none;transform:translate(0)}.app-layout.sidebar-pinned .app-layout-main{margin-left:64px}.sidebar-logo{background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;gap:0;width:100%;height:40px;margin-bottom:6px;padding:0;display:flex;position:relative}.sidebar-company-logo{object-fit:contain;flex-shrink:0;width:auto;max-width:100%;height:32px;display:block}.sidebar-company-fallback{background:var(--color-accent-bg);width:32px;height:32px;color:var(--color-accent-text);border-radius:7px;flex-shrink:0;place-items:center;font-size:14px;font-weight:600;display:grid}.sidebar-icon-btn{width:100%;height:40px;color:var(--fg-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;gap:0;padding:0;transition:background 80ms,color 80ms;display:flex;position:relative}.sidebar-icon-btn:hover:not(.disabled):not(.active){background:var(--bg-hover);color:var(--fg)}.sidebar-icon-btn.active{background:var(--color-accent-bg);color:var(--color-accent-text)}.sidebar-icon-btn.active svg{color:var(--color-accent-text)}.sidebar-icon-btn.disabled{cursor:not-allowed;color:var(--fg-subtle);opacity:.6}.sidebar-icon-badge{background:var(--color-accent-bg);min-width:16px;height:16px;color:var(--color-accent-text);font-variant-numeric:tabular-nums;border:1.5px solid var(--bg);border-radius:8px;place-items:center;padding:0 4px;font-size:10px;font-weight:600;line-height:1;display:grid;position:absolute;top:4px;right:6px;transform:none}.sidebar-nav{flex-direction:column;flex:1;align-items:stretch;gap:4px;width:100%;padding:8px 0;display:flex}.sidebar-foot{border-top:1px solid var(--border);flex-direction:column;align-items:stretch;gap:4px;width:100%;padding-top:8px;display:flex}.sidebar-avatar-btn{background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;gap:0;width:100%;height:40px;padding:0;display:flex;position:relative}.sidebar-logo svg,.sidebar-icon-btn svg,.sidebar-avatar-btn .sidebar-avatar{flex-shrink:0}.sidebar-label{display:none}.sidebar-avatar{background:var(--color-accent-bg);width:28px;height:28px;color:var(--color-accent-text);border-radius:50%;place-items:center;font-size:12px;font-weight:600;display:grid;overflow:hidden}.sidebar-avatar-img{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.sidebar [data-tooltip]:after{content:attr(data-tooltip);background:var(--fg);color:var(--bg);font-family:var(--sans);white-space:nowrap;pointer-events:none;opacity:0;z-index:1000;border-radius:6px;padding:5px 9px;font-size:12px;font-weight:500;line-height:1;transition:opacity 80ms,transform 80ms;position:absolute;top:50%;left:calc(100% + 10px);transform:translateY(-50%)translate(-4px);box-shadow:0 4px 12px oklch(0% 0 0/.12)}.sidebar [data-tooltip]:hover:after,.sidebar [data-tooltip]:focus-visible:after{opacity:1;transform:translateY(-50%)translate(0)}.sidebar [data-tooltip]:before{content:"";border-top:5px solid #0000;border-bottom:5px solid #0000;border-right:6px solid var(--fg);pointer-events:none;opacity:0;z-index:1000;width:0;height:0;transition:opacity 80ms;position:absolute;top:50%;left:calc(100% + 4px);transform:translateY(-50%)}.sidebar [data-tooltip]:hover:before,.sidebar [data-tooltip]:focus-visible:before{opacity:1}.coef-mode-toggle{background:var(--bg-hover);border-radius:8px;gap:4px;margin-bottom:8px;padding:3px;display:flex}.coef-mode-btn{cursor:pointer;color:var(--fg-muted);background:0 0;border:none;border-radius:6px;flex:1;padding:6px 8px;font-size:13px}.coef-mode-btn.is-active{background:var(--bg);color:var(--fg);font-weight:600;box-shadow:0 1px 2px #00000014}.coef-mode-btn:disabled{cursor:default;opacity:.6}.coef-hint{color:var(--fg-muted);margin:6px 0 0;font-size:12px;line-height:1.4}.coef-list{flex-direction:column;gap:2px;margin:8px 0 0;padding:0;list-style:none;display:flex}.coef-item{border-top:1px solid var(--border-subtle);align-items:center;gap:8px;padding:6px 2px;display:flex}.coef-item:first-child{border-top:none}.coef-item.is-disabled{opacity:.5}.coef-item-enable{align-items:center;display:flex}.coef-item-body{flex-direction:column;flex:1;min-width:0;display:flex}.coef-item-label{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.coef-item-meta{color:var(--fg-muted);align-items:center;gap:6px;margin-top:2px;font-size:11px;display:flex}.discount-applied-amount{font-variant-numeric:tabular-nums}.coef-item-rate.discount-rate{flex:none;justify-content:flex-end;align-items:center;gap:6px;min-width:0;display:flex}.discount-kind-select{border:1px solid var(--border-strong);background:var(--bg-hover);color:var(--fg);cursor:pointer;text-align:center;appearance:none;border-radius:6px;flex:none;padding:2px 8px;font-size:12px}.coef-item-rate{font-variant-numeric:tabular-nums;text-align:right;min-width:56px;font-size:13px}.coef-item-remove{color:var(--fg-muted);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:18px;line-height:1}.coef-item-remove:hover{color:var(--color-danger-solid)}.coef-add{gap:6px;margin-top:8px;display:flex}.coef-add-select{flex:1;min-width:0}.coef-add-custom{align-items:center}.coef-add-label{flex:1;min-width:0}.coef-add-rate-field{flex:none;position:relative}.coef-add-rate{width:66px;padding-right:20px}.coef-add-rate-suffix{color:var(--fg-muted);pointer-events:none;font-size:12px;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.coef-recap{flex-direction:column;gap:4px;display:flex}.coef-recap-row{color:var(--fg-muted);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:13px;display:flex}.coef-recap-total{border-top:1px solid var(--border-subtle);color:var(--fg);margin-top:2px;padding-top:4px;font-weight:600}.discount-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.discount-header h3{margin:0}.discount-add-toggle{border:1px solid var(--border-strong);background:var(--bg);width:24px;height:24px;color:var(--fg-muted);cursor:pointer;border-radius:7px;flex:none;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.discount-add-toggle:hover{background:var(--bg-hover);color:var(--fg)}.lib-coef-list{border:1px solid var(--border-strong);background:var(--bg);border-radius:10px;flex-direction:column;gap:6px;padding:8px 10px;display:flex}.lib-coef-option{cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.lib-coef-option input{flex-shrink:0}span.coef-rate-edit{background:var(--bg-hover);border-radius:6px;padding:2px 7px;transition:background .12s,box-shadow .12s}span.coef-rate-edit:hover{background:var(--bg-selected,var(--bg-hover));box-shadow:inset 0 0 0 1px var(--border-strong)}.coef-item-label span.coef-rate-edit{background:0 0;padding-left:0;padding-right:0}.invoices-screen{width:100%;max-width:1200px;margin:0 auto;padding:24px 32px}.invoices-screen-head{justify-content:space-between;align-items:flex-end;margin-bottom:20px;display:flex}.invoices-screen-head h2{margin:0;font-size:24px;font-weight:600}.invoices-screen-head .sub{color:var(--fg-muted);margin:4px 0 0;font-size:13px}.invoices-filters{gap:12px;margin-bottom:16px;display:flex}.invoices-filters input,.invoices-filters select{border:1px solid var(--border);background:var(--bg);height:34px;color:var(--fg);border-radius:6px;padding:0 10px;font-family:inherit;font-size:13px}.invoices-filters input:focus,.invoices-filters select:focus{border-color:var(--accent);outline:none}.invoices-search{flex:1;min-width:200px}.invoices-list{border:1px solid var(--border);background:var(--bg);border-radius:8px;overflow:hidden}.invoices-list-head,.invoices-list-row{grid-template-columns:110px 140px minmax(180px,1fr) 140px 140px 140px 100px;align-items:center;gap:12px;padding:10px 16px;font-size:13px;display:grid}.invoices-list-head{background:var(--bg-subtle);color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);font-size:12px;font-weight:500}.invoices-list-row{background:var(--bg);color:var(--fg);border:none;border-top:1px solid var(--border);text-align:left;cursor:pointer;width:100%;font-family:inherit}.invoices-list-row:first-of-type{border-top:none}.invoices-list-row:hover{background:var(--bg-hover)}.invoices-list-row .col-amount,.invoices-list-row .col-net{text-align:right;font-variant-numeric:tabular-nums}.invoices-list-head .col-amount,.invoices-list-head .col-net{text-align:right}.invoices-list-row .col-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.invoices-list-row .col-num{color:var(--fg-muted);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12.5px}.inv-kind-chip{text-transform:uppercase;letter-spacing:.03em;background:var(--bg-subtle);color:var(--fg-muted);border-radius:4px;justify-content:center;align-items:center;width:fit-content;padding:3px 8px;font-size:11.5px;font-weight:500;display:inline-flex}.inv-tone-info{color:var(--accent-fg,#2b45c9);background:#2b45c91a}.inv-tone-progress{color:var(--warning-500);background:#bd6a2b1f}.inv-tone-success{color:var(--color-success-solid);background:#4e82441f}.inv-tone-danger{color:var(--color-danger-solid);background:#b7432c1f}.inv-tone-neutral{background:var(--bg-subtle);color:var(--fg-muted)}.invoices-list-row [class^=status-]{text-transform:capitalize;font-size:12px}.invoices-list-row .status-draft{color:var(--fg-muted)}.invoices-list-row .status-issued{color:var(--accent-fg,#2b45c9);font-weight:500}.invoices-list-row .status-sent{color:var(--accent-fg,#2b45c9)}.invoices-list-row .status-paid{color:var(--color-success-solid);font-weight:500}.invoices-list-row .status-partial_paid{color:var(--warning-500)}.invoices-list-row .status-overdue{color:var(--color-danger-solid);font-weight:500}.invoices-list-row .status-cancelled{color:var(--fg-subtle);text-decoration:line-through}.invoice-workspace{background:var(--bg-subtle);min-height:100vh}.invoice-workspace:has(.workspace-body){background:var(--bg)}.invoice-workspace:has(.project-overview){background:var(--bg)}.invoice-workspace-main{flex-direction:column;gap:24px;padding:24px 28px 80px;display:flex}.invoice-aside-section{border-bottom:1px solid var(--border);flex-direction:column;gap:10px;padding:16px;display:flex}.invoice-aside-section:last-child{border-bottom:none}.invoice-aside-action:empty{display:none}.invoice-aside-summary{padding:0}.invoice-aside-timeline{flex:1;min-height:0;padding:0}.invoice-aside-summary .invoice-summary-card{border:none;border-radius:0;flex-direction:column;gap:16px;padding:16px;display:flex}.invoice-aside-timeline .invoice-timeline{border-right:none;height:100%}.invoice-workspace-heading{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.invoice-workspace-meta-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.invoice-workspace-title-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.status-badge.ref-badge{background:var(--bg-subtle);color:var(--fg);font-family:var(--mono);border:1px solid var(--border);text-transform:none;letter-spacing:0;align-items:center;gap:5px;display:inline-flex}.status-badge.ref-badge svg{width:11px;height:11px;color:var(--fg-muted)}.invoice-workspace-title{color:var(--fg);margin:0;font-size:24px;font-weight:600;line-height:1.3}.invoice-workspace-title .editable-title{background:0 0;border:none;border-radius:6px;padding:2px 0;transition:background .12s;display:inline-block}.invoice-workspace-title .editable-title:hover{background:var(--bg-subtle)}.invoice-workspace-title input.row-input{font:inherit;color:inherit;field-sizing:content;background:0 0;border:none;border-radius:6px;outline:none;min-width:4ch;max-width:100%;margin:0;padding:2px 0}.invoice-workspace-title input.row-input:focus{box-shadow:none;background:0 0}.app-header .status-badge.issued,.toolbar .status-badge.issued,.invoice-workspace-heading .status-badge.issued{background:var(--color-info-bg);color:var(--color-info-text)}.app-header .status-badge.partial_paid,.toolbar .status-badge.partial_paid,.invoice-workspace-heading .status-badge.partial_paid{background:var(--color-warning-bg);color:var(--color-warning-text)}.app-header .status-badge.paid,.toolbar .status-badge.paid,.invoice-workspace-heading .status-badge.paid{background:var(--color-success-bg);color:var(--color-success-text)}.app-header .status-badge.overdue,.toolbar .status-badge.overdue,.invoice-workspace-heading .status-badge.overdue{background:var(--color-danger-bg,#b7432c1f);color:var(--color-danger-text,#9c3522)}.app-header .status-badge.cancelled,.toolbar .status-badge.cancelled,.invoice-workspace-heading .status-badge.cancelled{background:var(--bg-subtle);color:var(--fg-subtle);text-decoration:line-through}.invoice-timeline{background:var(--bg);flex-direction:column;height:100%;min-height:0;padding:16px;display:flex;overflow:auto}.invoice-timeline-head{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.invoice-timeline-head h3{text-transform:uppercase;letter-spacing:.05em;color:var(--fg-muted);margin:0;font-size:13px;font-weight:600}.invoice-timeline-count{color:var(--fg-subtle);font-size:11px}.invoice-timeline-empty{color:var(--fg-muted);padding:16px 0;font-size:12px}.invoice-timeline-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.invoice-timeline-item{text-align:left;cursor:pointer;width:100%;color:var(--fg);background:0 0;border:1px solid #0000;border-radius:6px;grid-template-columns:32px 1fr;align-items:start;gap:10px;padding:8px 8px 8px 6px;font-family:inherit;font-size:12.5px;display:grid}.invoice-timeline-item:hover{background:var(--bg-hover)}.invoice-timeline-item.active{background:var(--bg-selected);border-color:var(--accent)}.invoice-timeline-item.is-draft{border-style:dashed}.invoice-timeline-chip{text-transform:uppercase;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;font-size:11px;font-weight:600;display:inline-flex}.invoice-timeline-body{flex-direction:column;gap:2px;min-width:0;display:flex}.invoice-timeline-row1{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.invoice-timeline-num{color:var(--fg-muted);text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11.5px;overflow:hidden}.invoice-timeline-live{text-transform:uppercase;letter-spacing:.05em;color:var(--accent-fg,#2b45c9);font-size:9.5px;font-weight:600}.invoice-timeline-amount{font-variant-numeric:tabular-nums;font-size:13px;font-weight:500}.invoice-timeline-bar{background:var(--bg-subtle);border-radius:2px;height:3px;margin-top:2px;overflow:hidden}.invoice-timeline-bar>span{background:var(--accent);height:100%;transition:width .2s;display:block}.invoice-timeline-new{border:1px dashed var(--border-strong);color:var(--fg-muted);cursor:pointer;background:0 0;border-radius:6px;margin-top:16px;padding:8px 12px;font-family:inherit;font-size:12.5px}.invoice-timeline-new:hover{border-color:var(--accent);color:var(--accent-fg,#2b45c9)}.invoice-summary-card{background:var(--bg);border:1px solid var(--border);border-radius:8px;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:32px;padding:20px 24px;display:grid}.invoice-summary-card-left,.invoice-summary-card-right{flex-direction:column;gap:16px;min-width:0;display:flex}.invoice-summary-card h3{text-transform:uppercase;letter-spacing:.05em;color:var(--fg-muted);margin:0 0 4px;font-size:11.5px;font-weight:600}.invoice-summary-card-intro{color:var(--fg-muted);margin:0;font-size:13px;line-height:1.55}.invoice-side-section{flex-direction:column;gap:8px;display:flex}.invoice-side-section-head{justify-content:space-between;align-items:baseline;display:flex}.invoice-side-section h4{text-transform:uppercase;letter-spacing:.05em;color:var(--fg-muted);margin:0;font-size:11.5px;font-weight:600}.invoice-side-link{color:var(--accent-fg,#2b45c9);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:11.5px}.invoice-side-link:hover{text-decoration:underline}.invoice-side-msg{color:var(--fg-muted);margin:0;font-size:12.5px;line-height:1.5}.invoice-side-hero{background:var(--bg-subtle);border-radius:8px;padding:14px 16px}.invoice-side-hero-label{text-transform:uppercase;letter-spacing:.05em;color:var(--fg-muted);margin-bottom:4px;font-size:11px}.invoice-side-hero-amount{font-variant-numeric:tabular-nums;font-size:22px;font-weight:600}.invoice-side-hero-due{color:var(--fg-muted);margin-top:4px;font-size:11.5px}.invoice-side-stats{flex-direction:column;gap:4px;margin:0;display:flex}.invoice-side-stats>div{justify-content:space-between;align-items:baseline;font-size:12.5px;display:flex}.invoice-side-stats dt{color:var(--fg-muted);font-weight:400}.invoice-side-stats dd{font-variant-numeric:tabular-nums;margin:0}.invoice-side-stats-row-strong{border-top:1px solid var(--border);padding-top:4px;font-weight:600}.invoice-side-stats-row-strong dt,.invoice-side-stats-row-strong dd{color:var(--fg);font-weight:600}.invoice-side-deduction{background:var(--bg-subtle);border-radius:6px;flex-direction:column;gap:2px;padding:8px 28px 8px 10px;font-size:12.5px;display:flex;position:relative}.invoice-side-deduction-row1{font-variant-numeric:tabular-nums;justify-content:space-between;display:flex}.invoice-side-deduction-num{color:var(--fg-muted);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11.5px}.invoice-side-deduction-amount{font-weight:500}.invoice-side-deduction-row2{color:var(--fg-muted);justify-content:space-between;font-size:11px;display:flex}.invoice-side-deduction-remove{width:18px;height:18px;color:var(--fg-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;font-size:14px;position:absolute;top:6px;right:6px}.invoice-side-deduction-remove:hover{background:var(--bg-hover);color:var(--fg)}.invoice-side-deduct-remaining{border:1px dashed var(--accent);background:var(--accent-soft,#2b45c914);width:100%;color:var(--accent-fg,#2b45c9);cursor:pointer;text-align:center;border-radius:6px;padding:8px 10px;font-family:inherit;font-size:12.5px;font-weight:500}.invoice-side-deduct-remaining:hover{background:var(--accent-soft,#2b45c929);border-style:solid}.side-panel-btn{width:100%;margin-top:4px}.invoice-editor{width:100%}.invoice-editor-head{margin-bottom:20px}.invoice-editor-head h2{margin:0 0 6px;font-size:22px;font-weight:600}.invoice-editor-meta{color:var(--fg-muted);flex-wrap:wrap;gap:14px;font-size:12.5px;display:flex}.invoice-editor-num{color:var(--fg);font-family:ui-monospace,SF Mono,Menlo,monospace}.invoice-editor-status{text-transform:capitalize;font-weight:500}.invoice-editor-empty,.invoice-editor-hint{color:var(--fg-muted);margin-top:16px;font-size:13px}.invoice-editor-deposit-card{background:var(--bg-subtle);border-radius:8px;flex-direction:column;gap:8px;margin-bottom:12px;padding:16px 20px;display:flex}.invoice-editor-deposit-row{justify-content:space-between;align-items:baseline;font-size:14px;display:flex}.invoice-editor-deposit-row strong{font-variant-numeric:tabular-nums;font-size:16px}.invoice-editor-table{border-collapse:collapse;width:100%;font-size:13px}.invoice-editor-table thead th{background:var(--bg);text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted);border-bottom:1px solid var(--border);padding:8px 10px;font-size:11.5px;font-weight:600;position:sticky;top:0}.invoice-editor-table .col-num{width:60px}.invoice-editor-table .col-qty{text-align:right;width:70px}.invoice-editor-table .col-unit{width:50px}.invoice-editor-table .col-progress{text-align:right;width:100px}.invoice-editor-table .col-amount{text-align:right;width:130px}.invoice-editor-table tbody td{border-bottom:1px solid var(--border);vertical-align:top;padding:6px 10px}.invoice-editor-row.is-section{background:var(--bg-subtle);font-weight:500}.invoice-editor-row .col-qty,.invoice-editor-row .col-progress,.invoice-editor-row .col-amount{font-variant-numeric:tabular-nums}.invoice-editor-desc{align-items:flex-start;gap:4px;display:flex}.invoice-indent-cell{flex-shrink:0;width:12px;height:18px;display:inline-block;position:relative}.invoice-indent-cell.tree:before{content:"";border-left:1px solid var(--tree-line,var(--border));position:absolute;top:0;bottom:0;left:50%}.invoice-indent-cell.tree.connect:after,.invoice-indent-cell.tree.last:after{content:"";border-top:1px solid var(--tree-line,var(--border));position:absolute;top:9px;left:50%;right:0}.invoice-indent-cell.tree.last:before{bottom:50%}.invoice-editor-name{font-weight:500}.invoice-editor-sub{color:var(--fg-muted);margin-top:2px;font-size:11.5px}.invoice-progress-readout{align-items:center;gap:6px;display:inline-flex}.invoice-progress-override{background:var(--accent-soft,#2b45c91f);width:16px;height:16px;color:var(--accent-fg,#2b45c9);border-radius:3px;justify-content:center;align-items:center;font-size:9.5px;font-weight:700;display:inline-flex}.invoice-editor-toolbar{align-items:center;gap:12px;margin-bottom:12px;display:flex}.invoice-card{border:1px solid var(--border);background:var(--bg);box-shadow:var(--shadow-sm);--row-h:36px;--indent:22px;border-radius:10px;overflow:clip}.invoice-thead,.invoice-row{min-height:var(--row-h);grid-template-columns:minmax(220px,1fr) 130px 140px 160px 130px;align-items:center;display:grid}.invoice-row{min-height:56px}.cell-stack{font-variant-numeric:tabular-nums;flex-direction:column;justify-content:center;align-items:flex-end;gap:2px;padding:6px;display:flex}.cell-stack-main{color:var(--fg);font-size:13px}.cell-stack-muted .cell-stack-main{color:var(--fg-muted)}.cell-stack-sub{color:var(--fg-muted);font-variant-numeric:tabular-nums;align-items:center;gap:8px;font-size:11.5px;display:inline-flex}.cell-stack-muted .cell-stack-sub,.cell-stack-sub-qty,.cell-stack-muted .cell-stack-sub-qty{color:var(--fg-subtle)}.invoice-actuel-row{align-items:center;gap:6px;display:inline-flex}.invoice-row .stepper .value{box-sizing:border-box;width:52px;min-width:52px;padding:0 6px}.invoice-row .stepper .value .row-num-edit .row-input-num{flex:none;width:28px;max-width:28px}.invoice-preview-a4{flex-direction:column;gap:18px;display:flex}.invoice-preview-head{grid-template-columns:1fr 1fr;align-items:start;gap:32px;display:grid}.invoice-preview-issuer,.invoice-preview-customer{color:var(--fg);font-size:11px;line-height:1.5}.invoice-preview-logo{letter-spacing:-.01em;margin-bottom:6px;font-size:16px;font-weight:700}.invoice-preview-logo img{object-fit:contain;max-width:220px;max-height:64px;display:block}.invoice-preview-customer-label{text-transform:uppercase;letter-spacing:.06em;color:var(--fg-muted);margin-bottom:4px;font-size:10px}.invoice-preview-customer-name{margin-bottom:4px;font-size:13px;font-weight:600}.invoice-preview-addr{color:var(--fg)}.invoice-preview-meta-line{color:var(--fg-muted);margin-top:2px;font-size:10px}.invoice-preview-title-block{border-top:2px solid var(--border-strong);border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-end;gap:24px;padding:14px 0 12px;display:flex}.invoice-preview-title{letter-spacing:-.02em;margin:0;font-size:22px;font-weight:700}.invoice-preview-meta{grid-template-columns:auto auto;gap:4px 14px;margin:0;font-size:11px;display:grid}.invoice-preview-meta dt{color:var(--fg-muted);text-align:right}.invoice-preview-meta dd{font-variant-numeric:tabular-nums;margin:0;font-weight:500}.invoice-preview-intro{color:var(--fg-muted);margin:0;font-size:12px;line-height:1.5}.invoice-preview-table{font-size:11px}.invoice-preview-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.invoice-preview-period{font-weight:600}.invoice-preview-totals{flex-direction:column;align-self:flex-end;gap:4px;width:min(360px,50%);margin-top:6px;font-size:12px;display:flex}.invoice-preview-totals-row{justify-content:space-between;align-items:baseline;display:flex}.invoice-preview-totals-row span{color:var(--fg-muted)}.invoice-preview-totals-row strong{color:var(--fg);font-variant-numeric:tabular-nums;font-weight:500}.invoice-preview-totals-strong{border-top:1px solid var(--border);padding-top:4px}.invoice-preview-totals-strong span,.invoice-preview-totals-strong strong{color:var(--fg);font-weight:600}.invoice-preview-deductions{border-top:1px dashed var(--border);flex-direction:column;gap:3px;margin-top:2px;padding-top:4px;display:flex}.invoice-preview-totals-grand{border-top:2px solid var(--fg);margin-top:4px;padding-top:6px;font-size:14px}.invoice-preview-totals-grand span,.invoice-preview-totals-grand strong{color:var(--fg);font-weight:700}.invoice-preview-payment{border-top:1px solid var(--border);color:var(--fg);margin-top:12px;padding-top:12px;font-size:11px}.invoice-preview-payment h3{text-transform:uppercase;letter-spacing:.05em;color:var(--fg-muted);margin:0 0 4px;font-size:11px;font-weight:600}.invoice-preview-payment p{margin:2px 0}.invoice-preview-legal{border-top:1px solid var(--border);color:var(--fg-muted);margin-top:8px;padding-top:10px;font-size:9px;line-height:1.5}.invoice-preview-legal p{margin:2px 0}.new-invoice-dialog{max-width:480px}.new-invoice-options{flex-direction:column;gap:6px;margin:0;padding:12px 12px 0;list-style:none;display:flex}.new-invoice-option{border:1px solid var(--border);background:var(--bg);text-align:left;cursor:pointer;width:100%;color:var(--fg);border-radius:6px;grid-template-columns:24px 1fr;align-items:start;gap:12px;padding:12px;font-family:inherit;display:grid}.new-invoice-option:hover:not(.disabled):not(:disabled){background:var(--bg-hover);border-color:var(--border-strong)}.new-invoice-option.selected{border-color:var(--accent);background:var(--bg-selected)}.new-invoice-option.disabled,.new-invoice-option:disabled{opacity:.5;cursor:not-allowed}.new-invoice-option-radio{border:1.5px solid var(--border-strong);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;margin-top:2px;display:inline-flex}.new-invoice-option.selected .new-invoice-option-radio{border-color:var(--accent)}.new-invoice-option-radio .dot{background:0 0;border-radius:50%;width:10px;height:10px;transition:background .1s}.new-invoice-option.selected .new-invoice-option-radio .dot{background:var(--accent)}.new-invoice-option-body{flex-direction:column;gap:3px;min-width:0;display:flex}.new-invoice-option-label{font-size:13.5px;font-weight:600}.new-invoice-option-desc{color:var(--fg-muted);font-size:12px;line-height:1.45}.cell-stack .invoice-progress-cell{align-items:center;gap:4px;display:inline-flex}.cell-stack .invoice-progress-cell input,.cell-stack .invoice-progress-cell span{font-size:11.5px}.invoice-thead{border-bottom:1px solid var(--border);background:var(--bg-subtle);text-transform:uppercase;letter-spacing:.04em;height:36px;color:var(--fg-muted);z-index:5;align-items:center;padding:0 8px 0 4px;font-size:11px;font-weight:500}.invoice-thead>div{white-space:nowrap;text-align:right;text-overflow:ellipsis;padding:0 6px;overflow:hidden}.invoice-thead>div:first-child{text-align:left}.invoice-row .cell-qty,.invoice-row .cell-progress,.invoice-row .cell-num{text-align:right;font-variant-numeric:tabular-nums}.invoice-row{border-bottom:1px solid var(--border);background:var(--bg);padding:0 8px 0 4px;font-size:13px;position:relative}.invoice-row:last-child{border-bottom:none}.invoice-row.is-pending{opacity:.7}.invoice-row>*{padding-left:6px;padding-right:6px}.invoice-row .row-text{flex-wrap:wrap}.invoice-row-sub{color:var(--fg-muted);flex-basis:100%;margin-top:2px;font-size:11.5px;line-height:1.4}.invoice-row .row-designation{min-width:0}.invoice-row .cell-qty{justify-content:flex-end;align-items:baseline;gap:4px;display:flex}.invoice-readonly-num{font-variant-numeric:tabular-nums}.invoice-unit-readonly{color:var(--fg-muted);font-size:11.5px}.invoice-row .cell-progress{text-align:right}.invoice-progress-cell{justify-content:flex-end;align-items:center;gap:6px;display:inline-flex}.invoice-progress-reset{color:var(--accent-fg,#2b45c9);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 4px;font-family:inherit;font-size:10.5px}.invoice-progress-reset:hover{background:var(--bg-hover);text-decoration:underline}.invoice-pct-derived input,.invoice-pct-derived span{color:var(--fg-muted);font-style:italic}.invoice-row .cell-num.total{font-weight:600}.invoice-card .empty-state{color:var(--fg-muted);flex-direction:column;align-items:center;gap:4px;padding:40px 20px;font-size:13px;display:flex}.deposit-form-title{margin-bottom:6px;font-size:22px;font-weight:600;display:block}.deposit-form-card{background:var(--bg);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:14px;max-width:560px;margin-bottom:16px;padding:16px 20px;display:flex}.deposit-form-row{justify-content:space-between;align-items:baseline;gap:16px;font-size:13.5px;display:flex}.deposit-form-row label{color:var(--fg-muted);font-weight:400}.deposit-form-row-amount{font-size:15px}.deposit-form-row-amount .row-num-edit input,.deposit-form-row-amount span{font-variant-numeric:tabular-nums;font-size:18px;font-weight:600}.deposit-form-amount-input{text-align:right}.deposit-form-readonly{font-variant-numeric:tabular-nums;font-weight:500}.deposit-form-date{border:1px solid var(--border);background:var(--bg);color:var(--fg);border-radius:4px;padding:4px 6px;font-family:inherit;font-size:13px}.deposit-form-date:focus{border-color:var(--accent);outline:none}.deposit-form-card hr{border:none;border-top:1px solid var(--border);margin:0}.deposit-form-recap{flex-direction:column;gap:4px;display:flex}.deposit-form-recap-row{justify-content:space-between;font-size:13px;display:flex}.deposit-form-recap-row strong{font-variant-numeric:tabular-nums}.deposit-form-recap-grand{border-top:1px solid var(--border);margin-top:4px;padding-top:6px;font-size:14px;font-weight:600}.deduction-picker-backdrop{z-index:100;background:#0006;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.deduction-picker{background:var(--bg);border-radius:10px;flex-direction:column;width:100%;max-width:560px;max-height:80vh;display:flex;overflow:hidden;box-shadow:0 20px 50px #0003}.deduction-picker-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.deduction-picker-head h2{margin:0;font-size:16px;font-weight:600}.deduction-picker-close{width:28px;height:28px;color:var(--fg-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;font-size:22px;line-height:1}.deduction-picker-close:hover{background:var(--bg-hover);color:var(--fg)}.deduction-picker-msg{color:var(--fg-muted);text-align:center;margin:0;padding:24px 20px;font-size:13px}.deduction-picker-list{flex:1;min-height:0;margin:0;padding:12px 12px 0;list-style:none;overflow-y:auto}.deduction-picker-list li{padding:0}.deduction-picker-item{border:1px solid var(--border);background:var(--bg);text-align:left;cursor:pointer;width:100%;color:var(--fg);border-radius:6px;grid-template-columns:24px minmax(140px,1fr) auto;align-items:center;gap:12px;margin-bottom:4px;padding:10px 12px;font-family:inherit;font-size:13px;display:grid}.deduction-picker-item:hover{background:var(--bg-hover)}.deduction-picker-item.selected{border-color:var(--accent);background:var(--bg-selected)}.deduction-picker-radio{border:1.5px solid var(--border-strong);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}.deduction-picker-item.selected .deduction-picker-radio{border-color:var(--accent)}.deduction-picker-radio .dot{background:0 0;border-radius:50%;width:10px;height:10px;transition:background .1s}.deduction-picker-item.selected .deduction-picker-radio .dot{background:var(--accent)}.deduction-picker-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.deduction-picker-num{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12.5px;font-weight:500}.deduction-picker-date{color:var(--fg-muted);font-size:11.5px}.deduction-picker-amounts{color:var(--fg-muted);text-align:right;font-variant-numeric:tabular-nums;flex-direction:column;gap:1px;font-size:11.5px;display:flex}.deduction-picker-amounts em{text-align:left;width:50px;color:var(--fg-subtle);font-style:normal;display:inline-block}.deduction-picker-amounts .strong{color:var(--fg);font-weight:600}.deduction-picker-unavail{color:var(--fg-muted);margin:8px 12px 0;padding:0 4px;font-size:11.5px}.deduction-picker-unavail summary{cursor:pointer;padding:4px 0}.deduction-picker-unavail ul{margin:4px 0 0;padding:0 0 0 12px;list-style:none}.deduction-picker-unavail li{padding:2px 0}.deduction-picker-amount{border-top:1px solid var(--border);background:var(--bg-subtle);flex-direction:column;gap:6px;padding:12px 20px;display:flex}.deduction-picker-amount label{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:500}.deduction-picker-amount-row{align-items:center;gap:10px;display:flex}.deduction-picker-amount-row input{border:1px solid var(--border);background:var(--bg);height:34px;color:var(--fg);font-variant-numeric:tabular-nums;border-radius:6px;flex:1;padding:0 10px;font-family:inherit;font-size:14px}.deduction-picker-amount-row input:focus{border-color:var(--accent);outline:none}.deduction-picker-amount-suffix{color:var(--fg-muted);font-size:13px}.deduction-picker-amount-pct{color:var(--fg-muted);margin-left:auto;font-size:11.5px}.deduction-picker-error{color:var(--color-danger,#9c3522);border-top:1px solid var(--border);background:#b7432c14;padding:8px 20px;font-size:12.5px}.deduction-picker-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.project-overview{box-sizing:content-box;flex-direction:column;gap:24px;max-width:1280px;margin-inline:auto;display:flex}.overview-estimate-notice{background:var(--color-info-bg);border:1px solid var(--color-info-border);color:var(--color-info-text);border-radius:10px;padding:10px 14px;font-size:13px;line-height:1.4}.overview-estimate-notice strong{font-weight:600}.overview-kpis{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;display:grid}.overview-kpi{background:var(--bg);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:6px;padding:16px 18px;transition:border-color .12s;display:flex}.overview-kpi:hover{border-color:var(--border-strong)}.overview-kpi header{justify-content:space-between;align-items:center;gap:8px;display:flex}.overview-kpi-pct{font-variant-numeric:tabular-nums;background:var(--bg-subtle);color:var(--fg-muted);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.overview-kpi-margin-good .overview-kpi-pct{background:var(--color-success-bg);color:var(--color-success-text)}.overview-kpi-margin-warn .overview-kpi-pct{background:var(--color-warning-bg);color:var(--color-warning-text)}.overview-kpi-margin-bad .overview-kpi-pct{background:var(--color-danger-bg);color:var(--color-danger-text)}.overview-kpi-danger{border-color:#b7432c59}.overview-kpi-pill{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.overview-kpi-pill.is-danger{background:var(--color-danger-bg);color:var(--color-danger-text)}.overview-kpi-label{color:var(--fg-muted);margin-bottom:20px;font-size:11px;font-weight:600}.overview-kpi-value{color:var(--fg);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:auto;font-size:24px;font-weight:400}.overview-kpi-value-row{align-items:baseline;gap:10px;margin-top:auto;display:flex}.overview-kpi-value-row .overview-kpi-value{margin-top:0}.overview-kpi-caption{color:var(--fg-muted);font-size:12px}.overview-progress{background:var(--bg-subtle);border-radius:999px;height:6px;margin-top:4px;overflow:hidden}.overview-progress-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .24s cubic-bezier(.4,0,.2,1)}.overview-section{background:var(--bg);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:12px;padding:24px;display:flex}.overview-section-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.overview-section-head h2{color:var(--fg);align-items:center;gap:6px;margin:0;font-size:13px;font-weight:600;display:inline-flex}.overview-section-titles{flex-direction:column;gap:2px;display:flex}.overview-section-sub{color:var(--fg-muted);margin:0;font-size:12px;font-weight:400}.overview-section-count{color:var(--fg-muted);background:var(--bg-subtle);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.overview-section-empty{color:var(--fg-muted);margin:0;font-size:13px}.overview-timeline{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex;position:relative}.overview-timeline:before{content:"";background:var(--tree-line,var(--border));width:1px;position:absolute;top:12px;bottom:12px;left:5px}.overview-timeline-row{align-items:stretch;gap:12px;padding:4px 0;display:flex;position:relative}.overview-timeline-marker{background:var(--bg);border:2px solid var(--border-strong);z-index:1;border-radius:999px;flex-shrink:0;width:11px;height:11px;margin-top:14px;position:relative}.overview-timeline-marker-accepted{border-color:var(--color-success-solid)}.overview-timeline-marker-success{border-color:var(--color-success-solid);background:var(--color-success-bg-strong)}.overview-timeline-marker-progress{border-color:var(--color-warning-border);background:var(--color-warning-bg-strong)}.overview-timeline-marker-danger{border-color:var(--color-danger-solid);background:var(--color-danger-bg-strong)}.overview-timeline-marker-info{border-color:var(--accent);background:var(--accent-soft)}.overview-timeline-marker-neutral{border-color:var(--border-strong)}.overview-timeline-card{cursor:pointer;text-align:left;font:inherit;color:var(--fg);background:0 0;border:1px solid #0000;border-radius:8px;flex:1;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;transition:background .12s,border-color .12s;display:flex}.overview-timeline-card:hover{background:var(--bg-hover);border-color:var(--border)}.overview-timeline-card-main{align-items:center;gap:8px;min-width:0;display:flex}.overview-timeline-title{color:var(--fg);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.overview-timeline-card-meta{flex-shrink:0;align-items:center;gap:16px;display:flex}.overview-timeline-amount{color:var(--fg);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.overview-timeline-date{color:var(--fg-muted);font-variant-numeric:tabular-nums;text-align:right;min-width:80px;font-size:12px}.overview-charts-row{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;display:grid}.progress-segmented{flex-direction:column;gap:10px;display:flex}.progress-segmented-track{background:var(--bg-subtle);border-radius:999px;height:12px;display:flex;overflow:hidden}.progress-segmented-fill{height:100%;transition:width .24s cubic-bezier(.4,0,.2,1)}.progress-segmented-fill.is-paid{background:var(--chart-success,#4e8244)}.progress-segmented-fill.is-issued{background:var(--chart-info,#2b45c9)}.progress-segmented-fill.is-remaining{background:0 0}.progress-segmented-legend{margin:0;padding:0;list-style:none}.progress-segmented.is-vertical .progress-segmented-legend{flex-direction:column;gap:6px;display:flex}.progress-segmented.is-vertical .progress-segmented-legend li{grid-template-columns:10px 1fr auto;align-items:center;gap:8px;font-size:12.5px;display:grid}.progress-segmented.is-horizontal .progress-segmented-legend{flex-wrap:wrap;align-items:center;gap:24px;display:flex}.progress-segmented.is-horizontal .progress-segmented-legend li{align-items:baseline;gap:8px;font-size:13px;display:inline-flex}.progress-segmented-legend .dot{border-radius:999px;flex-shrink:0;align-self:center;width:10px;height:10px}.progress-segmented-legend .dot-paid{background:var(--chart-success,#4e8244)}.progress-segmented-legend .dot-issued{background:var(--chart-info,#2b45c9)}.progress-segmented-legend .dot-remaining{border:1px dashed var(--border-strong);background:0 0}.progress-segmented-legend .lbl{color:var(--fg-muted)}.progress-segmented-legend .amt{color:var(--fg);font-variant-numeric:tabular-nums;font-weight:500}.overview-progress-banner{background:var(--bg);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:12px;padding:16px 18px;display:flex}.overview-progress-banner-head{align-items:baseline;gap:12px;display:flex}.overview-progress-banner-value{color:var(--fg);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-left:auto;font-size:22px;font-weight:600}.kind-donut{align-items:center;gap:20px;display:flex}.kind-donut-svg{flex-shrink:0}.kind-donut-total-label{fill:var(--fg-muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}.kind-donut-total-amount{fill:var(--fg);font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}.kind-donut-legend{flex-direction:column;flex:1;gap:6px;min-width:0;margin:0;padding:0;list-style:none;display:flex}.kind-donut-legend li{grid-template-columns:10px 1fr auto auto;align-items:center;gap:10px;font-size:12.5px;display:grid}.kind-donut-legend .dot{border-radius:2px;width:10px;height:10px}.kind-donut-legend .lbl{color:var(--fg)}.kind-donut-legend .cnt{color:var(--fg-muted);font-size:11px}.kind-donut-legend .amt{color:var(--fg);font-variant-numeric:tabular-nums;font-weight:500}.cashflow-chart{width:100%}.cashflow-tooltip{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:8px 10px;font-size:12px;box-shadow:0 4px 12px #00000014}.cashflow-tooltip-label{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:11px}.cashflow-tooltip-row{grid-template-columns:10px 1fr auto;align-items:center;gap:8px;padding:2px 0;display:grid}.cashflow-tooltip-row .dot{border-radius:999px;width:8px;height:8px}.cashflow-tooltip-row .lbl{color:var(--fg-muted)}.cashflow-tooltip-row .amt{color:var(--fg);font-variant-numeric:tabular-nums;font-weight:600}.spend-donut-over{fill:var(--color-danger-solid);color:var(--color-danger-text)}.spend-donut-budget{border-top:1px dashed var(--border);color:var(--fg-muted);margin-top:2px;padding-top:6px}.spend-donut-budget .lbl{color:var(--fg-muted)}.overview-map-duration{color:var(--color-accent-text);background:var(--color-accent-bg);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.overview-map-canvas{border:1px solid var(--border);background:var(--bg-subtle);z-index:0;border-radius:10px;width:100%;height:300px;overflow:hidden}.overview-map-pin-dot{border:2.5px solid #fff;border-radius:50%;width:16px;height:16px;display:block;box-shadow:0 1px 3px #14140f59}.overview-map-legend{flex-wrap:wrap;gap:8px 24px;display:flex}.overview-map-legend-item{align-items:center;gap:6px;min-width:0;font-size:12px;display:inline-flex}.overview-map-legend-label{color:var(--fg);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.overview-map-legend-city{color:var(--fg-muted)}.overview-map-note{color:var(--fg-subtle);margin:0;font-size:11px}.overview-map-canvas .leaflet-container{font-family:var(--sans);background:var(--bg-subtle)}.overview-map-canvas .leaflet-control-attribution{background:#ffffffb3;font-size:9px}.market-composition{border:1px solid var(--border);background:var(--bg);border-radius:10px;margin-bottom:20px;padding:14px 16px}.market-composition-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.market-composition-title{text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted);font-size:12px;font-weight:500}.market-composition-total{font-variant-numeric:tabular-nums;color:var(--fg);font-size:15px;font-weight:600}.market-composition-track{background:var(--bg-subtle);border-radius:12px;gap:2px;height:32px;display:flex;overflow:hidden}.market-composition-fill{height:100%;transition:width .24s cubic-bezier(.4,0,.2,1)}.market-composition-fill.is-main{background:var(--brand-500)}.market-composition-fill.is-amendment{background:var(--brand-300)}.market-composition-legend{flex-wrap:wrap;gap:24px;margin:10px 0 0;padding:0;list-style:none;display:flex}.market-composition-legend li{align-items:baseline;gap:8px;font-size:13px;display:inline-flex}.market-composition-legend .dot{border-radius:999px;flex-shrink:0;align-self:center;width:10px;height:10px}.market-composition-legend .dot.is-main{background:var(--brand-500)}.market-composition-legend .dot.is-amendment{background:var(--brand-300)}.market-composition-legend .lbl{color:var(--fg)}.market-composition-legend .amt{color:var(--fg-muted);font-variant-numeric:tabular-nums}.project-quotes-list .invoices-list-head,.project-quotes-list .invoices-list-row{grid-template-columns:140px 1fr 120px 130px 130px 110px 40px}.project-quotes-list .inv-kind-chip{white-space:nowrap}.project-quotes-list .col-date{text-align:right}.project-quote-row{cursor:pointer;transition:background .12s}.project-quote-row:hover{background:var(--bg-hover)}.project-quote-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.project-quotes-list .col-actions{justify-content:center;align-items:center;display:flex}.quote-delete-btn{cursor:pointer;width:28px;height:28px;color:var(--fg-muted);opacity:0;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;transition:opacity .12s,background .12s,color .12s,border-color .12s;display:inline-flex}.project-quote-row:hover .quote-delete-btn,.quote-delete-btn:focus-visible{opacity:1}.quote-delete-btn:hover{color:var(--color-danger-solid);background:#b7432c14;border-color:#b7432c59}.delete-quote-dialog{max-width:460px}.delete-quote-body{color:var(--fg);flex-direction:column;gap:10px;padding:20px;font-size:14px;display:flex}.delete-quote-body p{margin:0}.delete-quote-warning{color:var(--color-danger-solid);font-size:13px}.delete-quote-actions{border-top:1px solid var(--border);background:var(--bg-subtle);justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}.btn.danger{background:var(--color-danger-solid);border-color:var(--color-danger-solid);color:#fff}.btn.danger:hover:not(:disabled){background:var(--color-danger-solid-hover);border-color:var(--color-danger-solid-hover)}.btn.danger:disabled{opacity:.55;cursor:not-allowed}.project-quote-row .col-title{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.quote-class-badge{text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;background:var(--color-info-bg);color:var(--color-info-text);border-radius:9px;padding:2px 7px;font-size:10px;font-weight:500}.quote-class-badge.amendment{background:var(--color-warning-bg);color:var(--color-warning-text)}.consultations-filter-row{align-items:center;gap:16px;margin-top:12px;display:flex}.consultations-quote-filter{color:var(--fg-muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.consultations-quote-filter>span{text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:500}.consultations-quote-filter select{font:inherit;color:var(--fg);background:var(--bg);border:1px solid var(--border);cursor:pointer;border-radius:6px;max-width:280px;padding:4px 8px;font-size:13px;transition:border-color .12s}.consultations-quote-filter select:hover{border-color:var(--fg-muted)}.consultations-quote-filter select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--color-focus-ring,#2b45c926);outline:none}.consultations-groups{flex-direction:column;gap:20px;display:flex}.consultations-group{background:var(--bg);border:1px solid var(--border);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.consultations-group-head{background:var(--bg-subtle);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;display:flex}.consultations-group-head-main{min-width:0;color:var(--fg);align-items:center;gap:8px;display:inline-flex}.consultations-group-lot-code{color:var(--fg-muted);background:var(--bg-subtle);letter-spacing:.04em;text-transform:uppercase;font-variant-numeric:tabular-nums;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.consultations-group-lot-name{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.consultations-group-quote-badge{color:var(--fg-muted);border:1px solid var(--border);letter-spacing:.02em;font-variant-numeric:tabular-nums;border-radius:999px;flex-shrink:0;padding:1px 6px;font-size:10px;font-weight:600}.consultations-group-counts{color:var(--fg-muted);flex-shrink:0;align-items:center;gap:8px;font-size:12px;display:inline-flex}.consultations-group-coverage{text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.consultations-group-coverage.is-full{color:var(--color-success-solid);background:#4e82441f}.consultations-group-coverage.is-partial{color:var(--warning-500);background:#bd6a2b24}.consultations-blocks{flex-direction:column;display:flex}.consultation-block{border-top:1px solid var(--border);flex-direction:column;gap:12px;padding:16px 18px;display:flex}.consultation-block:first-child{border-top:none}.consultation-block-head{flex-direction:column;gap:8px;display:flex}.consultation-block-head-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.consultation-block-title{color:var(--fg);letter-spacing:-.01em;margin:0;font-size:16px;font-weight:600}.consultation-block-actions{align-items:center;gap:8px;margin-left:auto;display:inline-flex}.consultation-block-description{color:var(--fg-muted);white-space:pre-wrap;margin:0;font-size:13px}.consultation-block-meta{color:var(--fg-muted);flex-wrap:wrap;align-items:center;gap:16px;font-size:12px;display:inline-flex}.consultation-block-meta>span{align-items:center;gap:6px;display:inline-flex}.consultation-status-chip{white-space:nowrap;text-transform:uppercase;letter-spacing:.03em;border-radius:999px;padding:2px 10px;font-size:11px;font-weight:600}.consultation-status-chip.is-draft{background:var(--bg-subtle);color:var(--fg-muted)}.consultation-status-chip.is-sent{color:var(--info-500);background:#2b45c91f}.consultation-status-chip.is-in_progress{color:var(--warning-500);background:#bd6a2b24}.consultation-status-chip.is-partial_awarded{color:var(--color-success-solid);background:#4e82441a}.consultation-status-chip.is-awarded{color:var(--color-success-solid);background:#4e824429}.consultation-status-chip.is-cancelled{color:var(--color-danger-solid);background:#b7432c1f}.consultation-matrix-scroll{border:1px solid var(--border);background:var(--bg);border-radius:10px;overflow:hidden}.consultation-matrix{width:100%;display:grid}.consultation-matrix-cell{border-bottom:1px solid var(--border);border-right:1px solid var(--border);background:var(--bg);align-items:center;min-height:44px;padding:8px 12px;font-size:13px;display:flex;position:relative}.consultation-matrix-cell.is-last-col{border-right:none}.consultation-matrix-cell.is-header{background:var(--bg-subtle);z-index:2;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;align-items:stretch;padding:10px 12px;font-size:11px;font-weight:600;position:sticky;top:0}.consultation-matrix-cell.is-header.is-first-col{z-index:3}.consultation-matrix-cell.is-header.is-participant-col{padding:0}.consultation-matrix-cell.is-first-col{z-index:1;background:var(--bg);border-right:1px solid var(--border);position:sticky;left:0}.consultation-matrix-cell.kind-section,.consultation-matrix-cell.kind-subsection,.consultation-matrix-cell.is-first-col.kind-section,.consultation-matrix-cell.is-first-col.kind-subsection{background:var(--bg-subtle)}.consultation-matrix-row:hover .consultation-matrix-cell,.consultation-matrix-row.tree-row:hover .consultation-matrix-cell{background:var(--bg-hover)}.consultation-matrix-line{align-items:center;gap:8px;width:100%;min-width:0;display:flex}.consultation-matrix-line-indent{flex-shrink:0;display:inline-block}.consultation-matrix-line .row-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;overflow:hidden}.consultation-matrix-line-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.consultation-matrix-line-main .row-name{flex:initial}.consultation-matrix-ref-prices{flex-wrap:wrap;gap:6px;display:inline-flex}.consultation-matrix-ref-price{white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:.01em;border-radius:999px;padding:1px 6px;font-size:10px;font-weight:500}.consultation-matrix-ref-price.is-sale{color:var(--info-500);background:#2b45c91a}.consultation-matrix-ref-price.is-purchase{background:var(--bg-subtle);color:var(--fg-muted);border:1px dashed var(--border)}.consultation-matrix-ref-price.is-margin{color:var(--color-success-solid);background:#4e82441a;font-weight:600}.consultation-matrix-ref-price.is-margin.is-negative{color:var(--color-danger-solid);background:#b7432c1a}.consultation-matrix-amount-stack{flex-direction:column;align-items:flex-end;gap:2px;width:100%;min-width:0;display:inline-flex}.consultation-matrix-cell-margin{color:var(--color-success-solid);font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:.01em;font-size:10px;font-weight:600}.consultation-matrix-cell-margin.is-negative{color:var(--color-danger-solid)}.consultation-matrix-cell.kind-section .row-name,.consultation-matrix-cell.kind-subsection .row-name{font-weight:600}.consultation-matrix-line-qty{color:var(--fg-muted);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;font-size:11px}.consultation-matrix-detail-btn{background:var(--bg);border:1px solid var(--border);width:26px;height:26px;color:var(--fg-muted);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;padding:0;transition:background .12s,color .12s,border-color .12s,box-shadow .12s;display:inline-flex}.consultation-matrix-detail-btn:hover{background:var(--bg-hover);color:var(--fg);border-color:var(--fg-muted)}.consultation-matrix-detail-btn.is-on{background:var(--accent,#5a71dc);color:#fff;border-color:var(--accent,#5a71dc);box-shadow:0 1px 2px #2b45c94d}.consultation-matrix-detail-btn.is-on:hover{background:var(--accent-strong,#2b45c9);border-color:var(--accent-strong,#2b45c9)}.consultation-matrix-detail-btn[data-tooltip]{position:relative}.consultation-matrix-detail-btn[data-tooltip]:after{content:attr(data-tooltip);background:var(--fg);color:var(--bg);font-family:var(--sans);white-space:nowrap;pointer-events:none;opacity:0;z-index:1000;border-radius:6px;padding:5px 9px;font-size:12px;font-weight:500;line-height:1;transition:opacity 80ms,transform 80ms;position:absolute;top:50%;right:calc(100% + 10px);transform:translateY(-50%)translate(4px);box-shadow:0 4px 12px #0000001f}.consultation-matrix-detail-btn[data-tooltip]:hover:after,.consultation-matrix-detail-btn[data-tooltip]:focus-visible:after{opacity:1;transform:translateY(-50%)translate(0)}.consultation-matrix-detail-btn[data-tooltip]:before{content:"";border-top:5px solid #0000;border-bottom:5px solid #0000;border-left:6px solid var(--fg);pointer-events:none;opacity:0;z-index:1000;width:0;height:0;transition:opacity 80ms;position:absolute;top:50%;right:calc(100% + 4px);transform:translateY(-50%)}.consultation-matrix-detail-btn[data-tooltip]:hover:before,.consultation-matrix-detail-btn[data-tooltip]:focus-visible:before{opacity:1}.consultation-matrix-cell.is-computed{background:var(--bg-subtle);justify-content:flex-end;padding-right:12px}.consultation-matrix-row:hover .consultation-matrix-cell.is-computed{background:var(--bg-subtle)}.consultation-matrix-computed-amount{color:var(--fg-muted);font-variant-numeric:tabular-nums;font-size:13px;font-style:italic;font-weight:500}.consultation-matrix-computed-amount .is-empty{color:var(--fg-muted);font-size:12px;font-weight:400}.consultation-matrix-cell.is-locked{background:var(--bg-subtle);opacity:.55;cursor:not-allowed;justify-content:flex-end;padding-right:12px}.consultation-matrix-row:hover .consultation-matrix-cell.is-locked{background:var(--bg-subtle)}.consultation-matrix-locked-amount{color:var(--fg-muted);font-variant-numeric:tabular-nums;font-size:13px}.consultation-matrix-line-toggle{width:16px;height:16px;color:var(--fg-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s;display:inline-flex}.consultation-matrix-line-toggle:hover:not(.is-placeholder){background:var(--bg-hover);color:var(--fg)}.consultation-matrix-line-toggle.is-placeholder{cursor:default;pointer-events:none}.consultation-matrix-price-display,.consultation-matrix-price-input{text-align:right;width:100%;font:inherit;font-variant-numeric:tabular-nums;color:var(--fg);cursor:text;background:0 0;border:1px solid #0000;border-radius:4px;padding:5px 8px;transition:background .12s,border-color .12s}.consultation-matrix-price-display{font-weight:500}.consultation-matrix-price-display:hover{background:var(--bg-hover);border-color:var(--border)}.consultation-matrix-price-display.is-empty{color:var(--fg-muted);font-size:12px;font-style:italic;font-weight:400}.consultation-matrix-price-input.is-editing{border-color:var(--accent);background:var(--bg);outline:none}.consultation-matrix-cell.is-best .consultation-matrix-price-display{color:var(--color-success-solid);background:#4e824414;font-weight:600}.consultation-matrix-cell.is-best .consultation-matrix-price-display:hover{background:#4e824424}.consultation-matrix-cell.is-awarded-col{background:#4e82440d}.consultation-matrix-cell.is-awarded-col.is-header{background:#4e82441a;box-shadow:inset 0 -2px #4e824473}.consultation-matrix-cell.is-awarded-col.is-total-row{background:#4e82441a;box-shadow:inset 0 2px #4e824473}.consultation-matrix-cell.is-awarded-col.is-total-row .consultation-matrix-total-amount{color:var(--color-success-solid)}.consultation-matrix-row:hover .consultation-matrix-cell.is-awarded-col{background:#4e82441a}.consultation-matrix-cell.is-awarded-col.is-locked,.consultation-matrix-cell.is-awarded-col.is-computed{background:#4e824414}.consultation-matrix-declined{color:var(--fg-muted);text-align:right;width:100%;font-size:12px;font-style:italic}.consultation-matrix-cell.is-total-row{background:var(--bg-subtle);border-top:2px solid var(--border-strong,var(--border));z-index:2;border-bottom:none;justify-content:flex-end;min-height:52px;font-weight:600;position:sticky;bottom:0}.consultation-matrix-cell.is-total-row.is-first-col{z-index:3;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:2px}.consultation-matrix-cell.is-total-row .muted{color:var(--fg-muted);text-transform:none;letter-spacing:0;font-size:11px;font-weight:400}.consultation-matrix-total-amount{font-variant-numeric:tabular-nums;color:var(--fg);font-size:14px;font-weight:600}.consultation-matrix-empty{text-align:center;background:var(--bg);border:1px dashed var(--border);border-radius:10px;padding:48px 24px}.consultation-matrix-empty p{color:var(--fg);margin:0;font-size:14px}.consultation-matrix-empty .hint{color:var(--fg-muted);margin-top:6px;font-size:12px}.participant-head{text-transform:none;letter-spacing:0;width:100%;color:var(--fg);flex-direction:column;gap:4px;padding:8px 10px;font-size:12px;font-weight:400;display:flex}.participant-head-row{align-items:center;gap:6px;display:flex}.participant-head-name{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.participant-head-role{text-transform:uppercase;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;font-weight:700;display:inline-flex}.participant-head-role.role-supplier{color:var(--info-500);background:#2b45c924}.participant-head-role.role-subcontractor{color:var(--warning-500);background:#bd6a2b29}.participant-head-status{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;flex-shrink:0;padding:2px 8px;font-size:10px;font-weight:600}.participant-head-status.status-neutral{background:var(--bg-subtle);color:var(--fg-muted)}.participant-head-status.status-info{color:var(--info-500);background:#2b45c91f}.participant-head-status.status-success{color:var(--color-success-solid);background:#4e824424}.participant-head-status.status-danger{color:var(--color-danger-solid);background:#b7432c1f}.participant-head-compliance-badge{letter-spacing:.04em;text-transform:uppercase;cursor:pointer;border:1px solid #0000;border-radius:999px;flex-shrink:0;align-items:center;gap:4px;height:20px;padding:0 8px;font-size:10px;font-weight:600;transition:filter .1s,transform .1s;display:inline-flex}.participant-head-compliance-badge:hover{filter:brightness(1.08);transform:translateY(-1px)}.participant-head-compliance-badge:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.participant-head-compliance-badge.tone-success{color:var(--color-success-solid);background:#4e824424;border-color:#4e82444d}.participant-head-compliance-badge.tone-progress{color:var(--color-warning-solid,#b07000);background:#b0700024;border-color:#b070004d}.participant-head-compliance-badge.tone-danger{color:var(--color-danger-solid);background:#b7432c1f;border-color:#b7432c4d}.participant-head-actions{gap:2px;margin-top:2px;display:inline-flex}.participant-head-actions .icon-btn{cursor:pointer;width:24px;height:24px;color:var(--fg-muted);background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.participant-head-actions .icon-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--fg);border-color:var(--border)}.participant-head-actions .icon-btn:disabled{opacity:.4;cursor:not-allowed}.participant-head-actions .icon-btn.is-success{color:var(--color-success-solid);background:#4e82441f}.participant-head-award-btn.is-on{color:#fff;background:var(--success-400);border-color:var(--success-400)}.participant-head-award-btn.is-on:hover:not(:disabled){background:var(--success-500);border-color:var(--success-500);color:#fff}.participant-head-delete-btn:hover:not(:disabled){color:var(--color-danger-solid);background:#b7432c14;border-color:#b7432c59}.consultation-block-delete-btn{justify-content:center;align-items:center;width:32px;height:32px;padding:0;display:inline-flex}.consultation-block-delete-btn:hover{color:var(--color-danger-solid);background:#b7432c14;border-color:#b7432c59}.participant-head-docs{flex-direction:column;gap:2px;margin:4px 0 0;padding:0;list-style:none;display:flex}.participant-head-doc-link{font:inherit;color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:4px;width:100%;padding:2px 0;font-size:11px;display:inline-flex}.participant-head-doc-link:hover{text-decoration:underline}.participant-head-doc-link .doc-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.participant-head-error{color:var(--color-danger-solid);margin-top:2px;font-size:10px}.new-consultation-section{border-top:1px solid var(--border);flex-direction:column;gap:12px;padding-top:16px;display:flex}.new-consultation-section:first-child{border-top:none;padding-top:0}.new-consultation-section-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.new-consultation-section-head h3{text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted);align-items:center;gap:8px;margin:0;font-size:11px;font-weight:600;display:inline-flex}.new-consultation-section-count{background:var(--bg-subtle);color:var(--fg-muted);letter-spacing:0;border-radius:999px;padding:1px 7px;font-size:10px;font-weight:600}.new-consultation-section-action{font:inherit;color:var(--accent);cursor:pointer;text-transform:none;letter-spacing:0;background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:11px;font-weight:500}.new-consultation-section-action:hover{background:var(--bg-hover)}.new-consultation-hint{color:var(--fg-muted);margin:0;font-size:12px;line-height:1.45}.new-consultation-lines{flex-direction:column;gap:4px;display:flex}.new-consultation-line-row{background:var(--bg);border:1px solid var(--border);font:inherit;text-align:left;cursor:pointer;border-radius:8px;grid-template-columns:22px 1fr;align-items:center;gap:10px;padding:8px 12px;transition:border-color .12s,background .12s;display:grid}.new-consultation-line-row:has(.new-consultation-line-expand){grid-template-columns:22px 16px 1fr;gap:8px}.new-consultation-line-row:hover{border-color:var(--fg-muted);background:var(--bg-hover)}.new-consultation-line-row.is-on{border-color:var(--accent);background:var(--accent-soft,#2b45c90f)}.new-consultation-line-check{color:var(--fg-muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.new-consultation-line-row.is-on .new-consultation-line-check{color:var(--accent)}.new-consultation-line-text{align-items:baseline;gap:8px;min-width:0;display:inline-flex}.new-consultation-line-code{color:var(--fg-muted);background:var(--bg-subtle);letter-spacing:.02em;font-variant-numeric:tabular-nums;border-radius:4px;flex-shrink:0;padding:1px 6px;font-size:11px;font-weight:600}.new-consultation-line-name{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.new-consultation-line-code.is-placeholder{color:var(--fg-muted);border:1px dashed var(--border);background:0 0;font-weight:500}.new-consultation-line-expand{width:16px;height:16px;color:var(--fg-muted);cursor:pointer;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;transition:background .12s,color .12s;display:inline-flex}.new-consultation-line-expand:hover:not(.is-placeholder){background:var(--bg-hover);color:var(--fg)}.new-consultation-line-expand.is-placeholder{cursor:default;pointer-events:none}.new-consultation-line-row.is-implicit{opacity:.55;cursor:not-allowed}.new-consultation-line-row:disabled{cursor:not-allowed}.new-consultation-line-children{flex-direction:column;gap:4px;margin-top:4px;display:flex}.new-consultation-perimeter-modes{flex-direction:column;gap:6px;display:flex}.new-consultation-mode{background:var(--bg);border:1px solid var(--border);cursor:pointer;border-radius:8px;grid-template-columns:18px 1fr;align-items:flex-start;gap:10px;padding:10px 12px;transition:border-color .12s,background .12s;display:grid}.new-consultation-mode:hover{border-color:var(--fg-muted);background:var(--bg-hover)}.new-consultation-mode.is-on{border-color:var(--accent);background:var(--accent-soft,#2b45c90f)}.new-consultation-mode input{margin:3px 0 0}.new-consultation-mode>span{flex-direction:column;gap:2px;min-width:0;display:flex}.new-consultation-mode strong{color:var(--fg);font-size:13px;font-weight:600}.new-consultation-mode-hint{color:var(--fg-muted);font-size:11px;line-height:1.4}.invite-drawer-card:has(.new-consultation-link-toggle){grid-template-columns:32px 1fr auto 22px}.new-consultation-link-toggle{color:var(--fg-muted);background:var(--bg-subtle);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:4px;padding:4px 8px;font-size:11px;display:inline-flex}.new-consultation-link-toggle input{cursor:pointer;margin:0}.invite-drawer-card.is-selected .new-consultation-link-toggle:hover{background:var(--bg)}.invite-drawer-close{cursor:pointer;width:32px;height:32px;color:var(--fg-muted);background:0 0;border:1px solid #0000;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.invite-drawer-close:hover{background:var(--bg-hover);color:var(--fg);border-color:var(--border)}.invite-drawer-search{background:var(--bg-subtle);border:1px solid var(--border);color:var(--fg-muted);border-radius:8px;align-items:center;gap:8px;padding:8px 12px;transition:border-color .12s;display:flex}.invite-drawer-search:focus-within{border-color:var(--accent);background:var(--bg)}.invite-drawer-search input{font:inherit;color:var(--fg);background:0 0;border:none;outline:none;flex:1;font-size:13px}.invite-drawer-search-clear{background:var(--border);width:18px;height:18px;color:var(--fg-muted);cursor:pointer;border:none;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.invite-drawer-search-clear:hover{background:var(--fg-muted);color:var(--bg)}.invite-drawer-group{flex-direction:column;gap:8px;display:flex}.invite-drawer-group h3{text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted);align-items:center;gap:8px;margin:0;font-size:11px;font-weight:600;display:inline-flex}.invite-drawer-group-count{background:var(--bg-subtle);color:var(--fg-muted);letter-spacing:0;border-radius:999px;padding:1px 7px;font-size:10px;font-weight:600}.invite-drawer-cards{flex-direction:column;gap:6px;display:flex}.invite-drawer-card{background:var(--bg);border:1px solid var(--border);font:inherit;text-align:left;cursor:pointer;border-radius:8px;grid-template-columns:32px 1fr 22px;align-items:center;gap:12px;width:100%;padding:10px 12px;transition:border-color .12s,background .12s,box-shadow .12s;display:grid}.invite-drawer-card:hover{border-color:var(--fg-muted);background:var(--bg-hover)}.invite-drawer-card.is-selected{border-color:var(--accent);background:var(--accent-soft,#2b45c90f);box-shadow:0 0 0 1px var(--accent) inset}.invite-drawer-avatar{letter-spacing:.02em;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:600;display:inline-flex}.invite-drawer-avatar.role-supplier{color:var(--info-500);background:#2b45c924}.invite-drawer-avatar.role-subcontractor{color:var(--warning-500);background:#bd6a2b2e}.invite-drawer-card-main{flex-direction:column;gap:2px;min-width:0;display:flex}.invite-drawer-card-name{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.invite-drawer-card-meta{color:var(--fg-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.invite-drawer-check{border:1.5px solid var(--border);background:var(--bg);color:#fff;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;transition:background .12s,border-color .12s;display:inline-flex}.invite-drawer-check.is-on{background:var(--accent);border-color:var(--accent)}.invite-drawer-empty{text-align:center;color:var(--fg-muted);flex-direction:column;align-items:center;gap:8px;padding:40px 16px;display:flex}.invite-drawer-empty p{max-width:320px;margin:0;font-size:13px}.invite-drawer-error{color:var(--color-danger-solid);background:#b7432c14;border:1px solid #b7432c40;border-radius:6px;margin:0;padding:8px 12px;font-size:13px}.invite-drawer-foot{justify-content:space-between;align-items:center;gap:16px}.invite-drawer-link-toggle{cursor:pointer;flex:1;align-items:flex-start;gap:8px;min-width:0;display:inline-flex}.invite-drawer-link-toggle input{flex-shrink:0;margin-top:3px}.invite-drawer-link-toggle-text{flex-direction:column;gap:1px;min-width:0;display:flex}.invite-drawer-link-toggle-text strong{color:var(--fg);font-size:12px;font-weight:600}.invite-drawer-link-toggle-text>span:last-child{color:var(--fg-muted);font-size:11px}.invite-drawer-actions{flex-shrink:0;gap:8px;display:inline-flex}.purchases-main{padding:24px 28px 80px;overflow:auto}.purchases-header{margin-bottom:24px}.purchases-header h1{letter-spacing:-.01em;margin:0 0 4px;font-size:22px;font-weight:600}.purchases-header p{color:var(--fg-muted);margin:0;font-size:13px}.purchases-empty{text-align:center;background:var(--bg);border:1px dashed var(--border);border-radius:10px;padding:32px}.purchases-list{flex-direction:column;gap:16px;display:flex}.purchases-project-card{background:var(--bg);border:1px solid var(--border);cursor:pointer;border-radius:12px;padding:16px 20px;transition:border-color .12s}.purchases-project-card:hover{border-color:var(--accent)}.purchases-project-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.purchases-project-head h2{color:var(--fg);margin:0;font-size:16px;font-weight:600}.purchases-project-code{color:var(--fg-muted);font-variant-numeric:tabular-nums;font-size:12px}.purchases-project-total{text-align:right}.purchases-project-total .amount{letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:18px;font-weight:600;display:block}.purchases-project-total .caption{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.purchases-supplier-list{margin:0;padding:0;list-style:none}.purchases-supplier-list li{border-top:1px solid var(--border);grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;padding:8px 0;font-size:13px;display:grid}.purchases-supplier-list .role-chip{text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted);background:var(--bg-subtle);border-radius:999px;padding:2px 8px;font-size:10px;font-weight:600}.purchases-supplier-list .name{color:var(--fg);font-weight:500}.purchases-supplier-list .meta{color:var(--fg-muted);font-size:12px}.purchases-supplier-list .amount{font-variant-numeric:tabular-nums;font-weight:500}.projects-screen{width:100%;max-width:1200px;margin:0 auto;padding:24px 32px}.projects-screen-head{justify-content:space-between;align-items:flex-end;margin-bottom:20px;display:flex}.projects-screen-head h2{margin:0;font-size:24px;font-weight:600}.projects-screen-head .sub{color:var(--fg-muted);margin:4px 0 0;font-size:13px}.projects-list{border:1px solid var(--border);background:var(--bg);border-radius:8px;overflow:hidden}.projects-list-head,.projects-list-row{grid-template-columns:110px minmax(200px,1fr) 140px 160px 140px 110px 120px;align-items:center;gap:12px;padding:10px 16px;font-size:13px;display:grid}.projects-list.has-actions .projects-list-head,.projects-list.has-actions .projects-list-row{grid-template-columns:110px minmax(200px,1fr) 140px 160px 140px 110px 120px 36px}.projects-list-head{background:var(--bg-subtle);color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);font-size:12px;font-weight:500}.projects-list-row{background:var(--bg);color:var(--fg);border:none;border-top:1px solid var(--border);text-align:left;cursor:pointer;width:100%;font-family:inherit}.projects-list-row:first-of-type{border-top:none}.projects-list-row:hover{background:var(--bg-hover)}.projects-list-row .col-code{color:var(--fg-muted);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12.5px}.projects-list-row .col-name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.projects-list-row .col-city{color:var(--fg-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.projects-list-row .col-amount{text-align:right;font-variant-numeric:tabular-nums}.projects-list-row .col-date{color:var(--fg-muted);font-variant-numeric:tabular-nums}.project-members{align-items:center;display:inline-flex}.project-member-avatar{background:var(--bg-subtle);width:26px;height:26px;color:var(--fg-muted);border:2px solid var(--bg);border-radius:50%;flex:none;justify-content:center;align-items:center;margin-left:-8px;font-size:11px;font-weight:600;display:inline-flex;overflow:hidden}.project-member-avatar:first-child{margin-left:0}.project-member-avatar img{object-fit:cover;width:100%;height:100%;display:block}.project-member-initials{line-height:1}.project-member-more{color:var(--fg-muted);font-variant-numeric:tabular-nums;margin-left:6px;font-size:12px}.proj-status-chip{text-transform:uppercase;letter-spacing:.03em;background:var(--bg-subtle);color:var(--fg-muted);border-radius:4px;justify-content:center;align-items:center;width:fit-content;padding:3px 8px;font-size:11.5px;font-weight:500;display:inline-flex}.proj-status-lead,.proj-status-quoting{background:var(--bg-subtle);color:var(--fg-muted)}.proj-status-won,.proj-status-in_progress{color:var(--accent-fg,#2b45c9);background:#2b45c91a}.proj-status-on_hold{background:var(--color-warning-bg);color:var(--color-warning-text)}.proj-status-completed,.proj-status-received{background:var(--color-success-bg);color:var(--color-success-text)}.proj-status-warranty{background:var(--color-warning-bg);color:var(--color-warning-text)}.proj-status-closed{background:var(--bg-subtle);color:var(--fg-subtle)}.proj-status-lost,.proj-status-cancelled{background:var(--color-danger-bg);color:var(--color-danger-text)}.projects-empty{color:var(--fg-muted);text-align:center;padding:40px 0;font-size:13px}.invite-drawer-avatar.role-customer{background:var(--color-success-bg);color:var(--color-success-text)}.new-project-create-client-btn{color:var(--accent,#5a71dc);border:1px dashed var(--border);cursor:pointer;background:0 0;border-radius:6px;align-self:flex-start;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:500;transition:background .12s,border-color .12s;display:inline-flex}.new-project-create-client-btn:hover{background:var(--bg-hover);border-color:var(--accent,#5a71dc)}.new-project-create-client{flex-direction:column;gap:10px;display:flex}.projects-list-row .col-actions{justify-content:center;align-items:center;display:flex}.projects-list-delete-btn{cursor:pointer;width:28px;height:28px;color:var(--fg-muted);opacity:0;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;transition:opacity .12s,background .12s,color .12s,border-color .12s;display:inline-flex}.projects-list-row:hover .projects-list-delete-btn,.projects-list-delete-btn:focus-visible{opacity:1}.projects-list-delete-btn:hover{color:var(--color-danger-solid);background:#b7432c14;border-color:#b7432c59}.settings-shell{background:var(--bg);flex:1;grid-template-columns:240px 1fr;min-height:0;display:grid}.settings-nav{border-right:1px solid var(--border);flex-direction:column;align-self:start;gap:16px;height:100vh;padding:24px 16px;display:flex;position:sticky;top:0;overflow-y:auto}.settings-nav-title{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.08em;margin:0;padding:0 8px;font-size:11px;font-weight:600}.settings-nav nav ul{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.settings-nav-item{text-align:left;cursor:pointer;width:100%;font:inherit;color:var(--fg);background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;transition:background .12s,border-color .12s;display:flex}.settings-nav-item:hover{background:var(--bg-hover)}.settings-nav-item.is-active{background:var(--bg-selected);border-color:var(--accent-soft)}.settings-nav-item-label{font-size:13px;font-weight:500}.settings-nav-item.is-active .settings-nav-item-label{color:var(--accent-fg)}.settings-nav-item-hint{color:var(--fg-muted);font-size:11px}.settings-content{flex-direction:column;min-height:0;display:flex;overflow:auto}.settings-section-head{border-bottom:1px solid var(--border);background:var(--bg);grid-template-columns:1fr auto;align-items:center;gap:16px;padding:24px 28px 12px;display:grid}.settings-section-head-text{flex-direction:column;gap:4px;min-width:0;display:flex}.settings-section-title{color:var(--fg);margin:0;font-size:18px;font-weight:600}.settings-section-subtitle{color:var(--fg-muted);margin:0;font-size:13px}.settings-section-head-action{justify-self:end}.settings-section-body{background:var(--color-bg-page);flex-direction:column;flex:1;gap:20px;padding:24px 28px 80px;display:flex}.settings-card{border:1px solid var(--border);background:var(--bg);border-radius:12px;flex-direction:column;gap:12px;padding:20px;display:flex}.settings-card-title{color:var(--fg);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:13px;font-weight:600}.settings-card-help{color:var(--fg-muted);margin:0;font-size:13px;line-height:1.5}.company-settings-logo-row{align-items:center;gap:16px;display:flex}.company-settings-logo-preview{border:1px dashed var(--border-strong);background:var(--bg-subtle);border-radius:8px;flex-shrink:0;place-items:center;width:160px;height:100px;display:grid;overflow:hidden}.company-settings-logo-preview img{object-fit:contain;max-width:100%;max-height:100%}.company-settings-placeholder{color:var(--fg-subtle);font-size:12px}.company-settings-logo-actions{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.company-settings-error{background:var(--color-danger-bg);color:var(--color-danger-text);border-radius:6px;padding:8px 12px;font-size:13px}.contact-search-hero{background:var(--bg-selected);border:1px solid var(--accent-soft);border-radius:12px;flex-direction:column;gap:12px;padding:16px 18px;display:flex}.contact-search-hero-head{flex-direction:column;gap:4px;display:flex}.contact-search-hero-head h3{color:var(--fg);letter-spacing:-.01em;margin:0;font-size:15px;font-weight:600}.contact-search-hero-head p{color:var(--fg-muted);margin:0;font-size:12px;line-height:1.5}.contact-search-hero-pill{text-transform:uppercase;letter-spacing:.06em;color:var(--accent-fg);background:var(--bg);border:1px solid var(--accent-soft);border-radius:999px;align-self:flex-start;align-items:center;gap:4px;padding:3px 8px;font-size:10px;font-weight:600;display:inline-flex}.contact-search-hero-input-wrap{position:relative}.contact-search-hero-icon{color:var(--fg-muted);pointer-events:none;z-index:1;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.contact-search-hero-input{background:var(--bg);border:1px solid var(--border-strong);width:100%;height:44px;color:var(--fg);font-size:14px;font:inherit;border-radius:10px;padding:0 14px 0 38px;font-size:14px;transition:border-color .12s,box-shadow .12s}.contact-search-hero-input::placeholder{color:var(--fg-subtle)}.contact-search-hero-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.contact-search-hero-results{margin-top:6px}.contact-search-hero-divider{color:var(--fg-subtle);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:10px;margin:4px 0;font-size:11px;display:flex}.contact-search-hero-divider:before,.contact-search-hero-divider:after{content:"";background:var(--border);flex:1;height:1px}.sc-compliance-head{align-items:flex-start;gap:12px}.sc-compliance-head-main{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.sc-compliance-head-title{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sc-compliance-head-title h2{color:var(--fg);letter-spacing:-.01em;margin:0;font-size:18px;font-weight:600}.sc-compliance-progress{background:var(--bg-subtle);border-radius:999px;width:100%;height:6px;overflow:hidden}.sc-compliance-progress-bar{border-radius:999px;min-width:2px;height:100%;transition:width .24s cubic-bezier(.4,0,.2,1),background .12s}.sc-compliance-progress-incomplete .sc-compliance-progress-bar,.sc-compliance-progress-bar.sc-compliance-progress-incomplete{background:var(--border-strong)}.sc-compliance-progress-bar.sc-compliance-progress-pending{background:var(--color-warning-solid)}.sc-compliance-progress-bar.sc-compliance-progress-rejected{background:var(--color-danger-solid)}.sc-compliance-progress-bar.sc-compliance-progress-compliant{background:var(--color-success-solid)}.sc-compliance-progress-meta{color:var(--fg-muted);margin:0;font-size:12px}.sc-link{background:var(--bg-subtle);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.sc-link-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sc-link-label{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:6px;margin-right:auto;padding-right:4px;font-size:12px;font-weight:600;display:inline-flex}.sc-link-input{background:var(--bg);border:1px solid var(--border);min-width:200px;height:30px;font:inherit;color:var(--fg);border-radius:6px;flex:1;padding:0 10px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px}.sc-link-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--color-brand-bg);outline:none}.sc-link-meta{color:var(--fg-subtle);margin:0;font-size:11px}.sc-link-empty{color:var(--fg-muted);font-size:13px}.cdoc{background:var(--bg);border:1px solid var(--border);border-radius:12px;align-items:stretch;transition:border-color .12s,box-shadow .12s;display:flex;overflow:hidden}.cdoc-missing{border-color:var(--border)}.cdoc-pending{border-color:var(--color-warning-border)}.cdoc-approved{border-color:var(--color-success-border)}.cdoc-rejected{border-color:var(--color-danger-border)}.cdoc-missing:hover{border-color:var(--border-strong)}.cdoc-pending:hover,.cdoc-approved:hover,.cdoc-rejected:hover{box-shadow:0 0 0 3px var(--color-brand-bg)}.cdoc-rail{flex-shrink:0;width:4px}.cdoc-missing .cdoc-rail{background:var(--border-strong)}.cdoc-pending .cdoc-rail{background:var(--color-warning-solid)}.cdoc-approved .cdoc-rail{background:var(--color-success-solid)}.cdoc-rejected .cdoc-rail{background:var(--color-danger-solid)}.cdoc-content{flex-direction:column;flex:1;gap:10px;min-width:0;padding:12px 14px;display:flex}.cdoc-header{align-items:flex-start;gap:10px;display:flex}.cdoc-glyph{background:var(--bg-subtle);width:32px;height:32px;color:var(--fg-muted);border-radius:8px;flex-shrink:0;place-items:center;display:grid}.cdoc-pending .cdoc-glyph{background:var(--color-warning-bg-strong);color:var(--color-warning-text)}.cdoc-approved .cdoc-glyph{background:var(--color-success-bg-strong);color:var(--color-success-text)}.cdoc-rejected .cdoc-glyph{background:var(--color-danger-bg-strong);color:var(--color-danger-text)}.cdoc-title-block{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.cdoc-title{color:var(--fg);letter-spacing:-.01em;margin:0;font-size:14px;font-weight:600;line-height:1.3}.cdoc-description{color:var(--fg-muted);margin:0;font-size:12px;line-height:1.5}.cdoc-badge{white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;gap:4px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.cdoc-badge-neutral{background:var(--bg-subtle);color:var(--fg-muted)}.cdoc-badge-progress{background:var(--color-warning-bg-strong);color:var(--color-warning-text)}.cdoc-badge-success{background:var(--color-success-bg-strong);color:var(--color-success-text)}.cdoc-badge-danger{background:var(--color-danger-bg-strong);color:var(--color-danger-text)}.cdoc-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cdoc-validity{color:var(--fg-subtle);background:var(--bg-subtle);border-radius:4px;padding:2px 8px;font-size:11px}.cdoc-dropzone{background:var(--bg);border:1.5px dashed var(--border-strong);cursor:pointer;text-align:left;width:100%;font:inherit;color:var(--fg);border-radius:8px;align-items:center;gap:12px;padding:14px 16px;transition:border-color .12s,background .12s;display:flex}.cdoc-dropzone:hover{border-color:var(--color-brand-border);background:var(--color-brand-bg)}.cdoc-dropzone.is-drag{border-color:var(--color-brand-solid);background:var(--color-brand-bg-hover);border-style:solid}.cdoc-dropzone.is-busy{opacity:.6;cursor:progress}.cdoc-dropzone-icon{background:var(--bg-subtle);width:36px;height:36px;color:var(--fg-muted);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.cdoc-dropzone:hover .cdoc-dropzone-icon{background:var(--color-brand-bg-hover);color:var(--color-brand-text)}.cdoc-dropzone strong{color:var(--fg);font-size:13px;font-weight:600;display:block}.cdoc-dropzone-hint{color:var(--fg-muted);margin-top:2px;font-size:11px;font-weight:400;display:block}.cdoc-file{background:var(--bg-subtle);border-radius:8px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.cdoc-file-link{font:inherit;color:var(--accent-fg);cursor:pointer;background:0 0;border:none;align-self:flex-start;align-items:center;gap:6px;padding:0;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}.cdoc-file-link:hover{color:var(--accent);text-decoration:underline}.cdoc-file-name{white-space:nowrap;text-overflow:ellipsis;max-width:360px;overflow:hidden}.cdoc-file-meta{color:var(--fg-muted);font-size:11px}.cdoc-actions{border-top:1px solid var(--border);flex-wrap:wrap;gap:8px;padding-top:10px;display:flex}.cdoc-action-btn{height:32px;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:500;transition:background .12s,border-color .12s,color .12s,box-shadow .12s;display:inline-flex}.cdoc-action-btn:disabled{opacity:.6;cursor:not-allowed}.cdoc-action-btn:focus-visible{box-shadow:0 0 0 3px var(--color-brand-bg);outline:none}.cdoc-action-primary{background:var(--color-brand-solid);border-color:var(--color-brand-solid);color:var(--color-brand-on-solid);font-weight:600}.cdoc-action-primary:hover{background:var(--color-brand-solid-hover);border-color:var(--color-brand-solid-hover)}.cdoc-action-primary:active{background:var(--color-brand-solid-active);border-color:var(--color-brand-solid-active)}.cdoc-action-approve{background:var(--color-success-solid);border-color:var(--color-success-solid);color:#fff;font-weight:600}.cdoc-action-approve:hover{background:var(--color-success-solid-hover);border-color:var(--color-success-solid-hover)}.cdoc-action-reject{background:var(--color-danger-bg);border-color:var(--color-danger-border);color:var(--color-danger-text)}.cdoc-action-reject:hover{background:var(--color-danger-bg-strong)}.cdoc-action-replace{background:var(--bg);border-color:var(--border-strong);color:var(--fg)}.cdoc-action-replace:hover{background:var(--bg-hover);border-color:var(--fg-muted)}.compliance-link-section{background:var(--bg-selected);border:1px solid var(--accent-soft);border-radius:12px;flex-direction:column;gap:12px;margin-bottom:16px;padding:16px 18px;display:flex}.compliance-link-head h3{color:var(--fg);margin:0 0 4px;font-size:14px;font-weight:600}.compliance-link-head p{color:var(--fg-muted);margin:0;font-size:12px;line-height:1.5}.compliance-link-row{align-items:center;gap:8px;display:flex}.compliance-link-input{background:var(--bg);border:1px solid var(--border-strong);height:36px;font:inherit;color:var(--fg);border-radius:8px;flex:1;padding:0 10px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px}.compliance-link-foot{color:var(--fg-subtle);margin:0;font-size:11px}.compliance-doc-list{flex-direction:column;gap:12px;display:flex}.compliance-doc-row{border:1px solid var(--border);background:var(--bg);border-radius:10px;flex-direction:column;gap:8px;padding:14px 16px;display:flex}.compliance-doc-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.compliance-doc-type{flex-direction:column;gap:2px;min-width:0;display:flex}.compliance-doc-label{color:var(--fg);font-size:13px;font-weight:600}.compliance-doc-desc{color:var(--fg-muted);font-size:12px;line-height:1.5}.compliance-doc-validity{color:var(--fg-subtle);margin-top:2px;font-size:11px}.compliance-doc-meta{color:var(--fg-muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.compliance-doc-link{font:inherit;color:var(--accent-fg);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.compliance-doc-link:hover{color:var(--accent)}.compliance-doc-source{color:var(--fg-subtle)}.compliance-doc-actions{gap:8px;display:flex}.compliance-config-section{border-top:1px dashed var(--border);margin-top:16px;padding-top:16px}.compliance-config-toggle{font:inherit;color:var(--fg-muted);cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:13px}.compliance-config-toggle:hover{color:var(--fg)}.compliance-config-body{flex-direction:column;gap:12px;margin-top:12px;display:flex}.compliance-config-list{background:var(--bg-subtle);border-radius:8px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.compliance-config-row{color:var(--fg);cursor:pointer;align-items:center;gap:8px;padding:4px 0;font-size:13px;display:flex}.compliance-config-custom-badge{text-transform:uppercase;background:var(--accent-soft);color:var(--accent-fg);border-radius:999px;margin-left:8px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-block}.compliance-config-custom-form{border:1px dashed var(--border-strong);border-radius:8px;flex-direction:column;gap:8px;padding:12px;display:flex}.contact-row{border:1px solid #0000;border-bottom-color:var(--border);width:100%;font:inherit;color:inherit;text-align:left;background:0 0;border-radius:0;align-items:center;gap:12px;padding:10px 12px;transition:background .12s,border-color .12s;display:flex}.contact-row:last-child{border-bottom-color:#0000}.contact-row-clickable{cursor:pointer}.contact-row-clickable:hover{background:var(--bg-hover)}.contact-row-clickable:focus-visible{box-shadow:inset 0 0 0 2px var(--color-brand-border);outline:none}.contact-row-avatar{background:var(--bg-subtle);width:32px;height:32px;color:var(--fg-muted);letter-spacing:0;border-radius:50%;flex-shrink:0;place-items:center;font-size:13px;font-weight:600;display:grid}.contact-row-clickable:hover .contact-row-avatar{background:var(--color-brand-bg-hover);color:var(--color-brand-text)}.contact-row-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.contact-row-primary{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.contact-row-name{color:var(--fg);font-size:13px;font-weight:600}.contact-row-meta-tags{color:var(--fg-subtle);font-size:11px}.contact-row-secondary{color:var(--fg-muted);flex-wrap:wrap;align-items:center;gap:6px;min-height:1em;font-size:12px;display:inline-flex}.contact-row-caret{color:var(--fg-subtle);flex-shrink:0;place-items:center;width:20px;height:20px;transition:color .12s,transform .12s;display:grid}.contact-row-clickable:hover .contact-row-caret{color:var(--fg);transform:translate(2px)}.settings-contacts-list{border-top:1px solid var(--border);flex-direction:column;display:flex}.settings-contact-row{border-bottom:1px solid var(--border);text-align:left;flex-direction:column;gap:4px;padding:12px 4px;display:flex}button.settings-contact-row-clickable{border:none;border-bottom:1px solid var(--border);font:inherit;color:inherit;cursor:pointer;background:0 0;border-radius:0;width:100%;margin:0;padding:12px 8px;transition:background .12s}button.settings-contact-row-clickable:hover{background:var(--bg-hover)}.settings-contact-row:last-child{border-bottom:none}.settings-contact-main{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.settings-contact-name{color:var(--fg);font-size:13px;font-weight:500}.settings-contact-meta{color:var(--fg-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:inline-flex}.theme-picker{gap:8px;margin-top:12px;display:flex}.theme-picker-option{border:1px solid var(--border);background:var(--bg);color:var(--fg);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:10px 16px;font-family:inherit;font-size:13px;transition:border-color .1s,background .1s;display:inline-flex}.theme-picker-option:hover{border-color:var(--accent)}.theme-picker-option.is-active{border-color:var(--accent);background:var(--bg-hover);font-weight:500}.company-card{flex-direction:column;gap:10px;display:flex}.company-card-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.company-card-title{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.company-card-title strong{font-size:15px}.company-card-siret{color:var(--fg-muted);font-variant-numeric:tabular-nums;font-size:11px}.establishment-list{border-top:1px solid var(--border-subtle);flex-direction:column;display:flex}.establishment-row{text-align:left;border:none;border-bottom:1px solid var(--border-subtle);cursor:pointer;color:var(--fg);font:inherit;background:0 0;align-items:center;gap:10px;width:100%;padding:9px 4px;display:flex}.establishment-row:hover{background:var(--bg-hover)}.establishment-row-name{font-weight:500}.establishment-row-city{color:var(--fg-muted);font-size:12px}.establishment-row-siret{color:var(--fg-muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11px}.company-card-add-est{align-self:flex-start}.team-list{flex-direction:column;display:flex}.team-row{border-top:1px solid var(--border-subtle);align-items:center;gap:12px;padding:12px 4px;display:flex}.team-row:first-child{border-top:none}.team-avatar,.team-avatar-preview{background:var(--bg-hover);width:36px;height:36px;color:var(--fg-muted);border-radius:50%;flex-shrink:0;place-items:center;font-size:13px;font-weight:600;display:grid;overflow:hidden}.team-avatar img,.team-avatar-preview img{object-fit:cover;width:100%;height:100%}.team-row-main{flex-direction:column;flex:1;min-width:0;display:flex}.team-row-name{font-weight:500}.team-row-email{color:var(--fg-muted);font-size:12px}.team-row-meta{flex-shrink:0;align-items:center;gap:8px;display:flex}.team-avatar-field{align-items:center;gap:14px;display:flex}.team-avatar-field .team-avatar-preview{width:56px;height:56px;font-size:18px}.team-avatar-actions{gap:8px;display:flex}.team-row.is-clickable{cursor:pointer}.team-row.is-clickable:hover{background:var(--bg-hover);border-radius:6px}.team-scope-options{flex-wrap:wrap;gap:6px;display:flex}.team-scope-option{border:1px solid var(--border);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;display:inline-flex}.team-scope-option.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-fg)}.team-scope-option input{margin:0}.team-scope-list{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:6px;max-height:240px;padding:10px;display:flex;overflow-y:auto}.team-scope-group{flex-direction:column;gap:4px;display:flex}.team-scope-group+.team-scope-group{margin-top:8px}.team-scope-group-label{text-transform:uppercase;letter-spacing:.05em;color:var(--fg-muted);font-size:11px}.team-scope-group .lib-checkbox{padding-left:8px}.coefficient-mode-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.coefficient-mode-text{min-width:0}.coefficient-mode-text strong{font-size:14px;display:block}.coefficient-mode-text .settings-card-help{margin:4px 0 0}.coefficient-mode-select{flex-shrink:0;width:auto;min-width:150px}.coefficients-list{flex-direction:column;display:flex}.coefficient-row{border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:12px;padding:12px 4px;display:flex}.coefficient-row:first-child{border-top:none}.coefficient-row-main{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.coefficient-row-label{font-weight:500}.coefficient-chip{background:var(--accent-soft,var(--bg-hover));color:var(--accent);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:12px}.coefficient-chip.subtle{background:var(--bg-hover);color:var(--fg-muted)}.coefficient-row-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.coefficient-row-rate{font-variant-numeric:tabular-nums;text-align:right;min-width:64px;font-weight:600}.btn.subtle.danger{color:var(--color-danger-solid)}.lib-field-hint{color:var(--fg-muted);margin:4px 0 0;font-size:12px;line-height:1.4}.lib-field-hint.danger{color:var(--color-danger-solid)}.toggle{cursor:pointer;flex-shrink:0;width:38px;height:22px;display:inline-flex;position:relative}.toggle input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.toggle input:disabled{cursor:not-allowed}.toggle-track{background:var(--border);border-radius:999px;transition:background .12s;position:absolute;inset:0}.toggle-track:after{content:"";background:var(--bg);border-radius:50%;width:18px;height:18px;transition:transform .16s cubic-bezier(.4,0,.2,1);position:absolute;top:2px;left:2px;box-shadow:0 1px 2px oklch(0% 0 0/.12)}.toggle input:checked~.toggle-track{background:var(--accent)}.toggle input:checked~.toggle-track:after{transform:translate(16px)}.toggle input:disabled~.toggle-track{opacity:.5}.template-list{flex-direction:column;gap:6px;margin:16px 0 0;padding:0;list-style:none;display:flex}.template-row{border:1px solid var(--border);background:var(--bg);border-radius:10px;align-items:stretch;gap:8px;transition:border-color .12s,background .12s;display:flex}.template-row:hover{border-color:var(--border-strong);background:var(--bg-hover)}.template-row-main{cursor:pointer;text-align:left;background:0 0;border:0;flex-direction:column;flex:1;align-items:flex-start;gap:2px;min-width:0;padding:12px 14px;display:flex}.template-row-title{color:var(--fg);font-size:14px;font-weight:600}.template-row-meta{color:var(--fg-muted);font-size:12px}.template-row-delete{flex-shrink:0;align-self:center;margin-right:8px}.dl-section{padding:24px 28px 48px}.dl-doctype-tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:16px;display:flex}.dl-doctype-tab{color:var(--fg-muted);cursor:pointer;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:8px 14px;font-size:13px;display:inline-flex}.dl-doctype-tab:hover:not(:disabled){color:var(--fg)}.dl-doctype-tab.is-active{color:var(--accent-fg);border-bottom-color:var(--accent);font-weight:600}.dl-doctype-tab:disabled{cursor:not-allowed;opacity:.6}.dl-doctype-soon{text-transform:uppercase;letter-spacing:.04em;background:var(--bg-hover);color:var(--fg-subtle);border-radius:8px;padding:1px 5px;font-size:9px}.dl-editor{flex-direction:column;gap:16px;display:flex}.dl-editor-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.dl-save-state{color:var(--fg-subtle);white-space:nowrap;padding-top:4px;font-size:12px}.dl-error{background:var(--color-danger-bg,#fbe9e7);color:var(--color-danger-text,#b3261e);border-radius:8px;padding:8px 12px;font-size:13px}.dl-canvas-wrap{background:var(--bg-hover);margin-inline:-28px;padding:28px;overflow-y:auto}.dl-canvas-page{color:#1a1a1a;font-family:var(--sans);box-shadow:var(--shadow-lg);background:#fff;border-radius:4px;max-width:760px;margin:0 auto;padding:32px;font-size:11px;line-height:1.5}.dl-canvas-empty{color:#8c8678;text-align:center;padding:24px 0;font-style:italic}.dl-shell{cursor:pointer;border:1px solid #0000;border-radius:8px;margin:2px 0;padding:4px;transition:border-color .1s,background .1s;position:relative}.dl-shell:hover{border-color:var(--accent-soft)}.dl-shell.is-selected{border-color:var(--accent);background:#5a71dc0a}.dl-shell.is-dragging{opacity:.4}.dl-shell.is-disabled{opacity:.85}.dl-shell.drop-before:before,.dl-shell.drop-after:after{content:"";background:var(--accent);z-index:2;border-radius:2px;height:2px;position:absolute;left:0;right:0}.dl-shell.drop-before:before{top:-3px}.dl-shell.drop-after:after{bottom:-3px}.dl-shell-toolbar{background:var(--bg);border:1px solid var(--border);box-shadow:var(--shadow-sm,0 1px 3px #0000001f);opacity:0;z-index:3;border-radius:7px;align-items:center;gap:2px;padding:2px 4px;transition:opacity .1s;display:flex;position:absolute;top:-12px;right:6px}.dl-shell:hover .dl-shell-toolbar,.dl-shell.is-selected .dl-shell-toolbar,.dl-shell.is-disabled .dl-shell-toolbar{opacity:1}.dl-shell-handle{color:var(--fg-subtle);cursor:grab;padding:2px;display:inline-flex}.dl-shell-handle:active{cursor:grabbing}.dl-shell-name{font-size:11px;font-family:var(--sans);color:var(--fg-muted);white-space:nowrap;padding:0 4px}.dl-shell-btn{width:22px;height:22px;color:var(--fg-subtle);cursor:pointer;border-radius:5px;justify-content:center;align-items:center;display:inline-flex}.dl-shell-btn:hover{background:var(--bg-hover);color:var(--fg)}.dl-shell-body{pointer-events:none}.dl-shell-hidden,.dl-shell-empty{font-family:var(--sans);color:#8c8678;text-align:center;border:1px dashed #d8d4c8;border-radius:6px;padding:12px;font-size:12px;font-style:italic}.dl-shell-config{border:1px solid var(--border);background:var(--bg-subtle);font-family:var(--sans);color:var(--fg);cursor:default;border-radius:8px;flex-direction:column;gap:10px;margin-top:8px;padding:12px;display:flex}.dl-insert{justify-content:center;align-items:center;height:10px;display:flex;position:relative}.dl-insert:before{content:"";background:var(--accent);opacity:0;height:1px;transition:opacity .1s;position:absolute;left:0;right:0}.dl-insert:hover:before,.dl-insert.is-open:before{opacity:.5}.dl-insert-btn{z-index:2;background:var(--bg);border:1px solid var(--border-strong);width:22px;height:22px;color:var(--fg-muted);cursor:pointer;opacity:0;border-radius:50%;justify-content:center;align-items:center;transition:opacity .1s;display:inline-flex;position:relative}.dl-insert:hover .dl-insert-btn,.dl-insert.is-open .dl-insert-btn{opacity:1}.dl-insert-btn:hover{border-color:var(--accent);color:var(--accent-fg)}.dl-add-menu{z-index:40;width:300px;max-height:340px;position:absolute;top:calc(100% + 6px);left:50%;overflow-y:auto;transform:translate(-50%)}.dl-add-item{align-items:flex-start;gap:10px;display:flex}.dl-add-item-icon{color:var(--fg-muted);padding-top:1px;display:inline-flex}.dl-add-item-text{flex-direction:column;gap:1px;min-width:0;display:flex}.dl-add-item-label{color:var(--fg);font-size:13px}.dl-add-item-desc{color:var(--fg-subtle);font-size:11px}.dl-add-empty{color:var(--fg-subtle);text-align:center;padding:8px;font-size:12px}.dl-cfg-row{flex-direction:column;gap:4px;font-size:13px;display:flex}.dl-cfg-toggle{cursor:pointer;flex-direction:row;align-items:center;gap:8px}.dl-cfg-label{color:var(--fg-muted);font-size:12px}.dl-cfg-hint{color:var(--fg-subtle);font-size:12px}.dl-cfg-error{color:var(--color-danger-text,#b3261e);font-size:12px}.dl-cfg-input{border:1px solid var(--border-strong);background:var(--bg);color:var(--fg);border-radius:6px;padding:6px 8px;font-family:inherit;font-size:13px}.dl-cfg-input:focus{border-color:var(--accent);outline:none}.dl-cfg-textarea{resize:vertical}.dl-cfg-image-preview{object-fit:contain;border:1px solid var(--border);border-radius:6px;max-width:100%;max-height:120px}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;top:0;left:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:0 0}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{-webkit-transform-origin:0 0;width:1600px;height:1600px}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{width:auto;padding:0;max-width:none!important;max-height:none!important}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:#33b5e566}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{box-sizing:border-box;z-index:800;width:0;height:0}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{z-index:800;pointer-events:visiblePainted;pointer-events:auto;position:relative}.leaflet-top,.leaflet-bottom{z-index:1000;pointer-events:none;position:absolute}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{outline-offset:1px;background:#ddd}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{background:#ffffff80;border:2px dotted #38f}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:.75rem;line-height:1.5}.leaflet-bar{border-radius:4px;box-shadow:0 1px 5px #000000a6}.leaflet-bar a{text-align:center;color:#000;background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;text-decoration:none;display:block}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom:none;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.leaflet-bar a.leaflet-disabled{cursor:default;color:#bbb;background-color:#f4f4f4}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{text-indent:1px;font:700 18px Lucida Console,Monaco,monospace}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{background:#fff;border-radius:5px;box-shadow:0 1px 5px #0006}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{color:#333;background:#fff;padding:6px 10px 6px 6px}.leaflet-control-layers-scrollbar{padding-right:5px;overflow:hidden scroll}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{font-size:1.08333em;display:block}.leaflet-control-layers-separator{border-top:1px solid #ddd;height:0;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{color:#333;padding:0 5px;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{width:1em;height:.6669em;vertical-align:baseline!important;display:inline!important}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{white-space:nowrap;box-sizing:border-box;text-shadow:1px 1px #fff;background:#fffc;border:2px solid #777;border-top:none;padding:2px 5px 1px;line-height:1.1}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{background-clip:padding-box;border:2px solid #0003}.leaflet-popup{text-align:center;margin-bottom:20px;position:absolute}.leaflet-popup-content-wrapper{text-align:left;border-radius:12px;padding:1px}.leaflet-popup-content{min-height:1px;margin:13px 24px 13px 20px;font-size:1.08333em;line-height:1.3}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{pointer-events:none;width:40px;height:20px;margin-top:-1px;margin-left:-20px;position:absolute;left:50%;overflow:hidden}.leaflet-popup-tip{pointer-events:auto;width:17px;height:17px;margin:-10px auto 0;padding:1px;transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{color:#333;background:#fff;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{text-align:center;color:#757575;background:0 0;border:none;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;text-decoration:none;position:absolute;top:0;right:0}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";width:24px;filter:progid:DXImageTransform.Microsoft.Matrix(M11=.707107, M12=.707107, M21=-.707107, M22=.707107);margin:0 auto}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{color:#222;white-space:nowrap;-webkit-user-select:none;user-select:none;pointer-events:none;background-color:#fff;border:1px solid #fff;border-radius:3px;padding:6px;position:absolute;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{pointer-events:none;content:"";background:0 0;border:6px solid #0000;position:absolute}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{margin-left:-6px;left:50%}.leaflet-tooltip-top:before{border-top-color:#fff;margin-bottom:-12px;bottom:0}.leaflet-tooltip-bottom:before{border-bottom-color:#fff;margin-top:-12px;margin-left:-6px;top:0}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{margin-top:-6px;top:50%}.leaflet-tooltip-left:before{border-left-color:#fff;margin-right:-12px;right:0}.leaflet-tooltip-right:before{border-right-color:#fff;margin-left:-12px;left:0}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.project-settings-page{flex-direction:column;gap:18px;max-width:760px;margin:0 auto;padding:28px 24px 96px;display:flex}.project-settings-head h1{letter-spacing:-.01em;margin:0;font-size:22px;font-weight:600}.project-settings-head p{color:var(--fg-muted);margin:4px 0 0;font-size:13px}.project-settings-card{background:var(--bg);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:14px;padding:18px 20px;display:flex}.project-settings-card-title{text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted);margin:0;font-size:13px;font-weight:600}.project-settings-muted{color:var(--fg-muted);font-size:13px}.project-settings-foot{justify-content:flex-end;align-items:center;gap:12px;padding:14px 0 0;display:flex;position:sticky;bottom:0}.project-settings-saved{color:var(--accent);font-size:13px;font-weight:500}.addr-autocomplete{width:100%;position:relative}.addr-input-wrap{position:relative}.addr-search-icon{color:var(--fg-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.addr-input-wrap .addr-input{width:100%;padding-left:34px}.addr-suggestions{z-index:20;background:var(--bg);border:1px solid var(--border-strong);border-radius:10px;max-height:280px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 12px 28px oklch(0% 0 0/.14)}.addr-suggestion{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:7px;flex-direction:column;gap:2px;width:100%;padding:8px 10px;display:flex}.addr-suggestion:hover{background:var(--bg-hover)}.addr-suggestion-line1{color:var(--fg);font-size:13px}.addr-suggestion-meta{color:var(--fg-muted);font-size:12px}.addr-suggestion-empty{color:var(--fg-muted);padding:8px 10px;font-size:13px}.client-cards{flex-direction:column;gap:8px;display:flex}.client-card{border:1px solid var(--border);background:var(--bg);border-radius:10px;justify-content:space-between;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.client-card-body{flex-direction:column;gap:3px;min-width:0;display:flex}.client-card-name{font-size:14px;font-weight:600}.client-card-meta{color:var(--fg-muted);flex-wrap:wrap;gap:4px 8px;font-size:12px;display:flex}.client-card-meta span:not(:last-child):after{content:"·";color:var(--border-strong);margin-left:8px}.client-card-remove{color:var(--fg-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:20px;line-height:1}.client-card-remove:hover{color:var(--color-danger-solid)}.add-client-cta{border-style:dashed;align-self:flex-start;align-items:center;gap:6px;display:inline-flex}.add-client-search{margin-bottom:12px}.add-client-create-btn{border-style:dashed;justify-content:center;align-items:center;gap:6px;width:100%;margin-bottom:14px;display:inline-flex}.add-client-list{flex-direction:column;gap:2px;display:flex}.add-client-row{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:10px 12px;display:flex}.add-client-row:hover{background:var(--bg-hover)}.add-client-row-main{flex-direction:column;gap:2px;min-width:0;display:flex}.add-client-row-name{font-size:13px;font-weight:500}.add-client-row-meta{color:var(--fg-muted);font-size:12px}.add-client-row-plus{color:var(--accent);flex-shrink:0;font-size:18px;font-weight:600}.lib-switch{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;font-size:14px;display:inline-flex}.lib-switch input{opacity:0;width:0;height:0;position:absolute}.lib-switch-track{background:var(--border-strong);border-radius:999px;flex-shrink:0;width:38px;height:22px;transition:background .14s;position:relative}.lib-switch-knob{background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .14s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.lib-switch input:checked+.lib-switch-track{background:var(--accent)}.lib-switch input:checked+.lib-switch-track .lib-switch-knob{transform:translate(16px)}.lib-switch input:focus-visible+.lib-switch-track{outline:2px solid var(--accent);outline-offset:2px}.lib-switch:has(input:disabled){cursor:default}.lib-switch:has(input:disabled) .lib-switch-track{opacity:.55}.profitability-main{flex-direction:column;gap:24px;padding:24px 28px 80px;display:flex;overflow:auto}.profitability-header h1{color:var(--fg);letter-spacing:-.02em;align-items:center;gap:10px;margin:0 0 6px;font-size:22px;font-weight:600;display:inline-flex}.profitability-header p{color:var(--fg-muted);margin:0;font-size:13px}.profitability-loading{color:var(--fg-muted);font-size:13px}.profitability-empty{border:1px dashed var(--border);text-align:center;border-radius:12px;padding:32px}.profitability-empty p{margin:0 0 6px}.profitability-empty-sub{color:var(--fg-muted);font-size:13px}.profitability-projects{padding:0}.profitability-projects>.overview-section-head{padding:16px 18px 8px}.profitability-table-wrap{overflow-x:auto}.profitability-table{border-collapse:collapse;width:100%;font-size:13px}.profitability-th{text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted);border-bottom:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--bg);padding:8px 12px;font-size:11px;font-weight:600;transition:color .12s;position:sticky;top:0}.profitability-th:hover,.profitability-th.is-active{color:var(--fg)}.profitability-th-left{text-align:left}.profitability-th-right{text-align:right}.profitability-th-inner{align-items:center;gap:4px;display:inline-flex}.profitability-row{cursor:pointer;border-left:3px solid #0000;transition:background .12s}.profitability-row:hover{background:var(--bg-hover)}.profitability-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.profitability-row-good{border-left-color:var(--chart-success,#4e8244)}.profitability-row-warn{border-left-color:var(--chart-progress,#bd6a2b)}.profitability-row-bad{border-left-color:var(--chart-danger,#b7432c)}.profitability-row td{border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;vertical-align:middle;padding:12px}.profitability-row:last-child td{border-bottom:none}.profitability-cell-project{align-items:center;gap:10px;min-width:0;display:flex}.profitability-cell-project-main{flex-direction:column;gap:2px;min-width:0;display:flex}.profitability-code{color:var(--fg-muted);font-size:11px;font-weight:500}.profitability-name{color:var(--fg);white-space:nowrap;text-overflow:ellipsis;max-width:280px;font-size:13px;font-weight:500;overflow:hidden}.profitability-row-pill{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.profitability-row-pill.is-danger{background:var(--color-danger-bg);color:var(--color-danger-text)}.profitability-cell-num{text-align:right;white-space:nowrap;color:var(--fg)}.profitability-cell-date{color:var(--fg-muted);font-size:12px}.profitability-margin-amount{font-weight:500;display:block}.profitability-margin-pct{border-radius:999px;margin-top:2px;padding:1px 7px;font-size:11px;font-weight:600;display:inline-block}.profitability-margin-pct-good{background:var(--color-success-bg);color:var(--color-success-text)}.profitability-margin-pct-warn{background:var(--color-warning-bg);color:var(--color-warning-text)}.profitability-margin-pct-bad{background:var(--color-danger-bg);color:var(--color-danger-text)}.profitability-na{color:var(--fg-muted)}.profitability-bottom-row{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;display:grid}.profitability-suppliers{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.profitability-supplier-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.profitability-supplier-row:last-child{border-bottom:none}.profitability-supplier-main{flex-direction:column;gap:2px;min-width:0;display:flex}.profitability-supplier-name{color:var(--fg);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.profitability-supplier-meta{color:var(--fg-muted);font-size:11px}.profitability-supplier-amount{color:var(--fg);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px;font-weight:600}.profitability-pipeline{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.profitability-pipeline-row{border-bottom:1px solid var(--border);grid-template-columns:12px 1fr auto;align-items:center;gap:10px;padding:8px 0;font-size:13px;display:grid}.profitability-pipeline-row:last-child{border-bottom:none}.profitability-pipeline-dot{border-radius:999px;width:10px;height:10px}.profitability-pipeline-dot.tone-neutral{background:var(--border-strong)}.profitability-pipeline-dot.tone-info{background:var(--chart-info,#2b45c9)}.profitability-pipeline-dot.tone-success{background:var(--chart-success,#4e8244)}.profitability-pipeline-dot.tone-danger{background:var(--chart-danger,#b7432c)}.profitability-pipeline-label{color:var(--fg)}.profitability-pipeline-count{font-variant-numeric:tabular-nums;color:var(--fg);font-weight:600}:root{--brand-50:#eef1fd;--brand-100:#dbe2fa;--brand-200:#bac6f2;--brand-300:#8a9ce7;--brand-400:#2b45c9;--brand-500:#243aaa;--brand-600:#1e3089;--brand-700:#1a2a75;--brand-800:#15235e;--brand-900:#111b49;--accent-50:#eef1fd;--accent-100:#dbe2fa;--accent-200:#bac6f2;--accent-300:#8a9ce7;--accent-400:#4c63d6;--accent-500:#3149be;--accent-600:#2b45c9;--accent-700:#21357f;--accent-800:#1a2a66;--accent-900:#141f4d;--neutral-50:#faf9f5;--neutral-100:#f2f0ea;--neutral-200:#e7e4db;--neutral-300:#d3cfc3;--neutral-400:#a9a496;--neutral-500:#8c8678;--neutral-600:#6d685c;--neutral-700:#534e44;--neutral-800:#3e3a32;--neutral-900:#211f1a;--sand-50:#faf8f2;--sand-100:#f3efe3;--sand-200:#e8e0cf;--sand-300:#d8cdb8;--sand-400:#c0b093;--sand-500:#a28f6c;--sand-600:#857252;--sand-700:#685942;--sand-800:#4e4332;--sand-900:#362f24;--success-50:#eff5ed;--success-100:#dbe8d6;--success-200:#bbd3b2;--success-300:#94b989;--success-400:#6c9c61;--success-500:#4e8244;--success-600:#3d6c36;--success-700:#31562c;--success-800:#274424;--success-900:#1d331b;--warning-50:#faf2ea;--warning-100:#f4e0cc;--warning-200:#e9c49d;--warning-300:#dca46b;--warning-400:#cd8745;--warning-500:#bd6a2b;--warning-600:#9d5522;--warning-700:#7c431c;--warning-800:#5e3416;--warning-900:#432510;--danger-50:#faf0ed;--danger-100:#f4d9d2;--danger-200:#e9b4a6;--danger-300:#da8975;--danger-400:#c95f47;--danger-500:#b7432c;--danger-600:#9c3522;--danger-700:#7d2b1c;--danger-800:#602217;--danger-900:#471a12;--info-50:#eef1fd;--info-100:#dbe2fa;--info-200:#bac6f2;--info-300:#8a9ce7;--info-400:#5a71dc;--info-500:#2b45c9;--info-600:#243aaa;--info-700:#1e3089;--info-800:#18266c;--info-900:#121c4f;--trade-structural-solid:#2b45c9;--trade-structural-bg:#eef1fd;--trade-structural-text:#1e3089;--trade-plumbing-solid:#2e7a8c;--trade-plumbing-bg:#ebf4f6;--trade-plumbing-text:#1c4a55;--trade-electrical-solid:#9c7b16;--trade-electrical-bg:#f7f1dd;--trade-electrical-text:#5c4a12;--trade-landscape-solid:#4e8244;--trade-landscape-bg:#eff5ed;--trade-landscape-text:#31562c;--trade-finishing-solid:#8a4a8f;--trade-finishing-bg:#f6eef6;--trade-finishing-text:#533056;--trade-carpentry-solid:#bd6a2b;--trade-carpentry-bg:#faf2ea;--trade-carpentry-text:#7c431c;--trade-metalwork-solid:#6d685c;--trade-metalwork-bg:#f2f0ea;--trade-metalwork-text:#3e3a32;--trade-design-solid:#b0486e;--trade-design-bg:#f9eef2;--trade-design-text:#6b2a42;--color-bg-page:var(--neutral-50);--color-bg-surface:#fefdfb;--color-bg-subtle:var(--neutral-100);--color-bg-muted:var(--neutral-200);--color-bg-inverse:var(--neutral-900);--color-text-primary:var(--neutral-900);--color-text-body:var(--neutral-700);--color-text-secondary:var(--neutral-600);--color-text-tertiary:var(--neutral-500);--color-text-disabled:var(--neutral-400);--color-text-inverse:#fff;--color-text-link:var(--accent-600);--color-text-link-hover:var(--accent-700);--color-border-subtle:var(--neutral-200);--color-border-default:var(--neutral-300);--color-border-strong:var(--neutral-400);--color-border-inverse:var(--neutral-700);--color-brand-bg:var(--brand-50);--color-brand-bg-hover:var(--brand-100);--color-brand-solid:var(--brand-400);--color-brand-solid-hover:var(--brand-500);--color-brand-solid-active:var(--brand-600);--color-brand-text:var(--brand-800);--color-brand-on-solid:#fff;--color-brand-border:var(--brand-500);--color-brand-focus-ring:var(--brand-400);--color-accent-bg:var(--accent-50);--color-accent-bg-hover:var(--accent-100);--color-accent-solid:var(--accent-500);--color-accent-solid-hover:var(--accent-600);--color-accent-solid-active:var(--accent-700);--color-accent-text:var(--accent-700);--color-accent-text-hover:var(--accent-800);--color-accent-on-solid:#fff;--color-accent-border:var(--accent-200);--color-accent-border-hover:var(--accent-400);--color-accent-focus-ring:var(--accent-400);--color-sand-bg:var(--sand-100);--color-sand-bg-strong:var(--sand-200);--color-sand-solid:var(--sand-600);--color-sand-solid-hover:var(--sand-700);--color-sand-text:var(--sand-800);--color-sand-border:var(--sand-300);--color-success-bg:var(--success-50);--color-success-bg-strong:var(--success-100);--color-success-solid:var(--success-600);--color-success-solid-hover:var(--success-700);--color-success-text:var(--success-800);--color-success-border:var(--success-500);--color-warning-bg:var(--warning-50);--color-warning-bg-strong:var(--warning-100);--color-warning-solid:var(--warning-600);--color-warning-solid-hover:var(--warning-700);--color-warning-text:var(--warning-800);--color-warning-border:var(--warning-500);--color-danger-bg:var(--danger-50);--color-danger-bg-strong:var(--danger-100);--color-danger-solid:var(--danger-600);--color-danger-solid-hover:var(--danger-700);--color-danger-text:var(--danger-800);--color-danger-border:var(--danger-500);--color-info-bg:var(--info-50);--color-info-bg-strong:var(--info-100);--color-info-solid:var(--info-600);--color-info-solid-hover:var(--info-700);--color-info-text:var(--info-800);--color-info-border:var(--info-500);--color-overlay:#14140f80;--color-shadow-sm:#14140f0a;--color-shadow-md:#14140f14;--color-shadow-lg:#14140f1f;--color-focus-ring:#2b45c973;--chart-info:#2b45c9;--chart-progress:#bd6a2b;--chart-success:#4e8244;--chart-danger:#b7432c;--chart-neutral:#a9a496;--chart-sand:#c0b093}[data-theme=dark]{--color-bg-page:#0f0f0c;--color-bg-surface:#1a1a15;--color-bg-subtle:var(--neutral-800);--color-bg-muted:var(--neutral-700);--color-bg-inverse:var(--neutral-50);--color-text-primary:var(--neutral-50);--color-text-body:var(--neutral-200);--color-text-secondary:var(--neutral-400);--color-text-tertiary:var(--neutral-500);--color-text-disabled:var(--neutral-600);--color-text-inverse:var(--neutral-900);--color-text-link:var(--accent-300);--color-text-link-hover:var(--accent-200);--color-border-subtle:#2e2e28;--color-border-default:#3d3d37;--color-border-strong:var(--neutral-600);--color-border-inverse:var(--neutral-200);--color-brand-bg:#2b45c924;--color-brand-bg-hover:#2b45c938;--color-brand-solid:var(--brand-400);--color-brand-solid-hover:var(--brand-300);--color-brand-solid-active:var(--brand-500);--color-brand-text:var(--brand-300);--color-brand-on-solid:#fff;--color-brand-border:var(--brand-500);--color-brand-focus-ring:var(--brand-400);--color-accent-bg:#2b45c924;--color-accent-bg-hover:#2b45c938;--color-accent-solid:var(--accent-400);--color-accent-solid-hover:var(--accent-300);--color-accent-solid-active:var(--accent-200);--color-accent-text:var(--accent-300);--color-accent-text-hover:var(--accent-200);--color-accent-on-solid:#fff;--color-accent-border:#2b45c973;--color-accent-border-hover:var(--accent-500);--color-accent-focus-ring:var(--accent-400);--color-sand-bg:#d8cdb81a;--color-sand-bg-strong:#d8cdb829;--color-sand-solid:var(--sand-400);--color-sand-solid-hover:var(--sand-300);--color-sand-text:var(--sand-200);--color-sand-border:#d8cdb859;--color-success-bg:#4e824424;--color-success-bg-strong:#4e824438;--color-success-solid:var(--success-500);--color-success-solid-hover:var(--success-400);--color-success-text:var(--success-300);--color-success-border:var(--success-600);--color-warning-bg:#bd6a2b24;--color-warning-bg-strong:#bd6a2b38;--color-warning-solid:var(--warning-500);--color-warning-solid-hover:var(--warning-400);--color-warning-text:var(--warning-300);--color-warning-border:var(--warning-500);--color-danger-bg:#b7432c24;--color-danger-bg-strong:#b7432c38;--color-danger-solid:var(--danger-500);--color-danger-solid-hover:var(--danger-400);--color-danger-text:var(--danger-300);--color-danger-border:var(--danger-600);--color-info-bg:#2b45c929;--color-info-bg-strong:#2b45c93d;--color-info-solid:var(--info-400);--color-info-solid-hover:var(--info-300);--color-info-text:var(--info-300);--color-info-border:var(--info-500);--trade-structural-bg:#2b45c929;--trade-structural-text:#bac6f2;--trade-plumbing-bg:#2e7a8c29;--trade-plumbing-text:#a8d4de;--trade-electrical-bg:#9c7b1629;--trade-electrical-text:#e5d48a;--trade-landscape-bg:#4e824429;--trade-landscape-text:#bbd3b2;--trade-finishing-bg:#8a4a8f29;--trade-finishing-text:#ddb8df;--trade-carpentry-bg:#bd6a2b29;--trade-carpentry-text:#e9c49d;--trade-metalwork-bg:#6d685c33;--trade-metalwork-text:#d3cfc3;--trade-design-bg:#b0486e29;--trade-design-text:#e8afc4;--color-overlay:#000000a6;--color-shadow-sm:#0003;--color-shadow-md:#00000059;--color-shadow-lg:#00000080;--color-focus-ring:#8a9ce78c;--chart-info:#8a9ce7;--chart-progress:#dca46b;--chart-success:#94b989;--chart-danger:#da8975;--chart-neutral:#c9c5b9;--chart-sand:#d8cdb8}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg-page:#0f0f0c;--color-bg-surface:#1a1a15;--color-bg-subtle:var(--neutral-800);--color-bg-muted:var(--neutral-700);--color-bg-inverse:var(--neutral-50);--color-text-primary:var(--neutral-50);--color-text-body:var(--neutral-200);--color-text-secondary:var(--neutral-400);--color-text-tertiary:var(--neutral-500);--color-text-disabled:var(--neutral-600);--color-text-inverse:var(--neutral-900);--color-text-link:var(--accent-300);--color-text-link-hover:var(--accent-200);--color-border-subtle:#2e2e28;--color-border-default:#3d3d37;--color-border-strong:var(--neutral-600);--color-border-inverse:var(--neutral-200);--color-brand-bg:#2b45c924;--color-brand-bg-hover:#2b45c938;--color-brand-solid:var(--brand-400);--color-brand-solid-hover:var(--brand-300);--color-brand-solid-active:var(--brand-500);--color-brand-text:var(--brand-300);--color-brand-on-solid:#fff;--color-brand-border:var(--brand-500);--color-brand-focus-ring:var(--brand-400);--color-accent-bg:#2b45c924;--color-accent-bg-hover:#2b45c938;--color-accent-solid:var(--accent-400);--color-accent-solid-hover:var(--accent-300);--color-accent-solid-active:var(--accent-200);--color-accent-text:var(--accent-300);--color-accent-text-hover:var(--accent-200);--color-accent-on-solid:#fff;--color-accent-border:#2b45c973;--color-accent-border-hover:var(--accent-500);--color-accent-focus-ring:var(--accent-400);--color-sand-bg:#d8cdb81a;--color-sand-bg-strong:#d8cdb829;--color-sand-solid:var(--sand-400);--color-sand-solid-hover:var(--sand-300);--color-sand-text:var(--sand-200);--color-sand-border:#d8cdb859;--color-success-bg:#4e824424;--color-success-bg-strong:#4e824438;--color-success-solid:var(--success-500);--color-success-solid-hover:var(--success-400);--color-success-text:var(--success-300);--color-success-border:var(--success-600);--color-warning-bg:#bd6a2b24;--color-warning-bg-strong:#bd6a2b38;--color-warning-solid:var(--warning-500);--color-warning-solid-hover:var(--warning-400);--color-warning-text:var(--warning-300);--color-warning-border:var(--warning-500);--color-danger-bg:#b7432c24;--color-danger-bg-strong:#b7432c38;--color-danger-solid:var(--danger-500);--color-danger-solid-hover:var(--danger-400);--color-danger-text:var(--danger-300);--color-danger-border:var(--danger-600);--color-info-bg:#2b45c929;--color-info-bg-strong:#2b45c93d;--color-info-solid:var(--info-400);--color-info-solid-hover:var(--info-300);--color-info-text:var(--info-300);--color-info-border:var(--info-500);--trade-structural-bg:#2b45c929;--trade-structural-text:#bac6f2;--trade-plumbing-bg:#2e7a8c29;--trade-plumbing-text:#a8d4de;--trade-electrical-bg:#9c7b1629;--trade-electrical-text:#e5d48a;--trade-landscape-bg:#4e824429;--trade-landscape-text:#bbd3b2;--trade-finishing-bg:#8a4a8f29;--trade-finishing-text:#ddb8df;--trade-carpentry-bg:#bd6a2b29;--trade-carpentry-text:#e9c49d;--trade-metalwork-bg:#6d685c33;--trade-metalwork-text:#d3cfc3;--trade-design-bg:#b0486e29;--trade-design-text:#e8afc4;--color-overlay:#000000a6;--color-shadow-sm:#0003;--color-shadow-md:#00000059;--color-shadow-lg:#00000080;--color-focus-ring:#8a9ce78c;--chart-info:#8a9ce7;--chart-progress:#dca46b;--chart-success:#94b989;--chart-danger:#da8975;--chart-neutral:#c9c5b9;--chart-sand:#d8cdb8}}.empty-state-box{text-align:center;background:var(--bg);border:1px dashed var(--border);border-radius:10px;padding:32px}.empty-state-title{margin:0}.empty-state-hint{color:var(--fg-muted);margin:6px 0 0;font-size:13px}.tree-row:hover{background:var(--bg-hover)}.tree-row.depth-0.kind-section,.tree-row.depth-0.kind-subsection{background:var(--bg-subtle)}.tree-row.depth-0.kind-section:hover,.tree-row.depth-0.kind-subsection:hover{background:var(--bg-hover)}.tree-row.depth-0.kind-section .row-ref,.tree-row.depth-0.kind-subsection .row-ref{background:var(--color-brand-solid);color:var(--color-brand-on-solid);font-weight:500}.tree-row:not(.depth-0).kind-section .row-ref,.tree-row:not(.depth-0).kind-subsection .row-ref{background:var(--color-accent-bg);color:var(--color-accent-text);font-weight:500}.tree-row.kind-composite .row-ref{color:var(--color-accent-text);border:1px solid var(--color-accent-border);background:0 0;padding:1px 5px;font-weight:500}.tree-row.is-optional{background-image:repeating-linear-gradient(135deg, color-mix(in srgb, var(--fg) 8%, transparent) 0, color-mix(in srgb, var(--fg) 8%, transparent) 1.5px, transparent 1.5px, transparent 8px)}.tree-row.is-optional:hover{background-image:repeating-linear-gradient(135deg, color-mix(in srgb, var(--fg) 12%, transparent) 0, color-mix(in srgb, var(--fg) 12%, transparent) 1.5px, transparent 1.5px, transparent 8px)}.tree-row.is-optional .row-name{font-style:italic}.tree-row.is-parent .row-name{font-weight:600}.tree-row.depth-0 .row-name{font-size:13px;font-weight:600}.tree-row.is-parent.collapsed .row-children-count{color:var(--accent-fg);background:var(--accent-soft);border-radius:10px;padding:1px 6px;font-size:11px}.tree-row.is-parent .cell-num.total{font-weight:600}.row-ref-icon{background:var(--bg-subtle);width:18px;height:18px;color:var(--fg-muted);cursor:help;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;transition:background .12s,color .12s;display:inline-flex;position:relative}.row-ref-icon:hover,.row-ref-icon:focus-visible{background:var(--bg-hover);color:var(--fg);outline:none}.row-ref-icon[data-tooltip]:after{content:attr(data-tooltip);background:var(--fg);color:var(--bg);font-family:var(--mono);white-space:nowrap;pointer-events:none;opacity:0;z-index:1000;border-radius:5px;padding:4px 8px;font-size:11px;font-weight:500;line-height:1;transition:opacity 80ms,transform 80ms;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)translateY(4px);box-shadow:0 4px 12px #0000001f}.row-ref-icon:hover:after,.row-ref-icon:focus-visible:after{opacity:1;transform:translate(-50%)translateY(0)}.row-ref-icon[data-tooltip]:before{content:"";border-left:5px solid #0000;border-right:5px solid #0000;border-top:6px solid var(--fg);pointer-events:none;opacity:0;z-index:1000;width:0;height:0;transition:opacity 80ms;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.row-ref-icon:hover:before,.row-ref-icon:focus-visible:before{opacity:1}.app-logo{flex-shrink:0;align-items:center;height:30px;margin-right:4px;display:inline-flex}.app-logo img{width:30px;height:30px;display:block}.project-selector{color:var(--fg);border:1px solid var(--border);cursor:pointer;box-sizing:border-box;background:0 0;border-radius:6px;flex-shrink:0;align-items:center;gap:8px;width:260px;padding:5px 8px 5px 10px;font-family:inherit;font-size:13px;font-weight:500;display:inline-flex}.project-selector-label{text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1;min-width:0;overflow:hidden}.project-selector-kbd{color:var(--fg-muted);background:var(--bg-subtle);border:1px solid var(--border);border-radius:4px;flex:none;padding:3px 5px;font-family:inherit;font-size:10px;font-weight:600;line-height:1}.project-selector:hover{border-color:var(--border-strong)}.project-selector:focus-visible{border-color:var(--accent);outline:none}.project-picker-backdrop{background:var(--color-overlay);z-index:60;justify-content:center;align-items:center;padding:24px;animation:.12s fadeIn;display:flex;position:fixed;inset:0}.project-picker{background:var(--bg);border:1px solid var(--border);width:min(560px,92vw);max-height:70vh;box-shadow:0 24px 64px var(--color-shadow-lg);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.project-picker-search{border:none;border-bottom:1px solid var(--border);height:48px;color:var(--fg);font-family:var(--sans);background:0 0;outline:none;flex:none;padding:0 16px;font-size:15px}.project-picker-search::placeholder{color:var(--fg-subtle)}.project-picker-list{flex:1;padding:6px;overflow-y:auto}.project-picker-section+.project-picker-section{margin-top:4px}.project-picker-section-label{text-transform:uppercase;letter-spacing:.04em;color:var(--fg-subtle);padding:8px 10px 4px;font-size:11px;font-weight:600}.project-picker-item{text-align:left;width:100%;color:var(--fg);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:9px 10px;font-family:inherit;font-size:13px;display:flex}.project-picker-item.is-active{background:var(--color-accent-bg)}.project-picker-item-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.project-picker-item-code{color:var(--fg-muted);font-variant-numeric:tabular-nums;flex:none;font-size:12px}.project-picker-item-badge{color:var(--accent);background:var(--color-accent-bg);border-radius:4px;flex:none;padding:2px 6px;font-size:10px;font-weight:600}.project-picker-empty{text-align:center;color:var(--fg-muted);padding:24px 12px;font-size:13px}.project-tabs{align-items:center;gap:4px;display:inline-flex;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.project-tab{color:var(--fg-muted);cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:500;display:inline-flex}.project-tab:hover:not(:disabled){color:var(--fg)}.project-tab:disabled{opacity:.45;cursor:not-allowed}.project-header-icons{flex-shrink:0;align-items:center;gap:2px;display:inline-flex}.project-tab-icon{padding:6px 8px}.project-tab.is-active{color:var(--fg);background:var(--color-bg-subtle)}.invoice-toolbar-crumb{color:var(--fg-muted);align-items:center;gap:8px;min-width:0;font-size:13px;display:inline-flex}.invoice-toolbar-crumb-label{color:var(--fg-muted)}button.invoice-toolbar-crumb-label{font:inherit;cursor:pointer;background:0 0;border:none;padding:0}button.invoice-toolbar-crumb-label.is-link:hover{color:var(--fg);text-decoration:underline}.invoice-toolbar-crumb-sep{color:var(--fg-subtle)}.invoice-toolbar-crumb-select{color:var(--fg);border:1px solid var(--border);cursor:pointer;appearance:none;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") right 6px center no-repeat;border-radius:6px;max-width:260px;padding:4px 26px 4px 10px;font-family:inherit;font-size:13px;font-weight:500}.invoice-toolbar-crumb-select:hover{border-color:var(--border-strong)}.invoice-toolbar-crumb-select:focus{border-color:var(--accent);outline:none}.invoice-workspace-main.project-list-capped{box-sizing:content-box;max-width:1280px;margin-inline:auto}.workspace-eyebrow{display:none}.invoice-workspace-heading:has(.workspace-eyebrow){gap:4px}.recharts-responsive-container:focus,.recharts-responsive-container:focus-visible,.recharts-wrapper:focus,.recharts-wrapper:focus-visible,.recharts-wrapper :focus,.recharts-wrapper :focus-visible,.recharts-surface:focus,.recharts-surface:focus-visible,.recharts-surface :focus,.recharts-surface :focus-visible{outline:none}.planning-screen,.calendar-screen{background:var(--color-bg-page);--planning-weekend-tint:#8c86781a;flex-direction:column;min-height:0;display:flex}.calendar-screen{height:100vh}.invoice-workspace:has(.planning-screen){flex-direction:column;height:100vh;min-height:0;display:flex;overflow:hidden}.planning-screen{background:var(--color-bg-surface);flex:1}.planning-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:24px 40px;display:flex}.planning-title{color:var(--color-text-primary);margin:0;font-size:24px;font-weight:600}.planning-toolbar-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.gantt-zoom{align-items:center;gap:4px;display:flex}.planning-loading,.gantt-empty{color:var(--color-text-tertiary);padding:40px 24px;font-size:14px}.gantt{flex:1;min-height:0;display:flex;overflow:hidden}.gantt-scroll{flex:1;min-width:0;overflow:auto}.gantt-inner{align-items:flex-start;display:flex;position:relative}.gantt-gutter{z-index:5;background:var(--color-bg-surface);border-right:1px solid var(--color-border-default);flex-direction:column;flex:none;padding-left:40px;display:flex;position:sticky;left:0}.gantt-corner{z-index:2;color:var(--color-text-tertiary);background:var(--color-bg-surface);border-bottom:1px solid var(--color-border-subtle);flex:none;align-items:center;padding:0 12px;font-size:12px;font-weight:600;display:flex;position:sticky;top:0}.gantt-main{flex:none;position:relative}.gantt-grow{border-bottom:1px solid var(--color-border-subtle);width:100%;color:var(--color-text-body);align-items:center;gap:0;padding:0 10px 0 4px;font-size:13px;display:flex}.gantt-grow .indent-cell{flex:none}.gantt-grow:hover,.gantt-grow.is-hovered{background:var(--color-bg-subtle)}.gantt-grow.is-selected{background:var(--color-accent-bg)}.gantt-grow.kind-phase{color:var(--color-text-primary);font-weight:600}.gantt-grow.kind-subtask{color:var(--color-text-secondary)}.gantt-zone-row{border-bottom:1px solid var(--color-border-default);background:var(--planning-weekend-tint);align-items:center;gap:8px;padding:0 10px;display:flex}.gantt-zone-label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px;font-weight:700;overflow:hidden}.gantt-zone-add{width:18px;height:18px;color:var(--color-text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;font-size:15px;line-height:1;display:inline-flex}.gantt-zone-add:hover{background:var(--color-bg-surface);color:var(--color-text-primary)}.gantt-gridline.is-zone{background:linear-gradient(var(--planning-weekend-tint), var(--planning-weekend-tint)), var(--color-bg-surface)}.gantt-zone-bar{background:var(--color-text-tertiary);opacity:.45;pointer-events:none;border-radius:999px;position:absolute}.gantt-decompose{width:18px;height:18px;color:var(--color-accent-text);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;font-size:13px;line-height:1;display:inline-flex}.gantt-decompose:hover{background:var(--color-accent-bg)}.gantt-decompose,.gantt-recompose{opacity:0;transition:opacity .1s}.gantt-grow:hover .gantt-decompose,.gantt-grow:hover .gantt-recompose,.gantt-grow.is-hovered .gantt-decompose,.gantt-grow.is-hovered .gantt-recompose,.gantt-decompose:focus-visible,.gantt-recompose:focus-visible{opacity:1}.gantt-recompose{width:18px;height:18px;color:var(--color-text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;font-size:13px;line-height:1;display:inline-flex}.gantt-recompose:hover{background:var(--color-danger-bg);color:var(--color-danger-text)}.gantt-caret{width:16px;height:16px;color:var(--color-text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.gantt-caret:hover{background:var(--color-bg-muted);color:var(--color-text-primary)}.gantt-caret svg{transition:transform .12s}.gantt-caret svg.is-open{transform:rotate(90deg)}.gantt-caret-spacer{flex:none;width:16px}.gantt-grow-main{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:8px;padding:0;display:flex}.gantt-grow-num{font-variant-numeric:tabular-nums;color:var(--color-text-tertiary);flex:none;min-width:28px;font-size:11px}.gantt-grow-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.gantt-grow-assignee{color:var(--color-text-tertiary);background:var(--color-bg-muted);text-overflow:ellipsis;white-space:nowrap;border-radius:8px;flex:none;max-width:90px;padding:1px 6px;font-size:11px;overflow:hidden}.gantt-chip{border-radius:6px;flex:none;padding:1px 5px;font-size:10px}.chip-meeting{background:var(--color-accent-bg);color:var(--color-accent-text)}.gantt-axis{z-index:4;background:var(--color-bg-surface);flex-direction:column;display:flex;position:sticky;top:0}.gantt-axis-months,.gantt-axis-days{flex:none;position:relative}.gantt-axis-day{font-variant-numeric:tabular-nums;color:var(--color-text-tertiary);box-sizing:border-box;justify-content:center;align-items:center;font-size:9px;display:flex;position:absolute;top:0;bottom:0}.gantt-axis-day.is-weekend{background:var(--planning-weekend-tint);color:var(--color-text-disabled)}.gantt-axis-day.is-bar-range{background:var(--color-accent-bg);color:var(--color-accent-text);box-shadow:inset 0 -2px 0 var(--color-accent-solid)}.gantt-axis-day.is-bar-range .gantt-axis-day-num{font-weight:700}.gantt-axis-day.is-today .gantt-axis-day-num{background:var(--color-accent-solid);min-width:16px;height:16px;color:var(--color-accent-on-solid,#fff);border-radius:999px;justify-content:center;align-items:center;padding:0 3px;font-weight:700;display:inline-flex}.gantt-grid{cursor:grab;position:relative}.gantt-grid.is-panning,.gantt-grid.is-panning *{cursor:grabbing!important}.gantt-grid.is-panning{-webkit-user-select:none;user-select:none}.gantt-weekend{background:var(--planning-weekend-tint);pointer-events:none;position:absolute;top:0}.gantt-axis-band{color:var(--color-text-tertiary);text-transform:capitalize;align-items:center;padding-left:8px;font-size:11px;font-weight:600;display:flex;position:absolute;top:0;bottom:0}.gantt-gridline{border-bottom:1px solid var(--color-border-subtle);position:absolute;left:0;right:0}.gantt-gridline.is-hovered{background:var(--color-bg-subtle)}.gantt-today{border-left:1.5px dashed var(--color-accent-solid);opacity:.8;z-index:1;pointer-events:none;width:0;position:absolute;top:0}.gantt-bar{cursor:pointer;background:var(--chart-neutral,#a9a496);border:none;border-radius:4px;justify-content:flex-end;align-items:center;padding:0;transition:filter .12s;display:flex;position:absolute;overflow:hidden;box-shadow:0 1px 2px #00000040}.gantt-bar:hover{filter:brightness(1.08)}.gantt-bar.status-in_progress{background:var(--chart-info,#2b45c9)}.gantt-bar.status-done{background:var(--chart-success,#4e8244)}.gantt-bar.status-blocked{background:var(--color-warning-solid,#9d5522)}.gantt-bar-veil{background:#14140f6b;position:absolute;top:0;bottom:0;right:0}.gantt-bar-pct{z-index:1;color:#fff;text-shadow:0 1px 1px #0006;padding:0 6px;font-size:10px;font-weight:600;position:relative}.gantt-bar.is-draggable{cursor:pointer;touch-action:none}.gantt-bar.is-dragging{cursor:grabbing;opacity:.9}.gantt-bar-handle{cursor:ew-resize;touch-action:none;z-index:2;width:7px;position:absolute;top:0;bottom:0}.gantt-bar-handle.is-left{left:-1px}.gantt-bar-handle.is-right{right:-1px}.gantt-bar.is-draggable:hover .gantt-bar-handle:after{content:"";background:#ffffffbf;border-radius:1px;width:2px;position:absolute;top:3px;bottom:3px}.gantt-bar-handle.is-left:after{left:1px}.gantt-bar-handle.is-right:after{right:1px}.gantt-bar.is-critical{box-shadow:0 0 0 2px var(--chart-danger,#b7432c), 0 1px 3px #0000004d}.gantt-bar.is-selected,.gantt-phase.is-selected{outline:2px solid var(--color-accent-solid);outline-offset:2px}.gantt-phase{cursor:pointer;background:var(--color-text-tertiary);opacity:.6;border:none;border-radius:2px;padding:0;position:absolute}.gantt-phase:before,.gantt-phase:after{content:"";background:inherit;border-radius:1px;width:2px;height:9px;position:absolute;top:0}.gantt-phase:before{left:0}.gantt-phase:after{right:0}.gantt-phase.is-critical{background:var(--chart-danger,#b7432c);opacity:.75}.gantt-phase.is-draggable{cursor:pointer;touch-action:none}.gantt-phase.is-dragging{cursor:grabbing}.gantt-meeting{cursor:pointer;background:0 0;border:none;align-items:center;gap:5px;height:18px;padding:0;display:flex;position:absolute}.gantt-meeting-dot{background:var(--color-accent-solid);border-radius:2px;flex:none;width:11px;height:11px;transform:rotate(45deg);box-shadow:0 1px 2px #0000004d}.gantt-meeting.is-selected .gantt-meeting-dot{outline:2px solid var(--color-accent-solid);outline-offset:2px}.gantt-meeting.is-draggable{cursor:pointer;touch-action:none}.gantt-meeting.is-dragging{cursor:grabbing}.gantt-meeting-label{font-variant-numeric:tabular-nums;color:var(--color-text-secondary);white-space:nowrap;font-size:10px}.gantt-link-dot{background:var(--color-accent-solid);border:2px solid var(--color-bg-surface);box-sizing:border-box;cursor:crosshair;z-index:5;touch-action:none;border-radius:50%;width:10px;height:10px;transition:transform .1s;position:absolute;box-shadow:0 1px 2px #00000040}.gantt-link-dot:hover{transform:scale(1.3)}.gantt-link-dot.is-left:before,.gantt-link-dot.is-right:before{content:"";width:9px;position:absolute;top:0;bottom:0}.gantt-link-dot.is-right:before{right:100%}.gantt-link-dot.is-left:before{left:100%}.gantt-meeting .gantt-link-dot{opacity:0;transition:opacity .1s}.gantt-meeting:hover .gantt-link-dot{opacity:1}.gantt-meeting .gantt-link-dot.is-left{top:4px;left:-20px}.gantt-meeting .gantt-link-dot.is-right{top:4px;left:calc(100% + 8px)}.gantt-link-preview{fill:none;stroke:var(--color-accent-solid);stroke-width:2px;stroke-dasharray:4 3;pointer-events:none}.gantt-bar.is-link-target,.gantt-meeting.is-link-target .gantt-meeting-dot{outline:2px solid var(--color-accent-solid);outline-offset:2px}.gantt-ghost-zone{cursor:copy;z-index:1;position:absolute;left:0}.gantt-ghost-bar{background:var(--color-accent-bg);border:1.5px dashed var(--color-accent-solid);box-shadow:none;pointer-events:none;opacity:.9;border-radius:4px}.gantt-arrows{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.gantt-arrow{fill:none;stroke:var(--color-text-tertiary);stroke-width:1.5px;opacity:.5;stroke-linejoin:round}.gantt-arrow.is-critical{stroke:var(--chart-danger,#b7432c);stroke-width:1.75px;opacity:.95}.gantt-arrowhead{fill:var(--color-text-tertiary)}.gantt-arrowhead-crit{fill:var(--chart-danger,#b7432c)}.gantt-arrow.is-hovered{opacity:1;stroke-width:2px}.gantt-arrow-hit{fill:none;stroke:#0000;stroke-width:10px;pointer-events:stroke;cursor:pointer}.gantt-arrow-delete{pointer-events:auto;cursor:pointer}.gantt-arrow-delete-bg{fill:var(--chart-danger,#b7432c);stroke:var(--color-surface,#fff);stroke-width:1.5px}.gantt-arrow-delete:hover .gantt-arrow-delete-bg{fill:var(--color-danger-solid,#9c3522)}.gantt-arrow-delete-x{stroke:#fff;stroke-width:1.75px;stroke-linecap:round;fill:none}.planning-drawer{max-width:520px}.planning-error{color:var(--color-danger-text);margin:4px 0 0;font-size:13px}.lib-field-checkbox{cursor:pointer;align-items:center;gap:8px;flex-direction:row!important}.lib-field-checkbox span{font-size:13px}.lib-field-label,.planning-deps .lib-field-label{color:var(--color-text-secondary);font-size:12px;font-weight:600}.planning-deps{border-top:1px solid var(--color-border-subtle);flex-direction:column;gap:6px;padding-top:8px;display:flex}.planning-deps-empty{color:var(--color-text-tertiary);margin:0;font-size:13px}.planning-deps-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.planning-deps-list li{background:var(--color-bg-subtle);border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:4px 8px;font-size:13px;display:flex}.planning-dep-remove{cursor:pointer;color:var(--color-text-tertiary);background:0 0;border:none;font-size:16px;line-height:1}.planning-dep-remove:hover{color:var(--color-danger-text)}.planning-dep-add{align-items:center;gap:8px;display:flex}.planning-dep-add .lib-input{flex:1}.planning-delete-btn{border:1px solid var(--color-danger-border);color:var(--color-danger-text);cursor:pointer;background:0 0;border-radius:8px;padding:6px 14px;font-size:13px}.planning-delete-btn:hover{background:var(--color-danger-bg)}.calendar-toolbar-left,.calendar-toolbar-right{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.calendar-nav,.calendar-view-toggle{align-items:center;gap:4px;display:flex}.calendar-period{color:var(--color-text-primary);text-transform:capitalize;font-size:14px;font-weight:600}.btn.ghost.is-active{background:var(--color-accent-bg);color:var(--color-accent-text)}.cal-month{flex-direction:column;flex:1;min-height:0;padding:12px;display:flex}.cal-month-head{grid-template-columns:repeat(7,1fr);display:grid}.cal-month-head-cell{color:var(--color-text-secondary);text-transform:uppercase;padding:6px 8px;font-size:11px;font-weight:600}.cal-month-grid{flex-direction:column;flex:1;min-height:0;display:flex}.cal-month-row{flex:1;grid-template-columns:repeat(7,1fr);min-height:88px;display:grid}.cal-day{border:1px solid var(--color-border-subtle);background:var(--color-bg-surface);flex-direction:column;gap:2px;margin:-.5px 0 0 -.5px;padding:4px;display:flex;overflow:hidden}.cal-day.is-weekend:not(.is-today):not(.is-other){background:var(--planning-weekend-tint)}.cal-day.is-other{background:var(--color-bg-page)}.cal-day.is-other .cal-day-num{color:var(--color-text-tertiary)}.cal-day.is-today{background:var(--color-accent-bg)}.cal-day-num{color:var(--color-text-secondary);font-size:12px;font-weight:600}.cal-day.is-today .cal-day-num,.cal-week-day-head.is-today .cal-week-dom{background:var(--color-accent-solid);min-width:20px;height:20px;color:var(--color-accent-on-solid,#fff);border-radius:999px;justify-content:center;align-items:center;padding:0 5px;font-weight:700;display:inline-flex}.cal-day.is-today .cal-day-num{align-self:flex-start}.cal-day-events{flex-direction:column;gap:2px;min-height:0;display:flex}.cal-event{border:none;border-left:3px solid var(--color-info-solid);background:var(--color-info-bg);color:var(--color-text-body);cursor:pointer;text-align:left;white-space:nowrap;border-radius:4px;align-items:center;gap:4px;padding:1px 5px;font-size:11px;display:flex;overflow:hidden}.cal-event.kind-meeting{border-left-color:var(--color-accent-solid);background:var(--color-accent-bg)}.cal-event.status-done{border-left-color:var(--color-success-solid);background:var(--color-success-bg)}.cal-event.status-blocked{border-left-color:var(--color-warning-solid);background:var(--color-warning-bg)}.cal-event.is-critical{border-left-color:var(--chart-danger,var(--color-danger-solid))}.cal-event-time{font-variant-numeric:tabular-nums;color:var(--color-text-tertiary)}.cal-event-title{text-overflow:ellipsis;overflow:hidden}.cal-more{color:var(--color-text-tertiary);padding-left:4px;font-size:10px}.cal-week{flex-direction:column;flex:1;min-height:0;padding:12px;display:flex;overflow:hidden}.cal-week-head,.cal-week-allday{flex:none;grid-template-columns:56px repeat(7,1fr);display:grid}.cal-week-head{background:var(--color-bg-page);z-index:2}.cal-week-day-head{border-bottom:1px solid var(--color-border-subtle);flex-direction:column;align-items:center;padding:6px;display:flex}.cal-week-day-head.is-today .cal-week-dow{color:var(--color-accent-text);font-weight:700}.cal-week-dow{color:var(--color-text-secondary);text-transform:uppercase;font-size:11px}.cal-week-dom{margin-top:2px;font-size:13px;font-weight:600}.cal-week-gutter-head{color:var(--color-text-tertiary);justify-content:center;align-items:center;font-size:10px;display:flex}.cal-week-allday{border-bottom:1px solid var(--color-border-default);min-height:28px}.cal-week-allday-cell{border-left:1px solid var(--color-border-subtle);flex-direction:column;gap:2px;padding:2px;display:flex}.cal-week-body{flex:1;min-height:0;overflow-y:auto}.cal-week-grid{grid-template-columns:56px repeat(7,1fr);min-height:100%;display:grid;position:relative}.cal-week-gutter{flex-direction:column;display:flex}.cal-week-hour-cell{flex:1 0 56px;position:relative}.cal-week-hour-lbl{color:var(--color-text-tertiary);font-size:10px;position:absolute;top:0;right:6px;transform:translateY(-50%)}.cal-week-col{border-left:1px solid var(--color-border-subtle);flex-direction:column;display:flex;position:relative}.cal-week-col.is-today{background:var(--color-accent-bg)}.cal-week-col.is-weekend:not(.is-today),.cal-week-allday-cell.is-weekend,.cal-week-day-head.is-weekend:not(.is-today){background:var(--planning-weekend-tint)}.cal-week-slot{border-top:1px solid var(--color-border-subtle);box-sizing:border-box;flex:1 0 56px}.cal-now-line{border-top:2px solid var(--color-danger-solid);z-index:4;pointer-events:none;height:0;position:absolute;left:56px;right:0}.cal-now-dot{background:var(--color-danger-solid);border-radius:50%;width:8px;height:8px;position:absolute;top:-5px;left:-4px}.cal-meeting{background:var(--color-accent-solid);min-height:14px;color:var(--color-accent-on-solid,#fff);text-align:left;cursor:pointer;z-index:1;border:none;border-radius:5px;flex-direction:column;padding:2px 6px;font-size:11px;display:flex;position:absolute;left:3px;right:3px;overflow:hidden}.cal-meeting-time{font-variant-numeric:tabular-nums;opacity:.85;font-size:10px}.cal-meeting-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
