: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);--on-accent:white;--nag:oklch(50% .17 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);--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:44px;--row-h-quote:46px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}body{background:var(--bg);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}.page-transition-waiting{opacity:0}.page-transition-in.page-transition-neutral{animation:.14s page-in}.page-transition-out.page-transition-neutral{animation:.12s forwards page-out}.page-transition-in.page-transition-forward{animation:.16s page-in-right}.page-transition-out.page-transition-forward{animation:.12s forwards page-out-left}.page-transition-in.page-transition-backward{animation:.16s page-in-left}.page-transition-out.page-transition-backward{animation:.12s forwards page-out-right}.page-transition-in.page-transition-settings-enter{animation:.16s page-in-up}.page-transition-out.page-transition-settings-enter{animation:.12s forwards page-out-down}.page-transition-in.page-transition-settings-leave{animation:.16s page-in-down}.page-transition-out.page-transition-settings-leave{animation:.12s 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:20px;height:100%;font-size:14px;display:flex}.nav a{color:var(--text-secondary);border-bottom:2px solid #0000;align-items:center;gap:6px;height:100%;margin-bottom:-1px;text-decoration:none;display:flex}.nav a svg{opacity:.8}.nav a.active svg{opacity:1}.nav a.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.toolbar-right{align-items:center;gap:12px;display:flex}.search-hint{border:1px solid var(--border);border-radius:var(--radius);width:240px;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}.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-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;border-left:2px solid #0000;width:100%;font-family:inherit;font-size:14px;transition:background .15s,border-color .15s}.trow:hover{background:var(--row-hover)}.trow.selected{background:var(--accent-tint);border-left-color:var(--accent)}.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}.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;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.icon-btn:hover:not(:disabled){background:var(--accent-tint);border-color:var(--border);color:var(--accent-hover)}.icon-btn:disabled{opacity:.3;cursor:default}.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)}.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-scheduled{background:var(--sent-bg);color:var(--sent-fg)}.badge-done{background:var(--accepted-bg);color:var(--accepted-fg)}.badge-canceled{background:var(--draft-bg);color:var(--draft-fg)}.badge-paid{background:var(--accepted-bg);color:var(--accepted-fg)}.badge-void{background:var(--draft-bg);color:var(--draft-fg)}.nag{color:var(--nag);font-weight:700}.row-expand{--text:oklch(96% .008 70);--text-strong:oklch(98% .004 70);--text-secondary:oklch(85% .01 70);--text-muted:oklch(72% .012 70);--text-dim:oklch(80% .01 70);--border:oklch(48% .012 70);--border-strong:oklch(54% .012 70);--border-hairline:oklch(44% .01 70);--border-faint:oklch(42% .01 70);--surface:oklch(38% .01 70);--surface-alt:oklch(32% .01 70);--surface-sunken:oklch(27% .008 70);--declined-fg:oklch(72% .16 25);--declined-bg:oklch(32% .07 25);background:var(--surface-alt);color:var(--text);grid-template-rows:0fr;transition:grid-template-rows .32s cubic-bezier(.4,0,.2,1);display:grid}.row-expand.open{grid-template-rows:1fr}.row-expand .notes-box{border-color:var(--border);color:var(--text)}.row-expand .btn-secondary{color:var(--text-secondary)}.row-expand .btn-secondary:hover{background:var(--surface)}.row-expand .total-row .label{color:var(--text-muted)}.row-expand .link-btn{color:oklch(74% .15 150)}.row-expand .link-btn:hover{color:oklch(82% .14 150)}.row-expand-inner{min-height:0;overflow:hidden}.row-expand-content{opacity:0;transition:opacity .16s,transform .16s;transform:translateY(-6px)}.row-expand.open .row-expand-content{opacity:1;transition:opacity .2s 80ms,transform .2s 80ms;transform:translateY(0)}.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:14px 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{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-card);box-shadow:var(--shadow-overlay);max-width:100%}.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 h2{margin:0;font-size:17px;font-weight:700}.dialog-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:20px;line-height:1}.dialog-close:hover{color:var(--text);background:var(--surface-alt)}.dialog-body{padding:18px 24px 20px}.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-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%}.field-hint{color:var(--text-muted);text-transform:none;letter-spacing:normal;margin-top:6px;font-size:12px;display:block}.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)}.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)}.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{color:var(--text-strong);font-size:16px;font-weight:700;text-decoration:none}.client-card-name:hover{text-decoration:underline}.client-card .company{color:oklch(50% .012 70);margin-top:2px;font-size:13px}.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{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}.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}.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{margin-bottom:4px;font-size:20px;display:block}.auth-card .tagline{color:var(--text-dim);margin:0 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}.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}.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}.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{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}.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);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;overflow:hidden}.typeahead-meta{color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.typeahead-empty{text-align:center;color:var(--text-muted);padding:14px 10px;font-size:13px}.text-autocomplete{flex-shrink:1;width:100%}.text-autocomplete .typeahead-list{width:max-content;min-width:100%;max-width:420px}.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 .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 .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-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 .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-layout{gap:28px;display:flex}.event-dialog-calendar{flex-shrink:0;width:300px}.event-dialog-form{flex:1;min-width:0}.mini-cal{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-alt);padding:10px}.mini-cal-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.mini-cal-label{color:var(--text-strong);font-size:13px;font-weight:600}.mini-cal-dow{text-transform:uppercase;color:var(--text-muted);text-align:center;grid-template-columns:repeat(7,1fr);margin-bottom:4px;font-size:10px;display:grid}.mini-cal-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.mini-cal-day{aspect-ratio:1;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0;font-family:inherit;display:flex}.mini-cal-day:hover{background:var(--row-hover)}.mini-cal-day .num{color:var(--text);font-size:12px}.mini-cal-day.outside .num{color:var(--text-muted)}.mini-cal-day.is-today .num{color:var(--accent);font-weight:700}.mini-cal-day.selected{background:var(--accent)}.mini-cal-day.selected .num{color:var(--on-accent);font-weight:700}.mini-cal-day .dots{gap:2px;display:flex}.mini-cal-day .dot{background:var(--accent);border-radius:50%;width:4px;height:4px}.mini-cal-day.selected .dot{background:var(--on-accent)}.mini-cal-schedule{border-top:1px solid var(--border);max-height:168px;margin-top:10px;padding-top:10px;overflow-y:auto}.mini-cal-schedule-label{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin-bottom:6px;font-size:11px;font-weight:600}.mini-cal-schedule-empty{color:var(--text-muted);font-size:12px}.mini-cal-schedule-row{border-left:2px solid var(--accent);align-items:baseline;gap:8px;margin-bottom:3px;padding:4px 0 4px 8px;display:flex}.mini-cal-schedule-row .t{color:var(--text-dim);white-space:nowrap;flex-shrink:0;font-size:11px}.mini-cal-schedule-row .title{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.mini-cal-schedule-row.status-done{border-left-color:var(--accepted-fg)}.mini-cal-schedule-row.status-canceled{border-left-color:var(--border-strong);opacity:.6}.mini-cal-schedule-row.status-canceled .title{text-decoration:line-through}.mini-cal-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:5px 8px;font-family:inherit;font-size:12px;font-weight:600;display:block}.mini-cal-slot:hover{background:oklch(90% .045 45)}.mini-cal-slot.selected{background:var(--accent);color:var(--on-accent);border-style:solid}
