html{--font-stack:var(--font-inter),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}a{color:var(--accent)}.account-menu-item,.account-menu-trigger,.button-link,.button-primary,.create-menu-item,.create-menu-trigger,.customer-list li,.link-button,.media-button,.owner-card,.quote-chip,.row-remove,.row-save,.search-hit,.sidenav a,.tabbar a{transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease}.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--accent);color:var(--accent-ink);padding:10px 16px;border-radius:var(--r-ctl)}.skip-link:focus-visible{left:var(--space-3);top:var(--space-3)}.shell{min-height:100dvh;display:flex;flex-direction:column}.topbar{height:56px;display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-4);background:var(--accent-bar)}.brand,.topbar{color:var(--accent-bar-ink)}.brand{font:var(--text-heading);letter-spacing:.01em;flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-user{margin-left:auto;display:flex;align-items:center;gap:var(--space-2);flex:none}.avatar{width:30px;height:30px;border-radius:999px;background:rgba(255,255,255,.22);color:var(--accent-bar-ink);font:var(--text-micro);display:grid;place-items:center}.account-menu{position:relative;display:inline-flex}button.account-menu-trigger{border:1px solid rgba(255,255,255,.35);padding:0;cursor:pointer}button.account-menu-trigger:hover,button.account-menu-trigger[aria-expanded=true]{background:rgba(255,255,255,.32)}.account-menu-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:150;min-width:220px;background:var(--surface);color:var(--ink);border:1px solid var(--border-strong);border-radius:var(--r-card);box-shadow:var(--shadow-overlay);padding:var(--space-2)}.account-menu-name{font:var(--text-small);font-weight:650;padding:var(--space-2) var(--space-2) var(--space-1);color:var(--ink-2)}.account-menu-item{display:block;padding:8px var(--space-2);border-radius:var(--r-ctl);color:var(--ink);font-weight:500;text-decoration:none}.account-menu-item:focus-visible,.account-menu-item:hover{background:var(--accent-soft)}.account-menu-signout{border-top:1px solid var(--border);margin-top:var(--space-2);padding-top:var(--space-2)}.account-menu-signout button{width:100%;text-align:left;font:inherit;font-weight:500;background:transparent;color:var(--ink);border:0;border-radius:var(--r-ctl);padding:8px var(--space-2);min-height:36px;cursor:pointer}.account-menu-signout button:hover{background:var(--status-negative-bg);color:var(--status-negative-tx)}.shell-body{flex:1 1;display:flex;min-height:0}.sidenav{display:none;width:216px;flex:none;border-right:1px solid var(--border);padding:var(--space-3) var(--space-2) var(--space-5);background:color-mix(in srgb,var(--accent-bar) 5%,var(--surface))}.navgroup{font:700 12px/16px var(--font-stack);letter-spacing:.04em;text-transform:uppercase;color:color-mix(in srgb,var(--accent-bar) 72%,var(--muted));margin:var(--space-4) var(--space-2) var(--space-1)}.navgroup-details>summary.navgroup{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between}.navgroup-details>summary.navgroup::-webkit-details-marker{display:none}.navgroup-details>summary.navgroup:after{content:"";width:7px;height:7px;border-right:1.5px solid;border-bottom:1.5px solid;transform:rotate(-45deg);margin-right:4px;transition:transform .12s}.navgroup-details[open]>summary.navgroup:after{transform:rotate(45deg)}.navgroup-details>summary.navgroup:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-radius:var(--r-ctl)}@media (prefers-reduced-motion:reduce){.navgroup-details>summary.navgroup:after{transition:none}}.sidenav>div:first-child .navgroup,.sidenav>div:first-child>a:first-child{margin-top:var(--space-1)}.sidenav a{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--r-ctl);color:var(--ink-2);font-weight:500;text-decoration:none}.nav-icon{flex:none;color:var(--muted)}.sidenav a:hover .nav-icon,.sidenav a[aria-current=page] .nav-icon{color:var(--accent)}.sidenav a:hover{background:color-mix(in srgb,var(--accent-bar) 10%,var(--surface));color:var(--ink)}.sidenav a[aria-current=page]{background:color-mix(in srgb,var(--accent-bar) 12%,var(--surface));color:var(--ink);font-weight:600;box-shadow:inset 3px 0 0 var(--accent)}.tabbar a[aria-current=page]{color:var(--accent);box-shadow:inset 0 2px 0 var(--accent)}.content{flex:1 1;min-width:0;padding:var(--space-5) var(--space-5) 96px}.tabbar{position:sticky;bottom:0;display:flex;border-top:1px solid var(--border);background:var(--surface)}.tabbar a{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 10px;min-height:52px;font:600 12px/16px var(--font-stack);color:var(--muted);text-decoration:none}.tabbar a .nav-icon{color:inherit}.tabbar a:hover{color:var(--accent)}@media (min-width:768px){.sidenav{display:block}.tabbar{display:none}.content{padding-bottom:var(--space-6)}}.more-list{list-style:none;margin:0;padding:0}.more-list a{display:block;padding:12px 10px;min-height:44px;border-bottom:1px solid var(--border);color:var(--ink);font-weight:500;text-decoration:none}.page-pad h1{font:var(--text-display);margin:0 0 var(--space-4)}nav.pagination{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;margin:var(--space-4) 0}.report-grid{list-style:none;margin:var(--space-4) 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-3)}.report-grid li{position:relative;border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface);padding:var(--space-4);display:grid;gap:var(--space-1);transition:background-color .12s ease,border-color .12s ease}.report-grid li:hover{border-color:var(--accent)}.report-grid li>a{color:var(--ink);text-decoration:none}.report-grid li>a:after{content:"";position:absolute;inset:0}.filter-bar input[type=checkbox],.search-bar input[type=checkbox]{width:18px;height:18px;min-width:18px;min-height:18px;flex:none}.section-label{font:var(--text-micro);text-transform:uppercase;letter-spacing:.02em;color:var(--muted);margin:0 0 var(--space-2)}.notfound{min-height:100dvh;display:grid;place-content:center;justify-items:start;gap:var(--space-3);padding:var(--space-5)}.notfound-brand{font:var(--text-heading);color:var(--accent);margin:0}.notfound h1{font:var(--text-display);margin:0}.notfound-body{color:var(--ink-2);margin:0 0 var(--space-2);max-width:36rem}.auth-card{max-width:380px;margin:64px auto;border:1px solid var(--border);border-radius:var(--r-card);padding:var(--space-5);background:var(--surface)}.auth-card h1{font:var(--text-title);margin:0 0 var(--space-4)}.auth-card form{display:grid;gap:var(--space-3)}.auth-card label{display:grid;gap:var(--space-1);font-weight:600}.auth-card input{font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-ctl);min-height:40px}.auth-card button[type=submit]{font:inherit;font-weight:650;background:var(--accent);color:var(--accent-ink);border:0;border-radius:var(--r-ctl);padding:10px;min-height:44px;cursor:pointer}.auth-card button[disabled]{opacity:.6;cursor:default}.auth-links{margin-top:var(--space-3);display:flex;justify-content:space-between;font:var(--text-small)}.mfa-card{max-width:460px}.mfa-secret{display:grid;gap:var(--space-3)}.mfa-secret h2{font:var(--text-title);margin:var(--space-2) 0 0}.mfa-secret img{justify-self:start;border:1px solid var(--border);border-radius:var(--r-card);background:#fff}.mfa-manual-key{font-weight:650;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.mfa-recovery-codes{margin:0;padding:var(--space-3);list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-1) var(--space-4);border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface-2)}.mfa-management button,.mfa-secret button{font:inherit;font-weight:650;background:var(--accent);color:var(--accent-ink);border:0;border-radius:var(--r-ctl);padding:10px var(--space-4);min-height:44px;cursor:pointer;justify-self:start}.mfa-secret button[disabled]{opacity:.6;cursor:default}.mfa-management button.secondary,.mfa-secret button.secondary{background:var(--surface);color:inherit;border:1px solid var(--border-strong);font-weight:600}.mfa-confirm{display:flex;gap:var(--space-2);align-items:center;font-weight:600}.mfa-management{display:grid;gap:var(--space-3);max-width:460px}.mfa-management .mfa-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.mfa-management form{display:grid;gap:var(--space-3)}.mfa-management label{display:grid;gap:var(--space-1);font-weight:600}.mfa-management input[type=password]{font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-ctl);min-height:40px;max-width:280px}.mfa-reset-form{display:grid;gap:var(--space-2);max-width:320px;font:var(--text-small)}.mfa-reset-form label{display:grid;gap:var(--space-1);font-weight:600}.mfa-reset-form input{font:inherit;padding:6px 8px;border:1px solid var(--border);border-radius:var(--r-ctl)}.link-button{background:none;border:0;padding:0;font:inherit;color:var(--accent);text-decoration:underline;cursor:pointer}.button-link{display:inline-flex;align-items:center;font-weight:650;background:var(--accent);color:var(--accent-ink)!important;border-radius:var(--r-ctl);padding:10px var(--space-5);min-height:44px;text-decoration:none}.form-error{background:var(--status-negative-bg);color:var(--status-negative-tx)}.form-error,.form-success{border:1px solid;border-radius:var(--r-ctl);padding:8px 10px}.form-success{background:var(--status-positive-bg);color:var(--status-positive-tx)}.users-table{width:100%;border-collapse:collapse;margin-top:var(--space-4);background:var(--surface);border:1px solid var(--border)}.users-table th{text-align:left;font:var(--text-micro);letter-spacing:.02em;text-transform:uppercase;color:var(--muted);padding:var(--space-2) var(--space-3);background:var(--surface-2)}.users-table td,.users-table th{border-bottom:1px solid var(--border)}.users-table td{padding:10px var(--space-3);vertical-align:top}.audit-diff summary{cursor:pointer;font:var(--text-micro);color:var(--muted)}.audit-json{margin:var(--space-1) 0;padding:var(--space-2);max-width:480px;max-height:240px;overflow:auto;font-size:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-ctl);white-space:pre-wrap;word-break:break-word}.role-picker{display:grid;gap:var(--space-1)}.role-option{display:flex;gap:6px;align-items:center;font-weight:400;min-height:24px}.invite-form{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-end;margin-top:var(--space-3)}.invite-form label{display:grid;gap:var(--space-1);min-width:220px}.invite-form .form-error{flex-basis:100%}.invite-issued{margin-top:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--r-ctl);background:var(--status-positive-bg)}.invite-link code{word-break:break-all}.session-row{display:flex;gap:var(--space-3);align-items:center;border:1px solid var(--border);border-radius:var(--r-card);padding:var(--space-3) var(--space-4);margin-top:var(--space-5);background:var(--surface)}.session-row .who{font-weight:650}.settings-form{display:grid;gap:var(--space-3);max-width:720px}.settings-form label{display:grid;gap:var(--space-1);font-weight:600}.settings-form input,.settings-form textarea{font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-ctl);min-height:40px}.settings-form button[type=submit]{font:inherit;font-weight:650;background:var(--accent);color:var(--accent-ink);border:0;border-radius:var(--r-ctl);padding:10px;min-height:44px;cursor:pointer;justify-self:start;padding-inline:var(--space-5)}.field-row{display:grid;gap:var(--space-3)}@media (min-width:640px){.field-row{grid-template-columns:1fr 1fr}}.users-table input{font:inherit;padding:6px 8px;border:1px solid var(--border);border-radius:var(--r-ctl);width:110px}.row-save{font:var(--text-small);font-weight:600;background:var(--surface);color:var(--ink);border:1px solid var(--border-strong);border-radius:var(--r-ctl);padding:6px 12px;min-height:32px;cursor:pointer}.row-save:hover:not([disabled]){background:var(--surface-2)}a.row-save[aria-current=page]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.logo-uploader{display:grid;gap:var(--space-3);justify-items:start}.logo-preview{max-height:80px;max-width:240px;border:1px solid var(--border);border-radius:var(--r-card);padding:var(--space-2)}.file-label{position:relative;display:inline-block;font-weight:650;background:var(--accent);color:var(--accent-ink);border-radius:var(--r-ctl);padding:10px var(--space-5);min-height:44px;cursor:pointer}.page-head{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.page-head h1{margin:0}.page-head>.row-save{margin-left:auto}.page-head>.row-save~.row-save{margin-left:0}.button-primary{margin-left:auto;font-weight:650;background:var(--accent);color:var(--accent-ink)!important;border-radius:var(--r-ctl);padding:10px var(--space-5);min-height:44px;display:inline-flex;align-items:center;text-decoration:none}.search-bar{display:flex;gap:var(--space-2);margin:var(--space-4) 0;max-width:640px}.search-bar input{flex:1 1;font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-ctl);min-height:44px}.search-bar button{font:inherit;font-weight:600;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-ctl);padding:0 var(--space-4);cursor:pointer}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.empty-state{color:var(--ink-2);border:1px dashed var(--border-strong);border-radius:var(--r-card);padding:var(--space-5);background:var(--surface)}.customer-list{list-style:none;margin:var(--space-4) 0 0;padding:0;border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface)}.customer-list li{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);flex-wrap:wrap;position:relative}.customer-list li:last-child{border-bottom:none}.customer-list li:has(.customer-name a):hover,.customer-list li:has(>a.customer-name):hover{background:color-mix(in srgb,var(--accent-bar) 4%,var(--surface))}.customer-list li>a.customer-name:after{content:"";position:absolute;inset:0}.customer-list li .row-actions,.customer-list li .status-control,.customer-list li a:not(.customer-name),.customer-list li button,.customer-list li input,.customer-list li label,.customer-list li select{position:relative;z-index:1}.field-card .customer-list,.quote-additions .customer-list,.quote-editor-section .customer-list{border:none;border-radius:0;background:transparent}.field-card .customer-list li,.quote-additions .customer-list li,.quote-editor-section .customer-list li{padding-inline:var(--space-2)}.customer-name{font-weight:600;min-width:180px}.chip-neutral{font:var(--text-micro);text-transform:uppercase;letter-spacing:.02em;background:var(--status-neutral-bg);border:1px solid var(--status-neutral-bd);color:var(--status-neutral-tx);border-radius:var(--r-chip);padding:2px 8px}.customer-meta{color:var(--muted);font:var(--text-small)}@media (min-width:768px){.customer-list li>.customer-meta:last-child{margin-left:auto;text-align:right}}.pager{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-4)}.settings-form select{font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-ctl);min-height:40px;background:var(--surface)}.kind-toggle{border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);max-width:720px}.kind-toggle legend{font-weight:600;margin-bottom:var(--space-2)}.kind-option{display:grid;gap:2px;border:1px solid var(--border);border-radius:var(--r-card);padding:var(--space-3) var(--space-4);cursor:pointer;font-weight:650}.kind-option.selected{border-color:var(--accent);background:var(--accent-soft)}.kind-option input{position:absolute;opacity:0}.kind-option:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.kind-hint{font:var(--text-small);font-weight:400;color:var(--muted)}.chip-positive{font:var(--text-micro);text-transform:uppercase;letter-spacing:.02em;background:var(--status-positive-bg);border:1px solid var(--status-positive-bd);color:var(--status-positive-tx);border-radius:var(--r-chip);padding:2px 8px}.row-actions{margin-left:auto;display:flex;gap:var(--space-2)}.detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-4);margin:var(--space-4) 0 0}.detail-grid dt{font:var(--text-micro);text-transform:uppercase;letter-spacing:.02em;color:var(--muted)}.detail-grid dd{margin:2px 0 0;font-weight:550}a.customer-name{color:var(--accent);text-decoration:none}.chip-negative{font:var(--text-micro);text-transform:uppercase;letter-spacing:.02em;background:var(--status-negative-bg);border:1px solid var(--status-negative-bd);color:var(--status-negative-tx);border-radius:var(--r-chip);padding:2px 8px}.tab-nav{display:flex;gap:var(--space-1);border-bottom:1px solid var(--border);margin:var(--space-4) 0;overflow-x:auto}.tab-nav a{padding:var(--space-2) var(--space-4);min-height:44px;display:inline-flex;align-items:center;font-weight:600;color:var(--ink-2);text-decoration:none;border-bottom:2px solid transparent;white-space:nowrap}.tab-nav a[aria-current=page]{color:var(--accent);border-bottom-color:var(--accent)}.settings-form textarea{font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-ctl);resize:vertical}.archived-toggle{margin-top:var(--space-5);font:var(--text-small)}.consent-section{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--border);max-width:720px}.consent-section h2{margin:0 0 var(--space-1)}.consent-row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-3)}.consent-label{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:600;cursor:pointer;min-height:44px}.consent-label input{width:18px;height:18px;accent-color:var(--accent)}a.row-save{text-decoration:none;color:var(--ink);display:inline-flex;align-items:center}.link-customer-form{display:flex;gap:var(--space-3);align-items:end;flex-wrap:wrap;margin-top:var(--space-4)}.link-customer-form label{display:grid;gap:var(--space-1);font-weight:600}.link-customer-form select{font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-ctl);min-height:40px;background:var(--surface);min-width:220px}.link-customer-form button{min-height:40px}.access-gate{border:1px solid var(--border);border-radius:var(--r-card);padding:var(--space-5);max-width:720px;display:grid;gap:var(--space-3);justify-items:start;background:var(--surface)}.access-gate p{margin:0}.filter-bar{max-width:none;flex-wrap:wrap}.filter-bar input{min-width:260px}.filter-bar select{font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-ctl);min-height:44px;background:var(--surface)}.status-panel{max-width:900px}.status-rename{display:flex;gap:var(--space-2);align-items:center}.status-rename input{border:1px solid var(--border);border-radius:var(--r-ctl);width:220px}.status-control select,.status-rename input{font:inherit;padding:6px 10px;min-height:36px}.status-control select{font-weight:600;border:1px solid var(--border-strong);border-radius:var(--r-ctl);background:var(--surface)}.workflow-panel{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--border)}.workflow-panel h2{margin:0 0 var(--space-3)}.workflow-row{display:flex;gap:var(--space-3);align-items:end;flex-wrap:wrap;margin-bottom:var(--space-3)}.workflow-row label{display:grid;gap:var(--space-1);font-weight:600}.workflow-row input,.workflow-row select{font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-ctl);min-height:40px;background:var(--surface)}a.row-save.row-save{text-decoration:none}.timeline{list-style:none;margin:var(--space-4) 0 0;padding:0;border-left:2px solid var(--border)}.timeline-item{position:relative;padding:var(--space-2) 0 var(--space-3) var(--space-5)}.timeline-item:before{content:"";position:absolute;left:-5px;top:14px;width:8px;height:8px;border-radius:999px;background:var(--border-strong)}.timeline-item.timeline-note:before,.timeline-note:before{background:var(--accent)}.timeline-head{display:flex;gap:var(--space-2);align-items:baseline;flex-wrap:wrap}.timeline-actor{font-weight:650}.timeline-note{margin-top:var(--space-1);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--space-3) var(--space-4);max-width:720px}.timeline-note p{margin:0 0 var(--space-2);white-space:pre-wrap}.note-form{margin-bottom:var(--space-4)}.note-form textarea{font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-ctl);resize:vertical}.note-visibility{border:none;margin:0;padding:0;display:flex;gap:var(--space-4);flex-wrap:wrap}.note-visibility legend{font-weight:650;margin-bottom:var(--space-1)}.note-visibility label{display:inline-flex;gap:var(--space-1);align-items:center}.customer-update-form{border:1px solid var(--status-positive-bd);border-radius:var(--r-card);padding:var(--space-3) var(--space-4)}.timeline-item.timeline-customer_update:before{background:var(--status-positive-bd)}.calendar-toolbar{display:flex;gap:var(--space-2);align-items:center;margin-bottom:var(--space-4);flex-wrap:wrap}.calendar-spacer{flex:1 1}.calendar{display:grid;grid-template-columns:repeat(7,minmax(140px,1fr));gap:var(--space-2);overflow-x:auto}.calendar-day{grid-template-columns:minmax(280px,640px)}.calendar-col{border:1px solid var(--border);border-radius:var(--r-card);padding:var(--space-2);min-height:160px;background:var(--surface)}.calendar-day-head{font:var(--text-small);font-weight:650;margin:0 0 var(--space-2);padding:4px 6px;border-bottom:1px solid var(--border)}.calendar-day-head.is-today{color:var(--accent);border-bottom-color:var(--accent)}.calendar-empty{color:var(--muted);text-align:center;margin:var(--space-4) 0}.calendar-entry{display:grid;gap:2px;background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--r-ctl);padding:var(--space-2);margin-bottom:var(--space-2);color:var(--ink);text-decoration:none;font:var(--text-small)}.calendar-entry.is-done{opacity:.6}.calendar-entry{border-left-width:4px}.calendar-entry.is-unconfirmed{border-style:dashed}.appt-type-survey{border-left-color:#2563eb}.appt-type-estimate{border-left-color:#7c3aed}.appt-type-work{border-left-color:#16a34a}.appt-type-delivery{border-left-color:#b45309}.appt-type-inspection{border-left-color:#0891b2}.appt-type-valuation{border-left-color:#4d7c0f}.appt-type-snagging{border-left-color:#dc2626}.appt-type-customer_meeting{border-left-color:#db2777}.appt-type-follow_up{border-left-color:#9333ea}.appt-type-service_visit{border-left-color:#475569}.calendar-filters{display:flex;gap:var(--space-3);align-items:end;flex-wrap:wrap;margin-bottom:var(--space-4);font:var(--text-small)}.calendar-filters label{display:grid;gap:2px}.calendar-month-title{font:var(--text-small);font-weight:650;margin:0 0 var(--space-2)}.calendar-month{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));gap:var(--space-1);overflow-x:auto}.calendar-month-weekday{font:var(--text-small);font-weight:650;color:var(--muted);padding:2px 6px}.calendar-month-cell{border:1px solid var(--border);border-radius:var(--r-ctl);padding:var(--space-1);min-height:96px;background:var(--surface)}.calendar-month-cell.is-blank{border:none}.calendar-month-cell.is-today{border-color:var(--accent)}.calendar-month-cell .calendar-entry{padding:2px 4px;margin-bottom:2px}.calendar-month-daynum{display:block;font:var(--text-small);font-weight:650;color:var(--ink);text-decoration:none;margin-bottom:2px}.calendar-month-cell.is-today .calendar-month-daynum{color:var(--accent)}.calendar-month-more{display:block;font:var(--text-small);color:var(--muted)}@media (max-width:720px){.calendar-month{grid-template-columns:repeat(7,minmax(44px,1fr))}.calendar-month-cell{min-height:56px}.calendar-month-cell .calendar-entry strong{display:none}}.timeline{border:1px solid var(--border);border-radius:var(--r-card);overflow-x:auto;background:var(--surface)}.timeline-group-label{font:var(--text-small);font-weight:650;margin:0;padding:var(--space-2) var(--space-3);background:var(--surface-2,rgba(0,0,0,.03));border-top:1px solid var(--border)}.timeline-lane{display:grid;grid-template-columns:160px minmax(720px,1fr);border-top:1px solid var(--border)}.timeline-group:first-of-type .timeline-lane:first-child,.timeline-lane:first-child{border-top:none}.timeline-lane-label{display:flex;gap:var(--space-2);align-items:center;font:var(--text-small);font-weight:650;padding:var(--space-2) var(--space-3);border-right:1px solid var(--border);min-height:48px}.timeline-track{position:relative;min-height:48px;touch-action:none}.timeline-track.is-drop-target{background:var(--accent-soft)}.timeline-gridline{position:absolute;top:0;bottom:0;border-left:1px solid var(--border);opacity:.5}.timeline-head .timeline-track{min-height:24px}.timeline-hour{position:absolute;top:2px;transform:translateX(2px);font:var(--text-small);color:var(--muted)}.timeline-hour:nth-child(odd){display:none}.timeline-block{position:absolute;top:6px;bottom:6px;min-width:24px;display:flex;align-items:center;background:var(--accent-soft);border:1px solid var(--accent);border-left-width:4px;border-radius:var(--r-ctl);font:var(--text-small);overflow:hidden;cursor:grab;-webkit-user-select:none;user-select:none}.timeline-block.is-unconfirmed{border-style:dashed}.timeline-block.is-done{opacity:.6}.timeline-block.is-dragging{z-index:2;box-shadow:var(--shadow-2,0 4px 12px rgba(0,0,0,.2));cursor:grabbing}.timeline-block.is-ghost{opacity:.55}.timeline-block-link{flex:1 1;padding:2px var(--space-2);color:var(--ink);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-resize{width:10px;align-self:stretch;cursor:ew-resize;border-left:1px solid var(--accent);opacity:.6}@media (max-width:720px){.timeline-lane{grid-template-columns:96px minmax(560px,1fr)}}.assignee-row{display:inline-flex;gap:var(--space-2);align-items:center;border:1px solid var(--border);border-radius:var(--r-ctl);padding:2px var(--space-2)}.conflict-warning{border:1px solid var(--warning,#b45309);border-left-width:4px;border-radius:var(--r-card);background:rgba(180,83,9,.08);padding:var(--space-3);display:grid;gap:var(--space-2)}.conflict-warning p{margin:0}.conflict-override{display:inline-flex;gap:var(--space-2);align-items:center;font-weight:650}.field-hint{color:var(--muted,#807b72);font:var(--text-small);margin:var(--space-1) 0 0}.recurrence-editor{display:grid;gap:var(--space-2)}.confirmation-panel,.recurrence-editor{border:1px solid var(--border);border-radius:var(--r-card);padding:var(--space-3);background:var(--surface)}.confirmation-panel{margin-top:var(--space-5)}.confirmation-panel h2{font:var(--text-small);font-weight:650;margin:0 0 var(--space-2)}.confirmation-history{list-style:none;margin:var(--space-3) 0 0;padding:0;display:grid;gap:var(--space-1);font:var(--text-small);color:var(--muted,#807b72)}.timeline-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:var(--space-4);align-items:start}.unscheduled-panel{border:1px solid var(--border);border-radius:var(--r-card);padding:var(--space-3);background:var(--surface)}.unscheduled-panel h2{font:var(--text-small);font-weight:650;margin:0 0 var(--space-2)}.unscheduled-panel .hint{font:var(--text-small);color:var(--muted);margin:var(--space-2) 0 0}.unscheduled-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}.unscheduled-card{display:grid;grid-template-columns:auto 1fr;gap:2px var(--space-2);align-items:center;border:1px solid var(--border);border-radius:var(--r-ctl);padding:var(--space-2);font:var(--text-small);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;background:var(--surface)}.unscheduled-card.is-dragging{cursor:grabbing;box-shadow:var(--shadow-2,0 4px 12px rgba(0,0,0,.2));opacity:.85}.unscheduled-card-title{font-weight:650}@media (max-width:900px){.timeline-layout{grid-template-columns:1fr}}.topbar-search{display:inline-flex;align-items:center;gap:var(--space-2);margin-left:var(--space-5);font:var(--text-small);background:rgba(255,255,255,.12);color:var(--accent-bar-ink);border:1px solid rgba(255,255,255,.25);border-radius:var(--r-ctl);padding:6px 12px;min-height:32px;cursor:pointer}.topbar-search kbd{font:var(--text-micro);border:1px solid rgba(255,255,255,.35);border-radius:2px;padding:1px 4px}.search-overlay{position:fixed;inset:0;z-index:200;display:flex;justify-content:center;align-items:flex-start;padding-top:12vh}.search-backdrop{position:absolute;inset:0;background:rgba(29,27,24,.4)}.search-panel{position:relative;width:min(640px,calc(100vw - 32px));max-height:70vh;overflow-y:auto;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-card);padding:var(--space-3);box-shadow:0 12px 40px rgba(29,27,24,.25)}.search-panel input{width:100%;font:inherit;font-size:16px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r-ctl);min-height:44px}.search-empty{color:var(--muted);padding:var(--space-3) var(--space-2);margin:0}.search-group-head{font:var(--text-micro);text-transform:uppercase;letter-spacing:.02em;color:var(--muted);margin:var(--space-3) var(--space-2) var(--space-1)}.search-hits{list-style:none;margin:0;padding:0}.search-hit{display:grid;gap:1px;width:100%;text-align:left;font:inherit;background:transparent;border:0;border-radius:var(--r-ctl);padding:8px 10px;cursor:pointer}.search-hit.is-selected{background:var(--accent-soft)}.search-hit-title{font-weight:600}.search-hit mark{background:transparent;color:var(--accent);font-weight:700}@media (max-width:767px){.topbar-search kbd,.topbar-search-hint{display:none}}.capture-section{border:1px solid var(--border);border-radius:var(--r-card);padding:var(--space-4);margin:0;display:grid;gap:var(--space-3);background:var(--surface)}.capture-section legend{font-weight:650;padding:0 var(--space-2)}.capture-section select,.capture-section textarea{font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-ctl);background:var(--surface)}.capture-room{border:1px solid var(--border);border-radius:var(--r-card);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3);background:var(--surface)}.capture-room h3{margin:0 0 var(--space-2)}.entry-form input:not([type=checkbox]),.entry-form select{min-width:140px}.save-feedback{max-width:720px;margin-top:var(--space-2)}.media-block{margin-bottom:var(--space-3)}.media-strip{list-style:none;display:flex;gap:var(--space-2);flex-wrap:wrap;margin:0 0 var(--space-2);padding:0}.media-item{position:relative;width:108px;display:grid;gap:2px}.media-item img{width:108px;height:82px;object-fit:cover;border:1px solid var(--border);border-radius:var(--r-ctl)}.media-placeholder{width:108px;height:82px;display:grid;place-items:center;border:1px dashed var(--border-strong);border-radius:var(--r-ctl);color:var(--muted);font:var(--text-small)}.media-caption{font:var(--text-micro);color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-remove{position:absolute;top:2px;right:2px;width:24px;height:24px;border:0;border-radius:999px;background:rgba(29,27,24,.65);color:#fff;cursor:pointer;line-height:1}.media-controls{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.media-button{font:inherit;font-weight:600;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-ctl);padding:10px 14px;min-height:44px;cursor:pointer}.media-button.is-listening{border-color:var(--status-negative-bd);background:var(--status-negative-bg)}.media-caption-field input{font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-ctl);min-height:44px;min-width:170px}.dictation-field{display:grid;gap:var(--space-2);justify-items:start}.dictation-field textarea{width:100%}.sketch-pad{display:grid;gap:var(--space-2);margin-top:var(--space-2)}.sketch-pad canvas{width:100%;max-width:640px;border:1px solid var(--border-strong);border-radius:var(--r-card);touch-action:none;background:#fff}.sketch-colour{width:32px;height:32px;border:1px solid var(--border-strong);border-radius:999px;cursor:pointer}.sync-badge{position:sticky;bottom:var(--space-3);display:inline-block;font:var(--text-small);font-weight:600;padding:8px 14px;border-radius:var(--r-ctl);border:1px solid var(--border-strong);background:var(--surface);box-shadow:0 4px 16px rgba(29,27,24,.12)}.sync-badge[data-status=synced]{color:var(--status-positive-tx);border-color:var(--status-positive-bd);background:var(--status-positive-bg)}.sync-badge[data-status=saving],.sync-badge[data-status=unsynced]{color:var(--status-neutral-tx)}.sync-badge[data-status=failed]{color:var(--status-negative-tx);border-color:var(--status-negative-bd);background:var(--status-negative-bg)}.signature-pad{display:grid;gap:var(--space-2);margin-top:var(--space-2)}.signature-pad canvas{width:100%;max-width:480px;border:1px dashed var(--border-strong);border-radius:var(--r-card);touch-action:none;background:#fff}.signature-block{display:grid;gap:var(--space-2);padding-block:var(--space-3);border-top:1px solid var(--border)}.signature-block h3{margin:0}.signature-image{max-width:320px;border:1px solid var(--border);border-radius:var(--r-card);background:#fff}.signature-row{display:grid;gap:var(--space-1)}.signoff-complete{display:grid;gap:var(--space-2);justify-items:start;padding-top:var(--space-3);border-top:1px solid var(--border)}.add-item-details{margin-block:var(--space-3)}.add-item-details[open]{border:1px solid var(--border);border-radius:var(--r-card);padding:var(--space-3);background:var(--surface)}.add-item-details summary{cursor:pointer;list-style:none;width:fit-content}.add-item-details[open] summary{margin-bottom:var(--space-2)}.build-up-fields,.build-up-list li{align-items:center}.build-up-fields{display:flex;flex-wrap:wrap;gap:var(--space-2);width:100%}.build-up-fields input,.build-up-fields select{min-width:0}.build-up-fields input[aria-label$=description]{flex:1 1 220px}.build-up-qty{width:90px}.build-up-rate{width:110px}.filter-bar .consent-label{display:inline-flex;align-items:center;gap:var(--space-1);white-space:nowrap}.filter-bar .consent-label input[type=checkbox]{width:18px;height:18px;min-width:18px;min-height:18px;flex:none}.add-item-build-up{display:grid;gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border);justify-items:start}.add-item-build-up h3{margin:0}.add-item-build-up .build-up-list{width:100%}.quote-editor-section{border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface);padding:var(--space-3) var(--space-4) var(--space-4);margin-top:var(--space-3);display:grid;gap:var(--space-2)}.quote-editor-subsection{display:grid;gap:var(--space-2)}.quote-editor-subsection,form.quote-add-subsection{margin-left:var(--space-4);padding-left:var(--space-3);border-left:2px solid var(--border)}form.quote-add-section{margin-top:var(--space-3);border:1px dashed var(--border-strong);border-radius:var(--r-card);padding:var(--space-3) var(--space-4)}.quote-section-head{justify-content:space-between}.quote-section-title{margin:0}.quote-item-form{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:end;border:1px solid var(--border);border-radius:var(--r-card);padding:var(--space-2);width:100%;background:var(--surface)}.quote-item-form label{display:grid;gap:4px;font-weight:600}.quote-item-form input,.quote-item-form select{font:inherit;border:1px solid var(--border);border-radius:var(--r-ctl);padding:6px 8px;min-height:38px}.quote-qty{width:80px}.quote-money{width:110px}.quote-library-picker{display:grid;gap:var(--space-2);width:100%}.quote-totals-strip{border:1px solid var(--border);border-top:2px solid var(--border-strong);border-radius:var(--r-card);background:var(--surface);padding:var(--space-3) var(--space-4);margin-top:var(--space-3)}.quote-content-panel{display:grid;gap:var(--space-4)}.quote-content-block{display:grid;gap:var(--space-2);max-width:44rem}.quote-content-block h3{margin:0;font-size:1rem}.quote-content-block textarea,.quote-exclusion-form input{font:inherit;border:1px solid var(--border);border-radius:var(--r-ctl);padding:8px 10px}.quote-exclusion-form{display:flex;gap:var(--space-2)}.quote-exclusion-form input{flex:1 1}.quote-status-chips{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3)}.quote-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--border);border-radius:999px;font-size:.875rem;font-weight:600;color:var(--ink-2);text-decoration:none}.quote-chip .num{color:var(--muted);font-weight:400}.quote-chip-active,.quote-chip[aria-current=page]{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.quote-timeline{list-style:none;margin:0;padding:0;display:grid;gap:6px}.quote-timeline li{display:flex;gap:var(--space-2);align-items:baseline}.quote-timeline .customer-meta{min-width:10rem}.send-quote-form{display:grid;gap:var(--space-2);max-width:34rem}.send-quote-form label{display:grid;gap:4px;font-size:.875rem;color:var(--muted)}.send-quote-form input,.send-quote-form textarea{font:inherit;border:1px solid var(--border);border-radius:var(--r-ctl);padding:8px 10px;color:var(--ink)}.send-quote-form .display-toggle{display:inline-flex;align-items:center;gap:8px;color:var(--ink)}.send-followup-days{max-width:3.5rem;min-height:32px}.send-confirmation{display:inline-block}.portal-shell{min-height:100vh;background:var(--surface-sunken,#f4f2ee)}.portal-page{max-width:44rem;margin:0 auto;padding:var(--space-5) var(--space-4);display:grid;gap:var(--space-4)}.portal-brand{border-bottom:3px solid;padding-bottom:var(--space-3)}.portal-company{font-size:1.35rem;font-weight:700}.portal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--space-4);display:grid;gap:var(--space-2)}.portal-card h1{margin:0;font-size:1.35rem}.portal-lede{font-size:1.05rem;font-weight:600;margin:0}.portal-foot,.portal-meta{color:var(--muted);font-size:.875rem}.portal-links{display:grid;gap:var(--space-3)}.portal-issue-form{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:end}.portal-issue-form label{display:grid;gap:4px;font-size:.875rem;color:var(--muted)}.portal-issue-form input{font:inherit;border:1px solid var(--border);border-radius:var(--r-ctl);padding:8px 10px;min-height:40px;min-width:18rem}.portal-issued{border:1px solid var(--border-strong);border-radius:var(--r-card);padding:var(--space-3);background:var(--surface);display:grid;gap:var(--space-1)}.portal-decision{border:2px solid var(--border-strong)}.portal-optional-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-1)}.portal-optional-list label{display:flex;align-items:center;gap:var(--space-2);padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-ctl);cursor:pointer}.portal-optional-list input[type=checkbox]{width:18px;height:18px;min-width:18px}.portal-optional-price{margin-left:auto;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.portal-total{font-size:1.1rem;margin:var(--space-2) 0 0}.portal-decision-buttons{display:flex;gap:var(--space-2);flex-wrap:wrap}.portal-accept,.portal-reject{font:inherit;padding:10px 18px;border-radius:var(--r-ctl);cursor:pointer;border:1px solid var(--border-strong)}.portal-accept{background:#1d3557;border-color:#1d3557;color:#fff;font-weight:600}.portal-reject{background:var(--surface)}.portal-decision-form{display:grid;gap:var(--space-2)}.portal-decision-form label{display:grid;gap:4px;font-size:.9rem}.portal-decision-form input,.portal-decision-form textarea{font:inherit;border:1px solid var(--border);border-radius:var(--r-ctl);padding:8px 10px}.portal-decided h1{color:#2d6a4f}.portal-issued-url{word-break:break-all;font-size:.8125rem;padding:6px 8px;background:var(--surface-sunken,#f4f2ee);border-radius:var(--r-ctl);-webkit-user-select:all;user-select:all}.display-controls{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;padding:var(--space-2) 0;border-bottom:1px solid var(--border)}.display-toggle{display:inline-flex;align-items:center;gap:8px;font-size:.875rem}.display-toggle input[type=checkbox]{width:16px;height:16px;min-width:16px;min-height:16px}.display-toggle select{font:inherit;border:1px solid var(--border);border-radius:var(--r-ctl);padding:6px 8px}.customer-preview{margin-top:var(--space-3);border:1px solid var(--border-strong);border-radius:var(--r-card);padding:var(--space-4);background:var(--surface);max-width:52rem}.preview-title{margin:0}.preview-section{margin-top:var(--space-3);border-top:1px solid var(--border);padding-top:var(--space-2)}.preview-subsection{margin:var(--space-2) 0 0 var(--space-3)}.preview-section h4,.preview-subsection h5{margin:0}.preview-section-total{text-align:right;margin:4px 0 0}.preview-terms{margin-top:var(--space-3);border-top:1px solid var(--border);padding-top:var(--space-2)}.preview-exclusions{margin:0;padding-left:1.2rem;display:grid;gap:2px}.preview-terms h4{margin:0 0 4px}.quote-additions{border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface);padding:var(--space-3) var(--space-4) var(--space-4);margin-top:var(--space-4);display:grid;gap:var(--space-2)}.quote-additions-title{margin:0;font-size:1rem}.quote-addition-form{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:end}.quote-addition-form label{display:grid;gap:4px;font-size:.875rem;color:var(--muted)}.quote-addition-form input,.quote-addition-form select{font:inherit;border:1px solid var(--border);border-radius:var(--r-ctl);padding:8px 10px;min-height:40px;color:var(--ink)}.quote-addition-form input.num{max-width:8rem}.quote-totals-breakdown{margin:var(--space-2) 0 0;display:grid;gap:4px;max-width:34rem;margin-left:auto}.quote-totals-breakdown>div{display:flex;justify-content:space-between;gap:var(--space-3)}.quote-totals-breakdown dt{color:var(--muted)}.quote-totals-breakdown dd{margin:0}.quote-totals-breakdown .quote-totals-grand{border-top:2px solid var(--border-strong);margin-top:4px;padding-top:6px;font-weight:700}.quote-totals-breakdown .quote-totals-grand dt{color:var(--ink)}.quote-totals-breakdown p{margin:2px 0 0;text-align:right}.library-picker-panel{width:min(760px,calc(100vw - 32px));display:grid;gap:var(--space-3);align-content:start}.library-picker-head{justify-content:space-between}.library-picker-title{margin:0;display:flex;align-items:center;gap:var(--space-2)}.library-category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-2)}.library-category-button{font:inherit;text-align:left;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r-ctl);background:var(--surface);cursor:pointer}.library-category-button:hover{border-color:var(--border-strong)}.library-category-all{font-weight:600}.library-picker-list li{align-items:center}.library-picker-item{display:grid;gap:2px;flex:1 1;min-width:0}.library-picker-actions{display:inline-flex;align-items:center;gap:var(--space-2)}.library-picker-actions input{font:inherit;border:1px solid var(--border);border-radius:var(--r-ctl);padding:6px 8px;min-height:38px}.row-remove{font:var(--text-small);font-weight:600;background:var(--surface);color:var(--status-negative-tx);border:1px solid var(--status-negative-bd);border-radius:var(--r-ctl);padding:6px 12px;min-height:32px;cursor:pointer}.row-remove:hover:not([disabled]){background:var(--status-negative-bg)}.task-description{white-space:pre-wrap;max-width:70ch}.task-status-actions{margin:var(--space-3) 0}.task-status-actions .row-actions{display:inline-flex;flex-wrap:wrap;gap:var(--space-2)}.task-checklist{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}.task-checklist li{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);padding:6px 0;border-bottom:1px solid var(--border)}.task-checklist-done .task-checklist-label{text-decoration:line-through;color:var(--ink-muted,#6b7280)}.task-checklist-label{flex:1 1;min-width:12ch}.task-tick{font-size:1.25rem;line-height:1;background:none;border:none;cursor:pointer;padding:4px 8px;min-height:32px;min-width:32px}.task-tick:disabled{cursor:default;opacity:.6}.task-checklist-add{margin-top:var(--space-3)}.evidence-fieldset{border:1px solid var(--border);border-radius:2px;padding:var(--space-3) var(--space-4);display:grid;gap:var(--space-2)}.evidence-fieldset legend{font-size:.8125rem;font-weight:600;padding:0 var(--space-2);color:var(--muted)}.sheet-stepper{display:grid;gap:var(--space-4)}.sheet-steps{list-style:none;margin:0;padding:0;display:flex;gap:var(--space-2);overflow-x:auto;scrollbar-width:thin}.sheet-step{font:var(--text-small);font-weight:600;white-space:nowrap;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-ctl);padding:8px 12px;min-height:44px;cursor:pointer}.sheet-step.is-current{border-color:var(--border-strong);background:var(--status-neutral-bg,var(--surface-alt,#f4f4f5))}.sheet-block,.sheet-field-grid{display:grid;gap:var(--space-3)}.sheet-field-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:end}.sheet-block>label,.sheet-field-grid label{display:grid;gap:var(--space-1)}.sheet-block input,.sheet-block select,.sheet-block textarea,.sheet-field-grid input{font:inherit;padding:10px 12px;min-height:44px;border:1px solid var(--border);border-radius:var(--r-ctl);width:100%}.sheet-check{display:flex;align-items:center;gap:var(--space-2)}.sheet-check input[type=checkbox]{width:22px;height:22px;min-height:22px}.sheet-progress-row{display:grid;gap:var(--space-2)}.sheet-progress-controls{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:end}.sheet-progress-controls label{display:grid;gap:var(--space-1);font:var(--text-small)}.sheet-progress-controls input{min-width:8ch}.sheet-review{display:grid;gap:var(--space-2);margin:0}.sheet-review>div{display:grid;gap:2px;padding-bottom:var(--space-2);border-bottom:1px solid var(--border)}.sheet-review dt{font:var(--text-small);font-weight:600;color:var(--muted)}.sheet-review dd{margin:0}.sheet-pager{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;position:sticky;bottom:0;padding:var(--space-3) 0;background:var(--bg,#fff)}.sheet-pager button{min-height:44px;min-width:96px}.photo-gallery{list-style:none;margin:var(--space-4) 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-3)}.photo-gallery>li{display:grid;gap:2px}.photo-tile{padding:0;border:1px solid var(--border);border-radius:2px;background:var(--surface);cursor:pointer;overflow:hidden;aspect-ratio:4/3;display:grid;place-items:center}.photo-tile img{width:100%;height:100%;object-fit:cover;display:block}.photo-processing{padding:var(--space-2);text-align:center}.photo-caption,.photo-meta,.photo-processing{font:var(--text-small);color:var(--muted)}.photo-caption{color:var(--ink,#1d1b18)}.upload-progress{list-style:none;margin:var(--space-3) 0 0;padding:0;display:grid;gap:var(--space-1)}.upload-progress li{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;font:var(--text-small)}.photo-lightbox{position:fixed;inset:0;background:rgba(29,27,24,.75);display:grid;place-items:center;padding:var(--space-4);z-index:50}.photo-lightbox-inner{background:var(--surface);border-radius:2px;padding:var(--space-4);max-width:min(900px,100%);max-height:90vh;overflow:auto;display:grid;gap:var(--space-3)}.photo-lightbox-inner img{max-width:100%;max-height:60vh;object-fit:contain;justify-self:center}.photo-filters{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:end;margin-top:var(--space-3)}.photo-filters label{display:grid;gap:var(--space-1);font:var(--text-small)}.photo-filters input,.photo-filters select{font:inherit;padding:8px 10px;min-height:40px;border:1px solid var(--border);border-radius:var(--r-ctl)}.photo-bulk-bar{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:end;margin-top:var(--space-3);padding:var(--space-3);border:1px solid var(--border-strong);border-radius:2px;background:var(--surface)}.photo-bulk-bar label{display:grid;gap:var(--space-1);font:var(--text-small)}.photo-bulk-bar input,.photo-bulk-bar select{font:inherit;padding:8px 10px;min-height:40px;border:1px solid var(--border);border-radius:var(--r-ctl)}.photo-select{display:flex;align-items:center;gap:var(--space-1);font:var(--text-small)}.photo-select input[type=checkbox]{width:20px;height:20px}.photo-tags{display:flex;flex-wrap:wrap;gap:4px}.photo-export-bar{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;margin-top:var(--space-3)}.annotation-editor{display:grid;gap:var(--space-2);justify-items:start}.annotation-canvas{width:100%;max-width:100%;max-height:55vh;object-fit:contain;border:1px solid var(--border-strong);border-radius:2px;touch-action:none;background:#fff}.annotation-colour{width:28px;height:28px;border:1px solid var(--border-strong);border-radius:999px;cursor:pointer}.row-save.is-current{border-color:var(--border-strong);font-weight:700}.timer-chip{display:inline-flex;align-items:center;gap:var(--space-1);font:var(--text-small);font-weight:600;color:var(--accent-bar-ink);border:1px solid rgba(255,255,255,.35);border-radius:var(--r-ctl);padding:5px 10px;text-decoration:none}.timer-chip-dot{width:8px;height:8px;border-radius:999px;background:#4ade80}.timer-card{border:1px solid var(--border);border-radius:2px;padding:var(--space-4);margin-bottom:var(--space-4);background:var(--surface)}.timer-card-running{border-color:var(--border-strong);border-left-width:3px}.timer-card h2{font:var(--text-heading);margin:0 0 var(--space-2)}.timer-elapsed{font:var(--text-display);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin:0 0 var(--space-1)}.timer-form{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:end}.timer-form label{display:grid;gap:var(--space-1);font-weight:600;min-width:200px;flex:1 1 200px}.timesheet-week{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}.timesheet-week>li{border-top:1px solid var(--border);padding-top:var(--space-2)}.timesheet-week>li.is-today .timesheet-day{font-weight:700}.timesheet-day-head{display:flex;justify-content:space-between;gap:var(--space-2)}.timesheet-entries{list-style:none;margin:var(--space-1) 0 0;padding:0;display:grid;gap:var(--space-1)}.timesheet-entries>li{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;padding:var(--space-1) 0}.timesheet-duration{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.checkbox-row{display:flex!important;align-items:center;gap:var(--space-2)}@media (max-width:640px){.timer-form label{flex-basis:100%}}.week-state{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;margin:var(--space-3) 0}.week-state p{margin:0}.reject-box{display:grid;gap:var(--space-2);width:100%;max-width:480px;margin-top:var(--space-2)}.reject-box label{display:grid;gap:var(--space-1);font-weight:600}.export-history{list-style:none;margin:var(--space-2) 0 0;padding:0;display:grid;gap:var(--space-1);width:100%}.export-history>li{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:baseline}.comparison-list{list-style:none;margin:var(--space-2) 0 0;padding:0;display:grid;gap:var(--space-1);max-width:420px}.comparison-list>li{display:flex;justify-content:space-between;gap:var(--space-3);align-items:baseline;border-bottom:1px solid var(--border);padding-bottom:var(--space-1)}.table-scroll{overflow-x:auto;max-width:100%}.folder-bar{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;margin-bottom:var(--space-3)}.document-edit{width:100%;max-width:520px;margin-top:var(--space-2);padding:var(--space-3);border:1px solid var(--border);border-radius:2px}.field-home{display:grid;gap:var(--space-4)}.field-card{border:1px solid var(--border);border-radius:2px;padding:var(--space-4);background:var(--surface)}.field-card h2{font:var(--text-heading);margin:0 0 var(--space-2)}.field-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3);flex-wrap:wrap}.field-card-head h2{margin:0}.visit-list{list-style:none;margin:var(--space-2) 0 0;padding:0;display:grid;gap:var(--space-2)}.visit-list>li{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;border-top:1px solid var(--border);padding-top:var(--space-2)}.visit-list>li.is-next{border-left:3px solid var(--border-strong);padding-left:var(--space-2)}.visit-time{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;min-width:96px}@media (max-width:640px){.visit-time{min-width:0}}.portal-lines{width:100%;border-collapse:collapse;margin-top:12px}.portal-lines td,.portal-lines th{padding:6px 8px;border-bottom:1px solid rgba(0,0,0,.08);text-align:left;font-size:.95rem}.portal-lines .num,.portal-lines th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.portal-lines tfoot td{border-bottom:none}.portal-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-top:14px}.portal-photos figure{margin:0}.portal-photos img{width:100%;border-radius:2px;display:block}.portal-photos figcaption{font-size:.85rem;opacity:.75;margin-top:4px}#insurance-workflow-heading,#split-billing-heading{margin:var(--space-4) 0 var(--space-3)}.workflow-steps{list-style:none;margin:0 0 var(--space-4);padding:0;border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden}.workflow-step{display:grid;grid-template-columns:2.2rem 1fr auto;gap:var(--space-2);align-items:baseline;padding:6px var(--space-3);border-bottom:1px solid var(--border);font-size:.9rem}.workflow-step:last-child{border-bottom:none}.workflow-step-no{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.workflow-step-no,.workflow-step-pending .workflow-step-label{color:var(--muted)}.workflow-step-current{background:color-mix(in srgb,var(--accent) 8%,transparent)}.workflow-step-current .workflow-step-label{font-weight:600}.workflow-step-meta{color:var(--muted);font-size:.8rem;text-align:right}.workflow-step-recorded .workflow-step-meta{color:var(--status-positive-tx)}.workflow-step-reverted_away .workflow-step-label,.workflow-step-skipped .workflow-step-label{color:var(--muted);text-decoration:line-through;text-decoration-thickness:1px}.workflow-step-note{grid-column:2/-1;color:var(--muted);font-size:.8rem}@media (max-width:640px){.workflow-step{grid-template-columns:2rem 1fr}.workflow-step-meta{grid-column:2;text-align:left}}.checkbox-grid{border:1px solid var(--border);border-radius:var(--r-card);padding:var(--space-2) var(--space-3);display:grid;gap:var(--space-1)}.checkbox-grid legend{font-weight:600;padding:0 var(--space-1)}.template-preview-frame{width:100%;min-height:260px;border:1px solid var(--border);border-radius:var(--r-card);background:#fff}.portal-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-2)}.portal-photo-grid img{width:100%;height:140px;object-fit:cover;border-radius:var(--r-card);border:1px solid var(--border)}.notification-bell{position:relative;display:inline-flex;align-items:center;padding:0 var(--space-2);text-decoration:none}.notification-badge{position:absolute;top:-4px;right:-2px;background:var(--colour-negative,#b3261e);color:#fff;border-radius:2px;font-size:10px;line-height:1;padding:2px 4px}.owner-cards{margin-top:var(--space-4);margin-bottom:var(--space-6)}.owner-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-3)}.owner-card{display:flex;flex-direction:column;gap:4px;padding:var(--space-3);border:1px solid var(--line-1,#d8d4cc);border-radius:2px;text-decoration:none;color:inherit;background:var(--surface-1,#fff)}.owner-card:hover{border-color:var(--ink-2,#807b72)}.owner-card-label{font-size:12px;color:var(--ink-2,#807b72)}.owner-card-value{font:var(--text-title,600 20px/26px sans-serif)}.owner-card-detail{font-size:12px;color:var(--ink-2,#807b72)}.privacy-section{margin-top:28px;padding-top:18px;border-top:1px solid var(--line-1,#d8d4cc);max-width:860px}.privacy-section h2{margin:0 0 6px}.privacy-subject .field-row{display:flex;gap:16px;flex-wrap:wrap}.privacy-subject label{display:flex;flex-direction:column;gap:4px;font-size:13px;min-width:240px}.privacy-subject select{padding:6px 8px;border:1px solid var(--line-1,#d8d4cc);border-radius:2px;background:var(--surface-1,#fff);font:inherit}.privacy-subject-actions{display:flex;gap:12px;align-items:center;margin-top:12px;flex-wrap:wrap}.privacy-danger{color:var(--negative,#a03a2e)}button.privacy-danger.button-primary{background:var(--negative,#a03a2e);border-color:var(--negative,#a03a2e);color:#fff}.privacy-erase-form{margin-top:12px;padding:14px;border:1px solid var(--negative,#a03a2e);border-radius:2px;background:var(--surface-1,#fff);max-width:480px}.privacy-report summary{cursor:pointer;font-size:13px}.privacy-report ul{margin:6px 0 0;padding-left:18px;font-size:12.5px}.privacy-rule-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:14px}.privacy-rule-form label{display:flex;flex-direction:column;gap:4px;font-size:13px}.privacy-scan-row{margin:12px 0}@media (max-width:640px){.privacy-rule-form label,.privacy-subject label{min-width:100%}}.integration-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;margin-top:18px;max-width:1100px}.integration-card{border:1px solid var(--line-1,#d8d4cc);border-radius:10px;padding:16px;background:var(--surface-1,#fff);display:flex;flex-direction:column;gap:10px}.integration-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.integration-card-head h3{margin:0}.integration-status{font-size:12px;padding:2px 10px;border-radius:999px;border:1px solid var(--line-1,#d8d4cc);white-space:nowrap}.integration-status-connected,.integration-status-synced{background:#e7f3ea;border-color:#9fc7a9}.integration-status-error,.integration-status-revoked{background:#fbeaea;border-color:#dba5a5}.integration-status-conflict{background:#fdf3e2;border-color:#dcbd8a}.integration-status-in_progress,.integration-status-pending{background:#eef1f6}.integration-meta{margin:0;display:grid;grid-template-columns:auto 1fr;gap:2px 12px;font-size:13px}.integration-meta dt{color:var(--ink-2,#6b675f)}.integration-meta dd{margin:0}.integration-connect,.integration-demo-sync{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.integration-connect label,.integration-demo-sync label{display:flex;flex-direction:column;gap:4px;font-size:13px;flex:1 1 180px}.integration-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}.integration-disconnect-code{display:flex;flex-direction:column;gap:4px;font-size:13px}.integration-disconnect-code input{width:110px}.integration-section{margin-top:28px;padding-top:18px;border-top:1px solid var(--line-1,#d8d4cc);max-width:1100px}.portal-pay-now{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);margin-top:var(--space-3)}.integration-row-focused>td{background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}.integration-row-actions{display:flex;gap:6px;flex-wrap:wrap}.integration-detail-row td{background:var(--surface-2,#faf9f6)}.integration-conflict-columns{display:flex;gap:24px;flex-wrap:wrap}.integration-conflict-columns>div{flex:1 1 240px}.integration-conflict-values{margin:0;font-size:13px}.integration-conflict-values>div{display:flex;gap:8px}.integration-conflict-values dt{min-width:110px;color:var(--ink-2,#6b675f)}.integration-conflict-values dd{margin:0;overflow-wrap:anywhere}.integration-error-history ol{margin:6px 0 0;padding-left:18px;font-size:13px}.integration-error-history li{margin-bottom:4px}.integration-error-history code{margin:0 6px}.entity-sync{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.xero-mapping-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px 16px;margin:8px 0 16px}.xero-mapping-grid label{display:flex;flex-direction:column;gap:4px;font-size:13px}.xero-auto-export{flex-direction:row!important;align-items:center;gap:8px}@media (max-width:640px){.integration-cards,.xero-mapping-grid{grid-template-columns:1fr}}.scheduler-map{display:grid;gap:var(--space-4);grid-template-columns:minmax(0,3fr) minmax(260px,2fr);align-items:start}@media (max-width:900px){.scheduler-map{grid-template-columns:1fr}}.scheduler-map-plot{border:1px solid var(--border);border-radius:2px;overflow:hidden;background:var(--surface-2)}.scheduler-map-frame{fill:none;stroke:var(--border);stroke-width:1}.scheduler-map-route{fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:6 4;opacity:.85}.scheduler-map-pin{cursor:pointer}.scheduler-map-pin:focus-visible circle{stroke:var(--focus,#0b5cd5);stroke-width:3}.scheduler-map-pin circle{fill:var(--accent);stroke:var(--surface-1,#fff);stroke-width:2}.scheduler-map-pin text{fill:var(--on-accent,#fff);font:var(--text-small);font-weight:600}.map-stop-list{display:grid;gap:var(--space-3);margin:0;padding-left:var(--space-4)}.map-stop-list li{display:grid;gap:2px}.map-leg{font:var(--text-small);color:var(--muted);border-left:2px solid var(--border);padding-left:var(--space-2)}.map-leg-long{color:var(--warning,#b45309);font-weight:600;border-left-color:var(--warning,#b45309)}.create-menu{position:relative;display:inline-flex}.create-menu-trigger{font:var(--text-body);color:var(--accent-bar-ink);background:transparent;border:1px solid color-mix(in srgb,var(--accent-bar-ink) 45%,transparent);border-radius:2px;padding:4px var(--space-3);cursor:pointer;white-space:nowrap}.create-menu-trigger:hover{background:color-mix(in srgb,var(--accent-bar-ink) 12%,transparent)}.create-menu-trigger:focus-visible{outline:2px solid var(--accent-bar-ink);outline-offset:2px}.create-menu-panel{position:absolute;top:calc(100% + 6px);left:0;z-index:40;min-width:220px;max-height:min(70vh,520px);overflow-y:auto;padding:var(--space-2) 0;background:var(--surface-1,#fff);color:var(--ink);border:1px solid var(--border);border-radius:2px;box-shadow:0 6px 24px rgb(0 0 0/12%)}.create-menu-group+.create-menu-group{border-top:1px solid var(--border);margin-top:var(--space-2);padding-top:var(--space-2)}.create-menu-group-label{font:var(--text-small);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:4px var(--space-3)}.create-menu-item{display:block;padding:8px var(--space-3);color:var(--ink);text-decoration:none}.create-menu-item:focus-visible,.create-menu-item:hover{background:var(--surface-2);outline:none}@media (max-width:720px){.create-menu{display:none}}