/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.block{display:block}.table{display:table}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.rounded{border-radius:.25rem}}:root{--glass-blue:#0f6cae;--deep-blue:#084d7d;--navy:#08233a;--slate:#385062;--muted:#6d869c;--ice:#daefff;--background:#f4faff;--white:#fff;--line:#08233a1c;--soft-shadow:0 20px 50px #08233a14}*{box-sizing:border-box}html{background:var(--background);min-width:320px}html,body{overflow-x:clip}@supports not (overflow:clip){html,body{overflow-x:hidden}}body{background:radial-gradient(circle at 75% -10%, #0f6cae21, transparent 28rem), var(--background);color:var(--navy);font-family:var(--font-jakarta), "Segoe UI", Arial, sans-serif;margin:0}button,input,select,textarea{font:inherit}button{color:inherit}.app-shell{min-height:100vh;padding:24px clamp(18px,4vw,68px) 44px}.topbar{-webkit-backdrop-filter:blur(12px);border:1px solid var(--line);box-shadow:var(--soft-shadow);z-index:30;background:#ffffffdb;border-radius:18px;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;max-width:1720px;margin:12px auto 0;padding:10px 18px;display:grid;position:sticky;top:12px}.brand-lockup,.header-actions,.month-summary,.month-switcher,.panel-heading,.action-group{align-items:center;display:flex}.brand-lockup{gap:13px}.brand-mark{background:var(--navy);border:3px solid var(--white);box-shadow:0 0 0 1px var(--navy);color:var(--white);font-family:var(--font-playfair), Georgia, serif;letter-spacing:-.03em;border-radius:50%;justify-content:center;align-items:center;width:46px;height:46px;font-size:15px;font-weight:800;display:flex}.brand-mark-logo{box-shadow:none;object-fit:contain;background:0 0;border:0;width:52px;height:52px;padding:0;display:block}.brand-name,.brand-subtitle{display:block}.brand-name{font-family:var(--font-playfair), Georgia, serif;font-size:20px;font-weight:800;line-height:1}.brand-subtitle,.eyebrow{color:var(--glass-blue);letter-spacing:.18em;text-transform:uppercase;font-size:12px;font-weight:800}.brand-subtitle{margin-top:5px}.primary-nav{border:1px solid var(--line);background:#ffffffb8;border-radius:999px;align-items:center;padding:4px;display:flex}.nav-tab{color:var(--slate);cursor:pointer;letter-spacing:.04em;background:0 0;border:0;border-radius:999px;padding:10px 15px;font-size:12px;font-weight:800}.nav-tab:hover{color:var(--deep-blue)}.nav-tab.active{background:var(--navy);color:var(--white);box-shadow:0 5px 15px #08233a24}.mobile-tabbar{display:none}.header-actions{justify-content:flex-end;gap:22px}.cloud-status{color:var(--slate);white-space:nowrap;align-items:center;gap:6px;font-size:11.5px;font-weight:800;display:flex}.cloud-status>span{background:#8a9cab;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #8a9cab1f}.cloud-status.cloud-saved>span{background:#2d9162;box-shadow:0 0 0 3px #2d91621f}.cloud-status.cloud-saving>span,.cloud-status.cloud-connecting>span{background:var(--glass-blue);animation:1s ease-in-out infinite cloud-pulse;box-shadow:0 0 0 3px #0f6cae1f}.cloud-status.cloud-offline{color:#8c6423}.cloud-status.cloud-offline>span{background:#d99b23;box-shadow:0 0 0 3px #d99b2324}@keyframes cloud-pulse{50%{opacity:.35;transform:scale(.8)}}.month-summary{border-right:1px solid var(--line);gap:7px;padding-right:22px}.month-summary strong{font-family:var(--font-playfair), Georgia, serif;font-size:24px}.month-summary span{color:var(--slate);font-size:12px;font-weight:700}.primary-button,.secondary-button,.delete-button,.text-button,.icon-button,.close-button{cursor:pointer;border:0;font-weight:800}button:active,a:active{transform:translateY(0)}.primary-button:active,.maps-route-button:active,.settings-test:active{transform:translateY(0)scale(.98)}:is(button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible){outline:2px solid var(--glass-blue);outline-offset:2px}.primary-button{background:var(--glass-blue);color:var(--white);letter-spacing:.02em;border-radius:999px;justify-content:center;align-items:center;gap:7px;min-height:42px;padding:0 19px;font-size:12px;transition:background .16s,transform .16s;display:inline-flex;box-shadow:0 8px 24px #0f6cae33}.primary-button:hover{background:var(--deep-blue);transform:translateY(-1px)}.sign-out-button{border:1px solid var(--line);color:var(--slate);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;min-height:36px;padding:0 12px;font-size:11.5px;font-weight:800}.sign-out-button:hover{background:var(--white);color:var(--deep-blue)}.auth-shell{background:var(--background);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--white);border:1px solid var(--line);box-shadow:var(--soft-shadow);border-radius:26px;width:100%;max-width:430px;padding:42px 40px 34px}.auth-card-logo{width:64px;height:64px;margin-bottom:18px;display:block}.auth-card h1{font-family:var(--font-playfair), Georgia, serif;letter-spacing:-.04em;margin:8px 0 0;font-size:44px;line-height:1}.auth-card h1 em{color:var(--glass-blue);font-weight:700}.auth-form{gap:15px;margin-top:30px;display:grid}.auth-form label{gap:6px;display:grid}.auth-form label>span{color:var(--slate);letter-spacing:.08em;text-transform:uppercase;font-size:11.5px;font-weight:800}.auth-form input{background:var(--white);color:var(--navy);border:1px solid #08233a2e;border-radius:10px;outline:0;width:100%;height:48px;padding:0 13px;font-size:12px;transition:border-color .14s,box-shadow .14s}.auth-form input::placeholder{color:#7c91a6b3}.auth-form input:focus{border-color:var(--glass-blue);box-shadow:0 0 0 3px #0f6cae1a}.auth-submit{width:100%;min-height:48px;margin-top:6px}.auth-error{color:#9d2f41;background:#fff0f2;border:1px solid #b13a4c29;border-radius:10px;margin:0;padding:10px 12px;font-size:11.5px;font-weight:700;line-height:1.5}.auth-legal{border-top:1px solid var(--line);color:var(--muted);margin:26px 0 0;padding-top:14px;font-size:11px;line-height:1.7}.cf-line{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:7px;margin-top:14px;font-size:11.5px;font-weight:700;text-decoration:none;display:inline-flex}.cf-line:hover{color:var(--deep-blue)}.cf-line:hover .cf-mark{transform:translateY(-1px)}.cf-line .cf-mark{width:auto;height:13px;transition:transform .14s}.auth-loading-shell{background:var(--background);text-align:center;justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-loading-card{flex-direction:column;align-items:center;gap:17px;display:flex}.auth-loading-card strong{color:var(--slate);letter-spacing:.04em;font-size:12px}.auth-spinner{border:2px solid #0f6cae2e;border-top-color:var(--glass-blue);border-radius:50%;width:25px;height:25px;animation:.75s linear infinite auth-spin}@keyframes auth-spin{to{transform:rotate(360deg)}}.page-heading{justify-content:space-between;align-items:end;max-width:1720px;margin:clamp(38px,5vw,68px) auto 24px;display:flex}.eyebrow{margin:0 0 9px}.page-heading h1{font-family:var(--font-playfair), Georgia, serif;letter-spacing:-.035em;margin:0;font-size:clamp(34px,4.1vw,58px);line-height:1.03}.page-heading h1 em{color:var(--glass-blue);font-weight:700}.heading-note{color:var(--slate);text-align:right;max-width:390px;margin:0 0 5px;font-size:13px;line-height:1.6}.sample-note{color:var(--deep-blue);background:#daefffb8;border:1px solid #0f6cae29;border-radius:12px;align-items:center;gap:9px;max-width:1720px;margin:0 auto 14px;padding:10px 14px;font-size:12.5px;font-weight:700;display:flex}.sample-dot{background:var(--glass-blue);border-radius:50%;width:7px;height:7px}.workspace{grid-template-columns:minmax(0,1fr) 310px;align-items:start;gap:18px;max-width:1720px;margin:0 auto;display:grid}.calendar-card,.jobs-panel,.customer-list-card,.summary-card,.round-column,.unassigned-card{border:1px solid var(--line);box-shadow:var(--soft-shadow);background:#ffffffdb}.calendar-card{border-radius:22px;overflow:hidden}.calendar-toolbar{justify-content:space-between;align-items:center;min-height:74px;padding:0 22px;display:flex}.calendar-toolbar-actions{align-items:center;gap:10px;display:flex}.cal-view-toggle{min-width:168px}.cal-week-day{cursor:pointer}.week-day-list{min-height:120px;max-height:430px;overflow-y:auto}.week-day-list .job-chip{flex:none}.month-switcher{gap:13px}.month-switcher h2,.panel-heading h2,.modal-header h2,.unassigned-card h2{font-family:var(--font-playfair), Georgia, serif;letter-spacing:-.025em;margin:0}.month-switcher h2{text-align:center;min-width:190px;font-size:23px}.icon-button,.close-button{background:var(--white);border:1px solid var(--line);border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.icon-button:hover,.close-button:hover{background:var(--ice)}.text-button{color:var(--deep-blue);letter-spacing:.08em;text-transform:uppercase;background:0 0;padding:8px;font-size:12.5px}.calendar-scroll,.round-board-scroll{overflow-x:auto}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));min-width:760px;display:grid}.weekday-row{border-bottom:1px solid var(--line);border-top:1px solid var(--line);color:var(--muted);letter-spacing:.16em;background:#daefff6b;padding:0 5px;font-size:11.5px;font-weight:800}.weekday-row>div{padding:11px 10px}.days-grid{background:var(--line);gap:1px}.day-cell{cursor:pointer;background:#fffffff0;min-height:128px;padding:9px;transition:background .14s}.day-cell:hover{background:#fafdff}.day-cell:focus-visible{outline:2px solid var(--glass-blue);outline-offset:-2px}.day-cell.outside-month{background:#f4faffbf}.day-cell.outside-month .date-number,.day-cell.outside-month .job-chip{opacity:.45}.date-line{justify-content:space-between;align-items:center;display:flex}.date-number{color:var(--slate);border-radius:50%;justify-content:center;align-items:center;width:25px;height:25px;font-size:12.5px;font-weight:800;display:flex}.today .date-number{background:var(--navy);color:var(--white)}.today-label{color:var(--glass-blue);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:800}.day-jobs{gap:4px;margin-top:5px;display:grid}.job-chip{border:0;border-left:3px solid var(--glass-blue);border-radius:7px;grid-template-columns:minmax(0,1fr) 27px;line-height:1.2;display:grid;overflow:hidden}.job-chip[draggable=true]{cursor:grab}.job-chip.day-dragging{opacity:.45}.day-cell.day-drag-over,.due-day.day-drag-over{box-shadow:inset 0 0 0 3px var(--glass-blue);background:#daefff80}.job-chip:hover{filter:brightness(.98)}.job-chip strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.job-chip-main{cursor:pointer;text-align:left;background:0 0;border:0;gap:1px;min-width:0;padding:6px 4px 6px 7px;display:grid}.job-preview-trigger{color:var(--deep-blue);cursor:pointer;background:#ffffff70;border:0;border-left:1px solid #08233a14;justify-content:center;align-self:stretch;align-items:center;padding:0;display:flex}.job-preview-trigger:hover{color:var(--glass-blue);background:#ffffffd1}.job-preview-trigger svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:15px;height:15px}.job-time,.job-address{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.job-time{font-weight:800}.job-address{color:var(--slate)}.status-booked{border-color:var(--glass-blue);background:#e8f5ff}.status-quoted{background:#fff7df;border-color:#d99b23}.status-completed{background:#e8f7ef;border-color:#2d9162}.job-chip.is-unpaid{border-left-color:#0f6cae}.job-chip.is-unpaid .job-time{color:#0f6cae}.more-jobs{color:var(--deep-blue);cursor:pointer;text-align:left;background:0 0;border:0;padding:2px 0 2px 5px;font-size:11px;font-weight:800}.more-jobs:hover{color:var(--glass-blue);text-decoration:underline}.cal-day-list{gap:7px;display:grid}.cal-day-job{border:1px solid var(--line);background:#fbfdff;border-radius:12px;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.cal-day-job .today-status{font-size:11px}.jobs-panel{border-radius:22px;min-height:420px;padding:24px;position:sticky;top:18px}.panel-heading{justify-content:space-between}.panel-heading h2{font-size:25px}.job-count{background:var(--ice);color:var(--deep-blue);border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:12.5px;font-weight:800;display:flex}.upcoming-list{gap:5px;margin-top:18px;display:grid}.upcoming-job{border:0;border-bottom:1px solid var(--line);cursor:pointer;text-align:left;background:0 0;grid-template-columns:3px 38px minmax(0,1fr);align-items:center;gap:10px;padding:11px 0;display:grid}.upcoming-job:hover .upcoming-details strong{color:var(--glass-blue)}.status-bar{border-radius:999px;align-self:stretch;min-height:41px}.status-bar.status-booked{background:var(--glass-blue)}.status-bar.status-quoted{background:#d99b23}.status-bar.status-completed{background:#2d9162}.upcoming-date{border-right:1px solid var(--line);justify-items:center;display:grid}.upcoming-date strong{font-family:var(--font-playfair), Georgia, serif;font-size:20px;line-height:1}.upcoming-date small{color:var(--muted);text-transform:uppercase;margin-top:3px;font-size:11px;font-weight:800}.upcoming-details{gap:4px;min-width:0;display:grid}.upcoming-details strong,.upcoming-details span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.upcoming-details strong{font-size:12.5px}.upcoming-details span{color:var(--slate);font-size:11.5px}.empty-state,.list-empty{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:36px 8px 28px;display:flex}.empty-mark{background:var(--ice);color:var(--deep-blue);border-radius:50%;justify-content:center;align-items:center;width:46px;height:46px;margin-bottom:12px;display:flex}.empty-state strong,.list-empty strong{font-size:13px}.empty-state p,.list-empty p{color:var(--slate);margin:0;font-size:12px;line-height:1.5}.today-empty p{margin:0}.today-empty .empty-mark,.day-detail-empty .empty-mark,.empty-state .empty-mark,.list-empty .empty-mark{margin-bottom:0}.status-key{flex-wrap:wrap;gap:11px;margin-top:22px;display:flex}.status-key span{color:var(--muted);text-transform:uppercase;align-items:center;gap:5px;font-size:11px;font-weight:800;display:flex}.key-dot{border-radius:50%;width:7px;height:7px;display:block}.key-dot.booked{background:var(--glass-blue)}.key-dot.quoted{background:#d99b23}.key-dot.completed{background:#2d9162}.due-week-card{border:1px solid var(--line);box-shadow:var(--soft-shadow);background:#ffffffe0;border-radius:22px;max-width:1720px;margin:0 auto 18px;overflow:hidden}.due-week-header{justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.due-week-header h2{font-family:var(--font-playfair), Georgia, serif;letter-spacing:-.025em;margin:0;font-size:26px}.due-week-header>div:first-child>p:last-child{color:var(--slate);margin:6px 0 0;font-size:12px;font-weight:700}.due-week-controls{align-items:center;gap:8px;display:flex}.week-today-button{border:1px solid var(--line);border-radius:999px;padding:10px 13px}.due-week-count{background:var(--navy);color:#ffffffc2;text-transform:uppercase;border-radius:999px;align-items:center;gap:5px;min-height:34px;margin-left:6px;padding:0 13px;font-size:11.5px;font-weight:800;display:flex}.due-week-count strong{color:var(--white);font-family:var(--font-playfair), Georgia, serif;font-size:17px}.overdue-strip{background:#fff3f4;border-top:1px solid #b13a4c24;border-bottom:1px solid #b13a4c24;justify-content:space-between;align-items:center;gap:18px;padding:10px 18px;display:flex}.overdue-strip>div:first-child{gap:2px;display:grid}.overdue-strip>div:first-child strong{color:#a22e41;text-transform:uppercase;font-size:12px}.overdue-strip>div:first-child span{color:#7d5260;font-size:11px}.overdue-customers{align-items:center;gap:6px;display:flex;overflow-x:auto}.overdue-customers button{background:var(--white);cursor:pointer;text-align:left;border:1px solid #b13a4c29;border-radius:8px;flex:none;gap:2px;padding:7px 9px;display:grid}.unpaid-entry{flex:none;display:inline-flex}.unpaid-entry>button:first-child{border-right:0;border-radius:8px 0 0 8px}.overdue-customers .unpaid-paid-button{color:var(--white);background:#2d9162;border:1px solid #2d9162;border-radius:0 8px 8px 0;justify-content:center;align-items:center;padding:7px 11px;font-size:13px;font-weight:900;display:flex}.overdue-customers .unpaid-paid-button:hover{background:#23764f}.overdue-customers button strong{font-size:11.5px}.overdue-customers button span,.more-overdue{color:#a22e41;text-transform:uppercase;font-size:11px;font-weight:800}.due-week-scroll{border-top:1px solid var(--line);overflow-x:auto}.due-week-grid{background:var(--line);grid-template-columns:repeat(7,minmax(145px,1fr));gap:1px;min-width:1060px;display:grid}.due-day{background:#fffffff0;min-height:150px}.due-day>header{border-bottom:1px solid var(--line);background:#daefff59;justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.due-day>header span{color:var(--muted);letter-spacing:.12em;font-size:11px;font-weight:800}.due-day>header strong{border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;display:flex}.due-day-today>header strong{background:var(--navy);color:var(--white)}.due-day-list{gap:6px;padding:8px;display:grid}.due-customer{background:var(--background);border:1px solid #0f6cae1f;border-radius:9px;overflow:hidden}.due-customer-main{cursor:pointer;text-align:left;background:0 0;border:0;gap:2px;width:100%;padding:8px;display:grid}.due-customer-main strong{text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.due-customer-main span,.due-customer-main small{color:var(--slate);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.due-schedule-button{background:var(--glass-blue);color:var(--white);cursor:pointer;text-transform:uppercase;border:0;width:100%;padding:6px;font-size:11px;font-weight:800}.due-schedule-button:hover{background:var(--deep-blue)}.due-schedule-button.scheduled{background:#2d9162}.due-customer-actions{grid-template-columns:1fr 1fr;display:grid}.due-complete-button{background:var(--navy);color:var(--white);cursor:pointer;text-transform:uppercase;border:0;padding:6px 3px;font-size:11px;font-weight:800}.due-complete-button:hover{background:#2d9162}.no-cleans{color:var(--muted);text-align:center;padding:18px 4px;font-size:11px;font-weight:700}.notif-card{overflow:hidden}.notif-list{border-top:1px solid var(--line);display:grid}.notif-row{border-bottom:1px solid var(--line);gap:12px;padding:14px 20px;display:flex}.notif-row:last-child{border-bottom:0}.notif-dot{border-radius:50%;flex:none;width:9px;height:9px;margin-top:4px}.notif-overdue .notif-dot{background:#c0392b}.notif-due .notif-dot{background:#d99b23}.notif-quote .notif-dot{background:var(--glass-blue)}.notif-unpaid .notif-dot{background:#2d9162}.notif-weather .notif-dot{background:#7a4a00}.notif-copy{flex:1;gap:3px;min-width:0;display:grid}.notif-copy>strong{color:var(--navy);font-size:12px}.notif-copy>span{color:var(--slate);font-size:11.5px}.notif-copy .overdue-customers{margin-top:8px}.notif-copy .text-button{justify-self:start;padding-left:0}.notif-action{border-radius:999px;flex:none;align-self:center;width:auto;padding:8px 18px}.notif-clear{align-items:center;gap:12px;padding:16px 22px;display:flex}.notif-clear>span{color:#23764f;background:#e8f7ef;border-radius:50%;flex:none;justify-content:center;align-items:center;width:34px;height:34px;font-size:13px;font-weight:900;display:flex}.notif-clear strong{color:var(--navy);font-size:12px;display:block}.notif-clear div span{color:var(--slate);font-size:11.5px}.health-card{background:var(--white);border:1px solid var(--line);box-shadow:var(--soft-shadow);border-radius:19px;margin-bottom:16px;overflow:hidden}.health-header{padding:15px 20px 5px}.health-header .eyebrow{margin:0 0 5px}.health-header h2{font-family:var(--font-playfair), Georgia, serif;letter-spacing:-.025em;margin:0;font-size:22px}.health-list{gap:6px;padding:6px 12px 12px;display:grid}.health-row{border:1px solid var(--line);border-radius:12px;overflow:hidden}.health-row-main{cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:12px;width:100%;padding:11px 12px;display:flex}.health-row-main:hover{background:#f4faffcc}.health-count{background:var(--ice);color:var(--deep-blue);border-radius:50%;flex:none;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:800;display:flex}.health-row-main>span:nth-child(2){gap:2px;min-width:0;margin-right:auto;display:grid}.health-row-main strong{color:var(--navy);font-size:12px}.health-row-main small{color:var(--muted);font-size:11.5px}.health-customers{border-top:1px solid var(--line);display:grid}.health-customer{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:8px 12px;display:flex}.health-customer:last-child{border-bottom:0}.health-customer>button:first-child{cursor:pointer;text-align:left;background:0 0;border:0;gap:2px;min-width:0;display:grid}.health-customer strong{font-size:12.5px}.health-customer span span{color:var(--slate);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.today-view{max-width:1720px;margin:0 auto}.today-layout{grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:18px;display:grid}.tomorrow-layout{margin-top:18px}.today-job-row[draggable=true]{cursor:grab}.today-job-row.day-dragging{opacity:.45}.today-job-row.day-drag-over{box-shadow:inset 0 3px 0 var(--glass-blue);background:#daefff73}.day-drag-handle{color:var(--muted);cursor:grab;letter-spacing:1px;font-size:12.5px;font-weight:900}.day-timeline-wrap{padding:2px 24px 16px}.day-timeline-legend{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:8px;margin-bottom:6px;font-size:11px;font-weight:800;display:flex}.legend-item{align-items:center;gap:4px;display:inline-flex}.legend-dot{border-radius:50%;width:7px;height:7px;display:inline-block}.legend-dot.status-booked{background:var(--glass-blue)}.legend-dot.status-quoted{background:#d99b23}.legend-dot.status-completed{background:#2d9162}.legend-hint{letter-spacing:0;text-transform:none;margin-left:auto;font-weight:700}.day-timeline{gap:3px;padding:0;display:flex}.day-block{cursor:pointer;border:0;border-radius:6px;min-width:22px;min-height:22px;padding:0;transition:transform .12s,opacity .12s}.day-block:hover{opacity:.8}.day-block.status-booked{background:var(--glass-blue)}.day-block.status-quoted{background:#d99b23}.day-block.status-completed{opacity:.4;background:#2d9162}.today-jobs-card,.today-due-panel{border:1px solid var(--line);box-shadow:var(--soft-shadow);background:#ffffffe0}.today-jobs-card{border-radius:22px;overflow:hidden}.today-card-header{justify-content:space-between;align-items:center;padding:22px 24px;display:flex}.today-card-header h2{font-family:var(--font-playfair), Georgia, serif;letter-spacing:-.025em;margin:0;font-size:29px}.today-card-header>div>p:last-child{color:var(--slate);margin:6px 0 0;font-size:12px;font-weight:700}.takings-line{font-size:12px;font-weight:800;color:var(--deep-blue)!important;margin:4px 0 0!important}.period-value{background:var(--ice);color:var(--deep-blue);white-space:nowrap;border-radius:999px;padding:8px 13px;font-size:12px;font-weight:800}.week-day-value{color:var(--deep-blue);letter-spacing:.04em;padding:6px 10px 0;font-size:11px;font-weight:800}.today-header-actions{align-items:center;gap:8px;display:flex}.maps-route-button{background:var(--white);color:var(--deep-blue);cursor:pointer;border:1px solid #08233a29;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 15px;font-size:12px;font-weight:800;display:inline-flex}.maps-route-button:hover{background:var(--ice);border-color:#0f6cae47}.maps-route-button:disabled{cursor:default;opacity:.42}.google-map-pin{background:conic-gradient(from 35deg, #4285f4 0 25%, #34a853 0 50%, #fbbc05 0 72%, #ea4335 0);border-radius:50% 50% 50% 0;flex:none;width:18px;height:18px;display:inline-block;position:relative;transform:rotate(-45deg)}.google-map-pin i{background:var(--white);border-radius:50%;width:6px;height:6px;display:block;position:absolute;top:6px;left:6px}.today-progress{background:#08233a12;height:5px;overflow:hidden}.today-progress span{background:#2d9162;height:100%;transition:width .22s;display:block}.today-job-list{display:grid}.today-job-row{border-top:1px solid var(--line);grid-template-columns:4px 44px minmax(0,1fr);align-items:center;gap:14px;min-height:112px;padding:16px 22px;transition:background .14s,opacity .14s;display:grid;position:relative}.today-job-row:before{background:var(--glass-blue);content:"";border-radius:99px;align-self:stretch;min-height:64px}.today-job-row:has(.status-quoted):before{background:#d99b23}.today-job-row.completed:before{background:#2d9162}.today-job-row.job-affected:before{background:#b26a00}.today-job-row:hover{background:#f4faffa6}.today-job-row.completed{opacity:.68;background:#e8f7ef61}.today-check{background:var(--white);cursor:pointer;border:2px solid #08233a33;border-radius:50%;justify-content:center;align-self:start;align-items:center;width:38px;height:38px;margin-top:2px;display:flex}.today-check:hover{border-color:#2d9162;box-shadow:0 0 0 4px #2d91621a}.today-check span{color:var(--white);border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;font-size:17px;font-weight:900;display:flex}.today-job-row.completed .today-check{cursor:default;background:#2d9162;border-color:#2d9162}.today-job-details{gap:5px;min-width:0;display:grid}.today-job-head{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.today-job-main{cursor:pointer;text-align:left;background:0 0;border:0;flex-wrap:wrap;align-items:baseline;gap:9px;min-width:0;padding:0;display:flex}.today-job-main strong{font-family:var(--font-playfair), Georgia, serif;font-size:16px}.today-status{letter-spacing:.07em;text-transform:uppercase;border-radius:999px;padding:4px 7px;font-size:11px;font-weight:900}.today-status.status-booked{color:var(--deep-blue)}.today-status.status-quoted{color:#8a610f}.today-status.status-completed{color:#23764f}.today-status.status-chip{cursor:pointer;background:#08233a0f;border:1px dashed #08233a40;font-family:inherit}.today-status.status-chip:hover{background:var(--ice);border-color:var(--glass-blue)}.today-job-customer{color:var(--navy);font-size:12.5px;font-weight:800}.today-job-place{color:var(--slate);font-size:11.5px;font-weight:600}.today-job-row.completed .today-job-main strong,.today-job-row.completed .today-job-customer{text-decoration:line-through}.today-check.paid{cursor:pointer;background:#2d9162;border-color:#2d9162}.today-check.paid:hover{border-color:#23764f;box-shadow:0 0 0 4px #2d91621f}.today-check.unpaid{cursor:pointer;background:#0f6cae;border-color:#0f6cae}.today-check.unpaid:hover{border-color:#084d7d;box-shadow:0 0 0 4px #0f6cae1f}.today-job-row.completed{background:#e8f7ef61}.today-job-row.completed.unpaid{background:#0f6cae12}.pay-chip{letter-spacing:.07em;text-transform:uppercase;border-radius:999px;padding:4px 7px;font-size:11px;font-weight:900}.pay-chip.pay-yes{color:#1d6b47;background:#2d91621f}.pay-chip.pay-no{color:var(--deep-blue);background:#0f6cae1a}.pay-yes-text{color:#1d6b47}.pay-no-text{color:var(--deep-blue)}.complete-options{grid-template-columns:1fr 1fr;gap:10px;display:grid}.complete-options.single{grid-template-columns:1fr}.complete-option{background:var(--white);border:2px solid var(--line);cursor:pointer;text-align:left;border-radius:14px;align-items:start;gap:4px;padding:14px;display:grid}.complete-option strong{color:var(--navy);font-size:12px}.complete-option span{color:var(--slate);font-size:11.5px}.complete-option.option-unpaid:hover{background:#0f6cae0f;border-color:#0f6cae}.complete-option.option-paid:hover{background:#2d91620f;border-color:#2d9162}.complete-option.option-method.selected{border-color:var(--navy);background:#daefff80}.complete-option .field{margin-top:8px}.complete-option .field input{background:var(--white);border:1px solid var(--line);color:var(--navy);border-radius:10px;outline:0;width:100%;min-height:44px;padding:0 12px;font-size:12px}.preview-contact-row{gap:8px;margin-top:5px;display:flex}.preview-payment-set{gap:6px;display:grid}.preview-payment-set small{color:var(--muted);font-size:11.5px;font-weight:700}.preview-payment-set .settings-options button{padding:8px 6px}.moved-question{color:var(--navy);margin:4px 0 10px;font-size:12.5px;font-weight:800}.moved-text{border-top:1px dashed var(--line);gap:9px;margin-top:12px;padding-top:12px;display:grid}.moved-text textarea{background:var(--white);color:var(--navy);resize:vertical;border:1px solid #08233a2e;border-radius:10px;padding:10px 12px;font-size:12.5px;line-height:1.6}.moved-text textarea:focus{border-color:var(--glass-blue);outline:0}.moved-send{justify-self:start}.moved-no-phone{color:var(--muted);margin:0;font-size:11.5px}.today-job-actions .weather-action{color:#7a4a00;background:#b26a001a;border-color:#b26a0066}.today-job-actions .weather-action:hover{background:#b26a0033;border-color:#b26a00}.eye-button{justify-content:center;align-items:center;display:inline-flex}.eye-button svg{width:18px;height:13px}.eye-button svg path,.eye-button svg circle{fill:none;stroke:currentColor;stroke-width:2px}.today-empty{text-align:center;flex-direction:column;align-items:center;gap:10px;min-height:300px;padding:62px 20px;display:flex}.today-empty strong{font-family:var(--font-playfair), Georgia, serif;font-size:22px}.today-empty p{color:var(--slate);font-size:12px}.today-due-panel{border-radius:22px;padding:22px;position:sticky;top:18px}.today-due-intro{color:var(--slate);margin:10px 0 16px;font-size:11.5px;line-height:1.55}.today-due-list{gap:8px;display:grid}.today-due-customer{background:var(--background);border:1px solid #0f6cae21;border-radius:11px;overflow:hidden}.today-due-customer>button:first-child{cursor:pointer;text-align:left;background:0 0;border:0;gap:3px;width:100%;padding:11px;display:grid}.today-due-customer strong{font-size:12px}.today-due-customer span{color:var(--slate);font-size:11px}.today-due-customer small{color:var(--glass-blue);font-size:11px;font-weight:800}.today-due-clear{text-align:center;flex-direction:column;align-items:center;padding:34px 8px 22px;display:flex}.today-due-clear>span{color:#23764f;background:#e8f7ef;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:10px;font-size:15px;font-weight:900;display:flex}.today-due-clear strong{font-size:12.5px}.today-due-clear p{color:var(--slate);margin:5px 0 0;font-size:11.5px;line-height:1.5}.completed-summary .summary-icon{color:#23764f;background:#e8f7ef}.customer-view,.rounds-view{max-width:1720px;margin:0 auto}.summary-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px;display:grid}.summary-card{border-radius:16px;align-items:center;gap:13px;padding:16px 18px;display:flex}.summary-icon{background:var(--ice);color:var(--deep-blue);font-family:var(--font-playfair), Georgia, serif;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;font-size:17px;font-weight:800;display:flex}.summary-card div{gap:2px;display:grid}.summary-card strong{font-family:var(--font-playfair), Georgia, serif;font-size:22px}.summary-card div span{color:var(--slate);letter-spacing:.05em;text-transform:uppercase;font-size:11.5px;font-weight:800}.customer-list-card{border-radius:22px;overflow:hidden}.list-toolbar{gap:13px;padding:17px 20px;display:grid}.search-and-clear{align-items:center;gap:12px;display:flex}.search-box{background:var(--background);border:1px solid var(--line);border-radius:999px;flex:1;align-items:center;gap:8px;max-width:520px;padding:0 13px;display:flex}.search-box>span{color:var(--muted);font-size:19px}.search-box input{color:var(--navy);background:0 0;border:0;outline:0;width:100%;min-width:0;height:40px;font-size:12.5px}.results-summary{white-space:nowrap;align-items:baseline;gap:5px;margin-left:auto;display:flex}.results-summary strong{font-family:var(--font-playfair), Georgia, serif;font-size:19px}.results-summary span{color:var(--muted);font-size:11.5px;font-weight:700}.clear-filters{border:1px solid var(--line);color:var(--deep-blue);cursor:pointer;letter-spacing:.05em;text-transform:uppercase;background:0 0;border-radius:999px;padding:9px 11px;font-size:11px;font-weight:800}.clear-filters:hover{background:var(--ice)}.customer-filter-grid{grid-template-columns:1.25fr repeat(6,minmax(112px,1fr));gap:8px;display:grid}.compact-filter{gap:5px;display:grid}.compact-filter>span{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;padding-left:10px;font-size:11px;font-weight:800}.compact-filter select{background:var(--white);border:1px solid var(--line);color:var(--slate);border-radius:999px;outline:none;width:100%;min-width:0;height:37px;padding:0 27px 0 11px;font-size:11.5px;font-weight:700}.compact-filter select:focus{border-color:var(--glass-blue);box-shadow:0 0 0 3px #0f6cae14}.featured-filter select{background:var(--ice);color:var(--deep-blue);border-color:#0f6cae2e}.custom-date-filter{background:#daefff66;border:1px solid #0f6cae1f;border-radius:12px;align-items:center;gap:12px;padding:9px 12px;display:flex}.custom-date-filter>span{color:var(--deep-blue);letter-spacing:.06em;text-transform:uppercase;margin-right:auto;font-size:11px;font-weight:800}.custom-date-filter label{align-items:center;gap:7px;display:flex}.custom-date-filter label span{color:var(--slate);text-transform:uppercase;font-size:11px;font-weight:800}.custom-date-filter input{background:var(--white);border:1px solid var(--line);color:var(--navy);border-radius:8px;height:33px;padding:0 8px;font-size:11.5px}.customer-table-head,.customer-row{grid-template-columns:minmax(270px,2fr) minmax(140px,1fr) 125px 75px 105px 125px 145px;display:grid}.customer-table-head{border-bottom:1px solid var(--line);border-top:1px solid var(--line);color:var(--muted);letter-spacing:.12em;text-transform:uppercase;background:#daefff6b;padding:11px 18px;font-size:11px;font-weight:800}.customer-row{border-bottom:1px solid var(--line);align-items:center;gap:0;min-height:78px;padding:8px 18px}.customer-row:last-child{border-bottom:0}.customer-meta{display:contents}.customer-row:hover{background:#f4faffb3}.customer-row.paused{opacity:.55}.customer-identity{cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:11px;min-width:0;padding:0;display:flex}.customer-avatar{background:var(--navy);color:var(--white);font-family:var(--font-playfair), Georgia, serif;border-radius:50%;flex:none;justify-content:center;align-items:center;width:39px;height:39px;font-size:15px;font-weight:800;display:flex}.customer-identity>span:last-child,.round-cell,.next-clean-cell{gap:4px;min-width:0;display:grid}.customer-identity strong,.round-cell strong,.next-clean-cell strong{font-size:12.5px}.customer-identity small,.round-cell small{color:var(--slate);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.frequency-cell{color:var(--slate);font-size:12px;font-weight:700}.price-cell{font-size:12.5px}.next-clean-cell small{color:#b13a4c;text-transform:uppercase;font-size:11px;font-weight:800}.next-clean-cell.due strong{color:#b13a4c}.customer-type-badge{color:var(--deep-blue)}.customer-type-badge.type-one-off-window{color:#9a6912}.customer-type-badge.type-other{color:var(--slate)}.customer-row-actions{justify-content:flex-end;gap:5px;display:flex}.table-action{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:999px;padding:7px 10px;font-size:11.5px;font-weight:800}.table-action:hover{background:var(--ice)}.schedule-action{background:var(--glass-blue);border-color:var(--glass-blue);color:var(--white)}.schedule-action:hover{background:var(--deep-blue)}.list-empty{min-height:260px}.round-week-toolbar{border:1px solid var(--line);box-shadow:var(--soft-shadow);background:#ffffffdb;border-radius:17px;justify-content:space-between;align-items:center;margin-bottom:10px;padding:14px 18px;display:flex}.round-week-toolbar h2{margin-top:3px;font-size:23px}.round-week-controls{align-items:center;gap:7px;display:flex}.round-summary-line{background:var(--navy);color:var(--white);border-radius:18px;align-items:center;gap:30px;margin-bottom:15px;padding:17px 22px;display:flex}.round-summary-line>div{align-items:baseline;gap:7px;display:flex}.round-summary-number{font-family:var(--font-playfair), Georgia, serif;font-size:24px;font-weight:800}.round-summary-line div span:last-child{color:#ffffffb8;text-transform:uppercase;font-size:11.5px;font-weight:800}.round-summary-line p{color:#ffffffb8;margin:0 0 0 auto;font-size:12px}.round-board-scroll{padding-bottom:10px}@media (pointer:coarse){.round-board-scroll,.due-week-scroll,.calendar-scroll{scroll-snap-type:x proximity}.round-column,.due-day{scroll-snap-align:start}}.round-board{grid-template-columns:repeat(7,minmax(190px,1fr));gap:11px;min-width:1440px;display:grid}.round-column{border-radius:18px;min-height:390px;transition:border-color .15s,box-shadow .15s,transform .15s;overflow:hidden;box-shadow:0 12px 30px #08233a0f}.round-column.drag-over{border-color:var(--glass-blue);transform:translateY(-2px);box-shadow:0 0 0 3px #0f6cae21,0 18px 42px #08233a1f}.round-column-header{border-bottom:1px solid var(--line);background:#daefff80}.round-day-open{cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;width:100%;padding:14px;display:flex}.round-day-open:hover{background:#daefff7a}.round-day-open p{color:var(--glass-blue);letter-spacing:.16em;margin:0 0 3px;font-size:11px;font-weight:800}.round-day-open h2{font-family:var(--font-playfair), Georgia, serif;margin:0;font-size:19px}.round-day-open h2 span{color:var(--deep-blue);font-family:var(--font-jakarta), sans-serif;vertical-align:middle;margin-left:3px;font-size:12px;font-weight:800}.round-day-open small{color:var(--muted);margin-top:3px;font-size:11px;font-weight:700;display:block}.round-day-open>span{background:var(--white);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:11.5px;font-weight:800;display:flex}.round-column-value{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;justify-content:space-between;padding:10px 13px;font-size:11px;font-weight:800;display:flex}.round-column-value strong{color:var(--navy)}.round-customer-list{gap:7px;padding:0 8px;display:grid}.round-customer-card{background:var(--white);border:1px solid var(--line);cursor:grab;border-radius:11px;transition:opacity .12s,transform .12s,box-shadow .12s;position:relative;overflow:hidden}.round-customer-card:hover{transform:translateY(-1px);box-shadow:0 7px 18px #08233a17}.round-customer-card:active{cursor:grabbing}.round-customer-card.dragging{opacity:.38;transform:scale(.98)}.drag-handle{color:var(--muted);letter-spacing:-2px;font-size:12px;font-weight:900;line-height:1;position:absolute;top:8px;right:8px}.round-customer-main{cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:25px minmax(0,1fr);align-items:start;gap:8px;width:100%;padding:10px;display:grid}.round-customer-main>span:last-child{padding-right:12px}.route-number{background:var(--navy);color:var(--white);border-radius:50%;justify-content:center;align-items:center;width:23px;height:23px;font-size:11px;font-weight:800;display:flex}.round-customer-main>span:last-child{gap:3px;min-width:0;display:grid}.round-customer-main strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.round-customer-main small{color:var(--slate);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.round-card-footer{background:var(--background);border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding:6px 8px;display:flex}.due-badge{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:800}.due-badge.overdue{color:#b13a4c}.round-card-actions{align-items:center;gap:5px;display:flex}.remove-schedule-button{color:#a23b49;cursor:pointer;text-transform:uppercase;background:0 0;border:0;padding:4px 2px;font-size:11px;font-weight:800}.remove-schedule-button:hover{color:#7f2331;text-decoration:underline}.order-buttons{gap:3px;display:flex}.order-buttons button{background:var(--white);border:1px solid var(--line);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:21px;height:21px;font-size:11.5px;display:flex}.order-buttons button:disabled{cursor:default;opacity:.3}.empty-round{color:var(--muted);cursor:pointer;background:0 0;border:1px dashed #0f6cae40;border-radius:11px;flex-direction:column;justify-content:center;align-items:center;gap:7px;min-height:100px;font-size:11.5px;font-weight:800;display:flex}.empty-round span{color:var(--glass-blue);font-size:20px}.add-to-round{color:var(--deep-blue);cursor:pointer;text-transform:uppercase;background:0 0;border:0;width:calc(100% - 16px);margin:10px 8px;padding:7px;font-size:11px;font-weight:800}.unassigned-card{border-radius:18px;grid-template-columns:210px 1fr;align-items:start;gap:20px;margin-top:8px;padding:20px;display:grid}.unassigned-card h2{font-size:22px}.unassigned-list{flex-wrap:wrap;gap:7px;display:flex}.unassigned-list button{background:var(--background);border:1px solid var(--line);cursor:pointer;text-align:left;border-radius:10px;gap:3px;min-width:180px;padding:10px;display:grid}.unassigned-list strong{font-size:12px}.unassigned-list span{color:var(--slate);font-size:11px}.day-detail-modal{max-width:920px}.day-detail-header{align-items:center}.day-detail-header h2{font-size:36px}.day-detail-header>div>p:last-child{color:var(--slate);margin:7px 0 0;font-size:12px}.day-detail-toolbar{border:1px solid var(--line);background:#daefff5c;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:12px;padding:10px 12px;display:flex}.day-detail-toolbar>span{color:var(--deep-blue);letter-spacing:.08em;text-transform:uppercase;font-size:11.5px;font-weight:800}.day-detail-toolbar .primary-button{min-height:36px}.day-detail-list{gap:7px;display:grid}.day-detail-customer{border:1px solid var(--line);background:#fbfdff;border-radius:12px;grid-template-columns:32px minmax(180px,1.7fr) 70px 125px 58px 175px;align-items:center;gap:10px;padding:10px;display:grid}.detail-route-number{background:var(--navy);color:var(--white);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:11.5px;font-weight:800;display:flex}.detail-customer-main{cursor:pointer;text-align:left;background:0 0;border:0;gap:3px;min-width:0;display:grid}.detail-customer-main strong{font-size:12.5px}.detail-customer-main span,.detail-customer-main small{color:var(--slate);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.detail-price{font-family:var(--font-playfair), Georgia, serif;font-size:14px}.move-day-control{gap:3px;display:grid}.move-day-control span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:800}.move-day-control select{background:var(--white);border:1px solid var(--line);color:var(--navy);border-radius:8px;min-width:0;height:31px;padding:0 6px;font-size:11px}.detail-order-buttons,.detail-actions{gap:4px;display:flex}.detail-order-buttons button{background:var(--white);border:1px solid var(--line);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:27px;height:27px;font-size:12px;display:flex}.detail-order-buttons button:disabled{cursor:default;opacity:.3}.detail-actions button{background:var(--white);border:1px solid var(--line);cursor:pointer;border-radius:999px;padding:7px 9px;font-size:11px;font-weight:800}.detail-actions button:first-child{background:var(--glass-blue);border-color:var(--glass-blue);color:var(--white)}.detail-actions .detail-remove-schedule{color:#a23b49;border-color:#a23b4940}.day-detail-empty{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:44px 16px;display:flex}.day-detail-empty p{color:var(--slate);margin:0;font-size:12px}.add-round-modal{max-width:650px}.modal-subtitle{color:var(--slate);margin:5px 0 0;font-size:12px;line-height:1.5}.existing-customer-picker select{height:46px;font-size:12.5px}.selected-customer-preview{background:#daefff61;border:1px solid #0f6cae21;border-radius:13px;align-items:center;gap:12px;margin-top:12px;padding:12px;display:flex}.selected-customer-preview>div{gap:3px;display:grid}.selected-customer-preview strong{font-size:12px}.selected-customer-preview span{color:var(--slate);font-size:11.5px}.selected-customer-preview small{color:var(--glass-blue);text-transform:uppercase;font-size:11px;font-weight:800}.no-round-candidates{text-align:center;flex-direction:column;align-items:center;padding:26px 10px;display:flex}.no-round-candidates p{color:var(--slate);font-size:12px}.add-round-actions{gap:10px}.create-new-customer{white-space:nowrap}.primary-button:disabled{cursor:default;opacity:.45;transform:none}.modal-backdrop{z-index:32;background:#08233a94;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.job-modal{background:var(--white);border-radius:24px;width:100%;max-width:680px;max-height:calc(100vh - 32px);padding:27px;animation:.18s ease-out modal-in;overflow-y:auto;box-shadow:0 30px 90px #08233a4d}@keyframes modal-in{0%{opacity:0;transform:translateY(10px)scale(.99)}}@media (hover:hover) and (pointer:fine){.summary-card,.job-chip,.round-customer-card,.due-customer,.today-due-customer{transition:transform .14s,box-shadow .14s}.summary-card:hover{transform:translateY(-2px)}.job-chip:hover{transform:translateY(-1px)}.round-customer-card:hover{transform:translateY(-2px);box-shadow:0 14px 32px #08233a1a}}.today-job-main strong,.detail-price,.month-summary strong,.summary-card strong,.job-time{font-variant-numeric:tabular-nums}.empty-mark{box-shadow:inset 0 0 0 2px #0f6cae24}.job-preview-modal{max-width:570px}.preview-modal-header{margin-bottom:16px}.job-preview-hero{background:linear-gradient(135deg, var(--navy), #0f4d79);color:var(--white);border-radius:17px;gap:5px;padding:20px;display:grid}.job-preview-hero>strong{font-family:var(--font-playfair), Georgia, serif;font-size:25px;line-height:1.15}.job-preview-hero>span:last-child{color:#ffffffb8;letter-spacing:.06em;text-transform:uppercase;font-size:11.5px;font-weight:700}.preview-status{color:var(--navy);letter-spacing:.05em;text-transform:uppercase;border:1px solid #ffffff47;border-radius:999px;justify-self:start;padding:5px 8px;font-size:11px;font-weight:800}.job-preview-grid{grid-template-columns:1fr 1fr;gap:9px;margin-top:12px;display:grid}.preview-detail{border:1px solid var(--line);background:#f7fbff;border-radius:12px;gap:5px;min-width:0;padding:12px;display:grid}.preview-detail-wide{grid-column:1/-1}.preview-detail>span:first-child{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:800}.preview-detail strong,.preview-detail a{color:var(--navy);font-size:12.5px;line-height:1.45}.preview-detail a{color:var(--deep-blue);font-weight:800;text-decoration:none}.preview-detail p{color:var(--slate);white-space:pre-wrap;margin:0;font-size:12px;line-height:1.55}.preview-map-actions{gap:6px;margin-top:3px;display:flex}.preview-map-actions button{background:var(--white);border:1px solid var(--line);color:var(--deep-blue);cursor:pointer;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:800}.job-preview-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;margin-top:18px;padding-top:16px;display:flex}.customer-modal{max-width:760px}.modal-header{justify-content:space-between;align-items:start;margin-bottom:22px;display:flex}.modal-head-actions{flex:none;align-items:center;gap:4px;display:flex}.modal-header h2{font-size:29px}.close-button{font-size:22px;font-weight:400}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.field{gap:6px;display:grid}.field.full-width{grid-column:1/-1}.field>span{color:var(--slate);letter-spacing:.08em;text-transform:uppercase;font-size:11.5px;font-weight:800}.field input,.field select,.field textarea{color:var(--navy);background:#fbfdff;border:1px solid #08233a29;border-radius:10px;outline:none;width:100%;padding:11px 12px;font-size:12px}.field input,.field select{height:42px}.field textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--glass-blue);box-shadow:0 0 0 3px #0f6cae1a}.customer-type-field select{background:var(--ice);color:var(--deep-blue);border-color:#0f6cae38;font-weight:800}.customer-type-field small{color:var(--slate);font-size:11px;line-height:1.45}.customer-type-note{color:#765615;background:#fff8e7;border:1px solid #d99b232e;border-radius:10px;margin:0;padding:9px 11px;font-size:11px;line-height:1.5}.customer-type-note.full-width{grid-column:1/-1}.modal-actions{border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:22px;padding-top:18px;display:flex}.action-group{gap:9px;margin-left:auto}.secondary-button,.delete-button{background:0 0;border-radius:999px;min-height:40px;padding:0 16px;font-size:12.5px}.secondary-button{border:1px solid var(--line)}.secondary-button:hover{background:var(--background)}.delete-button{color:#b13a4c}.delete-button:hover{background:#fff0f2}.destructive-actions{align-items:center;gap:6px;display:flex}.complete-clean-button{color:#23764f;cursor:pointer;background:#e8f7ef;border:1px solid #2d91622e;border-radius:999px;min-height:40px;padding:0 14px;font-size:11.5px;font-weight:800}.complete-clean-button:hover{background:#d8f1e4}.auto-date-note{color:var(--slate);background:#daefff6b;border:1px solid #0f6cae1f;border-radius:10px;align-items:center;gap:7px;margin:-4px 0 0;padding:8px 10px;font-size:11px;line-height:1.45;display:flex}.auto-date-note.full-width{grid-column:1/-1}.auto-date-note span{color:var(--glass-blue);font-size:14px;font-weight:800}.completion-toast{background:var(--navy);color:var(--white);z-index:40;border:1px solid #ffffff2e;border-radius:999px;align-items:center;gap:8px;max-width:calc(100% - 28px);padding:12px 18px;font-size:12px;font-weight:700;animation:.18s ease-out toast-in;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 16px 40px #08233a47}.completion-toast span{background:#2d9162;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;display:flex}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@media (max-width:1180px){.topbar{grid-template-columns:1fr auto}.primary-nav{grid-area:2/1/auto/-1;justify-self:center}.customer-table-head,.customer-row{grid-template-columns:minmax(250px,2fr) minmax(140px,1fr) 110px 70px 125px 130px}.customer-filter-grid{grid-template-columns:repeat(3,minmax(140px,1fr))}.customer-table-head span:nth-child(5),.customer-row .payment-cell{display:none}}@media (max-width:1050px){.workspace,.today-layout{grid-template-columns:minmax(0,1fr)}.today-due-panel,.jobs-panel{position:static}.upcoming-list{grid-template-columns:repeat(2,minmax(0,1fr))}.upcoming-job:nth-child(odd):last-child{grid-column:1/-1}.customer-table-head,.customer-row{grid-template-columns:minmax(230px,2fr) minmax(130px,1fr) 85px 110px 130px}.customer-table-head span:nth-child(3),.customer-row .frequency-cell,.customer-table-head span:nth-child(5),.customer-row .payment-cell{display:none}}@media (max-width:760px){input,select,textarea{font-size:16px!important}.app-shell{padding:17px 12px calc(104px + env(safe-area-inset-bottom)) 12px}.primary-nav{display:none}.mobile-tabbar{-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:6px 8px calc(10px + env(safe-area-inset-bottom));z-index:35;background:#fffffff2;grid-template-columns:repeat(6,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-tabbar button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:12px;place-items:center;gap:2px;padding:7px 4px;font-size:12px;font-weight:800;display:grid}.mobile-tabbar button span{font-size:17px;line-height:1}.mobile-tabbar button.active{background:var(--ice);color:var(--navy)}.modal-backdrop{z-index:36}.completion-toast,.undo-toast{bottom:calc(92px + env(safe-area-inset-bottom))}.today-job-actions button,.today-job-actions a{padding:8px 14px;font-size:12px}.contact-button{height:32px;font-size:12px}.today-check{width:44px;height:44px}.today-job-row{grid-template-columns:4px 48px minmax(0,1fr)}.day-timeline-wrap{padding:2px 14px 14px}.topbar{gap:14px}.brand-lockup{min-width:0}.month-summary,.heading-note{display:none}.header-actions{gap:8px}.cloud-status{margin-right:auto}.primary-nav{justify-self:stretch;overflow-x:auto}.nav-tab{white-space:nowrap;flex:1}.page-heading{margin-top:36px}.page-heading h1{font-size:37px}.calendar-toolbar{flex-wrap:wrap;row-gap:4px;padding:0 13px}.month-switcher{flex:100%}.month-switcher h2{flex:1;min-width:0;font-size:17px}.calendar-toolbar-actions{flex-wrap:wrap;flex:100%}.calendar-toolbar-actions .text-button{white-space:nowrap}.cal-view-toggle{flex:1}.month-switcher{gap:7px}.month-switcher h2{min-width:145px;font-size:19px}.calendar-card,.jobs-panel,.customer-list-card{border-radius:17px}.day-cell{min-height:108px}.upcoming-list,.summary-strip{grid-template-columns:1fr}.upcoming-job:nth-child(odd):last-child{grid-column:auto}.summary-strip{gap:8px}.today-card-header{align-items:flex-start;gap:16px}.today-header-actions{flex-wrap:wrap;justify-content:flex-end}.today-job-row{grid-template-columns:4px 40px minmax(0,1fr);gap:10px;padding:14px}.due-week-header{flex-direction:column;align-items:flex-start;gap:14px}.due-week-controls{width:100%}.due-week-count{margin-left:auto}.overdue-strip{flex-direction:column;align-items:flex-start}.overdue-customers{width:100%;max-width:100%}.summary-card{padding:12px 14px}.search-and-clear{flex-wrap:wrap;align-items:stretch}.search-box{max-width:none}.results-summary{order:3;margin-left:0}.clear-filters{order:4;margin-left:auto}.customer-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.custom-date-filter{flex-wrap:wrap;align-items:stretch}.custom-date-filter>span{flex-basis:100%}.custom-date-filter label{flex:1}.custom-date-filter input{width:100%;min-width:0}.customer-table-head{display:none}.customer-row,.quote-row{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;padding:14px}.quote-status{justify-self:start}.quote-row-actions{flex-direction:column;grid-column:1/-1}.quote-row-actions .table-action{text-align:center}.quote-item-row{grid-template-columns:minmax(0,1fr) 96px 40px}.calc-adjust-fields{grid-template-columns:1fr}.customer-meta{flex-wrap:wrap;grid-column:1/-1;gap:4px 12px;display:flex}.customer-meta .frequency-cell{font-size:11.5px}.customer-meta .price-cell{font-size:12px;font-weight:800}.customer-row-actions{flex-direction:column;align-self:center}.round-summary-line{flex-wrap:wrap;align-items:start;gap:10px 18px}.round-summary-line p{flex-basis:100%;margin:0}.round-week-toolbar{flex-direction:column;align-items:flex-start;gap:12px}.round-week-controls{width:100%}.round-week-controls .week-today-button{flex:1}.unassigned-card{grid-template-columns:1fr}.add-round-actions{flex-direction:column-reverse;align-items:stretch}.add-round-actions .create-new-customer{width:100%}.day-detail-customer{grid-template-columns:32px minmax(0,1fr) auto;align-items:start}.detail-price{grid-area:1/3}.move-day-control{grid-column:2/-1}.detail-order-buttons{grid-column:2}.detail-actions{grid-column:3;justify-self:end}.modal-backdrop{align-items:end;padding:0}.job-modal{border-radius:22px 22px 0 0;max-height:92vh;padding:22px 17px}.job-preview-grid{grid-template-columns:1fr}.preview-detail-wide{grid-column:auto}.job-preview-actions{grid-template-columns:1fr 1fr;display:grid}.form-grid{grid-template-columns:1fr}.field.full-width{grid-column:auto}.modal-actions{flex-direction:column-reverse;align-items:stretch;gap:8px}.destructive-actions{grid-template-columns:1fr 1fr;align-items:stretch;display:grid}.action-group{grid-template-columns:1fr 1fr;margin:0;display:grid}}button,a{-webkit-tap-highlight-color:transparent}@media (max-width:380px){.mobile-tabbar button{padding:6px 2px;font-size:11.5px}.mobile-tabbar button span,.month-switcher h2{font-size:15px}}@media (max-width:520px){.auth-card{padding:30px 24px 26px}.topbar{grid-template-columns:1fr}.header-actions{flex-wrap:wrap;grid-row:2;justify-content:stretch}.cloud-status{margin-right:0;font-size:0}.header-actions .primary-button{flex:160px;width:auto;min-width:0}.sign-out-button{flex:auto;min-width:0}.today-card-header{flex-direction:column}.today-header-actions{grid-template-columns:1fr;width:100%;display:grid}.today-card-header .primary-button,.maps-route-button{width:100%}.today-job-row{grid-template-columns:4px 38px minmax(0,1fr);align-items:start}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.weather-card{border:1px solid var(--line);border-radius:14px;margin-bottom:16px;overflow:hidden}.weather-card.tone-good{background:#2d916212;border-color:#2d916247}.weather-card.tone-warn{background:#fdf3df;border-color:#b26a0052}.weather-card.tone-poor{background:#b3261e14;border-color:#b3261e59}.weather-card-row{align-items:center;gap:10px;padding:12px 14px 6px;display:flex}.weather-now-glyph{font-size:26px;line-height:1}.weather-headline{gap:2px;min-width:0;display:grid}.weather-headline strong{color:var(--navy);font-size:12.5px}.weather-headline>span{font-size:12px;font-weight:700}.weather-headline small{color:var(--muted);font-size:11.5px;font-weight:600}.weather-card-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.weather-affected-link{background:var(--navy);border:1px solid var(--navy);color:var(--white);cursor:pointer;white-space:nowrap;border-radius:999px;padding:7px 13px;font-size:11.5px;font-weight:800}.weather-affected-link:hover{background:var(--deep-blue)}.weather-refresh{border:1px solid var(--line);color:var(--slate);cursor:pointer;background:0 0;border-radius:50%;width:28px;height:28px;font-size:12px}.weather-refresh:hover{border-color:var(--glass-blue);color:var(--deep-blue)}.weather-advice{color:var(--navy);margin:0;padding:6px 14px 8px;font-size:12px;font-weight:800}.weather-advice span{color:#7a4a00;margin-right:5px;font-weight:800}.weather-forecast-toggle{color:var(--deep-blue);cursor:pointer;letter-spacing:.04em;text-align:left;background:0 0;border:0;width:100%;padding:6px 14px 10px;font-size:11.5px;font-weight:800;display:block}.hourly-strip{grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:3px;padding:4px 10px 12px;display:grid}.hourly-cell{border-radius:9px;place-items:center;gap:1px;min-height:74px;padding:6px 2px 5px;display:grid}.hourly-cell.sev-good,.hourly-cell.sev-info{background:#08233a0d}.hourly-cell.sev-windy{background:#0f6cae1f}.hourly-cell.sev-wet{background:#b26a0029}.hourly-cell.sev-poor{background:#b3261e29}.hourly-cell.has-jobs{outline:2px solid var(--navy)}.hourly-cell.hour-focus{outline:3px solid #b26a00}.hourly-time{letter-spacing:.04em;font-size:11px;font-weight:800}.hourly-glyph{font-size:14px}.hourly-prob{font-size:11.5px;font-weight:800}.hourly-job-label{color:var(--navy);letter-spacing:.04em;font-size:11px;font-weight:900}.job-weather-badge{border:1px solid var(--line);white-space:nowrap;background:#ffffffb3;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:800}.job-weather-badge.sev-good,.job-weather-badge.sev-info{color:#1d6b47}.job-weather-badge.sev-windy{color:var(--deep-blue)}.job-weather-badge.sev-wet{color:#7a4a00;background:#b26a0024;border-color:#b26a0066}.job-weather-badge.sev-poor{color:#8c1d18;background:#b3261e1f;border-color:#b3261e66}.job-weather-line{color:var(--slate);cursor:pointer;text-align:left;background:#08233a0a;border:0;border-radius:9px;justify-self:start;align-items:center;gap:6px;width:fit-content;padding:7px 11px;font-size:12px;font-weight:800;display:inline-flex}.job-weather-line:hover{filter:brightness(.96)}.job-weather-line.sev-good,.job-weather-line.sev-info{color:#1d6b47;background:#2d91621a}.job-weather-line.sev-windy{color:var(--deep-blue);background:#0f6cae1a}.job-weather-line.sev-wet{color:#7a4a00;background:#b26a0024}.job-weather-line.sev-poor{color:#8c1d18;background:#b3261e1f}.job-better{color:#1d6b47;font-size:11.5px;font-weight:800}.today-job-row.job-affected{background:#fdf6e6;border-left:3px solid #b26a00}.today-job-row.job-affected:hover{background:#fdf0d5}.today-job-row.job-highlight{animation:1.1s ease-in-out 3 job-pulse}@keyframes job-pulse{0%,to{box-shadow:none}50%{box-shadow:0 0 0 4px #0f6cae73}}.today-job-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px;display:flex}.today-job-actions button,.today-job-actions a{background:var(--white);border:1px solid var(--line);color:var(--deep-blue);cursor:pointer;border-radius:999px;padding:5px 11px;font-size:11.5px;font-weight:800;text-decoration:none}.today-job-actions button:hover,.today-job-actions a:hover{background:var(--ice);border-color:var(--glass-blue)}.today-job-details{align-self:start;min-width:0;position:relative}.job-menu{background:var(--white);border:1px solid var(--line);z-index:12;border-radius:12px;padding:6px;display:grid;position:absolute;right:12px;box-shadow:0 12px 30px #08233a29}.job-menu button,.job-menu a{color:var(--navy);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;padding:8px 12px;font-size:13px;font-weight:700;text-decoration:none}.job-menu button:hover,.job-menu a:hover{background:var(--ice)}.settings-wrap{position:relative}.settings-button{background:var(--white);border:1px solid var(--line);color:var(--slate);cursor:pointer;border-radius:999px;width:36px;height:36px;font-size:13px}.settings-button:hover{border-color:var(--glass-blue);color:var(--deep-blue)}.settings-popover{background:var(--white);border:1px solid var(--line);z-index:30;border-radius:14px;gap:8px;width:230px;max-height:min(70vh,560px);padding:14px 16px;display:grid;position:absolute;top:44px;right:0;overflow-y:auto;box-shadow:0 16px 40px #08233a2e}.settings-terms{resize:vertical;text-transform:none;letter-spacing:0;font-weight:600}.quote-list{display:grid}.quote-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,2fr) 90px 110px auto;align-items:center;gap:12px;min-height:78px;padding:10px 18px;display:grid}.quote-row:last-child{border-bottom:0}.quote-row:hover{background:#f4faffb3}.quote-identity{cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:11px;min-width:0;padding:0;display:flex}.quote-identity strong{font-size:12.5px}.quote-identity>span:last-child{gap:4px;min-width:0;display:grid}.quote-identity small{color:var(--slate);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.quote-status{white-space:nowrap;color:var(--slate);background:#405b731f;border-radius:999px;padding:4px 10px;font-size:11.5px;font-weight:800}.summary-card-button{cursor:pointer;font:inherit;text-align:left;width:100%}.qs-draft{color:var(--slate);background:#405b731f}.qs-sent{color:var(--deep-blue);background:#0f6cae1f}.qs-accepted,.qs-paid{color:#1d6b47;background:#2d91621f}.qs-declined{color:#8c1d18;background:#b3261e1a}.qs-overdue{color:#8c1d18;background:#b3261e24}.paper-toggle-row{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.paper-toggle-row .cal-view-toggle{min-width:220px}.quote-row-actions{justify-content:flex-end;gap:5px;display:flex}.quote-items.full-width,.quote-total.full-width{grid-column:1/-1}.quote-items{gap:8px;display:grid}.quote-items>span{color:var(--slate);letter-spacing:.08em;text-transform:uppercase;font-size:11.5px;font-weight:800}.quote-item-row{grid-template-columns:minmax(0,1fr) 110px 40px;gap:8px;display:grid}.quote-item-row input{background:var(--white);color:var(--navy);border:1px solid #08233a2e;border-radius:10px;outline:0;width:100%;min-width:0;padding:10px 12px;font-size:12px}.quote-item-row input:focus{border-color:var(--glass-blue);box-shadow:0 0 0 3px #0f6cae1a}.quote-item-row button{background:var(--white);border:1px solid var(--line);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;display:flex}.quote-item-row button:disabled{cursor:default;opacity:.3}.quote-add-line{justify-self:start}.quote-total{background:#daefff6b;border:1px solid #0f6cae1f;border-radius:10px;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.quote-total span{color:var(--slate);letter-spacing:.08em;text-transform:uppercase;font-size:11.5px;font-weight:800}.quote-total strong{font-family:var(--font-playfair), Georgia, serif;font-size:20px}.calc-sand-row{align-items:center;gap:14px;display:flex}.calc-sand-row>div:last-child{gap:2px;display:grid}.calc-sand-row strong{color:var(--navy);font-size:13px}.calc-sand-row small{color:var(--slate);font-size:12px;font-weight:700}.calc-tab-actions{justify-content:flex-end;margin-bottom:16px;display:flex}.calc-modal{flex-direction:column;max-width:760px;display:flex;overflow:hidden}.calc-modal .modal-header{flex-shrink:0}.calc-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:auto;min-height:0;padding-bottom:6px;overflow-y:auto}.calc-name{margin-bottom:4px}.calc-services{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:6px;display:grid}.calc-service{background:var(--white);border:2px solid var(--line);color:var(--navy);cursor:pointer;border-radius:14px;align-content:center;justify-items:center;gap:2px;min-height:68px;padding:12px;font-size:15px;font-weight:800;display:grid}.calc-service small{color:var(--deep-blue);font-size:13px;font-weight:800}.calc-service.open small{color:var(--deep-blue)}.calc-service.open{border-color:var(--glass-blue);color:var(--deep-blue);background:#daefff80}.calc-section{border-top:1px dashed var(--line);gap:10px;margin-top:6px;padding-top:14px;display:grid}.calc-section h3{font-family:var(--font-playfair), Georgia, serif;letter-spacing:-.02em;margin:0;font-size:20px}.calc-entry{border:1px solid var(--line);background:#f4faff8c;border-radius:14px;gap:10px;padding:12px;display:grid}.calc-entry-head{align-items:start;gap:8px;display:flex}.calc-entry-head .field{flex:1}.calc-entry-remove{background:var(--white);border:1px solid var(--line);color:var(--muted);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;width:34px;height:34px;margin-top:22px;font-size:15px;display:flex}.calc-entry-remove:hover{color:#a23b49;border-color:#a23b49}.calc-hint{color:var(--slate);margin:0;font-size:12.5px;font-weight:700}.calc-toggle{cursor:pointer;align-items:center;gap:12px;min-height:56px;display:flex}.calc-toggle input{opacity:0;width:1px;height:1px;position:absolute}.calc-switch{background:#08233a2e;border-radius:999px;flex:none;width:52px;height:30px;transition:background .15s;position:relative}.calc-switch:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:left .15s;position:absolute;top:3px;left:3px}.calc-toggle input:checked+.calc-switch{background:var(--glass-blue)}.calc-toggle input:checked+.calc-switch:after{left:25px}.calc-toggle input:focus-visible+.calc-switch{outline:2px solid var(--glass-blue);outline-offset:2px}.calc-toggle span:last-child{gap:2px;min-width:0;display:grid}.calc-toggle strong{color:var(--navy);font-size:13px}.calc-toggle small{color:var(--slate);font-size:12px;font-weight:700}.calc-counts{display:grid}.calc-count-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 0;display:flex}.calc-count-row:last-child{border-bottom:0}.calc-count-row>div:first-child{flex:1;gap:2px;min-width:0;display:grid}.calc-count-row strong{color:var(--navy);font-size:13px}.calc-count-row small{color:var(--slate);font-size:12px;font-weight:700}.calc-stepper{align-items:center;gap:10px;display:flex}.calc-stepper button{background:var(--white);border:1px solid var(--line);color:var(--deep-blue);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:20px;font-weight:800;display:flex}.calc-stepper button:active{transform:scale(.95)}.calc-stepper strong{text-align:center;min-width:34px;font-size:18px}.calc-wide-price{background:var(--white);color:var(--navy);border:1px solid #08233a2e;border-radius:10px;outline:0;width:76px;padding:8px;font-size:14px}.calc-wide-price:focus{border-color:var(--glass-blue);box-shadow:0 0 0 3px #0f6cae1a}.calc-lines{gap:6px;display:grid}.calc-line{border:1px solid var(--line);background:#fbfdff;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;display:flex}.calc-line strong{color:var(--navy);font-size:12px}.calc-line small{color:var(--muted);font-size:11.5px;display:block}.calc-line>strong:last-child{white-space:nowrap}.calc-line-side{flex:none;align-items:center;gap:6px;display:flex}.calc-line-amount{color:var(--deep-blue);cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:6px 4px;font-size:12px;font-weight:800}.calc-line-amount:hover{text-decoration:underline}.calc-line-edit{background:var(--white);border:1px solid var(--glass-blue);color:var(--navy);border-radius:8px;outline:0;width:92px;padding:6px 8px;font-size:14px;font-weight:800}.calc-line-remove{background:var(--white);border:1px solid var(--line);color:var(--muted);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:14px;display:flex}.calc-line-remove:hover{color:#a23b49;border-color:#a23b49}.calc-groups{border-top:1px dashed var(--line);gap:4px;margin-top:4px;padding-top:8px;display:grid}.calc-groups>div{color:var(--slate);justify-content:space-between;align-items:baseline;font-size:12.5px;font-weight:800;display:flex}.calc-groups strong{color:var(--deep-blue)}.calc-adjust-kinds{flex-wrap:wrap;gap:6px;display:flex}.calc-adjust-kinds button{background:var(--white);border:1px solid var(--line);color:var(--slate);cursor:pointer;border-radius:999px;min-height:44px;padding:8px 14px;font-size:12.5px;font-weight:800}.calc-adjust-kinds button.active{background:var(--navy);border-color:var(--navy);color:var(--white)}.calc-adjust-fields{grid-template-columns:1fr 1fr;gap:10px;display:grid}.calc-footer{border:1px solid var(--line);background:#fff;border-radius:16px;flex-shrink:0;gap:10px;margin-top:8px;padding:14px;display:grid;box-shadow:0 -8px 24px #08233a1a}.calc-totals{gap:4px;display:grid}.calc-totals>div{color:var(--slate);justify-content:space-between;align-items:baseline;font-size:12px;font-weight:700;display:flex}.calc-totals>div strong{color:var(--navy)}.calc-grand{border-top:1px dashed var(--line);padding-top:8px}.calc-grand strong{color:var(--deep-blue);font-family:var(--font-playfair), Georgia, serif;font-size:28px}.calc-round-note{color:var(--muted);text-align:right;font-size:11.5px;font-weight:700}.calc-footer-actions{gap:8px;display:grid}.calc-footer-main{align-items:center;gap:12px;display:flex}.calc-footer-total{flex:0 auto;gap:0;min-width:0;display:grid}.calc-footer-total span{color:var(--slate);font-size:12px;font-weight:700}.calc-footer-total strong{color:var(--deep-blue);font-family:var(--font-playfair), Georgia, serif;white-space:nowrap;font-size:30px;line-height:1.1}.calc-footer-main .calc-save{flex:auto;width:auto;min-height:52px;margin:0}.calc-breakdown-toggle{justify-self:center;padding:2px 12px}.calc-save{width:100%;min-height:52px;font-size:14px}.calc-secondary-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.calc-manual{align-items:center;gap:6px;display:flex}.calc-manual input{background:var(--white);border:1px solid var(--glass-blue);color:var(--navy);border-radius:999px;outline:0;flex:1;width:100%;min-width:0;min-height:44px;padding:0 14px;font-size:16px;font-weight:800}.calc-check{align-items:center;gap:10px;margin:4px 0 10px;font-size:12px;font-weight:700;display:flex}.calc-check input{width:22px;height:22px}.calc-copy-preview{background:var(--background);border:1px solid var(--line);white-space:pre-wrap;border-radius:12px;margin:0 0 12px;padding:12px;font-family:inherit;font-size:12px;line-height:1.6}.job-quote-strip{background:#2d916214;border:1px solid #2d91624d;border-radius:12px;grid-column:1/-1;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.job-quote-strip strong{color:#1d6b47;font-size:14px}.job-quote-strip span{color:var(--slate);font-size:12px;font-weight:700}.calc-open-button{grid-column:1/-1;width:100%;min-height:48px}.quote-chip{color:#1d6b47;letter-spacing:.07em;text-transform:uppercase;background:#2d91621a;border-radius:999px;padding:4px 7px;font-size:11px;font-weight:900}.quote-breakdown{gap:4px;margin-top:6px;display:grid}.quote-breakdown>div{justify-content:space-between;gap:8px;font-size:12px;display:flex}.quote-breakdown small{color:var(--muted)}.settings-label{color:var(--slate);font-size:12px;font-weight:700}.settings-options{gap:6px;display:flex}.settings-options button{background:var(--white);border:1px solid var(--line);color:var(--slate);cursor:pointer;border-radius:999px;flex:1;padding:7px 6px;font-size:11.5px;font-weight:800}.settings-options button.active{background:var(--navy);border-color:var(--navy);color:var(--white)}.settings-close{color:var(--muted);cursor:pointer;text-align:right;background:0 0;border:0;font-size:11.5px;font-weight:800}.settings-test{background:var(--navy);color:var(--white);cursor:pointer;border:0;border-radius:999px;padding:8px 12px;font-size:11.5px;font-weight:800}.settings-test:hover{background:var(--deep-blue)}.settings-test:disabled{opacity:.6}.settings-on{color:#1d6b47;font-size:11.5px;font-weight:800}.settings-off{color:#8c1d18;cursor:pointer;text-align:left;background:0 0;border:0;font-size:11.5px;font-weight:800}.settings-off:hover{text-decoration:underline}.settings-hint{color:var(--muted);font-size:11px;line-height:1.5}.settings-home-input{background:var(--white);border:1px solid var(--line);color:var(--navy);letter-spacing:.06em;text-transform:uppercase;border-radius:10px;width:100%;padding:9px 11px;font-size:12px;font-weight:800}.settings-home-input:focus{border-color:var(--glass-blue);outline:0}.weather-modal{max-width:560px}.weather-affected-list{gap:10px;max-height:46vh;padding:4px 2px;display:grid;overflow-y:auto}.weather-affected-job{border:1px solid var(--line);border-radius:12px;align-items:start;gap:11px;padding:11px 12px;display:flex}.weather-affected-job .job-weather-badge{flex:none;margin-top:2px;padding:6px 9px;font-size:13px}.weather-affected-copy{gap:2px;min-width:0;margin-right:auto;display:grid}.weather-affected-copy strong{color:var(--navy);font-size:12.5px}.weather-affected-copy span{color:var(--slate);font-size:12px}.weather-affected-copy small{color:var(--muted);font-size:11.5px}.weather-affected-copy .weather-windows{color:#1d6b47;font-weight:700}.weather-modal-note{color:var(--muted);margin:12px 0 0;font-size:11.5px}.contact-link{text-decoration:none;color:var(--deep-blue)!important}.weather-forecast-toggle{border:0;border-top:1px dashed var(--line);color:var(--deep-blue);cursor:pointer;letter-spacing:.04em;text-align:left;background:0 0;width:100%;padding:7px 14px;font-size:11.5px;font-weight:800;display:block}.weather-forecast-toggle:hover{color:var(--navy)}.today-due-collapsed{padding:16px 20px}.today-due-collapsed .today-due-clear{text-align:left;flex-direction:row;gap:10px;padding:0}.today-due-collapsed .today-due-clear>span{width:24px;height:24px}.today-due-collapsed .today-due-clear p{margin:0}.contact-button{background:var(--white);border:1px solid var(--line);color:var(--deep-blue);cursor:pointer;border-radius:999px;flex:none;justify-content:center;align-items:center;gap:5px;height:26px;padding:0 11px;font-size:11.5px;font-weight:800;text-decoration:none;transition:background .14s,border-color .14s,color .14s;display:inline-flex}.contact-button:hover{background:var(--ice);border-color:var(--glass-blue);color:var(--navy)}.contact-button.call-button{color:#1d6b47}.contact-button.call-button:hover{border-color:#2d9162}.contact-button.sms-button{color:#7a4a00}.contact-button.sms-button:hover{border-color:#b26a00}.today-access-note{color:#5b3a00;background:#fff7e0;border:1px solid #b26a0059;border-radius:10px;gap:3px;margin-top:8px;padding:8px 10px;font-size:12px;font-weight:700;line-height:1.45;display:grid}.today-access-note span{color:#7a4a00;letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:800}.payment-cell{align-items:center;display:flex}.payment-badge{white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:11.5px;font-weight:800}.payment-badge.pm-cash{color:#1d6b47;background:#2d91621f;border:1px solid #2d916259}.payment-badge.pm-bank-transfer{color:var(--deep-blue);background:#0f6cae1f;border:1px solid #0f6cae59}.payment-badge.pm-direct-debit{color:var(--slate);background:#405b7324;border:1px solid #405b7359}.data-toolbar{border-top:1px dashed var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding-top:13px;display:flex}.filters-toggle{background:var(--white);border:1px solid var(--line);color:var(--deep-blue);cursor:pointer;border-radius:999px;flex:none;align-items:center;gap:7px;min-height:40px;padding:0 14px;font-size:12px;font-weight:800;display:inline-flex}.filters-toggle:hover{border-color:var(--glass-blue)}.filters-toggle.active{border-color:var(--glass-blue);background:var(--ice)}.filters-count{background:var(--navy);color:var(--white);border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:11.5px;display:inline-flex}.filter-collapse{grid-template-rows:1fr;transition:grid-template-rows .2s;display:grid}.filter-collapse.closed{grid-template-rows:0fr}.filter-collapse>div{min-height:0;overflow:hidden}.file-button{cursor:pointer;align-items:center;display:inline-flex;position:relative}.file-button input[type=file]{opacity:0;border:0;width:1px;height:1px;position:absolute;overflow:hidden}.undo-toast button{background:var(--white);color:var(--navy);cursor:pointer;border:0;border-radius:999px;padding:6px 14px;font-size:12px;font-weight:800}.undo-toast button:hover{background:var(--ice)}.activity-card{background:var(--white);border:1px solid var(--line);box-shadow:var(--soft-shadow);border-radius:19px;margin-top:16px;overflow:hidden}.activity-toggle{cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:15px 20px;display:flex}.activity-toggle:hover{background:#f4faffcc}.activity-toggle-label{text-align:left;gap:3px;display:grid}.activity-toggle-label strong{color:var(--navy);font-size:12px}.activity-toggle-mark{background:var(--ice);color:var(--deep-blue);border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:15px;font-weight:800;display:flex}.activity-list{border-top:1px solid var(--line);display:grid}.activity-note{color:var(--muted);padding:13px 20px;font-size:12px}.activity-row{border-bottom:1px solid var(--line);align-items:center;gap:11px;padding:11px 20px;display:flex}.activity-row:last-child{border-bottom:0}.activity-dot{border-radius:50%;flex:none;width:9px;height:9px}.activity-dot.action-upsert{background:#2d9162}.activity-dot.action-delete{background:#c0392b}.activity-dot.action-note,.activity-dot.action-migration,.activity-dot.action-restored{background:var(--glass-blue)}.activity-copy{gap:2px;min-width:0;margin-right:auto;display:grid}.activity-copy strong{color:var(--navy);font-size:12.5px}.activity-copy small{color:var(--muted);font-size:11.5px}@media (max-width:760px){.data-toolbar .secondary-button,.data-toolbar .file-button{flex:auto;justify-content:center}.activity-row{align-items:flex-start}.activity-row .table-action{align-self:center}.contact-button{height:32px}}.job-timer{border:1px solid var(--line);border-radius:12px;margin:10px 0;padding:10px 12px;font-size:12px}.job-timer.is-running{background:var(--ice);border-color:var(--glass-blue)}.job-timer-controls,.job-timer-edit,.timing-estimate{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.job-timer-controls>span{color:var(--slate)}.job-timer button,.running-timers button{background:var(--white);border:1px solid var(--line);color:var(--deep-blue);cursor:pointer;border-radius:9px;min-height:44px;padding:8px 12px;font-size:14px;font-weight:700}.job-timer .timer-start{border-radius:999px;min-height:0;padding:7px 14px;font-size:12px;font-weight:800}.job-timer button:disabled{opacity:.5;cursor:default}.job-timer p{color:var(--slate);margin:8px 0 0;font-size:12.5px}.job-timer-edit{margin-top:10px}.job-timer-edit input{border:1px solid var(--line);border-radius:8px;width:90px;padding:8px;font-size:16px}.timing-history{margin:10px 0 0;padding:0;list-style:none}.timing-history li{border-top:1px solid var(--line);justify-content:space-between;gap:16px;padding:6px 0;display:flex}.timing-estimate{background:var(--ice);border-radius:10px;grid-column:1/-1;padding:12px;font-size:14px}.running-timers{flex-wrap:wrap;gap:8px;max-width:1720px;margin:14px auto;display:flex}.running-timers button{border-color:var(--glass-blue);background:var(--ice)}.travel-allowance{border-left:3px solid var(--glass-blue);background:var(--ice);border-radius:8px;flex-wrap:wrap;gap:4px 12px;margin-top:10px;padding:10px 12px;font-size:14px;display:flex}.travel-allowance span{color:var(--slate)}.travel-allowance.provisional{background:#fff7e0;border-left-color:#b26a00}.catch-up-panel{box-shadow:var(--soft-shadow);background:#ffffffeb;border:1px solid #b4530938;border-left:5px solid #d97706;border-radius:22px;max-width:1720px;margin:0 auto 20px;padding:20px 22px}.catch-up-header{cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:0;display:flex}.catch-up-header>span:first-child{gap:3px;display:grid}.catch-up-title{font-family:var(--font-playfair), Georgia, serif;font-size:26px;font-weight:700}.catch-up-toggle{color:#8c4a09;border:1px solid #b453094d;border-radius:999px;flex:none;padding:9px 14px;font-size:12px;font-weight:800}.catch-up-header .eyebrow{color:#b45309}.catch-up-value{color:var(--slate);margin:0;font-size:13px;font-weight:700}.catch-up-list{gap:10px;margin:16px 0 0;padding:0;list-style:none;display:grid}.catch-up-row{background:#fffaf2;border:1px solid #b4530924;border-radius:16px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 16px;padding:12px 14px;display:grid}.catch-up-name{cursor:pointer;text-align:left;background:0 0;border:0;gap:2px;min-width:0;padding:0;display:grid}.catch-up-name strong{font-size:15px}.catch-up-name span{color:var(--slate);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.catch-up-name small{color:#8c6423;font-size:11px;font-weight:700}.catch-up-name small.very-late{color:#b42318}.catch-up-actions{gap:6px;display:flex}.catch-up-book{background:var(--glass-blue);border:1px solid var(--glass-blue);color:var(--white);cursor:pointer;white-space:nowrap;border-radius:999px;min-height:40px;padding:0 14px;font-size:12px;font-weight:800}.catch-up-book:hover{background:var(--deep-blue)}.catch-up-book.secondary{background:var(--white);color:var(--deep-blue);border-color:#0f6cae59}.catch-up-book.secondary:hover{background:var(--ice)}.catch-up-date{border:1px solid #0f6cae59;border-radius:999px;min-height:40px;padding:0 10px;font-size:13px}.catch-up-more{margin-top:12px}@media (max-width:760px){.catch-up-panel{border-radius:18px;padding:16px}.catch-up-title{font-size:21px}.catch-up-row{grid-template-columns:1fr}.catch-up-actions{grid-template-columns:repeat(3,1fr);display:grid}.catch-up-book,.catch-up-date{width:100%;min-height:44px}}.complete-early-note{color:#6b4a12;background:#fff7e6;border:1px solid #b4530940;border-radius:12px;margin:0 0 14px;padding:10px 12px;font-size:13px;line-height:1.45}.rain-move-cta{background:var(--navy);color:var(--white);cursor:pointer;border:0;border-radius:999px;align-items:center;gap:8px;min-height:44px;margin:12px 0 4px;padding:0 18px;font-size:13px;font-weight:800;display:inline-flex}.rain-move-cta:hover{background:var(--deep-blue)}.rain-move-cta.compact{white-space:nowrap;min-height:38px;margin:0;padding:0 14px;font-size:12px}.week-outlook{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:12px 0 4px;display:grid}.week-outlook-day{border:1px solid var(--line);background:#ffffffbf;border-radius:12px;place-items:center;gap:2px;padding:7px 2px;display:grid}.week-outlook-day.dry{border-color:#2d916247}.week-outlook-day.wet{background:#eef4fb;border-color:#0f6cae47}.week-outlook-day.is-today{box-shadow:inset 0 0 0 2px var(--glass-blue)}.wo-name{color:var(--slate);text-transform:uppercase;font-size:10px;font-weight:800}.wo-glyph{font-size:18px;line-height:1.1}.wo-label{font-size:10px;font-weight:700}.week-outlook-day.dry .wo-label{color:#2d7a52}.week-outlook-day.wet .wo-label{color:var(--deep-blue)}.tomorrow-rain-banner{background:#eef4fb;border:1px solid #0f6cae40;border-radius:14px;align-items:center;gap:12px;margin:0 0 14px;padding:10px 12px;display:flex}.tomorrow-rain-banner>span{font-size:22px}.tomorrow-rain-banner p{color:var(--slate);flex:1;margin:0;font-size:12px}.tomorrow-rain-banner strong{color:var(--navy);font-size:13px;display:block}.rain-move-modal{max-width:560px}.rain-days{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:4px 0 16px;display:grid}.rain-day{background:var(--white);border:1px solid var(--line);cursor:pointer;border-radius:14px;place-items:center;gap:2px;min-height:76px;padding:8px 4px;display:grid}.rain-day.dry{border-color:#2d916259}.rain-day.wet{background:#f3f7fc}.rain-day.selected{box-shadow:0 0 0 3px var(--glass-blue)}.rain-day-name{font-size:12px;font-weight:800}.rain-day-glyph{font-size:20px}.rain-day-label{color:var(--slate);font-size:11px;font-weight:700}.rain-day.dry .rain-day-label{color:#2d7a52}.rain-jobs,.rain-texts{gap:8px;margin:0 0 16px;padding:0;list-style:none;display:grid}.rain-jobs label{border:1px solid var(--line);cursor:pointer;background:#f8fbff;border-radius:12px;align-items:center;gap:12px;min-height:52px;padding:8px 12px;display:flex}.rain-jobs input{width:20px;height:20px}.rain-jobs span,.rain-texts li>span{gap:2px;min-width:0;display:grid}.rain-jobs small,.rain-texts small{color:var(--slate);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.rain-texts li{border:1px solid var(--line);background:#f8fbff;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:8px 12px;display:flex}.rain-moved-summary{color:var(--slate);margin:0 0 12px;font-size:13px;line-height:1.5}.rain-no-phone{color:var(--muted)}@media (max-width:520px){.week-outlook{gap:4px}.wo-label{font-size:9px}.tomorrow-rain-banner{flex-wrap:wrap}}.settings-signout,.mobile-fab{display:none}@media (max-width:760px){.app-shell{padding-top:6px;padding-bottom:calc(160px + env(safe-area-inset-bottom))}.topbar{border-radius:16px;grid-template-columns:none;align-items:center;gap:10px;margin-top:4px;padding:8px 10px 8px 12px;display:flex;top:6px}.brand-lockup{flex:1;gap:10px;min-width:0}.brand-mark-logo{width:36px;height:36px}.brand-name{font-size:17px}.brand-subtitle{display:none}.header-actions{flex-wrap:nowrap;grid-row:auto;justify-content:flex-end;gap:8px;display:flex}.cloud-status{margin:0 4px 0 0;font-size:0}.sign-out-button{display:none}.settings-signout{color:#b42318;cursor:pointer;background:0 0;border:1px solid #b4231859;border-radius:999px;width:100%;min-height:44px;margin-top:10px;font-weight:800;display:block}.settings-button{width:42px;height:42px}.header-actions>.primary-button{display:none}.mobile-fab{bottom:calc(84px + env(safe-area-inset-bottom));z-index:36;display:block;position:fixed;right:14px}.mobile-fab .primary-button{border-radius:999px;width:auto;min-height:54px;padding:0 22px;box-shadow:0 12px 28px #08233a4d}.summary-strip{margin-top:12px}.page-heading,.sample-note{display:none}.summary-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.summary-strip .summary-card{flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px}.summary-strip .summary-icon{display:none}.summary-strip .summary-card strong{font-size:22px}.summary-strip .summary-card span{font-size:9px}.catch-up-panel{margin-top:12px}.mobile-tabbar button{min-height:52px}}@media (max-width:520px){.topbar{grid-template-columns:none}.header-actions{grid-row:auto}.header-actions .primary-button{flex:none;width:auto}.today-header-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.today-card-header .primary-button,.today-header-actions .maps-route-button{width:100%;min-height:46px;padding:0 10px;font-size:12px}.rain-move-cta{text-align:left;white-space:normal;justify-content:center;width:100%;padding:10px 16px;line-height:1.25}.rain-move-cta.compact{width:auto}}@media (max-width:760px){.today-job-actions{gap:6px}.today-job-actions>button,.today-job-actions>a{min-width:40px;min-height:40px}.job-timer{border:0;margin:6px 0;padding:0}.job-timer .timer-start{min-height:38px}}:is(body:has(.modal-backdrop) .mobile-fab,body:has(.settings-popover) .mobile-fab){display:none}.weather-card .rain-move-cta,.weather-card .week-outlook{width:auto;margin-left:14px;margin-right:14px}@media (max-width:520px){.weather-card .rain-move-cta{width:calc(100% - 28px)}.weather-card .week-outlook{margin-left:8px;margin-right:8px}}.jc{background:var(--white);border:1px solid var(--line);border-left:4px solid var(--glass-blue);border-radius:16px;grid-template-columns:44px minmax(0,1fr);align-items:flex-start;gap:12px;margin:0 0 10px;padding:14px 14px 12px 12px;transition:box-shadow .15s,opacity .15s;display:grid;position:relative}.jc:hover{box-shadow:0 8px 24px #08233a12}.jc.is-quoted{border-left-color:#7c5cc4}.jc.is-wet{border-left-color:#d97706}.jc.is-done{background:#f6fbf8;border-left-color:#2d9162}.jc.is-done.is-unpaid{background:#fffaf0;border-left-color:#d97706}.jc.is-done .jc-title strong{color:var(--slate)}.jc.day-dragging{opacity:.45}.jc.day-drag-over{box-shadow:0 0 0 2px var(--glass-blue)}.jc-check{background:var(--white);color:var(--white);cursor:pointer;border:2px solid #b8cad8;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;font-weight:800;transition:border-color .15s,background .15s;display:flex}.jc-check:hover{border-color:#2d9162}.jc-check.paid{background:#2d9162;border-color:#2d9162}.jc-check.unpaid{background:#d97706;border-color:#d97706}.jc-body{gap:8px;min-width:0;display:grid}.jc-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.jc-title{color:var(--navy);cursor:pointer;text-align:left;background:0 0;border:0;gap:2px;min-width:0;padding:0;display:grid}.jc-title strong{letter-spacing:-.01em;font-size:17px;font-weight:800;line-height:1.25}.jc-title span{color:var(--slate);font-size:13px;line-height:1.35}.jc-price{color:var(--navy);flex:none;font-size:16px;font-weight:800}.jc-meta{flex-wrap:wrap;align-items:center;gap:6px 8px;display:flex}.jc-time{color:var(--navy);font-variant-numeric:tabular-nums;font-size:13px;font-weight:800}.jc-service{color:var(--muted);font-size:12px;font-weight:600}.jc-service:before{content:"·";margin-right:8px}.jc-weather,.jc-status{cursor:pointer;border:1px solid #0000;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;line-height:1}.jc-weather{color:#2d7a52;background:#eef7f1}.jc-weather.sev-windy{color:#8c4a09;background:#fff5e6}.jc-status{color:var(--deep-blue);text-transform:none;background:#eaf3fb}.jc-status.st-quoted{color:#5b3fa8;background:#f1ecfb}.jc-status.st-paid{color:#1f6b44;background:#e6f4ec}.jc-status.st-owed{color:#8c4a09;background:#fff1dc}.jc-quote{color:#5b3fa8;font-size:11px;font-weight:800}.jc-alert{color:#7a4308;background:#fff4e5;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:12px;font-weight:700;display:flex}.jc-alert button{color:var(--white);cursor:pointer;background:#7a4308;border:0;border-radius:999px;min-height:32px;padding:0 12px;font-size:12px;font-weight:800}.jc-note{color:#4d3b07;background:#fff9e8;border:1px solid #f1dfa6;border-radius:10px;padding:8px 10px;font-size:13px;font-weight:700;line-height:1.4}.jc-note span{color:#8a6a10;letter-spacing:.12em;text-transform:uppercase;margin-bottom:2px;font-size:10px;font-weight:800;display:block}.jc-travel{color:var(--slate);margin:0;font-size:12px}.jc-travel.provisional{color:#8c6423}.jc-actions{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.jc-act{color:var(--deep-blue);cursor:pointer;background:#f2f7fc;border:1px solid #0f6cae29;border-radius:12px;align-items:center;gap:6px;min-height:42px;padding:0 13px;font-size:13px;font-weight:800;text-decoration:none;display:inline-flex}.jc-act:hover{background:var(--ice)}.jc-act.primary{background:var(--glass-blue);border-color:var(--glass-blue);color:var(--white)}.jc-act.primary:hover{background:var(--deep-blue)}.jc-more{letter-spacing:.08em;justify-content:center;min-width:46px;margin-left:auto;padding:0 10px}.jc-more.open{background:var(--navy);color:var(--white)}.jc-menu{gap:2px;display:grid}.jc-menu button{text-align:left;min-height:44px}.job-timer.is-compact{background:#f4f8fc;border:0;border-radius:10px;margin:0;padding:8px 10px}.job-timer.is-compact.is-running{background:#eaf3fb;box-shadow:inset 0 0 0 1px #0f6cae4d}@media (max-width:520px){.jc{grid-template-columns:40px minmax(0,1fr);gap:10px;padding:12px 12px 10px 10px}.jc-check{width:40px;height:40px}.jc-actions{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:5px;display:grid}.jc-act{white-space:nowrap;flex-direction:column;justify-content:center;gap:2px;min-width:0;min-height:50px;padding:4px 2px;font-size:11px;line-height:1.1;overflow:hidden}.jc-act>span[aria-hidden]{font-size:16px;line-height:1}.jc-more{margin-left:0;font-size:15px}.jc,.jc-body,.today-job-list{min-width:0;max-width:100%}.jc-act.primary{flex-direction:row;grid-column:span 2;gap:6px;font-size:12px}}@media (min-width:761px){.topbar{grid-template-columns:auto minmax(0,1fr) auto}.primary-nav{justify-self:center}.nav-tab{white-space:nowrap}.header-actions{gap:12px}.header-actions .primary-button,.sign-out-button{white-space:nowrap}}@media (min-width:761px) and (max-width:1480px){.month-summary{display:none}.cloud-status{font-size:0}.brand-subtitle{display:none}.nav-tab{padding:10px 12px}}@media (min-width:761px) and (max-width:1100px){.topbar{grid-template-columns:auto auto}.primary-nav{grid-area:2/1/auto/-1;justify-content:space-between;justify-self:stretch;overflow-x:auto}}@media (max-width:760px){.hide-on-phone{display:none!important}.today-header-actions{grid-template-columns:1fr!important}.mobile-tabbar button{text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.search-and-clear{flex-wrap:wrap}.search-and-clear .search-box{flex:100%;min-width:0}.quote-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"id price""status status""actions actions"}.quote-row>.quote-identity{grid-area:id}.quote-row>.price-cell{grid-area:price}.quote-row>.quote-status{grid-area:status;justify-self:start}.quote-row>.quote-row-actions{flex-direction:row;grid-area:actions}.quote-row>.quote-row-actions .table-action{flex:1;min-height:42px}.round-card-footer{flex-direction:column;align-items:stretch;gap:6px}.round-card-actions{justify-content:space-between}.weather-card{position:relative}.weather-card-row{flex-wrap:nowrap;align-items:flex-start;padding-right:52px}.weather-card-actions{position:absolute;top:10px;right:10px}.weather-headline strong{font-size:15px}.weather-headline>span{font-size:13px}.weather-headline small{font-size:12px}.today-card-header h2{font-size:30px}.today-card-header>div>p:last-child{font-size:15px}.takings-line{font-size:13px!important}.calc-tab-actions{display:none}}.quote-total-wrap{gap:6px;display:grid}.vat-toggle{flex-wrap:wrap;gap:6px;display:flex}.vat-toggle button{background:var(--white);color:var(--navy);cursor:pointer;border:1px solid #0f6cae40;border-radius:999px;padding:8px 14px;font-weight:700}.vat-toggle button.active{background:var(--navy);border-color:var(--navy);color:var(--white)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}
