:root{
  --bg:#0b1016;--side:#090e13;--panel:#131b23;--panel2:#18222c;--panel3:#0f171f;
  --line:#293642;--text:#fafafa;--muted:#91a2af;--orange:#ef5b2a;--orange2:#ff9157;
  --green:#4fd1a5;--yellow:#f4c95d;--red:#ff7474;--blue:#63a9ff;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:linear-gradient(180deg,#0a0f15,#0b1118 42%,#0a1016);color:var(--text);font-family:Inter,Segoe UI,Arial,sans-serif}
button,input,select{font:inherit}
.app{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100vh}
.sidebar{background:var(--side);border-right:1px solid var(--line);padding:22px 16px;position:sticky;top:0;height:100vh;z-index:10}
.logo{font-size:27px;font-weight:900;margin:2px 10px 22px;letter-spacing:-.4px}.logo span{color:var(--orange)}
.ver{font-size:10px;color:var(--muted);padding:3px 7px;border:1px solid var(--line);border-radius:999px;margin-left:6px;vertical-align:middle}
.nav{display:grid;gap:5px}
.nav button{border:0;background:transparent;color:var(--muted);display:flex;align-items:center;gap:11px;text-align:left;padding:12px 13px;border-radius:10px;cursor:pointer;width:100%}
.nav button:hover,.nav button.active{background:var(--panel2);color:#fff}
.side-note{position:absolute;left:18px;right:18px;bottom:22px;color:var(--muted);font-size:11px;line-height:1.5;border-top:1px solid var(--line);padding-top:14px}
.main{min-width:0;padding:26px 30px 70px}
.page{display:none}.page.active{display:block}
.header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}
.header h1{font-size:29px;margin:0;letter-spacing:-.45px}.header p{margin:6px 0 0;color:var(--muted);line-height:1.45}
.pill{border:1px solid var(--line);border-radius:999px;padding:8px 12px;color:var(--muted);font-size:12px;white-space:nowrap}
.grid{display:grid;gap:16px}.kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}.two{grid-template-columns:1.25fr .75fr}.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.card{background:linear-gradient(180deg,var(--panel),#10171e);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 14px 35px rgba(0,0,0,.16)}
.kpi-label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.55px}.kpi-value{font-size:30px;font-weight:850;margin:8px 0 5px;letter-spacing:-.6px}.kpi-sub{font-size:12px;color:var(--green)}
.section-title{font-size:17px;margin:0 0 14px;letter-spacing:-.15px}
.small{font-size:12px;color:var(--muted)}.muted{color:var(--muted)}.good{color:var(--green)}.warn{color:var(--yellow)}.bad{color:var(--red)}
.btn{background:var(--orange);color:#fff;border:0;border-radius:9px;padding:9px 12px;font-weight:750;cursor:pointer}
.btn:hover{filter:brightness(1.08)}.btn.secondary{background:var(--panel2);border:1px solid var(--line)}.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--muted)}
.notice{border-left:3px solid var(--orange);background:#111b23;border-radius:0 10px 10px 0;padding:12px 14px;line-height:1.5}
.insight{padding:12px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.45}.insight:last-child{border-bottom:0}
.searchbar{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap}.searchbar input,.searchbar select{background:#0e151c;color:#fff;border:1px solid var(--line);border-radius:10px;padding:11px 12px}.searchbar input{flex:1;min-width:230px}.searchbar select{min-width:145px}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:13px}
table{width:100%;border-collapse:collapse;min-width:760px}th,td{padding:12px 14px;border-bottom:1px solid var(--line);font-size:13px;text-align:left;vertical-align:top}th{background:#10171f;color:var(--muted);font-weight:650;position:sticky;top:0;z-index:1}.clickrow{cursor:pointer}.clickrow:hover td{background:#16212a}
.tag{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);background:#202b35;border-radius:999px;padding:5px 8px;font-size:11px;margin:2px 4px 2px 0}
.tag.due{border-color:#7f3d3d;color:#ffabab;background:#251719}.tag.recent{border-color:#285d50;color:#7ee7c2;background:#12201d}.tag.soon{border-color:#6b5c2a;color:#f5d77a;background:#211e13}.tag.future{border-color:#615082;color:#d0b9ff;background:#1b1724}
.pager{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px}.pager-controls{display:flex;gap:8px}
.profile-layout{display:grid;grid-template-columns:minmax(320px,1fr) minmax(0,2fr);gap:16px;align-items:start}.profile-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.profile-card-heading>div{min-width:0}.profile-edit-button{flex:0 0 auto;padding:7px 10px;font-size:12px}.profile-name{font-size:24px;font-weight:850;margin:5px 0}.stat{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--line);font-size:13px}.stat span:first-child{color:var(--muted)}
/* Customer Profile must let its grid/flex content shrink before text wraps. */
#profile,#profileContent,#profileContent>div,#profileContent .card,#profileContent .timeline,#profileContent .event,#profileContent .event-body,#profileContent .appliance,#profileContent .notice,#profileContent .stat{min-width:0;max-width:100%}
#profileContent .profile-name,#profileContent .muted,#profileContent .small,#profileContent .stat>*,#profileContent .notice,#profileContent .appliance,#profileContent .event-body,#profileContent .event-body h3,#profileContent .event-body p,#profileContent .history-details,#profileContent .history-meta,#profileContent .recovered-note-details,#profileContent .empty,#profileContent .tag{overflow-wrap:anywhere;word-break:break-word}
#profileContent .tag{max-width:100%;white-space:normal}
#profileContent .history-actions summary,#profileContent .history-summary summary{width:fit-content;max-width:100%;overflow-wrap:anywhere}
.profile-tags{margin-top:8px}.profile-contact{margin-top:10px;line-height:1.45}.profile-stats{margin-top:10px}.profile-section{margin-top:12px}.profile-appliance-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.appliance{border:1px solid var(--line);border-radius:12px;padding:11px;background:var(--panel3);margin-bottom:8px}.appliance h3{font-size:15px;margin:0 0 4px}.appliance .form-actions{margin-top:8px}.profile-collapsible{padding:0;overflow:hidden}.profile-collapsible>summary{list-style:none;display:flex;align-items:center;gap:5px;padding:12px 16px;cursor:pointer;font-size:15px;font-weight:800}.profile-collapsible>summary::-webkit-details-marker{display:none}.profile-collapsible>summary:after{content:"▸";margin-left:auto;color:var(--muted)}.profile-collapsible[open]>summary:after{content:"▾"}.profile-collapsible>summary span{color:var(--muted);font-size:13px}.profile-collapsible[open]>summary{border-bottom:1px solid var(--line)}.profile-collapsible-body{padding:14px 16px}.profile-collapsible-body.empty{padding:12px 16px}.profile-primary-actions{margin-bottom:8px!important}#profileBrief{padding:12px}.profile-history .section-title{margin-bottom:10px}
.timeline{display:grid;gap:12px}.event{display:grid;grid-template-columns:105px minmax(0,1fr);gap:14px}.event-date{color:var(--muted);font-size:12px;padding-top:3px}.event-body{border-left:2px solid var(--orange);padding:0 0 15px 14px}.event-body h3{font-size:14px;margin:0 0 5px}.event-body p{margin:0;color:#d9e1e6;line-height:1.48;font-size:13px}
#profileAppointments{display:grid;gap:10px}.history-entry{padding:2px 0}.history-entry .event-body{padding:11px 14px 13px;border-radius:0 12px 12px 0;background:#101922}.history-entry .event-date{padding:12px 0 0 2px;font-size:13px}.history-entry h3{margin:6px 0 3px}.history-badges{display:flex;flex-wrap:wrap;gap:4px}.history-meta{color:var(--muted);font-size:12px}.history-details{margin-top:8px!important;white-space:pre-wrap}.history-links{margin-top:8px}.history-link{border:0;background:transparent;color:#8ec8e8;padding:0;cursor:pointer;font:inherit;font-size:12px;text-decoration:underline}.history-actions{margin-top:9px;border-top:1px solid var(--line);padding-top:8px}.history-actions summary,.history-summary summary{width:max-content;color:var(--muted);font-size:12px;cursor:pointer}.history-action-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.history-action-buttons .btn{padding:7px 10px;font-size:12px}.history-summary{margin-top:8px;color:var(--muted);font-size:12px}.history-summary div{padding-top:6px}.recovered-note-details{margin-top:9px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#0d151c}.recovered-note-details p{margin-top:7px!important}.recovered-history .event-body{border-left-color:#4f8aa8}
.bar-row{margin:14px 0}.bar-top{display:flex;justify-content:space-between;gap:15px;font-size:13px;margin-bottom:7px}.bar{height:9px;background:#24303b;border-radius:99px;overflow:hidden}.bar span{display:block;height:100%;background:linear-gradient(90deg,var(--orange),var(--orange2));border-radius:99px}
.metric-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric-box{border:1px solid var(--line);border-radius:12px;padding:13px;background:var(--panel3)}.metric-box strong{display:block;font-size:20px;margin-top:5px}
.chart{height:300px;display:flex;align-items:flex-end;gap:5px;padding:18px 8px 26px;border:1px solid var(--line);border-radius:13px;background:#0e151c;position:relative;overflow:hidden}.chart:before{content:"Monthly service records";position:absolute;top:12px;left:14px;color:var(--muted);font-size:12px}.chart-bar{flex:1;min-width:3px;background:linear-gradient(180deg,var(--orange2),var(--orange));border-radius:5px 5px 2px 2px;opacity:.9;position:relative}.chart-bar:hover{filter:brightness(1.2)}.chart-tip{display:none;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translateX(-50%);background:#070b0f;border:1px solid var(--line);border-radius:7px;padding:5px 7px;font-size:10px;white-space:nowrap;z-index:4}.chart-bar:hover .chart-tip{display:block}
.quality-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.quality{border:1px solid var(--line);border-radius:13px;padding:15px;background:var(--panel3)}.quality .num{font-size:28px;font-weight:850;margin:5px 0}.quality p{font-size:12px;color:var(--muted);line-height:1.45;margin:0}
.progress{height:10px;background:#24303b;border-radius:99px;overflow:hidden;margin-top:9px}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--green),#7ce4c2)}
.empty{border:1px dashed var(--line);border-radius:13px;padding:28px;text-align:center;color:var(--muted)}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.74);display:none;align-items:center;justify-content:center;padding:20px;z-index:6000}.modal.open{display:flex}.modal-box{position:relative;z-index:1;width:min(850px,100%);max-height:90vh;overflow:auto;background:#10171f;border:1px solid var(--line);border-radius:17px;padding:20px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.close{background:transparent;border:0;color:var(--muted);font-size:25px;cursor:pointer}
.callout{display:flex;gap:12px;align-items:flex-start}.callout-icon{font-size:22px}.callout strong{display:block;margin-bottom:4px}
.local-form{display:grid;gap:14px}.local-form label{display:grid;gap:6px;color:var(--muted);font-size:12px}.local-form input,.local-form select,.local-form textarea{width:100%;background:#0e151c;color:#fff;border:1px solid var(--line);border-radius:10px;padding:11px 12px}.local-form textarea{min-height:95px;resize:vertical}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-actions{display:flex;justify-content:flex-end;gap:10px}.form-message{display:none;border-radius:10px;padding:10px 12px;font-size:13px}.form-message.error{display:block;background:#251719;color:#ffabab;border:1px solid #7f3d3d}.form-message.success{display:block;background:#12201d;color:#7ee7c2;border:1px solid #285d50}.local-only{border:1px solid #285d50;color:#7ee7c2;background:#12201d;border-radius:999px;padding:5px 8px;font-size:11px}
.financial-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.financial-tabs .active{background:var(--orange);border-color:transparent;color:#fff}.financial-view{display:none}.financial-view.active{display:block}.financial-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.financial-actions select{background:#0e151c;color:#fff;border:1px solid var(--line);border-radius:9px;padding:9px 11px}.financial-bar-chart{min-height:250px;display:flex;align-items:flex-end;gap:9px;padding:30px 12px 32px;border:1px solid var(--line);border-radius:13px;background:#0e151c;overflow-x:auto}.financial-chart-group{min-width:46px;flex:1;display:flex;align-items:flex-end;justify-content:center;gap:3px;height:185px;position:relative}.financial-chart-bar{width:14px;min-height:2px;border-radius:4px 4px 1px 1px;background:var(--orange);position:relative}.financial-chart-bar.profit{background:var(--green)}.financial-chart-bar.expense{background:var(--yellow)}.financial-chart-label{position:absolute;top:calc(100% + 7px);left:50%;transform:translateX(-50%);font-size:10px;color:var(--muted);white-space:nowrap}.financial-chart-tip{display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:#070b0f;border:1px solid var(--line);border-radius:7px;padding:5px 7px;font-size:10px;white-space:nowrap;z-index:5}.financial-chart-bar:hover .financial-chart-tip{display:block}.financial-entry-card{color:var(--text);text-align:left;cursor:pointer;width:100%}.financial-entry-card:hover{border-color:var(--orange)}.financial-entry-card strong{display:block;font-size:17px;margin-bottom:7px}.financial-entry-card span{color:var(--muted);font-size:12px;line-height:1.45}.financial-section{border-top:1px solid var(--line);padding-top:14px;margin-top:4px}.financial-section h3{font-size:14px;margin:0 0 10px}.money-field input{text-align:right}.forecast-low{color:var(--red);font-weight:700}.financial-review{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.financial-review .metric-box strong{font-size:16px}

.osm-map-shell{position:relative;height:520px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#0e151c}
.osm-map-shell iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.78) brightness(.72) contrast(1.08);pointer-events:none}
.heat-overlay{position:absolute;inset:0;z-index:3;pointer-events:none}
.heat-node{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;cursor:pointer}
.heat-halo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;filter:blur(8px);opacity:.36}
.heat-dot{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;border:1px solid rgba(255,255,255,.55);box-shadow:0 0 14px rgba(239,91,42,.65)}
.heat-node:hover .heat-dot{outline:3px solid rgba(255,255,255,.2)}
.heat-town-label{position:absolute;left:18px;top:-11px;white-space:nowrap;background:rgba(7,12,17,.88);border:1px solid var(--line);border-radius:7px;padding:4px 7px;font-size:11px;color:#eef4f7;opacity:0;transform:translateY(4px);transition:.15s}
.heat-node:hover .heat-town-label{opacity:1;transform:translateY(0)}
.map-topbar{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.map-mode-row{display:flex;gap:8px;flex-wrap:wrap}.map-mode.active{background:var(--orange);border-color:transparent;color:#fff}
.map-credit{position:absolute;left:10px;bottom:8px;z-index:4;background:rgba(7,12,17,.78);border:1px solid var(--line);border-radius:8px;padding:5px 7px;font-size:10px;color:#b8c4cc}
.map-legend{position:absolute;right:10px;bottom:10px;z-index:4;background:rgba(7,12,17,.86);border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:11px;line-height:1.5}
.map-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}


.proper-map{height:520px;border:1px solid var(--line);border-radius:15px;overflow:hidden;background:#0e151c;position:relative}
.map-loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted);font-size:13px}
.proper-map .leaflet-control-zoom a{background:#111a22;color:#fff;border-color:#33414d}
.proper-map .leaflet-control-zoom a:hover{background:#1a2630}
.proper-map .leaflet-control-attribution{background:rgba(9,14,19,.78);color:#c8d2d9;font-size:9px}
.proper-map .leaflet-control-attribution a{color:#ff9b70}
.map-foot{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;margin-top:9px;color:var(--muted);font-size:11px}
.map-mode-row{display:flex;gap:8px;flex-wrap:wrap}.map-mode.active{background:var(--orange);border-color:transparent;color:#fff}
.hi-town-dot{filter:drop-shadow(0 0 5px rgba(239,91,42,.45))}
.hi-town-tooltip{background:#0c131a;color:#eef4f7;border:1px solid #33414d;border-radius:8px;box-shadow:0 8px 22px rgba(0,0,0,.28);font-size:12px;padding:7px 9px}
.hi-town-tooltip:before{border-top-color:#33414d}
.annual-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.annual-field{border:1px solid var(--line);border-radius:12px;padding:12px;background:#0e151c;display:grid;gap:8px}.annual-field .field-tax-name{color:var(--muted);font-size:11px;line-height:1.35}.annual-field details{color:var(--muted);font-size:11px}.annual-field summary{cursor:pointer;color:var(--green)}.annual-field details p{margin:7px 0 0;line-height:1.45}.field-status select{padding:7px 9px!important}.checkbox-label{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center}.checkbox-label input{width:auto!important}.financial-view-switch{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
@media(max-width:760px){.proper-map{height:430px}.map-foot{display:block}.map-foot span{display:block;margin-top:5px}}

@media(max-width:1080px){.kpis{grid-template-columns:1fr 1fr}.two,.three{grid-template-columns:1fr}}
@media(max-width:760px){.app{grid-template-columns:1fr}.sidebar{height:auto;position:relative;border-right:0;border-bottom:1px solid var(--line);padding-bottom:12px}.nav{display:flex;overflow:auto}.nav button{width:auto;white-space:nowrap}.side-note{display:none}.main{padding:19px 14px 55px}.kpis,.quality-grid,.metric-list,.form-grid,.financial-review{grid-template-columns:1fr}.header{align-items:flex-start}.pill{display:none}.event{grid-template-columns:1fr}.event-date{padding-bottom:2px}.profile-layout{grid-template-columns:1fr}.financial-tabs{overflow-x:auto;flex-wrap:nowrap}.financial-tabs button{white-space:nowrap}}
.appointment-row{cursor:pointer}.appointment-row:hover{background:var(--panel2)}.managed{font-size:10px;color:var(--muted);margin-top:3px}.source-wix{border-color:#8b5cf6;color:#c4b5fd}.mapping-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,420px);gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.mapping-row select{background:#0e151c;color:#fff;border:1px solid var(--line);border-radius:9px;padding:9px 11px}@media(max-width:760px){.mapping-row{grid-template-columns:1fr}}
.wix-csv-mapping-list label{display:grid;gap:4px}.wix-csv-mapping-list select{width:100%;min-height:42px}
.btn:disabled{opacity:.5;cursor:not-allowed;filter:saturate(.35)}#wixCsvAdvanced{margin-top:16px}#wixCsvAdvanced>summary{cursor:pointer;font-weight:700;color:var(--accent)}
/* Save confirmation remains visible after the appointment modal closes. */
.save-confirmation{position:fixed;z-index:1000;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translate(-50%,18px);padding:13px 18px;border:1px solid #3e9b70;border-radius:12px;background:#123a2a;color:#eafff5;font-weight:750;box-shadow:0 12px 32px #0009;opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease}.save-confirmation.visible{opacity:1;transform:translate(-50%,0)}
/* Today operational command center */
.today-search{position:relative;margin-bottom:16px}.today-search>input{width:100%;background:#0e151c;color:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;font-size:15px}.search-results{position:absolute;z-index:20;left:0;right:0;top:52px;background:#111b24;border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 34px #0009;overflow:hidden}.search-results button{display:flex;width:100%;justify-content:space-between;gap:12px;padding:12px 14px;border:0;border-bottom:1px solid var(--line);background:transparent;color:#fff;text-align:left;cursor:pointer}.search-results button:hover{background:#1a2732}.search-results span{color:var(--muted);font-size:12px}.today-kpis{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:16px}.today-kpi{color:#fff;text-align:left;cursor:pointer;width:100%}.today-kpi:hover{border-color:#4f8aa8;transform:translateY(-1px)}.today-primary{align-items:start}.today-row{display:grid;grid-template-columns:82px minmax(0,1fr) 170px auto;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);cursor:pointer}.today-row:last-child{border-bottom:0}.today-row:hover{background:#15212b}.today-time{color:#8ec8e8;font-weight:700;font-size:13px}.today-row-meta{display:flex;align-items:flex-start;flex-direction:column;gap:4px;font-size:12px}.today-row-actions{display:flex;flex-wrap:wrap;gap:7px;align-content:start}.today-row-actions .btn{padding:7px 9px;font-size:12px}.today-warnings{margin-top:6px}.attention-item,.activity-item{display:grid;width:100%;gap:3px;padding:11px;border:0;border-bottom:1px solid var(--line);background:transparent;color:#fff;text-align:left;cursor:pointer}.attention-item:hover,.activity-item:hover{background:#15212b}.attention-item span,.activity-item span{color:#cdd8df}.attention-item small,.activity-item small{color:var(--muted)}.due-row{display:flex;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}.quick-actions{display:flex;flex-wrap:wrap;gap:10px}@media(max-width:1200px){.today-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.today-row{grid-template-columns:72px minmax(0,1fr) 150px}.today-row-actions{grid-column:2/-1}}@media(max-width:760px){.today-kpis{grid-template-columns:1fr 1fr}.today-row{grid-template-columns:1fr}.today-row-actions{grid-column:auto}.due-row{display:grid}}
.recorded-activity{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.recorded-activity h3{margin:0 0 4px}.recorded-activity-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.today-diagnostic{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.today-diagnostic summary{cursor:pointer;color:var(--muted)}
.quick-actions-card{align-self:start;min-height:0}.today-more{margin-top:10px}.today-more>summary{cursor:pointer;color:#8ec8e8;font-weight:700;padding:10px 0}.today-more[open]>summary{margin-bottom:4px}.briefing-metric{display:flex;flex-direction:column;gap:5px;min-width:0;padding:12px;border:1px solid var(--line);border-radius:10px;background:#101a23}.briefing-metric span{color:var(--muted);font-size:13px;line-height:1.3}.briefing-metric strong{font-size:20px;line-height:1.15;overflow-wrap:anywhere}#todayValues.metric-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}@media(max-width:760px){#todayValues.metric-list{grid-template-columns:1fr}}
.distance-from-base{color:#8ec8e8;margin-top:4px}
.business-chart{min-height:245px;display:flex;align-items:flex-end;gap:10px;padding:34px 14px 48px;border:1px solid var(--line);border-radius:13px;background:#0e151c;overflow-x:auto}.business-chart-group{height:175px;min-width:58px;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative}.business-chart-group>strong{font-size:12px;margin-bottom:5px;white-space:nowrap}.business-chart-group>span{position:absolute;top:calc(100% + 8px);font-size:10px;color:var(--muted);white-space:nowrap}.business-chart-bar{width:min(30px,70%);min-height:4px;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,var(--orange2),var(--orange))}.business-chart-bar.revenue{background:linear-gradient(180deg,#54d89b,var(--green))}
.business-chart{width:100%;height:260px;min-height:0;padding-top:28px;padding-bottom:42px;overflow-x:scroll}.business-lower{display:grid;grid-template-columns:1fr;gap:16px;margin-top:16px}.business-interpretation{align-self:start}
/* Appointment search and filters */
.visibility-inline-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.visibility-inline-form input,.visibility-location-form input,#visibility input,#visibility select,#visibility textarea{width:100%;background:#0e151c;color:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 11px}.visibility-location-form button,.visibility-full{grid-column:1/-1}.visibility-manage-list{margin-top:14px;max-height:310px;overflow:auto}.visibility-manage-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.visibility-manage-row.inactive{opacity:.55}.visibility-manage-row span{display:grid;gap:3px}.visibility-manage-row small{color:var(--muted)}.visibility-manage-row>div{display:flex;gap:5px}.visibility-manage-row .btn{padding:6px 8px;font-size:11px}.visibility-entry{margin-top:16px}.visibility-entry input[type=file]{margin:8px 0 10px}.visibility-notes{margin-top:14px;max-height:260px;overflow:auto}.visibility-note{display:grid;gap:4px;padding:10px 0;border-bottom:1px solid var(--line)}.visibility-note span{font-size:13px;line-height:1.4}.visibility-note small{color:var(--muted)}#visibility>.card,#visibility>.grid{margin-bottom:16px}.table-scroll{overflow:auto}.visibility-change{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.visibility-change div{display:grid}.visibility-change small{color:var(--muted)}.visibility-change span{font-weight:700;font-size:12px}.visibility-change .up{color:var(--green)}.visibility-change .down{color:var(--red)}.visibility-trend{min-height:280px}.visibility-trend-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:#0e151c}.visibility-trend svg{width:100%;height:280px}.trend-line{fill:none;stroke-width:3}.trend-line.maps{stroke:var(--orange)}.trend-line.organic{stroke:#63a9ff}.trend-dot.maps{fill:var(--orange)}.trend-dot.organic{fill:#63a9ff}.trend-top-three{stroke:var(--green);stroke-width:1;stroke-dasharray:6 5}.trend-date{fill:var(--muted);font-size:10px;text-anchor:middle}.visibility-legend{display:flex;gap:15px;flex-wrap:wrap;margin-top:9px;color:var(--muted);font-size:11px}.visibility-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}.visibility-legend i.maps{background:var(--orange)}.visibility-legend i.organic{background:#63a9ff}@media(max-width:760px){.visibility-kpis{grid-template-columns:1fr 1fr}.visibility-setup,.visibility-entry,.visibility-analysis{grid-template-columns:1fr}.visibility-inline-form{grid-template-columns:1fr}.visibility-change{grid-template-columns:1fr 1fr}.visibility-change>div{grid-column:1/-1}}
.appointment-search-panel{margin:16px 0}.appointment-search-row{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;gap:10px}.appointment-search-row input{font-size:1rem;padding:12px}.appointment-filters{margin-top:12px}.filter-chip{border:1px solid #465467;border-radius:999px;background:#172231;color:inherit;padding:6px 10px;cursor:pointer}.filter-chip:after{content:" ×"}@media(max-width:760px){.appointment-search-row{grid-template-columns:1fr}.appointment-filters{grid-template-columns:1fr}}
.appointment-search-row{display:flex;align-items:flex-start;flex-wrap:wrap}.appointment-search-row>#appointmentSearch{flex:0 1 520px;width:min(520px,100%)}.appointment-filter-menu{position:relative}.appointment-filter-menu>summary{list-style:none;cursor:pointer}.appointment-filter-menu>summary::-webkit-details-marker{display:none}.appointment-filter-menu[open]{flex-basis:100%}.appointment-filter-menu[open]>summary{width:max-content;margin-top:10px}.appointment-filter-menu .appointment-filters{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}.filter-menu-actions{display:flex;align-items:end}.schedule-setup{display:grid;gap:16px}.schedule-setup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.schedule-setup section{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}.schedule-setup h3{margin-top:0}.schedule-slot-list{display:flex;flex-wrap:wrap;gap:6px}.schedule-slot-state{padding:5px 8px;border-radius:999px;background:#172738;color:#b9d9ef;font-size:12px}@media(max-width:760px){.appointment-search-row>#appointmentSearch{flex-basis:100%}.schedule-setup-grid{grid-template-columns:1fr}}
.appointment-calendar{margin:16px 0}.appointment-calendar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.appointment-calendar-head .section-title{margin:0 0 4px}.appointment-calendar-actions{display:flex;gap:8px;flex-wrap:wrap}.appointment-calendar-range{font-size:18px;font-weight:800;margin:18px 0 10px}.appointment-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#0d141c}.appointment-calendar-day{min-width:0;min-height:190px;border-right:1px solid var(--line)}.appointment-calendar-day:last-child{border-right:0}.appointment-calendar-day>header{display:flex;align-items:center;justify-content:space-between;padding:10px;background:#141e29;border-bottom:1px solid var(--line);color:var(--muted)}.appointment-calendar-day>header strong{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;color:#fff}.appointment-calendar-day.is-today>header{color:#fff;background:#1b2937}.appointment-calendar-day.is-today>header strong{background:var(--orange)}.appointment-calendar-events{display:grid;align-content:start;gap:7px;padding:8px}.appointment-calendar-event{display:grid;gap:2px;width:100%;min-width:0;text-align:left;border:1px solid #38536d;border-left:4px solid #5ca8e6;border-radius:8px;background:#162331;color:#fff;padding:8px;cursor:pointer}.appointment-calendar-event:hover{border-color:var(--orange)}.appointment-calendar-event span{font-size:11px;color:#a9d7f2}.appointment-calendar-event strong,.appointment-calendar-event small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appointment-calendar-event small{color:var(--muted)}.appointment-calendar-event.is-completed{border-left-color:var(--green)}.appointment-calendar-event.needs-attention{border-left-color:var(--orange)}.appointment-calendar-empty{padding:8px 2px;color:var(--muted);font-size:12px;text-align:center}
.appointment-calendar-title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.appointment-calendar-title-row .section-title{margin:0}.appointment-calendar-legend{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:10px}.appointment-calendar-legend span{white-space:nowrap}.appointment-calendar-legend i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px;background:#5ca8e6}.appointment-calendar-legend i.completed{background:var(--green)}.appointment-calendar-legend i.attention{background:var(--orange)}
.online-booking-reviews{margin:14px 0 4px;border:1px solid #42576b;border-radius:10px;background:#111c26}.online-booking-reviews>summary{padding:11px 13px;color:#fff;font-weight:800;cursor:pointer}.online-booking-reviews.has-unread>summary{color:#fff3d6;background:#2b2418}.online-booking-review-list{display:grid;gap:8px;padding:0 12px 12px}.online-booking-review-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;padding:11px;border:1px solid var(--line);border-radius:9px;background:#162331}.online-booking-review-item .booking-review-details{display:grid;gap:3px}.online-booking-review-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.online-booking-review-actions .btn{padding:7px 9px;font-size:12px}@media(max-width:760px){.online-booking-review-item{grid-template-columns:1fr}.online-booking-review-actions{justify-content:flex-start}}
@media(max-width:1100px){.appointment-calendar-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.appointment-calendar-day{border-bottom:1px solid var(--line)}}
@media(max-width:760px){.appointment-calendar-head{display:grid}.appointment-calendar-actions{display:grid;grid-template-columns:1fr 1fr 1fr}.appointment-calendar-actions .btn{min-width:0;padding-inline:8px}.appointment-calendar-grid{grid-template-columns:1fr}.appointment-calendar-day{min-height:0;border-right:0}.appointment-calendar-event strong,.appointment-calendar-event small{white-space:normal}.appointment-calendar-empty{text-align:left}}
.appointment-schedule-map-section{margin:16px 0;padding:0;overflow:hidden}.appointment-schedule-map-section>summary{display:flex;cursor:pointer;list-style:none;padding:14px 18px}.appointment-schedule-map-section>summary::-webkit-details-marker{display:none}.appointment-schedule-map-section>summary>span{display:flex;align-items:baseline;gap:10px}.appointment-schedule-map-section>summary small{color:var(--muted)}.appointment-schedule-map-section>summary:after{content:"▸";margin-left:auto;color:var(--muted)}.appointment-schedule-map-section[open]>summary{border-bottom:1px solid var(--line)}.appointment-schedule-map-section[open]>summary:after{content:"▾"}.schedule-map-controls{display:grid;grid-template-columns:auto auto minmax(240px,1fr);gap:12px;align-items:end;padding:14px 16px 8px}.schedule-map-controls label{display:grid;gap:4px;color:var(--muted);font-size:12px}.schedule-map-controls input{background:#0e151c;color:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 11px}.schedule-map-scope{display:flex;flex-wrap:wrap;gap:6px}.schedule-map-scope .btn{padding:8px 10px;font-size:12px}.schedule-map-scope .active{border-color:#5ca8e6;color:#bfe3fb}.appointment-schedule-map-layout{display:grid;grid-template-columns:minmax(250px,32%) minmax(0,1fr);gap:12px;padding:8px 16px 16px}.appointment-schedule-map{height:480px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#0e151c}.schedule-map-agenda{max-height:480px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:#0e151c}.schedule-map-day-title{position:sticky;top:0;z-index:2;padding:9px 11px;background:#172431;color:#fff;font-size:12px}.schedule-map-row{display:grid;grid-template-columns:66px minmax(0,1fr);gap:8px;width:100%;padding:10px;border:0;border-bottom:1px solid var(--line);background:transparent;color:#fff;text-align:left;cursor:pointer}.schedule-map-row:hover,.schedule-map-row.is-focused{background:#1c2d3b}.schedule-map-row.is-open{color:#f0c179}.schedule-map-row time{font-weight:800;color:#9ed5f5}.schedule-map-row.is-open time{color:#f0c179}.schedule-map-row small{display:block;color:var(--muted);margin-top:2px}.schedule-map-row.is-neighbor{outline:2px solid #f0c179;outline-offset:-2px}.schedule-map-marker{width:26px;height:26px;border:3px solid #cce9fb;border-radius:50%;display:grid;place-items:center;background:#397eab;color:#fff;font-size:11px;font-weight:900;box-shadow:0 2px 8px #000a}.schedule-map-marker.completed{background:var(--green);border-color:#b8f4d8}.schedule-map-marker.attention{background:var(--orange);border-color:#ffd0b9}.schedule-map-town-label{background:#08131ddd!important;border:1px solid #d9edf9!important;border-radius:5px!important;color:#fff!important;font-weight:900!important;font-size:13px!important;text-shadow:0 1px 2px #000!important;box-shadow:0 2px 6px #0008!important;padding:2px 6px!important}.schedule-map-town-label:before{display:none}.schedule-map-route-context{margin:0 16px 16px}.schedule-map-route-card{padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}#scheduleMapNotice{padding:0 16px}.schedule-map-missing{padding:12px;color:var(--muted)}
.schedule-map-neighbor .schedule-map-marker{outline:4px solid #f0c179;outline-offset:2px}
.schedule-map-candidate{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:6px!important;align-items:end}.schedule-map-candidate>label,.schedule-map-candidate>gmp-place-autocomplete,.schedule-map-candidate>span{grid-column:1/-1}.schedule-map-candidate .btn{grid-column:2;grid-row:1/3;align-self:end}.schedule-map-route-card.error{border-color:#9b4545}.schedule-map-route-card.warning{border-color:#9a7425}.schedule-map-route-total{margin-top:7px;font-weight:800;color:#bfe3fb}
.appointment-schedule-map-section{position:relative;z-index:0;isolation:isolate;overflow:visible}.appointment-schedule-map-section .schedule-map-controls{position:relative;z-index:1200;overflow:visible}.appointment-schedule-map-section .appointment-schedule-map-layout{position:relative;z-index:1}.schedule-map-candidate,.schedule-map-candidate gmp-place-autocomplete{position:relative;z-index:5000}.schedule-map-candidate gmp-place-autocomplete::part(prediction-list){z-index:5001}
.schedule-map-marker.candidate{width:30px;height:30px;background:#8a4fd0;border-color:#ead8ff;box-shadow:0 0 0 5px #8a4fd055,0 3px 10px #000b}.schedule-map-town-label.candidate{border-color:#ead8ff!important}.schedule-map-return{margin-top:10px}.best-slot-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch}.best-slot-map{align-self:stretch;white-space:nowrap}.best-appliance-choice{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.best-slot-row.is-unavailable{grid-template-columns:minmax(0,1fr)}.best-slot-row.is-unavailable .best-slot{cursor:not-allowed;opacity:.72;border-color:#7d8790}.best-slot-row.is-unavailable .best-slot strong{color:#d6b4aa}
.schedule-map-marker.base{width:30px;height:30px;background:#14202a;border-color:#ffb36d;color:#ffb36d;box-shadow:0 0 0 4px #ff6b0044,0 3px 10px #000b}.schedule-map-town-label.base{border-color:#ffb36d!important;color:#ffd2a8!important}
@media(max-width:900px){.schedule-map-controls{grid-template-columns:1fr 1fr}.schedule-map-scope,.schedule-map-candidate{grid-column:1/-1}.appointment-schedule-map-layout{grid-template-columns:1fr}.schedule-map-agenda{max-height:320px}.appointment-schedule-map{height:420px}}
@media(max-width:560px){.schedule-map-controls{grid-template-columns:1fr}.schedule-map-scope,.schedule-map-candidate{grid-column:auto}.schedule-map-scope{display:grid;grid-template-columns:1fr 1fr}.appointment-schedule-map{height:360px}.appointment-schedule-map-layout{padding-inline:10px}}
@media(max-width:560px){.best-slot-row,.best-appliance-choice{grid-template-columns:1fr}.best-slot-map{width:100%}}
.appointment-calendar-day>header{padding:0}.appointment-calendar-day-focus{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px;border:0;background:transparent;color:inherit;cursor:pointer;text-align:left}.appointment-calendar-day.is-focused-day{box-shadow:inset 0 0 0 2px #b98cff}.appointment-calendar-day.is-focused-day>header{background:#302241;color:#f1e6ff}.appointment-calendar-event.is-map-focused{outline:2px solid #ead8ff;outline-offset:1px;border-color:#b98cff}
.schedule-map-controls{grid-template-columns:minmax(220px,.7fr) minmax(280px,1.3fr)}.schedule-map-calendar-context{display:flex;justify-content:space-between;align-items:end;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#111b24}.schedule-map-calendar-context>span{display:grid;gap:3px}.schedule-map-calendar-context small{color:var(--muted)}.single-address-autocomplete-ready input[hidden]{display:none!important}.appointment-schedule-map-layout{grid-template-columns:minmax(300px,36%) minmax(0,1fr)}.schedule-map-day+.schedule-map-day{border-top:2px solid var(--line)}.schedule-map-day-title{display:block;width:100%;border:0;font-size:13px;font-weight:800;padding:10px 12px;text-align:left;cursor:pointer}.schedule-map-day.is-active-day{box-shadow:inset 3px 0 #b98cff}.schedule-map-day.is-active-day .schedule-map-day-title{background:#302241;color:#f1e6ff}.schedule-map-row{grid-template-columns:minmax(150px,auto) minmax(0,1fr);gap:10px;padding:11px}
.schedule-map-daily-total{padding:8px 12px;border-bottom:1px solid var(--line);background:#12202a;color:#bfe3fb;font-size:12px;font-weight:800}.schedule-map-travel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:7px 12px;border-bottom:1px solid #263848;background:#0b1218;color:var(--muted);font-size:11px}.schedule-map-travel span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-map-travel strong{color:#8ec8e8;white-space:nowrap}.schedule-map-open-travel{color:#e6c282!important;font-weight:700}.leaflet-interactive.schedule-map-route-line{stroke-linecap:round;stroke-linejoin:round}
@media(max-width:900px){.schedule-map-controls{grid-template-columns:1fr}.appointment-schedule-map-layout{grid-template-columns:1fr}.schedule-map-agenda{max-height:360px}}
@media(max-width:560px){.schedule-map-calendar-context{display:grid}.schedule-map-row,.schedule-map-travel{grid-template-columns:1fr}.schedule-map-travel strong{white-space:normal}}
.appointment-search-panel .appointment-filters{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px}.appointment-search-panel label{font-size:12px}.appointment-search-panel select{min-height:42px}.appointment-search-row{grid-template-columns:minmax(240px,1fr) auto auto}.appointment-search-row .btn{min-height:42px}.appointment-summary{margin:14px 0}.appointment-summary>summary{font-size:18px;font-weight:800;cursor:pointer;min-height:44px;display:flex;align-items:center}.appointment-summary[open]>summary{margin-bottom:14px}.active-filter-chips,#appointmentActiveFilters{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.appointment-list-card{margin-top:14px}.appointment-display-count{font-weight:700;margin-bottom:12px}.appointment-pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:16px}.appointment-mobile-cards{display:none}.appointment-mobile-card{width:100%;text-align:left;color:inherit;background:var(--panel3);border:1px solid var(--line);border-radius:12px;padding:14px;display:grid;gap:7px;min-height:44px}.appointment-card-time{color:#8ec8e8;font-weight:750}.appointment-card-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
#businessAppointmentSummary{margin:16px 0}#businessAppointmentSummary:empty{display:none}#businessAppointmentSummary .appointment-summary{margin:0}
@media(max-width:760px){.appointment-search-panel .appointment-filters{grid-template-columns:1fr 1fr}.appointment-search-row{grid-template-columns:1fr}.appointment-search-row #appointmentSearchClear{display:none}.appointment-summary:not([open]){padding-bottom:12px}.appointment-desktop-table{display:none}.appointment-mobile-cards{display:grid;gap:10px}.appointment-pagination .btn{min-height:44px}.appointment-list-card{padding:12px}}
@media(max-width:430px){.appointment-search-panel .appointment-filters{grid-template-columns:1fr}.appointment-search-panel select,.appointment-search-panel input,.appointment-search-panel .btn{min-height:44px;font-size:16px}.appointment-tabs{overflow-x:auto}.appointment-pagination{justify-content:space-between}.appointment-pagination .btn{min-width:96px}}
#appointments{min-width:0;overflow-x:hidden}.appointment-search-panel,.appointment-search-panel *{min-width:0}.appointment-search-panel .appointment-filters{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}.appointment-search-panel .appointment-filters label{width:100%;overflow:hidden}.appointment-search-panel input,.appointment-search-panel select{box-sizing:border-box;width:100%;max-width:100%}.appointment-search-panel #appointmentActiveFilters{max-width:100%}.filter-chip{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1100px){.appointment-search-panel .appointment-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.appointment-search-panel .appointment-filters{grid-template-columns:1fr}.appointment-search-row{grid-template-columns:1fr}.appointment-search-row .btn{width:100%}.appointment-custom-dates,#appointmentCustomDates{grid-template-columns:1fr!important}.appointment-pagination{display:grid;grid-template-columns:1fr auto 1fr}.appointment-pagination .btn{width:100%;min-width:0}}
.session-controls{display:grid;gap:8px;margin-top:auto;padding-top:12px;color:var(--muted);font-size:11px}.session-controls .btn{padding:7px 9px}.field-entry-group{margin:0;border:1px solid var(--line);border-radius:12px;padding:13px}.field-entry-group legend{padding:0 7px;font-weight:750;color:#fff}.login-page{min-height:100vh;display:grid;place-items:center;background:#080d12;padding:18px}.login-card{width:min(430px,100%);background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:26px;box-shadow:0 24px 70px #0008}.login-card h1{margin:24px 0 8px}.login-card>p{color:var(--muted);line-height:1.5;margin:0 0 22px}
@media(max-width:760px){button,.btn,input,select,textarea{min-height:44px}.modal{padding:0;align-items:stretch}.modal-box{width:100%;max-height:100vh;border-radius:0;padding:16px 14px 88px}.modal-head{position:sticky;top:-16px;z-index:5;background:#10171f;padding:16px 0 12px}.local-form{gap:16px}.local-form textarea{min-height:120px}.form-actions{display:grid;grid-template-columns:1fr 1fr}.form-actions .btn{width:100%}.mobile-sticky-actions{position:sticky;bottom:-72px;z-index:6;background:#10171f;border-top:1px solid var(--line);padding:12px 0 env(safe-area-inset-bottom)}.today-search{position:sticky;top:0;z-index:15;background:var(--bg);padding:7px 0}.today-row{padding:17px 4px}.today-row-actions .btn{flex:1}.header>div:last-child{width:100%;flex-wrap:wrap}.header .btn{flex:1}.session-controls{display:flex;align-items:center;justify-content:space-between}.login-card{padding:22px 18px}}

/* Phone field interface. Desktop rules above remain unchanged. */
.mobile-topbar,.mobile-nav-backdrop,.mobile-only{display:none}
@media(max-width:820px){
 html,body{max-width:100%;overflow-x:hidden;font-size:16px}
 body{padding-top:64px}
 .app{display:block;min-width:0;width:100%}
 .mobile-topbar{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:10px;position:fixed;inset:0 0 auto 0;height:64px;padding:8px 12px;padding-top:max(8px,env(safe-area-inset-top));background:#090e13;border-bottom:1px solid var(--line);z-index:60}
 .mobile-topbar .logo{font-size:21px;margin:0}.mobile-topbar #mobilePageTitle{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:14px}
 .mobile-menu-button{display:flex;align-items:center;gap:7px;min-width:88px;min-height:46px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:#fff;font-weight:800;padding:0 12px}
 .mobile-menu-button span:first-child{font-size:22px;line-height:1}
 .sidebar{display:flex;flex-direction:column;position:fixed;z-index:70;left:0;top:0;bottom:0;width:min(86vw,340px);height:100dvh;padding:20px 16px max(20px,env(safe-area-inset-bottom));border-right:1px solid var(--line);border-bottom:0;transform:translateX(-105%);transition:transform .2s ease;overflow-y:auto;box-shadow:18px 0 50px #000a}
 body.mobile-nav-open .sidebar{transform:translateX(0)}
 .mobile-nav-backdrop{display:block;position:fixed;z-index:65;inset:0;border:0;background:#0009;opacity:0;visibility:hidden;transition:.2s}
 body.mobile-nav-open .mobile-nav-backdrop{opacity:1;visibility:visible}
 body.mobile-nav-open{overflow:hidden}
 .sidebar>.logo{font-size:25px;margin:2px 8px 15px}.nav{display:grid;overflow:visible;gap:5px}.nav button{width:100%;min-height:48px;padding:12px 13px;font-size:16px;white-space:normal}.side-note{display:none}
 .main{width:100%;min-width:0;padding:18px 12px calc(50px + env(safe-area-inset-bottom))}
 .header{display:grid;gap:12px;margin-bottom:16px}.header h1{font-size:25px}.header p{font-size:15px}.header>div:last-child{display:flex!important;width:100%;gap:8px!important}.header .btn{flex:1 1 140px}
 .card{min-width:0;padding:15px;border-radius:13px;margin-bottom:12px}.grid{gap:12px}.kpis,.today-kpis{grid-template-columns:1fr 1fr}.kpi-value{font-size:26px}.kpi-label{font-size:11px}
 .today-search{top:64px;padding:6px 0;z-index:20}.today-search>input{min-height:50px;font-size:16px}.today-primary,.two,.three,.profile-layout{grid-template-columns:1fr}.today-row{grid-template-columns:1fr;gap:9px;padding:16px 2px}.today-time{font-size:16px}.today-row-meta{display:grid;grid-template-columns:repeat(2,minmax(0,max-content));gap:6px}.today-row-actions{grid-column:auto}.today-row-actions .btn{min-height:44px;font-size:14px}.section-title{font-size:18px}.section-title:has(>h2),.section-title{flex-wrap:wrap}.section-title>div{width:100%}.section-title select,.section-title .btn{margin-top:7px;min-height:44px}
 .mobile-only{display:block}.mobile-briefing-toggle{width:100%;margin:4px 0 14px}.briefing-secondary{display:none}.briefing-secondary.mobile-expanded{display:block}
 .searchbar{display:grid;grid-template-columns:1fr 1fr;gap:9px}.searchbar input{grid-column:1/-1;min-width:0;font-size:16px}.searchbar select{min-width:0;width:100%}.searchbar .btn{width:100%}
 #customers .table-wrap{overflow:visible;border:0}#customers table{display:block;min-width:0}#customers thead{display:none}#customerRows{display:grid;gap:10px}#customerRows tr{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:#101923;border:1px solid var(--line);border-radius:12px;padding:13px}#customerRows td{display:block;padding:0;border:0;min-width:0;overflow-wrap:anywhere;font-size:14px}#customerRows td:first-child{grid-column:1/-1;font-size:17px}#customerRows td:nth-child(2),#customerRows td:nth-child(3),#customerRows td:nth-child(5){grid-column:1/-1}#customerRows td:nth-child(2):before{content:"Contact";display:block;color:var(--muted);font-size:11px}#customerRows td:nth-child(3):before{content:"Address";display:block;color:var(--muted);font-size:11px}#customerRows td:nth-child(4):before{content:"Town";display:block;color:var(--muted);font-size:11px}#customerRows td:nth-child(5):before{content:"Appliance";display:block;color:var(--muted);font-size:11px}#customerRows td:nth-child(6):before{content:"Last service";display:block;color:var(--muted);font-size:11px}#customerRows td:nth-child(8),#customerRows td:nth-child(9){display:none}.pager{align-items:stretch;flex-direction:column}.pager-controls{display:grid;grid-template-columns:1fr 1fr}.pager-controls .btn{width:100%}
 #appointments>.card:last-of-type{padding:0;background:transparent;border:0;box-shadow:none}#appointments .table-wrap{overflow:visible;border:0}#appointments table{display:block;min-width:0}#appointments thead{display:none}#appointmentRows{display:grid;gap:10px}#appointmentRows tr{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:#101923;border:1px solid var(--line);border-radius:12px;padding:14px}#appointmentRows td{display:block;padding:0;border:0;min-width:0;overflow-wrap:anywhere}#appointmentRows td:nth-child(3),#appointmentRows td:nth-child(4),#appointmentRows td:nth-child(5){grid-column:1/-1}#appointmentRows td:first-child:before{content:"Date";display:block;color:var(--muted);font-size:11px}#appointmentRows td:nth-child(2):before{content:"Time";display:block;color:var(--muted);font-size:11px}#appointmentRows td:nth-child(3):before{content:"Customer";display:block;color:var(--muted);font-size:11px}#appointmentRows td:nth-child(4):before{content:"Service";display:block;color:var(--muted);font-size:11px}#appointmentRows td:nth-child(5):before{content:"Value / location";display:block;color:var(--muted);font-size:11px}
 .profile-name{font-size:23px}.stat{font-size:14px}.event{grid-template-columns:1fr}.history-entry .event-date{padding-top:6px}.history-entry .event-body{border-radius:0 10px 10px 0;padding:13px}.history-details{font-size:15px;line-height:1.5}.history-actions summary{min-height:44px;display:flex;align-items:center}.history-action-buttons{display:grid;grid-template-columns:1fr 1fr}.history-action-buttons .btn{min-height:44px}
 .form-grid,.financial-review{grid-template-columns:1fr}.local-form label{font-size:14px}.local-form input,.local-form select,.local-form textarea{font-size:16px;min-height:48px}.local-form textarea{min-height:130px}.form-actions{display:grid;grid-template-columns:1fr 1fr}.form-actions .btn{min-height:48px;font-size:16px}
 .table-wrap:not(#customers .table-wrap):not(#appointments .table-wrap){max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}table{max-width:100%}
 #profileContent .profile-primary-actions{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch}
 #profileContent .profile-primary-actions>.form-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;min-width:0}
 #profileContent .profile-primary-actions .btn{width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere}
 #profilePartsHistory .table-wrap{overflow:visible;border:0}
 #profilePartsHistory table{display:block;width:100%;min-width:0}
 #profilePartsHistory thead{display:none}
 #profilePartsHistory tbody{display:grid;gap:12px}
 #profilePartsHistory tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 14px;width:100%;min-width:0;padding:14px;background:var(--panel3);border:1px solid var(--line);border-radius:12px}
 #profilePartsHistory td{display:block;min-width:0;padding:0;border:0;overflow-wrap:anywhere;word-break:normal}
 #profilePartsHistory td:nth-child(2),#profilePartsHistory td:nth-child(8),#profilePartsHistory td:nth-child(9){grid-column:1/-1}
 #profilePartsHistory td:before{display:block;margin-bottom:3px;color:var(--muted);font-size:11px;font-weight:650}
 #profilePartsHistory td:nth-child(1):before{content:"Date"}#profilePartsHistory td:nth-child(2):before{content:"Part"}#profilePartsHistory td:nth-child(3):before{content:"Condition"}#profilePartsHistory td:nth-child(4):before{content:"Source type"}#profilePartsHistory td:nth-child(5):before{content:"Part manufacturer"}#profilePartsHistory td:nth-child(6):before{content:"Appliance"}#profilePartsHistory td:nth-child(7):before{content:"Status"}#profilePartsHistory td:nth-child(8):before{content:"Notes"}
 #profilePartsHistory td:last-child .btn{width:100%}
}
@media(min-width:821px){.briefing-secondary{display:block!important}}
@media(max-width:390px){.kpis,.today-kpis{grid-template-columns:1fr}.searchbar{grid-template-columns:1fr}.searchbar input{grid-column:auto}#customerRows tr,#appointmentRows tr{grid-template-columns:1fr}#customerRows td,#appointmentRows td{grid-column:1!important}.form-actions,.history-action-buttons{grid-template-columns:1fr}}
/* Fast field appointment workflow */
.field-appointment{max-width:850px;margin:auto}.appointment-job-header{display:grid;gap:12px;margin-bottom:16px}.appointment-job-header h3{margin:0}.appointment-time{font-size:1.1rem;font-weight:700}.appointment-contact-actions,.job-checks,.save-job-row{display:flex;gap:10px;flex-wrap:wrap}.job-update-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.appliance-picker{margin:16px 0;padding:14px;border:1px solid var(--border);border-radius:12px}.advanced-accounting,.wix-secondary{margin-top:16px;padding:12px;border:1px solid var(--border);border-radius:10px}.advanced-accounting summary,.wix-secondary summary{cursor:pointer;font-weight:700;min-height:44px;display:flex;align-items:center}.visit-completion-picker{margin-top:18px;padding:14px;border:1px solid var(--line);border-radius:12px}.visit-completion-picker label{display:grid;gap:6px}.visit-completion-picker.validation-error{border-color:var(--red);box-shadow:0 0 0 2px #ff747438}.save-job-row{justify-content:flex-end;margin-top:12px}.save-job-row .btn{min-height:48px;min-width:190px}.job-update-form input,.job-update-form select,.job-update-form textarea{min-height:44px}
@media(max-width:430px){.field-appointment{width:100%}.appointment-job-header,.job-update-grid{grid-template-columns:1fr}.appointment-contact-actions .btn{flex:1 1 130px;min-height:44px}.job-checks{display:grid;grid-template-columns:1fr}.save-job-row{position:sticky;bottom:0;background:var(--panel);padding:10px 0;z-index:2}.save-job-row .btn{width:100%;min-height:52px}.managed-wix{font-size:.9rem}}
@media(max-width:390px){.field-appointment{font-size:16px}.appliance-picker{padding:10px}}
@media(max-width:360px){.appointment-contact-actions{display:grid;grid-template-columns:1fr}.appointment-contact-actions .btn{width:100%}}
@media(max-width:430px){#profileContent .profile-primary-actions>.form-actions{grid-template-columns:minmax(0,1fr)}}
/* HearthIQ Manual appointment workflow */
.profile-primary-actions{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.readonly-customer{display:grid;gap:5px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}.readonly-customer strong{font-size:18px}.readonly-customer span{color:var(--muted)}.customer-picker-results{display:grid;gap:9px;max-height:52vh;overflow:auto}.customer-picker-card{display:grid;gap:4px;width:100%;min-height:72px;padding:12px;text-align:left;border:1px solid var(--line);border-radius:11px;background:var(--panel2);color:#fff;cursor:pointer}.customer-picker-card:hover{border-color:var(--orange)}.customer-picker-card span,.customer-picker-card small{color:var(--muted)}.manual-management{margin:0 0 14px}.danger{border-color:#9b4545;color:#ffb0b0}
.wix-schedule-status{margin-top:5px;color:var(--muted)}.wix-schedule-status.is-conflict{color:#ffb0b0}.appointment-list-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.appointment-reschedule-action{padding:5px 9px;font-size:12px}.wix-reschedule-conflict{display:grid;gap:6px}
.appointment-flow-steps{display:flex;gap:8px;align-items:center;overflow-x:auto;padding-bottom:4px;color:var(--muted);font-size:12px}.appointment-flow-steps>*{white-space:nowrap}.appointment-flow-steps>*+*:before{content:"›";margin-right:8px;color:var(--line)}.appointment-flow-steps strong{color:var(--orange)}.manual-no-customer{display:grid;gap:12px}.manual-no-customer .btn{justify-self:start}.manual-appliance-step{margin:0;border:1px solid var(--line);border-radius:12px;padding:13px}.manual-appliance-step legend{padding:0 7px;font-weight:750}.manual-add-appliance{margin-top:10px}.manual-add-appliance>summary{cursor:pointer;font-weight:700}.manual-add-appliance .form-grid{margin:12px 0}.manual-customer-create .span-2{grid-column:1/-1}#manualDuplicateCandidates{display:grid;gap:9px}
.manual-customer-path{display:grid;gap:10px}.manual-customer-path>strong{text-transform:uppercase;letter-spacing:.05em;font-size:12px;color:var(--muted)}.manual-customer-path .btn{justify-self:start}.manual-customer-or{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:11px;font-weight:800}.manual-customer-or:before,.manual-customer-or:after{content:"";height:1px;flex:1;background:var(--line)}
.address-autocomplete-field{display:grid;gap:7px;min-width:0}.address-autocomplete-field gmp-place-autocomplete{display:block;width:100%;min-height:48px;color-scheme:dark;position:relative;z-index:2}.address-autocomplete-label{font-size:13px}.address-autocomplete-status{color:var(--green);overflow-wrap:anywhere}.address-autocomplete-status.unavailable{color:var(--yellow)}.address-autocomplete-field label{margin-top:5px}.modal:has(gmp-place-autocomplete){overflow-y:auto;align-items:flex-start}.modal:has(gmp-place-autocomplete) .modal-box{max-height:none;overflow:visible;margin:auto}
.address-distance{padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:var(--panel3)}.address-distance.available{color:var(--green);border-color:#285d50}.address-distance.loading{color:var(--muted)}.address-distance.unavailable{color:var(--muted)}
.parts-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,280px);gap:12px;margin-bottom:16px}.parts-toolbar input,.parts-toolbar select{width:100%;box-sizing:border-box}.parts-table{min-width:1050px}.parts-subform{padding:14px;margin:10px 0;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}.parts-subform .remove-subrow{margin-top:10px}.span-2{grid-column:span 2}.part-detail h3,#partForm h3{margin-top:20px}.part-detail .form-actions,#partForm .form-actions{margin-top:18px}.parts-catalog-section{margin-top:16px;padding:0;overflow:hidden}.parts-catalog-section>summary{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;cursor:pointer;list-style:none}.parts-catalog-section>summary::-webkit-details-marker{display:none}.parts-catalog-section>summary>span:first-child{display:grid;gap:4px}.parts-catalog-section>summary strong{font-size:18px}.parts-catalog-section>summary small{color:var(--muted)}.catalog-summary-action{color:var(--orange);font-weight:750}.parts-catalog-section[open] .catalog-summary-action{font-size:0}.parts-catalog-section[open] .catalog-summary-action:after{content:"Close catalog";font-size:14px}.catalog-content{padding:0 20px 20px;border-top:1px solid var(--line)}.parts-catalog-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:16px 0}.parts-catalog-head p{margin:0}
.customer-part-form{gap:18px}.customer-part-form .form-grid{gap:15px 18px}.customer-part-form label{font-size:13px;font-weight:700;color:var(--text)}.customer-part-form input,.customer-part-form select,.customer-part-form textarea{margin-top:2px;font-weight:400}.customer-part-form textarea{min-height:110px;line-height:1.45}.customer-part-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.customer-part-form>.form-actions{margin-top:0}
.historical-parts-review{margin-top:16px}.historical-parts-report{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:14px 0}.historical-parts-report>div{display:grid;gap:3px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}.historical-parts-report strong{font-size:22px}.historical-parts-report span{font-size:12px;color:var(--muted)}#historicalPartsReview{display:grid;gap:12px}.historical-part-card{padding:15px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}.historical-part-card-head,.historical-detection{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.historical-detection{margin-top:12px}.historical-date{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:10px;color:var(--muted);font-size:13px}.historical-date strong{color:var(--text)}.historical-part-card blockquote,#editHistoricalPartForm blockquote{margin:12px 0;padding:10px 12px;border-left:3px solid var(--orange);background:#0d151c;white-space:pre-wrap}.historical-part-card details p{white-space:pre-wrap}.historical-part-card .form-actions{margin-top:12px}
.confirmed-parts-results{margin-top:0;border-color:#314354;background:linear-gradient(145deg,#111b24,#0e151d)}.confirmed-parts-filters{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr)) auto;gap:10px;align-items:end;margin:14px 0}.confirmed-parts-filters label{display:grid;gap:5px;color:var(--muted);font-size:12px}.confirmed-parts-filters input,.confirmed-parts-filters select{width:100%;box-sizing:border-box}.confirmed-parts-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}.confirmed-parts-kpis button{display:grid;gap:3px;padding:16px;text-align:left;color:inherit;border:1px solid var(--line);border-radius:12px;background:#16222d}.confirmed-parts-kpis button:not(:disabled){cursor:pointer;border-color:#385064}.confirmed-parts-kpis button:not(:disabled):hover{border-color:var(--orange)}.confirmed-parts-kpis strong{font-size:30px}.confirmed-parts-kpis span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.confirmed-parts-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.confirmed-parts-groups>section,.confirmed-parts-drilldown{padding:15px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}.confirmed-parts-groups h3{margin:0 0 10px}.confirmed-group-list{display:grid;gap:5px;max-height:280px;overflow:auto}.confirmed-group-row{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:10px;text-align:left;color:inherit;background:var(--panel3);border:1px solid transparent;border-radius:8px;cursor:pointer}.confirmed-group-row>span{display:grid;gap:3px}.confirmed-group-row small{display:block;color:var(--muted);font-size:11px;font-weight:400}.confirmed-group-row>strong{min-width:34px;text-align:center;padding:3px 8px;border-radius:999px;background:#263747;color:#bde5ff}.confirmed-group-row:hover,.confirmed-group-row:focus{border-color:var(--orange)}.confirmed-more-breakdowns{grid-column:1/-1;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}.confirmed-more-breakdowns>summary{padding:14px;cursor:pointer;font-weight:750}.confirmed-more-breakdowns>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0 14px 14px}.confirmed-more-breakdowns section{padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel3)}.confirmed-parts-drilldown{margin-top:14px}.confirmed-drilldown-list{display:grid;gap:10px}.confirmed-drilldown-list article{padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel3)}.confirmed-drilldown-list blockquote{margin:8px 0 0;padding:8px 10px;border-left:3px solid var(--orange);white-space:pre-wrap}
.confirmed-brand-parts{grid-column:1/-1}.confirmed-brand-parts-head p{margin:4px 0 12px}.brand-parts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:12px}.brand-parts-grid>article{padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel3)}.brand-parts-grid h4{margin:0 0 8px;text-align:center;color:#bde5ff}.brand-part-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line)}.brand-part-row>button{padding:0;text-align:left;color:inherit;background:none;border:0;cursor:pointer}.brand-part-row>button:hover b,.brand-part-row>button:focus b{color:var(--orange)}.brand-part-row>button span,.brand-part-price{display:grid;gap:2px}.brand-part-row small{color:var(--muted);font-size:11px}.brand-part-price{text-align:right}.brand-part-price a{font-size:11px;color:#8ec8e8}
@media(max-width:760px){.profile-primary-actions{display:grid}.profile-primary-actions>.form-actions{width:100%}.manual-appointment-form{grid-template-columns:1fr}.customer-picker-card{min-height:88px;font-size:16px}.manual-customer-create .span-2{grid-column:auto}.appointment-flow-steps{margin-inline:-2px}}
.best-appointment-results{display:grid;gap:14px;margin:16px 0}.best-appointment-results section{display:grid;gap:8px}.best-appointment-results h3{margin:4px 0}.best-slot{width:100%;text-align:left}.best-slot span,.best-slot small{display:block}
@media(max-width:760px){.parts-toolbar{grid-template-columns:1fr}.span-2{grid-column:auto}.parts-table{min-width:920px}}
@media(max-width:760px){.customer-part-form .span-2{grid-column:auto}.customer-part-tools{align-items:stretch;flex-direction:column}.customer-part-tools .btn{width:100%}}
@media(max-width:760px){.historical-parts-report{grid-template-columns:1fr 1fr}.historical-part-card-head,.historical-detection{display:grid}.historical-part-card .form-actions{display:grid;grid-template-columns:1fr}.historical-part-card .btn{min-height:44px}}
@media(max-width:900px){.confirmed-parts-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.confirmed-parts-groups{grid-template-columns:1fr}.confirmed-more-breakdowns{grid-column:auto}.confirmed-more-breakdowns>div{grid-template-columns:1fr}}
@media(max-width:760px){.confirmed-parts-kpis{grid-template-columns:1fr 1fr}.confirmed-parts-filters{grid-template-columns:1fr}.confirmed-group-row{min-height:44px}.confirmed-parts-results{padding:12px}.parts-catalog-section>summary,.catalog-content{padding-left:14px;padding-right:14px}.parts-catalog-head{align-items:stretch;flex-direction:column}.parts-catalog-head .btn{width:100%}}
.historical-date .historical-date-warning{color:#ffbf69}
.historical-review-filters{display:grid;grid-template-columns:minmax(260px,2fr) repeat(3,minmax(150px,1fr));gap:10px;margin:14px 0}.historical-review-filters label{display:grid;gap:5px;color:var(--muted);font-size:12px}.historical-review-filters input,.historical-review-filters select{box-sizing:border-box;width:100%}
@media(max-width:900px){.historical-review-filters{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.historical-review-filters{grid-template-columns:1fr}}
.readonly-intake-note{border-left:3px solid var(--orange);background:var(--panel-2,#101a22);padding:14px 16px;margin:14px 0;white-space:pre-wrap;overflow-wrap:anywhere}
.readonly-intake-note p{margin:8px 0}
.staging-customer-detail{border:1px solid var(--border);border-radius:12px;padding:16px;margin:14px 0;background:var(--panel)}
.staging-customer-detail>header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.staging-contact-grid,.staging-detail-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:12px 0}
.staging-customer-detail details{margin-top:12px}.staging-full-note{white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0;padding:12px;background:var(--panel-2,#101a22);border-radius:8px}

/* Morning Briefing — compact appointment rows (desktop/tablet)
   Keeps all appointment data while reducing excess vertical whitespace. */
@media(min-width:821px){
  .today-row{
    grid-template-columns:82px minmax(130px,.75fr) minmax(175px,1fr) minmax(220px,1.35fr) 210px 220px;
    gap:12px;
    padding:10px 0;
    align-items:start;
  }
  .today-customer,.today-service,.today-location{
    line-height:1.25;
    min-width:0;
    overflow-wrap:anywhere;
  }
  .today-location .small{
    line-height:1.3;
  }
  .today-service .today-warnings{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
  .today-row-meta{
    flex-direction:row;
    flex-wrap:wrap;
    align-items:center;
    align-content:start;
    gap:3px 5px;
    line-height:1.2;
  }
  .today-row-meta > .tag{
    margin:0;
    padding:4px 7px;
  }
  .today-row-meta > div{
    flex-basis:100%;
  }
  .today-row-meta > .small{
    line-height:1.25;
    margin:0;
  }
  .today-row-actions{
    gap:6px;
    align-content:start;
    justify-content:end;
  }
  .today-row-actions .btn{
    padding:6px 8px;
  }
  .distance-from-base{
    margin-top:2px;
  }
}
@media(min-width:821px) and (max-width:1200px){
  .today-row{grid-template-columns:72px minmax(130px,.8fr) minmax(170px,1fr) minmax(190px,1.1fr) 170px}
  .today-row-actions{grid-column:2/-1}
}

/* Respond to the appointment card's usable width, including sidebar and zoom. */
#todayUpcoming{container-type:inline-size}
@container(max-width:920px){
  #todayUpcoming .today-row{
    grid-template-columns:82px minmax(0,1fr);
    gap:8px 14px;
  }
  #todayUpcoming .today-customer,
  #todayUpcoming .today-service,
  #todayUpcoming .today-location,
  #todayUpcoming .today-row-meta,
  #todayUpcoming .today-row-actions{
    grid-column:2;
    min-width:0;
  }
  #todayUpcoming .today-row-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  #todayUpcoming .today-row-actions .btn{
    width:100%;
    min-width:0;
    white-space:normal;
  }
}

/* Morning Briefing — consistent spacing between major dashboard rows */
#today > .grid + .grid,
#today > .card + .grid,
#today > .grid + .card,
#today > .card + .card{
  margin-top:16px;
}

/* Morning Briefing — exact section spacing based on index.html structure */
@media(min-width:821px){
  /* Gap between Today/Needs Attention and Upcoming Appointments */
  #today > .today-primary{
    margin-bottom:16px;
  }

  /* Gap between Upcoming Appointments and the secondary briefing section */
  #today > .card:has(#todayUpcoming){
    margin-bottom:16px;
  }

  /* The actual issue: consecutive two-column rows inside briefingSecondary */
  #briefingSecondary > .grid + .grid{
    margin-top:16px;
  }
}

/* Business charts — make Work Activity and Revenue visually identical */
#business .business-chart{
  width:100%;
  height:260px;
  min-height:260px;
  padding:28px 14px 42px;
  gap:10px;
  overflow-x:auto;
  overflow-y:hidden;
  align-items:flex-end;
}

#business .business-chart-group{
  height:175px;
  min-width:58px;
  flex:1 0 58px;
}

/* Keep both chart cards full width, regardless of their parent wrapper */
#business > .card:has(#monthlyChart),
#business .business-lower > .card:has(#monthlyRevenueChart){
  width:100%;
  max-width:none;
  min-width:0;
}

/* Revenue card and interpretation card stack cleanly like the upper chart */
#business .business-lower{
  display:block;
  width:100%;
}

#business .business-lower > .card + .card{
  margin-top:16px;
}

.needed-parts-picker{margin:12px 0;padding:12px;border:1px solid var(--orange);border-radius:10px}
.needed-parts-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;margin-top:8px}
.needed-parts-options .checkbox-label{margin:0;padding:8px;background:var(--panel2);border-radius:8px}

.historical-review-reason{display:grid;gap:3px;margin-top:12px;padding:10px 12px;border-left:3px solid var(--orange);background:rgba(240,139,45,.08);font-size:13px}.historical-review-reason span{color:var(--muted)}
.historical-date-choices{margin-top:12px;padding:12px;border:1px solid var(--orange);border-radius:10px;background:var(--panel)}.historical-date-choices .form-actions{margin-top:8px}.historical-date-choices>.small{display:block;margin-top:8px}
.planned-parts-needed{margin:16px 0;padding:14px;border:1px solid var(--orange);border-radius:12px;background:rgba(240,139,45,.05)}.planned-parts-needed:empty{display:none}.planned-part-card{margin-top:10px;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}.planned-part-card blockquote{margin:12px 0 0;padding:10px 12px;border-left:3px solid var(--orange);background:#0d151c;white-space:pre-wrap}.planned-part-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}

/* Parts Intelligence only — Northeast slate palette */
body:has(#parts.active:not([data-parts-theme])) .main,
body:has(#parts.active[data-parts-theme="northeast"]) .main{
  background:linear-gradient(155deg,#172a3a 0%,#22394b 48%,#192d3d 100%);
}

#parts{
  --panel:#324a5f;
  --panel2:#41586b;
  --panel3:#263e51;
  --line:#71879a;
  --text:#fafafa;
  --muted:#c0ced8;
  --orange:#e8752b;
  --orange2:#f39a61;
  --green:#91d0ad;
  --blue:#79bce8;
  color:var(--text);
}

#parts .card{
  background:linear-gradient(145deg,#324a5f,#2a4357);
  border-color:#71879a;
  box-shadow:0 14px 35px rgba(10,27,40,.2);
}

#parts .confirmed-parts-results{
  background:linear-gradient(145deg,#41586b,#344f63);
  border-color:#8295a5;
}

#parts .confirmed-parts-kpis button,
#parts .confirmed-parts-groups>section,
#parts .confirmed-parts-drilldown,
#parts .confirmed-more-breakdowns,
#parts .historical-parts-report>div,
#parts .historical-part-card,
#parts .parts-subform{
  background:#526879;
}

#parts .brand-parts-grid>article,
#parts .confirmed-group-row,
#parts .confirmed-more-breakdowns section,
#parts .confirmed-drilldown-list article{
  background:#263e51;
}

#parts .brand-parts-grid h4,
#parts .confirmed-group-row>strong{
  color:#d8efff;
}

#parts .confirmed-group-row>strong{
  background:#39596f;
}

#parts input:not([type="checkbox"]):not([type="radio"]),
#parts select,
#parts textarea{
  background:#e8e2d4;
  color:#172433;
  border-color:#8ea0ad;
}

#parts input::placeholder,
#parts textarea::placeholder{
  color:#60717e;
}

#parts th{
  background:#294358;
  color:#d7e1e8;
}

#parts .clickrow:hover td{
  background:#3c586c;
}

#parts .btn.secondary{
  background:#405b70;
  border-color:#8295a5;
}

#parts .btn.ghost{
  color:#e1e9ee;
  border-color:#8fa1af;
}

#parts .notice,
#parts .historical-part-card blockquote,
#parts #editHistoricalPartForm blockquote,
#parts .planned-part-card blockquote{
  background:#294358;
}

#parts .tag{
  background:#385369;
}

#parts a,
#parts .brand-part-price a,
#parts .history-link{
  color:#a9d9f5;
}

/* Booking customer summaries need content-sized rows inside the scroll area. */
.manual-customer-lookup .customer-picker-results{grid-template-columns:minmax(0,1fr);grid-auto-rows:max-content;gap:8px;align-content:start;align-items:start}
.manual-customer-lookup .customer-picker-card{min-height:92px;height:auto;max-height:none;padding:10px 12px;gap:4px;grid-auto-rows:max-content;align-content:start;line-height:1.4;white-space:normal;overflow:visible}
.manual-customer-lookup .customer-picker-card> :is(strong,span,small){min-width:0;white-space:normal;overflow-wrap:anywhere;overflow:visible}

/* Create New Customer address entry: pending autofill remains editable. */
:is(#hostedCustomerCreateForm,#manualCustomerCreateForm) :is(#hostedAddressAutocomplete,#manualAddressAutocomplete) gmp-place-autocomplete,
:is(#hostedCustomerCreateForm,#manualCustomerCreateForm) :is(#newCustomerAddress,#newCustomerTown,#newCustomerState,#newCustomerZip,#newCustomerAddress2,#manualNewAddress,#manualNewTown,#manualNewState,#manualNewZip,#manualNewAddress2){background:#e8e2d4;color:#172433;border:1px solid #8ea0ad;border-radius:10px;color-scheme:light}
:is(#hostedCustomerCreateForm,#manualCustomerCreateForm) :is(#hostedAddressAutocomplete,#manualAddressAutocomplete) gmp-place-autocomplete{font:inherit;box-sizing:border-box;min-width:0;max-width:100%}
:is(#hostedCustomerCreateForm,#manualCustomerCreateForm) :is(#newCustomerAddress,#newCustomerTown,#newCustomerState,#newCustomerZip,#manualNewAddress,#manualNewTown,#manualNewState,#manualNewZip).address-autofill-pending:not(:focus){background:#0e151c;color:#fafafa;border-color:var(--line);color-scheme:dark}
:is(#hostedCustomerCreateForm,#manualCustomerCreateForm) :is(#newCustomerAddress2,#manualNewAddress2){background:#0e151c;color:#fafafa;border-color:var(--line);color-scheme:dark}

/* HearthIQ-wide warm white text standard */
.nav button:hover,
.nav button.active,
.btn,
.searchbar input,
.searchbar select,
.local-form input,
.local-form select,
.local-form textarea,
.financial-tabs .active,
.financial-actions select,
.map-mode.active,
.proper-map .leaflet-control-zoom a,
.mapping-row select,
.today-search>input,
.search-results button,
.today-kpi,
.attention-item,
.activity-item,
#visibility input,
#visibility select,
#visibility textarea,
.appointment-calendar-day>header strong,
.appointment-calendar-day.is-today>header,
.appointment-calendar-event,
.field-entry-group legend,
.mobile-menu-button,
.customer-picker-card{
  color:#fafafa;
}

/* Site-wide theme tester */
.theme-switcher{display:flex;flex-wrap:wrap;gap:5px;width:100%;max-width:100%;margin:14px 0 8px;padding:8px;border:1px solid var(--line);border-radius:11px;background:rgba(8,12,16,.35)}.theme-switcher>span{flex:1 0 100%;padding:0 2px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em}.theme-switcher button{flex:1 1 78px;min-width:0;max-width:100%;min-height:32px;padding:6px 5px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--muted);font-size:10px;font-weight:750;cursor:pointer;white-space:normal;overflow-wrap:anywhere}.theme-switcher button:hover{color:#fafafa;border-color:var(--line)}.theme-switcher button.active{background:var(--orange);color:#fafafa;border-color:transparent}

/* Keep sidebar utilities in normal flow so theme controls cannot cover status text. */
.sidebar{display:flex;flex-direction:column;min-width:0;overflow:hidden}.sidebar .nav{min-height:0;overflow-y:auto}.sidebar .theme-switcher{flex:0 0 auto}.sidebar .session-controls{flex:0 0 auto}.sidebar .side-note{position:static;flex:0 0 auto;width:100%;margin-top:10px;overflow-wrap:anywhere}

#parts[data-parts-theme="original"]{--panel:#131b23;--panel2:#18222c;--panel3:#0f171f;--line:#293642;--text:#fafafa;--muted:#91a2af;--orange:#ef5b2a;--orange2:#ff9157;--green:#4fd1a5;--blue:#63a9ff}
#parts[data-parts-theme="original"] .card{background:linear-gradient(180deg,#131b23,#10171e);border-color:#293642;box-shadow:0 14px 35px rgba(0,0,0,.16)}
#parts[data-parts-theme="original"] .confirmed-parts-results{background:linear-gradient(145deg,#111b24,#0e151d);border-color:#314354}
#parts[data-parts-theme="original"] .confirmed-parts-kpis button{background:#16222d}
#parts[data-parts-theme="original"] .confirmed-parts-groups>section,#parts[data-parts-theme="original"] .confirmed-parts-drilldown,#parts[data-parts-theme="original"] .confirmed-more-breakdowns,#parts[data-parts-theme="original"] .historical-parts-report>div,#parts[data-parts-theme="original"] .historical-part-card,#parts[data-parts-theme="original"] .parts-subform{background:#18222c}
#parts[data-parts-theme="original"] .brand-parts-grid>article,#parts[data-parts-theme="original"] .confirmed-group-row,#parts[data-parts-theme="original"] .confirmed-more-breakdowns section,#parts[data-parts-theme="original"] .confirmed-drilldown-list article{background:#0f171f}
#parts[data-parts-theme="original"] .brand-parts-grid h4,#parts[data-parts-theme="original"] .confirmed-group-row>strong{color:#bde5ff}
#parts[data-parts-theme="original"] .confirmed-group-row>strong{background:#263747}
#parts[data-parts-theme="original"] input:not([type="checkbox"]):not([type="radio"]),#parts[data-parts-theme="original"] select,#parts[data-parts-theme="original"] textarea{background:#0e151c;color:#fafafa;border-color:#293642}
#parts[data-parts-theme="original"] th{background:#10171f;color:#91a2af}
#parts[data-parts-theme="original"] .btn.secondary{background:#18222c;border-color:#293642}
#parts[data-parts-theme="original"] .notice,#parts[data-parts-theme="original"] .historical-part-card blockquote,#parts[data-parts-theme="original"] #editHistoricalPartForm blockquote,#parts[data-parts-theme="original"] .planned-part-card blockquote{background:#111b23}
#parts[data-parts-theme="original"] .tag{background:#202b35}
#parts[data-parts-theme="original"] a,#parts[data-parts-theme="original"] .brand-part-price a,#parts[data-parts-theme="original"] .history-link{color:#8ec8e8}

#parts[data-parts-theme="ember"]{--panel:#101925;--panel2:#172333;--panel3:#0b121c;--line:#364a61;--text:#fafafa;--muted:#b5c2cf;--orange:#e50914;--orange2:#ff493f;--green:#83c79f;--blue:#8fc5ed}
#parts[data-parts-theme="ember"] .card{background:linear-gradient(145deg,#14202e,#0d151f);border-color:#364a61;box-shadow:0 14px 35px rgba(0,0,0,.34)}
#parts[data-parts-theme="ember"] .confirmed-parts-results{background:linear-gradient(145deg,#172536,#0c141e);border-color:#405a73}
#parts[data-parts-theme="ember"] .confirmed-parts-kpis button,#parts[data-parts-theme="ember"] .confirmed-parts-groups>section,#parts[data-parts-theme="ember"] .confirmed-parts-drilldown,#parts[data-parts-theme="ember"] .confirmed-more-breakdowns,#parts[data-parts-theme="ember"] .historical-parts-report>div,#parts[data-parts-theme="ember"] .historical-part-card,#parts[data-parts-theme="ember"] .parts-subform{background:#172333}
#parts[data-parts-theme="ember"] .brand-parts-grid>article,#parts[data-parts-theme="ember"] .confirmed-group-row,#parts[data-parts-theme="ember"] .confirmed-more-breakdowns section,#parts[data-parts-theme="ember"] .confirmed-drilldown-list article{background:#0b121c}
#parts[data-parts-theme="ember"] .brand-parts-grid h4,#parts[data-parts-theme="ember"] .confirmed-group-row>strong{color:#fafafa}
#parts[data-parts-theme="ember"] .confirmed-group-row>strong{background:#22364a}
#parts[data-parts-theme="ember"] input:not([type="checkbox"]):not([type="radio"]),#parts[data-parts-theme="ember"] select,#parts[data-parts-theme="ember"] textarea{background:#080e16;color:#fafafa;border-color:#405a73}
#parts[data-parts-theme="ember"] input::placeholder,#parts[data-parts-theme="ember"] textarea::placeholder{color:#7f91a3}
#parts[data-parts-theme="ember"] th{background:#111d2a;color:#d2dce6}
#parts[data-parts-theme="ember"] .clickrow:hover td{background:#1c2c3d}
#parts[data-parts-theme="ember"] .btn.secondary{background:#1c2c3d;border-color:#405a73}
#parts[data-parts-theme="ember"] .btn.ghost{color:#e1e8ef;border-color:#516a82}
#parts[data-parts-theme="ember"] .notice,#parts[data-parts-theme="ember"] .historical-part-card blockquote,#parts[data-parts-theme="ember"] #editHistoricalPartForm blockquote,#parts[data-parts-theme="ember"] .planned-part-card blockquote{background:#122031}
#parts[data-parts-theme="ember"] .tag{background:#1c2d3e}
#parts[data-parts-theme="ember"] a,#parts[data-parts-theme="ember"] .brand-part-price a,#parts[data-parts-theme="ember"] .history-link{color:#9fc5e3}

body[data-hearth-theme="northeast"]{--bg:#172a3a;--side:#132534;--panel:#324a5f;--panel2:#41586b;--panel3:#263e51;--line:#71879a;--text:#fafafa;--muted:#c0ced8;--orange:#e8752b;--orange2:#f39a61;--green:#91d0ad;--blue:#79bce8;background:#172a3a}
body[data-hearth-theme="northeast"] .main{background:linear-gradient(155deg,#172a3a 0%,#22394b 48%,#192d3d 100%)}
body[data-hearth-theme="northeast"] .sidebar,body[data-hearth-theme="northeast"] .mobile-topbar{background:#132534}
body[data-hearth-theme="northeast"] .card{background:linear-gradient(145deg,#324a5f,#2a4357);border-color:#71879a}
body[data-hearth-theme="northeast"] .btn.secondary,body[data-hearth-theme="northeast"] .tag{background:#405b70;border-color:#8295a5}
body[data-hearth-theme="northeast"] .notice,body[data-hearth-theme="northeast"] .history-entry .event-body{background:#294358}
body[data-hearth-theme="northeast"] .searchbar input,body[data-hearth-theme="northeast"] .searchbar select,body[data-hearth-theme="northeast"] .local-form input,body[data-hearth-theme="northeast"] .local-form select,body[data-hearth-theme="northeast"] .local-form textarea,body[data-hearth-theme="northeast"] .today-search>input,body[data-hearth-theme="northeast"] #visibility input,body[data-hearth-theme="northeast"] #visibility select,body[data-hearth-theme="northeast"] #visibility textarea{background:#e8e2d4;color:#172433;border-color:#8ea0ad}
body[data-hearth-theme="northeast"] th{background:#294358;color:#d7e1e8}

body[data-hearth-theme="ember"]{--bg:#070c13;--side:#060a10;--panel:#101925;--panel2:#172333;--panel3:#0b121c;--line:#364a61;--text:#fafafa;--muted:#b5c2cf;--orange:#e50914;--orange2:#ff493f;--green:#83c79f;--blue:#8fc5ed;background:#070c13}
body[data-hearth-theme="ember"] .main{background:linear-gradient(155deg,#070c13,#101b28 55%,#060a10)}
body[data-hearth-theme="ember"] .sidebar,body[data-hearth-theme="ember"] .mobile-topbar{background:#060a10}
body[data-hearth-theme="ember"] .card{background:linear-gradient(145deg,#14202e,#0d151f);border-color:#364a61;box-shadow:0 14px 35px rgba(0,0,0,.34)}
body[data-hearth-theme="ember"] .btn.secondary,body[data-hearth-theme="ember"] .tag{background:#1c2c3d;border-color:#405a73}
body[data-hearth-theme="ember"] .notice,body[data-hearth-theme="ember"] .history-entry .event-body{background:#122031}
body[data-hearth-theme="ember"] .searchbar input,body[data-hearth-theme="ember"] .searchbar select,body[data-hearth-theme="ember"] .local-form input,body[data-hearth-theme="ember"] .local-form select,body[data-hearth-theme="ember"] .local-form textarea,body[data-hearth-theme="ember"] .today-search>input,body[data-hearth-theme="ember"] #visibility input,body[data-hearth-theme="ember"] #visibility select,body[data-hearth-theme="ember"] #visibility textarea{background:#080e16;color:#fafafa;border-color:#405a73}
body[data-hearth-theme="ember"] th{background:#111d2a;color:#d2dce6}
body[data-hearth-theme="ember"] a,body[data-hearth-theme="ember"] .history-link{color:#9fc5e3}

/* Hearth: professional black-steel UI with a restrained firelight glow */
body[data-hearth-theme="hearth"]{--bg:#090b0d;--side:#08090b;--panel:#171a1e;--panel2:#20242a;--panel3:#101317;--line:#3e454d;--text:#fafafa;--muted:#b9bec4;--orange:#e24b1a;--orange2:#ff8a3d;--green:#83c79f;--blue:#93bdd9;background:#090b0d}
body[data-hearth-theme="hearth"] .main{background:radial-gradient(ellipse 70% 28% at 72% -4%,rgba(255,111,30,.16),transparent 68%),radial-gradient(ellipse 42% 22% at 18% 102%,rgba(190,34,15,.09),transparent 72%),linear-gradient(160deg,#0a0c0f,#11151a 52%,#090b0e)}
body[data-hearth-theme="hearth"] .sidebar,body[data-hearth-theme="hearth"] .mobile-topbar{background:linear-gradient(180deg,#090a0c,#0d0f12);border-color:#3e454d}
body[data-hearth-theme="hearth"] .logo span{color:#ff6427}
body[data-hearth-theme="hearth"] .card{background:linear-gradient(145deg,#1b1f24,#121519);border-color:#3e454d;box-shadow:0 14px 35px rgba(0,0,0,.3)}
body[data-hearth-theme="hearth"] .btn{background:linear-gradient(180deg,#ef5a20,#cf3812)}
body[data-hearth-theme="hearth"] .btn.secondary,body[data-hearth-theme="hearth"] .tag{background:#252a30;border-color:#49515a}
body[data-hearth-theme="hearth"] .notice,body[data-hearth-theme="hearth"] .history-entry .event-body{background:#1b1f24}
body[data-hearth-theme="hearth"] .searchbar input,body[data-hearth-theme="hearth"] .searchbar select,body[data-hearth-theme="hearth"] .local-form input,body[data-hearth-theme="hearth"] .local-form select,body[data-hearth-theme="hearth"] .local-form textarea,body[data-hearth-theme="hearth"] .today-search>input,body[data-hearth-theme="hearth"] #visibility input,body[data-hearth-theme="hearth"] #visibility select,body[data-hearth-theme="hearth"] #visibility textarea{background:#0d1013;color:#fafafa;border-color:#49515a}
body[data-hearth-theme="hearth"] th{background:#191d21;color:#d6d9dc}
body[data-hearth-theme="hearth"] a,body[data-hearth-theme="hearth"] .history-link{color:#f0a06f}

#parts[data-parts-theme="hearth"]{--panel:#171a1e;--panel2:#20242a;--panel3:#101317;--line:#3e454d;--text:#fafafa;--muted:#b9bec4;--orange:#e24b1a;--orange2:#ff8a3d;--green:#83c79f;--blue:#93bdd9}
#parts[data-parts-theme="hearth"] .card{background:linear-gradient(145deg,#1b1f24,#121519);border-color:#3e454d}
#parts[data-parts-theme="hearth"] .confirmed-parts-results{background:linear-gradient(145deg,#20242a,#14171b);border-color:#4a525b}
#parts[data-parts-theme="hearth"] .confirmed-parts-kpis button,#parts[data-parts-theme="hearth"] .confirmed-parts-groups>section,#parts[data-parts-theme="hearth"] .confirmed-parts-drilldown,#parts[data-parts-theme="hearth"] .confirmed-more-breakdowns,#parts[data-parts-theme="hearth"] .historical-parts-report>div,#parts[data-parts-theme="hearth"] .historical-part-card,#parts[data-parts-theme="hearth"] .parts-subform{background:#20242a}
#parts[data-parts-theme="hearth"] .brand-parts-grid>article,#parts[data-parts-theme="hearth"] .confirmed-group-row,#parts[data-parts-theme="hearth"] .confirmed-more-breakdowns section,#parts[data-parts-theme="hearth"] .confirmed-drilldown-list article{background:#101317}
#parts[data-parts-theme="hearth"] .brand-parts-grid h4,#parts[data-parts-theme="hearth"] .confirmed-group-row>strong{color:#fafafa}
#parts[data-parts-theme="hearth"] .confirmed-group-row>strong{background:#2c3138}
#parts[data-parts-theme="hearth"] input:not([type="checkbox"]):not([type="radio"]),#parts[data-parts-theme="hearth"] select,#parts[data-parts-theme="hearth"] textarea{background:#0d1013;color:#fafafa;border-color:#49515a}
#parts[data-parts-theme="hearth"] th{background:#191d21;color:#d6d9dc}
#parts[data-parts-theme="hearth"] .clickrow:hover td{background:#292e34}
#parts[data-parts-theme="hearth"] .btn.secondary{background:#252a30;border-color:#49515a}
#parts[data-parts-theme="hearth"] .notice,#parts[data-parts-theme="hearth"] .historical-part-card blockquote,#parts[data-parts-theme="hearth"] #editHistoricalPartForm blockquote,#parts[data-parts-theme="hearth"] .planned-part-card blockquote{background:#1b1f24}
#parts[data-parts-theme="hearth"] .tag{background:#292e34}
#parts[data-parts-theme="hearth"] a,#parts[data-parts-theme="hearth"] .brand-part-price a,#parts[data-parts-theme="hearth"] .history-link{color:#f0a06f}

@media(max-width:820px){.sidebar{overflow-y:auto}.sidebar .nav{flex:0 0 auto;min-height:auto;overflow:visible}.sidebar .session-controls{margin-top:0}.theme-switcher{margin-top:14px}.theme-switcher button{flex-basis:calc(50% - 3px);min-height:44px;font-size:12px}.sidebar .side-note{display:block;margin-top:12px}}
@media(max-width:390px){.theme-switcher button{flex-basis:100%}}

.customer-profile-link{width:max-content;max-width:100%;padding:0;border:0;border-bottom:1px solid transparent;background:transparent;color:#fafafa;font:inherit;font-weight:750;text-align:left;cursor:pointer}
.customer-profile-link:hover,.customer-profile-link:focus-visible{color:#8ec8e8;border-bottom-color:#8ec8e8;outline:none}
.attention-reason{font:inherit;cursor:pointer}.attention-reason:hover,.attention-reason:focus-visible{border-color:#e9c96b;color:#fff;filter:brightness(1.12);outline:none}.attention-item-footer{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.attention-open{padding:0;border:0;border-bottom:1px solid transparent;background:transparent;color:var(--muted);font:inherit;font-size:12px;cursor:pointer}.attention-open:hover,.attention-open:focus-visible{color:#8ec8e8;border-bottom-color:#8ec8e8;outline:none}.customer-attention-item{gap:7px;cursor:default}.customer-attention-item.is-resolved{opacity:.78}.customer-attention-item .tag+.tag{margin-left:6px}.attention-history{margin-top:12px}.attention-history>summary{cursor:pointer;font-weight:700;margin-bottom:10px}.customer-attention-queue{border-bottom:1px solid var(--line);padding:0 0 18px;margin-bottom:16px}.customer-attention-queue[hidden]{display:none}
.business-appointment-reporting{display:grid;gap:7px;width:min(100%,520px);margin:10px 0 16px}.business-appointment-reporting>label{display:grid;gap:5px;max-width:260px}.business-appointment-reporting select{width:100%}.business-appointment-reporting p{margin:0;color:#8ec8e8}.business-appointment-custom-dates{grid-template-columns:repeat(2,minmax(0,180px));gap:10px}.business-appointment-custom-dates label{display:grid;gap:5px}@media(max-width:600px){.business-appointment-custom-dates{grid-template-columns:1fr}.business-appointment-reporting>label{max-width:none}}
.season-comparison{margin:16px 0}.season-comparison-table{display:grid;gap:0;overflow-x:auto}.season-comparison-head,.season-comparison-row{display:grid;grid-template-columns:minmax(170px,1.3fr) repeat(5,minmax(170px,1fr));gap:12px;padding:11px;border-bottom:1px solid var(--line);align-items:center;min-width:1050px}.season-comparison-head{background:#101a23;border-radius:10px 10px 0 0}.season-comparison-head small{display:block;color:var(--muted);margin-top:3px}.season-comparison-head strong:not(:first-child),.season-comparison-row strong{text-align:right}.season-comparison-row>span:first-child{font-weight:600}@media(max-width:760px){.season-comparison-head,.season-comparison-row{min-width:1050px}}

.appointment-calendar-event.is-blocked{background:#fff0d6;border-left:4px solid #a46721;color:#624316}.appointment-calendar-closed{padding:10px;background:#e7e9ed;color:#596373;border-radius:6px;font-size:.85rem}
.void-appointment-panel{margin-top:18px;padding-top:12px;border-top:1px solid var(--line)}.void-appointment-panel summary{color:var(--muted);cursor:pointer}.void-warning{border-color:#98534d;background:rgba(128,32,24,.18)}
/* Town guidance is advisory; keep it in the existing day list. */
.schedule-map-day.is-town-fit{border-left:4px solid #27835b}
.schedule-map-town-fit{padding:6px 10px;background:#edf7f0;color:#24543a}
/* Horizon discovery sits above the detailed weekly schedule. */
.appointment-view-controls{padding:12px 16px;overflow:visible}
.schedule-map-search-range{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;margin-bottom:8px}
.schedule-map-search-range label{display:flex;align-items:center;gap:8px}
.schedule-map-search-range select{width:auto}
.schedule-map-search-range strong{font-size:.9rem}
.appointment-view-controls .financial-tabs{margin-bottom:10px}
.appointment-view-controls .schedule-map-candidate>label{grid-column:1;min-width:0}
.appointment-view-controls .schedule-map-candidate .btn{grid-row:1;white-space:nowrap}
.appointment-view-controls .schedule-map-candidate>div{grid-column:1/-1}
.appointment-view-controls .schedule-map-candidate{width:min(100%,1000px)}
.appointment-results-section .financial-tabs{margin:12px 0 8px}
.appointment-results-section #appointmentWindowHint{margin-bottom:8px}
.schedule-map-best-days{width:min(100%,1300px);margin:10px auto 0}
.schedule-map-best-days:empty{display:none;margin-top:0}
.schedule-map-best-days-panel{border:1px solid var(--line);border-radius:10px;background:#111c26;overflow:hidden}
.schedule-map-best-days-panel>summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;padding:12px 14px;color:var(--text)}
.schedule-map-best-days-panel>summary strong{min-width:0;overflow-wrap:anywhere}
.schedule-map-best-days-panel>summary::-webkit-details-marker{display:none}
.schedule-map-best-days-panel>summary:after{content:"▸";margin-left:auto;color:var(--muted)}
.schedule-map-best-days-panel[open]>summary{border-bottom:1px solid var(--line)}
.schedule-map-best-days-panel[open]>summary:after{content:"▾"}
.schedule-map-best-days-content{display:grid;gap:18px;max-height:26rem;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:14px}
@media(max-width:560px){.appointment-view-controls{padding:12px}.schedule-map-best-days-panel>summary{padding:11px 12px}.schedule-map-best-days-content{max-height:22rem;padding:12px}}
.schedule-map-best-day{display:grid;gap:8px;text-align:left;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--text)}
.schedule-map-best-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),450px));gap:10px;margin-top:4px}
.schedule-map-best-slot{display:grid;gap:2px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#101a23;color:var(--text);text-align:left;cursor:pointer}
.schedule-map-best-slot:hover,.schedule-map-best-slot:focus-visible{border-color:var(--orange);background:#182632;outline:none}
.schedule-map-best-slot small{color:var(--muted)}
@media(max-width:560px){.appointment-view-controls .schedule-map-candidate{grid-template-columns:minmax(0,1fr)}.appointment-view-controls .schedule-map-candidate .btn{grid-column:1;grid-row:auto;width:100%}.schedule-map-best-day{padding:12px}.schedule-map-best-slots{grid-template-columns:1fr}}
/* Booking town is secondary to the customer name; long names wrap within the card. */
.appointment-calendar-event .appointment-calendar-location{font-size:11px;font-weight:400;color:var(--muted);white-space:normal;overflow-wrap:anywhere;line-height:1.3;min-width:0}
