/* Osrilo Build 88 source: release-overrides.css. Load order is defined in index.html. */
/* Build 60 — streamlined, resilient onboarding */
/* Build 57 — persistent mobile clock status and shape integrity */
.mobile-clock-status-pill{display:none}
.mobile-sheet-close,.modal-close,.icon-button{box-sizing:border-box;display:grid;width:40px;min-width:40px;height:40px;min-height:40px;flex:0 0 40px;aspect-ratio:1;place-items:center;padding:0;border:1px solid var(--line);border-radius:50%;background:#f1f5f9;color:#334155;box-shadow:none;font-size:25px;line-height:1}
.mobile-sheet-close:hover,.modal-close:hover,.icon-button:hover{background:#e2e8f0}
.dashboard-brand-logo,.sidebar-mark,.notification-button,.mobile-fab,.spinner,.connection-dot{box-sizing:border-box;aspect-ratio:1;flex-shrink:0}
@media(max-width:820px){
  .mobile-clock-status-pill{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:58px;height:38px;flex:0 0 auto;padding:0 10px;border:1px solid #cbd5e1;border-radius:999px;background:#f8fafc;color:#475569;box-shadow:none;font-size:11px;font-weight:900;line-height:1}
  .mobile-clock-status-pill i{display:block;width:9px;height:9px;flex:0 0 9px;aspect-ratio:1;border-radius:50%;background:#94a3b8;box-shadow:0 0 0 3px rgba(148,163,184,.14)}
  .mobile-clock-status-pill[data-status="working"]{border-color:#86efac;background:#f0fdf4;color:#166534}
  .mobile-clock-status-pill[data-status="working"] i{background:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.14)}
  .mobile-clock-status-pill[data-status="on_break"]{border-color:#fcd34d;background:#fffbeb;color:#92400e}
  .mobile-clock-status-pill[data-status="on_break"] i{background:#f59e0b;box-shadow:0 0 0 3px rgba(245,158,11,.15)}
}
@media(max-width:390px){
  .mobile-clock-status-pill{min-width:52px;padding:0 8px}
}

/* Build 62 — verified signup continuation fix */
.verification-card{width:min(580px,100%);border-top:4px solid var(--brand)}
.verification-email-box{display:grid;gap:5px;padding:16px;border:1px solid #99f6e4;border-radius:14px;background:#f0fdfa;text-align:center}
.verification-email-box span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.verification-email-box strong{overflow-wrap:anywhere;font-size:18px}
.verification-steps{display:grid;gap:10px;margin:4px 0 2px;padding:0;counter-reset:verify-step}
.verification-steps li{position:relative;list-style:none;min-height:34px;padding-left:44px;color:var(--muted);line-height:1.45}
.verification-steps li::before{counter-increment:verify-step;content:counter(verify-step);position:absolute;left:0;top:-3px;display:grid;width:30px;height:30px;place-items:center;border-radius:50%;background:var(--brand-soft);color:var(--brand-dark);font-weight:900}
.verification-actions{display:grid;gap:10px}
.verification-actions button{width:100%}
.verification-code-field input{min-height:58px;text-align:center;font-size:25px;font-weight:900;letter-spacing:.38em;font-variant-numeric:tabular-nums}
.verification-security-note{margin:0;color:var(--muted);font-size:12px;line-height:1.5;text-align:center}
/* Build 64 — verified-email gate and safe continuation */
.app-account-panel{position:relative}
.account-menu-trigger{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:5px 10px 5px 6px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);box-shadow:none;font-weight:800}
.account-menu-trigger:hover,.account-menu-trigger[aria-expanded="true"]{border-color:#99f6e4;background:var(--brand-soft)}
.account-avatar{display:grid;width:30px;height:30px;flex:0 0 30px;place-items:center;border-radius:50%;background:var(--brand-dark);color:#fff;font-size:12px;font-weight:900;letter-spacing:.02em}
.account-menu-trigger-label{font-size:12px}
.account-menu-chevron{color:var(--muted);font-size:15px;line-height:1}
.account-menu-panel{position:absolute;z-index:2300;top:calc(100% + 10px);right:0;width:min(320px,calc(100vw - 24px));padding:10px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 22px 60px rgba(15,23,42,.24);text-align:left}
.account-menu-identity{display:grid;gap:2px;padding:8px 9px 12px;border-bottom:1px solid var(--line)}
.account-menu-identity>span{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.account-menu-identity strong{overflow-wrap:anywhere;font-size:14px}
.account-menu-identity small{overflow:hidden;color:var(--brand-dark);font-size:12px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}
.account-menu-actions{display:grid;gap:6px;padding-top:8px}
.account-menu-actions button{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:9px;width:100%;min-height:58px;padding:8px 10px;border:0;border-radius:12px;background:#fff;color:var(--ink);box-shadow:none;text-align:left}
.account-menu-actions button:hover{background:var(--brand-soft)}
.account-menu-actions button>span:first-child{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;background:#ecfeff;color:var(--brand-dark);font-size:18px;font-weight:900}
.account-menu-actions button>span:last-child{display:grid;gap:1px}
.account-menu-actions button strong{font-size:14px}
.account-menu-actions button small{color:var(--muted);font-size:11px;font-weight:500}
.account-menu-actions .account-menu-sign-out:hover{background:#fef2f2}
.account-menu-actions .account-menu-sign-out>span:first-child{background:#fef2f2;color:#b91c1c}
.workspace-choice-footer-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}
@media(max-width:820px){
  .account-menu-trigger{width:42px;min-width:42px;height:42px;min-height:42px;padding:5px;border-radius:50%}
  .account-avatar{width:30px;height:30px;flex-basis:30px}
  .account-menu-trigger-label,.account-menu-chevron{display:none}
  .account-menu-panel{position:fixed;top:calc(74px + env(safe-area-inset-top));right:12px}
}
@media(max-width:650px){
  .workspace-choice-footer-actions{display:grid;width:100%;grid-template-columns:1fr}
  .workspace-choice-footer-actions button{width:100%}
}

.onboarding-account-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.onboarding-account-actions button{min-height:40px}
.password-setup-account-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:4px;padding-top:14px;border-top:1px solid var(--line)}
@media(max-width:720px){
  .onboarding-header{align-items:flex-start}
  .onboarding-account-actions{display:grid;width:100%;grid-template-columns:1fr 1fr}
  .onboarding-account-actions .onboarding-close-button{grid-column:1 / -1}
  .onboarding-account-actions button{width:100%}
  .password-setup-account-actions{grid-template-columns:1fr}
}


/* Build 66 — mobile assignment card containment and usable task controls */
.my-work-list,.my-work-card,.crew-task-list,.crew-task{max-width:100%}
.my-work-card{min-width:0;overflow:hidden}
.my-work-card-head>div,.my-work-schedule>span,.assigned-duty,.assigned-duty strong,.crew-task,.crew-task span{min-width:0}
.my-work-card-head h3,.my-work-card-head p,.my-work-schedule span,.assigned-duty strong,.crew-task span{overflow-wrap:anywhere;word-break:break-word}
.crew-task{width:100%;align-items:flex-start;overflow:hidden}
.crew-task input[type="checkbox"]{appearance:auto;-webkit-appearance:checkbox;width:22px;min-width:22px;height:22px;min-height:22px;flex:0 0 22px;margin:1px 0 0;padding:0;border:0;border-radius:4px;background:transparent;box-shadow:none;accent-color:var(--brand)}
.crew-task span{flex:1 1 auto;line-height:1.4}
@media(max-width:720px){
  .my-work-card{padding:14px}
  .my-work-card-head{gap:10px}
  .my-work-card-head>strong{font-size:1rem}
  .my-work-schedule{gap:7px;padding:12px}
  .assigned-duty{padding:12px 12px 12px 14px}
  .crew-task-list{gap:9px}
  .crew-task{gap:12px;padding:12px}
}


/* Build 65 completion — resumable post-upgrade setup surfaces */
.post-upgrade-setup-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;padding:16px 18px;border:1px solid #99f6e4;border-radius:15px;background:linear-gradient(135deg,#ecfdf5,#f0fdfa)}
.post-upgrade-setup-banner>div{display:grid;gap:3px;min-width:0}.post-upgrade-setup-banner span{color:#475569;font-size:13px}.post-upgrade-setup-banner button{flex:0 0 auto}
.post-upgrade-setup-modal{width:min(680px,100%)}
.post-upgrade-progress{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:18px 0}
.post-upgrade-progress span{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--line);border-radius:11px;background:#f8fafc;color:var(--muted);font-size:12px;font-weight:800}
.post-upgrade-progress b{display:grid;width:24px;height:24px;place-items:center;border-radius:50%;background:#e2e8f0;color:#334155}
.post-upgrade-progress .is-current{border-color:#5eead4;background:#ecfeff;color:#0f766e}.post-upgrade-progress .is-current b{background:#0f766e;color:#fff}
.post-upgrade-progress .is-complete{border-color:#86efac;background:#f0fdf4;color:#166534}.post-upgrade-progress .is-complete b{background:#16a34a;color:#fff}
.post-upgrade-setup-body{display:grid;gap:14px}.post-upgrade-step-card{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:14px;padding:16px;border:1px solid var(--line);border-radius:15px;background:#f8fafc}
.post-upgrade-step-card h3{margin:1px 0 4px}.post-upgrade-step-card p{margin:0;color:var(--muted)}.post-upgrade-step-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:13px;background:#0f766e;color:#fff;font-size:21px;font-weight:900}
.post-upgrade-status-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}.post-upgrade-status-row span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.post-upgrade-main-action{width:100%}.post-upgrade-invite-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,.55fr);gap:12px}.post-upgrade-ready-card{display:grid;gap:10px}.post-upgrade-ready-card>div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:11px;align-items:start;padding:13px;border:1px solid var(--line);border-radius:12px;background:#fff}.post-upgrade-ready-card>div>span{display:grid;width:28px;height:28px;place-items:center;border-radius:50%;background:#dcfce7;color:#166534;font-weight:900}.post-upgrade-ready-card strong,.post-upgrade-ready-card small{display:block}.post-upgrade-ready-card small{margin-top:2px;color:var(--muted)}.post-upgrade-finish-copy{margin:0;color:var(--muted)}.post-upgrade-message[data-type="success"]{background:#f0fdf4;color:#166534}.post-upgrade-actions{flex-wrap:wrap}
@media(max-width:720px){.post-upgrade-setup-banner{align-items:stretch;flex-direction:column}.post-upgrade-setup-banner button{width:100%}.post-upgrade-progress{grid-template-columns:1fr}.post-upgrade-invite-grid{grid-template-columns:1fr}.post-upgrade-actions{display:grid;grid-template-columns:1fr}.post-upgrade-actions button{width:100%}}



/* Build 71 — Stripe-only customer payments */
.remember-login-row{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#f8fafc;cursor:pointer}
.remember-login-row input{width:18px;min-width:18px;height:18px;margin:2px 0 0;accent-color:var(--brand)}
.remember-login-row span{display:grid;gap:2px}.remember-login-row strong{font-size:13px}.remember-login-row small{color:var(--muted);font-size:11px;line-height:1.35}
.workspace-choice-status{justify-self:end;padding:5px 9px;border-radius:999px;background:#dcfce7;color:#166534;font-size:11px;font-weight:900;white-space:nowrap}
.workspace-choice-status[data-status="setup_only"]{background:#fef3c7;color:#92400e}.workspace-choice-status[data-status="read_only"]{background:#fee2e2;color:#991b1b}
.workspace-access-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 16px;padding:14px 16px;border:1px solid #fcd34d;border-radius:14px;background:#fffbeb}
.workspace-access-banner>div{display:grid;gap:3px;min-width:0}.workspace-access-banner strong{color:#78350f}.workspace-access-banner span{color:#92400e;font-size:13px}
.workspace-access-banner[data-status="read_only"]{border-color:#fca5a5;background:#fef2f2}.workspace-access-banner[data-status="read_only"] strong{color:#991b1b}.workspace-access-banner[data-status="read_only"] span{color:#b91c1c}
.workspace-access-banner button{flex:0 0 auto}
.billing-evolution-notice{border:1px solid var(--line);background:#f8fafc}.billing-evolution-notice strong{display:block;margin-bottom:4px}.billing-evolution-notice p{margin:0;color:var(--muted);font-size:13px;max-width:880px}
@media(max-width:720px){.workspace-access-banner{align-items:stretch;flex-direction:column}.workspace-access-banner button{width:100%}.workspace-choice-status{grid-column:1 / -1;justify-self:start}}

/* Build 72 — profitability, safe bug reports, and focused calendar actions */
.remember-login-row.remember-login-simple{display:inline-flex;align-items:center;width:max-content;max-width:100%;gap:8px;padding:0;border:0;border-radius:0;background:transparent}
.remember-login-row.remember-login-simple input{margin:0}.remember-login-row.remember-login-simple span{display:block;color:var(--ink);font-size:14px;font-weight:750}
.legal-consent-row{display:flex;align-items:flex-start;gap:10px;padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:#f8fafc;color:var(--muted);font-size:12px;line-height:1.45}
.legal-consent-row input{width:18px;min-width:18px;height:18px;margin:1px 0 0;accent-color:var(--brand)}
.legal-consent-row a,.app-legal-links a{color:var(--brand);font-weight:850}
.auth-legal-links,.app-legal-links{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:11px}
.auth-legal-links{margin-top:13px}.sidebar-footer .app-legal-links{justify-content:flex-start;padding:3px 2px}
.subscription-policy-notice{display:grid;gap:5px;margin-top:10px;padding:11px 12px;border:1px solid #fde68a;border-radius:11px;background:#fffbeb;color:#78350f;font-size:12px}
.subscription-policy-notice strong{margin:0}.subscription-policy-notice p{margin:0;color:#92400e;max-width:none}
.confirm-legal-supplement{display:grid;gap:7px;margin:13px 0 4px;padding:12px;border:1px solid #99f6e4;border-radius:12px;background:#f0fdfa;color:#28544f;font-size:12px;line-height:1.45}
.confirm-legal-supplement[hidden]{display:none}.confirm-legal-supplement p{margin:0}.confirm-legal-supplement a{color:var(--brand);font-weight:850}
/* Build 111 HOTFIX29 — Profit truth, projections, and active-Work drill-down */
.profit-page{display:grid;gap:16px}
.profit-page-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.profit-page-intro .page-subtitle{max-width:760px}
.profit-filter-card{padding:16px}
.profit-filter-grid{display:grid;grid-template-columns:minmax(135px,.34fr) minmax(135px,.34fr) minmax(180px,.5fr) minmax(240px,1fr) auto;align-items:end;gap:12px}
.profit-filter-grid>button{min-height:48px}
.profit-section-heading{align-items:flex-end}
.profit-section-heading .section-help{max-width:680px}
.profit-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.profit-summary-grid article,.profit-cost-grid>div{display:grid;align-content:start;gap:5px;padding:17px;border:1px solid var(--line);border-radius:15px;background:#fff}
.profit-summary-grid span,.profit-cost-grid span{color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.045em;text-transform:uppercase}
.profit-summary-grid strong{font-size:25px;line-height:1.08}
.profit-summary-grid small,.profit-cost-grid small{color:var(--muted);font-size:12px;line-height:1.35}
.profit-summary-grid .profit-highlight{border-color:#86d7ca;background:linear-gradient(135deg,#eefbf8,#f5fbfa)}
.profit-summary-grid .profit-cash-highlight.is-negative{border-color:#fecaca;background:#fff7f7}
.profit-truth-note{display:flex;align-items:flex-start;gap:9px;margin-top:12px;padding:11px 13px;border:1px solid #b8d8d4;border-radius:12px;background:#f3faf9;color:#334155;font-size:12px;line-height:1.45}
.profit-truth-note strong{white-space:nowrap;color:#0f766e}
.profit-cost-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.profit-cost-grid strong{font-size:20px}
.profit-job-list{display:grid;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
.profit-job-row{background:#fff;border-bottom:1px solid var(--line)}
.profit-job-row:last-child{border-bottom:0}
.profit-job-open{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(150px,1fr) repeat(4,minmax(105px,.7fr));align-items:center;gap:12px;width:100%;padding:14px;border:0;border-radius:0;background:transparent;color:var(--ink);box-shadow:none;text-align:left}
.profit-job-open:hover{background:#f7fafb}
.profit-job-open>span{display:grid;gap:3px;min-width:0}
.profit-job-open small{color:var(--muted);font-size:11px;line-height:1.3}
.profit-job-identity strong,.profit-job-identity small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profit-stage-pill{justify-self:start;display:inline-flex!important;width:max-content;padding:4px 8px;border-radius:999px;background:#eef2f7;color:#475569;font-size:10px!important;font-weight:900;text-transform:uppercase;letter-spacing:.045em}
.profit-stage-pill[data-stage="committed"]{background:#dcfce7;color:#166534}
.profit-stage-pill[data-stage="pipeline"]{background:#eff6ff;color:#1d4ed8}
.negative-value{color:var(--danger)}
.profit-detail-modal{width:min(1080px,96vw);max-height:92vh;overflow:auto}
.profit-detail-body{display:grid;gap:15px}
.profit-detail-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.profit-detail-section{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:15px;background:#f8fafc}
.profit-projection-section{border-color:#b8d8d4;background:#f4faf9}
.profit-detail-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.profit-detail-heading h3{margin:0}
.profit-detail-heading span{max-width:520px;color:var(--muted);font-size:12px;text-align:right;line-height:1.4}
.profit-detail-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.profit-detail-metrics>div{display:grid;align-content:start;gap:3px;padding:12px;border:1px solid #e2e8f0;border-radius:11px;background:#fff}
.profit-detail-metrics span,.profit-detail-metrics small{color:var(--muted);font-size:11px}
.profit-financial-status{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid #d8e2e8;border-radius:11px;background:#fff}
.profit-financial-status span{color:var(--muted);font-size:12px;text-align:right}
.profit-comparison-table{overflow:hidden;border:1px solid #e2e8f0;border-radius:11px;background:#fff}
.profit-comparison-table>div{display:grid;grid-template-columns:minmax(130px,1fr) repeat(2,minmax(105px,.65fr));gap:10px;padding:9px 12px;border-bottom:1px solid #edf2f7}
.profit-comparison-table>div:last-child{border-bottom:0}
.profit-comparison-table>div:first-child{background:#f1f5f9}
.profit-comparison-table strong{text-align:right}
.profit-estimate-note{margin:0;padding:11px;border-left:3px solid var(--brand);background:#fff;color:var(--muted);white-space:pre-wrap}
.profit-projection-source-note{display:grid;gap:4px;margin-bottom:12px;padding:11px 12px;border:1px solid #b8d8d4;border-radius:11px;background:#f3faf9}
.profit-projection-source-note span{color:var(--muted);font-size:12px;line-height:1.4}
.profit-ledger-list{display:grid;border:1px solid #e2e8f0;border-radius:11px;background:#fff;overflow:hidden}
.profit-ledger-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:11px 12px;border-bottom:1px solid #edf2f7}
.profit-ledger-list>div:last-child{border-bottom:0}
.profit-ledger-list>div>span{display:grid;gap:2px}
.profit-ledger-list small{color:var(--muted);font-size:11px}
.profit-ledger-actions{display:flex!important;grid-auto-flow:column;gap:6px}
.profit-edit-modal{width:min(720px,96vw);max-height:90vh;overflow:auto}
.labor-rate-modal{width:min(880px,96vw);max-height:90vh;overflow:auto}.labor-rate-list{display:grid;gap:9px;margin-top:14px}.labor-rate-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(190px,.65fr) minmax(150px,.5fr);align-items:end;gap:13px;padding:14px;border:1px solid var(--line);border-radius:13px;background:#f8fafc}.labor-rate-row>div{display:grid;gap:4px}.labor-rate-row small{color:var(--muted);font-size:11px}.money-input{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;border:1px solid var(--line);border-radius:11px;background:#fff;overflow:hidden}.money-input>span{padding-left:11px;color:var(--muted);font-weight:850}.money-input input{border:0;box-shadow:none}.bug-report-modal{width:min(720px,96vw);max-height:92vh;overflow:auto}.bug-report-modal form{display:grid;gap:14px}.bug-error-link{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid #bae6fd;border-radius:12px;background:#f0f9ff}.bug-error-link input{width:18px;min-width:18px;height:18px;margin:2px 0 0}.bug-error-link span,.bug-error-link strong,.bug-error-link small{display:block}.bug-error-link small{margin-top:3px;color:var(--muted);overflow-wrap:anywhere}.calendar-details-context{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;padding:11px 13px;border:1px solid #99f6e4;border-radius:12px;background:#f0fdfa}.calendar-details-context span{color:#0f766e;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.calendar-details-context strong{text-align:right}.calendar-next-step-actions{padding-top:15px;border-top:1px solid var(--line)}.calendar-next-step-actions button{min-width:170px}
@media(max-width:1180px){.profit-cost-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.profit-job-open{grid-template-columns:minmax(200px,1.35fr) minmax(145px,1fr) repeat(2,minmax(100px,.7fr))}.profit-job-open>span:nth-child(5),.profit-job-open>span:nth-child(6){display:none}}
@media(max-width:900px){.profit-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profit-filter-grid .profit-search-field{grid-column:1/-1}.profit-filter-grid>button{grid-column:1/-1}.profit-summary-grid,.profit-cost-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profit-job-open{grid-template-columns:minmax(0,1.2fr) minmax(120px,.8fr) minmax(100px,.65fr)}.profit-job-open>span:nth-child(4),.profit-job-open>span:nth-child(5),.profit-job-open>span:nth-child(6){display:none}}
@media(max-width:720px){.profit-page-intro,.profit-detail-heading{align-items:stretch;flex-direction:column}.profit-page-intro .page-heading-actions{display:grid;grid-template-columns:1fr}.profit-page-intro button{width:100%}.profit-filter-grid,.profit-summary-grid,.profit-cost-grid,.profit-detail-metrics,.labor-rate-row{grid-template-columns:1fr}.profit-filter-grid .profit-search-field,.profit-filter-grid>button{grid-column:auto}.profit-job-open{grid-template-columns:minmax(0,1fr) minmax(100px,.65fr);padding:12px 10px}.profit-job-open>span:nth-child(3),.profit-job-open>span:nth-child(4),.profit-job-open>span:nth-child(5),.profit-job-open>span:nth-child(6){display:none}.profit-detail-heading span,.profit-financial-status span{text-align:left}.profit-financial-status{align-items:flex-start;flex-direction:column}.profit-comparison-table>div{grid-template-columns:minmax(90px,1fr) repeat(2,minmax(78px,.7fr));font-size:12px}.profit-ledger-list>div{grid-template-columns:minmax(0,1fr) auto}.profit-ledger-actions{grid-column:1/-1}.profit-detail-actions,.calendar-next-step-actions{display:grid}.profit-detail-actions button,.calendar-next-step-actions button{width:100%}.profit-truth-note{display:grid}.profit-truth-note strong{white-space:normal}.calendar-details-context{align-items:flex-start;flex-direction:column}.calendar-details-context strong{text-align:left}}

/* Build 67 — responsive application header cleanup */
@media (max-width: 820px) {
  .app-topbar {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    min-height: calc(78px + env(safe-area-inset-top));
    padding: calc(10px + env(safe-area-inset-top)) 14px 10px;
  }
  .app-topbar-brand { min-width: 0; gap: 10px; }
  .dashboard-brand-logo {
    width: 54px;
    height: 54px;
    flex: 0 0 54px;
  }
  .app-topbar-title { min-width: 0; }
  .app-eyebrow-row { gap: 7px; min-width: 0; }
  .app-topbar-title .eyebrow {
    max-width: 112px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .app-beta-badge { padding: 3px 8px; font-size: 9px; }
  .app-topbar-title h1 {
    max-width: 100%;
    font-size: clamp(28px, 7vw, 40px);
    line-height: .98;
  }
  .app-account-panel {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
    margin: 0;
    white-space: nowrap;
  }
  .app-account-panel .connection-row,
  .app-account-panel .role-badge,
  .app-account-panel .workspace-summary,
  .app-account-panel > .signed-in-email { display: none !important; }
  .mobile-clock-status-pill {
    display: inline-flex;
    min-width: 58px;
    height: 42px;
    padding: 0 11px;
    gap: 6px;
    line-height: 1;
    white-space: nowrap;
  }
  .notification-button,
  .account-menu-trigger {
    width: 42px;
    min-width: 42px;
    height: 42px;
    min-height: 42px;
    flex: 0 0 42px;
  }
  .account-menu-trigger { padding: 4px; }
  .account-avatar { width: 32px; height: 32px; }
}
@media (max-width: 520px) {
  .app-topbar {
    min-height: calc(72px + env(safe-area-inset-top));
    padding-left: 11px;
    padding-right: 11px;
  }
  .app-topbar-brand { gap: 8px; }
  .dashboard-brand-logo {
    width: 48px;
    height: 48px;
    flex-basis: 48px;
  }
  .app-topbar-title .eyebrow { max-width: 88px; font-size: 9px; }
  .app-beta-badge { display: none; }
  .app-topbar-title h1 { font-size: clamp(27px, 8.2vw, 34px); }
  .app-account-panel { gap: 5px; }
  .mobile-clock-status-pill {
    min-width: 50px;
    height: 38px;
    padding: 0 8px;
    font-size: 10px;
  }
  .notification-button,
  .account-menu-trigger {
    width: 38px;
    min-width: 38px;
    height: 38px;
    min-height: 38px;
    flex-basis: 38px;
  }
  .account-avatar { width: 30px; height: 30px; font-size: 13px; }
}
@media (max-width: 360px) {
  .dashboard-brand-logo { width: 44px; height: 44px; flex-basis: 44px; }
  .app-topbar-title .eyebrow { display: none; }
  .app-topbar-title h1 { font-size: 27px; }
  .mobile-clock-status-pill span { display: none; }
  .mobile-clock-status-pill { min-width: 38px; width: 38px; padding: 0; }
}
/* Build 84: keep menus and walkthroughs inside the installed-app viewport. */
@media(max-width:650px){
  .card-action-menu[open] .card-action-popover{
    position:fixed;z-index:1600;left:12px!important;right:12px!important;top:auto!important;
    bottom:calc(84px + env(safe-area-inset-bottom,0px))!important;width:auto!important;
    min-width:0!important;max-width:none!important;max-height:calc(100dvh - 132px)!important;
    border-radius:18px;padding:10px;
  }
  .tutorial-backdrop{align-items:flex-end;padding:12px 12px calc(82px + env(safe-area-inset-bottom,0px))}
  .tutorial-modal{width:100%;max-height:calc(100dvh - 110px);margin:0;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));overflow:auto}
}
/* Build 98: standalone Service Calls and separate document archives. */
.documents-page{display:grid;gap:18px}
.documents-page[hidden]{display:none}
.documents-page-intro{display:flex;align-items:center;justify-content:space-between;gap:18px}
.document-delivery-tag{display:inline-flex;align-items:center;min-height:22px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:800;line-height:1;text-transform:none;white-space:nowrap}
.document-delivery-tag.is-sent{background:#dcfce7;color:#166534}
.document-delivery-tag.is-unsent{background:#fef3c7;color:#92400e}
.document-delivery-tag.is-skipped{background:#e2e8f0;color:#334155}
.document-menu-action{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:14px!important}
.job-invoice-history button>span:first-child{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.job-invoice-history button>span:first-child .document-delivery-tag{color:inherit;font-size:10px}
.invoice-card-heading,.estimate-card-heading{flex-wrap:wrap}
.document-share-options label.is-unavailable{opacity:.48}
@media(max-width:720px){.documents-page-intro{display:grid}.document-menu-action{display:flex!important}}

/* Build 98: standalone Service Calls and separate document archives. */
.service-calls-page{display:grid;gap:18px}.service-calls-page[hidden]{display:none}
.service-calls-page-intro{display:flex;align-items:center;justify-content:space-between;gap:18px}
.service-call-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 180px 210px;gap:12px;align-items:end}
.service-call-list{display:grid;gap:12px}.service-call-card{border:1px solid #dbe3ec;border-left:5px solid #64748b;border-radius:16px;background:#fff;padding:16px;box-shadow:0 8px 24px rgba(15,23,42,.05)}
.service-call-card[data-priority="priority"]{border-left-color:#d97706;background:linear-gradient(90deg,#fffbeb 0,#fff 22%)}
.service-call-card[data-priority="urgent"]{border-left-color:#b42318;background:linear-gradient(90deg,#fff1f2 0,#fff 24%)}
.service-call-card-head,.service-call-card-actions,.service-call-card-meta,.service-call-tag-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.service-call-card-head{justify-content:space-between;align-items:flex-start}.service-call-card-head h3{margin:5px 0 2px}.service-call-card-head p{margin:0;color:#64748b}
.service-call-card-meta{margin:12px 0;color:#475569;font-size:13px}.service-call-card-problem{margin:10px 0;white-space:pre-wrap}
.service-call-card-actions{margin-top:12px}.service-call-card-actions .card-action-menu{margin-left:auto}
.service-call-tag{display:inline-flex;align-items:center;min-height:23px;padding:3px 9px;border-radius:999px;background:#e2e8f0;color:#334155;font-size:11px;font-weight:800}
.service-call-tag.priority{background:#fef3c7;color:#92400e}.service-call-tag.urgent{background:#fee2e2;color:#991b1b}.service-call-tag.follow-up{background:#ede9fe;color:#6d28d9}.service-call-tag.not-notified{background:#fee2e2;color:#991b1b}.service-call-tag.sent{background:#dcfce7;color:#166534}
.completed-service-calls>summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;list-style:none}.completed-service-calls>summary::-webkit-details-marker{display:none}.completed-service-calls>summary span:first-child{display:grid;gap:2px}.completed-service-calls>summary small{color:#64748b;font-weight:500}.completed-service-calls[open] .service-call-list{margin-top:16px}
.service-call-schedule-queue{margin-top:16px;padding-top:16px;border-top:1px solid #dbe3ec}.calendar-service-call{font-size:11px!important;min-height:22px!important;box-shadow:0 2px 7px rgba(15,23,42,.22);z-index:3!important}.calendar-service-call .fc-event-main{padding:1px 3px}.calendar-service-call-offset-1{transform:translateX(5px);width:calc(100% - 5px)!important}.calendar-service-call-offset-2{transform:translateX(10px);width:calc(100% - 10px)!important}
.service-call-editor-modal,.service-call-schedule-modal,.service-call-details-modal,.service-call-invoice-prep-modal{width:min(920px,calc(100vw - 28px));max-height:calc(100dvh - 30px);overflow:auto}.service-call-editor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.service-call-worker-groups{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}.service-call-worker-list{display:grid;gap:8px}.service-call-worker-option{display:flex;align-items:flex-start;gap:10px;padding:11px;border:1px solid #dbe3ec;border-radius:12px}.service-call-worker-option small{display:block;color:#64748b;margin-top:3px}.service-call-unavailable-workers .service-call-worker-option{background:#f8fafc}.service-call-unavailable-workers input:not(:enabled){cursor:not-allowed}
.service-call-notification-modal{width:min(680px,calc(100vw - 28px))}.service-call-notification-actions{flex-wrap:wrap}.service-call-notification-actions button{min-width:130px}
.service-call-activity{display:grid;gap:9px;margin-top:14px}.service-call-activity-entry{display:grid;gap:2px;padding:10px 12px;border-left:3px solid #cbd5e1;background:#f8fafc}.service-call-activity-entry small{color:#64748b}.service-call-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.service-call-photo-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px}
.service-call-follow-up-choice{display:flex;gap:18px;border:1px solid #dbe3ec;border-radius:12px;padding:12px;margin:14px 0}.service-call-follow-up-choice legend{font-weight:800;padding:0 5px}.service-call-charge-list{display:grid;gap:10px;margin:14px 0}.service-call-charge-row{display:grid;grid-template-columns:130px minmax(180px,1fr) 90px 100px 110px auto;gap:8px;align-items:end;padding:10px;border:1px solid #dbe3ec;border-radius:12px}
.service-call-invoice-context{display:grid;gap:4px;margin:0 0 14px;padding:12px 14px;border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff;color:#1e3a8a}.service-call-invoice-context span{font-size:13px}
@media(max-width:820px){.service-call-toolbar,.service-call-worker-groups{grid-template-columns:1fr}.service-call-charge-row{grid-template-columns:1fr 1fr}.service-call-charge-row label:nth-child(2){grid-column:1/-1}.service-calls-page-intro{display:grid}}
@media(max-width:560px){.service-call-editor-grid,.service-call-charge-row{grid-template-columns:1fr}.service-call-charge-row label:nth-child(2){grid-column:auto}.calendar-service-call{font-size:10px!important}.service-call-card-actions>button{flex:1 1 auto}}

/* Build 99: source-linked estimate/invoice quick actions. */
@media(max-width:720px){.dashboard-action-group{flex-wrap:wrap}}


/* Build 101: standalone invoice, fee clarity, and Service Call mobile polish. */
.invoice-source-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;background:#e2e8f0;color:#334155;font-size:11px;font-weight:900;line-height:1.2}
.invoice-source-badge[data-source="standalone"]{background:#ede9fe;color:#5b21b6}.invoice-source-badge[data-source="service_call"]{background:#ccfbf1;color:#115e59}
.stripe-no-osrilo-fee-note{grid-column:1/-1;padding:16px 18px;border:1px solid #99f6e4;border-radius:14px;background:#f0fdfa}.stripe-no-osrilo-fee-note strong{display:block;color:#115e59}.stripe-no-osrilo-fee-note p{margin:5px 0 0;color:#334155;line-height:1.5}
.service-call-worker-option{width:100%;min-width:0;box-sizing:border-box}.service-call-worker-option>input{flex:0 0 22px;width:22px;height:22px;margin:1px 0 0}.service-call-worker-copy{display:block;min-width:0;max-width:100%}.service-call-worker-copy strong,.service-call-worker-copy small{max-width:100%;overflow-wrap:anywhere;word-break:break-word}.service-call-worker-email{color:#475569}.service-call-worker-availability{margin-top:4px}.service-call-detail-row{display:grid;gap:4px;min-width:0}.service-call-detail-row>span{color:#64748b;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.service-call-detail-row>strong,.service-call-detail-row>small{overflow-wrap:anywhere}.service-call-detail-row>small{color:#64748b}
@media(max-width:620px){
  #serviceCallScheduleModal{align-items:stretch;padding:0;overflow:hidden}
  .service-call-schedule-modal{width:100vw;max-width:none;height:100dvh;max-height:100dvh;margin:0;border-radius:0;padding:18px;overflow-x:hidden;box-sizing:border-box}
  .service-call-schedule-modal .details-modal-header{position:sticky;top:-18px;z-index:3;margin:-18px -18px 14px;padding:18px;background:#fff;border-bottom:1px solid #e2e8f0}
  .service-call-schedule-modal .form-grid,.service-call-worker-groups{grid-template-columns:1fr}
  .service-call-worker-groups{gap:18px}
  .service-call-worker-list,.service-call-worker-list>*{min-width:0;max-width:100%}
  .service-call-schedule-modal .modal-actions{position:sticky;bottom:-18px;z-index:3;margin:18px -18px -18px;padding:12px 18px calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e2e8f0}
  .service-call-schedule-modal .modal-actions button{min-width:0;flex:1}
  .service-call-details-grid{grid-template-columns:1fr}
}

/* Build 102: Service Call state correlation, completion polish, and a larger
   desktop dashboard at normal browser zoom. */
.service-call-tag.notice-needed{background:#fef3c7;color:#92400e}
.service-call-follow-up-section{border-color:#c4b5fd;background:linear-gradient(135deg,#fff 0%,#faf5ff 100%)}
.service-call-card[data-service-call-status="arrived"]{border-left-color:#0284c7;background:linear-gradient(90deg,#f0f9ff 0,#fff 22%)}
.service-call-card[data-service-call-status="in_progress"]{border-left-color:#0f766e;background:linear-gradient(90deg,#f0fdfa 0,#fff 22%)}
.service-call-card[data-service-call-status="follow_up_required"]{border-left-color:#7c3aed;background:linear-gradient(90deg,#faf5ff 0,#fff 24%)}
.service-call-complete-modal{display:flex;width:min(760px,calc(100vw - 28px));max-height:calc(100dvh - 30px);padding:0;overflow:hidden;flex-direction:column}
.service-call-complete-scroll{min-height:0;padding:24px;overflow:auto}
.service-call-completion-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0 0 18px;padding:14px;border:1px solid #dbe3ec;border-radius:14px;background:#f8fafc}
.service-call-completion-summary>div{display:grid;gap:4px;min-width:0}
.service-call-completion-summary span{color:#64748b;font-size:11px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
.service-call-completion-summary strong{overflow-wrap:anywhere;font-size:14px}
.service-call-completion-block{display:grid;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid #e2e8f0}
.service-call-completion-block .form-section-heading{align-items:flex-start;margin:0}
.service-call-completion-block .form-section-heading span{display:block;margin-top:2px;color:#64748b;font-size:13px}
.service-call-no-notes-row{align-items:flex-start;margin:0;padding:12px 14px;border:1px solid #dbe3ec;border-radius:12px;background:#f8fafc}
.service-call-photo-upload{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:1px dashed #94a3b8;border-radius:13px;background:#f8fafc;color:#0f766e;cursor:pointer}
.service-call-photo-upload:hover{border-color:#0ea5a6;background:#ecfeff}
.service-call-photo-upload span{color:#64748b;font-size:12px}
.service-call-completion-photo-list{display:grid;gap:9px}
.service-call-completion-photo-row{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(220px,1.3fr);gap:12px;align-items:end;padding:11px 12px;border:1px solid #dbe3ec;border-radius:12px;background:#fff}
.service-call-completion-photo-row>div{display:grid;gap:2px;min-width:0}.service-call-completion-photo-row>div strong{overflow-wrap:anywhere}.service-call-completion-photo-row>div small{color:#64748b}
.service-call-follow-up-choice{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0;padding:0;border:0}
.service-call-follow-up-option{display:flex;align-items:flex-start;gap:11px;padding:14px;border:1px solid #cbd5e1;border-radius:14px;background:#fff;cursor:pointer}
.service-call-follow-up-option:has(input:checked){border-color:#0ea5a6;background:#ecfeff;box-shadow:0 0 0 3px rgba(14,165,166,.12)}
.service-call-follow-up-option input{width:20px;height:20px;flex:0 0 20px;margin:2px 0 0}
.service-call-follow-up-option span{display:grid;gap:3px}.service-call-follow-up-option small{color:#64748b;line-height:1.4}
.service-call-follow-up-details{display:grid;gap:12px;padding:14px;border:1px solid #c4b5fd;border-radius:14px;background:#faf5ff}
.service-call-complete-actions{flex:0 0 auto;margin:0;padding:14px 24px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid #e2e8f0;background:#fff;box-shadow:0 -8px 24px rgba(15,23,42,.06)}
.service-call-follow-up-summary{padding:14px;border:1px solid #c4b5fd;border-radius:14px;background:#faf5ff}

/* Build 109A HOTFIX1: keep the signed-in dashboard in the browser's native
   100% coordinate space. FullCalendar measures slot geometry in CSS pixels;
   dashboard-level CSS zoom caused time-grid event and now-indicator positions
   to drift away from the visible hour rows. Desktop density is handled by the
   explicit 100% sizing rules later in this file, never by CSS zoom/scale. */

@media(max-width:820px){
  .service-call-completion-summary{grid-template-columns:1fr 1fr}
  .service-call-completion-summary>div:last-child{grid-column:1/-1}
}
@media(max-width:620px){
  #serviceCallCompleteModal{align-items:stretch;padding:0;overflow:hidden}
  .service-call-complete-modal{width:100vw;max-width:none;height:100dvh;max-height:100dvh;margin:0;border-radius:0}
  .service-call-complete-scroll{padding:18px}
  .service-call-complete-modal .details-modal-header{position:sticky;top:-18px;z-index:4;margin:-18px -18px 14px;padding:18px;background:#fff;border-bottom:1px solid #e2e8f0}
  .service-call-completion-summary{grid-template-columns:1fr 1fr;padding:11px}
  .service-call-follow-up-choice,.service-call-completion-photo-row{grid-template-columns:1fr}
  .service-call-photo-upload{align-items:flex-start;flex-direction:column}
  .service-call-complete-actions{padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px))}
  .service-call-complete-actions button{min-width:0;flex:1}
}

/* Build 103 production stabilization */
.archive-load-more{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border:1px solid #dbe4ee;border-radius:14px;background:#f8fafc;color:#475569;font-size:13px}.archive-load-more button{flex:0 0 auto}.service-call-notification-history{display:grid;gap:9px;margin-top:12px}.service-call-notification-attempt{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid #dbe4ee;border-left:4px solid #94a3b8;border-radius:12px;background:#fff}.service-call-notification-attempt>div{display:grid;gap:3px;min-width:0}.service-call-notification-attempt span,.service-call-notification-attempt small{color:#64748b;overflow-wrap:anywhere}.service-call-notification-attempt[data-status="sent"]{border-left-color:#16a34a}.service-call-notification-attempt[data-status="failed"]{border-left-color:#dc2626}.service-call-notification-attempt[data-status="skipped"]{border-left-color:#d97706}.service-call-notification-attempt[data-status="pending"]{border-left-color:#2563eb}
@media(max-width:640px){.archive-load-more,.service-call-notification-attempt{align-items:stretch;flex-direction:column}.archive-load-more button,.service-call-notification-attempt button{width:100%}}

/* Build 104: technician eligibility, invoice focus, and offline payment priority */
.service-technician-toggle {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.9rem 1rem;
  border: 1px solid var(--border-color, #d7dee8);
  border-radius: 14px;
  background: var(--surface-soft, #f7f9fc);
}
.service-technician-toggle input[type="checkbox"] { appearance:auto; -webkit-appearance:checkbox; width:18px; min-width:18px; max-width:18px; height:18px; min-height:18px; flex:0 0 18px; margin:0.2rem 0 0; padding:0; border:0; box-shadow:none; accent-color:var(--brand); }
.service-technician-toggle span { display: grid; gap: 0.2rem; }
.service-technician-toggle small { color: var(--text-muted, #64748b); line-height: 1.35; }
.service-technician-reassign-list { display: grid; gap: 0.65rem; margin: 1rem 0; max-height: 260px; overflow: auto; }
.service-technician-reassign-item { padding: 0.8rem 0.9rem; border: 1px solid var(--border-color, #d7dee8); border-radius: 12px; background: var(--surface-soft, #f7f9fc); }
.invoice-card.is-focused-invoice { outline: 3px solid currentColor; outline-offset: 4px; animation: osrilo-invoice-focus 1.2s ease 2; }
.offline-payment-primary { font-weight: 800; }
.payment-offline-note { margin-top: -0.35rem; }
@keyframes osrilo-invoice-focus { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@media (max-width: 680px) {
  .service-technician-toggle { padding: 0.8rem; }
  .offline-payment-primary { width: 100%; }
}

.service-technician-active-review {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  margin-top: 0.65rem;
  padding: 0.65rem 0.75rem;
  border-radius: 0.75rem;
  background: rgba(255, 255, 255, 0.72);
  font-weight: 700;
}
.service-technician-active-review input {
  margin-top: 0.15rem;
  flex: 0 0 auto;
}

/* Build 105: daily customer notification review and per-workflow decisions */
.customer-notification-review-launch {
  display: grid;
  gap: 0.2rem;
  width: 100%;
  margin: 0 0 0.8rem;
  padding: 0.9rem 1rem;
  border: 1px solid #f59e0b;
  border-radius: 14px;
  background: #fffbeb;
  color: #78350f;
  text-align: left;
}
.customer-notification-review-launch strong { font-size: 0.94rem; }
.customer-notification-review-launch span { color: #92400e; font-size: 0.78rem; line-height: 1.35; }
.customer-notification-review-modal { width: min(860px, calc(100vw - 32px)); max-height: calc(100dvh - 36px); overflow: auto; }
.customer-notification-review-list { display: grid; gap: 0.75rem; margin-top: 1rem; }
.customer-notification-review-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  padding: 1rem;
  border: 1px solid var(--border-color, #d7dee8);
  border-left: 4px solid #f59e0b;
  border-radius: 14px;
  background: #fff;
}
.customer-notification-review-copy { display: grid; gap: 0.3rem; min-width: 0; }
.customer-notification-review-copy strong,
.customer-notification-review-copy p,
.customer-notification-review-copy small { overflow-wrap: anywhere; }
.customer-notification-review-copy p { margin: 0; color: var(--text-muted, #64748b); }
.customer-notification-review-copy small { color: var(--text-muted, #64748b); }
.customer-notification-kind { color: #92400e; font-size: 0.72rem; font-weight: 900; letter-spacing: 0.04em; text-transform: uppercase; }
.customer-notification-review-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.45rem; }
.customer-notification-review-footer { position: sticky; bottom: -1px; margin-bottom: -1.5rem; padding-top: 1rem; padding-bottom: 1.5rem; background: #fff; }
.customer-notification-decision-modal { width: min(560px, calc(100vw - 32px)); }
.notification-decision-tag {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  padding: 0.25rem 0.55rem;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 850;
  line-height: 1.2;
}
.notification-decision-tag.is-skipped { background: #f1f5f9; color: #475569; }
.notification-decision-tag.is-failed { background: #fee2e2; color: #991b1b; }
.notification-decision-tag.is-reminder { background: #e0f2fe; color: #075985; }
.notification-decision-tag.is-needed { background: #fef3c7; color: #92400e; }
.work-card-status-group { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.4rem; align-items: center; }
.estimate-card-heading .notification-decision-tag,
.invoice-card-heading .notification-decision-tag { margin-left: 0.1rem; }
@media (max-width: 720px) {
  #customerNotificationReviewModal { align-items: stretch; padding: 0; overflow: hidden; }
  .customer-notification-review-modal { width: 100vw; max-width: none; height: 100dvh; max-height: 100dvh; margin: 0; border-radius: 0; padding: 18px; }
  .customer-notification-review-item { grid-template-columns: 1fr; align-items: stretch; }
  .customer-notification-review-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .customer-notification-review-actions button { width: 100%; min-width: 0; }
  .customer-notification-review-footer { margin: 0 -18px -18px; padding: 12px 18px calc(12px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid #e2e8f0; }
  .work-card-status-group { justify-content: flex-start; }
}

/* Build 105 R4: visible Service Call billing queue and compact technician control */
.service-call-billing-section {
  border-color: #f2c46d;
  background: linear-gradient(180deg, #fffdf7 0%, #ffffff 100%);
}
.service-call-billing-section .section-kicker,
.service-call-billing-section .section-help {
  color: #9a5b00;
}
.member-access-role-controls {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  align-items: end;
  gap: 0.65rem;
}
.member-service-technician-switch {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  min-height: 42px;
  padding: 0.45rem 0.65rem;
  border: 1px solid var(--border-color, #d7dee8);
  border-radius: 11px;
  background: #fff;
  cursor: pointer;
  white-space: nowrap;
}
.member-service-technician-switch:hover { border-color: #67c9c4; }
.member-service-technician-switch:focus-within { outline: 3px solid rgba(45, 170, 167, 0.2); outline-offset: 2px; }
.member-service-technician-switch input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.member-service-technician-track {
  position: relative;
  flex: 0 0 auto;
  width: 38px;
  height: 22px;
  border-radius: 999px;
  background: #cbd5e1;
  transition: background 0.18s ease;
}
.member-service-technician-track::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.25);
  transition: transform 0.18s ease;
}
.member-service-technician-switch input:checked + .member-service-technician-track { background: #20a7a4; }
.member-service-technician-switch input:checked + .member-service-technician-track::after { transform: translateX(16px); }
.member-service-technician-copy { display: grid; gap: 1px; }
.member-service-technician-copy strong { font-size: 0.82rem; line-height: 1.1; }
.member-service-technician-copy small { color: var(--text-muted, #64748b); font-size: 0.68rem; line-height: 1.15; }
@media (max-width: 1100px) {
  .member-access-role-controls { grid-template-columns: 1fr; align-items: stretch; }
  .member-service-technician-switch { justify-content: flex-start; }
}
@media (max-width: 720px) {
  .member-service-technician-switch { width: 100%; white-space: normal; }
}


/* Build 106 */
@media(max-width:700px){.customer-more-popover{position:fixed!important;left:auto;bottom:auto;width:min(260px,calc(100vw - 24px));padding:8px;border-radius:12px}.service-technician-toggle.invite-technician-toggle{display:flex!important;max-width:100%;min-width:0;overflow:hidden}.service-technician-toggle.invite-technician-toggle>span{min-width:0;overflow-wrap:anywhere}.service-technician-toggle.invite-technician-toggle small{white-space:normal;overflow-wrap:anywhere}.member-form,.team-access-panel{min-width:0;overflow-x:hidden}.member-email,.member-meta{overflow-wrap:anywhere;word-break:break-word}.assignment-summary-list>div{grid-template-columns:1fr}.time-clock-simple-hero{padding:18px}.time-clock-local-time{font-size:clamp(2.6rem,14vw,4.5rem)}}
.time-clock-simple-hero{display:grid;gap:6px}.time-clock-local-time{font-size:clamp(3rem,7vw,5.5rem);font-weight:900;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.time-clock-local-date{color:#64748b;font-weight:700}.time-clock-simple-hero .time-clock-live-card{margin-top:14px;border-radius:18px}.time-clock-big-clock-in{width:100%;min-height:64px;font-size:1.25rem;margin-top:14px}.estimate-save-material{width:auto!important;min-height:30px!important;margin-top:5px;padding:5px 8px!important;font-size:.75rem!important}


/* Build 106 HOTFIX3: Time Clock RPC/UI cleanup */
.time-clock-location-settings{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px 16px;
  align-items:center;
  max-width:100%;
  min-width:0;
  margin:12px 0 16px;
  padding:14px 16px;
  border:1px solid #dbe3ed;
  border-radius:14px;
  background:#f8fafc;
}
.time-clock-location-settings>strong,
.time-clock-location-settings>small,
.time-clock-location-settings>button{grid-column:1/-1}
.time-clock-location-settings>strong{font-size:.95rem}
.time-clock-location-settings>label{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:8px;
  min-width:0;
  margin:0!important;
  line-height:1.35;
  white-space:normal;
}
.time-clock-location-settings>label input[type="checkbox"]{
  width:18px!important;
  min-width:18px!important;
  max-width:18px!important;
  height:18px!important;
  min-height:18px!important;
  margin:0!important;
  padding:0!important;
  flex:0 0 18px;
}
.time-clock-location-settings>small{
  display:block;
  color:#64748b;
  line-height:1.45;
  overflow-wrap:anywhere;
}
.time-clock-location-settings>button{justify-self:start;width:auto}
#timeClockAdminSection{overflow:hidden}
#timeClockAdminSection .section-heading{min-width:0}
#timeClockAdminSection .time-clock-admin-tabs{max-width:100%}
.time-clock-simple-hero,.time-clock-simple-hero>*{min-width:0;max-width:100%}
.time-clock-simple-hero>h2{overflow-wrap:anywhere}
.time-clock-local-time{max-width:100%;line-height:1;overflow-wrap:normal}
@media(max-width:700px){
  .time-clock-location-settings{grid-template-columns:1fr;padding:13px}
  .time-clock-location-settings>strong,
  .time-clock-location-settings>small,
  .time-clock-location-settings>button{grid-column:1}
  .time-clock-location-settings>button{width:100%}
  .app-topbar-title h1{font-size:clamp(23px,6.6vw,30px);letter-spacing:-.03em}
}


/* Build 106 HOTFIX4: standard page headings and time geostamp actions */
.time-clock-hero{padding:18px!important}
.time-clock-page-heading,.schedule-page-heading{min-width:0;margin-bottom:14px}
.time-clock-page-heading>div,.schedule-page-heading>div{min-width:0}
.time-clock-simple-hero{padding:0!important}
#timeClockPage,#schedulePage{min-width:0;max-width:100%;overflow-x:clip}
#timeClockPage>.dashboard-section,#schedulePage>.dashboard-section{min-width:0;max-width:100%;box-sizing:border-box}
.time-clock-entry-admin-actions,.time-clock-team-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px}
.time-clock-entry-admin-actions .time-location-button,.time-clock-team-actions .time-location-button{white-space:normal;line-height:1.2}
@media(max-width:700px){
  .time-clock-hero{padding:15px!important}
  .time-clock-page-heading,.schedule-page-heading{display:block;margin-bottom:12px}
  .schedule-page-heading .calendar-heading-actions{align-items:stretch;width:100%;margin-top:10px}
  .time-clock-entry-admin-actions,.time-clock-team-actions{align-items:stretch;justify-content:stretch;flex-direction:column;width:100%}
  .time-clock-entry-admin-actions button,.time-clock-team-actions button{width:100%}
}

/* Build 107: keep Work status pills contained on narrow cards. */
.lead-card-header { min-width: 0; }
.lead-card-header > div:first-child { min-width: 0; }
.work-card-status-group {
  min-width: 0;
  max-width: 100%;
  flex: 0 1 auto;
}
.work-card-status-group .status-badge,
.work-card-status-group .notification-decision-tag {
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
  text-align: center;
}
@media (max-width: 720px) {
  .lead-card-header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
  }
  .lead-card-header > div:first-child { flex: 1 1 170px; }
  .work-card-status-group {
    flex: 0 1 auto;
    margin-left: auto;
    justify-content: flex-end;
  }
}
@media (max-width: 430px) {
  .work-card-status-group {
    flex: 1 1 100%;
    margin-left: 0;
    justify-content: flex-start;
  }
}


/* Build 108 desktop density normalization — no CSS zoom/transform hacks. */
@media (min-width: 1100px) {
  .dashboard-redesign{max-width:1540px}
  .app-topbar{gap:20px;margin-bottom:14px;padding:14px 18px;border-radius:17px}
  .app-topbar-brand{gap:13px}
  .dashboard-brand-logo{width:58px;height:58px;flex-basis:58px;border-radius:16px}
  .dashboard-brand-logo img{padding:6px}
  .app-topbar-title h1{font-size:29px}
  .app-account-panel{min-width:260px}
  .app-layout{grid-template-columns:224px minmax(0,1fr);gap:18px}
  .app-sidebar{padding:12px;border-radius:17px}
  .sidebar-mark{width:44px;height:44px;flex-basis:44px}
  .sidebar-nav{gap:9px;margin-top:12px}
  .sidebar-nav-button{padding:9px 10px}
  .dashboard-action-bar{padding:10px 12px;margin-bottom:12px}
}

/* Build 109RC HOTFIX1: simple, responsive server-backed customer reminder choices. */
.customer-notification-reminder-choices {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 14px 0;
}
.customer-notification-reminder-choices button {
  display: grid;
  gap: 4px;
  min-width: 0;
  text-align: left;
}
.customer-notification-reminder-choices button span {
  font-size: .84rem;
  font-weight: 500;
  line-height: 1.35;
  opacity: .72;
}
@media (max-width: 680px) {
  .customer-notification-reminder-choices { grid-template-columns: 1fr; }
}

/* Build 110: exact notification targets remain visible and obvious after navigation. */
.lead-card.is-focused-work,
.my-work-card.is-focused-work,
.estimate-card.is-highlighted {
  outline: 3px solid currentColor;
  outline-offset: 4px;
}
.lead-card.is-focused-work,
.my-work-card.is-focused-work {
  animation: osrilo-work-focus 1.2s ease 2;
}
@keyframes osrilo-work-focus {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}

/* Build 111 HOTFIX10 — dashboard-wide visual hierarchy and restrained contrast polish.
   Goal: less pure-white canvas, clearer surface layers, stronger scanability, no poppy redesign. */
body:not(.landing-visible){
  --ui-page-bg:#edf1f4;
  --ui-page-bg-deep:#e8edf1;
  --ui-panel:#f8fafb;
  --ui-panel-soft:#f2f5f7;
  --ui-card:#fcfdfe;
  --ui-card-strong:#ffffff;
  --ui-line:#d6dee6;
  --ui-line-strong:#c6d0da;
  --ui-ink-soft:#334155;
  --ui-shadow-panel:0 7px 22px rgba(15,23,42,.055);
  --ui-shadow-card:0 2px 8px rgba(15,23,42,.045);
  --surface:var(--ui-card);
  --surface-muted:var(--ui-panel-soft);
  --border:var(--ui-line);
  --border-color:var(--ui-line);
  --subtle:var(--ui-panel-soft);
  --primary:var(--brand-dark);
  background:
    radial-gradient(circle at 78% -10%,rgba(14,165,166,.055),transparent 30rem),
    linear-gradient(180deg,var(--ui-page-bg-deep) 0,var(--ui-page-bg) 18rem,var(--ui-page-bg) 100%);
}

/* Global signed-in shell */
body:not(.landing-visible) .dashboard-redesign{max-width:1540px}
body:not(.landing-visible) .app-topbar{
  border-color:var(--ui-line-strong);
  background:linear-gradient(135deg,#f9fbfc 0%,#f2f7f7 55%,#edf6f4 100%);
  box-shadow:0 8px 24px rgba(15,23,42,.065);
}
body:not(.landing-visible) .dashboard-brand-logo{box-shadow:0 7px 20px rgba(15,23,42,.12)}
body:not(.landing-visible) .app-sidebar{
  border-color:#263548;
  background:linear-gradient(180deg,#172334 0%,#111c2b 48%,#0f1724 100%);
  box-shadow:0 15px 38px rgba(15,23,42,.17);
}
body:not(.landing-visible) .sidebar-nav-label{color:#8190a3}
body:not(.landing-visible) .sidebar-nav-button{color:#cdd6e1}
body:not(.landing-visible) .sidebar-nav-button:hover{background:#223044;border-color:rgba(255,255,255,.11)}
body:not(.landing-visible) .sidebar-nav-button.is-active{
  border-color:#d7e5e4;
  background:linear-gradient(135deg,#f9fcfc,#edf7f6);
  color:#0f172a;
  box-shadow:0 5px 14px rgba(0,0,0,.15);
}
body:not(.landing-visible) .sidebar-utility-button{border-color:rgba(255,255,255,.15);color:#d8e0ea}
body:not(.landing-visible) .sidebar-utility-button:hover{background:#223044}

/* Main page surfaces */
body:not(.landing-visible) .dashboard-section,
body:not(.landing-visible) .lead-form-card,
body:not(.landing-visible) .access-card,
body:not(.landing-visible) .account-settings-card,
body:not(.landing-visible) .profit-filter-card,
body:not(.landing-visible) .billing-current-card,
body:not(.landing-visible) .billing-policy-card,
body:not(.landing-visible) .billing-addon-card,
body:not(.landing-visible) .stripe-payment-flow-card,
body:not(.landing-visible) .stripe-payment-policy-card{
  border-color:var(--ui-line);
  background:var(--ui-panel);
  box-shadow:var(--ui-shadow-panel);
}
body:not(.landing-visible) .page-intro-card,
body:not(.landing-visible) .service-calls-page-intro,
body:not(.landing-visible) .photos-page-intro,
body:not(.landing-visible) .my-work-intro{
  border-color:#cbd8df;
  background:linear-gradient(135deg,#f9fbfc,#f1f5f7);
}
body:not(.landing-visible) .dashboard-section>.section-heading:first-child,
body:not(.landing-visible) .lead-form-card>.section-heading:first-child,
body:not(.landing-visible) .access-card>.section-heading:first-child{
  margin-bottom:14px;
  padding-bottom:12px;
  border-bottom:1px solid #dde4ea;
}
body:not(.landing-visible) .section-kicker,
body:not(.landing-visible) .eyebrow{color:#0f766e}
body:not(.landing-visible) .page-subtitle,
body:not(.landing-visible) .section-help{color:#5b6b7c}

/* Form controls: keep white where interaction needs strongest contrast. */
body:not(.landing-visible) input,
body:not(.landing-visible) textarea,
body:not(.landing-visible) select{
  border-color:var(--ui-line-strong);
  background:#fff;
  box-shadow:inset 0 1px 0 rgba(15,23,42,.018);
}
body:not(.landing-visible) input:hover,
body:not(.landing-visible) textarea:hover,
body:not(.landing-visible) select:hover{border-color:#aebbc7}
body:not(.landing-visible) input:focus,
body:not(.landing-visible) textarea:focus,
body:not(.landing-visible) select:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(14,165,166,.14)}
body:not(.landing-visible) .secondary-button{background:#e8edf2;color:#172033;border:1px solid #d2dbe4}
body:not(.landing-visible) .secondary-button:hover{background:#dde5ec;border-color:#c3ced8}
body:not(.landing-visible) .ghost-button{background:#f8fafb;border-color:#d3dce5}
body:not(.landing-visible) .ghost-button:hover{background:#edf2f5}
body:not(.landing-visible) .filter-button,
body:not(.landing-visible) .show-archived-toggle,
body:not(.landing-visible) .workspace-mini-button{background:#f7f9fb;border-color:#d2dbe4}
body:not(.landing-visible) .filter-button:hover,
body:not(.landing-visible) .filter-button.is-active{background:#e7f5f3;border-color:#9bcfc9;color:#0f766e}

/* Stats, summaries, and nested data cards */
body:not(.landing-visible) .stat-card,
body:not(.landing-visible) .response-center-card,
body:not(.landing-visible) .lead-card,
body:not(.landing-visible) .customer-account-card,
body:not(.landing-visible) .my-work-card,
body:not(.landing-visible) .service-call-card,
body:not(.landing-visible) .estimate-card,
body:not(.landing-visible) .invoice-card,
body:not(.landing-visible) .material-card,
body:not(.landing-visible) .time-clock-entry-card,
body:not(.landing-visible) .time-clock-summary-card,
body:not(.landing-visible) .member-row,
body:not(.landing-visible) .business-history-event,
body:not(.landing-visible) .tutorial-card,
body:not(.landing-visible) .notification-item{
  border-color:var(--ui-line-strong);
  background:var(--ui-card);
  box-shadow:var(--ui-shadow-card);
}
body:not(.landing-visible) .stat-card{background:linear-gradient(180deg,#fff,#f8fafb)}
body:not(.landing-visible) .stat-card:hover,
body:not(.landing-visible) .lead-card:hover,
body:not(.landing-visible) .customer-account-card:hover,
body:not(.landing-visible) .my-work-card:hover,
body:not(.landing-visible) .service-call-card:hover,
body:not(.landing-visible) .estimate-card:hover,
body:not(.landing-visible) .invoice-card:hover,
body:not(.landing-visible) .material-card:hover{border-color:#aebcc8}
body:not(.landing-visible) .detail-item,
body:not(.landing-visible) .lead-notes,
body:not(.landing-visible) .service-call-detail-row,
body:not(.landing-visible) .assignment-summary-list>div,
body:not(.landing-visible) .profit-detail-metrics>div,
body:not(.landing-visible) .profit-comparison-table,
body:not(.landing-visible) .profit-ledger-list{
  border-color:#d8e1e8;
  background:#fff;
}

/* Action strips visually separate from card content. */
body:not(.landing-visible) .estimate-card-actions,
body:not(.landing-visible) .invoice-card-actions,
body:not(.landing-visible) .material-card-actions,
body:not(.landing-visible) .service-call-card-actions,
body:not(.landing-visible) .lead-card-actions{
  border-color:#dde4ea;
  background:#f1f4f6;
}

/* Schedule */
body:not(.landing-visible) #schedulePage #calendar,
body:not(.landing-visible) .availability-calendar-shell,
body:not(.landing-visible) .availability-day-details{
  border-color:var(--ui-line-strong);
  background:#f9fbfc;
}
body:not(.landing-visible) .fc .fc-scrollgrid,
body:not(.landing-visible) .fc-theme-standard td,
body:not(.landing-visible) .fc-theme-standard th{border-color:#d8e0e7}
body:not(.landing-visible) .fc .fc-col-header-cell{background:#edf2f5}
body:not(.landing-visible) .fc .fc-daygrid-day,
body:not(.landing-visible) .fc .fc-timegrid-col{background:#fbfcfd}
body:not(.landing-visible) .fc .fc-day-today{background:#edf8f6!important}
body:not(.landing-visible) .availability-day{border-color:#d5dee6;background:#fbfcfd}
body:not(.landing-visible) .availability-day:hover{border-color:#aebbc7;background:#f4f7f9}
body:not(.landing-visible) .calendar-details-context{background:#edf7f6;border-color:#b7dcd7}

/* Work */
body:not(.landing-visible) .work-status-summary .stat-card{background:#f7f9fb}
body:not(.landing-visible) .work-status-summary .stat-card.is-active,
body:not(.landing-visible) .work-status-filter.is-active{background:#e8f5f3;border-color:#91c8c1}
body:not(.landing-visible) .job-next-step-panel,
body:not(.landing-visible) .job-financial-summary,
body:not(.landing-visible) .job-crew-summary,
body:not(.landing-visible) .job-availability{
  border-color:#d5dee6;
  background:#f2f5f7;
}
body:not(.landing-visible) .job-photo-card-strip,
body:not(.landing-visible) .job-photo-gallery-card{border-color:#d5dee6;background:#f7f9fb}

/* Customers */
body:not(.landing-visible) .customer-list{gap:12px}
body:not(.landing-visible) .customer-account-card{background:linear-gradient(180deg,#fcfdfe,#f8fafb)}
body:not(.landing-visible) .customer-more-menu>summary{background:#f6f8fa;border-color:#d0d9e2}
body:not(.landing-visible) .customer-more-popover{border-color:#cbd5df;background:#f8fafb}
body:not(.landing-visible) .customer-more-popover button{background:#eef2f5}

/* Service Calls */
body:not(.landing-visible) .service-call-card{border-left-color:#60758a;background:#fbfcfd}
body:not(.landing-visible) .service-call-details-grid,
body:not(.landing-visible) .service-call-completion-block,
body:not(.landing-visible) .service-call-billing-section,
body:not(.landing-visible) .service-call-follow-up-section{border-color:#d6dfe7;background:#f2f5f7}
body:not(.landing-visible) .service-call-worker-option,
body:not(.landing-visible) .service-call-follow-up-option,
body:not(.landing-visible) .service-call-completion-photo-row{border-color:#d1dbe4;background:#fbfcfd}

/* Documents / Materials */
body:not(.landing-visible) .documents-page .dashboard-section,
body:not(.landing-visible) #materialsPage .dashboard-section{background:#f7f9fb}
body:not(.landing-visible) .estimate-card,
body:not(.landing-visible) .invoice-card,
body:not(.landing-visible) .material-card{background:#fbfcfd}
body:not(.landing-visible) .estimate-card-main,
body:not(.landing-visible) .invoice-card-main,
body:not(.landing-visible) .material-card-main{background:transparent}
body:not(.landing-visible) .invoice-totals-panel,
body:not(.landing-visible) .estimate-bottom-grid,
body:not(.landing-visible) .invoice-bottom-grid,
body:not(.landing-visible) .estimate-items,
body:not(.landing-visible) .invoice-items{border-color:#d7e0e7;background:#f3f6f8}
body:not(.landing-visible) .estimate-item-row,
body:not(.landing-visible) .invoice-item-row{border-color:#dde4ea;background:#fff}

/* Payments / Profit / Billing */
body:not(.landing-visible) .stripe-payments-hero{background:linear-gradient(135deg,#f5f9f9,#edf6f4)}
body:not(.landing-visible) .stripe-payments-account-card{border-color:#cbd8e6;background:#f9fbfc;box-shadow:0 7px 20px rgba(30,64,175,.055)}
body:not(.landing-visible) .stripe-payment-flow>div{border-color:#d5dee6;background:#eef2f5}
body:not(.landing-visible) .profit-summary-grid article,
body:not(.landing-visible) .profit-cost-grid>div{border-color:#d2dce5;background:#fbfcfd}
body:not(.landing-visible) .profit-job-list{border-color:#cfd9e2;background:#f8fafb}
body:not(.landing-visible) .profit-job-row{background:#fbfcfd}
body:not(.landing-visible) .profit-job-open:hover{background:#eef3f6}
body:not(.landing-visible) .billing-plan-card{border-color:#cfd9e2;background:#fbfcfd;box-shadow:0 8px 22px rgba(15,23,42,.05)}
body:not(.landing-visible) .billing-plan-features{border-color:#dfe6ec}
body:not(.landing-visible) .billing-file-manager{border-color:#d3dde5;background:#f9fbfc}
body:not(.landing-visible) .billing-file-upload{background:#eef2f5}

/* Time / Assignments / Team */
body:not(.landing-visible) .time-clock-simple-hero,
body:not(.landing-visible) .time-clock-hero,
body:not(.landing-visible) .time-clock-live-card{border-color:#cad8df;background:linear-gradient(135deg,#f8fbfb,#eef5f5)}
body:not(.landing-visible) .time-clock-team-row,
body:not(.landing-visible) .assignment-editor-row{border-color:#d2dce5;background:#fbfcfd}
body:not(.landing-visible) .time-clock-report-table-wrap,
body:not(.landing-visible) .time-clock-employee-table{border-color:#cfd9e2;background:#fbfcfd}
body:not(.landing-visible) .team-access-tabs{border-color:#d7e0e7;background:#edf2f5}
body:not(.landing-visible) .team-access-tab:hover{background:#f8fafb}
body:not(.landing-visible) .team-access-tab.is-active{background:#fff;border-color:#a9d3ce}
body:not(.landing-visible) .member-form,
body:not(.landing-visible) .member-permission-editor,
body:not(.landing-visible) .permission-group{border-color:#d5dee6;background:#f2f5f7}
body:not(.landing-visible) .permission-option{border-color:#d8e1e8;background:#fbfcfd}

/* Photos / History / Settings */
body:not(.landing-visible) .job-photo-gallery,
body:not(.landing-visible) .job-photo-thumbnails{background:#f1f4f6}
body:not(.landing-visible) .job-photo-gallery-card,
body:not(.landing-visible) .job-photo-thumbnail{border-color:#d2dce5;background:#fbfcfd}
body:not(.landing-visible) .business-history-event{background:#fbfcfd}
body:not(.landing-visible) .business-history-change{border-color:#d7e0e7;background:#eef2f5}
body:not(.landing-visible) .business-history-json{background:#e9eef2}
body:not(.landing-visible) .account-preference-master,
body:not(.landing-visible) .account-preference-grid label,
body:not(.landing-visible) .push-device-card,
body:not(.landing-visible) .settings-group{border-color:#d3dde5;background:#f5f8fa}

/* Help, tutorials, and Ask Osrilo */
body:not(.landing-visible) .help-onboarding-section,
body:not(.landing-visible) .help-guides-section{background:linear-gradient(180deg,#f7f9fa,#f1f5f6)}
body:not(.landing-visible) .tutorial-library{background:transparent}
body:not(.landing-visible) .tutorial-card{background:#fbfcfd}
body:not(.landing-visible) .tutorial-card:hover{border-color:#afbdc9;box-shadow:0 5px 14px rgba(15,23,42,.07)}
body:not(.landing-visible) .tutorial-ask-osrilo{border-color:#c5d7e3;background:linear-gradient(145deg,#f6f9fb,#edf3f7)}
body:not(.landing-visible) .ask-osrilo-section{
  border-color:#c4d8d6;
  background:radial-gradient(circle at 100% 0,rgba(14,165,166,.07),transparent 34%),#f7fafb;
}
body:not(.landing-visible) .ask-osrilo-transcript{border-color:#d1dce4;background:#edf2f5}
body:not(.landing-visible) .ask-osrilo-turn{border-color:#d1dbe4;background:#fff}
body:not(.landing-visible) .ask-osrilo-turn.is-user{border-color:#a6d3ce;background:#eaf6f4}
body:not(.landing-visible) .ask-osrilo-quick-questions button,
body:not(.landing-visible) .ask-osrilo-result{border-color:#cdd8e1;background:#f9fbfc}
body:not(.landing-visible) .ask-osrilo-launcher{border-color:#b8cfcd;background:#f8fbfb;box-shadow:0 9px 26px rgba(15,23,42,.14)}
body:not(.landing-visible) .ask-osrilo-dock{border-color:#b9cbc9;background:#f6f9fa;box-shadow:0 20px 55px rgba(15,23,42,.22)}
body:not(.landing-visible) .ask-osrilo-dock-header{border-color:#d5dee5;background:#edf3f4}
body:not(.landing-visible) .ask-osrilo-dock .ask-osrilo-section{background:#f7f9fa}

/* Panels, popovers, sheets, and modals */
body:not(.landing-visible) .notification-panel,
body:not(.landing-visible) .account-menu-panel,
body:not(.landing-visible) .modal,
body:not(.landing-visible) .mobile-action-sheet{
  border-color:#c8d3dc;
  background:#f8fafb;
}
body:not(.landing-visible) .notification-panel{box-shadow:0 18px 48px rgba(15,23,42,.20)}
body:not(.landing-visible) .notification-panel-heading,
body:not(.landing-visible) .details-modal-header{border-color:#d8e1e8;background:#f3f6f8}
body:not(.landing-visible) .account-menu-actions button{background:#f8fafb}
body:not(.landing-visible) .account-menu-actions button:hover{background:#edf2f5}
body:not(.landing-visible) .mobile-bottom-nav{border-color:#cbd5df;background:rgba(247,249,251,.97)}
body:not(.landing-visible) .mobile-nav-button:hover{background:#e9eef2}
body:not(.landing-visible) .mobile-nav-button.is-active{background:#e5f3f1;color:#0f766e}
body:not(.landing-visible) .mobile-sheet-actions button,
body:not(.landing-visible) .mobile-more-grid button{border-color:#d1dbe4;background:#f1f4f6;color:#172033}
body:not(.landing-visible) .mobile-sheet-actions button:hover,
body:not(.landing-visible) .mobile-more-grid button:hover{background:#e7ecef}

/* Dense tables and list rows */
body:not(.landing-visible) table{border-color:#d4dde5;background:#fbfcfd}
body:not(.landing-visible) thead th{background:#eaf0f3;color:#334155}
body:not(.landing-visible) tbody tr{border-color:#dde4ea}
body:not(.landing-visible) tbody tr:nth-child(even){background:#f7f9fb}
body:not(.landing-visible) tbody tr:hover{background:#eef3f5}

/* Desktop breathing room: more structure without adding empty space. */
@media(min-width:821px){
  body:not(.landing-visible){padding:20px 22px}
  body:not(.landing-visible) .app-layout{gap:18px}
  body:not(.landing-visible) .dashboard-section{margin-bottom:18px;padding:18px 19px}
  body:not(.landing-visible) .stats-grid{gap:10px;margin-bottom:18px}
}

/* Mobile: preserve contrast and use the viewport more efficiently. */
@media(max-width:820px){
  body:not(.landing-visible){background:#edf1f4}
  body:not(.landing-visible) .app-topbar{border-right:0;border-left:0;border-radius:0;background:linear-gradient(135deg,#f8fafb,#edf5f4)}
  body:not(.landing-visible) .dashboard-section,
  body:not(.landing-visible) .lead-form-card,
  body:not(.landing-visible) .access-card{border-color:#d0dae3;background:#f8fafb}
  body:not(.landing-visible) .mobile-bottom-nav{box-shadow:0 -7px 24px rgba(15,23,42,.105)}
  body:not(.landing-visible) .ask-osrilo-dock{background:#f6f9fa}
}
@media(max-width:650px){
  body:not(.landing-visible){padding-right:12px;padding-left:12px;background:#edf1f4}
  body:not(.landing-visible) .app-topbar{margin-right:-12px;margin-left:-12px}
  body:not(.landing-visible) .dashboard-section,
  body:not(.landing-visible) .lead-form-card,
  body:not(.landing-visible) .access-card{margin-bottom:12px;border-radius:16px;box-shadow:0 4px 14px rgba(15,23,42,.045)}
  body:not(.landing-visible) .dashboard-section{padding:14px}
  body:not(.landing-visible) .dashboard-section>.section-heading:first-child{margin-bottom:12px;padding-bottom:10px}
  body:not(.landing-visible) .stat-card{border-radius:13px}
  body:not(.landing-visible) .estimate-card-actions,
  body:not(.landing-visible) .invoice-card-actions,
  body:not(.landing-visible) .material-card-actions{background:#eef2f5}
}


/* Build 111 HOTFIX13 — focused dashboard refinement from live UI review. */

/* Desktop shell density: keep the business context, but get the user to the page sooner. */
@media(min-width:821px){
  body:not(.landing-visible) .app-topbar{
    gap:16px;
    margin-bottom:12px;
    padding:12px 16px;
    border-radius:16px;
  }
  body:not(.landing-visible) .app-topbar-brand{gap:11px;align-items:center}
  body:not(.landing-visible) .dashboard-brand-logo{
    width:48px;
    height:48px;
    flex-basis:48px;
    border-radius:13px;
  }
  body:not(.landing-visible) .app-topbar-title h1{font-size:28px;line-height:1.02}
  body:not(.landing-visible) .app-topbar-title .page-subtitle{margin-top:5px;font-size:13px}
  body:not(.landing-visible) .app-account-panel{min-width:240px;gap:4px 8px}
  body:not(.landing-visible) .app-account-panel .connection-row{font-size:11px}
  body:not(.landing-visible) .workspace-summary{margin:1px 0;gap:1px}
  body:not(.landing-visible) .dashboard-action-bar{
    min-height:52px;
    margin-bottom:10px;
    padding:7px 10px;
    border-radius:13px;
  }
  body:not(.landing-visible) .dashboard-action-group{gap:7px}
  body:not(.landing-visible) .dashboard-action-bar button{min-height:38px;padding:8px 13px}
}

/* Sidebar icons: one restrained monochrome container treatment across every page. */
body:not(.landing-visible) .sidebar-nav-button .nav-icon{
  display:grid;
  width:22px;
  height:22px;
  place-items:center;
  border:1px solid rgba(226,232,240,.14);
  border-radius:6px;
  background:rgba(148,163,184,.08);
  color:#d7e0ea;
  font-size:12px;
  font-weight:850;
  line-height:1;
}
body:not(.landing-visible) .sidebar-nav-button:hover .nav-icon{
  border-color:rgba(226,232,240,.23);
  background:rgba(148,163,184,.14);
  color:#fff;
}
body:not(.landing-visible) .sidebar-nav-button.is-active .nav-icon{
  border-color:#cbd7df;
  background:#e9f0f3;
  color:#173042;
}

/* Time Clock status surface: fix the light-on-light Clocked Out state and keep status semantic. */
body:not(.landing-visible) .time-clock-live-card[data-status="clocked_out"]{
  border:1px solid #bcc9d3;
  background:linear-gradient(135deg,#e9eef2,#dfe7ec);
  color:#172033;
  box-shadow:inset 4px 0 0 #718096;
}
body:not(.landing-visible) .time-clock-live-card[data-status="clocked_out"] .time-clock-live-label,
body:not(.landing-visible) .time-clock-live-card[data-status="clocked_out"] p{color:#526273}
body:not(.landing-visible) .time-clock-live-card[data-status="working"]{
  border:1px solid #a9cbc5;
  background:linear-gradient(135deg,#e7f3f0,#dcece8);
  color:#123d38;
  box-shadow:inset 4px 0 0 #0f766e;
}
body:not(.landing-visible) .time-clock-live-card[data-status="working"] .time-clock-live-label,
body:not(.landing-visible) .time-clock-live-card[data-status="working"] p{color:#38635e}
body:not(.landing-visible) .time-clock-live-card[data-status="on_break"]{
  border:1px solid #d8c9b5;
  background:linear-gradient(135deg,#f5f0e9,#eee6db);
  color:#5b3d1d;
  box-shadow:inset 4px 0 0 #a16207;
}
body:not(.landing-visible) .time-clock-live-card[data-status="on_break"] .time-clock-live-label,
body:not(.landing-visible) .time-clock-live-card[data-status="on_break"] p{color:#745838}
body:not(.landing-visible) .time-clock-live-card strong{color:inherit}

/* Service Call empty states: keep the workflow visible without devoting a full card to zero rows. */
body:not(.landing-visible) #serviceCallAwaitingSection:has(#serviceCallAwaitingList > .empty-state),
body:not(.landing-visible) #serviceCallScheduledSection:has(#serviceCallScheduledList > .empty-state),
body:not(.landing-visible) #serviceCallActiveSection:has(#serviceCallActiveList > .empty-state){
  padding:14px 16px;
}
body:not(.landing-visible) #serviceCallAwaitingSection:has(#serviceCallAwaitingList > .empty-state) .section-heading,
body:not(.landing-visible) #serviceCallScheduledSection:has(#serviceCallScheduledList > .empty-state) .section-heading,
body:not(.landing-visible) #serviceCallActiveSection:has(#serviceCallActiveList > .empty-state) .section-heading{
  margin-bottom:8px;
  padding-bottom:8px;
}
body:not(.landing-visible) #serviceCallAwaitingSection:has(#serviceCallAwaitingList > .empty-state) .section-heading h2,
body:not(.landing-visible) #serviceCallScheduledSection:has(#serviceCallScheduledList > .empty-state) .section-heading h2,
body:not(.landing-visible) #serviceCallActiveSection:has(#serviceCallActiveList > .empty-state) .section-heading h2{font-size:20px}
body:not(.landing-visible) .service-call-section > .service-call-list > .empty-state{
  padding:10px 13px;
  border-style:solid;
  border-color:#d7e0e7;
  background:#f5f7f9;
  text-align:left;
  font-size:13px;
}

/* Work cards: make workflow, details, money, history, and actions read as separate layers. */
body:not(.landing-visible) #jobsPage .lead-card{
  border-color:#c8d3dc;
  background:#fbfcfd;
  box-shadow:0 7px 20px rgba(15,23,42,.055);
}
body:not(.landing-visible) #jobsPage .lead-card-header{
  align-items:flex-start;
  padding-bottom:11px;
  border-bottom:1px solid #dbe3e9;
}
body:not(.landing-visible) #jobsPage .work-card-status-group .status-badge{
  border:1px solid #c7d2dc;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}
body:not(.landing-visible) #jobsPage .work-card-status-group .status-completed{
  border-color:#c5d0d9;
  background:#e8edf1;
  color:#344658;
}
body:not(.landing-visible) #jobsPage .lead-card-summary{margin-top:11px}
body:not(.landing-visible) #jobsPage .job-next-step-panel{
  border-color:#c9d7dd;
  border-left:4px solid #78aaa4;
  background:linear-gradient(135deg,#f1f5f6,#eaf1f1);
  box-shadow:none;
}
body:not(.landing-visible) #jobsPage .lead-more{
  margin-top:12px;
  padding:0;
  border:1px solid #d4dee6;
  border-radius:12px;
  background:#f4f7f9;
  overflow:hidden;
}
body:not(.landing-visible) #jobsPage .lead-more > summary{
  padding:10px 12px;
  background:#eaf0f3;
  color:#334155;
}
body:not(.landing-visible) #jobsPage .lead-more[open] > summary{
  margin-bottom:0;
  border-bottom:1px solid #d5dfe6;
}
body:not(.landing-visible) #jobsPage .lead-more > :not(summary){margin-right:12px;margin-left:12px}
body:not(.landing-visible) #jobsPage .lead-more > :last-child{margin-bottom:12px}
body:not(.landing-visible) #jobsPage .lead-details{margin-top:12px}
body:not(.landing-visible) #jobsPage .job-financial-summary{padding:8px;border:1px solid #d5dee6;border-radius:12px;background:#eaf0f3}
body:not(.landing-visible) #jobsPage .job-financial-summary>div{background:#fff;border-color:#d5dee6}
body:not(.landing-visible) #jobsPage .job-financial-summary>div:last-child{background:#e8f5f2;border-color:#abd6d0}
body:not(.landing-visible) #jobsPage .job-invoice-history{border-color:#d2dce4;background:#edf2f5}
body:not(.landing-visible) #jobsPage .lead-card-actions{
  margin-top:12px;
  padding-top:11px;
  border-top:1px solid #dbe3e9;
  background:transparent;
}

/* Billing: stronger plan hierarchy and current-plan clarity, without changing implementation limits. */
body:not(.landing-visible) #billingPage .billing-plan-grid{gap:12px}
body:not(.landing-visible) #billingPage .billing-plan-card{
  padding:18px;
  border-radius:16px;
  background:linear-gradient(180deg,#fcfdfe,#f7f9fb);
  box-shadow:0 7px 20px rgba(15,23,42,.055);
}
body:not(.landing-visible) #billingPage .billing-plan-heading{
  min-height:38px;
  padding-bottom:9px;
  border-bottom:1px solid #e0e7ec;
}
body:not(.landing-visible) #billingPage .billing-plan-heading strong{font-size:22px;color:#172033}
body:not(.landing-visible) #billingPage .billing-plan-card h3{margin:10px 0 4px;font-size:23px}
body:not(.landing-visible) #billingPage .billing-plan-card>p{min-height:42px;margin-bottom:10px}
body:not(.landing-visible) #billingPage .billing-plan-features{padding-top:11px}
body:not(.landing-visible) #billingPage .billing-plan-card ul{gap:8px;margin:9px 0 16px;font-size:13px;line-height:1.45}
body:not(.landing-visible) #billingPage .billing-plan-card.is-current{
  border:2px solid #2a948b;
  background:linear-gradient(180deg,#f8fcfb,#edf7f5);
  box-shadow:0 10px 26px rgba(15,118,110,.12);
}
body:not(.landing-visible) #billingPage .billing-plan-card.is-current::after{
  content:"Current plan";
  position:absolute;
  right:12px;
  bottom:12px;
  pointer-events:none;
  color:#0f766e;
  font-size:10px;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
}
body:not(.landing-visible) #billingPage .billing-plan-card.is-current button{margin-bottom:20px}

@media(max-width:820px){
  body:not(.landing-visible) .service-call-section > .service-call-list > .empty-state{padding:10px 12px}
  body:not(.landing-visible) #jobsPage .lead-more > :not(summary){margin-right:9px;margin-left:9px}
}

/* Build 111 HOTFIX14 — global transient-notification safe area.
 * Toasts must remain readable above/beside fixed dashboard chrome on website and PWA.
 */
body:not(.landing-visible) .toast{
  z-index:2600;
  right:22px;
  bottom:78px;
  max-width:min(360px,calc(100vw - 44px));
}

/* When the desktop Ask Osrilo dock is open, reserve its right-side footprint. */
@media(min-width:821px){
  body.ask-osrilo-dock-open:not(.landing-visible) .toast{
    right:calc(min(410px,calc(100vw - 32px)) + 38px);
    bottom:22px;
    max-width:min(360px,calc(100vw - 486px));
  }
}

/* Mobile/PWA: clear the bottom navigation, Ask Osrilo launcher, Quick Add FAB,
 * and device safe-area inset instead of letting a toast sit behind them. */
@media(max-width:820px){
  body:not(.landing-visible) .toast{
    top:auto;
    right:10px;
    bottom:calc(150px + env(safe-area-inset-bottom,0px));
    left:10px;
    width:auto;
    max-width:none;
  }

  /* An open chat dock or mobile action sheet owns the bottom of the screen.
   * Move transient feedback to the top safe area rather than covering controls. */
  body.ask-osrilo-dock-open:not(.landing-visible) .toast,
  body.mobile-sheet-open:not(.landing-visible) .toast{
    top:calc(12px + env(safe-area-inset-top,0px));
    bottom:auto;
  }
}


/* Build 111 HOTFIX20 — Work card information density.
 * Keep every Work field visible while removing the nested-card-on-card feeling.
 */
body:not(.landing-visible) #jobsPage .lead-card{padding:14px 16px}
body:not(.landing-visible) #jobsPage .lead-card-header{padding-bottom:8px}
body:not(.landing-visible) #jobsPage .lead-card-summary{margin:8px 0 0}
body:not(.landing-visible) #jobsPage .job-next-step-panel{margin-top:10px;padding:11px 13px}
body:not(.landing-visible) #jobsPage .lead-more{
  margin-top:10px;
  padding:0;
  border:0;
  border-top:1px solid #d7e0e7;
  border-radius:0;
  background:transparent;
  overflow:visible;
}
body:not(.landing-visible) #jobsPage .lead-more > summary{
  width:max-content;
  padding:9px 0 6px;
  background:transparent;
  color:#334155;
  font-size:13px;
  font-weight:850;
}
body:not(.landing-visible) #jobsPage .lead-more[open] > summary{
  margin-bottom:0;
  border-bottom:0;
}
body:not(.landing-visible) #jobsPage .lead-more > :not(summary){margin-right:0;margin-left:0}
body:not(.landing-visible) #jobsPage .lead-more > :last-child{margin-bottom:0}
body:not(.landing-visible) #jobsPage .lead-details{
  grid-template-columns:1.05fr 1.55fr .72fr;
  gap:0;
  margin-top:0;
  overflow:hidden;
  border:1px solid #d7e0e7;
  border-radius:10px;
  background:#f7f9fa;
}
body:not(.landing-visible) #jobsPage .lead-details .detail-item{
  min-width:0;
  padding:9px 11px;
  border:0;
  border-right:1px solid #d7e0e7;
  border-radius:0;
  background:transparent;
}
body:not(.landing-visible) #jobsPage .lead-details .detail-item:last-child{border-right:0}
body:not(.landing-visible) #jobsPage .lead-notes{
  margin:8px 0 0;
  padding:9px 11px;
  border-left:3px solid #8aa9a6;
  border-radius:0 8px 8px 0;
  background:#f8fafb;
}
body:not(.landing-visible) #jobsPage .job-crew-summary{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:5px 10px;
  margin:8px 0 0;
  padding:8px 10px;
  border:1px solid #dbe3e9;
  border-radius:9px;
  background:#f4f7f8;
}
body:not(.landing-visible) #jobsPage .job-crew-summary strong{margin-right:2px}
body:not(.landing-visible) #jobsPage .job-crew-summary span{font-size:12px}
body:not(.landing-visible) #jobsPage .job-financial-summary{
  gap:0;
  margin-top:8px;
  padding:0;
  overflow:hidden;
  border:1px solid #d5dee6;
  border-radius:10px;
  background:#f2f5f7;
}
body:not(.landing-visible) #jobsPage .job-financial-summary>div{
  padding:9px 11px;
  border:0;
  border-right:1px solid #d5dee6;
  border-radius:0;
  background:transparent;
}
body:not(.landing-visible) #jobsPage .job-financial-summary>div:last-child{
  border-right:0;
  background:#e8f5f2;
}
body:not(.landing-visible) #jobsPage .job-invoice-history{
  gap:5px;
  margin-top:8px;
  padding:9px 10px;
  border:1px solid #d5dee6;
  border-radius:10px;
  background:#f4f7f9;
}
body:not(.landing-visible) #jobsPage .job-invoice-history button{padding:7px 9px;background:#fff}
body:not(.landing-visible) #jobsPage .lead-card-actions{margin-top:10px;padding-top:9px}
@media(max-width:820px){
  body:not(.landing-visible) #jobsPage .lead-card{padding:12px}
  body:not(.landing-visible) #jobsPage .lead-details{grid-template-columns:1fr}
  body:not(.landing-visible) #jobsPage .lead-details .detail-item{border-right:0;border-bottom:1px solid #d7e0e7}
  body:not(.landing-visible) #jobsPage .lead-details .detail-item:last-child{border-bottom:0}
  body:not(.landing-visible) #jobsPage .job-financial-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
  body:not(.landing-visible) #jobsPage .job-financial-summary>div{padding:8px 9px}
  body:not(.landing-visible) #jobsPage .job-financial-summary strong{font-size:14px}
}
@media(max-width:520px){
  body:not(.landing-visible) #jobsPage .job-financial-summary{grid-template-columns:1fr}
  body:not(.landing-visible) #jobsPage .job-financial-summary>div{border-right:0;border-bottom:1px solid #d5dee6}
  body:not(.landing-visible) #jobsPage .job-financial-summary>div:last-child{border-bottom:0}
}

/* Build 111 HOTFIX24 — paid History/document-backup access + readable storage manager. */
#billingPage .billing-file-access-note{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:.35rem 1rem;
  align-items:center;
  margin:.7rem .8rem 0;
  padding:.75rem .85rem;
  border:1px solid #c9d9df;
  border-radius:12px;
  background:#f2f7f8;
}
#billingPage .billing-file-access-note[hidden]{display:none!important}
#billingPage .billing-file-access-note strong{grid-column:1;font-size:.88rem;color:#0f3f46}
#billingPage .billing-file-access-note span{grid-column:1;font-size:.78rem;line-height:1.45;color:#536675}
#billingPage .billing-file-access-note button{grid-column:2;grid-row:1 / span 2;white-space:nowrap}
#billingPage .billing-file-copy{min-width:0;display:grid;gap:.12rem}
#billingPage .billing-file-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#billingPage .billing-file-copy small{line-height:1.3;color:#536675}
@media(max-width:720px){
  #billingPage .billing-file-access-note{grid-template-columns:1fr}
  #billingPage .billing-file-access-note button{grid-column:1;grid-row:auto;justify-self:start}
  #billingPage .billing-file-row{align-items:flex-start}
  #billingPage .billing-file-copy strong{white-space:normal;overflow-wrap:anywhere}
}


/* Build 111 HOTFIX27 — billing current-plan contrast + clean test screenshots */
body:not(.landing-visible) #billingPage .billing-current-card{
  border-color:#26384b;
  background:linear-gradient(145deg,#172334,#0f1b2a);
  color:#f8fafc;
  box-shadow:0 10px 24px rgba(15,23,42,.14);
}
body:not(.landing-visible) #billingPage .billing-current-card span,
body:not(.landing-visible) #billingPage .billing-current-card small{color:#c7d2df}
body:not(.landing-visible) #billingPage .billing-current-card strong{color:#fff}

/* Build 111 HOTFIX31 — compact Profit headings + hourly-pay manager. */
.labor-rate-modal{width:min(700px,96vw)}
.labor-rate-list{gap:12px;margin-top:12px}
.labor-rate-row.payroll-setup-row{
  grid-template-columns:minmax(220px,1fr) minmax(180px,220px) auto;
  align-items:end;
  gap:16px;
  padding:18px;
}
.payroll-setup-row .payroll-setup-heading{align-self:center;min-width:0}
.payroll-setup-row .payroll-setup-heading strong{font-size:16px}
.payroll-setup-row .payroll-setup-grid{min-width:0}
.payroll-setup-row .payroll-setup-grid label{display:grid;gap:6px;font-weight:800}
.payroll-setup-row .payroll-rate-actions{align-self:end;margin:0;padding:0;border:0}
.payroll-setup-row .payroll-rate-actions button{min-width:92px}
@media(max-width:720px){
  .labor-rate-row.payroll-setup-row{grid-template-columns:1fr;align-items:stretch}
  .payroll-setup-row .payroll-rate-actions{display:grid}
  .payroll-setup-row .payroll-rate-actions button{width:100%}
}


/* Build 111 HOTFIX32 — pricing cards show the complete value of each plan. */
body:not(.landing-visible) #billingPage .billing-plan-card{
  grid-template-rows:auto auto minmax(54px,auto) 1fr auto;
}
body:not(.landing-visible) #billingPage .billing-plan-card>p{
  min-height:0;
  color:#52616f;
  font-size:13px;
}
body:not(.landing-visible) #billingPage .billing-plan-features>span{
  color:#264653;
  letter-spacing:.07em;
}
body:not(.landing-visible) #billingPage .billing-plan-card ul{
  gap:9px;
  line-height:1.42;
}
body:not(.landing-visible) #billingPage .billing-plan-card li{
  color:#17212b;
}
body:not(.landing-visible) #billingPage .billing-plan-card li.billing-plan-capacity{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:4px 8px;
  margin:0 0 2px -2px;
  padding:9px 10px 9px 28px;
  border:1px solid #d9e2e8;
  border-radius:10px;
  background:#fff;
}
body:not(.landing-visible) #billingPage .billing-plan-card li.billing-plan-capacity::before{left:9px;top:9px}
body:not(.landing-visible) #billingPage .billing-plan-card li.billing-plan-capacity strong{font-size:14px;color:#0f1720}
body:not(.landing-visible) #billingPage .billing-plan-card li.billing-plan-capacity span{font-size:12px;color:#667785}

/* Build 111 HOTFIX35 — final title hierarchy cleanup */
#dashboardPageSubtitle:empty{display:none}
.app-topbar-title h1{margin-bottom:0}
.billing-hero-copy>.page-subtitle:empty{display:none}


/* Build 116 RC4 — onboarding and core-page polish */
.onboarding-plan-status {
  margin: 12px 0 0;
  padding: 10px 12px;
  border: 1px solid var(--border-color, #d7dde2);
  border-radius: 10px;
  background: rgba(255,255,255,.72);
  color: var(--text-secondary, #475569);
  font-size: .92rem;
  line-height: 1.45;
}
.customers-page-intro { margin-bottom: 14px; }
#customerFormError { margin: 12px 0 0; }
@media (max-width: 720px) {
  .customers-page-intro .page-heading-actions { width: 100%; }
  .customers-page-intro .page-heading-actions > button { flex: 1 1 0; }
}


/* Build 116 FOUNDATION RC7 — notification read-state hierarchy */
body:not(.landing-visible) .notification-item.is-unread{
  position:relative;
  border-color:#8fcfc6;
  background:linear-gradient(90deg,#e9f7f4 0%,#f6fbfa 72%);
  box-shadow:0 0 0 1px rgba(15,118,110,.05),var(--ui-shadow-card);
}
body:not(.landing-visible) .notification-item.is-unread:hover,
body:not(.landing-visible) .notification-item.is-unread:focus-visible{
  border-color:#5eb7ab;
  background:linear-gradient(90deg,#def3ef 0%,#f3faf8 72%);
}
body:not(.landing-visible) .notification-item.is-read{background:var(--ui-card);}
body:not(.landing-visible) .notification-item:focus-visible{outline:3px solid rgba(15,118,110,.2);outline-offset:2px}


/* Build 116 FOUNDATION RC8 — notification/mobile proof and core-card containment */
body:not(.landing-visible) .notification-panel-heading{position:sticky;top:-14px;z-index:3;margin:-14px -14px 10px;padding:14px;border-bottom:1px solid #d8e1e8}
body:not(.landing-visible) .notification-list{min-width:0}
body:not(.landing-visible) .notification-item{min-width:0;min-height:48px;overflow:hidden}
body:not(.landing-visible) .notification-item>span,
body:not(.landing-visible) .notification-item>small,
body:not(.landing-visible) .notification-title-row strong{min-width:0;overflow-wrap:anywhere}
body:not(.landing-visible) .customer-contact-links{display:flex;flex-wrap:wrap;align-items:center;gap:3px;min-width:0}
body:not(.landing-visible) .customer-contact-links a{color:#0f766e;font-weight:700;text-decoration:none;overflow-wrap:anywhere}
body:not(.landing-visible) .customer-contact-links a:hover{text-decoration:underline}
body:not(.landing-visible) .customer-address,
body:not(.landing-visible) .service-call-contact-line,
body:not(.landing-visible) .service-call-contact-line span{overflow-wrap:anywhere;word-break:break-word}
body:not(.landing-visible) .service-call-contact-line a{color:#0f766e;font-weight:700;text-decoration:none}
body:not(.landing-visible) .service-call-contact-line a:hover{text-decoration:underline}
@media(max-width:720px){
  body:not(.landing-visible) .notification-panel{
    left:12px;right:12px;top:calc(72px + env(safe-area-inset-top,0px));bottom:calc(74px + env(safe-area-inset-bottom,0px));
    width:auto;max-height:none;padding:14px;border-radius:16px;overscroll-behavior:contain;
  }
  body:not(.landing-visible) .notification-panel-heading{top:-14px}
  body:not(.landing-visible) .notification-item{padding:13px 12px}
  body:not(.landing-visible) .customer-card-header{align-items:flex-start}
  body:not(.landing-visible) .customer-card-meta{max-width:100%}
  body:not(.landing-visible) .customer-card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  body:not(.landing-visible) .customer-card-actions>button{width:100%;min-width:0;white-space:normal}
  body:not(.landing-visible) .service-call-card-head{min-width:0}
  body:not(.landing-visible) .service-call-card-head>div,
  body:not(.landing-visible) .service-call-card-head>strong{min-width:0;max-width:100%;overflow-wrap:anywhere}
}
@media(max-width:430px){
  body:not(.landing-visible) .customer-card-actions{grid-template-columns:1fr}
}

.document-intentional-skip-reason{display:block;margin-top:5px;color:#475569;font-size:12px;line-height:1.35}.document-intentional-skip-reason strong{color:#334155}


/* Build 116 RC16-R1 — Quick Add Estimate mode + simpler customer pricing */
.estimate-quick-add-mode{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:2px 0 0;padding:12px;border:1px solid #d6e0e8;border-radius:12px;background:#f5f8fa}
.estimate-quick-add-mode[hidden]{display:none!important}
.estimate-quick-add-mode>strong{grid-column:1/-1;font-size:14px}
.estimate-quick-add-mode>label{display:flex;align-items:flex-start;gap:10px;min-width:0;padding:11px 12px;border:1px solid #d3dde6;border-radius:10px;background:#fff;cursor:pointer}
.estimate-quick-add-mode>label:has(input:checked){border-color:var(--accent,#0f766e);box-shadow:0 0 0 1px var(--accent,#0f766e);background:#f8fffd}
.estimate-quick-add-mode input[type="radio"]{width:18px;height:18px;min-width:18px;max-width:18px;flex:0 0 18px;margin:2px 0 0;padding:0}
.estimate-quick-add-mode label>span{display:grid;gap:3px;min-width:0}
.estimate-quick-add-mode label b{font-size:14px;line-height:1.25}
.estimate-quick-add-mode label small{color:var(--muted,#596274);font-size:12px;line-height:1.35;overflow-wrap:anywhere}
.estimate-item-cost{background:#f8fafc}
.estimate-item-cost::placeholder{color:#94a3b8}
@media(max-width:750px){.estimate-quick-add-mode{grid-template-columns:1fr;padding:10px}.estimate-quick-add-mode>strong{grid-column:auto}.estimate-quick-add-mode>label{padding:10px}}

/* Build 116 RC14 HOTFIX3 / RC16-R1 — explicit Invoice finalization */
.invoice-finalize-modal{width:min(680px,100%);max-width:680px;max-height:min(760px,calc(100dvh - 40px));display:flex;flex-direction:column;overflow:hidden}
.invoice-finalize-modal>.details-modal-header{flex:0 0 auto}
.invoice-finalize-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:2px}
.invoice-finalize-impact{display:grid;gap:6px;margin:14px 0;padding:14px 16px;border:1px solid var(--border, #d7dde5);border-radius:12px;background:var(--panel-soft, #f7f8fa)}
.invoice-finalize-impact span{color:var(--muted, #596274);line-height:1.5}
.invoice-finalize-options{display:grid;gap:10px;margin:16px 0;padding:0;border:0}
.invoice-finalize-options legend{margin-bottom:8px;font-weight:800}
.invoice-finalize-options label{display:flex;align-items:flex-start;gap:11px;width:100%;min-width:0;box-sizing:border-box;padding:13px 14px;border:1px solid var(--border, #d7dde5);border-radius:12px;background:#fff;cursor:pointer}
.invoice-finalize-options label:has(input:checked){border-color:var(--accent, #0f766e);box-shadow:0 0 0 1px var(--accent, #0f766e)}
.invoice-finalize-options input[type="radio"]{width:20px;height:20px;min-width:20px;max-width:20px;flex:0 0 20px;margin:2px 0 0;padding:0}
.invoice-finalize-options span{display:grid;gap:4px;min-width:0;max-width:100%}
.invoice-finalize-options strong,.invoice-finalize-options small{min-width:0;overflow-wrap:anywhere;word-break:normal}
.invoice-finalize-options small{color:var(--muted, #596274);line-height:1.4}
.invoice-finalize-no-send-fields{display:grid;gap:12px;margin:8px 0 16px;padding:14px;border:1px solid var(--border, #d7dde5);border-radius:12px;background:var(--panel-soft, #f7f8fa)}
.invoice-finalize-actions{flex:0 0 auto;margin-top:14px}
@media(max-width:720px){
  .invoice-finalize-modal{width:100%;max-width:none;height:auto;max-height:calc(100dvh - max(8px,env(safe-area-inset-top,0px)) - max(8px,env(safe-area-inset-bottom,0px)));padding:0;border-radius:18px 18px 0 0;overflow:hidden}
  .invoice-finalize-modal>.details-modal-header{align-items:flex-start;margin:0;padding:12px 14px 10px;background:#fff;border-bottom:1px solid var(--border,#d7dde5)}
  .invoice-finalize-modal>.details-modal-header .section-kicker{margin-bottom:2px;font-size:10px}
  .invoice-finalize-modal>.details-modal-header h2{font-size:20px;line-height:1.15}
  .invoice-finalize-modal>.details-modal-header .modal-close{flex:0 0 auto}
  .invoice-finalize-body{padding:10px 14px 12px;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .invoice-finalize-body>.page-subtitle{margin:0 0 8px;font-size:13px;line-height:1.35}
  .invoice-finalize-impact{gap:4px;margin:8px 0 10px;padding:10px 11px;border-radius:10px;font-size:13px}
  .invoice-finalize-impact span{line-height:1.35}
  .invoice-finalize-options{gap:7px;margin:10px 0}
  .invoice-finalize-options legend{margin-bottom:5px;max-width:100%;font-size:14px;line-height:1.2}
  .invoice-finalize-options label{gap:9px;padding:9px 10px;border-radius:10px}
  .invoice-finalize-options input[type="radio"]{width:18px;height:18px;min-width:18px;max-width:18px;flex-basis:18px;margin-top:1px}
  .invoice-finalize-options span{gap:2px}
  .invoice-finalize-options strong{font-size:14px;line-height:1.2}
  .invoice-finalize-options small{font-size:12px;line-height:1.3}
  .invoice-finalize-no-send-fields{gap:8px;margin:8px 0 4px;padding:10px;border-radius:10px}
  .invoice-finalize-no-send-fields .field{gap:4px}
  .invoice-finalize-no-send-fields .field>span{font-size:12px}
  .invoice-finalize-no-send-fields select{min-height:44px}
  .invoice-finalize-no-send-fields textarea{min-height:68px;max-height:110px}
  .invoice-finalize-no-send-fields .field-note{margin:0;font-size:11.5px;line-height:1.35}
  .invoice-finalize-actions{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:8px;margin:0;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid var(--border,#d7dde5);box-shadow:0 -8px 18px rgba(15,23,42,.06)}
  .invoice-finalize-actions>button{width:100%;min-width:0;min-height:46px;padding:9px 10px;white-space:normal;font-size:13px;line-height:1.2}
}
@media(max-width:360px){
  .invoice-finalize-actions{grid-template-columns:1fr}
  .invoice-finalize-impact span{font-size:12px}
}

/* Build 116 Foundation RC21 — UI consistency & polish */
body:not(.landing-visible) .price-book-tabs{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0 18px;
}
body:not(.landing-visible) .price-book-tabs button{
  min-height:44px;padding:9px 18px;border:1px solid #cbd6df;border-radius:11px;background:#f7f9fb;color:#334155;font-weight:850;box-shadow:none;
}
body:not(.landing-visible) .price-book-tabs button:hover{background:#eef3f5;border-color:#aebcc8}
body:not(.landing-visible) .price-book-tabs button.is-active{
  background:#e7f5f3;border-color:#8fc9c1;color:#0f766e;box-shadow:inset 0 0 0 1px rgba(15,118,110,.06);
}

/* Invoice cards use the same hierarchy as Estimates while keeping payment state prominent. */
body:not(.landing-visible) .invoice-card-main{align-items:stretch}
body:not(.landing-visible) .invoice-card-copy{display:grid;align-content:start;gap:7px;min-width:0;flex:1}
body:not(.landing-visible) .invoice-card-heading{display:flex;align-items:center;gap:7px 8px}
body:not(.landing-visible) .invoice-card-heading>strong{font-size:17px;letter-spacing:-.01em}
body:not(.landing-visible) .invoice-customer{width:max-content;max-width:100%;font-size:15px;font-weight:850;text-align:left}
body:not(.landing-visible) .invoice-meta-stack{display:grid;gap:5px;margin-top:1px}
body:not(.landing-visible) .invoice-meta{line-height:1.42;color:#64748b}
body:not(.landing-visible) .document-intentional-skip-reason{
  display:block;width:fit-content;max-width:100%;padding:7px 9px;border:1px solid #d7dee6;border-radius:9px;background:#f5f7f9;color:#475569;font-size:12px;line-height:1.4;
}
body:not(.landing-visible) .invoice-card-financial{
  align-self:center;min-width:170px;padding:12px 14px;border:1px solid #d7e0e7;border-radius:12px;background:#fff;text-align:right;
}
body:not(.landing-visible) .invoice-card-financial .invoice-financial-label{
  display:block;margin:0 0 3px;color:#64748b;font-size:10px;font-weight:900;letter-spacing:.055em;text-transform:uppercase;
}
body:not(.landing-visible) .invoice-card-financial strong{display:block;font-size:22px;line-height:1.15;color:#172033}
body:not(.landing-visible) .invoice-card-financial .invoice-balance-label{display:block;margin-top:4px;color:#475569;font-size:12px;font-weight:800}
body:not(.landing-visible) .invoice-card-financial small{display:block;margin-top:3px;color:#0f766e;font-weight:800}
body:not(.landing-visible) .invoice-card-actions{align-items:center;gap:9px;padding:12px 16px 14px}
body:not(.landing-visible) .invoice-card-actions .card-action-menu{margin-left:auto}

/* Hourly Pay: one clear editable currency field instead of a compressed 3-column setup grid. */
body:not(.landing-visible) .payroll-wage-editor{grid-template-columns:minmax(220px,1fr) minmax(220px,320px) auto;align-items:center}
body:not(.landing-visible) .payroll-wage-editor .payroll-wage-grid{display:block;width:100%}
body:not(.landing-visible) .payroll-wage-input{min-height:46px;border-color:#c9d4de;background:#fff}
body:not(.landing-visible) .payroll-wage-input>span{padding:0 0 0 13px;font-size:16px;color:#475569}
body:not(.landing-visible) .payroll-wage-input input{min-height:44px;padding:10px 12px;font-size:16px;font-weight:800}
body:not(.landing-visible) .payroll-wage-input input:disabled{background:#f1f4f6;color:#64748b;cursor:not-allowed}
body:not(.landing-visible) .payroll-field-help{display:block;margin-top:5px;color:#64748b;font-size:11px;line-height:1.35}
body:not(.landing-visible) .payroll-field-help.is-error{color:#b42318}
body:not(.landing-visible) .payroll-rate-actions{margin:0;padding:0;border:0}
body:not(.landing-visible) .payroll-rate-actions button{min-width:145px;min-height:44px}

/* Live reusable storage accounting. */
body:not(.landing-visible) .billing-storage-usage-card{grid-column:span 2}
body:not(.landing-visible) #billingStorageUsage[data-level="warning"]{color:#9a6700}
body:not(.landing-visible) #billingStorageUsage[data-level="critical"],
body:not(.landing-visible) #billingStorageUsage[data-level="full"]{color:#b42318}
body:not(.landing-visible) .billing-storage-breakdown{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:12px;padding-top:11px;border-top:1px solid #dce4ea;
}
body:not(.landing-visible) .billing-storage-breakdown>div{display:flex;justify-content:space-between;gap:10px;min-width:0;padding:6px 8px;border-radius:8px;background:#fff}
body:not(.landing-visible) .billing-storage-breakdown span{color:#64748b;font-size:11px;font-weight:750}
body:not(.landing-visible) .billing-storage-breakdown strong{font-size:11px;white-space:nowrap}
body:not(.landing-visible) .billing-storage-breakdown .storage-breakdown-excluded{grid-column:1/-1;background:#f3f5f7}
body:not(.landing-visible) .billing-storage-recalculate{margin-top:11px;width:max-content}

/* Shared Foundation interaction consistency for touched flows. */
body:not(.landing-visible) button:disabled,
body:not(.landing-visible) [aria-disabled="true"]{opacity:.58;cursor:not-allowed;box-shadow:none!important}
body:not(.landing-visible) .empty-state{line-height:1.5;color:#64748b}
body:not(.landing-visible) .menu-danger-action,
body:not(.landing-visible) .danger-button{font-weight:800}
body:not(.landing-visible) .menu-danger-action{color:#b42318!important}

/* Ask Osrilo stays compact and visually part of the same Foundation shell. */
body:not(.landing-visible) .ask-osrilo-panel,
body:not(.landing-visible) .ask-osrilo-dock-panel{border-color:#cbd6df!important;box-shadow:0 16px 38px rgba(15,23,42,.14)!important}
body:not(.landing-visible) .ask-osrilo-message,
body:not(.landing-visible) .ask-osrilo-result-card{border-color:#d8e1e8!important}
body:not(.landing-visible) .ask-osrilo-result-card{background:#fff!important}
body:not(.landing-visible) .ask-osrilo-input-row textarea,
body:not(.landing-visible) .ask-osrilo-input-row input{min-height:44px}

@media(max-width:760px){
  body:not(.landing-visible) .price-book-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  body:not(.landing-visible) .price-book-tabs button{width:100%;min-height:46px}
  body:not(.landing-visible) .invoice-card-financial{margin-top:12px;min-width:0;width:100%;text-align:left}
  body:not(.landing-visible) .invoice-card-actions{display:grid;grid-template-columns:1fr;gap:8px}
  body:not(.landing-visible) .invoice-card-actions button,body:not(.landing-visible) .invoice-card-actions .card-action-menu{width:100%;margin-left:0}
  body:not(.landing-visible) .payroll-wage-editor{grid-template-columns:1fr;gap:13px}
  body:not(.landing-visible) .payroll-rate-actions button{width:100%}
  body:not(.landing-visible) .billing-storage-usage-card{grid-column:auto}
  body:not(.landing-visible) .billing-storage-breakdown{grid-template-columns:1fr}
  body:not(.landing-visible) .billing-storage-breakdown .storage-breakdown-excluded{grid-column:auto}
  body:not(.landing-visible) .billing-storage-recalculate{width:100%}
}

/* Build 117 RC1 — universal customer Properties / service locations */
.property-picker-field{display:grid;gap:.42rem}.property-picker-label{font-weight:700;color:var(--text,#172126)}.property-picker-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem;align-items:center}.property-picker-row select{min-width:0}.property-editor-modal{width:min(680px,calc(100vw - 2rem))}.customer-properties{margin:.8rem 0 .15rem;padding:.75rem;border:1px solid var(--border,#d8e0e3);border-radius:12px;background:rgba(255,255,255,.58)}.customer-properties-heading{display:flex;align-items:center;justify-content:space-between;gap:.65rem;margin-bottom:.5rem}.customer-properties-heading strong{font-size:.92rem}.customer-property-list{display:grid;gap:.45rem}.customer-property-row{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;padding:.55rem .6rem;border-radius:9px;background:#fff;border:1px solid rgba(32,55,62,.12)}.customer-property-row.is-archived{opacity:.62}.customer-property-main{min-width:0}.customer-property-name{font-weight:700}.customer-property-address{font-size:.88rem;color:var(--muted,#5b6970);overflow-wrap:anywhere}.customer-property-badges{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.25rem}.property-mini-badge{font-size:.72rem;padding:.12rem .4rem;border-radius:999px;background:rgba(24,132,130,.1);color:#166b69}.property-mini-badge.is-muted{background:rgba(71,85,105,.1);color:#58636d}.customer-property-actions{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}.lead-property-line,.service-call-property-line{font-weight:650;color:var(--text,#25343a)}
@media(max-width:680px){.property-picker-row{grid-template-columns:1fr}.property-picker-row button{width:100%}.customer-property-row{display:grid}.customer-property-actions{justify-content:flex-start}}


/* Build 118 RC1 — customer, billing, and completed-document visual hierarchy. */
body:not(.landing-visible) #customersPage .customer-list{align-items:start;gap:16px}
body:not(.landing-visible) #customersPage .customer-account-card{overflow:visible;padding:16px 16px 0;border-radius:15px;background:#fbfcfd}
body:not(.landing-visible) #customersPage .customer-card-header{align-items:flex-start;gap:14px}
body:not(.landing-visible) #customersPage .customer-card-identity{display:grid;gap:3px;min-width:0}
body:not(.landing-visible) #customersPage .customer-card-identity h3{margin:0;font-size:16px;line-height:1.25}
body:not(.landing-visible) #customersPage .customer-card-meta{gap:6px}
body:not(.landing-visible) #customersPage .customer-summary-badge{display:inline-flex;align-items:center;min-height:24px;padding:4px 8px;border:1px solid #dbe4ea;border-radius:999px;background:#f2f5f7;color:#475569;font-size:11px;font-weight:850;white-space:nowrap}
body:not(.landing-visible) #customersPage .customer-address{margin:11px 0 0;padding-top:10px;border-top:1px solid #e1e7ec;color:#334155;font-size:13px}
body:not(.landing-visible) #customersPage .customer-properties{margin:12px 0 0;padding:11px;border-color:#d7e0e7;background:#f4f7f9}
body:not(.landing-visible) #customersPage .customer-properties.empty{padding:9px 11px;border-style:dashed;background:#f8fafb;color:#788692;font-size:12px}
body:not(.landing-visible) #customersPage .customer-properties-heading{margin-bottom:8px;color:#334155}
body:not(.landing-visible) #customersPage .customer-properties-heading>span{color:#788692;font-size:11px;font-weight:750}
body:not(.landing-visible) #customersPage .customer-property-list{gap:7px}
body:not(.landing-visible) #customersPage .customer-property-row{align-items:center;padding:9px 10px;border-color:#d9e2e8;border-radius:10px;box-shadow:0 1px 2px rgba(15,23,42,.025)}
body:not(.landing-visible) #customersPage .customer-property-main{display:grid;gap:2px}
body:not(.landing-visible) #customersPage .customer-property-name{font-size:13px;color:#172033}
body:not(.landing-visible) #customersPage .customer-property-address,body:not(.landing-visible) #customersPage .customer-property-access{display:block;color:#667785;font-size:11.5px;line-height:1.35}
body:not(.landing-visible) #customersPage .customer-property-actions{align-items:center;gap:6px}
body:not(.landing-visible) #customersPage .customer-property-actions .compact-button{min-height:34px;padding:5px 9px;font-size:11px}
body:not(.landing-visible) #customersPage .customer-card-actions{display:flex;align-items:center;gap:8px;margin:14px -16px 0;padding:11px 16px;border-top:1px solid #dce4ea;background:#f3f6f8;border-radius:0 0 15px 15px}
body:not(.landing-visible) #customersPage .customer-card-actions>button{min-height:40px;padding:8px 13px}
body:not(.landing-visible) #customersPage .customer-primary-action{background:#1b9d9d;color:#fff;border-color:#168c8c}
body:not(.landing-visible) #customersPage .customer-card-actions .card-action-menu{margin-left:auto}

body:not(.landing-visible) #billingPage .billing-plan-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
body:not(.landing-visible) #billingPage .billing-plan-card{min-height:100%;padding:20px}
body:not(.landing-visible) #billingPage .billing-addon-card{align-items:flex-start;padding:20px 22px;border-color:#cbd9df;background:#f8fbfc}
body:not(.landing-visible) #billingPage .billing-addon-copy{gap:8px;min-width:0}
body:not(.landing-visible) #billingPage .billing-addon-title{gap:10px 14px}
body:not(.landing-visible) #billingPage .billing-addon-copy p{max-width:820px;line-height:1.5}
body:not(.landing-visible) #billingPage .billing-addon-metrics{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;margin-top:4px}
body:not(.landing-visible) #billingPage .billing-addon-metrics strong{padding:6px 9px;border:1px solid #d7e2e6;border-radius:8px;background:#fff;color:#172033;font-size:12px}
body:not(.landing-visible) #billingPage .billing-addon-metrics small{color:#64748b;font-size:12px}
body:not(.landing-visible) #billingPage .billing-addon-actions{min-width:210px;gap:9px}
body:not(.landing-visible) #billingPage .billing-addon-actions>button{width:100%;min-height:42px}
body:not(.landing-visible) #billingPage .billing-addon-actions small{max-width:260px;line-height:1.35}

body:not(.landing-visible) .invoice-card-actions .completed-document-action{background:#edf1f4!important;border-color:#ccd6de!important;color:#475569!important;box-shadow:none!important}
body:not(.landing-visible) .invoice-card-actions .completed-document-action:hover{background:#e5eaee!important;border-color:#bcc8d1!important;color:#334155!important}

@media(max-width:1100px){
  body:not(.landing-visible) #billingPage .billing-plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body:not(.landing-visible) #billingPage .billing-plan-card[data-plan-card="crew"]{grid-column:1/-1}
}
@media(max-width:720px){
  body:not(.landing-visible) #customersPage .customer-card-actions{display:grid;grid-template-columns:1fr 1fr;margin-top:12px}
  body:not(.landing-visible) #customersPage .customer-card-actions .card-action-menu{grid-column:1/-1;width:100%;margin-left:0}
  body:not(.landing-visible) #customersPage .customer-card-actions .card-action-menu>summary{width:100%;justify-content:center}
  body:not(.landing-visible) #billingPage .billing-plan-grid{grid-template-columns:1fr}
  body:not(.landing-visible) #billingPage .billing-plan-card[data-plan-card="crew"]{grid-column:auto}
  body:not(.landing-visible) #billingPage .billing-addon-card{padding:16px}
  body:not(.landing-visible) #billingPage .billing-addon-actions{width:100%;min-width:0;justify-items:stretch}
  body:not(.landing-visible) #billingPage .billing-addon-actions small{text-align:left}
}

/* Build 124 RC2 — focused first-run foundation */
.onboarding-card-first-run{width:min(900px,100%)}
.onboarding-first-run-path{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:24px 0}
.onboarding-first-run-path>div{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:10px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#f8fafc}
.onboarding-first-run-path strong{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:var(--brand-soft);color:var(--brand-dark)}
.onboarding-first-run-path span{color:var(--ink);font-weight:750;line-height:1.45}
.onboarding-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:22px 0}
.onboarding-choice-grid label{position:relative;display:block;cursor:pointer}
.onboarding-choice-grid input{position:absolute;opacity:0;pointer-events:none}
.onboarding-choice-grid label>span{display:grid;gap:4px;min-height:64px;padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
.onboarding-choice-grid label:hover>span{border-color:#99f6e4;background:#f8fffe}
.onboarding-choice-grid input:focus-visible+span{outline:3px solid var(--ring);outline-offset:1px}
.onboarding-choice-grid input:checked+span{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 2px rgba(13,148,136,.12)}
.onboarding-choice-grid strong{font-size:15px}
.onboarding-choice-grid small{color:var(--muted);line-height:1.35}
.onboarding-industry-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.onboarding-industry-grid label>span{min-height:56px;align-content:center}
.onboarding-three-choice{grid-template-columns:repeat(3,minmax(0,1fr))}
.onboarding-rate-field,.onboarding-tax-rate-field{max-width:360px;margin-top:18px}
.settings-input-prefix{display:flex;align-items:center;gap:8px}
.settings-input-prefix input{min-width:0;flex:1}
.settings-input-prefix em{font-style:normal;color:var(--muted);font-weight:800}
.onboarding-starter-price-book{margin-top:22px;padding:17px;border:1px solid var(--line);border-radius:14px;background:#f8fafc}
.onboarding-starter-price-book>label{display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:start;cursor:pointer}
.onboarding-starter-price-book input{margin-top:4px}
.onboarding-starter-price-book span{display:grid;gap:5px}
.onboarding-starter-price-book small{color:var(--muted);line-height:1.45}
.onboarding-first-run-logo{margin-top:22px}
.onboarding-payment-later{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:18px}
.onboarding-payment-later span{color:var(--muted);font-size:13px}
@media (max-width:760px){
  .onboarding-first-run-path,.onboarding-choice-grid,.onboarding-industry-grid,.onboarding-three-choice{grid-template-columns:1fr}
  .onboarding-card-first-run{padding:22px 18px}
  .onboarding-choice-grid label>span{min-height:0}
}


/* Build 124 RC3 — first activation */
.first-activation-modal{width:min(560px,100%);text-align:center}
.activation-success-icon{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 12px;border-radius:18px;background:var(--brand-soft);color:var(--brand-dark);font-size:28px;font-weight:900}
.activation-next-step{display:grid;gap:5px;margin:22px 0;padding:18px;border:1px solid var(--line);border-radius:14px;background:#f8fafc;text-align:left}
.activation-next-step span,.activation-success-grid span{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.activation-next-step small{color:var(--muted);line-height:1.4}
.first-estimate-guide{display:grid;gap:5px;margin:0 0 18px;padding:14px 16px;border:1px solid #99f6e4;border-radius:14px;background:#f0fdfa}
.first-estimate-guide span{color:var(--muted);line-height:1.4}
.estimate-editor-actions{align-items:center}
.estimate-customer-preview-modal{width:min(980px,96vw)}
.estimate-customer-preview-modal iframe{display:block;width:100%;height:min(70vh,820px);border:1px solid var(--line);border-radius:12px;background:#fff}
.customer-preview-explanation{margin:0 0 14px;padding:12px 14px;border:1px solid #99f6e4;border-radius:12px;background:#f0fdfa;line-height:1.45}
.activation-success-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:22px 0;text-align:left}
.activation-success-grid>div{display:grid;gap:4px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}
@media(max-width:640px){.activation-success-grid{grid-template-columns:1fr}.estimate-customer-preview-modal iframe{height:62vh}.estimate-editor-actions{display:grid;grid-template-columns:1fr 1fr}.estimate-editor-actions #previewEstimateButton{grid-column:1/-1}}


/* Build 124 RC4 — Activation Guidance */
.contextual-activation-hint{display:flex;align-items:flex-start;gap:10px;margin:0 0 14px;padding:12px 14px;border:1px solid var(--border-soft,#d8dee5);border-radius:12px;background:var(--panel-soft,#f7f9fa);font-size:.92rem;line-height:1.4}.contextual-activation-hint[hidden]{display:none!important}.contextual-activation-hint strong{white-space:nowrap}.contextual-activation-hint span{color:var(--text-muted,#5d6772)}
.getting-started-section .getting-started-heading .section-kicker{text-transform:uppercase;letter-spacing:.08em}.getting-started-item.is-complete .getting-started-check{font-weight:800}.empty-state-action strong{display:block;margin-bottom:5px}.empty-state-action span{display:block;max-width:620px;margin:0 auto 12px}
@media(max-width:760px){.contextual-activation-hint{display:block}.contextual-activation-hint strong{display:block;margin-bottom:4px}}

/* Build 125 RC1 — trade-aware Price Book starter packs */
body:not(.landing-visible) .price-book-starter-manager{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,360px);
  gap:18px;
  align-items:end;
  margin:18px 0 20px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#f8fafc;
}
body:not(.landing-visible) .price-book-starter-manager[hidden]{display:none!important}
body:not(.landing-visible) .price-book-starter-manager h3{margin:3px 0 6px;font-size:18px}
body:not(.landing-visible) .price-book-starter-manager p{margin:0;color:var(--muted);line-height:1.45}
body:not(.landing-visible) .price-book-starter-manager>small{grid-column:1/-1;color:var(--muted);line-height:1.45}
body:not(.landing-visible) .price-book-starter-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}
body:not(.landing-visible) .price-book-starter-actions .field{margin:0}
body:not(.landing-visible) .price-book-starter-actions button{white-space:nowrap}
body:not(.landing-visible) .price-book-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:760px){
  body:not(.landing-visible) .price-book-starter-manager{grid-template-columns:1fr}
  body:not(.landing-visible) .price-book-starter-manager>small{grid-column:auto}
  body:not(.landing-visible) .price-book-starter-actions{grid-template-columns:1fr}
  body:not(.landing-visible) .price-book-starter-actions button{width:100%}
  body:not(.landing-visible) .price-book-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  body:not(.landing-visible) .price-book-tabs button{padding-inline:8px;font-size:13px}
}

/* Build 125 RC2 — trade-pack preview, removal, and Price Book filters */
body:not(.landing-visible) .price-book-starter-button-row{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
body:not(.landing-visible) .price-book-filter-tools{grid-template-columns:minmax(220px,1fr) minmax(150px,220px) minmax(150px,220px)}
body:not(.landing-visible) .starter-pack-preview-modal{width:min(860px,96vw);max-height:min(88vh,900px);overflow:auto}
body:not(.landing-visible) .starter-pack-preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:10px 0 14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}
body:not(.landing-visible) .starter-pack-preview-toolbar>div{display:grid;gap:3px}
body:not(.landing-visible) .starter-pack-preview-toolbar small{color:var(--muted)}
body:not(.landing-visible) .starter-pack-preview-list{display:grid;gap:9px;max-height:52vh;overflow:auto;padding-right:3px}
body:not(.landing-visible) .starter-pack-preview-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:11px;align-items:start;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer}
body:not(.landing-visible) .starter-pack-preview-item.is-covered{background:#f8fafc;cursor:default;opacity:.78}
body:not(.landing-visible) .starter-pack-preview-item input{margin-top:4px}
body:not(.landing-visible) .starter-pack-preview-item-copy{display:grid;gap:6px}
body:not(.landing-visible) .starter-pack-preview-item-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
body:not(.landing-visible) .starter-pack-preview-item-title em{font-style:normal;font-size:12px;font-weight:800;color:var(--muted);white-space:nowrap}
body:not(.landing-visible) .starter-pack-preview-item-meta{display:flex;gap:6px;flex-wrap:wrap}
body:not(.landing-visible) .starter-pack-preview-item-meta b{font-size:11px;font-weight:800;padding:4px 7px;border-radius:999px;background:#eef2f6;color:#43505c}
body:not(.landing-visible) .starter-pack-preview-item small{color:var(--muted);line-height:1.4}
body:not(.landing-visible) .starter-pack-preview-safety{margin:14px 0 0;padding:12px 14px;border:1px solid #99f6e4;border-radius:12px;background:#f0fdfa;line-height:1.45;color:var(--muted)}
body:not(.landing-visible) .starter-pack-preview-safety strong{color:var(--text)}
@media(max-width:900px){body:not(.landing-visible) .price-book-filter-tools{grid-template-columns:1fr 1fr}body:not(.landing-visible) .price-book-filter-tools .search-box{grid-column:1/-1}}
@media(max-width:760px){body:not(.landing-visible) .price-book-starter-button-row{display:grid;grid-template-columns:1fr;width:100%}body:not(.landing-visible) .price-book-filter-tools{grid-template-columns:1fr}body:not(.landing-visible) .price-book-filter-tools .search-box{grid-column:auto}body:not(.landing-visible) .starter-pack-preview-toolbar{align-items:flex-start;flex-direction:column}body:not(.landing-visible) .starter-pack-preview-toolbar button{width:100%}body:not(.landing-visible) .starter-pack-preview-item-title{display:grid;gap:4px}body:not(.landing-visible) .starter-pack-preview-item-title em{white-space:normal}}

/* Build 125 RC3 — Price Book → Estimate speed + Price Book visual cleanup */
body:not(.landing-visible) .price-book-page-heading{align-items:center;margin-bottom:12px}
body:not(.landing-visible) .price-book-page-heading .section-help{max-width:720px}
body:not(.landing-visible) .price-book-heading-note{display:grid;gap:2px;max-width:310px;padding:10px 12px;border:1px solid #d8e2e8;border-radius:11px;background:#f8fafb;text-align:left}
body:not(.landing-visible) .price-book-heading-note strong{font-size:12px;color:#1f2937}
body:not(.landing-visible) .price-book-heading-note span{font-size:11px;line-height:1.35;color:var(--muted)}
body:not(.landing-visible) .price-book-starter-manager{grid-template-columns:minmax(260px,.8fr) minmax(460px,1.2fr);align-items:center;gap:14px;margin:10px 0 14px;padding:13px 14px;border-radius:12px;background:#fbfcfd}
body:not(.landing-visible) .price-book-starter-manager h3{margin:2px 0 3px;font-size:15px}
body:not(.landing-visible) .price-book-starter-manager p{font-size:12px;line-height:1.35}
body:not(.landing-visible) .price-book-starter-manager>small{margin-top:-3px;padding-top:8px;border-top:1px solid #e6ecef;font-size:11px}
body:not(.landing-visible) .price-book-starter-actions{grid-template-columns:minmax(190px,1fr) minmax(0,auto);gap:8px;align-items:end}
body:not(.landing-visible) .price-book-starter-actions .field>span{font-size:11px}
body:not(.landing-visible) .price-book-starter-button-row{gap:6px;flex-wrap:nowrap}
body:not(.landing-visible) .price-book-starter-button-row button{min-height:40px;padding:8px 10px;font-size:12px}
body:not(.landing-visible) .price-book-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:10px 0 14px;padding:5px;border:1px solid #d8e2e8;border-radius:12px;background:#f4f7f8}
body:not(.landing-visible) .price-book-tabs button{min-height:40px;padding:7px 10px;border:0;border-radius:8px;background:transparent}
body:not(.landing-visible) .price-book-tabs button.is-active{background:#fff;border:0;box-shadow:0 1px 4px rgba(15,23,42,.08)}
body:not(.landing-visible) .price-book-panel-heading{margin-top:2px;margin-bottom:6px;align-items:center}
body:not(.landing-visible) .price-book-filter-tools{margin-top:9px;padding:9px;border:1px solid #e2e8ee;border-radius:11px;background:#f8fafb}
body:not(.landing-visible) .price-book-bundle-tools{grid-template-columns:minmax(220px,1fr) minmax(150px,240px)}
body:not(.landing-visible) .price-book-bundle-help{display:flex;gap:8px;align-items:baseline;margin:9px 0 11px;padding:9px 11px;border-radius:10px;background:#f0fdfa;color:var(--muted);font-size:12px;line-height:1.4}
body:not(.landing-visible) .price-book-bundle-help strong{color:var(--text);white-space:nowrap}
body:not(.landing-visible) .price-book-bundle-card .material-supporting{margin-top:10px}

body:not(.landing-visible) .price-book-bundle-modal{width:min(780px,96vw);max-height:min(88vh,900px);overflow:auto}
body:not(.landing-visible) .price-book-bundle-builder{display:grid;gap:11px;margin-top:15px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}
body:not(.landing-visible) .price-book-bundle-builder>div:first-child{display:grid;gap:3px}
body:not(.landing-visible) .price-book-bundle-builder small{color:var(--muted);line-height:1.4}
body:not(.landing-visible) .price-book-bundle-add-row{display:grid;grid-template-columns:minmax(0,1fr) 100px auto;gap:8px;align-items:end}
body:not(.landing-visible) .price-book-bundle-add-row label{display:grid;gap:4px;font-size:11px;font-weight:800;color:var(--muted)}
body:not(.landing-visible) .price-book-bundle-add-row select,body:not(.landing-visible) .price-book-bundle-add-row input{min-height:42px}
body:not(.landing-visible) .price-book-bundle-draft-list{display:grid;gap:7px}
body:not(.landing-visible) .price-book-bundle-draft-row{display:grid;grid-template-columns:minmax(0,1fr) 100px auto;gap:8px;align-items:center;padding:9px 10px;border:1px solid #dfe7ec;border-radius:10px;background:#fff}
body:not(.landing-visible) .price-book-bundle-draft-row>div{display:grid;gap:2px;min-width:0}
body:not(.landing-visible) .price-book-bundle-draft-row small{font-size:11px}
body:not(.landing-visible) .price-book-bundle-draft-row label{display:grid;gap:3px;font-size:10px;font-weight:800;color:var(--muted)}
body:not(.landing-visible) .price-book-bundle-draft-row input{min-height:38px}

body:not(.landing-visible) .add-item-modal{width:min(880px,96vw);max-height:min(90vh,920px);overflow:auto}
body:not(.landing-visible) .estimate-price-book-quick-panel{display:grid;gap:10px}
body:not(.landing-visible) .estimate-price-book-quick-panel[hidden]{display:none!important}
body:not(.landing-visible) .estimate-price-book-quick-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:end}
body:not(.landing-visible) .estimate-price-book-quick-toolbar .field{margin:0}
body:not(.landing-visible) .estimate-price-book-filter-row{display:flex;gap:6px;overflow-x:auto;padding:2px 0 4px;scrollbar-width:thin}
body:not(.landing-visible) .estimate-price-book-filter-row button{flex:0 0 auto;min-height:36px;padding:6px 10px;border:1px solid #d7e0e6;border-radius:999px;background:#f8fafb;color:#475569;font-size:12px;font-weight:850;box-shadow:none}
body:not(.landing-visible) .estimate-price-book-filter-row button.is-active{border-color:#80c8bf;background:#e7f7f4;color:#0f766e}
body:not(.landing-visible) .estimate-price-book-quick-list{display:grid;gap:7px;max-height:52vh;overflow:auto;padding-right:3px}
body:not(.landing-visible) .estimate-price-book-quick-item{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px;border:1px solid #dfe7ec;border-radius:11px;background:#fff}
body:not(.landing-visible) .estimate-price-book-quick-item:hover{border-color:#b8d8d3;background:#fcfffe}
body:not(.landing-visible) .price-book-favorite-button{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid #dce4e9;border-radius:9px;background:#f8fafb;color:#64748b;font-size:18px;box-shadow:none}
body:not(.landing-visible) .price-book-favorite-button.is-favorite{border-color:#f2d38b;background:#fff9e8;color:#a16207}
body:not(.landing-visible) .estimate-price-book-quick-main{display:grid;gap:5px;min-width:0;padding:0;border:0;background:transparent;color:inherit;text-align:left;box-shadow:none}
body:not(.landing-visible) .estimate-price-book-quick-main:hover{background:transparent;transform:none}
body:not(.landing-visible) .estimate-price-book-quick-title{display:flex;justify-content:space-between;gap:12px;align-items:baseline;min-width:0}
body:not(.landing-visible) .estimate-price-book-quick-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body:not(.landing-visible) .estimate-price-book-quick-title em{flex:0 0 auto;font-style:normal;font-size:12px;font-weight:850;color:#0f766e}
body:not(.landing-visible) .estimate-price-book-quick-meta{display:flex;gap:5px;flex-wrap:wrap}
body:not(.landing-visible) .estimate-price-book-quick-meta b{padding:2px 6px;border-radius:999px;background:#eef2f6;color:#566270;font-size:10px;font-weight:850}
body:not(.landing-visible) .estimate-price-book-quick-main small{display:block;max-width:680px;color:var(--muted);font-size:11px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body:not(.landing-visible) .estimate-price-book-quick-footer{display:flex;justify-content:space-between;gap:10px;align-items:center;padding-top:4px;color:var(--muted);font-size:11px}

@media(max-width:980px){
  body:not(.landing-visible) .price-book-page-heading{display:grid;gap:10px}
  body:not(.landing-visible) .price-book-heading-note{max-width:none}
  body:not(.landing-visible) .price-book-starter-manager{grid-template-columns:1fr}
  body:not(.landing-visible) .price-book-starter-manager>small{grid-column:auto}
}
@media(max-width:760px){
  body:not(.landing-visible) .price-book-starter-actions{grid-template-columns:1fr}
  body:not(.landing-visible) .price-book-starter-button-row{display:grid;grid-template-columns:1fr 1fr;gap:7px}
  body:not(.landing-visible) .price-book-starter-button-row .danger-button{grid-column:1/-1}
  body:not(.landing-visible) .price-book-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
  body:not(.landing-visible) .price-book-bundle-tools{grid-template-columns:1fr}
  body:not(.landing-visible) .price-book-bundle-help{display:grid}
  body:not(.landing-visible) .price-book-bundle-add-row,body:not(.landing-visible) .price-book-bundle-draft-row{grid-template-columns:1fr}
  body:not(.landing-visible) .price-book-bundle-add-row button,body:not(.landing-visible) .price-book-bundle-draft-row button{width:100%}
  body:not(.landing-visible) .estimate-price-book-quick-toolbar{grid-template-columns:1fr}
  body:not(.landing-visible) .estimate-price-book-quick-toolbar button{width:100%}
  body:not(.landing-visible) .estimate-price-book-quick-item{grid-template-columns:36px minmax(0,1fr)}
  body:not(.landing-visible) .estimate-price-book-quick-item>.primary-action{grid-column:1/-1;width:100%}
  body:not(.landing-visible) .estimate-price-book-quick-title{display:grid;gap:3px}
  body:not(.landing-visible) .estimate-price-book-quick-title em{white-space:normal}
  body:not(.landing-visible) .estimate-price-book-quick-main small{white-space:normal}
  body:not(.landing-visible) .estimate-price-book-quick-footer{align-items:flex-start;flex-direction:column}
}

/* Build 125 RC4 — Price Book final usability */
body:not(.landing-visible) .price-book-heading-tools{display:grid;gap:8px;justify-items:end;max-width:420px}
body:not(.landing-visible) .price-book-backup-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
body:not(.landing-visible) .price-book-card-actions{align-items:center;gap:7px;flex-wrap:wrap}
body:not(.landing-visible) .price-book-card-actions>.price-book-favorite-button{flex:0 0 36px}
body:not(.landing-visible) .price-book-quick-edit{position:relative}
body:not(.landing-visible) .price-book-quick-edit>summary{min-height:36px;display:inline-flex;align-items:center;padding:6px 10px;border:1px solid #ccd8df;border-radius:8px;background:#fff;color:#334155;font-size:12px;font-weight:850;cursor:pointer;list-style:none}
body:not(.landing-visible) .price-book-quick-edit>summary::-webkit-details-marker{display:none}
body:not(.landing-visible) .price-book-quick-edit[open]>summary{border-color:#7fc8bf;background:#edf9f7;color:#0f766e}
body:not(.landing-visible) .price-book-quick-edit-grid{position:absolute;right:0;bottom:calc(100% + 7px);z-index:20;display:grid;grid-template-columns:120px 120px auto;gap:7px;align-items:end;width:max-content;max-width:min(520px,calc(100vw - 44px));padding:10px;border:1px solid #cfdbe2;border-radius:11px;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.17)}
body:not(.landing-visible) .price-book-quick-edit-grid label{display:grid;gap:4px;color:var(--muted);font-size:10px;font-weight:850}
body:not(.landing-visible) .price-book-quick-edit-grid input{min-height:38px;min-width:0}
body:not(.landing-visible) .price-book-bundle-order-actions{display:flex;gap:5px;align-items:center;justify-content:flex-end}
body:not(.landing-visible) .price-book-bundle-order-actions button[disabled]{opacity:.4;pointer-events:none}
body:not(.landing-visible) .estimate-price-book-quick-footer>div{display:flex;gap:6px;flex-wrap:wrap}
@media(max-width:760px){
  body:not(.landing-visible) .price-book-page-heading{align-items:flex-start}
  body:not(.landing-visible) .price-book-heading-tools{width:100%;max-width:none;justify-items:stretch}
  body:not(.landing-visible) .price-book-backup-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  body:not(.landing-visible) .price-book-backup-actions button{width:100%}
  body:not(.landing-visible) .price-book-card-actions{display:grid;grid-template-columns:36px repeat(2,minmax(0,1fr));width:100%}
  body:not(.landing-visible) .price-book-card-actions>.price-book-quick-edit{grid-column:2/-1}
  body:not(.landing-visible) .price-book-card-actions>.price-book-quick-edit>summary{width:100%;justify-content:center}
  body:not(.landing-visible) .price-book-card-actions>.danger-button{grid-column:1/-1}
  /* Hotfix 4.2: keep Quick Price fully above the installed-app bottom navigation,
   * Ask Osrilo launcher, Quick Add FAB, and iPhone safe area. */
  body:not(.landing-visible) .price-book-quick-edit-grid{position:fixed;left:12px;right:12px;bottom:calc(148px + env(safe-area-inset-bottom,0px));grid-template-columns:1fr 1fr;width:auto;max-width:none;max-height:min(42dvh,320px);overflow:auto;overscroll-behavior:contain;z-index:1510;padding:12px;box-shadow:0 18px 42px rgba(15,23,42,.22)}
  body:not(.landing-visible) .price-book-quick-edit-grid button{grid-column:1/-1;width:100%;min-height:44px}
  body:not(.landing-visible) .price-book-bundle-order-actions{display:grid;grid-template-columns:1fr 1fr 2fr;width:100%}
  body:not(.landing-visible) .price-book-bundle-order-actions button{width:100%}
  body:not(.landing-visible) .estimate-price-book-quick-panel{margin:-4px -4px 0}
  body:not(.landing-visible) .estimate-price-book-quick-toolbar{position:sticky;top:-1px;z-index:3;padding:8px;background:#fff;border-bottom:1px solid #e6edf1}
  body:not(.landing-visible) .estimate-price-book-filter-row{position:sticky;top:76px;z-index:2;padding:7px 8px;background:#fff;border-bottom:1px solid #edf2f4}
  body:not(.landing-visible) .estimate-price-book-quick-list{max-height:55vh;padding:4px 7px 10px}
  body:not(.landing-visible) .estimate-price-book-quick-item>.primary-action{min-height:44px}
  body:not(.landing-visible) .estimate-price-book-quick-footer{padding:8px;gap:8px}
  body:not(.landing-visible) .estimate-price-book-quick-footer>div{display:grid;grid-template-columns:1fr 1fr;width:100%}
  body:not(.landing-visible) .estimate-price-book-quick-footer button{width:100%}
}

/* Build 126 RC1 — Work & Customer Operations */
body:not(.landing-visible) #customersPage .customer-operations-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 14px}
body:not(.landing-visible) #customersPage .customer-overview-metric{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:0;min-height:76px;padding:12px 14px;border:1px solid #d8e2e8;border-radius:13px;background:#fff;color:#334155;text-align:left;box-shadow:0 8px 20px rgba(18,40,52,.04)}
body:not(.landing-visible) #customersPage button.customer-overview-metric{cursor:pointer}
body:not(.landing-visible) #customersPage button.customer-overview-metric:hover{border-color:#9cc9c6;background:#f8fcfc}
body:not(.landing-visible) #customersPage .customer-overview-metric span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.055em;color:#70808b}
body:not(.landing-visible) #customersPage .customer-overview-metric strong{margin-top:3px;font-size:22px;line-height:1.1;color:#172126}
body:not(.landing-visible) #customersPage .customer-overview-metric small{margin-top:3px;color:#7a8790;font-size:11px}
body:not(.landing-visible) #customersPage .customer-summary-badge.is-balance{border-color:#efd4a6;background:#fff8e8;color:#8a5b10}
body:not(.landing-visible) #customersPage .customer-operations-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:12px 0}
body:not(.landing-visible) #customersPage .customer-operations-strip>button{display:grid;grid-template-columns:1fr;align-content:start;gap:1px;min-width:0;min-height:74px;padding:9px 10px;border:1px solid #dce5ea;border-radius:10px;background:#f7f9fa;color:#334155;text-align:left;box-shadow:none}
body:not(.landing-visible) #customersPage .customer-operations-strip>button:not(:disabled):hover{border-color:#9fc9c7;background:#f1f9f8}
body:not(.landing-visible) #customersPage .customer-operations-strip strong{font-size:16px;line-height:1.15;color:#172126;overflow-wrap:anywhere}
body:not(.landing-visible) #customersPage .customer-operations-strip span{font-size:11px;font-weight:850;color:#43535e}
body:not(.landing-visible) #customersPage .customer-operations-strip small{font-size:10px;color:#7a8790;white-space:normal}
body:not(.landing-visible) #customersPage .customer-account-details{margin:10px 0 0;border-top:1px solid #e0e7eb}
body:not(.landing-visible) #customersPage .customer-account-details>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0 2px;cursor:pointer;color:#40515c;font-size:12px;font-weight:850;list-style:none}
body:not(.landing-visible) #customersPage .customer-account-details>summary::-webkit-details-marker{display:none}
body:not(.landing-visible) #customersPage .customer-account-details>summary small{font-weight:650;color:#7b8992;text-align:right}
body:not(.landing-visible) #customersPage .customer-account-details-body{display:grid;gap:10px;padding-top:8px}
body:not(.landing-visible) #customersPage .customer-account-section{display:grid;gap:7px}
body:not(.landing-visible) #customersPage .customer-account-section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#52616b;font-size:11px}
body:not(.landing-visible) #customersPage .customer-account-section-heading>strong{font-size:12px;color:#334155}
body:not(.landing-visible) #customersPage .customer-activity-list{display:grid;gap:5px}
body:not(.landing-visible) #customersPage .customer-activity-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"kind title time" "kind detail time";column-gap:8px;align-items:center;width:100%;min-width:0;padding:7px 8px;border:1px solid #e2e8ec;border-radius:9px;background:#fff;color:#41515b;text-align:left;box-shadow:none}
body:not(.landing-visible) #customersPage button.customer-activity-row:hover{border-color:#b8d6d4;background:#f8fcfc}
body:not(.landing-visible) #customersPage .customer-activity-kind{grid-area:kind;align-self:start;padding:2px 5px;border-radius:999px;background:#edf5f5;color:#216f6c;font-size:9px;font-weight:900;white-space:nowrap}
body:not(.landing-visible) #customersPage .customer-activity-row strong{grid-area:title;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
body:not(.landing-visible) #customersPage .customer-activity-row>span:not(.customer-activity-kind){grid-area:detail;min-width:0;color:#74818a;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body:not(.landing-visible) #customersPage .customer-activity-row time{grid-area:time;color:#849098;font-size:9px;white-space:nowrap}
body:not(.landing-visible) #customersPage .customer-activity-empty{padding:8px 10px;border:1px dashed #d8e1e6;border-radius:9px;color:#7c8991;font-size:11px}
body:not(.landing-visible) .work-customer-link{display:inline;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;text-align:left;box-shadow:none}
body:not(.landing-visible) .work-customer-link:hover{color:#147a77;text-decoration:underline;background:transparent}
@media(max-width:900px){
  body:not(.landing-visible) #customersPage .customer-operations-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  body:not(.landing-visible) #customersPage .customer-operations-overview{grid-template-columns:1fr 1fr;gap:7px}
  body:not(.landing-visible) #customersPage .customer-overview-metric{min-height:68px;padding:10px}
  body:not(.landing-visible) #customersPage .customer-operations-strip{grid-template-columns:1fr}
  body:not(.landing-visible) #customersPage .customer-operations-strip>button{min-height:58px;grid-template-columns:auto 1fr;grid-template-areas:"value label" "value detail";column-gap:9px;align-items:center}
  body:not(.landing-visible) #customersPage .customer-operations-strip strong{grid-area:value}
  body:not(.landing-visible) #customersPage .customer-operations-strip span{grid-area:label}
  body:not(.landing-visible) #customersPage .customer-operations-strip small{grid-area:detail}
}

/* Build 126 RC4 — Customer & Property Operations */
body:not(.landing-visible) #customersPage .customer-location-operations{display:grid;gap:10px;margin-top:0;padding:12px;border:1px solid #d8e2e8;border-radius:13px;background:#f6f8fa}
body:not(.landing-visible) #customersPage .customer-location-operations .customer-properties-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:0}
body:not(.landing-visible) #customersPage .customer-location-operations .customer-properties-heading>div{display:grid;gap:2px}
body:not(.landing-visible) #customersPage .customer-location-operations .customer-properties-heading small{display:block;color:#7a8790;font-size:10px;font-weight:650;line-height:1.35}
body:not(.landing-visible) #customersPage .customer-location-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
body:not(.landing-visible) #customersPage .customer-location-card{display:grid;gap:9px;min-width:0;padding:11px;border:1px solid #d7e1e7;border-radius:12px;background:#fff;box-shadow:0 2px 7px rgba(15,23,42,.035)}
body:not(.landing-visible) #customersPage .customer-location-card.is-archived{opacity:.72;background:#f7f8f9}
body:not(.landing-visible) #customersPage .customer-location-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
body:not(.landing-visible) #customersPage .customer-location-identity{display:grid;gap:3px;min-width:0;color:#64748b;font-size:11px}
body:not(.landing-visible) #customersPage .customer-location-title-row{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
body:not(.landing-visible) #customersPage .customer-location-title-row>strong{color:#172126;font-size:13px}
body:not(.landing-visible) #customersPage .customer-location-identity>span{overflow-wrap:anywhere}
body:not(.landing-visible) #customersPage .customer-location-identity>small{display:grid;gap:2px;color:#6b7a85;font-size:10px;line-height:1.35}
body:not(.landing-visible) #customersPage .customer-location-status{display:grid;gap:2px;justify-items:end;flex:0 0 auto;color:#788692;font-size:10px;text-align:right}
body:not(.landing-visible) #customersPage .customer-location-status>strong{color:#334155;font-size:11px}
body:not(.landing-visible) #customersPage .customer-location-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
body:not(.landing-visible) #customersPage .customer-location-metrics>span{display:grid;gap:1px;padding:6px 7px;border:1px solid #e4eaee;border-radius:8px;background:#f8fafb;color:#72808a;font-size:9px;line-height:1.2}
body:not(.landing-visible) #customersPage .customer-location-metrics strong{color:#263640;font-size:12px}
body:not(.landing-visible) #customersPage .customer-location-history{border-top:1px solid #e8edef}
body:not(.landing-visible) #customersPage .customer-location-history>summary{display:flex;justify-content:space-between;gap:8px;padding-top:8px;cursor:pointer;list-style:none;color:#43535e;font-size:10px;font-weight:850}
body:not(.landing-visible) #customersPage .customer-location-history>summary::-webkit-details-marker{display:none}
body:not(.landing-visible) #customersPage .customer-location-history>summary small{font-weight:650;color:#81909a;text-align:right}
body:not(.landing-visible) #customersPage .customer-location-activity-list{display:grid;gap:5px;padding-top:7px}
body:not(.landing-visible) #customersPage .customer-location-activity-empty{margin-top:7px;padding:7px 8px;border:1px dashed #dfe7eb;border-radius:8px;color:#7c8991;font-size:10px}
body:not(.landing-visible) #customersPage .customer-location-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding-top:1px}
body:not(.landing-visible) #customersPage .customer-location-actions>button{min-height:36px;padding:6px 10px;font-size:11px}
body:not(.landing-visible) #customersPage .customer-location-primary{border-color:#168c8c;background:#1b9d9d;color:#fff}
body:not(.landing-visible) #customersPage .customer-location-actions .card-action-menu{margin-left:auto}
@media(max-width:900px){
  body:not(.landing-visible) #customersPage .customer-location-list{grid-template-columns:1fr}
}
@media(max-width:560px){
  body:not(.landing-visible) #customersPage .customer-location-operations{padding:9px}
  body:not(.landing-visible) #customersPage .customer-location-operations .customer-properties-heading{display:grid;gap:4px}
  body:not(.landing-visible) #customersPage .customer-location-head{display:grid;gap:7px}
  body:not(.landing-visible) #customersPage .customer-location-status{justify-items:start;text-align:left}
  body:not(.landing-visible) #customersPage .customer-location-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  body:not(.landing-visible) #customersPage .customer-location-actions{display:grid;grid-template-columns:1fr 1fr}
  body:not(.landing-visible) #customersPage .customer-location-actions>button{width:100%;min-height:44px}
  body:not(.landing-visible) #customersPage .customer-location-service-action{grid-column:1/-1}
  body:not(.landing-visible) #customersPage .customer-location-actions .card-action-menu{grid-column:1/-1;width:100%;margin-left:0}
  body:not(.landing-visible) #customersPage .customer-location-actions .card-action-menu>summary{width:100%;justify-content:center;min-height:44px}
}

/* Build 127 RC2: recurring unit pricing, future visit separation, and bulk schedule review */
.recurring-pricing-summary{
  display:grid;
  gap:4px;
  padding:10px 12px;
  border:1px solid #cbd5e1;
  border-radius:12px;
  background:#f8fafc;
}
.recurring-pricing-summary strong{color:#0f172a}
.recurring-pricing-summary span{color:#64748b;font-size:.78rem;line-height:1.35}
.work-list-section-heading{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:end;
  margin:8px 0 2px;
  padding:12px 14px;
  border:1px solid #dbe4ee;
  border-radius:14px;
  background:#f8fafc;
}
.work-list-section-heading>div{display:grid;gap:2px}
.work-list-section-heading span{font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.045em;color:#64748b}
.work-list-section-heading strong{font-size:1rem;color:#0f172a}
.work-list-section-heading small{max-width:440px;color:#64748b;text-align:right;line-height:1.35}
.future-recurring-heading{border-left:4px solid #0f766e}
.customer-notification-bulk-actions{
  position:sticky;
  top:0;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border:1px solid #cbd5e1;
  border-radius:12px;
  background:#f8fafc;
  box-shadow:0 6px 18px rgba(15,23,42,.06);
}
.customer-notification-bulk-actions[hidden]{display:none}
.customer-notification-review-item.is-selected{border-color:#0f766e;box-shadow:0 0 0 2px rgba(15,118,110,.12)}
.customer-notification-select{display:flex;align-items:center;gap:6px;font-size:.76rem;font-weight:800;color:#475569;white-space:nowrap}
.customer-notification-select input{width:18px;height:18px;accent-color:#0f766e}
@media(max-width:720px){
  .work-list-section-heading{display:grid;align-items:start}
  .work-list-section-heading small{text-align:left;max-width:none}
  .customer-notification-bulk-actions{align-items:stretch;flex-direction:column}
  .customer-notification-bulk-actions button{width:100%}
  .customer-notification-select{justify-self:start}
}

/* Build 127 RC3: product cohesion — Recurring is a Work view, not a separate workspace */
.work-page-intro{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}
.work-page-intro>div:first-child{max-width:720px}
.work-workspace-tabs{
  display:flex;
  gap:6px;
  padding:5px;
  border:1px solid #d9e2e8;
  border-radius:14px;
  background:#f5f7f8;
  flex:0 0 auto;
}
.work-workspace-tab{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:40px;
  padding:8px 13px;
  border:1px solid transparent;
  border-radius:10px;
  background:transparent;
  color:#475569;
  font-weight:850;
  box-shadow:none;
}
.work-workspace-tab:hover{background:#fff;color:#0f172a}
.work-workspace-tab.is-active{
  border-color:#c9d8dd;
  background:#fff;
  color:#0f172a;
  box-shadow:0 2px 8px rgba(15,23,42,.06);
}
.work-workspace-tab>span{
  display:inline-grid;
  min-width:24px;
  min-height:22px;
  place-items:center;
  padding:2px 7px;
  border-radius:999px;
  background:#e8eef1;
  color:#52636d;
  font-size:.72rem;
}
.work-workspace-tab.is-active>span{background:#dff3f1;color:#0f766e}
#workOpenWorkspace,#workRecurringWorkspace{display:grid;gap:16px}
#workOpenWorkspace[hidden],#workRecurringWorkspace[hidden]{display:none!important}
.recurring-workspace-intro{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:16px 18px;
  border:1px solid #d8e2e8;
  border-radius:16px;
  background:#f8fafb;
}
.recurring-workspace-intro h2{margin:2px 0 4px}
.recurring-workspace-intro .page-subtitle{margin:0;max-width:760px}
.recurring-card-status-line{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.recurring-attention-pill{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:3px 8px;
  border:1px solid #f2c6a8;
  border-radius:999px;
  background:#fff7ed;
  color:#9a4b14;
  font-size:.68rem;
  font-weight:850;
}
.recurring-attention-pill.is-neutral{border-color:#d5dde3;background:#f6f8fa;color:#64748b}
.recurring-card-visits{
  margin-top:12px;
  border:1px solid #e0e7ec;
  border-radius:12px;
  background:#fbfcfd;
  overflow:hidden;
}
.recurring-card-visits>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  cursor:pointer;
  list-style:none;
  color:#334155;
  font-size:.8rem;
  font-weight:850;
}
.recurring-card-visits>summary::-webkit-details-marker{display:none}
.recurring-card-visits>summary small{color:#71808a;font-weight:700}
.recurring-visit-groups{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 12px 12px}
.recurring-visit-groups>div{display:grid;align-content:start;gap:5px;min-width:0}
.recurring-visit-groups>div>strong{padding:2px 0 3px;color:#64748b;font-size:.67rem;text-transform:uppercase;letter-spacing:.04em}
.recurring-visit-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
  min-height:52px;
  padding:8px 10px;
  border:1px solid #e2e8ec;
  border-radius:10px;
  background:#fff;
  color:#1f2937;
  text-align:left;
  box-shadow:none;
}
.recurring-visit-row:hover{border-color:#b9d8d5;background:#f9fdfc}
.recurring-visit-row.needs-attention{border-color:#f1c9ae;background:#fffaf5}
.recurring-visit-row>span{display:grid;gap:2px;min-width:0}
.recurring-visit-row>span:last-child{text-align:right;justify-items:end;flex:0 0 auto}
.recurring-visit-row strong{font-size:.78rem;line-height:1.2}
.recurring-visit-row small{color:#71808a;font-size:.68rem;line-height:1.25}
.recurring-visit-row.needs-attention>span:last-child small{color:#9a4b14;font-weight:800}
.recurring-visit-more{padding:4px 2px;color:#71808a;font-size:.68rem}
.inline-empty-action{margin-left:8px;vertical-align:middle}
@media(max-width:820px){
  .work-page-intro,.recurring-workspace-intro{display:grid;gap:12px}
  .work-workspace-tabs{width:100%;display:grid;grid-template-columns:1fr 1fr}
  .work-workspace-tab{justify-content:center;width:100%}
  .recurring-workspace-intro .page-heading-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .recurring-workspace-intro .page-heading-actions button{width:100%}
  .recurring-visit-groups{grid-template-columns:1fr}
}
@media(max-width:560px){
  .work-page-intro{padding:14px}
  .work-page-intro .page-subtitle{font-size:.82rem}
  .recurring-workspace-intro{padding:13px}
  .recurring-workspace-intro .page-heading-actions{grid-template-columns:1fr}
  .recurring-card-head{display:grid}
  .recurring-card-head>strong{text-align:left}
  .recurring-card-visit{grid-template-columns:1fr 1fr}
  .recurring-card-visit>div:first-child{grid-column:1/-1}
  .recurring-card-visits>summary{align-items:flex-start;flex-direction:column}
}

/* Build 127 RC4: recurring field operations remain inside canonical Work + Schedule */
.work-detail-recurring-section{border-color:color-mix(in srgb,var(--accent,#0f766e) 28%,var(--border,#d7dde3));background:color-mix(in srgb,var(--accent-soft,#ecfdf5) 42%,var(--surface,#fff))}
.work-detail-recurring-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.recurring-visit-action-modal{width:min(620px,calc(100vw - 28px))}
.recurring-visit-action-summary{display:flex;flex-direction:column;gap:3px;padding:12px 14px;margin:4px 0 16px;border:1px solid var(--border);border-radius:12px;background:var(--surface-muted,#f8fafc)}
.recurring-visit-action-summary span{font-size:.86rem;color:var(--text-muted,#64748b)}
.recurring-visit-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.recurring-visit-action-grid .full-width{grid-column:1/-1}
.recurring-visit-row.is-skipped{opacity:.74;background:var(--surface-muted,#f8fafc)}
.recurring-visit-row.is-skipped strong{text-decoration-color:currentColor}
.recurring-service-card.is-season-complete{background:color-mix(in srgb,var(--surface-muted,#f8fafc) 72%,var(--surface,#fff));}
.recurring-service-card.is-season-complete .status-pill{background:var(--surface-muted,#f1f5f9);color:var(--text-muted,#64748b)}
.status-skipped{background:#f1f5f9!important;color:#64748b!important;border-color:#cbd5e1!important}
@media(max-width:650px){.recurring-visit-action-grid{grid-template-columns:1fr}.work-detail-recurring-actions>*{flex:1 1 45%}}


/* Build 127 RC6 Hotfix 4.2 — narrow-phone Quick Price stacking. */
@media(max-width:420px){
  body:not(.landing-visible) .price-book-quick-edit-grid{left:10px;right:10px;grid-template-columns:1fr;bottom:calc(146px + env(safe-area-inset-bottom,0px))}
  body:not(.landing-visible) .price-book-quick-edit-grid button{grid-column:1}
}


/* Build 127 RC7 — paid-tool navigation stays visible after trial so preserved data has a clear upgrade path. */
.sidebar-nav-button.is-plan-locked,[data-dashboard-nav].is-plan-locked{opacity:.72}
.sidebar-nav-button.is-plan-locked::after,[data-dashboard-nav].is-plan-locked::after{content:"🔒";margin-left:auto;font-size:.66rem;line-height:1}
#mobileMorePageGrid button.is-plan-locked{opacity:.76}
#mobileMorePageGrid button.is-plan-locked strong{display:flex;align-items:center;gap:6px}
.mobile-plan-lock{font-style:normal;font-size:.68rem;line-height:1}

/* Build 127 RC9 — Adaptive Workspace + Product Cohesion */
.dashboard-action-group [data-quick-add-key].is-plan-locked{opacity:.76}
.dashboard-action-group [data-quick-add-key].is-plan-locked::after{content:"🔒";margin-left:6px;font-size:.68rem;line-height:1}
#mobileQuickActions .mobile-sheet-actions [data-quick-add-key].is-plan-locked{opacity:.76}
#mobileQuickActions .mobile-sheet-actions [data-quick-add-key].is-plan-locked strong::after{content:"  🔒";font-size:.72rem}
.recurring-default-order{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:7px 12px;
  margin:2px 0 12px;
  padding:10px 12px;
  border:1px solid #dce5ea;
  border-radius:11px;
  background:#f8fafb;
}
.recurring-default-order-copy{display:flex;align-items:baseline;gap:7px;min-width:0}
.recurring-default-order-copy span{color:#52636d;font-size:.76rem;font-weight:800}
.recurring-default-order-copy strong{color:#0f172a;font-size:.86rem;white-space:nowrap}
.recurring-default-order-actions{display:flex;gap:5px;align-items:center}
.recurring-default-order-actions button{min-width:31px;min-height:31px;padding:4px 8px}
.recurring-default-order>small{grid-column:1/-1;color:#71808a;font-size:.7rem;line-height:1.35}
.recurring-card-status-line .status-pill{text-transform:none}
@media(max-width:560px){
  .recurring-default-order{grid-template-columns:1fr auto;padding:9px 10px}
  .recurring-default-order-copy{align-items:flex-start;flex-direction:column;gap:2px}
}

/* Build 127 RC10 — recurring action hierarchy and final cohesion */
.recurring-card-actions{align-items:center}
.recurring-card-more{position:relative}
.recurring-card-more>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.recurring-card-more>summary::-webkit-details-marker{display:none}
.recurring-card-more-menu{position:absolute;z-index:8;right:0;bottom:calc(100% + 6px);min-width:148px;padding:7px;background:#fff;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 12px 30px rgba(15,23,42,.14);display:grid;gap:5px}
.recurring-card-more-menu button{width:100%;justify-content:flex-start}
@media (max-width:700px){.recurring-card-more-menu{left:0;right:auto}}

/* Build 127 RC11 — Comprehensive mobile UI, wording, spacing, and cohesion pass */
/* Shared touch targets and compact secondary help actions. */
body:not(.landing-visible) .page-help-button{min-height:40px}
body:not(.landing-visible) .price-book-empty-guidance{max-width:620px;margin:0 auto;padding:18px 16px;text-align:center}
body:not(.landing-visible) .price-book-empty-guidance strong{display:block;margin-bottom:5px;color:#172126}
body:not(.landing-visible) .price-book-empty-guidance span{color:#64748b;font-size:13px;line-height:1.4}

/* Price Book quick-start/drawer gets one coherent layout instead of flowing text. */
body:not(.landing-visible) .price-book-start-here{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:18px;margin:0 0 12px;padding:14px 16px;border:1px solid #dce5ea;border-radius:13px;background:#fbfcfd}
body:not(.landing-visible) .price-book-start-here h3{margin:3px 0 4px;font-size:18px}
body:not(.landing-visible) .price-book-start-here p:last-child{margin:0;color:#64748b;font-size:13px;line-height:1.4}
body:not(.landing-visible) .price-book-start-actions{display:flex;align-items:center;gap:7px;min-width:0}
body:not(.landing-visible) .price-book-start-actions button{min-width:0;min-height:40px;padding:8px 12px;white-space:nowrap}
body:not(.landing-visible) .price-book-tools-drawer{margin:0 0 13px;border:1px solid #dce5ea;border-radius:12px;background:#f8fafb;overflow:hidden}
body:not(.landing-visible) .price-book-tools-drawer>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;cursor:pointer;list-style:none}
body:not(.landing-visible) .price-book-tools-drawer>summary::-webkit-details-marker{display:none}
body:not(.landing-visible) .price-book-tools-drawer>summary>span:first-child{display:grid;gap:1px;min-width:0}
body:not(.landing-visible) .price-book-tools-drawer>summary strong{font-size:13px}
body:not(.landing-visible) .price-book-tools-drawer>summary small{color:#64748b;font-size:11px;line-height:1.3}
body:not(.landing-visible) .price-book-tools-drawer-body{padding:0 12px 12px}
body:not(.landing-visible) .price-book-heading-note{max-width:400px}

/* Billing/storage values stay readable instead of competing for the same mobile column. */
body:not(.landing-visible) #billingPage .billing-storage-usage-card{align-content:start}
body:not(.landing-visible) #billingPage .billing-storage-breakdown{width:100%}

/* Profit lists can distinguish recurring visits by property/date, and copy can wrap safely. */
body:not(.landing-visible) .profit-job-identity small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body:not(.landing-visible) .profit-job-open small{overflow-wrap:anywhere}

/* Time audit subject is a first-class line, not fused into the action heading. */
body:not(.landing-visible) .time-clock-audit-subject{display:block;margin-top:2px;color:#334155!important;font-size:.8rem!important;font-weight:750;overflow-wrap:anywhere}

@media(max-width:820px){
  /* Reserve real space for the two fixed mobile layers and the iOS safe areas. */
  body:not(.landing-visible){
    padding-bottom:calc(82px + env(safe-area-inset-bottom,0px));
    scroll-padding-top:calc(8px + env(safe-area-inset-top,0px));
    scroll-padding-bottom:calc(156px + env(safe-area-inset-bottom,0px));
  }
  body:not(.landing-visible) .app-content{padding-bottom:calc(92px + env(safe-area-inset-bottom,0px))}
  body:not(.landing-visible) .dashboard-page{scroll-margin-top:calc(8px + env(safe-area-inset-top,0px));scroll-margin-bottom:calc(150px + env(safe-area-inset-bottom,0px))}
  body:not(.landing-visible)::before{content:"";position:fixed;z-index:1750;top:0;left:0;right:0;height:env(safe-area-inset-top,0px);pointer-events:none;background:#f7f9fb}

  /* Floating utilities stay useful without masking as much page content. */
  body:not(.landing-visible) .mobile-fab{width:54px;height:54px;right:14px;bottom:calc(77px + env(safe-area-inset-bottom,0px));font-size:28px}
  body:not(.landing-visible) .ask-osrilo-launcher{left:14px;bottom:calc(77px + env(safe-area-inset-bottom,0px));min-height:40px;padding:7px 12px;font-size:13px}
  body:not(.landing-visible) .mobile-bottom-nav{min-height:68px;padding-top:4px}

  /* Mobile action/navigation sheets should scan like navigation, not a stack of large cards. */
  body:not(.landing-visible) .mobile-action-sheet{max-height:min(82dvh,690px);padding:16px 14px calc(14px + env(safe-area-inset-bottom,0px))}
  body:not(.landing-visible) .mobile-more-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}
  body:not(.landing-visible) .mobile-more-grid button{min-height:52px!important;padding:8px 9px!important;border-radius:12px!important;gap:7px!important}
  body:not(.landing-visible) .mobile-more-grid button>span{width:30px!important;height:30px!important;font-size:15px!important}
  body:not(.landing-visible) .mobile-more-grid button strong{font-size:12px!important;line-height:1.15!important}

  /* Work workspace tabs remain one deliberate three-way switch. */
  body:not(.landing-visible) #jobsPage .work-workspace-tabs{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important;padding:5px!important}
  body:not(.landing-visible) #jobsPage .work-workspace-tab{min-width:0!important;min-height:44px!important;padding:7px 5px!important;font-size:12px!important;line-height:1.15!important;white-space:normal!important}
  body:not(.landing-visible) #jobsPage .work-workspace-tab .work-workspace-count{min-width:22px;height:22px;padding:0 5px;font-size:10px}
  body:not(.landing-visible) #jobsPage .job-next-action::after,
  body:not(.landing-visible) #jobsPage .schedule-job-attention.customer-accepted::after{display:none!important}

  /* Today's Overview and Day Operations show useful information sooner. */
  body:not(.landing-visible) #schedulePage .dashboard-pulse-section{gap:9px!important}
  body:not(.landing-visible) #schedulePage .dashboard-pulse-grid{gap:7px!important}
  body:not(.landing-visible) #schedulePage .dashboard-pulse-card{padding:10px 11px!important;border-radius:13px!important}
  body:not(.landing-visible) #schedulePage .dashboard-pulse-card h3{margin:0 0 6px!important;font-size:13px!important}
  body:not(.landing-visible) #schedulePage .dashboard-pulse-list{gap:5px!important}
  body:not(.landing-visible) #schedulePage .dashboard-pulse-row{min-height:38px!important;padding:6px 8px!important;border-radius:9px!important;font-size:12px!important}
  body:not(.landing-visible) #schedulePage .day-operations-metrics{gap:7px!important}
  body:not(.landing-visible) #schedulePage .day-operations-metric{min-height:58px!important;padding:8px 10px!important}

  /* FullCalendar month events become compact labels instead of vertical word fragments. */
  body:not(.landing-visible) #schedulePage .fc-daygrid-event{min-width:0!important;margin-top:2px!important;padding:2px 3px!important;border-radius:6px!important}
  body:not(.landing-visible) #schedulePage .fc-daygrid-event .fc-event-time{display:none!important}
  body:not(.landing-visible) #schedulePage .fc-daygrid-event .fc-event-title{display:block!important;max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:9px!important;line-height:1.2!important}
  body:not(.landing-visible) #schedulePage .fc-daygrid-day-number{font-size:12px!important}

  /* Customer cards keep the full information model but stop spending a screen on zeros. */
  body:not(.landing-visible) #customersPage .customer-operations-strip{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important}
  body:not(.landing-visible) #customersPage .customer-operations-strip>button{display:grid!important;grid-template-columns:1fr!important;grid-template-areas:none!important;align-content:center!important;gap:1px!important;min-height:62px!important;padding:7px 8px!important;text-align:left!important}
  body:not(.landing-visible) #customersPage .customer-operations-strip strong,
  body:not(.landing-visible) #customersPage .customer-operations-strip span,
  body:not(.landing-visible) #customersPage .customer-operations-strip small{grid-area:auto!important;min-width:0!important}
  body:not(.landing-visible) #customersPage .customer-operations-strip strong{font-size:15px!important}
  body:not(.landing-visible) #customersPage .customer-operations-strip span{font-size:10px!important}
  body:not(.landing-visible) #customersPage .customer-operations-strip small{font-size:9px!important;line-height:1.2!important}
  body:not(.landing-visible) #customersPage .customer-summary-badge:not(.is-balance){display:none!important}
  body:not(.landing-visible) #customersPage .show-archived-toggle{width:auto!important;min-height:38px!important;padding:7px 10px!important;justify-content:flex-start!important}
  body:not(.landing-visible) #customersPage .page-help-button{width:auto!important}

  /* Price Book keeps its education available while prioritizing the task. */
  body:not(.landing-visible) #contextualHintPriceBook{display:none!important}
  body:not(.landing-visible) #materialsPage .price-book-page-heading{gap:8px!important}
  body:not(.landing-visible) #materialsPage .price-book-page-heading .section-help{font-size:12px!important;line-height:1.35!important}
  body:not(.landing-visible) #materialsPage .price-book-heading-note{padding:9px 10px!important}
  body:not(.landing-visible) #materialsPage .price-book-heading-note span{font-size:11px!important;line-height:1.3!important}
  body:not(.landing-visible) .price-book-start-here{grid-template-columns:1fr;gap:10px;padding:11px 12px}
  body:not(.landing-visible) .price-book-start-here h3{font-size:16px}
  body:not(.landing-visible) .price-book-start-here p:last-child{font-size:12px}
  body:not(.landing-visible) .price-book-start-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  body:not(.landing-visible) .price-book-start-actions button{width:100%;min-height:40px;padding:7px 5px;font-size:12px}
  body:not(.landing-visible) .price-book-tools-drawer>summary{padding:9px 10px}
  body:not(.landing-visible) .price-book-tools-drawer>summary small{font-size:10px}
  body:not(.landing-visible) .price-book-tabs{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:4px!important;padding:4px!important}
  body:not(.landing-visible) .price-book-tabs button{min-height:38px!important;padding:6px 3px!important;font-size:11px!important}
  body:not(.landing-visible) .price-book-panel-heading{align-items:center!important;gap:8px!important}
  body:not(.landing-visible) .price-book-panel-heading .page-heading-actions{width:auto!important}
  body:not(.landing-visible) .price-book-panel-heading .page-heading-actions button{width:auto!important;min-height:40px!important}
  body:not(.landing-visible) .price-book-filter-tools{gap:7px!important;padding:9px!important}
  body:not(.landing-visible) .price-book-empty-guidance{padding:14px 10px}

  /* Time Clock status and audit/change history use a mobile-native stack. */
  body:not(.landing-visible) .mobile-clock-status-pill[data-status="clocked_out"],
  body:not(.landing-visible) .mobile-clock-status-pill[data-status="out"]{border-color:#cbd5e1!important;background:#f8fafc!important;color:#475569!important}
  body:not(.landing-visible) .mobile-clock-status-pill[data-status="clocked_out"] i,
  body:not(.landing-visible) .mobile-clock-status-pill[data-status="out"] i{background:#94a3b8!important;box-shadow:0 0 0 3px rgba(148,163,184,.14)!important}
  body:not(.landing-visible) .time-clock-admin-tabs{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-flow:row!important;grid-auto-columns:auto!important;overflow:visible!important;gap:6px!important;padding-bottom:0!important}
  body:not(.landing-visible) .time-clock-admin-tabs button{min-width:0!important;min-height:42px!important;padding:7px 6px!important;font-size:11px!important;line-height:1.15!important;white-space:normal!important}
  body:not(.landing-visible) .time-clock-audit-list{max-height:none!important;overflow:visible!important}
  body:not(.landing-visible) .time-clock-audit-row{grid-template-columns:1fr!important;gap:7px!important;padding:10px!important}
  body:not(.landing-visible) .time-clock-audit-row time{display:flex!important;align-items:center;justify-content:space-between;gap:10px;color:#64748b!important;font-size:11px!important}
  body:not(.landing-visible) .time-clock-audit-row time strong{display:inline!important;color:#334155;font-size:12px}
  body:not(.landing-visible) .time-clock-audit-row time span{font-size:10px!important;white-space:nowrap}
  body:not(.landing-visible) .time-clock-audit-row>div{min-width:0}
  body:not(.landing-visible) .time-clock-audit-row>div>strong{font-size:14px;overflow-wrap:anywhere}
  body:not(.landing-visible) .time-clock-audit-row small{display:block;margin-top:4px;color:#64748b;font-size:10px;line-height:1.35;overflow-wrap:anywhere}

  /* Payments: connection state is the task; education is compact secondary content. */
  body:not(.landing-visible) #paymentsPage{gap:12px}
  body:not(.landing-visible) #paymentsPage .stripe-payments-hero{gap:12px!important;padding:14px!important}
  body:not(.landing-visible) #paymentsPage .stripe-payments-hero-copy{gap:10px!important}
  body:not(.landing-visible) #paymentsPage .stripe-payments-title-row{gap:8px!important}
  body:not(.landing-visible) #paymentsPage .stripe-payments-title-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
  body:not(.landing-visible) #paymentsPage .stripe-payment-actions{gap:7px!important}
  body:not(.landing-visible) #paymentsPage .stripe-payment-actions>*{flex:1 1 auto!important;min-height:40px!important}
  body:not(.landing-visible) #paymentsPage .stripe-payments-account-card{padding:13px!important;border-radius:13px!important;box-shadow:none!important}
  body:not(.landing-visible) #paymentsPage .stripe-payment-flow-card,
  body:not(.landing-visible) #paymentsPage .stripe-payment-policy-card,
  body:not(.landing-visible) #paymentsPage .stripe-fee-responsibility-card{padding:14px!important;gap:10px!important}
  body:not(.landing-visible) #paymentsPage .stripe-payment-flow{gap:7px!important}
  body:not(.landing-visible) #paymentsPage .stripe-payment-flow>div{padding:10px 10px 10px 44px!important;border-radius:11px!important}
  body:not(.landing-visible) #paymentsPage .stripe-payment-flow>div>span{left:10px!important;top:10px!important;width:26px!important;height:26px!important;font-size:11px!important}
  body:not(.landing-visible) #paymentsPage .stripe-payment-flow strong{font-size:13px!important}
  body:not(.landing-visible) #paymentsPage .stripe-payment-flow p,
  body:not(.landing-visible) #paymentsPage .stripe-payment-policy-card p,
  body:not(.landing-visible) #paymentsPage .stripe-fee-responsibility-card p{font-size:11px!important;line-height:1.4!important}
  body:not(.landing-visible) #paymentsPage .stripe-payment-policy-list{gap:5px!important;padding:10px!important}
  body:not(.landing-visible) #paymentsPage .stripe-payment-policy-list span{font-size:11px!important}
  body:not(.landing-visible) #paymentsPage .stripe-no-osrilo-fee-note{padding:10px!important}
  body:not(.landing-visible) #paymentsPage .stripe-fee-responsibility-links{gap:6px!important;flex-wrap:wrap}

  /* Profit: compact controls and two-column KPIs make the report scannable on a phone. */
  body:not(.landing-visible) #profitPage .profit-page-intro{display:grid!important;gap:10px!important}
  body:not(.landing-visible) #profitPage .profit-page-intro .page-heading-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important;width:100%!important}
  body:not(.landing-visible) #profitPage .profit-page-intro .page-heading-actions button{width:100%!important;min-height:40px!important;padding:7px 5px!important;font-size:11px!important}
  body:not(.landing-visible) #profitPage .profit-filter-grid{grid-template-columns:1fr 1fr!important;gap:7px!important}
  body:not(.landing-visible) #profitPage .profit-filter-grid>*:nth-child(n+3){grid-column:1/-1}
  body:not(.landing-visible) #profitPage .profit-filter-grid>button{min-height:42px!important}
  body:not(.landing-visible) #profitPage .profit-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}
  body:not(.landing-visible) #profitPage .profit-summary-grid article,
  body:not(.landing-visible) #profitPage .profit-cost-grid>div{padding:11px!important;border-radius:11px!important}
  body:not(.landing-visible) #profitPage .profit-summary-grid strong{font-size:20px!important}
  body:not(.landing-visible) #profitPage .profit-summary-grid small,
  body:not(.landing-visible) #profitPage .profit-cost-grid small{font-size:10px!important}
  body:not(.landing-visible) #profitPage .profit-cost-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}
  body:not(.landing-visible) #profitPage .profit-truth-note{display:grid!important;gap:4px!important;padding:9px 10px!important;font-size:10px!important}
  body:not(.landing-visible) #profitPage .profit-job-open{grid-template-columns:minmax(0,1fr) minmax(105px,.42fr)!important;gap:9px!important;padding:11px!important}
  body:not(.landing-visible) #profitPage .profit-job-open>span:nth-child(n+3){display:none!important}
  body:not(.landing-visible) #profitPage .profit-job-identity strong{white-space:normal!important;line-height:1.2}
  body:not(.landing-visible) #profitPage .profit-job-identity small{white-space:normal!important;font-size:10px!important;line-height:1.25!important}

  /* Billing & Plans: values, plan comparison, and policy copy become scannable. */
  body:not(.landing-visible) #billingPage .section-heading{gap:10px!important}
  body:not(.landing-visible) #billingPage #billingRefreshButton{width:auto!important;min-height:40px!important;padding:7px 10px!important}
  body:not(.landing-visible) #billingPage .billing-usage-grid{gap:7px!important}
  body:not(.landing-visible) #billingPage .billing-usage-grid>div{padding:10px 11px!important;border-radius:11px!important}
  body:not(.landing-visible) #billingPage .billing-usage-grid>div:not(.billing-storage-usage-card){grid-template-columns:minmax(0,1fr) auto!important;gap:2px 10px!important}
  body:not(.landing-visible) #billingPage .billing-usage-grid>div:not(.billing-storage-usage-card) strong{font-size:17px!important;text-align:right!important;white-space:normal!important}
  body:not(.landing-visible) #billingPage .billing-usage-grid>div:not(.billing-storage-usage-card) span{font-size:10px!important}
  body:not(.landing-visible) #billingPage .billing-usage-grid>div:not(.billing-storage-usage-card) small{font-size:10px!important}
  body:not(.landing-visible) #billingPage .billing-storage-usage-card{display:grid!important;grid-template-columns:1fr!important;gap:6px!important;align-items:start!important}
  body:not(.landing-visible) #billingPage .billing-storage-usage-card>span,
  body:not(.landing-visible) #billingPage .billing-storage-usage-card>strong,
  body:not(.landing-visible) #billingPage .billing-storage-usage-card>small,
  body:not(.landing-visible) #billingPage .billing-storage-usage-card>.billing-storage-breakdown,
  body:not(.landing-visible) #billingPage .billing-storage-usage-card>.billing-storage-recalculate{grid-column:1!important;grid-row:auto!important;text-align:left!important}
  body:not(.landing-visible) #billingPage .billing-storage-usage-card>strong{font-size:18px!important;line-height:1.2!important;overflow-wrap:normal!important}
  body:not(.landing-visible) #billingPage .billing-storage-breakdown{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important}
  body:not(.landing-visible) #billingPage .billing-storage-breakdown .storage-breakdown-excluded{grid-column:1/-1!important}
  body:not(.landing-visible) #billingPage .billing-storage-recalculate{width:auto!important;min-height:38px!important;justify-self:start!important;margin-top:4px!important}
  body:not(.landing-visible) #billingPage .billing-storage-note{margin-top:9px!important;font-size:11px!important;line-height:1.4!important}
  body:not(.landing-visible) #billingPage .billing-plan-grid{gap:10px!important}
  body:not(.landing-visible) #billingPage .billing-plan-card{padding:14px!important;border-radius:15px!important;grid-template-rows:auto auto auto 1fr auto!important}
  body:not(.landing-visible) #billingPage .billing-plan-heading strong{font-size:21px!important}
  body:not(.landing-visible) #billingPage .billing-plan-card h3{margin:8px 0 3px!important;font-size:21px!important}
  body:not(.landing-visible) #billingPage .billing-plan-card>p{min-height:0!important;margin-bottom:8px!important;font-size:12px!important;line-height:1.35!important}
  body:not(.landing-visible) #billingPage .billing-plan-features{padding-top:9px!important}
  body:not(.landing-visible) #billingPage .billing-plan-card ul{gap:5px!important;margin:7px 0 10px!important;font-size:11px!important;line-height:1.35!important}
  body:not(.landing-visible) #billingPage .billing-plan-card li{padding-left:18px!important}
  body:not(.landing-visible) #billingPage .billing-plan-card li.billing-plan-capacity{padding:8px 9px 8px 30px!important}
  body:not(.landing-visible) #billingPage .billing-plan-card button{min-height:40px!important;margin-top:5px!important}
  body:not(.landing-visible) #billingPage .billing-addon-card{gap:12px!important;padding:14px!important}
  body:not(.landing-visible) #billingPage .billing-addon-copy p{font-size:11px!important;line-height:1.4!important}
  body:not(.landing-visible) #billingPage .billing-addon-title h3{font-size:17px!important}
  body:not(.landing-visible) #billingPage .billing-addon-price{font-size:19px!important}
  body:not(.landing-visible) #billingPage .billing-addon-actions{gap:6px!important}
  body:not(.landing-visible) #billingPage .billing-addon-actions>button{min-height:40px!important}
  body:not(.landing-visible) #billingPage .billing-policy-card{gap:12px!important;padding:14px!important}
  body:not(.landing-visible) #billingPage .billing-policy-card p{font-size:11px!important;line-height:1.45!important}
  body:not(.landing-visible) #billingPage .subscription-policy-notice{font-size:10px!important;line-height:1.4!important;padding:9px 10px!important}
}

@media(max-width:430px){
  body:not(.landing-visible) #customersPage .customer-operations-strip small{display:none!important}
  body:not(.landing-visible) #customersPage .customer-operations-strip>button{min-height:55px!important}
  body:not(.landing-visible) .mobile-more-grid button strong{font-size:11px!important}
  body:not(.landing-visible) .price-book-start-actions button{font-size:11px!important}
  body:not(.landing-visible) #schedulePage .fc-daygrid-event .fc-event-title{font-size:8.5px!important}
}


/* Build 127 FINAL HOTFIX1 — mobile action-menu reachability + manual Estimate PDF sharing. */
.document-share-manual-actions{display:grid;gap:5px;margin-top:12px;padding-top:12px;border-top:1px solid #e2e8f0}
.document-share-manual-actions>button{width:100%}
.document-share-manual-actions>small{color:#64748b;font-size:12px;line-height:1.4}
.document-share-manual-actions>button[hidden]+small{display:none}

@media(max-width:820px){
  /* A card menu owns the transient action layer while open. Fixed launchers must
   * not cover its final rows, especially on iPhone/PWA near the bottom nav. */
  body:not(.landing-visible) .card-action-menu[open]{z-index:2050}
  body:not(.landing-visible) .card-action-menu[open] .card-action-popover{
    z-index:2050;
    max-height:calc(100dvh - 118px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))!important;
    padding-bottom:12px;
    scrollbar-gutter:stable;
  }
}

/* Build 127 FINAL HOTFIX3 — mobile destructive confirmations must own the top layer. */
#confirmModal{z-index:2700}
@media(max-width:820px){
  #confirmModal .modal{
    max-height:calc(100dvh - 28px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));
    overscroll-behavior:contain;
  }
  #confirmModal .modal-actions{
    position:sticky;
    bottom:0;
    z-index:2;
    margin:18px -2px -2px;
    padding:10px 2px calc(2px + env(safe-area-inset-bottom,0px));
    background:linear-gradient(to bottom,rgba(255,255,255,.9),#fff 22%);
  }
}


/* Build 127 FINAL HOTFIX4 — Estimate delivery and approval simplification. */
.estimate-share-paths{display:grid;gap:10px;margin-top:14px}
.estimate-share-path{display:grid;gap:4px;width:100%;padding:15px 16px;text-align:left;border:1px solid #cbd5e1;border-radius:14px;background:#fff;color:#0f172a}
.estimate-share-path:hover{border-color:#14b8a6;background:#f0fdfa}
.estimate-share-path strong{font-size:15px}
.estimate-share-path small{font-size:12px;line-height:1.4;color:#64748b;font-weight:500}
.estimate-share-path.secondary-path{background:#f8fafc}
.document-delivery-tag.is-online{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe}
.document-delivery-tag.is-manual{background:#ecfeff;color:#0f766e;border-color:#a5f3fc}
#estimateAlreadySharedModal{z-index:2680}
#estimateOfflineApprovalModal{z-index:2680}
@media(max-width:820px){
  .estimate-share-path{padding:14px}
  #estimateAlreadySharedModal .modal,#estimateOfflineApprovalModal .modal{max-height:calc(100dvh - 28px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));overflow:auto}
  #estimateAlreadySharedModal .modal-actions,#estimateOfflineApprovalModal .modal-actions{position:sticky;bottom:0;background:#fff;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px))}
}

/* Build 127 FINAL Workflow Simplification & Cohesion — one next action, details on demand. */
.document-tools-simplified{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(150px,.7fr) auto;gap:10px;align-items:end}
.page-filter-more{position:relative;align-self:end}
.page-filter-more>summary{list-style:none;cursor:pointer;min-height:42px;display:flex;align-items:center;justify-content:center;padding:9px 13px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;font-weight:700;color:#334155;white-space:nowrap}
.page-filter-more>summary::-webkit-details-marker{display:none}
.page-filter-more[open]>summary{border-color:#14b8a6;background:#f0fdfa;color:#0f766e}
.page-filter-more-grid{position:absolute;z-index:1200;right:0;top:calc(100% + 6px);display:grid;grid-template-columns:repeat(2,minmax(170px,1fr));gap:10px;width:min(430px,calc(100vw - 32px));padding:12px;border:1px solid #cbd5e1;border-radius:12px;background:#fff;box-shadow:0 18px 40px rgba(15,23,42,.16)}
.page-filter-more-grid .field{margin:0}
.inline-action-menu{position:relative}
.inline-action-menu>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 13px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;font-weight:700;color:#334155}
.inline-action-menu>summary::-webkit-details-marker{display:none}
.inline-action-menu[open]>summary{border-color:#14b8a6;background:#f0fdfa;color:#0f766e}
.inline-action-menu>div{position:absolute;z-index:1200;top:calc(100% + 6px);right:0;display:grid;gap:5px;min-width:210px;padding:8px;border:1px solid #cbd5e1;border-radius:12px;background:#fff;box-shadow:0 18px 40px rgba(15,23,42,.16)}
.inline-action-menu>div button{width:100%;text-align:left}
.cohesion-collapse{padding:0!important;overflow:visible}
.cohesion-collapse>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;font-weight:800;color:#0f172a}
.cohesion-collapse>summary::-webkit-details-marker{display:none}
.cohesion-collapse>summary::after{content:"Show";font-size:11px;font-weight:800;color:#0f766e;text-transform:uppercase;letter-spacing:.06em}
.cohesion-collapse[open]>summary::after{content:"Hide"}
.cohesion-collapse>.dashboard-section,.cohesion-collapse>.billing-policy-card,.cohesion-collapse>.payment-settings-grid{margin:0!important;border:0!important;box-shadow:none!important;border-radius:0!important}
.service-call-completion-details{margin-top:8px;border-top:1px solid #e2e8f0;padding-top:8px}
.service-call-completion-details>summary{cursor:pointer;font-size:12px;font-weight:800;color:#475569}
.compact-card-actions{align-items:center}
.compact-card-actions>.primary-action,.customer-card-actions>.customer-primary-action,.customer-location-actions>.customer-location-primary,.service-call-card-actions>.primary-action{flex:1 1 180px}
.compact-card-actions>.card-action-menu,.customer-card-actions>.card-action-menu,.customer-location-actions>.card-action-menu,.service-call-card-actions>.card-action-menu{flex:0 0 auto}

@media(max-width:820px){
  .document-tools-simplified{grid-template-columns:1fr 1fr}
  .document-tools-simplified>.field:first-child{grid-column:1/-1}
  .page-filter-more{width:100%}
  .page-filter-more>summary{width:100%}
  .page-filter-more-grid{position:fixed;left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom,0px));top:auto;width:auto;grid-template-columns:1fr;max-height:60dvh;overflow:auto;z-index:2300}
  .inline-action-menu>div{position:fixed;left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom,0px));top:auto;min-width:0;z-index:2300}
  .compact-card-actions,.customer-card-actions,.customer-location-actions,.service-call-card-actions{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important}
  .compact-card-actions>.primary-action,.compact-card-actions>.secondary-button:not(.card-action-trigger),.customer-card-actions>.customer-primary-action,.customer-location-actions>.customer-location-primary,.service-call-card-actions>.primary-action{width:100%!important;min-width:0!important}
  .compact-card-actions>.card-action-menu,.customer-card-actions>.card-action-menu,.customer-location-actions>.card-action-menu,.service-call-card-actions>.card-action-menu{justify-self:end}
  .cohesion-collapse>summary{padding:12px 13px}
}

/* Build 127 FINAL Workflow Cohesion HOTFIX2 — Customer Properties are first-class without adding card clutter. */
body:not(.landing-visible) #customersPage .customer-operations-strip{grid-template-columns:repeat(4,minmax(0,1fr))}
body:not(.landing-visible) #customersPage .customer-properties-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap;color:#788692;font-size:11px;font-weight:750}
body:not(.landing-visible) #customersPage .customer-properties-add{min-height:34px;padding:6px 9px;border:1px solid #b9d6d4;border-radius:9px;background:#fff;color:#176f6d;font-size:10px;font-weight:850;box-shadow:none}
body:not(.landing-visible) #customersPage .customer-properties-add:hover{border-color:#78b7b3;background:#f2faf9}
body:not(.landing-visible) #customersPage .customer-location-operations.customer-properties-focus{border-color:#6bc5bf;box-shadow:0 0 0 3px rgba(30,166,160,.10);transition:border-color .18s ease,box-shadow .18s ease}
@media(max-width:820px){
  body:not(.landing-visible) #customersPage .customer-operations-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:560px){
  body:not(.landing-visible) #customersPage .customer-location-operations .customer-properties-heading-actions{justify-content:flex-start}
  body:not(.landing-visible) #customersPage .customer-properties-add{min-height:38px}
}

/* Build 127 FINAL Workflow Cohesion HOTFIX3 — Payments details UI clarity. */
.cohesion-collapse>summary>.cohesion-collapse-title{display:grid;gap:2px;min-width:0}
.cohesion-collapse>summary>.cohesion-collapse-title .section-kicker{margin:0;line-height:1.15}
.cohesion-collapse>summary>.cohesion-collapse-title strong{display:block;line-height:1.25}
.payments-details-collapse>summary{min-height:58px;padding:12px 16px}
.payments-details-collapse>summary::after{content:"Show details";flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:6px 10px;border:1px solid #b9d6d4;border-radius:9px;background:#fff;color:#176f6d;font-size:10px;font-weight:850;letter-spacing:.02em;text-transform:none}
.payments-details-collapse[open]>summary{background:#f8fbfb}
.payments-details-collapse[open]>summary::after{content:"Hide details"}
.payments-details-collapse>.cohesion-collapse-body{display:grid;gap:12px;padding:14px;border-top:1px solid #dbe4e8;background:#f8fafb}
.payments-details-collapse .stripe-payment-flow-card,
.payments-details-collapse .stripe-payment-policy-card,
.payments-details-collapse .stripe-fee-responsibility-card{padding:16px;border:1px solid #d6e0e5;border-radius:14px;background:#fff;box-shadow:none}
.payments-details-collapse .stripe-fee-responsibility-card{border-color:#f3d58a;background:#fffaf0}
@media(max-width:820px){
  .payments-details-collapse>summary{min-height:54px;padding:11px 12px}
  .payments-details-collapse>summary::after{min-height:30px;padding:5px 8px;font-size:9px}
  .payments-details-collapse>.cohesion-collapse-body{gap:9px;padding:10px}
  .payments-details-collapse .stripe-payment-flow-card,
  .payments-details-collapse .stripe-payment-policy-card,
  .payments-details-collapse .stripe-fee-responsibility-card{padding:12px!important;border-radius:12px}
}


/* Build 127 FINAL Workflow Cohesion HOTFIX4 — Price Book services-first simplification. */
body:not(.landing-visible) #materialsPage .price-book-tabs{grid-template-columns:repeat(3,minmax(0,1fr))!important}
body:not(.landing-visible) #materialsPage .price-book-start-actions{display:flex!important;align-items:center;justify-content:flex-end;gap:8px!important}
body:not(.landing-visible) #materialsPage .price-book-start-actions>.primary-action{min-width:132px}
body:not(.landing-visible) #materialsPage .inline-action-menu>div button small{display:block;margin-top:2px;color:#64748b;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
body:not(.landing-visible) #materialsPage .price-book-advanced-banner{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:4px 0 14px;padding:14px 16px;border:1px solid #d8e2e8;border-radius:14px;background:#f8fafb}
body:not(.landing-visible) #materialsPage .price-book-advanced-banner h3{margin:2px 0 4px;font-size:18px}
body:not(.landing-visible) #materialsPage .price-book-advanced-banner p:last-child{max-width:720px;margin:0;color:#64748b;font-size:12px;line-height:1.45}
body:not(.landing-visible) #materialsPage .price-book-advanced-banner .page-heading-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
body:not(.landing-visible) .price-book-item-modal{width:min(780px,100%);max-height:min(92dvh,920px);overflow:auto;overscroll-behavior:contain}
body:not(.landing-visible) .price-book-item-editor-grid{gap:12px;margin-top:14px}
body:not(.landing-visible) .price-book-editor-section{display:grid;gap:12px;padding:14px;border:1px solid #dbe4e8;border-radius:14px;background:#f8fafb}
body:not(.landing-visible) .price-book-editor-section-heading{display:grid;gap:2px}
body:not(.landing-visible) .price-book-editor-section-heading .section-kicker{margin:0}
body:not(.landing-visible) .price-book-editor-section-heading h3{margin:0;font-size:17px}
body:not(.landing-visible) .price-book-editor-section-heading p:last-child{margin:0;color:#64748b;font-size:11px;line-height:1.4}
body:not(.landing-visible) .price-book-editor-subgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
body:not(.landing-visible) .price-book-editor-subgrid>.full-width{grid-column:1/-1}
body:not(.landing-visible) .price-book-editor-advanced{grid-column:1/-1;border:1px solid #dbe4e8;border-radius:14px;background:#fff;overflow:hidden}
body:not(.landing-visible) .price-book-editor-advanced>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;list-style:none;cursor:pointer}
body:not(.landing-visible) .price-book-editor-advanced>summary::-webkit-details-marker{display:none}
body:not(.landing-visible) .price-book-editor-advanced>summary>span:first-child{display:grid;gap:2px}
body:not(.landing-visible) .price-book-editor-advanced>summary strong{font-size:13px}
body:not(.landing-visible) .price-book-editor-advanced>summary small{color:#64748b;font-size:10px;font-weight:650}
body:not(.landing-visible) .price-book-editor-advanced[open]>summary{border-bottom:1px solid #e2e8f0;background:#f8fafb}
body:not(.landing-visible) .price-book-editor-advanced-grid{display:grid;grid-template-columns:1fr;gap:12px;padding:14px}
body:not(.landing-visible) .price-book-item-modal .modal-actions{position:sticky;bottom:-1px;z-index:4;margin:16px -2px -2px;padding:10px 2px calc(2px + env(safe-area-inset-bottom,0px));background:linear-gradient(to bottom,rgba(255,255,255,.9),#fff 24%)}
body:not(.landing-visible) #laborMinimumRateField[hidden],
body:not(.landing-visible) #laborMaximumRateField[hidden],
body:not(.landing-visible) #laborDurationPerUnitField[hidden],
body:not(.landing-visible) #laborCatalogItemTypeField[hidden]{display:none!important}
body:not(.landing-visible) .advanced-price-book-filter{opacity:.82}

@media(max-width:820px){
  body:not(.landing-visible) #materialsPage .price-book-start-actions{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;width:100%}
  body:not(.landing-visible) #materialsPage .price-book-start-actions>.primary-action{width:100%;min-width:0}
  body:not(.landing-visible) #materialsPage .price-book-tabs{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  body:not(.landing-visible) #materialsPage .price-book-tabs button{font-size:12px!important}
  body:not(.landing-visible) #materialsPage .price-book-advanced-banner{display:grid;grid-template-columns:1fr;gap:10px;padding:12px}
  body:not(.landing-visible) #materialsPage .price-book-advanced-banner .page-heading-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  body:not(.landing-visible) #materialsPage .price-book-advanced-banner .page-heading-actions button{width:100%;min-width:0}
  body:not(.landing-visible) .price-book-item-modal{max-height:calc(100dvh - 18px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));padding-bottom:0}
  body:not(.landing-visible) .price-book-item-editor-grid{grid-template-columns:1fr!important;gap:10px}
  body:not(.landing-visible) .price-book-editor-subgrid{grid-template-columns:1fr;gap:10px}
  body:not(.landing-visible) .price-book-editor-section{padding:11px;border-radius:12px}
  body:not(.landing-visible) .price-book-editor-subgrid>.full-width{grid-column:1}
  body:not(.landing-visible) .price-book-item-modal textarea{min-height:86px}
}

/* Build 127 FINAL Workflow Cohesion HOTFIX6 — Profit/Billing disclosure clarity + paged History. */
body:not(.landing-visible) #profitPage .cohesion-collapse>summary,
body:not(.landing-visible) #billingPage .billing-policy-collapse>summary{min-height:58px;padding:12px 16px}
body:not(.landing-visible) #profitPage .cohesion-collapse>summary::after,
body:not(.landing-visible) #billingPage .billing-policy-collapse>summary::after{content:"Show details";flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:6px 10px;border:1px solid #b9d6d4;border-radius:9px;background:#fff;color:#176f6d;font-size:10px;font-weight:850;letter-spacing:.02em;text-transform:none}
body:not(.landing-visible) #profitPage .cohesion-collapse[open]>summary,
body:not(.landing-visible) #billingPage .billing-policy-collapse[open]>summary{background:#f8fbfb}
body:not(.landing-visible) #profitPage .cohesion-collapse[open]>summary::after,
body:not(.landing-visible) #billingPage .billing-policy-collapse[open]>summary::after{content:"Hide details"}
body:not(.landing-visible) .cohesion-collapse-title>small{display:block;margin-top:1px;color:#6b7d89;font-size:10px;font-weight:650;line-height:1.35;text-transform:none;letter-spacing:0}
body:not(.landing-visible) #profitPage .cohesion-collapse>.cohesion-collapse-body,
body:not(.landing-visible) #billingPage .billing-policy-collapse>.cohesion-collapse-body{display:grid;gap:12px;padding:14px;border-top:1px solid #dbe4e8;background:#f8fafb}
body:not(.landing-visible) #billingPage .billing-policy-collapse .billing-policy-card,
body:not(.landing-visible) #billingPage .billing-policy-collapse .billing-evolution-notice{margin:0!important;padding:16px!important;border:1px solid #d6e0e5!important;border-radius:14px!important;background:#fff!important;box-shadow:none!important}
body:not(.landing-visible) #billingPage .billing-policy-collapse .subscription-policy-notice{margin-top:12px}
body:not(.landing-visible) #historyPage .history-filter-grid{grid-template-columns:minmax(135px,160px) minmax(135px,160px) minmax(180px,230px) minmax(260px,1fr);gap:10px 12px;align-items:end}
body:not(.landing-visible) #historyPage .history-filter-grid .field{margin:0}
body:not(.landing-visible) #historyPage .history-list-heading>div{display:grid;gap:2px}
body:not(.landing-visible) #historyPage .business-history-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid #dbe4e8}
body:not(.landing-visible) #historyPage .business-history-pagination[hidden]{display:none!important}
body:not(.landing-visible) #historyPage .business-history-pagination span{min-width:110px;text-align:center;color:#51626f;font-size:12px;font-weight:800}
body:not(.landing-visible) #historyPage .business-history-pagination button{min-width:96px}
@media(max-width:900px){
  body:not(.landing-visible) #historyPage .history-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body:not(.landing-visible) #historyPage .history-filter-grid .history-search-field,
  body:not(.landing-visible) #historyPage .history-filter-grid label:nth-child(3){grid-column:1/-1}
}
@media(max-width:560px){
  body:not(.landing-visible) #profitPage .cohesion-collapse>summary,
  body:not(.landing-visible) #billingPage .billing-policy-collapse>summary{padding:11px 12px}
  body:not(.landing-visible) #profitPage .cohesion-collapse>summary::after,
  body:not(.landing-visible) #billingPage .billing-policy-collapse>summary::after{min-height:30px;padding:5px 8px;font-size:9px}
  body:not(.landing-visible) #profitPage .cohesion-collapse>.cohesion-collapse-body,
  body:not(.landing-visible) #billingPage .billing-policy-collapse>.cohesion-collapse-body{padding:10px;gap:9px}
  body:not(.landing-visible) #historyPage .history-filter-grid{grid-template-columns:1fr}
  body:not(.landing-visible) #historyPage .history-filter-grid .history-search-field,
  body:not(.landing-visible) #historyPage .history-filter-grid label:nth-child(3){grid-column:auto}
  body:not(.landing-visible) #historyPage .business-history-pagination{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  body:not(.landing-visible) #historyPage .business-history-pagination span{grid-column:1/-1;grid-row:1;min-width:0}
  body:not(.landing-visible) #historyPage .business-history-pagination button{width:100%;min-width:0}
}

/* Build 127 FINAL Workflow Cohesion Hotfix 11 follow-up: Invoice finalize mobile clarity. */
.invoice-finalize-choice-heading{display:grid;gap:3px;width:100%;min-width:0;margin:0 0 2px;padding:0 1px}
.invoice-finalize-choice-heading>strong{font-size:1rem;line-height:1.25;color:var(--ink,#0f172a)}
.invoice-finalize-choice-heading>span{color:var(--muted,#64748b);font-size:.82rem;line-height:1.4}
@media (max-width:700px){
  .invoice-finalize-choice-heading{margin-bottom:3px}
  .invoice-finalize-choice-heading>strong{font-size:14px;line-height:1.25}
  .invoice-finalize-choice-heading>span{font-size:12px;line-height:1.35}
  .invoice-finalize-body{scrollbar-gutter:auto}
}


/* Build 127 FINAL Workflow Cohesion HOTFIX13 — release health + mobile workflow clarity. */
.workflow-confirmation-note{
  display:grid;
  gap:5px;
  margin-top:12px;
  padding:12px 14px;
  border:1px solid #dbe4e8;
  border-radius:12px;
  background:#f8fafb;
  color:#334155;
  line-height:1.45;
}
.workflow-confirmation-note>strong{display:block;min-width:0;color:#0f172a;line-height:1.35}
.workflow-confirmation-note>span{display:block;min-width:0;line-height:1.5;overflow-wrap:anywhere}

@media(max-width:820px){
  .estimate-card-actions.compact-card-actions>.workflow-waiting-pill,
  .estimate-card-actions.compact-card-actions>.manual-acceptance-pill,
  .estimate-card-actions.compact-card-actions>.workflow-complete-pill{
    grid-column:1/-1!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    min-height:0;
    box-sizing:border-box;
    justify-content:flex-start;
    white-space:normal;
    overflow-wrap:anywhere;
    padding:8px 11px;
    border-radius:13px;
    line-height:1.3;
  }
  .estimate-card-actions.compact-card-actions>.card-action-menu{grid-column:2;grid-row:auto;justify-self:end}
  .workflow-confirmation-note{margin-top:10px;padding:11px 12px;border-radius:11px;font-size:14px}
}

/* Build 127 FINAL Workflow Cohesion Hotfix 14 — day operations / Leads / mobile Quick Price */
.schedule-open-leads-shortcut{
  width:100%;margin:2px 0 12px;padding:12px 14px;border:1px solid #99d8d1;border-radius:14px;background:#f4fbfa;color:#173f3c;
  display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left;box-shadow:0 4px 14px rgba(15,74,69,.06)
}
.schedule-open-leads-shortcut[hidden]{display:none!important}
.schedule-open-leads-shortcut>span:first-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.schedule-open-leads-shortcut strong{font-weight:850}
.schedule-open-leads-shortcut small{color:#526c69;font-size:12px;line-height:1.35}
.schedule-open-leads-count{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;min-width:54px;justify-content:flex-end}
.schedule-open-leads-count strong{display:grid;place-items:center;min-width:30px;height:30px;padding:0 8px;border-radius:999px;background:#0f766e;color:#fff;font-size:13px}
.schedule-open-leads-count>span{font-size:24px;line-height:1;color:#0f766e}
.schedule-open-leads-shortcut:hover,.schedule-open-leads-shortcut:focus-visible{border-color:#0f766e;box-shadow:0 5px 18px rgba(15,118,110,.13)}
.service-call-tag.normal{background:#dbeafe;color:#1e40af}
.service-call-tag.non_urgent{background:#e2e8f0;color:#475569}
.price-book-quick-edit[open]:focus-within{position:relative;z-index:90}
.price-book-quick-edit[open]:focus-within .price-book-quick-edit-grid{z-index:160}
@media(max-width:820px){
  .schedule-open-leads-shortcut{padding:11px 12px;margin-bottom:10px}
  .schedule-open-leads-shortcut small{max-width:250px}
  .price-book-quick-edit[open]:focus-within .price-book-quick-edit-grid{overscroll-behavior:contain}
}


/* Build 127 FINAL — Workflow Cohesion Hotfix 18
   Unified Service Calls + Scheduling Queue + Dispatch + Notifications */
.service-call-command-section{display:grid;gap:14px}
.service-call-view-switcher{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:6px;border:1px solid #d3dde5;border-radius:15px;background:#edf2f5}
.service-call-view-button{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding:10px 12px;border:1px solid transparent;border-radius:11px;background:transparent;color:#475569;box-shadow:none;text-align:left}
.service-call-view-button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:800}
.service-call-view-button strong{display:grid;place-items:center;min-width:27px;height:27px;padding:0 7px;border-radius:999px;background:#dde5eb;color:#334155;font-size:12px}
.service-call-view-button.is-active{border-color:#a9d3ce;background:#fff;color:#0f5f59;box-shadow:0 3px 10px rgba(15,23,42,.06)}
.service-call-view-button.is-active strong{background:#dff3ef;color:#0f766e}
.service-call-toolbar{display:grid;grid-template-columns:minmax(240px,1.5fr) minmax(145px,.7fr) minmax(160px,.8fr) minmax(150px,.7fr) auto;gap:10px;align-items:end}
.service-call-clear-filters{margin-bottom:1px;white-space:nowrap}
.service-call-unified-section{display:grid;gap:12px}
.service-call-unified-heading{margin:0!important;padding-bottom:12px!important;border-bottom:1px solid #dce4ea}
.service-call-unified-list{gap:9px}
.service-call-ops-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:13px 14px;border-left-width:4px;border-radius:14px;box-shadow:0 4px 14px rgba(15,23,42,.045)}
.service-call-ops-main{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(210px,.75fr);gap:16px;min-width:0;align-items:center}
.service-call-ops-identity{min-width:0}
.service-call-ops-identity .service-call-tag-row{margin-bottom:6px}
.service-call-type-tag{display:inline-flex;align-items:center;min-height:23px;padding:3px 8px;border-radius:999px;background:#e6f3f2;color:#0f766e;font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.service-call-customer-button{display:block;width:auto;max-width:100%;margin:0;padding:0;border:0;background:transparent;color:#172033;box-shadow:none;text-align:left}
.service-call-customer-button:hover,.service-call-customer-button:focus-visible{background:transparent;color:#0f766e;box-shadow:none}
.service-call-customer-button strong{font-size:16px;line-height:1.25}
.service-call-card-problem{margin:4px 0 0!important;color:#52606d;font-size:13px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.service-call-ops-facts{display:grid;gap:4px;min-width:0;color:#5a6877;font-size:12px;line-height:1.35}
.service-call-ops-facts span{min-width:0;overflow-wrap:anywhere}
.service-call-ops-facts strong{color:#263646}
.service-call-ops-card .service-call-card-actions{margin:0;min-width:150px}
.service-call-tag.billing-needed{background:#fff3d6;color:#8a4d00}
.service-call-tag.billing-done{background:#e1f4e8;color:#176536}
.service-call-schedule-queue{margin-top:0!important;padding-top:14px!important;border-top:1px solid #dbe3ec!important}
.awaiting-schedule-source-pill.is-service-call{background:#e6f3f2;color:#0f766e}
#schedulePage .service-call-schedule-queue .awaiting-schedule-card{border-left:4px solid #60758a}
#schedulePage .service-call-schedule-queue .awaiting-schedule-actions{grid-template-columns:minmax(0,1fr) auto}
.notification-title-row>span:first-child{display:flex;align-items:center;gap:7px;min-width:0}
.notification-context-pill{display:inline-flex;align-items:center;min-height:20px;padding:2px 6px;border-radius:999px;background:#e6f3f2;color:#0f766e;font-size:9px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.service-call-details-modal{width:min(860px,calc(100vw - 28px))}
.service-call-details-body{display:grid;gap:10px;padding:14px}
.service-call-detail-hero{padding:2px 0 5px}
.service-call-detail-section{display:grid;gap:10px;padding:13px;border:1px solid #d7e0e7;border-radius:13px;background:#fbfcfd}
.service-call-detail-section.is-attention{border-color:#e4d5fa;background:#fcf9ff}
.service-call-detail-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.service-call-detail-section-heading>span{color:#64748b;font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.service-call-detail-section-heading>strong{color:#263646;font-size:13px;text-align:right}
.service-call-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.service-call-detail-grid>div{display:grid;gap:3px;padding:9px 10px;border:1px solid #e0e6eb;border-radius:10px;background:#fff}
.service-call-detail-grid span{color:#718096;font-size:11px;font-weight:800}
.service-call-detail-grid strong{color:#273849;font-size:13px;overflow-wrap:anywhere}
.service-call-detail-copy{display:grid;gap:5px;color:#475569;font-size:13px;line-height:1.5}
.service-call-detail-copy p{margin:0 0 5px;white-space:pre-wrap}
.service-call-detail-actions{display:flex;flex-wrap:wrap;gap:8px}

@media(max-width:980px){
  .service-call-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}
  .service-call-search{grid-column:1/-1}
  .service-call-clear-filters{width:100%}
  .service-call-ops-main{grid-template-columns:1fr}
}
@media(max-width:700px){
  .service-call-view-switcher{grid-template-columns:repeat(2,minmax(0,1fr))}
  .service-call-toolbar{grid-template-columns:1fr}
  .service-call-search{grid-column:auto}
  .service-call-ops-card{grid-template-columns:1fr;gap:10px;padding:12px}
  .service-call-ops-card .service-call-card-actions{min-width:0}
  .service-call-ops-facts{padding-top:8px;border-top:1px solid #e1e7ec}
  .service-call-detail-grid{grid-template-columns:1fr}
  .service-call-detail-section-heading{display:grid;gap:4px}
  .service-call-detail-section-heading>strong{text-align:left}
}
/* H18 Service Call customer heading — keep customer navigation and detail navigation as sibling controls. */
.service-call-customer-heading{display:flex;align-items:center;gap:10px;min-width:0}
.service-call-customer-heading .link-button{font-size:16px;font-weight:800;line-height:1.25;text-align:left}
.service-call-view-link{padding:2px 0;border:0;background:transparent;box-shadow:none;color:#64748b;font-size:12px;font-weight:800;text-decoration:underline;text-underline-offset:3px}
.service-call-view-link:hover,.service-call-view-link:focus-visible{background:transparent;box-shadow:none;color:#0f766e}

/* Build 127 FINAL — Workflow Cohesion Hotfix 19
   Work Operations Visual Cohesion: Work List is the canonical visual pattern for Recurring Services and Service Calls. */
body:not(.landing-visible) #jobsPage .operations-workspace-section{display:grid;gap:14px}
body:not(.landing-visible) #jobsPage .operations-workspace-heading{margin-bottom:0;padding-bottom:13px;border-bottom:1px solid #dbe3e9}
body:not(.landing-visible) #jobsPage .operations-workspace-heading .page-heading-actions{align-items:center}
body:not(.landing-visible) #jobsPage .operations-workspace-heading .search-box{min-width:min(320px,36vw)}
body:not(.landing-visible) #jobsPage .operations-status-summary{margin:0;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px}
body:not(.landing-visible) #jobsPage .operations-status-summary .work-status-filter{min-height:68px;padding:10px 12px;border:1px solid #cfd9e1;border-radius:12px;background:#f7f9fb;box-shadow:0 2px 7px rgba(15,23,42,.035)}
body:not(.landing-visible) #jobsPage .operations-status-summary .work-status-filter.is-active{border-color:var(--brand);background:var(--brand-soft);box-shadow:inset 0 0 0 1px var(--brand)}
body:not(.landing-visible) #jobsPage .operations-status-summary .stat-label{font-size:11px;line-height:1.15}
body:not(.landing-visible) #jobsPage .operations-status-summary .stat-value{font-size:20px;line-height:1.1}
body:not(.landing-visible) #jobsPage .operations-card-list{display:grid;gap:10px}
body:not(.landing-visible) #jobsPage .work-operations-card{padding:14px 16px;border:1px solid #c8d3dc;border-radius:14px;background:#fbfcfd;box-shadow:0 7px 20px rgba(15,23,42,.055)}
body:not(.landing-visible) #jobsPage .work-operations-card:hover{border-color:#aab8c4}
body:not(.landing-visible) #jobsPage .work-operations-card .lead-card-header{align-items:flex-start;padding-bottom:10px;border-bottom:1px solid #dbe3e9}
body:not(.landing-visible) #jobsPage .work-operations-card .lead-card-header h3{margin:0;font-size:16px;line-height:1.25}
body:not(.landing-visible) #jobsPage .work-operations-card .lead-property-line{margin:3px 0 0;color:#5f6f7f;font-size:12px;line-height:1.35}
body:not(.landing-visible) #jobsPage .work-operations-card .lead-card-summary{margin:10px 0 0;color:#334155;font-size:13px;line-height:1.45}
body:not(.landing-visible) #jobsPage .work-operations-card .job-next-step-panel{margin:10px 0 0;padding:11px 13px}
body:not(.landing-visible) #jobsPage .work-operations-card .compact-card-actions{margin-top:10px;padding-top:10px;border-top:1px solid #dbe3e9}

/* Recurring Services: compact plan cards, one next action, administrative controls behind More. */
body:not(.landing-visible) #jobsPage .recurring-list-section{margin:0}
body:not(.landing-visible) #jobsPage .recurring-context-strip{display:grid;grid-template-columns:minmax(120px,.35fr) minmax(260px,1fr) auto;gap:10px;align-items:stretch;padding:10px;border:1px solid #d5dfe6;border-radius:12px;background:#edf2f5}
body:not(.landing-visible) #jobsPage .recurring-context-strip>div{display:grid;align-content:center;gap:2px;min-width:0;padding:7px 10px;border:1px solid #d8e1e7;border-radius:9px;background:#fff}
body:not(.landing-visible) #jobsPage .recurring-context-strip span{color:#64748b;font-size:10px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
body:not(.landing-visible) #jobsPage .recurring-context-strip strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#263646;font-size:13px}
body:not(.landing-visible) #jobsPage .recurring-context-strip button{align-self:stretch;min-height:42px}
body:not(.landing-visible) #jobsPage .recurring-service-card{display:block;margin:0}
body:not(.landing-visible) #jobsPage .recurring-service-card.needs-attention{border-left:4px solid #d68a4b}
body:not(.landing-visible) #jobsPage .recurring-card-head{display:flex;justify-content:space-between;gap:14px}
body:not(.landing-visible) #jobsPage .recurring-card-head>div:first-child{min-width:0}
body:not(.landing-visible) #jobsPage .recurring-card-status-line{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;align-items:center}
body:not(.landing-visible) #jobsPage .recurring-card-status-line .status-badge{border:1px solid #c7d2dc;box-shadow:0 1px 2px rgba(15,23,42,.04)}
body:not(.landing-visible) #jobsPage .recurring-attention-pill{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border:1px solid #edc8a8;border-radius:999px;background:#fff4e8;color:#8a4b16;font-size:10px;font-weight:900;white-space:nowrap}
body:not(.landing-visible) #jobsPage .recurring-attention-pill.is-neutral{border-color:#cbd5e1;background:#eef2f6;color:#475569}
body:not(.landing-visible) #jobsPage .recurring-card-summary strong{color:#172033}
body:not(.landing-visible) #jobsPage .recurring-next-step-panel{border-color:#c9d7dd;border-left:4px solid #78aaa4;background:linear-gradient(135deg,#f1f5f6,#eaf1f1);box-shadow:none}
body:not(.landing-visible) #jobsPage .recurring-plan-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px;padding:8px;border:1px solid #d5dee6;border-radius:12px;background:#eaf0f3}
body:not(.landing-visible) #jobsPage .recurring-plan-summary>div{display:grid;gap:3px;padding:9px 10px;border:1px solid #d5dee6;border-radius:9px;background:#fff}
body:not(.landing-visible) #jobsPage .recurring-plan-summary span{color:#64748b;font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
body:not(.landing-visible) #jobsPage .recurring-plan-summary strong{color:#263646;font-size:14px}
body:not(.landing-visible) #jobsPage .recurring-plan-more{margin-top:10px;padding:0;border:1px solid #d4dee6;border-radius:12px;background:#f4f7f9;overflow:hidden}
body:not(.landing-visible) #jobsPage .recurring-plan-more>summary{padding:10px 12px;background:#eaf0f3;color:#334155;font-weight:800;cursor:pointer}
body:not(.landing-visible) #jobsPage .recurring-plan-more[open]>summary{border-bottom:1px solid #d5dfe6}
body:not(.landing-visible) #jobsPage .recurring-plan-details{margin:12px}
body:not(.landing-visible) #jobsPage .recurring-plan-more .recurring-default-order{margin:0 12px 12px}
body:not(.landing-visible) #jobsPage .recurring-plan-visit-history{margin:0 12px 12px;padding:10px;border:1px solid #d5dfe6;border-radius:11px;background:#edf2f5}
body:not(.landing-visible) #jobsPage .recurring-plan-visit-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}
body:not(.landing-visible) #jobsPage .recurring-plan-visit-heading strong{font-size:12px;color:#334155}
body:not(.landing-visible) #jobsPage .recurring-plan-visit-heading small{color:#71808a;font-size:10px;font-weight:700}
body:not(.landing-visible) #jobsPage .recurring-card-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
body:not(.landing-visible) #jobsPage .recurring-card-actions>.primary-action{width:100%}
body:not(.landing-visible) #jobsPage .recurring-card-actions>.card-action-menu{justify-self:end}

/* Service Calls: retain H18 operational compactness while matching Work card hierarchy and action placement. */
body:not(.landing-visible) #jobsPage .service-call-workspace-section{margin:0}
body:not(.landing-visible) #jobsPage .service-call-status-summary .service-call-view-button{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;color:var(--ink);text-align:left}
body:not(.landing-visible) #jobsPage .service-call-status-summary .service-call-view-button span{font-size:11px;font-weight:800;color:#64748b;white-space:normal;overflow:visible;text-overflow:clip}
body:not(.landing-visible) #jobsPage .service-call-status-summary .service-call-view-button strong{display:block;min-width:0;height:auto;padding:0;border-radius:0;background:transparent;color:#172033;font-size:20px;line-height:1.1}
body:not(.landing-visible) #jobsPage .service-call-status-summary .service-call-view-button.is-active span{color:var(--brand-dark)}
body:not(.landing-visible) #jobsPage .service-call-status-summary .service-call-view-button.is-active strong{background:transparent;color:#172033}
body:not(.landing-visible) #jobsPage .service-call-toolbar{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(170px,.9fr) minmax(150px,.7fr) auto;gap:10px;align-items:end;padding:10px;border:1px solid #d5dfe6;border-radius:12px;background:#edf2f5}
body:not(.landing-visible) #jobsPage .service-call-toolbar .field{margin:0}
body:not(.landing-visible) #jobsPage .service-call-clear-filters{align-self:end;min-height:42px;margin:0}
body:not(.landing-visible) #jobsPage .operations-list-caption{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:2px 1px 0}
body:not(.landing-visible) #jobsPage .operations-list-caption>div{display:flex;align-items:baseline;gap:8px;min-width:0}
body:not(.landing-visible) #jobsPage .operations-list-caption>div>strong{font-size:15px;color:#263646}
body:not(.landing-visible) #jobsPage .operations-list-caption>div>small{color:#71808a;font-size:11px;font-weight:800}
body:not(.landing-visible) #jobsPage .operations-list-caption>span{max-width:520px;color:#64748b;font-size:11px;line-height:1.35;text-align:right}
body:not(.landing-visible) #jobsPage .service-call-ops-card{display:block;padding:14px 16px;border-left-width:1px}
body:not(.landing-visible) #jobsPage .service-call-ops-card[data-priority="urgent"]{border-left:4px solid #b42318}
body:not(.landing-visible) #jobsPage .service-call-ops-card[data-priority="priority"]{border-left:4px solid #d97706}
body:not(.landing-visible) #jobsPage .service-call-ops-header{display:flex;justify-content:space-between;gap:14px}
body:not(.landing-visible) #jobsPage .service-call-customer-heading{display:flex;align-items:baseline;gap:8px;margin:0}
body:not(.landing-visible) #jobsPage .service-call-customer-heading .link-button{font-size:16px;font-weight:800;line-height:1.25}
body:not(.landing-visible) #jobsPage .service-call-tag-row{margin:0;max-width:52%}
body:not(.landing-visible) #jobsPage .service-call-card-summary strong{display:inline;color:#172033;font-weight:800}
body:not(.landing-visible) #jobsPage .service-call-next-step-panel{border-color:#c9d7dd;border-left:4px solid #78aaa4;background:linear-gradient(135deg,#f1f5f6,#eaf1f1);box-shadow:none}
body:not(.landing-visible) #jobsPage .service-call-next-step-panel.is-complete{border-left-color:#6aa57b}
body:not(.landing-visible) #jobsPage .service-call-ops-card .service-call-card-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;min-width:0;margin-top:10px;padding-top:10px;border-top:1px solid #dbe3e9}
body:not(.landing-visible) #jobsPage .service-call-ops-card .service-call-card-actions>.primary-action{width:100%}
body:not(.landing-visible) #jobsPage .service-call-ops-card .service-call-card-actions>.card-action-menu{justify-self:end}

@media(max-width:900px){
  body:not(.landing-visible) #jobsPage .operations-workspace-heading{display:grid;gap:10px}
  body:not(.landing-visible) #jobsPage .operations-workspace-heading .page-heading-actions{display:grid;grid-template-columns:auto auto minmax(0,1fr);width:100%}
  body:not(.landing-visible) #jobsPage .operations-workspace-heading .search-box{min-width:0;width:100%}
  body:not(.landing-visible) #jobsPage .recurring-context-strip{grid-template-columns:1fr 2fr}
  body:not(.landing-visible) #jobsPage .recurring-context-strip button{grid-column:1/-1;width:100%}
  body:not(.landing-visible) #jobsPage .service-call-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}
  body:not(.landing-visible) #jobsPage .service-call-clear-filters{width:100%}
}
@media(max-width:650px){
  body:not(.landing-visible) #jobsPage .operations-workspace-section{gap:10px}
  body:not(.landing-visible) #jobsPage .operations-workspace-heading .page-heading-actions{grid-template-columns:1fr 1fr}
  body:not(.landing-visible) #jobsPage .operations-workspace-heading .search-box{grid-column:1/-1}
  body:not(.landing-visible) #jobsPage .operations-status-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  body:not(.landing-visible) #jobsPage .operations-status-summary .work-status-filter{min-height:62px}
  body:not(.landing-visible) #jobsPage .recurring-context-strip{grid-template-columns:1fr}
  body:not(.landing-visible) #jobsPage .recurring-plan-summary{grid-template-columns:1fr 1fr}
  body:not(.landing-visible) #jobsPage .recurring-plan-summary>div:first-child{grid-column:1/-1}
  body:not(.landing-visible) #jobsPage .recurring-card-head,
  body:not(.landing-visible) #jobsPage .service-call-ops-header{display:grid;gap:8px}
  body:not(.landing-visible) #jobsPage .recurring-card-status-line,
  body:not(.landing-visible) #jobsPage .service-call-tag-row{justify-content:flex-start;max-width:none}
  body:not(.landing-visible) #jobsPage .recurring-visit-groups{grid-template-columns:1fr}
  body:not(.landing-visible) #jobsPage .service-call-toolbar{grid-template-columns:1fr}
  body:not(.landing-visible) #jobsPage .operations-list-caption{display:grid;gap:4px}
  body:not(.landing-visible) #jobsPage .operations-list-caption>div{flex-wrap:wrap}
  body:not(.landing-visible) #jobsPage .operations-list-caption>span{text-align:left}
  body:not(.landing-visible) #jobsPage .work-operations-card{padding:12px}
}

/* Build 127 FINAL — Workflow Cohesion Hotfix 20
   Operational Attention + Weather Rescheduling + final Work/Recurring/Service Call visual normalization. */
body:not(.landing-visible) #jobsPage{
  --operations-card-padding:14px 16px;
  --operations-card-radius:14px;
  --operations-card-border:#c8d3dc;
  --operations-card-bg:#fbfcfd;
  --operations-card-shadow:0 7px 20px rgba(15,23,42,.055);
  --operations-divider:#dbe3e9;
  --operations-strip-bg:#edf2f5;
  --operations-strip-border:#d5dfe6;
  --operations-control-height:42px;
}

/* All three Work workspaces use the same page shell and rhythm. */
body:not(.landing-visible) #jobsPage .leads-section,
body:not(.landing-visible) #jobsPage .recurring-list-section,
body:not(.landing-visible) #jobsPage .service-call-workspace-section{display:grid;gap:14px}
body:not(.landing-visible) #jobsPage .leads-heading,
body:not(.landing-visible) #jobsPage .operations-workspace-heading{min-height:58px;margin:0;padding:0 0 13px;border-bottom:1px solid var(--operations-divider);align-items:center}
body:not(.landing-visible) #jobsPage .leads-heading h2,
body:not(.landing-visible) #jobsPage .operations-workspace-heading h2{font-size:22px;line-height:1.15}
body:not(.landing-visible) #jobsPage .leads-heading .page-heading-actions,
body:not(.landing-visible) #jobsPage .operations-workspace-heading .page-heading-actions{align-items:center;gap:8px}
body:not(.landing-visible) #jobsPage .leads-heading .page-heading-actions>button,
body:not(.landing-visible) #jobsPage .operations-workspace-heading .page-heading-actions>button,
body:not(.landing-visible) #jobsPage .leads-heading .search-box,
body:not(.landing-visible) #jobsPage .operations-workspace-heading .search-box{min-height:var(--operations-control-height)}
body:not(.landing-visible) #jobsPage .leads-heading .search-box,
body:not(.landing-visible) #jobsPage .operations-workspace-heading .search-box{min-width:min(320px,36vw)}

/* Summary/status boxes share exact dimensions and typography across Work, Recurring, Service Calls. */
body:not(.landing-visible) #jobsPage .work-status-summary,
body:not(.landing-visible) #jobsPage .operations-status-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px;margin:0}
body:not(.landing-visible) #jobsPage .work-status-summary .work-status-filter,
body:not(.landing-visible) #jobsPage .operations-status-summary .work-status-filter{min-height:68px;padding:10px 12px;border:1px solid #cfd9e1;border-radius:12px;background:#f7f9fb;box-shadow:0 2px 7px rgba(15,23,42,.035);align-content:center}
body:not(.landing-visible) #jobsPage .work-status-summary .work-status-filter.is-active,
body:not(.landing-visible) #jobsPage .operations-status-summary .work-status-filter.is-active{border-color:var(--brand);background:var(--brand-soft);box-shadow:inset 0 0 0 1px var(--brand)}
body:not(.landing-visible) #jobsPage .work-status-summary .stat-label,
body:not(.landing-visible) #jobsPage .operations-status-summary .stat-label,
body:not(.landing-visible) #jobsPage .service-call-status-summary .service-call-view-button span{font-size:11px;line-height:1.15;font-weight:800;color:#64748b}
body:not(.landing-visible) #jobsPage .work-status-summary .stat-value,
body:not(.landing-visible) #jobsPage .operations-status-summary .stat-value,
body:not(.landing-visible) #jobsPage .service-call-status-summary .service-call-view-button strong{font-size:20px;line-height:1.1;color:#172033}

/* Canonical operations cards. Different task types keep semantic accents, not different layouts. */
body:not(.landing-visible) #jobsPage .lead-card,
body:not(.landing-visible) #jobsPage .recurring-service-card,
body:not(.landing-visible) #jobsPage .service-call-ops-card{margin:0;padding:var(--operations-card-padding);border:1px solid var(--operations-card-border);border-radius:var(--operations-card-radius);background:var(--operations-card-bg);box-shadow:var(--operations-card-shadow)}
body:not(.landing-visible) #jobsPage .lead-card:hover,
body:not(.landing-visible) #jobsPage .recurring-service-card:hover,
body:not(.landing-visible) #jobsPage .service-call-ops-card:hover{border-color:#aab8c4}
body:not(.landing-visible) #jobsPage .lead-card-header,
body:not(.landing-visible) #jobsPage .recurring-card-head,
body:not(.landing-visible) #jobsPage .service-call-ops-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;min-height:48px;padding-bottom:10px;border-bottom:1px solid var(--operations-divider)}
body:not(.landing-visible) #jobsPage .lead-card-header h3,
body:not(.landing-visible) #jobsPage .recurring-card-head h3,
body:not(.landing-visible) #jobsPage .service-call-customer-heading .link-button{margin:0;font-size:16px;line-height:1.25;font-weight:800;color:#172033}
body:not(.landing-visible) #jobsPage .lead-property-line,
body:not(.landing-visible) #jobsPage .recurring-card-head .lead-property-line,
body:not(.landing-visible) #jobsPage .service-call-ops-header .lead-property-line{margin:3px 0 0;color:#5f6f7f;font-size:12px;line-height:1.35}
body:not(.landing-visible) #jobsPage .lead-card-summary,
body:not(.landing-visible) #jobsPage .recurring-card-summary,
body:not(.landing-visible) #jobsPage .service-call-card-summary{min-height:20px;margin:10px 0 0;color:#334155;font-size:13px;line-height:1.45}
body:not(.landing-visible) #jobsPage .job-next-step-panel,
body:not(.landing-visible) #jobsPage .recurring-next-step-panel,
body:not(.landing-visible) #jobsPage .service-call-next-step-panel{min-height:72px;margin:10px 0 0;padding:11px 13px;border:1px solid #c9d7dd;border-left:4px solid #78aaa4;border-radius:12px;background:linear-gradient(135deg,#f1f5f6,#eaf1f1);box-shadow:none}
body:not(.landing-visible) #jobsPage .lead-card-actions,
body:not(.landing-visible) #jobsPage .recurring-card-actions,
body:not(.landing-visible) #jobsPage .service-call-ops-card .service-call-card-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;min-height:52px;margin-top:10px;padding-top:10px;border-top:1px solid var(--operations-divider)}
body:not(.landing-visible) #jobsPage .lead-card-actions>.primary-action,
body:not(.landing-visible) #jobsPage .recurring-card-actions>.primary-action,
body:not(.landing-visible) #jobsPage .service-call-ops-card .service-call-card-actions>.primary-action{width:100%;min-height:42px}
body:not(.landing-visible) #jobsPage .lead-card-actions>.card-action-menu,
body:not(.landing-visible) #jobsPage .recurring-card-actions>.card-action-menu,
body:not(.landing-visible) #jobsPage .service-call-ops-card .service-call-card-actions>.card-action-menu{justify-self:end}
body:not(.landing-visible) #jobsPage .work-card-status-group,
body:not(.landing-visible) #jobsPage .recurring-card-status-line,
body:not(.landing-visible) #jobsPage .service-call-tag-row{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;max-width:54%}
body:not(.landing-visible) #jobsPage .work-card-status-group .status-badge,
body:not(.landing-visible) #jobsPage .recurring-card-status-line .status-badge,
body:not(.landing-visible) #jobsPage .service-call-tag-row .status-badge,
body:not(.landing-visible) #jobsPage .service-call-tag-row .service-call-tag{min-height:24px;padding:3px 8px;border:1px solid #c7d2dc;border-radius:999px;display:inline-flex;align-items:center;font-size:10px;font-weight:900;line-height:1.15;box-shadow:0 1px 2px rgba(15,23,42,.04)}
body:not(.landing-visible) #jobsPage .operations-attention-pill{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border:1px solid #edc8a8;border-radius:999px;background:#fff4e8;color:#8a4b16;font-size:10px;font-weight:900;line-height:1.15;white-space:nowrap}

/* Recurring supporting details now use the same compact strip and details treatment as the other workspaces. */
body:not(.landing-visible) #jobsPage .recurring-context-strip,
body:not(.landing-visible) #jobsPage .service-call-toolbar{padding:10px;border:1px solid var(--operations-strip-border);border-radius:12px;background:var(--operations-strip-bg);box-shadow:none}
body:not(.landing-visible) #jobsPage .recurring-plan-summary{margin-top:10px;padding:8px;border:1px solid var(--operations-strip-border);border-radius:12px;background:var(--operations-strip-bg)}
body:not(.landing-visible) #jobsPage .recurring-plan-summary>div{min-height:56px;padding:9px 10px;border:1px solid #d5dee6;border-radius:9px;background:#fff}
body:not(.landing-visible) #jobsPage .recurring-plan-more{margin-top:10px;border:1px solid #d4dee6;border-radius:12px;background:#f4f7f9}
body:not(.landing-visible) #jobsPage .recurring-plan-more>summary{min-height:40px;padding:10px 12px;background:#eaf0f3;color:#334155}

/* Schedule-level operational attention uses the same card vocabulary instead of another dashboard system. */
body:not(.landing-visible) #schedulePage .operational-attention-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:8px;margin:0 0 12px}
body:not(.landing-visible) #schedulePage .operational-attention-strip[hidden]{display:none}
body:not(.landing-visible) #schedulePage .operational-attention-item{display:grid;grid-template-columns:1fr auto;grid-template-areas:"label count" "detail count";gap:2px 12px;align-items:center;min-height:66px;padding:10px 12px;border:1px solid #edc8a8;border-radius:12px;background:#fff8ef;color:#334155;text-align:left;box-shadow:0 2px 7px rgba(15,23,42,.035)}
body:not(.landing-visible) #schedulePage .operational-attention-item:hover{border-color:#d99c66;background:#fff4e8}
body:not(.landing-visible) #schedulePage .operational-attention-item>span{grid-area:label;font-size:11px;font-weight:900;letter-spacing:.03em;text-transform:uppercase;color:#8a4b16}
body:not(.landing-visible) #schedulePage .operational-attention-item>strong{grid-area:count;font-size:24px;line-height:1;color:#7c3f10}
body:not(.landing-visible) #schedulePage .operational-attention-item>small{grid-area:detail;font-size:11px;font-weight:700;color:#64748b}

/* Weather / Move Day review. */
.weather-reschedule-modal{width:min(760px,calc(100vw - 28px));max-height:min(88vh,860px);overflow:auto}
.weather-reschedule-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0;padding:8px;border:1px solid #d5dfe6;border-radius:12px;background:#edf2f5}
.weather-reschedule-summary>div{display:grid;gap:3px;min-height:56px;padding:9px 10px;border:1px solid #d5dee6;border-radius:9px;background:#fff}
.weather-reschedule-summary span{font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:#64748b}
.weather-reschedule-summary strong{font-size:14px;color:#263646}
.weather-reschedule-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.weather-reschedule-controls .full-width{grid-column:1/-1}
.weather-reschedule-list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 8px;padding-top:12px;border-top:1px solid #dbe3e9}
.weather-reschedule-list-heading>div{display:grid;gap:2px}
.weather-reschedule-list-heading strong{font-size:14px;color:#263646}
.weather-reschedule-list-heading span{font-size:11px;color:#64748b}
.weather-reschedule-list{display:grid;gap:8px;max-height:320px;overflow:auto;padding:1px}
.weather-reschedule-item{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 12px;border:1px solid #cfd9e1;border-radius:12px;background:#fbfcfd;cursor:pointer}
.weather-reschedule-item:hover{border-color:#aab8c4}
.weather-reschedule-item.is-selected{border-color:#78aaa4;background:#f1f7f6;box-shadow:inset 0 0 0 1px #b9d7d3}
.weather-reschedule-item>input{position:absolute;opacity:0;pointer-events:none}
.weather-reschedule-check{display:grid;place-items:center;width:24px;height:24px;border:1px solid #b9c7d1;border-radius:7px;background:#fff;color:transparent;font-size:13px;font-weight:900}
.weather-reschedule-item.is-selected .weather-reschedule-check{border-color:var(--brand);background:var(--brand);color:#fff}
.weather-reschedule-item-copy{display:grid;gap:2px;min-width:0}
.weather-reschedule-item-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;color:#172033}
.weather-reschedule-item-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#334155}
.weather-reschedule-item-copy small{font-size:10px;font-weight:700;color:#64748b}
.weather-reschedule-safety{margin-top:12px}
.weather-reschedule-progress{margin-top:10px;padding:9px 11px;border:1px solid #b9d7d3;border-radius:10px;background:#f1f7f6;color:#315b57;font-size:12px;font-weight:800}

@media(max-width:900px){
  body:not(.landing-visible) #jobsPage .leads-heading,
  body:not(.landing-visible) #jobsPage .operations-workspace-heading{display:grid;gap:10px}
  body:not(.landing-visible) #jobsPage .leads-heading .page-heading-actions,
  body:not(.landing-visible) #jobsPage .operations-workspace-heading .page-heading-actions{display:grid;grid-template-columns:auto auto minmax(0,1fr);width:100%}
  body:not(.landing-visible) #jobsPage .leads-heading .search-box,
  body:not(.landing-visible) #jobsPage .operations-workspace-heading .search-box{min-width:0;width:100%}
}
@media(max-width:650px){
  body:not(.landing-visible) #jobsPage{--operations-card-padding:12px}
  body:not(.landing-visible) #jobsPage .leads-section,
  body:not(.landing-visible) #jobsPage .recurring-list-section,
  body:not(.landing-visible) #jobsPage .service-call-workspace-section{gap:10px}
  body:not(.landing-visible) #jobsPage .leads-heading .page-heading-actions,
  body:not(.landing-visible) #jobsPage .operations-workspace-heading .page-heading-actions{grid-template-columns:1fr 1fr}
  body:not(.landing-visible) #jobsPage .leads-heading .search-box,
  body:not(.landing-visible) #jobsPage .operations-workspace-heading .search-box{grid-column:1/-1}
  body:not(.landing-visible) #jobsPage .work-status-summary,
  body:not(.landing-visible) #jobsPage .operations-status-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  body:not(.landing-visible) #jobsPage .work-status-summary .work-status-filter,
  body:not(.landing-visible) #jobsPage .operations-status-summary .work-status-filter{min-height:62px}
  body:not(.landing-visible) #jobsPage .lead-card-header,
  body:not(.landing-visible) #jobsPage .recurring-card-head,
  body:not(.landing-visible) #jobsPage .service-call-ops-header{display:grid;gap:8px;min-height:0}
  body:not(.landing-visible) #jobsPage .work-card-status-group,
  body:not(.landing-visible) #jobsPage .recurring-card-status-line,
  body:not(.landing-visible) #jobsPage .service-call-tag-row{justify-content:flex-start;max-width:none}
  body:not(.landing-visible) #jobsPage .job-next-step-panel,
  body:not(.landing-visible) #jobsPage .recurring-next-step-panel,
  body:not(.landing-visible) #jobsPage .service-call-next-step-panel{min-height:0}
  .weather-reschedule-summary{grid-template-columns:1fr 1fr}
  .weather-reschedule-controls{grid-template-columns:1fr}
  .weather-reschedule-controls .full-width{grid-column:auto}
  .weather-reschedule-item{grid-template-columns:auto auto minmax(0,1fr)}
  .weather-reschedule-item>.status-badge{grid-column:3;justify-self:start}
}

/* Build 127 FINAL — Workflow Cohesion Hotfix 22
   Sitewide Polish + Congruency
   Visual-only release. Work List is the canonical dashboard surface language. */
body:not(.landing-visible){
  --site-card-padding:16px 18px;
  --site-card-padding-compact:14px 16px;
  --site-card-radius:14px;
  --site-control-radius:10px;
  --site-control-height:42px;
  --site-card-border:#c8d3dc;
  --site-soft-border:#d7e0e7;
  --site-divider:#dbe3e9;
  --site-card-bg:#fbfcfd;
  --site-strip-bg:#edf2f5;
  --site-card-shadow:0 7px 20px rgba(15,23,42,.055);
  --site-soft-shadow:0 2px 7px rgba(15,23,42,.035);
  --site-muted:#64748b;
  --site-heading:#172033;
}

/* Shared page rhythm and surfaces. */
body:not(.landing-visible) .dashboard-page{min-width:0}
body:not(.landing-visible) .dashboard-page>.dashboard-section,
body:not(.landing-visible) .dashboard-page>.lead-form-card,
body:not(.landing-visible) #teamPage>.access-card{
  margin-bottom:14px;
  border-color:var(--site-card-border);
  border-radius:var(--site-card-radius);
  box-shadow:var(--site-card-shadow);
}
body:not(.landing-visible) .dashboard-page>.dashboard-section{padding:var(--site-card-padding)}
body:not(.landing-visible) .dashboard-page>.page-intro-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  min-height:88px;
  background:linear-gradient(135deg,#fff 0%,#f7f9fb 100%);
}
body:not(.landing-visible) .dashboard-page>.page-intro-card>div:first-child{min-width:0}
body:not(.landing-visible) .dashboard-page>.page-intro-card .page-subtitle{max-width:760px}
body:not(.landing-visible) .dashboard-page .section-heading{gap:14px}
body:not(.landing-visible) .dashboard-page .section-heading h2,
body:not(.landing-visible) .dashboard-page>.page-intro-card h2{font-size:22px;line-height:1.18;letter-spacing:-.015em}
body:not(.landing-visible) .dashboard-page .section-heading h3{font-size:16px;line-height:1.25}
body:not(.landing-visible) .dashboard-page .section-kicker{margin-bottom:3px;font-size:11px;line-height:1.2;letter-spacing:.075em}
body:not(.landing-visible) .dashboard-page .page-subtitle,
body:not(.landing-visible) .dashboard-page .section-help{color:var(--site-muted);font-size:13px;line-height:1.45}
body:not(.landing-visible) .dashboard-page .page-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}

/* Controls: same height, radius, border, and focus language throughout dashboard pages. */
body:not(.landing-visible) .dashboard-page .field>span{color:#334155;font-size:12px;font-weight:800;line-height:1.3}
body:not(.landing-visible) .dashboard-page .field-note{color:var(--site-muted);font-size:11px;line-height:1.4}
body:not(.landing-visible) .dashboard-page .field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
body:not(.landing-visible) .dashboard-page .field select,
body:not(.landing-visible) .dashboard-page .search-box{
  min-height:var(--site-control-height);
  padding:9px 11px;
  border:1px solid #cbd6df;
  border-radius:var(--site-control-radius);
  background:#fff;
  box-shadow:none;
}
body:not(.landing-visible) .dashboard-page .field textarea{
  min-height:104px;
  padding:10px 11px;
  border:1px solid #cbd6df;
  border-radius:var(--site-control-radius);
  background:#fff;
  box-shadow:none;
}
body:not(.landing-visible) .dashboard-page .field input:focus,
body:not(.landing-visible) .dashboard-page .field select:focus,
body:not(.landing-visible) .dashboard-page .field textarea:focus,
body:not(.landing-visible) .dashboard-page .search-box:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--ring)}
body:not(.landing-visible) .dashboard-page button:not(.link-button):not(.text-button):not(.work-status-filter):not(.service-call-view-button):not(.work-workspace-tab):not(.filter-button):not(.material-category-filter):not(.view-button){min-height:var(--site-control-height);border-radius:var(--site-control-radius);padding:9px 13px}
body:not(.landing-visible) .dashboard-page .compact-button{min-height:36px!important;padding:7px 10px!important}
body:not(.landing-visible) .dashboard-page .secondary-button,
body:not(.landing-visible) .dashboard-page .ghost-button{border:1px solid #cbd6df;box-shadow:none}
body:not(.landing-visible) .dashboard-page .secondary-button{background:#edf2f5;color:#243447}
body:not(.landing-visible) .dashboard-page .secondary-button:hover{border-color:#b6c4cf;background:#e3eaf0}
body:not(.landing-visible) .dashboard-page .ghost-button{background:#fff;color:#334155}
body:not(.landing-visible) .dashboard-page .ghost-button:hover{border-color:#b6c4cf;background:#f5f8fa}
body:not(.landing-visible) .dashboard-page .page-help-button{min-width:64px}

/* Shared filters and segmented controls. */
body:not(.landing-visible) .dashboard-page .filter-bar,
body:not(.landing-visible) .dashboard-page .estimate-filter-bar,
body:not(.landing-visible) .dashboard-page .invoice-filter-bar{gap:7px;margin-bottom:12px}
body:not(.landing-visible) .dashboard-page .filter-button,
body:not(.landing-visible) .dashboard-page .view-button,
body:not(.landing-visible) .dashboard-page .material-category-filter{
  min-height:38px;
  padding:7px 11px;
  border:1px solid #cbd6df;
  border-radius:10px;
  background:#fff;
  color:#526273;
  box-shadow:none;
  font-size:12px;
  font-weight:800;
}
body:not(.landing-visible) .dashboard-page .filter-button:hover,
body:not(.landing-visible) .dashboard-page .filter-button.is-active,
body:not(.landing-visible) .dashboard-page .view-button:hover,
body:not(.landing-visible) .dashboard-page .view-button.is-active,
body:not(.landing-visible) .dashboard-page .material-category-filter:hover,
body:not(.landing-visible) .dashboard-page .material-category-filter.is-active{
  border-color:#9fc9c7;
  background:#eef8f7;
  color:#0f766e;
}

/* Metric cards use one compact density. */
body:not(.landing-visible) .dashboard-page .stat-card,
body:not(.landing-visible) .dashboard-page .time-clock-summary-card,
body:not(.landing-visible) #customersPage .customer-overview-metric{
  min-height:70px;
  padding:11px 13px;
  border:1px solid #cfd9e1;
  border-radius:12px;
  background:#f7f9fb;
  box-shadow:var(--site-soft-shadow);
}
body:not(.landing-visible) .dashboard-page .stat-label,
body:not(.landing-visible) .dashboard-page .time-clock-summary-card span,
body:not(.landing-visible) #customersPage .customer-overview-metric span{color:#5f6f7f;font-size:11px;font-weight:850;line-height:1.2}
body:not(.landing-visible) .dashboard-page .stat-value,
body:not(.landing-visible) .dashboard-page .time-clock-summary-card strong,
body:not(.landing-visible) #customersPage .customer-overview-metric strong{color:var(--site-heading);font-size:21px;line-height:1.1}

/* Shared list/card surfaces outside Work now match the Work List visual weight. */
body:not(.landing-visible) #customersPage .customer-account-card,
body:not(.landing-visible) #estimatesPage .estimate-card,
body:not(.landing-visible) #invoicesPage .invoice-card,
body:not(.landing-visible) #materialsPage .material-card,
body:not(.landing-visible) #profitPage .profit-job-row,
body:not(.landing-visible) #profitPage .profit-service-call-row,
body:not(.landing-visible) #historyPage .history-event,
body:not(.landing-visible) #billingPage .billing-plan-card,
body:not(.landing-visible) #billingPage .billing-addon-card,
body:not(.landing-visible) #billingPage .billing-file-row,
body:not(.landing-visible) #timeClockPage .time-clock-entry-card,
body:not(.landing-visible) #timeClockPage .time-clock-team-row,
body:not(.landing-visible) #timeClockPage .time-clock-audit-row,
body:not(.landing-visible) #photosPage .job-photo-gallery-card,
body:not(.landing-visible) #helpPage .tutorial-card{
  border:1px solid var(--site-card-border);
  border-radius:var(--site-card-radius);
  background:var(--site-card-bg);
  box-shadow:var(--site-card-shadow);
}
body:not(.landing-visible) #customersPage .customer-account-card,
body:not(.landing-visible) #estimatesPage .estimate-card,
body:not(.landing-visible) #invoicesPage .invoice-card,
body:not(.landing-visible) #materialsPage .material-card{padding:var(--site-card-padding-compact)}
body:not(.landing-visible) #customersPage .customer-account-card:hover,
body:not(.landing-visible) #estimatesPage .estimate-card:hover,
body:not(.landing-visible) #invoicesPage .invoice-card:hover,
body:not(.landing-visible) #materialsPage .material-card:hover{border-color:#aab8c4}

/* Status chips and small badges share size/typography while retaining semantic colors. */
body:not(.landing-visible) .dashboard-page .status-badge,
body:not(.landing-visible) .dashboard-page .estimate-status,
body:not(.landing-visible) .dashboard-page .invoice-status,
body:not(.landing-visible) .dashboard-page .history-badge,
body:not(.landing-visible) .dashboard-page .profit-stage-pill,
body:not(.landing-visible) .dashboard-page .customer-summary-badge,
body:not(.landing-visible) .dashboard-page .archived-badge,
body:not(.landing-visible) .dashboard-page .job-photo-stage-badge{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:3px 8px;
  border-radius:999px;
  font-size:10px;
  font-weight:900;
  line-height:1.15;
  letter-spacing:.01em;
}

/* Customer, document, Price Book, and Photos toolbars use the same restrained support-strip treatment. */
body:not(.landing-visible) #customersPage .customer-operations-overview,
body:not(.landing-visible) #estimatesPage .estimate-tools,
body:not(.landing-visible) #invoicesPage .invoice-tools,
body:not(.landing-visible) #materialsPage .material-tools,
body:not(.landing-visible) #photosPage .job-photo-toolbar,
body:not(.landing-visible) #historyPage .history-filter-card,
body:not(.landing-visible) #profitPage .profit-filter-card,
body:not(.landing-visible) #timeClockPage .time-clock-report-filters{
  border:1px solid #d5dfe6;
  border-radius:12px;
  background:var(--site-strip-bg);
  box-shadow:none;
}
body:not(.landing-visible) #customersPage .customer-operations-overview{padding:8px}
body:not(.landing-visible) #estimatesPage .estimate-tools,
body:not(.landing-visible) #invoicesPage .invoice-tools{margin-top:12px;padding:10px}
body:not(.landing-visible) #materialsPage .material-tools{padding:9px 10px}
body:not(.landing-visible) #photosPage .job-photo-toolbar{padding:10px;margin-bottom:14px}
body:not(.landing-visible) #historyPage .history-filter-card,
body:not(.landing-visible) #profitPage .profit-filter-card{padding:14px}
body:not(.landing-visible) #timeClockPage .time-clock-report-filters{padding:10px}

/* Details/disclosures read like the same secondary layer across pages. */
body:not(.landing-visible) .dashboard-page details:not(.card-action-menu):not(.inline-action-menu):not(.page-filter-more):not(.customer-more-menu)>summary{
  color:#334155;
}
body:not(.landing-visible) #customersPage .customer-account-details,
body:not(.landing-visible) #materialsPage .price-book-tools-drawer,
body:not(.landing-visible) .dashboard-page .cohesion-collapse{
  border:1px solid #d4dee6;
  border-radius:12px;
  background:#f4f7f9;
  box-shadow:none;
}
body:not(.landing-visible) #customersPage .customer-account-details>summary,
body:not(.landing-visible) #materialsPage .price-book-tools-drawer>summary,
body:not(.landing-visible) .dashboard-page .cohesion-collapse>summary{min-height:42px;padding:10px 12px}

/* Empty/loading states no longer look like a separate design system. */
body:not(.landing-visible) .dashboard-page .empty-state,
body:not(.landing-visible) .dashboard-page .time-clock-empty-note,
body:not(.landing-visible) .dashboard-page .ask-osrilo-empty{
  padding:22px 18px;
  border:1px dashed #bdc9d3;
  border-radius:12px;
  background:#f8fafb;
  color:#64748b;
  box-shadow:none;
}

/* Documents. */
body:not(.landing-visible) #estimatesPage .estimate-section-heading,
body:not(.landing-visible) #invoicesPage .invoice-section-heading{margin-bottom:0;padding-bottom:12px;border-bottom:1px solid var(--site-divider)}
body:not(.landing-visible) #estimatesPage .estimate-list,
body:not(.landing-visible) #invoicesPage .invoice-list{gap:10px}
body:not(.landing-visible) #estimatesPage .estimate-card-actions,
body:not(.landing-visible) #invoicesPage .invoice-card-actions{margin-top:10px;padding-top:10px;border-top:1px solid var(--site-divider)}

/* Customers. */
body:not(.landing-visible) #customersPage .customer-list{display:grid;gap:10px}
body:not(.landing-visible) #customersPage .customer-card-header{padding-bottom:10px;border-bottom:1px solid var(--site-divider)}
body:not(.landing-visible) #customersPage .customer-address{margin:9px 0 0;color:#5f6f7f;font-size:12px}
body:not(.landing-visible) #customersPage .customer-operations-strip{gap:8px;margin:10px 0}
body:not(.landing-visible) #customersPage .customer-operations-strip>button{min-height:64px;border-color:#d4dee6;border-radius:10px;background:#fff}
body:not(.landing-visible) #customersPage .customer-card-actions{margin-top:10px;padding-top:10px;border-top:1px solid var(--site-divider)}

/* Price Book. */
body:not(.landing-visible) #materialsPage .price-book-section{padding:var(--site-card-padding)}
body:not(.landing-visible) #materialsPage .price-book-page-heading{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--site-divider)}
body:not(.landing-visible) #materialsPage .price-book-start-here{margin:0 0 12px;padding:14px;border:1px solid #d5dfe6;border-radius:12px;background:#f3f7f8;box-shadow:none}
body:not(.landing-visible) #materialsPage .material-list{gap:10px}
body:not(.landing-visible) #materialsPage .material-card-actions{margin-top:10px;padding-top:10px;border-top:1px solid var(--site-divider)}

/* Payments, Profit, Billing, History, Account: align outer surface density without changing their domain-specific content. */
body:not(.landing-visible) #paymentsPage .stripe-payments-hero,
body:not(.landing-visible) #billingPage .billing-hero,
body:not(.landing-visible) #timeClockPage .time-clock-hero{border-color:var(--site-card-border);border-radius:var(--site-card-radius);box-shadow:var(--site-card-shadow)}
body:not(.landing-visible) #paymentsPage .stripe-payments-account-card,
body:not(.landing-visible) #paymentsPage .stripe-payment-flow>div,
body:not(.landing-visible) #paymentsPage .stripe-payment-policy-list,
body:not(.landing-visible) #profitPage .profit-highlight,
body:not(.landing-visible) #profitPage .profit-breakdown-card,
body:not(.landing-visible) #billingPage .billing-storage-usage-card,
body:not(.landing-visible) #accountSettingsPage .account-settings-card,
body:not(.landing-visible) #accountSettingsPage .push-device-card{
  border-color:#d4dee6;
  border-radius:12px;
  box-shadow:none;
}
body:not(.landing-visible) #billingPage .billing-plan-grid,
body:not(.landing-visible) #billingPage .billing-addon-grid,
body:not(.landing-visible) #profitPage .profit-job-list,
body:not(.landing-visible) #historyPage .business-history-list{gap:10px}
body:not(.landing-visible) #historyPage .history-list-heading{padding-bottom:12px;border-bottom:1px solid var(--site-divider)}
body:not(.landing-visible) #accountSettingsPage .account-settings-layout{gap:14px}
body:not(.landing-visible) #accountSettingsPage .account-settings-card .section-heading{margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--site-divider)}
body:not(.landing-visible) #accountSettingsPage .account-settings-actions{margin-top:12px;padding-top:10px;border-top:1px solid var(--site-divider)}

/* Time Clock and Help. */
body:not(.landing-visible) #timeClockPage .time-clock-one-tap,
body:not(.landing-visible) #timeClockPage .time-clock-suggestions,
body:not(.landing-visible) #timeClockPage .time-clock-admin-layout{border-color:var(--site-card-border)}
body:not(.landing-visible) #timeClockPage .time-clock-live-card{border-radius:12px;box-shadow:none}
body:not(.landing-visible) #timeClockPage .time-clock-entry-card,
body:not(.landing-visible) #timeClockPage .time-clock-team-row,
body:not(.landing-visible) #timeClockPage .time-clock-audit-row{padding:12px 13px}
body:not(.landing-visible) #helpPage .help-intro-section,
body:not(.landing-visible) #helpPage .ask-osrilo-section{border-color:var(--site-card-border);border-radius:var(--site-card-radius);box-shadow:var(--site-card-shadow)}
body:not(.landing-visible) #helpPage .tutorial-library{gap:14px}
body:not(.landing-visible) #helpPage .tutorial-group{gap:10px}
body:not(.landing-visible) #helpPage .tutorial-card{padding:13px}

/* Photos. */
body:not(.landing-visible) #photosPage .job-photo-gallery{gap:10px}
body:not(.landing-visible) #photosPage .job-photo-gallery-card{overflow:hidden}
body:not(.landing-visible) #photosPage .job-photo-gallery-copy{padding:12px}

/* Tables and report wrappers. */
body:not(.landing-visible) .dashboard-page .time-clock-report-table-wrap,
body:not(.landing-visible) .dashboard-page .table-wrap{
  overflow:auto;
  border:1px solid #d4dee6;
  border-radius:12px;
  background:#fff;
}
body:not(.landing-visible) .dashboard-page table{border-collapse:separate;border-spacing:0}
body:not(.landing-visible) .dashboard-page table th{background:#eef3f6;color:#526273;font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
body:not(.landing-visible) .dashboard-page table td{border-color:#e2e8ee}

/* Modal/detail consistency. Modals sit outside dashboard-page in the DOM, so scope from the app body. */
body:not(.landing-visible) .modal{
  border:1px solid #cbd6df;
  border-radius:16px;
  background:#fff;
  box-shadow:0 24px 70px rgba(15,23,42,.26);
}
body:not(.landing-visible) .details-modal-header{padding-bottom:12px;border-bottom:1px solid var(--site-divider)}
body:not(.landing-visible) .modal-actions{padding-top:12px;border-top:1px solid var(--site-divider)}
body:not(.landing-visible) .details-item{border-color:#d9e2e8;border-radius:10px;background:#f8fafb}

@media(max-width:820px){
  body:not(.landing-visible){--site-card-padding:14px;--site-card-padding-compact:12px 13px;--site-control-height:44px}
  body:not(.landing-visible) .dashboard-page>.dashboard-section,
  body:not(.landing-visible) .dashboard-page>.lead-form-card,
  body:not(.landing-visible) #teamPage>.access-card{margin-bottom:10px;border-radius:13px}
  body:not(.landing-visible) .dashboard-page>.page-intro-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;min-height:0;gap:10px;padding:13px 14px}
  body:not(.landing-visible) .dashboard-page>.page-intro-card .page-heading-actions{align-self:center}
  body:not(.landing-visible) .dashboard-page .section-heading h2,
  body:not(.landing-visible) .dashboard-page>.page-intro-card h2{font-size:20px}
  body:not(.landing-visible) .dashboard-page .page-subtitle{font-size:12px}
  body:not(.landing-visible) #estimatesPage .estimate-tools,
  body:not(.landing-visible) #invoicesPage .invoice-tools,
  body:not(.landing-visible) #photosPage .job-photo-toolbar{padding:9px}
}

@media(max-width:650px){
  body:not(.landing-visible){--site-card-padding:12px;--site-card-padding-compact:11px 12px}
  body:not(.landing-visible) .dashboard-page>.page-intro-card{grid-template-columns:1fr;padding:12px}
  body:not(.landing-visible) .dashboard-page>.page-intro-card .page-heading-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;justify-content:stretch}
  body:not(.landing-visible) .dashboard-page>.page-intro-card .page-heading-actions>button{width:100%;min-width:0}
  body:not(.landing-visible) .dashboard-page .section-heading{gap:8px}
  body:not(.landing-visible) .dashboard-page .section-heading h2,
  body:not(.landing-visible) .dashboard-page>.page-intro-card h2{font-size:19px}
  body:not(.landing-visible) .dashboard-page .page-subtitle,
  body:not(.landing-visible) .dashboard-page .section-help{font-size:11px;line-height:1.4}
  body:not(.landing-visible) .dashboard-page .field>span{font-size:11px}
  body:not(.landing-visible) .dashboard-page .field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
  body:not(.landing-visible) .dashboard-page .field select,
  body:not(.landing-visible) .dashboard-page .search-box{font-size:16px}
  body:not(.landing-visible) .dashboard-page .stat-card,
  body:not(.landing-visible) .dashboard-page .time-clock-summary-card,
  body:not(.landing-visible) #customersPage .customer-overview-metric{min-height:62px;padding:9px 10px}
  body:not(.landing-visible) #customersPage .customer-operations-strip>button{min-height:56px!important}
  body:not(.landing-visible) #customersPage .customer-card-header,
  body:not(.landing-visible) #estimatesPage .estimate-card-heading,
  body:not(.landing-visible) #invoicesPage .invoice-card-heading,
  body:not(.landing-visible) #materialsPage .material-card-title-row{gap:7px}
  body:not(.landing-visible) .modal{border-radius:16px 16px 0 0}
}

/* Build 128 RC1 — approved consolidation polish only. */
body:not(.landing-visible) #customersPage .customer-account-details>summary{padding:10px 12px;transition:background-color .15s ease,border-color .15s ease}
body:not(.landing-visible) #customersPage .customer-account-details>summary:hover{background:#eef5f6}
body:not(.landing-visible) #customersPage .customer-account-details[open]>summary{background:#edf7f6;color:#174f4c}
body:not(.landing-visible) #customersPage .customer-details-summary-meta{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}
body:not(.landing-visible) #customersPage .customer-details-toggle{display:inline-flex;align-items:center;gap:5px;color:#176d69;font-size:11px;font-weight:850;white-space:nowrap}
body:not(.landing-visible) #customersPage .customer-details-hide{display:none}
body:not(.landing-visible) #customersPage .customer-account-details[open] .customer-details-show{display:none}
body:not(.landing-visible) #customersPage .customer-account-details[open] .customer-details-hide{display:inline}
body:not(.landing-visible) #customersPage .customer-details-chevron{display:inline-block;font-size:16px;line-height:1;transition:transform .15s ease}
body:not(.landing-visible) #customersPage .customer-account-details[open] .customer-details-chevron{transform:rotate(180deg)}
body:not(.landing-visible) #profitPage .profit-payment-breakdown{margin-top:12px;padding-top:12px;border-top:1px solid var(--site-divider)}
body:not(.landing-visible) #profitPage .profit-payment-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:8px}
body:not(.landing-visible) #profitPage .profit-payment-heading>div{display:grid;gap:2px}
body:not(.landing-visible) #profitPage .profit-payment-heading strong{font-size:13px;color:#1f2937}
body:not(.landing-visible) #profitPage .profit-payment-heading small,body:not(.landing-visible) #profitPage .profit-payment-note{font-size:10px;color:#64748b}
body:not(.landing-visible) #profitPage .profit-payment-heading>span{font-size:11px;font-weight:800;color:#475569;white-space:nowrap}
body:not(.landing-visible) #profitPage .profit-payment-method-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
body:not(.landing-visible) #profitPage .profit-payment-method-grid article{display:grid;gap:3px;min-width:0;padding:10px 11px;border:1px solid #d5dfe6;border-radius:11px;background:#fff}
body:not(.landing-visible) #profitPage .profit-payment-method-grid article>span{font-size:10px;font-weight:850;color:#566674}
body:not(.landing-visible) #profitPage .profit-payment-method-grid article>strong{font-size:17px;line-height:1.1;color:#172126}
body:not(.landing-visible) #profitPage .profit-payment-method-grid article>small{font-size:9px;color:#7a8790}
body:not(.landing-visible) #profitPage .profit-payment-empty{grid-column:1/-1;margin:0;padding:8px 0;color:#64748b;font-size:11px}
body:not(.landing-visible) #profitPage .profit-payment-note{display:block;margin-top:7px}
@media(max-width:1000px){body:not(.landing-visible) #profitPage .profit-payment-method-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){body:not(.landing-visible) #customersPage .customer-details-summary-meta>small{display:none}body:not(.landing-visible) #profitPage .profit-payment-heading{align-items:flex-start;flex-direction:column}body:not(.landing-visible) #profitPage .profit-payment-method-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}



/* Build 128 RC1.2 — Quick Add lifecycle authority + read-only Work status. */
body:not(.landing-visible) #jobsPage .work-status-readonly{align-self:stretch}
body:not(.landing-visible) #jobsPage .work-status-readonly-card{display:grid;gap:4px;min-height:var(--site-control-height);padding:11px 13px;border:1px solid #cfdbe3;border-radius:11px;background:#f4f8fa}
body:not(.landing-visible) #jobsPage .work-status-readonly-card strong{font-size:15px;line-height:1.25;color:#162238}
body:not(.landing-visible) #jobsPage .work-status-readonly-card small{font-size:10px;line-height:1.35;color:#60728a}

/* Build 128 RC1.3 — focused mobile UI and interaction hotfix. */

/* Overlay scroll ownership: the visible panel owns touch/momentum scrolling. */
body.osrilo-overlay-scroll-locked{overscroll-behavior:none}
body:not(.landing-visible) .modal-backdrop:not([hidden]),
body:not(.landing-visible) .mobile-sheet-backdrop:not([hidden]){overscroll-behavior:none;touch-action:none}
body:not(.landing-visible) .modal-backdrop:not([hidden])>.modal,
body:not(.landing-visible) .mobile-sheet-backdrop:not([hidden])>.mobile-sheet,
body:not(.landing-visible) #notificationPanel:not([hidden]),
body:not(.landing-visible) #accountMenuPanel:not([hidden]),
body:not(.landing-visible) .card-action-popover,
body:not(.landing-visible) .customer-more-popover,
body:not(.landing-visible) .inline-action-menu>div,
body:not(.landing-visible) .page-filter-more>div,
body:not(.landing-visible) .price-book-quick-edit-grid,
body:not(.landing-visible) .recurring-card-more>div{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}

/* Work Details always stays inside the iOS visual safe area. */
@media(max-width:820px){
  body:not(.landing-visible) #detailsModal{
    box-sizing:border-box;
    align-items:stretch;
    justify-items:stretch;
    padding-top:max(8px,env(safe-area-inset-top,0px));
    padding-right:8px;
    padding-bottom:max(8px,env(safe-area-inset-bottom,0px));
    padding-left:8px;
  }
  body:not(.landing-visible) #detailsModal>.details-modal{
    align-self:stretch;
    width:100%;
    max-width:none;
    min-height:0;
    max-height:calc(100dvh - max(8px,env(safe-area-inset-top,0px)) - max(8px,env(safe-area-inset-bottom,0px)));
    margin:0;
    overflow:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    border-radius:16px;
  }
  body:not(.landing-visible) #detailsModal>.details-modal>.details-modal-header{
    position:sticky;
    top:-16px;
    z-index:30;
    margin:-16px -16px 12px;
    padding:16px;
    background:#fff;
    border-bottom:1px solid var(--site-divider,#dce4ea);
  }
  body:not(.landing-visible) #detailsModal>.details-modal>.details-modal-header>div{min-width:0}
  body:not(.landing-visible) #detailsModal>.details-modal>.details-modal-header h2{overflow-wrap:anywhere}
  body:not(.landing-visible) #detailsModal>.details-modal>.details-modal-header>button{flex:0 0 auto;align-self:flex-start}
}

/* Recurring creation matches the Work/Service Call one-line action treatment. */
body:not(.landing-visible) #workRecurringWorkspace .recurring-service-add-button{white-space:nowrap;min-width:max-content}
@media(max-width:650px){
  body:not(.landing-visible) #workRecurringWorkspace .operations-workspace-heading .page-heading-actions{grid-template-columns:auto minmax(0,1fr);align-items:center}
  body:not(.landing-visible) #workRecurringWorkspace .operations-workspace-heading .page-heading-actions>.recurring-service-add-button{grid-column:1/-1;justify-self:start;width:auto;min-width:max-content;white-space:nowrap}
  body:not(.landing-visible) #workRecurringWorkspace .operations-workspace-heading .page-heading-actions>.search-box{grid-column:1/-1;width:100%;min-width:0}
  body:not(.landing-visible) #workRecurringWorkspace .operations-workspace-heading .page-heading-actions>.page-help-button{grid-column:1;grid-row:3;width:auto;min-width:0}
}

/* Price Book starter/add controls stay readable, shrink correctly, and clear fixed mobile UI. */
body:not(.landing-visible) #materialsPage .price-book-starter-manager,
body:not(.landing-visible) #materialsPage .price-book-starter-actions,
body:not(.landing-visible) #materialsPage .price-book-starter-actions .field,
body:not(.landing-visible) #materialsPage .price-book-starter-actions select{min-width:0;max-width:100%}
body:not(.landing-visible) #materialsPage .price-book-starter-actions select{width:100%;text-overflow:ellipsis}
body:not(.landing-visible) #materialsPage .price-book-starter-button-row button,
body:not(.landing-visible) #materialsPage .price-book-backup-actions button{min-width:0}
@media(max-width:760px){
  body:not(.landing-visible) #materialsPage{padding-bottom:calc(150px + env(safe-area-inset-bottom,0px))}
  body:not(.landing-visible) #materialsPage .price-book-tools-drawer-body{padding:0 10px 10px}
  body:not(.landing-visible) #materialsPage .price-book-starter-manager{padding:11px;gap:12px}
  body:not(.landing-visible) #materialsPage .price-book-starter-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;width:100%}
  body:not(.landing-visible) #materialsPage .price-book-starter-button-row{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px;width:100%}
  body:not(.landing-visible) #materialsPage .price-book-starter-button-row button{width:100%;min-height:44px;padding:8px 9px;white-space:normal;line-height:1.2}
  body:not(.landing-visible) #materialsPage .price-book-starter-button-row .danger-button{grid-column:1/-1}
  body:not(.landing-visible) #materialsPage .price-book-backup-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%}
  body:not(.landing-visible) #materialsPage .price-book-backup-actions button{width:100%;min-height:44px}
  body:not(.landing-visible) #materialsPage .price-book-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  body:not(.landing-visible) #materialsPage .price-book-tabs button{min-width:0;padding-inline:6px;white-space:nowrap}
  body:not(.landing-visible) #materialsPage #priceBookServicesPanel .materials-section-heading,
  body:not(.landing-visible) #materialsPage #priceBookMaterialsPanel .materials-section-heading,
  body:not(.landing-visible) #materialsPage #priceBookBundlesPanel .materials-section-heading{align-items:center}
  body:not(.landing-visible) #materialsPage #priceBookServicesPanel .materials-section-heading .page-heading-actions,
  body:not(.landing-visible) #materialsPage #priceBookMaterialsPanel .materials-section-heading .page-heading-actions,
  body:not(.landing-visible) #materialsPage #priceBookBundlesPanel .materials-section-heading .page-heading-actions{width:auto}
  body:not(.landing-visible) #materialsPage #priceBookServicesPanel .materials-section-heading .page-heading-actions>button,
  body:not(.landing-visible) #materialsPage #priceBookMaterialsPanel .materials-section-heading .page-heading-actions>button,
  body:not(.landing-visible) #materialsPage #priceBookBundlesPanel .materials-section-heading .page-heading-actions>button{width:auto;white-space:nowrap}
}
@media(max-width:390px){
  body:not(.landing-visible) #materialsPage .price-book-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
  body:not(.landing-visible) #materialsPage .price-book-tabs button{font-size:11px}
}

/* Customer actions are part of the customer card rather than a visually detached footer. */
body:not(.landing-visible) #customersPage .customer-account-card{padding-bottom:14px}
body:not(.landing-visible) #customersPage .customer-card-actions{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center;
  gap:8px!important;
  margin:12px 0 0!important;
  padding:0!important;
  border-top:0!important;
  border-radius:0!important;
  background:transparent!important;
}
body:not(.landing-visible) #customersPage .customer-card-actions>.customer-primary-action{width:100%!important;min-width:0!important;min-height:44px}
body:not(.landing-visible) #customersPage .customer-card-actions>.card-action-menu{grid-column:auto!important;justify-self:end;width:auto!important;margin:0!important}
body:not(.landing-visible) #customersPage .customer-card-actions>.card-action-menu>summary{width:auto!important;min-width:108px;min-height:44px;justify-content:center}
@media(max-width:430px){
  body:not(.landing-visible) #customersPage .customer-card-actions{grid-template-columns:minmax(0,1fr) auto!important}
  body:not(.landing-visible) #customersPage .customer-card-actions>.card-action-menu>summary{min-width:100px}
}

/* Estimate cards use the same tap-to-open document model as Invoice cards. */
body:not(.landing-visible) #estimatesPage .estimate-card-main[role="button"]{cursor:pointer}
body:not(.landing-visible) #estimatesPage .estimate-card-main[role="button"]:focus-visible{outline:3px solid rgba(20,184,166,.3);outline-offset:-3px}
@media(hover:hover) and (pointer:fine){
  body:not(.landing-visible) #estimatesPage .estimate-card-main[role="button"]:hover{background:#fbfefe}
}

