:root{--ink:#172033;--muted:#657083;--line:#e1e6ed;--paper:#ffffff;--bg:#f5f7fa;--accent:#d9f43d;--accent-soft:#f3facb;--primary:#245bdb;--primary-soft:#edf3ff;--success:#167452;--danger:#c93636;--radius:14px}body,html{background:var(--bg)}body{color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;line-height:1.45}button,input,select,textarea{font:inherit}button{transition:border-color .14s ease,background-color .14s ease,color .14s ease,transform .14s ease}button:active{transform:translateY(1px)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgb(36 91 219/22%);outline-offset:2px}.sidebar{width:248px;padding:24px 14px 18px;background:#172033;border-right:1px solid #263149}.brand{padding:2px 12px 24px}.brand span{font-size:20px;letter-spacing:-.025em}.brand small{color:#9da8ba;font-size:12px}.sidebar nav{display:grid;gap:18px;overflow-y:auto;padding-right:2px}.nav-group{display:grid;gap:3px}.nav-group-label{padding:0 12px 6px;color:#7f8ba0;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.sidebar nav button{min-height:40px;padding:9px 11px;color:#b9c2d1;border-radius:9px;gap:11px}.sidebar nav button b{display:grid;width:25px;height:25px;place-items:center;border-radius:7px;background:rgb(255 255 255/6%);font-size:13px}.sidebar nav button:hover{background:rgb(255 255 255/7%);color:#fff}.sidebar nav button.active{color:#fff;background:#2b3851;box-shadow:none}.sidebar nav button.active b{color:#172033;background:var(--accent)}.sidebar-foot{padding:15px 12px 0;color:#8f9aae;border-top:1px solid rgb(255 255 255/8%)}.main{width:auto;max-width:1600px;margin-left:248px;padding:30px clamp(24px,3.5vw,56px) 72px}.topbar{margin-bottom:24px;padding-bottom:18px;border-bottom:1px solid var(--line)}.topbar p{margin-bottom:3px;font-size:12px}.topbar h1{font-size:clamp(25px,3vw,32px);letter-spacing:-.035em}.stack{gap:16px}.estimate-card,.panel,.shopping-panel,.stat{border-color:var(--line);border-radius:var(--radius);box-shadow:0 1px 2px rgb(23 32 51/4%)}.panel{padding:clamp(18px,2vw,24px)}.panel.full{min-height:auto}.report-title,.section-head,.toolbar{margin-bottom:16px}.panel h2,.report-title h2,.section-head h2{margin-top:3px;font-size:20px}.eyebrow{color:#758196;font-size:10px;letter-spacing:.12em}.muted{color:var(--muted)}.button{min-height:42px;border-radius:9px;padding-inline:16px}.button.primary{border-color:var(--primary);background:var(--primary)}.button.primary:hover{border-color:#1849bd;background:#1849bd}.button.secondary{color:#29364b;background:#fff}.button.secondary:hover{border-color:#aab4c3;background:#f8fafc}.button.accent{border-color:var(--primary);background:var(--primary);color:#fff}.text-button{color:var(--primary)}.dashboard-stats,.stats,.time-summary,.week-stats{gap:10px}.dashboard-stats button,.stat,.time-summary article,.week-stats article{min-height:112px;padding:17px 18px;border-color:var(--line);border-radius:12px;box-shadow:none}.dashboard-stats span,.stat>span,.time-summary span,.week-stats span{color:var(--muted);font-size:11px;font-weight:700}.dashboard-stats strong,.stat strong,.week-stats strong{font-size:24px}.segments{padding:3px;border:1px solid var(--line);border-radius:9px;background:#eef1f5}.segments button{min-height:36px;padding:7px 12px}.segments button.active{color:var(--ink);box-shadow:0 1px 3px rgb(23 32 51/12%)}.earnings-filters input,.earnings-filters select,.estimate-form input,.estimate-form select,.estimate-form textarea,.form input,.form select,.form textarea,.search{min-height:44px;border-color:#ccd4df;border-radius:9px;background:#fff}.form label,.grid-form label{color:#435069;font-size:12px}.form label:focus-within,.grid-form label:focus-within{color:var(--primary)}.calendar-hero,.dashboard-hero,.earnings-hero,.estimate-hero,.expenses-hero,.inventory-hero,.quotes-hero,.service-hero,.shopping-hero,.voice-hero,.week-hero{padding:clamp(20px,3vw,28px);border:1px solid #dbe3ed;border-radius:var(--radius);background:linear-gradient(135deg,#ffffff,#f1f5fb);color:var(--ink);box-shadow:0 1px 2px rgb(23 32 51/4%)}.calendar-hero h2,.dashboard-hero h2,.earnings-hero h2,.estimate-hero h2,.expenses-hero h2,.inventory-hero h2,.quotes-hero h2,.service-hero h2,.shopping-hero h2,.voice-hero h2,.week-hero h2{color:var(--ink);font-size:clamp(26px,3vw,36px);letter-spacing:-.04em}.calendar-hero p,.dashboard-hero p,.earnings-hero p,.estimate-hero p,.expenses-hero p,.inventory-hero p,.quotes-hero p,.service-hero p,.shopping-hero p,.voice-hero p,.week-hero p{color:var(--muted)}.calendar-hero .eyebrow,.dashboard-hero .eyebrow,.earnings-hero .eyebrow,.estimate-hero .eyebrow,.expenses-hero .eyebrow,.inventory-hero .eyebrow,.quotes-hero .eyebrow,.service-hero .eyebrow,.shopping-hero .eyebrow,.voice-hero .eyebrow,.week-hero .eyebrow{color:var(--primary)}.calendar-toolbar button,.week-controls button{border-color:#cbd4e0;background:#fff;color:var(--ink)}.earnings-hero input,.earnings-hero label,.earnings-hero select{color:#435069}.inventory-hero>strong{border-color:#cfd8e4;background:#fff}.dashboard-stats .result,.week-stats .week-result{border-color:#b9d3c8;background:#eef8f4;color:var(--ink)}.dashboard-stats .result strong,.week-stats .week-result strong{color:var(--success);font-size:25px}.dashboard-stats .warning{border-color:#eadca8;background:#fffbeb}.weekly-cost-breakdown>.section-head>strong{padding:9px 12px;border-radius:9px;background:var(--primary-soft);color:#244d9f}.weekly-cost-columns{grid-template-columns:1fr}.weekly-cost-columns>div{border:0;padding:0;background:transparent}.entry-table article,.expense-list article,.week-completed-list article,.weekly-cost-list article{padding-block:13px}.week-completed-list article>b,.weekly-cost-list b{color:var(--success)}.estimate-layout{gap:16px}.estimate-list{gap:10px}.estimate-card{overflow:clip}.estimate-open{padding:16px 18px}.estimate-open:hover{background:#fafbfd}.estimate-card h3{margin:11px 0 5px;font-size:17px}.estimate-card-foot>span{color:#48566c;background:#f0f3f7}.estimate-card-foot .next-step{background:var(--accent-soft)}.estimate-actions button{min-height:42px;color:#435069;background:#fafbfd}.estimate-actions button:hover{background:#f0f4f8}.quote-items-editor>div{grid-template-columns:28px minmax(300px,2fr) 70px 110px 110px 58px 30px;align-items:center;padding:6px;border:1px solid transparent;border-radius:9px;transition:border-color .14s ease,background-color .14s ease,opacity .14s ease}.quote-items-editor>div:has(.quote-drag-handle:hover){border-color:#c9d5e5;background:#fff}.quote-items-editor>div.dragging{border-color:#8eabe8;background:var(--primary-soft);opacity:.55}.quote-drag-handle{display:grid;width:28px;height:38px;place-items:center;color:#8591a4;border-radius:7px;cursor:grab;font-size:20px;line-height:1;touch-action:none;-webkit-user-select:none;user-select:none}.quote-drag-handle:hover{color:var(--primary);background:var(--primary-soft)}.quote-drag-handle:active{cursor:grabbing}.quote-item-order{display:flex;gap:2px}.quote-items-editor>div .quote-item-order button{display:grid;width:27px;height:34px;place-items:center;border:1px solid #d5dce6;border-radius:6px;background:#fff;color:#4d5a6f;font-size:13px}.quote-items-editor>div .quote-item-order button:disabled{cursor:default;opacity:.28}.quote-items-editor>div .quote-item-remove{color:#a74a4a}.quote-draft-notice{display:grid;gap:2px;padding:12px 14px;border:1px solid #b9d1c7;border-radius:9px;background:#eef8f4;color:#205f49}.quote-draft-notice b{font-size:12px}.quote-draft-notice span{font-size:11px}.shopping-panel{top:20px}.dashboard-columns,.dashboard-orders-list{gap:12px}.dashboard-job,.inventory-list article,.quick-todos-list article,.service-reminder-list article,.shopping-jobs article{border-radius:10px}.dashboard-orders-panel,.quick-todos-panel,.tomorrow-panel{background:#fff}.calendar-panel{padding:20px}.calendar-day{background:#fff}.calendar-day.today{background:#f5f8ff;box-shadow:inset 0 3px var(--primary)}.calendar-day.today>time{background:var(--primary)}.calendar-day-earning{float:right;margin-top:3px;padding:3px 6px;border-radius:6px;background:#eaf6f1;color:#176044;font-size:9px;line-height:1.4;white-space:nowrap}.calendar-events .calendar-event-earning{margin-top:4px;padding-top:4px;border-top:1px solid rgb(22 116 82/18%);color:#176044;font-size:9px;font-weight:900}.modal-backdrop{background:rgb(17 27 45/58%);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{border:1px solid #d7dee8;border-radius:16px;box-shadow:0 24px 80px rgb(15 23 42/24%)}.modal:has(.quote-form){width:min(1120px,100%);max-height:95vh}.modal>header{border-bottom-color:var(--line);background:#fbfcfe}.estimate-form>section{border-top-color:var(--line)}.work-time-quick-edit{display:grid;gap:12px;margin-bottom:18px;padding:16px;border:1px solid #bfd0ed;border-radius:11px;background:#f4f7fc}.work-time-quick-heading{display:flex;align-items:end;justify-content:space-between;gap:15px}.work-time-quick-heading h3{margin:2px 0 0;font-size:16px}.work-time-quick-heading small{color:var(--muted)}.work-time-quick-list{display:grid;gap:7px}.work-time-quick-list article{display:grid;grid-template-columns:minmax(150px,1fr) 145px 95px 95px 65px;align-items:end;gap:8px;padding:10px;border:1px solid #d9e1ed;border-radius:9px;background:#fff}.work-time-quick-list article>strong{align-self:center;overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.work-time-quick-list label{display:grid;gap:3px;color:var(--muted);font-size:9px;font-weight:800}.work-time-quick-list input{width:100%;min-height:38px;padding:6px 8px;border:1px solid #ccd5e2;border-radius:7px;background:#fff}.work-time-duration{align-self:center;color:var(--success);font-size:12px;text-align:right}.work-time-empty{margin:0;padding:6px 2px;font-size:12px}.work-time-add{display:grid;grid-template-columns:145px 95px 95px minmax(170px,1fr) auto;align-items:end;gap:8px;padding-top:12px;border-top:1px solid #d6dfec}.work-time-add label{display:grid;gap:3px;color:var(--muted);font-size:9px;font-weight:800}.work-time-add input{width:100%;min-height:40px;padding:6px 8px;border:1px solid #ccd5e2;border-radius:7px;background:#fff}.work-time-add .button{min-height:40px;white-space:nowrap}.form-step{background:var(--primary)}.estimate-save{border-top-color:var(--line);box-shadow:0 -8px 24px rgb(255 255 255/92%)}.completion-block,.finance-note,.quick-intro{border-radius:11px}.toast{border-radius:12px;background:#172033;box-shadow:0 14px 40px rgb(15 23 42/24%)}.automatic-backups-panel{grid-column:1/-1}.automatic-backup-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:17px}.automatic-backup-list article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:#f8fafc}.automatic-backup-list article>div{display:grid;gap:2px}.automatic-backup-list strong{font-size:12px}.automatic-backup-list span{color:var(--muted);font-size:10px}.automatic-backup-list .button{min-height:34px;padding-inline:11px;font-size:11px}.quote-print-overlay{background:#e9edf3}.quote-print{max-width:900px;min-height:1120px;padding:48px 52px 42px;color:#172033;font-size:13px;box-shadow:0 24px 70px rgb(15 23 42/16%)}.quote-print>.quote-document-header{align-items:flex-start;padding-bottom:22px;border-bottom:2px solid #172033}.quote-document-brand{display:flex!important;align-items:center;gap:0!important}.quote-document-brand>div{display:grid;gap:1px}.quote-document-brand strong{font-size:21px!important;letter-spacing:-.03em}.quote-document-brand span:not(.quote-logo){color:#647083;font-size:11px}.quote-document-number{display:grid;justify-items:end;gap:2px!important;text-align:right}.quote-document-number>span{color:#687489;font-size:10px;font-weight:900;letter-spacing:.16em}.quote-document-number>b{font-size:18px}.quote-document-number>small{margin-top:4px;color:#687489}.quote-parties{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:24px 0}.quote-parties>div{min-height:102px;display:grid;align-content:start;gap:3px;padding:15px 17px;border:1px solid #dce2ea;border-radius:9px;background:#f8fafc}.quote-parties small{margin-bottom:5px;color:#6b7689;font-size:9px;font-weight:900;letter-spacing:.12em}.quote-parties b{font-size:13px}.quote-parties span{color:#5d687b;font-size:11px}.quote-document-title{margin:30px 0 22px}.quote-print .quote-document-title h1{margin:2px 0 5px;font-size:27px;line-height:1.15;letter-spacing:-.035em}.quote-document-title>span{color:#687489;font-size:11px}.quote-explanation{margin:20px 0 24px;padding:14px 16px;border:0;border-left:3px solid #245bdb;border-radius:0 8px 8px 0;background:#f3f6fb}.quote-explanation h2,.quote-variant-print h2{color:#172033}.quote-explanation h2{margin-bottom:5px;font-size:13px}.quote-explanation p,.quote-variant-print header p{color:#566175;font-size:11px;line-height:1.5}.quote-variants-print{gap:22px;margin-top:22px}.quote-variant-print{padding:0;overflow:hidden;border-color:#cfd7e2;border-radius:10px}.quote-variant-print>header{padding:15px 17px 13px;border-bottom:1px solid #dce2ea;background:#f6f8fb}.quote-variant-print>header>span{color:#245bdb;font-size:9px}.quote-variant-print h2{margin:3px 0 2px;font-size:17px}.quote-print table,.quote-variant-print table{width:100%;margin:0;table-layout:fixed}.quote-print td,.quote-print th{padding:9px 7px;border-bottom:1px solid #e2e7ee;font-size:10px;vertical-align:top}.quote-print th{color:#536074;background:#fbfcfd;font-size:8px;letter-spacing:.04em;text-transform:uppercase}.quote-print td:first-child,.quote-print th:first-child{width:34px;text-align:center}.quote-print td:nth-child(2),.quote-print th:nth-child(2){width:31%;text-align:left;overflow-wrap:anywhere}.quote-print td:nth-child(3),.quote-print th:nth-child(3){width:48px;text-align:center}.quote-print td:nth-child(5),.quote-print th:nth-child(5){width:43px;text-align:center}.quote-print tfoot{font-size:11px}.quote-print tfoot td{border-bottom:0;padding-block:6px;background:#f8fafc}.quote-print tfoot tr:first-child td{padding-top:11px;border-top:2px solid #cfd7e2}.quote-print tfoot tr:last-child td{padding-top:9px;padding-bottom:11px;background:#edf3ff;color:#173e96;font-size:13px;font-weight:900}.quote-notes{margin-top:24px;padding:15px 17px;border:1px solid #dce2ea;border-radius:9px}.quote-notes h2{margin:0 0 5px;font-size:12px}.quote-notes p{margin:0;color:#566175;font-size:11px;line-height:1.5}.quote-print>footer{align-items:end;margin-top:38px;padding-top:15px;border-top-color:#cfd7e2;font-size:10px}.quote-print>footer b{font-size:11px}.quote-print>footer span{color:#6a7588}.mobile-menu-backdrop,.mobile-menu-sheet{display:none}@media (min-width:701px) and (max-width:1000px){.quote-items-editor>div{grid-template-columns:28px minmax(180px,2fr) 60px 90px 90px 54px 30px}}@media (max-width:900px){.main{margin:0;padding:20px 18px 100px}.topbar{margin-bottom:18px;padding-bottom:13px}.mobile-nav{height:calc(68px + env(safe-area-inset-bottom));padding:6px 8px max(6px,env(safe-area-inset-bottom));justify-content:space-around;overflow:visible;border-top-color:#dbe1e9;box-shadow:0 -8px 30px rgb(20 31 49/8%)}.mobile-nav button{position:relative;flex:1 1 20%;max-width:88px;color:#778296;font-size:10px}.mobile-nav button b{font-size:17px}.mobile-nav button.active{color:var(--primary)}.mobile-nav button.active:before{content:"";position:absolute;top:-6px;left:24%;right:24%;height:3px;border-radius:0 0 3px 3px;background:var(--primary)}.mobile-menu-backdrop{position:fixed;z-index:45;inset:0;display:flex;align-items:flex-end;padding-bottom:calc(68px + env(safe-area-inset-bottom));background:rgb(17 27 45/42%)}.mobile-menu-sheet{display:block;width:100%;max-height:min(70dvh,620px);overflow-y:auto;padding:20px 16px 22px;border-radius:20px 20px 0 0;background:#fff;box-shadow:0 -20px 60px rgb(15 23 42/22%)}.mobile-menu-sheet>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.mobile-menu-sheet h2{margin:2px 0 0;font-size:24px}.mobile-menu-sheet>header>button{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:25px}.mobile-menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.mobile-menu-grid button{min-height:82px;border:1px solid var(--line);border-radius:12px;background:#f8fafc;color:#435069;display:grid;place-items:center;align-content:center;gap:5px;font-size:11px;text-align:center}.mobile-menu-grid button b{display:grid;width:30px;height:30px;place-items:center;border-radius:8px;background:#e9eef5;font-size:14px}.mobile-menu-grid button.active{border-color:#a9c0f2;background:var(--primary-soft);color:#1746ad;font-weight:800}.mobile-menu-grid button.active b{color:#fff;background:var(--primary)}}@media (max-width:700px){.calendar-hero,.dashboard-hero,.earnings-hero,.estimate-hero,.expenses-hero,.inventory-hero,.quotes-hero,.service-hero,.shopping-hero,.voice-hero,.week-hero{padding:19px}.calendar-hero h2,.dashboard-hero h2,.earnings-hero h2,.estimate-hero h2,.expenses-hero h2,.inventory-hero h2,.quotes-hero h2,.service-hero h2,.shopping-hero h2,.voice-hero h2,.week-hero h2{font-size:27px}.section-head{align-items:flex-start}.weekly-cost-breakdown>.section-head>strong{width:100%;line-height:1.6}.quote-print{padding:25px 20px}.quote-parties{grid-template-columns:1fr}.quote-items-editor>div{grid-template-columns:28px minmax(0,1fr) 62px;padding:9px;border-color:var(--line);background:#fff}.quote-items-editor>div .quote-drag-handle{grid-column:1;grid-row:1}.quote-items-editor>div .quote-item-name{grid-column:2/4;grid-row:1}.quote-items-editor>div .quote-item-quantity{grid-column:1/2;grid-row:2}.quote-items-editor>div .quote-item-net{grid-column:2;grid-row:2}.quote-items-editor>div .quote-item-gross{grid-column:3;grid-row:2}.quote-items-editor>div .quote-item-order{grid-column:1/3;grid-row:3}.quote-items-editor>div .quote-item-order button{width:38px}.quote-items-editor>div .quote-item-remove{grid-column:3;grid-row:3;justify-self:end}.automatic-backup-list{grid-template-columns:1fr}.work-time-quick-heading{align-items:flex-start;flex-direction:column;gap:3px}.work-time-quick-list article{grid-template-columns:1fr 1fr}.work-time-quick-list article>strong,.work-time-quick-list label:first-of-type{grid-column:1/-1}.work-time-duration{grid-column:1/-1;text-align:left}.work-time-add{grid-template-columns:1fr 1fr}.work-time-add .button,.work-time-add .work-time-purpose,.work-time-add label:first-child{grid-column:1/-1}}@media (max-width:560px){.main{padding:14px 11px 92px}.topbar h1{font-size:25px}.panel{padding:16px}.dashboard-stats,.stats,.week-stats{grid-template-columns:1fr 1fr}.dashboard-stats button,.stat,.week-stats article{min-height:102px;padding:14px}.dashboard-stats .result,.stats>:last-child:nth-child(odd),.week-stats .week-result{grid-column:1/-1}.mobile-menu-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media print{.mobile-menu-backdrop{display:none!important}body:has(.quote-print) .quote-print{font-family:Arial,Helvetica,sans-serif;color:#111827!important}body:has(.quote-print) .quote-print tfoot tr:last-child td{print-color-adjust:exact;-webkit-print-color-adjust:exact}body:has(.quote-print) .quote-variant-print{page-break-inside:auto;break-inside:auto}body:has(.quote-print) .quote-document-title,body:has(.quote-print) .quote-parties,body:has(.quote-print) .quote-variant-print tfoot,body:has(.quote-print) .quote-variant-print thead,body:has(.quote-print) .quote-variant-print tr,body:has(.quote-print) .quote-variant-print>header{page-break-inside:avoid;break-inside:avoid}}