:root{--text:#4c5e66;--text-h:#16242d;--ink:#16242d;--bg:#f7f7f3;--surface:#fff;--code-bg:#f1f2ec;--border:#dfe2da;--line-strong:#b8c0b9;--accent:#e8590c;--accent-strong:#cf4e09;--accent-bg:#e8590c14;--accent-border:#e8590c73;--social-bg:#f1f2ec80;--ok:#2b7a46;--ok-bg:#2b7a4614;--danger:#c0392b;--danger-bg:#c0392b12;--warn:#a86e0a;--warn-bg:#a86e0a17;--info:#23648f;--info-bg:#23648f14;--shadow:#101a1f29 0 12px 32px -6px, #101a1f14 0 2px 8px;--shadow-sm:#101a1f0d 0 1px 2px;--shadow-sheet:#101a1f40 0 -8px 32px;--radius:6px;--radius-sm:4px;--bottom-nav-height:62px;--sans:"Barlow", system-ui, "Segoe UI", sans-serif;--display:"Barlow Condensed", "Arial Narrow", var(--sans);--heading:var(--sans);--mono:"IBM Plex Mono", ui-monospace, Consolas, monospace;font:16px/1.5 var(--sans);letter-spacing:.1px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#93a5ad;--text-h:#e8eef0;--ink:#0d1519;--bg:#11191e;--surface:#182229;--code-bg:#1f2b33;--border:#2b3840;--line-strong:#46565f;--accent:#f4691a;--accent-strong:#ff7c33;--accent-bg:#f4691a21;--accent-border:#f4691a80;--social-bg:#1f2b3380;--ok:#57b884;--ok-bg:#57b8841f;--danger:#e0604e;--danger-bg:#e0604e1f;--warn:#d29b3c;--warn-bg:#d29b3c1f;--info:#5aa2cd;--info-bg:#5aa2cd1f;--shadow:#00000080 0 12px 32px -6px, #0000004d 0 2px 8px;--shadow-sm:#0000004d 0 1px 2px;--shadow-sheet:#0009 0 -8px 32px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:600}h1{font-family:var(--display);letter-spacing:0;margin:32px 0;font-size:44px;font-weight:700}@media (width<=1024px){h1{margin:20px 0;font-size:32px}}h2{letter-spacing:-.1px;margin:0 0 8px;font-size:22px;line-height:118%}@media (width<=1024px){h2{font-size:19px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:14px;line-height:135%}.col-id,.qe-line-total,.panel-title{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button{touch-action:manipulation}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=768px){#root{border-inline:none}input,select,textarea{font-size:16px!important}.btn-primary,.btn-secondary,.btn-danger{min-height:42px}}.navbar{background:var(--ink);box-sizing:border-box;flex-direction:column;flex-shrink:0;justify-content:space-between;width:216px;height:100%;padding:18px 12px;display:flex;overflow:hidden}.navbar-top{flex-direction:column;gap:22px;display:flex}.navbar-logo{object-fit:contain;border-radius:var(--radius-sm);box-sizing:border-box;background:#fff;align-self:center;width:100%;max-width:170px;max-height:120px;padding:8px 10px;display:block}.navbar-links{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.navbar-link{border-radius:var(--radius-sm);letter-spacing:.01em;color:#e9f0f2a8;align-items:center;gap:10px;padding:9px 12px;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.navbar-link svg{opacity:.75}.navbar-link:hover{color:#fff;background:#ffffff0f}.navbar-link.is-active{color:#fff;box-shadow:inset 3px 0 0 var(--accent);background:#ffffff14}.navbar-link.is-active svg{opacity:1;color:var(--accent)}.navbar-bottom{flex-direction:column;gap:6px;display:flex}.navbar-user-name{color:#e9f0f28c;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:12px;overflow:hidden}.navbar-logout{color:#e9f0f2a8;border-radius:var(--radius-sm);cursor:pointer;text-align:left;font-size:13px;font-family:var(--sans);background:0 0;border:1px solid #e9f0f238;padding:6px 10px;transition:color .15s,border-color .15s}.navbar-logout:hover{color:#fff;border-color:#e9f0f280}@media (width<=768px){.navbar{background:var(--ink);z-index:60;width:100%;height:auto;padding:0;padding-bottom:env(safe-area-inset-bottom,0);border-top:1px solid #ffffff14;flex-direction:row;position:fixed;inset:auto 0 0}.navbar-top{flex-direction:row;flex:1;gap:0}.navbar-logo,.navbar-bottom{display:none}.navbar-links{flex-direction:row;flex:1;gap:0}.navbar-links li{flex:1;min-width:0}.navbar-link{min-height:var(--bottom-nav-height);box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;border-radius:0;flex-direction:column;justify-content:center;gap:3px;padding:8px 2px 7px;font-size:10px;font-weight:500;overflow:hidden}.navbar-link svg{flex-shrink:0;width:20px;height:20px}.navbar-link.is-active{box-shadow:inset 0 3px 0 var(--accent);background:0 0}}.chat-widget-fab{background:var(--accent);color:#fff;cursor:pointer;width:56px;height:56px;box-shadow:var(--shadow);z-index:55;border:none;border-radius:50%;justify-content:center;align-items:center;transition:transform .15s,background .15s;display:flex;position:fixed;bottom:20px;right:20px}.chat-widget-fab:hover{background:var(--accent-strong);transform:scale(1.06)}.chat-widget-fab.is-open{background:var(--text-h)}.chat-widget-panel{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);width:390px;max-width:calc(100vw - 40px);height:560px;max-height:calc(100dvh - 120px);box-shadow:var(--shadow);z-index:55;text-align:left;position:fixed;bottom:88px;right:20px;overflow:hidden}.chat-widget-header{gap:8px}.chat-widget-title{color:var(--text-h);white-space:nowrap;font-size:14px;font-weight:600}.chat-widget-close{color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 6px;font-size:13px}.chat-widget-close:hover{color:var(--text-h);background:var(--code-bg)}.chat-widget-empty h2{font-size:18px}.chat-widget-empty .empty-icon{width:auto;height:44px}@media (width<=768px){.chat-widget-fab{bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px) + 16px);right:14px}.chat-widget-panel{left:0;right:0;bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px));border:none;border-radius:0;width:100%;max-width:none;height:auto;max-height:none;top:0}}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--ink);border-radius:var(--radius);box-sizing:border-box;text-align:left;flex-direction:column;align-items:center;gap:1.5rem;width:100%;max-width:400px;padding:2.25rem 2rem 2rem;display:flex}.login-logo{border-radius:var(--radius-sm);box-sizing:content-box;background:#fff;width:auto;height:72px;padding:4px 8px}.login-heading{text-align:center}.login-heading h1{font-family:var(--display);letter-spacing:.01em;color:var(--text-h);margin:0 0 .3rem;font-size:1.75rem;font-weight:700}.login-heading p{color:var(--text);margin:0;font-size:.875rem}.login-providers{flex-direction:column;gap:.75rem;width:100%;display:flex}.login-btn{border-radius:var(--radius-sm);width:100%;font-family:var(--sans);cursor:pointer;border:none;outline:none;justify-content:center;align-items:center;gap:.625rem;padding:.75rem 1rem;font-size:.9375rem;font-weight:600;transition:background .15s,filter .15s;display:flex}.login-btn:disabled{opacity:.55;cursor:not-allowed}.login-btn:not(:disabled):hover{filter:brightness(.94)}.login-btn-google{color:#3c4043;background:#fff;border:1px solid #dadce0}.login-btn-facebook{color:#fff;background:#1877f2}.login-btn svg{flex-shrink:0}.login-divider{width:100%;color:var(--text);font-family:var(--mono);text-transform:uppercase;letter-spacing:.07em;align-items:center;gap:.75rem;font-size:.6875rem;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--border);flex:1;height:1px}.login-error{border-radius:var(--radius-sm);background:var(--danger-bg);border:1px solid var(--danger);width:100%;color:var(--danger);text-align:center;box-sizing:border-box;border-left-width:3px;padding:.75rem 1rem;font-size:.875rem}.login-local-form{flex-direction:column;gap:.875rem;width:100%;display:flex}.login-field-row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.login-field{flex-direction:column;gap:.375rem;display:flex}.login-field label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.07em;color:var(--text);font-size:.6875rem;font-weight:500}.login-field input{background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-h);font-family:var(--sans);box-sizing:border-box;outline:none;padding:.6875rem .875rem;font-size:.9375rem;transition:border-color .15s}.login-field input::placeholder{color:var(--text);opacity:.6}.login-field input:focus{border-color:var(--accent)}.login-field input:disabled{opacity:.5;cursor:not-allowed}.login-btn-local{background:var(--accent);color:#fff;margin-top:.25rem}.login-btn-local:not(:disabled):hover{background:var(--accent-strong);filter:none}.login-signup-link{color:var(--text);text-align:center;margin:0;font-size:.875rem}.login-signup-link a{color:var(--accent);font-weight:600;text-decoration:none}.login-signup-link a:hover{text-decoration:underline}.login-footer{color:var(--text);text-align:center;font-size:.7875rem;line-height:1.5}.login-footer a{color:var(--accent);text-decoration:none}.login-footer a:hover{text-decoration:underline}.quotes-page{flex-direction:row;height:100%;display:flex;overflow:hidden}.quotes-main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.quotes-header{background:var(--bg);flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 24px 14px;display:flex}.quotes-title{font-family:var(--display);letter-spacing:.01em;color:var(--text-h);margin:0;font-size:27px;font-weight:700}.quotes-error{background:var(--danger-bg);border:1px solid var(--danger);border-radius:var(--radius-sm);color:var(--danger);border-left-width:3px;flex-shrink:0;justify-content:space-between;align-items:center;margin:12px 24px;padding:10px 14px;font-size:14px;display:flex}.error-dismiss{color:var(--danger);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:14px;line-height:1}.quotes-loading,.quotes-empty{color:var(--text);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;font-size:15px;display:flex}.quotes-table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex:1;margin:14px 24px;padding:0;overflow-y:auto}.quotes-table{border-collapse:collapse;width:100%;font-size:14px}.quotes-table thead{background:var(--surface);z-index:1;position:sticky;top:0}.quotes-table th{text-align:left;font-family:var(--mono);color:var(--text);text-transform:uppercase;letter-spacing:.09em;border-bottom:2px solid var(--text-h);padding:10px 16px 8px;font-size:10.5px;font-weight:600}.quotes-row{cursor:pointer;transition:background .1s}.quotes-row:hover{background:var(--code-bg)}.quotes-row.is-selected{background:var(--accent-bg);box-shadow:inset 3px 0 0 var(--accent)}.quotes-row.is-expired{background:var(--warn-bg)}.quotes-row.is-expired:hover{background:var(--code-bg)}.quotes-table td{border-bottom:1px solid var(--border);color:var(--text-h);white-space:nowrap;padding:11px 16px}.quotes-table tbody tr:last-child td{border-bottom:none}.col-id{font-family:var(--mono);color:var(--text);font-size:13px;font-weight:500}.quotes-table td.col-expired{color:var(--danger);font-weight:500}.status-badge{font-family:var(--display);text-transform:uppercase;letter-spacing:.09em;border:1.5px solid #0000;border-radius:4px;padding:2px 9px;font-size:11.5px;font-weight:700;line-height:1.5;display:inline-block}.status-draft{color:var(--text);border-color:var(--border);background:0 0;border-style:dashed}.status-sent{color:var(--info);background:var(--info-bg)}.status-accepted{color:var(--ok);background:color-mix(in srgb, var(--ok) 16%, transparent)}.status-rejected{color:var(--danger);background:color-mix(in srgb, var(--danger) 16%, transparent)}.status-expired{color:var(--warn);background:var(--warn-bg)}.quotes-row.is-linked{background:color-mix(in srgb, var(--accent) 4%, transparent)}.quotes-row.is-linked:hover{background:color-mix(in srgb, var(--accent) 8%, transparent)}.quotes-job-link{font-family:var(--mono);color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--accent) 8%, transparent);white-space:nowrap;padding:3px 8px;font-size:.75rem;font-weight:700;text-decoration:none;display:inline-block}.quotes-job-link:hover{background:color-mix(in srgb, var(--accent) 16%, transparent);text-decoration:none}.panel-linked-job{color:var(--accent);font-weight:600;font-family:var(--mono);text-decoration:none}.panel-linked-job:hover{text-decoration:underline}.quotes-pagination{border-top:1px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;gap:16px;padding:12px 24px;display:flex}.pagination-label{font-family:var(--mono);color:var(--text);font-size:12px}.quote-panel{border-left:1px solid var(--border);background:var(--surface);flex-direction:column;flex-shrink:0;width:292px;display:flex;overflow-y:auto}.panel-header{border-bottom:2px solid var(--text-h);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.panel-title{color:var(--text-h);font-size:14px;font-weight:600;font-family:var(--mono)}.panel-fields{flex:1;grid-template-columns:auto 1fr;gap:0;margin:0;padding:8px 0;display:grid}.panel-fields dt{font-family:var(--mono);color:var(--text);text-transform:uppercase;letter-spacing:.07em;white-space:nowrap;padding:7px 16px;font-size:10.5px;font-weight:500}.panel-fields dd{color:var(--text-h);word-break:break-word;margin:0;padding:7px 16px 7px 0;font-size:13px}.panel-notes{white-space:pre-wrap;font-size:13px}.panel-consent-ok{color:var(--ok);font-size:13px;font-weight:600}.panel-consent-none{color:var(--warn);font-size:13px}.panel-actions{border-top:1.5px dashed var(--line-strong);flex-shrink:0;gap:8px;padding:12px 16px;display:flex}.modal-backdrop{z-index:100;background:#0d151980;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:480px;max-height:90vh;box-shadow:var(--shadow);overflow-y:auto}.modal-sm{max-width:360px}.modal-header{border-bottom:2px solid var(--text-h);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h2{font-family:var(--display);letter-spacing:.01em;margin:0;font-size:19px;font-weight:700}.modal-close{color:var(--text);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:4px 6px;font-size:14px;line-height:1;transition:color .15s,background .15s}.modal-close:hover{background:var(--code-bg);color:var(--text-h)}.modal-error{background:var(--danger-bg);border:1px solid var(--danger);border-radius:var(--radius-sm);color:var(--danger);border-left-width:3px;margin:12px 20px 0;padding:10px 14px;font-size:13px}.modal-form{flex-direction:column;gap:14px;padding:20px;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;display:grid}.form-field{flex-direction:column;gap:5px;margin-bottom:16px;display:flex}.form-row .form-field{margin-bottom:0}.form-field label{font-family:var(--mono);color:var(--text);text-transform:uppercase;letter-spacing:.07em;font-size:11px;font-weight:500}.required{color:var(--danger)}.form-field input,.form-field select,.form-field textarea{font-size:14px;font-family:var(--sans);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--code-bg);color:var(--text-h);box-sizing:border-box;outline:none;min-height:40px;padding:10px 12px;transition:border-color .15s}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--accent)}.form-field textarea{resize:vertical;min-height:72px}.form-net-total{border-top:1.5px dashed var(--line-strong);justify-content:space-between;align-items:center;padding:12px 2px 2px;display:flex}.form-net-total__label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.07em;color:var(--text);font-size:11px;font-weight:500}.form-net-total__amount{font-family:var(--mono);color:var(--text-h);font-size:17px;font-weight:600}.modal-actions{justify-content:flex-end;gap:8px;padding:16px 20px 20px;display:flex}.delete-confirm-msg{color:var(--text);margin:0;padding:16px 20px;font-size:14px;line-height:1.6}.btn-primary{font-size:13.5px;font-family:var(--sans);letter-spacing:.01em;background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:none;padding:8px 16px;font-weight:600;transition:background .15s}.btn-primary:hover:not(:disabled){background:var(--accent-strong)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-secondary{font-size:13.5px;font-family:var(--sans);letter-spacing:.01em;background:var(--surface);color:var(--text-h);border:1px solid var(--line-strong);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;padding:8px 14px;font-weight:600;transition:border-color .15s,background .15s}.btn-secondary:hover:not(:disabled){border-color:var(--text-h);background:var(--code-bg)}.btn-secondary:disabled{opacity:.45;cursor:not-allowed}.btn-danger{font-size:13.5px;font-family:var(--sans);background:var(--danger);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:8px 14px;font-weight:600;transition:filter .15s}.btn-danger:hover:not(:disabled){filter:brightness(.92)}.btn-danger:disabled{opacity:.45;cursor:not-allowed}.btn-danger-outline{font-size:13.5px;font-family:var(--sans);color:var(--danger);border:1px solid var(--danger);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:8px 14px;font-weight:600;transition:background .15s}.btn-danger-outline:hover{background:var(--danger-bg)}.quotes-filters{gap:10px;margin:0 24px;display:flex}.quotes-search,.quotes-status-filter{font-size:13.5px;font-family:var(--sans);color:var(--text-h);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;padding:8px 12px;transition:border-color .15s}.quotes-search{flex:1;max-width:320px}.quotes-search:focus,.quotes-status-filter:focus{border-color:var(--accent)}.service-name{color:var(--text-h);font-weight:500}.service-desc{color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:340px;margin-top:2px;font-size:12px;overflow:hidden}.col-actions{text-align:right;white-space:nowrap}.col-actions .btn-small+.btn-small{margin-left:6px}.btn-small{min-height:0;padding:5px 10px;font-size:12.5px}.form-field-checkbox label{font-family:var(--sans);text-transform:none;letter-spacing:0;color:var(--text-h);cursor:pointer;align-items:center;gap:8px;font-size:13.5px;display:flex}.form-field-checkbox input{accent-color:var(--accent)}.services-header-actions{align-items:center;gap:10px;display:flex}.services-import-hint{color:var(--text);margin:10px 24px 0;font-size:12.5px}.link-button{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:12.5px;text-decoration:underline}.import-error-list{margin:6px 0 0;padding-left:18px;font-size:12px}.import-success{color:var(--ok);background:var(--ok-bg);border:1px solid var(--ok);border-radius:var(--radius-sm);border-left-width:3px;justify-content:space-between;align-items:center;gap:10px;margin:12px 24px 0;padding:10px 14px;font-size:13px;display:flex}.import-success .error-dismiss{color:var(--ok)}@media (width<=768px){.quotes-header{flex-wrap:wrap;gap:10px;padding:14px 14px 10px}.quotes-error,.import-success{margin-left:14px;margin-right:14px}.quotes-table-wrap{margin:12px 14px}.quotes-filters{flex-direction:column;margin:0 14px}.services-import-hint{margin:8px 14px 0}.quotes-search{max-width:none}.quotes-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.quotes-page:not(.services-page) .quotes-table th:nth-child(4),.quotes-page:not(.services-page) .quotes-table td:nth-child(4),.quotes-page:not(.services-page) .quotes-table th:nth-child(6),.quotes-page:not(.services-page) .quotes-table td:nth-child(6),.quotes-page:not(.services-page) .quotes-table th:nth-child(7),.quotes-page:not(.services-page) .quotes-table td:nth-child(7),.services-page .quotes-table th:nth-child(2),.services-page .quotes-table td:nth-child(2),.services-page .quotes-table th:nth-child(4),.services-page .quotes-table td:nth-child(4){display:none}.quote-panel{left:0;right:0;bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px));border-left:none;border-top:2px solid var(--text-h);border-radius:var(--radius) var(--radius) 0 0;width:100%;max-height:62dvh;box-shadow:var(--shadow-sheet);z-index:50;box-sizing:border-box;position:fixed}.modal-backdrop{align-items:flex-end}.modal{border-radius:var(--radius) var(--radius) 0 0;box-sizing:border-box;width:100%;max-width:none;max-height:88dvh;overflow-y:auto}.form-row{grid-template-columns:1fr}.services-header-actions{flex-wrap:wrap}.quotes-pagination{padding-bottom:16px}}.form-field select,.qe-add-service select,.quotes-status-filter{appearance:none;box-sizing:border-box;cursor:pointer;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%234c5e66' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;min-height:40px;padding:10px 36px 10px 12px}@media (prefers-color-scheme:dark){.form-field select,.qe-add-service select,.quotes-status-filter{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2393a5ad' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")}}.dashboard-page{box-sizing:border-box;width:100%;max-width:860px;margin:0 auto;padding:28px 24px 60px}.dash-subtitle{color:var(--text);margin:2px 0 0;font-size:14px}.dash-stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:32px;display:grid}.dash-stat{border:1px solid var(--border);border-top:3px solid var(--text-h);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:2px;padding:14px 18px 16px;display:flex}.dash-stat-value{font-family:var(--display);color:var(--text-h);font-variant-numeric:tabular-nums;font-size:38px;font-weight:700;line-height:1.15}.dash-stat-money{color:var(--ok)}.dash-stat:has(.dash-stat-money){border-top-color:var(--ok)}.dash-stat.dash-stat-warn{border-top-color:var(--warn)}.dash-stat.dash-stat-warn .dash-stat-value{color:var(--warn)}.dash-stat-label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text);font-size:10.5px}.dash-recent-header{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.dash-recent-header h2{font-family:var(--display);letter-spacing:.01em;color:var(--text-h);margin:0;font-size:19px;font-weight:700}.dash-view-all{color:var(--accent);font-size:13.5px;font-weight:600;text-decoration:none}.dash-view-all:hover{text-decoration:underline}.dashboard-page .quotes-header{padding-top:0;padding-left:0;padding-right:0}.dashboard-page .quotes-table-wrap,.dashboard-page .quotes-error{margin-top:0;margin-left:0;margin-right:0}.dash-chart{margin-bottom:32px}.dash-section-title{font-family:var(--display);letter-spacing:.01em;color:var(--text-h);margin:0 0 12px;font-size:19px;font-weight:700}.dash-chart-header{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.dash-chart-range{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--text-h);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%234c5e66'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;padding:4px 24px 4px 8px;font-size:11px}.dash-chart-range:focus{outline:2px solid var(--accent);outline-offset:1px}.dash-chart-empty{font-family:var(--mono);color:var(--text);text-align:center;margin:0;padding:40px 0;font-size:12px}.dash-chart-wrap{border:1px solid var(--border);border-top:3px solid var(--text-h);border-radius:var(--radius);background:var(--surface);padding:16px 8px 8px}@media (width<=768px){.dashboard-page{padding:16px 14px 40px}.dash-stats{grid-template-columns:1fr 1fr;gap:10px}.dash-stat{padding:12px 14px 14px}.dash-stat-value{font-size:30px}.dashboard-page .quotes-table th:nth-child(5),.dashboard-page .quotes-table td:nth-child(5){display:none}}.qa-assistant-page{flex-direction:column;gap:14px;height:100%;min-height:0;display:flex}.qa-assistant-header{background:linear-gradient(180deg, var(--accent-bg), transparent 160%), var(--surface);border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;display:flex}.qa-assistant-header-copy{align-items:center;gap:14px;min-width:0;display:flex}.qa-assistant-header-icon{background:var(--accent);color:#fff;border-radius:12px;flex:none;place-items:center;width:44px;height:44px;display:grid;box-shadow:0 2px 6px #e8590c4d}.qa-title{font-family:var(--display);color:var(--text-h);letter-spacing:.01em;margin:0;font-size:1.8rem;font-weight:700;line-height:1.1}.qa-subtitle{color:var(--text-h);margin:3px 0 0;font-size:.95rem}.qa-assistant-header-actions{align-items:center;gap:12px;display:flex}.qa-blank-link{background:var(--surface);border:1px solid var(--accent-border);border-radius:var(--radius);font:inherit;color:var(--accent-strong);cursor:pointer;padding:8px 14px;font-size:.85rem;font-weight:600;transition:background .15s}.qa-blank-link:hover:not(:disabled){background:var(--accent-bg)}.qa-blank-link:disabled{opacity:.6;cursor:default}.qa-resume{background:var(--accent-bg);border:1px solid var(--accent);border-radius:var(--radius);color:var(--text-h);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:.9rem;display:flex}.qa-resume-actions{align-items:center;gap:10px;display:flex}.qa-resume-dismiss{font:inherit;color:var(--text);cursor:pointer;background:0 0;border:none;font-size:.85rem;text-decoration:underline}.qa-panels{flex:1;grid-template-columns:minmax(340px,420px) 1fr;gap:16px;min-height:0;display:grid}.qa-chat,.qa-preview{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;height:calc(100vh - 215px);min-height:480px;display:flex;overflow:hidden}.qa-thread{flex-direction:column;flex:1;gap:10px;padding:16px;display:flex;overflow-y:auto}.qa-msg{border-radius:12px;max-width:90%;padding:9px 13px;font-size:.9rem;line-height:1.5}.qa-msg p{margin:0 0 8px}.qa-msg p:last-child{margin:0}.qa-msg ul{margin:4px 0 8px;padding-left:18px}.qa-msg li{margin:2px 0}.qa-msg-ai{background:var(--code-bg);border:1px solid var(--border);color:var(--text-h);border-top-left-radius:4px;align-self:flex-start}.qa-msg-user{background:var(--ink);color:#fff;border-top-right-radius:4px;align-self:flex-end}.qa-msg-error{border:1px solid var(--danger);color:var(--danger);background:#c0392b14;border-top-left-radius:4px;align-self:flex-start}.qa-retry{border:1px solid var(--danger);border-radius:var(--radius-sm);color:var(--danger);font:inherit;cursor:pointer;background:0 0;margin-top:6px;padding:3px 10px;font-size:.8rem}.qa-retry:hover{background:#c0392b1a}.qa-typing{gap:4px;padding:13px 15px;display:flex}.qa-typing span{background:var(--text);border-radius:50%;width:6px;height:6px;animation:1.2s infinite qa-blink}.qa-typing span:nth-child(2){animation-delay:.2s}.qa-typing span:nth-child(3){animation-delay:.4s}@keyframes qa-blink{0%,80%,to{opacity:.25}40%{opacity:1}}.qa-composer{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.qa-chips{flex-wrap:wrap;gap:8px;display:flex}.qa-chip{border:1px solid var(--accent);color:var(--accent-strong);background:var(--surface);font:inherit;cursor:pointer;border-radius:999px;padding:5px 12px;font-size:.82rem;transition:background .15s}.qa-chip:hover{background:var(--accent-bg)}.qa-inputrow{align-items:flex-end;gap:8px;display:flex}.qa-input{resize:none;border:1px solid var(--border);font:inherit;color:var(--text-h);background:var(--surface);border-radius:24px;flex:1;max-height:160px;padding:14px 18px;font-size:1rem}.qa-input:focus{outline:2px solid var(--accent);outline-offset:-1px}.qa-iconbtn{border:1px solid var(--border);background:var(--surface);width:50px;height:50px;color:var(--text-h);cursor:pointer;border-radius:50%;flex:none;place-items:center;display:grid}.qa-iconbtn:disabled{opacity:.45;cursor:default}.qa-mic.is-recording{background:var(--danger);border-color:var(--danger);color:#fff;animation:1.6s infinite qa-rec}@keyframes qa-rec{0%,to{box-shadow:0 0 #c0392b59}50%{box-shadow:0 0 0 6px #c0392b00}}.qa-send{background:var(--accent);border-color:var(--accent);color:#fff}.qa-send:hover:not(:disabled){background:var(--accent-strong)}.qa-listening{color:var(--danger);align-items:center;gap:8px;font-size:.8rem;display:flex}.qa-pulse{background:var(--danger);border-radius:50%;width:8px;height:8px;animation:1.2s infinite qa-blink}.qa-preview-head{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 16px;display:flex}.qa-preview-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text);flex:none;font-size:.72rem;font-weight:650}.qa-meter{background:var(--code-bg);border-radius:3px;flex:1;height:6px;overflow:hidden}.qa-meter i{background:var(--ok);border-radius:3px;height:100%;transition:width .5s;display:block}.qa-meter-num{font-family:var(--mono);color:var(--ok);text-align:right;min-width:38px;font-size:.8rem}.qa-save-state{color:var(--text);text-align:right;min-width:52px;font-size:.75rem}.qa-inline-error{border-bottom:1px solid var(--danger);color:var(--danger);background:#c0392b14;padding:8px 16px;font-size:.82rem}.qa-doc-scroll{background:var(--bg);flex:1;padding:16px;overflow-y:auto}.qa-doc{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:22px 24px}.qa-doc-top{border-bottom:2px solid var(--text-h);justify-content:space-between;align-items:baseline;margin-bottom:12px;padding-bottom:8px;display:flex}.qa-doc-top h2{font-family:var(--display);color:var(--text-h);margin:0;font-size:1.5rem}.qa-doc-qno{font-family:var(--mono);color:var(--text);font-size:.75rem}.qa-doc h3{text-transform:uppercase;letter-spacing:.1em;color:var(--text);margin:16px 0 6px;font-size:.68rem;font-weight:700}.qa-doc-placeholder{color:var(--text);opacity:.55;margin:0;font-size:.85rem;font-style:italic}.qa-doc-field{color:var(--text-h);margin:0;font-size:.9rem}.qa-doc-fields{flex-direction:column;gap:6px;display:flex}.qa-doc-input{border:1px solid #0000;border-bottom:1px dashed var(--border);width:100%;font:inherit;color:var(--text-h);background:0 0;border-radius:0;padding:3px 2px;font-size:.9rem}.qa-doc-input::placeholder{color:var(--text);opacity:.5;font-style:italic}.qa-doc-input:focus{border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--surface);outline:none}.qa-doc-input:disabled{color:var(--text-h);opacity:1;border-bottom-color:#0000}.qa-doc-input-strong{font-weight:650}.qa-doc-textarea{resize:vertical;line-height:1.5}table.qa-items{border-collapse:collapse;width:100%;font-size:.86rem}.qa-items th{text-transform:uppercase;letter-spacing:.08em;color:var(--text);text-align:left;border-bottom:1px solid var(--border);padding:4px;font-size:.65rem;font-weight:650}.qa-items th.n,.qa-items td.n{text-align:right}.qa-items td{border-bottom:1px solid var(--border);vertical-align:top;padding:6px 4px}.qa-items tr.is-suggested td{background:#a86e0a17}.qa-line-total{font-family:var(--mono);white-space:nowrap;padding-top:10px}.qa-cell-input{width:100%;font:inherit;color:var(--text-h);border-radius:var(--radius-sm);background:0 0;border:1px solid #0000;padding:3px 4px;font-size:.86rem}.qa-cell-input:focus{border-color:var(--accent);background:var(--surface);outline:none}.qa-cell-input:disabled{color:var(--text-h);opacity:1}.qa-cell-num{text-align:right;width:72px;font-family:var(--mono)}.qa-cell-remove{width:26px}.qa-remove{color:var(--text);cursor:pointer;background:0 0;border:none;padding:4px;font-size:.8rem}.qa-remove:hover{color:var(--danger)}.qa-item-tags{flex-wrap:wrap;align-items:center;gap:6px;margin-top:3px;display:flex}.qa-tag{text-transform:uppercase;letter-spacing:.07em;border-radius:3px;padding:1px 6px;font-size:.6rem;font-weight:700}.qa-tag-suggested{background:var(--warn);color:#fff}.qa-tag-optional{border:1px solid var(--border);color:var(--text)}.qa-mini{font-size:.72rem;font-weight:600;font-family:var(--sans);border:1px solid var(--warn);color:var(--warn);background:var(--surface);border-radius:var(--radius-sm);cursor:pointer;padding:1px 8px}.qa-mini:disabled{opacity:.5;cursor:default}.qa-mini-ok{border-color:var(--ok);color:var(--ok)}.qa-mini-ok:hover:not(:disabled){background:#2b7a4614}.qa-mini:not(.qa-mini-ok):hover:not(:disabled){background:#a86e0a14}.qa-add-line{border:1px dashed var(--border);border-radius:var(--radius-sm);color:var(--text);font:inherit;cursor:pointer;background:0 0;margin-top:8px;padding:5px 12px;font-size:.8rem}.qa-add-line:hover{border-color:var(--accent);color:var(--accent-strong)}.qa-preview-totals{width:240px;margin:10px 0 0 auto;font-size:.88rem}.qa-preview-total-row{font-family:var(--mono);color:var(--text-h);justify-content:space-between;padding:3px 4px;display:flex}.qa-preview-total-row span:first-child{font-family:var(--sans);color:var(--text)}.qa-preview-total-grand{border-top:2px solid var(--text-h);margin-top:4px;padding-top:6px;font-size:1rem;font-weight:700}.qa-preview-total-grand span:first-child{color:var(--text-h);font-weight:700}.qa-staff{flex-direction:column;gap:4px;display:flex}.qa-staff-row{align-items:center;gap:8px;display:flex}.qa-staff-row .qa-cell-input:first-child{flex:1}.qa-duration{flex-wrap:wrap;gap:14px;display:flex}.qa-duration label{color:var(--text);align-items:center;gap:6px;font-size:.82rem;display:flex}.qa-duration .qa-cell-input{border:1px solid var(--border);width:58px}ul.qa-assumptions,ul.qa-missing{margin:4px 0 0;padding:0;font-size:.85rem;list-style:none}.qa-assumptions li{color:var(--text);padding:2px 0 2px 16px;position:relative}.qa-assumptions li:before{content:"–";position:absolute;left:2px}.qa-missing li{color:var(--warn);padding:2px 0 2px 20px;position:relative}.qa-missing li:before{content:"";border:1.5px solid var(--warn);border-radius:2px;width:9px;height:9px;position:absolute;top:6px;left:2px}.qa-preview-foot{border-top:1px solid var(--border);justify-content:flex-end;align-items:center;gap:12px;padding:10px 16px;display:flex}.qa-review-note{color:var(--text);margin-right:auto;font-size:.82rem}.qa-create-error{color:var(--danger);margin-right:auto;font-size:.82rem}.qa-create-btn{min-width:140px}.qa-tabs{gap:8px;display:none}.qa-tab{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius);font:inherit;color:var(--text);cursor:pointer;flex:1;padding:9px;font-size:.85rem;font-weight:650}.qa-tab.is-active{background:var(--ink);border-color:var(--ink);color:#fff}@media (width>=1400px){.qa-panels{grid-template-columns:minmax(440px,1fr) 1.8fr}}@media (width<=900px){.qa-panels{grid-template-columns:1fr}.qa-tabs{display:flex}.qa-panels.show-chat .qa-preview,.qa-panels.show-preview .qa-chat{display:none}.qa-chat,.qa-preview{height:calc(100vh - 250px);min-height:420px}.qa-doc{padding:16px}}.qa-voicemode{background:var(--ink);border-color:var(--ink);color:#fff}.qa-voicemode:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}.qa-voice-overlay{z-index:60;background:color-mix(in srgb, var(--ink) 96%, transparent);color:#f2f5f6;flex-direction:column;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.qa-voice-top{justify-content:flex-end;align-items:center;gap:12px;width:100%;display:flex}.qa-voice-engine{letter-spacing:.06em;text-transform:uppercase;color:#9fb0b8;border:1px solid #ffffff40;border-radius:999px;padding:3px 10px;font-size:.75rem}.qa-voice-close{color:#fff;font:inherit;border-radius:var(--radius);cursor:pointer;background:#ffffff1a;border:1px solid #ffffff4d;padding:8px 14px;font-size:.9rem}.qa-voice-close:hover{background:#fff3}.qa-voice-stage{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:22px;width:min(680px,100%);display:flex}.qa-voice-orb{cursor:pointer;background:0 0;border:none;border-radius:50%;place-items:center;width:148px;height:148px;display:grid;position:relative}.qa-voice-orb:disabled{cursor:default}.qa-voice-orb-core{background:radial-gradient(circle at 32% 30%, #ff9c5b, var(--accent) 58%, #b64106);border-radius:50%;width:104px;height:104px;transition:transform .3s;box-shadow:0 8px 40px #e8590c73}.qa-voice-ring{opacity:0;border:2px solid #e8590c80;border-radius:50%;position:absolute;inset:0}.is-listening .qa-voice-ring-1{animation:2.2s infinite qa-voice-pulse}.is-listening .qa-voice-ring-2{animation:2.2s 1.1s infinite qa-voice-pulse}.is-thinking .qa-voice-orb-core{animation:1.6s ease-in-out infinite qa-voice-breathe}.is-speaking .qa-voice-orb-core{animation:.55s ease-in-out infinite qa-voice-talk}.is-connecting .qa-voice-orb-core{opacity:.6;animation:1.2s ease-in-out infinite qa-voice-breathe}.is-error .qa-voice-orb-core{background:radial-gradient(circle at 32% 30%, #e0604e, var(--danger) 60%, #7c1f14);box-shadow:none}@keyframes qa-voice-pulse{0%{opacity:.8;transform:scale(.72)}to{opacity:0;transform:scale(1.25)}}@keyframes qa-voice-breathe{0%,to{transform:scale(.94)}50%{transform:scale(1.04)}}@keyframes qa-voice-talk{0%,to{transform:scale(.97)}50%{transform:scale(1.06)}}.qa-voice-status{color:#dfe7ea;margin:0;font-size:1.05rem}.qa-voice-text{width:100%;min-height:84px}.qa-voice-transcript{color:#fff;margin:0;font-size:1.15rem;line-height:1.5}.qa-voice-reply{color:#c9d4d9;white-space:pre-wrap;max-height:30vh;margin:0;font-size:1rem;line-height:1.55;overflow-y:auto}.qa-voice-error{color:#ffb4a6;max-width:460px;margin:0;font-size:.95rem}.qa-voice-hint{color:#9fb0b8;margin:0 0 8px;font-size:.8rem}@media (prefers-reduced-motion:reduce){.qa-meter i{transition:none}.qa-typing span,.qa-pulse,.qa-mic.is-recording{animation:none}.qa-voice-ring,.qa-voice-orb-core{animation:none!important}}.service-picker{width:320px;max-width:100%;position:relative}.service-picker-input-wrap{background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius-sm);box-sizing:border-box;min-height:40px;color:var(--text);align-items:center;gap:8px;padding:0 12px;transition:border-color .15s;display:flex}.service-picker-input-wrap:focus-within{border-color:var(--accent)}.service-picker-input{font-size:13px;font-family:var(--sans);color:var(--text-h);background:0 0;border:none;outline:none;flex:1;min-width:0;padding:10px 0}.service-picker-list{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);max-height:260px;box-shadow:var(--shadow);z-index:30;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.service-picker-option{border-radius:var(--radius-sm);cursor:pointer;padding:8px 10px}.service-picker-option.is-highlighted{background:var(--accent-bg)}.service-picker-name{color:var(--text-h);font-size:13px}.service-picker-meta{color:var(--text);justify-content:space-between;gap:8px;margin-top:2px;font-size:11px;display:flex}.service-picker-category{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;background:var(--code-bg);border-radius:3px;padding:2px 7px;font-size:10px}.service-picker-price{margin-left:auto}.service-picker-empty{color:var(--text);padding:10px;font-size:12px}@media (width<=768px){.service-picker{width:100%}}.quote-editor{box-sizing:border-box;width:100%;max-width:860px;margin:0 auto;padding:28px 24px 60px}.qe-title-group{align-items:center;gap:12px;display:flex}.quote-editor .quotes-title{font-family:var(--mono);letter-spacing:0;font-size:20px;font-weight:600}.qe-back{border:1px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;background:0 0;padding:4px 12px;font-size:16px;transition:color .15s,border-color .15s}.qe-back:hover{color:var(--text-h);border-color:var(--text-h)}.qe-header-actions{align-items:center;gap:10px;display:flex}.qe-saved{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ok);font-size:12px}.qe-section{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-bottom:20px;padding:20px}.qe-section-title{font-family:var(--display);letter-spacing:.02em;color:var(--text-h);margin:0 0 14px;font-size:17px;font-weight:700}.qe-meta-row{flex:1}.qe-duration-field{flex-direction:column;gap:6px;margin-top:12px;display:flex}.qe-duration-label{font-family:var(--mono);color:var(--text);text-transform:uppercase;letter-spacing:.07em;align-items:center;gap:8px;font-size:11px;font-weight:500;display:flex}.qe-duration-opt{text-transform:none;letter-spacing:0;opacity:.55;font-size:10px;font-style:italic;font-weight:400}.qe-duration-inputs{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--code-bg);align-items:stretch;gap:0;width:fit-content;height:40px;transition:border-color .15s;display:flex}.qe-duration-inputs:focus-within{border-color:var(--accent)}.qe-duration-group{align-items:center;gap:4px;padding:0 10px;display:flex}.qe-duration-group+.qe-duration-group{border-left:1px solid var(--border)}.qe-duration-num{width:40px;font-family:var(--mono);color:var(--text-h);text-align:right;-moz-appearance:textfield;background:0 0;border:none;outline:none;padding:0;font-size:15px;font-weight:600}.qe-duration-num::-webkit-inner-spin-button{opacity:.5}.qe-duration-num::-webkit-outer-spin-button{opacity:.5}.qe-duration-unit{font-family:var(--mono);color:var(--text);text-transform:uppercase;letter-spacing:.06em;-webkit-user-select:none;user-select:none;font-size:10px;font-weight:600}.qe-duration-summary{font-family:var(--mono);color:var(--info);padding:3px 0;font-size:11.5px}.qe-transcript-toggle{color:var(--text-h);cursor:pointer;font-size:13.5px;font-weight:600;font-family:var(--sans);background:0 0;border:none;padding:0}.qe-transcript{color:var(--text);border-left:2px solid var(--border);margin:10px 0 0;padding-left:12px;font-size:13.5px;font-style:italic;line-height:1.55}.qe-items-table{border-collapse:collapse;width:100%;margin-bottom:14px}.qe-items-table th{text-align:left;font-family:var(--mono);text-transform:uppercase;letter-spacing:.09em;color:var(--text);border-bottom:2px solid var(--text-h);padding:6px 8px;font-size:10.5px;font-weight:600}.qe-items-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:6px 8px}.qe-col-qty{width:80px}.qe-col-price{width:120px}.qe-col-total{width:110px}.qe-col-remove{width:36px}.qe-item-input{width:100%;font-size:13.5px;font-family:var(--sans);color:var(--text-h);background:var(--code-bg);border-radius:var(--radius-sm);box-sizing:border-box;border:1px solid #0000;outline:none;padding:7px 9px;transition:border-color .15s}.qe-item-input:focus{border-color:var(--accent)}.qe-input-num{text-align:right;font-family:var(--mono);font-size:13px}.qe-line-total{font-family:var(--mono);color:var(--text-h);text-align:right;white-space:nowrap;font-size:13px}.qe-remove-btn{color:var(--text);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:4px 6px;font-size:12px}.qe-remove-btn:hover{color:var(--danger);background:var(--danger-bg)}.qe-empty-items{color:var(--text);margin:0 0 14px;font-size:13.5px}.qe-add-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.qe-add-service{align-items:center;gap:8px;display:flex}.qe-add-service select{font-size:13.5px;font-family:var(--sans);color:var(--text-h);background-color:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;max-width:320px}.qe-totals-section{flex-wrap:wrap;gap:28px;display:flex}.qe-notes-col{flex:1;min-width:260px}.qe-totals-col{flex-direction:column;gap:10px;width:280px;display:flex}.qe-total-line{color:var(--text);justify-content:space-between;align-items:center;font-size:14px;display:flex}.qe-total-line span:last-child{font-family:var(--mono);color:var(--text-h);font-size:13.5px}.qe-discount-line input{width:90px;font-family:var(--mono);text-align:right;color:var(--text-h);background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;padding:6px 9px;font-size:13px}.qe-discount-line input:focus{border-color:var(--accent)}.qe-grand-total{border-top:1.5px dashed var(--line-strong);margin-top:4px;padding-top:14px}.qe-grand-total span:first-child{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text);font-size:11px;font-weight:600}.qe-grand-total span:last-child{font-family:var(--mono);color:var(--text-h);font-size:21px;font-weight:600}.qe-tax-line{opacity:.75;font-size:13px}.qe-gst-toggle-row{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:12px;padding-top:10px;display:flex}.qe-gst-toggle-label{color:var(--text);font-size:13px}@media (width<=768px){.quote-editor{padding:16px 14px 40px}.quote-editor .quotes-header{flex-wrap:wrap;gap:12px;padding:0 0 12px}.qe-header-actions{flex-wrap:wrap;justify-content:stretch;width:100%}.qe-header-actions .btn-primary,.qe-header-actions .btn-secondary{flex:1}.qe-section{padding:14px}.qe-items-scroll{-webkit-overflow-scrolling:touch;margin:0 -14px;padding:0 14px;overflow-x:auto}.qe-items-table{min-width:560px}.qe-totals-section{flex-direction:column;gap:18px}.qe-totals-col,.qe-add-service{width:100%}.qe-add-service select{flex:1;max-width:none}}.qe-share-body{flex-direction:column;gap:14px;padding:16px 20px 20px;display:flex}.qe-share-option{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:14px}.qe-share-option-head{color:var(--text-h);align-items:center;gap:8px;margin-bottom:6px;font-size:14px;display:flex}.qe-share-option-head svg{color:var(--accent)}.qe-share-hint{color:var(--text);margin:0 0 12px;font-size:12.5px}.qe-share-btn{width:100%}.qe-share-option .form-field{margin-bottom:12px}.qe-email-sent{color:var(--ok);background:var(--ok-bg);border:1px solid var(--ok);border-radius:var(--radius-sm);border-left-width:3px;align-items:center;gap:8px;margin:0;padding:12px 14px;font-size:14px;font-weight:500;display:flex}.qe-share-warn{color:var(--warn);background:var(--warn-bg);border:1px solid var(--warn);border-radius:var(--radius-sm);border-left-width:3px;margin:0 0 12px;padding:8px 12px;font-size:12.5px}.qe-email-error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger);border-radius:var(--radius-sm);border-left-width:3px;margin:0 0 12px;padding:8px 12px;font-size:12.5px}.qe-accept-link-box{background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px}.qe-accept-link-url{font-family:var(--mono);color:var(--text-h);word-break:break-all;font-size:11.5px;line-height:1.5;display:block}.qe-unsaved{font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--warn);white-space:nowrap;align-items:center;gap:6px;font-size:11.5px;display:inline-flex}.qe-unsaved:before{content:"";background:var(--warn);border-radius:50%;width:8px;height:8px;animation:1.6s ease-in-out infinite qe-pulse}@keyframes qe-pulse{0%,to{opacity:1}50%{opacity:.35}}.qe-staff-hint{color:var(--text);margin:0 0 12px;font-size:13px}.qe-staff-list{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.qe-staff-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.qe-staff-position{min-width:160px;max-width:260px;font-size:13.5px;font-family:var(--sans);color:var(--text-h);background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius-sm);box-sizing:border-box;appearance:none;cursor:pointer;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%234c5e66' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;outline:none;flex:1;padding:7px 32px 7px 10px;transition:border-color .15s}.qe-staff-position:focus{border-color:var(--accent)}@media (prefers-color-scheme:dark){.qe-staff-position{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2393a5ad' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")}}.qe-staff-custom{min-width:140px;max-width:220px;font-size:13.5px;font-family:var(--sans);color:var(--text-h);background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius-sm);box-sizing:border-box;outline:none;flex:1;padding:7px 10px;transition:border-color .15s}.qe-staff-custom:focus{border-color:var(--accent)}.qe-staff-qty-wrap{align-items:center;gap:6px;display:flex}.qe-staff-qty{text-align:center;width:64px;font-size:13.5px;font-family:var(--mono);color:var(--text-h);background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius-sm);box-sizing:border-box;outline:none;padding:7px 6px;transition:border-color .15s}.qe-staff-qty:focus{border-color:var(--accent)}.qe-staff-qty-label{color:var(--text);white-space:nowrap;font-size:13px}.qe-consent-section{border-top:3px solid var(--ok)}.qe-consent-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.qe-consent-header .qe-section-title{margin-bottom:0}.qe-consent-badge{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;border-radius:var(--radius-sm);padding:3px 8px;font-size:10.5px;font-weight:600}.qe-consent-ok{color:var(--ok);background:var(--ok-bg);border:1px solid #2b7a4640}.qe-consent-none{color:var(--warn);background:var(--warn-bg);border:1px solid #a86e0a40}.qe-consent-fields{grid-template-columns:140px 1fr;gap:6px 12px;margin:0 0 10px;display:grid}.qe-consent-fields dt{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--text);padding-top:1px;font-size:11px}.qe-consent-fields dd{color:var(--text-h);margin:0;font-size:13.5px}.qe-consent-audit{border-top:1px dashed var(--border);margin-top:10px;padding-top:10px}.qe-consent-mono{font-family:var(--mono);font-size:12px}.qe-consent-ua{word-break:break-all;color:var(--text);font-size:11px}.qe-consent-details-toggle{color:var(--accent);cursor:pointer;font-size:13px;font-family:var(--sans);background:0 0;border:none;padding:0}.qe-consent-hint{color:var(--text);margin:0;font-size:13.5px}.qe-locked-banner{background:color-mix(in srgb, var(--warning,#d97706) 10%, transparent);border:1px solid color-mix(in srgb, var(--warning,#d97706) 40%, transparent);border-left:4px solid var(--warning,#d97706);border-radius:var(--radius);flex-direction:column;gap:6px;margin-bottom:20px;padding:14px 18px;display:flex}.qe-locked-title{color:var(--text-h);text-transform:uppercase;letter-spacing:.03em;font-size:.875rem;font-weight:600}.qe-locked-body{color:var(--text);margin:0;font-size:.875rem;line-height:1.5}.qe-locked-job-link{color:var(--accent);font-weight:600;text-decoration:none}.qe-locked-job-link:hover{text-decoration:underline}.qe-convert-section{border-top:3px solid var(--ok)}.qe-convert-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.qe-convert-hint{color:var(--text);opacity:.7;margin:4px 0 0;font-size:.875rem}.qe-convert-error{color:var(--danger);margin:6px 0 0;font-size:.8125rem}.qe-convert-done{opacity:1;color:var(--ok);font-weight:500}.settings-page{box-sizing:border-box;width:100%;max-width:640px;margin:0 auto;padding:28px 24px 60px}.settings-section{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-bottom:20px;padding:20px}.settings-section-title{font-family:var(--display);letter-spacing:.02em;color:var(--text-h);margin:0 0 4px;font-size:17px;font-weight:700}.settings-hint{color:var(--text);margin:0 0 16px;font-size:13.5px}.settings-actions{justify-content:flex-end;align-items:center;gap:12px;margin-top:8px;display:flex}.settings-saved{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ok);font-size:12px}.settings-account{margin:0}.settings-plan{text-transform:capitalize}.settings-logo-drop{border:2px dashed var(--border);border-radius:var(--radius);background:var(--code-bg);cursor:pointer;outline:none;justify-content:center;align-items:center;min-height:88px;margin-top:6px;padding:14px;transition:border-color .15s,background .15s;display:flex}.settings-logo-drop:hover,.settings-logo-drop:focus-visible{border-color:var(--accent)}.settings-logo-drop.is-dragging{border-color:var(--accent);background:var(--accent-bg)}.settings-logo-drop.is-disabled{cursor:not-allowed;opacity:.6;pointer-events:none}.settings-logo-img{border-radius:var(--radius-sm);max-width:100%;max-height:60px}.settings-logo-state{color:var(--text);text-align:center;pointer-events:none;margin:0;font-size:13.5px}.settings-logo-remove{margin-top:8px;display:inline-flex}.settings-logo-hint{margin-top:8px}.settings-category-chips{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.settings-chip{color:var(--text-h);background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:6px;padding:4px 10px;font-size:13px;font-weight:500;display:inline-flex}.settings-chip-remove{color:var(--text);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:11px}.settings-chip-remove:hover{color:var(--danger)}.settings-category-add{gap:8px;margin-bottom:6px;display:flex}.settings-category-add input{max-width:260px;font-size:13.5px;font-family:var(--sans);color:var(--text-h);background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;flex:1;padding:8px 12px;transition:border-color .15s}.settings-category-add input:focus{border-color:var(--accent)}.settings-page .quotes-header{padding-top:0;padding-left:0;padding-right:0}.settings-signout{margin-top:14px}.settings-toggle-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:16px;padding:12px 0;display:flex}.settings-toggle-row:last-of-type{border-bottom:none}.settings-toggle-info{flex-direction:column;flex:1;gap:2px;display:flex}.settings-toggle-label{color:var(--text-h);font-size:14px;font-weight:600}.settings-toggle-row .settings-hint{margin:0;font-size:12.5px}.settings-toggle{cursor:pointer;flex-shrink:0;margin-top:2px;position:relative}.settings-toggle input[type=checkbox]{opacity:0;width:0;height:0;position:absolute}.settings-toggle-track{background:var(--border);border-radius:11px;width:40px;height:22px;transition:background .2s;display:block;position:relative}.settings-toggle-track:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:3px;left:3px}.settings-toggle input:checked+.settings-toggle-track{background:var(--accent)}.settings-toggle input:checked+.settings-toggle-track:after{transform:translate(18px)}.settings-toggle input:disabled+.settings-toggle-track{opacity:.5;cursor:not-allowed}@media (width<=768px){.settings-page{padding:16px 14px 40px}.settings-section{padding:16px 14px}.settings-category-add input{max-width:none}}.employees-page{flex-direction:row;height:100%;display:flex;overflow:hidden}.employees-main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.employees-header{gap:12px}.employees-header-actions{align-items:center;gap:10px;display:flex}.is-active-btn{border-color:var(--accent);color:var(--accent)}.employees-filters{flex-wrap:wrap}.employees-table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex:1;margin:14px 24px;padding:0;overflow-y:auto}.employees-table{border-collapse:collapse;width:100%;font-size:14px}.employees-row{cursor:pointer;transition:background .1s}.employees-row td{border-bottom:1px solid var(--border);color:var(--text-h);vertical-align:middle;padding:11px 16px}.employees-table tbody .employees-row:last-child td{border-bottom:none}.employee-name{color:var(--text-h);font-weight:500}.employee-contact{color:var(--text);flex-direction:column;gap:2px;font-size:13px;display:flex}.emp-no-position{color:var(--text)}.emp-status-active{color:var(--ok);font-size:13px;font-weight:500}.emp-status-inactive{color:var(--text);font-size:13px}.employees-panel{border-left:1px solid var(--border);background:var(--surface);flex-direction:column;flex-shrink:0;width:292px;display:flex;overflow-y:auto}.positions-panel{border-left:1px solid var(--border);background:var(--surface);flex-direction:column;flex-shrink:0;width:300px;display:flex;overflow-y:auto}.positions-panel-header{border-bottom:2px solid var(--text-h);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.positions-list{flex:1;padding:8px 0;overflow-y:auto}.positions-empty{color:var(--text);margin:0;padding:16px;font-size:13px}.position-item{border-bottom:1px solid var(--border);padding:10px 16px}.position-item:last-child{border-bottom:none}.position-item-info{flex-direction:column;gap:2px;margin-bottom:8px;display:flex}.position-item-name{color:var(--text-h);font-size:13.5px;font-weight:500}.position-item-desc{color:var(--text);font-size:12px}.position-item-actions{gap:6px;display:flex}.position-edit-form{flex-direction:column;gap:6px;display:flex}.position-edit-input{font-size:13.5px;font-family:var(--sans);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--code-bg);color:var(--text-h);box-sizing:border-box;outline:none;width:100%;padding:7px 10px;transition:border-color .15s}.position-edit-input:focus{border-color:var(--accent)}.position-edit-actions{justify-content:flex-end;gap:6px;display:flex}.position-add-form{border-top:1.5px dashed var(--line-strong);flex-direction:column;flex-shrink:0;gap:8px;padding:14px 16px;display:flex}.position-add-title{font-family:var(--mono);text-transform:uppercase;letter-spacing:.07em;color:var(--text);margin:0;font-size:10.5px;font-weight:600}.position-add-input{font-size:13.5px;font-family:var(--sans);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--code-bg);color:var(--text-h);box-sizing:border-box;outline:none;width:100%;padding:8px 10px;transition:border-color .15s}.position-add-input:focus{border-color:var(--accent)}.position-error{color:var(--danger);margin:0;font-size:12.5px}@media (width<=768px){.employees-header{flex-wrap:wrap;gap:10px;padding:14px 14px 10px}.employees-header-actions{flex-wrap:wrap}.employees-table-wrap{margin:12px 14px}.employees-filters{flex-direction:column;margin:0 14px}.employees-table th:nth-child(3),.employees-table td:nth-child(3){display:none}.employees-panel{left:0;right:0;bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px));border-left:none;border-top:2px solid var(--text-h);border-radius:var(--radius) var(--radius) 0 0;width:100%;max-height:62dvh;box-shadow:var(--shadow-sheet);z-index:50;box-sizing:border-box;position:fixed}.positions-panel{left:0;right:0;bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px));border-left:none;border-top:2px solid var(--text-h);border-radius:var(--radius) var(--radius) 0 0;width:100%;max-height:75dvh;box-shadow:var(--shadow-sheet);z-index:50;box-sizing:border-box;position:fixed}}.sb{flex:1;gap:0;min-height:0;display:flex}.sb-main{flex-direction:column;flex:1;gap:12px;min-width:0;display:flex}.sb-conflict{border:1px solid color-mix(in srgb, var(--danger) 45%, transparent);background:var(--danger-bg);border-radius:var(--radius-sm);color:var(--danger);text-align:left;padding:10px 14px;font-size:.8125rem}.sb-conflict-title{justify-content:space-between;align-items:center;gap:8px;font-weight:700;display:flex}.sb-conflict-dismiss{color:inherit;cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:.9rem}.sb-conflict ul{margin:6px 0 0;padding-left:18px}.sb-grid-wrap{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);overflow-x:auto}.sb-grid{grid-template-columns:168px repeat(7,minmax(108px,1fr));min-width:940px;display:grid}.sb-head-cell{text-align:center;border-bottom:1px solid var(--line-strong);text-transform:uppercase;letter-spacing:.06em;color:var(--text);background:var(--code-bg);padding:8px 6px 6px;font-size:.7rem;font-weight:600}.sb-head-cell--corner{text-align:left;padding-left:12px}.sb-head-daynum{font-family:var(--display);letter-spacing:.02em;color:var(--text-h);margin-top:1px;font-size:1.05rem;font-weight:600;display:block}.sb-head-cell--today .sb-head-daynum{color:var(--accent)}.sb-head-cell--off{opacity:.45}.sb-row-label{border-bottom:1px solid var(--border);border-right:1px solid var(--line-strong);text-align:left;background:var(--surface);flex-direction:column;justify-content:center;gap:1px;padding:8px 10px 8px 12px;display:flex}.sb-row-name{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:600;overflow:hidden}.sb-row-pos{color:var(--text);opacity:.7;font-size:.7rem}.sb-row-label--unassigned .sb-row-name{opacity:.75;font-style:italic;font-weight:500}.sb-cell{border-bottom:1px solid var(--border);border-right:1px solid var(--border);background:var(--surface);flex-direction:column;gap:3px;min-height:64px;padding:4px;display:flex}.sb-cell:nth-child(9n){border-right:none}.sb-cell--off{background:repeating-linear-gradient(-45deg, transparent 0 6px, color-mix(in srgb, var(--border) 45%, transparent) 6px 7px)}.sb-cell--today{background:color-mix(in srgb, var(--accent) 4%, var(--surface))}.sb-cell--drop{outline:2px dashed var(--accent);outline-offset:-3px;background:var(--accent-bg)}.sb-alloc{text-align:left;cursor:grab;background:hsl(var(--jh) 60% var(--jc-bg,93%));color:hsl(var(--jh) 55% var(--jc-fg,28%));border-left:3px solid hsl(var(--jh) 55% var(--jc-edge,45%));-webkit-user-select:none;user-select:none;border-radius:3px;padding:3px 6px 4px;line-height:1.25;position:relative}@media (prefers-color-scheme:dark){.sb-alloc{--jc-bg:20%;--jc-fg:78%;--jc-edge:55%}}.sb-alloc--dragging{opacity:.4}.sb-alloc--selected{box-shadow:0 0 0 2px hsl(var(--jh) 55% var(--jc-edge,45%))}.sb-alloc--done{filter:saturate(.25);opacity:.75}.sb-alloc-top{justify-content:space-between;align-items:baseline;gap:4px;display:flex}.sb-alloc-num{font-size:.62rem;font-weight:700;font-family:var(--mono);letter-spacing:.02em;opacity:.85}.sb-alloc-hours{font-size:.62rem;font-weight:700;font-family:var(--mono);white-space:nowrap}.sb-alloc-client{white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;font-weight:500;display:block;overflow:hidden}.sb-alloc-x{border:1px solid var(--border);background:var(--surface);width:16px;height:16px;color:var(--danger);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:.7rem;line-height:1;display:none;position:absolute;top:-5px;right:-5px}.sb-alloc:hover .sb-alloc-x{display:flex}.sb-alloc-lock{opacity:.7;font-size:.6rem}.sb-cap{font-size:.62rem;font-family:var(--mono);text-align:right;margin-top:auto;padding:1px 2px 0}.sb-cap--free{color:var(--ok);opacity:.85}.sb-cap--avail{color:var(--text);opacity:.4}.sb-cap--full{color:var(--warn);font-weight:700}.sb-cap--over{color:var(--danger);font-weight:700}.sb-stats{flex-wrap:wrap;gap:10px;display:flex}.sb-stat{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);text-align:left;flex:1;min-width:150px;padding:10px 14px}.sb-stat-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text);opacity:.65;font-size:.65rem;font-weight:600;display:block}.sb-stat-value{font-family:var(--display);color:var(--text-h);margin-top:2px;font-size:1.35rem;font-weight:600;display:block}.sb-stat-value small{opacity:.6;font-size:.85rem;font-weight:500}.sb-stat-sub{color:var(--text);opacity:.7;margin-top:1px;font-size:.7rem;display:block}.sb-stat--warn .sb-stat-value{color:var(--warn)}.sb-bar{background:var(--code-bg);border-radius:2px;height:4px;margin-top:7px;overflow:hidden}.sb-bar-fill{background:var(--accent);border-radius:2px;height:100%;transition:width .25s}.sb-panel-hours{font-family:var(--display);color:var(--text-h);align-items:baseline;gap:6px;font-size:1.3rem;font-weight:600;display:flex}.sb-panel-hours small{font-size:.8rem;font-family:var(--sans);color:var(--text);opacity:.7;font-weight:500}.sb-panel-flag{text-transform:uppercase;letter-spacing:.04em;border-radius:3px;margin-top:4px;padding:2px 7px;font-size:.7rem;font-weight:700;display:inline-block}.sb-panel-flag--ok{background:var(--ok-bg);color:var(--ok)}.sb-panel-flag--warn{background:var(--warn-bg);color:var(--warn)}.sb-panel-workers{color:var(--accent);font-size:.8rem;font-family:var(--mono)}.sb-loading{text-align:center;color:var(--text);opacity:.6;padding:48px 0;font-size:.875rem}.sjm-summary{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--code-bg);text-align:left;margin-bottom:12px;padding:10px 14px;font-size:.8125rem}.sjm-summary strong{color:var(--text-h)}.sjm-warn{color:var(--warn);margin-top:6px;font-size:.78rem;font-weight:600}.sjm-days{border:1px solid var(--border);border-radius:var(--radius-sm);max-height:260px;margin:0;padding:0;list-style:none;overflow-y:auto}.sjm-day{border-bottom:1px solid var(--border);text-align:left;align-items:baseline;gap:10px;padding:7px 12px;font-size:.8125rem;display:flex}.sjm-day:last-child{border-bottom:none}.sjm-day-date{min-width:108px;color:var(--text-h);white-space:nowrap;font-weight:600}.sjm-day-who{color:var(--text);min-width:0}.sjm-emps{border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;gap:4px;max-height:180px;padding:8px 10px;display:flex;overflow-y:auto}.sjm-emp{cursor:pointer;align-items:center;gap:8px;font-size:.8125rem;display:flex}.sjm-emp input{cursor:pointer}.sjm-emp-pos{opacity:.6;font-size:.75rem}.sjm-mode{gap:14px;font-size:.8125rem;display:flex}.sjm-mode label{cursor:pointer;align-items:center;gap:6px;display:flex}.sjm-hint{color:var(--text);opacity:.65;text-align:left;margin-top:4px;font-size:.72rem}.sjm-workers-hint{margin-top:6px;font-size:.72rem;font-weight:600}.sjm-workers-hint--ok{color:var(--ok)}.sjm-workers-hint--warn{color:var(--warn)}.jobs-page{gap:0;height:100%;display:flex;overflow:hidden}.jobs-main{flex:1;min-width:0;padding:28px 32px;overflow-y:auto}.jobs-tabs{border-bottom:1px solid var(--border);align-items:center;gap:4px;margin-bottom:20px;padding-bottom:0;display:flex}.jobs-tab{font:inherit;color:var(--text);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 16px;font-size:.875rem;font-weight:500;transition:color .15s,border-color .15s}.jobs-tab.is-active{color:var(--accent);border-bottom-color:var(--accent)}.jobs-tab:hover:not(.is-active){color:var(--text-h)}.jobs-status-filter{margin-left:auto}.jobs-team-cell{text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:.8125rem;overflow:hidden}.jobs-unassigned{color:var(--text);opacity:.45;font-style:italic}.jobs-empty-hint{color:var(--text);opacity:.6;margin-top:4px;font-size:.875rem}.jobs-panel{border-left:1px solid var(--border);background:var(--surface);flex-direction:column;width:300px;min-width:300px;display:flex;overflow-y:auto}.jobs-cal-nav{align-items:center;gap:8px;margin-left:auto;display:flex}.jobs-cal-month-label{font-family:var(--display);letter-spacing:.03em;text-align:center;min-width:140px;font-size:1rem;font-weight:600}.jobs-hours-cell{font-family:var(--mono);white-space:nowrap;font-size:.8125rem}.jobs-hours-warn{color:var(--warn);vertical-align:middle;margin-left:5px;font-size:.6rem}.panel-mono{font-family:var(--mono);font-size:.8rem}.picker-empty{color:var(--text);opacity:.6;text-align:center;padding:20px 24px;font-size:.875rem}.jd-page{max-width:1100px;padding:28px 32px;overflow-y:auto}.jd-body{grid-template-columns:1fr 340px;gap:24px;margin-top:8px;display:grid}@media (width<=860px){.jd-body{grid-template-columns:1fr}}.jd-required-workers{font-size:.75rem;font-family:var(--mono);margin:0 0 10px;font-weight:600}.jd-required-workers--ok{color:var(--ok)}.jd-required-workers--warn{color:var(--warn)}.jd-team-list{flex-direction:column;gap:6px;margin:0 0 12px;padding:0;list-style:none;display:flex}.jd-team-row{border:1px solid var(--border);background:var(--bg);border-radius:4px;align-items:center;gap:10px;padding:8px 12px;display:flex}.jd-team-name{font-size:.875rem;font-weight:500}.jd-team-pos{color:var(--text);opacity:.6;flex:1;font-size:.8rem}.jd-team-remove{margin-left:auto}.jd-add-employee{margin-top:8px}.jd-emp-select{width:100%;font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:4px;padding:8px 10px;font-size:.875rem}.jd-sched-summary{margin-bottom:14px}.jd-sched-hours{color:var(--text);font-size:.9rem}.jd-sched-hours strong{font-family:var(--display);color:var(--text-h);font-size:1.45rem;font-weight:600}.jd-sched-hours-label{opacity:.65;font-size:.8125rem}.jd-sched-bar{background:var(--code-bg);border-radius:3px;height:5px;margin:8px 0;overflow:hidden}.jd-sched-bar-fill{background:var(--accent);border-radius:3px;height:100%;transition:width .25s}.jd-sched-dates{color:var(--text);opacity:.75;margin:8px 0 0;font-size:.8125rem}.jd-sched-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.jd-days-list{border:1px solid var(--border);border-radius:6px;max-height:320px;margin:0 0 14px;padding:0;list-style:none;overflow-y:auto}.jd-day-row{border-bottom:1px solid var(--border);align-items:baseline;gap:10px;padding:7px 12px;font-size:.8125rem;display:flex}.jd-day-row:last-child{border-bottom:none}.jd-day-date{font-family:var(--mono);white-space:nowrap;min-width:92px;color:var(--text-h);font-size:.78rem}.jd-day-allocs{flex-wrap:wrap;gap:4px 10px;min-width:0;display:flex}.jd-day-alloc{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.jd-add-day{border:1px dashed var(--line-strong);background:var(--bg);border-radius:6px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.jd-add-day-row{gap:8px;display:flex}.jd-add-day input,.jd-add-day select{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:4px;flex:1;min-width:0;padding:6px 8px;font-size:.8125rem}.jd-day-locked{color:var(--warn);background:color-mix(in srgb, var(--warn) 12%, transparent);border-radius:3px;padding:1px 6px;font-size:.75rem;font-weight:600}.jd-day-remove{cursor:pointer;color:var(--text);opacity:.35;background:0 0;border:none;border-radius:3px;padding:0 4px;font-size:1rem;line-height:1;transition:opacity .15s,color .15s}.jd-day-remove:hover:not(:disabled){opacity:1;color:var(--danger)}.jd-day-remove:disabled{cursor:default}.jd-empty-hint{color:var(--text);opacity:.5;font-size:.875rem;font-style:italic}.jd-quote-link{align-self:flex-end;margin-top:4px}.job-status-badge{font-size:.75rem;font-weight:600;font-family:var(--sans);letter-spacing:.02em;text-transform:uppercase;border-radius:3px;padding:2px 8px;display:inline-block}.job-status-scheduled{background:color-mix(in srgb, var(--info) 12%, transparent);color:var(--info)}.job-status-in-progress{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent)}.job-status-completed{background:color-mix(in srgb, var(--ok) 12%, transparent);color:var(--ok)}.job-status-invoiced{background:color-mix(in srgb, var(--text) 8%, transparent);color:var(--text)}.qa-page{background:var(--bg);box-sizing:border-box;flex-direction:column;flex:1;align-items:center;min-height:0;padding:32px 16px 60px;display:flex;overflow:hidden auto}.qa-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:720px;box-shadow:var(--shadow);flex-shrink:0;overflow:hidden}.qa-center-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center;width:100%;max-width:480px;box-shadow:var(--shadow);flex-shrink:0;padding:48px 36px}.qa-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;margin:0 auto 16px;animation:.8s linear infinite qa-spin}@keyframes qa-spin{to{transform:rotate(360deg)}}.qa-center-text{color:var(--text);font-size:14px}.qa-state-icon{border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 20px;font-size:24px;font-weight:700;display:flex}.qa-icon-ok{background:var(--ok-bg);color:var(--ok)}.qa-icon-error{background:var(--danger-bg);color:var(--danger)}.qa-icon-warn{background:var(--warn-bg);color:var(--warn)}.qa-state-title{font-family:var(--display);color:var(--text-h);margin:0 0 12px;font-size:22px;font-weight:700}.qa-state-body{color:var(--text);margin:0 0 8px;font-size:14px;line-height:1.6}.qa-header{background:var(--ink);border-bottom:4px solid var(--accent);justify-content:space-between;align-items:flex-start;gap:16px;padding:24px 32px;display:flex}.qa-header-brand{align-items:flex-start;gap:12px;display:flex}.qa-logo-wrap{border-radius:var(--radius-sm);background:#fff;flex-shrink:0;padding:6px 10px}.qa-logo{object-fit:contain;max-width:130px;max-height:44px;display:block}.qa-business-name{font-family:var(--display);color:#fff;letter-spacing:.01em;font-size:20px;font-weight:700}.qa-business-abn{color:#9fb0b8;margin-top:3px;font-size:12px}.qa-header-meta{text-align:right;flex-shrink:0}.qa-quote-label{font-family:var(--mono);letter-spacing:3px;color:#9fb0b8;margin-bottom:4px;font-size:11px}.qa-quote-number{font-family:var(--mono);color:#fff;font-size:16px;font-weight:600}.qa-meta-band{border-bottom:1px solid var(--border);background:var(--code-bg);flex-wrap:wrap;gap:32px;padding:20px 32px;display:flex}.qa-meta-label{font-family:var(--mono);letter-spacing:1px;text-transform:uppercase;color:var(--text);margin-bottom:4px;font-size:10px}.qa-meta-value{color:var(--text-h);font-size:14px;font-weight:600}.qa-section{border-bottom:1px solid var(--border);padding:24px 32px}.qa-table-wrap{margin-bottom:16px;overflow-x:auto}.qa-table{border-collapse:collapse;width:100%;color:var(--text-h);font-size:13.5px}.qa-table thead tr{border-bottom:2px solid var(--text-h)}.qa-table th{font-family:var(--mono);letter-spacing:1px;text-transform:uppercase;color:var(--text);text-align:left;padding:0 8px 8px;font-size:10px}.qa-table td{border-bottom:1px solid var(--border);vertical-align:top;padding:10px 8px}.qa-col-desc{width:100%}.qa-col-num{white-space:nowrap;width:90px}.qa-num{text-align:right;font-family:var(--mono);font-size:13px}.qa-totals{border-top:1px dashed var(--line-strong);max-width:280px;margin-left:auto;padding-top:12px}.qa-total-row{color:var(--text);justify-content:space-between;gap:24px;padding:4px 0;font-size:13px;display:flex}.qa-total-grand{font-family:var(--mono);color:var(--text-h);border-top:2px solid var(--text-h);margin-top:8px;padding-top:10px;font-size:15px;font-weight:700}.qa-notes{background:var(--code-bg)}.qa-notes-label{font-family:var(--mono);letter-spacing:1px;text-transform:uppercase;color:var(--text);margin-bottom:8px;font-size:10px}.qa-notes-text{color:var(--text-h);white-space:pre-wrap;margin:0;font-size:13.5px;line-height:1.6}.qa-acceptance{background:var(--code-bg);border-bottom:2px solid var(--accent);padding:28px 32px 32px}.qa-scroll-hint{color:var(--text);opacity:.7;text-align:center;margin:16px 0 0;font-size:12px}.qa-accept-heading{font-family:var(--display);color:var(--text-h);margin:0 0 10px;font-size:18px;font-weight:700}.qa-accept-intro{color:var(--text);margin:0 0 10px;font-size:14px}.qa-accept-list{flex-direction:column;gap:5px;margin:0 0 20px;padding-left:20px;display:flex}.qa-accept-list li{color:var(--text-h);font-size:14px;line-height:1.5}.qa-error{color:var(--danger);background:var(--danger-bg);border-radius:var(--radius-sm);border:1px solid #c0392b33;margin-bottom:16px;padding:10px 14px;font-size:13px}.qa-checkbox-row{cursor:pointer;align-items:flex-start;gap:10px;margin-bottom:20px;display:flex}.qa-checkbox{border:2px solid var(--border);cursor:pointer;width:18px;height:18px;accent-color:var(--accent);border-radius:3px;flex-shrink:0;margin-top:1px}.qa-checkbox-label{color:var(--text-h);-webkit-user-select:none;user-select:none;font-size:14px;font-weight:500;line-height:1.5}.qa-accept-btn{background:var(--accent);color:#fff;border-radius:var(--radius);width:100%;font-family:var(--sans);cursor:pointer;letter-spacing:.01em;border:none;padding:15px 24px;font-size:16px;font-weight:700;transition:background .15s,opacity .15s;display:block}.qa-accept-btn:hover:not(:disabled){background:var(--accent-strong)}.qa-accept-btn:disabled{opacity:.45;cursor:not-allowed}.qa-powered{font-family:var(--mono);letter-spacing:.06em;color:var(--text);text-align:center;opacity:.6;flex-shrink:0;margin-top:24px;font-size:11px}@media (width<=600px){.qa-page{padding:16px 12px 40px}.qa-header{flex-direction:column;gap:12px;padding:20px}.qa-header-meta{text-align:left}.qa-meta-band{gap:16px;padding:16px 20px}.qa-section,.qa-acceptance{padding:20px}.qa-totals{max-width:100%;margin-left:0}.qa-center-card{padding:32px 20px}}#root{text-align:left;max-width:unset;width:100%;height:100svh;min-height:unset;border-inline:none}.app-layout{flex-direction:row;height:100%;display:flex;overflow:hidden}.app-main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden auto}.app-main>.quotes-page,.app-main>.chat{flex-shrink:0;height:100%}.app-main>*{box-sizing:border-box;min-width:0;max-width:100%}.chat{flex-direction:column;height:100%;display:flex;overflow:hidden}.chat-header{border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex}.header-logo{width:auto;height:36px;display:block}@media (prefers-color-scheme:dark){.header-logo{background:#fff;border-radius:6px;padding:2px 8px}}.header-actions{align-items:center;gap:12px;display:flex}.status-badge{color:var(--text);align-items:center;gap:6px;font-size:13px;display:flex}.status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.status-connected .status-dot{background:var(--ok)}.status-connecting .status-dot{background:var(--warn);animation:1.2s ease-in-out infinite pulse}.status-disconnected .status-dot,.status-error .status-dot{background:var(--danger)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.clear-btn{color:var(--text);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px;font-size:13px;transition:color .15s,border-color .15s}.clear-btn:hover{color:var(--text-h);border-color:var(--text)}.chat-messages{scroll-behavior:smooth;flex-direction:column;flex:1;gap:16px;padding:24px 20px;display:flex;overflow-y:auto}.empty-state{text-align:center;max-width:420px;margin:auto;padding:40px 20px}.empty-icon{object-fit:contain;background:#fff;border-radius:20px;width:200px;height:auto;margin-bottom:16px;padding:16px 20px;box-shadow:0 2px 8px #00000014}.empty-state h2{color:var(--text-h);margin:0 0 8px;font-size:22px;font-weight:600}.empty-state p{color:var(--text);margin-bottom:24px;font-size:15px;line-height:1.6}.suggestions{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.suggestion-btn{text-align:left;width:100%;color:var(--text-h);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:14px;font-weight:500;font-family:var(--sans);padding:10px 14px;transition:border-color .15s,background .15s}.suggestion-btn:hover{border-color:var(--accent);background:var(--accent-bg)}.message{align-items:flex-start;gap:10px;max-width:100%;display:flex}.message-user{flex-direction:row-reverse}.avatar{background:var(--ink);color:#fff;width:32px;height:32px;font-family:var(--mono);letter-spacing:.5px;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.message-user .avatar{background:var(--accent)}.message-body{flex-direction:column;gap:8px;min-width:0;max-width:calc(100% - 42px);display:flex}.message-user .message-body{align-items:flex-end}.bubble{word-break:break-word;border-radius:10px;max-width:100%;padding:10px 14px;font-size:15px;line-height:1.6;display:inline-block}.message-user .bubble{background:var(--ink);color:#fff;border-bottom-right-radius:3px}.message-assistant .bubble{background:var(--code-bg);color:var(--text-h);border-bottom-left-radius:3px}.message-error .bubble{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger)}.bubble-text{white-space:pre-wrap}.cursor{vertical-align:text-bottom;background:currentColor;width:2px;height:1em;margin-left:2px;animation:.9s step-end infinite blink;display:inline-block}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.bubble.thinking{align-items:center;gap:5px;padding:14px 18px;display:flex}.bubble.thinking span{background:var(--text);opacity:.4;border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite bounce;display:block}.bubble.thinking span:nth-child(2){animation-delay:.2s}.bubble.thinking span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-5px)}}.tool-calls{flex-direction:column;gap:6px;display:flex}.tool-call{border:1px solid var(--border);background:var(--bg);border-radius:8px;font-size:13px;overflow:hidden}.tool-call summary{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text);align-items:center;gap:6px;padding:7px 10px;list-style:none;display:flex}.tool-call summary::-webkit-details-marker{display:none}.tool-call summary code{color:var(--text-h);background:0 0;padding:0;font-size:12px}.tool-icon{font-size:12px}.tool-done summary{color:var(--ok)}.tool-done summary code{color:var(--text-h)}.tool-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:10px;height:10px;margin-left:auto;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.tool-detail{font-size:12px;font-family:var(--mono);color:var(--text);border-top:1px solid var(--border);white-space:pre;background:var(--code-bg);margin:0;padding:8px 10px;overflow-x:auto}.tool-output{color:var(--text);border-top:1px solid var(--border);white-space:pre-wrap;word-break:break-word;background:var(--code-bg);max-height:160px;padding:8px 10px;font-size:12px;overflow-y:auto}.chat-input-bar{border-top:1px solid var(--border);background:var(--bg);flex-shrink:0;gap:8px;padding:14px 20px;display:flex}.chat-input{font-size:15px;font-family:var(--sans);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--code-bg);color:var(--text-h);outline:none;flex:1;padding:10px 14px;transition:border-color .15s}.chat-input:focus{border-color:var(--accent)}.chat-input::placeholder{color:var(--text);opacity:.6}.chat-input:disabled{opacity:.5;cursor:not-allowed}.mic-btn{background:var(--code-bg);width:42px;height:42px;color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;transition:color .15s,background .15s,border-color .15s;display:flex}.mic-btn:hover:not(:disabled){color:var(--accent);border-color:var(--accent-border)}.mic-btn:disabled{opacity:.4;cursor:not-allowed}.mic-btn-active{background:var(--danger-bg);color:var(--danger);border-color:var(--danger);animation:1.5s ease-in-out infinite mic-pulse}@keyframes mic-pulse{0%,to{box-shadow:0 0 #c0392b66}50%{box-shadow:0 0 0 6px #c0392b00}}.chat-input-listening{border-color:var(--danger);color:var(--danger)}.chat-input-listening::placeholder{color:var(--danger);opacity:.7}.send-btn{font-size:15px;font-family:var(--sans);background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:none;padding:10px 20px;font-weight:600;transition:background .15s}.send-btn:hover:not(:disabled){background:var(--accent-strong)}.send-btn:disabled{opacity:.4;cursor:not-allowed}@media (width<=768px){.app-layout{flex-direction:column}.app-main{padding-bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px))}}
