
/* Login screen */
.login-screen{min-height:100vh;width:100%;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:24px;background:linear-gradient(145deg,#081017,#111827)}
.login-card{width:min(540px,calc(100vw - 32px));padding:48px 52px;border:1px solid rgba(148,163,184,.28);border-radius:16px;background:rgba(17,24,39,.96);box-shadow:0 24px 70px rgba(0,0,0,.35);color:#fff}
.login-logo{display:block;width:205px!important;max-width:50%!important;height:94px!important;object-fit:contain;margin:0 auto 14px}
.login-product-title{text-align:center;margin:0 0 10px;font-size:28px}.login-product-title small{display:block;margin-top:4px;font-size:10px;letter-spacing:.2em;color:#9ca3af}
.login-card>p{text-align:center;color:#cbd5e1;font-size:15px}.login-card label{display:block;margin:14px 0 0;font-size:13px;color:#d1d5db}.login-card input{display:block;width:100%;margin-top:7px;padding:13px 14px;border:1px solid #475569;border-radius:8px;background:#0f172a;color:#fff}.login-card form .primary{width:100%;margin-top:18px;background:#3b82f6}.login-error{min-height:20px;color:#fca5a5!important;font-size:12px}
.login-powered-by{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;color:#94a3b8;font-size:9px;letter-spacing:.14em}.login-powered-by img{width:78px!important;height:28px!important;object-fit:contain}
@media(max-width:600px){.login-screen{padding:16px}.login-card{padding:28px 24px}.login-logo{width:130px!important;height:62px!important}.login-powered-by{bottom:10px}}

:root{--company-accent:#d7dadd;--company-bg:#070b0e;--company-surface:#11171c}
:root {
  --bg: #f4f5f7;
  --card: #fff;
  --text: #1f2937;
  --muted: #6b7280;
  --line: #e5e7eb;
  --dark: #111827;
  --silver: #9ca3af;
  --green: #2f855a;
  --red: #c53030;
  --blue: #2b6cb0;
  --orange: #dd6b20;
  --shadow: 0 8px 30px rgba(17,24,39,.07);
}

* { box-sizing: border-box; }
body { margin:0; font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; background:var(--bg); color:var(--text); }
button,input,select,textarea{font:inherit}
.app-shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}
.sidebar{background:var(--dark);color:#fff;padding:22px 16px;display:flex;flex-direction:column;gap:26px}
.brand{display:flex;gap:12px;align-items:center;padding:0 8px;flex-wrap:wrap}
.brand-mark{border:1px solid #6b7280;padding:7px 8px;font-weight:800;letter-spacing:.12em}
.brand span{display:block;color:#9ca3af;font-size:11px;margin-top:3px}
.company-switcher-wrap{width:100%;margin-top:8px;padding:10px;border:1px solid rgba(148,163,184,.35);border-radius:10px;background:rgba(255,255,255,.05)}
.company-switcher-wrap label{display:block;margin:0 0 6px;color:#cbd5e1;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.company-switcher-wrap select{width:100%;min-height:42px;border:1px solid #64748b;border-radius:8px;background:#fff;color:#111827;padding:8px 10px}
.sidebar nav{display:grid;gap:7px}.nav-btn{appearance:none;border:0;background:transparent;color:#cbd5e1;padding:11px 12px;border-radius:9px;text-align:left;cursor:pointer}.nav-btn:hover,.nav-btn.active{background:#273244;color:#fff}.sidebar-note{margin-top:auto;color:#94a3b8;font-size:12px;line-height:1.5;padding:10px}
main{padding:24px 30px 40px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.topbar h1{margin:0;font-size:28px}.topbar p{margin:4px 0 0;color:var(--muted)}
.primary,.secondary,.danger,.text-btn,.icon-btn{border:0;border-radius:9px;cursor:pointer}.primary{background:var(--dark);color:#fff;padding:10px 15px}.secondary{background:#eef0f3;color:var(--text);padding:10px 14px}.danger{background:#b91c1c;color:#fff;padding:10px 14px}.text-btn{background:transparent;color:#374151}.icon-btn{background:transparent;font-size:24px;padding:2px 8px}
.view{display:none}.view.active{display:block}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.kpi,.card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.kpi{padding:18px}.kpi .label{font-size:13px;color:var(--muted)}.kpi .value{font-size:28px;font-weight:800;margin-top:6px}.kpi .sub{font-size:12px;color:var(--muted);margin-top:3px}.card{padding:18px}.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-head h2,.card h2{font-size:17px;margin:0 0 12px}.stack{display:grid;gap:9px}.list-item{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border:1px solid var(--line);border-radius:10px;padding:11px 12px}.list-main strong{display:block}.list-main span{font-size:12px;color:var(--muted)}.pill{display:inline-flex;padding:3px 8px;border-radius:999px;background:#f3f4f6;font-size:12px;white-space:nowrap}

/* Preserve the application's existing stylesheet from this point via imports is not possible in CSS contents API. */
@media (max-width:768px){
 .app-shell{display:block}.sidebar{width:100%;min-height:auto;position:static;padding:10px;gap:10px}.brand{justify-content:center;align-items:center;padding:8px 0 12px;overflow:visible}.brand-logo{width:140px!important;max-width:140px!important;height:auto!important;max-height:80px!important;object-fit:contain;display:block}.workspace-identity{width:100%;text-align:center}.company-switcher-wrap{display:block;width:min(100%,420px);margin:6px auto 4px;text-align:left}.company-switcher-wrap select{min-height:48px;font-size:16px}.sidebar nav{display:flex;flex-direction:column;gap:8px}.nav-btn{width:100%;min-height:48px;font-size:17px;text-align:center}.sidebar-note{display:none}main{width:100%;padding:12px;box-sizing:border-box}.topbar{padding:4px 0 12px}#pageTitle{font-size:24px}.kpi-grid,.grid-two{grid-template-columns:1fr}}

@media(min-width:601px){
 .login-card{font-size:16px}
 .login-logo{width:230px!important;height:106px!important;margin-bottom:18px}
 .login-product-title{font-size:32px;line-height:1.05;margin-bottom:14px}
 .login-product-title small{font-size:12px;margin-top:7px;letter-spacing:.18em}
 .login-card>p{font-size:17px;margin:16px 0 22px}
 .login-card label{font-size:14px;margin-top:18px}
 .login-card input{font-size:17px;min-height:52px;margin-top:8px}
 .login-card form .primary{font-size:17px;min-height:52px;margin-top:22px}
}

/* Login brand: crop the master RWM Group artwork to the RWM mark only. */
.login-rwm-mark{width:240px;height:58px;overflow:hidden;margin:0 auto 8px;background:#000}
.login-rwm-mark img{display:block;width:240px;height:auto;transform:translateY(-7px)}
.login-product-title{margin-top:0}
@media(max-width:600px){
  .login-rwm-mark{width:200px;height:48px}
  .login-rwm-mark img{width:200px;transform:translateY(-6px)}
}

.working-days-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-top:12px}
.working-days-grid label{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line,#26313a);border-radius:10px;background:var(--company-surface,#11171c);cursor:pointer}
.working-days-grid input{width:auto;margin:0}

.login-forgot-btn{width:100%;margin-top:10px;text-align:center}
#loginScreen .text-btn{color:#cbd5e1}
#loginScreen .text-btn:hover,#loginScreen .text-btn:focus-visible{color:#fff;text-decoration:underline}
#recoveryBackLink{color:#93c5fd}
#forgotPasswordPanel label,#recoveryPanel label{display:grid;gap:7px;margin:12px 0}
#forgotPasswordPanel .primary,#recoveryPanel .primary{width:100%;margin-top:8px}

#forgotPasswordMessage:not(:empty),#recoveryError:not(:empty),#loginError:not(:empty){margin-top:12px}
#sendPasswordResetBtn:disabled,#saveRecoveryPasswordBtn:disabled{opacity:.65;cursor:wait}

.settings-hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
#navCustomizeList .list-item{display:flex;align-items:center;justify-content:space-between}
#navCustomizeList input[type=checkbox]{width:20px;height:20px}
#calendarViewMode{min-width:92px}
@media(max-width:800px){.settings-hub-grid{grid-template-columns:1fr}}

.job-builder-card{width:min(900px,94vw);max-height:90vh;overflow:auto}
.invoice-builder-lines{margin:16px 0;padding:14px;border:1px solid var(--line,#d8dee9);border-radius:12px}
.invoice-line-row{padding:12px 0;border-bottom:1px solid var(--line,#d8dee9)}
.invoice-line-row:last-child{border-bottom:0}

/* Workspace surfaces and company themes */
:root{--accent:#376bdb}
[data-company-theme="graphite"]{--accent:#586779}
[data-company-theme="midnight"]{--accent:#377bd2}
[data-company-theme="forest"]{--accent:#2f855a}
[data-company-theme="custom"]{--accent:var(--company-accent)}
.sidebar{background:var(--company-bg);border-right:1px solid #293341}
.nav-btn.active{background:var(--company-surface);border-left:3px solid var(--company-accent)}
.primary{background:var(--accent)}
.primary:hover{filter:brightness(1.12)}
.kpi{border-top:3px solid var(--accent)}
.kpi .value,.calendar-date-number{color:var(--accent)}
.view .section-head{margin-bottom:16px}
.section-head p{margin:4px 0 0}
.row-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
input,select,textarea{max-width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 11px;background:#fff;color:var(--text)}
button{min-width:0}
.card{min-width:0}
.muted,.small{color:var(--muted)}
.small{font-size:13px}
.empty{padding:18px;color:var(--muted)}
.pill.overdue,.status-overdue{background:#fee2e2;color:#991b1b}
.pill.due,.status-due{background:#fef3c7;color:#92400e}
.pill.completed,.status-completed{background:#dcfce7;color:#166534}
table{border-collapse:collapse;width:100%}
th,td{text-align:left;padding:10px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:13px;white-space:nowrap}
.table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.rwm-calendar-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rwm-calendar-weekdays,.rwm-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.rwm-calendar-weekdays{margin:14px 0 4px;text-align:center;font-size:12px;font-weight:700;color:var(--muted)}
.rwm-calendar-day{display:flex;flex-direction:column;align-items:flex-start;gap:5px;width:100%;min-width:0;min-height:96px;padding:8px;border:1px solid var(--line);border-radius:9px;background:#fff;text-align:left;color:var(--text);cursor:pointer;overflow:hidden}
.rwm-calendar-day:hover{border-color:var(--accent)}
.rwm-calendar-day.outside{background:transparent;border-color:transparent;cursor:default}
.rwm-calendar-day.today{border:2px solid var(--accent)}
.rwm-calendar-day.has-work{background:#f1f7ff}
.rwm-calendar-day.rainy-day{background:#e8f3fa}
.rwm-calendar-day.weather-day{background:#fff5df}
.calendar-date-number{font-weight:800;font-size:15px}
.calendar-job-count,.calendar-day-meta,.calendar-day-note{font-size:11px;line-height:1.25;overflow-wrap:anywhere}
.calendar-day-meta{color:var(--muted)}
dialog{max-width:min(720px,94vw);max-height:88vh;overflow:auto;border:1px solid var(--line);border-radius:14px;box-shadow:0 25px 70px #11182755}
dialog::backdrop{background:#0f172a99}
@media(max-width:768px){
 .app-shell{overflow-x:hidden}
 main{min-width:0;overflow-x:hidden}
 .topbar,.section-head{flex-wrap:wrap}
 .topbar h1{font-size:24px}
 .card{padding:14px}
 .rwm-calendar-toolbar{width:100%}
 .rwm-calendar-weekdays,.rwm-calendar-grid{gap:2px}
 .rwm-calendar-day{min-height:76px;padding:4px;border-radius:6px}
 .calendar-date-number{font-size:14px}
 .calendar-job-count,.calendar-day-meta{font-size:10px}
 .calendar-day-meta{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
 .rwm-calendar-weekdays{font-size:11px}
 .table-wrap{overflow-x:auto}
 table{min-width:620px}
}
@media(max-width:420px){
 .rwm-calendar-day{min-height:68px}
 .calendar-day-note{display:none}
 .calendar-day-meta{font-size:9px}
}

/* Navigation, form layouts and operational colour key */
.nav-group-items{display:grid;gap:4px;padding-left:10px}
.nav-group-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;border:0;background:transparent;color:#e5e7eb;padding:10px 12px;font-weight:700;cursor:pointer}
.nav-sub-btn{font-size:14px}
.theme-toggle-btn{border:0;background:transparent;color:#cbd5e1;padding:11px 12px;text-align:left;cursor:pointer}
.toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}
.toolbar-card{margin-bottom:14px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.form-grid label,dialog label{display:grid;gap:5px}
.dialog-card{min-width:0}
.dialog-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:16px}
.color-key{display:flex;flex-wrap:wrap;gap:8px 16px;margin:12px 0 16px;font-size:12px;color:var(--muted)}
.color-key span{display:inline-flex;align-items:center;gap:5px}
.color-key i{display:inline-block;width:12px;height:12px;border:1px solid #d6dbe2;border-radius:3px}
.dashboard-attention-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-bottom:16px}
.dashboard-attention-row>*{min-width:0}
#recentList .list-item,#dueList .list-item{min-width:0}
.list-main{min-width:0;overflow-wrap:anywhere}
.table-card{overflow:hidden}
.history-kpis{margin:14px 0}
#calendarMonthLabel{white-space:nowrap}
@media(max-width:768px){
 .dashboard-attention-row,.form-grid{grid-template-columns:1fr}
 .toolbar>*{max-width:100%}
 .toolbar input[type=search]{flex:1 1 190px}
 #calendarView .section-head .toolbar{justify-content:flex-start}
 #calendarView .card{padding:8px}
 #historyView .table-wrap{overflow-x:auto}
 .dashboard-unpaid-card .section-head{align-items:center}
 #dueList{overflow-x:auto}
}

/* Keep the brand art inside the navigation column at every viewport size. */
.app-shell{grid-template-columns:minmax(220px,240px) minmax(0,1fr);width:100%;overflow-x:clip}
.sidebar{min-width:0;height:100vh;position:sticky;top:0;overflow-y:auto;overflow-x:hidden;gap:12px;z-index:2}
.sidebar .brand{display:flex;flex-direction:column;align-items:stretch;flex:none;gap:8px;padding:0}
.sidebar .brand-logo{display:block;width:100%;max-width:180px;height:72px;max-height:72px;object-fit:contain;object-position:left center;flex:none}
.sidebar .workspace-identity{min-width:0;overflow-wrap:anywhere}
.sidebar .workspace-identity .muted{color:#cbd5e1}
.sidebar nav{min-width:0;display:grid;align-content:start;gap:3px}
.sidebar .nav-group{min-width:0}
.sidebar .nav-group-items{display:none;gap:2px;padding-left:8px}
.sidebar .nav-btn,.sidebar .nav-group-toggle,.sidebar .theme-toggle-btn{width:100%;min-height:38px;white-space:normal;overflow-wrap:anywhere}
.sidebar .nav-btn{padding:9px 10px}
.sidebar .nav-sub-btn{font-size:13px}
main{min-width:0;max-width:100%;position:relative;z-index:1}
main .card,main .kpi{overflow-wrap:anywhere}
[data-company-theme="graphite"]{--accent:#64748b}
[data-company-theme="midnight"]{--accent:#377bd2}
[data-company-theme="forest"]{--accent:#2f855a}
[data-company-theme="custom"]{--accent:var(--company-accent)}
.sidebar .nav-btn.active{border-left:3px solid var(--company-accent);background:var(--company-surface)}
#dashboardView .kpi .value{color:var(--accent)}
#dashboardView .color-key{padding:8px 0}
#dashboardView .color-key i{flex:none}
@media(max-width:768px){
 .app-shell{display:block;overflow-x:hidden}
 .sidebar{position:relative;width:100%;height:auto;max-height:none;overflow:visible;padding:12px}
 .sidebar .brand{align-items:center;text-align:center}
 .sidebar .brand-logo{width:150px;max-width:150px;height:62px;max-height:62px;object-position:center}
 .sidebar nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
 .sidebar nav>.nav-group{grid-column:span 3}
 .sidebar .nav-group-items{grid-template-columns:repeat(2,minmax(0,1fr));padding:4px 0 8px}
 .sidebar .nav-btn{font-size:14px;min-height:42px;padding:8px 6px;text-align:center}
 .sidebar .nav-sub-btn{font-size:13px}
 .sidebar .nav-group-toggle{text-align:left}
 .sidebar .workspace-identity{width:100%}
 main{padding:16px}
}
@media(max-width:390px){.sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar nav>.nav-group{grid-column:span 2}}
/* Appearance toggle applies to the entire workspace, including forms and reports. */
html[data-theme="dark"]{--bg:#0b1220;--card:#152131;--text:#e9eef6;--muted:#aebbd0;--line:#304155;--dark:#101827;--shadow:0 8px 30px #0003;color-scheme:dark}
html[data-theme="dark"] body{background:var(--bg);color:var(--text)}
html[data-theme="dark"] .card,html[data-theme="dark"] .kpi,html[data-theme="dark"] .list-item,html[data-theme="dark"] dialog{background:var(--card);color:var(--text);border-color:var(--line)}
html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea{background:#0d1828;color:var(--text);border-color:var(--line)}
html[data-theme="dark"] input::placeholder,html[data-theme="dark"] textarea::placeholder{color:#9aa9bd}
html[data-theme="dark"] .secondary,html[data-theme="dark"] .pill{background:#25354a;color:var(--text)}
html[data-theme="dark"] .text-btn{color:#a9ccff}
html[data-theme="dark"] .rwm-calendar-day{background:#172539;color:var(--text);border-color:var(--line)}
html[data-theme="dark"] .rwm-calendar-day.has-work{background:#1c3448}
html[data-theme="dark"] .rwm-calendar-day.outside{background:transparent}
html[data-theme="dark"] .rwm-calendar-day.rainy-day{background:#223c50}
html[data-theme="dark"] .rwm-calendar-day.weather-day{background:#50402b}
html[data-theme="dark"] th,html[data-theme="dark"] td{border-color:var(--line)}
html[data-theme="dark"] .topbar p,html[data-theme="dark"] .muted,html[data-theme="dark"] .small{color:var(--muted)}
html[data-theme="dark"] .pill.overdue{background:#552a31;color:#ffc6c6}
html[data-theme="dark"] .pill.due{background:#59462b;color:#ffe6ae}
html[data-theme="dark"] .pill.completed{background:#214b3b;color:#bcf5d3}

/* Contractor dashboard card preferences */
.dashboard-card-settings{margin:0 0 12px;color:var(--company-accent,#65a8ff)}
.dashboard-card-settings summary{cursor:pointer;font-weight:600;display:inline-block;padding:8px 12px;border:1px solid #52647a;border-radius:8px}
.dashboard-card-options{display:flex;flex-wrap:wrap;gap:8px 18px;padding:12px 0}
.dashboard-card-options label{display:inline-flex;align-items:center;gap:7px;cursor:pointer;color:inherit}
.dashboard-card-options input{accent-color:var(--company-accent,#65a8ff)}
#dashboardRecentSummary{margin:0 0 12px;font-weight:600}
@media(max-width:700px){.dashboard-card-options{flex-direction:column}#kpiGrid{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr))}}

/* Workspace view controls */
[hidden]{display:none!important}
.table-column-settings{margin:0 0 14px}
.table-column-settings summary{cursor:pointer;display:inline-block;border:1px solid var(--line);border-radius:8px;padding:8px 14px;font-weight:700}
.column-options{display:flex;flex-wrap:wrap;gap:12px 20px;margin-top:12px}
.column-options label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.column-options input{accent-color:var(--company-accent,#3b82f6)}
.settings-link{font:inherit;text-align:left;color:var(--text);cursor:pointer;min-height:115px}
.settings-link:hover,.settings-link:focus-visible,.report-choice:hover,.report-choice:focus-visible{outline:2px solid var(--company-accent,#3b82f6);outline-offset:1px}
.report-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.report-choice{border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--text);padding:24px;text-align:left;cursor:pointer;min-height:138px;box-shadow:var(--shadow)}
.report-choice strong{display:block;font-size:18px;margin-bottom:10px}
.report-choice span{color:var(--muted);line-height:1.4}
#selectedReport>[data-report-panel]{margin-top:16px}
#selectedReportTitle{margin:16px 0}
.service-table{width:100%;border-collapse:collapse}
.service-table th,.service-table td{padding:13px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.service-table td:nth-child(2){min-width:240px}
.service-table .text-btn{text-decoration:underline;font-weight:600}
#quoteDialog{width:min(820px,calc(100vw - 32px));max-width:820px}
#quoteDialog .dialog-card{width:100%;max-width:none;padding:24px}
#quoteDialog textarea{min-height:100px}
@media(max-width:700px){.report-picker{grid-template-columns:1fr}.column-options{display:grid;grid-template-columns:1fr 1fr}#quoteDialog{width:calc(100vw - 20px);max-height:calc(100dvh - 24px)}#quoteDialog .dialog-card{padding:18px}}

/* Give editing dialogs enough room for paired fields and notes. */
dialog:not(#workerFinancialDetailsDialog){width:min(920px,calc(100vw - 28px));max-width:920px;max-height:calc(100dvh - 28px)}
dialog:not(#workerFinancialDetailsDialog) .dialog-card{width:100%;max-width:none}
@media(max-width:700px){dialog:not(#workerFinancialDetailsDialog){width:calc(100vw - 16px);max-width:none}}

/* Operational workspace palette and dialogs */
:root{--ui-accent:#536779;--ui-accent-soft:#e9eef3;--ui-accent-ink:#203649}
html[data-industry="lawn_landscaping"]{--ui-accent:#2f855a;--ui-accent-soft:#e7f5eb;--ui-accent-ink:#165335}
html[data-industry="contractor"]{--ui-accent:#376caa;--ui-accent-soft:#e7f0fb;--ui-accent-ink:#173f71}
html[data-theme="dark"]{--ui-accent:#9fb5ca;--ui-accent-soft:#233345;--ui-accent-ink:#e8f2ff}
html[data-theme="dark"][data-industry="lawn_landscaping"]{--ui-accent:#69c58b;--ui-accent-soft:#19382b;--ui-accent-ink:#c9f7d8}
html[data-theme="dark"][data-industry="contractor"]{--ui-accent:#76b5ff;--ui-accent-soft:#1b3656;--ui-accent-ink:#d4e9ff}
.app-shell .primary{background:var(--ui-accent);color:#fff}
html[data-theme="dark"] .app-shell .primary{color:#07121e}
.app-shell .card,.app-shell .kpi{border-color:var(--line)}
.app-shell .kpi{border-top:3px solid var(--ui-accent)}
.app-shell .nav-btn.active{border-left:3px solid var(--ui-accent)}
dialog:not(#workerFinancialDetailsDialog){padding:0;overflow:auto;border:1px solid var(--line);border-radius:18px;background:var(--card);color:var(--text);box-shadow:0 30px 90px #07111f66}
dialog:not(#workerFinancialDetailsDialog)::backdrop{background:#081321ab;backdrop-filter:blur(3px)}
dialog:not(#workerFinancialDetailsDialog) .dialog-card{padding:28px 32px 24px;min-width:0}
dialog:not(#workerFinancialDetailsDialog) .section-head:first-child{margin:-28px -32px 22px;padding:22px 32px;border-bottom:3px solid var(--ui-accent);background:linear-gradient(115deg,var(--ui-accent-soft),var(--card));align-items:center}
dialog:not(#workerFinancialDetailsDialog) .section-head:first-child h2{font-size:22px;margin:0;color:var(--text)}
dialog:not(#workerFinancialDetailsDialog) label{color:var(--text);font-weight:600;line-height:1.35}
dialog:not(#workerFinancialDetailsDialog) input:not([type="checkbox"]),dialog:not(#workerFinancialDetailsDialog) select,dialog:not(#workerFinancialDetailsDialog) textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--text)}
dialog:not(#workerFinancialDetailsDialog) textarea{min-height:100px;resize:vertical}
dialog:not(#workerFinancialDetailsDialog) input:focus-visible,dialog:not(#workerFinancialDetailsDialog) select:focus-visible,dialog:not(#workerFinancialDetailsDialog) textarea:focus-visible{outline:2px solid var(--ui-accent);outline-offset:1px}
dialog:not(#workerFinancialDetailsDialog) .dialog-actions{position:sticky;bottom:-24px;z-index:2;background:var(--card);border-top:1px solid var(--line);padding:16px 0 4px}
dialog:not(#workerFinancialDetailsDialog) .dialog-actions button{min-height:42px}
#customerDialog{width:min(1100px,calc(100vw - 32px));max-width:1100px;max-height:calc(100dvh - 32px)}
#customerDialog .customer-profile-card{padding:28px 34px}
#customerDialog .customer-profile-title{margin:-28px -34px 18px;padding:24px 34px}
#customerDialog .customer-profile-title .icon-btn{border:1px solid var(--line);background:var(--card);color:var(--text);line-height:1;border-radius:9px}
#customerDialog .customer-profile-summary{padding:22px 24px;background:var(--ui-accent-soft);border:1px solid var(--line);border-left:5px solid var(--ui-accent);border-radius:14px;margin-bottom:16px}
#customerDialog .customer-profile-identity{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
#customerDialog .customer-profile-identity h2{margin:0 0 6px;font-size:26px;line-height:1.2;color:var(--text)}
#customerDialog .customer-profile-address{color:var(--muted);font-size:15px}
#customerDialog .customer-profile-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:20px}
#customerDialog .customer-profile-meta>div{min-width:0;padding:12px;background:var(--card);border:1px solid var(--line);border-radius:10px}
#customerDialog .customer-profile-meta strong,#customerDialog .customer-profile-meta span{display:block;overflow-wrap:anywhere}
#customerDialog .customer-profile-meta strong{font-size:12px;color:var(--muted);margin-bottom:5px}
#customerDialog .customer-profile-meta span{font-size:15px;color:var(--text)}
#customerDialog .customer-next-visit{padding:16px 20px;border-radius:12px;border:1px solid var(--line);border-left:4px solid var(--ui-accent);background:var(--card);margin-bottom:16px}
#customerDialog .customer-next-visit strong{display:block;color:var(--ui-accent-ink);margin-bottom:5px}
#customerDialog .customer-profile-section{border:1px solid var(--line);border-radius:12px;background:var(--card);margin:10px 0;overflow:hidden}
#customerDialog .customer-profile-section>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;padding:15px 18px;background:var(--ui-accent-soft);color:var(--ui-accent-ink);font-weight:750;list-style:none}
#customerDialog .customer-profile-section>summary::before{content:"▸";margin-right:7px}
#customerDialog .customer-profile-section[open]>summary::before{content:"▾"}
#customerDialog .customer-profile-section>summary span:first-child{margin-right:auto}
#customerDialog .section-summary{font-size:12px;font-weight:500;color:var(--muted)}
#customerDialog .customer-profile-fields,#customerDialog .collapsible-content{padding:18px;display:grid;gap:14px}
#customerDialog .customer-profile-services .list-item{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--ui-accent);border-radius:10px;padding:14px;margin:8px 0}
#customerDialog .customer-profile-more .customer-more-group{padding:14px;border:1px solid var(--line);border-radius:10px;margin:8px 0}
#customerDialog .customer-profile-more h4{margin:0 0 8px;color:var(--ui-accent-ink)}
#ownerWorkerRoutePanel{width:min(1080px,calc(100vw - 32px));max-width:1080px;max-height:calc(100dvh - 32px);padding:0;border-radius:18px}
#ownerWorkerRoutePanel>.card{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:0 28px 28px!important;background:var(--card)!important;color:var(--text)!important;border:0;box-shadow:none}
#ownerWorkerRoutePanel>.card>div:nth-child(-n+3){grid-column:1/-1}
#ownerWorkerRoutePanel>.card>div:first-child{margin:0 -28px!important;padding:24px 28px;border-bottom:3px solid var(--ui-accent);background:linear-gradient(115deg,var(--ui-accent-soft),var(--card))}
#ownerWorkerRouteTitle{color:var(--text)!important;font-size:25px!important}
#ownerWorkerRoutePanel .muted{color:var(--muted)!important}
#ownerWorkerRoutePanel>.card>div:nth-child(3){background:var(--ui-accent-soft)!important;border:1px solid var(--line)!important;border-left:4px solid var(--ui-accent)!important}
#ownerWorkerRouteStatus{color:var(--text)!important;font-size:16px!important}
#ownerWorkerRoutePanel>.card>div:nth-child(4),#ownerWorkerRoutePanel>.card>div:nth-child(5){background:var(--card)!important;border:1px solid var(--line)!important;border-radius:12px;min-width:0}
#ownerWorkerRoutePanel>.card>div:nth-child(4)>div:first-child,#ownerWorkerRoutePanel>.card>div:nth-child(5)>div:first-child{background:var(--ui-accent-soft)!important;color:var(--ui-accent-ink)!important;border-color:var(--line)!important;padding:13px 16px!important}
#ownerWorkerRoutePanel>.card>div:nth-child(5)>div:first-child strong{color:var(--ui-accent-ink)!important}
#ownerWorkerRoutePanel textarea,#ownerWorkerRoutePanel input{background:var(--card);color:var(--text);border:1px solid var(--line)}
#ownerWorkerRoutePanel #ownerWorkerRouteNoteText{color:var(--text)!important}
#ownerWorkerRoutePanel .secondary{min-height:40px}
#nextDueBody tr{color:#17263a!important}
#nextDueBody tr td{color:#17263a!important;font-size:14px;line-height:1.45}
#nextDueBody tr strong{color:#102033!important}
#nextDueBody tr .pill{color:#fff!important;background:#334963!important}
#nextDueBody tr .secondary,#nextDueBody tr .primary{color:#fff!important}
#nextDueBody tr:hover{filter:brightness(.97)}
#nextDueBody td{padding:12px 10px;vertical-align:middle}
#nextDueBody .nextdue-date-control{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
@media(max-width:800px){
 #customerDialog .customer-profile-meta{grid-template-columns:repeat(2,minmax(0,1fr))}
 #ownerWorkerRoutePanel>.card{grid-template-columns:1fr}
 #ownerWorkerRoutePanel>.card>div:nth-child(-n+3){grid-column:1}
}
@media(max-width:600px){
 dialog:not(#workerFinancialDetailsDialog) .dialog-card{padding:20px 16px}
 dialog:not(#workerFinancialDetailsDialog) .section-head:first-child{margin:-20px -16px 18px;padding:18px 16px}
 #customerDialog,#ownerWorkerRoutePanel{width:calc(100vw - 16px);max-width:none}
 #customerDialog .customer-profile-card{padding:20px 16px}
 #customerDialog .customer-profile-title{margin:-20px -16px 16px;padding:18px 16px}
 #customerDialog .customer-profile-meta{grid-template-columns:1fr}
 #customerDialog .customer-profile-identity{flex-direction:column}
 #ownerWorkerRoutePanel>.card{padding:0 16px 20px!important}
 #ownerWorkerRoutePanel>.card>div:first-child{margin:0 -16px!important;padding:18px 16px}
}

/* Override the generic dialog cap for the two workspace panels. */
dialog#customerDialog{width:min(1100px,calc(100vw - 32px));max-width:1100px}
dialog#ownerWorkerRoutePanel{width:min(1080px,calc(100vw - 32px));max-width:1080px}
@media(max-width:600px){dialog#customerDialog,dialog#ownerWorkerRoutePanel{width:calc(100vw - 16px);max-width:none}}

/* Landscaping demo palette: black, lime and clear work-status colours. */
html[data-demo-workspace="true"][data-industry="lawn_landscaping"]{
  --company-bg:#080d0a;--company-surface:#18231a;
  --ui-accent:#679e14;--ui-accent-soft:#edf8d9;--ui-accent-ink:#315c0b;--accent:#679e14;
}
html[data-theme="dark"][data-demo-workspace="true"][data-industry="lawn_landscaping"]{
  --bg:#0a110d;--card:#16231b;--text:#edf7e8;--muted:#b2c8ad;--line:#345340;
  --ui-accent:#b4e75c;--ui-accent-soft:#203b24;--ui-accent-ink:#ddf7ad;--accent:#b4e75c;
}
html[data-demo-workspace="true"][data-industry="lawn_landscaping"] .sidebar{background:#080d0a}
html[data-demo-workspace="true"][data-industry="lawn_landscaping"] .sidebar .nav-btn.active{border-color:var(--ui-accent);background:#1a2b16}
html[data-demo-workspace="true"][data-industry="lawn_landscaping"] .app-shell .primary{background:var(--ui-accent);color:#102006}
html[data-demo-workspace="true"][data-industry="lawn_landscaping"] .app-shell .kpi{border-top-color:var(--ui-accent)}
html[data-demo-workspace="true"][data-industry="lawn_landscaping"] .app-shell .kpi .value{color:var(--ui-accent)}
/* One consistent working width for every popup. */
dialog[id],dialog#customerDialog,dialog#ownerWorkerRoutePanel,dialog#workerFinancialDetailsDialog{
  width:min(1080px,calc(100vw - 32px))!important;max-width:1080px!important;
  max-height:calc(100dvh - 32px)!important;overflow:auto;
}
dialog[id] .dialog-card,dialog#workerFinancialDetailsDialog .dialog-card{
  width:100%!important;max-width:none!important;min-width:0;
}
dialog#workerFinancialDetailsDialog{padding:0;border:1px solid var(--line);border-radius:18px;background:var(--card);color:var(--text);box-shadow:0 30px 90px #07111f66}
dialog#workerFinancialDetailsDialog .dialog-card{padding:28px 32px}
dialog#workerFinancialDetailsDialog .section-head:first-child{
  margin:-28px -32px 22px;padding:22px 32px;border-bottom:3px solid var(--ui-accent);
  background:linear-gradient(115deg,var(--ui-accent-soft),var(--card))
}
dialog#workerFinancialDetailsDialog .kpi{border-top-color:var(--ui-accent)}
dialog#workerFinancialDetailsDialog .dialog-actions{background:var(--card)}
/* Status meaning remains readable in either appearance mode. */
#customersBody tr.customer-row-completed,#nextDueBody tr.nextdue-recent{background:#e7f1ff!important;color:#183b69!important}
#customersBody tr.customer-row-overdue,#nextDueBody tr.nextdue-overdue{background:#ffe2e5!important;color:#7c1f2a!important}
#customersBody tr.customer-row-due-soon,#nextDueBody tr.nextdue-soon{background:#fff0ee!important;color:#7c3030!important}
#nextDueBody tr.nextdue-normal{background:#eef3f8!important;color:#24384e!important}
#historyBody tr.history-unpaid,.dashboard-recent-row.recent-unpaid,.dashboard-unpaid-job{
  background:#fff1c7!important;color:#624714!important;border-left:4px solid #e8b637!important
}
#historyBody tr.history-paid,.dashboard-recent-row.recent-paid{
  background:#e1f5e8!important;color:#185436!important;border-left:4px solid #43ad6b!important
}
#customersBody tr.customer-row-completed *,#customersBody tr.customer-row-overdue *,
#customersBody tr.customer-row-due-soon *,#nextDueBody tr.nextdue-recent *,
#nextDueBody tr.nextdue-overdue *,#nextDueBody tr.nextdue-soon *,
#historyBody tr.history-unpaid *,#historyBody tr.history-paid *,
.dashboard-recent-row.recent-unpaid *,.dashboard-recent-row.recent-paid *,
.dashboard-unpaid-job *{color:inherit}
#customersBody tr .primary,#nextDueBody tr .primary,
#historyBody tr .primary,.dashboard-recent-row .primary{color:#fff!important}
#customersBody tr .secondary,#nextDueBody tr .secondary,
#historyBody tr .secondary,.dashboard-recent-row .secondary{background:#e9edf3!important;color:#17263a!important}
#customersBody tr .pill,#nextDueBody tr .pill,#historyBody tr .pill{background:#334963!important;color:#fff!important}
#dashboardView .dashboard-unpaid-card{border-top:3px solid #e8b637}
#dashboardView #recentList{display:grid;gap:8px}
#dashboardView .dashboard-recent-row{border-radius:10px;padding:12px}
#historyBody td,#customersBody td,#nextDueBody td{vertical-align:middle}
@media(max-width:600px){
 dialog[id],dialog#customerDialog,dialog#ownerWorkerRoutePanel,dialog#workerFinancialDetailsDialog{
   width:calc(100vw - 16px)!important;max-width:none!important;max-height:calc(100dvh - 16px)!important
 }
 dialog#workerFinancialDetailsDialog .dialog-card{padding:20px 16px}
 dialog#workerFinancialDetailsDialog .section-head:first-child{margin:-20px -16px 18px;padding:18px 16px}
}

/* RWM Landscaping identity across its real and demo workspaces. */
html[data-rwm-landscape="true"]{
  --bg:#f6f9f3;--card:#fff;--line:#d6e7c4;
  --company-surface:#172817;--ui-accent:#679e14;--ui-accent-soft:#edf8d9;
  --ui-accent-ink:#315c0b;--accent:#679e14;
}
html[data-theme="dark"][data-rwm-landscape="true"]{
  --bg:#080f0a;--card:#142119;--text:#edf7e8;--muted:#b7cbb2;--line:#34573a;
  --ui-accent:#b4e75c;--ui-accent-soft:#203b24;--ui-accent-ink:#ddf7ad;--accent:#b4e75c;
}
html[data-rwm-landscape="true"] .sidebar{background:#060c08!important;border-right:1px solid #507527}
html[data-rwm-landscape="true"] .sidebar .nav-btn.active{border-left:3px solid var(--ui-accent);background:#1a2d17}
html[data-rwm-landscape="true"] main{
  background-color:var(--bg);
  background-image:linear-gradient(90deg,transparent 97%,rgba(125,195,43,.10) 100%),
    linear-gradient(0deg,transparent 97%,rgba(125,195,43,.10) 100%);
  background-size:90px 90px;
}
html[data-rwm-landscape="true"] main .card,html[data-rwm-landscape="true"] main .kpi{
  border-color:var(--line);box-shadow:0 9px 28px rgba(4,28,8,.08)
}
html[data-rwm-landscape="true"] main .kpi{border-top-color:var(--ui-accent)}
html[data-rwm-landscape="true"] main .kpi .value{color:var(--ui-accent)}
html[data-rwm-landscape="true"] .app-shell .primary{background:var(--ui-accent);color:#102006}
html[data-rwm-landscape="true"] dialog .section-head:first-child{border-bottom-color:var(--ui-accent)}
html[data-rwm-landscape="true"] .color-key i{border:1px solid #618142}

/* Company theme colours are applied to the actual workspace, including RWM. */
html[data-company-theme] .sidebar{background:var(--company-bg)!important;border-right:1px solid var(--company-accent)}
html[data-company-theme] .sidebar .nav-btn.active{border-left-color:var(--company-accent);background:var(--company-surface)}
html[data-company-theme] .app-shell .primary{background:var(--company-accent);color:var(--theme-on-accent,#fff)}
html[data-company-theme] .app-shell .kpi{border-top-color:var(--company-accent)}
html[data-company-theme] .app-shell .kpi .value{color:var(--company-accent)}
html[data-company-theme] main{background-color:color-mix(in srgb,var(--company-bg) 5%,var(--bg))}
html[data-rwm-landscape="true"] main{background-image:linear-gradient(90deg,transparent 97%,color-mix(in srgb,var(--company-accent) 18%,transparent) 100%),linear-gradient(0deg,transparent 97%,color-mix(in srgb,var(--company-accent) 18%,transparent) 100%)}
html[data-company-theme] main .card,html[data-company-theme] main .kpi{border-color:color-mix(in srgb,var(--company-accent) 25%,var(--line))}
.working-days-grid label{background:var(--card);color:var(--text);border-color:var(--line);font-weight:600;min-height:46px}
.working-days-grid label:has(input:checked){background:color-mix(in srgb,var(--company-accent) 14%,var(--card));border-color:var(--company-accent)}
.working-days-grid input[type="checkbox"]{accent-color:var(--company-accent);width:18px;height:18px;flex:none}
.elite-theme-control input[type="color"]{display:block;width:88px;height:42px;padding:3px;border:1px solid var(--line);border-radius:8px;background:var(--card);cursor:pointer}

/* Calendar job rows remain distinct from the customer profile action. */
.calendar-job-row{align-items:center;gap:12px}
.calendar-job-open{flex:1;min-width:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;padding:4px}
.calendar-job-open:hover strong,.calendar-job-open:focus-visible strong{text-decoration:underline}
.calendar-job-open:focus-visible{outline:2px solid var(--ui-accent,#9bd600);border-radius:6px}
.calendar-job-row>.calendar-customer-open{white-space:nowrap}
@media(max-width:600px){.calendar-job-row{flex-wrap:wrap}.calendar-job-open{flex-basis:100%}}

/* RWM OPS shared palette: live Landscaping and both demo portals. */
html[data-rwm-portal="true"][data-company-theme="lime"]{
  --bg:#f5f8f2;--card:#fff;--text:#1b2b20;--muted:#53695a;--line:#d5e5c8;
  --ui-accent-soft:#edf8dc;--ui-accent-ink:#315c0b;--shadow:0 9px 28px rgba(7,27,11,.08);
}
html[data-rwm-portal="true"][data-company-theme="lime"][data-theme="dark"]{
  --bg:#050805;--card:#111b13;--text:#f2faed;--muted:#b8cbb2;--line:#365439;
  --ui-accent-soft:#213b25;--ui-accent-ink:#e0ffad;--shadow:0 9px 28px rgba(0,0,0,.28);
  --rwm-background-line:color-mix(in srgb,var(--company-accent) 28%,transparent);
}
html[data-rwm-portal="true"] main,
html[data-rwm-portal="true"][data-rwm-landscape="true"] main{
  --rwm-background-line:color-mix(in srgb,var(--company-accent) 12%,transparent);
  background-image:
    linear-gradient(112deg,transparent 0 12%,var(--rwm-background-line) 12.06%,transparent 12.16%),
    linear-gradient(112deg,transparent 0 34%,var(--rwm-background-line) 34.06%,transparent 34.16%),
    linear-gradient(112deg,transparent 0 59%,var(--rwm-background-line) 59.06%,transparent 59.16%),
    linear-gradient(112deg,transparent 0 82%,var(--rwm-background-line) 82.06%,transparent 82.16%);
  background-size:100% 100%;
  background-attachment:fixed;
}
html[data-rwm-portal="true"][data-theme="dark"] main{
  --rwm-background-line:color-mix(in srgb,var(--company-accent) 28%,transparent);
}
html[data-rwm-portal="true"]:not([data-theme="dark"]) main .kpi .value{
  color:#548000;
}
html[data-rwm-portal="true"] .sidebar{background:var(--company-bg)!important;border-right:1px solid var(--company-accent)}
html[data-rwm-portal="true"] .sidebar .nav-btn:hover,
html[data-rwm-portal="true"] .sidebar .nav-btn.active{background:var(--company-surface);color:#fff;border-left-color:var(--company-accent)}
html[data-rwm-portal="true"] main .card,html[data-rwm-portal="true"] main .kpi{
  border-color:color-mix(in srgb,var(--company-accent) 24%,var(--line));
}
html[data-rwm-portal="true"] .app-shell .kpi .value{color:var(--company-accent)}
html[data-rwm-portal="true"][data-theme="dark"] .rwm-calendar-day{background:var(--card);color:var(--text)}
html[data-rwm-portal="true"][data-theme="dark"] .rwm-calendar-day.has-work{background:#1e3423}
html[data-rwm-portal="true"] dialog[id] .section-head:first-child{
  border-bottom-color:var(--company-accent);background:linear-gradient(110deg,var(--ui-accent-soft),var(--card));
}
html[data-rwm-portal="true"] dialog[id] .dialog-card{color:var(--text)}
html[data-rwm-portal="true"] dialog[id] .dialog-actions{background:var(--card)}
html[data-rwm-portal="true"] #customerDialog .customer-info-section>summary{background:#e6f0ff;color:#173b68}
html[data-rwm-portal="true"] #customerDialog .customer-payment-section>summary{background:#fff3d5;color:#665014}
html[data-rwm-portal="true"] #customerDialog .customer-profile-services>summary{background:#e9f7df;color:#285528}
html[data-rwm-portal="true"] #customerDialog .customer-profile-more>summary{background:#efe9fa;color:#48396b}
html[data-rwm-portal="true"] #customerDialog .customer-profile-completed>summary{background:#e5f0ff;color:#173b68}
html[data-rwm-portal="true"] #customerDialog .customer-visit{border-left-width:5px}
html[data-rwm-portal="true"] #customerDialog .customer-visit.visit-unpaid{
  background:#fff1c7!important;color:#624714!important;border-left-color:#e8b637
}
html[data-rwm-portal="true"] #customerDialog .customer-visit.visit-paid{
  background:#e1f5e8!important;color:#185436!important;border-left-color:#43ad6b
}
html[data-rwm-portal="true"] #customerDialog .customer-visit *{color:inherit}
html[data-rwm-portal="true"] #customerDialog .customer-service-card{border-left-color:#8dc34c}
html[data-rwm-portal="true"] #customerDialog .customer-service-card.service-paused{
  background:#fff4d6;border-left-color:#d7a83a;color:#5b4514
}
html[data-rwm-portal="true"] #customerDialog .customer-service-card.service-inactive,
html[data-rwm-portal="true"] #customerDialog .customer-service-card.service-lost{
  background:#f0f2f5;border-left-color:#8995a5;color:#354254
}
html[data-rwm-portal="true"] #dashboardView .dashboard-customer-row,
html[data-rwm-portal="true"] #dueList .list-item,
html[data-rwm-portal="true"] #nextDueBody tr.nextdue-overdue,
html[data-rwm-portal="true"] #nextDueBody tr.nextdue-soon,
html[data-rwm-portal="true"] #customersBody tr.customer-row-overdue,
html[data-rwm-portal="true"] #customersBody tr.customer-row-due-soon{
  background:#ffe3e5!important;color:#7b202a!important;border-left:4px solid #d8505e
}
html[data-rwm-portal="true"] #customersBody tr.customer-row-completed,
html[data-rwm-portal="true"] #nextDueBody tr.nextdue-recent{
  background:#e5f0ff!important;color:#173b68!important;border-left:4px solid #4f8bd9
}
html[data-rwm-portal="true"] #calendarDayJobs .calendar-job-row.calendar-due,
html[data-rwm-portal="true"] #calendarDayJobs .calendar-job-row.calendar-overdue{
  background:#ffe3e5!important;color:#7b202a!important;border-left:5px solid #d8505e
}
html[data-rwm-portal="true"] #calendarDayJobs .calendar-job-row.calendar-unpaid{
  background:#fff1c7!important;color:#624714!important;border-left:5px solid #e8b637
}
html[data-rwm-portal="true"] #calendarDayJobs .calendar-job-row.calendar-paid{
  background:#e1f5e8!important;color:#185436!important;border-left:5px solid #43ad6b
}
html[data-rwm-portal="true"] #calendarDayJobs .calendar-job-row .list-main span,
html[data-rwm-portal="true"] #calendarDayJobs .calendar-job-row strong{color:inherit}
html[data-rwm-portal="true"] .rwm-calendar-day.calendar-due-day,
html[data-rwm-portal="true"] .rwm-calendar-day.calendar-overdue-day{background:#fff0f1!important;border-color:#d8505e;color:#7b202a}
html[data-rwm-portal="true"] .rwm-calendar-day.calendar-unpaid-day{background:#fff2cf!important;border-color:#e8b637;color:#624714}
html[data-rwm-portal="true"] .rwm-calendar-day.calendar-paid-day{background:#e7f6ec!important;border-color:#43ad6b;color:#185436}
html[data-rwm-portal="true"] .rwm-calendar-day[class*="calendar-"] .calendar-date-number,
html[data-rwm-portal="true"] .rwm-calendar-day[class*="calendar-"] .calendar-day-meta{color:inherit}
html[data-rwm-portal="true"] #dashboardView .dashboard-recent-row.recent-unpaid,
html[data-rwm-portal="true"] #dashboardView .dashboard-unpaid-job,
html[data-rwm-portal="true"] #historyBody tr.history-unpaid{background:#fff1c7!important;color:#624714!important;border-left:4px solid #e8b637}
html[data-rwm-portal="true"] #dashboardView .dashboard-recent-row.recent-paid,
html[data-rwm-portal="true"] #historyBody tr.history-paid{background:#e1f5e8!important;color:#185436!important;border-left:4px solid #43ad6b}
html[data-rwm-portal="true"] #dashboardView .dashboard-recent-row *,
html[data-rwm-portal="true"] #dashboardView .dashboard-unpaid-job *,
html[data-rwm-portal="true"] #historyBody tr.history-paid *,
html[data-rwm-portal="true"] #historyBody tr.history-unpaid *{color:inherit}
html[data-rwm-portal="true"] #dashboardView .dashboard-recent-row button,
html[data-rwm-portal="true"] #dashboardView .dashboard-unpaid-job button{color:#17263a!important}
@media(max-width:700px){
 html[data-rwm-portal="true"] #dashboardView .dashboard-customer-row{grid-template-columns:1fr 1fr!important;gap:10px!important}
 html[data-rwm-portal="true"] #calendarDayJobs .calendar-job-row{flex-wrap:wrap}
}

/* Original RWM OPS dark canvas, recovered from operational-hardening
   styles.css at 8a3f154. The first three streaks keep their original
   positions; a fourth follows the same sharp lime construction. */
html[data-rwm-portal="true"][data-company-theme="lime"][data-theme="dark"]{
  --bg:#08131d;
  --card:#17222c;
  --text:#f4f8fb;
  --muted:#b9c7d1;
  --line:#3c5261;
  --ui-accent-soft:#20342b;
  --ui-accent-ink:#d9ffc4;
}
html[data-rwm-portal="true"][data-theme="dark"] body,
html[data-rwm-portal="true"][data-theme="dark"] .app-shell{
  background:#08131d;
}
html[data-rwm-portal="true"][data-theme="dark"] .sidebar{
  background:#08131d!important;
  border-right:1px solid #365943;
}
html[data-rwm-portal="true"][data-theme="dark"] main{
  background-color:#08131d;
  background-image:
    radial-gradient(ellipse at 38% 5%,rgba(126,255,54,.10) 0%,transparent 25%),
    radial-gradient(ellipse at 78% 95%,rgba(126,255,54,.08) 0%,transparent 28%),
    linear-gradient(125deg,transparent 0%,transparent 23.75%,rgba(126,255,54,.18) 23.82%,#7eff36 23.92%,#7eff36 24.02%,rgba(126,255,54,.22) 24.12%,transparent 24.22%,transparent 100%),
    linear-gradient(125deg,transparent 0%,transparent 48.75%,rgba(126,255,54,.16) 48.82%,#7eff36 48.92%,#7eff36 49.02%,rgba(126,255,54,.22) 49.12%,transparent 49.22%,transparent 100%),
    linear-gradient(125deg,transparent 0%,transparent 68.75%,rgba(126,255,54,.16) 68.82%,#7eff36 68.92%,#7eff36 69.02%,rgba(126,255,54,.22) 69.12%,transparent 69.22%,transparent 100%),
    linear-gradient(125deg,transparent 0%,transparent 73.25%,rgba(126,255,54,.16) 73.32%,#7eff36 73.42%,#7eff36 73.52%,rgba(126,255,54,.22) 73.62%,transparent 73.72%,transparent 100%);
  background-size:100% 100%;
  background-attachment:fixed;
}
html[data-rwm-portal="true"][data-theme="dark"] .sidebar .nav-btn.active{
  box-shadow:inset 3px 0 0 #71ff23;
}

/* RWM OPS light palette, selectively recovered from the steel-blue
   operational-hardening theme (c3c7d0e, b7a98c4). Semantic states below
   remain independent of this brand palette. */
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]){
  --bg:#f1f6fa;--card:#fff;--text:#172b3e;--muted:#51677b;--line:#b9cede;
  --company-accent:#3f6f9f;--company-bg:#315d88;--company-surface:#c7daea;
  --ui-accent:#3f6f9f;--ui-accent-soft:#d9e7f3;--ui-accent-ink:#294f73;
  --accent:#3f6f9f;--theme-on-accent:#fff;
  --shadow:0 9px 28px rgba(30,67,103,.08);
}
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) body,
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) .app-shell{
  background-color:#f1f6fa;color:#172b3e;
}
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) main{
  background-color:#f1f6fa;
  background-image:
    linear-gradient(118deg,transparent 0 16%,rgba(63,111,159,.14) 16.08% 16.23%,transparent 16.31% 100%),
    linear-gradient(118deg,transparent 0 38%,rgba(63,111,159,.09) 38.08% 38.21%,transparent 38.29% 100%),
    linear-gradient(118deg,transparent 0 69%,rgba(63,111,159,.11) 69.08% 69.23%,transparent 69.31% 100%),
    linear-gradient(62deg,transparent 0 84%,rgba(63,111,159,.06) 84.08% 84.20%,transparent 84.28% 100%);
  background-size:100% 100%;background-attachment:fixed;
}
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) .sidebar{
  background:linear-gradient(180deg,#315d88 0%,#668db3 16%,#b8cde0 35%,#d1e0ec 53%,#e4eef6 73%,#f8fbfd 100%)!important;
  border-right:1px solid #8faac2;
  color:#173b5c;
}
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) .sidebar .workspace-identity,
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) .sidebar .workspace-identity .muted{color:#f8fafc}
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) .sidebar .nav-btn,
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) .sidebar-note{color:#173b5c}
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) .sidebar .nav-btn.active,
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) .sidebar .nav-btn:hover{
  background:#c7daea;color:#173b5c;box-shadow:inset 3px 0 0 #3f6f9f;
}
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) .company-switcher-wrap{
  background:rgba(255,255,255,.82);border-color:#a9c3d9;
}
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) .company-switcher-wrap label{color:#294f73}
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) .app-shell .primary{
  background:#315d88;color:#fff;border-color:#315d88;box-shadow:none;
}
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) .app-shell .primary:hover{background:#274d72;border-color:#274d72}
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) .app-shell .secondary{
  background:#edf4fa;color:#294f73;border:1px solid #a9c3d9;
}
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) input,
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) select,
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) textarea{
  background:#fff;color:#172b3e;
}
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) input:focus,
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) select:focus,
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) textarea:focus{
  border-color:#3f6f9f;box-shadow:0 0 0 3px rgba(63,111,159,.16);
}
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) main .card,
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) main .kpi{
  background:#fff;border-color:#b9cede;box-shadow:0 9px 28px rgba(30,67,103,.08);
}
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) main .kpi{border-top-color:#8eafca}
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) main .kpi .value{color:#315d88}
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) table thead th{
  background:#e1ecf5;color:#294f73;border-bottom-color:#9fbad0;
}
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) .rwm-calendar-day.has-work{
  background:#dceaf4;border-color:#8fb1cc;color:#173b5c;
}
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) .rwm-calendar-day.has-work:hover{background:#c9deed}
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) .daily-team-empty-slot{background:#e7f0f7;border-color:#91b0ca}
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) .daily-team-active-1{background:#e0edf7;border-color:#8eb3d0}
html[data-rwm-portal="true"][data-company-theme="lime"]:not([data-theme="dark"]) dialog[id] .section-head:first-child{border-bottom-color:#3f6f9f;background:linear-gradient(110deg,#d9e7f3,#fff)}
/* Date states and paid/unpaid rows keep their existing semantic fills. */
html[data-rwm-portal="true"][data-theme="dark"] .rwm-calendar-day.has-work{
  background:#79e83f;border-color:#a1ff6e;color:#10200f;
}
html[data-rwm-portal="true"][data-theme="dark"] .rwm-calendar-day.has-work .calendar-date-number,
html[data-rwm-portal="true"][data-theme="dark"] .rwm-calendar-day.has-work .calendar-job-count,
html[data-rwm-portal="true"][data-theme="dark"] .rwm-calendar-day.has-work .calendar-day-meta{color:inherit;opacity:1}
html[data-rwm-portal="true"][data-theme="dark"] .rwm-calendar-day.has-work:hover{background:#8ff455}

/* Readability and completion-log proportions. Preserve horizontal scrolling
   on narrow screens instead of squeezing twelve fields into unreadable text. */
html[data-rwm-portal="true"] main{font-size:15px;line-height:1.45}
html[data-rwm-portal="true"] .sidebar .nav-btn{font-size:15px;line-height:1.35}
html[data-rwm-portal="true"] .kpi .label,
html[data-rwm-portal="true"] .kpi .sub,
html[data-rwm-portal="true"] .small{font-size:13px;line-height:1.4}
html[data-rwm-portal="true"] table{font-size:14px;line-height:1.4}
html[data-rwm-portal="true"] th{font-size:14px;line-height:1.3}
html[data-rwm-portal="true"] .app-shell button,
html[data-rwm-portal="true"] .app-shell input,
html[data-rwm-portal="true"] .app-shell select,
html[data-rwm-portal="true"] .app-shell textarea{font-size:14px}
html[data-rwm-portal="true"] #historyView .table-wrap{overflow-x:auto}
html[data-rwm-portal="true"] #historyView .table-wrap>table{
  table-layout:fixed;min-width:1500px;width:100%;
}
html[data-rwm-portal="true"] #historyView th{white-space:normal;vertical-align:bottom}
html[data-rwm-portal="true"] #historyView th:nth-child(1){width:6%}
html[data-rwm-portal="true"] #historyView th:nth-child(2){width:18%}
html[data-rwm-portal="true"] #historyView th:nth-child(3){width:5%}
html[data-rwm-portal="true"] #historyView th:nth-child(4){width:5%}
html[data-rwm-portal="true"] #historyView th:nth-child(5){width:5%}
html[data-rwm-portal="true"] #historyView th:nth-child(6){width:6%}
html[data-rwm-portal="true"] #historyView th:nth-child(7){width:4%}
html[data-rwm-portal="true"] #historyView th:nth-child(8){width:5%}
html[data-rwm-portal="true"] #historyView th:nth-child(9){width:5%}
html[data-rwm-portal="true"] #historyView th:nth-child(10){width:17%}
html[data-rwm-portal="true"] #historyView th:nth-child(11){width:7%}
html[data-rwm-portal="true"] #historyView th:nth-child(12){width:17%}
html[data-rwm-portal="true"] #historyBody td{overflow-wrap:anywhere;padding:12px 8px}
html[data-rwm-portal="true"] #historyBody td:nth-child(2){overflow-wrap:break-word}
html[data-rwm-portal="true"] #historyBody td:nth-child(2) .small{font-size:12px;line-height:1.35;margin-top:3px}
html[data-rwm-portal="true"] #historyBody .row-actions{flex-wrap:wrap;gap:6px!important;justify-content:flex-start!important}
html[data-rwm-portal="true"] #historyBody .row-actions button{padding:7px 9px;white-space:nowrap}
html[data-rwm-portal="true"] #historyBody td:nth-child(10){text-align:left!important}
html[data-rwm-portal="true"] .sidebar .brand-logo{display:none!important}
html[data-rwm-portal="true"][data-theme="dark"]:not([data-rwm-landscape="true"]) .sidebar .rwm-logo-group-dark,
html[data-rwm-portal="true"][data-theme="dark"][data-rwm-landscape="true"] .sidebar .rwm-logo-landscape-dark,
html[data-rwm-portal="true"]:not([data-theme="dark"]):not([data-rwm-landscape="true"]) .sidebar .rwm-logo-group-light,
html[data-rwm-portal="true"]:not([data-theme="dark"])[data-rwm-landscape="true"] .sidebar .rwm-logo-landscape-light{display:block!important}
html[data-rwm-portal="true"]:not([data-theme="dark"]) .sidebar .rwm-logo-group-light,
html[data-rwm-portal="true"]:not([data-theme="dark"]) .sidebar .rwm-logo-landscape-light{
  background:#fff;border:1px solid #b9cede;border-radius:10px;padding:5px;
  object-fit:contain;
}

/* Readability and compact workspace controls */
#dueList .dashboard-customer-row .list-main span{display:block;margin-top:4px;color:#56333a;font-size:14px;font-weight:600;line-height:1.35;text-decoration:underline;text-decoration-color:rgba(86,51,58,.35)}
#dueList .dashboard-customer-row .list-main strong{font-size:15px}
#dueList .dashboard-customer-row{min-height:84px}
#calendarView .calendar-date-number{font-size:18px;line-height:1.1;color:inherit}
#calendarView .calendar-job-count{font-size:13px;font-weight:750;line-height:1.3}
#calendarView .calendar-day-meta,#calendarView .calendar-day-note{font-size:12px;line-height:1.35}
#calendarView .rwm-calendar-day{min-height:112px;padding:10px}
.calendar-key{display:flex;flex-wrap:wrap;gap:8px 16px;margin-bottom:12px;font-size:13px;font-weight:650}
.calendar-key-item{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.calendar-key-item::before{content:"";width:13px;height:13px;border-radius:3px;border:1px solid rgba(15,23,42,.3);background:#e1ecf5}
.calendar-key-overdue::before{background:#ffe4e6;border-color:#e64b65}
.calendar-key-due::before{background:#fff0f0;border-color:#d98a67}
.calendar-key-unpaid::before{background:#fff2c9;border-color:#d8a326}
.calendar-key-paid::before{background:#dff5e9;border-color:#46ad73}
.calendar-key-scheduled::before{background:#dceaf4;border-color:#8fb1cc}
.calendar-key-today::before{background:transparent;border:2px solid var(--accent)}
.team-management-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.team-management-grid .list-item{display:flex;min-width:0;align-items:flex-start;flex-direction:column;gap:8px;padding:12px}
.team-management-grid .list-main span{display:block;line-height:1.35}
.team-management-grid .row-actions{width:100%;gap:6px}
.team-management-grid .row-actions button{flex:1;padding:7px 8px;font-size:12px}
#navCustomizeList{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
#navCustomizeList .list-item{padding:8px 10px;min-width:0}
.quick-nav-label{display:block;padding:0 8px;color:#d8e8f7;font-size:12px;font-weight:700}
.quick-nav-label select{display:block;width:100%;margin-top:5px;background:#fff;color:#172033}
#basicView>.card,#servicesView>.card{margin-bottom:14px}
@media(max-width:700px){.team-management-grid,#navCustomizeList{grid-template-columns:1fr}#calendarView .rwm-calendar-day{min-height:95px;padding:5px}#calendarView .calendar-date-number{font-size:16px}}

/* Simple calendar states and a persistent settings path */
#recentList .dashboard-recent-row .list-main strong{font-size:15px;line-height:1.3}
#recentList .dashboard-recent-row .list-main span{font-size:14px;line-height:1.35;font-weight:600;color:inherit;opacity:.92;margin-top:4px;display:block}
#recentList .dashboard-recent-row .money{font-size:14px}
html[data-rwm-portal="true"] #calendarView .rwm-calendar-day.calendar-empty-day{background:#f0f5f9!important;border-color:#bdccd8!important;color:#294358!important}
html[data-rwm-portal="true"][data-theme="dark"] #calendarView .rwm-calendar-day.calendar-empty-day{background:#172734!important;border-color:#405669!important;color:#f4f8fb!important}
html[data-rwm-portal="true"] #calendarView .rwm-calendar-day.calendar-open-day{background:#dceaf4!important;border-color:#709bbd!important;color:#143551!important}
html[data-rwm-portal="true"] #calendarView .rwm-calendar-day.calendar-complete-day{background:#dff5e8!important;border-color:#43ad6b!important;color:#174b2d!important}
html[data-rwm-portal="true"] #calendarView .rwm-calendar-day.today{outline:3px solid var(--accent);outline-offset:-4px}
.calendar-key-empty::before{background:#f0f5f9;border-color:#bdccd8}
html[data-theme="dark"] .calendar-key-empty::before{background:#172734;border-color:#405669}
.calendar-key-open::before{background:#dceaf4;border-color:#709bbd}
.calendar-key-complete::before{background:#dff5e8;border-color:#43ad6b}
.sidebar{display:flex;flex-direction:column}
.sidebar-footer{margin-top:auto;padding:12px 0 0;border-top:1px solid rgba(148,163,184,.25)}
.sidebar-footer #logoutBtn{width:100%;text-align:left}
.sidebar-footer .sidebar-note{margin-top:10px}
.settings-main-link{font-weight:700}
.page-trail{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:8px;max-width:100%}
.page-trail-button{border:0;background:transparent;color:var(--muted);font-size:13px;padding:3px 5px;cursor:pointer}
.page-trail-button:hover{text-decoration:underline;color:var(--accent)}
.page-trail-button[aria-current=page]{font-weight:750;color:var(--text);cursor:default}
#settingscenterView .settings-hub-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:1100px}
#settingscenterView .settings-link{min-height:112px;padding:18px 20px;border-left:4px solid #729abe;background:#eef5fb}
#settingscenterView .settings-link:nth-child(4n+2){border-left-color:#ae85c3;background:#f4eff8}
#settingscenterView .settings-link:nth-child(4n+3){border-left-color:#c79b4b;background:#fff7e7}
#settingscenterView .settings-link:nth-child(4n+4){border-left-color:#56a78d;background:#eaf7f2}
#settingscenterView .settings-link h3{font-size:17px;margin:0 0 8px;color:#18344d}
#settingscenterView .settings-link p{font-size:14px;line-height:1.4;color:#42566b;margin:0}
#settingscenterView .settings-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px}
html[data-theme=dark] #settingscenterView .settings-link{background:#1b3040;color:#f8fafc;border-color:#729abe}
html[data-theme=dark] #settingscenterView .settings-link:nth-child(4n+2){background:#30263c;border-color:#ae85c3}
html[data-theme=dark] #settingscenterView .settings-link:nth-child(4n+3){background:#3a3020;border-color:#c79b4b}
html[data-theme=dark] #settingscenterView .settings-link:nth-child(4n+4){background:#18382e;border-color:#56a78d}
html[data-theme=dark] #settingscenterView .settings-link h3{color:#fff}
html[data-theme=dark] #settingscenterView .settings-link p{color:#d1deea}
@media(max-width:720px){#settingscenterView .settings-hub-grid{grid-template-columns:1fr}.page-trail{gap:2px}}


/* Shared Settings palette: one coherent family per company theme and appearance. */
html[data-rwm-portal="true"]{
  --settings-accent:#3f6f9f;--settings-soft:#edf4fa;--settings-surface:#fff;
  --settings-border:#a9c3d9;--settings-ink:#294f73;--settings-muted:#536a7f;
}
html[data-rwm-portal="true"][data-company-theme="midnight"]:not([data-theme="dark"]){
  --settings-accent:#315d88;--settings-soft:#e7f0f8;--settings-border:#92b1cb;
}
html[data-rwm-portal="true"][data-company-theme="forest"]:not([data-theme="dark"]){
  --settings-accent:#38745d;--settings-soft:#edf7f1;--settings-border:#9dcab1;--settings-ink:#285643;
}
html[data-rwm-portal="true"][data-company-theme="custom"]:not([data-theme="dark"]){
  --settings-accent:var(--company-accent);--settings-soft:color-mix(in srgb,var(--company-accent) 9%,white);
  --settings-border:color-mix(in srgb,var(--company-accent) 35%,#b9cede);
}
html[data-rwm-portal="true"][data-theme="dark"]{
  --settings-accent:#aebccc;--settings-soft:#1a2835;--settings-surface:#14212e;
  --settings-border:#3e5365;--settings-ink:#f8fafc;--settings-muted:#c0ccda;
}
html[data-rwm-portal="true"][data-theme="dark"][data-company-theme="midnight"]{
  --settings-accent:#65a8ff;--settings-soft:#132841;--settings-border:#37658e;
}
html[data-rwm-portal="true"][data-theme="dark"][data-company-theme="forest"]{
  --settings-accent:#69c58b;--settings-soft:#162e23;--settings-border:#3a7054;
}
html[data-rwm-portal="true"][data-theme="dark"][data-company-theme="lime"]{
  --settings-accent:#71ff23;--settings-soft:#18232d;--settings-surface:#111c27;
  --settings-border:#577849;--settings-ink:#f8fafc;--settings-muted:#c2d0d9;
}
html[data-rwm-portal="true"][data-theme="dark"][data-company-theme="custom"]{
  --settings-accent:var(--company-accent);--settings-soft:color-mix(in srgb,var(--company-accent) 10%,#111c27);
  --settings-border:color-mix(in srgb,var(--company-accent) 36%,#354555);
}
html[data-rwm-portal="true"] #settingscenterView .settings-link,
html[data-rwm-portal="true"] #settingscenterView .settings-link:nth-child(n){
  background:var(--settings-soft)!important;border-left:4px solid var(--settings-accent)!important;
  border-color:var(--settings-border);color:var(--settings-ink)!important;
}
html[data-rwm-portal="true"] #settingscenterView .settings-link:nth-child(even){background:var(--settings-surface)!important}
html[data-rwm-portal="true"] #settingscenterView .settings-link h3{color:var(--settings-ink)!important}
html[data-rwm-portal="true"] #settingscenterView .settings-link p{color:var(--settings-muted)!important}
html[data-rwm-portal="true"] :is(
  #subscriptionView #subscriptionSummary,
  #subscriptionView .grid-two>.card,
  #workersView>section.card:first-of-type,
  #workersView>#dailyTeamsCard,
  #basicView>section.card:nth-of-type(2),
  #servicesView>section.card,
  #communicationsView>section.card,
  #auditView>section.card,
  #navcustomizeView>section.card,
  #backupView .grid-two>.card,
  #integrationsView .kpi-grid>.card
){background:var(--settings-soft)!important;border-top:4px solid var(--settings-accent)!important;color:var(--settings-ink)!important}
html[data-rwm-portal="true"] :is(
  #subscriptionView .grid-two>.card:nth-child(even),
  #servicesView>section.card:nth-of-type(even),
  #backupView .grid-two>.card:nth-child(even),
  #integrationsView .kpi-grid>.card:nth-child(even)
){background:var(--settings-surface)!important}
html[data-rwm-portal="true"] #workersView .team-management-grid .list-item,
html[data-rwm-portal="true"] #workersView .team-management-grid .list-item:nth-child(n){
  background:var(--settings-surface)!important;border-left:3px solid var(--settings-accent)!important;color:var(--settings-ink)!important
}
html[data-rwm-portal="true"] #workersView .team-management-grid .list-item:nth-child(even){background:var(--settings-soft)!important}
html[data-rwm-portal="true"] #workersView .team-management-grid .list-main strong{font-size:15px}
html[data-rwm-portal="true"] :is(#subscriptionView,#workersView,#basicView,#servicesView,#communicationsView,#auditView,#navcustomizeView,#backupView,#integrationsView) .card h2,
html[data-rwm-portal="true"] :is(#subscriptionView,#workersView,#basicView,#servicesView,#communicationsView,#auditView,#navcustomizeView,#backupView,#integrationsView) .card h3{color:var(--settings-ink)}

/* Route job picker: persistent selection and readable result rows. */
#dailyTeamJobsDialog{width:min(860px,calc(100vw - 32px));max-height:min(85vh,820px);padding:0;border:0;border-radius:16px;box-shadow:0 24px 80px rgba(0,0,0,.32)}
#dailyTeamJobsDialog .daily-team-jobs-dialog-card{width:100%;max-width:none;padding:0;display:flex;flex-direction:column;max-height:min(85vh,820px);overflow:hidden;background:var(--card);color:var(--text)}
#dailyTeamJobsDialog .section-head{padding:22px 26px 18px;margin:0;border-bottom:1px solid var(--settings-border);background:var(--settings-soft);align-items:flex-start}
#dailyTeamJobsDialog .section-head h2{font-size:21px;margin:0 0 5px}
#dailyTeamJobsDialog .section-head p{font-size:14px;margin:0;line-height:1.45}
#dailyTeamJobsDialog .daily-team-picker-body{padding:20px 26px;overflow:auto;min-height:0}
#dailyTeamJobsDialog .daily-team-search-label{display:block;font-weight:700;font-size:14px;margin-bottom:8px}
#dailyTeamJobsSearch{width:100%;padding:12px 14px;font-size:15px;border:1px solid var(--settings-border);border-radius:9px;background:var(--card);color:var(--text)}
#dailyTeamJobsSearch:focus{outline:2px solid var(--settings-accent);outline-offset:1px}
.daily-team-selection-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:20px 0 9px;font-size:14px}
#dailyTeamJobsSelectedCount{color:var(--settings-ink);font-weight:700}
.daily-team-selected-list{display:flex;align-items:center;align-content:flex-start;flex-wrap:wrap;gap:8px;min-height:56px;padding:10px;border:1px dashed var(--settings-border);border-radius:10px;background:var(--settings-soft);font-size:13px}
.daily-team-selected-chip{border:1px solid var(--settings-border);border-radius:999px;padding:7px 10px;background:var(--settings-surface);color:var(--settings-ink);font-weight:650;cursor:pointer}
.daily-team-selected-chip span{margin-left:6px;font-size:17px;line-height:0}
.daily-team-results-heading{font-weight:700;font-size:14px;margin:20px 0 8px}
#dailyTeamJobsChoices{max-height:300px;overflow:auto;border:1px solid var(--settings-border);border-radius:10px}
#dailyTeamJobsChoices .daily-team-job-choice{display:flex;align-items:center;gap:14px;margin:0;padding:12px 14px;cursor:pointer;border-bottom:1px solid var(--settings-border);background:var(--card);color:var(--text)}
#dailyTeamJobsChoices .daily-team-job-choice:last-child{border-bottom:0}
#dailyTeamJobsChoices .daily-team-job-choice:hover,#dailyTeamJobsChoices .daily-team-job-choice:has(input:checked){background:var(--settings-soft)}
#dailyTeamJobsChoices .daily-team-job-choice input{width:18px;height:18px;margin:0;flex:none;accent-color:var(--settings-accent)}
#dailyTeamJobsChoices .daily-team-job-details{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}
#dailyTeamJobsChoices .daily-team-job-details strong{font-size:15px}
#dailyTeamJobsChoices .daily-team-job-details small{font-size:13px;color:var(--muted);line-height:1.3}
#dailyTeamJobsChoices .daily-team-job-rate{font-size:14px;font-weight:700;white-space:nowrap}
#dailyTeamJobsDialog .dialog-actions{padding:16px 26px;margin:0;border-top:1px solid var(--settings-border);background:var(--card)}
#dailyTeamJobsDialog .dialog-actions .primary:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:600px){#dailyTeamJobsDialog .section-head,#dailyTeamJobsDialog .daily-team-picker-body,#dailyTeamJobsDialog .dialog-actions{padding-left:16px;padding-right:16px}}

/* Daily team cards: compact across the board with room for readable controls. */
#dailyTeamsList.daily-team-bubble-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
#dailyTeamsList .daily-team-drop{min-width:0;padding:18px;border:1px solid var(--settings-border);border-radius:13px;background:var(--settings-surface);box-shadow:0 8px 22px rgba(16,35,51,.06)!important}
#dailyTeamsList .daily-team-drop .section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin:0 0 16px}
#dailyTeamsList .daily-team-drop .section-head h2{font-size:18px;line-height:1.3;margin:0 0 5px!important}
#dailyTeamsList .daily-team-drop .section-head .small{font-size:13px;line-height:1.4}
#dailyTeamsList .daily-team-member-drop{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:36px;margin-bottom:13px}
#dailyTeamsList .daily-team-member{font-size:13px;line-height:1.2;padding:7px 9px;border-radius:7px}
#dailyTeamsList .daily-team-summary-line{display:flex;flex-wrap:wrap;align-items:center;gap:5px 12px;font-size:13px;line-height:1.5;margin:0 0 14px}
#dailyTeamsList .daily-team-summary-line .small{flex-basis:100%;font-size:12px;line-height:1.4}
#dailyTeamsList .daily-team-note-row{display:flex;gap:8px;align-items:center;margin:0 0 13px}
#dailyTeamsList .daily-team-note-input{flex:1;min-width:0;padding:9px 10px;font-size:13px}
#dailyTeamsList .daily-team-note-row button{flex:none}
#dailyTeamsList .row-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
#dailyTeamsList .row-actions button{font-size:13px;line-height:1.25;padding:9px 11px}
#dailyTeamsList .daily-team-expanded>.row-actions{margin:0 0 12px}
#dailyTeamsList .daily-team-job-row{min-width:0;gap:10px}
#dailyTeamsList .daily-team-job-row .list-main{min-width:0}
#dailyTeamsList .daily-team-job-meta{display:flex;flex-direction:column;gap:3px;line-height:1.35}
#dailyTeamsList .daily-team-job-row .row-actions{justify-content:flex-end}
#dailyTeamsList .daily-team-drop .empty{padding:12px 0;line-height:1.45}
@media(max-width:1250px){#dailyTeamsList.daily-team-bubble-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:740px){#dailyTeamsList.daily-team-bubble-grid{grid-template-columns:1fr}#dailyTeamsList .daily-team-drop{padding:15px}}

#calendarDayDialog .calendar-day-navigation{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#calendarDayDialog .calendar-day-navigation .secondary{font-size:13px;white-space:nowrap}
@media(max-width:620px){#calendarDayDialog .section-head{align-items:flex-start}#calendarDayDialog .calendar-day-navigation{width:100%;justify-content:space-between}#calendarDayDialog .calendar-day-navigation .secondary{flex:1}}

#dailyTeamsList .daily-team-job-row.daily-team-job-completed{background:#e4f7eb;border-color:#56b77c;color:#174b31}
#dailyTeamsList .daily-team-job-row.daily-team-job-completed .daily-team-job-status{color:#176137;font-weight:700}
[data-theme="dark"] #dailyTeamsList .daily-team-job-row.daily-team-job-completed{background:#143626;border-color:#48be73;color:#e8f8ec}
[data-theme="dark"] #dailyTeamsList .daily-team-job-row.daily-team-job-completed .daily-team-job-status{color:#8be7a3}

/* Keep the dashboard's actionable lists visible immediately after the KPIs. */
.dashboard-due-card{display:flex;flex-direction:column;height:min(72vh,720px);min-height:400px}
.completion-key{margin:8px 0 12px;gap:18px;flex-wrap:wrap}
.worker-summary-card{margin:14px 0}

.dashboard-attention-row{grid-template-columns:minmax(0,1fr)}

/* Dashboard lists share a fixed panel height and scroll their rows independently. */
#dashboardView .dashboard-main-panels{align-items:stretch}
#dashboardView .dashboard-main-panels>.card{
  display:flex;flex-direction:column;box-sizing:border-box;
  height:min(72vh,720px);min-height:400px;overflow:hidden
}
#dashboardView #dueList,#dashboardView #recentList{
  display:grid;grid-auto-rows:max-content;align-content:start;flex:1;min-height:0;
  overflow-y:auto;scrollbar-gutter:stable;gap:8px;padding:0 10px 6px 0
}
#dashboardView .dashboard-due-header{
  display:grid;grid-template-columns:minmax(0,2fr) minmax(80px,1fr) minmax(90px,1fr) minmax(100px,auto);
  gap:12px;padding:0 22px 8px 10px;font-weight:700
}
#dashboardView #dueList .dashboard-customer-row{
  display:grid;grid-template-columns:minmax(0,2fr) minmax(80px,1fr) minmax(90px,1fr) minmax(100px,auto);
  align-items:center;gap:12px;box-sizing:border-box;height:auto;min-height:104px;
  padding:10px 12px;overflow:visible;cursor:pointer
}
#dashboardView #dueList .dashboard-due-actions{
  display:flex;flex-direction:column;gap:7px;justify-self:end;align-self:center;
  width:100%;min-width:100px;max-width:124px
}
#dashboardView #dueList .dashboard-due-actions button{
  box-sizing:border-box;width:100%;min-height:31px;margin:0;padding:6px 8px;
  line-height:1.2;white-space:nowrap
}
#dashboardView #dashboardTeamStats{margin:0 0 14px}
#dashboardView .dashboard-team-heading{align-items:flex-start}
#dashboardView .dashboard-team-totals{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px 16px}
#dashboardView .dashboard-team-totals strong{font-size:16px}
#dashboardView .dashboard-team-totals small{flex-basis:100%;text-align:right}
#dashboardView .dashboard-team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
#dashboardView .dashboard-team-member{padding:12px;text-align:left}
#dashboardView .dashboard-team-member .value{font-size:18px}
#dashboardView .dashboard-team-member .sub{font-size:13px;line-height:1.4}
@media(max-width:900px){
  #dashboardView .dashboard-due-header{display:none}
  #dashboardView #dueList .dashboard-customer-row,
  html[data-rwm-portal="true"] #dashboardView #dueList .dashboard-customer-row{
    grid-template-columns:minmax(0,1fr) minmax(100px,auto)!important;gap:8px 12px!important
  }
  #dashboardView #dueList .dashboard-customer-row .list-main{grid-column:1;grid-row:1}
  #dashboardView #dueList .dashboard-customer-row .pill{grid-column:1;grid-row:2;justify-self:start}
  #dashboardView #dueList .dashboard-customer-row>strong{grid-column:1;grid-row:3}
  #dashboardView #dueList .dashboard-due-actions{grid-column:2;grid-row:1 / span 3}
}
@media(max-width:600px){
  #dashboardView .dashboard-team-totals{justify-content:flex-start}
  #dashboardView .dashboard-team-totals small{text-align:left}
}

/* Keep historic-record filters readable and compact across Settings and Operations. */
.record-date-filters{display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.record-date-filters label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:650}
.record-date-filters input{min-height:36px}
.record-date-filters button{min-height:36px}
#reviewsView>.card>p{max-width:72ch;line-height:1.5;margin:0 0 16px}

.signed-in-account{color:var(--muted);font-size:12px;line-height:1.4;overflow-wrap:anywhere;padding:4px 10px 9px}

/* New-company setup stays compact across themes and can be resumed from Settings. */
#onboardingGuide[hidden],#onboardingResumeBtn[hidden],#onboardingStartBtn[hidden]{display:none!important}
.onboarding-guide{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 18px;border-left:4px solid var(--accent);padding:16px 18px}
.onboarding-guide h2{font-size:18px;margin:4px 0 5px}.onboarding-guide p{margin:0;line-height:1.45;color:var(--muted)}
.onboarding-guide small{font-size:12px;font-weight:700;color:var(--accent)}
.onboarding-guide .row-actions{justify-content:flex-end;flex-shrink:0}
@media(max-width:820px){.onboarding-guide{align-items:stretch;flex-direction:column}.onboarding-guide .row-actions{justify-content:flex-start}}

/* Customer list: no recorded completion is blue; visits in the last three calendar days are green. */
#customersBody tr.customer-row-no-history{background:#e7f1ff!important;color:#183b69!important;border-left:4px solid #4f8bd9}
#customersBody tr.customer-row-completed,#nextDueBody tr.nextdue-recent{background:#e1f5e8!important;color:#185436!important;border-left:4px solid #43ad6b}
html[data-rwm-portal="true"] #customersBody tr.customer-row-no-history{background:#e5f0ff!important;color:#173b68!important;border-left:4px solid #4f8bd9}
html[data-rwm-portal="true"] #customersBody tr.customer-row-completed,
html[data-rwm-portal="true"] #nextDueBody tr.nextdue-recent{background:#e1f5e8!important;color:#185436!important;border-left:4px solid #43ad6b}
#customersBody tr.customer-row-no-history *{color:inherit}

/* Bulk due-date controls for the Next Due table. */
#nextdueView .bulk-due-toolbar{display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin-top:14px;padding:12px;border:1px solid var(--line,#cbd5df);border-radius:10px;background:var(--card,#fff)}
#nextdueView .bulk-due-toolbar label{display:grid;gap:4px;font-weight:600}
#nextdueView .bulk-due-toolbar input[type="date"]{min-width:150px}
#selectedDueCount{min-width:120px;font-weight:700}
#nextDueBody .bulk-due-select{width:18px;height:18px;cursor:pointer;accent-color:var(--ui-accent,#315d88)}
#nextdueView .bulk-due-toolbar + p{margin:8px 2px 0}


/* Member timesheets */
#timesheetsView .card{margin-bottom:16px}
.timesheet-day-card{border-top:3px solid var(--company-accent,#3f6f9f)}
.timesheet-day-card>.section-head{align-items:end;margin-bottom:16px;flex-wrap:wrap}
.timesheet-day-card>.section-head h3{margin:0 0 5px;font-size:19px}
.timesheet-day-card>.section-head label{min-width:180px;font-weight:700}
.timesheet-member-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.timesheet-member-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%;min-height:105px;text-align:left;padding:16px;border:1px solid var(--line);border-left:4px solid var(--company-accent,#3f6f9f);border-radius:12px;background:var(--card);color:var(--text);cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s}
.timesheet-member-card:hover,.timesheet-member-card:focus-visible{transform:translateY(-2px);box-shadow:var(--shadow);outline:2px solid var(--company-accent,#3f6f9f);outline-offset:2px}
.timesheet-member-card.has-time{border-left-color:#2f9d69;background:color-mix(in srgb,var(--card) 92%,#2f9d69)}
.timesheet-member-card strong{font-size:15px}.timesheet-member-card span{font-size:13px;line-height:1.4}.timesheet-member-card small{color:var(--muted);font-size:12px}
.timesheet-editor{margin-top:18px;padding:20px;border:1px solid var(--line);border-top:3px solid var(--company-accent,#3f6f9f);border-radius:12px;background:color-mix(in srgb,var(--card) 95%,var(--company-accent,#3f6f9f))}
.timesheet-editor .section-head{margin-bottom:15px;align-items:start}.timesheet-editor h3{margin:0 0 5px;font-size:19px}
.timesheet-mode{display:flex;gap:8px;margin:0 0 16px}.timesheet-mode button.active{background:var(--company-accent,#3f6f9f);color:#07111c;font-weight:700}
.timesheet-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px}
.timesheet-entry-grid label{display:grid;gap:7px;font-weight:650}.timesheet-entry-grid input{width:100%;min-height:42px}
.timesheet-pay-preview{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0 14px}
.timesheet-pay-preview span{display:grid;gap:5px;min-width:150px;padding:12px 15px;background:var(--card);border:1px solid var(--line);border-radius:10px;font-size:12px}
.timesheet-pay-preview strong{font-size:17px;color:var(--text)}
#timesheetPreviewGross{color:var(--company-accent,#3f6f9f)}
@media(max-width:640px){.timesheet-entry-grid{grid-template-columns:1fr}.timesheet-member-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.timesheet-member-card{min-height:120px}.timesheet-editor{padding:14px}}

.timesheet-row-note{display:block;margin-top:4px;color:var(--muted);font-size:11px;line-height:1.35}

/* Found Activity import review */
.found-import-card .found-mapping-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:12px;margin:14px 0}
.found-import-card label{display:grid;gap:5px;min-width:0}
.found-import-card input[type=file]{max-width:100%;font-size:inherit}
.found-import-card #foundAmountDirection{max-width:360px;margin:5px 0 12px}
.found-import-card #foundPreview{margin-top:18px}
.found-import-card #foundPreview .section-head{gap:12px;flex-wrap:wrap}
.found-import-card #foundPreview .table-wrap{max-height:520px;overflow:auto}
.found-import-card #foundPreview table{min-width:900px}
.found-import-card #foundPreview th,.found-import-card #foundPreview td{padding:10px 9px;vertical-align:top;line-height:1.45}
.found-import-card #foundPreview td:nth-child(3){min-width:180px}
.found-import-card #foundPreview td:nth-child(5){min-width:145px}
.found-import-card #foundPreview td:last-child{min-width:160px}
.found-import-card #foundPreview input[type=checkbox]{width:19px;height:19px}
.found-import-card #foundPreview select{width:100%}
.found-import-card .found-review-row{background:color-mix(in srgb,var(--warning,#dfa936) 9%,transparent)}

/* Every customer row has a clear status surface. */
#customersBody tr.customer-row-normal,
#customersBody tr.customer-row-no-history,
html[data-rwm-portal="true"] #customersBody tr.customer-row-normal,
html[data-rwm-portal="true"] #customersBody tr.customer-row-no-history{
  background:#e5f0ff!important;color:#173b68!important;border-left:4px solid #4f8bd9!important
}
#customersBody tr.customer-row-due-soon,
html[data-rwm-portal="true"] #customersBody tr.customer-row-due-soon{
  background:#fff1c7!important;color:#624714!important;border-left:4px solid #e8b637!important
}
#customersBody tr.customer-row-normal *,#customersBody tr.customer-row-no-history *,
#customersBody tr.customer-row-due-soon *{color:inherit}

/* Adjacent-month dates fill the first and last calendar weeks. */
#calendarView .rwm-calendar-day.adjacent-month{border-style:dashed!important}
#calendarView .rwm-calendar-day.adjacent-month .calendar-date-number{font-size:13px;letter-spacing:.02em;text-decoration:underline;text-underline-offset:3px}


/* Open calendar day: make each customer's name, address and job details scannable. */
#calendarDayJobs .calendar-job-row{gap:14px;padding:14px 16px;line-height:1.45}
#calendarDayJobs .calendar-job-open{display:flex;flex-direction:column;align-items:flex-start;gap:5px;line-height:1.45;white-space:normal}
#calendarDayJobs .calendar-job-open strong{font-size:15px;line-height:1.35}
#calendarDayJobs .calendar-job-open span{display:block;font-size:13px;line-height:1.45;overflow-wrap:anywhere}
#calendarDayJobs .calendar-job-row>strong{font-size:14px;white-space:nowrap}
#calendarDayJobs .calendar-customer-open{margin-left:auto}
@media(max-width:600px){
  #calendarDayJobs .calendar-job-row{gap:9px;padding:12px}
  #calendarDayJobs .calendar-job-open{flex-basis:100%}
}

/* Compact worker management cards show each member's selected-day revenue share. */
.team-management-grid .team-member-route-link{border:0;background:none;color:inherit;font:inherit;font-weight:700;text-align:left;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.team-management-grid .team-member-route-link:focus-visible{outline:2px solid var(--accent,#3f6f9f);outline-offset:3px}
.team-management-grid .team-member-day-share{display:block;font-size:14px;font-weight:700;line-height:1.35;margin-top:7px;color:var(--text,#142334)}
.team-management-grid .team-member-share-detail{display:block;font-size:12px;line-height:1.4}

/* Keep worker route popups centred and route actions visible. */
dialog#ownerWorkerRoutePanel[open]{position:fixed;inset:0;margin:auto!important;max-height:calc(100dvh - 32px);overflow:auto}
.route-map-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 16px}
a.route-map-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 14px;border:1px solid var(--ui-accent);border-radius:8px;background:var(--ui-accent-soft);color:var(--ui-accent-ink);font-weight:700;text-decoration:none;line-height:1.4}
a.route-map-link:hover{filter:brightness(.95)}
a.route-map-link:focus-visible{outline:3px solid var(--ui-accent);outline-offset:3px}

/* Customer map and accessible matching-customer list. */
.customer-map-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}
.customer-map-filters label{display:grid;gap:6px;font-size:13px;font-weight:650}
.customer-map-filters input,.customer-map-filters select{width:100%;min-width:0;min-height:42px}
.customer-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px}
#customerMapCanvas{height: min(65vh,650px);min-height:420px;border:1px solid var(--line);border-radius:12px;z-index:0}
.customer-map-results{max-height:650px;overflow:auto;padding:16px}
.map-customer-result{width:100%;text-align:left;display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:8px;cursor:pointer}
.customer-map-legend{display:flex;flex-wrap:wrap;gap:16px;font-size:13px;margin:12px 0}
.customer-map-legend span{display:flex;align-items:center;gap:6px}
.customer-map-legend i{display:inline-block;width:12px;height:12px;border-radius:50%}
.customer-map-marker span{display:block;width:24px;height:24px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);border:3px solid white;box-shadow:0 2px 5px #0006}
#customerMapCanvas .leaflet-popup-content{color:#17263a;min-width:180px}
#customerMapCanvas .leaflet-popup-content p{margin:8px 0}
#customerMapCanvas .leaflet-popup-content button{margin-right:8px}
.customer-map-unmatched{margin:20px 0}.map-unmatched-customer{margin:4px}
@media(max-width:1000px){.customer-map-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-map-layout{grid-template-columns:1fr}.customer-map-results{max-height:300px}}
@media(max-width:550px){.customer-map-filters{grid-template-columns:1fr}#customerMapCanvas{min-height:360px}}

.manual-pin-controls{margin:16px 0;padding:16px}.manual-pin-controls label{display:grid;gap:6px;max-width:420px;margin:12px 0}.manual-pin-controls .row-actions{flex-wrap:wrap}.address-suggestions{display:grid;gap:4px;max-height:240px;overflow:auto}.address-suggestion{background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:10px;text-align:left;cursor:pointer}.address-suggestion:hover,.address-suggestion:focus-visible{background:var(--ui-accent-soft)}

/* Shared palette across desktop, mobile, settings and dialogs. */
html[data-company-theme]{
 --ui-accent-soft:color-mix(in srgb,var(--company-accent) 12%,var(--card));--ui-accent-ink:var(--text);
 --settings-accent:var(--company-accent);--settings-soft:var(--ui-accent-soft);--settings-surface:var(--card);
 --settings-border:var(--line);--settings-ink:var(--text);--settings-muted:var(--muted);
}
html[data-company-theme][data-industry][data-theme="dark"]{
 --bg:var(--company-bg);--card:var(--company-surface);--text:#f2f5ef;--muted:#bcc5b8;
 --line:color-mix(in srgb,var(--company-accent) 24%,var(--company-surface));--dark:var(--company-bg);
}
html[data-rwm-portal="true"][data-company-theme][data-theme]{
 --settings-accent:var(--company-accent);--settings-soft:var(--ui-accent-soft);--settings-surface:var(--card);
 --settings-border:var(--line);--settings-ink:var(--text);--settings-muted:var(--muted);
 --ui-accent-soft:color-mix(in srgb,var(--company-accent) 12%,var(--card));--ui-accent-ink:var(--text);
}
html[data-company-theme] .app-shell :is(input,select,textarea),
html[data-company-theme] :is(.secondary,.pill):not(.overdue):not(.due):not(.completed){
 background:var(--card);color:var(--text);border-color:var(--line);
}
html[data-company-theme] .text-btn{color:var(--text)}
html[data-company-theme] .rwm-calendar-day.has-work{background:var(--ui-accent-soft)!important}
html[data-company-theme] .sidebar .nav-btn:hover{background:var(--company-surface)}
html[data-rwm-portal="true"][data-company-theme]:not([data-theme="dark"]) main .kpi .value{color:var(--text)}
html[data-company-theme] #customerDialog :is(.customer-info-section,.customer-payment-section,.customer-profile-services,.customer-profile-more,.customer-profile-completed)>summary{
 background:var(--ui-accent-soft);color:var(--text);
}
.workspace-theme-choice{display:flex;align-items:center;gap:8px;margin:10px 0;font-size:13px}
.workspace-theme-choice select{min-height:44px;max-width:220px}
@media(max-width:768px){.workspace-theme-choice{width:100%}.workspace-theme-choice select{flex:1;max-width:none}}

/* Make rescheduling an obvious, accessible action in each customer profile. */
html:root #customerDialog :is(.customer-change-next-due,.change-service-next-due){
 display:inline-flex;align-items:center;justify-content:center;
 min-height:44px;padding:10px 18px;margin-top:8px;
 border:2px solid var(--company-accent,var(--ui-accent));
 border-radius:999px;background:var(--ui-accent-soft)!important;
 color:var(--text)!important;font-weight:750;font-size:14px;
 line-height:1.2;text-decoration:none;cursor:pointer;
}
html:root #customerDialog :is(.customer-change-next-due,.change-service-next-due):hover{
 background:var(--company-accent,var(--ui-accent))!important;color:var(--theme-on-accent,#fff)!important;
}
html:root #customerDialog :is(.customer-change-next-due,.change-service-next-due):focus-visible{
 outline:3px solid var(--company-accent,var(--ui-accent));outline-offset:3px;
}

/* Login backdrop: static lime accents keep the form readable on every screen. */
#loginScreen.login-screen{
 background-color:#030603;
 background-image:
 radial-gradient(ellipse at 16% 18%,#71ff2310,transparent 48%),
 linear-gradient(112deg,transparent 0 14%,#71ff2380 14.06%,transparent 14.18%),
 linear-gradient(112deg,transparent 0 36%,#71ff235c 36.06%,transparent 36.18%),
 linear-gradient(112deg,transparent 0 66%,#71ff2380 66.06%,transparent 66.18%),
 linear-gradient(112deg,transparent 0 88%,#71ff235c 88.06%,transparent 88.18%);
 background-size:100% 100%;
}
#loginScreen .login-card{position:relative;z-index:1;background:#0c100cf5;border-color:#71ff2340;box-shadow:0 24px 80px #0009,0 0 45px #71ff2309}
#loginScreen .login-card input{background:#080d08;border-color:#3b4d34}
#loginScreen .login-card input:focus-visible{outline:2px solid #71ff23;outline-offset:2px}
#loginScreen .login-card form .primary{background:#71ff23;color:#102006;font-weight:700}

/* Login appearance toggle: Black & Lime dark, Midnight Blue light. */
.login-mode-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px;font-size:12px;color:#c4cdbd}
.login-mode-toggle{min-height:44px;padding:9px 13px;border-radius:999px;border:1px solid #89b56a;background:#172211;color:#e5f5d9;font-size:12px;font-weight:650;cursor:pointer}
.login-mode-toggle:focus-visible{outline:3px solid #71ff23;outline-offset:3px}
html[data-login-mode="light"] #loginScreen.login-screen{
 color-scheme:light;background-color:#eef4fb;
 background-image:radial-gradient(ellipse at 16% 18%,#65a8ff20,transparent 48%),
 linear-gradient(112deg,transparent 0 14%,#377bd25c 14.06%,transparent 14.18%),
 linear-gradient(112deg,transparent 0 36%,#377bd23d 36.06%,transparent 36.18%),
 linear-gradient(112deg,transparent 0 66%,#377bd25c 66.06%,transparent 66.18%),
 linear-gradient(112deg,transparent 0 88%,#377bd23d 88.06%,transparent 88.18%);
}
html[data-login-mode="light"] #loginScreen .login-card{background:#fffffff5;border-color:#9bbde0;box-shadow:0 24px 70px #173f7120;color:#172b3e}
html[data-login-mode="light"] #loginScreen :is(.login-card>p,.login-card label,.login-mode-controls,.text-btn,.muted,.small,.login-product-title small){color:#315373}
html[data-login-mode="light"] #loginScreen .login-card input{background:#f7faff;color:#172b3e;border-color:#91b0ca}
html[data-login-mode="light"] #loginScreen .login-card input:focus-visible{outline-color:#377bd2}
html[data-login-mode="light"] #loginScreen .login-card .primary{background:#315d88!important;color:#fff!important}
html[data-login-mode="light"] #loginScreen .login-mode-toggle{background:#e7f0fb;color:#173f71;border-color:#91b0ca}
html[data-login-mode="light"] #loginScreen .login-mode-toggle:focus-visible{outline-color:#377bd2}
html[data-login-mode="light"] #loginScreen .login-error{color:#b42332!important}
html[data-login-mode="light"] #loginScreen #recoveryBackLink{color:#315d88}
@media(max-width:420px){.login-mode-controls{gap:8px}.login-mode-toggle{font-size:11px;padding:9px 10px}}

/* Distinct light palettes change surfaces, controls and borders as well as accents. */
html:root[data-company-theme="graphite"]:not([data-theme="dark"]){
 --bg:#e9ebee!important;--card:#fafafa!important;--text:#252a30!important;--muted:#5c626b!important;--line:#bdc3ca!important;
 --ui-accent-soft:#dce0e5!important;--ui-accent-ink:#303841!important;
 --settings-soft:#e0e4e9!important;--settings-surface:#fafafa!important;--settings-accent:#596675!important;
}
html:root[data-company-theme="midnight"]:not([data-theme="dark"]){
 --bg:#e8f1fc!important;--card:#f8fbff!important;--text:#142f50!important;--muted:#496481!important;--line:#9bbbe0!important;
 --ui-accent-soft:#d4e5fa!important;--ui-accent-ink:#204d82!important;
 --settings-soft:#d9e8fb!important;--settings-surface:#f8fbff!important;--settings-accent:#315d88!important;
}
html:root[data-company-theme="forest"]:not([data-theme="dark"]){
 --bg:#e5f0e6!important;--card:#f7fcf7!important;--text:#173c2b!important;--muted:#4d6d59!important;--line:#9abc9f!important;
 --ui-accent-soft:#cfe6d2!important;--ui-accent-ink:#245a38!important;
 --settings-soft:#d4e9d6!important;--settings-surface:#f7fcf7!important;--settings-accent:#38745d!important;
}
html:root:is([data-company-theme="graphite"],[data-company-theme="midnight"],[data-company-theme="forest"]):not([data-theme="dark"]){
 --settings-ink:var(--text)!important;--settings-muted:var(--muted)!important;--settings-border:var(--line)!important;
}
html:root:is([data-company-theme="graphite"],[data-company-theme="midnight"],[data-company-theme="forest"]):not([data-theme="dark"]) main{background-color:var(--bg)!important;color:var(--text)}
html:root:is([data-company-theme="graphite"],[data-company-theme="midnight"],[data-company-theme="forest"]):not([data-theme="dark"]) main :is(.card,.kpi,.dashboard-team-member){
 background:var(--card)!important;border-color:var(--line)!important;color:var(--text)!important;
}
html:root:is([data-company-theme="graphite"],[data-company-theme="midnight"],[data-company-theme="forest"]):not([data-theme="dark"]) .app-shell :is(input,select,textarea,.secondary){
 background:var(--ui-accent-soft)!important;border-color:var(--line)!important;color:var(--text)!important;
}
html:root:is([data-company-theme="graphite"],[data-company-theme="midnight"],[data-company-theme="forest"]):not([data-theme="dark"]) .app-shell .primary{
 background:var(--settings-accent)!important;color:#fff!important;
}

/* Light login logo blends into the panel instead of displaying a black tile. */
html[data-login-mode="light"] #loginScreen .login-rwm-mark{background:transparent}
html[data-login-mode="light"] #loginScreen .login-rwm-mark img{filter:invert(1) grayscale(1);mix-blend-mode:multiply}

/* Readable Graphite metrics and compact map pin controls. */
html:root[data-company-theme="graphite"]:not([data-theme="dark"]) .app-shell #dashboardView :is(.kpi,.dashboard-team-member) .value{
 color:#374151!important;
}
.manual-pin-controls{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.3fr) auto;gap:8px 14px;align-items:end}
.manual-pin-controls h3,.manual-pin-controls>p{grid-column:1/-1;margin:0}
.manual-pin-controls>label{display:grid;gap:4px;min-width:0}
.manual-pin-controls input,.manual-pin-controls select{width:100%;box-sizing:border-box}
.manual-pin-controls .row-actions{margin:0;display:flex;gap:6px;flex-wrap:wrap}
.manual-pin-controls #manualPinStatus:empty{display:none}
@media(max-width:1000px){.manual-pin-controls{grid-template-columns:1fr 1fr}.manual-pin-controls .row-actions{grid-column:1/-1}}
@media(max-width:560px){.manual-pin-controls{grid-template-columns:1fr}.manual-pin-controls>label,.manual-pin-controls .row-actions{grid-column:1/-1}}

/* Mobile palettes cover the screen, navigation and working surfaces. */
@media(max-width:768px){
 html:root[data-company-theme]{--mobile-bg:#e4e8ec;--mobile-card:#f9fafb;--mobile-ink:#202b36;--mobile-muted:#526171;--mobile-line:#aebac5}
 html:root[data-company-theme="midnight"]{--mobile-bg:#dce9fa;--mobile-card:#f5f9ff;--mobile-ink:#142e4c;--mobile-muted:#415e7d;--mobile-line:#a0bbdc}
 html:root[data-company-theme="forest"]{--mobile-bg:#dcecdf;--mobile-card:#f3faf4;--mobile-ink:#193b26;--mobile-muted:#476751;--mobile-line:#99bea3}
 html:root[data-company-theme][data-theme="dark"]{--mobile-bg:var(--company-bg);--mobile-card:var(--company-surface);--mobile-ink:#f1f5f9;--mobile-muted:#bcc8d3;--mobile-line:color-mix(in srgb,var(--company-accent) 35%,var(--company-surface))}
 html:root[data-company-theme] body .app-shell{background:var(--mobile-bg)!important;color:var(--mobile-ink)!important}
 html:root[data-company-theme] body .app-shell main{background-color:var(--mobile-bg)!important;background-image:linear-gradient(125deg,transparent 30%,color-mix(in srgb,var(--company-accent) 18%,transparent) 30.2%,transparent 30.7%,transparent 71%,color-mix(in srgb,var(--company-accent) 18%,transparent) 71.2%,transparent 71.7%)!important}
 html:root[data-company-theme] body .app-shell .sidebar{background:var(--company-surface)!important;color:#f1f5f9!important;border-bottom:4px solid var(--company-accent)!important}
 html:root[data-company-theme] body .sidebar :is(.nav-btn,.nav-group-toggle,.theme-toggle-btn,.workspace-identity,.workspace-identity .muted,.brand span){color:#e4edf6!important}
 html:root[data-company-theme] body .sidebar .nav-btn.active{background:color-mix(in srgb,var(--company-accent) 24%,var(--company-surface))!important}
 html:root[data-company-theme] body .app-shell :is(.card,.kpi,.dashboard-team-member,.toolbar-card,.dialog-card){background:var(--mobile-card)!important;color:var(--mobile-ink)!important;border-color:var(--mobile-line)!important}
 html:root[data-company-theme] body .app-shell :is(.topbar h1,.topbar p,.page-trail,.page-trail button,.card h2,.card h3,.kpi .value,.dashboard-team-member .value){color:var(--mobile-ink)!important}
 html:root[data-company-theme] body .app-shell :is(.muted,.kpi .label,.kpi .sub,.list-main span){color:var(--mobile-muted)!important}
 html:root[data-company-theme] body .app-shell :is(input,select,textarea,.secondary){background:var(--mobile-card)!important;color:var(--mobile-ink)!important;border-color:var(--mobile-line)!important}
 html:root[data-company-theme] body .app-shell .primary{background:var(--company-accent)!important;color:var(--theme-on-accent)!important}
}
.worker-preview-dialog{width:min(720px,calc(100vw - 24px));max-height:92dvh;border:1px solid var(--line);border-radius:18px;background:var(--card);color:var(--text);padding:20px}
.worker-preview-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
.worker-preview-controls label{display:grid;gap:6px}.worker-preview-controls input,.worker-preview-controls select{min-height:44px;max-width:100%}
.worker-preview-phone{max-width:430px;margin:16px auto;padding:18px;border:2px solid var(--company-accent);border-radius:24px;background:var(--company-bg);color:#edf4fb}
.worker-preview-phone h3{margin:4px 0}.worker-preview-stop{margin:12px 0;background:var(--company-surface);padding:14px;border:1px solid var(--company-accent);border-radius:12px}
.worker-preview-stop summary{cursor:pointer;padding:10px 0;font-weight:700}.worker-preview-stop p{overflow-wrap:anywhere}.worker-preview-actions{display:flex;flex-wrap:wrap;gap:6px}.worker-preview-actions button{padding:8px;color:#edf4fb;background:#ffffff18;border:1px solid #ffffff40;border-radius:8px}
.app-install-help{max-width:540px;width:calc(100vw - 24px);padding:24px;border-radius:16px;background:var(--card);color:var(--text);border:1px solid var(--line)}
@media(max-width:520px){.worker-preview-controls{grid-template-columns:1fr}.worker-preview-dialog{padding:14px}}

/* Compact phone layout, preserving words and natural logo proportions. */
@media(max-width:768px){
 .sidebar .brand-logo{width:150px!important;height:44px!important;max-height:44px!important;object-fit:contain!important}
 main{padding:12px!important;min-width:0}.view{min-width:0}
 main .card,main .kpi{overflow-wrap:normal;word-break:normal;padding:14px}
 .section-head{flex-wrap:wrap;gap:10px}.section-head h2{font-size:21px}
 .form-grid,.settings-hub-grid{grid-template-columns:1fr!important;gap:12px}
 .toolbar,.row-actions{flex-wrap:wrap;gap:8px}
 button,.nav-btn,.nav-group-toggle,label,h2,h3{word-break:normal!important;overflow-wrap:normal!important;hyphens:none}
 .row-actions button{flex:0 1 auto;min-height:42px;max-width:100%}
 input,select,textarea{max-width:100%;min-width:0;font-size:16px}
 .list-item{flex-wrap:wrap;gap:10px}.list-main{min-width:0;flex:1 1 220px}
 .table-wrap{overflow-x:auto} .worker-preview-controls{grid-template-columns:1fr}
 dialog{max-width:calc(100vw - 24px);max-height:90dvh;overflow-y:auto}
}

/* Google Maps InfoWindows use a white surface in every workspace theme. */
html:root #customerMapCanvas .gm-style-iw,
html:root #customerMapCanvas .gm-style-iw-c,
html:root #customerMapCanvas .gm-style-iw-d{
 background:#fff!important;color:#1f2937!important;color-scheme:light;
 font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
 font-size:14px;line-height:1.5;
}
html:root #customerMapCanvas .gm-style-iw-d strong{display:block;color:#111827!important;font-size:16px;font-weight:750}
html:root #customerMapCanvas .gm-style-iw-d p{color:#374151!important;font-size:14px;line-height:1.5;margin:8px 0;overflow-wrap:anywhere}
html:root #customerMapCanvas .gm-style-iw-d :is(button.secondary,a.route-map-link){
 display:inline-flex;align-items:center;justify-content:center;min-height:44px;
 margin:6px 6px 4px 0;padding:10px 14px;border:1px solid #111827!important;
 border-radius:9px;background:#111827!important;color:#fff!important;
 font-size:14px;font-weight:650;text-decoration:none;
}
html:root #customerMapCanvas .gm-style-iw-d :is(button.secondary,a.route-map-link):hover{background:#273244!important}
html:root #customerMapCanvas .gm-style-iw-d :is(button,a):focus-visible{outline:3px solid #2563eb;outline-offset:3px}
html:root #customerMapCanvas .gm-style-iw-c button.gm-ui-hover-effect{opacity:1}

/* Readable Graphite light-mode actions in workspace pages and body-level dialogs. */
html:root[data-company-theme="graphite"]:not([data-theme="dark"]) body :is(.app-shell,dialog) .primary{
 background:#4b5563!important;
 color:#fff!important;
}
html:root[data-company-theme="graphite"]:not([data-theme="dark"]) body :is(.app-shell,dialog) .primary:hover:not(:disabled){
 background:#374151!important;
 filter:none;
}


/* Personal Notepad */
.notepad-launcher{position:fixed;right:0;top:46%;z-index:1080;width:34px;height:72px;border:1px solid var(--line);border-right:0;border-radius:14px 0 0 14px;background:var(--dark);color:#fff;font-size:28px;cursor:pointer;box-shadow:0 8px 24px #0002}
.notepad-drawer{position:fixed;z-index:1081;top:0;right:0;width:min(390px,92vw);height:100dvh;box-sizing:border-box;padding:20px;background:var(--card);color:var(--text);border-left:1px solid var(--line);box-shadow:-12px 0 36px #0003;display:flex;flex-direction:column;gap:14px}
.notepad-drawer[hidden],.notepad-launcher[hidden]{display:none!important}
.notepad-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.notepad-head>div{display:grid;gap:2px}.notepad-head strong{font-size:20px}.notepad-head span{font-size:12px;color:var(--muted)}
.notepad-label{font-weight:700}.notepad-drawer textarea{flex:1;min-height:240px;width:100%;box-sizing:border-box;resize:none;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--text);font:inherit;line-height:1.55}
.notepad-setting{display:flex;align-items:center;gap:10px;margin-top:14px}.notepad-setting input{width:auto}
@media(max-width:600px){.notepad-drawer{width:100vw}.notepad-launcher{top:auto;bottom:96px}}

/* Personal Notepad */
.notepad-launcher{position:fixed;right:0;top:46%;z-index:1080;width:34px;height:72px;border:1px solid var(--line);border-right:0;border-radius:14px 0 0 14px;background:var(--dark);color:#fff;font-size:28px;cursor:pointer;box-shadow:0 8px 24px #0002}
.notepad-drawer{position:fixed;z-index:1081;top:0;right:0;width:min(390px,92vw);height:100dvh;box-sizing:border-box;padding:20px;background:var(--card);color:var(--text);border-left:1px solid var(--line);box-shadow:-12px 0 36px #0003;display:flex;flex-direction:column;gap:14px}
.notepad-drawer[hidden],.notepad-launcher[hidden]{display:none!important}
.notepad-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.notepad-head>div{display:grid;gap:2px}.notepad-head strong{font-size:20px}.notepad-head span{font-size:12px;color:var(--muted)}
.notepad-label{font-weight:700}.notepad-drawer textarea{flex:1;min-height:240px;width:100%;box-sizing:border-box;resize:none;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--text);font:inherit;line-height:1.55}
.notepad-setting{display:flex;align-items:center;gap:10px;margin-top:14px}.notepad-setting input{width:auto}
@media(max-width:600px){.notepad-drawer{width:100vw}.notepad-launcher{top:auto;bottom:96px}}
/* Calendar month cells: compact counts on phones instead of truncated "6 don…" / "$55…" text. Desktop unchanged. */
.calendar-day-compact{display:none}
@media(max-width:700px){#calendarView .rwm-calendar-day .calendar-job-count,#calendarView .rwm-calendar-day .calendar-day-meta{display:none!important}#calendarView .rwm-calendar-day .calendar-day-compact{display:flex;flex-direction:column;gap:1px;font-size:12px;font-weight:700;line-height:1.2;white-space:nowrap;overflow:visible}}
