:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#172b45;background:#f3f6fa;font-size:16px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}a{color:inherit}aside{position:fixed;inset:0 auto 0 0;width:238px;background:#10263e;color:#eaf1fb;padding:34px 22px;display:flex;flex-direction:column}.brand{font-size:28px;font-weight:750;text-decoration:none;display:flex;gap:12px;align-items:center}.mark{background:#3579ff;border-radius:10px;padding:5px 12px}.internal{font-size:11px;letter-spacing:1.7px;margin:30px 10px 18px;color:#9eafc2}nav{display:grid;gap:8px}nav a{padding:14px 15px;text-decoration:none;border-radius:8px;font-weight:550}nav a.active{background:#29445f;color:#fff}nav a:hover{background:#223c56}.local{margin-top:auto;font-size:14px;padding:16px 10px;border-top:1px solid #3a4d62}.local span{display:block;color:#aebed0;margin:8px 0 22px}.local a{font-size:14px}main{margin-left:238px;padding:30px 44px 60px;max-width:1600px}.topline{font-size:12px;letter-spacing:1.5px;color:#65768a;display:flex;justify-content:space-between;border-bottom:1px solid #dce3ec;padding-bottom:23px}.topline span{letter-spacing:0}h1{font-size:34px;letter-spacing:-1px;margin:0 0 10px}h2{font-size:22px;margin:0}p{line-height:1.5}.heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:34px 0 28px}.muted{color:#61728a;margin:0}.actions{display:flex;gap:10px;flex-wrap:wrap}button,.button{border:1px solid transparent;border-radius:8px;background:#175ee8;color:white;padding:12px 17px;font-weight:600;cursor:pointer;text-decoration:none}button:hover{filter:brightness(.94)}button.secondary{background:white;color:#253c58;border-color:#ccd6e3}button:disabled{opacity:.6;cursor:wait}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:24px 0 34px}.stat{background:white;border:1px solid #dce3ec;border-radius:12px;padding:22px}.stat strong{display:block;font-size:34px;margin-top:13px}.stat:first-child{border-top:3px solid #175ee8}.section-title{display:flex;justify-content:space-between;align-items:center;margin:25px 0 18px}.toolbar{display:flex;gap:12px;margin:20px 0}input,select,textarea{width:100%;border:1px solid #c8d2df;border-radius:7px;padding:12px;color:#172b45;background:#fff;min-height:46px}textarea{min-height:95px;resize:vertical}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:3px solid #8bb3ff;outline-offset:2px}.toolbar input{flex:1}.toolbar select{width:220px}.list{display:grid;gap:12px}.card{display:flex;align-items:center;gap:20px;padding:22px;background:white;border:1px solid #dce3ec;border-radius:10px}.card-main{flex:1;min-width:0}.card h3{font-size:18px;margin:0 0 8px;overflow-wrap:anywhere}.card p{margin:5px 0;color:#61728a;font-size:14px;overflow-wrap:anywhere}.badge{display:inline-block;font-size:14px;padding:7px 11px;border-radius:6px;white-space:nowrap;background:#edf2f7;color:#4b6179}.badge.new{background:#e6efff;color:#174cba}.badge.ready{background:#dcf4eb;color:#146247}.sample{color:#805500;font-size:12px;font-weight:600;margin-left:9px}.empty{text-align:center;border:1px dashed #bfcddd;border-radius:12px;padding:45px 22px;background:#fff}.empty h2{margin-bottom:10px}.empty p{color:#61728a}.empty button{margin:6px}.eyebrow{font-size:12px;color:#61728a;letter-spacing:1px;text-transform:uppercase;margin:0 0 7px}dialog{border:0;border-radius:14px;padding:0;width:min(670px,calc(100% - 28px));max-height:90vh;box-shadow:0 25px 100px #10263e50}dialog::backdrop{background:#10263e80}form{padding:26px}form header{display:flex;justify-content:space-between;margin-bottom:24px}.icon{background:#eef2f7;color:#172b45;padding:8px 13px}#fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{font-size:14px;font-weight:600;display:block}label input,label textarea,label select{display:block;margin-top:8px;font-weight:400}.wide{grid-column:1/-1}form footer{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}#form-error{color:#b42318;font-size:14px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#10263e;color:white;padding:14px 24px;border-radius:9px;z-index:5;display:none;max-width:90%}.notice{background:#e8effa;color:#365476;border-radius:8px;padding:13px 17px;font-size:14px;margin:18px 0}.link-button{background:none;color:#175ee8;padding:6px 0}
@media(max-width:1000px){aside{width:200px}main{margin-left:200px;padding:25px}.heading{align-items:flex-start;flex-direction:column}.card{flex-wrap:wrap}.card-main{flex-basis:60%}}
@media(max-width:650px){aside{position:static;width:100%;padding:18px 16px}.brand{font-size:24px}.internal,.local{display:none}nav{display:flex;overflow:auto;margin-top:18px;gap:4px}nav a{font-size:14px;white-space:nowrap;padding:11px 10px}main{margin:0;padding:22px 16px}.topline{font-size:11px}.heading{margin:25px 0 18px}h1{font-size:29px}.stats{gap:8px;margin:22px 0}.stat{padding:15px 10px;font-size:13px}.stat strong{font-size:28px}.actions{width:100%}.actions button{flex:1;padding:12px 10px;font-size:14px}.toolbar{flex-direction:column}.toolbar select{width:100%}.card{padding:18px;gap:12px}.card-main{flex-basis:100%}.card button{margin-left:auto}#fields{grid-template-columns:1fr}form{padding:21px}.wide{grid-column:auto}.section-title h2{font-size:20px}}

@media(max-width:650px){nav{display:grid;grid-template-columns:1fr 1fr;overflow:visible}nav a{text-align:center}}
[hidden]{display:none!important}.signout{background:transparent;border-color:#54718f;margin-top:18px;text-align:left;padding:10px 14px}.auth aside,.auth .topline{display:none}.auth main{margin:0;max-width:none}.auth-card{max-width:510px;margin:50px auto;background:white;border:1px solid #dce3ec;padding:32px;border-radius:14px}.auth-card h1{font-size:29px}.auth-card form{padding:15px 0}.auth-card label{margin:18px 0}.auth-card button{width:100%}#login-error,#request-error,#photo-error,#settings-error{color:#a82318}.overview-links{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px}.overview-links a{background:#e6edf8;padding:13px 16px;border-radius:8px;text-decoration:none;font-size:14px}.photo-editor{border-top:1px solid #dce3ec;padding-top:15px}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.photo-grid figure{margin:0;min-width:0}.photo-grid img{width:100%;height:110px;object-fit:cover;border-radius:8px}.photo-grid figcaption{font-size:13px;overflow-wrap:anywhere;margin:5px 0 12px}.photo-editor .muted{font-size:14px;margin:12px 0}.details{margin:0}.details dt{font-weight:650;font-size:14px;margin-top:13px}.details dd{margin:5px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.reschedule-list{margin:18px 0 32px}.date-block{font-size:16px;font-weight:650;min-width:110px}.date-block span{display:block;font-size:14px;font-weight:400;color:#61728a;margin-top:7px}.settings-card{padding:26px;background:#fff;border:1px solid #dce3ec;border-radius:12px;margin-bottom:20px}.settings-card form{padding:0;margin:20px 0}.settings-card input{max-width:500px}.customer-page main{margin:32px auto;padding:32px;max-width:760px;background:white;border:1px solid #dce3ec;border-radius:14px}.customer-page form{padding:10px 0}.customer-brand{border-bottom:1px solid #dce3ec;padding-bottom:15px}.customer-brand h1{font-size:28px}.customer-page textarea{min-height:85px}.customer-page form>button{width:100%;margin-top:12px}.customer-page .muted{font-size:14px;line-height:1.6}.honey{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}nav{gap:3px}nav a{padding:11px 15px}aside{overflow-y:auto}.local{padding-top:13px}.local span{margin-bottom:12px}input[type=file]{font-size:14px;padding:10px;width:100%}
@media(max-width:650px){.auth-card{margin:10px auto;padding:22px}.fields-grid{grid-template-columns:1fr}.customer-page main{margin:0;padding:24px 18px;border:0;border-radius:0}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-card{padding:20px}.signout{font-size:14px;align-self:flex-end;margin-top:10px}.overview-links{display:grid}.date-block{width:100%}.date-block span{display:inline;margin-left:14px}nav{grid-template-columns:1fr 1fr}.topline{gap:15px}}
#invoice-modal{width:min(820px,calc(100% - 24px))}.invoice-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:25px 26px 5px}.invoice-detail{padding:8px 26px 26px}.invoice-line{display:grid;grid-template-columns:minmax(150px,1fr) 85px 110px 90px;gap:10px;align-items:end;padding:12px 0;border-bottom:1px solid #dce3ec;margin-bottom:12px}.invoice-line button{padding:12px 7px;min-height:46px;font-size:14px}.invoice-total{font-size:22px;font-weight:700}.invoice-amount{text-align:right}.invoice-amount strong{display:block;font-size:20px}.invoice-amount span{display:block;font-size:13px;color:#61728a;margin-top:5px}.invoice-lines-view>div{display:flex;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid #dce3ec}.invoice-lines-view small{display:block;color:#61728a;margin-top:7px}.invoice-lines-view span{overflow-wrap:anywhere}.invoice-totals{display:grid;grid-template-columns:1fr auto;gap:12px;margin:24px 0}.invoice-totals dd{margin:0;text-align:right}.invoice-totals dt:last-of-type,.invoice-totals dd:last-child{font-size:21px;padding-top:10px;border-top:1px solid #dce3ec}.payment-row{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #dce3ec;gap:20px;padding:12px 0}.payment-row p{font-size:14px;overflow-wrap:anywhere}.audit{margin-top:25px;border-top:1px solid #dce3ec;padding-top:18px}.audit p{font-size:13px;overflow-wrap:anywhere}.balance-note{margin:20px 0;font-size:14px}.preserve-lines{white-space:pre-wrap;overflow-wrap:anywhere}#invoice-error,#branding-error{color:#a82318}#account-customer{width:100%}.stat strong{overflow-wrap:anywhere}aside .local{margin-top:24px}
@media(max-width:650px){.invoice-line{grid-template-columns:1fr 1fr}.invoice-line label:first-child{grid-column:1/-1}.invoice-line button{grid-column:1/-1}.invoice-head{padding:20px 20px 0}.invoice-detail{padding:10px 20px 24px}.invoice-totals dt:last-of-type,.invoice-totals dd:last-child{font-size:18px}.invoice-amount{text-align:left}.payment-row{flex-wrap:wrap}.section-title{gap:14px;flex-wrap:wrap}.stats .stat strong{font-size:24px}#invoice-modal .actions button{flex:auto}}
.settings-card form{display:grid;gap:14px;max-width:640px}.settings-card form button{justify-self:start}.settings-card+.settings-card{margin-top:20px}.request-qr{width:220px;max-width:100%;height:auto;background:white}.prepared-url{overflow-wrap:anywhere}.recovery-codes{font-size:clamp(10px,2.5vw,15px);white-space:pre-wrap;overflow-wrap:anywhere;padding:14px;background:#f1f5f3}.auth-card>.secondary{margin-top:16px}

#archive-list h2,.invoice-head h2{overflow-wrap:anywhere}#archive-error{color:#a82318}
.import-group{border:1px solid #ccd6e3;border-radius:10px;padding:18px;margin:20px 0;overflow-wrap:anywhere}.import-row{border-top:1px solid #dce3ec;margin-top:18px;padding-top:10px}.import-check{display:flex;align-items:flex-start;gap:12px;margin:18px 0;line-height:1.5}.import-check input{width:20px;min-height:20px;flex:0 0 20px;margin:2px 0}.import-group select{max-width:100%}.import-group details{margin:14px 0}.import-group summary{cursor:pointer;font-weight:600}#jobber-error,#jobber-save-error{color:#a82318}

/* Schedule calendar */
.schedule-board{background:#fff;border:1px solid #dce3ec;border-radius:14px;padding:20px}.calendar-toolbar{display:flex;align-items:end;gap:14px;flex-wrap:wrap}.calendar-toolbar label{max-width:190px}.team-options{display:flex;gap:12px;flex-wrap:wrap;align-items:center;border:1px solid #dce3ec;border-radius:10px;padding:14px;margin:18px 0;min-width:0}.team-options legend{font-weight:700;padding:0 6px}.team-options label{display:flex;align-items:center;gap:7px;font-size:14px;margin:0}.team-options input[type=checkbox]{width:18px;min-height:18px;height:18px;margin:0;accent-color:#14796b}.team-options small{width:100%;color:#61728a}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:#dce3ec;border:1px solid #dce3ec;border-radius:10px;overflow:hidden}.calendar-day{background:#fafcfd;padding:8px;min-width:0;min-height:190px}.calendar-day h3{font-size:12px;margin:4px 0 12px;color:#41566d}.calendar-today{background:#edf7f3}.calendar-visit{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:6px;width:100%;min-width:0;padding:10px;margin:0 0 8px;background:#e1f0ed;color:#164e46;border:1px solid #b9dbd2;border-left:4px solid #218271;border-radius:7px;white-space:normal;overflow-wrap:anywhere;font-size:12px;line-height:1.4;cursor:grab}.calendar-visit:hover{background:#d2e9e2}.calendar-visit:focus-visible{outline:3px solid #346bb0;outline-offset:2px}.calendar-visit strong{font-size:13px}.calendar-time{font-weight:700}.calendar-team{border-top:1px solid #b9dbd2;padding-top:5px;width:100%;font-weight:600}.calendar-empty{font-size:12px;color:#8592a2}.calendar-day:has(.calendar-visit){min-height:200px}.calendar-month .calendar-day{min-height:125px}.calendar-month .calendar-visit small{display:none}.calendar-day.calendar-today h3{color:#126653}.calendar-day .calendar-muted{background:#eef0f3;color:#586777;border-color:#ccd3dc}.calendar-day .calendar-muted .calendar-team{border-color:#ccd3dc}.calendar-day-view{grid-template-columns:1fr}.calendar-grid.calendar-day,.calendar-grid.calendar-list{grid-template-columns:1fr;background:white;padding:0}.calendar-list .calendar-day,.calendar-grid.calendar-day .calendar-day{min-height:90px}.calendar-list .calendar-visit,.calendar-grid.calendar-day .calendar-visit{max-width:650px}.calendar-help{font-size:13px;line-height:1.5}.schedule-series{padding:18px 0;border-bottom:1px solid #dce3ec}.schedule-series summary{font-weight:700;cursor:pointer;margin-bottom:12px}#calendar-feedback{display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:#194f46}.schedule-board .toolbar{flex-wrap:wrap}.schedule-board .toolbar select{flex:1;min-width:140px}.schedule-board .toolbar input{min-width:180px}.schedule-board .section-title h2{font-size:20px}
@media(max-width:1000px){.calendar-week,.calendar-month{min-width:840px}#calendar-surface{overflow-x:auto}.calendar-toolbar{gap:10px}}@media(max-width:650px){.schedule-board{padding:12px}.calendar-toolbar label{max-width:160px;flex:1}.team-options{gap:14px;padding:12px}.calendar-visit{font-size:14px}.calendar-visit strong{font-size:15px}.calendar-toolbar .actions{width:100%}.calendar-grid.calendar-day,.calendar-grid.calendar-list{min-width:0}.schedule-board .section-title{align-items:start}.schedule-board .toolbar input{width:100%;flex-basis:100%}}

.calendar-entry{margin-bottom:12px}.calendar-entry .calendar-visit{margin-bottom:0;border-radius:7px 7px 0 0}.calendar-complete{display:flex;align-items:center;gap:6px;padding:8px 6px;margin:0;background:#fff;border:1px solid #c9ddd6;border-top:0;border-radius:0 0 7px 7px;font-size:12px;color:#164e46;min-height:36px;cursor:pointer;overflow-wrap:anywhere}.calendar-complete input[type=checkbox]{width:17px;height:17px;min-height:17px;margin:0;flex:0 0 17px;accent-color:#218271}.calendar-complete:has(input:disabled){opacity:.6;cursor:default}

/* Team colors use text labels as well as color. */
.team-color-ryan{--team-bg:#e4f3e7;--team-ink:#1b512a;--team-edge:#38814b}.team-color-mateo{--team-bg:#fff0d8;--team-ink:#71430d;--team-edge:#b87920}.team-color-lionel{--team-bg:#e7f0ff;--team-ink:#183c76;--team-edge:#3974bf}.team-color-maranda{--team-bg:#efe8ff;--team-ink:#4b287f;--team-edge:#8154ba}.team-color-shared{--team-bg:#edf0f4;--team-ink:#3e4b60;--team-edge:#758399}.team-color-unassigned{--team-bg:#fff9cc;--team-ink:#63500b;--team-edge:#a88b16}
.calendar-day .calendar-visit[class*="team-color-"]{background:var(--team-bg);color:var(--team-ink);border-color:var(--team-edge)}.calendar-day .calendar-visit[class*="team-color-"]:hover{filter:brightness(.96)}.calendar-visit[class*="team-color-"] .calendar-team{border-color:var(--team-edge)}.calendar-color-legend{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.calendar-color-legend[hidden]{display:none}.calendar-color-legend span{background:var(--team-bg);color:var(--team-ink);border-left:5px solid var(--team-edge);padding:5px 10px;border-radius:5px;font-size:13px;font-weight:600}
/* Compact checkboxes; their labels remain generous click/tap targets. */
:root input[type="checkbox"]{display:inline-block;width:16px;height:16px;min-width:16px;max-width:16px;min-height:16px;max-height:16px;padding:0;margin:0;flex:0 0 16px;vertical-align:middle;cursor:pointer}
label:has(> input[type="checkbox"]){display:flex;align-items:center;gap:8px;min-height:36px;cursor:pointer}
@media(max-width:650px){label:has(> input[type="checkbox"]){min-height:44px}}
/* Quantity needs only a compact field; keep the normal touch-friendly height. */
.invoice-line .line-quantity{width:88px;max-width:100%;padding-inline:10px}
/* Keep service selection and editable details full-width on invoice rows. */
#invoice-lines .invoice-line{grid-template-columns:repeat(2,minmax(0,1fr))}
#invoice-lines .invoice-line>.invoice-service-wide{grid-column:1/-1}
/* Service revenue report */
.revenue-filters{align-items:end;flex-wrap:wrap}.revenue-filters label{flex:1 1 170px;min-width:0}.revenue-service{display:block;overflow-wrap:anywhere}.revenue-service-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.revenue-service-head h2{font-size:18px;margin:0}.revenue-service-head>strong{font-size:22px;white-space:nowrap}.revenue-service details{margin-top:12px}.revenue-service summary{cursor:pointer;padding:10px 0}.revenue-service .payment-row{gap:12px;flex-wrap:wrap}@media(max-width:650px){.revenue-filters{display:flex;flex-direction:column;align-items:stretch}.revenue-filters label{flex:auto}.revenue-service-head{align-items:start;flex-direction:column}.revenue-service .payment-row{align-items:start;flex-direction:column}}

@media(max-width:650px){#revenue-results .stats{grid-template-columns:1fr}#revenue-results .stat strong{white-space:nowrap}}
/* Cash-basis sales tax workspace. */
#sales-tax-results{overflow-wrap:anywhere}#sales-tax-results .stat span{display:block;margin-top:8px;color:var(--muted)}#sales-tax-results summary{cursor:pointer;padding:10px 0}.tax-balance{font-size:28px}.tax-payment{padding:16px 0;border-bottom:1px solid #dce3ee}#sales-tax-results .payment-row{gap:12px;flex-wrap:wrap}@media(max-width:650px){#sales-tax-results .stats{grid-template-columns:1fr}#sales-tax-results .stat strong{white-space:nowrap}#sales-tax-results .payment-row{align-items:start;flex-direction:column}}
/* Private expenses and cash summary. */
.expense-fields{border:0;padding:0;margin:0;min-width:0}.expense-card{overflow-wrap:anywhere}.expense-card h2{font-size:18px;margin:0}.expense-card>strong{white-space:nowrap}.expense-history{padding:14px 0;border-bottom:1px solid #dce3ee;overflow-wrap:anywhere}#expense-form section{margin:24px 0}#expense-form input[type=file]{max-width:100%}#income-results,#expense-results{overflow-wrap:anywhere}#income-results .stat span{display:block;margin-top:8px;color:var(--muted)}#income-results .payment-row{gap:12px;flex-wrap:wrap}#income-results summary,.expense-history summary{cursor:pointer;padding:10px 0}@media(max-width:650px){#income-results .stats{grid-template-columns:1fr}#income-results .stat strong{white-space:nowrap}.expense-card{align-items:start;flex-direction:column}.expense-card>button{width:100%}#income-results .payment-row{align-items:start;flex-direction:column}}

/* Bank import and reviewed transaction matching. */
.bank-card h2{font-size:18px;margin:0}.bank-card{overflow-wrap:anywhere}.bank-warning{color:#805000;font-weight:600}.bank-preview-list{max-height:45vh;overflow:auto;border:1px solid #dce3ee;border-radius:10px;margin:16px 0}.bank-preview-row{padding:14px;border-bottom:1px solid #dce3ee;align-items:start!important;overflow-wrap:anywhere}.bank-preview-row span{min-width:0}#bank-signed[hidden],#bank-separate[hidden]{display:none}#bank-results{overflow-wrap:anywhere}#bank-match-form,#bank-note-form,#bank-undo-form{padding:16px 0}#bank-preview-form [type=checkbox]{margin-top:3px}.bank-card .invoice-amount{flex-shrink:0}@media(max-width:650px){.bank-card{flex-direction:column;align-items:start}.bank-card>button{width:100%}.bank-preview-list{max-height:40vh}.bank-preview-row{padding:12px}}

@media(max-width:650px){.bank-card{display:grid;grid-template-columns:minmax(0,1fr)}.bank-card .card-main{width:100%;min-width:0}.bank-card .invoice-amount{min-width:0;text-align:left}}

/* Water-system logs and completion forms. */
.water-completion{width:min(720px,calc(100% - 24px));max-height:90vh;box-sizing:border-box}
.water-choice{border:1px solid #dce5e2;border-radius:10px;margin:18px 0;padding:16px}
.water-choice label{display:flex;align-items:center;gap:10px;min-height:44px;margin:4px 0}
.water-reading-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(90px,1fr) auto;gap:12px;align-items:end;margin:12px 0}
.water-reading-row input,.water-reading-row select{min-width:0}
.water-reading-row button{margin-bottom:14px}
.equipment-visit-note{border-top:1px solid #dce5e2;padding-top:16px}
.equipment-card{display:grid;grid-template-columns:minmax(0,1fr) auto}
.equipment-card .card-main{min-width:0;overflow-wrap:anywhere}
.equipment-card h3{margin-top:0}
#equipment-form{padding:20px}
#equipment-form .checkbox-label{display:flex;align-items:center;gap:10px;min-height:44px}
@media(max-width:650px){.water-reading-row{grid-template-columns:minmax(0,1fr)}.water-reading-row button{justify-self:start;margin-bottom:6px}.equipment-card{grid-template-columns:minmax(0,1fr)}.equipment-card .card-main{width:100%;min-width:0}.water-completion .invoice-detail{padding:18px}#equipment-form{padding:16px}}

.water-choice input[type=radio]{width:16px;height:16px;min-height:16px;flex:0 0 16px;margin:0}
.chemical-purchase-fields{border-top:1px solid #dce5e2;padding-top:18px;margin-top:8px}
.chemical-purchase-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(90px,1fr) minmax(75px,.7fr) auto;gap:10px;align-items:end;border-bottom:1px solid #dce5e2;padding:14px 0}
.chemical-purchase-row input,.chemical-purchase-row select{min-width:0}
.chemical-purchase-row button{margin-bottom:14px}
#purchase-expense-picker{padding:20px}
.sds-document-list{padding-left:20px;overflow-wrap:anywhere}
.sds-document-list li{margin:14px 0}
@media(max-width:650px){.chemical-purchase-row{grid-template-columns:minmax(0,1fr)}.chemical-purchase-row button{justify-self:start;margin-bottom:0}#purchase-expense-picker{padding:16px}}
#register-form,.equipment-detail{padding:24px}
#register-form .checkbox-label{display:flex;align-items:center;gap:10px;min-height:44px}
.equipment-facts{display:grid;grid-template-columns:155px minmax(0,1fr);gap:12px 18px;margin:24px 0}
.equipment-facts dt{font-weight:700}.equipment-facts dd{margin:0;overflow-wrap:anywhere}
.equipment-facts dd p{margin:6px 0}
.equipment-log{border-top:1px solid #dce5e2;padding:15px 0}.equipment-log h4{margin:4px 0}
.equipment-detail section{margin-top:24px}.equipment-detail .actions{margin:16px 0}
@media(max-width:650px){#register-form,.equipment-detail{padding:16px}.equipment-facts{grid-template-columns:minmax(0,1fr);gap:4px}.equipment-facts dd{margin-bottom:12px}}
/* Private quote forms and recorded approvals. */
#quote-form,#quote-approval,#quote-reason,#quote-visit-form,.quote-detail{overflow-wrap:anywhere}
#quote-approval .check-label{display:flex;align-items:start;gap:10px;min-height:44px}#quote-approval .check-label input{flex:0 0 16px;margin-top:3px}
#quote-visits{margin-bottom:24px}#quote-lines .invoice-line{min-width:0}
@media(max-width:650px){#quote-list .card,#quote-visits .card{display:flex;flex-direction:column;align-items:stretch}.quote-detail .section-title{align-items:start;flex-direction:column}#quote-form,#quote-approval,#quote-reason,#quote-visit-form{padding:16px}}

@media(max-width:650px){nav{grid-template-columns:repeat(2,minmax(0,1fr))}nav a{min-width:0;white-space:normal;overflow-wrap:anywhere}#quote-list .card,#quote-visits .card{display:grid;grid-template-columns:minmax(0,1fr)}#quote-list .card-main,#quote-visits .card-main{width:100%;min-width:0}#quote-list .badge,#quote-visits .badge{justify-self:start}#quote-list .card button,#quote-visits .card button{margin-left:0;width:100%}}

#quote-lines .invoice-line{grid-template-columns:repeat(2,minmax(0,1fr))}#quote-lines .invoice-line>.invoice-service-wide{grid-column:1/-1}
/* Address actions contact the map provider only when opened. */
.map-panel{min-width:0;margin:12px 0;padding:12px;background:#f4f7f9;border:1px solid #dce3e8;border-radius:10px}
.map-panel p{margin:0 0 10px;overflow-wrap:anywhere}
.map-actions{display:flex;align-items:end;gap:8px;flex-wrap:wrap;min-width:0}
.map-provider-label{display:flex;flex-direction:column;gap:4px;font-size:12px;min-width:0;margin:0}
.map-provider-label select{width:auto;max-width:100%;min-height:44px;margin:0;font-size:14px;padding:8px}
.map-action,.map-actions .map-copy{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 12px;border:1px solid #cbd5df;border-radius:8px;background:#fff;color:#1f4c68;text-decoration:none;font-size:14px;font-weight:600;margin:0;white-space:normal}
.map-action:hover{background:#e8f0f5}.map-action:focus-visible{outline:3px solid #2675ad;outline-offset:2px}
.map-panel .map-feedback{font-size:12px;margin:8px 0 0;color:#425a6b}.map-feedback:empty{display:none}
.map-copy-fallback{display:block;margin-top:10px}.map-copy-fallback[hidden]{display:none}.map-copy-fallback textarea{width:100%;min-height:90px}
.map-empty p{margin:0}
@media(max-width:650px){.map-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}.map-actions>*{min-width:0}.map-provider-label select{width:100%}.map-actions .map-copy{width:100%;margin:0}.map-action{padding:10px 6px;text-align:center}}
.time-week{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:24px 0 12px}.time-week label{max-width:220px}.time-person,.time-clock{border:1px solid #dce3ec;border-radius:12px;background:#fff;padding:24px;margin:20px 0;min-width:0}.time-person .section-title{margin:0 0 12px}.time-totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0}.time-totals>div{background:#f1f5fa;border-radius:8px;padding:14px;font-size:13px;overflow-wrap:anywhere}.time-totals strong{display:block;font-size:22px;margin-top:8px}.time-entry,.time-profile{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid #dce3ec}.time-entry>div:first-child,.time-profile>div:first-child{flex:1;min-width:0}.time-entry p,.time-profile p{margin:6px 0;color:#53677d;overflow-wrap:anywhere}.time-entry>strong{white-space:nowrap}.time-entry small{display:block;font-size:11px;font-weight:400;margin-top:4px}.time-entries{margin:14px 0 20px}.time-void{opacity:.65}.time-history{margin-top:24px}.time-history article,.time-correction,.time-assigned{border-bottom:1px solid #dce3ec;padding:14px 0;overflow-wrap:anywhere}.time-history p{font-size:13px;margin:5px 0}.time-days p{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap}.time-days span{font-size:14px}.time-clock form{padding:0;margin:18px 0}.time-clock label{margin-top:14px}.time-person summary,.time-history summary{cursor:pointer;padding:10px 0;font-weight:600}.employee-workspace main{margin:0 auto;max-width:960px;padding:24px 28px 60px}.employee-workspace .auth-card{margin:35px auto}.employee-workspace .auth-card form{padding:0}.employee-workspace form label{margin:16px 0}.employee-workspace .time-clock [type=submit]{min-height:48px}.employee-workspace .request-qr{max-width:100%}.time-clock h2{margin-bottom:10px}.time-clock #team-elapsed{font-variant-numeric:tabular-nums}#time-form label{margin:12px 0}#time-form .check{display:flex;align-items:center;gap:10px}#time-form [role=alert],.employee-workspace [role=alert],#time-page-feedback{color:#a52b22}.time-person .actions{flex-wrap:wrap}#time-setup-link{min-height:120px}.time-entry .actions{flex-shrink:0}
@media(max-width:900px){.time-entry,.time-profile{flex-wrap:wrap}.time-entry>div:first-child,.time-profile>div:first-child{flex-basis:100%}.time-totals{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.employee-workspace main{padding:20px 16px}.time-person,.time-clock{padding:16px}.time-week{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.time-week>*{min-width:0;width:100%;max-width:none}.time-week button{font-size:13px;padding:12px 8px;min-height:46px}.time-week label{max-width:none}.time-week input{min-width:0;padding:10px 6px}.time-totals{gap:8px}.time-totals strong{font-size:20px}.time-person .section-title{gap:10px;flex-wrap:wrap}.time-person .section-title h2{font-size:20px}.time-entry .actions{width:100%}.time-entry>strong{font-size:18px}.time-clock form button{width:100%}}
/* Team directory; palette values are fixed server-side. */
.staff-card{background:white;border:1px solid #dce3ed;border-radius:14px;padding:22px;min-width:0;overflow-wrap:anywhere}.staff-card .actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.staff-card details{margin-top:16px}.staff-assignment-list{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.staff-swatch{background:var(--team-bg);color:var(--team-ink);border-left:5px solid var(--team-edge);padding:4px 8px;border-radius:4px;display:inline-block}.team-color-green{--team-bg:#e4f3e7;--team-ink:#1b512a;--team-edge:#38814b}.team-color-orange{--team-bg:#fff0d8;--team-ink:#71430d;--team-edge:#b87920}.team-color-blue{--team-bg:#e7f0ff;--team-ink:#183c76;--team-edge:#3974bf}.team-color-purple{--team-bg:#efe8ff;--team-ink:#4b287f;--team-edge:#8154ba}.team-color-yellow{--team-bg:#fff9cc;--team-ink:#63500b;--team-edge:#a88b16}.team-color-gray{--team-bg:#edf0f4;--team-ink:#3e4b60;--team-edge:#758399}.team-color-red{--team-bg:#ffe7e9;--team-ink:#792633;--team-edge:#b64250}.team-color-teal{--team-bg:#def5f0;--team-ink:#1b584b;--team-edge:#2d8874}
@media(max-width:600px){.staff-card{padding:16px}.staff-card .section-title{align-items:flex-start;gap:8px;flex-wrap:wrap}.staff-card .actions>*{flex:1 1 145px}.staff-assignment-list>*{width:100%;white-space:normal}}

/* Role-aware controls must remain hidden regardless of layout display rules. */
[hidden]{display:none!important}
.workspace-identity{margin:0 0 1rem;color:var(--muted);font-size:.9rem}
.business-logo-preview{max-width:200px;max-height:90px;object-fit:contain;display:block;margin:12px 0}.quote-share-link{overflow-wrap:anywhere}.quote-sharing{border-top:1px solid #dce4ed;padding-top:20px;margin-top:20px}

#request-logo{max-width:260px;max-height:100px;object-fit:contain}.customer-page main{max-width:760px;margin:auto}.request-code{width:100%;min-height:130px;box-sizing:border-box}
/* Email delivery is separate from invoice payment status. */
.email-status{display:inline-block;border:1px solid #cdd8d0;border-radius:999px;padding:4px 10px;font-size:.85rem;font-weight:650;background:#f0f4f0;color:#294c3c;max-width:100%;overflow-wrap:anywhere}
.email-status.email-delivered{background:#e1f0e5;border-color:#91ba9b;color:#1d5931}
.email-status.email-warning{background:#fff1df;border-color:#caa36a;color:#744711}

/* Bank register: dense desktop rows and stacked phone rows, with review in place. */
.register-balances{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.register-balances .settings-card{margin:0 0 16px}.register-balances h2{font-size:17px}.register-table-wrap{max-width:100%;overflow-x:auto;border:1px solid #dce2e9;border-radius:12px}.bank-register{width:100%;border-collapse:collapse;background:#fff;font-size:14px}.bank-register th{background:#edf2f7;text-align:left;font-size:12px;padding:12px;white-space:nowrap}.bank-register td{padding:12px;border-bottom:1px solid #e1e6ed;vertical-align:top}.bank-register td:nth-child(2){min-width:180px;max-width:300px;overflow-wrap:anywhere}.bank-register small{display:block;color:#586579;margin-top:5px}.bank-register select{width:100%;min-width:165px;font-size:14px}.bank-register button{font-size:13px;padding:9px 12px;white-space:nowrap}.register-money{white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}.register-status{font-size:12px;font-weight:650}.register-detail[hidden]{display:none}.register-detail>td{padding:0;background:#f5f8fb}.register-editor{padding:20px;max-width:1000px}.register-editor h2{font-size:18px}.register-editor form{max-width:820px;display:grid;gap:12px}.register-editor label{display:block;margin:10px 0}.register-editor input:not([type=checkbox]),.register-editor textarea,.register-editor select{width:100%;min-width:0}.register-editor input[type=checkbox]{width:auto;margin-right:8px}.register-editor details{margin-top:18px}.register-editor [role=alert]{color:#a12323}.register-editor [type=submit]{justify-self:start}.register-editor .heading{align-items:flex-start}.bank-register .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:700px){.bank-register thead{display:none}.bank-register,.bank-register tbody{display:block}.bank-register tr:not(.register-detail){display:grid;grid-template-columns:1fr 1fr;border-bottom:2px solid #dce2e9;padding:10px}.bank-register td{display:block;border:0;padding:7px;min-width:0!important;max-width:none!important}.bank-register td::before{content:attr(data-label);display:block;font-size:11px;color:#586579;margin-bottom:5px}.bank-register td:nth-child(2),.bank-register td:nth-child(5){grid-column:1/-1}.bank-register td:nth-child(2){grid-row:2}.register-money{text-align:left}.bank-register .register-detail{display:block}.bank-register .register-detail[hidden]{display:none}.register-detail>td{padding:0}.register-detail>td::before{display:none}.register-editor{padding:14px}.register-editor .heading{display:block}.register-editor .heading button{margin-top:8px}.register-balances{grid-template-columns:1fr}.bank-register select{min-width:0}.bank-register .fields-grid{grid-template-columns:1fr}}
