:root{--navy:#0a3161;--navy2:#061f3d;--red:#b31942;--red2:#8e1234;--white:#fff;--paper:#f5f7fa;--ink:#111827;--muted:#667085;--line:#d8dee8;--softblue:#eef5ff;--softred:#fff0f3;--blue:#1f62ad;--shadow:0 18px 55px rgba(10,49,97,.18)}*{box-sizing:border-box}html,body{height:100%;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--paper);color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #cbd5e1;background:#fff;color:var(--ink);border-radius:10px;padding:9px 13px;font-weight:800}button:hover{filter:brightness(.98)}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{border:1px solid #cbd5e1;border-radius:10px;padding:10px 11px;background:#fff;color:#111;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(31,98,173,.14)}label{display:grid;gap:6px;font-size:12px;font-weight:750;color:#344054}.hidden{display:none!important}.brand{font-size:12px;font-weight:950;letter-spacing:.2em;color:#fff}.red-brand{color:var(--red)}.muted{color:var(--muted);font-size:13px}.primary{background:var(--navy);color:#fff;border-color:var(--navy)}.secondary{background:var(--red);color:#fff;border-color:var(--red)}.ghost{background:transparent;color:inherit}.card,.lead-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}
.auth-screen{min-height:100%;display:grid;place-items:center;padding:24px;background:linear-gradient(180deg,var(--navy2) 0 33%,#fff 33% 66%,var(--red2) 66% 100%)}.auth-card{width:min(430px,100%);padding:30px;color:var(--ink)}.auth-card .brand{color:var(--navy)}.auth-card h1{font-size:36px;margin:7px 0 2px;color:var(--red)}.auth-card p{margin:0 0 22px;color:var(--muted)}.auth-card label{margin:12px 0}.auth-card button{width:100%;margin-top:10px}.flag-rule{display:grid;grid-template-columns:1fr 1fr 1fr;height:6px;border-radius:99px;overflow:hidden;margin-bottom:18px}.flag-rule span:first-child{background:var(--red)}.flag-rule i{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.flag-rule span:last-child{background:var(--navy)}
header{height:72px;background:var(--navy);color:#fff;border-bottom:6px solid var(--red);display:flex;align-items:center;padding:0 16px;position:relative;z-index:500}.header-brand{min-width:190px}.header-sub{font-size:21px;font-weight:950;letter-spacing:.04em;margin-top:1px}.header-actions{display:flex;gap:8px}.header-actions button{background:#fff;color:var(--navy);border-color:rgba(255,255,255,.8)}.header-actions .ghost{background:transparent;color:#fff}.signed-user{margin-left:auto;margin-right:12px;text-align:right}.signed-user b{display:block;font-size:12px}.signed-user span{display:inline-block;font-size:9px;letter-spacing:.13em;color:#fff;font-weight:950;background:var(--red);border-radius:999px;padding:2px 7px;margin-top:2px}
.goalbar{display:grid;grid-template-columns:2fr repeat(4,1fr);gap:9px;padding:10px 14px;background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:450}.goal-card{min-height:72px;padding:11px 13px;border:1px solid var(--line);background:#fff;border-radius:12px;display:flex;flex-direction:column;justify-content:center;border-top:4px solid var(--navy)}.goal-card>span,.goal-card small{font-size:11px;color:var(--muted)}.goal-card>b{font-size:26px;margin-top:2px;color:var(--navy)}.goal-main{background:linear-gradient(110deg,#fff 55%,var(--softblue));flex-direction:row;align-items:center;justify-content:space-between;border-top-color:var(--red)}.goal-main strong{display:block;font-size:24px;color:var(--ink)}.eyebrow{display:block;font-size:10px!important;font-weight:950;letter-spacing:.12em;color:var(--red)!important}.goal-ring{width:52px;height:52px;border:4px solid var(--navy);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--navy);background:#fff}.goal-ring span{font-size:18px;font-weight:950}.goal-ring small{margin-left:2px}
.toolbar{background:#f8fafc;border-bottom:1px solid var(--line);padding:10px 14px;display:flex;gap:12px;justify-content:space-between;align-items:center;position:relative;z-index:400}.stats{display:flex;gap:8px}.stats div{min-width:78px;background:#fff;border:1px solid var(--line);padding:7px 10px;border-radius:10px}.stats div:nth-child(2){border-bottom:3px solid var(--blue)}.stats div:nth-child(3){border-bottom:3px solid var(--navy)}.stats div:nth-child(4){border-bottom:3px solid var(--red)}.stats b{display:block;font-size:18px;color:var(--ink)}.stats span{font-size:11px;color:var(--muted)}.controls{display:flex;gap:8px;align-items:center}.controls input{width:220px}.controls select{width:140px}.controls button{color:var(--navy)}
main{position:relative;height:calc(100vh - 246px);overflow:hidden}#map{height:100%;width:100%;background:#dce4e7}.route-panel{position:absolute;z-index:600;right:14px;top:14px;bottom:14px;width:380px;background:#fff;color:var(--ink);border:1px solid var(--line);border-top:6px solid var(--navy);border-bottom:6px solid var(--red);border-radius:16px;box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}.route-head{padding:16px;display:flex;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--softblue)}.route-head h2{margin:0 0 3px;font-size:21px;color:var(--navy)}.icon-btn,.dialog-close{width:36px;height:36px;padding:0;border-radius:50%;font-size:22px;background:#fff;color:var(--navy)}.route-builder{padding:12px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:8px}.route-builder button{grid-column:span 2}.route-list{margin:0;padding:10px 12px 20px;overflow-y:auto;overflow-x:hidden;flex:1 1 auto;min-height:0;list-style:none;background:#fff}.route-list li{border-bottom:1px solid var(--line);font-size:13px}.route-list b{display:block;color:var(--navy)}.route-stop{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 4px}.route-stop-number{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-weight:900;font-size:14px;border:2px solid #fff;box-shadow:0 0 0 2px var(--navy)}.route-stop-copy{min-width:0}.route-stop-copy b{font-size:13px;margin-bottom:3px}.route-stop-copy span{display:block;color:#475467;white-space:normal;line-height:1.25}.route-stop-actions{display:flex;gap:5px}.route-stop-actions button{padding:6px 8px;font-size:11px;background:#fff;color:var(--navy);border:1px solid var(--navy);border-radius:7px}.route-empty{padding:18px 8px!important;color:#667085;text-align:center}.pin-route{width:34px;height:34px;background:var(--navy)!important;box-shadow:0 0 0 5px rgba(179,25,66,.28),0 3px 10px rgba(0,0,0,.38);z-index:3}.pin-route i{font-size:12px;font-weight:950}.route-fab{display:none;position:absolute;right:16px;bottom:20px;z-index:550;background:var(--navy);color:#fff}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#111}.leaflet-popup-content{margin:12px 14px}.map-popup b{font-size:14px;color:var(--navy)}.map-popup span{display:block;color:#475467;margin:4px 0 9px}.map-popup button{width:100%;padding:7px;background:var(--navy);color:#fff}.pin{width:28px;height:28px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);border:2px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.35);display:grid;place-items:center}.pin i{transform:rotate(45deg);font-style:normal;font-size:10px;font-weight:950;color:#fff}.pin-new{background:#2673c9}.pin-contacted{background:var(--navy)}.pin-initial{background:#22a447}.pin-followup{background:#147a34}.pin-no_home{background:var(--red)}.pin-route{box-shadow:0 0 0 5px rgba(179,25,66,.26),0 2px 8px rgba(0,0,0,.35)}
dialog{border:0;padding:0;background:transparent;max-width:none}dialog::backdrop{background:rgba(6,31,61,.55);backdrop-filter:blur(4px)}.lead-card{position:relative;width:min(580px,calc(100vw - 24px));padding:26px;max-height:92vh;overflow:auto;color:#111;border-top:7px solid var(--navy);border-bottom:7px solid var(--red)}.dialog-close{position:absolute;top:14px;right:14px}.lead-card h2{margin:10px 38px 4px 0;color:#111;font-size:28px}.address-link{display:block;color:var(--blue);font-weight:750;text-decoration:none;margin-bottom:18px}.status-chip{display:inline-block;border:1px solid #b9c4d3;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:950;text-transform:uppercase;background:var(--softblue);color:var(--navy)}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin:16px 0}.detail-grid div{background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:11px}.detail-grid span{display:block;font-size:11px;color:#667085}.detail-grid b{font-size:14px;color:#111}.lead-card textarea{background:#fff;color:#111}.outcome-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.outcome-actions button{padding:13px}.contacted{background:var(--navy);color:#fff;border-color:var(--navy)}.no-home{background:var(--red);color:#fff;border-color:var(--red)}.history-section{border-top:1px solid var(--line);margin-top:22px;padding-top:16px}.section-title{display:flex;justify-content:space-between;margin-bottom:10px}.lead-history{display:grid;gap:8px}.history-item{background:#f8fafc;border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:10px;padding:11px}.history-item.no_home{border-left-color:var(--red)}.history-item.contacted{border-left-color:var(--navy)}.history-item>div{display:flex;justify-content:space-between;gap:10px}.history-item time{font-size:11px;color:var(--muted)}.history-item p{white-space:pre-wrap;margin:8px 0 0;font-size:13px;line-height:1.45;color:#111}.stack-form{display:grid;gap:14px;margin-top:18px}.profile-card{width:min(500px,calc(100vw - 24px))}.import-card p{color:var(--muted);line-height:1.5}.drop-zone{border:2px dashed var(--navy);border-radius:14px;padding:38px 20px;display:grid;place-items:center;gap:5px;cursor:pointer;background:var(--softblue)}.drop-zone span{color:var(--muted);font-size:13px}.report-card{width:min(780px,calc(100vw - 24px))}.report-card h3,.admin-card h3{margin:22px 0 9px;color:var(--navy)}.report-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:18px 0}.report-summary div,.admin-kpis div{background:#f8fafc;border:1px solid var(--line);border-top:4px solid var(--navy);border-radius:12px;padding:12px}.report-summary div:nth-child(2),.admin-kpis div:nth-child(even){border-top-color:var(--red)}.report-summary span,.admin-kpis span{display:block;color:var(--muted);font-size:11px}.report-summary b,.admin-kpis b{font-size:27px;color:var(--ink)}.report-list{display:grid;gap:8px}.report-row,.admin-activity-row{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px}.report-row-top{display:flex;justify-content:space-between;gap:10px}.report-row time,.report-row>span{color:var(--muted);font-size:12px}.report-row>span{display:block;margin-top:2px}.report-row p{font-size:13px;line-height:1.45;margin:9px 0}.empty-state{padding:18px;border:1px dashed #b9c4d3;border-radius:10px;color:var(--muted);text-align:center;font-size:13px}.toast{position:fixed;z-index:9999;left:50%;bottom:28px;transform:translateX(-50%) translateY(120px);background:var(--navy);color:#fff;border-radius:10px;padding:11px 15px;box-shadow:var(--shadow);transition:.25s}.toast.show{transform:translateX(-50%) translateY(0)}
.admin-card{width:min(1220px,calc(100vw - 24px));max-height:94vh}.admin-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.admin-head h2{margin:6px 0;color:#111}.admin-controls{display:flex;gap:8px;padding-right:38px}.admin-controls select{min-width:220px}.admin-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin:18px 0}.rep-table{display:grid;gap:8px}.rep-row{display:grid;grid-template-columns:2fr repeat(3,1fr) 1.2fr auto;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-left:5px solid var(--navy);border-radius:12px;padding:12px}.rep-row small,.rep-row span{display:block;color:var(--muted);font-size:11px}.rep-row>div>b{font-size:18px}.rep-person>b{font-size:14px!important;color:#111}.rep-progress{height:9px;background:#e7edf5;border-radius:999px;overflow:hidden}.rep-progress span{height:100%;background:linear-gradient(90deg,var(--navy),var(--red));border-radius:999px}.admin-activity-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.admin-activity-row{border-left:5px solid var(--blue)}.admin-activity-row.no_home{border-left-color:var(--red)}.admin-activity-row.contacted{border-left-color:var(--navy)}.admin-activity-row>div{display:flex;justify-content:space-between;gap:10px}.admin-activity-row time,.admin-activity-row>span{font-size:11px;color:var(--muted)}.admin-activity-row>span{display:block;margin:3px 0}.admin-activity-row strong{font-size:11px;color:var(--navy)}.admin-activity-row p{font-size:12px;line-height:1.45;margin:8px 0 0;color:#111}.team-structure{margin-top:22px;border-top:1px solid var(--line);padding-top:2px}.team-structure-list{display:grid;gap:8px}.team-row{display:grid;grid-template-columns:2fr 1fr 1.5fr;gap:10px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:11px;background:#f8fafc}.team-row b,.team-row span{display:block}.team-row span{font-size:11px;color:var(--muted)}.team-row label{display:grid;gap:4px}.team-row select{width:100%}
@media(max-width:900px){header{height:66px;padding:0 9px}.header-brand{min-width:140px}.header-sub{font-size:18px}.header-actions #logoutBtn{display:none}.header-actions button{padding:7px 8px;font-size:11px}.signed-user{display:none}.header-actions #profileBtn{display:none}.goalbar{grid-template-columns:2fr 1fr 1fr;padding:7px}.goal-main{grid-row:span 2}.goal-card{min-height:56px;padding:8px}.goal-card:nth-child(4),.goal-card:nth-child(5){display:none}.goal-main strong{font-size:18px}.goal-ring{width:44px;height:44px}.toolbar{display:block;padding:8px}.stats{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:8px}.stats div{min-width:0}.controls{display:grid;grid-template-columns:1fr 1fr}.controls input,.controls select{width:100%}main{height:calc(100vh - 294px)}.route-panel{right:8px;left:8px;top:8px;bottom:8px;width:auto;transform:translateY(120%);transition:.25s}.route-panel.open{transform:translateY(0)}.route-fab{display:block}.detail-grid{grid-template-columns:1fr 1fr}.outcome-actions{position:sticky;bottom:-26px;background:#fff;padding:10px 0 4px;z-index:2}.history-item>div{display:block}.history-item time{display:block;margin-top:2px}.report-summary{grid-template-columns:repeat(3,1fr)}.leaflet-control-zoom{margin-top:12px!important}.admin-head{display:block}.admin-controls{padding-right:0;margin-top:12px}.admin-kpis{grid-template-columns:repeat(2,1fr)}.admin-kpis div:last-child{grid-column:span 2}.rep-row{grid-template-columns:1.5fr 1fr 1fr}.rep-row>div:nth-child(4),.rep-progress{display:none}.rep-row button{grid-column:span 3}.admin-activity-list{grid-template-columns:1fr}.team-row{grid-template-columns:1fr}.brand{font-size:10px}}

/* v1.4 Mission Control dashboard */
.mission-dashboard{padding:14px;background:#f3f6fa;border-bottom:1px solid var(--line);position:relative;z-index:420}
.mission-card,.dashboard-panel,.mission-kpi{background:#fff;border:1px solid #d9e0e8;box-shadow:0 4px 16px rgba(10,49,97,.07)}
.mission-card{border-radius:18px;padding:18px 20px;display:flex;align-items:center;justify-content:space-between;border-top:5px solid var(--navy);position:relative;overflow:hidden}
.mission-card:after{content:"";position:absolute;right:-55px;top:-60px;width:210px;height:210px;border-radius:50%;background:radial-gradient(circle,rgba(31,102,184,.12),rgba(31,102,184,0) 70%);pointer-events:none}
.mission-copy{flex:1;min-width:0}.mission-copy h2{margin:2px 0 3px;font-size:28px;line-height:1;color:#111}.mission-copy p{margin:0 0 12px;color:var(--muted);font-size:13px}.mission-progress{height:10px;background:#e8edf3;border-radius:999px;overflow:hidden;max-width:540px}.mission-progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--navy),#1e63b6,var(--red));border-radius:999px;transition:width .35s ease}.mission-meta{display:flex;gap:20px;margin-top:9px;font-size:11px;font-weight:800;color:#667085}.mission-meta span:last-child{color:var(--red);letter-spacing:.08em}.goal-ring{width:76px;height:76px;border-radius:50%;background:conic-gradient(var(--navy) 0deg,#e7ebf0 0deg);display:flex;align-items:center;justify-content:center;gap:1px;margin-left:20px;border:0;position:relative;z-index:1}.goal-ring:before{content:"";position:absolute;inset:8px;border-radius:50%;background:#fff}.goal-ring span,.goal-ring small{position:relative;z-index:1;color:var(--navy);font-weight:900}.goal-ring span{font-size:22px}.goal-ring small{font-size:11px}
.mission-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:10px}.mission-kpi{border-radius:14px;padding:12px 14px;position:relative;overflow:hidden}.mission-kpi:after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--navy)}.mission-kpi.red:after{background:var(--red)}.mission-kpi.blue:after{background:#1f66b8}.mission-kpi span,.mission-kpi small{display:block}.mission-kpi span{font-size:11px;color:#667085;font-weight:750}.mission-kpi b{font-size:26px;color:#111;display:block;margin:2px 0}.mission-kpi small{font-size:10px;color:#8a94a3}
.dashboard-lower{display:grid;grid-template-columns:1.15fr 1fr 1.15fr;gap:10px;margin-top:10px}.dashboard-panel{border-radius:14px;padding:13px 14px;min-height:120px}.panel-title{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.panel-title h3{margin:1px 0 8px;font-size:14px;color:#111}.panel-title>b{font-size:23px;color:var(--navy)}.eyebrow{font-size:9px;font-weight:950;letter-spacing:.16em;color:var(--red)}.link-btn{background:transparent;border:0;color:var(--blue);padding:2px 0;font-size:11px;font-weight:800}.week-bars{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;align-items:end;height:68px;padding-top:4px}.week-day{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px}.week-day .bar-wrap{height:46px;width:100%;display:flex;align-items:flex-end;justify-content:center;background:#f4f6f9;border-radius:6px;overflow:hidden}.week-day .bar{width:100%;min-height:2px;background:linear-gradient(180deg,#2e78c7,var(--navy));border-radius:5px 5px 0 0}.week-day.today .bar-wrap{outline:2px solid rgba(179,25,66,.18)}.week-day small{font-size:9px;color:#7a8491;font-weight:800}.coverage-track{height:12px;border-radius:999px;background:#e9edf2;overflow:hidden;margin:9px 0 12px}.coverage-track span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--navy),var(--red));transition:width .35s}.coverage-legend{display:flex;flex-wrap:wrap;gap:9px 13px}.coverage-legend span{font-size:10px;color:#667085;display:flex;align-items:center;gap:4px}.coverage-legend b{color:#111}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot.untouched{background:#2673c9}.dot.contacted{background:var(--navy)}.dot.nohome{background:var(--red)}
.recent-activity{display:grid;gap:5px;max-height:75px;overflow:auto}.mini-activity{display:grid;grid-template-columns:auto 1fr auto;gap:7px;align-items:center;padding:5px 7px;border-radius:8px;background:#f7f9fc}.mini-activity i{width:7px;height:7px;border-radius:50%;background:var(--navy)}.mini-activity.no_home i{background:var(--red)}.mini-activity b{font-size:10px;color:#111;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-activity span{font-size:9px;color:#7a8491}.empty-mini{font-size:11px;color:#8892a0;padding:8px 0}
.command-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.command-grid>div{background:#f7f9fc;border:1px solid var(--line);border-radius:14px;padding:12px}.command-grid h3{margin:0 0 9px!important}.leaderboard{display:grid;gap:6px}.leader-row{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;background:#fff;border:1px solid var(--line);padding:8px;border-radius:9px}.leader-rank{font-weight:950;color:var(--navy);text-align:center}.leader-name b{display:block;font-size:12px;color:#111}.leader-name span{font-size:9px;color:#7a8491}.leader-score{font-size:16px;font-weight:950;color:var(--navy)}.team-mission{display:grid;gap:8px}.team-mission-row{display:grid;grid-template-columns:1fr auto;gap:8px}.team-mission-row span{font-size:11px;color:#667085}.team-mission-row b{font-size:12px;color:#111}.team-mission-track{grid-column:1/-1;height:8px;background:#e5eaf0;border-radius:99px;overflow:hidden}.team-mission-track i{display:block;height:100%;background:linear-gradient(90deg,var(--navy),var(--red))}
@media(max-width:1050px){.dashboard-lower{grid-template-columns:1fr 1fr}.activity-panel{grid-column:1/-1}.mission-kpis{grid-template-columns:repeat(2,1fr)}main{height:calc(100vh - 470px)}}
@media(max-width:900px){.mission-dashboard{padding:8px}.mission-card{padding:12px}.mission-copy h2{font-size:20px}.mission-meta{display:none}.goal-ring{width:58px;height:58px;margin-left:10px}.mission-kpis{grid-template-columns:repeat(2,1fr);gap:7px}.mission-kpi{padding:9px 10px}.mission-kpi b{font-size:20px}.dashboard-lower{grid-template-columns:1fr}.week-panel,.coverage-panel{display:none}.activity-panel{grid-column:auto;min-height:78px}.recent-activity{max-height:44px}.toolbar{margin-top:0}main{height:calc(100vh - 420px)}.command-grid{grid-template-columns:1fr}}
@media(min-width:1051px){main{height:clamp(380px,calc(100vh - 505px),650px)}}
/* v1.5 focus-area routing */
.focus-route-tools{grid-column:span 2;display:grid;grid-template-columns:1fr auto;gap:8px;padding:9px;border:1px solid #cbd5e1;border-radius:10px;background:#f8fafc}.focus-route-tools button{grid-column:auto!important}.focus-select{background:#0a3161;color:#fff}.focus-select.selecting{background:#b31942;color:#fff}.focus-clear{background:#fff;color:#b31942;border:1px solid #b31942}.focus-status{grid-column:span 2;font-size:12px;line-height:1.35;color:#475467}.focus-status b{color:#0a3161}.focus-select-mode{cursor:crosshair!important}.focus-select-mode .leaflet-interactive{cursor:crosshair!important}
@media(max-width:600px){.focus-route-tools{grid-template-columns:1fr}.focus-route-tools button,.focus-status{grid-column:1!important}}

.route-builder{flex:0 0 auto}.route-head{flex:0 0 auto}
@media(max-height:760px){.route-builder{padding:9px;gap:6px}.route-builder button{padding-top:9px;padding-bottom:9px}.route-list{padding-top:6px}}


/* v1.7: restore always-visible clickable ordered route list */
.route-stops-section{display:flex;flex-direction:column;flex:1 1 0;min-height:0;background:#fff;border-top:1px solid var(--line)}
.route-stops-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px 9px;background:#f8fafc;border-bottom:1px solid var(--line);color:var(--navy);flex:0 0 auto}
.route-stops-head strong{font-size:14px;text-transform:uppercase;letter-spacing:.06em}.route-stops-head span{font-size:12px;color:#667085;font-weight:700}
.route-list{flex:1 1 0!important;min-height:150px!important;max-height:none!important;overflow-y:auto!important;padding:4px 10px 18px!important}
.route-stop{cursor:pointer;border-radius:10px!important;padding:10px 8px!important;margin:4px 0;border:1px solid transparent!important;background:#fff;transition:background .15s,border-color .15s}
.route-stop:hover,.route-stop:focus{background:#eef4ff;border-color:#b8c9e6!important;outline:none}
.route-map-btn{padding:7px 10px!important;font-size:11px!important;background:#fff!important;color:var(--navy)!important;border:1px solid #b8c9e6!important;border-radius:7px!important}
.route-panel.has-route .route-builder{padding:9px 12px;gap:6px}
.route-panel.has-route .route-builder label{font-size:11px}
.route-panel.has-route .route-builder select{padding:8px 10px}
.route-panel.has-route .focus-route-tools{padding:7px;gap:6px}
.route-panel.has-route .focus-status{font-size:11px}
.route-panel.has-route .route-builder>button{padding-top:9px;padding-bottom:9px}
@media(max-width:900px){.route-stops-section{min-height:220px}.route-list{min-height:180px!important}.route-panel.has-route .route-builder{max-height:48%;overflow-y:auto}}

/* v1.8: make the entire Today's Route panel scrollable */
.route-panel{
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  display:block!important;
  scrollbar-gutter:stable;
}
.route-head{
  position:sticky;
  top:0;
  z-index:20;
}
.route-builder{
  display:grid!important;
}
.route-stops-section{
  display:flex!important;
  flex-direction:column;
  min-height:320px!important;
  height:auto!important;
  flex:none!important;
}
.route-list{
  display:block!important;
  min-height:260px!important;
  max-height:420px!important;
  overflow-y:auto!important;
  -webkit-overflow-scrolling:touch;
}
.route-scroll-cue{
  grid-column:span 2;
  text-align:center;
  font-size:11px;
  font-weight:900;
  letter-spacing:.04em;
  color:var(--navy);
  padding:3px 0 1px;
}
@media(max-width:900px){
  .route-panel{overflow-y:auto!important;display:block!important}
  .route-stops-section{min-height:360px!important}
  .route-list{min-height:300px!important;max-height:50vh!important}
  .route-panel.has-route .route-builder{max-height:none!important;overflow:visible!important}
}

.route-stop-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.route-info-btn{border:2px solid #0b3b75;background:#fff;color:#0b3b75;border-radius:12px;padding:10px 12px;font-weight:800;cursor:pointer}.route-info-btn:hover{background:#eef5ff}.route-map-btn{white-space:nowrap}@media(max-width:640px){.route-stop{align-items:flex-start}.route-stop-actions{width:100%;margin-left:58px}.route-map-btn,.route-info-btn{flex:1;min-width:110px}}


/* v2.0 manual route editor */
.route-stop{cursor:pointer;transition:background .14s ease,border-color .14s ease}.route-stop:hover{background:#f5f8fc}.route-stop-selected{background:#eaf2ff!important;box-shadow:inset 4px 0 0 var(--navy)}
.route-stop-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:nowrap}.route-order-controls{display:flex;gap:4px}.route-order-btn{width:34px;height:34px;padding:0!important;border:1px solid #b8c9e6!important;background:#fff!important;color:var(--navy)!important;border-radius:9px!important;font-size:18px!important;font-weight:900!important;line-height:1}.route-order-btn:hover:not(:disabled){background:#eaf2ff!important;border-color:var(--navy)!important}.route-order-btn:disabled{opacity:.28;cursor:not-allowed}.route-info-btn{white-space:nowrap}.route-map-btn{display:none!important}
@media(max-width:640px){.route-stop{grid-template-columns:44px minmax(0,1fr)}.route-stop-actions{grid-column:1/-1;width:auto!important;margin:4px 0 0 54px!important;justify-content:flex-start}.route-info-btn{min-width:120px}.route-order-btn{width:42px;height:42px}}

/* v2.1 add nearby lead to active route */
.lead-route-action{margin:14px 0 12px;padding:12px;border:1px solid #b9cbe3;border-radius:14px;background:#f5f9ff;display:grid;gap:7px}.lead-route-action.hidden{display:none}.add-route-btn{width:100%;border:0;border-radius:12px;background:var(--navy);color:#fff;padding:13px 16px;font-weight:900;font-size:15px;cursor:pointer}.add-route-btn:hover:not(:disabled){background:#14508f}.add-route-btn:disabled{background:#d8e0ea;color:#667085;cursor:not-allowed}.lead-route-action .muted{font-size:11px;line-height:1.35}


/* v2.2 mobile-first polygon focus area editor */
.focus-draw-bar{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:1200;display:flex;align-items:center;gap:8px;width:min(720px,calc(100% - 28px));padding:10px;background:rgba(255,255,255,.97);border:2px solid var(--navy);border-radius:16px;box-shadow:0 12px 34px rgba(10,49,97,.24)}
.focus-draw-copy{display:grid;gap:1px;margin-right:auto;min-width:0}.focus-draw-copy strong{color:var(--navy);font-size:14px}.focus-draw-copy span{color:#667085;font-size:11px;font-weight:800}.focus-draw-bar button{min-height:44px;padding:10px 14px}.focus-vertex-wrap{background:transparent!important;border:0!important}.focus-vertex-handle{display:block;width:28px;height:28px;border-radius:50%;background:#fff;border:4px solid var(--red);box-shadow:0 2px 10px rgba(10,49,97,.28)}.focus-select-mode{cursor:crosshair!important}.focus-select-mode .leaflet-marker-icon:not(.focus-vertex-wrap){pointer-events:none!important}.focus-select-mode .leaflet-interactive{cursor:crosshair!important}.focus-status b{color:var(--navy)}
@media(max-width:640px){.focus-draw-bar{bottom:12px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;padding:9px}.focus-draw-copy{grid-column:1/-1}.focus-draw-bar button{width:100%;font-size:14px}.focus-vertex-handle{width:32px;height:32px;border-width:5px}.focus-vertex-wrap{width:32px!important;height:32px!important}}

/* v2.3 focus-all + route removal */
.remove-route-btn{background:#fff!important;color:var(--red)!important;border:2px solid var(--red)!important}
.remove-route-btn:hover{background:var(--softred)!important}
.route-panel.focus-all #routeCount{opacity:.65}

/* v2.4 unlimited route sizing */
.route-count-hint{display:block;margin-top:6px;font-size:11px;font-weight:700;color:#667085;line-height:1.2}
#routeCountLabel.focus-unlimited select{background:#eef4ff;color:var(--navy);font-weight:900;opacity:1;cursor:not-allowed}
#routeCountLabel.focus-unlimited .route-count-hint{color:var(--navy)}
@media(max-width:700px){.route-count-hint{font-size:10px}}


/* v2.5 multi-method manual route toolkit */
.route-paint-btn{grid-column:span 2;background:#fff;color:var(--navy);border:2px solid var(--navy);font-weight:900}.route-paint-btn:hover{background:#eef4ff}
.route-paint-bar{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:1250;display:flex;align-items:center;gap:8px;width:min(760px,calc(100% - 28px));padding:10px;background:rgba(255,255,255,.98);border:2px solid var(--navy);border-radius:16px;box-shadow:0 12px 34px rgba(10,49,97,.24)}
.route-paint-copy{display:grid;gap:1px;margin-right:auto;min-width:0}.route-paint-copy strong{color:var(--navy);font-size:14px}.route-paint-copy span{color:#667085;font-size:11px;font-weight:800}.route-paint-bar button{min-height:44px;padding:10px 14px}.paint-route-mode .leaflet-marker-icon{cursor:crosshair!important}
.route-stop-number.route-number-edit{border:2px solid #fff;padding:0;cursor:pointer}.route-stop-number.route-number-edit:hover{box-shadow:0 0 0 3px var(--red)}
.route-stop-actions{flex-wrap:wrap!important}.route-move-btn,.route-map-move-btn{padding:8px 10px!important;border:1px solid #b8c9e6!important;background:#fff!important;color:var(--navy)!important;border-radius:9px!important;font-size:11px!important;font-weight:900!important;white-space:nowrap}.route-map-move-btn{border-color:var(--red)!important;color:var(--red)!important}.route-move-btn:hover{background:#eef4ff!important}.route-map-move-btn:hover{background:#fff1f4!important}.drag-hint{display:block;margin-top:4px;font-size:9px!important;color:#98a2b3!important;font-weight:700}.route-stop[draggable="true"]{cursor:grab}.route-stop.route-dragging{opacity:.45}.route-stop.route-drag-over{border:2px dashed var(--red)!important;background:#fff5f7!important}
.route-move-card{max-width:520px}.move-route-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin:16px 0}.move-route-grid label{display:grid;gap:6px;color:#344054;font-weight:800}.move-route-grid input,.move-route-grid select{width:100%;padding:12px;border:1px solid #b8c9e6;border-radius:10px;font-size:16px;background:#fff;color:#111}.move-route-grid button{min-height:46px}.route-move-card>#moveRouteCancel{width:100%;margin-top:6px}
@media(max-width:640px){.route-paint-bar{bottom:12px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;padding:9px}.route-paint-copy{grid-column:1/-1}.route-paint-bar button{width:100%;font-size:14px}.route-stop-actions{grid-column:1/-1!important;margin-left:54px!important}.route-move-btn,.route-map-move-btn,.route-info-btn{min-height:44px;flex:1 1 92px}.drag-hint{display:none}.move-route-grid{grid-template-columns:1fr}.move-route-grid button{width:100%}}
@media(hover:none) and (pointer:coarse){.route-stop[draggable="true"]{cursor:pointer}}

/* v2.7 separate Dashboard + Map workspaces */
.app-view-tabs{height:54px;display:flex;align-items:stretch;justify-content:center;gap:8px;padding:7px 14px;background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:480}.view-tab{min-width:150px;border:1px solid #cbd5e1;background:#fff;color:var(--navy);font-weight:950;border-radius:10px;padding:8px 18px}.view-tab.active{background:var(--navy);color:#fff;border-color:var(--navy)}.app-view{display:none}.app-view.active{display:block}.map-view.active{display:flex;flex-direction:column;height:calc(100vh - 126px);min-height:0}.map-toolbar{flex:0 0 auto}.map-view main{flex:1 1 auto;height:auto!important;min-height:0}.dashboardView,.dashboard-view{min-height:0}
@media(min-width:901px){.map-view.active{height:calc(100vh - 126px)}.map-view main{min-height:520px}.map-toolbar{padding:10px 16px}.route-panel{width:420px}}
@media(max-width:900px){
  .app-view-tabs{height:50px;padding:6px 8px;position:sticky;top:0;z-index:490;gap:6px}.view-tab{min-width:0;flex:1;padding:8px 10px;font-size:14px}
  .map-view.active{height:calc(100vh - 116px)}
  .map-toolbar{padding:6px 8px!important;background:#fff}
  .map-toolbar .stats{margin-bottom:6px!important;gap:5px!important}
  .map-toolbar .stats div{padding:5px 7px!important;border-radius:8px!important}
  .map-toolbar .stats b{font-size:15px!important}.map-toolbar .stats span{font-size:9px!important}
  .map-toolbar .controls{grid-template-columns:1fr 1fr!important;gap:5px!important}
  .map-toolbar .controls input,.map-toolbar .controls select,.map-toolbar .controls button{min-height:40px;padding:7px 8px!important;font-size:13px!important}
  .map-view main{height:auto!important;min-height:0;flex:1 1 auto}
  .route-panel{top:6px!important;right:6px!important;bottom:6px!important;left:6px!important}
  .mission-dashboard{min-height:calc(100vh - 116px);overflow-y:auto}
}
@media(max-width:560px){
  header{height:60px!important}.map-view.active{height:calc(100vh - 110px)}
  .header-brand{min-width:118px!important}.header-sub{font-size:16px!important}.brand{font-size:9px!important}
  .header-actions{gap:4px!important}.header-actions button{padding:6px 7px!important;font-size:10px!important}
  .header-actions #dayReportBtn{display:none}.header-actions #importBtn{display:none}
  .map-toolbar .controls{grid-template-columns:1fr 1fr!important}.map-toolbar .controls #searchInput{grid-column:1/-1}
  .map-toolbar .controls #statusFilter{grid-column:1/-1}
}

/* v2.8 Streak CRM integration */
.profile-card-wide{max-width:760px!important}.streak-settings{margin-top:22px;padding-top:20px;border-top:2px solid #d9e2ee}.streak-settings .section-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.streak-settings h3{margin:2px 0 0;color:var(--navy);font-size:22px}.streak-pill{display:inline-flex;align-items:center;border-radius:999px;padding:7px 11px;background:#eef2f7;color:#667085;font-size:12px;font-weight:900}.streak-pill.connected{background:#e7f7ed;color:#137a3d}.streak-grid{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin:14px 0}.streak-grid label{display:grid;gap:6px;font-weight:800;color:#344054}.streak-grid label:nth-of-type(n+2){grid-column:span 1}.streak-grid select,.streak-settings input{width:100%;min-height:44px;border:1px solid #b9c8da;border-radius:10px;background:#fff;color:#111;padding:10px 12px;font-size:16px}.streak-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.streak-actions button{min-height:42px}.danger-outline{background:#fff!important;color:var(--red)!important;border:2px solid var(--red)!important}.streak-settings .muted{line-height:1.45}.streak-settings .hidden{display:none!important}@media(max-width:640px){.profile-card-wide{max-width:100%!important}.streak-grid{grid-template-columns:1fr}.streak-grid button{width:100%}.streak-actions button{flex:1 1 145px}}
.note-actions{display:flex;justify-content:flex-end;margin:.55rem 0}.note-actions button{min-height:44px;border:1px solid #0b376b;background:#fff;color:#0b376b;font-weight:800;border-radius:10px;padding:.65rem 1rem}.history-item.streak-note{border-left:4px solid #0b66c3;background:#f6faff}

/* v3.1 self-healing map */
.map-health{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:7px;padding:7px 9px;border:1px solid #d8e0ea;border-radius:10px;background:#f8fafc;color:#475467;font-size:11px;font-weight:800}.map-health-counts{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.map-health b{color:var(--navy);font-size:12px}.map-health #reloadMapBtn{padding:7px 10px;min-height:32px;background:#fff;color:var(--navy);border:1px solid var(--navy);border-radius:8px;font-size:11px;white-space:nowrap}.map-health-state{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:950}.map-health-state:before{content:"";width:7px;height:7px;border-radius:50%;background:#16a34a}.map-health-state.warning{background:#fff1f2;color:#9f1239}.map-health-state.warning:before{background:#dc2626}.map-health-state.fallback{background:#eff6ff;color:#1d4ed8}.map-health-state.fallback:before{background:#2563eb}.route-number-tooltip{background:var(--navy)!important;color:#fff!important;border:0!important;box-shadow:none!important;border-radius:50%!important;width:18px;height:18px;line-height:18px;text-align:center;padding:0!important;font-size:10px;font-weight:950}.route-number-tooltip:before{display:none!important}
@media(max-width:900px){.map-health{margin-top:5px;padding:5px 7px}.map-health-counts{gap:6px}.map-health #reloadMapBtn{padding:6px 8px}.map-health span{font-size:9px}}

/* v3.2 Streak contact workflow */
.outcome-actions .follow-up{background:#15803d;color:#fff;border-color:#15803d}
.outcome-actions .follow-up.hidden{display:none}
.outcome-help{margin:.75rem 0 0;line-height:1.45}
.streak-map-note{grid-column:1/-1;margin:.2rem 0 0}

.lead-sync-status{margin:12px 0;padding:10px 12px;border:1px solid #cbd5e1;border-radius:12px;background:#f8fafc;font-weight:700;color:#0a3161}.detail-grid .detail-wide{grid-column:1/-1}


/* v3.15 target-house + CRM stage map */
.pin-initial{background:#20a447}.pin-followup{background:#f3be18}.pin-appointment{background:#f57c16}.pin-no_home{background:#d92b22}.pin-cast{background:#f3b400;border-color:#fff}.pin-cast i{font-size:15px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.map-popup em{display:block;margin:-3px 0 9px;color:#667085;font-size:11px;font-style:normal;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.map-popup-actions{display:grid;grid-template-columns:1fr;gap:6px}.map-popup-actions button{min-width:0}
.map-status-legend{position:absolute;z-index:510;left:12px;bottom:12px;display:flex;flex-wrap:wrap;gap:7px 12px;max-width:min(620px,calc(100% - 420px));background:rgba(255,255,255,.94);border:1px solid rgba(10,49,97,.18);border-radius:12px;padding:8px 10px;box-shadow:0 3px 14px rgba(0,0,0,.12);font-size:10px;font-weight:850;color:#344054}.map-status-legend span{display:flex;align-items:center;gap:5px;white-space:nowrap}.legend-dot{width:11px;height:11px;border-radius:3px;display:inline-block}.legend-blue{background:#2673c9}.legend-green{background:#20a447}.legend-yellow{background:#f3be18}.legend-orange{background:#f57c16}.legend-red{background:#d92b22}.legend-star{color:#f3b400;font-size:16px;line-height:1;text-shadow:0 1px 1px rgba(0,0,0,.2)}
.target-house-label-wrap{background:transparent!important;border:0!important}.target-house-label{display:grid;place-items:center;text-align:center;min-width:140px;padding:7px 10px;background:#fff;border:3px solid #ffcc00;border-radius:12px;box-shadow:0 5px 18px rgba(0,0,0,.38);color:#0a3161}.target-house-label strong{font-size:24px;line-height:1}.target-house-label span{font-size:10px;font-weight:900;margin-top:3px;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.target-house-highlight{animation:targetPulse 1.35s ease-out infinite;transform-origin:center;transform-box:fill-box}.target-house-dot{filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}@keyframes targetPulse{0%{stroke-opacity:1;fill-opacity:.26}70%{stroke-opacity:.35;fill-opacity:.08}100%{stroke-opacity:1;fill-opacity:.26}}
@media(max-width:760px){.map-status-legend{left:8px;right:8px;bottom:8px;max-width:none;font-size:9px;padding:7px}.map-popup-actions{grid-template-columns:1fr}.controls #basemapToggleBtn{order:3}}

/* v3.17 Chaser analytics + persistent routes */
.route-download-btn{grid-column:span 2;background:#fff;color:var(--navy);border:2px solid var(--navy);font-weight:900}.route-download-btn:disabled{opacity:.45}.route-save-status{grid-column:span 2;font-size:10px;color:#58708d;text-align:right;font-weight:800;min-height:12px}
.chaser-detail-card{width:min(1100px,calc(100vw - 24px));max-height:94vh}.chaser-detail-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.chaser-detail-kpis>div{border:1px solid var(--line);border-top:4px solid var(--navy);border-radius:12px;background:#f8fafc;padding:13px}.chaser-detail-kpis span,.chaser-detail-kpis small{display:block;color:var(--muted);font-size:11px}.chaser-detail-kpis b{display:block;font-size:28px;color:#111;margin:3px 0}.chaser-summary{background:var(--softblue);border:1px solid #c9d8ec;color:var(--navy);font-weight:850;border-radius:12px;padding:11px 13px;margin-bottom:14px}.chaser-detail-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:12px}.analytics-card{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;min-width:0}.analytics-card h3{margin:0 0 3px!important}.analytics-card>p{margin:0 0 12px}.week-detail-chart{height:190px;display:grid;grid-template-columns:repeat(7,1fr);gap:7px;align-items:end;border-bottom:1px solid #ccd6e4;padding:8px 2px 0}.day-column{height:100%;display:grid;grid-template-rows:1fr auto auto;gap:3px;text-align:center;min-width:0}.day-bars{height:145px;display:flex;align-items:flex-end;justify-content:center;gap:3px}.day-bars i{display:block;width:10px;min-height:0;border-radius:5px 5px 0 0}.day-bars .contact{background:var(--navy)}.day-bars .nohome{background:var(--red)}.day-column b{font-size:11px}.day-column span{font-size:9px;color:var(--muted)}.chart-legend{display:flex;gap:14px;margin-top:10px;font-size:10px;color:var(--muted)}.chart-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px}.legend-contact{background:var(--navy)}.legend-nohome{background:var(--red)}.detail-bars{display:grid;gap:9px}.detail-bar-row{display:grid;grid-template-columns:minmax(90px,1.1fr) 2fr auto;align-items:center;gap:8px;font-size:10px}.detail-bar-row>div{height:10px;border-radius:99px;background:#e8edf4;overflow:hidden}.detail-bar-row i{display:block;height:100%;background:linear-gradient(90deg,var(--navy),var(--red));border-radius:99px}.detail-bar-row b{min-width:25px;text-align:right;color:#111}.chaser-recent-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.chaser-recent-list article{border:1px solid var(--line);border-left:4px solid var(--navy);border-radius:10px;padding:10px}.chaser-recent-list article>div{display:flex;justify-content:space-between;gap:8px}.chaser-recent-list time,.chaser-recent-list span{font-size:10px;color:var(--muted)}.chaser-recent-list p{font-size:11px;margin:6px 0 0;white-space:pre-wrap}
@media(max-width:900px){.chaser-detail-kpis{grid-template-columns:repeat(2,1fr)}.chaser-detail-grid{grid-template-columns:1fr}.chaser-recent-list{grid-template-columns:1fr}.week-detail-chart{height:170px}.day-bars{height:125px}}

/* v3.18 Calendar + Friday-Thursday sales week */
.mission-kpi.green{border-top-color:#20a447}.meeting-dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.meetings-panel{min-height:180px}.meeting-list{display:grid;gap:7px}.meeting-row{width:100%;display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;border:1px solid var(--line);background:#fff;border-radius:11px;padding:10px;color:var(--ink)}.meeting-row:hover{border-color:#9eb4d0}.meeting-row.completed{background:#f3faf5;border-color:#c9e8d2}.meeting-time{font-weight:900;color:var(--navy)}.meeting-copy{min-width:0;display:grid;gap:2px}.meeting-copy b{overflow-wrap:anywhere}.meeting-copy small{color:var(--muted);font-weight:600}.meeting-copy em{font-size:11px;color:#475467;font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meeting-status{font-size:10px;font-weight:900;color:var(--navy);white-space:nowrap}.lead-calendar-action{margin:12px 0}.calendar-action-btn{width:100%;border:2px solid var(--navy);color:var(--navy);padding:12px;background:#f7fbff}.schedule-event-card{width:min(560px,calc(100vw - 24px))}.schedule-lead-name{font-size:18px;font-weight:900;color:var(--navy);margin:4px 0 14px}.schedule-date-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.calendar-card{width:min(900px,calc(100vw - 24px))}.calendar-header{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;text-align:center}.calendar-header h2{margin:0!important}.calendar-header>button{font-size:28px;padding:4px 14px}.calendar-today-btn{display:block;margin:10px auto 14px}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.calendar-weekdays span{text-align:center;font-size:11px;color:var(--muted);font-weight:900;padding:5px}.calendar-day{min-height:82px;padding:8px;border:1px solid var(--line);border-radius:10px;background:#fff;text-align:left;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;font-weight:800}.calendar-day.blank{visibility:hidden}.calendar-day span{font-size:10px;color:var(--blue)}.calendar-day.today{outline:2px solid rgba(179,25,66,.35)}.calendar-day.selected{background:var(--softblue);border-color:var(--navy)}.calendar-selected{border-top:1px solid var(--line);margin-top:16px;padding-top:6px}.event-status-chip{display:inline-block;border-radius:999px;background:var(--softblue);color:var(--navy);font-size:11px;font-weight:900;padding:6px 10px;margin:3px 0 10px}.event-detail-card{width:min(600px,calc(100vw - 24px))}.event-detail-card h3{margin:10px 0 2px;color:var(--navy)}.event-detail-when{font-weight:850}.event-note-box{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:12px;margin:16px 0}.event-note-box span{font-size:11px;color:var(--muted)}.event-note-box p{white-space:pre-wrap;margin:5px 0 0}.event-detail-actions{display:flex;flex-wrap:wrap;gap:8px}.meeting-complete-btn{background:#16803b;color:#fff;border-color:#16803b}.history-item.calendar-history{border-left-color:#f59e0b}.history-item.calendar-history.completed{border-left-color:#20a447}.admin-meeting-row{background:#fff;border:1px solid var(--line);border-left:4px solid #f59e0b;border-radius:12px;padding:12px}.admin-meeting-row>div{display:flex;justify-content:space-between;gap:10px}.admin-meeting-row span,.admin-meeting-row time{font-size:11px;color:var(--muted)}.admin-meeting-row p{font-size:12px;margin:6px 0 0}.manager-meeting-list{margin-bottom:18px}.chaser-detail-kpis{grid-template-columns:repeat(5,1fr)}
@media(max-width:900px){.meeting-dashboard-grid{grid-template-columns:1fr}.schedule-date-grid{grid-template-columns:1fr}.calendar-day{min-height:58px;padding:5px}.calendar-day span{font-size:8px}.meeting-row{grid-template-columns:62px minmax(0,1fr)}.meeting-status{grid-column:2}.chaser-detail-kpis{grid-template-columns:repeat(2,1fr)}}

.mission-kpis{grid-template-columns:repeat(5,1fr)}.mission-kpi.green:after{background:#20a447}@media(max-width:1050px){.mission-kpis{grid-template-columns:repeat(3,1fr)}}@media(max-width:900px){.mission-kpis{grid-template-columns:repeat(2,1fr)}}


/* v3.19 mobile top map-controls drawer */
.map-controls-toggle{display:none}
@media(max-width:900px){
  .map-controls-toggle{
    display:flex;
    flex:0 0 auto;
    width:100%;
    min-height:46px;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:7px 12px;
    border:0;
    border-bottom:1px solid #d8e0ea;
    border-radius:0;
    background:#fff;
    color:var(--navy);
    box-shadow:0 2px 7px rgba(10,49,97,.08);
    position:relative;
    z-index:475;
    text-align:left;
  }
  .map-controls-toggle-copy{
    display:flex;
    align-items:baseline;
    gap:8px;
    min-width:0;
  }
  .map-controls-toggle-copy b{
    font-size:14px;
    font-weight:950;
    white-space:nowrap;
  }
  .map-controls-toggle-copy small{
    color:#667085;
    font-size:10px;
    font-weight:800;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .map-controls-chevron{
    flex:0 0 auto;
    font-size:22px;
    line-height:1;
    font-weight:950;
    transition:transform .22s ease;
  }

  .map-view .map-toolbar{
    flex:0 0 auto;
    max-height:0;
    opacity:0;
    overflow:hidden;
    padding:0 8px!important;
    margin:0;
    border-bottom:0;
    pointer-events:none;
    transform:translateY(-6px);
    transition:max-height .28s ease, opacity .18s ease, transform .28s ease, padding .28s ease;
  }
  .map-view.map-controls-open .map-toolbar{
    max-height:430px;
    opacity:1;
    overflow:auto;
    padding:6px 8px 8px!important;
    border-bottom:1px solid #d8e0ea;
    pointer-events:auto;
    transform:translateY(0);
  }
  .map-view.map-controls-open .map-controls-chevron{
    transform:rotate(180deg);
  }

  .map-view main{
    flex:1 1 0!important;
    min-height:0!important;
  }
}
@media(max-width:560px){
  .map-controls-toggle{min-height:42px;padding:6px 10px}
  .map-controls-toggle-copy b{font-size:13px}
  .map-controls-toggle-copy small{font-size:9px}
  .map-view.map-controls-open .map-toolbar{max-height:470px}
}


/* v3.21 mobile fixed map bottom HUD */
@media(max-width:900px){
  /* Keep status legend reachable regardless of page/map scroll. */
  .map-view.active .map-status-legend{
    position:fixed!important;
    left:8px!important;
    right:92px!important;
    bottom:calc(env(safe-area-inset-bottom, 0px) + 8px)!important;
    max-width:none!important;
    margin:0!important;
    z-index:1100!important;
    padding:7px 8px!important;
    gap:5px 9px!important;
    border-radius:11px!important;
    background:rgba(255,255,255,.96)!important;
    box-shadow:0 4px 16px rgba(0,0,0,.18)!important;
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
  }

  /* Route is always available at the bottom-right of the visible window. */
  .map-view.active .route-fab{
    display:block!important;
    position:fixed!important;
    right:8px!important;
    bottom:calc(env(safe-area-inset-bottom, 0px) + 8px)!important;
    z-index:1110!important;
    min-width:78px!important;
    min-height:48px!important;
    padding:10px 13px!important;
    border-radius:12px!important;
    box-shadow:0 4px 16px rgba(0,0,0,.22)!important;
  }

  /* Don't let map credits be hidden underneath the fixed HUD. */
  .map-view.active .leaflet-control-attribution{
    margin-bottom:64px!important;
  }

  /* Give popup auto-pan a little more breathing room above the HUD. */
  .map-view.active #map{
    scroll-margin-bottom:72px;
  }

  /* When Today's Route is open, its panel is the active bottom interaction. */
  .map-view.active:has(.route-panel.open) .map-status-legend,
  .map-view.active:has(.route-panel.open) .route-fab{
    opacity:0;
    pointer-events:none;
  }
}

@media(max-width:520px){
  .map-view.active .map-status-legend{
    right:88px!important;
    font-size:8.5px!important;
    line-height:1.1!important;
  }
  .map-view.active .map-status-legend span{
    gap:4px!important;
  }
  .map-view.active .route-fab{
    min-width:74px!important;
    font-size:15px!important;
  }
}


/* v3.22 real desktop route-panel close state */
@media(min-width:901px){
  .route-panel{
    transition:transform .24s ease,opacity .18s ease!important;
  }
  .route-panel.desktop-closed:not(.open){
    transform:translateX(calc(100% + 34px))!important;
    opacity:0!important;
    pointer-events:none!important;
  }
  .route-fab.desktop-show{
    display:block!important;
    position:absolute!important;
    right:18px!important;
    bottom:22px!important;
    z-index:610!important;
    min-width:86px;
    min-height:46px;
    border-radius:12px;
    box-shadow:0 4px 16px rgba(0,0,0,.20);
  }
  .route-panel.open{
    transform:translateX(0)!important;
    opacity:1!important;
    pointer-events:auto!important;
  }
}


/* v3.23 collapsible Route Builder + single route-stop scroller */
.route-panel{
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
}
.route-head{
  position:relative!important;
  top:auto!important;
  flex:0 0 auto!important;
}
.route-builder-toggle{
  flex:0 0 auto;
  width:100%;
  min-height:48px;
  padding:9px 14px;
  border:0;
  border-bottom:1px solid var(--line);
  border-radius:0;
  background:#f8fafc;
  color:var(--navy);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  text-align:left;
  cursor:pointer;
}
.route-builder-toggle>span{
  min-width:0;
  display:flex;
  align-items:baseline;
  gap:10px;
}
.route-builder-toggle b{
  font-size:14px;
  font-weight:950;
  white-space:nowrap;
}
.route-builder-toggle small{
  color:#667085;
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.route-builder-toggle i{
  font-style:normal;
  font-size:22px;
  font-weight:950;
  line-height:1;
  transition:transform .22s ease;
}
.route-builder-toggle[aria-expanded="true"] i{transform:rotate(180deg)}

.route-builder-body{
  flex:0 0 auto!important;
  display:grid!important;
  max-height:0!important;
  overflow:hidden!important;
  opacity:0;
  padding-top:0!important;
  padding-bottom:0!important;
  border-bottom-width:0!important;
  pointer-events:none;
  transition:max-height .28s ease,opacity .18s ease,padding .28s ease,border-width .28s ease;
}
.route-panel.route-builder-open .route-builder-body{
  max-height:min(520px,55vh)!important;
  overflow-y:auto!important;
  opacity:1;
  padding-top:10px!important;
  padding-bottom:10px!important;
  border-bottom-width:1px!important;
  pointer-events:auto;
}
.route-stops-section{
  flex:1 1 0!important;
  min-height:0!important;
  height:auto!important;
  overflow:hidden!important;
  display:flex!important;
}
.route-stops-head{flex:0 0 auto!important}
.route-list{
  flex:1 1 0!important;
  min-height:0!important;
  max-height:none!important;
  height:auto!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.route-scroll-cue{display:none!important}

/* Override old nested-scroll rules from earlier route versions. */
.route-panel.has-route .route-builder,
.route-panel.has-route .route-builder-body{
  max-height:0!important;
  overflow:hidden!important;
}
.route-panel.has-route.route-builder-open .route-builder-body{
  max-height:min(520px,55vh)!important;
  overflow-y:auto!important;
}
@media(max-width:900px){
  .route-panel{
    overflow:hidden!important;
    display:flex!important;
  }
  .route-stops-section{
    min-height:0!important;
    flex:1 1 0!important;
  }
  .route-list{
    min-height:0!important;
    max-height:none!important;
  }
  .route-panel.route-builder-open .route-builder-body,
  .route-panel.has-route.route-builder-open .route-builder-body{
    max-height:52vh!important;
  }
}
@media(max-width:560px){
  .route-builder-toggle{min-height:44px;padding:8px 12px}
  .route-builder-toggle b{font-size:13px}
  .route-builder-toggle small{font-size:10px}
  .route-panel.route-builder-open .route-builder-body,
  .route-panel.has-route.route-builder-open .route-builder-body{
    max-height:50vh!important;
  }
}


/* v3.25 Flag Raising Initiative */
.mission-kpi.flag-given{border-top-color:#0a3161;background:linear-gradient(180deg,#fff 0,#f4f8ff 100%)}
.mission-kpi.flag-raised{border-top-color:#b31942;background:linear-gradient(180deg,#fff 0,#fff6f7 100%)}
.mission-kpi.flag-given>span,.mission-kpi.flag-raised>span{font-weight:900}
.flag-actions-panel{margin:18px 0;padding:14px;border:1px solid #d5deea;border-radius:16px;background:#f8fbff}
.flag-actions-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}.flag-actions-title>div{display:flex;flex-direction:column;gap:2px}.flag-actions-title b{color:var(--navy);font-size:16px}.flag-status-text{font-size:11px;font-weight:900;color:#667085;text-align:right}
.flag-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.flag-action-btn{min-height:78px;padding:10px 12px;border:2px solid #c8d4e4;border-radius:14px;background:#fff;color:var(--navy);display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;text-align:left;align-items:center}.flag-action-btn>span{grid-row:1/3;font-size:30px}.flag-action-btn b{font-size:15px}.flag-action-btn small{font-size:10px;color:#667085;line-height:1.25}.flag-action-btn.flag-given-btn{border-color:#0a3161}.flag-action-btn.flag-raised-btn{border-color:#b31942}.flag-action-btn.is-done{background:#eefaf2;border-color:#20a447;color:#176b32}.flag-action-btn.is-done small{color:#39724a}.flag-action-btn:disabled{opacity:1;cursor:default}
.pin.pin-flag-given,.pin.pin-flag-raised{display:flex;align-items:center;justify-content:center;border-width:3px;background:#fff!important}.pin.pin-flag-given{border-color:#0a3161}.pin.pin-flag-raised{border-color:#b31942}.pin.pin-flag-given i,.pin.pin-flag-raised i{font-size:17px;line-height:1;font-style:normal}.pin-flag-badge{position:absolute;right:-6px;top:-6px;width:17px;height:17px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#0a3161;color:#fff;border:2px solid #fff;font-size:8px;font-weight:950;box-shadow:0 1px 3px rgba(0,0,0,.22)}.pin-flag-raised .pin-flag-badge{background:#b31942}.pin-route.pin-flag-given i,.pin-route.pin-flag-raised i{font-size:12px;font-weight:950;color:#fff}.pin-route.pin-flag-given,.pin-route.pin-flag-raised{background:var(--navy)!important}.pin-route.pin-flag-given:after,.pin-route.pin-flag-raised:after{content:'🇺🇸';position:absolute;left:-9px;top:-10px;font-size:15px;filter:drop-shadow(0 1px 1px #fff)}
.legend-flag{font-style:normal;font-size:15px;line-height:1}.legend-flag.raised{filter:drop-shadow(0 0 1px #b31942)}
.admin-kpis small{display:block;margin-top:2px;color:#667085;font-size:10px;font-weight:800}
@media(max-width:650px){.flag-action-grid{grid-template-columns:1fr}.flag-actions-title{align-items:flex-start}.flag-status-text{max-width:42%}.flag-action-btn{min-height:68px}.map-status-legend .legend-flag{font-size:13px}}

/* v3.26 Streak Tags */
.lead-tag-field{display:grid;gap:7px;margin:14px 0 12px;font-weight:900;color:var(--navy)}
.lead-tag-field select{width:100%;min-height:48px;border:1px solid #c9d4e3;border-radius:12px;background:#fff;color:#182230;padding:10px 12px;font-size:16px;font-weight:750}
.lead-tag-field small{font-weight:700}

/* v3.28 Neighborhood Heat Map + Do Not Disturb */
.pin-no_home{background:#fff!important;border-color:#0a3161!important}.pin-no_home i{color:#0a3161!important}.pin-dnd{background:#23272f!important;border-color:#fff}.pin-dnd i{color:#fff!important;font-size:14px}.legend-white{background:#fff;border:1.5px solid #0a3161}.legend-dnd{background:#23272f}.mission-kpi.white{background:#fff;border:1px solid #d8e0ea}.mission-kpi.dnd{background:#23272f;color:#fff}.mission-kpi.dnd span,.mission-kpi.dnd small{color:#e5e7eb}.coverage-legend .dot.nohome{background:#fff;border:1px solid #0a3161}.coverage-legend .dot.dnd{background:#23272f}
.do-not-disturb-btn{width:100%;margin-top:10px;background:#23272f;color:#fff;border-color:#23272f;font-weight:900;min-height:48px}.do-not-disturb-btn:disabled{background:#6b7280;border-color:#6b7280;color:#fff;opacity:1}
#heatMapBtn.active{background:#20a447;color:#fff;border-color:#20a447}.heat-map-legend{position:absolute;z-index:509;left:12px;top:12px;background:rgba(255,255,255,.94);border:1px solid rgba(10,49,97,.18);border-radius:10px;padding:7px 9px;box-shadow:0 3px 12px rgba(0,0,0,.12);font-size:10px;color:#344054;display:flex;align-items:center;gap:8px}.heat-map-legend b{color:#0a3161}.heat-map-legend span{display:flex;align-items:center;gap:4px}.heat-map-legend i{width:10px;height:10px;border-radius:2px;display:inline-block}.heat-green{background:#20a447}.heat-yellow{background:#f3be18}.heat-red{background:#d92b22}.heat-map-legend.hidden{display:none}
@media(max-width:900px){.heat-map-legend{top:8px;left:8px;right:auto;max-width:calc(100% - 16px);flex-wrap:wrap;font-size:9px}.controls #heatMapBtn{order:3}}

/* v3.29 mobile header duplicate-label hotfix */
@media(max-width:560px){
  .header-actions #calendarBtn,
  .header-actions #profileBtn,
  .header-actions #logoutBtn,
  .header-actions #adminBtn{
    font-size:0!important;
  }
  .header-actions #calendarBtn::after{content:'Calendar';font-size:10px;font-weight:800}
  .header-actions #profileBtn::after{content:'My Profile';font-size:10px;font-weight:800}
  .header-actions #logoutBtn::after{content:'Log Out';font-size:10px;font-weight:800}
  .header-actions #adminBtn::after{content:'Manager';font-size:10px;font-weight:800}
  .header-actions #adminBtn[data-role='admin']::after{content:'Admin Command'}
}


/* v3.30 mobile Settings menu */
.mobile-settings-btn{display:none}
@media(max-width:560px){
  header{overflow:visible!important}
  .header-brand{flex:1 1 auto;min-width:0!important}
  .mobile-settings-btn{
    display:inline-flex!important;align-items:center;justify-content:center;gap:6px;
    flex:0 0 auto;min-width:102px;min-height:38px;padding:8px 12px!important;
    border:1px solid rgba(255,255,255,.88)!important;border-radius:11px!important;
    background:#fff!important;color:var(--navy)!important;font-size:13px!important;font-weight:950!important;
    position:relative;z-index:806;
  }
  header .header-actions{
    display:none!important;position:absolute!important;top:calc(100% + 7px)!important;right:8px!important;left:auto!important;
    width:min(300px,calc(100vw - 16px))!important;padding:10px!important;gap:7px!important;flex-direction:column!important;
    border:1px solid #d6dfeb!important;border-radius:15px!important;background:#fff!important;
    box-shadow:0 16px 40px rgba(6,31,61,.28)!important;z-index:805!important;
  }
  header.mobile-settings-open .header-actions{display:flex!important}
  header .header-actions button,
  header .header-actions #adminBtn,
  header .header-actions #calendarBtn,
  header .header-actions #profileBtn,
  header .header-actions #dayReportBtn,
  header .header-actions #importBtn,
  header .header-actions #logoutBtn{
    display:block!important;width:100%!important;min-height:44px!important;padding:10px 12px!important;text-align:left!important;
    border:1px solid #cfdae8!important;border-radius:10px!important;background:#fff!important;color:var(--navy)!important;
    font-size:14px!important;font-weight:900!important;
  }
  header .header-actions #adminBtn.hidden{display:none!important}
  header .header-actions #logoutBtn{color:var(--red)!important;border-color:#dca7b5!important;background:#fff8fa!important}
  header .header-actions #calendarBtn::after,
  header .header-actions #profileBtn::after,
  header .header-actions #logoutBtn::after,
  header .header-actions #adminBtn::after{content:none!important}
}


/* v3.31 hide internal Streak-link diagnostics from Chaser lead panel */
.streak-debug-only{display:none!important;}


/* v3.32 Friday–Thursday weekly report browser */
.weekly-report-nav{display:flex;align-items:end;justify-content:space-between;gap:14px;margin:16px 0 10px;padding:12px;background:#f8fafc;border:1px solid var(--line);border-radius:12px}.weekly-report-nav label{min-width:210px}.weekly-report-nav select{width:100%;margin-top:5px}.weekly-report-nav>div{text-align:right}.weekly-report-nav>div b{display:block;color:var(--navy);font-size:18px}.weekly-report-nav>div span{display:block;margin-top:3px}.weekly-report-totals{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:10px 0 18px}.weekly-report-totals>div{background:var(--softblue);border:1px solid var(--line);border-radius:12px;padding:11px}.weekly-report-totals span{display:block;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.weekly-report-totals b{display:block;color:var(--navy);font-size:24px;margin-top:2px}.report-day-summary{grid-template-columns:repeat(4,1fr)}.report-row.report-other{border-left:5px solid var(--blue)}.report-row.report-flag{border-left-color:#f2b705}.report-row.report-meeting{border-left-color:#25a244}.report-row.report-dnd{border-left-color:#2d333b}.report-kind{display:inline-block;margin-top:5px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:var(--navy)}
@media(max-width:700px){.weekly-report-nav{display:block}.weekly-report-nav>div{text-align:left;margin-top:10px}.weekly-report-nav label{min-width:0}.weekly-report-totals{grid-template-columns:repeat(2,1fr)}.report-day-summary{grid-template-columns:repeat(2,1fr)}}


/* v3.38 Manager read-only Chaser map */
.rep-row-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.rep-row-actions button{white-space:nowrap}.view-map-btn,.chaser-map-open-btn{background:var(--navy);color:#fff;border-color:var(--navy)}
.chaser-detail-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:4px}.chaser-detail-title-row h2{margin:0!important}.chaser-map-open-btn{min-width:130px}
.chaser-map-card{width:min(1180px,calc(100vw - 24px));height:min(86vh,820px);display:flex;flex-direction:column;overflow:hidden}.chaser-map-card>h2{margin-bottom:2px}.chaser-manager-map{flex:1 1 auto;min-height:420px;width:100%;margin-top:10px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#dce4e7}.chaser-map-legend{display:flex;flex-wrap:wrap;gap:10px 14px;margin-top:10px;font-size:11px;color:#475467;font-weight:800}.chaser-map-legend span{display:flex;align-items:center;gap:5px}.chaser-map-legend i{width:11px;height:11px;border-radius:3px;display:inline-block;border:1px solid rgba(10,49,97,.25)}.chaser-map-legend .dot-new{background:#2673c9}.chaser-map-legend .dot-initial{background:#20a447}.chaser-map-legend .dot-followup{background:#f3be18}.chaser-map-legend .dot-nohome{background:#fff;border:2px solid #0a3161}.chaser-map-legend .dot-dnd{background:#23272f}.chaser-map-legend b{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-size:9px}.manager-map-popup strong,.manager-map-popup small{display:block}.manager-map-popup strong{font-size:11px;color:var(--navy)}.manager-map-popup small{margin-top:3px;color:#667085}
@media(max-width:900px){.rep-row-actions{grid-column:span 3;display:grid;grid-template-columns:1fr 1fr;width:100%}.rep-row-actions button{grid-column:auto!important}.chaser-detail-title-row{align-items:stretch;flex-direction:column}.chaser-map-open-btn{width:100%}.chaser-map-card{height:82vh}.chaser-manager-map{min-height:360px}}
\n\n/* v3.40 mobile viewport-locked map workspace\n   The document no longer scrolls while Map is active on mobile.\n   Top controls and bottom HUD remain visible; only Leaflet pans/zooms. */\n@media(max-width:900px){\n  body.mobile-map-workspace{\n    width:100%;\n    height:100vh;\n    height:100dvh;\n    overflow:hidden!important;\n    overscroll-behavior:none;\n    position:relative;\n  }\n  body.mobile-map-workspace #app{\n    width:100%;\n    height:100vh;\n    height:100dvh;\n    min-height:0!important;\n    overflow:hidden!important;\n    display:flex!important;\n    flex-direction:column;\n  }\n  body.mobile-map-workspace header{\n    flex:0 0 auto;\n    position:relative;\n    top:auto;\n    width:100%;\n  }\n  body.mobile-map-workspace .app-view-tabs{\n    flex:0 0 auto;\n    position:relative!important;\n    top:auto!important;\n    width:100%;\n  }\n  body.mobile-map-workspace #dashboardView{display:none!important}\n  body.mobile-map-workspace #mapView.active{\n    display:flex!important;\n    flex:1 1 0!important;\n    height:auto!important;\n    min-height:0!important;\n    overflow:hidden!important;\n    position:relative;\n  }\n  body.mobile-map-workspace #mapControlsToggle{\n    flex:0 0 auto;\n    position:relative!important;\n    top:auto!important;\n  }\n  body.mobile-map-workspace #mapToolbar{\n    flex:0 0 auto;\n    position:relative!important;\n  }\n  body.mobile-map-workspace #mapView main{\n    position:relative!important;\n    flex:1 1 0!important;\n    width:100%;\n    height:auto!important;\n    min-height:0!important;\n    overflow:hidden!important;\n    touch-action:none;\n  }\n  body.mobile-map-workspace #map{\n    position:absolute!important;\n    inset:0!important;\n    width:100%!important;\n    height:100%!important;\n    min-height:0!important;\n    overscroll-behavior:none;\n    touch-action:none;\n  }\n  /* HUD belongs to the map viewport, not the page/browser scroll position. */\n  body.mobile-map-workspace .map-status-legend{\n    position:absolute!important;\n    left:8px!important;\n    right:92px!important;\n    bottom:max(8px,env(safe-area-inset-bottom,0px))!important;\n    max-width:none!important;\n    margin:0!important;\n    z-index:1100!important;\n  }\n  body.mobile-map-workspace .route-fab{\n    display:block!important;\n    position:absolute!important;\n    right:8px!important;\n    bottom:max(8px,env(safe-area-inset-bottom,0px))!important;\n    z-index:1110!important;\n  }\n  body.mobile-map-workspace .leaflet-control-attribution{\n    margin-bottom:68px!important;\n  }\n  body.mobile-map-workspace .heat-map-legend{\n    max-width:calc(100% - 24px);\n  }\n  body.mobile-map-workspace:has(.route-panel.open) .map-status-legend,\n  body.mobile-map-workspace:has(.route-panel.open) .route-fab{\n    opacity:0;\n    pointer-events:none;\n  }\n}\n@media(max-width:520px){\n  body.mobile-map-workspace .map-status-legend{\n    right:86px!important;\n    gap:4px 7px!important;\n    padding:6px 7px!important;\n    font-size:8px!important;\n  }\n  body.mobile-map-workspace .route-fab{\n    min-width:70px!important;\n    min-height:46px!important;\n    padding:9px 11px!important;\n    font-size:14px!important;\n  }\n}\n

/* v3.41 mobile-safe Streak Tag picker */
.lead-tag-mobile-btn,.lead-tag-mobile-menu{display:none}
@media(max-width:700px){
  .lead-tag-field{position:relative;z-index:1}
  .lead-tag-field.mobile-menu-open{z-index:30!important}
  .lead-card.mobile-tag-picker-open .outcome-actions{visibility:hidden!important;pointer-events:none!important}
  .lead-tag-field #leadStreakTag{display:none!important}
  .lead-tag-mobile-btn{
    display:flex!important;align-items:center;justify-content:space-between;gap:12px;
    width:100%;min-height:50px;padding:11px 14px;border:1px solid #c9d4e3;border-radius:12px;
    background:#fff;color:#182230;font-size:16px;font-weight:800;text-align:left;
  }
  .lead-tag-mobile-btn>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .lead-tag-mobile-btn>span:last-child{font-size:18px;color:var(--navy);flex:0 0 auto}
  .lead-tag-mobile-menu{
    display:none;position:fixed!important;z-index:2147483000!important;overflow-y:auto!important;overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;background:#fff;border:1px solid #c9d4e3;border-radius:14px;
    box-shadow:0 18px 45px rgba(6,31,61,.32);padding:6px;
  }
  .lead-tag-mobile-menu.open{display:block!important}
  .lead-tag-mobile-option{
    display:block;width:100%;min-height:44px;padding:10px 12px;border:0;border-radius:9px;background:#fff;
    color:#182230;text-align:left;font-size:16px;font-weight:750;line-height:1.25;
  }
  .lead-tag-mobile-option+.lead-tag-mobile-option{border-top:1px solid #eef1f5}
  .lead-tag-mobile-option.selected{background:#eef5ff;color:var(--navy);font-weight:950}
  .lead-tag-mobile-option:active{background:#e6eef9}
}


/* v3.43 Chaser competition leaderboard */
.competition-dashboard{margin:16px 0 18px;padding:16px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,#f7faff 0%,#fff 62%,#fff8fa 100%)}
.competition-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:14px}.competition-head h3{margin:2px 0 3px;color:var(--navy);font-size:23px}.competition-head p{margin:0}.competition-my-ranks{display:flex;gap:10px}.competition-my-ranks>div{min-width:130px;padding:10px 13px;border:1px solid var(--line);border-radius:13px;background:#fff}.competition-my-ranks span,.competition-my-ranks small{display:block}.competition-my-ranks span{font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.competition-my-ranks b{display:block;margin:1px 0;color:var(--navy);font-size:28px}.competition-my-ranks small{color:var(--muted);font-size:10px;font-weight:750}
.competition-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}.competition-panel{padding:13px!important}.competition-list{display:grid;gap:7px}.competition-row{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;padding:9px 10px;border:1px solid #e0e7f0;border-radius:11px;background:#fff}.competition-row.is-you{border:2px solid var(--navy);background:#eef5ff;box-shadow:0 5px 14px rgba(10,49,97,.08)}.competition-rank{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-size:14px;font-weight:950}.competition-row:nth-child(1) .competition-rank{background:#c58b00}.competition-row:nth-child(2) .competition-rank{background:#737b86}.competition-row:nth-child(3) .competition-rank{background:#9a5d2e}.competition-name{min-width:0}.competition-name b{display:block;color:#172b4d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.competition-name b span{display:inline-block;margin-left:5px;padding:2px 5px;border-radius:999px;background:var(--navy);color:#fff;font-size:8px;vertical-align:2px}.competition-name small,.competition-score small{display:block;color:var(--muted);font-size:10px;font-weight:700}.competition-score{text-align:right}.competition-score b{display:block;color:var(--navy);font-size:21px}.competition-separator{padding:4px 8px 0;color:var(--muted);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
@media(max-width:800px){.competition-head{align-items:stretch;flex-direction:column}.competition-my-ranks{display:grid;grid-template-columns:1fr 1fr;width:100%}.competition-my-ranks>div{min-width:0}.competition-columns{grid-template-columns:1fr}.competition-dashboard{padding:12px;margin:12px 0}.competition-row{grid-template-columns:34px 1fr auto;padding:8px}.competition-rank{width:30px;height:30px}}

/* v3.44 Route progress + GPS visibility */
/* Route stops keep their number, but completed outcomes override the navy route fill. */
.pin-route.pin-initial{background:#20a447!important;border-color:#fff!important}
.pin-route.pin-initial i{color:#fff!important}
.pin-route.pin-followup{background:#f3be18!important;border-color:#fff!important}
.pin-route.pin-followup i{color:#0a3161!important}
.pin-route.pin-appointment{background:#f57c16!important;border-color:#fff!important}
.pin-route.pin-no_home{background:#fff!important;border-color:#0a3161!important}
.pin-route.pin-no_home i{color:#0a3161!important}
.pin-route.pin-dnd{background:#23272f!important}
.pin-last-activity{box-shadow:0 0 0 5px rgba(179,25,66,.28),0 0 0 10px rgba(243,190,24,.82),0 3px 12px rgba(0,0,0,.46)!important;z-index:8!important}
.pin-last-badge{position:absolute;left:50%;top:-18px;transform:translateX(-50%) rotate(45deg);background:#f3be18;color:#0a3161;border:2px solid #fff;border-radius:999px;padding:2px 5px;font-size:7px;line-height:1;font-weight:950;letter-spacing:.06em;box-shadow:0 2px 5px rgba(0,0,0,.28);white-space:nowrap}
.user-location-pin{position:relative;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:rgba(38,115,201,.18);border:3px solid rgba(255,255,255,.96);box-shadow:0 0 0 4px rgba(38,115,201,.42),0 4px 14px rgba(0,0,0,.32)}
.user-location-pin span{width:18px;height:18px;border-radius:50%;background:#1677ff;border:4px solid #fff;box-shadow:0 0 0 4px rgba(22,119,255,.25)}
.user-location-pin:before{content:'';position:absolute;inset:-9px;border:3px solid rgba(22,119,255,.38);border-radius:50%;animation:dwwGpsPulse 1.8s ease-out infinite}
.user-location-pin b{position:absolute;top:43px;left:50%;transform:translateX(-50%);background:#0a3161;color:#fff;border:2px solid #fff;border-radius:999px;padding:2px 7px;font-size:8px;line-height:1.2;box-shadow:0 2px 5px rgba(0,0,0,.24)}
@keyframes dwwGpsPulse{0%{transform:scale(.72);opacity:.95}100%{transform:scale(1.35);opacity:0}}

/* v3.45 Route Progress + reversible flag toggles */
.route-progress{padding:12px 14px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#f8fbff,#fff);flex:0 0 auto}
.route-progress-top{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.route-progress-top>div{display:flex;flex-direction:column;gap:2px}.route-progress-top b{color:var(--navy);font-size:14px}.route-progress-top strong{font-size:18px;color:var(--navy)}
.route-progress-track{height:9px;margin:9px 0 10px;border-radius:999px;background:#e2e8f0;overflow:hidden}.route-progress-track i{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,#0a3161,#20a447);transition:width .25s ease}
.route-progress-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px}.route-progress-meta>div{padding:8px 9px;border:1px solid #d5deea;border-radius:10px;background:#fff;min-width:0}.route-progress-meta span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.07em;color:#667085;font-weight:900}.route-progress-meta b{display:block;margin-top:3px;color:var(--navy);font-size:11px;line-height:1.25;white-space:normal}
.route-progress-badge{display:block!important;margin-top:5px!important;font-size:9px!important;font-weight:900!important;letter-spacing:.04em;text-transform:uppercase;color:#667085!important}
.route-stop.route-progress-contacted{background:#effaf2!important;border-color:#8fd2a4!important}.route-stop.route-progress-contacted .route-stop-number{background:#20a447!important;box-shadow:0 0 0 2px #20a447!important}.route-stop.route-progress-contacted .route-progress-badge{color:#18713a!important}
.route-stop.route-progress-nohome{background:#fff!important;border-color:#aabbd2!important}.route-stop.route-progress-nohome .route-stop-number{background:#fff!important;color:#0a3161!important;box-shadow:0 0 0 2px #0a3161!important}.route-stop.route-progress-nohome .route-progress-badge{color:#0a3161!important}
.route-stop.route-progress-last{box-shadow:inset 5px 0 0 #f3be18,0 0 0 2px rgba(243,190,24,.22)!important}.route-stop.route-progress-last .route-progress-badge{color:#a66d00!important}
.route-stop.route-progress-next{outline:2px solid #2673c9;outline-offset:-2px}.route-stop.route-progress-next .route-progress-badge{color:#2673c9!important}
.flag-action-btn{cursor:pointer}.flag-action-btn:disabled{opacity:.72;cursor:wait}.flag-action-btn.is-done{position:relative}.flag-action-btn.is-done:after{content:'Tap to undo';position:absolute;right:10px;top:7px;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:#39724a;opacity:.72}
@media(max-width:650px){.route-progress{padding:10px 12px}.route-progress-meta{grid-template-columns:1fr}.route-progress-top strong{font-size:16px}}
/* v3.46 — live manager Chaser map parity */
.chaser-map-legend .dot-last{background:#f3b400;border:2px solid #fff;box-shadow:0 0 0 2px #b31942}
.chaser-map-legend .live-map-key{color:#176b32}.chaser-map-legend .live-map-key::first-letter{color:#20a447}

/* v3.47 Manager status bars + admin manager performance */
.team-mission-row.has-track{padding-bottom:2px}
.team-mission-track i.goal{background:linear-gradient(90deg,var(--navy),var(--red))}
.team-mission-track i.good{background:#16803b}
.team-mission-track i.active{background:#2563a9}
.team-mission-track i.remaining{background:linear-gradient(90deg,var(--red),var(--navy))}
.manager-performance-section{margin:20px 0 22px;border-top:1px solid var(--line);padding-top:18px}
.manager-performance-head{display:flex;justify-content:space-between;gap:16px;align-items:end;margin-bottom:12px}
.manager-performance-head h3{margin:3px 0 0!important}
.manager-performance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.manager-team-card{background:#f8fafc;border:1px solid var(--line);border-top:4px solid var(--navy);border-radius:14px;padding:14px;min-width:0}
.manager-team-card>header{height:auto;background:transparent;color:inherit;padding:0;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border:0;position:static}
.manager-team-card>header h4{margin:0;color:var(--navy);font-size:18px}.manager-team-card>header span{display:block;color:var(--muted);font-size:11px;margin-top:2px}.manager-team-rank{font-size:12px;font-weight:950;color:var(--red);white-space:nowrap}
.manager-team-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:12px 0}
.manager-team-kpis div{background:#fff;border:1px solid var(--line);border-radius:9px;padding:8px}.manager-team-kpis span{display:block;color:var(--muted);font-size:9px;font-weight:800}.manager-team-kpis b{display:block;color:#111;font-size:19px;margin-top:1px}
.manager-team-progress{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center;margin-bottom:12px}.manager-team-progress span{font-size:10px;color:var(--muted);font-weight:800}.manager-team-progress b{font-size:11px}.manager-team-progress div{grid-column:1/-1;height:8px;background:#e5eaf0;border-radius:99px;overflow:hidden}.manager-team-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--navy),var(--red));border-radius:99px}
.manager-top-three{display:grid;gap:6px}.manager-top-three-title{font-size:10px;font-weight:950;color:var(--navy);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}.manager-chaser-rank-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:8px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:9px;padding:8px}.manager-chaser-rank-row .rank{font-weight:950;color:var(--navy);text-align:center}.manager-chaser-rank-row b{display:block;font-size:12px;color:#111}.manager-chaser-rank-row small{display:block;color:var(--muted);font-size:9px;margin-top:1px}.manager-chaser-rank-row strong{color:var(--navy);font-size:16px}.manager-empty-team{padding:12px;border:1px dashed #b9c4d3;border-radius:9px;color:var(--muted);font-size:11px;text-align:center;background:#fff}
@media(max-width:900px){.manager-performance-head{display:block}.manager-performance-head>span{display:block;margin-top:4px}.manager-performance-grid{grid-template-columns:1fr}.manager-team-kpis{grid-template-columns:repeat(2,1fr)}}

/* v3.48 role-aware operations dashboards */
.operations-dashboard{padding:16px;max-width:1600px;margin:0 auto;display:grid;gap:16px}
.operations-dashboard.hidden{display:none!important}
.ops-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 24px;border:1px solid var(--line);border-top:6px solid var(--navy);border-radius:18px;background:linear-gradient(135deg,#fff 0%,#f5f9ff 72%,#fff7fa 100%)}
.ops-hero h2{margin:3px 0 4px;font-size:30px;color:var(--navy)}
.ops-week-goal{min-width:190px;text-align:right;display:grid;gap:2px}.ops-week-goal span{font-size:11px;font-weight:950;color:var(--red);letter-spacing:.12em}.ops-week-goal b{font-size:34px;color:var(--navy)}.ops-week-goal small{color:var(--muted);font-weight:800}
.ops-progress-track{height:14px;background:#e8edf4;border-radius:999px;overflow:hidden;margin-top:-8px}.ops-progress-track span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--navy),var(--red));transition:width .35s}
.ops-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.ops-kpis article{border:1px solid var(--line);border-top:4px solid var(--navy);border-radius:15px;background:#fff;padding:15px;min-height:105px;display:grid;align-content:start}.ops-kpis article:nth-child(2n){border-top-color:var(--red)}.ops-kpis span{font-size:11px;color:var(--muted);font-weight:850}.ops-kpis b{font-size:30px;color:#121826;line-height:1.1;margin:4px 0}.ops-kpis small{font-size:10px;color:var(--muted);font-weight:700}
.ops-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.ops-grid>.dashboard-panel{min-height:270px}
.ops-chaser-progress{padding:16px}.ops-chaser-progress .panel-title{align-items:center}.ops-chaser-progress #opsOpenCommandBtn{background:var(--navy);color:#fff;border-color:var(--navy)}
body:has(#operationsDashboard:not(.hidden)) #dashboardView{background:#f7f9fc;min-height:calc(100vh - 126px)}
@media(max-width:1100px){.ops-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){.operations-dashboard{padding:10px}.ops-hero{align-items:flex-start;flex-direction:column;padding:16px}.ops-hero h2{font-size:23px}.ops-week-goal{text-align:left;min-width:0}.ops-kpis{grid-template-columns:repeat(2,1fr)}.ops-grid{grid-template-columns:1fr}.ops-kpis article{min-height:92px}.ops-chaser-progress .panel-title{align-items:flex-start;gap:10px;flex-direction:column}.ops-chaser-progress #opsOpenCommandBtn{width:100%}}


/* v3.49 Household voter grouping */
.household-popup{min-width:290px}.household-route-note{font-size:11px!important;font-weight:850;color:var(--red)!important;margin-top:-4px!important}.household-voter-list{display:grid;gap:6px;margin-top:8px;max-height:260px;overflow:auto}.household-voter-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:9px;padding:8px;background:#f8fafc}.household-voter-row b{font-size:12px!important;color:var(--navy)!important}.household-voter-row small{display:block;color:#667085;font-size:10px;margin-top:2px}.household-voter-row button{width:auto!important;white-space:nowrap;padding:6px 8px!important;font-size:10px!important}.lead-household-panel{margin:14px 0;border:1px solid #cbd8e8;border-radius:14px;padding:14px;background:#f7fbff}.lead-household-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:9px}.lead-household-head>div{display:grid;gap:2px}.lead-household-head .eyebrow{font-size:10px;font-weight:950;letter-spacing:.16em;color:var(--red)}.lead-household-head b{color:var(--navy);font-size:16px}.lead-household-voters{display:grid;gap:7px}.lead-household-voter{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px 10px}.lead-household-voter.current{border-color:var(--navy);background:var(--softblue)}.lead-household-voter>div{min-width:0}.lead-household-voter b{display:block;color:var(--navy);font-size:13px}.lead-household-voter span{display:block;color:#667085;font-size:11px;margin-top:2px}.lead-household-voter em{font-style:normal;font-size:9px;font-weight:950;letter-spacing:.08em;color:var(--navy)}.lead-household-voter button{padding:6px 10px;font-size:11px;color:var(--navy);border-color:var(--navy)}
@media(max-width:760px){.household-popup{min-width:240px}.household-voter-row{align-items:flex-start}.lead-household-head{align-items:flex-start;flex-direction:column;gap:3px}}

/* ============================================================
   v3.51 Campaign Operations
   ============================================================ */
.campaign-brief{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:18px;align-items:center;margin:0 0 16px;padding:18px 20px;border:1px solid #ccd8e8;border-top:5px solid #0a3161;border-radius:20px;background:linear-gradient(135deg,#fff,#f4f8fd);box-shadow:0 8px 24px rgba(10,49,97,.07)}
.campaign-brief-ops{margin-bottom:18px}.campaign-brief-copy h3{margin:2px 0 4px;font-size:24px;color:#0a3161}.campaign-countdown{display:flex;align-items:baseline;gap:5px;padding:10px 15px;border-radius:16px;background:#0a3161;color:#fff}.campaign-countdown b{font-size:30px;line-height:1}.campaign-countdown span{text-transform:uppercase;font-weight:800;font-size:11px;letter-spacing:.08em}.campaign-milestone-strip{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px}.campaign-milestone{padding:10px 12px;border-radius:14px;border:1px solid #d8e1ee;background:#fff;display:grid;gap:3px}.campaign-milestone.next{border-color:#bb133e;box-shadow:inset 4px 0 0 #bb133e}.campaign-milestone span{font-size:10px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;color:#bb133e}.campaign-milestone b{font-size:13px;color:#14223a}.campaign-milestone time{font-size:12px;color:#657189;font-weight:700}
.campaign-stage-panel{margin-top:16px}.campaign-stage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.campaign-stage-stat{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:12px 14px;border:1px solid #d6dfec;border-radius:14px;background:#f8fbff}.campaign-stage-stat span{font-weight:800;color:#34425b}.campaign-stage-stat b{font-size:22px;color:#0a3161}
.campaign-stage-control{margin:18px 0;padding:16px;border:1px solid #c8d7e9;border-radius:18px;background:#f7faff}.campaign-stage-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}.campaign-stage-head b{display:block;font-size:20px;color:#0a3161}.campaign-stage-rule-status{font-size:12px;font-weight:900;color:#bb133e;text-align:right;max-width:250px}.campaign-stage-rule-status.ok{color:#15803d}.campaign-stage-action{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.campaign-stage-action select{min-width:0;width:100%;padding:13px;border:1px solid #bdcce0;border-radius:12px;background:#fff;font-weight:800}.campaign-stage-action button{padding:0 18px;border-radius:12px;background:#0a3161;color:#fff;border:0;font-weight:900}.campaign-stage-action button:disabled{opacity:.45}.campaign-stage-control .muted{display:block;margin-top:8px}
@media(max-width:900px){.campaign-brief{grid-template-columns:1fr auto;padding:14px}.campaign-brief-copy h3{font-size:20px}.campaign-milestone-strip{display:flex;overflow-x:auto;padding-bottom:3px}.campaign-milestone{min-width:210px}.campaign-countdown b{font-size:24px}.campaign-stage-action{grid-template-columns:1fr}.campaign-stage-action button{min-height:48px}.campaign-stage-head{display:block}.campaign-stage-rule-status{display:block;text-align:left;margin-top:6px;max-width:none}}
