:root{--bg:oklch(90% .008 70);--surface:oklch(99% .003 70);--surface-alt:oklch(97% .005 70);--surface-sunken:oklch(93% .008 70);--row-hover:oklch(94% .008 70);--border:oklch(85% .012 70);--border-strong:oklch(80% .012 70);--border-hairline:oklch(90% .008 70);--border-faint:oklch(92% .008 70);--text:oklch(22% .01 70);--text-strong:oklch(25% .012 70);--text-secondary:oklch(48% .012 70);--text-muted:oklch(62% .01 70);--text-dim:oklch(55% .012 70);--accent:oklch(56% .15 150);--accent-hover:oklch(46% .15 150);--accent-tint:oklch(93% .03 150);--accent-wash:oklch(97% .015 150);--on-accent:white;--nag:oklch(50% .17 35);--nag-bg:oklch(93% .05 35);--draft-bg:oklch(92% .008 70);--draft-fg:oklch(45% .008 70);--sent-bg:oklch(93% .03 250);--sent-fg:oklch(42% .11 250);--accepted-bg:oklch(92% .045 150);--accepted-fg:oklch(40% .13 150);--declined-bg:oklch(93% .035 25);--declined-fg:oklch(45% .15 25);--booked-bg:oklch(93% .035 290);--booked-fg:oklch(44% .13 290);--unbilled-bg:oklch(93% .05 80);--unbilled-fg:oklch(45% .11 80);--invoiced-bg:oklch(93% .035 200);--invoiced-fg:oklch(42% .1 200);--visit-bg:oklch(93% .035 330);--visit-fg:oklch(44% .13 330);--thanked-bg:oklch(93% .02 150);--thanked-fg:oklch(45% .06 150);--scrim:oklch(15% .005 70/.35);--shadow-card:0 1px 3px oklch(0% 0 0/.06);--shadow-overlay:0 12px 32px oklch(0% 0 0/.18);--radius:6px;--radius-card:8px;--toolbar-h:64px;--row-h:52px;--row-h-quote:54px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html{scrollbar-gutter:stable;min-height:100vh}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:14px}a{color:var(--accent)}a:hover{color:var(--accent-hover)}.shell{flex-direction:column;min-width:1000px;min-height:100vh;display:flex}.shell-main{flex:1 0 auto;padding:0 24px}.page-transition-waiting{opacity:0}.page-transition-in.page-transition-neutral{animation:.2s page-in}.page-transition-out.page-transition-neutral{animation:.17s forwards page-out}.page-transition-in.page-transition-forward{animation:.22s page-in-right}.page-transition-out.page-transition-forward{animation:.17s forwards page-out-left}.page-transition-in.page-transition-backward{animation:.22s page-in-left}.page-transition-out.page-transition-backward{animation:.17s forwards page-out-right}.page-transition-in.page-transition-settings-enter{animation:.22s page-in-up}.page-transition-out.page-transition-settings-enter{animation:.17s forwards page-out-down}.page-transition-in.page-transition-settings-leave{animation:.22s page-in-down}.page-transition-out.page-transition-settings-leave{animation:.17s forwards page-out-up}@keyframes page-in{0%{opacity:0;transform:scale(1.1)}}@keyframes page-out{to{opacity:0;transform:scale(.99)}}@keyframes page-in-right{0%{opacity:0;transform:translate(28px)}}@keyframes page-out-left{to{opacity:0;transform:translate(-28px)}}@keyframes page-in-left{0%{opacity:0;transform:translate(-28px)}}@keyframes page-out-right{to{opacity:0;transform:translate(28px)}}@keyframes page-in-up{0%{opacity:0;transform:translateY(20px)}}@keyframes page-out-down{to{opacity:0;transform:translateY(20px)}}@keyframes page-in-down{0%{opacity:0;transform:translateY(-20px)}}@keyframes page-out-up{to{opacity:0;transform:translateY(-20px)}}.toolbar{height:var(--toolbar-h);background:var(--surface);border-bottom:1px solid var(--border);z-index:20;position:sticky;top:0}.toolbar-inner{justify-content:space-between;align-items:center;max-width:1280px;height:100%;margin:0 auto;padding:0 24px;display:flex}.toolbar-left{align-items:center;gap:28px;height:100%;display:flex}.wordmark{letter-spacing:-.02em;color:var(--text);align-items:center;gap:8px;font-size:18px;font-weight:700;text-decoration:none;display:flex}.wordmark-icon{width:42px;height:42px}.nav{align-items:center;gap:16px;height:100%;font-size:14px;display:flex;position:relative}.nav a{color:var(--text-secondary);border-bottom:2px solid #0000;align-items:center;gap:6px;height:100%;margin-bottom:-1px;padding-right:6px;text-decoration:none;transition:color .18s;display:flex}.nav a svg{opacity:.8;transition:opacity .18s}.nav a:hover{color:var(--accent)}.nav-label{text-align:center;transition:color .18s;display:inline-block;position:relative}.nav-label:before{content:attr(data-text);visibility:hidden;height:0;font-weight:600;display:block;overflow:hidden}.nav-label:after{content:attr(data-text);color:var(--accent);opacity:0;font-weight:600;transition:opacity .18s;position:absolute;top:0;left:0;right:0}.nav a:hover .nav-label,.nav a.active .nav-label{color:#0000}.nav a:hover .nav-label:after,.nav a.active .nav-label:after,.nav a.active svg{opacity:1}.nav a.active{color:var(--accent)}.nav-indicator{background:var(--accent);pointer-events:none;height:2px;transition:transform .2s,width .2s;position:absolute;bottom:-1px;left:0}.toolbar-right{align-items:center;gap:12px;display:flex}.search-hint{border:1px solid var(--border);border-radius:var(--radius);width:320px;height:34px;color:var(--text-muted);background:var(--surface);cursor:pointer;align-items:center;padding:0 12px;font-family:inherit;font-size:13px;display:flex}.search-hint span{margin-left:auto}.avatar{color:oklch(40% .01 70);cursor:pointer;background:oklch(88% .01 70);border:none;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;font-family:inherit;font-size:13px;font-weight:700;display:flex}.footer{border-top:1px solid var(--border);margin-top:40px}.footer-inner{justify-content:space-between;align-items:center;gap:20px;max-width:1280px;margin:0 auto;padding:16px 20px;display:flex}.footer-left{align-items:baseline;gap:8px;font-size:12px;display:flex}.footer-left .wordmark{font-size:12px}.footer-business{color:var(--text-muted)}.footer-links{align-items:center;gap:18px;font-size:12px;display:flex}.footer-links a,.footer-links button{color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:none}.footer-links a:hover,.footer-links button:hover{color:var(--accent)}.footer-links .footer-feedback{color:var(--accent);font-weight:600}.page{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-card);max-width:1280px;box-shadow:var(--shadow-card);margin:24px auto 48px;overflow:hidden}.page-head{justify-content:space-between;align-items:baseline;padding:20px 20px 0;display:flex}.page-title{align-items:baseline;gap:10px;display:flex}.page-title h1{margin:0;font-size:22px;font-weight:700}.page-title .count{color:var(--text-muted);font-size:13px}.page-jobs .page-title,.page-quotes .page-title,.page-invoices .page-title{flex-direction:column;align-items:flex-start;gap:2px}.page-head-actions{align-items:center;gap:12px;display:flex}.filter-count{color:var(--text-muted);margin-top:8px;font-size:13px}.breadcrumb{color:var(--text-dim);border-bottom:1px solid var(--border-hairline);padding:12px 20px;font-size:12px}.breadcrumb a{color:inherit;text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.breadcrumb strong{color:oklch(30% .012 70);font-weight:400}button{font-family:inherit}.btn{border-radius:var(--radius);cursor:pointer;background:var(--accent);color:var(--on-accent);border:1px solid #0000;padding:7px 14px;font-size:13px;font-weight:600;text-decoration:none;transition:background .12s;display:inline-block}.btn:hover{background:var(--accent-hover)}.btn:disabled{opacity:.5;cursor:default}.btn-secondary{color:oklch(35% .012 70);border-color:var(--border-strong);background:0 0}.btn-secondary:hover{background:var(--surface-alt)}.btn-sm{padding:4px 10px;font-size:12px}.btn-danger{color:var(--declined-fg);border-color:var(--border-strong);background:0 0}.btn-danger:hover{background:var(--declined-bg)}input[type=text],input[type=email],input[type=password],input[type=number],input[type=datetime-local],textarea,select{color:var(--text-strong);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:7px 10px;font-family:inherit;font-size:13px}input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.filter-input{width:320px;height:32px}.table-scroll{max-height:65vh;overflow-y:auto}.thead,.trow{align-items:center;padding:0 20px;display:grid}.thead{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);padding-bottom:8px;font-size:11px}.table-scroll .thead{background:var(--surface);z-index:1;padding-top:1px;position:sticky;top:0}.trow{height:var(--row-h);color:var(--text);border-bottom:1px solid var(--border-hairline);cursor:pointer;text-align:left;background:0 0;width:100%;font-family:inherit;font-size:14px;transition:background .15s}.trow:hover{background:var(--row-hover)}.trow.selected{background:var(--accent-tint)}.trow.expanded{background:var(--row-hover);border-bottom:none}.trow .muted{color:var(--text-secondary)}.trow .right{text-align:right}.cell-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cell-name b{font-weight:600}.cell-name .company{color:oklch(55% .012 70);font-weight:400}.avatar-circle{-webkit-user-select:none;user-select:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;line-height:1;display:inline-flex;overflow:hidden}.avatar-editor{align-items:center;gap:12px;margin-bottom:16px;display:flex}.avatar-editor-trigger{cursor:pointer;background:0 0;border:none;border-radius:50%;padding:0;line-height:0}.avatar-editor-trigger:hover .avatar-circle{opacity:.85}.avatar-editor-trigger:disabled{cursor:default;opacity:.6}.row-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.field-block{flex-direction:row;align-items:baseline;gap:4px;display:flex}.field-block.empty{display:none}.field-block-label{text-transform:lowercase;color:var(--text-muted);font-size:13px;display:block}.field-block-label:after{content:":"}.card-actions{flex-wrap:wrap;gap:8px;width:100%;margin-top:6px;display:flex}.card-actions:empty{display:none}.row-actions{align-items:center;gap:4px;display:flex}.icon-btn{border-radius:var(--radius);width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;text-decoration:none;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.icon-btn .btn-label{display:none}.icon-btn:hover:not(:disabled){background:var(--accent-tint);border-color:var(--border);color:var(--accent-hover)}.icon-btn:disabled{opacity:.3;cursor:default}.icon-btn.danger:hover:not(:disabled),.icon-btn.danger:focus-visible{background:var(--nag-bg);border-color:var(--nag-bg);color:var(--nag)}.tooltip-wrap{display:inline-flex;position:relative}.tooltip-bubble{color:oklch(97% .003 70);white-space:nowrap;border-radius:var(--radius);box-shadow:var(--shadow-overlay);pointer-events:none;opacity:0;z-index:5;background:oklch(20% .008 70);padding:6px 8px;font-size:11px;font-weight:600;line-height:1;transition:opacity .1s .15s,transform .1s .15s;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%)translateY(3px)}.tooltip-bubble:after{content:"";border:5px solid #0000;border-top-color:oklch(20% .008 70);position:absolute;top:100%;left:50%;transform:translate(-50%)}.tooltip-wrap:hover .tooltip-bubble,.tooltip-wrap:focus-within .tooltip-bubble{opacity:1;transform:translate(-50%)translateY(0)}.menu-wrap{display:inline-flex;position:relative}.menu-trigger{align-items:center;gap:7px;display:inline-flex}.menu-panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);min-width:180px;box-shadow:var(--shadow-overlay);z-index:60;flex-direction:column;padding:4px;display:flex;position:absolute}.menu-down{animation:.11s menu-in-down;top:calc(100% + 4px)}.menu-up{animation:.11s menu-in-up;bottom:calc(100% + 4px)}.menu-align-left{left:0}.menu-align-right{right:0}@keyframes menu-in-down{0%{opacity:0;transform:translateY(-3px)}}@keyframes menu-in-up{0%{opacity:0;transform:translateY(3px)}}.menu-item{width:100%;font:inherit;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:center;gap:9px;padding:7px 9px;font-size:13px;text-decoration:none;display:flex}.menu-item:hover:not(:disabled),.menu-item:focus{background:var(--accent-tint);color:var(--accent-hover);outline:none}.menu-item:disabled{opacity:.4;cursor:default}.menu-item.danger{color:var(--nag)}.menu-item.danger:hover:not(:disabled),.menu-item.danger:focus{background:var(--nag-bg);color:var(--nag)}.menu-item-icon{color:var(--text-muted);flex:none;display:inline-flex}.menu-item:hover .menu-item-icon,.menu-item:focus .menu-item-icon,.menu-item.danger .menu-item-icon{color:inherit}.menu-item-label{white-space:nowrap;flex:1}.menu-item-hint{color:var(--text-muted);flex:none;font-size:11px}.menu-sep{background:var(--border-hairline);height:1px;margin:4px 2px}.badge{text-transform:capitalize;border-radius:4px;padding:3px 8px;font-size:11px;font-weight:600}.badge-draft{background:var(--draft-bg);color:var(--draft-fg)}.badge-sent{background:var(--sent-bg);color:var(--sent-fg)}.badge-accepted{background:var(--accepted-bg);color:var(--accepted-fg)}.badge-declined{background:var(--declined-bg);color:var(--declined-fg)}.badge-booked{background:var(--booked-bg);color:var(--booked-fg)}.badge-unbilled{background:var(--unbilled-bg);color:var(--unbilled-fg)}.badge-invoiced{background:var(--invoiced-bg);color:var(--invoiced-fg)}.badge-scheduled{background:var(--sent-bg);color:var(--sent-fg)}.badge-canceled{background:var(--draft-bg);color:var(--draft-fg)}.badge-paid{background:var(--accepted-bg);color:var(--accepted-fg)}.badge-void,.badge-new{background:var(--draft-bg);color:var(--draft-fg)}.badge-visit{background:var(--visit-bg);color:var(--visit-fg)}.badge-thanked{background:var(--thanked-bg);color:var(--thanked-fg)}.badge-closed,.badge-archived{background:var(--draft-bg);color:var(--draft-fg)}.nag{color:var(--nag);font-weight:700}.empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:90px 20px;display:flex}.empty h2{color:oklch(30% .012 70);margin:0;font-size:17px;font-weight:600}.empty p{color:var(--text-dim);max-width:320px;margin:0;font-size:13px}.empty .btn{margin-top:10px}.scrim{inset:var(--toolbar-h) 0 0 0;background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:30;justify-content:center;padding-top:90px;animation:.12s fade;display:flex;position:fixed}@keyframes fade{0%{opacity:0}}.palette{background:var(--surface);border-radius:var(--radius-card);flex-direction:column;width:580px;height:fit-content;max-height:calc(100vh - 180px);animation:.16s cubic-bezier(.2,.8,.3,1.1) palette-pop;display:flex;overflow:hidden;box-shadow:0 24px 60px oklch(0% 0 0/.22)}@keyframes palette-pop{0%{opacity:0;transform:scale(.97)translateY(-4px)}}input.palette-input{border:none;border-bottom:1px solid var(--border-faint);background:0 0;border-radius:0;padding:22px 26px;font-size:17px}.palette-input:focus-visible{outline:none}.palette-results{padding:12px 12px 16px;overflow-y:auto}.palette-group{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-top:4px;padding:10px 14px 6px;font-size:11px;font-weight:600}.palette-group:first-child{margin-top:0}.palette-item{cursor:pointer;text-align:left;width:100%;color:var(--text);background:0 0;border:none;border-radius:14px;justify-content:space-between;gap:12px;padding:11px 14px;font-family:inherit;font-size:14px;transition:background .1s;display:flex}.palette-item.selected{background:var(--accent-tint)}.palette-item .meta{color:var(--text-secondary);white-space:nowrap}.palette-empty{text-align:center;color:var(--text-muted);padding:44px 18px;font-size:13px}.palette-hints{color:var(--text-muted);justify-content:center;gap:16px;padding:0 18px 22px;font-size:11px;display:flex}.dialog-scrim{background:var(--scrim);z-index:40;justify-content:center;align-items:flex-start;padding:72px 20px 40px;animation:.12s fade;display:flex;position:fixed;inset:0;overflow-y:auto}.dialog-scrim-closing{animation:.14s forwards fade-out}.dialog-scrim-bridge{z-index:39;animation:none}.dialog-scrim-instant{animation:none}.dialog{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-card);box-shadow:var(--shadow-overlay);max-width:100%}.dialog-closing{animation:.14s forwards dialog-pop-out}@keyframes fade-out{to{opacity:0}}@keyframes dialog-pop-out{to{opacity:0;transform:scale(.97)translateY(4px)}}.dialog-leave-forward{animation:.15s forwards dialog-out-left}.dialog-leave-backward{animation:.15s forwards dialog-out-right}.dialog-enter-forward{animation:.22s dialog-in-right}.dialog-enter-backward{animation:.22s dialog-in-left}@keyframes dialog-out-left{to{opacity:0;transform:translate(-32px)}}@keyframes dialog-out-right{to{opacity:0;transform:translate(32px)}}@keyframes dialog-in-right{0%{opacity:0;transform:translate(32px)}}@keyframes dialog-in-left{0%{opacity:0;transform:translate(-32px)}}.dialog-head{border-bottom:1px solid var(--border-hairline);justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex}.dialog-head-title{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.dialog-head-title .avatar-editor{margin-bottom:0}.dialog-head-title .icon-btn svg,.dialog-head-actions .icon-btn svg,.dialog-close svg{margin-bottom:1px}.dialog-head-actions{flex:none;align-items:center;gap:2px;display:flex}.dialog-head h2{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:17px;font-weight:700;overflow:hidden}.dialog-title-edit{z-index:5;flex:1;width:auto;min-width:0}.dialog-title-row{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.dialog-title-input,.dialog-title-edit .typeahead-input{width:100%;min-width:0;height:auto;color:var(--text-strong);border-radius:var(--radius);background:0 0;border:1px solid #0000;flex:1;margin-left:-6px;padding:4px 6px;font-family:inherit;font-size:17px;font-weight:700}.dialog-title-input::placeholder,.dialog-title-edit .typeahead-input::placeholder{color:var(--text-muted);font-weight:500}.dialog-title-input:hover:not(:disabled),.dialog-title-edit .typeahead-input:hover{border-color:var(--border)}.dialog-title-input:disabled{color:var(--text-strong);opacity:1;cursor:default;background:0 0}.dialog-title-input:focus,.dialog-title-edit .typeahead-input:focus{border-color:var(--accent);background:var(--surface)}.dialog-title-row>.dialog-title-input:not(:first-child){margin-left:0}.dialog-title-edit .typeahead-list{width:100%}.dialog-close{width:28px;height:28px;color:var(--text-muted);cursor:pointer;border-radius:var(--radius);background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.dialog-close:hover{color:var(--text);background:var(--surface-alt);border-color:var(--border)}.dialog-body{padding:18px 24px 20px}.dialog-body.dialog-body-flush{padding:0}.spacing{padding:16px}.desktop-only{display:contents}.mobile-only{display:none}.dialog-foot{border-top:1px solid var(--border-hairline);background:var(--surface-alt);border-radius:0 0 var(--radius-card) var(--radius-card);justify-content:flex-end;gap:10px;padding:14px 24px;display:flex}.dialog-foot.quote-foot{flex-wrap:wrap}.dialog-field span{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin-bottom:5px;font-size:11px;display:block}.dialog-field+.dialog-field{margin-top:16px}.dialog-field input{width:100%;height:34px}.dialog-field textarea{box-sizing:border-box;width:100%}.dialog-hint{color:var(--text-muted);margin-top:16px;font-size:12px}.dialog-field select{width:100%;height:34px}.dialog-field .typeahead{width:100%}.client-picker-row{align-items:center;gap:10px;display:flex}.client-picker-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:5px;display:flex}.client-picker-head span{margin-bottom:0}.client-picker-row .typeahead{flex:1;width:auto;min-width:0}.client-picker-row .btn{flex-shrink:0}.client-picker .client-picker-error{color:var(--declined-fg);margin-top:6px}.quote-panel .editor-actions{flex-wrap:wrap;padding:0 24px 16px}.panel-meta-row{align-items:center;gap:12px;padding:16px 24px 0;display:flex}.muted-time{color:var(--text-muted);font-size:13px}.quote-panel .two-col{margin-top:0;padding:4px 24px 24px}.quote-panel .notes-section{padding:4px 24px 24px}.quote-panel .linked-sections{flex-direction:column;gap:20px;padding:4px 24px 24px;display:flex}.paid-banner{background:var(--accepted-bg);color:var(--accepted-fg);border-radius:8px;margin:0 24px 16px;padding:12px 14px;font-size:13px}.field-hint{color:var(--text-muted);text-transform:none;letter-spacing:normal;margin-top:6px;font-size:12px;display:block}.dialog-field .field-hint{text-transform:none;letter-spacing:normal}.type-list{flex-direction:column;display:flex}.type-row{border-bottom:1px solid var(--border-faint);grid-template-columns:1fr 32px;align-items:center;gap:8px;padding:5px 0;display:grid}.type-row input{width:100%;height:30px}.type-row .drop{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;font-size:15px;line-height:1}.type-row .drop:hover:not(:disabled){color:var(--declined-fg)}.type-row .drop:disabled{opacity:.3;cursor:default}.type-row.with-price{grid-template-columns:1fr 110px 32px}.type-row-head{color:var(--text-muted);border-bottom:none;padding-bottom:0;font-size:12px}.section-head{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:12px;font-weight:600}.link-btn:hover{color:var(--accent-hover)}.detail{grid-template-columns:300px 1fr;display:grid}.detail-side{border-right:1px solid var(--border-hairline);padding:24px 20px}.detail-side h2{margin:0;font-size:20px;font-weight:700}.detail-side .company{color:oklch(50% .012 70);margin-bottom:18px;font-size:13px}.field-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:11px}.field-value{color:var(--text-strong);font-size:13px}.field-stack{flex-direction:column;gap:10px;display:flex}.field-input{width:100%;color:var(--text-strong);background:0 0;border:1px solid #0000;border-radius:4px;margin:-2px -4px;padding:2px 4px;font-family:inherit;font-size:13px;display:block}.field-input:hover,.field-input:focus{border-color:var(--border)}.field-value-btn{text-align:left;width:100%;color:var(--text-strong);font-family:inherit;font-size:13px;line-height:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;margin:-2px -4px;padding:2px 4px;display:block}.field-value-btn:hover{border-color:var(--border)}.field-value.dim{color:var(--text-muted)}.company-input{color:var(--text-dim);margin-bottom:18px;font-size:13px}.stat-pair{border-top:1px solid var(--border-hairline);gap:20px;margin-top:22px;padding-top:18px;font-size:13px;display:flex}.stat-pair b{color:var(--text-strong);font-weight:600;display:block}.detail-main{padding:24px}.notes-box{border-radius:var(--radius);color:oklch(30% .012 70);background:var(--surface-alt);resize:vertical;white-space:pre-wrap;border:1px solid oklch(88% .01 70);width:100%;min-height:96px;padding:16px 18px;font-family:inherit;font-size:14px;line-height:1.6}.notes-box.internal{background:var(--surface-sunken);border-color:var(--border)}.two-col{grid-template-columns:1fr 1fr;gap:24px;margin-top:22px;display:grid}.mini-row{border-bottom:1px solid var(--border-faint);color:var(--text-strong);justify-content:space-between;align-items:center;gap:10px;padding:8px 0;font-size:13px;text-decoration:none;display:flex}.mini-row.upcoming{color:var(--text);font-weight:600}.mini-row.upcoming .when{color:var(--accent);font-weight:600}.mini-row .when{color:var(--text-dim)}.mini-row-btn{border:none;border-bottom:1px solid var(--border-faint);width:100%;font-family:inherit;font-weight:inherit;font-style:inherit;letter-spacing:inherit;text-align:left;cursor:pointer;background:0 0}.mini-row-btn:hover{color:var(--accent)}.asset-grid{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:4px;margin-top:4px;display:grid}.asset-tile{position:relative}.asset-tile-link{border-radius:var(--radius);color:var(--text-strong);border:1px solid #0000;flex-direction:column;align-items:center;gap:6px;padding:8px 4px;text-decoration:none;display:flex}.asset-tile-link:hover{background:var(--surface-alt);border-color:var(--border-hairline)}.asset-thumb{object-fit:cover;background:var(--surface-sunken);border:1px solid var(--border-hairline);border-radius:6px;width:56px;height:56px}.asset-thumb-icon{color:var(--text-muted);justify-content:center;align-items:center;display:flex}.asset-name{text-align:center;width:100%;color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.3;overflow:hidden}.asset-remove{background:var(--surface);width:20px;height:20px;box-shadow:var(--shadow-card);color:var(--text-muted);cursor:pointer;opacity:0;border:none;border-radius:50%;justify-content:center;align-items:center;transition:opacity .12s,color .12s,background .12s;display:flex;position:absolute;top:2px;right:2px}.asset-tile:hover .asset-remove{opacity:1}.asset-remove:hover{color:var(--declined-fg);background:var(--declined-bg)}.client-overview{grid-template-columns:3fr 2fr;align-items:start;display:grid}.client-overview-info{border-right:1px solid var(--border-hairline)}.client-overview-side{padding:24px}.editor-head{justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 24px 16px;display:flex}.editor-head .editor-actions{margin-top:4px}.title-input{color:var(--text);border-radius:var(--radius);background:0 0;border:1px solid #0000;width:100%;margin-left:-6px;padding:4px 6px;font-family:inherit;font-size:22px;font-weight:700}.title-input:hover{border-color:var(--border)}.editor-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.client-row{color:var(--text-dim);align-items:center;gap:10px;padding:4px 24px 20px;font-size:13px;display:flex}.client-block{color:var(--text-dim);flex-direction:column;gap:4px;padding:4px 24px 20px;font-size:13px;display:flex}.client-card{border:1px solid var(--border-hairline);border-radius:var(--radius);background:var(--surface-alt);margin:4px 24px 20px;padding:16px 18px}.client-card-head{margin-bottom:12px}.client-card-name-row{align-items:center;gap:8px;min-width:0;display:flex}.client-card-name{text-align:left;color:var(--text-strong);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:16px;font-weight:700;text-decoration:none;display:block}.client-card-name:hover{text-decoration:underline}.client-card .company{color:oklch(50% .012 70);margin-top:2px;font-size:13px}.client-panel{margin-bottom:18px}.client-panel .client-card{margin:0}.client-panel.inset{margin-bottom:0;padding:4px 24px 20px}.client-card-body{grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:start;gap:20px;display:grid}.client-card-notes .section-label{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.client-panel-status{color:var(--text-muted);text-transform:none;letter-spacing:0}.client-panel-error{color:var(--declined-fg);margin-top:6px;font-size:12px}.items{padding:0 24px}.item-head,.item-row{grid-template-columns:3fr .7fr 1fr 1fr 32px;align-items:center;gap:8px;display:grid}.item-head .col-rate,.item-head .col-total,.item-row input.col-rate{text-align:right}.item-head{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);padding:8px 0;font-size:11px}.item-row{border-bottom:1px solid var(--border-faint);padding:9px 0;font-size:14px}.item-row input{background:0 0;border-color:#0000;width:100%;font-size:14px}.item-row input:hover{border-color:var(--border)}.item-row .line-total{text-align:right;color:var(--text-strong);font-weight:500}.item-row .drop{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;font-size:15px;line-height:1}.item-row .drop:hover{color:var(--declined-fg)}.add-line{border:none;border-bottom:1px dashed var(--border);width:100%;color:var(--text-muted);text-align:left;cursor:pointer;background:0 0;padding:10px 0;font-family:inherit;font-size:13px}.add-line:hover{color:var(--accent)}.item-confirm-delete{background:var(--declined-bg);color:var(--declined-fg);border-radius:var(--radius);grid-column:1/-1;align-items:center;height:32px;padding:0 14px;font-size:13px;font-weight:600;display:flex}.total-row{justify-content:flex-end;align-items:center;padding:16px 0;display:flex}.total-row .label{color:oklch(50% .012 70);margin-right:12px;font-size:13px}.total-row .value{font-size:24px;font-weight:700}.public-wrap{background:var(--bg);justify-content:center;align-items:flex-start;min-height:100vh;padding:56px 20px;display:flex}.preview-bar{color:oklch(90% .005 70);background:oklch(20% .008 70);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:10px 20px;font-size:13px;display:flex}.preview-bar a{color:oklch(85% .06 150);white-space:nowrap;font-weight:600}.preview-bar+.public-wrap{min-height:calc(100vh - 41px);padding-top:32px}.public-card{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-card);width:720px;max-width:100%;box-shadow:var(--shadow-card);padding:40px 48px}.public-card .biz{color:oklch(50% .012 70);margin-bottom:4px;font-size:14px}.public-card h1{margin:0 0 2px;font-size:24px;font-weight:700}.public-card .prepared{color:var(--text-dim);margin-bottom:24px;font-size:13px}.public-items{grid-template-columns:3fr .7fr 1fr 1fr;display:grid}.public-items>div{border-bottom:1px solid var(--border-faint);color:var(--text-strong);padding:10px 0;font-size:14px}.public-items>.h{border-bottom:1px solid var(--border);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);padding:0 0 8px;font-size:11px}.public-total{justify-content:flex-end;align-items:baseline;gap:12px;padding:18px 0 8px;display:flex}.public-total .value{font-size:28px;font-weight:700}.public-actions{gap:12px;margin-top:24px;display:flex}.public-actions button{text-align:center;border-radius:var(--radius);cursor:pointer;border:1px solid #0000;flex:1;padding:13px;font-size:15px;font-weight:600}.public-actions .accept{background:var(--accent);color:var(--on-accent)}.public-actions .accept:hover{background:var(--accent-hover)}.public-actions .decline{border-color:var(--border-strong);color:oklch(40% .012 70);background:0 0}.public-actions .decline:hover{background:var(--surface-alt)}.public-foot{text-align:center;color:var(--text-muted);margin-top:20px;font-size:12px}.confirm{text-align:center;padding:16px 0}.confirm .mark{background:var(--accepted-bg);width:48px;height:48px;color:var(--accepted-fg);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 18px;font-size:24px;font-weight:700;display:flex}.confirm.declined .mark{background:var(--surface-sunken);color:var(--text-secondary)}.confirm h2{margin:0 0 6px;font-size:20px;font-weight:700}.confirm p{color:oklch(50% .012 70);max-width:420px;margin:0 auto;font-size:14px}.confirm .recap{border-top:1px solid var(--border-hairline);color:var(--text-dim);margin-top:24px;padding-top:20px;font-size:13px}.confirm-notes{color:oklch(30% .012 70);white-space:pre-wrap;text-align:left;max-width:420px;margin-top:16px;margin-left:auto;margin-right:auto;font-size:14px;line-height:1.6}.auth-wrap{justify-content:center;align-items:center;min-height:100vh;padding:40px 20px;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-card);width:380px;box-shadow:var(--shadow-card);padding:32px}.auth-card .wordmark{flex-direction:column;align-items:center;gap:10px;margin-bottom:4px;font-size:20px;display:flex}.auth-card .wordmark-icon{width:72px;height:72px}.auth-card .tagline{color:var(--text-dim);text-align:center;margin:8px 0 24px;font-size:13px}.auth-card label{margin-bottom:14px;display:block}.auth-card label span{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin-bottom:5px;font-size:11px;display:block}.auth-card input{width:100%;height:34px}.auth-card .btn{width:100%;margin-top:6px;padding:10px}.auth-switch{color:var(--text-dim);text-align:center;margin-top:18px;font-size:13px}.auth-switch button{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:13px}.superuser-banner{background:var(--nag);color:#fff;justify-content:center;align-items:center;gap:14px;padding:8px 16px;font-size:13px;display:flex}.superuser-banner button{color:#fff;border-radius:var(--radius);cursor:pointer;background:#ffffff2e;border:1px solid #fff6;padding:3px 10px;font-size:12px}.superuser-wrap{max-width:720px;margin:0 auto;padding:40px 20px}.superuser-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.superuser-header .wordmark{font-size:18px}.superuser-requests{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-card);margin-bottom:18px;padding:18px 20px}.superuser-requests-head{letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:12px;font-size:12px;font-weight:700}.superuser-request{border-top:1px solid var(--border-faint);align-items:center;gap:16px;padding:12px 0;display:flex}.superuser-request-main{flex:1;min-width:0}.superuser-request-notes{color:var(--text-secondary);margin-top:6px;font-size:12px;line-height:1.5}.superuser-accounts{flex-direction:column;gap:14px;display:flex}.superuser-account{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-card);padding:18px 20px}.superuser-account-head{align-items:baseline;gap:10px;display:flex}.superuser-meta{color:var(--text-dim);font-size:12px}.superuser-business-list{color:var(--text-secondary);margin:10px 0 14px;padding:0;font-size:13px;list-style:none}.superuser-business-list li{padding:3px 0}.error-bar{background:var(--declined-bg);color:var(--declined-fg);border-radius:var(--radius);margin-bottom:14px;padding:10px 14px;font-size:13px}.toast{background:var(--text);color:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-overlay);z-index:50;padding:10px 16px;font-size:13px;animation:.12s fade;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.loading{text-align:center;color:var(--text-muted);padding:60px 20px;font-size:13px}.page.loading{min-height:60vh}.settings-layout{grid-template-columns:200px 1fr;display:grid}.settings-nav{border-right:1px solid var(--border-hairline);flex-direction:column;gap:2px;padding:20px 12px;display:flex}.settings-nav a{text-align:left;border-radius:var(--radius);width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:8px 12px;font-family:inherit;font-size:13px;font-weight:500;text-decoration:none;display:block}.settings-nav a:hover{background:var(--surface-alt);color:var(--text)}.settings-nav a.active{background:var(--accent-tint);color:var(--accent);font-weight:600}.settings-panel{min-width:0}.settings-nav-icon,.settings-nav-chevron,.settings-group-label,.settings-back{display:none}.section-label{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin-bottom:8px;font-size:11px}.form-grid{grid-template-columns:1fr 1fr;gap:14px;padding:20px 24px;display:grid}.form-grid label span{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin-bottom:5px;font-size:11px;display:block}.form-grid input,.form-grid select{width:100%;height:32px}.form-grid textarea{box-sizing:border-box;width:100%}.form-grid .wide{grid-column:1/-1}.form-grid .section-label{border-top:1px solid var(--border-hairline);letter-spacing:0;text-transform:none;color:var(--text);margin:0 0 4px;padding-top:20px;font-size:13px;font-weight:700}.form-grid .section-label:first-child{border-top:none;margin-top:0;padding-top:0}.form-actions{justify-content:flex-end;gap:10px;padding:0 24px 24px;display:flex}.data-notice{border-radius:var(--radius);background:var(--accent-tint);color:var(--text-secondary);margin:20px 24px 0;padding:12px 14px;font-size:13px;line-height:1.5}.data-export-list{flex-direction:column;gap:10px;padding:20px 24px;display:flex}.data-export-row{border:1px solid var(--border-hairline);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.data-export-title{color:var(--text);font-size:13px;font-weight:600}.data-export-hint{color:var(--text-muted);margin-top:3px;font-size:12px}.data-section-head{padding:22px 24px 0}.data-section-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);font-size:12px;font-weight:700}.data-section-hint{color:var(--text-muted);margin-top:6px;font-size:12px;line-height:1.55}.import-upload{flex-wrap:wrap;align-items:flex-end;gap:14px;padding:16px 24px 4px;display:flex}.import-upload-field{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:12px;font-weight:600;display:flex}.import-upload-file{flex:1;min-width:220px}.import-upload-picker{align-items:center;gap:10px;min-width:0;display:flex}.import-upload-filename{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;overflow:hidden}.import-upload-filename.is-empty{color:var(--text-muted)}.import-upload-kind select{min-width:200px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.import-list-label{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);padding:20px 24px 0;font-size:11px}.import-empty,.import-preview-empty{color:var(--text-muted);padding:16px 24px 4px;font-size:13px}.import-list{flex-direction:column;gap:10px;padding:10px 24px 4px;display:flex}.import-row-card{border:1px solid var(--border-hairline);border-radius:var(--radius);align-items:center;gap:14px;padding:12px 16px;display:flex}.import-file-icon{color:var(--text-muted);display:flex}.import-file-main{flex:1;min-width:0}.import-file-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.import-file-meta{color:var(--text-muted);margin-top:3px;font-size:12px}.import-file-notes{color:var(--text-secondary);margin-top:5px;font-size:12px;line-height:1.5}.import-assist-flag{background:var(--sent-bg);color:var(--sent-fg);white-space:nowrap;border-radius:4px;align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.import-file-actions{flex-shrink:0;align-items:center;gap:14px;display:flex}.import-file-actions .link-btn{text-decoration:none}.link-btn.danger{color:var(--nag)}.import-summary{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.badge-import-new{background:var(--accepted-bg);color:var(--accepted-fg)}.badge-import-duplicate{background:var(--draft-bg);color:var(--draft-fg)}.badge-import-skip{background:var(--declined-bg);color:var(--declined-fg)}.import-truncated{color:var(--text-muted);font-size:12px}.import-table-wrap{border:1px solid var(--border-hairline);border-radius:var(--radius);max-height:46vh;overflow:auto}.import-table{border-collapse:collapse;width:100%;font-size:12px}.import-table th{background:var(--surface-alt);text-align:left;color:var(--text-secondary);border-bottom:1px solid var(--border-hairline);white-space:nowrap;padding:8px 10px;font-weight:600;position:sticky;top:0}.import-table td{border-bottom:1px solid var(--border-faint);color:var(--text);vertical-align:top;text-overflow:ellipsis;white-space:nowrap;max-width:220px;padding:7px 10px;overflow:hidden}.import-table tr:last-child td{border-bottom:none}.import-row-skip td,.import-row-duplicate td{color:var(--text-muted)}.import-line{color:var(--text-muted);font-variant-numeric:tabular-nums}.import-blank{color:var(--text-muted)}.import-row-note{color:var(--text-muted);font-size:11px}.import-more,.import-foot-note{color:var(--text-muted);padding:10px 2px 0;font-size:12px}.import-unreadable p{color:var(--text-secondary);margin:0 0 12px;font-size:13px;line-height:1.6}.import-assist-done{color:var(--accent-hover);font-weight:600}.import-assist-note{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:12px;font-weight:600;display:flex}@media (width<=1000px){.import-row-card{flex-wrap:wrap}.import-file-main{flex-basis:100%;order:1}.import-file-actions{flex-wrap:wrap;order:2}}.quote-actions{justify-content:space-between;align-items:center;padding:0 24px 24px;display:flex}.quote-actions-right{gap:10px;display:flex}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.item-row select{width:100%;height:30px;font-size:13px}.preset-custom{grid-template-columns:1fr auto;align-items:center;gap:8px;display:grid}.preset-custom input{border-color:var(--border);width:100%;height:30px}.dialog-field .preset-custom input{height:34px}.quote-preview-head{align-items:center;gap:10px;margin-bottom:18px;display:flex}.quote-preview-items{border-top:1px solid var(--border);grid-template-columns:3fr .7fr 1fr 1fr;padding-top:8px;display:grid}.quote-preview-items>div{border-bottom:1px solid var(--border-faint);color:var(--text-strong);padding:8px 0;font-size:14px}.quote-preview-items>.h{border-bottom:1px solid var(--border);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);padding:0 0 6px;font-size:11px}.quote-preview-total{justify-content:flex-end;align-items:baseline;gap:12px;padding:14px 0 0;display:flex}.quote-preview-total .label{color:oklch(50% .012 70);font-size:13px}.quote-preview-total .value{font-size:22px;font-weight:700}.quote-preview-notes{margin-top:16px}.quote-preview-notes .notes-box{min-height:60px}.typeahead{flex-shrink:0;width:300px;position:relative}.typeahead-input-wrap{align-items:center;display:flex;position:relative}.typeahead-input{width:100%;height:30px;color:var(--text-strong);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:7px 24px 7px 10px;font-family:inherit;font-size:13px}.typeahead-input-wrap.open .typeahead-input{border-color:var(--accent)}.typeahead-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 4px;font-size:15px;line-height:1;position:absolute;right:4px}.typeahead-clear:hover{color:var(--text);background:var(--surface-alt)}.typeahead-list{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);width:400px;max-width:100vw;box-shadow:var(--shadow-overlay);touch-action:pan-y;overscroll-behavior:contain;z-index:50;max-height:220px;margin:0;padding:4px 0;list-style:none;position:absolute;top:calc(100% + 2px);left:0;overflow:hidden auto}.typeahead-option{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:7px 10px;font-size:13px;display:flex}.typeahead-option.highlighted{background:var(--accent-tint)}.typeahead-option.selected{font-weight:600}.typeahead-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.typeahead-meta{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;max-width:45%;overflow:hidden}.typeahead-empty{text-align:center;color:var(--text-muted);padding:14px 10px;font-size:13px}.badge-temporary{background:var(--declined-bg);color:var(--declined-fg);text-transform:none}.temp-client{border:1px solid var(--declined-bg);border-left:3px solid var(--declined-fg);border-radius:var(--radius);background:color-mix(in srgb, var(--declined-bg) 22%, transparent);padding:12px 14px}.temp-client-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.temp-client-name{font-size:15px;font-weight:600}.temp-client-note{color:var(--text-secondary);margin:7px 0 0;font-size:12px;line-height:1.5}.temp-client-actions{align-items:center;gap:14px;margin-top:10px;display:flex}.temp-client-inline{color:var(--declined-fg)}.link-btn.quiet{color:var(--text-muted);font-weight:500}.link-btn.quiet:hover{color:var(--text-secondary)}.typeahead-action{color:var(--accent);font-weight:600}.typeahead-option:not(.typeahead-action)+.typeahead-action{border-top:1px solid var(--border)}.typeahead-action.temporary{color:var(--declined-fg)}.text-autocomplete{flex-shrink:1;width:100%}.text-autocomplete .typeahead-list{width:max-content;min-width:100%;max-width:420px}.no-clear .typeahead-input{padding-right:10px}.address-autocomplete{flex-shrink:1;width:100%}.address-autocomplete .typeahead-list{width:100%}.client-card .address-autocomplete{z-index:5}.client-card .address-autocomplete .typeahead-list{width:max(100%,340px)}.cal-toolbar{justify-content:space-between;align-items:center;padding:16px 20px 0;display:flex}.cal-view-tabs{background:var(--surface-sunken);border-radius:var(--radius);gap:2px;padding:2px;display:flex}.cal-view-tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:600}.cal-view-tab.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-card)}.cal-nav{align-items:center;gap:10px;display:flex}.cal-nav-btn{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);width:26px;height:26px;color:var(--text-secondary);cursor:pointer;font-size:15px;line-height:1}.cal-nav-btn:hover{background:var(--surface-alt);color:var(--text)}.cal-today-btn{padding:5px 12px}.cal-range-label{color:var(--text-strong);text-align:right;min-width:190px;font-size:14px;font-weight:600}.cal-body{padding:18px 20px 24px}.cal-add-btn{width:18px;height:18px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;line-height:1;display:flex}.cal-add-btn:hover{background:var(--accent-tint);color:var(--accent)}.cal-day-summary{border-bottom:1px solid var(--border-hairline);justify-content:space-between;align-items:center;gap:18px;margin-bottom:16px;padding-bottom:18px;display:flex}.cal-day-stats{align-items:center;gap:18px;display:flex}.cal-day-hours{color:var(--text-strong);font-size:15px;font-weight:600}.cal-day-count{color:var(--text-muted);font-size:12px}.cal-allday-row{border-bottom:1px solid var(--border-hairline);flex-wrap:wrap;gap:8px;margin-bottom:16px;padding-bottom:16px;display:flex}.cal-allday-card{border-radius:var(--radius);background:var(--surface-sunken);color:var(--text-strong);cursor:pointer;border:none;padding:6px 10px;font-family:inherit;font-size:12px;font-weight:600}.cal-allday-card:hover{filter:brightness(.97)}.cal-allday-card.status-canceled{color:var(--text-muted);text-decoration:line-through}.cal-timeline-wrap{display:flex}.cal-hour-gutter{flex-shrink:0;width:52px}.cal-hour-label{color:var(--text-muted);font-size:11px;transform:translateY(-6px)}.cal-timeline{border-left:1px solid var(--border-hairline);flex:1;position:relative}.cal-hour-line{border-top:1px solid var(--border-faint);position:absolute;left:0;right:0}.cal-event-card{border:none;border-left:3px solid var(--accent);background:var(--accent-tint);cursor:pointer;text-align:left;border-radius:4px;flex-direction:column;gap:2px;padding:5px 8px;font-family:inherit;display:flex;position:absolute;overflow:hidden}.cal-event-card:hover{filter:brightness(.97)}.cal-event-card .title{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.cal-event-card .meta{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.cal-event-card.status-done{border-left-color:var(--accepted-fg);background:var(--accepted-bg)}.cal-event-card.status-canceled{border-left-color:var(--border-strong);background:var(--surface-sunken);opacity:.6}.cal-event-card.status-canceled .title{text-decoration:line-through}.cal-week-heads{display:flex}.cal-week-gutter-spacer{flex-shrink:0;width:52px}.cal-week-col-head{flex:1;justify-content:center;align-items:center;gap:6px;padding:4px 4px 10px;display:flex;position:relative}.cal-week-col-head-btn{cursor:pointer;background:0 0;border:none;align-items:baseline;gap:5px;padding:0;font-family:inherit;display:flex}.cal-week-col-head .dow{letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted);font-size:11px}.cal-week-col-head .dnum{color:var(--text-strong);font-size:15px;font-weight:700}.cal-week-col-head.is-today{background:var(--accent-wash);border-radius:6px 6px 0 0}.cal-week-col-head.is-today .dnum{color:var(--accent)}.cal-week-col-hours{color:var(--text-muted);font-size:11px}.cal-week-col-head .cal-add-btn{position:absolute;top:4px;right:0}.cal-week-allday-row{border-bottom:1px solid var(--border-hairline);margin-bottom:4px;padding-bottom:10px;display:flex}.cal-week-allday-cell{flex-direction:column;flex:1;gap:3px;padding:0 4px;display:flex}.cal-week-allday-cell.is-today{background:var(--accent-wash)}.cal-week-allday-cell .cal-allday-card{text-align:left;width:100%}.cal-week-grid{border-right:1px solid var(--border-hairline);flex:1;display:flex}.cal-week-grid .cal-timeline{min-width:0}.cal-week-grid .cal-timeline.is-today{background:var(--accent-wash);border-radius:0 0 6px 6px}.cal-month-dow-row{border-bottom:1px solid var(--border);letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted);grid-template-columns:repeat(7,1fr);padding-bottom:6px;font-size:11px;display:grid}.cal-month-dow-row>div{padding:0 4px}.cal-month-grid{border-left:1px solid var(--border-hairline);border-top:1px solid var(--border-hairline);grid-template-columns:repeat(7,1fr);display:grid}.cal-month-cell{aspect-ratio:1;border-right:1px solid var(--border-hairline);border-bottom:1px solid var(--border-hairline);cursor:pointer;flex-direction:column;padding:6px 7px;display:flex;overflow:hidden}.cal-month-cell:hover{background:var(--row-hover)}.cal-month-cell.outside{background:var(--surface-alt)}.cal-month-cell.outside .dnum{color:var(--text-muted)}.cal-month-cell.is-today{background:var(--accent-wash)}.cal-month-cell.is-today .dnum{color:var(--on-accent);background:var(--accent);border-radius:50%}.cal-month-cell-head{flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.cal-month-cell-head .dnum{color:var(--text-strong);flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:13px;font-weight:700;display:flex}.cal-month-cell-body{flex-direction:column;flex:1;gap:2px;min-height:0;display:flex}.cal-month-allday{background:var(--surface-sunken);color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-radius:3px;flex-shrink:0;padding:1px 4px;font-size:10px;font-weight:600;overflow:hidden}.cal-month-allday.status-canceled{color:var(--text-muted);text-decoration:line-through}.cal-month-timeline{flex:1;min-height:0;position:relative}.cal-month-event{border-left:2px solid var(--accent);background:var(--accent-tint);min-height:16px;color:var(--text-strong);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border-radius:3px;padding:1px 4px;font-size:10px;font-weight:600;line-height:1.4;position:absolute;overflow:hidden}.cal-month-event:hover{filter:brightness(.97)}.cal-month-event.status-done{border-left-color:var(--accepted-fg);background:var(--accepted-bg)}.cal-month-event.status-canceled{border-left-color:var(--border-strong);background:var(--surface-sunken);opacity:.6;text-decoration:line-through}.event-dialog-form{flex:1;min-width:0}.schedule-summary{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-alt);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.schedule-summary-text{min-width:0}.schedule-summary-date{font-size:13px;font-weight:600}.schedule-summary-time{color:var(--text-muted);margin-top:2px;font-size:12px}.schedule-dialog-layout{gap:28px;display:flex}.schedule-dialog-calendar{flex:1;min-width:0}.schedule-dialog-side{flex-shrink:0;width:250px}.schedule-suggest{align-items:center;gap:10px;margin-bottom:10px;display:flex}.schedule-suggest .field-hint{margin-top:0}.mini-cal{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-alt);padding:14px}.mini-cal-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.mini-cal-label{color:var(--text-strong);font-size:15px;font-weight:600}.mini-cal-dow{text-transform:uppercase;color:var(--text-muted);text-align:center;grid-template-columns:repeat(7,1fr);margin-bottom:6px;font-size:11px;display:grid}.mini-cal-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.mini-cal-day{aspect-ratio:1;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:0;font-family:inherit;display:flex}.mini-cal-day:hover{background:var(--row-hover)}.mini-cal-day .num{color:var(--text);font-size:14px}.mini-cal-day.past .num{color:var(--text-muted)}.mini-cal-day.past .dot{background:var(--border-strong)}.mini-cal-day.is-today .num{color:var(--accent);font-weight:700}.mini-cal-day.full{background:var(--nag-bg)}.mini-cal-day.full .num{color:var(--nag)}.mini-cal-day.full .dot{background:var(--nag)}.mini-cal-day.selected{background:var(--accent)}.mini-cal-day.selected .num{color:var(--on-accent);font-weight:700}.mini-cal-day .dots{gap:3px;height:5px;display:flex}.mini-cal-day .dot{background:var(--accent);border-radius:50%;width:5px;height:5px}.mini-cal-day.selected .dot{background:var(--on-accent)}.day-schedule{max-height:232px;overflow-y:auto}.schedule-dialog-manual{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.day-schedule-label{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin-bottom:6px;font-size:11px;font-weight:600}.day-schedule-empty{color:var(--text-muted);font-size:12px}.day-schedule-row{border-left:2px solid var(--accent);align-items:baseline;gap:8px;margin-bottom:3px;padding:4px 0 4px 8px;display:flex}.day-schedule-row .t{color:var(--text-dim);white-space:nowrap;flex-shrink:0;font-size:11px}.day-schedule-row .title{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.day-schedule-row.status-done{border-left-color:var(--accepted-fg)}.day-schedule-row.status-canceled{border-left-color:var(--border-strong);opacity:.6}.day-schedule-row.status-canceled .title{text-decoration:line-through}.day-schedule-slot{text-align:left;width:100%;color:var(--accent);background:var(--accent-tint);border:1px dashed var(--accent);cursor:pointer;border-radius:4px;margin-bottom:3px;padding:6px 10px;font-family:inherit;font-size:13px;font-weight:600;display:block}.day-schedule-slot.past{color:var(--text-muted);border-color:var(--border-strong);background:0 0}.day-schedule-slot:hover{background:oklch(90% .045 45)}.day-schedule-slot.past:hover{background:var(--row-hover)}.day-schedule-slot.selected{background:var(--accent);color:var(--on-accent);border-style:solid}.day-schedule-slot.past.selected{background:var(--nag-bg);border-color:var(--nag);color:var(--nag)}.mobile-nav{display:none}.mobile-nav a{letter-spacing:.01em;color:var(--text-secondary);border-bottom:2px solid #0000;flex-direction:column;flex:1;align-items:center;gap:3px;padding:8px 0 7px;font-size:10.5px;font-weight:600;text-decoration:none;display:flex}.mobile-nav a.active{color:var(--accent);border-bottom-color:var(--accent)}@media (width<=1200px){.toolbar-left{gap:8px}.nav{display:none}.toolbar{height:auto}.toolbar-inner{height:var(--toolbar-h)}.mobile-nav{border-top:1px solid var(--border-hairline);display:flex}}@media (width<=1000px){.shell{min-width:0}.toolbar-inner{padding:0 12px}.wordmark-icon{width:32px;height:32px}.toolbar-right{flex:1;justify-content:flex-end;padding-left:16px}.search-hint{flex:1;width:auto;min-width:0;max-width:200px;padding:0 10px}.search-hint span{display:none}.page-head{flex-wrap:wrap;gap:10px}.page-head-actions{display:contents}.page-head-actions>.btn{order:1}.page-head-actions>.cal-view-tabs{flex:0 0 100%;order:2}.shell-main{padding:0 12px}.filter-input{width:100%}.scrim{padding-left:16px;padding-right:16px}.palette{width:100%}.footer-inner{flex-wrap:wrap;row-gap:10px;padding:16px 12px}.footer-links{flex-wrap:wrap;row-gap:8px}.thead{display:none}.work-head{padding:0 12px}.work-group-label,.work-calm{margin-left:12px;margin-right:12px;padding-left:0;padding-right:0}.trow{background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-card);flex-direction:column;align-items:flex-start;gap:6px;width:auto;margin:10px 12px;padding:14px 16px;display:flex;height:auto!important}.trow .cell-name{white-space:normal;overflow:visible}.trow .cell-title{font-size:15px}.trow .cell-client{font-size:13px}.trow .row-actions{border-top:1px solid var(--border-hairline);width:100%;margin-top:6px;padding-top:10px}.page-jobs .trow .cell-title{order:1}.page-jobs .trow .row-group{order:2}.page-jobs .trow .cell-client{order:3}.page-jobs .trow .cell-when{font-size:12px}.page-jobs .trow .row-actions{flex-wrap:wrap;order:4;gap:8px}.table-scroll{max-height:none;overflow-y:visible}.trow .card-actions .btn,.trow .card-actions .btn-secondary{padding:6px 10px;font-size:12px}.page-quotes .trow .row-group{align-items:flex-start}.page-quotes .trow .row-actions{flex-wrap:wrap;gap:8px}.page-jobs .trow .row-actions .icon-btn,.page-quotes .trow .row-actions .icon-btn,.page-invoices .trow .row-actions .icon-btn{border-color:var(--border);width:auto;height:auto;color:var(--text-secondary);gap:6px;padding:6px 10px;font-size:12px}.page-jobs .trow .row-actions .btn-label,.page-quotes .trow .row-actions .btn-label,.page-invoices .trow .row-actions .btn-label{display:inline}.page-invoices .trow .cell-status{order:1}.page-invoices .trow .cell-title{order:2}.page-invoices .trow .row-group{order:3;font-size:12px}.page-invoices .trow .cell-client{order:4}.page-invoices .trow .row-actions{flex-wrap:wrap;order:5;gap:8px}.settings-layout{display:block}.settings-layout.at-index .settings-detail,.settings-layout.at-detail .settings-nav{display:none}.settings-nav{border-right:none;gap:24px;padding:4px 4px 24px}.settings-group{background:var(--surface);border-radius:var(--radius-card);overflow:hidden}.settings-group-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:14px 16px 6px;font-size:12px;font-weight:700;display:block}.settings-nav a{border-bottom:1px solid var(--border-hairline);border-radius:0;align-items:center;gap:12px;padding:14px 16px;font-size:15px;display:flex}.settings-group a:last-child{border-bottom:none}.settings-nav a.active{color:var(--text);background:0 0;font-weight:500}.settings-nav-icon{color:var(--text-secondary);flex-shrink:0;display:block}.settings-nav-label{flex:1}.settings-nav-chevron{color:var(--text-muted);flex-shrink:0;display:block}.settings-back{color:var(--accent);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:16px;font-family:inherit;font-size:14px;font-weight:600;display:flex}.dialog-scrim{padding:var(--toolbar-h) 12px 24px}.dialog-scrim-center{align-items:center;padding:24px 12px}.dialog-head{padding:14px 16px}.dialog-body{padding:16px}.dialog-foot{padding:12px 16px}.dialog-foot.quote-foot .btn{padding:6px 10px;font-size:12px}.dialog-body .client-overview{grid-template-columns:1fr}.dialog-body .client-overview-info{border-right:none}.dialog-body .client-overview-side{padding:16px 0 0}.dialog-body:not(.dialog-body-flush) .spacing{padding:0}.desktop-only{display:none}.mobile-only{display:contents}.quote-panel .editor-head,.quote-panel .editor-actions,.quote-panel .panel-meta-row,.quote-panel .client-picker.inset,.quote-panel .client-row,.quote-panel .client-block,.quote-panel .items,.quote-panel .two-col,.quote-panel .notes-section,.quote-panel .linked-sections,.quote-panel .quote-actions{padding-left:16px;padding-right:16px}.quote-panel .client-card,.quote-panel .paid-banner{margin-left:16px;margin-right:16px}.quote-panel .quote-actions-right{flex-wrap:wrap;justify-content:flex-end}.quote-panel .editor-head{padding-top:16px}.quote-panel .title-input{font-size:19px}.quote-panel .editor-actions .btn{padding:6px 10px;font-size:12px}.two-col{grid-template-columns:1fr;gap:16px}.client-card-body{grid-template-columns:1fr;gap:0}.client-card-notes{border-top:1px solid var(--border-hairline);margin-top:16px;padding-top:14px}.client-panel .client-card{margin:0}.client-panel.inset{padding-left:16px;padding-right:16px}.item-head,.item-row{grid-template-columns:minmax(0,1fr) 40px 56px minmax(56px,max-content) 22px;gap:6px}.item-head{letter-spacing:.02em;font-size:10px}.item-head .qty-long{display:none}.item-head .col-qty,.item-head .col-rate,.item-head .col-total,.item-row input.col-qty,.item-row input.col-rate,.item-row .line-total{text-align:center}.item-row{font-size:12px}.item-row input{border-color:var(--border);font-size:12px}.item-row input.col-qty,.item-row input.col-rate{padding-left:6px;padding-right:6px}.item-row .drop{padding:0}.item-row{position:relative}.item-row .text-autocomplete{position:static}.item-row .text-autocomplete .typeahead-list{width:100%;min-width:0;max-width:none}.typeahead-option{padding:11px 12px;font-size:14px}.total-row .value{font-size:20px}.schedule-dialog-layout{flex-direction:column;gap:20px}.schedule-dialog-side{width:auto}.typeahead-list,.text-autocomplete .typeahead-list{width:100%;min-width:0;max-width:100%}}.work-next{color:var(--accent);background:var(--accent-wash);border:1px solid var(--accent-tint);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;max-width:100%;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block;overflow:hidden}.work-group-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin:20px 20px 6px;font-size:12px;font-weight:700}.journey{padding:6px 0 8px}.j-step{grid-template-columns:22px 1fr;column-gap:14px;display:grid}.j-rail{flex-direction:column;align-items:center;display:flex}.j-dot{border:2px solid var(--border-strong);background:var(--surface);border-radius:50%;flex:none;width:12px;height:12px;margin-top:5px}.j-step.done .j-dot{background:var(--accent);border-color:var(--accent)}.j-step.current .j-dot{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}.j-step.skipped .j-dot{background:var(--border);border-color:var(--border)}.j-line{background:var(--border-faint);flex:1;width:2px;min-height:10px;margin-top:3px}.j-step:last-child .j-line{display:none}.j-head{align-items:baseline;gap:10px;min-height:24px;display:flex}.j-label{color:var(--text-strong);font-size:14px;font-weight:600}.j-step.todo .j-label,.j-step.skipped .j-label{color:var(--text-muted);font-weight:500}.j-meta{color:var(--text-secondary);font-size:13px}.j-body{padding:4px 0 20px}.j-step.todo .j-body{padding-bottom:12px}.j-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:6px;display:flex}.j-actions .muted{font-size:13px}.j-events{flex-direction:column;gap:6px;margin:2px 0 4px;display:flex}.j-events+.j-actions{margin-top:12px}.j-add-row{color:var(--text-muted);text-align:left;cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:4px 0 2px;font-family:inherit;font-size:13px}.j-add-row:hover{color:var(--accent)}.j-event-row{align-items:center;gap:10px;font-size:13px;display:flex}.j-items .items{padding-left:0;padding-right:0}.badge-done{background:var(--thanked-bg);color:var(--thanked-fg)}.save-state{color:var(--text-muted);white-space:nowrap;align-self:center;font-size:12px}.cal-event-card.role-quote:not(.status-canceled),.cal-month-event.role-quote:not(.status-canceled),.cal-allday-card.role-quote:not(.status-canceled),.cal-month-allday.role-quote:not(.status-canceled){border-left-color:var(--visit-fg);background:var(--visit-bg);border-left-style:dashed}.work-head{padding:0 20px}.work-head .page-head{padding-left:0;padding-right:0}.work-stage-filters{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-card);scrollbar-width:none;border-radius:999px;gap:5px;margin:12px 0 2px;padding:5px;display:flex;overflow:auto hidden}.work-stage-filters::-webkit-scrollbar{height:0}.work-stage-chip{background:color-mix(in oklab, var(--chip-bg) 46%, var(--surface));letter-spacing:-.01em;color:var(--text-secondary);white-space:nowrap;cursor:pointer;border:none;border-radius:999px;flex:none;align-items:center;gap:9px;padding:10px 15px 10px 16px;font-family:inherit;font-size:14px;font-weight:500;transition:background .13s,transform .13s cubic-bezier(.3,1.4,.5,1);display:flex}.work-stage-chip:hover{background:color-mix(in oklab, var(--chip-bg) 78%, var(--surface));color:var(--text)}.work-stage-chip:active{transform:translateY(1px)scale(.985)}.work-stage-chip .chip-count{text-align:center;font-variant-numeric:tabular-nums;min-width:1ch;color:color-mix(in oklab, var(--chip-fg) 88%, var(--surface));font-size:14px;font-weight:700}.work-stage-chip.active{background:var(--chip-bg);box-shadow:inset 0 0 0 1.5px var(--chip-fg);color:var(--chip-fg);font-weight:600}.work-stage-chip.active .chip-count{color:var(--chip-fg)}.work-stage-chip.zero{--chip-bg:oklch(94% .006 70);--chip-fg:oklch(55% .01 70)}.work-stage-chip.zero .chip-count{color:var(--text-muted)}@keyframes chip-bump{0%{transform:translateY(0)scale(1)}35%{transform:translateY(-3px)scale(1.16)}70%{transform:translateY(0)scale(.97)}to{transform:translateY(0)scale(1)}}.work-stage-chip .chip-count.bump{animation:.46s cubic-bezier(.3,1.5,.5,1) chip-bump}.work-section-label{margin-top:26px}.work-calm{color:var(--text-muted);padding:18px 20px 6px;font-size:13px}
