html,body,#root{height:100%}*{box-sizing:border-box}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f0e6;--bg-accent:#ebe6d8;--surface:#fff;--surface-strong:#fff;--border:#d9d3c1;--text:#263228;--muted:#6b6b5d;--accent:#378737;--accent-strong:#1f6a2f;--accent-soft:#edf3e3;--header-bg:#d9e6cf;--header-text:#234329;--header-border:#bfd2b2;--danger:#b42318;--warning:#a16207;--shadow:0 20px 48px #294b2214;--sidebar-bg:#d2dfc4;--sidebar-text:#234329;--sidebar-active:#1f6a2f}body{background:radial-gradient(circle at top left, #3787371a, transparent 26%), radial-gradient(circle at top right, #bdb18d29, transparent 22%), linear-gradient(180deg, #faf7ef 0%, var(--bg-accent) 18%, var(--bg) 100%);color:var(--text);margin:0;font-family:Trebuchet MS,Segoe UI,Tahoma,Geneva,Verdana,sans-serif;overflow:hidden}#root{min-height:100vh}h1,h2,h3,p{margin:0}label{color:var(--text);flex-direction:column;gap:6px;font-size:14px;display:flex}input,select,textarea{border:1px solid var(--border);background:var(--surface-strong);color:var(--text);border-radius:8px;padding:10px 12px;font-size:14px}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:2px solid #1d6b572e}button,.button-link{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:10px 14px;font-size:14px;text-decoration:none;transition:transform .15s,box-shadow .15s,background .15s,border-color .15s;display:inline-flex}button:hover,.button-link:hover{background:var(--accent-strong);border-color:var(--accent-strong);transform:translateY(-1px);box-shadow:0 10px 24px #1d6b572e}button:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}button.secondary,.secondary-link{color:var(--text);border-color:var(--border);background:0 0}button.secondary:hover,.secondary-link:hover{background:#fff;border-color:#c9bba4}button.warning-button{color:var(--warning);background:#fef3c7;border-color:#facc15}button.warning-button:hover{color:#854d0e;background:#fde68a;border-color:#eab308;box-shadow:0 10px 24px #ca8a0433}button.danger-button{background:var(--danger);color:#fff;border-color:var(--danger)}button.danger-button:hover{background:#951f14;border-color:#951f14;box-shadow:0 10px 24px #b4231838}.auth-container,.customers-container{max-width:1080px;margin:0 auto;padding:24px 16px}.auth-container{max-width:420px;padding-top:48px}.panel{background:var(--surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow);border:1px solid #d9d3c1e6;border-radius:8px;padding:18px}.form-grid{gap:14px;display:grid}.app-shell{grid-template:"header header""sidebar main"1fr"footer footer"/92px 1fr;height:100vh;display:grid;overflow:hidden}.sidebar{background:linear-gradient(180deg, var(--sidebar-bg) 0%, #cad8bc 100%);color:var(--sidebar-text);border-right:1px solid #b9ccb0;flex-direction:column;grid-area:sidebar;gap:20px;padding:20px 10px;display:flex}.sidebar-brand{border-radius:8px;justify-content:center;padding:4px 0 0;transition:transform .15s,opacity .15s,box-shadow .15s;display:flex}.sidebar-brand:hover,.sidebar-brand:focus-visible{opacity:.92;transform:translateY(-1px)}.sidebar-brand:focus-visible{outline-offset:4px;outline:2px solid #1f6a2f59}.sidebar-brand-kicker,.top-header-eyebrow,.section-kicker{text-transform:uppercase;letter-spacing:.12em;color:#234329b3;font-size:12px}.dashboard-hero-card .section-kicker{color:#d9f0c8}.sidebar-brand-logo{object-fit:contain;width:74px;height:auto;display:block}.menu{flex-direction:column;gap:10px;display:flex}.menu a{color:var(--sidebar-text);text-align:center;border-radius:8px;flex-direction:column;align-items:center;gap:8px;padding:10px 8px;font-size:13px;text-decoration:none;transition:background .15s,color .15s,transform .15s;display:flex}.menu a.active,.menu a:hover{color:var(--sidebar-active);background:#ffffffbd;transform:translateY(-1px);box-shadow:0 10px 24px #1f6a2f14}.menu-icon{letter-spacing:.08em;background:#ffffffd1;border:1px solid #2343291f;border-radius:8px;justify-content:center;align-items:center;width:38px;height:38px;font-size:11px;font-weight:700;display:inline-flex}.menu a.active .menu-icon,.menu a:hover .menu-icon{background:linear-gradient(135deg, var(--accent) 0%, #7bb55e 100%);color:#fff;border-color:#0000}button.menu-toggle{cursor:pointer;background:#ffffffad;border:1px solid #23432938;border-radius:8px;flex-direction:column;flex-shrink:0;justify-content:center;gap:5px;width:42px;height:42px;padding:10px;display:none}.menu-toggle-bar{background:var(--header-text);border-radius:999px;width:100%;height:2px;transition:transform .2s,opacity .2s;display:block}.menu-open .menu-toggle-bar:first-child{transform:translateY(7px)rotate(45deg)}.menu-open .menu-toggle-bar:nth-child(2){opacity:0}.menu-open .menu-toggle-bar:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.mobile-menu-overlay{display:none}.sidebar-footer{border-top:1px solid #23432924;flex-direction:column;align-items:stretch;gap:14px;margin-top:auto;padding-top:16px;display:none}.sidebar-footer .top-header-user{align-items:center}.sidebar-footer button.secondary{width:100%;color:var(--sidebar-text);background:#ffffffad;border-color:#23432938}.main-area{background:linear-gradient(#fffbf3b8 0%,#f4efe4c7 100%);grid-area:main;min-height:0;padding:14px 14px 0;overflow:hidden}.top-header{background:linear-gradient(180deg, #dfead5 0%, var(--header-bg) 100%);color:var(--header-text);border:1px solid var(--header-border);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0;grid-area:header;justify-content:space-between;align-items:center;gap:16px;margin:0;padding:8px 18px;display:flex}.top-header .muted-text,.top-header-eyebrow{color:#234329b8}.top-header-brand,.top-header-actions,.top-header-user{align-items:center;gap:14px;display:flex}.top-header-brand{min-width:0}.top-header-logo{object-fit:contain;flex-shrink:0;width:auto;max-width:255px;height:64px;display:block}.top-header-actions{margin-left:auto}.user-badge{width:42px;height:42px;color:var(--header-text);background:#ffffff8f;border:1px solid #23432929;border-radius:8px;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.top-header button.secondary{color:var(--header-text);background:#ffffffad;border-color:#23432938}.top-header button.secondary:hover{color:var(--header-text);background:#ffffffe0;border-color:#23432952}.content-area{border-radius:12px;height:100%;min-height:0;padding:4px;overflow:auto}.app-footer{background:var(--accent-strong);color:#fff;border-top:1px solid #ffffff1f;grid-area:footer;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;display:flex}.app-footer .muted-text{color:#ffffffbd}.page-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.page-header>div:first-child{min-width:0}.invoice-details-header-actions{justify-items:end;gap:10px;display:grid}.invoice-back-link{min-height:38px;font-weight:700}.invoice-details-action-list{justify-content:flex-end;align-items:center}.invoice-details-action-list button,.invoice-back-link{min-height:42px;padding:10px 16px;font-weight:700}.invoice-action-neutral{color:var(--text);background:#ffffffd1;border-color:#7b715d47}.invoice-action-neutral:hover{color:var(--text);background:#fff;border-color:#7b715d6b}.invoice-action-primary{color:#fff;background:linear-gradient(135deg,#2f7f35 0%,#3f9442 100%);border-color:#2f7f35;box-shadow:0 10px 22px #2f7f3533}.invoice-action-primary:hover{background:linear-gradient(135deg,#27692c 0%,#347c39 100%);border-color:#27692c;box-shadow:0 12px 26px #27692c3d}.invoice-action-warning{color:#8a5a06;background:#fff8e6;border-color:#e9c46a}.invoice-action-warning:hover{color:#724800;background:#ffefc2;border-color:#d9ad45;box-shadow:0 10px 24px #d9ad4533}.invoice-action-danger{color:var(--danger);background:#fff1f0;border-color:#b4231847}.invoice-action-danger:hover{color:#8f1d14;background:#fde2e0;border-color:#b423186b;box-shadow:0 10px 24px #b4231829}.invoice-action-primary:focus-visible,.invoice-action-warning:focus-visible,.invoice-action-danger:focus-visible,.invoice-action-neutral:focus-visible,.invoice-back-link:focus-visible{outline-offset:3px;outline:2px solid #23432947}.compact-header{margin-bottom:0}.row-actions{flex-wrap:wrap;gap:8px;display:flex}.paired-actions{justify-content:flex-end;align-items:center}.icon-action-group{gap:8px;display:flex}.icon-button{border-radius:999px;width:38px;height:38px;padding:0}.icon-button svg{width:18px;height:18px}.icon-button.has-content{background:var(--accent-soft);color:var(--accent-strong);border-color:#1f6a2f47}.customer-create-button{background:var(--accent);border-color:var(--accent);color:#fff}.customer-create-button:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.customer-list-icon-button{width:auto;min-width:0;height:auto;color:var(--accent);box-shadow:none;background:0 0;border:none;border-radius:0;padding:2px}.customer-list-icon-button:hover{color:var(--accent-strong);box-shadow:none;background:0 0;border-color:#0000;transform:translateY(-1px)}.customer-list-icon-button:focus-visible{outline-offset:4px;outline:2px solid #1f6a2f47}.customer-list-icon-button.has-content{color:var(--accent-strong);background:0 0;border-color:#0000}.danger-icon-button{color:var(--danger)}.danger-icon-button:hover{color:#951f14}.danger-icon-button:focus-visible{outline:2px solid #b4231840}.modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#2632285c;justify-content:center;align-items:center;padding:24px 16px;display:flex;position:fixed;inset:0}.modal-dialog{width:min(700px,100%);max-width:700px;min-height:min(500px,100vh - 48px);max-height:calc(100vh - 48px);overflow-y:auto}.modal-dialog .panel{margin:0}.modal-dialog-compact{width:min(480px,100%);max-width:480px;min-height:auto}.customer-export-wrap{position:relative}.customer-export-button.is-open{border-color:#3076356b;box-shadow:0 10px 24px #2f7f351f}.customer-export-menu{z-index:5;background:linear-gradient(#fffdf9 0%,#f5efe3 100%);border:1px solid #d9d3c1f2;border-radius:10px;gap:4px;min-width:180px;padding:8px;display:grid;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 16px 30px #4c443529}.customer-export-option{text-align:left;border-radius:8px;justify-self:stretch;width:100%;min-height:40px;padding:8px 12px}.customer-export-option:hover:not(:disabled),.customer-export-option:focus-visible{background:#30763514}.customer-export-empty,.customer-export-error{margin:4px 8px 8px;font-size:13px}.customer-import-dialog{width:min(920px,100%);max-width:920px}.customer-import-dialog .table-wrap{max-height:min(420px,50vh);overflow:auto}.customer-import-loading-backdrop{z-index:1100}.customer-import-loading{text-align:center;justify-items:center;gap:12px;width:min(420px,100%);margin:0;padding:28px 24px;display:grid}.customer-import-loading h2{margin:0;font-size:1.35rem}.customer-import-spinner{border:3px solid #1f6a2f2e;border-top-color:var(--accent);border-radius:50%;width:42px;height:42px;animation:.8s linear infinite customer-import-spin}.customer-import-progress{background:#1f6a2f1f;border-radius:999px;width:100%;height:8px;overflow:hidden}.customer-import-progress-bar{border-radius:inherit;background:var(--accent);height:100%;transition:width .2s}.customer-import-loading-hint{margin:0;font-size:.9rem}@keyframes customer-import-spin{to{transform:rotate(360deg)}}.confirm-dialog{gap:14px;display:grid}.confirm-dialog h2,.confirm-dialog p{margin:0}.confirm-dialog .secondary,.confirm-dialog .secondary:hover{border-color:#0000}.button-text{color:var(--muted);box-shadow:none;background:0 0;border:none;padding:10px 14px}.button-text:hover{color:var(--text);box-shadow:none;background:0 0;border-color:#0000;transform:none}.button-text:focus-visible{outline-offset:4px;outline:2px solid #1f6a2f47}.danger-text-button{color:var(--danger)}.danger-text-button:hover{color:#8f1d14}.customer-search-field{width:100%;position:relative}.customer-search-field input{width:100%}.customer-search-results{z-index:20;border:1px solid var(--border);background:var(--surface-strong);max-height:240px;box-shadow:var(--shadow);border-radius:8px;gap:6px;padding:8px;display:grid;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.customer-search-result{width:100%;color:var(--text);box-shadow:none;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;display:flex}.customer-search-result:hover,.customer-search-result.is-selected{background:var(--accent-soft);color:var(--accent-strong);border-color:#1f6a2f2e}.customer-search-result small,.customer-search-empty,.field-hint{color:var(--muted);font-size:12px}.customer-search-empty,.field-hint{margin:0}.error{color:var(--danger);font-size:14px}.muted-text{color:var(--muted);font-size:14px}.dashboard-home{flex-direction:column;gap:18px;display:flex}.dashboard-hero{background:radial-gradient(circle at 100% 0,#7ca86d2e,#0000 30%),linear-gradient(135deg,#fffdf7 0%,#f7f1e5 54%,#eae4d4 100%);grid-template-columns:minmax(0,1.6fr) minmax(280px,.9fr);gap:18px;padding:24px;display:grid}.dashboard-hero-copy h1{max-width:12ch;margin:10px 0 14px;font-size:clamp(32px,4vw,52px);line-height:1.02}.dashboard-lead{color:#4f5d48;max-width:58ch;font-size:16px}.dashboard-hero-actions{flex-wrap:wrap;gap:12px;margin-top:20px;display:flex}.dashboard-hero-card{color:#fff;background:linear-gradient(#24582b 0%,#377c3d 100%);border-radius:8px;padding:20px;box-shadow:0 20px 40px #24642b33}.hero-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px;display:grid}.hero-stat-grid article{color:#1f3623;background:#f4f8ef;border:1px solid #24582b29;border-radius:8px;padding:16px;box-shadow:0 10px 22px #1132151f}.hero-stat-grid strong,.metric-card h2{margin-bottom:6px;font-size:28px;display:block}.hero-stat-grid span{color:#4b6150;font-size:13px}.dashboard-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.metric-card{min-height:160px}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.dashboard-section{min-height:280px}.dashboard-section-wide{grid-column:1/-1}.status-chip{background:var(--accent-soft);color:var(--accent-strong);border-radius:8px;padding:8px 12px;font-size:13px;font-weight:700}.dashboard-list{flex-direction:column;gap:12px;margin-top:18px;display:flex}.dashboard-list-item{border:1px solid var(--border);background:linear-gradient(#fffdf9 0%,#f5efe3 100%);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:16px;display:flex}.dashboard-list-meta{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.dashboard-list-meta span,.action-card{border:1px solid var(--border);background:#f7f2e8;border-radius:8px;padding:10px 12px}.action-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.action-card strong{margin-bottom:8px;display:block}table{border-collapse:collapse;width:100%;margin-top:12px}.table-wrap{overflow-x:auto}.customers-overview{grid-template-columns:minmax(220px,280px) minmax(0,1fr);align-items:end;gap:16px;margin-bottom:18px;display:grid}.customers-container .panel{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.customers-overview-card{background:var(--surface);border:1px solid #d9d3c1f2;border-radius:8px;flex-direction:column;gap:6px;padding:18px;display:flex}.customers-overview-card strong{font-size:clamp(28px,4vw,38px);line-height:1}.customers-search{gap:8px}.customers-search input{min-height:46px;font-size:15px}.customer-name-link{color:var(--accent-strong);font-weight:600;text-decoration:none}.customer-name-link:hover{text-decoration:underline}.invoice-customer-filter-banner{border:1px solid var(--border);background:#2343290f;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:10px 12px;display:flex}.invoice-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px;margin-bottom:18px;display:flex}.invoice-search{flex:320px;gap:8px;min-width:min(100%,360px);display:grid}.invoice-search input{min-height:46px;font-size:15px}.invoice-filter-wrap{position:relative}.invoice-filter-button{min-width:120px;min-height:46px}.invoice-filter-button.is-open{border-color:#3076356b;box-shadow:0 10px 24px #2f7f351f}.invoice-filter-menu{z-index:5;background:linear-gradient(#fffdf9 0%,#f5efe3 100%);border:1px solid #d9d3c1f2;border-radius:10px;gap:12px;width:min(320px,100vw - 48px);padding:16px;display:grid;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 16px 30px #4c443529}.invoice-filter-menu label{color:#3b4252;gap:8px;font-size:14px;font-weight:600;display:grid}.invoice-filter-menu select{min-height:44px}.invoice-filter-reset{justify-self:start}.customer-empty-state{margin-top:18px}.pagination-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;display:flex}.pagination-meta{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.page-size-control{color:var(--muted);flex-direction:row;align-items:center;gap:8px;font-size:14px;display:inline-flex}.page-size-control select{min-width:72px;padding:8px 10px}.pagination-status{justify-content:center;align-items:center;min-width:90px;display:inline-flex}th,td{text-align:left;border-bottom:1px solid #d7cfbfe6;padding:12px 8px;font-size:14px}th{color:#3b4252;font-weight:700}a{color:var(--accent-strong)}@media (width<=1100px){.dashboard-metrics,.dashboard-grid,.action-grid,.dashboard-hero,.customers-overview{grid-template-columns:1fr}}@media screen and (width<=900px){.app-footer,.dashboard-list-item,.page-header{flex-direction:column;align-items:flex-start}.invoice-details-header-actions{justify-items:stretch;width:100%}.invoice-details-action-list{justify-content:flex-start}}@media screen and (width>=641px){.app-shell{grid-template-columns:92px 1fr;grid-template-areas:"header header""sidebar main""footer footer"}button.menu-toggle{display:none}.sidebar{z-index:auto;width:auto;padding:20px 10px;position:relative;top:auto;bottom:auto;left:auto;overflow-y:visible;transform:none}.sidebar-brand{display:flex}.sidebar-footer{display:none}.top-header-actions{display:flex}.menu a{flex:initial;text-align:center;flex-direction:column;justify-content:center;align-items:center;width:auto;padding:10px 8px}}@media screen and (width<=640px){.app-shell{grid-template-columns:1fr;grid-template-areas:"header""main""footer"}button.menu-toggle{display:inline-flex}.mobile-menu-overlay{z-index:120;cursor:pointer;background:#16261a6b;border:0;padding:0;display:block;position:fixed;inset:0}.sidebar{z-index:130;border-bottom:none;border-right:1px solid #b9ccb0;width:min(280px,86vw);padding:14px;transition:transform .24s;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-105%)}.app-shell.menu-open .sidebar{transform:translate(0)}.sidebar-brand{display:none}.sidebar-footer{display:flex}.menu{flex-flow:column;width:100%}.menu a{text-align:left;flex-direction:row;flex:none;justify-content:flex-start;width:100%;padding:12px 10px}.top-header{flex-direction:row;align-items:center}.top-header-actions{display:none}.top-header-brand{flex:1;min-width:0}}@media (width<=640px){.customers-container{padding:18px 12px}.invoice-toolbar{align-items:stretch}.invoice-search,.invoice-filter-wrap,.invoice-filter-button{width:100%}.invoice-filter-menu{width:100%;left:0;right:auto}.pagination-bar{flex-direction:column;align-items:flex-start}th,td{white-space:nowrap}.main-area{padding:10px 10px 0}.dashboard-hero-actions{flex-direction:column;align-items:flex-start}.top-header-logo{max-width:180px;height:48px}.hero-stat-grid{grid-template-columns:1fr}}.dashboard-panel{gap:10px;display:grid}.invoices-container{gap:16px;display:grid}.mowing-billables-panel{gap:12px;display:grid}.mowing-billables-summary{justify-content:space-between;align-items:center;gap:16px;display:flex}.mowing-billables-summary h2{margin:0}.mowing-billables-summary p{margin:4px 0 0}.mowing-billables-summary .customer-create-button{white-space:nowrap;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.mowing-billables-list{gap:8px;max-height:360px;padding-right:4px;display:grid;overflow:auto}.mowing-billables-list-page{max-height:none;padding-right:0;overflow:visible}.mowing-billable-row{background:#fff;border:1px solid #d7cfbfb3;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.mowing-billable-row>div{min-width:0}.mowing-billable-row p{margin:2px 0 0;font-size:.9rem}.mowing-billable-dates{word-break:break-word}@media (width<=720px){.mowing-billables-summary,.mowing-billable-row{flex-direction:column;align-items:stretch}.mowing-billable-row>button{width:100%}}.invoice-items-section,.invoice-items-list{gap:12px;display:grid}.invoice-item-row{background:#ffffffb8;border:1px solid #d7cfbfe6;border-radius:8px;grid-template-columns:minmax(0,2fr) repeat(2,minmax(120px,1fr)) auto;align-items:end;gap:10px;padding:14px;display:grid}.item-description-field{min-width:0}.align-end{align-self:end}.total-badge{background:var(--accent-soft);color:var(--accent-strong);border-radius:8px;padding:8px 12px;font-weight:700}.status-pill{letter-spacing:.04em;border-radius:8px;align-items:center;padding:5px 10px;font-size:12px;font-weight:700;display:inline-flex}.status-pending{color:var(--warning);background:#fef3c7}.status-paid{color:#166534;background:#dcfce7}.status-partially_paid{color:#1d4ed8;background:#dbeafe}.status-void{color:#4b5563;background:#e5e7eb}.status-completed{color:#166534;background:#dcfce7}.status-not-done{color:#991b1b;background:#fee2e2}.status-open{color:#075985;background:#e0f2fe}.status-service-due{color:#92400e;background:#fef3c7}.status-service-upcoming{color:#166534;background:#dcfce7}.status-service-never_serviced{color:#991b1b;background:#fee2e2}.due-customers-panel{background:#fffcf5e6;border:1px solid #d7cfbfe6;border-radius:8px;gap:12px;padding:14px;display:grid}.due-customers-toolbar{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;display:grid}.due-customers-search{margin:0}.due-frequency-filters{flex-wrap:wrap;gap:8px;display:flex}.due-filter-chip{color:var(--text);box-shadow:none;background:#fff;border:1px solid #d7cfbff2;border-radius:999px;padding:6px 12px;font-size:.9rem;font-weight:600}.due-filter-chip.is-active{background:var(--accent-soft);color:var(--accent-strong);border-color:#1f6a2f47}.due-customers-list{gap:8px;max-height:320px;padding-right:4px;display:grid;overflow:auto}.due-customer-row{background:#fff;border:1px solid #d7cfbfb3;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;display:flex}.due-customer-row>div{min-width:0}.due-customer-row p{margin:2px 0 0;font-size:.9rem}@media (width<=720px){.due-customers-toolbar{grid-template-columns:1fr}}.teams-container,.schedule-container{gap:16px;display:grid}.schedule-form{gap:16px}.schedule-controls{grid-template-columns:minmax(220px,1fr) minmax(180px,240px);gap:12px;display:grid}.schedule-browser{gap:12px;display:grid}.schedule-list-meta{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.schedule-toggle{white-space:nowrap;align-items:center;gap:8px;font-size:.95rem;line-height:1;display:inline-flex}.schedule-toggle input{flex-shrink:0;margin:0}.job-editor-list,.schedule-team-list,.job-list{gap:12px;display:grid}.job-editor-row{background:#ffffffb8;border:1px solid #d7cfbfe6;border-radius:8px;grid-template-columns:minmax(110px,.7fr) minmax(200px,1.2fr) minmax(160px,1fr) minmax(180px,1.2fr) auto;align-items:end;gap:10px;padding:14px;display:grid}.job-editor-title{align-self:center;gap:8px;display:grid}.job-description-field{min-width:0}.schedule-list-panel{gap:16px;display:grid}.schedule-day-group{gap:12px;display:grid}.schedule-team-group{background:#ffffffa8;border:1px solid #d7cfbfe6;border-radius:8px;gap:12px;padding:14px;display:grid}.schedule-team-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.job-card{background:var(--surface-strong);border:1px solid #d7cfbfe6;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;display:grid}.job-card-completed{background:#f0fdf4c7;border-color:#16653447}.job-card-not-done{background:#fee2e2b8;border-color:#991b1b47}.job-card-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.job-not-done-comment{color:#7f1d1d;margin:10px 0 0;font-size:.95rem}.job-not-done-form{gap:10px;margin-top:12px;display:grid}.job-not-done-form textarea{resize:vertical;width:100%;min-height:72px}.job-not-done-actions{flex-wrap:wrap;gap:8px;display:flex}.completion-toggles{align-content:start;gap:8px;display:grid}.completion-toggle{white-space:nowrap;flex-direction:row;align-items:center;gap:8px;font-weight:700;display:flex}.completion-toggle input{width:18px;height:18px}.worker-selector{background:#ffffffa8;border:1px solid #d7cfbfe6;border-radius:8px;gap:8px;margin:0;padding:12px;display:grid}.worker-selector legend{padding:0 6px;font-weight:700}.member-editor{gap:12px}.member-editor label{gap:6px;display:grid}.checkbox-row{flex-direction:row;align-items:center;gap:8px}.checkbox-row input{width:18px;height:18px}.details-grid{gap:16px;display:grid}.detail-card,.detail-table-card{gap:12px;display:grid}.invoice-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.invoice-metric-card{background:#ffffffc2;border:1px solid #d9d3c1f2;border-radius:8px;gap:6px;padding:14px;display:grid}.invoice-metric-card strong{font-size:1.25rem}.invoice-metric-card-highlight{background:linear-gradient(135deg,#edf7ea 0%,#f9fcf5 100%);border-color:#2f7f3538}.invoice-metric-label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:.85rem;font-weight:700}.invoice-payment-history{gap:10px;display:grid}.invoice-payment-row{background:#ffffffc7;border:1px solid #d9d3c1f2;border-radius:8px;grid-template-columns:minmax(140px,180px) minmax(0,1fr) auto;align-items:start;gap:16px;padding:14px;display:grid}.invoice-payment-row strong{margin-bottom:4px;display:block}.invoice-payment-row-main,.invoice-payment-row-actions{min-width:0}.invoice-payment-row-actions{justify-content:flex-end;display:flex}.payment-form-panel,.payment-form-grid{gap:14px;display:grid}.invoice-payment-balance-button{justify-self:flex-start}.invoice-payment-amount-actions{flex-wrap:wrap}.invoice-print-page{background:linear-gradient(#37873714,#0000 120px),#f3f1eb;min-height:100vh;max-height:100vh;padding:24px;overflow-y:auto}.invoice-print-toolbar{flex-wrap:wrap;justify-content:flex-end;gap:12px;width:min(960px,100%);margin:0 auto 18px;display:flex}.invoice-sms-preview-list{gap:10px;max-height:42vh;display:grid;overflow-y:auto}.invoice-sms-preview-list img{border:1px solid var(--border);background:#fff;width:100%}.invoice-print-feedback{width:min(960px,100%);margin:0 auto}.invoice-sheet{color:#24312a;background:#fff;width:min(960px,100%);margin:0 auto;padding:0 30px 36px;box-shadow:0 24px 56px #1f2a221f}.invoice-sheet-accent{background:linear-gradient(110deg,#2f7f35 0% 50%,#0000 50% 78%,#7fb081 78% 82%,#0000 82% 84%,#9fc39f 84% 88%,#0000 88% 90%,#bfd7bc 90% 94%,#0000 94%);height:24px;margin:0 -30px 28px}.invoice-sheet-header{grid-template-columns:minmax(0,1fr) 220px;align-items:start;gap:28px;display:grid}.invoice-brand-block{grid-template-columns:160px minmax(0,1fr);align-items:start;gap:16px;display:grid}.invoice-brand-logo{object-fit:contain;width:160px;height:auto}.invoice-business-copy{gap:8px;display:grid}.invoice-business-copy h1{color:#293f31;font-size:1.95rem;line-height:1.1}.invoice-business-copy p{font-size:1.05rem}.invoice-meta{text-align:right;gap:18px;margin:0;display:grid}.invoice-meta div{gap:6px;display:grid}.invoice-meta dt,.invoice-section-kicker,.invoice-payment-method h3,.invoice-line-items-header,.invoice-total-row span{letter-spacing:.03em;font-size:.82rem;font-weight:800}.invoice-meta dd{margin:0;font-size:1.35rem}.invoice-balance-due{font-weight:800}.invoice-bill-to{gap:10px;margin-top:42px;display:grid}.invoice-bill-to h2,.invoice-payment-info h2{color:#25362b;font-size:1.9rem}.invoice-bill-to p,.invoice-payment-method p,.invoice-signature-date{font-size:1.05rem}.invoice-line-items{margin-top:20px}.invoice-line-items-header,.invoice-line-item-row{grid-template-columns:minmax(0,1fr) 120px 70px 140px;align-items:center;gap:16px;display:grid}.invoice-line-items-header{color:#fff;background:#2f7f35;padding:16px 14px}.invoice-line-item-row{border-bottom:1px solid #c7d7c7;padding:18px 14px}.invoice-line-item-row-alt{background:#eef5ee;border-bottom-style:dashed}.invoice-line-items-header span:nth-child(n+2),.invoice-line-item-row span:nth-child(n+2){text-align:right}.invoice-sheet-footer{grid-template-columns:minmax(0,1fr) 290px;align-items:start;gap:28px;margin-top:28px;display:grid}.invoice-payment-info,.invoice-summary-signoff,.invoice-total-summary,.invoice-signature-block{gap:16px;display:grid}.invoice-payment-method{gap:8px;display:grid}.invoice-total-summary{border-top:1px solid #b9cdb9;padding-top:10px}.invoice-total-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.invoice-total-row strong{font-size:1.15rem}.invoice-total-row-highlight{background:#f1f4ef;padding:14px 12px}.invoice-total-row-highlight strong{color:#24362b;font-size:1.6rem}.invoice-signature-block{margin-top:10px;padding-top:14px}.invoice-signature-mark{color:#161d19cc;align-items:flex-end;min-height:72px;font-family:Brush Script MT,Segoe Script,cursive;font-size:3.4rem;line-height:1;display:flex}.invoice-signature-image{object-fit:contain;object-position:left bottom;width:auto;max-width:220px;height:72px;display:block}.estimate-customer-signature{gap:8px;min-width:0;display:grid}.estimate-signatures-row{grid-template-columns:minmax(0,1fr) minmax(220px,320px);align-items:start;gap:28px 40px;margin-top:22px;display:grid}.estimate-authorized-signature{justify-items:start;margin-top:0;padding-top:0}.estimate-authorized-signature-image{max-width:280px;height:110px}.estimate-signed-date-field{gap:6px;display:grid}.estimate-signed-date-input{color:#24312a;width:min(220px,100%);min-height:40px;font:inherit;background:#fff;border:1px solid #b9cdb9;border-radius:4px;padding:8px 10px}.estimate-signed-date-print{display:none}.signature-pad{gap:8px;display:grid;position:relative}.signature-pad-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.signature-pad-surface{position:relative}.signature-pad-canvas{touch-action:none;cursor:crosshair;background:#fff;border:1px solid #b9cdb9;border-radius:4px;width:100%;height:110px}.signature-pad-placeholder{pointer-events:none;margin:0;font-size:.95rem;position:absolute;bottom:18px;left:16px}.signature-pad-clear{min-height:auto;padding:0}.invoice-footer-notice{break-inside:avoid;page-break-inside:avoid;border:1px solid #d3d3d3;margin-top:34px;padding:18px 22px}.invoice-footer-notice p{text-transform:uppercase;font-size:.98rem;line-height:1.55}.estimate-print-page{background:linear-gradient(#2f7f351a,#0000 140px),#f5f2ea}.estimate-sheet{padding-bottom:40px}.estimate-sheet-header{gap:36px}.estimate-business-copy{gap:7px}.estimate-meta dd{font-size:1.25rem}.estimate-bill-to{margin-top:30px}.estimate-total-section{grid-template-columns:minmax(0,1fr);align-items:start;gap:0;margin-top:22px;display:grid}.estimate-total-summary{border-top:1px solid #b9cdb9;max-width:420px;padding-top:14px}.estimate-grand-total strong{color:#24362b;font-size:1.5rem}.estimate-deposit-note{margin-top:18px;padding:12px 0 0}.estimate-deposit-note p{color:#2c3b31;max-width:42rem;margin:0;font-size:.98rem;line-height:1.5}.estimate-footer-note{border-top:1px solid #b9cdb9;min-height:120px;margin-top:26px;padding-top:26px}.estimate-footer-note p{font-size:1.02rem;line-height:1.5}.estimate-bottom-accent{background:linear-gradient(110deg,#0000 0% 55%,#bfd7bc 55% 58%,#0000 58% 60%,#9fc39f 60% 64%,#0000 64% 66%,#7fb081 66% 70%,#0000 70% 72%,#2f7f35 72% 100%);height:24px;margin-top:28px}.schedule-print-page{background:linear-gradient(#37873714,#0000 120px),#f3f1eb;min-height:100vh;padding:24px}.schedule-print-sheet{color:#24312a;background:#fff;width:min(960px,100%);margin:0 auto;padding:0 30px 36px;box-shadow:0 24px 56px #1f2a221f}.schedule-print-accent{background:linear-gradient(110deg,#2f7f35 0% 52%,#0000 52% 72%,#7fb081 72% 78%,#0000 78% 82%,#bfd7bc 82% 100%);height:24px;margin:0 -30px 28px}.schedule-print-header,.schedule-print-meta,.schedule-print-crew,.schedule-print-jobs{gap:18px;display:grid}.schedule-print-header{grid-template-columns:minmax(0,1fr) 260px;align-items:start}.schedule-print-title h1{color:#25362b;margin-bottom:8px;font-size:2rem}.schedule-print-title p{font-size:1rem}.schedule-print-meta{margin:0}.schedule-print-meta div{gap:4px;display:grid}.schedule-print-meta dt,.schedule-print-section-kicker{letter-spacing:.03em;text-transform:uppercase;font-size:.82rem;font-weight:800}.schedule-print-meta dd{margin:0;font-size:1.1rem}.schedule-print-crew{margin-top:28px}.schedule-print-crew-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.schedule-print-crew-card{background:#f8fbf4;border:1px solid #d5dccf;padding:18px}.schedule-print-crew-list{gap:8px;margin:0;padding-left:20px;display:grid}.schedule-print-jobs{margin-top:28px}.schedule-print-table{border-collapse:collapse;width:100%}.schedule-print-table th,.schedule-print-table td{text-align:left;vertical-align:top;border-bottom:1px solid #d5dccf;padding:12px 10px}.schedule-print-table th{color:#fff;letter-spacing:.03em;background:#2f7f35;font-size:.82rem}.schedule-print-table tbody tr:nth-child(2n){background:#f4f8f1}@media screen and (width<=900px){.schedule-print-header,.schedule-print-crew-grid{grid-template-columns:1fr}}@media (width>=900px){.details-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-table-card{grid-column:1/-1}}@media screen and (width<=900px){.invoice-item-row,.job-editor-row,.schedule-controls,.job-card,.invoice-sheet-header,.invoice-sheet-footer,.estimate-total-section,.estimate-signatures-row,.schedule-print-header,.invoice-metric-grid,.invoice-brand-block,.invoice-line-items-header,.invoice-line-item-row{grid-template-columns:1fr}.invoice-meta,.invoice-line-items-header span:nth-child(n+2),.invoice-line-item-row span:nth-child(n+2){text-align:left}.invoice-payment-row{grid-template-columns:1fr}}@media screen and (width<=768px){.page-header{flex-direction:column;align-items:stretch}.top-header{flex-direction:row;align-items:center}table,thead,tbody,th,td,tr{display:block}thead{display:none}tr{background:#ffffffd1;border:1px solid #d7cfbfe6;border-radius:8px;margin-bottom:10px;padding:8px}td{border:none;padding:6px 2px}.invoice-print-page{padding:12px}.invoice-print-toolbar .button-link,.invoice-print-toolbar button{flex:calc(50% - 12px)}.invoice-sms-button{flex-basis:100%}.schedule-print-page{padding:12px}.invoice-sheet,.schedule-print-sheet{padding:0 16px 24px}.invoice-sheet-accent,.schedule-print-accent{margin-left:-16px;margin-right:-16px}.invoice-business-copy h1{font-size:1.5rem}.invoice-bill-to h2,.invoice-payment-info h2{font-size:1.45rem}.invoice-meta dd,.invoice-total-row-highlight strong{font-size:1.25rem}.invoice-signature-mark{font-size:2.8rem}}@media print{@page{size:letter;margin:.45in}html,body,#root{background:#fff;height:auto;overflow:visible}body{background:#fff}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}.invoice-print-page,.estimate-print-page,.schedule-print-page{background:#fff;min-height:auto;max-height:none;padding:0;overflow:visible}.invoice-print-toolbar,.invoice-print-feedback,.invoice-sms-backdrop,.signature-pad-clear,.signature-pad-placeholder,.estimate-signed-date-input{display:none!important}.estimate-signed-date-print{display:block!important}.invoice-sheet,.estimate-sheet,.schedule-print-sheet{width:100%;max-width:none;box-shadow:none;margin:0;padding:0 0 18px}.invoice-sheet-accent,.estimate-bottom-accent,.schedule-print-accent{margin-left:0;margin-right:0}.invoice-sheet-header,.estimate-sheet-header{grid-template-columns:minmax(0,1fr) 220px}.estimate-sheet-header{gap:36px}.invoice-brand-block{grid-template-columns:160px minmax(0,1fr)}.invoice-line-items-header,.invoice-line-item-row{grid-template-columns:minmax(0,1fr) 120px 70px 140px}.invoice-line-items-header span:nth-child(n+2),.invoice-line-item-row span:nth-child(n+2){text-align:right}.invoice-sheet-footer{grid-template-columns:minmax(0,1fr) 290px}.estimate-total-section{grid-template-columns:minmax(0,1fr)}.estimate-signatures-row{grid-template-columns:minmax(0,1fr) minmax(240px,320px)}.invoice-meta{text-align:right}.schedule-print-header{grid-template-columns:minmax(0,1fr) 260px}.schedule-print-crew-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-print-table,.schedule-print-table thead,.schedule-print-table tbody,.schedule-print-table tr,.schedule-print-table th,.schedule-print-table td{display:revert}.invoice-line-items-header{color:#fff;background:#2f7f35}.invoice-line-item-row-alt{background:#eef5ee}.invoice-total-row-highlight{background:#f1f4ef}.invoice-sheet-header,.invoice-bill-to,.invoice-line-items,.invoice-sheet-footer,.estimate-total-section,.estimate-deposit-note,.estimate-signatures-row,.estimate-customer-signature,.estimate-footer-note,.invoice-footer-notice{break-inside:avoid;page-break-inside:avoid}}
