:root{--paper:#fff;--paper-raised:#f7f7f7;--paper-line:#d4d4d4;--paper-line-strong:#a3a3a3;--ink:#111;--ink-soft:#404040;--ink-faint:#737373;--shadow:0 1px 0 #0000000a, 0 8px 20px -6px #0000001f;--shadow-lift:0 2px 0 #0000000f, 0 16px 32px -10px #0000002e;--src-web:#1e4a6e;--src-web-bg:#dbeafe;--src-call:#2d5016;--src-call-bg:#dcfce7;--src-missed:#9a3412;--src-missed-bg:#ffedd5;--src-gbp:#713f12;--src-gbp-bg:#fef3c7;--crew-1:#1e4a6e;--crew-2:#9a3412;--crew-3:#365314;--crew-4:#581c87;--brand:#4b6b3a;--brand-2:#c99a3e;--brand-ink:#fff;--topbar-h:62px;--tabbar-h:62px;--app-max:520px}html[data-surface=marketing],html[data-surface=marketing] body{background:#fdfdfc}*{box-sizing:border-box}html,body{height:100%}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;background-image:radial-gradient(circle at 1px 1px,#241e140e 1px,#0000 0);background-size:14px 14px;margin:0;font-family:Public Sans,sans-serif}::selection{background:var(--brand);color:var(--brand-ink)}h1,h2,h3,.slab{letter-spacing:-.01em;font-family:Zilla Slab,serif;font-weight:700}.mono{font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,monospace}.app{height:100dvh;max-width:var(--app-max);background:var(--paper);flex-direction:column;margin:0 auto;display:flex;position:relative;overflow:hidden}@media (width>=560px){.app{border-left:1.5px solid var(--paper-line);border-right:1.5px solid var(--paper-line)}}.app-topbar{background:var(--brand);color:var(--brand-ink);padding:max(14px, env(safe-area-inset-top)) 20px 14px;flex-direction:column;flex-shrink:0;gap:2px;transition:background .2s;display:flex}.app-topbar .org{font-family:Zilla Slab,serif;font-size:17px;font-weight:700;line-height:1.15}.app-topbar .screen-label{letter-spacing:.12em;text-transform:uppercase;opacity:1;color:var(--brand-ink);font-family:IBM Plex Mono,monospace;font-size:10.5px;font-weight:600}.app[data-admin="1"] .app-topbar{background:var(--ink);border-bottom:3px solid var(--brand-2)}.app[data-admin="1"] .app-topbar .org:before{content:"";background:var(--brand-2);border-radius:2px;width:8px;height:8px;margin-right:8px;display:inline-block;position:relative;top:-2px;transform:rotate(45deg)}.app-body{-webkit-overflow-scrolling:touch;padding:16px 14px calc(var(--tabbar-h) + 28px);flex:1;position:relative;overflow-y:auto}.app-body::-webkit-scrollbar{display:none}.tabbar{background:var(--paper-raised);border-top:1.5px solid var(--paper-line);padding:10px 6px max(16px, env(safe-area-inset-bottom));z-index:6;justify-content:space-around;display:flex;position:absolute;bottom:0;left:0;right:0}.app[data-admin="1"] .tabbar{display:none}.tabbar .tab{color:var(--ink-soft);letter-spacing:.02em;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:4px;font-family:Public Sans,sans-serif;font-size:9.5px;font-weight:600;display:flex}.tabbar .tab.on{color:var(--brand)}.tabbar svg{width:18px;height:18px}.auth-loading{min-height:100dvh;color:var(--ink-soft);place-items:center;display:grid}.login-page{min-height:100svh;padding:max(12px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));flex-direction:column;display:flex}.login-top{flex-shrink:0;align-items:center;width:100%;max-width:420px;min-height:48px;margin:0 auto;display:flex}.login-home{min-height:44px;color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:10px;font-family:IBM Plex Mono,monospace;font-size:10.5px;text-decoration:none;display:inline-flex}.login-home img{width:auto;height:32px;display:block}.login-home:hover,.login-home:focus-visible{color:var(--ink);outline:none}.login-card{background:var(--paper-raised);border:1.5px solid var(--paper-line);width:100%;max-width:420px;box-shadow:var(--shadow);border-radius:12px;margin:auto;padding:24px 20px}.login-card h1{margin:0 0 6px;font-size:clamp(22px,6vw,26px)}.login-sub{color:var(--ink-soft);margin:0 0 18px;font-size:14px}.login-card .field-group input[type=email],.login-card .field-group input[type=password]{box-sizing:border-box;border:1.5px solid var(--paper-line-strong);background:var(--paper-raised);width:100%;max-width:100%;color:var(--ink);border-radius:9px;outline:none;padding:12px 11px;font-family:Public Sans,sans-serif;font-size:16px}.login-error{color:var(--src-missed);margin-bottom:12px;font-size:13px}.login-submit{background:var(--brand);width:100%;min-height:44px;color:var(--brand-ink);cursor:pointer;border:none;border-radius:8px;margin-top:8px;padding:12px 16px;font-size:15px;font-weight:700}@media (width<=479px){.login-page{padding-left:16px;padding-right:16px}.login-card{box-shadow:none;background:0 0;border:none;border-radius:0;margin:8px auto auto;padding:8px 0 24px}}.settings-section{border-bottom:1.5px dashed var(--paper-line);margin-bottom:28px;padding-bottom:22px}.settings-section h3{margin:0 0 8px;font-size:18px}.settings-hint{color:var(--ink-soft);margin:0 0 14px;font-size:13px;line-height:1.45}.settings-save{background:var(--brand);color:var(--brand-ink);cursor:pointer;border:none;border-radius:8px;padding:10px 16px;font-weight:700}.credentials-once{background:var(--paper);border:1.5px solid var(--paper-line-strong);border-radius:8px;margin-bottom:14px;padding:12px}.credentials-title{margin-bottom:8px;font-weight:700}.roster-list{flex-direction:column;gap:10px;margin-top:18px;display:flex}.roster-row{grid-template-columns:1fr auto;align-items:center;gap:6px 10px;display:grid}.roster-name{border:1.5px solid var(--paper-line);background:var(--paper-raised);border-radius:6px;padding:8px 10px}.roster-email{color:var(--ink-soft);grid-column:1/-1;font-size:12px}.roster-toggle{border:1.5px solid var(--paper-line-strong);background:var(--paper-raised);cursor:pointer;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:700}.roster-toggle.off{opacity:.55}.calendar-connect-shell{border:1.5px solid var(--paper-line);border-radius:8px;overflow:hidden}.connect-row{border-bottom:1px solid var(--paper-line);justify-content:space-between;padding:12px 14px;font-size:14px;display:flex}.connect-row:last-child{border-bottom:none}.connect-status{text-transform:uppercase;letter-spacing:.08em;font-family:IBM Plex Mono,monospace;font-size:11px}.connect-status.off{color:var(--ink-faint)}.sign-out-btn{justify-content:center;width:100%}.assignee-filter{margin-top:-4px}.assignee-swatch{border-radius:50%;width:10px;height:10px;margin-right:8px;display:inline-block}.employee-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.ghost-btn.compact{padding:6px 12px;font-size:12px}.job-card{background:var(--paper-raised);border:1.5px solid var(--paper-line);box-shadow:var(--shadow);border-radius:10px;margin-bottom:10px;padding:14px}.job-card-top{align-items:flex-start;gap:10px;display:flex}.assignee-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-top:6px}.job-title{font-weight:700}.job-when{color:var(--ink-soft);margin-top:2px;font-size:12px}.job-contact{margin-top:10px;font-weight:600}.job-location{color:var(--ink-soft);margin-top:4px;font-size:12px}.job-actions{gap:8px;margin-top:10px;display:flex}.action-btn.mini{padding:6px 12px;font-size:12px;text-decoration:none}.lead-card{background:var(--paper-raised);border:1.5px solid var(--paper-line);box-shadow:var(--shadow);cursor:pointer;border-radius:10px;margin-bottom:10px;padding:13px 14px;animation:.34s cubic-bezier(.2,.8,.2,1) backwards stampIn;position:relative}.lead-card:before{content:"";background-image:repeating-linear-gradient(to bottom, var(--paper-line-strong) 0 4px, transparent 4px 9px);width:2px;position:absolute;top:8px;bottom:8px;left:0}.lead-card .row1{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.lead-card .name{font-family:Zilla Slab,serif;font-size:15px;font-weight:600}.lead-card .time{color:var(--ink-faint);white-space:nowrap;margin-top:2px;font-family:IBM Plex Mono,monospace;font-size:10px}.lead-card .msg{color:var(--ink-soft);margin:6px 0 10px;font-size:12.5px;line-height:1.4}.lead-card .row2{justify-content:space-between;align-items:center;display:flex}.pill-row{align-items:center;gap:6px;display:flex}.pill{letter-spacing:.04em;text-transform:uppercase;border-radius:5px;padding:3px 8px;font-family:IBM Plex Mono,monospace;font-size:9px;font-weight:600}.pill.web{background:var(--src-web-bg);color:var(--src-web)}.pill.call{background:var(--src-call-bg);color:var(--src-call)}.pill.missed{background:var(--src-missed-bg);color:var(--src-missed)}.pill.gbp{background:var(--src-gbp-bg);color:var(--src-gbp);opacity:.55}.stamp{letter-spacing:.06em;border:1.5px solid;border-radius:3px;padding:3px 9px;font-family:IBM Plex Mono,monospace;font-size:9.5px;font-weight:700;display:inline-block;transform:rotate(-3deg)}.stamp.lead{color:var(--ink-faint)}.stamp.customer{color:var(--brand);border-color:var(--brand)}.stamp.neutral-cust{color:var(--brand-2);border-color:var(--brand-2)}.stamp.archived{color:var(--ink-faint);transform:rotate(2deg)}.quick-actions{align-items:center;gap:6px;display:flex;position:relative}.icon-btn{border:1.5px solid var(--paper-line);background:var(--paper);width:28px;height:28px;color:var(--ink-soft);cursor:pointer;border-radius:7px;place-items:center;padding:0;display:grid}.icon-btn svg{width:13px;height:13px}.icon-btn:hover{border-color:var(--brand);color:var(--brand)}.menu{background:var(--paper-raised);border:1.5px solid var(--paper-line-strong);min-width:172px;box-shadow:var(--shadow-lift);z-index:40;border-radius:10px;animation:.12s menuIn;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden}.menu.up{top:auto;bottom:calc(100% + 6px)}@keyframes menuIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.menu button{width:100%;color:var(--ink);cursor:pointer;text-align:left;border:none;border-bottom:1px dashed var(--paper-line);background:0 0;align-items:center;gap:9px;padding:9px 12px;font-family:Public Sans,sans-serif;font-size:12.5px;font-weight:600;display:flex}.menu button:last-child{border-bottom:none}.menu button:hover{background:var(--paper)}.menu button svg{width:13px;height:13px;color:var(--ink-soft);flex-shrink:0}.menu button.danger,.menu button.danger svg{color:var(--src-missed)}.search-bar{background:var(--paper-raised);border:1.5px solid var(--paper-line);color:var(--ink-faint);border-radius:10px;align-items:center;gap:8px;margin-bottom:14px;padding:9px 12px;font-size:12.5px;display:flex}.search-bar svg{flex-shrink:0;width:14px;height:14px}.search-bar input{color:var(--ink);background:0 0;border:none;outline:none;width:100%;font-family:Public Sans,sans-serif;font-size:12.5px}.search-bar input::placeholder{color:var(--ink-faint)}.filter-row{gap:6px;margin-bottom:14px;display:flex;overflow-x:auto}.filter-row::-webkit-scrollbar{display:none}.filter-chip{border:1.5px solid var(--paper-line);background:var(--paper-raised);color:var(--ink-soft);white-space:nowrap;cursor:pointer;border-radius:999px;padding:6px 11px;font-family:Public Sans,sans-serif;font-size:11px;font-weight:600}.filter-chip.on{background:var(--ink);border-color:var(--ink);color:var(--paper-raised)}.empty-state{text-align:center;color:var(--ink-soft);padding:48px 22px}.empty-state svg{opacity:.6;width:34px;height:34px;margin-bottom:12px}.empty-state .h{color:var(--ink-soft);margin-bottom:4px;font-family:Zilla Slab,serif;font-size:15px;font-weight:600}.empty-state .p{max-width:30ch;margin:0 auto;font-size:12px;line-height:1.5}@keyframes stampIn{0%{opacity:0;transform:translateY(8px)rotate(-1deg)scale(.98)}to{opacity:1;transform:translateY(0)rotate(0)scale(1)}}.lead-card:first-child{animation-delay:20ms}.lead-card:nth-child(2){animation-delay:70ms}.lead-card:nth-child(3){animation-delay:.12s}.lead-card:nth-child(4){animation-delay:.17s}.lead-card:nth-child(5){animation-delay:.22s}.lead-card:nth-child(6){animation-delay:.27s}.back-link{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);cursor:pointer;background:0 0;border:none;align-items:center;gap:5px;margin-bottom:12px;padding:0;font-family:IBM Plex Mono,monospace;font-size:10.5px;display:inline-flex}.back-link svg{width:12px;height:12px}.cd-header{margin-bottom:16px}.cd-header .name{margin:2px 0 3px;font-size:22px}.cd-header .meta{color:var(--ink-soft);font-family:IBM Plex Mono,monospace;font-size:11.5px}.cd-header .badges{align-items:center;gap:8px;margin-top:8px;display:flex}.action-row{gap:8px;margin-bottom:18px;display:flex}.action-btn{cursor:pointer;border:none;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:6px;padding:12px 6px;font-family:Public Sans,sans-serif;font-size:11.5px;font-weight:700;text-decoration:none;display:flex}.action-btn svg{width:18px;height:18px}.action-btn.call{background:var(--brand);color:var(--brand-ink)}.action-btn.text{background:var(--paper-raised);color:var(--ink);border:1.5px solid var(--paper-line-strong)}.action-btn.schedule{background:var(--ink);color:var(--paper-raised)}.section-label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);align-items:center;gap:8px;margin:20px 0 10px;font-family:IBM Plex Mono,monospace;font-size:10.5px;display:flex}.section-label:after{content:"";background:repeating-linear-gradient(to right, var(--paper-line-strong) 0 4px, transparent 4px 8px);flex:1;height:1.5px}.fields{flex-direction:column;gap:2px;display:flex}.field-row{border-top:1px dashed var(--paper-line);justify-content:space-between;align-items:center;gap:10px;padding:10px 0;display:flex}.field-row:first-child{border-top:none}.field-row .fl{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);flex-shrink:0;font-family:IBM Plex Mono,monospace;font-size:10.5px}.field-row .fv{color:var(--ink);text-align:right;cursor:text;background:0 0;border:1.5px solid #0000;border-radius:5px;max-width:62%;margin:-3px -6px;padding:3px 6px;font-family:Public Sans,sans-serif;font-size:13px;font-weight:500}.field-row .fv:hover{background:var(--paper);border-color:var(--paper-line)}.field-row .fv.empty{color:var(--ink-faint);font-style:italic}.field-row input.fv-input,.field-row textarea.fv-input{color:var(--ink);text-align:right;border:1.5px solid var(--brand);background:var(--paper-raised);border-radius:5px;outline:none;width:62%;max-width:62%;padding:3px 6px;font-family:Public Sans,sans-serif;font-size:13px}.field-row .edit-pencil{width:12px;height:12px;color:var(--ink-faint);opacity:0;flex-shrink:0}.field-row .fv-wrap:hover .edit-pencil{opacity:.7}.field-row .fv-wrap{flex:1;justify-content:flex-end;align-items:center;gap:6px;display:flex}.log-entry{border-top:1px dashed var(--paper-line);gap:10px;padding:9px 0;display:flex}.log-entry:first-child{border-top:none}.log-icon{background:var(--paper-raised);border:1.5px solid var(--paper-line);width:26px;height:26px;color:var(--ink-soft);border-radius:7px;flex-shrink:0;place-items:center;display:grid}.log-body .txt{font-size:12.5px;line-height:1.4}.log-body .ts{color:var(--ink-faint);margin-top:2px;font-family:IBM Plex Mono,monospace;font-size:9.5px}.service-row{border-top:1px dashed var(--paper-line);justify-content:space-between;align-items:center;padding:9px 0;font-size:12.5px;display:flex}.service-row:first-child{border-top:none}.service-row .d{color:var(--ink-soft);font-family:IBM Plex Mono,monospace;font-size:11px}.service-row .desc{font-weight:600}.service-row .crew-dot{border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.feedback-row{border:1.5px solid var(--paper-line);background:var(--paper-raised);border-left-width:3px;border-radius:10px;margin-bottom:8px;padding:11px 12px}.feedback-row.open{border-left-color:var(--src-missed);background:var(--src-missed-bg)}.feedback-head{align-items:center;gap:8px;margin-bottom:6px;display:flex}.feedback-head .ts{color:var(--ink-faint);font-size:9.5px}.feedback-rating{letter-spacing:.06em;background:var(--paper);border:1.5px solid var(--paper-line);color:var(--ink-soft);border-radius:5px;padding:2px 6px;font-size:10px}.feedback-body{margin-bottom:9px;font-size:12.5px;line-height:1.45}.feedback-done{color:var(--ink-faint);font-size:9.5px}.add-note-box{gap:6px;margin-top:10px;display:flex}.add-note-box input{border:1.5px solid var(--paper-line);background:var(--paper-raised);color:var(--ink);border-radius:8px;outline:none;flex:1;padding:8px 10px;font-family:Public Sans,sans-serif;font-size:12px}.add-note-box input:focus{border-color:var(--brand)}.add-note-box button{background:var(--ink);color:var(--paper-raised);cursor:pointer;border:none;border-radius:8px;padding:0 14px;font-family:Public Sans,sans-serif;font-size:12px;font-weight:700}.ghost-btn{cursor:pointer;background:var(--paper-raised);width:100%;color:var(--ink);border:1.5px solid var(--paper-line-strong);border-radius:10px;justify-content:center;align-items:center;gap:7px;margin-bottom:6px;padding:11px;font-family:Public Sans,sans-serif;font-size:12.5px;font-weight:700;display:flex}.ghost-btn svg{width:14px;height:14px}.muted-note{color:var(--ink-faint);padding:6px 0;font-size:12px}.cal-viewswitch{background:var(--paper);border:1.5px solid var(--paper-line);border-radius:999px;gap:4px;margin-bottom:12px;padding:3px;display:flex}.cal-viewswitch button{cursor:pointer;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);background:0 0;border:none;border-radius:999px;flex:1;padding:6px 0;font-family:IBM Plex Mono,monospace;font-size:10.5px;font-weight:600}.cal-viewswitch button.on{background:var(--brand);color:var(--brand-ink)}.cal-nav{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.cal-nav .title{font-family:Zilla Slab,serif;font-size:15px;font-weight:700}.cal-nav button{background:var(--paper-raised);border:1.5px solid var(--paper-line);cursor:pointer;width:26px;height:26px;color:var(--ink-soft);border-radius:7px;place-items:center;padding:0;display:grid}.cal-nav button svg{width:13px;height:13px}.cal-nav .navgroup{gap:6px;display:flex}.cal-nav .hint{color:var(--ink-faint);font-family:IBM Plex Mono,monospace;font-size:10px}.cal-nav .hint.today{color:var(--src-missed)}.crew-legend{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.crew-chip{border:1.5px solid var(--paper-line);background:var(--paper-raised);cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--ink);border-radius:999px;align-items:center;gap:6px;padding:5px 9px;font-family:Public Sans,sans-serif;font-size:10.5px;font-weight:600;display:flex}.crew-chip.off{opacity:.4}.crew-chip .dot{border-radius:50%;width:8px;height:8px}.month-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.month-dow{text-align:center;color:var(--ink-faint);text-transform:uppercase;padding-bottom:4px;font-family:IBM Plex Mono,monospace;font-size:8.5px}.month-cell{border:1.5px solid var(--paper-line);background:var(--paper-raised);cursor:pointer;border-radius:6px;flex-direction:column;gap:2px;min-height:44px;padding:3px;display:flex}.month-cell.blank{cursor:default;background:0 0;border-color:#0000}.month-cell.today{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}.month-cell .dnum{color:var(--ink-soft);text-align:right;font-family:IBM Plex Mono,monospace;font-size:9.5px;line-height:1}.month-cell.today .dnum{color:var(--brand);font-weight:700}.month-dots{flex-wrap:wrap;gap:2px;display:flex}.month-dot{border-radius:50%;width:6px;height:6px}.month-more{color:var(--ink-faint);font-family:IBM Plex Mono,monospace;font-size:7px}.cal-footnote{color:var(--ink-faint);text-align:center;margin-top:10px;font-family:IBM Plex Mono,monospace;font-size:10.5px}.cal-lede{color:var(--ink-soft);margin-bottom:8px;font-size:10.5px}.timeline-scroll{overflow:auto hidden}.timeline-scroll::-webkit-scrollbar{display:none}.timeline{display:flex;position:relative}.hour-gutter{flex-shrink:0;width:34px}.hour-gutter .spacer{height:24px}.hour-gutter .hr{height:42px;color:var(--ink-faint);text-align:right;padding-right:4px;font-family:IBM Plex Mono,monospace;font-size:8px;transform:translateY(-4px)}.tl-col{border-left:1.5px dashed var(--paper-line);flex:1;min-width:84px;position:relative}.tl-col .colhead{text-align:center;color:var(--ink-soft);background:var(--paper);padding:3px 0 5px;font-family:IBM Plex Mono,monospace;font-size:9px;position:sticky;top:0}.tl-col .colhead.today-h{color:var(--brand);font-weight:700}.tl-col .colhead .dow{color:var(--ink-faint);font-size:8px;display:block}.tl-body{position:relative}.tl-hourline{border-top:1px solid var(--paper-line);height:42px}.tl-event{color:#fff;cursor:pointer;text-align:left;border:none;border-radius:5px;padding:3px 5px;font-family:Public Sans,sans-serif;font-size:8.6px;font-weight:600;line-height:1.2;position:absolute;left:3px;right:3px;overflow:hidden;box-shadow:0 1px 3px #0003}.tl-event .r{opacity:.9;align-items:center;gap:2px;margin-top:1px;font-size:7.5px;display:flex}.tl-event.done{opacity:.5;text-decoration:line-through}.tl-nowline{background:var(--src-missed);z-index:3;height:1.5px;position:absolute;left:0;right:0}.tl-nowline:before{content:"";background:var(--src-missed);border-radius:50%;width:6px;height:6px;position:absolute;top:-2.5px;left:-3px}.event-actions{background:var(--paper-raised);border:1.5px solid var(--ink);box-shadow:var(--shadow);border-radius:10px;align-items:center;gap:8px;margin-top:12px;padding:8px 10px;display:flex}.event-actions-title{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:600;overflow:hidden}.event-actions-close{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:18px;line-height:1}.fab{right:16px;bottom:calc(var(--tabbar-h) + 22px);background:var(--brand);width:46px;height:46px;color:var(--brand-ink);box-shadow:var(--shadow-lift);cursor:pointer;z-index:6;border:none;border-radius:50%;place-items:center;display:grid;position:absolute}.fab svg{width:20px;height:20px}.sheet-overlay{z-index:50;background:#241e146b;align-items:flex-end;animation:.16s fadeIn;display:flex;position:absolute;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.sheet{background:var(--paper);width:100%;max-height:90%;padding:8px 16px max(20px, env(safe-area-inset-bottom));border-radius:22px 22px 0 0;animation:.24s cubic-bezier(.2,.8,.2,1) sheetUp;overflow-y:auto;box-shadow:0 -10px 30px #0000004d}.sheet::-webkit-scrollbar{display:none}@keyframes sheetUp{0%{transform:translateY(30px)}to{transform:translateY(0)}}.sheet .grip{background:var(--paper-line-strong);border-radius:2px;width:40px;height:4px;margin:6px auto 12px}.sheet h3{margin:0 0 4px;font-size:17px}.sheet .sub{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.08em;margin-bottom:14px;font-family:IBM Plex Mono,monospace;font-size:10px}.field-group{margin-bottom:12px}.field-group>label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:5px;font-family:IBM Plex Mono,monospace;font-size:9.5px;display:block}.field-group input[type=text],.field-group input[type=date],.field-group input[type=time],.field-group input[type=number],.field-group select,.field-group textarea{border:1.5px solid var(--paper-line-strong);background:var(--paper-raised);width:100%;color:var(--ink);border-radius:9px;outline:none;padding:9px 11px;font-family:Public Sans,sans-serif;font-size:13px}.field-group input:focus,.field-group select:focus,.field-group textarea:focus{border-color:var(--brand)}.field-group .static-unit{color:var(--ink-soft);padding:9px 0;font-size:12px}.two-col{gap:8px;display:flex}.two-col .field-group{flex:1}.crew-pick{flex-wrap:wrap;gap:6px;display:flex}.crew-pick button{cursor:pointer;border:1.5px solid var(--paper-line-strong);background:var(--paper-raised);color:var(--ink-soft);border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font-family:Public Sans,sans-serif;font-size:12px;font-weight:600;display:flex}.crew-pick button .dot{border-radius:50%;width:9px;height:9px}.crew-pick button.on{border-color:var(--ink);color:var(--ink);background:var(--paper);box-shadow:0 0 0 2px color-mix(in srgb, var(--ink) 12%, transparent)}.recur-seg{flex-wrap:wrap;gap:5px;display:flex}.recur-seg button{border:1.5px solid var(--paper-line-strong);background:var(--paper-raised);color:var(--ink-soft);cursor:pointer;border-radius:8px;padding:7px 10px;font-family:Public Sans,sans-serif;font-size:11px;font-weight:600}.recur-seg button.on{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.wday-row{gap:4px;margin-top:8px;display:flex}.wday{text-align:center;border:1.5px solid var(--paper-line-strong);background:var(--paper-raised);color:var(--ink-soft);cursor:pointer;border-radius:7px;flex:1;padding:7px 0;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:700}.wday.on{background:var(--ink);border-color:var(--ink);color:var(--paper-raised)}.recur-detail{border:1.5px dashed var(--paper-line-strong);background:var(--paper-raised);border-radius:10px;margin-top:10px;padding:12px}.recur-detail .sublabel{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:2px;font-family:IBM Plex Mono,monospace;font-size:9.5px;display:block}.chosen-contact{border:1.5px solid var(--paper-line-strong);background:var(--paper-raised);border-radius:9px;justify-content:space-between;align-items:center;gap:8px;padding:9px 11px;display:flex}.chosen-contact .cn{font-size:13px;font-weight:600}.chosen-contact button{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;font-size:16px;line-height:1}.contact-search-results{border:1.5px solid var(--paper-line);border-radius:9px;max-height:130px;margin-top:4px;overflow-y:auto}.contact-search-results button{text-align:left;border:none;border-bottom:1px dashed var(--paper-line);cursor:pointer;width:100%;color:var(--ink);background:0 0;padding:8px 11px;font-family:Public Sans,sans-serif;font-size:12.5px;display:block}.contact-search-results button:last-child{border-bottom:none}.contact-search-results button:hover{background:var(--paper)}.contact-search-results button .cp{color:var(--ink-faint);font-family:IBM Plex Mono,monospace;font-size:10px}.sheet-actions{background:var(--paper);gap:8px;margin-top:18px;padding-top:8px;display:flex;position:sticky;bottom:0}.sheet-actions button{cursor:pointer;border:none;border-radius:10px;flex:1;padding:12px;font-family:Public Sans,sans-serif;font-size:13px;font-weight:700}.sheet-actions .cancel{background:var(--paper-raised);color:var(--ink-soft);border:1.5px solid var(--paper-line-strong)}.sheet-actions .save{background:var(--brand);color:var(--brand-ink)}.sheet-actions .del{background:var(--src-missed-bg);color:var(--src-missed);flex:none;padding:12px 14px}.sheet-actions .del svg{width:14px;height:14px}.stat-grid{gap:8px;margin-bottom:16px;display:flex}.stat-card{background:var(--paper-raised);border:1.5px solid var(--paper-line);text-align:center;border-radius:10px;flex:1;padding:12px 8px}.stat-card .n{font-family:IBM Plex Mono,monospace;font-size:20px;font-weight:600;display:block}.stat-card .l{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.04em;margin-top:3px;font-size:9px}.stat-card .stat-sub{color:var(--ink-faint);text-transform:none;letter-spacing:0;margin-top:4px;font-size:9px;line-height:1.3}.range-row{gap:6px;margin-bottom:14px;display:flex}.chart-card{background:var(--paper-raised);border:1.5px solid var(--paper-line);border-radius:10px;margin-bottom:14px;padding:14px}.chart-card .lbl{color:var(--ink-soft);margin-bottom:8px;font-size:11px;font-weight:600}.chart-card svg{width:100%;height:60px}.src-row{border-top:1px dashed var(--paper-line);justify-content:space-between;align-items:center;padding:10px 0;font-size:12.5px;display:flex}.src-row:first-child{border-top:none}.src-row .name{font-weight:600}.src-row .val{font-family:IBM Plex Mono,monospace;font-weight:600}.src-row .val.muted{color:var(--ink-faint);font-weight:500}.src-row .up{color:var(--src-call);margin-left:6px;font-size:10px}.perf-note{color:var(--ink-faint);margin-top:14px;font-family:IBM Plex Mono,monospace;font-size:10.5px;line-height:1.5}.admin-banner{letter-spacing:.06em;color:var(--ink-soft);background:var(--paper-raised);border:1.5px dashed var(--ink);border-radius:8px;margin-bottom:14px;padding:8px 10px;font-family:IBM Plex Mono,monospace;font-size:9.5px;line-height:1.4}.admin-banner.solid{border-style:solid}.admin-newbtn{background:var(--ink);width:100%;color:var(--paper-raised);cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:7px;margin-bottom:14px;padding:11px;font-family:Public Sans,sans-serif;font-size:12.5px;font-weight:700;display:flex}.admin-newbtn svg{width:14px;height:14px}.org-card{background:var(--paper-raised);border:1.5px solid var(--paper-line);box-shadow:var(--shadow);cursor:pointer;border-radius:10px;margin-bottom:9px;padding:12px 13px;position:relative}.org-card.static{cursor:default;margin-bottom:14px}.org-card .row1{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.org-card .oname{align-items:center;gap:7px;font-family:Zilla Slab,serif;font-size:14.5px;font-weight:600;display:flex}.org-swatch{border-radius:3px;flex-shrink:0;width:11px;height:11px}.org-card .ometa{color:var(--ink-faint);margin-top:3px;font-family:IBM Plex Mono,monospace;font-size:10px}.org-card .health{align-items:center;gap:5px;margin-top:8px;font-size:10.5px;font-weight:600;display:inline-flex}.health-dot{border-radius:50%;width:8px;height:8px}.health.ok{color:var(--src-call)}.health.ok .health-dot{background:var(--src-call)}.health.warn{color:var(--src-gbp)}.health.warn .health-dot{background:var(--src-gbp)}.health.err{color:var(--src-missed)}.health.err .health-dot{background:var(--src-missed)}.admin-contact-row{border-top:1px dashed var(--paper-line);justify-content:space-between;align-items:center;gap:8px;padding:10px 0;display:flex}.admin-contact-row:first-child{border-top:none}.admin-contact-row .acn{font-size:13px;font-weight:600}.admin-contact-row .acp{color:var(--ink-soft);font-family:IBM Plex Mono,monospace;font-size:10.5px}.admin-contact-row .right{align-items:center;gap:8px;display:flex}.admin-contact-edit{background:var(--paper-raised);border:1.5px solid var(--brand-2);border-radius:10px;margin:8px 0;padding:12px;display:block}.admin-contact-edit .row{gap:8px;margin-top:10px;display:flex}.admin-contact-edit .row button{cursor:pointer;border-radius:9px;flex:1;padding:9px;font-family:Public Sans,sans-serif;font-size:12.5px;font-weight:700}.admin-contact-edit .row .cancel{border:1.5px solid var(--paper-line-strong);background:var(--paper);color:var(--ink)}.admin-contact-edit .row .save{background:var(--ink);color:var(--paper-raised);border:none}.toast-layer{left:0;right:0;bottom:calc(var(--tabbar-h) + 18px);z-index:60;pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute}.toast{background:var(--ink);color:var(--paper-raised);box-shadow:var(--shadow-lift);border-radius:999px;align-items:center;gap:7px;max-width:88%;padding:9px 15px;font-size:12px;font-weight:600;transition:opacity .25s;animation:.2s cubic-bezier(.2,.8,.2,1) toastIn;display:flex}.toast.out{opacity:0}.toast svg{width:13px;height:13px;color:var(--brand-2);flex-shrink:0}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.settings-nav-link{border:1.5px solid var(--paper-line-strong);background:var(--paper-raised);color:var(--ink);border-radius:8px;align-items:center;padding:10px 14px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.settings-nav-link:hover{border-color:var(--brand);color:var(--brand)}.activity-log{flex-direction:column;margin:0 -4px;display:flex}.log-row{border:none;border-bottom:1px solid var(--paper-line);text-align:left;cursor:pointer;width:100%;color:var(--ink);background:0 0;grid-template-columns:52px 28px 1fr;align-items:start;gap:8px;padding:10px 4px;font-family:Public Sans,sans-serif;display:grid}.log-row:active{background:var(--paper-raised)}.log-time{color:var(--ink-soft);padding-top:2px;font-size:10px;line-height:1.35}.log-icon{color:var(--ink-soft);justify-content:center;align-items:center;display:flex}.log-icon svg{width:16px;height:16px}.log-body{flex-direction:column;gap:2px;min-width:0;display:flex}.log-name{font-size:14px;font-weight:600;line-height:1.25}.log-detail{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;font-size:12px;line-height:1.35;overflow:hidden}.action-btn:disabled{opacity:.45;cursor:not-allowed}.cal-invoice-chip{align-items:center;margin-left:auto;text-decoration:none;display:inline-flex}.invoice-queue{padding-bottom:8px}.invoice-intro h2{color:var(--ink);margin:0 0 6px;font-family:Zilla Slab,serif;font-size:20px;font-weight:600}.invoice-intro p{color:var(--ink-soft);max-width:42ch;margin:0 0 18px;font-size:13px;line-height:1.45}.invoice-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.invoice-row{border:1.5px dashed var(--paper-line);background:var(--paper-raised);justify-content:space-between;align-items:center;gap:12px;padding:14px 12px;display:flex}.invoice-title{color:var(--ink);margin-bottom:4px;font-family:Zilla Slab,serif;font-size:15px;font-weight:600}.invoice-meta{color:var(--ink-soft);flex-wrap:wrap;gap:6px;font-family:IBM Plex Mono,monospace;font-size:12px;display:flex}.invoice-contact{color:var(--brand);text-decoration:none}.invoice-contact:hover{text-decoration:underline}.book-page{background:var(--paper);min-height:100dvh;color:var(--ink);max-width:480px;margin:0 auto;padding:24px 20px 48px}.book-header{margin-bottom:24px}.book-title{color:var(--brand);font-family:Zilla Slab,serif;font-size:22px;font-weight:600}.book-sub{color:var(--ink-soft);margin-top:4px;font-size:14px}.book-section{margin-bottom:24px}.book-form label{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);margin-bottom:16px;font-size:12px;font-weight:600;display:block}.book-form input,.book-form textarea,.book-form select{border:1.5px solid var(--paper-line);background:var(--paper-raised);width:100%;margin-top:6px;padding:10px 12px;font-size:16px;display:block}.slot-grid{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.slot-btn{border:1.5px solid var(--paper-line);background:var(--paper-raised);padding:8px 12px;font-family:IBM Plex Mono,monospace;font-size:13px}.slot-btn.selected{border-color:var(--brand);background:color-mix(in srgb, var(--brand) 12%, var(--paper-raised))}.book-submit{width:100%;margin-top:8px}.book-error{color:var(--danger);margin-bottom:12px;font-size:14px}.consent-label{color:var(--ink-soft);align-items:flex-start;gap:10px;margin:12px 0;font-size:13px;line-height:1.45;display:flex}.consent-label.compact{font-size:11px}.consent-checkbox{flex-shrink:0;margin-top:3px}.send-booking-link{flex-wrap:wrap;gap:8px;margin:12px 0 20px;display:flex}.hours-row{align-items:center;gap:8px;margin-bottom:8px;display:flex}.job-photos .photo-actions{gap:8px;margin-bottom:16px;display:flex}.job-photos .photo-list{padding:0;list-style:none}.job-photos .photo-list li{border-bottom:1px dashed var(--paper-line);align-items:center;gap:8px;padding:8px 0;font-size:13px;display:flex}
