:root{
  --bg:#f4f7f8;--card:#fff;--text:#102a34;--muted:#617780;--line:#d8e1e5;
  --accent:#0b4f6c;--accent2:#e6f1f5;--good:#e6f4ea;--warn:#fff4d6;--bad:#fde8e8;
}
*{box-sizing:border-box}body{margin:0;background:var(--bg);font:16px/1.35 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text)}
button,select,input,textarea{font:inherit}.app-shell{max-width:760px;margin:0 auto;padding:18px 16px 92px}.topbar,.panel-head,.button-grid,.metric-grid,.bottom-nav{display:flex;gap:12px}
.topbar,.panel-head{align-items:center;justify-content:space-between}.topbar{margin-bottom:18px}h1,h2,h3{margin:.15rem 0}h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1rem}
.eyebrow,.muted,small{color:var(--muted);font-size:.82rem}.view{display:none}.view.active{display:block}.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;margin:12px 0}
.metric-grid{display:grid;grid-template-columns:repeat(2,1fr);margin-bottom:12px}.metric-grid.three{grid-template-columns:repeat(3,1fr)}
.metric{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px;min-width:0}.metric span{display:block;color:var(--muted);font-size:.78rem}.metric strong{font-size:1.1rem}
.primary,.secondary,.text-btn{border:0;border-radius:12px;padding:12px 14px}.primary{background:var(--accent);color:white}.secondary{background:#fff;border:1px solid var(--line)}.text-btn{padding:6px 0;background:transparent;color:var(--accent)}.full{width:100%;margin:8px 0}
.list{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden}.list-row{width:100%;border:0;border-bottom:1px solid var(--line);padding:14px;background:#fff;display:flex;justify-content:space-between;align-items:center;text-align:left}.list-row:last-child{border-bottom:0}
.badge{background:var(--accent2);border-radius:999px;padding:5px 9px;font-size:.78rem}.badge.good{background:var(--good)}.badge.warn{background:var(--warn)}.badge.bad{background:var(--bad)}
.field-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.field-grid.three{grid-template-columns:repeat(3,1fr)}.field-grid.two{grid-template-columns:repeat(2,1fr)}
label{display:block;font-size:.9rem}input[type=number],input[type=email],input[type=password],textarea,select{width:100%;margin-top:5px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:11px;color:var(--text)}
.picker-stack{display:grid;gap:8px}.picker-row{display:grid;grid-template-columns:1fr 130px;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:5px 0}.picker-row:last-child{border-bottom:0}.picker-row select{margin:0}
.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.check-row{margin-top:10px}.button-grid{display:grid;grid-template-columns:1fr 1fr;margin-top:12px}
.notice{margin-top:12px;padding:12px;border-radius:12px;background:var(--good)}.hidden{display:none!important}
.bottom-nav{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(760px,100%);background:rgba(255,255,255,.96);border-top:1px solid var(--line);padding:9px 12px calc(9px + env(safe-area-inset-bottom));z-index:20}
.bottom-nav button{flex:1;border:0;background:transparent;padding:10px 6px;border-radius:10px;color:var(--muted)}.bottom-nav button.active{background:var(--accent2);color:var(--accent);font-weight:600}
@media(min-width:650px){.metric-grid{grid-template-columns:repeat(4,1fr)}.check-grid{grid-template-columns:repeat(4,1fr)}}

.subhead{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.tabs-control{display:grid;grid-template-columns:auto 130px;align-items:center;justify-content:end;gap:10px}
.inline-check{display:flex;align-items:center;gap:6px;font-size:.82rem;color:var(--muted);white-space:nowrap}
.inline-check input{margin:0}
.button-grid.single{grid-template-columns:1fr}
.route-actions{display:flex;align-items:center;gap:8px}
.secondary.compact{padding:9px 11px}
.exception-check{display:flex;align-items:center;gap:10px;padding:12px;border-bottom:1px solid var(--line)}
.exception-check:last-child{border-bottom:0}
@media(max-width:520px){
  .tabs-picker{grid-template-columns:1fr;gap:7px}
  .tabs-control{width:100%;grid-template-columns:minmax(0,1fr) 110px;justify-content:stretch;gap:8px}
  .inline-check{justify-content:flex-start;white-space:normal;line-height:1.2}
  .route-actions{align-items:flex-end;flex-direction:column}
}

.topbar-status{display:flex;align-items:flex-end;flex-direction:column;gap:4px}
.version-label{font-size:.72rem;color:var(--muted)}

.auth-gate{position:fixed;inset:0;z-index:100;background:var(--bg);display:flex;align-items:flex-start;justify-content:center;padding:56px 16px}
.auth-panel{width:min(440px,100%);margin:0}
.auth-panel input{width:100%;margin-top:5px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:11px;color:var(--text)}
.full-width-text{width:100%;text-align:center}
body.authenticated .auth-gate{display:none}
body:not(.authenticated) .topbar,
body:not(.authenticated) .view,
body:not(.authenticated) .bottom-nav{visibility:hidden}

.auth-gate{pointer-events:auto}
.auth-panel{position:relative;z-index:101;pointer-events:auto}
.auth-panel button,.auth-panel input{pointer-events:auto}
.auth-link-button{
  width:100%;
  border:0;
  background:transparent;
  color:var(--accent);
  padding:12px 8px;
  margin-top:2px;
  text-align:center;
  cursor:pointer;
  font-weight:600;
}
.auth-link-button:hover{text-decoration:underline}

.auth-notice-error{background:var(--bad)}


/* v0.2.4 sync/account visibility */
.status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}
.status-grid>div{min-width:0;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:10px}
.status-label{display:block;color:var(--muted);font-size:.75rem;margin-bottom:3px}
.status-grid strong{display:block;font-size:.9rem;overflow-wrap:anywhere}
.sync-actions{display:flex;gap:10px;margin-top:14px}
.sync-actions button{flex:1}
.sync-panel .notice{white-space:pre-wrap}
.sync-details{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.sync-details summary{cursor:pointer;color:var(--accent);font-weight:600}
.sync-details pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px;font-size:.75rem}
.notice.sync-error{background:var(--bad)}
.notice.sync-success{background:var(--good)}
.notice.sync-info{background:var(--accent2)}
@media(max-width:520px){.status-grid{grid-template-columns:1fr}.sync-panel-head{align-items:flex-start}}

/* v0.2.7 field-use/auth hardening */
.stay-signed-in{display:flex;align-items:center;gap:9px;margin:10px 0 14px;font-weight:600}
.stay-signed-in input{width:auto!important;margin:0!important;transform:scale(1.15)}
.visit-time-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.time-metric{font:inherit;text-align:left;width:100%;cursor:pointer;appearance:none;-webkit-appearance:none;position:relative;overflow:hidden;display:block}
.time-metric small{display:block;margin-top:4px;color:var(--muted);font-size:.68rem;font-weight:600}
.native-time-picker{position:absolute;inset:0;width:100%;height:100%;opacity:.01;border:0;background:transparent;z-index:2;cursor:pointer;-webkit-appearance:auto;appearance:auto}.native-time-picker:disabled{pointer-events:none;cursor:default}.time-metric:has(.native-time-picker:disabled){cursor:default}
@media(max-width:600px){.visit-time-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.time-metric{min-height:92px}}


/* v0.2.9 cross-platform visit-time editor */
.time-dialog{border:0;border-radius:16px;padding:0;box-shadow:0 22px 60px rgba(0,0,0,.28);max-width:360px;width:calc(100% - 32px)}
.time-dialog::backdrop{background:rgba(15,23,42,.48)}
.time-dialog-card{padding:22px}.time-dialog-card h3{margin:3px 0 18px}.desktop-time-label{display:grid;gap:7px;font-weight:700}.desktop-time-label input{font:inherit;font-size:1.1rem;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text)}
.time-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.time-dialog-actions button{min-width:100px}
@media (hover:hover) and (pointer:fine){.native-time-picker{display:none}.time-metric{cursor:pointer}.time-metric:hover{outline:2px solid var(--accent);outline-offset:-2px}.time-metric small{pointer-events:none}}

/* v0.3.0 field color language */
.chem-tone{border-radius:12px;padding:8px 10px;border:1px solid transparent}
.field-grid .chem-tone{font-weight:700}
.picker-row.chem-tone{border-bottom:0;margin:1px 0}
.chem-yellow{background:#fff8cc;border-color:#eadf8d}
.chem-red{background:#fde3e1;border-color:#e8b7b3}
.chem-brown{background:#efe1d2;border-color:#d4b99e}
.chem-green{background:#e3f3e4;border-color:#bdd9bf}
.chem-blue{background:#e1effb;border-color:#bad3e9}
.chem-tone select{background:rgba(255,255,255,.82)}

/* v0.3.0 maintenance workflow */
.maintenance-head{align-items:center}
.maintenance-summary-panel{padding:12px 14px}
.maintenance-toolbar{display:grid;grid-template-columns:minmax(180px,260px) 1fr;align-items:end;gap:16px}
.maintenance-summary{text-align:right;padding-bottom:10px}
.maintenance-list{display:grid;gap:12px}
.maintenance-card{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.maintenance-card-head{padding:13px 14px 10px;display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:1px solid var(--line)}
.maintenance-card-head strong{display:block}.maintenance-card-head .muted{margin-top:2px}
.maintenance-service-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(190px,1.5fr) auto;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}
.maintenance-service-row:last-child{border-bottom:0}
.maintenance-type{font-weight:700}
.maintenance-dates{font-size:.82rem;line-height:1.45;color:var(--muted)}
.maintenance-dates strong{color:var(--text);font-weight:700}
.maintenance-row-actions{display:flex;align-items:center;gap:8px}
.maintenance-row-actions .badge{white-space:nowrap}
.maintenance-log-btn{white-space:nowrap;border:1px solid var(--line);border-radius:10px;background:#fff;padding:8px 10px;color:var(--accent);font-weight:700;cursor:pointer}
.maintenance-dialog{border:0;border-radius:16px;padding:0;box-shadow:0 22px 60px rgba(0,0,0,.28);max-width:520px;width:calc(100% - 28px)}
.maintenance-dialog::backdrop{background:rgba(15,23,42,.48)}
.maintenance-dialog-card{padding:22px}
.maintenance-dialog-card h3{margin:3px 0 18px}
.maintenance-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.maintenance-form-grid input[type=date],.maintenance-form-grid input[type=number]{width:100%;margin-top:5px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:11px;color:var(--text);font:inherit}
.maintenance-notes-row{grid-column:1/-1}
@media(max-width:620px){
  .maintenance-toolbar{grid-template-columns:1fr}.maintenance-summary{text-align:left;padding:0}
  .maintenance-card-head{flex-direction:column}
  .maintenance-service-row{grid-template-columns:1fr;gap:7px}
  .maintenance-row-actions{justify-content:space-between}
  .maintenance-log-btn{min-height:42px}
  .maintenance-form-grid{grid-template-columns:1fr}.maintenance-notes-row{grid-column:auto}
}

/* v0.3.1 polished High Tide visual system */
:root{
  --bg:#f3f9fd;--card:#ffffff;--text:#092b3a;--muted:#617987;--line:#d5e3eb;
  --accent:#073b88;--accent-dark:#062b67;--accent2:#e5f4ff;--aqua:#2fc7f4;
  --good:#e4f7ec;--warn:#fff4d6;--bad:#fde8e8;
}
body{background:linear-gradient(180deg,#edf8ff 0,#f8fbfd 300px,#f3f7f9 100%)}
.app-shell{max-width:980px;padding-top:12px}
.branded-topbar{padding:8px 2px 12px;border-bottom:1px solid rgba(7,59,136,.12)}
.topbar-brand{display:flex;align-items:center;gap:10px}.topbar-mark{width:38px;height:38px;border-radius:10px;object-fit:contain;background:#fff;box-shadow:0 2px 8px rgba(6,43,103,.12)}
.topbar h1{font-size:1.25rem;color:var(--accent-dark)}
.badge{font-weight:700}.primary{background:linear-gradient(135deg,var(--accent-dark),#075bb3);box-shadow:0 5px 14px rgba(6,43,103,.16);font-weight:700;cursor:pointer}.primary:active{transform:translateY(1px)}
.panel{box-shadow:0 8px 22px rgba(21,68,92,.055)}
.dashboard-hero{position:relative;overflow:hidden;text-align:center;margin:0 -16px 18px;padding:20px 16px 18px;background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(229,247,255,.94));border-bottom:1px solid #cde7f4}
.dashboard-hero:after{content:"";position:absolute;left:-10%;right:-10%;bottom:-35px;height:80px;background:radial-gradient(ellipse at center,rgba(47,199,244,.22),transparent 65%);pointer-events:none}
.dashboard-logo{display:block;width:min(290px,68vw);max-height:170px;object-fit:contain;margin:0 auto 4px;mix-blend-mode:multiply}
.dashboard-title{font-size:1.5rem;letter-spacing:.13em;font-weight:900;color:var(--accent-dark)}
.dashboard-subtitle{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:2px;color:#0875cf;font:italic 1.25rem Georgia,serif}.dashboard-subtitle:before,.dashboard-subtitle:after{content:"";width:64px;height:1px;background:#72bfe8}
.dashboard-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.dashboard-stat{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:9px;background:#fff;border:1px solid #d3e1e9;border-radius:14px;padding:14px;box-shadow:0 6px 18px rgba(18,63,88,.08);min-width:0}
.dashboard-stat small,.dashboard-stat span:not(.stat-icon){display:block;color:var(--muted);font-size:.74rem}.dashboard-stat strong{display:block;font-size:1.08rem;color:#111;margin:2px 0;white-space:nowrap}.stat-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-size:1.45rem;font-weight:800}
.stat-date .stat-icon{color:#0d7ae7;background:#e9f4ff}.stat-route .stat-icon{color:#1c9d50;background:#e8f8ee}.stat-complete .stat-icon{color:#8652cc;background:#f1eafb}.stat-chem .stat-icon{color:#e87800;background:#fff0df}
.stat-route div>span:last-child{color:#159447}.stat-complete div>span:last-child{color:#7545b7}.stat-chem div>span:last-child{color:#df6d00}
.route-progress-track{height:7px;background:#dcebf3;border-radius:999px;overflow:hidden;margin:14px 2px 10px}.route-progress-bar{height:100%;width:0;background:linear-gradient(90deg,#16a35b,#33c67a);border-radius:999px;transition:width .25s ease}
.dashboard-route-button{width:100%;min-height:52px;font-size:1.03rem;margin:0 0 10px}.dashboard-mini-status{display:flex;justify-content:center;gap:22px;color:var(--muted);font-size:.78rem;margin-bottom:4px}.dashboard-mini-status b{color:var(--accent-dark)}
.sync-panel{margin-top:16px}.sync-panel h2{color:var(--accent-dark)}
.auth-gate{background:linear-gradient(180deg,#eaf8ff,#f8fbfd)}.auth-panel{text-align:left}.auth-logo{display:block;width:min(280px,80%);margin:0 auto 16px;mix-blend-mode:multiply}
.bottom-nav{width:min(980px,100%);box-shadow:0 -8px 24px rgba(8,45,70,.08);padding-top:7px}.bottom-nav button{display:flex;flex-direction:column;align-items:center;gap:2px;min-height:52px}.bottom-nav button.active{background:#e8f4fb;color:#075cb0}.nav-icon{font-size:1.25rem;line-height:1}.bottom-nav button>span:last-child{font-size:.76rem}
@media(max-width:760px){.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-stat{padding:12px}.sync-panel{margin-top:12px}.dashboard-hero{padding-top:12px}.dashboard-logo{width:min(250px,72vw)}}
@media(max-width:390px){.dashboard-stat{grid-template-columns:34px 1fr;gap:7px}.stat-icon{width:32px;height:32px;font-size:1.1rem}.dashboard-stat strong{font-size:.98rem}.dashboard-mini-status{gap:12px}}


/* v0.3.2 dark mode + route progress */
.theme-toggle{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--accent-dark);padding:6px 10px;font-weight:800;font-size:.76rem;cursor:pointer;box-shadow:0 2px 8px rgba(6,43,103,.08)}
.theme-toggle span:first-child{font-size:1rem;line-height:1}
.topbar-status{align-items:flex-end}
.route-inline-progress{margin:10px 0 12px;padding:11px 13px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 5px 14px rgba(18,63,88,.05)}
.route-inline-progress-head{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:.84rem}
.route-inline-progress-head strong{color:var(--text)}
.route-tab-progress{margin:8px 0 0;height:8px}
.route-customer-row{position:relative;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .08s ease}
.route-customer-row:active{transform:scale(.995)}
.route-customer-row.completed{background:linear-gradient(90deg,#dcf7e6,#eefbf3);border-bottom-color:#a9dfbd;box-shadow:inset 5px 0 0 #1da55a}
.route-customer-row.completed .route-customer-main strong{color:#0b6f3a;font-weight:900}
.route-customer-row.completed .muted{color:#3f7357}
.route-customer-row.completed .badge.good{background:#1da55a;color:#fff}
@media(hover:hover) and (pointer:fine){.route-customer-row:hover{background:#f4faff}.route-customer-row.completed:hover{background:linear-gradient(90deg,#d4f4e0,#e9f9ef)}}

body.dark-mode{
  --bg:#081820;--card:#10242e;--text:#e9f7fb;--muted:#9db4c0;--line:#28414d;
  --accent:#62b8ff;--accent-dark:#d8eeff;--accent2:#16384a;--aqua:#35c9f5;
  --good:#173e2b;--warn:#493d18;--bad:#4a2426;
  background:linear-gradient(180deg,#07151d 0,#0a1c25 300px,#081820 100%);
  color-scheme:dark;
}
body.dark-mode .branded-topbar{border-bottom-color:#24414f}
body.dark-mode .topbar-mark,body.dark-mode .theme-toggle{background:#f7fbfd}
body.dark-mode .topbar h1,body.dark-mode .sync-panel h2,body.dark-mode .dashboard-mini-status b{color:#d8eeff}
body.dark-mode .dashboard-hero{background:linear-gradient(180deg,#102731,#0b202a);border-bottom-color:#254653}
body.dark-mode .dashboard-logo,body.dark-mode .auth-logo{mix-blend-mode:normal;border-radius:12px}
body.dark-mode .dashboard-title{color:#e7f5ff}
body.dark-mode .dashboard-subtitle{color:#62b8ff}
body.dark-mode .dashboard-stat{background:#10242e;border-color:#29434f;box-shadow:0 6px 18px rgba(0,0,0,.18)}
body.dark-mode .dashboard-stat strong{color:#f5fbff}
body.dark-mode .route-progress-track{background:#223b47}
body.dark-mode .panel,body.dark-mode .list,body.dark-mode .maintenance-card,body.dark-mode .route-inline-progress{background:#10242e;border-color:#28414d;box-shadow:0 8px 22px rgba(0,0,0,.14)}
body.dark-mode .list-row{background:#10242e;color:var(--text);border-bottom-color:#28414d}
body.dark-mode .secondary,body.dark-mode .maintenance-log-btn{background:#142c37;color:#d8eeff;border-color:#36515e}
body.dark-mode input[type=number],body.dark-mode input[type=email],body.dark-mode input[type=password],body.dark-mode input[type=date],body.dark-mode input[type=time],body.dark-mode textarea,body.dark-mode select,body.dark-mode .auth-panel input,body.dark-mode .maintenance-form-grid input[type=date],body.dark-mode .maintenance-form-grid input[type=number]{background:#0b1d25;color:#ecf8fc;border-color:#34505d}
body.dark-mode .status-grid>div,body.dark-mode .sync-details pre{background:#0b1d25;border-color:#28414d}
body.dark-mode .bottom-nav{background:rgba(8,24,32,.97);border-top-color:#28414d;box-shadow:0 -8px 24px rgba(0,0,0,.2)}
body.dark-mode .bottom-nav button.active{background:#173a4c;color:#70c0ff}
body.dark-mode .auth-gate{background:linear-gradient(180deg,#071820,#0a1e27)}
body.dark-mode .time-dialog,body.dark-mode .maintenance-dialog{background:#10242e;color:var(--text)}
body.dark-mode .time-dialog-card,body.dark-mode .maintenance-dialog-card{background:#10242e}
body.dark-mode .chem-yellow{background:#4a4319;border-color:#756a28}
body.dark-mode .chem-red{background:#492426;border-color:#73393c}
body.dark-mode .chem-brown{background:#3d3027;border-color:#604a3a}
body.dark-mode .chem-green{background:#1d3d28;border-color:#315f40}
body.dark-mode .chem-blue{background:#17354a;border-color:#285473}
body.dark-mode .chem-tone select{background:rgba(7,22,29,.78);color:#f1fbff}
body.dark-mode .route-customer-row.completed{background:linear-gradient(90deg,#153d29,#102e22);border-bottom-color:#2c6845;box-shadow:inset 5px 0 0 #35c776}
body.dark-mode .route-customer-row.completed .route-customer-main strong{color:#7ce5a7}
body.dark-mode .route-customer-row.completed .muted{color:#9cc9ad}
body.dark-mode .route-customer-row.completed .badge.good{background:#259b5a;color:#fff}
@media(hover:hover) and (pointer:fine){body.dark-mode .route-customer-row:hover{background:#15303c}body.dark-mode .route-customer-row.completed:hover{background:linear-gradient(90deg,#184832,#123729)}}
@media(max-width:520px){.theme-toggle{padding:6px 8px}.theme-toggle span:last-child{display:none}}

/* v0.3.3 business dashboard + missed visits */
.business-head{margin-bottom:10px}
.business-filter-panel{padding:12px 14px;margin-bottom:14px}
.business-toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,220px));gap:12px;align-items:end}
.business-filter-summary{margin-top:8px;font-size:.82rem}
.business-section-title{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:18px 2px 9px}.business-section-title span{font-weight:900;color:var(--accent-dark);font-size:1.02rem}.business-section-title small{color:var(--muted)}
.business-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.operations-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.business-kpi{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:13px;box-shadow:0 5px 15px rgba(18,63,88,.055);min-width:0}.business-kpi small,.business-kpi span{display:block;color:var(--muted);font-size:.72rem}.business-kpi strong{display:block;color:var(--text);font-size:1.25rem;margin:4px 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.business-kpi.kpi-revenue{box-shadow:inset 0 3px 0 #3b9bf3,0 5px 15px rgba(18,63,88,.055)}.business-kpi.kpi-blue{box-shadow:inset 0 3px 0 #277dc9,0 5px 15px rgba(18,63,88,.055)}.business-kpi.kpi-profit{box-shadow:inset 0 3px 0 #24a35b,0 5px 15px rgba(18,63,88,.055)}.business-kpi.kpi-profit strong{color:#148149}.business-kpi.kpi-chem{box-shadow:inset 0 3px 0 #e59d19,0 5px 15px rgba(18,63,88,.055)}
.business-chart-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}.business-chart-card{margin:0;padding:14px}.business-chart-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.business-chart-head h3{margin:2px 0 0;color:var(--text);font-size:1rem}.business-chart-head>strong{color:var(--accent-dark)}
.bar-chart{display:grid;gap:9px}.bar-row{display:grid;grid-template-columns:32px minmax(0,1fr) 64px;gap:8px;align-items:center;font-size:.78rem}.bar-label{font-weight:800;color:var(--muted)}.bar-track{height:12px;border-radius:999px;background:#e4edf2;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,#1777c8,#36c7f0);border-radius:999px;min-width:0}.bar-row strong{text-align:right;font-size:.76rem;color:var(--text)}.bar-row.active .bar-label{color:#0d7cd3}.bar-row.active .bar-fill{background:linear-gradient(90deg,#0750a4,#16a35b)}
.business-table-card{margin-top:12px}.business-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}.business-table{width:100%;border-collapse:collapse;min-width:760px;font-size:.78rem}.business-table th,.business-table td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}.business-table thead th{position:sticky;top:0;background:var(--accent2);color:var(--accent-dark);font-weight:900}.business-table th:first-child{text-align:left}.business-table tbody th{font-weight:700;color:var(--text)}.business-table tbody tr:nth-child(even){background:rgba(35,127,184,.035)}.business-footnote{font-size:.74rem;margin:10px 2px 0}
.missed-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}.missed-log-panel{margin-bottom:12px}.missed-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:10px}.missed-customer-list{max-height:330px;overflow:auto;margin:10px 0}.missed-customer-summary{display:grid;gap:8px}.empty-state-good{padding:14px;border-radius:12px;background:var(--good);color:#137342;font-weight:800}.missed-allowance-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card)}.missed-allowance-row>div:first-child span,.allowance-meter span{display:block;color:var(--muted);font-size:.76rem}.allowance-meter{text-align:right}.allowance-dots{display:flex;justify-content:flex-end;gap:4px;margin-bottom:4px}.allowance-dots i{display:block;width:10px;height:10px;border-radius:50%;background:#d9e7ee}.allowance-dots i.used{background:#e6a11a}.missed-allowance-row.exceeded{border-color:#df7777;background:var(--bad)}.missed-allowance-row.exceeded .allowance-meter strong{color:#c94a4a}.missed-history{display:grid;gap:8px}.missed-history-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.missed-history-row:last-child{border-bottom:0}.missed-history-row span{display:block;color:var(--muted);font-size:.76rem}.missed-history-row>div:last-child{text-align:right}
.five-nav button{min-width:0}.five-nav button>span:last-child{font-size:.7rem}
body.dark-mode .business-kpi,body.dark-mode .missed-allowance-row{background:#10242e;border-color:#28414d}.dark-mode .bar-track{background:#223b47}.dark-mode .business-table thead th{background:#17384a;color:#d8eeff}.dark-mode .business-table tbody tr:nth-child(even){background:rgba(80,172,229,.045)}.dark-mode .empty-state-good{background:#173e2b;color:#7ce5a7}.dark-mode .allowance-dots i{background:#2d4651}.dark-mode .allowance-dots i.used{background:#db9a22}
@media(max-width:900px){.business-kpi-grid,.operations-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.business-chart-grid{grid-template-columns:1fr}.missed-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.business-toolbar{grid-template-columns:1fr 1fr}.business-kpi-grid,.operations-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.business-kpi strong{font-size:1.1rem}.missed-summary-grid{grid-template-columns:1fr 1fr}.missed-summary-grid .business-kpi:last-child{grid-column:1/-1}.missed-form-grid{grid-template-columns:1fr 1fr}.five-nav button{padding-left:3px;padding-right:3px}.five-nav .nav-icon{font-size:1.1rem}.five-nav button>span:last-child{font-size:.62rem}.missed-allowance-row{align-items:flex-start}}
@media(max-width:390px){.business-toolbar,.missed-form-grid{grid-template-columns:1fr}.business-kpi-grid,.operations-grid{grid-template-columns:1fr 1fr}.business-kpi{padding:11px}.business-kpi strong{font-size:1rem}.five-nav button>span:last-child{font-size:.58rem}}

/* v0.3.4 customers + settings */
.seven-nav{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;justify-content:flex-start}.seven-nav::-webkit-scrollbar{display:none}.seven-nav button{flex:1 0 78px;min-width:78px}.seven-nav button>span:last-child{font-size:.66rem}
.customer-toolbar-panel{padding:12px 14px;margin-bottom:12px}.customer-toolbar{display:grid;grid-template-columns:180px minmax(220px,1fr) 120px;gap:12px;align-items:end}.customer-count{border:1px solid var(--line);border-radius:12px;background:var(--card);padding:9px 11px}.customer-count small{display:block;color:var(--muted);font-size:.7rem}.customer-count strong{font-size:1.15rem;color:var(--accent-dark)}
.customer-list{display:grid;gap:9px}.customer-card{width:100%;display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:12px;align-items:center;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:13px 14px;color:var(--text);box-shadow:0 5px 14px rgba(18,63,88,.05);cursor:pointer}.customer-card:hover{border-color:#9fcbe5;background:#f8fcff}.customer-card-stop{font-size:.72rem;color:var(--muted);font-weight:800}.customer-card-stop b{display:block;font-size:1rem;color:var(--accent-dark)}.customer-card-main strong,.customer-card-main span,.customer-card-main small{display:block}.customer-card-main strong{font-size:.98rem}.customer-card-main span{color:var(--muted);font-size:.8rem;margin-top:2px}.customer-card-main small{color:var(--muted);font-size:.72rem;margin-top:5px}.customer-card-edit{font-weight:900;color:var(--accent)}
.customer-dialog-card{max-width:620px}.customer-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.customer-form-grid label.wide{grid-column:1/-1}.customer-form-grid input,.customer-form-grid select{width:100%}.customer-stop-hint{font-size:.76rem;margin:12px 0 0}.customer-dialog-actions{display:flex;align-items:center;gap:9px;margin-top:18px}.dialog-action-spacer{flex:1}.danger{color:#b73232!important;border-color:#e0a8a8!important}.danger:hover{background:#fff1f1!important}
.settings-warning{border-left:5px solid #2b8bd3}.settings-warning p{margin:5px 0 0}.settings-section-title{margin:18px 2px 9px;font-weight:900;color:var(--accent-dark)}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.setting-card{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 13px;box-shadow:0 5px 14px rgba(18,63,88,.045)}.setting-card>span:first-child strong,.setting-card>span:first-child small{display:block}.setting-card>span:first-child strong{font-size:.86rem}.setting-card>span:first-child small{color:var(--muted);font-size:.69rem;margin-top:2px}.setting-money-input{display:flex;align-items:center;gap:4px;min-width:108px;justify-content:flex-end}.setting-money-input b{color:var(--muted)}.setting-money-input input{width:92px;text-align:right;margin:0}
body.dark-mode .customer-card,body.dark-mode .customer-count,body.dark-mode .setting-card{background:#10242e;border-color:#28414d}body.dark-mode .customer-card:hover{background:#15303c;border-color:#3d6273}body.dark-mode .danger{color:#ff9292!important;border-color:#7b4448!important}body.dark-mode .danger:hover{background:#3e2428!important}body.dark-mode input[type=text],body.dark-mode input[type=search]{background:#0b1d25;color:#ecf8fc;border-color:#34505d}
@media(max-width:760px){.seven-nav button{flex:0 0 74px;min-width:74px}.seven-nav button>span:last-child{font-size:.61rem}.customer-toolbar{grid-template-columns:1fr 1fr}.customer-count{grid-column:1/-1}.settings-grid{grid-template-columns:1fr}.customer-card{grid-template-columns:54px minmax(0,1fr) auto;padding:12px}.customer-card-main small{font-size:.68rem}}
@media(max-width:480px){.customer-toolbar{grid-template-columns:1fr}.customer-count{grid-column:auto}.customer-form-grid{grid-template-columns:1fr}.customer-form-grid label.wide{grid-column:auto}.customer-dialog-actions{flex-wrap:wrap}.dialog-action-spacer{display:none}.customer-dialog-actions button{flex:1}.deleteCustomerBtn{flex-basis:100%}.customer-card{grid-template-columns:45px minmax(0,1fr);gap:9px}.customer-card-edit{display:none}.customer-card-main span{font-size:.74rem}}
.settings-export-panel{margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:16px}.settings-export-panel p{margin:4px 0 0;max-width:650px}.settings-export-panel button{flex:0 0 auto}@media(max-width:620px){.settings-export-panel{align-items:stretch;flex-direction:column}.settings-export-panel button{width:100%}}

.customer-card-actions{display:flex;gap:8px;align-items:center}.customer-card-actions button{border-radius:9px;padding:8px 10px;font-weight:800;cursor:pointer}.customer-maintenance-btn{background:#e8f5fb;border:1px solid #a7d7eb;color:#075b7c}.customer-edit-btn{background:var(--card);border:1px solid var(--line);color:var(--accent-dark)}
.route-order-panel{margin-bottom:14px}.route-order-list{display:grid;gap:7px;margin-top:10px}.route-order-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:11px;background:var(--card)}.route-order-number{font-weight:900;color:var(--accent-dark)}.route-order-actions{display:flex;gap:5px}.route-order-actions button{width:38px;height:34px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text);font-size:1rem;font-weight:900}.route-order-actions button:disabled{opacity:.25}.maintenance-focus{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;background:#e8f5fb;border-color:#9dd5ea}
body.dark-mode .customer-maintenance-btn,body.dark-mode .maintenance-focus{background:#143543;color:#bdeeff;border-color:#2d6579}body.dark-mode .route-order-row{background:#10242e;border-color:#28414d}
@media(max-width:560px){.customer-card{grid-template-columns:45px minmax(0,1fr)}.customer-card-actions{grid-column:2;justify-content:flex-start}.customer-card-actions button{padding:7px 9px;font-size:.72rem}.route-order-row{grid-template-columns:30px minmax(0,1fr) auto}}

/* v0.4.1 integrated route ordering */
.customer-order-actions{display:inline-flex;gap:4px;margin-right:2px}.customer-order-btn{width:34px;height:34px;padding:0!important;border:1px solid var(--line)!important;background:var(--card)!important;color:var(--accent-dark)!important;font-size:1rem!important;font-weight:900!important}.customer-order-btn:disabled{opacity:.22;cursor:default}.chemical-period-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px}body.dark-mode .customer-order-btn{background:#10242e!important;color:#bdeeff!important;border-color:#28414d!important}@media(max-width:700px){.chemical-period-grid{grid-template-columns:1fr}.customer-card-actions{flex-wrap:wrap}.customer-order-actions{order:3;width:100%;margin-top:2px}}

/* v0.4.2 visit history + migrated reading compatibility */
.visit-subtabs{display:flex;gap:6px;padding:5px;background:var(--accent2);border:1px solid var(--line);border-radius:13px;margin:10px 0 14px}.visit-subtab{flex:1;border:0;border-radius:9px;background:transparent;color:var(--muted);font-weight:900;padding:9px 12px;cursor:pointer}.visit-subtab.active{background:var(--card);color:var(--accent-dark);box-shadow:0 2px 7px rgba(18,63,88,.12)}
.visit-history-panel{padding:14px}.panel-head.compact{margin-bottom:10px}.visit-history-list{display:grid;gap:9px}.visit-history-card{border:1px solid var(--line);border-radius:13px;background:var(--card);overflow:hidden}.visit-history-card summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;cursor:pointer}.visit-history-card summary::-webkit-details-marker{display:none}.visit-history-card summary strong,.visit-history-card summary small{display:block}.visit-history-card summary small{color:var(--muted);font-size:.72rem;margin-top:3px}.history-chevron{font-size:1.1rem;color:var(--muted);transition:transform .15s ease}.visit-history-card[open] .history-chevron{transform:rotate(180deg)}.visit-history-body{border-top:1px solid var(--line);padding:12px 13px;display:grid;gap:12px}.history-section h4{margin:0 0 7px;color:var(--accent-dark);font-size:.8rem}.history-section p{margin:5px 0;font-size:.8rem;line-height:1.45}.history-reading-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.history-reading-grid span{background:var(--accent2);border-radius:9px;padding:8px;color:var(--muted);font-size:.7rem}.history-reading-grid b{display:block;color:var(--text);font-size:.95rem;margin-top:2px}.history-meta{color:var(--muted);font-size:.78rem}.empty-state{padding:16px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px}
body.dark-mode .visit-subtabs{background:#10242e;border-color:#28414d}body.dark-mode .visit-subtab.active,body.dark-mode .visit-history-card{background:#10242e;border-color:#28414d}body.dark-mode .history-reading-grid span{background:#17313d}
@media(max-width:520px){.history-reading-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.visit-subtab{padding:8px 9px}}

/* v0.5.0 consolidated field workflow */
.chem-pink{background:#fde4ef;border-color:#e9b6cd}.chem-orange{background:#ffe8cf;border-color:#efc18d}.chem-purple{background:#ece3fb;border-color:#cbb8ea}
body.dark-mode .chem-pink{background:#49263a;border-color:#74405d}body.dark-mode .chem-orange{background:#4a321d;border-color:#76502e}body.dark-mode .chem-purple{background:#34264b;border-color:#574079}
.dashboard-kpi-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.kpi-period-toggle{display:flex;background:rgba(6,43,103,.08);border-radius:999px;padding:2px}.kpi-period-toggle button{border:0;background:transparent;border-radius:999px;padding:4px 8px;font-size:.68rem;color:var(--muted)}.kpi-period-toggle button.active{background:var(--card);color:var(--accent);font-weight:800;box-shadow:0 1px 4px rgba(0,0,0,.1)}.stat-kpi>strong{font-size:1.55rem}.stat-kpi>span{font-size:.72rem;color:var(--muted)}
body.dark-mode .kpi-period-toggle{background:#17313d}body.dark-mode .kpi-period-toggle button.active{background:#0c2029}
.visit-complete-actions{display:grid!important;grid-template-columns:1fr;gap:8px}.visit-complete-actions #nextStopBtn{font-weight:800}
.visit-repair-cards{display:grid;gap:7px;margin:8px 0 12px}.visit-repair-card{display:grid;grid-template-columns:1fr;border:1px solid var(--line);border-radius:12px;background:var(--card);overflow:hidden}.visit-repair-open{border:0;background:transparent;text-align:left;padding:10px 12px;font-weight:800;cursor:pointer}.visit-repair-delete{border:0;border-top:1px solid var(--line);background:transparent;color:#b42318;padding:7px 11px;cursor:pointer;font-size:.72rem;font-weight:700;text-align:left}.visit-repair-card.repair-low .visit-repair-open{color:#138a47}.visit-repair-card.repair-medium .visit-repair-open{color:#c46a00}.visit-repair-card.repair-high .visit-repair-open{color:#c62626}
.history-reading-card{display:block!important;border:1px solid transparent!important}.history-reading-card small{display:block;font-size:.68rem;color:inherit;opacity:.78}.history-reading-card b{font-size:1rem!important}.history-chemical-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:9px}.history-chem-card{display:block;padding:8px 9px;border:1px solid transparent}.history-chem-card small{display:block;font-size:.64rem;opacity:.78}.history-chem-card b{display:block;font-size:.88rem;margin-top:2px}.history-body-label{font-size:.68rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:5px 0}.sanitizer-zero{background:#ffe2e1!important;border-color:#ef8f89!important;color:#8f1515!important}.sanitizer-zero b{color:#a41616!important}.sanitizer-zero em{display:block;font-size:.55rem;font-style:normal;font-weight:900;text-transform:uppercase;margin-top:2px}.sanitizer-alert-visit{box-shadow:inset 4px 0 0 #d92d20}.history-summary-flags{display:flex;align-items:center;gap:8px}.sanitizer-alert-badge{font-size:.62rem;color:#b42318;background:#fee4e2;border:1px solid #f6b5b0;border-radius:999px;padding:3px 6px;font-weight:800}
body.dark-mode .sanitizer-zero{background:#4a1f20!important;border-color:#8f3a3d!important;color:#ffaaa6!important}body.dark-mode .sanitizer-zero b{color:#ffb5b1!important}body.dark-mode .sanitizer-alert-badge{background:#472123;border-color:#77373b;color:#ffaaa6}
.maintenance-subtabs{display:flex;gap:7px;margin:0 0 12px;background:var(--accent2);border:1px solid var(--line);padding:4px;border-radius:13px}.maintenance-subtabs .visit-subtab{flex:1}.basket-log-panel{margin-bottom:12px}.basket-check-grid{margin:10px 0}.basket-history{display:grid;gap:7px}.basket-history-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}.basket-history-row:last-child{border-bottom:0}.basket-history-row strong,.basket-history-row span{display:block}.basket-history-row span{font-size:.72rem;color:var(--muted);margin-top:2px}.basket-history-row time{font-size:.72rem;color:var(--muted);white-space:nowrap}
.repair-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:12px}.repair-list{display:grid;gap:10px}.repair-card{border-left:5px solid var(--line)}.repair-card.repair-low{border-left-color:#2ba866}.repair-card.repair-medium{border-left-color:#e58b21}.repair-card.repair-high{border-left-color:#df3f3f}.repair-card-head{display:flex;justify-content:space-between;gap:12px}.repair-card-head small{color:var(--muted)}.repair-card-head h3{margin:2px 0 0}.repair-priority-dot{width:11px;height:11px;border-radius:50%;margin-top:4px}.repair-low .repair-priority-dot{background:#2ba866}.repair-medium .repair-priority-dot{background:#e58b21}.repair-high .repair-priority-dot{background:#df3f3f}.repair-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.repair-detail-grid small,.repair-detail-grid strong{display:block}.repair-detail-grid small{font-size:.66rem;color:var(--muted)}.repair-notes{white-space:pre-wrap;line-height:1.45}.repair-card-actions{display:flex;justify-content:flex-end}.repair-focus{outline:3px solid var(--accent);outline-offset:2px}.full-span{grid-column:1/-1}.eight-nav{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;justify-content:flex-start}.eight-nav::-webkit-scrollbar{display:none}.eight-nav button{flex:1 0 74px;min-width:74px}.eight-nav button>span:last-child{font-size:.62rem}
@media(max-width:520px){.history-chemical-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.repair-toolbar{grid-template-columns:1fr}.eight-nav button{flex:0 0 70px;min-width:70px}.dashboard-kpi-head{display:block}.kpi-period-toggle{margin-top:5px;width:max-content}}


/* v0.5.1 production-readiness fixes */
.chem-pink{background:#ffb3e6!important;border-color:#ff4fc3!important}.chem-orange{background:#ffbf69!important;border-color:#ff7a00!important}
body.dark-mode .chem-pink{background:#5c123f!important;border-color:#ff45bd!important}body.dark-mode .chem-orange{background:#5b2d08!important;border-color:#ff8a1f!important}
.stat-efficiency{grid-column:span 2;display:block!important;min-width:0}.efficiency-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}.efficiency-head>div:first-child small,.efficiency-head>div:first-child strong{display:block}.efficiency-head>div:first-child strong{font-size:1rem;margin-top:2px}.efficiency-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.efficiency-metric{min-width:0;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.45);border:1px solid var(--line)}.efficiency-metric small,.efficiency-metric strong,.efficiency-metric span{display:block}.efficiency-metric strong{font-size:1.45rem;margin:3px 0}.kpi-trend{font-size:.72rem;font-weight:850;line-height:1.3}.kpi-trend.good{color:#138a47}.kpi-trend.bad{color:#c62626}.kpi-trend.neutral{color:var(--muted)}
body.dark-mode .efficiency-metric{background:rgba(255,255,255,.035)}body.dark-mode .kpi-trend.good{color:#55d98c}body.dark-mode .kpi-trend.bad{color:#ff8585}
.field-age-note{display:block!important;margin-top:5px!important;font-size:.64rem!important;font-weight:700!important;line-height:1.25;color:inherit!important;opacity:.78}.history-reading-age{font-size:.58rem!important;margin-top:3px!important;opacity:.72!important}
.visit-maintenance-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.backwash-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);margin-top:11px;padding-top:11px}.backwash-check{display:flex;align-items:center;gap:9px;font-weight:800}.backwash-check span,.backwash-check small{display:block}.backwash-check small{font-size:.64rem;color:var(--muted);font-weight:600}.backwash-check input{width:20px;height:20px}
.history-visit-actions{display:flex;gap:8px;justify-content:flex-end;padding-top:2px}.history-visit-actions button{min-width:110px}.danger-outline{border:1px solid #d92d20;background:transparent;color:#b42318;border-radius:10px;padding:9px 12px;font-weight:800;cursor:pointer}body.dark-mode .danger-outline{color:#ffaaa6;border-color:#8f3a3d}
@media(min-width:900px){.dashboard-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}.stat-efficiency{grid-column:span 2}.dashboard-stat{min-width:0}.efficiency-grid{gap:12px}}
@media(max-width:899px){.stat-efficiency{grid-column:1/-1}}
@media(max-width:560px){.efficiency-head{align-items:center}.efficiency-grid{grid-template-columns:1fr 1fr}.efficiency-metric{padding:9px}.efficiency-metric strong{font-size:1.2rem}.visit-maintenance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.backwash-row{align-items:flex-start;flex-direction:column}.history-visit-actions{display:grid;grid-template-columns:1fr 1fr}.history-visit-actions button{min-width:0}}
.history-maint-badges{display:flex;flex-wrap:wrap;gap:6px}.history-maint-badge{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:var(--accent2);border:1px solid var(--line);font-size:.68rem;font-weight:850;color:var(--accent-dark)}body.dark-mode .history-maint-badge{background:#17313d;color:#bdeeff;border-color:#28414d}

/* v1.0 previous-visit field snapshot */
.previous-visit-snapshot{margin-top:10px;padding:13px 14px;border-left:4px solid var(--accent);background:linear-gradient(135deg,rgba(47,188,229,.10),rgba(255,255,255,.86))}
.previous-visit-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.previous-visit-head strong{font-size:.95rem}.previous-history-link{font-size:.72rem;font-weight:800;white-space:nowrap}
.previous-section{display:grid;gap:7px;margin-top:9px}.previous-section-title{font-size:.66rem;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.previous-body-row{display:grid;grid-template-columns:58px 1fr;gap:8px;align-items:start}.previous-body-label{font-size:.66rem;font-weight:850;color:var(--muted);padding-top:7px}.previous-chip-grid{display:flex;flex-wrap:wrap;gap:6px}.previous-chem-chip{display:inline-flex;align-items:baseline;gap:5px;border:1px solid transparent;border-radius:9px;padding:6px 8px}.previous-chem-chip small{font-size:.62rem;font-weight:800;opacity:.8}.previous-chem-chip b{font-size:.76rem}.previous-maint-grid{display:flex;flex-wrap:wrap;gap:6px}.previous-maint-chip{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:var(--accent2);border:1px solid var(--line);font-size:.67rem;font-weight:850;color:var(--accent-dark)}.previous-empty{font-size:.76rem;margin-top:4px}
body.dark-mode .previous-visit-snapshot{background:linear-gradient(135deg,rgba(47,188,229,.12),rgba(12,32,41,.94));border-left-color:#46d5ff}body.dark-mode .previous-maint-chip{background:#17313d;color:#bdeeff;border-color:#28414d}
@media(max-width:560px){.previous-visit-snapshot{padding:11px 12px}.previous-body-row{grid-template-columns:1fr;gap:4px}.previous-body-label{padding-top:0}.previous-chip-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.previous-chem-chip{display:block}.previous-chem-chip small,.previous-chem-chip b{display:block}.previous-chem-chip b{margin-top:2px}}


/* v1.0.1 field-flow polish */
button,.bottom-nav button,[role="button"]{touch-action:manipulation}
.dashboard-route-button{margin:0 0 12px}
.carried-values-notice{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0 12px;padding:8px 10px;border:1px solid #9fd8ec;border-radius:11px;background:#eefaff;color:var(--accent-dark);font-size:.72rem;font-weight:750}
.carried-values-notice .text-btn{font-size:.68rem;font-weight:850;white-space:nowrap}
body.dark-mode .carried-values-notice{background:#15333f;border-color:#2a6277;color:#c6efff}
@media(max-width:560px){.carried-values-notice{align-items:flex-start}.carried-values-notice span{line-height:1.35}}


/* v1.1 field reliability + route gameplan */
html,body{max-width:100%;overflow-x:hidden}.app-shell,.view,.panel,select,input,textarea{max-width:100%;box-sizing:border-box}
.gameplan-card{border-left:4px solid #f59e0b;padding:12px 14px;margin:10px 0 12px;background:linear-gradient(135deg,#fff9e8,#fff)}
.gameplan-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.gameplan-head h3{margin:0}.gameplan-count{font-size:.68rem;font-weight:900;border-radius:999px;background:#fff1bd;padding:4px 7px;color:#7a4b00}.gameplan-list{display:grid;gap:7px}.gameplan-item{display:grid;grid-template-columns:10px 1fr;gap:8px;align-items:start;font-size:.76rem;line-height:1.35}.gameplan-dot{width:8px;height:8px;border-radius:50%;margin-top:4px;background:#f59e0b}.gameplan-item.repair-low .gameplan-dot{background:#16a35b}.gameplan-item.repair-medium .gameplan-dot{background:#f59e0b}.gameplan-item.repair-high .gameplan-dot,.gameplan-item.alert .gameplan-dot{background:#d92d20}.gameplan-item strong{display:block}.gameplan-item small{color:var(--muted)}.gameplan-toggle{margin:-2px 0 10px}
body.dark-mode .gameplan-card{background:linear-gradient(135deg,#302812,#10242e);border-left-color:#ffb938}.gameplan-empty{font-size:.76rem;color:var(--muted)}
.visit-in-progress{background:linear-gradient(135deg,#16a35b,#24bd6c)!important;border-color:#12894c!important;color:#fff!important}.visit-in-progress:hover{filter:brightness(.98)}
.visit-complete-ready{background:linear-gradient(135deg,#16a35b,#24bd6c)!important;border-color:#12894c!important;color:#fff!important}
.previous-reading-grid{display:flex;flex-wrap:wrap;gap:5px}.previous-reading-chip{display:inline-flex;gap:4px;align-items:baseline;border-radius:8px;padding:4px 6px;border:1px solid var(--line);font-size:.64rem}.previous-reading-chip small{font-size:.58rem;color:var(--muted);font-weight:850}.previous-reading-chip b{font-size:.72rem}.previous-chem-chip{padding:4px 6px}.previous-chem-chip small{font-size:.57rem}.previous-chem-chip b{font-size:.71rem}.previous-maint-chip{padding:4px 6px;font-size:.62rem}
.history-reading-neutral{background:var(--card)!important;border-color:var(--line)!important;color:var(--text)!important}.history-reading-neutral small{color:var(--muted)!important}.history-reading-outlier{box-shadow:inset 0 0 0 1px rgba(0,0,0,.03)}
.spa-reading-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.route-summary-dialog{max-width:min(720px,calc(100vw - 24px))}.route-summary-card{width:min(680px,100%)}.summary-metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:14px}.summary-metric{border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--accent2)}.summary-metric small,.summary-metric span{display:block;color:var(--muted);font-size:.67rem}.summary-metric strong{display:block;font-size:1.2rem;margin:2px 0}.summary-section{border-top:1px solid var(--line);padding-top:12px;margin-top:10px}.summary-section h3{margin:0 0 8px;font-size:.86rem}.summary-chip-grid{display:flex;flex-wrap:wrap;gap:6px}.summary-chip{padding:5px 8px;border-radius:999px;background:var(--accent2);border:1px solid var(--line);font-size:.68rem;font-weight:800}.summary-attention{display:grid;gap:6px;font-size:.74rem}.summary-good{color:#137a44}.summary-bad{color:#b42318}.summary-neutral{color:var(--muted)}
body.dark-mode .history-reading-neutral{background:#10242e!important;border-color:#28414d!important;color:#f1fbff!important}body.dark-mode .summary-metric,body.dark-mode .summary-chip{background:#17313d}
@media(max-width:560px){.spa-reading-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.previous-reading-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.previous-reading-chip{display:block;text-align:center}.summary-metric-grid{grid-template-columns:1fr 1fr}}


/* v1.2.0 route continuity, gameplan refinement + maintenance profitability */
.bottom-nav{left:0;right:0;bottom:0;transform:none;width:100%;max-width:980px;margin:0 auto;z-index:1000;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);will-change:transform}
.app-shell{padding-bottom:calc(108px + env(safe-area-inset-bottom))}
.gameplan-section{margin-top:9px;padding-top:8px;border-top:1px solid var(--line)}
.gameplan-section:first-of-type{margin-top:4px}.gameplan-section-title{font-size:.64rem;font-weight:950;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px}.gameplan-more{font-size:.68rem;color:var(--muted);padding-left:18px}
.previous-chem-chip,.previous-reading-chip{min-height:34px;padding:4px 6px;border-radius:8px;font-size:.64rem;box-sizing:border-box}
.previous-chem-chip small,.previous-reading-chip small{font-size:.58rem;font-weight:850}.previous-chem-chip b,.previous-reading-chip b{font-size:.72rem}
.previous-reading-neutral{background:var(--card)!important;border-color:var(--line)!important;color:var(--text)!important}.previous-reading-outlier{border-width:1px}.previous-reading-chip.sanitizer-zero{background:#fde8e7!important;border-color:#ef7770!important;color:#9d1c15!important}.previous-reading-chip em{display:block;font-size:.52rem;font-style:normal;font-weight:900;margin-top:1px}
.maintenance-profit-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.maintenance-profit-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.5fr)}.maintenance-profit-chart{display:grid;gap:12px}.maintenance-profit-row{display:grid;grid-template-columns:84px 1fr;gap:10px;align-items:start}.maintenance-profit-bars{min-width:0}.maintenance-profit-bars small{display:block;color:var(--muted);font-size:.68rem;margin-top:4px}.maintenance-profit-table{min-width:580px}.maintenance-profit-table th:first-child,.maintenance-profit-table td:first-child{text-align:left}
body.dark-mode .previous-reading-neutral{background:#10242e!important;border-color:#28414d!important;color:#eef8fc!important}.dark-mode .previous-reading-chip.sanitizer-zero{background:#4a1d1d!important;border-color:#a74444!important;color:#ffb1ac!important}
@media(max-width:760px){.maintenance-profit-kpis{grid-template-columns:1fr 1fr}.maintenance-profit-kpis .business-kpi:last-child{grid-column:1/-1}.maintenance-profit-grid{grid-template-columns:1fr}}
@media(max-width:560px){.previous-chip-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.previous-chem-chip{text-align:center}.maintenance-profit-kpis{grid-template-columns:1fr 1fr}.bottom-nav{padding-left:6px;padding-right:6px}.bottom-nav button{min-width:0;padding-left:2px;padding-right:2px}}

/* v1.2.1 previous-visit readability + gameplan/business refinements */
.previous-reading-grid,.previous-chip-grid{display:flex;flex-wrap:wrap;gap:8px}
.previous-reading-chip,.previous-chem-chip{display:grid;grid-template-rows:auto auto;align-content:center;justify-items:start;gap:3px;min-width:138px;min-height:58px;padding:8px 11px;border-radius:10px;box-sizing:border-box;line-height:1.12}
.previous-reading-chip small,.previous-chem-chip small{display:block;font-size:.66rem;font-weight:850;line-height:1.15;white-space:normal}
.previous-reading-chip b,.previous-chem-chip b{display:block;font-size:.88rem;line-height:1.1;margin:0}
.previous-reading-chip em{font-size:.55rem;margin-top:0}
@media(max-width:560px){.previous-reading-grid,.previous-chip-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.previous-reading-chip,.previous-chem-chip{min-width:0;width:100%;min-height:56px;padding:7px 9px;text-align:left;justify-items:start}.previous-reading-chip small,.previous-chem-chip small{font-size:.63rem}.previous-reading-chip b,.previous-chem-chip b{font-size:.84rem}}


/* v1.3.0 visual system — mockup-aligned polish */
:root{--nav-active:#1a8cff;--nav-dark:#071c27;--nav-border:#274755;--overview-green:#39c96b;--overview-red:#ff665a;--overview-orange:#ff9f1c}
.app-shell{max-width:980px;padding-bottom:108px}
.panel,.business-kpi,.dashboard-stat,.list{box-shadow:0 8px 24px rgba(10,44,61,.055)}
body.dark-mode .panel,body.dark-mode .business-kpi,body.dark-mode .dashboard-stat,body.dark-mode .list{box-shadow:0 10px 28px rgba(0,0,0,.17)}

/* Dashboard trend segment controls */
.route-trend-tabs{display:grid;grid-template-columns:repeat(4,auto);gap:3px;padding:3px;background:rgba(11,79,108,.08);border-radius:999px}
.route-trend-tabs button{min-width:58px}
body.dark-mode .route-trend-tabs{background:#0a2633}

/* Gameplan gets clear visual sections rather than one undifferentiated list */
.gameplan-card{border-left-color:#2b99ef;border-radius:18px;background:linear-gradient(145deg,#f6fbff,#fff)}
.gameplan-section{border:1px solid var(--line);border-radius:13px;padding:10px 11px;margin-top:9px}
.gameplan-section:nth-of-type(1){border-color:#63b5ef;background:rgba(50,151,225,.055)}
.gameplan-section:nth-of-type(2){border-color:#e9a42c;background:rgba(244,159,18,.055)}
.gameplan-section-title{font-size:.72rem;letter-spacing:.04em;color:var(--accent-dark)}
.gameplan-section:nth-of-type(2) .gameplan-section-title{color:#b56d00}
.gameplan-item{grid-template-columns:12px 1fr;padding:3px 0}.gameplan-item strong{font-size:.82rem}.gameplan-item small{font-size:.7rem}
body.dark-mode .gameplan-card{background:linear-gradient(145deg,#0b2734,#10242e);border-left-color:#2ea7ff}
body.dark-mode .gameplan-section:nth-of-type(1){background:rgba(37,139,211,.08);border-color:#245f82}body.dark-mode .gameplan-section:nth-of-type(2){background:rgba(226,147,18,.08);border-color:#74531e}

/* Previous visit: same visual rhythm as the reference mockup */
.previous-visit-snapshot{border-radius:18px;border:1px solid var(--line);border-left:5px solid #39c9f3;padding:17px 18px;background:linear-gradient(145deg,rgba(47,188,229,.08),var(--card))}
.previous-section-title{font-size:.72rem;letter-spacing:.08em;margin-bottom:2px}.previous-body-label{font-size:.75rem;padding-top:10px}
.previous-reading-grid,.previous-chip-grid{gap:10px}
.previous-reading-chip,.previous-chem-chip{min-width:128px;min-height:64px;padding:10px 13px;border-radius:12px;justify-items:center;text-align:center;align-content:center}
.previous-reading-chip small,.previous-chem-chip small{font-size:.72rem;line-height:1.15;text-align:center}.previous-reading-chip b,.previous-chem-chip b{font-size:1rem;line-height:1.05;text-align:center}
body.dark-mode .previous-visit-snapshot{background:linear-gradient(145deg,#0c2a38,#0b222d);border-color:#294957;border-left-color:#42d5ff}

/* Business dashboard segmented period control */
.business-filter-panel{padding:14px 16px}.period-native-select{display:none!important}
.business-toolbar{grid-template-columns:minmax(180px,280px)}
.business-period-tabs{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.business-period-tabs button{border:1px solid var(--line);background:var(--card);color:var(--text);padding:9px 14px;border-radius:10px;font-size:.78rem;font-weight:750;cursor:pointer}
.business-period-tabs button.active{background:#118334;border-color:#28b64d;color:#fff;box-shadow:0 5px 14px rgba(28,160,66,.18)}
body.dark-mode .business-period-tabs button{background:#0b202a;border-color:#36505c;color:#d7e7ee}body.dark-mode .business-period-tabs button.active{background:#10752f;border-color:#28aa4c;color:#fff}

.polished-section-title{margin-top:22px}.business-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.overview-kpi{min-height:124px;padding:16px}.overview-kpi small{font-size:.78rem}.overview-kpi strong{font-size:1.55rem;margin-top:9px;overflow:visible}.overview-trend{font-size:.72rem!important;font-weight:850;margin-top:10px}.overview-trend.good{color:#24b955!important}.overview-trend.bad{color:#e35148!important}.overview-trend.neutral{color:var(--muted)!important}
.route-profile-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:0;overflow:hidden}.route-profile-strip>div{padding:13px 15px;border-right:1px solid var(--line);min-width:0}.route-profile-strip>div:last-child{border-right:0}.route-profile-strip small,.route-profile-strip span{display:block;color:var(--muted);font-size:.67rem}.route-profile-strip strong{display:block;margin:3px 0;font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.business-section-title span{font-size:1.08rem}.business-kpi{border-radius:16px}.business-kpi strong{font-size:1.32rem}.business-chart-card,.business-table-card{border-radius:18px}

/* Primary navigation closely follows the polished mockup */
.bottom-nav{height:auto;min-height:78px;background:rgba(248,252,254,.97);border-top:1px solid #c9d9e1;box-shadow:0 -7px 26px rgba(5,38,54,.10);padding:6px max(8px,env(safe-area-inset-left)) calc(6px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-right));gap:0}
.bottom-nav button{position:relative;border-radius:0;min-height:62px;padding:7px 8px;border-right:1px solid rgba(95,130,145,.12);transition:color .15s ease,background .15s ease,transform .12s ease}
.bottom-nav button:last-child{border-right:0}.bottom-nav button.active{background:transparent;color:#087fd1;font-weight:800}.bottom-nav button.active::before{content:"";position:absolute;left:25%;right:25%;top:-6px;height:3px;border-radius:0 0 5px 5px;background:#168ee0}.bottom-nav button:active{transform:scale(.97)}
.bottom-nav .nav-icon{font-size:1.5rem;min-height:25px;display:flex;align-items:center;justify-content:center}.bottom-nav button>span:last-child{font-size:.68rem}.nav-more-icon{font-size:1.15rem!important;font-weight:900;letter-spacing:.08em}
body.dark-mode .bottom-nav{background:rgba(5,19,27,.97);border-top-color:#29424f;box-shadow:0 -7px 26px rgba(0,0,0,.35)}body.dark-mode .bottom-nav button{border-right-color:rgba(87,125,143,.16)}body.dark-mode .bottom-nav button.active{background:transparent;color:#30aaff}

/* More bottom sheet */
.more-menu-dialog{border:0;padding:0;background:transparent;width:min(520px,calc(100% - 24px));max-width:none}.more-menu-dialog::backdrop{background:rgba(0,13,20,.52);backdrop-filter:blur(2px)}.more-menu-card{background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:22px;padding:12px 15px 17px;box-shadow:0 24px 70px rgba(0,0,0,.28)}.more-menu-handle{width:48px;height:5px;border-radius:999px;background:var(--line);margin:0 auto 10px}.more-menu-grid{display:grid;gap:8px}.more-menu-grid>button{display:grid;grid-template-columns:44px 1fr;gap:11px;align-items:center;text-align:left;border:1px solid var(--line);background:var(--bg);color:var(--text);padding:11px 12px;border-radius:14px}.more-menu-grid>button span:last-child{display:grid}.more-menu-grid small{color:var(--muted)}.more-menu-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-weight:950}.more-menu-icon.repair{background:#fff2d8;color:#b36800}.more-menu-icon.missed{background:#fde9e7;color:#b82f26}.more-menu-icon.settings{background:#e8f3fa;color:#176c9d}body.dark-mode .more-menu-card{background:#0b202a;border-color:#29424f}body.dark-mode .more-menu-grid>button{background:#102a35;border-color:#294754}body.dark-mode .more-menu-icon.repair{background:#4a3512;color:#ffc15a}body.dark-mode .more-menu-icon.missed{background:#47211f;color:#ff8c83}body.dark-mode .more-menu-icon.settings{background:#173748;color:#71c9f5}

/* Calm, higher-contrast dark theme like the design target */
body.dark-mode{--bg:#061923;--card:#0b222d;--text:#eef8fc;--muted:#9eb8c4;--line:#294754;--accent:#30aaff;--accent2:#11384b}
body.dark-mode .dashboard-stat,body.dark-mode .business-kpi{background:#0b222d;border-color:#294754}
body.dark-mode .dashboard-stat{box-shadow:inset 0 0 0 1px rgba(40,90,112,.08),0 12px 30px rgba(0,0,0,.15)}

@media(max-width:900px){.business-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.route-profile-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.route-profile-strip>div:nth-child(2){border-right:0}.route-profile-strip>div:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:620px){.route-trend-tabs{width:100%;grid-template-columns:repeat(4,1fr)}.route-trend-tabs button{min-width:0;padding-left:5px;padding-right:5px;font-size:.66rem}.efficiency-head{align-items:flex-start;flex-direction:column}.business-overview-grid{grid-template-columns:1fr 1fr}.overview-kpi{min-height:112px;padding:13px}.overview-kpi strong{font-size:1.3rem}.business-period-tabs{display:grid;grid-template-columns:repeat(3,1fr)}.business-period-tabs button{padding:8px 5px}.previous-reading-chip,.previous-chem-chip{min-width:0;width:100%;min-height:62px}.bottom-nav button{padding-left:3px;padding-right:3px}.bottom-nav .nav-icon{font-size:1.35rem}.bottom-nav button>span:last-child{font-size:.61rem}}
@media(max-width:390px){.overview-kpi strong{font-size:1.14rem}.route-profile-strip{grid-template-columns:1fr 1fr}.business-period-tabs{grid-template-columns:repeat(2,1fr)}}


/* v1.3.1: explicit out-of-range reading colors.
   Use higher specificity + !important so neutral/base card styling cannot mask the alert tone. */
.history-reading-card.history-reading-outlier.chem-yellow,
.previous-reading-chip.previous-reading-outlier.chem-yellow{background:#fff8cc!important;border-color:#eadf8d!important}
.history-reading-card.history-reading-outlier.chem-red,
.previous-reading-chip.previous-reading-outlier.chem-red{background:#fde3e1!important;border-color:#e8b7b3!important}
.history-reading-card.history-reading-outlier.chem-green,
.previous-reading-chip.previous-reading-outlier.chem-green{background:#e3f3e4!important;border-color:#bdd9bf!important}
.history-reading-card.history-reading-outlier.chem-orange,
.previous-reading-chip.previous-reading-outlier.chem-orange{background:#ffbf69!important;border-color:#ff7a00!important}
.history-reading-card.history-reading-outlier.chem-blue,
.previous-reading-chip.previous-reading-outlier.chem-blue{background:#dfeeff!important;border-color:#abcdf3!important}
.history-reading-card.history-reading-outlier.chem-purple,
.previous-reading-chip.previous-reading-outlier.chem-purple{background:#ece3fb!important;border-color:#cbb8ea!important}
body.dark-mode .history-reading-card.history-reading-outlier.chem-yellow,
body.dark-mode .previous-reading-chip.previous-reading-outlier.chem-yellow{background:#4a4319!important;border-color:#756a28!important}
body.dark-mode .history-reading-card.history-reading-outlier.chem-red,
body.dark-mode .previous-reading-chip.previous-reading-outlier.chem-red{background:#492426!important;border-color:#73393c!important}
body.dark-mode .history-reading-card.history-reading-outlier.chem-green,
body.dark-mode .previous-reading-chip.previous-reading-outlier.chem-green{background:#1d3d28!important;border-color:#315f40!important}
body.dark-mode .history-reading-card.history-reading-outlier.chem-orange,
body.dark-mode .previous-reading-chip.previous-reading-outlier.chem-orange{background:#5b2d08!important;border-color:#ff8a1f!important}
body.dark-mode .history-reading-card.history-reading-outlier.chem-blue,
body.dark-mode .previous-reading-chip.previous-reading-outlier.chem-blue{background:#17344f!important;border-color:#2f6594!important}
body.dark-mode .history-reading-card.history-reading-outlier.chem-purple,
body.dark-mode .previous-reading-chip.previous-reading-outlier.chem-purple{background:#34264b!important;border-color:#574079!important}

/* v1.4.0 compact Previous Visit snapshot */
.previous-visit-snapshot{padding:14px 16px;border-radius:18px}
.previous-visit-head{align-items:flex-start;margin-bottom:10px}
.previous-visit-title{min-width:0}.previous-visit-head .eyebrow{font-size:.82rem;line-height:1.1;margin-bottom:5px}
.previous-date-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:7px}.previous-date-line strong{font-size:1.06rem;line-height:1.1}.previous-visit-time{font-size:.72rem;color:var(--muted);font-weight:700;white-space:nowrap}
.previous-history-link{font-size:.78rem;padding:1px 0;line-height:1.15}
.previous-compact-grid{display:flex;flex-wrap:wrap;align-items:stretch;gap:6px}
.previous-compact-grid .previous-reading-chip,.previous-compact-grid .previous-chem-chip{display:inline-grid;grid-template-rows:auto auto auto;align-content:center;justify-items:center;gap:1px;width:auto;min-width:0;min-height:44px;padding:6px 9px;border-radius:9px;box-sizing:border-box;text-align:center;line-height:1.05}
.previous-compact-grid .previous-reading-chip small,.previous-compact-grid .previous-chem-chip small{display:block;font-size:.61rem;font-weight:850;line-height:1.05;white-space:nowrap;text-align:center}
.previous-compact-grid .previous-reading-chip b,.previous-compact-grid .previous-chem-chip b{display:block;font-size:.78rem;line-height:1.05;margin:2px 0 0;text-align:center;white-space:nowrap}
.previous-compact-grid .previous-reading-chip em{display:block;font-size:.49rem;font-style:normal;font-weight:900;line-height:1;text-transform:uppercase;letter-spacing:.02em;margin-top:2px;white-space:nowrap}
.previous-compact-grid .previous-reading-chip.sanitizer-zero{padding-left:8px;padding-right:8px}
.previous-compact-grid .previous-reading-chip.previous-reading-high-cya{background:#ffbf69!important;border-color:#ff7a00!important;color:#7b3200!important}
.previous-maint-compact{margin-top:7px;gap:5px}.previous-maint-compact .previous-maint-chip{padding:3px 6px;font-size:.58rem}
body.dark-mode .previous-compact-grid .previous-reading-chip.previous-reading-high-cya{background:#5b2d08!important;border-color:#ff8a1f!important;color:#ffb77b!important}
@media(max-width:620px){
  .previous-visit-snapshot{padding:12px 13px}
  .previous-date-line{gap:6px}.previous-date-line strong{font-size:1rem}.previous-visit-time{font-size:.68rem}
  .previous-compact-grid{display:flex;grid-template-columns:none;gap:5px}
  .previous-compact-grid .previous-reading-chip,.previous-compact-grid .previous-chem-chip{width:auto;min-width:0;min-height:42px;padding:5px 7px}
  .previous-compact-grid .previous-reading-chip small,.previous-compact-grid .previous-chem-chip small{font-size:.58rem}
  .previous-compact-grid .previous-reading-chip b,.previous-compact-grid .previous-chem-chip b{font-size:.75rem}
}
/* v1.5.0 field-dashboard refresh */
:root{--brand-blue:#40A9E0;--brand-navy:#222459;--brand-mid:#4258A7;--brand-light:#95D8E7}
body.dark-mode{--accent:#40A9E0}.topbar-brand-logo{height:58px;width:auto;display:block}.compact-brand-hero{padding:8px 0 14px}.compact-brand-hero .dashboard-logo{width:min(250px,65vw);max-height:110px;object-fit:contain;filter:none}.workday-card{border-color:rgba(64,169,224,.38)}.workday-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0 14px}.workday-stats div{text-align:center}.workday-stats small,.workday-stats strong{display:block}.workday-stats small{color:var(--muted);font-size:.68rem}.workday-stats strong{font-size:1.2rem;margin-top:4px}.workday-stats div:nth-child(2) strong{color:#39c96b}.workday-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.workday-actions button{min-height:48px}.workday-history-link{margin-top:10px;width:100%;text-align:left}.dashboard-snapshot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}.dashboard-snapshot-grid .dashboard-stat{min-height:112px}.upcoming-card{margin-top:12px}.upcoming-list{display:grid;gap:8px}.upcoming-row{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:10px;border-top:1px solid var(--line);padding:10px 0}.upcoming-row:first-child{border-top:0}.event-date-badge{border-radius:10px;background:var(--accent2);border:1px solid var(--line);text-align:center;padding:5px}.event-date-badge small,.event-date-badge strong{display:block}.event-date-badge small{font-size:.58rem;color:var(--accent);font-weight:900}.event-date-badge strong{font-size:1.05rem}.event-today{border-color:#ff9f1c!important;box-shadow:inset 3px 0 #ff9f1c}.event-today .event-date-badge{background:rgba(255,159,28,.14);border-color:#ff9f1c}.today-pill{font-size:.6rem;font-weight:900;color:#ff9f1c;text-transform:uppercase}.route-customer-row.off-week{border-color:#ff9f1c;background:rgba(255,159,28,.07)}.route-customer-row.off-week .badge{color:#ff9f1c;border-color:#ff9f1c}.visit-start-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.off-week-btn{font-size:.7rem;padding:8px 10px;white-space:nowrap}.five-nav button{flex:1 1 20%}.bottom-nav .nav-icon{font-family:system-ui,-apple-system,sans-serif}.customer-frequency-badge{color:#ff9f1c;font-weight:800}.events-card{cursor:pointer}.spa-small-dose option{}
@media(max-width:700px){.dashboard-snapshot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar-brand-logo{height:48px}.dashboard-snapshot-grid .dashboard-stat{min-height:100px}}


/* v1.6.0 — approved mockup faithful visual system */
:root{
  --ht-blue:#40A9E0;--ht-navy:#222459;--ht-mid:#4258A7;--ht-light:#95D8E7;
  --mock-bg:#061923;--mock-card:#0b222d;--mock-card2:#0d2834;--mock-line:#244856;
  --mock-text:#f2f8fb;--mock-muted:#9db5c1;--mock-blue:#1f9df5;--mock-green:#43d56b;
  --mock-orange:#ff9f1c;--mock-red:#ff4f4f;--mock-purple:#b67cff;
}
body.dark-mode{background:radial-gradient(circle at 50% -220px,#0c3341 0,#061923 42%,#05161f 100%);color:var(--mock-text);--bg:var(--mock-bg);--card:var(--mock-card);--text:var(--mock-text);--muted:var(--mock-muted);--line:var(--mock-line);--accent:var(--ht-blue);--accent2:#0d3040;--accent-dark:#65c7fa}
body.dark-mode .app-shell{max-width:860px;padding:0 18px 108px;min-height:100vh}
body.dark-mode .branded-topbar{height:116px;margin:0;display:grid;grid-template-columns:64px 1fr 64px;align-items:center;border:0;padding:8px 2px 6px;position:relative}
body.dark-mode .topbar-brand{justify-content:center}.topbar-brand-logo{width:132px;height:96px;object-fit:contain;display:block}
.header-icon-btn{width:46px;height:46px;border:0;background:transparent;color:var(--mock-text);display:grid;place-items:center;border-radius:12px;padding:9px;cursor:pointer}.header-icon-btn svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
body.dark-mode .topbar-status{align-items:center;justify-content:center}.topbar-status .badge,.topbar-status .version-label{display:none}
body.dark-mode .theme-toggle{width:46px;height:38px;justify-content:center;padding:0;border-radius:15px;background:#092430;border-color:#244653;box-shadow:none}.theme-toggle #themeToggleLabel{display:none}.theme-toggle #themeToggleIcon{font-size:1.25rem;color:#fff}
body.dark-mode .compact-brand-hero{display:none!important}
body.dark-mode h2{font-size:1.35rem}body.dark-mode h3{font-size:1.02rem}body.dark-mode .eyebrow{color:#2eb5ff;text-transform:uppercase;letter-spacing:.07em;font-weight:800;font-size:.72rem}
body.dark-mode .panel{background:linear-gradient(145deg,#0b222d,#0a202a);border:1px solid #244856;border-radius:18px;box-shadow:0 14px 34px rgba(0,0,0,.13);padding:18px}
body.dark-mode .workday-card{margin-top:8px;padding:20px 22px;border-color:#275363}.workday-card .panel-head{margin-bottom:14px}.workday-card .panel-head h3{color:#55e279;font-size:1.02rem;margin-top:6px}.workday-card .panel-head h3::first-letter{color:#55e279}.workday-card .secondary.compact{width:42px;height:42px;padding:0;border-radius:12px;font-size:0}.workday-card .secondary.compact:after{content:'✎';font-size:1.2rem;color:#eef8fc}
.workday-stats{margin:2px 0 16px!important;gap:14px!important}.workday-stats small{font-size:.78rem!important}.workday-stats strong{font-size:1.35rem!important;color:#f5fbff!important}.workday-stats div:nth-child(2) strong{color:#57e77a!important}
.workday-actions{gap:12px!important}.workday-actions button{min-height:56px!important;border-radius:12px!important;font-size:1rem;font-weight:850}.workday-actions .primary{background:linear-gradient(135deg,#2baa51,#43c960);box-shadow:none}.workday-actions .danger{background:linear-gradient(135deg,#cc2e35,#ef4d4d)!important;color:#fff!important;border:1px solid #ff6969!important}
.workday-history-link{border-top:1px solid #244856!important;margin-top:16px!important;padding:15px 0 0!important;color:#d9e8ef!important;font-weight:750!important}.workday-history-link:before{content:'▣';display:inline-grid;place-items:center;width:34px;height:34px;margin-right:10px;border:1px solid #315767;border-radius:10px;color:#fff}
body.dark-mode .gameplan-card{border-left:0;background:#0b222d}.dashboard-gameplan,.gameplan-card{display:none!important}
body.dark-mode .dashboard-route-button{min-height:64px;border-radius:16px;background:linear-gradient(135deg,#0f5fbd,#1177d5);font-size:1.08rem;box-shadow:inset 0 0 0 1px rgba(82,181,255,.35),0 10px 24px rgba(0,71,150,.18);margin:14px 0 18px}
.dashboard-metrics{display:block!important}.dashboard-metrics>.stat-date,.dashboard-metrics>.stat-complete,.dashboard-metrics>.stat-chem{display:none!important}.stat-efficiency{display:block!important;border-radius:18px!important;padding:16px 18px!important;background:#0a202b!important}.efficiency-head{margin-bottom:12px!important;align-items:center!important}.efficiency-head>div:first-child{display:none}.route-trend-tabs{width:100%;display:grid!important;grid-template-columns:repeat(4,1fr);gap:8px;background:transparent!important;border:0!important;padding:0!important}.route-trend-tabs button{border:1px solid #234a59!important;border-radius:12px!important;background:#09222e!important;color:#9eb8c4!important;padding:11px 8px!important}.route-trend-tabs button.active{background:linear-gradient(135deg,#087ed9,#1ea3ff)!important;color:white!important;border-color:#2aafff!important}.efficiency-grid{gap:12px!important}.efficiency-metric{background:#0b2733!important;border:1px solid #2c5160!important;border-radius:14px!important;padding:15px 16px!important}.efficiency-metric small{color:#3bbaff!important;text-transform:uppercase;font-size:.69rem!important;font-weight:850;letter-spacing:.05em}.efficiency-metric strong{font-size:1.55rem!important;color:#fff!important}.kpi-trend.good{color:#4bd879!important}.kpi-trend.bad{color:#ff5a5f!important}
.dashboard-snapshot-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:0!important;border:1px solid #244856;border-radius:18px;background:#0a202b;padding:8px 0;margin:18px 0!important}.dashboard-snapshot-grid .dashboard-stat{display:block!important;text-align:center;background:transparent!important;border:0!important;border-right:1px solid #244856!important;border-radius:0!important;box-shadow:none!important;min-height:118px!important;padding:15px 10px!important}.dashboard-snapshot-grid .dashboard-stat:last-child{border-right:0!important}.dashboard-snapshot-grid .stat-icon{margin:0 auto 5px;width:34px;height:34px;background:transparent!important;font-size:1.5rem;color:#38aefa}.dashboard-snapshot-grid .dashboard-stat:nth-child(2) .stat-icon{color:#55df74}.dashboard-snapshot-grid .dashboard-stat:nth-child(3) .stat-icon{color:#b67cff}.dashboard-snapshot-grid .dashboard-stat:nth-child(4) .stat-icon{color:#ff9f1c}.dashboard-snapshot-grid small{font-size:.72rem!important}.dashboard-snapshot-grid strong{font-size:1.45rem!important;color:#fff!important;margin:5px 0!important}.dashboard-snapshot-grid span:not(.stat-icon){font-size:.7rem!important}
body.dark-mode .upcoming-card{padding:18px 20px;margin-top:16px}.upcoming-card h3{font-size:1.12rem}.upcoming-card .text-btn{color:#35b4ff!important}.upcoming-list{gap:0!important}.upcoming-row{grid-template-columns:54px 1fr auto!important;min-height:78px;border-top:1px solid #244856!important}.event-date-badge{background:#123443!important;border-color:#2b5668!important;border-radius:11px!important}.event-date-badge small{color:#42baff!important}.upcoming-row strong{font-size:.9rem}.upcoming-row .muted{font-size:.72rem}.event-today{background:rgba(255,159,28,.07)!important;border-radius:12px;padding-left:8px;padding-right:8px}.today-pill{background:#ff9f1c;color:#17202a!important;padding:4px 7px;border-radius:999px}
.route-progress-track,.dashboard-mini-status,.sync-panel{display:none!important}
/* Route */
#routeView>.panel-head{padding:4px 2px 8px}#routeView>.panel-head .eyebrow{display:none}#routeView #routeTitle{font-size:1.35rem}.route-actions select{border:0!important;background:#0b2632!important;padding:9px 12px!important;color:#b8d3df!important}.route-inline-progress{margin:10px 0 16px}.route-inline-progress-head{display:flex;justify-content:space-between;color:#b8d3df;font-size:.82rem;margin-bottom:8px}.route-tab-progress{display:block!important;height:6px!important;background:#12323e!important;margin:0!important}.route-list{display:grid!important;gap:9px!important;background:transparent!important;border:0!important;overflow:visible!important}.route-customer-row{min-height:66px;border:1px solid #284b59!important;border-radius:13px!important;background:#0a222d!important;padding:10px 13px!important;display:grid!important;grid-template-columns:42px 1fr auto!important;gap:11px!important;color:#fff!important}.route-stop-circle{width:38px;height:38px;border:1px solid #386274;border-radius:50%;display:grid;place-items:center;font-weight:850;color:#d6e7ed}.route-customer-main{min-width:0}.route-customer-main strong{display:block;font-size:.92rem}.route-customer-main .muted{font-size:.7rem;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.route-status-stack{text-align:right}.route-status-stack .route-status-label{font-size:.7rem;font-weight:850;color:#a9bdc6}.route-status-stack small{display:block;font-size:.63rem;margin-top:3px}.route-customer-row.completed{border-color:#315668!important;background:#0b252e!important}.route-customer-row.completed .route-status-label{color:#4de07a}.route-customer-row.completed .route-stop-circle{border-color:#4de07a;color:#4de07a}.route-customer-row.next-up{border-color:#149df0!important;background:linear-gradient(135deg,#0d2b38,#0b3347)!important}.route-customer-row.next-up .route-status-label{color:#3bb8ff}.route-customer-row.off-week{border-color:#d88417!important;background:linear-gradient(135deg,#2a2417,#17252b)!important}.route-customer-row.off-week .route-status-label{color:#ffae34}.route-frequency{color:#ffae34!important;font-weight:800}
/* Visit */
#visitView>.text-btn{margin:2px 0 4px}#visitView>.panel-head{background:#0a222d;border:1px solid #244856;border-radius:16px;padding:14px 16px;margin-bottom:12px}#visitView>.panel-head h2{font-size:1.2rem}#visitView>.panel-head .muted{font-size:.75rem}.visit-subtabs{border-radius:14px!important;padding:4px!important;background:#0a222d!important;border-color:#244856!important}.visit-subtab{border-radius:10px!important}.visit-subtab.active{background:#0e3850!important;color:#55c7ff!important}.visit-time-grid{grid-template-columns:repeat(4,1fr)!important;gap:8px!important}.visit-time-grid .metric{background:#0a222d!important;border-color:#244856!important;border-radius:13px!important;min-height:78px}.visit-time-grid .metric span{font-size:.68rem}.visit-time-grid .metric strong{color:#fff;font-size:1.12rem}.visit-start-row,#startVisitBtn{margin:12px 0}.visit-start-row .primary,#startVisitBtn{min-height:54px;border-radius:12px;background:linear-gradient(135deg,#2aa74e,#48ca65);font-size:1rem}.off-week-btn{min-height:54px!important;border-radius:12px!important;background:#126ec9!important;color:#fff!important;border:1px solid #2da8ff!important;padding:0 18px!important}.previous-visit-snapshot{border-left:5px solid #40d6ff!important;background:linear-gradient(135deg,#0a2a38,#0a222d)!important;border-color:#244856!important;border-left-color:#40d6ff!important;border-radius:18px!important}.previous-compact-grid .previous-reading-chip,.previous-compact-grid .previous-chem-chip{min-height:50px!important;padding:7px 10px!important;border-radius:10px!important}
#poolPanel,#spaPanel,#fountainPanel{padding:18px!important}.field-grid{gap:11px!important}.field-grid .chem-tone{border-radius:14px!important;padding:10px 11px!important}.chem-tone select{min-height:48px!important;border-radius:11px!important;background:#091d25!important;color:#fff!important;border:1px solid #2b5363!important}.picker-stack{gap:10px!important}.picker-row.chem-tone{min-height:62px!important;border-radius:13px!important;padding:8px 11px!important}.picker-row select{min-height:44px!important}.subhead{font-size:.82rem!important;text-transform:uppercase;letter-spacing:.04em;color:#42baff;border-color:#244856!important}.visit-maintenance-panel{padding:18px!important}.visit-maintenance-grid label{background:#0d2b36;border:1px solid #294a56;border-radius:10px;padding:10px}.visit-complete-actions .primary{min-height:56px;background:linear-gradient(135deg,#24a84c,#43cb63);border-radius:12px}
/* Customer */
#customersView>.panel-head,#maintenanceView>.panel-head,#eventsView>.panel-head,#repairsView>.panel-head{padding:4px 2px 10px}.customer-toolbar-panel,.maintenance-summary-panel,.repair-toolbar-panel{background:#0a222d!important}.customer-card{background:#0a222d!important;border-color:#244856!important;border-radius:13px!important;box-shadow:none!important;min-height:68px}.customer-card:hover{background:#0d2b37!important}.customer-card-stop b{color:#3bb8ff!important}.customer-card-main strong{color:#fff}.customer-card-main .customer-frequency-badge,.customer-frequency-badge{color:#ffab32!important}.customer-maintenance-btn{background:#103b4d!important;border-color:#2b6175!important;color:#65d1ff!important}.customer-edit-btn{background:#0b2732!important;color:#d8e9ef!important;border-color:#31515f!important}
/* Maintenance */
.maintenance-subtabs{background:#09222d!important;border-color:#244856!important}.maintenance-card{background:#0a222d!important;border-color:#244856!important;border-radius:16px!important}.maintenance-card-head{border-color:#244856!important}.maintenance-service-row{border-color:#244856!important}.maintenance-type{color:#35b8ff}.maintenance-log-btn{background:#113443!important;border-color:#2b5d71!important;color:#63d0ff!important}.badge.good{background:#153b2a!important;color:#55dd80!important}.badge.warn{background:#4a3616!important;color:#ffc05c!important}.badge.bad{background:#482326!important;color:#ff8e91!important}
/* Events + more */
#eventsList{display:grid;gap:9px;background:transparent!important;border:0!important}.events-card,.event-card{background:#0a222d!important;border:1px solid #244856!important;border-radius:14px!important}.more-menu-card{background:#081f29!important;border-color:#2a4b59!important}.more-menu-grid>button{background:#0b2a36!important;border-color:#294b5a!important;border-radius:14px!important}.more-menu-icon{border-radius:11px!important}
/* Bottom nav — exact icon family from approved mockup */
body.dark-mode .bottom-nav{width:min(860px,100%);background:rgba(5,22,31,.97);border-top:1px solid #234653;box-shadow:0 -10px 30px rgba(0,0,0,.22);padding:9px 12px calc(10px + env(safe-area-inset-bottom));gap:0}.bottom-nav button{border-radius:12px!important;min-height:62px!important;gap:4px!important;color:#a8bbc4!important}.bottom-nav button.active{background:linear-gradient(180deg,#0e3d5a,#0b3048)!important;color:#35aef7!important}.bottom-nav .nav-icon{width:28px;height:28px;display:grid;place-items:center}.bottom-nav .nav-icon svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.bottom-nav button[data-nav="dashboard"] .nav-icon svg path{fill:currentColor;stroke:none}.bottom-nav button>span:last-child{font-size:.72rem!important}
/* dialogs */
body.dark-mode dialog{background:#071d26!important;color:#eef8fc!important}body.dark-mode .maintenance-dialog-card,body.dark-mode .time-dialog-card{background:#071d26!important}body.dark-mode input,body.dark-mode textarea,body.dark-mode select{background:#091d25;color:#eef8fc;border-color:#345563}
@media(max-width:700px){body.dark-mode .app-shell{padding-left:12px;padding-right:12px}.topbar-brand-logo{width:116px;height:84px}body.dark-mode .branded-topbar{height:102px;grid-template-columns:52px 1fr 52px}.header-icon-btn{width:42px;height:42px}.dashboard-snapshot-grid{grid-template-columns:repeat(4,1fr)!important;overflow:hidden}.dashboard-snapshot-grid .dashboard-stat{min-height:105px!important;padding:12px 4px!important}.dashboard-snapshot-grid small{font-size:.59rem!important}.dashboard-snapshot-grid strong{font-size:1.05rem!important}.dashboard-snapshot-grid span:not(.stat-icon){font-size:.58rem!important}.efficiency-metric{padding:12px!important}.efficiency-metric strong{font-size:1.25rem!important}.route-customer-row{grid-template-columns:38px 1fr auto!important;padding:9px 10px!important}.route-stop-circle{width:34px;height:34px}.visit-time-grid{grid-template-columns:repeat(4,1fr)!important}.visit-time-grid .metric{padding:9px!important;min-height:70px}.visit-time-grid .metric strong{font-size:.95rem}.visit-time-grid .metric small{font-size:.56rem}.field-grid{grid-template-columns:repeat(2,1fr)!important}.workday-actions button{font-size:.9rem}.bottom-nav button{min-height:58px!important}.bottom-nav .nav-icon svg{width:24px;height:24px}}
@media(max-width:390px){.dashboard-snapshot-grid .dashboard-stat{min-height:98px!important}.dashboard-snapshot-grid strong{font-size:.92rem!important}.dashboard-snapshot-grid .stat-icon{width:27px;height:27px;font-size:1.2rem}.workday-stats strong{font-size:1.1rem!important}.workday-actions{grid-template-columns:1fr 1fr!important}.workday-actions button{font-size:.78rem;padding:8px!important}.visit-time-grid{grid-template-columns:repeat(2,1fr)!important}}

/* v1.6.1 Work Day History */
.workday-history-head{padding:4px 2px 12px}.workday-history-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding:0!important;overflow:hidden}.workday-history-summary>div{text-align:center;padding:16px 10px;border-right:1px solid #244856}.workday-history-summary>div:last-child{border-right:0}.workday-history-summary small{display:block;color:#9fb7c2;font-size:.7rem}.workday-history-summary strong{display:block;color:#fff;font-size:1.35rem;margin-top:5px}.workday-history-list{display:grid;gap:10px;margin-top:12px}.workday-history-row{padding:14px 16px!important;cursor:pointer;background:#0a222d!important;border-color:#244856!important;border-radius:15px!important}.workday-history-row:hover{border-color:#40A9E0!important}.workday-history-date{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid #244856}.workday-history-date strong{font-size:.95rem}.workday-history-date small{color:#4de07a;font-weight:800}.workday-history-times{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.workday-history-times span{text-align:center}.workday-history-times small,.workday-history-times strong{display:block}.workday-history-times small{font-size:.62rem;color:#9fb7c2}.workday-history-times strong{margin-top:4px;font-size:1rem}.empty-state{text-align:center;color:#9fb7c2;padding:24px!important}@media(max-width:390px){.workday-history-summary strong{font-size:1.1rem}.workday-history-times strong{font-size:.9rem}}


/* v1.7.0 — approved mockup is the presentation specification */
:root{--phone-w:430px;--page-pad:14px;--card:#0a2330;--card2:#0b2936;--line:#244b5a;--bright:#36b8ff;--green:#48d66f;--orange:#ff9f1c;--red:#ff5b61;--purple:#b779ff}
body.dark-mode{background:#041720!important;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;color:#f6fbfd!important}
body.dark-mode .app-shell{width:100%!important;max-width:var(--phone-w)!important;margin:0 auto!important;padding:0 var(--page-pad) 96px!important;background:linear-gradient(180deg,#051b25 0,#041720 100%)!important;box-sizing:border-box}
body.dark-mode .view{padding:0!important}
body.dark-mode .branded-topbar{height:104px!important;grid-template-columns:46px 1fr 46px!important;padding:5px 4px!important;margin:0!important}
body.dark-mode .topbar-brand-logo{width:118px!important;height:84px!important;object-fit:contain!important}
body.dark-mode .header-icon-btn{width:40px!important;height:40px!important;padding:7px!important;color:#f4fbff!important}
body.dark-mode .theme-toggle{width:40px!important;height:40px!important;border-radius:14px!important}
body.dark-mode .panel{box-shadow:none!important;background:#09232f!important;border-color:#244b5a!important;border-radius:14px!important;padding:14px!important;margin:10px 0!important}
body.dark-mode .eyebrow{font-size:10px!important;letter-spacing:.06em!important;color:#33b8ff!important}
body.dark-mode h2{font-size:20px!important;line-height:1.15!important} body.dark-mode h3{font-size:15px!important}
body.dark-mode .compact-brand-hero{display:none!important}
body.dark-mode #dashboardView{padding-top:0!important}
body.dark-mode .workday-card{margin-top:0!important;padding:13px!important;border-radius:14px!important}
.workday-card .panel-head{margin-bottom:8px!important}.workday-card .panel-head h3{font-size:14px!important;margin-top:4px!important}
.workday-card .secondary.compact{width:34px!important;height:34px!important;border-radius:9px!important}
.workday-stats{margin:0 0 10px!important;gap:3px!important}.workday-stats small{font-size:10px!important}.workday-stats strong{font-size:17px!important;margin-top:2px!important}
.workday-actions{gap:7px!important}.workday-actions button{min-height:38px!important;border-radius:8px!important;font-size:12px!important;padding:7px!important}
.workday-history-link{min-height:48px!important;margin-top:10px!important;padding:10px 0 0!important;font-size:12px!important;display:flex!important;align-items:center!important}.workday-history-link:before{width:30px!important;height:30px!important;border-radius:8px!important;margin-right:9px!important}
body.dark-mode .dashboard-route-button{width:100%!important;min-height:50px!important;margin:10px 0!important;padding:0 12px!important;border:1px solid #148fe5!important;border-radius:10px!important;background:linear-gradient(90deg,#0d5eaa,#087bd4)!important;color:#fff!important;display:grid!important;grid-template-columns:34px 1fr 18px!important;align-items:center!important;text-align:left!important;box-shadow:none!important}
.route-cta-icon{width:28px;height:28px;color:#55d5ff}.route-cta-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8}.route-cta-copy strong,.route-cta-copy small{display:block}.route-cta-copy strong{font-size:15px}.route-cta-copy small{font-size:11px;color:#61d1ff;margin-top:2px}.route-cta-chevron{font-size:24px;text-align:right}
.dashboard-metrics{margin:0!important}.stat-efficiency{padding:9px 0 0!important;background:transparent!important;border:0!important}.route-trend-tabs{gap:5px!important}.route-trend-tabs button{border-radius:8px!important;padding:8px 4px!important;font-size:11px!important;background:#08202b!important}.route-trend-tabs button.active{background:#0784e8!important;border-color:#159cf6!important}
.efficiency-grid{gap:7px!important;margin-top:8px!important}.efficiency-metric{min-height:86px!important;padding:10px!important;border-radius:10px!important}.efficiency-metric small{font-size:9px!important}.efficiency-metric strong{font-size:21px!important;margin:5px 0!important}.kpi-trend{font-size:10px!important}
.dashboard-snapshot-grid{margin:10px 0!important;padding:3px 0!important;border-radius:12px!important}.dashboard-snapshot-grid .dashboard-stat{min-height:104px!important;padding:10px 4px!important;display:flex!important;flex-direction:column!important;justify-content:center!important}.dashboard-snapshot-grid .stat-icon{width:25px!important;height:25px!important;margin:0 auto 3px!important}.dashboard-snapshot-grid .stat-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8}.dashboard-snapshot-grid small{font-size:8px!important}.dashboard-snapshot-grid strong{font-size:18px!important;margin:4px 0!important}.dashboard-snapshot-grid span:not(.stat-icon){font-size:9px!important}
body.dark-mode .upcoming-card{margin-top:10px!important;padding:13px!important}.upcoming-card h3{font-size:14px!important}.upcoming-row{grid-template-columns:42px 1fr auto!important;min-height:58px!important;padding:7px 0!important}.event-date-badge{padding:3px!important;border-radius:8px!important}.event-date-badge small{font-size:8px!important}.event-date-badge strong{font-size:14px!important}.upcoming-row strong{font-size:12px!important}.upcoming-row .muted{font-size:9px!important}.upcoming-card #viewEventsBtn{font-size:10px!important;padding:7px 0 0!important}
#dashboardGameplan,.gameplan-card,.route-progress-track,.dashboard-mini-status,.sync-panel{display:none!important}
/* route */
.route-page-head{display:flex!important;align-items:center!important;justify-content:space-between!important;padding:2px 4px 8px!important;margin:0!important}.route-title-control{position:relative}.route-title-control .eyebrow{display:none!important}.route-title-control h2{font-size:18px!important}.route-title-control h2:after{content:'⌄';font-size:14px;margin-left:6px;color:#d9e9ef}.route-title-control select{position:absolute!important;inset:-6px 0 -6px 0!important;opacity:0!important;cursor:pointer!important}.route-stop-count{color:#39b9ff;font-size:12px;font-weight:700}.route-inline-progress{margin:0 4px 9px!important}.route-inline-progress-head{font-size:11px!important}.route-inline-progress-head span{display:none!important}.route-tab-progress{display:block!important;height:5px!important;background:#11303b!important;border-radius:99px!important;margin-top:7px!important}.route-tab-progress .route-progress-bar{display:block!important;background:#42cf67!important;height:100%!important;border-radius:99px!important}.route-list{gap:7px!important}.route-customer-row{min-height:59px!important;border-radius:10px!important;padding:7px 9px!important;grid-template-columns:34px 1fr 70px!important;gap:8px!important;background:#09232f!important}.route-stop-circle{width:31px!important;height:31px!important;font-size:13px!important}.route-customer-main strong{font-size:13px!important}.route-customer-main .muted{font-size:9px!important}.route-status-label{font-size:9px!important}.route-status-stack small{font-size:8px!important}.route-customer-row.off-week{border-color:#ff9418!important;background:#17251f!important}.route-customer-row.next-up{border-color:#119ff2!important;background:#0a2b3a!important}
/* active visit */
#visitView>#backToRoute{font-size:11px!important;margin:0 0 6px!important}.legacy-visit-head{display:none!important}.visit-customer-summary{background:#09232f;border:1px solid #244b5a;border-radius:12px;padding:10px;margin-bottom:8px}.visit-summary-top{display:grid;grid-template-columns:34px 1fr auto;gap:8px;align-items:center}.visit-stop-number{width:30px;height:30px;border-radius:8px;background:#0d5b9c;border:1px solid #168ee4;display:grid;place-items:center;font-size:16px}.visit-summary-identity strong,.visit-summary-identity small{display:block}.visit-summary-identity strong{font-size:14px}.visit-summary-identity small{font-size:9px;color:#9db5c1;margin-top:2px}.visit-edit-btn{background:#082f42;border:1px solid #1c536a;color:#37b7ff;border-radius:8px;padding:7px 10px;font-size:10px}.visit-summary-meta{display:grid;grid-template-columns:repeat(3,1fr);margin-top:9px;border-top:1px solid #1f4452;padding-top:8px}.visit-summary-meta span{text-align:center;border-right:1px solid #1f4452}.visit-summary-meta span:last-child{border-right:0}.visit-summary-meta small,.visit-summary-meta strong{display:block}.visit-summary-meta small{font-size:8px;color:#91abb7}.visit-summary-meta strong{font-size:10px;margin-top:2px}.visit-subtabs{display:none!important}.visit-repair-cards{margin-top:6px!important}.visit-time-grid{order:4;grid-template-columns:repeat(4,1fr)!important;gap:4px!important;margin:7px 0!important}.visit-time-grid .metric{min-height:43px!important;border-radius:8px!important;padding:6px!important}.visit-time-grid .metric span{font-size:7px!important}.visit-time-grid .metric strong{font-size:10px!important}.visit-time-grid .metric small{display:none!important}.visit-start-row,#startVisitBtn{margin:7px 0!important}.visit-start-row{grid-template-columns:1fr 38%!important;gap:7px!important}.visit-start-row .primary,#startVisitBtn,.off-week-btn{min-height:40px!important;border-radius:8px!important;font-size:12px!important}.previous-visit-snapshot{margin:8px 0!important;border-radius:12px!important;padding:10px!important;border-left-width:3px!important}.previous-visit-snapshot .previous-compact-header{margin-bottom:7px!important}.previous-compact-grid{gap:5px!important}.previous-compact-grid .previous-reading-chip,.previous-compact-grid .previous-chem-chip{min-height:39px!important;padding:5px 6px!important;border-radius:7px!important;font-size:9px!important}
#poolPanel,#spaPanel,#fountainPanel{padding:10px!important;border-radius:12px!important;margin:8px 0!important}#poolPanel>h3,#spaPanel>h3,#fountainPanel>h3{font-size:13px!important;margin:0 0 7px!important}.field-grid,.spa-reading-grid{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:5px!important}.field-grid .chem-tone{padding:6px!important;border-radius:8px!important;min-width:0!important;font-size:9px!important}.field-grid .chem-tone select{min-height:34px!important;height:34px!important;padding:3px 6px!important;border-radius:7px!important;font-size:14px!important;font-weight:700}.field-age-note{font-size:7px!important}.subhead{font-size:9px!important;margin:10px 0 6px!important;padding-top:8px!important}.picker-stack{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:5px!important}.picker-row.chem-tone{min-height:67px!important;border-radius:8px!important;padding:6px!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:space-between!important;font-size:9px!important}.picker-row>span:first-child{font-size:9px!important}.picker-row select{width:100%!important;min-height:31px!important;height:31px!important;border-radius:7px!important;padding:2px 5px!important;font-size:13px!important;text-align:center!important}.tabs-picker .tabs-control{display:flex!important;flex-direction:column!important;gap:3px!important}.tabs-picker .inline-check{font-size:7px!important;white-space:nowrap}.visit-maintenance-panel{padding:10px!important}.visit-maintenance-grid{grid-template-columns:repeat(4,1fr)!important;gap:4px!important}.visit-maintenance-grid label{padding:7px 3px!important;border-radius:7px!important;font-size:9px!important;text-align:center}.backwash-row{margin-top:7px!important}.visit-complete-actions .primary{min-height:42px!important;border-radius:8px!important;font-size:12px!important}
/* customers */
#customersView>.panel-head{margin:0!important;padding:2px 2px 8px!important}#customersView>.panel-head .eyebrow{display:none!important}.customer-toolbar-panel{margin-bottom:8px}.customer-search-wrap{height:38px;border:1px solid #244b5a;border-radius:9px;background:#09232f;display:flex;align-items:center;padding:0 10px;gap:7px}.customer-search-wrap svg{width:17px;height:17px;fill:none;stroke:#9ab4bf;stroke-width:2}.customer-search-wrap input{border:0!important;background:transparent!important;padding:0!important;height:100%!important;font-size:11px!important;outline:none!important}.customer-type-tabs,.maintenance-filter-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:7px}.customer-type-tabs button,.maintenance-filter-tabs button{min-height:31px;border-radius:7px;border:1px solid #244b5a;background:#08202b;color:#a8bdc6;font-size:9px}.customer-type-tabs button.active,.maintenance-filter-tabs button.active{background:#087cd1;color:white;border-color:#149fe9}.customer-list{display:grid;gap:6px}.mockup-customer-card{padding:0!important;margin:0!important;border-radius:9px!important;overflow:hidden}.customer-open-main{width:100%;min-height:53px;border:0;background:transparent;color:white;display:grid;grid-template-columns:1fr auto;align-items:center;text-align:left;padding:8px 10px}.customer-open-main strong,.customer-open-main small{display:block}.customer-open-main strong{font-size:12px}.customer-open-main small{font-size:9px;color:#9db5c1;margin-top:2px}.customer-route-meta{text-align:right;display:grid;grid-template-columns:auto 16px;column-gap:5px;align-items:center}.customer-route-meta b{font-size:9px;color:#42baff}.customer-route-meta em{grid-column:1/2;font-size:8px;color:#ff9f1c;font-style:normal}.customer-route-meta i{grid-column:2;grid-row:1/3;font-size:17px;color:#9bb3bd;font-style:normal}.customer-inline-actions{display:flex;justify-content:flex-end;gap:4px;padding:0 7px 6px}.customer-inline-actions button{border:1px solid #244b5a;background:#08212c;color:#8fb2c1;border-radius:6px;padding:3px 6px;font-size:8px}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
/* maintenance */
#maintenanceView>.panel-head{margin:0!important;padding:2px 2px 7px!important}#maintenanceView>.panel-head .eyebrow{display:none!important}#maintenanceView>.panel-head #logMaintenanceBtn{font-size:9px!important;padding:6px 8px!important}.maintenance-summary-panel{margin:0 0 8px!important}.maintenance-filter-tabs{grid-template-columns:1fr 1.4fr;margin:0}.maintenance-summary{font-size:8px!important;margin-top:5px!important;text-align:right}.maintenance-list{display:grid;gap:7px}.maintenance-due-card{position:relative;background:#09232f;border:1px solid #244b5a;border-radius:10px;padding:9px 10px}.maintenance-due-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.maintenance-due-top small,.maintenance-due-top strong{display:block}.maintenance-due-top small{text-transform:uppercase;color:#37b8ff;font-size:8px;letter-spacing:.04em}.maintenance-due-top strong{font-size:12px;margin-top:2px}.maintenance-due-top b{font-size:10px;color:#45bfff}.maintenance-due-card.due .maintenance-due-top b{color:#ffbd3f}.maintenance-due-card.late .maintenance-due-top b{color:#ff6a6f}.maintenance-due-meta{font-size:8px;color:#9db5c1;margin-top:5px}.maintenance-progress{height:5px;border-radius:99px;background:#173744;margin-top:8px;overflow:hidden}.maintenance-progress i{display:block;height:100%;background:#53cb60;border-radius:99px}.maintenance-due-card.due .maintenance-progress i{background:#ffb331}.maintenance-due-card.late .maintenance-progress i{background:#ff5c63}.maintenance-due-card>button{position:absolute;inset:auto 9px 7px auto;border:0;background:transparent;color:#38baff;font-size:8px}
/* scheduled events */
#eventsView>.panel-head{margin:0!important;padding:2px 2px 8px!important}#eventsView>.panel-head .eyebrow{display:none!important}#eventsView .visit-subtabs{display:flex!important;margin-bottom:8px!important;background:#08232f!important;border:1px solid #244b5a!important}.visit-subtab{min-height:32px!important;font-size:9px!important}.visit-subtab.active{background:#087cd1!important;color:#fff!important}.eventsView .upcoming-row,#eventsList .upcoming-row{background:#09232f;border:1px solid #244b5a!important;border-radius:9px!important;padding:7px 8px!important}
/* work day history */
.workday-history-head{padding:2px 2px 8px!important}.workday-history-summary{border-radius:10px!important;margin:0 0 8px!important}.workday-history-summary>div{padding:10px 4px!important}.workday-history-summary small{font-size:8px!important}.workday-history-summary strong{font-size:15px!important}.workday-history-list{gap:7px!important}.workday-history-row{padding:9px!important;border-radius:9px!important;margin:0!important}.workday-history-date{padding-bottom:6px!important;margin-bottom:6px!important}.workday-history-date strong{font-size:11px!important}.workday-history-date small{font-size:8px!important}.workday-history-times small{font-size:7px!important}.workday-history-times strong{font-size:10px!important}
/* bottom nav */
body.dark-mode .bottom-nav{position:fixed!important;left:50%!important;bottom:0!important;transform:translateX(-50%)!important;width:min(var(--phone-w),100%)!important;height:70px!important;padding:5px 8px calc(6px + env(safe-area-inset-bottom))!important;background:#051923f5!important;border-top:1px solid #244653!important;z-index:50!important}.bottom-nav button{min-height:55px!important;border-radius:8px!important;padding:4px 2px!important}.bottom-nav button.active{background:#0a3550!important}.bottom-nav .nav-icon{width:23px!important;height:23px!important}.bottom-nav .nav-icon svg{width:22px!important;height:22px!important;stroke-width:2!important}.bottom-nav button>span:last-child{font-size:9px!important}
/* dialogs */
body.dark-mode dialog{border:0!important;padding:0!important;background:transparent!important}body.dark-mode .maintenance-dialog-card{width:min(390px,calc(100vw - 20px))!important;background:#071d26!important;border:1px solid #244b5a!important;border-radius:14px!important;padding:14px!important}.maintenance-dialog-card input,.maintenance-dialog-card textarea,.maintenance-dialog-card select{border-radius:8px!important;font-size:11px!important}.maintenance-dialog-actions button{min-height:36px!important;border-radius:8px!important;font-size:10px!important}
/* operational pages stay phone-like on desktop; analysis pages can expand */
@media(min-width:700px){body:has(#businessView.active) .app-shell,body:has(#settingsView.active) .app-shell,body:has(#missedView.active) .app-shell,body:has(#repairsView.active) .app-shell{max-width:980px!important}}
@media(max-width:360px){.field-grid,.spa-reading-grid,.picker-stack{grid-template-columns:repeat(2,1fr)!important}.dashboard-snapshot-grid strong{font-size:15px!important}.workday-actions button{font-size:10px!important}}
/* v1.7 visual QA corrections */
.route-customer-row.completed{box-shadow:none!important;background:#09232f!important;border-color:#244b5a!important}
.route-customer-row.completed .route-customer-main strong{color:#f6fbfd!important}.route-customer-row.completed .muted{color:#9db5c1!important}
.route-customer-row.completed:hover{background:#09232f!important}
.previous-visit-head{align-items:center!important;margin-bottom:7px!important}.previous-visit-head .eyebrow{font-size:9px!important;margin-bottom:2px!important}.previous-date-line{gap:5px!important}.previous-date-line strong{font-size:12px!important}.previous-visit-time{font-size:8px!important}.previous-history-link{font-size:9px!important;color:#39baff!important}.previous-maint-grid{margin-top:5px!important}
/* v1.7.0 second visual QA pass */
.upcoming-row>span:nth-child(2){min-width:0}.upcoming-row>span:nth-child(2) strong,.upcoming-row>span:nth-child(2) small{display:block!important}.upcoming-row>span:nth-child(2) strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upcoming-row>span:nth-child(2) small{margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mockup-customer-card{display:block!important;position:relative!important}.customer-open-main{padding-right:34px!important}.customer-card-more{position:absolute;right:6px;top:11px}.customer-card-more summary{list-style:none;cursor:pointer;color:#8faab6;font-size:11px;padding:4px}.customer-card-more summary::-webkit-details-marker{display:none}.customer-card-more[open]{z-index:5}.customer-card-more .customer-inline-actions{position:absolute;right:0;top:25px;width:115px;background:#071d27;border:1px solid #2c5261;border-radius:8px;padding:5px;display:grid;gap:4px;box-shadow:0 8px 18px rgba(0,0,0,.35)}.customer-card-more .customer-inline-actions button{font-size:9px;text-align:left;padding:6px 7px}
.event-dialog-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin-bottom:12px}.event-dialog-head h3{text-align:center;margin:0!important}.event-dialog-head button:first-child{text-align:left}.event-dialog-head button:last-child{text-align:right}.event-form{display:grid;gap:8px}.event-form label{font-size:9px;color:#c6d7de}.event-form input,.event-form textarea,.event-form select{margin-top:4px;width:100%;min-height:39px;padding:8px!important;box-sizing:border-box}.event-delete-row{margin-top:10px}.event-delete-row button{width:100%}

/* v1.7.1-beta — consolidated correction pass */
/* Global header: larger real logo + persistent version label. */
body.dark-mode .branded-topbar{height:112px!important;grid-template-columns:48px 1fr 48px!important;overflow:visible!important}
body.dark-mode .topbar-brand-logo{width:138px!important;height:98px!important}
body.dark-mode .topbar-status{position:relative!important;overflow:visible!important}
body.dark-mode .topbar-status .badge{display:none!important}
body.dark-mode .topbar-status .version-label{display:block!important;position:absolute!important;right:0!important;top:43px!important;width:max-content!important;color:#7bcfff!important;font-size:9px!important;line-height:1!important;font-weight:700!important;letter-spacing:.02em!important}

/* Home KPI visual indicators from approved mockup. */
.efficiency-grid .efficiency-metric{display:grid!important;grid-template-columns:42px 1fr!important;align-items:center!important;column-gap:10px!important;text-align:left!important}
.efficiency-icon{width:40px;height:40px;border-radius:9px;display:grid;place-items:center;border:1px solid;grid-row:1}
.efficiency-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.efficiency-icon-time{color:#57c8ff;background:#0b3b59;border-color:#116b9b}
.efficiency-icon-chem{color:#c18cff;background:#31294a;border-color:#59467c}
.efficiency-copy{min-width:0}.efficiency-copy small,.efficiency-copy strong,.efficiency-copy span{display:block}
.dashboard-snapshot-grid .dashboard-stat:nth-child(1) .stat-icon{color:#31aef6!important}
.dashboard-snapshot-grid .dashboard-stat:nth-child(2) .stat-icon{color:#59d76b!important}
.dashboard-snapshot-grid .dashboard-stat:nth-child(3) .stat-icon{color:#bd7dff!important}
.dashboard-snapshot-grid .dashboard-stat:nth-child(4) .stat-icon{color:#ff9f1c!important}

/* Route: keep current compact card layout, but make completed/off-week states unmistakable and readable. */
.route-customer-row{width:100%!important;box-sizing:border-box!important;overflow:hidden!important}
.route-customer-main{min-width:0!important;text-align:left!important}
.route-customer-main strong{display:block!important;line-height:1.18!important;overflow-wrap:normal!important;word-break:normal!important}
.route-customer-main .muted{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.route-status-stack{min-width:0!important;text-align:right!important;align-self:center!important}
.route-customer-row.off-week{border:2px solid #ff9418!important;background:rgba(255,148,24,.08)!important}
.route-customer-row.off-week .route-status-label,.route-customer-row.off-week .route-frequency{color:#ff9f1c!important;font-weight:900!important}
.gameplan-toggle{margin:0 4px 8px!important;min-height:36px!important;border-radius:9px!important}

/* Current Visit top identity card: no billing/service metadata. */
.visit-customer-summary{padding:10px 11px!important;margin-bottom:8px!important}
.visit-summary-top{grid-template-columns:36px minmax(0,1fr) auto!important}
.visit-stop-number{width:32px!important;height:32px!important}
.visit-summary-identity strong{font-size:14px!important}.visit-summary-identity small{font-size:9px!important}
.visit-edit-btn{min-height:32px!important;padding:6px 10px!important}
.visit-summary-meta{display:none!important}

/* Previous Visit Summary: mockup-style collapsible 2-column summary. */
.previous-visit-snapshot{padding:0!important;margin:8px 0 9px!important;background:#09232f!important;border:1px solid #244b5a!important;border-left:1px solid #244b5a!important;border-radius:11px!important;overflow:hidden!important}
.previous-summary-details{display:block}.previous-summary-details>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:10px 11px;border-bottom:1px solid #1d4350;color:#fff}
.previous-summary-details>summary::-webkit-details-marker{display:none}.previous-summary-details>summary strong{display:block;font-size:11px}.previous-summary-details>summary small{display:block;color:#8eaab6;font-size:8px;margin-top:2px}.previous-summary-date{font-size:9px;color:#b9cbd2;white-space:nowrap}.previous-summary-date i{font-style:normal;color:#8ca4ad;margin-left:3px}.previous-summary-details:not([open]) .previous-summary-date i{display:inline-block;transform:rotate(-90deg)}
.previous-summary-body{padding:9px 10px 10px}.previous-alerts{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}.previous-alert{border-radius:7px;padding:4px 6px;font-size:8px;font-weight:900;text-transform:uppercase}.previous-alert.danger{background:#4c2022;border:1px solid #a84649;color:#ffb0ad}.previous-alert.warning{background:#552d0e;border:1px solid #ff8a1f;color:#ffc176}
.previous-summary-columns{display:grid;grid-template-columns:1fr 1fr;gap:7px}.previous-summary-columns section{background:#08202b;border:1px solid #204655;border-radius:8px;padding:7px;min-width:0}.previous-summary-columns h4{margin:0 0 6px;font-size:9px;color:#45bfff;font-weight:800}.previous-summary-columns h4 span{margin-right:2px}.previous-detail-list{display:grid;gap:4px}.previous-detail-line{display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:4px;font-size:8px;color:#c6d7de}.previous-detail-line strong{font-size:8px;color:#fff;white-space:nowrap}.previous-color-dot{width:7px;height:7px;border-radius:50%}.previous-color-dot.yellow{background:#f0c733}.previous-color-dot.red{background:#ff5b61}.previous-color-dot.green{background:#54ce6c}.previous-color-dot.pink{background:#ff56c1}.previous-color-dot.orange{background:#ff9418}.previous-color-dot.blue{background:#4dafff}.previous-color-dot.brown{background:#ca8951}.previous-check{width:8px;height:8px;border-radius:50%;background:#52c867;color:#082219;font-size:6px;font-weight:900;display:grid;place-items:center}.previous-none{font-size:8px}.previous-history-bottom{width:100%;margin-top:8px;min-height:32px;border:1px solid #24536a;border-radius:7px;background:#082a3b;color:#43bfff;font-size:9px;font-weight:800}

/* Start / Off Week pair to match approved mockup. */
.visit-start-row{grid-template-columns:1fr 1fr!important;gap:7px!important;margin:8px 0!important}.visit-start-row #startVisitBtn,.visit-start-row .off-week-btn{height:40px!important;min-height:40px!important;border-radius:8px!important;border:1px solid transparent!important;font-size:12px!important;font-weight:800!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:7px!important}.visit-start-row #startVisitBtn{background:#21a954!important;color:#fff!important}.visit-start-row .off-week-btn{background:#0b6fc6!important;border-color:#148fe5!important;color:#fff!important}.off-week-btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Current chemistry: mockup tiles, tap the full tile to use native select. */
#poolPanel,#spaPanel,#fountainPanel{background:transparent!important;border:0!important;padding:0!important;margin:10px 0 12px!important}
#poolPanel>h3,#spaPanel>h3,#fountainPanel>h3,.subhead{color:#32b8ff!important;font-size:10px!important;text-transform:uppercase!important;letter-spacing:.04em!important;font-weight:900!important;margin:0 0 7px!important;padding:0!important;border:0!important}
.subhead{margin-top:11px!important}
.field-grid,.spa-reading-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important}
.field-grid .reading-tile{position:relative!important;min-height:70px!important;padding:7px 6px 6px!important;border:1px solid #244b5a!important;border-radius:9px!important;background:#09232f!important;color:#a9c0c9!important;text-align:center!important;font-size:9px!important;font-weight:700!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;box-sizing:border-box!important}
.field-grid .reading-tile select{appearance:none!important;-webkit-appearance:none!important;width:100%!important;height:auto!important;min-height:27px!important;margin:2px 0 0!important;padding:0!important;border:0!important;background:transparent!important;color:#fff!important;text-align:center!important;text-align-last:center!important;font-size:18px!important;line-height:1.15!important;font-weight:500!important;box-shadow:none!important;outline:none!important}
.field-grid .reading-tile::after{content:attr(data-unit);display:block;color:#819ca7;font-size:8px;font-weight:600;line-height:1;margin-top:0}
.field-grid .reading-tile[data-unit=""]::after{content:' ';height:8px}
.field-grid .reading-tile.reading-outlier{background:#17272d!important}.field-grid .reading-tile.reading-outlier.chem-yellow{border-color:#8c7f2f!important;background:#302d19!important}.field-grid .reading-tile.reading-outlier.chem-red{border-color:#a7474b!important;background:#3b2023!important}.field-grid .reading-tile.reading-outlier.chem-green{border-color:#417b4e!important;background:#183324!important}.field-grid .reading-tile.reading-high-cya{border-color:#ff8a1f!important;background:#482607!important;color:#ffbe72!important}.field-grid .reading-tile.reading-zero{border-color:#ff5b61!important;background:#4a2022!important;color:#ffb0ad!important}
#salinityField .field-age-note{display:none!important}
.picker-stack{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important}
.picker-row.chem-tone{min-height:76px!important;padding:7px 6px!important;border-radius:9px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;text-align:center!important;font-weight:800!important;box-sizing:border-box!important}
.picker-row>span:first-child{font-size:9px!important;line-height:1.1!important;min-height:20px!important;color:inherit!important}.picker-row>span:first-child small{display:none!important}
.picker-row select{appearance:none!important;-webkit-appearance:none!important;width:100%!important;min-height:30px!important;height:30px!important;margin-top:3px!important;padding:0!important;border:0!important;background:transparent!important;color:#fff!important;text-align:center!important;text-align-last:center!important;font-size:18px!important;line-height:1!important;font-weight:500!important;box-shadow:none!important}
.picker-row.chem-yellow{background:#302d18!important;border-color:#827523!important;color:#e6cd44!important}.picker-row.chem-red{background:#3a2224!important;border-color:#8a4045!important;color:#ff888e!important}.picker-row.chem-pink{background:#3d1630!important;border-color:#ce2d92!important;color:#ff63be!important}.picker-row.chem-green{background:#173523!important;border-color:#327244!important;color:#65d47c!important}.picker-row.chem-orange{background:#472508!important;border-color:#e67913!important;color:#ff9a39!important}.picker-row.chem-blue{background:#163149!important;border-color:#346d9e!important;color:#69b9ff!important}.picker-row.chem-brown{background:#3b2b20!important;border-color:#7b593d!important;color:#d3a075!important}
.tabs-picker .tabs-control{width:100%!important;display:flex!important;flex-direction:column-reverse!important;gap:2px!important;align-items:center!important}.tabs-picker .inline-check{font-size:7px!important;color:#d7afc9!important;white-space:nowrap!important}.tabs-picker .inline-check input{width:11px!important;height:11px!important;margin:0 2px 0 0!important}

/* Customers: beta styling plus stable route filtering and direct actions. */
.customer-toolbar-panel{display:grid;grid-template-columns:1fr 132px;gap:7px;align-items:end;margin-bottom:8px!important}.customer-search-wrap{margin:0!important}.customer-route-filter{display:grid;gap:3px}.customer-route-filter label{font-size:8px;color:#8da6b0;text-transform:uppercase;letter-spacing:.04em}.customer-route-filter select{height:38px!important;min-height:38px!important;padding:0 8px!important;border-radius:9px!important;background:#09232f!important;border:1px solid #244b5a!important;color:#fff!important;font-size:10px!important}
.customer-type-tabs{display:none!important}.customer-list{display:grid;gap:7px}.beta-customer-card{display:grid!important;grid-template-columns:47px minmax(0,1fr)!important;gap:8px!important;padding:9px 10px!important;margin:0!important;background:#09232f!important;border:1px solid #244b5a!important;border-radius:10px!important}.beta-customer-route{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;color:#49bdff;font-size:9px;font-weight:800;padding-top:1px}.beta-customer-route strong{font-size:11px;color:#fff;margin-top:2px}.beta-customer-main{min-width:0}.beta-customer-main>strong{display:block;font-size:12px}.beta-customer-main>small{display:block;font-size:8px;color:#a5bbc4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.beta-customer-main>span{display:block;font-size:8px;color:#75c8ef;margin-top:4px}.beta-customer-main>span b{color:#ff9f1c}.beta-customer-actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.beta-customer-actions button{min-height:27px!important;border-radius:7px!important;border:1px solid #285469!important;background:#082838!important;color:#d8f0fa!important;font-size:8px!important;font-weight:800!important;padding:4px 7px!important}.beta-customer-actions .customer-order-btn{width:29px!important;padding:0!important;font-size:13px!important}.beta-customer-actions button:disabled{opacity:.35!important}

/* Maintenance: v1.4 grouped customer layout, compact, no status/progress bars. */
.maintenance-toolbar-panel{margin:0 0 8px!important;padding:9px!important;background:#09232f!important;border:1px solid #244b5a!important;border-radius:10px!important}.maintenance-toolbar-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.maintenance-toolbar-grid label{font-size:8px;color:#9db4bd}.maintenance-toolbar-grid select{display:block;width:100%;min-height:36px!important;margin-top:3px;padding:6px 8px!important;border-radius:8px!important;background:#071d27!important;border:1px solid #315767!important;color:#fff!important;font-size:10px!important}.maintenance-summary{text-align:left!important;margin-top:6px!important;font-size:8px!important}.maintenance-list{gap:7px!important}.compact-maintenance-card{background:#09232f!important;border:1px solid #244b5a!important;border-radius:10px!important;overflow:hidden!important}.compact-maintenance-card .maintenance-card-head{padding:8px 10px 7px!important;border-bottom:1px solid #244b5a!important}.compact-maintenance-card .maintenance-card-head strong{font-size:11px!important}.compact-maintenance-card .maintenance-card-head .muted{font-size:8px!important}.compact-maintenance-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:'type actions' 'dates actions'!important;gap:3px 8px!important;padding:8px 10px!important;border-top:1px solid #1d414e!important;align-items:center!important}.compact-maintenance-row:first-of-type{border-top:0!important}.compact-maintenance-row .maintenance-type{grid-area:type;font-size:10px!important;font-weight:800!important}.compact-maintenance-row .maintenance-dates{grid-area:dates;font-size:8px!important;line-height:1.45!important;color:#9fb7c1!important}.compact-maintenance-row .maintenance-row-actions{grid-area:actions;display:flex!important;flex-direction:column!important;align-items:flex-end!important;gap:5px!important}.compact-maintenance-row .badge{font-size:7px!important;padding:3px 5px!important}.compact-maintenance-row .maintenance-log-btn{min-height:29px!important;padding:5px 8px!important;border:1px solid #315b6d!important;border-radius:7px!important;background:#082631!important;color:#fff!important;font-size:8px!important;font-weight:800!important}
.maintenance-progress,.maintenance-due-card{display:none!important}

/* Work History + larger edit controls. */
.work-history-row{cursor:default!important}.work-history-route{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding-top:7px;margin-top:7px;border-top:1px solid #204653}.work-history-route span{text-align:center}.work-history-route small,.work-history-route strong{display:block}.work-history-route small{font-size:7px;color:#829da8}.work-history-route strong{font-size:10px;margin-top:2px}.work-history-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}.work-history-actions button{min-height:34px!important;border-radius:8px!important;font-size:8px!important;padding:5px!important}
.workday-edit-card{outline:none!important}.workday-edit-card .customer-form-grid{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;margin-top:12px!important}.workday-edit-card .customer-form-grid label{font-size:14px!important;color:#eaf5f9!important}.workday-edit-card input[type="date"],.workday-edit-card input[type="time"]{display:block!important;width:100%!important;min-height:56px!important;height:56px!important;margin-top:5px!important;padding:10px 12px!important;border:2px solid #4c9ab9!important;border-radius:10px!important;background:#082530!important;color:#fff!important;font-size:18px!important;font-weight:600!important;box-sizing:border-box!important;color-scheme:dark!important}.workday-edit-card .maintenance-dialog-actions{margin-top:14px!important}.workday-edit-card .maintenance-dialog-actions button{min-height:44px!important;font-size:12px!important}
.route-summary-offweeks{margin-top:8px;color:#ffb55e;font-size:9px}

@media(max-width:360px){.customer-toolbar-panel{grid-template-columns:1fr 112px}.previous-summary-columns{grid-template-columns:1fr}.efficiency-grid .efficiency-metric{grid-template-columns:35px 1fr!important}.efficiency-icon{width:34px;height:34px}.efficiency-icon svg{width:21px;height:21px}}
/* v1.7.1-beta QA fix: route Gameplan must be able to expand/collapse. Home gameplan remains intentionally hidden. */
#routeGameplan:not(.hidden){display:block!important}


/* v1.7.2-beta — field usability + visit hierarchy + sync visibility */
/* Global header/logo/status */
body.dark-mode .branded-topbar{height:122px!important;grid-template-columns:52px 1fr 58px!important}
body.dark-mode .topbar-brand-logo{width:170px!important;height:110px!important;max-width:100%!important;object-fit:contain!important}
body.dark-mode .topbar-status{align-self:start!important;padding-top:7px!important;min-width:58px!important}
body.dark-mode .topbar-status .badge{display:block!important;position:absolute!important;right:0!important;top:52px!important;width:max-content!important;max-width:150px!important;white-space:nowrap!important;background:#075071!important;border:1px solid #146889!important;color:#e5f7ff!important;border-radius:999px!important;padding:4px 7px!important;font-size:8px!important;line-height:1!important;font-weight:800!important}
body.dark-mode .topbar-status .version-label{top:76px!important;font-size:9px!important}
.home-sync-now-btn{display:flex;width:100%;min-height:46px;margin:10px 0 2px;border:1px solid #2d6076;border-radius:10px;background:#082a39;color:#55c7ff;align-items:center;justify-content:center;gap:7px;font-size:13px;font-weight:850}.home-sync-now-btn:disabled{opacity:.55}
/* Keep the legacy detailed sync panel hidden; the new compact manual control is the field-facing surface. */
.sync-panel,.dashboard-mini-status,.route-progress-track{display:none!important}

/* Visit hierarchy restored from stable v1.4, with beta visual treatment. */
#visitView>#backToRoute{display:inline-flex!important;align-items:center!important;min-height:44px!important;padding:8px 4px!important;margin:0 0 5px!important;font-size:14px!important;font-weight:700!important;color:#4dc4ff!important}
#visitView .visit-subtabs{display:flex!important;margin:7px 0 9px!important;padding:4px!important;min-height:48px!important;background:#0a222d!important;border:1px solid #244856!important;border-radius:11px!important}
#visitView .visit-subtab{min-height:40px!important;font-size:13px!important;padding:8px 10px!important}
#visitView .visit-time-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px!important;margin:7px 0 8px!important}
#visitView .visit-time-grid .metric{min-height:66px!important;padding:8px!important;border-radius:9px!important}
#visitView .visit-time-grid .metric span{font-size:9px!important}
#visitView .visit-time-grid .metric strong{font-size:14px!important;margin-top:4px!important}
#visitView .visit-time-grid .metric small{display:block!important;font-size:7px!important;line-height:1.1!important;margin-top:3px!important;color:#7fcaf0!important}
.visit-start-row{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;margin:8px 0!important;width:100%!important}
.visit-start-row.has-off-week{grid-template-columns:1fr 1fr!important}
.visit-start-row #startVisitBtn,.visit-start-row .off-week-btn{width:100%!important;height:48px!important;min-height:48px!important;border-radius:9px!important;font-size:13px!important;font-weight:900!important}
.visit-start-row #startVisitBtn{background:linear-gradient(135deg,#b7daf5,#1b72c8)!important;border-color:#2a8ee0!important;color:#fff!important}
.visit-start-row #startVisitBtn.visit-in-progress{background:linear-gradient(135deg,#2aa74e,#4acb67)!important;border-color:#44c965!important}
.visit-start-row .off-week-btn{background:#0b6fc6!important;border:1px solid #1b95e9!important}
.off-week-btn svg{width:20px!important;height:20px!important}
/* Current visit customer card and utility links */
.visit-customer-summary{margin-bottom:8px!important}.visit-edit-btn{min-height:42px!important;font-size:11px!important;padding:8px 12px!important}
.previous-history-bottom{min-height:44px!important;font-size:12px!important;margin-top:10px!important}
/* Previous visit: larger readable text + body-specific chemistry chips. */
.previous-visit-snapshot{margin:9px 0 10px!important}
.previous-summary-details>summary{padding:12px!important;min-height:54px!important}
.previous-summary-details>summary strong{font-size:13px!important}.previous-summary-details>summary small{font-size:10px!important;line-height:1.3!important}.previous-summary-date{font-size:10px!important}
.previous-summary-body{padding:10px 11px 11px!important}.previous-readings-v172{display:grid;gap:9px;margin-bottom:10px}.previous-reading-body{display:grid;grid-template-columns:54px minmax(0,1fr);gap:7px;align-items:start}.previous-body-name{font-size:10px;font-weight:900;color:#4bc2ff;text-transform:uppercase;letter-spacing:.04em;padding-top:7px}.previous-reading-grid-v172{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.previous-reading-chip.v172{min-height:61px;border:1px solid #315567;border-radius:9px;background:#0b2733;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 4px;text-align:center;color:#d7e8ee}.previous-reading-chip.v172 small{font-size:9px;font-weight:800;color:#aec2ca}.previous-reading-chip.v172 b{font-size:17px;line-height:1.05;color:#fff;margin-top:2px}.previous-reading-unit{font-size:7px;color:#8ca7b1;margin-top:1px}.previous-reading-chip.v172 em{font-size:7px;font-style:normal;font-weight:900;text-transform:uppercase;margin-top:3px}.previous-reading-chip.v172.sanitizer-zero{background:#4a2022;border-color:#ff5b61;color:#ffb0ad}.previous-reading-chip.v172.sanitizer-zero em{color:#ffc1bf}.previous-reading-chip.v172.previous-reading-high-cya{background:#4b2707;border-color:#ff8a1f;color:#ffc176}.previous-reading-chip.v172.previous-reading-high-cya em{color:#ffc176}
.previous-summary-columns{gap:8px!important}.previous-summary-columns section{padding:9px!important}.previous-summary-columns h4{font-size:11px!important;margin-bottom:7px!important}.previous-detail-list{gap:6px!important}.previous-detail-line{grid-template-columns:10px minmax(0,1fr) auto!important;gap:6px!important;font-size:10px!important;line-height:1.25!important}.previous-detail-line strong{font-size:10px!important}.previous-color-dot{width:9px!important;height:9px!important}.previous-check{width:10px!important;height:10px!important;font-size:7px!important}.previous-none{font-size:10px!important}
/* Current reading/chemical tiles remain compact but field-readable. */
#poolPanel>h3,#spaPanel>h3,#fountainPanel>h3,.subhead{font-size:11px!important}.field-grid .reading-tile{min-height:76px!important;font-size:10px!important}.field-grid .reading-tile select{font-size:20px!important;min-height:32px!important}.picker-row.chem-tone{min-height:84px!important;padding:8px 7px!important}.picker-row>span:first-child{font-size:10px!important;min-height:22px!important}.picker-row select{font-size:20px!important;min-height:34px!important;height:34px!important}
.tabs-picker{min-height:104px!important}.tabs-picker .tabs-control{gap:3px!important}.tabs-picker .inline-check{display:flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;min-height:38px!important;font-size:10px!important;line-height:1.1!important;padding:3px!important;white-space:normal!important;text-align:left!important;cursor:pointer!important}.tabs-picker .inline-check input{appearance:auto!important;-webkit-appearance:auto!important;width:21px!important;height:21px!important;min-width:21px!important;margin:0!important;accent-color:#48bfff!important}
/* General one-handed field controls */
.beta-customer-actions button{min-height:42px!important;font-size:10px!important;padding:7px 9px!important}.beta-customer-actions .customer-order-btn{width:42px!important;font-size:16px!important}.customer-route-filter label{font-size:10px!important}.customer-route-filter select{min-height:44px!important;height:44px!important;font-size:12px!important}.customer-search-wrap input{min-height:44px!important;font-size:13px!important}.maintenance-toolbar-grid label{font-size:10px!important}.maintenance-toolbar-grid select{min-height:44px!important;font-size:12px!important}.compact-maintenance-card .maintenance-card-head strong{font-size:13px!important}.compact-maintenance-card .maintenance-card-head .muted{font-size:10px!important}.compact-maintenance-row{padding:10px!important}.compact-maintenance-row .maintenance-type{font-size:12px!important}.compact-maintenance-row .maintenance-dates{font-size:10px!important}.compact-maintenance-row .badge{font-size:8px!important;padding:4px 6px!important}.compact-maintenance-row .maintenance-log-btn{min-height:42px!important;font-size:10px!important;padding:7px 9px!important}.gameplan-toggle{min-height:44px!important;font-size:12px!important}.work-history-actions button{min-height:44px!important;font-size:10px!important}.workday-history-row{padding:11px!important}.workday-history-date strong{font-size:13px!important}.workday-history-date small{font-size:10px!important}.workday-history-times small{font-size:9px!important}.workday-history-times strong{font-size:12px!important}
/* Work-day edit must fit iPhone and support deletion. */
.workday-edit-dialog{max-width:100vw!important}.workday-edit-dialog .workday-edit-card{width:calc(100vw - 28px)!important;max-width:380px!important;box-sizing:border-box!important;margin:auto!important;padding:16px!important}.workday-edit-card h3{font-size:18px!important}.workday-edit-card .customer-form-grid label{font-size:15px!important}.workday-edit-card input[type="date"],.workday-edit-card input[type="time"]{min-height:58px!important;height:58px!important;font-size:19px!important}.workday-delete-btn{width:100%!important;min-height:46px!important;margin-top:14px!important;border-radius:9px!important;font-size:12px!important;font-weight:850!important}
@media(max-width:390px){body.dark-mode .topbar-brand-logo{width:154px!important;height:104px!important}.previous-reading-body{grid-template-columns:1fr}.previous-body-name{padding-top:0}.previous-reading-grid-v172{grid-template-columns:repeat(4,minmax(0,1fr))}.previous-summary-columns{grid-template-columns:1fr 1fr!important}#visitView .visit-time-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}.visit-time-grid .metric{padding:6px!important}.visit-time-grid .metric strong{font-size:13px!important}.visit-time-grid .metric small{font-size:6.5px!important}}
@media(max-width:340px){.previous-reading-grid-v172{grid-template-columns:repeat(2,minmax(0,1fr))}.previous-summary-columns{grid-template-columns:1fr!important}#visitView .visit-time-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.visit-start-row.has-off-week{grid-template-columns:1fr!important}}

/* v1.7.2-beta final QA refinements */
/* The logo artwork has generous internal SVG whitespace, so size the asset larger to make the visible badge read clearly in the field. */
body.dark-mode .topbar-brand-logo{width:204px!important;height:118px!important}
/* Customers: keep Route Day + search without clipping on phone. */
.customer-toolbar-panel{grid-template-columns:minmax(0,1fr) 118px!important;min-width:0!important;overflow:hidden!important}
.customer-search-wrap,.customer-route-filter{min-width:0!important}.customer-route-filter select{width:100%!important;min-width:0!important}
/* Give Tablets Remaining a true one-handed 44px touch target while keeping the checkbox itself visually reasonable. */
.tabs-picker .inline-check{min-height:44px!important;padding:4px 3px!important}.tabs-picker .inline-check input{width:23px!important;height:23px!important;min-width:23px!important}
/* Work day editor: intentional phone gutters instead of edge-to-edge dialog. */
.workday-edit-dialog .workday-edit-card{width:calc(100vw - 40px)!important;max-width:360px!important}
@media(max-width:390px){body.dark-mode .topbar-brand-logo{width:190px!important;height:112px!important}.customer-toolbar-panel{grid-template-columns:minmax(0,1fr) 112px!important}}
@media(max-width:340px){.customer-toolbar-panel{grid-template-columns:1fr!important}.customer-route-filter{margin-top:6px!important}.workday-edit-dialog .workday-edit-card{width:calc(100vw - 28px)!important}}


/* v1.7.6-beta */
/* Current Visit chemistry colors are fixed identifiers; range state never recolors these tiles. */
#visitView .reading-tile.reading-outlier,#visitView .reading-tile.reading-zero,#visitView .reading-tile.reading-high-cya{filter:none!important;box-shadow:none!important}
.previous-reading-chip.v172.previous-reading-high{background:#4b2707!important;border-color:#ff8a1f!important;color:#ffc176!important}.previous-reading-chip.v172.previous-reading-high em{color:#ffc176!important}
.previous-reading-chip.v172.previous-reading-low{background:#173548!important;border-color:#3aaef2!important;color:#9ddaff!important}.previous-reading-chip.v172.previous-reading-low em{color:#7dceff!important}
/* Historical route cards must be stable on first paint. */
.route-customer-row{display:grid!important;grid-template-columns:38px minmax(0,1fr) auto!important;gap:10px!important;align-items:center!important;width:100%!important;box-sizing:border-box!important}.route-customer-main{min-width:0!important;width:auto!important}.route-customer-main strong{white-space:normal!important;overflow-wrap:anywhere!important}.route-customer-main .muted{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.route-status-stack{min-width:86px!important;max-width:112px!important;width:auto!important;justify-self:end!important}.route-status-label{width:auto!important;min-width:76px!important;padding:7px 10px!important;text-align:center!important}
/* iOS-safe fixed Work Day editor: never exceed viewport. */
#workDayDialog.workday-edit-dialog{position:fixed!important;inset:0!important;width:100vw!important;max-width:none!important;height:100dvh!important;max-height:none!important;margin:0!important;padding:18px!important;box-sizing:border-box!important;background:rgba(0,13,20,.62)!important;overflow:auto!important}
#workDayDialog.workday-edit-dialog[open]{display:flex!important;align-items:center!important;justify-content:center!important}
#workDayDialog .workday-edit-card{width:min(100%,360px)!important;max-width:360px!important;min-width:0!important;margin:auto!important;padding:16px!important;box-sizing:border-box!important;overflow:hidden!important}
#workDayDialog .customer-form-grid,#workDayDialog .customer-form-grid label,#workDayDialog input[type="date"],#workDayDialog input[type="time"]{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}
#workDayDialog .maintenance-dialog-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}#workDayDialog .maintenance-dialog-actions>span{display:none!important}#workDayDialog .maintenance-dialog-actions button{width:100%!important}
/* Repair form phone width cleanup. */
#repairDialog .maintenance-dialog-card{width:min(calc(100vw - 28px),500px)!important;box-sizing:border-box!important;overflow:hidden!important}#repairDialog input,#repairDialog select,#repairDialog textarea{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}
/* Bromine tablets remaining uses same one-hand target as chlorine tabs. */
#spaBromineRow .inline-check{min-height:44px!important}#spaBromineRow .inline-check input{width:23px!important;height:23px!important;min-width:23px!important}
@media(max-width:390px){.route-customer-row{grid-template-columns:34px minmax(0,1fr) 88px!important;gap:8px!important}.route-status-stack{min-width:80px!important;max-width:88px!important}.route-status-label{min-width:72px!important;padding:6px 7px!important;font-size:10px!important}}


/* v1.7.6-beta targeted stability / field-identity rules */
.previous-reading-chip.v172{min-width:0!important;width:100%!important;box-sizing:border-box!important;overflow:hidden!important}
.previous-reading-chip.v172.chem-yellow{background:#fff8cc!important;border-color:#eadf8d!important;color:#6d5d00!important}
.previous-reading-chip.v172.chem-blue{background:#dfeeff!important;border-color:#abcdf3!important;color:#1d4f7a!important}
.previous-reading-chip.v172.chem-red{background:#fde3e1!important;border-color:#e8b7b3!important;color:#8b2d2d!important}
.previous-reading-chip.v172.chem-green{background:#e3f3e4!important;border-color:#bdd9bf!important;color:#2f6b3a!important}
.previous-reading-chip.v172.chem-orange{background:#fff0d8!important;border-color:#ffb15a!important;color:#8a4600!important}
.previous-reading-chip.v172.chem-purple{background:#ece3fb!important;border-color:#cbb8ea!important;color:#5a3e86!important}
body.dark-mode .previous-reading-chip.v172.chem-yellow{background:#4a4319!important;border-color:#756a28!important;color:#ffe86e!important}
body.dark-mode .previous-reading-chip.v172.chem-blue{background:#17344f!important;border-color:#2f6594!important;color:#9ddaff!important}
body.dark-mode .previous-reading-chip.v172.chem-red{background:#492426!important;border-color:#73393c!important;color:#ffb6b0!important}
body.dark-mode .previous-reading-chip.v172.chem-green{background:#1d3d28!important;border-color:#315f40!important;color:#a6efb9!important}
body.dark-mode .previous-reading-chip.v172.chem-orange{background:#5b2d08!important;border-color:#ff8a1f!important;color:#ffc176!important}
body.dark-mode .previous-reading-chip.v172.chem-purple{background:#34264b!important;border-color:#574079!important;color:#d6c0ff!important}
body.dark-mode .previous-reading-chip.v172.chem-yellow b,body.dark-mode .previous-reading-chip.v172.chem-blue b,body.dark-mode .previous-reading-chip.v172.chem-red b,body.dark-mode .previous-reading-chip.v172.chem-green b,body.dark-mode .previous-reading-chip.v172.chem-orange b,body.dark-mode .previous-reading-chip.v172.chem-purple b{color:#fff!important}
.previous-reading-chip.v172[data-range="low"] em,.previous-reading-chip.v172[data-range="high"] em,.previous-reading-chip.v172[data-range="zero"] em{color:inherit!important;font-weight:950!important}
.previous-reading-grid-v172{grid-template-columns:repeat(4,minmax(62px,1fr))!important;min-width:0!important}.previous-reading-body{min-width:0!important}.previous-readings-v172{min-width:0!important}
@media(max-width:430px){.previous-reading-body{grid-template-columns:46px minmax(0,1fr)!important}.previous-reading-grid-v172{gap:5px!important}}

#workDayDialog .workday-edit-card{width:min(calc(100vw - 28px),360px)!important;max-width:min(calc(100vw - 28px),360px)!important;min-width:0!important;overflow:hidden!important}
#workDayDialog .customer-form-grid,#workDayDialog .customer-form-grid label{min-width:0!important;max-width:100%!important;width:100%!important}
.workday-picker-shell{position:relative!important;display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;max-width:100%!important;min-width:0!important;height:58px!important;margin-top:5px!important;border:2px solid #4c9ab9!important;border-radius:10px!important;background:#082530!important;box-sizing:border-box!important;overflow:hidden!important}
.workday-picker-display{display:block!important;width:100%!important;min-width:0!important;padding:0 12px!important;box-sizing:border-box!important;text-align:center!important;color:#fff!important;font-size:19px!important;font-weight:700!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;pointer-events:none!important}
#workDayDialog .workday-picker-shell input[type="date"],#workDayDialog .workday-picker-shell input[type="time"]{position:absolute!important;inset:0!important;width:100%!important;max-width:100%!important;min-width:0!important;height:100%!important;margin:0!important;padding:0!important;border:0!important;opacity:.001!important;cursor:pointer!important;box-sizing:border-box!important;-webkit-appearance:none!important;appearance:none!important}
#workDayDialog .workday-picker-shell input::-webkit-date-and-time-value{min-width:0!important;width:100%!important}


/* v1.7.6-beta — surgical core-functionality fixes. Do not override established business/color rules. */
/* Hidden means hidden. Earlier compact-grid !important display rules must never resurrect body-specific controls. */
.hidden.hidden{display:none!important}
#visitView .hidden.hidden,#visitView .hidden{display:none!important}

/* Current Visit reading tiles retain fixed chemical identity colors at all times. */
#visitView .field-grid .reading-tile.chem-yellow{background:#4a4319!important;border-color:#756a28!important;color:#ffe86e!important}
#visitView .field-grid .reading-tile.chem-blue{background:#17344f!important;border-color:#2f6594!important;color:#9ddaff!important}
#visitView .field-grid .reading-tile.chem-red{background:#492426!important;border-color:#73393c!important;color:#ffb6b0!important}
#visitView .field-grid .reading-tile.chem-green{background:#1d3d28!important;border-color:#315f40!important;color:#a6efb9!important}
#visitView .field-grid .reading-tile.chem-orange{background:#5b2d08!important;border-color:#ff8a1f!important;color:#ffc176!important}
#visitView .field-grid .reading-tile.chem-purple{background:#34264b!important;border-color:#574079!important;color:#d6c0ff!important}
#visitView .field-grid .reading-tile.chem-yellow select,#visitView .field-grid .reading-tile.chem-blue select,#visitView .field-grid .reading-tile.chem-red select,#visitView .field-grid .reading-tile.chem-green select,#visitView .field-grid .reading-tile.chem-orange select,#visitView .field-grid .reading-tile.chem-purple select{color:#fff!important}
#visitView .field-grid .reading-tile.reading-outlier,#visitView .field-grid .reading-tile.reading-zero,#visitView .field-grid .reading-tile.reading-high-cya{filter:none!important;box-shadow:none!important}

/* Salinity follows Backwash-style age information. */
#salinityField .field-age-note{display:block!important;min-height:10px!important;margin-top:3px!important;font-size:7px!important;line-height:1.2!important}

/* Desktop/web Previous Visit: allow four identity chips to wrap sanely instead of overlapping. */
.previous-reading-body{min-width:0!important;overflow:hidden!important}
.previous-reading-grid-v172{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:7px!important;width:100%!important;min-width:0!important}
.previous-reading-chip.v172{min-width:0!important;width:100%!important;max-width:100%!important;box-sizing:border-box!important;overflow:hidden!important}
@media(min-width:431px) and (max-width:620px){.previous-reading-grid-v172{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px!important}.previous-reading-chip.v172{padding-left:5px!important;padding-right:5px!important}}


/* v1.7.6-beta — field-use form sizing and Customers readability. */
@media(max-width:700px){
  #eventDialog input,#eventDialog select,#eventDialog textarea,#customerDialog input,#customerDialog select,#customerDialog textarea{font-size:16px!important;line-height:1.25!important;}
}
#customerSpaSanitizerRow.hidden{display:none!important}
#customerSpaSanitizerRow:not(.hidden){display:block!important}
.beta-customer-main>strong{font-size:14px!important;line-height:1.25!important}
.beta-customer-main>small{font-size:10px!important;line-height:1.3!important}
.beta-customer-main>span{font-size:10px!important;line-height:1.3!important}
.beta-customer-route{font-size:10px!important}.beta-customer-route strong{font-size:13px!important}
.beta-customer-actions{gap:7px!important;margin-top:8px!important}
.beta-customer-actions button{min-height:44px!important;font-size:11px!important;padding:8px 10px!important}
.beta-customer-actions .customer-order-btn{width:44px!important;font-size:17px!important}
#customersView>.panel-head h2{font-size:1.35rem!important}
#addCustomerBtn{min-height:44px!important;font-size:13px!important;padding:8px 12px!important}
#customerSearch{font-size:16px!important}
#customerDayFilter{font-size:14px!important}
#eventDialog .event-delete-row{margin-top:14px!important}
#deleteEventBtn{width:100%!important;min-height:48px!important;font-size:14px!important;font-weight:900!important}

/* v1.7.7-beta — access-code visibility and route continuity */
.route-customer-name-line,.visit-summary-name-line{display:flex!important;align-items:baseline!important;gap:8px!important;min-width:0!important;flex-wrap:wrap!important}
.route-customer-name-line>strong,.visit-summary-name-line>strong{min-width:0!important}
.customer-access-code{display:inline-flex!important;align-items:center!important;white-space:nowrap!important;border:1px solid #3b7187!important;border-radius:6px!important;background:#0b3040!important;color:#9fe0ff!important;padding:2px 6px!important;font-size:9px!important;font-weight:850!important;line-height:1.15!important;letter-spacing:.01em!important}
.customer-access-code.hidden{display:none!important}
.route-customer-row.in-progress{border-color:#168dd0!important;box-shadow:inset 3px 0 0 #168dd0!important}
.route-customer-row.in-progress .route-status-label{color:#62c8ff!important}
#customerAccessCodeInput{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace!important;letter-spacing:.03em!important}


/* v1.8.0-beta — lightweight Next Visit sticky note + Waze handoff */
.route-address-line{display:flex!important;align-items:center!important;gap:7px!important;min-width:0!important;margin-top:2px!important}
.route-address-line .muted{min-width:0!important;flex:1 1 auto!important;margin:0!important}
.route-waze-link,.visit-waze-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;white-space:nowrap!important;border:1px solid #3e86a4!important;background:#0b3040!important;color:#76d2ff!important;border-radius:7px!important;font-weight:850!important;letter-spacing:.01em!important}
.route-waze-link{font-size:8px!important;padding:3px 6px!important;line-height:1!important;flex:0 0 auto!important;cursor:pointer!important}
.visit-summary-actions{display:flex!important;align-items:center!important;gap:5px!important}
.visit-waze-btn{font-size:9px!important;padding:7px 8px!important;min-height:31px!important}
.route-sticky-note{display:block!important;margin-top:5px!important;padding:4px 7px!important;border:1px solid rgba(244,183,55,.45)!important;border-radius:7px!important;background:rgba(244,183,55,.08)!important;color:#ffd978!important;font-size:9px!important;line-height:1.25!important;white-space:normal!important;overflow-wrap:anywhere!important}
.route-sticky-note>span{font-size:7px!important;margin-right:3px!important;color:#f4b737!important}.route-sticky-note strong{display:inline!important;color:#ffd978!important;font-size:9px!important}
.visit-sticky-banner{margin:0 0 8px!important;padding:10px!important;border:1px solid rgba(244,183,55,.55)!important;border-left:3px solid #f4b737!important;border-radius:11px!important;background:rgba(244,183,55,.09)!important}
.visit-sticky-head{display:flex!important;align-items:flex-start!important;gap:8px!important}.visit-sticky-icon{color:#f4b737!important;font-size:10px!important;line-height:1.2!important;margin-top:2px!important}.visit-sticky-head div{min-width:0!important;flex:1!important}.visit-sticky-head small{display:block!important;color:#dcae49!important;font-size:8px!important;font-weight:900!important;letter-spacing:.08em!important}.visit-sticky-head strong{display:block!important;color:#fff0bd!important;font-size:12px!important;line-height:1.35!important;margin-top:3px!important;overflow-wrap:anywhere!important}
.visit-sticky-actions{display:flex!important;align-items:center!important;gap:7px!important;margin-top:9px!important}.visit-sticky-actions button{min-height:33px!important;font-size:9px!important;padding:6px 10px!important}.visit-sticky-actions .text-btn{margin-left:auto!important;color:#d8c793!important}
.visit-sticky-edit{margin-top:9px!important}.visit-sticky-edit textarea{width:100%!important;box-sizing:border-box!important;min-height:62px!important}.visit-sticky-edit>div{display:flex!important;justify-content:flex-end!important;gap:7px!important;margin-top:7px!important}
.sticky-note-save-row{display:flex!important;align-items:center!important;gap:9px!important;margin-top:8px!important}.sticky-note-save-row button{flex:0 0 auto!important;min-height:36px!important}.sticky-note-save-row small{color:#91abb7!important;font-size:8px!important;line-height:1.25!important}
.sticky-inline-notice{margin-top:7px!important;padding:6px 8px!important;border-radius:7px!important;background:#0a2a35!important;color:#a9c3cd!important;font-size:9px!important}.sticky-inline-notice.good{border:1px solid rgba(66,207,103,.35)!important;color:#8eeaa7!important}.sticky-inline-notice.warn{border:1px solid rgba(244,183,55,.45)!important;color:#ffd978!important}
.gameplan-item.gameplan-followup .gameplan-dot{background:#f4b737!important;box-shadow:0 0 0 3px rgba(244,183,55,.12)!important}.gameplan-item.gameplan-followup strong{color:#ffe7a1!important}
@media(max-width:390px){.visit-summary-actions{gap:4px!important}.visit-waze-btn,.visit-edit-btn{padding:6px 7px!important;font-size:8px!important}.route-waze-link{font-size:7px!important;padding:3px 5px!important}.sticky-note-save-row{align-items:flex-start!important;flex-direction:column!important;gap:5px!important}.sticky-note-save-row button{width:100%!important}}
