/* MCN workbench: trade-workflow layout using MCN identity.
   Screen-only: customer documents, maps and email artwork retain their styling. */
@media screen {
:root{--mcn-canvas:#f1f3f4;--mcn-nav:#e9ecee;--mcn-border:#dce1e4;--mcn-radius:8px;--mcn-radius-sm:6px;--mcn-title-size:26px;--mcn-accent:#ffd60a;--mcn-selected:#fff3b0;--ui-radius:8px;--ui-control-radius:6px;--ui-navigation:var(--mcn-nav);--ui-canvas:var(--mcn-canvas);--ui-line:var(--mcn-border)}
body>header{background:#fff;border-bottom:1px solid var(--mcn-border);box-shadow:none}
body>header .brand{background:var(--mcn-nav)}
body>header .header-context{padding-left:20px}
body>header .header-context strong{color:var(--mcn-ink);font-size:14px}
#business-nav{background:var(--mcn-nav);padding:12px 10px;border-right:1px solid var(--mcn-border)}
#business-nav :is(button,.nav-drive-link){min-height:38px;padding:9px 12px;border-radius:6px;font-size:13px;line-height:1.4}
#business-nav button.active{background:var(--mcn-selected);box-shadow:inset 3px 0 var(--mcn-accent);font-weight:650}
#business-nav .nav-group summary{padding:20px 12px 8px;font-size:11px;font-weight:650;letter-spacing:.035em;color:#667079}
main.data-view[data-section]>aside{padding:28px 32px;background:var(--mcn-canvas)}
main.data-view[data-section] #details>h2{margin:0 0 22px;font-size:26px;line-height:1.25}
/* Clear section navigation rather than a collection of floating buttons. */
main.data-view[data-section] :is(.module-tabs,.section-tabs){display:flex;align-items:stretch;gap:0;background:transparent;border:0;border-bottom:1px solid var(--mcn-border);border-radius:0;padding:0;margin:0 0 24px;flex-wrap:wrap;box-shadow:none}
main.data-view[data-section] :is(.module-tabs,.section-tabs)>button{min-height:44px;padding:12px 20px;border:0;border-bottom:3px solid transparent;border-radius:0;background:transparent;box-shadow:none;color:var(--mcn-secondary);font-size:13px;line-height:1.4}
main.data-view[data-section] :is(.module-tabs,.section-tabs)>button.active{background:#fff;border-bottom-color:var(--mcn-accent);color:var(--mcn-ink);font-weight:650}
main.data-view[data-section] :is(.module-toolbar,.register-toolbar){display:flex;align-items:center;flex-wrap:wrap;gap:12px;background:#e9edef;border:1px solid var(--mcn-border);border-radius:8px;padding:14px;margin:16px 0}
main.data-view[data-section] .register-shell>.register-toolbar{margin:0;border:0;border-bottom:1px solid var(--mcn-border);border-radius:0}
main.data-view[data-section] :is(.module-toolbar,.register-toolbar) :is(input,select){background:#fff;min-height:40px;margin:0}
main.data-view[data-section] :is(.record-actions,.record-edit-toolbar){gap:8px;margin:16px 0;align-items:center}
main.data-view[data-section] :is(.dashboard-card,.register-shell,.settings-card,.hr-card,.hs-card,.hs-attention,.additional-information,.estimate-client-group,.tracking-panel,.profile-fields>.field-section){border:1px solid var(--mcn-border);border-radius:8px;box-shadow:none;background:#fff}
main.data-view[data-section] :is(.dashboard-card,.settings-card,.hr-card,.hs-card,.additional-information,.profile-fields>.field-section){padding:22px}
main.data-view[data-section] :is(.dashboard-card,.settings-card,.hr-card,.hs-card) h2{font-size:18px;line-height:1.35;margin:0 0 18px}
/* Register rhythm shared by generic lists, clients, jobs and the fleet. */
main.data-view[data-section] .module-list{border:1px solid var(--mcn-border);border-radius:8px;overflow:hidden;background:#fff}
main.data-view[data-section] .module-list>.module-card{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(140px,.7fr);gap:20px;align-items:center;margin:0;padding:18px 22px;min-height:64px;border:0;border-bottom:1px solid var(--mcn-border);border-radius:0;box-shadow:none;background:#fff;text-align:left}
main.data-view[data-section] .module-list>.module-card:nth-child(even){background:#f8fafb}
main.data-view[data-section] .module-list>.module-card:last-child{border-bottom:0}
main.data-view[data-section] .module-list>.module-card:hover{background:#fffbed;transform:none}
main.data-view[data-section] .module-card>strong{font-size:14px;font-weight:600;line-height:1.5}
main.data-view[data-section] .module-card>small{font-size:12px;line-height:1.5;color:var(--mcn-secondary)}
main.data-view[data-section] :is(.workspace-table,.jobs-data-table) :is(th,td){padding:14px 18px;vertical-align:middle;border-bottom:1px solid var(--mcn-border);line-height:1.5}
main.data-view[data-section] :is(.workspace-table,.jobs-data-table) th{font-size:12px;font-weight:600;background:#f0f3f5;color:#59636d}
main.data-view[data-section] :is(.workspace-table,.jobs-data-table) tbody tr:nth-child(even){background:#f8fafb}
main.data-view[data-section] :is(.workspace-table,.jobs-data-table) tbody tr:hover{background:#fffbed}
main.data-view[data-section] .table-scroll{border-radius:8px;box-shadow:none}
main.data-view[data-section] .register-shell>.table-scroll{border-radius:0}
/* Unified controls, excluding document content and map controls. */
:is(main.data-view[data-section] #details,body>header,#modal) button:not(:where(.customer-document *,.hs-document *,.map-area *,.gm-style *)){border-radius:6px;min-height:38px;font-size:13px;line-height:1.4;box-shadow:none}
:is(main.data-view[data-section] #details,body>header,#modal) button.primary{background:var(--mcn-accent);color:var(--mcn-ink);border-color:transparent;font-weight:600}
#modal :is(input,select,textarea):not(:where(.customer-document *)){border:1px solid var(--mcn-border);border-radius:6px;background:#fff;font:inherit;line-height:1.5}
#modal .form-grid{gap:18px 22px}
#modal .field-section{border-radius:8px;border-color:var(--mcn-border);padding:20px;min-width:0}
#modal label{line-height:1.5;min-width:0}
#modal .optional-fields{border-radius:8px;border-color:var(--mcn-border)}
#modal.quote-workspace{border-radius:10px;background:var(--mcn-canvas)}
#modal.quote-workspace .quote-details{border-radius:8px}
main.data-view[data-section] .dashboard-status-summary{border-radius:8px}
main.data-view[data-section] .dashboard-metrics{border-radius:8px;box-shadow:none}
main.data-view[data-section] .profile-fields{gap:20px}
main.data-view[data-section] .profile-fields .kv{line-height:1.5;padding:12px 0}
@media(max-width:900px){main.data-view[data-section]>aside{padding:22px}main.data-view[data-section] .module-list>.module-card{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:8px 16px}main.data-view[data-section] .module-card>small:last-child{grid-column:1/-1}}
@media(max-width:600px){main.data-view[data-section]>aside{padding:16px}main.data-view[data-section] .module-list>.module-card{grid-template-columns:minmax(0,1fr);padding:16px}main.data-view[data-section] :is(.module-toolbar,.register-toolbar)>:is(input,select){width:100%;flex:1 1 100%}main.data-view[data-section] :is(.module-tabs,.section-tabs)>button{padding:10px 14px}main.data-view[data-section] :is(.dashboard-card,.settings-card,.hr-card,.hs-card){padding:18px}}
}
@media screen{
main.data-view[data-section] #details .dashboard-metric,main.data-view[data-section] #details .dashboard-status-summary button.stage-stat{border-radius:0}
main.data-view[data-section] #details .dashboard-metric{border-right:1px solid var(--mcn-border)}
main.data-view[data-section] #details .dashboard-metric:last-child{border-right:0}
}
/* The same workbench language continues inside records and add/edit dialogs. */
@media screen{
#modal:not(.document-preview){background:var(--mcn-canvas);border:1px solid var(--mcn-border);border-radius:10px;box-shadow:0 20px 70px #18202c24;padding:28px;color:var(--mcn-ink)}
#modal:not(.document-preview) #modal-content>h2{font-family:var(--mcn-font);font-size:24px;font-weight:650;line-height:1.25;letter-spacing:-.025em;margin:0 40px 20px 0}
#modal:not(.document-preview) #modal-content>p{font-size:13px;line-height:1.5;margin:0 0 22px;color:var(--mcn-secondary)}
#modal:not(.document-preview) .field-section{margin:0;background:#fff;border:1px solid var(--mcn-border);padding:20px;border-radius:8px;box-shadow:none}
#modal:not(.document-preview) .field-section>legend{font-size:13px;font-weight:600;color:var(--mcn-ink);line-height:1.5}
#modal:not(.document-preview) .field-section>h3{font-size:14px;line-height:1.4;margin:0 0 18px}
#modal:not(.document-preview) label:not(.check){font-size:13px;font-weight:500;line-height:1.5;gap:7px;color:#555f69;min-width:0}
#modal:not(.document-preview) :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=range]):not(:where(.customer-document *,.hs-document *)){box-sizing:border-box;max-width:100%;min-width:0;font-family:var(--mcn-font);font-size:14px;line-height:1.5;color:var(--mcn-ink);padding:10px 12px;background:#fff;border:1px solid var(--mcn-border);border-radius:6px}
#modal:not(.document-preview) select:not([multiple]){padding-right:36px}
#modal:not(.document-preview) textarea{min-height:100px;resize:vertical}
#modal:not(.document-preview) .optional-fields{background:#fff;border:1px solid var(--mcn-border);border-radius:8px;padding:0;overflow:visible}
#modal:not(.document-preview) .optional-fields>summary{padding:14px 18px;min-height:44px;font-size:13px;line-height:1.5}
#modal:not(.document-preview) .optional-fields>.form-grid{padding:18px;margin:0}
#modal:not(.document-preview) .optional-fields[open]>summary{border-bottom:1px solid var(--mcn-border)}
#modal:not(.document-preview) :is(button,input,select,textarea):focus-visible{outline:2px solid var(--mcn-focus);outline-offset:2px}
#modal:not(.document-preview) button.danger{color:#a92f2f;background:#fff;border:1px solid #e8cece}
#modal:not(.document-preview) .check{display:flex;align-items:center;gap:10px;line-height:1.5}
main.data-view[data-section] #record-top{background:transparent;padding:0;margin:0 0 24px;display:flex;align-items:center;flex-wrap:wrap;gap:8px}
main.data-view[data-section] :is(.record-body,.profile-fields,.additional-information){min-width:0;overflow-wrap:anywhere}
main.data-view[data-section] .profile-fields>.field-section{padding:22px;margin:0;background:#fff;border:1px solid var(--mcn-border);border-radius:8px}
main.data-view[data-section] .profile-fields>.field-section>h3{margin:0 0 16px;font-size:14px;line-height:1.4;font-weight:600}
main.data-view[data-section] .profile-fields .kv{display:grid;grid-template-columns:minmax(110px,.8fr) minmax(0,1.2fr);gap:16px;align-items:start;border-bottom:1px solid #edf0f2;padding:12px 0}
main.data-view[data-section] .profile-fields .kv:last-child{border-bottom:0}
main.data-view[data-section] .profile-fields .kv-stacked{display:block}
main.data-view[data-section] .profile-fields .kv>strong{font-size:14px;font-weight:500;line-height:1.5}
main.data-view[data-section] .profile-fields .kv>span{font-size:13px;line-height:1.5;color:var(--mcn-secondary)}
/* Preserve the user-requested completion highlighting. */
#modal:not(.document-preview) .safety-entry-form :is(input,select,textarea).needs-completion{background:#fff7cd}
@media(max-width:600px){#modal:not(.document-preview){padding:18px}#modal:not(.document-preview) .field-section{padding:16px}main.data-view[data-section] .profile-fields{grid-template-columns:minmax(0,1fr)}main.data-view[data-section] .profile-fields .kv{grid-template-columns:minmax(0,1fr);gap:4px}}
}
@media screen{
#modal.task-editor{width:min(640px,calc(100vw - 32px));max-width:640px}
#modal.task-editor .task-core{padding:20px;background:#fff;border:1px solid var(--mcn-border);border-radius:8px}
#modal.task-editor .task-core>label:first-child{grid-column:1/-1}
#modal.task-editor .task-core>label:nth-child(2){grid-column:1/-1}
#modal.task-editor form>button.primary{justify-self:end;min-width:100px}
}
/* MCN brand accents: full-strength yellow for actions and selection. */
@media screen{
:root{--mcn-accent:var(--mcn-yellow);--mcn-accent-hover:var(--mcn-light-yellow);--ui-accent:var(--mcn-yellow);--mcn-selected:#ffed78}
:is(body>header,main.data-view[data-section] #details,#modal) button.primary:not(:disabled){background:var(--mcn-yellow);border-color:var(--mcn-yellow);color:var(--mcn-black);opacity:1;font-weight:650}
:is(body>header,main.data-view[data-section] #details,#modal) button.primary:hover:not(:disabled){background:var(--mcn-light-yellow);border-color:var(--mcn-light-yellow)}
#business-nav button.active{background:var(--mcn-yellow);color:var(--mcn-black);box-shadow:none}
#business-nav button.active:hover{background:var(--mcn-light-yellow)}
#details .dashboard-status-summary button.stage-stat[aria-pressed=true]{background:var(--mcn-selected);box-shadow:inset 0 -3px var(--mcn-yellow)}
main.data-view[data-section] :is(.module-tabs,.section-tabs)>button.active{border-bottom-color:var(--mcn-yellow);box-shadow:inset 0 -1px var(--mcn-yellow)}
main.data-view[data-section] .dashboard-metrics{border-top:3px solid var(--mcn-yellow)}
:is(main.data-view,#modal) input:is([type=checkbox],[type=radio]){accent-color:var(--mcn-yellow)}
}
@media screen{.named-month-picker{display:flex;align-items:center;gap:8px;min-width:0}.named-month-picker select{min-width:140px}.named-month-picker input[type=number]{width:96px;min-width:80px}.named-month-picker :is(input,select){margin:0}}
@media screen{#modal .client-contact-row{padding:18px 0;border-bottom:1px solid var(--mcn-border);margin-bottom:16px}#modal .client-contact-row>button{justify-self:start}}
/* Column filters use an underline, not a yellow filled badge. */
@media screen{
main.data-view[data-section] #details .workspace-table th button.column-filter-trigger{background:transparent;color:inherit;border:0;border-bottom:2px solid transparent;border-radius:0;box-shadow:none;padding:8px 0;margin:0;display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;font:inherit;line-height:1.5}
main.data-view[data-section] #details .workspace-table th button.column-filter-trigger.filtered{background:transparent;border-bottom-color:var(--mcn-yellow);color:var(--mcn-ink)}
main.data-view[data-section] #details .workspace-table th button.column-filter-trigger:hover{background:transparent;color:var(--mcn-ink);border-bottom-color:var(--mcn-yellow)}
}
@media screen{.workspace-table tr.record-clickable-row{cursor:pointer}.workspace-table tr.record-clickable-row:focus-within{background:#fffbed}}
@media screen{
main.data-view[data-section] #details .profile-tabs{display:flex;align-items:stretch;gap:0;flex-wrap:wrap;background:transparent;border:0;border-bottom:1px solid var(--mcn-border);border-radius:0;padding:0;margin:20px 0 24px;box-shadow:none}
main.data-view[data-section] #details .profile-tabs>button{padding:12px 18px;min-height:44px;margin:0;border:0;border-bottom:3px solid transparent;border-radius:0;background:transparent;box-shadow:none;color:var(--mcn-secondary);font-size:13px;line-height:1.4}
main.data-view[data-section] #details .profile-tabs>button[aria-selected=true]{border-bottom-color:var(--mcn-yellow);background:transparent;color:var(--mcn-ink);font-weight:650;box-shadow:none}
main.data-view[data-section] #details .profile-tabs>button:hover{background:#ffffff80;color:var(--mcn-ink)}
main.data-view[data-section] .client-overview>.additional-information{margin-top:24px}
}
@media screen{
#business-nav .nav-group>summary{border-bottom:2px solid transparent;border-radius:0;box-shadow:none}
#business-nav .nav-group.has-active-page>summary{background:transparent;color:var(--mcn-ink);border-bottom-color:var(--mcn-yellow);border-radius:0;box-shadow:none}
}
/* Keep form actions in flow: no floating white strip over the drawer. */
@media screen{
#modal:not(.document-preview) .editor-save-bar{position:static;inset:auto;display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px;width:100%;box-sizing:border-box;background:transparent;backdrop-filter:none;box-shadow:none;border:0;border-top:1px solid var(--mcn-border);padding:18px 0 0;margin:0;z-index:auto}
#modal:not(.document-preview) .editor-save-bar button{margin:0}
#modal.task-editor #form-error:empty{display:none}
}

/* Keep document text above the action bar, including the drawer's bottom edge. */
@media screen {
 #modal.quote-workspace:not(.document-preview){padding-bottom:0}
 #modal.quote-workspace .quote-save-actions{
  position:sticky;bottom:0;z-index:5;isolation:isolate;
  background:var(--mcn-canvas);opacity:1;
  margin:0;padding:18px 0;
  border-top:1px solid var(--mcn-border);
  box-shadow:0 0 0 28px var(--mcn-canvas);
 }
 #modal.quote-workspace .quote-preview{margin-bottom:28px}
 @media(max-width:600px){
  #modal.quote-workspace .quote-save-actions{box-shadow:0 0 0 18px var(--mcn-canvas)}
 }
}

/* Shared business schedule: the same calendar for every authorised account. */
.shared-calendar{min-width:0;width:100%}
.shared-cal-heading,.shared-cal-toolbar,.shared-cal-date{display:flex;align-items:center;gap:12px;justify-content:space-between}
.shared-cal-heading{margin-bottom:24px}.shared-cal-heading h1{margin:0}.shared-cal-heading p{color:#68717b;margin:8px 0 0}
.shared-cal-toolbar{justify-content:flex-start;flex-wrap:wrap;margin-bottom:16px}.shared-cal-toolbar h2{flex:1;margin:0 12px;font-size:18px;line-height:1.4}
.shared-cal-filters{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr)) minmax(180px,2fr);gap:16px;padding:16px;background:#e9edef;border:1px solid #dce1e5;border-radius:8px;margin-bottom:20px}
.shared-cal-filters label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#59636e}.shared-cal-filters input,.shared-cal-filters select{width:100%;min-width:0;margin:0}
.shared-cal-scroll{overflow-x:auto;border:1px solid #dce1e5;border-radius:8px;background:#fff}
.shared-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));min-width:910px;gap:1px;background:#e1e5e9}
.shared-cal-grid.day{grid-template-columns:1fr;min-width:0}.shared-cal-day{min-height:160px;background:#fff;padding:10px;min-width:0}.shared-cal-grid.week .shared-cal-day{min-height:420px}
.shared-cal-date{margin-bottom:12px;min-height:32px}.shared-cal-date h3{font-size:12px;line-height:1.4;margin:0;color:#59636e}.shared-cal-date button{padding:0;min-height:28px;width:28px;border:0;background:transparent;box-shadow:none}
.shared-cal-day.is-today{box-shadow:inset 0 3px #ffd60a}.shared-cal-day.is-today h3{color:#20252a;font-weight:700}
.shared-calendar button.shared-cal-event{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:5px;width:100%;padding:10px;margin-bottom:8px;text-align:left;white-space:normal;overflow-wrap:anywhere;border:1px solid #e0e3e7;border-left:3px solid #ffd60a;border-radius:6px;background:#fafbfc;box-shadow:none;line-height:1.4;height:auto;min-height:0}
.shared-calendar button.shared-cal-event:hover{background:#fff9d9;border-color:#d2ba4c}.shared-cal-event strong{font-size:13px}.shared-cal-event small,.shared-cal-event span{font-size:11px;color:#606a74;line-height:1.5}
.shared-calendar button.shared-cal-event[data-kind=contracts]{border-left-color:#7a69ac}.shared-calendar button.shared-cal-event[data-kind=servicePlans]{border-left-color:#39867b}
.shared-cal-unscheduled{margin-top:20px;border:1px solid #dce1e5;border-radius:8px;padding:16px;background:#fff}.shared-cal-unscheduled summary{cursor:pointer;font-weight:600}.shared-cal-unscheduled [data-unscheduled]{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
@media(max-width:700px){.shared-cal-filters{grid-template-columns:1fr 1fr}.shared-cal-heading{align-items:flex-start}.shared-cal-toolbar h2{order:5;flex-basis:100%;margin:8px 0}.shared-cal-heading h1{font-size:24px}}
.shared-calendar .shared-cal-toolbar select{width:130px;flex:0 0 130px;margin:0}

/* Fixed icon geometry overrides generic text-button sizing and padding. */
main.data-view[data-section] #details .shared-cal-date button.shared-cal-add{display:inline-flex;align-items:center;justify-content:center;flex:0 0 32px;width:32px;height:32px;min-width:32px;min-height:32px;max-width:32px;max-height:32px;padding:0;margin:0;gap:0;line-height:1;border:1px solid var(--mcn-border,#dce1e5);border-radius:6px;background:#fff;color:var(--mcn-ink,#252a30);box-shadow:none}
main.data-view[data-section] #details .shared-cal-date button.shared-cal-add svg{display:block;flex:0 0 16px;width:16px;height:16px;margin:0;transform:none}
main.data-view[data-section] #details .shared-cal-date button.shared-cal-add:hover{background:var(--mcn-light-yellow,#ffe941);border-color:var(--mcn-yellow,#ffd60a)}
/* Compact scheduler controls and aligned hourly rows, inspired by the job scheduler. */
main.data-view[data-section] #details .shared-cal-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:16px 0}
main.data-view[data-section] #details .shared-cal-toolbar h2{font-size:18px;flex:1;margin:0 12px}
main.data-view[data-section] #details .shared-cal-toolbar select{width:120px;flex:0 0 120px}
.shared-cal-heading{margin-bottom:12px}.shared-cal-heading p{display:none}
.shared-cal-scroll:has(.scheduler-time-grid){max-height:65vh;overflow:auto}
.shared-cal-grid.scheduler-time-grid{min-width:900px;gap:1px;align-items:stretch;grid-auto-rows:minmax(52px,auto)}
.shared-cal-grid.scheduler-time-grid.day{min-width:0}
.scheduler-day-heading{position:sticky;top:0;z-index:2;background:#f6f7f8;padding:16px 8px;text-align:center;font-size:13px;font-weight:600;border-bottom:2px solid transparent}
.scheduler-day-heading.is-today{border-bottom-color:var(--mcn-yellow);background:#fffbe5}
.scheduler-hour{background:#fafbfc;color:#68717b;font-size:11px;padding:10px 6px;text-align:center;line-height:1.5}
.scheduler-slot{background:#fff;min-height:52px;position:relative;padding:4px;display:flex;flex-direction:column;gap:4px}
main.data-view[data-section] #details .scheduler-slot-add{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;border-radius:0;min-height:0;background:transparent;box-shadow:none;color:transparent;font-size:18px;display:flex;align-items:center;justify-content:center}
main.data-view[data-section] #details .scheduler-slot-add:hover,main.data-view[data-section] #details .scheduler-slot-add:focus-visible{background:#fff9db;color:#333}
.scheduler-slot .shared-cal-event{position:relative;z-index:1;flex-shrink:0;margin:0!important}
.shared-cal-day.outside-month{background:#f7f8fa}.shared-cal-day.outside-month h3{color:#939aa1}
.scheduler-slot.drop-target,.shared-cal-day.drop-target{outline:2px solid var(--mcn-yellow);outline-offset:-2px;background:#fff7bf}
.shared-cal-event[draggable=true]{cursor:grab}.shared-cal-event[draggable=true]:active{cursor:grabbing}
.engineer-workspace{max-width:1100px;margin:auto}.engineer-heading,.engineer-card>header{display:flex;align-items:center;justify-content:space-between;gap:16px}.engineer-heading{margin-bottom:20px}.engineer-heading h1,.engineer-card h2{margin:0}.engineer-heading label{max-width:200px}
.engineer-jobs{display:grid;gap:20px}.engineer-card{padding:24px;border:1px solid var(--mcn-border);border-radius:8px;background:white}.engineer-card p{line-height:1.5;overflow-wrap:anywhere}.engineer-section{border-top:1px solid var(--mcn-border);padding:14px 0}.engineer-section summary{cursor:pointer;font-weight:600;min-height:36px}.engineer-section>div{padding:12px 0}.engineer-checklist{display:grid;gap:16px}.engineer-check-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.engineer-check-row label{display:flex;flex-direction:column;gap:8px}.engineer-card .record-actions{flex-wrap:wrap}.engineer-card .record-actions a{padding:10px 12px;border:1px solid var(--mcn-border);border-radius:6px;color:inherit;text-decoration:none}
.mobile-nav-toggle{display:none}
@media(max-width:900px){
 body>header{position:sticky!important;top:0;left:0!important;width:100%!important;height:auto!important;min-height:64px;display:flex!important;padding:8px 12px!important;gap:8px;z-index:35}
 body>header .brand{width:108px!important;min-width:108px!important;padding:0!important}body>header .brand img{max-width:108px!important}body>header .header-context,body>header #signed-in,body>header #workspace-search,body>header .workspace-search{display:none!important}
 body>header .header-actions{margin-left:auto;gap:6px}.mobile-nav-toggle{display:inline-flex;min-height:44px;align-items:center}
 #business-nav{position:fixed!important;left:0!important;top:64px!important;bottom:0!important;width:260px!important;z-index:34;overflow:auto;transform:translateX(-100%);transition:transform .18s ease;background:#eef0f2}
 body.mobile-nav-open #business-nav{transform:translateX(0);box-shadow:8px 0 24px #0002}
 body main,body main.data-view{margin-left:0!important;left:0!important;top:auto!important;width:100%!important;height:calc(100dvh - 64px)!important;min-width:0!important}
 main.data-view>aside{padding:16px!important;width:100%!important;min-width:0!important}main.data-view #details{min-width:0!important;padding:0!important}
 .engineer-heading{align-items:flex-start}.engineer-heading h1{font-size:25px}.engineer-heading p{display:none}.engineer-heading label{max-width:150px}.engineer-card{padding:16px}.engineer-card>header{align-items:flex-start}.engineer-card h2{font-size:20px}.engineer-check-row{grid-template-columns:1fr}
 #modal:not(.document-preview){width:100vw!important;max-width:100vw!important;height:100dvh!important;max-height:100dvh!important;margin:0!important;padding:20px 16px!important;border-radius:0!important}#modal .form-grid{grid-template-columns:1fr!important}
 input,select,textarea{font-size:16px!important}button,a.record-link{min-height:44px}.module-tabs,.profile-tabs{max-width:100%;overflow:auto;flex-wrap:nowrap}.table-scroll{overflow-x:auto}.ops-card{padding:16px}.workspace-table{min-width:650px}
}
.relationship-timeline-row{display:grid;grid-template-columns:180px minmax(0,1fr) 140px;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--mcn-border)}.relationship-timeline-row small{color:var(--mcn-secondary)}.relationship-timeline-row button{text-align:left;white-space:normal}.relationship-timeline{padding:16px;background:#fff;border:1px solid var(--mcn-border);border-radius:8px}.relationship-timeline summary{cursor:pointer;font-weight:600}
@media(max-width:900px){.relationship-timeline-row{grid-template-columns:1fr;gap:6px}.ops-toolbar{display:flex;flex-wrap:wrap}.ops-toolbar label{min-width:0;flex:1 1 140px}.ops-toolbar input{width:100%}}

@media(max-width:900px){body>header .workspace-search-button{display:none!important}.engineer-heading{gap:12px!important;padding:0!important;background:transparent!important}.engineer-heading h1{font-size:26px}.engineer-heading label{max-width:160px}}
body[data-workspace-section="engineer"] main>aside>footer{display:none}

/* Shared HR registers: selectors belong to the filter bar, actions stay aligned. */
main.data-view[data-section] [data-module-section="staff"] #module-tabs.section-picker {display:flex;align-items:end;gap:16px;border:0;padding:0;margin:16px 0;max-width:100%;}
main.data-view[data-section] [data-module-section="staff"] #module-tabs.section-picker label {display:grid;gap:8px;width:min(100%,360px);margin:0;line-height:1.4;}
main.data-view[data-section] [data-module-section="staff"] #module-actions {display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin:20px 0 16px;}
main.data-view[data-section] [data-module-section="staff"] .module-toolbar {display:flex;align-items:flex-end;flex-wrap:wrap;gap:16px;}
main.data-view[data-section] [data-module-section="staff"] .staff-member-filter {display:grid;gap:8px;flex:0 1 240px;margin:0;line-height:1.4;}
main.data-view[data-section] [data-module-section="staff"] .module-toolbar #module-search {flex:1 1 280px;min-width:0;}
main.data-view[data-section] [data-module-section="staff"] .module-toolbar .check {min-height:44px;display:flex;align-items:center;margin:0;}
main.data-view[data-section] [data-module-section="staff"] .profile-fields {align-items:start;}
@media(max-width:680px){main.data-view[data-section] [data-module-section="staff"] .staff-member-filter,main.data-view[data-section] [data-module-section="staff"] .module-toolbar #module-search {flex-basis:100%;width:100%;}main.data-view[data-section] [data-module-section="staff"] #module-actions {justify-content:flex-start;}}

/* Payroll mapping uses the shared compact HR workbench. */
.payroll-mappings { display: grid; gap: 16px; margin-block: 20px; }
.payroll-mappings .payroll-person { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr) 140px; align-items: end; gap: 12px; padding: 16px; border: 1px solid #dce0e4; border-radius: 8px; min-width: 0; }
.payroll-mappings .payroll-person h3 { grid-column: 1 / -1; margin: 0; font-size: 15px; line-height: 1.4; font-weight: 600; }
.payroll-mappings label { display: grid; gap: 8px; min-width: 0; }
.payroll-mappings :is(input,select) { width: 100%; min-width: 0; }
@media (max-width: 640px) { .payroll-mappings .payroll-person { grid-template-columns: minmax(0,1fr); } }

/* My Day: contained headings and responsive job delivery controls. */
main.data-view #details .engineer-workspace { width:100%; max-width:1100px; min-width:0; margin-inline:auto; }
main.data-view #details .engineer-heading { display:grid; grid-template-columns:minmax(0,1fr) 180px; align-items:end; gap:20px; margin:0 0 20px; padding:0; height:auto; position:static; background:none; border:0; }
main.data-view #details .engineer-heading h1 { margin:0 0 8px; line-height:1.2; }
main.data-view #details .engineer-heading p { margin:0; }
main.data-view #details .engineer-heading label, .engineer-toolbar label { display:grid; gap:8px; margin:0; max-width:none; min-width:0; }
main.data-view #details .engineer-toolbar { display:flex; align-items:end; justify-content:space-between; flex-wrap:wrap; gap:16px; padding:16px; margin-bottom:20px; background:#e9edef; border:1px solid var(--mcn-border); border-radius:8px; }
.engineer-toolbar label { width:220px; }.engineer-toolbar [data-job-count] { padding-bottom:12px; font-size:13px; color:var(--mcn-secondary); }
main.data-view #details .engineer-job-heading { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:16px; padding:0 0 16px; border-bottom:1px solid var(--mcn-border); }
main.data-view #details .engineer-job-heading small { display:block; margin-bottom:6px; color:var(--mcn-secondary); line-height:1.5; }
main.data-view #details .engineer-job-heading h2 { margin:0; font-size:20px; line-height:1.35; overflow-wrap:anywhere; }
main.data-view #details .engineer-job-heading p { margin:8px 0 0; }
main.data-view #details .engineer-card { min-width:0; padding:20px; overflow:visible; box-shadow:none; }
main.data-view #details .engineer-card .status-badge { position:static; white-space:normal; line-height:1.4; height:auto; padding:6px 10px; max-width:150px; }
main.data-view #details .engineer-card .record-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-start; gap:8px; margin:12px 0; }
main.data-view #details .engineer-card .record-actions:empty { display:none; }
main.data-view #details .engineer-section { margin:0; padding:0; background:transparent; border:0; border-top:1px solid var(--mcn-border); border-radius:0; min-width:0; }
main.data-view #details .engineer-section>summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 0; min-height:52px; line-height:1.4; list-style:none; position:static; }
.engineer-section>summary::-webkit-details-marker { display:none; }
main.data-view #details .engineer-section>summary::after { content:'⌄'; position:static; flex:0 0 16px; width:16px; text-align:center; font-size:16px; line-height:1; }
main.data-view #details .engineer-section[open]>summary::after { content:'⌃'; }
main.data-view #details .engineer-section>div { min-width:0; padding:0 0 16px; }
main.data-view #details .engineer-check-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; gap:12px; padding:16px; border:1px solid var(--mcn-border); border-radius:6px; }
main.data-view #details .engineer-check-row label { display:grid; gap:8px; min-width:0; margin:0; line-height:1.5; }
main.data-view #details .engineer-workspace :is(input,select,textarea) { width:100%; min-width:0; max-width:100%; }
main.data-view #details .engineer-workspace button { white-space:normal; line-height:1.4; max-width:100%; }
@media(max-width:640px){
 main.data-view #details .engineer-heading { grid-template-columns:minmax(0,1fr); gap:16px; }
 main.data-view #details .engineer-heading label { width:100%; max-width:none; }
 main.data-view #details .engineer-card { padding:16px; }
 main.data-view #details .engineer-job-heading { grid-template-columns:minmax(0,1fr); gap:10px; }
 main.data-view #details .engineer-job-heading .status-badge { justify-self:start; }
 main.data-view #details .engineer-check-row { grid-template-columns:minmax(0,1fr); }
 .engineer-toolbar label { flex:1; }
}
main.data-view #details .engineer-description { margin:12px 0; border:0; border-radius:0; background:none; }
main.data-view #details .engineer-description summary { padding:12px 0; cursor:pointer; font-weight:600; line-height:1.5; }
main.data-view #details .engineer-description p { white-space:pre-wrap; margin:0 0 16px; line-height:1.65; }

/* Shared scheduler and its independent unscheduled work queue. */
.scheduler-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:16px;align-items:start}
.scheduler-layout>.shared-cal-scroll{min-width:0;max-height:70vh;overflow:auto}
.scheduler-backlog{min-width:0;background:#fff;border:1px solid var(--mcn-border);border-radius:8px;padding:16px}
.scheduler-backlog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.scheduler-backlog-heading h2{font-size:16px;margin:0;line-height:1.4}
.scheduler-backlog-heading span{font-size:13px;font-variant-numeric:tabular-nums;color:#66717b}
.scheduler-backlog>.help{font-size:12px;line-height:1.5;margin:10px 0 16px}
.scheduler-backlog [data-unscheduled]{display:grid;gap:8px;max-height:56vh;overflow:auto;min-width:0}
.scheduler-backlog .scheduler-backlog-job{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;width:100%;min-width:0;padding:12px;text-align:left;white-space:normal;border:1px solid var(--mcn-border);border-radius:6px;background:#fff;line-height:1.4}
.scheduler-backlog-job[draggable=true]{cursor:grab}
.scheduler-backlog-job strong,.scheduler-backlog-job span{overflow-wrap:anywhere}
.scheduler-backlog-job small,.scheduler-backlog-job span{font-size:12px;color:#66717b}
.scheduler-backlog-job:hover{background:#fffbea;border-color:#dfc957}
@media(max-width:900px){.scheduler-layout{grid-template-columns:minmax(0,1fr)}.scheduler-backlog [data-unscheduled]{max-height:320px}.scheduler-backlog{width:100%;box-sizing:border-box}}

/* Scheduler duration cards: resizing stays within the schedule. */
.shared-cal-grid.scheduler-time-grid{position:relative;grid-auto-flow:row;gap:0}
.shared-cal-grid.scheduler-time-grid>.scheduler-slot{min-height:0;border-bottom:1px solid #e3e5e8;border-right:1px solid #e3e5e8}
main.data-view[data-section] #details .scheduler-timed-event{z-index:2;align-self:stretch;justify-self:start;min-height:0;height:auto;overflow:hidden;padding:9px 12px;position:relative;display:flex;flex-direction:column;gap:2px;box-sizing:border-box}
.scheduler-timed-event strong,.scheduler-timed-event span:not([data-resize]){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.shared-cal-event{position:relative}
.scheduler-resize{position:absolute;z-index:4;touch-action:none;display:block;opacity:.45}
.scheduler-resize:hover,.scheduler-resize:focus-visible{opacity:1;background:var(--mcn-yellow);outline:2px solid #9b8000}
.scheduler-resize.top,.scheduler-resize.bottom{left:25%;right:25%;height:8px;cursor:ns-resize;border-radius:4px}
.scheduler-resize.top{top:0}.scheduler-resize.bottom{bottom:0}
.scheduler-resize.left,.scheduler-resize.right{top:25%;bottom:25%;width:8px;cursor:ew-resize;border-radius:4px}
.scheduler-resize.left{left:0}.scheduler-resize.right{right:0}
@media(pointer:coarse){.scheduler-resize.top,.scheduler-resize.bottom{height:14px}.scheduler-resize.left,.scheduler-resize.right{width:14px}}
.scheduler-resize::after{content:'';position:absolute;background:#7c858d;border-radius:2px;pointer-events:none}
.scheduler-resize.top::after,.scheduler-resize.bottom::after{height:2px;width:18px;left:calc(50% - 9px);top:3px}
.scheduler-resize.left::after,.scheduler-resize.right::after{width:2px;height:18px;top:calc(50% - 9px);left:3px}

.notification-menu{position:relative;flex:none}.notification-menu>summary{list-style:none;display:flex;align-items:center;justify-content:center;width:42px;height:42px;cursor:pointer;border:1px solid #dce0e5;border-radius:8px;background:#fff;position:relative}.notification-menu>summary::-webkit-details-marker{display:none}.notification-menu svg{width:21px;height:21px}.notification-count{position:absolute;right:-5px;top:-5px;min-width:18px;padding:2px 4px;background:#FFD60A;color:#202327;border-radius:10px;font-size:11px;font-weight:700;text-align:center;line-height:1.2}.notification-count[hidden]{display:none}.notification-panel{position:absolute;right:0;top:calc(100% + 8px);width:min(360px,calc(100vw - 24px));max-height:70vh;overflow:auto;background:white;border:1px solid #dce0e5;border-radius:8px;box-shadow:0 12px 32px #20232722;z-index:1000;padding:12px}.notification-panel h3{font-size:16px;margin:4px 8px 12px}.notification-panel .notification-item{display:flex;width:100%;flex-direction:column;align-items:flex-start;text-align:left;gap:6px;padding:12px;border:0;border-top:1px solid #e9ebee;border-radius:0;background:#fff;line-height:1.4;white-space:normal}.notification-item.unread{border-left:3px solid #FFD60A;background:#fffdf1}.notification-item span{white-space:pre-line;font-size:13px}.notification-item small{color:#69717c}.notification-live{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.notification-ping>summary{animation:notification-pulse .7s ease-out 2}@keyframes notification-pulse{50%{box-shadow:0 0 0 5px #FFD60A55}}@media(prefers-reduced-motion:reduce){.notification-ping>summary{animation:none}}
.scheduler-backlog.drop-target{outline:2px solid var(--mcn-yellow);outline-offset:-2px;background:#fff7bf}

/* Shared responsive workspace: contain wide records without clipping controls. */
.dashboard-attention{padding:20px;background:#fff;border:1px solid var(--mcn-border);border-radius:8px;margin-block:20px}.dashboard-attention .dashboard-row{width:100%;gap:16px;text-align:left}.dashboard-attention .dashboard-row span{color:#69717c}
@media(max-width:1024px){.module-toolbar,.record-actions,.shared-cal-toolbar,.shared-cal-filters{flex-wrap:wrap;gap:10px}.module-toolbar>*{min-width:0}.profile-fields,.form-grid{min-width:0}.table-scroll{max-width:100%;overscroll-behavior-x:contain}.record-body{overflow-wrap:anywhere}}
@media(max-width:900px){
 html,body{max-width:100%;overflow-x:hidden}main.data-view #details>*{max-width:100%;box-sizing:border-box}
 .dashboard-attention .dashboard-row{align-items:flex-start;flex-direction:column;gap:4px}.metric-grid,.dashboard-grid,.profile-fields{grid-template-columns:minmax(0,1fr)!important}
 .module-toolbar input,.module-toolbar select,.shared-cal-filters input,.shared-cal-filters select{width:100%;min-width:0}.shared-cal-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.shared-cal-filters label{min-width:0}
 .record-actions button,.module-toolbar button{white-space:normal}.kv{grid-template-columns:minmax(0,1fr)!important;gap:4px}.kv>*{min-width:0;overflow-wrap:anywhere}
 #modal-content{min-width:0;max-width:100%;padding-bottom:env(safe-area-inset-bottom)}.editor-save-bar{flex-wrap:wrap;gap:8px;padding-bottom:max(12px,env(safe-area-inset-bottom))!important}
 .notification-panel{position:fixed;top:70px;right:12px}.more-actions-panel{max-width:calc(100vw - 24px)}
 .customer-document{overflow-wrap:break-word}.document-preview{overflow:auto!important}.job-form-editor{min-width:0;overflow-x:auto}
 input[type=file]{width:100%;max-width:100%}.engineer-card .record-actions{display:flex;gap:8px}.engineer-card .record-actions>*{flex:1 1 auto}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:.01ms!important}}
#field-outbox-status{position:fixed;bottom:16px;right:16px;z-index:90;max-width:min(360px,calc(100vw - 32px));background:#fff;border:1px solid #dce0e5;border-left:4px solid #FFD60A;box-shadow:0 4px 20px #0002;padding:12px;border-radius:8px;line-height:1.5}#field-outbox-status[hidden]{display:none}#field-outbox-status button{margin-left:12px}#field-outbox-status p{font-size:13px;overflow-wrap:anywhere}
@media(max-width:900px){
 body #business-nav{display:flex!important;flex-direction:column!important;flex-wrap:nowrap!important;align-items:stretch!important;height:calc(100dvh - 64px)!important;max-height:none!important;overflow-y:auto!important;overflow-x:hidden!important;white-space:normal!important;box-sizing:border-box;padding:12px!important}
 body #business-nav>*{flex-shrink:0;max-width:100%;width:100%;box-sizing:border-box}body #business-nav button{width:100%!important;min-height:44px!important;white-space:normal!important}body #business-nav .nav-group{display:block!important;margin-top:12px!important}body #business-nav .nav-group:not([open])>button{display:none!important}
}

/* MCN phone workbench: quiet grouped surfaces, clear hierarchy and thumb-sized actions.
   Deliberately scoped to screen: customer PDFs keep their approved document layout. */
.mobile-nav-backdrop{display:none}
@media screen and (max-width:900px){
 :root{--phone-gap:16px;--phone-surface:#fff;--phone-border:#e1e5e9;--phone-muted:#68717b}
 body>header{border-bottom:1px solid var(--phone-border);background:#fafbfceF!important;box-shadow:0 2px 12px #20252a05;backdrop-filter:blur(16px);padding-top:max(8px,env(safe-area-inset-top))!important}
 body>header .mobile-nav-toggle{order:-1;flex:0 0 44px;width:44px;height:44px;padding:0;justify-content:center;border:0;background:transparent;box-shadow:none}
 body>header .brand{flex-shrink:0}body>header .header-actions{min-width:0}
 #account-actions>summary{font-size:12px;padding:10px!important;min-height:44px;white-space:nowrap}
 #account-actions>.more-actions-panel{position:fixed;top:72px;right:12px;width:min(300px,calc(100vw - 24px));border-radius:8px;padding:6px;box-shadow:0 12px 36px #20252a20}
 .mobile-nav-backdrop:not([hidden]){display:block;position:fixed;inset:64px 0 0;z-index:33;border:0;border-radius:0;background:#18222d55;backdrop-filter:blur(3px)}
 body #business-nav{width:min(300px,85vw)!important;padding:16px!important;background:#f6f7f9!important;padding-bottom:max(24px,env(safe-area-inset-bottom))!important}
 body #business-nav button{font-size:14px;line-height:1.4;padding:12px!important;gap:12px;text-align:left;border-radius:8px}
 body #business-nav .nav-group>summary{padding:16px 12px;font-size:12px;letter-spacing:.02em}
 main.data-view>aside{padding:20px 16px calc(24px + env(safe-area-inset-bottom))!important;background:#f3f5f7}
 main.data-view #details h1{font-size:26px;line-height:1.2;letter-spacing:-.035em;margin:0 0 8px;font-weight:700}
 main.data-view #details h2{font-size:19px;line-height:1.3;letter-spacing:-.02em}
 main.data-view #details .dashboard-heading{margin-bottom:20px}
 main.data-view #details .dashboard-heading p{font-size:14px;line-height:1.5;margin:0;color:var(--phone-muted)}
 main.data-view #details .dashboard-metrics{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:1px;background:var(--phone-border);border:1px solid var(--phone-border);border-top:3px solid var(--mcn-yellow);overflow:hidden;margin:16px 0 20px}
 main.data-view #details .dashboard-metric{padding:16px!important;min-height:118px;border:0!important;border-radius:0!important;background:white;gap:8px;min-width:0}
 main.data-view #details .dashboard-metric strong{font-size:30px;line-height:1.1;margin:8px 0 0}
 main.data-view #details .dashboard-metric p{display:none}.dashboard-metric .metric-heading{font-size:12px;line-height:1.4;gap:8px}
 main.data-view #details .dashboard-panels{display:flex!important;flex-direction:column;gap:16px!important}
 main.data-view #details .dashboard-card{width:100%!important;margin:0!important;padding:18px!important;border:1px solid var(--phone-border);border-radius:8px;box-shadow:0 2px 8px #20252a03}
 main.data-view #details .dashboard-row{padding:12px 0;min-height:48px;gap:12px;line-height:1.5}.dashboard-row>*{min-width:0;overflow-wrap:anywhere}
 main.data-view #details :is(.module-toolbar,.register-toolbar,.jobs-table-filters){display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px;margin:16px 0;border-radius:8px}
 main.data-view #details :is(.module-toolbar,.register-toolbar,.jobs-table-filters)>:is(input,select){flex:1 1 140px;min-width:0;width:100%;margin:0}
 main.data-view #details :is(.module-tabs,.profile-tabs,.section-tabs){display:flex;flex-wrap:nowrap;overflow-x:auto;gap:0;scrollbar-width:none;scroll-padding:16px;padding-bottom:2px;margin-block:16px}
 main.data-view #details :is(.module-tabs,.profile-tabs,.section-tabs)>button{flex:0 0 auto;white-space:nowrap;min-height:46px;padding:12px 16px}
 main.data-view #details .record-actions{gap:8px;margin:12px 0;flex-wrap:wrap}main.data-view #details .record-actions button{min-height:44px;padding:10px 14px}
 main.data-view #details .profile-fields{gap:16px}.profile-fields fieldset{padding:16px;min-width:0}
 #modal:not(.document-preview){padding:20px 16px max(20px,env(safe-area-inset-bottom))!important;background:#f3f5f7}
 #modal .form-grid{gap:16px!important}#modal label{line-height:1.5;gap:8px;min-width:0}#modal :is(input,select,textarea){min-height:46px;border-radius:8px;max-width:100%}#modal textarea{min-height:100px}
 #modal :is(.editor-save-bar,.quote-save-actions){gap:8px;background:#f7f8fa!important;padding:12px 16px max(12px,env(safe-area-inset-bottom))!important;border-top:1px solid var(--phone-border)}
 #modal :is(.editor-save-bar,.quote-save-actions)>button{min-height:46px}
 .shared-cal-filters{padding:12px;gap:12px}.shared-cal-filters label:last-child{grid-column:1/-1}.shared-cal-toolbar{gap:8px}.scheduler-backlog{padding:16px}
 main.data-view #details .jobs-table-scroll{border:0;background:none;overflow:visible}
 main.data-view #details .jobs-data-table{display:block;min-width:0!important;width:100%!important;border:0;background:none}
 main.data-view #details .jobs-data-table thead{display:block;overflow-x:auto;white-space:nowrap;margin-bottom:12px;background:transparent;border:0}
 main.data-view #details .jobs-data-table thead tr{display:flex;gap:6px}.jobs-data-table thead th{padding:0!important;border:0!important;flex:0 0 auto}
 main.data-view #details .jobs-data-table thead button{font-size:12px;min-height:44px;padding:8px 12px}
 main.data-view #details .jobs-data-table tbody{display:grid;gap:12px}
 main.data-view #details .jobs-data-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr);padding:16px;background:white!important;border:1px solid var(--phone-border);border-radius:8px;gap:10px}
 main.data-view #details .jobs-data-table td{display:grid;grid-template-columns:90px minmax(0,1fr);align-items:center;gap:4px 12px;width:auto!important;padding:0!important;border:0!important;min-width:0;white-space:normal;overflow-wrap:anywhere;font-size:14px}
 main.data-view #details .jobs-data-table td::before{content:attr(data-mobile-label);font-size:12px;line-height:1.4;color:var(--phone-muted)}
 main.data-view #details .jobs-data-table td:first-child{display:block;border-bottom:1px solid var(--phone-border)!important;padding-bottom:12px!important}
 main.data-view #details .jobs-data-table td:first-child::before,.jobs-data-table td:empty{display:none!important}
 main.data-view #details .jobs-data-table td>*{grid-column:2;max-width:100%;min-width:0}.jobs-data-table td::before{grid-column:1;grid-row:1/span 3}
 main.data-view #details .jobs-data-table .job-table-link{padding:0;min-height:32px;white-space:normal;text-align:left;justify-content:flex-start}
 main.data-view #details .jobs-data-table td:first-child .job-table-link{font-size:16px;font-weight:600;line-height:1.4}
 main.data-view #details .jobs-data-table .job-status-select{width:100%;min-height:44px;max-width:none}
 button:active{filter:brightness(.97)}button:focus-visible,summary:focus-visible{outline:2px solid #746000;outline-offset:3px}
}
/* Role-based learning uses the same workspace surfaces and MCN accent. */
.training-workspace{max-width:1080px;margin:auto;min-width:0}.training-toolbar{display:grid;grid-template-columns:240px minmax(0,1fr);gap:16px;margin:24px 0 16px}.training-toolbar label{display:grid;gap:8px;font-size:13px}.training-toolbar :is(input,select){width:100%;min-width:0}.training-progress{color:var(--mcn-secondary);font-size:13px}.training-lessons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.training-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px;background:white;border:1px solid var(--mcn-border);border-radius:8px}.training-card h2{font-size:16px!important;margin:0}.training-card p{font-size:13px;color:var(--mcn-secondary);margin:8px 0 0}.training-card button{flex-shrink:0}.training-detail ol{padding:24px 24px 24px 48px;background:white;border:1px solid var(--mcn-border);border-radius:8px}.training-detail li{padding:10px 0 10px 8px;line-height:1.65}.training-actions,.training-video-controls{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.training-video{padding:20px;border:1px solid var(--mcn-border);border-radius:8px;background:white}.training-video summary{cursor:pointer;font-weight:600}.training-video canvas,.training-video video{width:100%;height:auto;border-radius:8px}.training-video video[hidden]{display:none}.training-video-controls a{padding:12px;color:inherit}.training-video-status{font-size:13px;line-height:1.5}
@media(max-width:900px){.training-toolbar,.training-lessons{grid-template-columns:minmax(0,1fr)}.training-card{padding:16px;align-items:flex-start;flex-direction:column}.training-card button{width:100%}.training-video{padding:12px}.training-detail ol{padding:16px 16px 16px 34px}.training-actions>*{flex:1}}
/* Semantic status colours stay distinct from MCN's yellow action colour. */
.quote-record-view{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;min-width:0}
.quote-record-section{padding:24px;background:#fff;border:1px solid var(--mcn-border);border-radius:8px;min-width:0}#details .quote-record-section h3{margin:0 0 16px;font-size:16px;line-height:1.4}
.quote-record-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px}.quote-record-meta h3{grid-column:1/-1}#details .quote-record-meta .kv{display:flex;flex-direction:column;align-items:flex-start;gap:6px;border:0;padding:0;min-width:0}
.quote-record-section .document-copy{max-width:none;width:100%;font-size:14px;line-height:1.7;overflow-wrap:anywhere}.quote-record-section .document-copy p{max-width:none}
.quote-record-table{overflow-x:auto}.quote-record-table table{width:100%;border-collapse:collapse;min-width:660px}.quote-record-table :is(th,td){padding:14px 12px;border-bottom:1px solid var(--mcn-border);text-align:right;font-size:13px;font-variant-numeric:tabular-nums}.quote-record-table :is(th,td):nth-child(-n+2){text-align:left}.quote-record-table th{background:#f5f6f8;color:var(--mcn-secondary);font-weight:600}
.quote-record-totals{max-width:360px;margin:20px 0 0 auto}.quote-record-totals>div{display:flex;justify-content:space-between;gap:24px;padding:10px 0}.quote-record-totals dd{margin:0;font-variant-numeric:tabular-nums}.quote-record-totals>div:last-child{border-top:1px solid var(--mcn-border);font-weight:700}
@media(max-width:900px){.quote-record-section{padding:16px}.quote-record-meta{grid-template-columns:minmax(0,1fr)}.quote-record-totals{max-width:none}.quote-record-view{gap:16px}}

/* Document wording fills its editor/page; generic dialog prose has a narrower measure. */
#modal .quote-rich :is(p,div,ul,ol,blockquote),
#modal .document-copy :is(p,div,ul,ol,blockquote),
#modal .document-writing [contenteditable] :is(p,div,ul,ol,blockquote),
#modal .document-writing [contenteditable] {
 max-width:none;
 min-width:0;
 box-sizing:border-box;
 overflow-wrap:anywhere;
}
#modal .quote-rich p,
#modal .document-copy p,
#modal .document-writing [contenteditable] p {width:100%;}

/* Shared MCN status selection across quotes, jobs, contracts and invoices. */
#details .dashboard-status-summary button.stage-stat[data-status] {
 color:#24282d;
 background:#fff;
 border-bottom:3px solid transparent;
 box-shadow:none;
}
#details .dashboard-status-summary button.stage-stat[data-status]:hover {
 background:#fff4b0;
}
#details .dashboard-status-summary button.stage-stat[data-status][aria-pressed=true] {
 background:var(--mcn-yellow);
 border-bottom-color:var(--mcn-yellow);
 box-shadow:none;
}
/* Shared compact commercial registers, with the same rhythm as the jobs register. */
#details .document-register-scroll{overflow:auto;border:1px solid var(--mcn-border);border-radius:8px;background:white}
#details .document-register table{width:100%;border-collapse:collapse;min-width:900px;font-size:14px}
#details .document-register th{background:#f3f5f6;text-align:left;border-bottom:1px solid var(--mcn-border)}
#details .document-register th button{border:0;background:none;box-shadow:none;padding:14px 16px;font-size:12px;color:#626b75;white-space:nowrap}
#details .document-register td{padding:14px 16px;border-bottom:1px solid var(--mcn-border);vertical-align:middle;line-height:1.5;max-width:270px;overflow-wrap:anywhere}
#details .document-register tbody tr{cursor:pointer}#details .document-register tbody tr:nth-child(even){background:#f8fafb}#details .document-register tbody tr:hover{background:#fffbea}
#details .document-register :is(.register-record-link,.register-site-link){display:block;border:0;padding:0;background:none;box-shadow:none;min-height:28px;text-align:left;white-space:normal;color:inherit;font-size:inherit}
#details .document-register .register-record-link{font-weight:600}#details .document-register .register-site-link{font-size:12px;color:#69727d}
#details .document-register .register-number{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
#details .jobs-data-table td{padding:14px 16px;line-height:1.5}#details .jobs-data-table .job-status-select{min-width:132px}
@media(max-width:900px){
 #details .document-register-scroll{border:0;overflow:visible;background:none}#details .document-register table{display:block;min-width:0}
 #details .document-register thead{display:block;overflow:auto;margin-bottom:12px}#details .document-register thead tr{display:flex}#details .document-register th{flex-shrink:0}
 #details .document-register tbody{display:grid;gap:12px}#details .document-register tbody tr{display:grid;background:white!important;border:1px solid var(--mcn-border);border-radius:8px;padding:16px}
 #details .document-register td{display:grid;grid-template-columns:110px minmax(0,1fr);gap:4px 12px;border:0;padding:6px 0;max-width:none;text-align:left;white-space:normal}
 #details .document-register td::before{content:attr(data-mobile-label);color:#69727d;font-size:12px;grid-column:1;grid-row:1/span 2}#details .document-register td>button{grid-column:2}
}

/* Shared workspace refinements: preserve document, print and map layouts. */
@media screen {
 main.data-view #details :is(.record-actions,.module-actions,.register-toolbar,.module-toolbar){gap:8px;align-items:center}
 main.data-view #details :is(.module-card,.settings-option-row,.related-row)>*{min-width:0;overflow-wrap:anywhere}
 main.data-view #details .settings-actions{display:grid;gap:0;align-items:stretch}
 main.data-view #details .settings-option-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;min-height:56px;text-align:left;border:0;border-bottom:1px solid var(--mcn-border);border-radius:0;background:white;line-height:1.5}
 main.data-view #details .settings-option-row:last-child{border-bottom:0}
 main.data-view #details .settings-option-row>span{flex:0 0 16px;text-align:center;font-size:20px;line-height:1}
 main.data-view #details .settings-option-row:hover{background:#fffbea}
 main.data-view #details :is(.module-pagination,.jobs-table-pagination){display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin:16px 0;font-variant-numeric:tabular-nums}
 main.data-view #details :is(.module-pagination,.jobs-table-pagination)>span{margin-right:auto;color:#59636d;font-size:13px}
 :is(#details,#modal,body>header) :is(button,a,summary,input,select,textarea):focus-visible{outline:2px solid #766100;outline-offset:3px}
 #modal :is(.form-grid,.field-section){min-width:0}#modal .form-grid{column-gap:24px;row-gap:16px}
 #modal :is(input,select,textarea)[aria-invalid=true]{border-color:#b3261e;outline-color:#b3261e}
 #modal :is(.error,[role=alert]):not(:empty){padding:12px 16px;border-left:3px solid #b3261e;background:#fff2f0;color:#8b221b;line-height:1.5;overflow-wrap:anywhere}
 #details .register-empty{padding:32px 24px;line-height:1.5}#details .register-empty h3{margin:0 0 8px}#details .register-empty p{margin:0 auto}
 .more-actions-panel{max-height:min(420px,65dvh);overflow-y:auto;overscroll-behavior:contain}
}
@media(prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}#details *,#modal *,#business-nav *,body>header *{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media screen{main.data-view #details .settings-category-panel .settings-actions{width:100%;max-width:none;grid-template-columns:minmax(0,1fr);justify-self:stretch}main.data-view #details .settings-category-panel .settings-option-row{width:100%;max-width:none;justify-self:stretch}}

/* One typography and spacing scale for every operational workspace. */
@media screen {
 :root{--workspace-title:26px;--workspace-title-line:32px;--workspace-section:18px;--workspace-section-line:24px;--workspace-gap:24px;--workspace-control:40px}
 main.data-view[data-section]>aside{padding:24px 32px}
 main.data-view #details .workspace-page-title{font-family:var(--mcn-font);font-size:var(--workspace-title)!important;line-height:var(--workspace-title-line)!important;font-weight:700!important;letter-spacing:-.025em;margin-top:0!important;margin-bottom:16px!important}
 main.data-view #details :is(.workspace-title,.dashboard-heading,.shared-cal-heading,.engineer-heading,.settings-heading,.hs-heading,.register-heading){margin-top:0;padding-top:0;gap:16px;align-items:flex-start}
 main.data-view #details :is(.dashboard-card,.settings-category-panel,.hr-card,.hs-card,.engineer-card,.training-card,.quote-record-section) :is(h2,h3):not(.workspace-page-title){font-size:var(--workspace-section)!important;line-height:var(--workspace-section-line)!important;font-weight:650;margin:0 0 16px;letter-spacing:-.015em}
 main.data-view #details :is(.workspace-title,.dashboard-heading,.shared-cal-heading,.engineer-heading,.settings-heading,.hs-heading,.register-heading) p{font-size:14px;line-height:24px;margin:0 0 16px;color:#626b75}
 main.data-view #details :is(.metric-grid,.dashboard-panels,.profile-fields,.training-lessons){gap:var(--workspace-gap)}
 main.data-view #details :is(.module-toolbar,.register-toolbar,.jobs-table-filters){padding:16px;gap:8px;margin-block:16px}
 main.data-view #details :is(.module-toolbar,.register-toolbar,.jobs-table-filters) :is(input,select,button){min-height:var(--workspace-control);font-size:14px;line-height:20px}
 main.data-view #details :is(.record-actions,.module-actions,.register-actions) button{min-height:var(--workspace-control);font-size:14px;line-height:20px;padding:8px 16px}
 #modal:not(.document-preview) #modal-content>h2{font-size:24px!important;line-height:32px!important;margin:0 40px 24px 0!important;font-weight:700}
 #modal:not(.document-preview) label{font-size:14px;line-height:20px}#modal:not(.document-preview) .form-grid{gap:16px 24px}
}
@media screen and (max-width:900px){
 :root{--workspace-title:24px;--workspace-title-line:32px;--workspace-gap:16px;--workspace-control:44px}
 main.data-view[data-section]>aside{padding:20px 16px}
 main.data-view #details .workspace-page-title{font-size:24px!important;line-height:32px!important}
}
@media screen{main.data-view #details :is(.engineer-workspace,.training-workspace){width:100%;max-width:none;margin-inline:0}}

/* Uploaded supplier logos retain the shared circular map-marker outline. */
.map-supplier-logo{display:block!important;width:100%!important;height:100%!important;object-fit:contain;border-radius:50%;background:#fff;pointer-events:none}
.supplier-logo-section{margin-block:24px}.supplier-logo-preview{display:block;width:64px;height:64px;object-fit:contain;border:2px solid var(--mcn-yellow);border-radius:50%;background:white;margin-bottom:16px}.supplier-logo-preview[hidden]{display:none}.supplier-logo-section input{display:block;margin-top:8px}.supplier-logo-section p{font-size:13px;color:#626975}

/* Preserve full status labels and prevent trackpad overscroll navigating away. */
#scene,.fleet-inline-map,.gm-style,.leaflet-container{overscroll-behavior:none;touch-action:none}
#details .jobs-data-table th:nth-child(3),#details .jobs-data-table td:nth-child(3){min-width:176px;width:176px}
#details .jobs-data-table select.job-status-select{width:160px!important;min-width:160px!important;max-width:none!important;padding:8px 32px 8px 12px!important;line-height:20px;font-size:13px;text-overflow:clip;white-space:nowrap;border-radius:6px}
.map-supplier-logo{object-fit:cover!important}
.google-business-marker:has(.map-supplier-logo),.business-marker:has(.map-supplier-logo){padding:0!important;overflow:hidden;border-radius:50%!important}
.invoice-accounting-actions{display:flex;flex-wrap:wrap;gap:8px}
.quote-record-table td:first-child{white-space:pre-line;overflow-wrap:anywhere}
.quote-record-table table{width:100%;border-collapse:collapse}
.quote-record-table th,.quote-record-table td{padding:12px 16px;vertical-align:top;border-bottom:1px solid #e2e5e8;text-align:left;line-height:1.5}
.quote-record-table th{font-size:12px;color:#626975;background:#f5f6f7}
.job-priority-badge{display:table;margin-top:8px;padding:3px 8px;border-radius:5px;font-size:12px;font-weight:600;line-height:18px}
.job-priority-badge[data-priority="Low"],select[data-priority="Low"]{background:#e7f6ec;color:#21683c;border:1px solid #a4d9b5}
.job-priority-badge[data-priority="Medium"],select[data-priority="Medium"]{background:#fff4b8;color:#695300;border:1px solid #e8cd59}
.job-priority-badge[data-priority="High"],select[data-priority="High"]{background:#fde9e7;color:#a52b24;border:1px solid #efb2ad}
.job-create-core .job-priority-field{grid-column:1/-1}

/* Compact priority markers in the jobs overview. */
.job-priority-icon{display:block;width:28px;height:4px;margin:6px 0 0;border-radius:2px;background:var(--mcn-yellow,#FFD60A);border:0}
.job-priority-icon[data-priority="Low"]{background:#31834a;border-color:#21683c}
.job-priority-icon[data-priority="High"]{background:#d74338;border-color:#a52b24}

/* Keep register columns anchored when status filters change the visible records. */
main.data-view #details{scrollbar-gutter:stable}
@media(min-width:769px){
 #details .document-register table{table-layout:fixed;min-width:1050px}
 #details .document-register th:nth-child(1){width:11%}
 #details .document-register th:nth-child(2){width:20%}
 #details .document-register th:nth-child(3){width:25%}
 #details .document-register th:nth-child(4){width:11%}
 #details .document-register th:nth-child(5),#details .document-register th:nth-child(6){width:10%}
 #details .document-register th:nth-child(7){width:13%}
 #details .jobs-data-table{table-layout:fixed;min-width:1200px;width:100%}
 #details .jobs-data-table th:nth-child(1){width:23%}
 #details .jobs-data-table th:nth-child(2){width:17%}
 #details .jobs-data-table th:nth-child(3){width:176px}
 #details .jobs-data-table th:nth-child(4){width:17%}
 #details .jobs-data-table th:nth-child(5){width:11%}
 #details .jobs-data-table th:nth-child(6){width:11%}
 #details .jobs-data-table th:nth-child(7){width:9%}
 #details .jobs-data-table td{overflow-wrap:anywhere}
}

/* Shared operational layout: filtering must not resize columns or navigation. */
@media screen {
 main.data-view{scrollbar-gutter:stable}
 main.data-view[data-section] #details :is(.module-tabs,.section-tabs,.profile-tabs,.tabs):not(.section-picker):not(.compact-section-tabs),
 #modal :is(.quote-tabs,.he-tabs){
  display:flex;align-items:stretch;flex-wrap:nowrap;gap:0;width:100%;max-width:100%;min-width:0;
  overflow-x:auto;scrollbar-width:thin;background:transparent;border:0;border-bottom:1px solid var(--mcn-border);
  border-radius:0;padding:0;margin:16px 0 24px;box-shadow:none;
 }
 main.data-view[data-section] #details :is(.module-tabs,.section-tabs,.profile-tabs,.tabs)>button,
 #modal :is(.quote-tabs,.he-tabs)>button{
  flex:0 0 auto;min-height:44px;margin:0;padding:12px 18px;border:0;border-bottom:3px solid transparent;
  border-radius:0;background:transparent;box-shadow:none;font-size:13px;font-weight:600;line-height:18px;
  white-space:nowrap;color:var(--mcn-secondary);
 }
 main.data-view[data-section] #details :is(.module-tabs,.section-tabs,.profile-tabs,.tabs)>button:is(.active,[aria-selected=true],[aria-pressed=true]),
 #modal :is(.quote-tabs,.he-tabs)>button:is(.active,[aria-selected=true],[aria-pressed=true]){
  font-weight:600;background:#fff;color:var(--mcn-ink);border-bottom:3px solid var(--mcn-yellow);box-shadow:none;
 }
 main.data-view[data-section] #details :is(.module-tabs,.section-tabs,.profile-tabs,.tabs)>button:focus-visible,
 #modal :is(.quote-tabs,.he-tabs)>button:focus-visible{outline-offset:-3px}
 main.data-view[data-section] #details :is(.module-toolbar,.register-toolbar,.jobs-table-filters,.ops-toolbar,.performance-filters){gap:12px;padding:16px;margin-block:16px;align-items:center}
 main.data-view[data-section] #details .register-shell>.register-toolbar{margin:0;border-radius:0}
 main.data-view[data-section] #details :is(.ops-toolbar,.performance-filters){background:#e9edef;border:1px solid var(--mcn-border);border-radius:8px}
 main.data-view[data-section] #details :is(.ops-toolbar,.performance-filters) label{gap:8px}
 main.data-view[data-section] #details :is(.ops-toolbar,.performance-filters) :is(input,select,button){min-height:var(--workspace-control);margin:0}
 main.data-view[data-section] #details .workspace-table{table-layout:fixed}
 main.data-view[data-section] #details .workspace-table :is(th,td){padding:14px 16px;line-height:1.5;overflow-wrap:anywhere}
 main.data-view[data-section] #details .workspace-table th{white-space:normal}
 main.data-view[data-section] #details .workspace-table th .column-filter-trigger{max-width:100%;white-space:normal}
 main.data-view[data-section] #details .register-shell .workspace-table{min-width:780px}
 main.data-view[data-section] #details .register-shell .workspace-table th:nth-child(1){width:25%}
 main.data-view[data-section] #details .register-shell .workspace-table th:nth-child(2){width:16%}
 main.data-view[data-section] #details .register-shell .workspace-table th:nth-child(3){width:26%}
 main.data-view[data-section] #details .register-shell .workspace-table th:nth-child(4){width:13%}
 main.data-view[data-section] #details .contacts-directory table{table-layout:fixed;min-width:900px}
 main.data-view[data-section] #details .contacts-directory :is(th,td){padding:14px 16px;line-height:1.5;overflow-wrap:anywhere}
 main.data-view[data-section] #details .contacts-directory th:nth-child(1){width:19%}
 main.data-view[data-section] #details .contacts-directory th:nth-child(2){width:21%}
 main.data-view[data-section] #details .contacts-directory th:nth-child(3){width:16%}
 main.data-view[data-section] #details .contacts-directory th:nth-child(4){width:15%}
 main.data-view[data-section] #details .contacts-directory th:nth-child(5){width:22%}
 main.data-view[data-section] #details .contacts-directory th:nth-child(6){width:112px}
 main.data-view[data-section] #details .module-list>.module-card>*{min-width:0;overflow-wrap:anywhere}
 main.data-view[data-section] #details .register-empty-cell{display:table-cell;padding:24px 16px;color:var(--mcn-secondary)}
 main.data-view[data-section] #details .register-empty-cell::before{display:none}
}
@media screen and (max-width:900px){
 main.data-view[data-section] #details :is(.module-tabs,.section-tabs,.profile-tabs,.tabs)>button,
 #modal :is(.quote-tabs,.he-tabs)>button{padding-inline:14px}
 main.data-view[data-section] #details .register-empty-cell{display:block;grid-column:1/-1}
}

@media screen {
 main.data-view #details .monthly-revenue{margin:24px 0;padding:24px;min-width:0}
 .monthly-revenue-month{border-top:1px solid var(--mcn-border);padding:12px 0}
 .monthly-revenue-month>summary,.monthly-revenue-person>summary{display:flex;justify-content:space-between;gap:16px;cursor:pointer;min-height:44px;align-items:center;font-weight:600}
 .monthly-revenue-month>summary::before,.monthly-revenue-person>summary::before{content:'›';color:#69727d}
 .monthly-revenue-month[open]>summary::before,.monthly-revenue-person[open]>summary::before{content:'⌄'}
 .monthly-revenue-month summary>span{margin-left:auto;font-weight:400;font-variant-numeric:tabular-nums}
 .monthly-revenue-month>div{padding:12px 0}
 .monthly-revenue-person{padding:8px 16px;border:1px solid var(--mcn-border);border-radius:8px;margin:8px 0}
 .monthly-revenue-job{padding:16px 0;border-top:1px solid var(--mcn-border)}
 .monthly-revenue-job h3{margin:0 0 8px;font-size:16px}.monthly-revenue-job p{font-size:13px;line-height:1.5}
 .monthly-revenue .workspace-table{min-width:640px}
 @media(max-width:900px){main.data-view #details .monthly-revenue{padding:16px}.monthly-revenue-month summary{flex-wrap:wrap;gap:8px}.monthly-revenue-month summary>span{flex-basis:100%;margin-left:16px}}
}

@media screen {
 main.data-view #details .engineer-back{grid-column:1/-1;justify-self:start}
 main.data-view #details .engineer-job-summary{padding:20px}
 main.data-view #details .engineer-job-summary .engineer-job-heading{padding-bottom:8px}
 main.data-view #details .engineer-job-summary [data-actions]{margin-bottom:0}
 main.data-view #details .engineer-steps{width:100%;margin:16px 0}
 main.data-view #details .engineer-steps>button{flex:1 0 auto;text-align:center}
 main.data-view #details .engineer-quick-actions{display:flex;flex-wrap:wrap;gap:8px}
 main.data-view #details .engineer-quick-actions button{flex:1 1 120px;min-height:44px}
 main.data-view #details .engineer-card input[type=file]{max-width:100%;min-width:0;white-space:normal}
 main.data-view #details .engineer-card .job-form-editor>label{display:grid;gap:8px;margin:16px 0}
 @media(max-width:900px){
  main.data-view #details .engineer-card{padding:16px}
  main.data-view #details .engineer-steps>button{padding:12px 8px;font-size:12px;flex:1 1 0;white-space:normal}
  main.data-view #details .engineer-card [data-contact]>a{flex:1 1 120px;min-height:44px;text-align:center}
  main.data-view #details .engineer-card [data-actions]>button,main.data-view #details .engineer-card> .record-actions>button{width:100%;min-height:48px}
 }
}

@media screen {
 main.data-view #details .management-workspace{min-width:0}
 main.data-view #details .management-workspace h2{margin:28px 0 16px;font-size:20px}
 main.data-view #details .management-workspace .workspace-table{min-width:840px;font-size:13px}
 .management-workspace>details,.management-scorecard{padding:16px;background:#fff;border:1px solid var(--mcn-border);border-radius:8px;margin:16px 0}
 .management-workspace summary{min-height:44px;cursor:pointer;font-weight:600;line-height:1.5}
 .management-workspace p{line-height:1.6;color:var(--mcn-secondary)}
 .management-workspace .ops-over{color:#a13222;background:#fff2eb}
 .management-workspace .workspace-table td>small{display:block;margin-top:8px}
 .management-workspace .record-link{overflow-wrap:anywhere;white-space:normal;max-width:100%}
}

/* Director overview: existing workflows, shared workspace styling. */
.business-overview { margin: 0 0 20px; }
.business-overview-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.business-overview-card { min-width:0; padding:18px; border:1px solid #dfe2e5; border-radius:8px; background:#fff; display:flex; flex-direction:column; }
.business-overview-card h2 { margin:0 0 8px; font-size:16px; }
.business-overview-card p { margin:0 0 12px; font-size:13px; line-height:1.5; }
.business-overview-status { font-weight:600; flex:1; }
.business-overview-actions { display:flex; flex-wrap:wrap; gap:8px; }
.business-overview-actions button { font-size:12px; }
.business-overview-card details { margin-top:12px; font-size:13px; }
.business-overview-card details button { display:block; margin-top:8px; text-align:left; }
@media(max-width:1200px) { .business-overview-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .business-overview-grid { grid-template-columns:1fr; } }
.business-overview-actions { flex-direction:column; align-items:flex-start; }

.jarvis-dashboard { background:#fff; border:1px solid #dfe2e5; border-radius:8px; padding:18px; margin:0 0 20px; }
.jarvis-dashboard-heading,.jarvis-dashboard-heading>div { display:flex; align-items:center; gap:12px; }
.jarvis-dashboard-heading { justify-content:space-between; }
.jarvis-dashboard-heading h2 { margin:0; }
.jarvis-mark { display:inline-grid; place-items:center; background:var(--mcn-yellow,#FFD60A); color:#202329; width:32px; height:32px; border-radius:8px; font-weight:700; }
.jarvis-brief-items,.jarvis-run-actions { display:flex; flex-wrap:wrap; gap:8px; }
.jarvis-brief-status { font-size:13px; color:#68717c; }
.jarvis-summary { margin-top:14px; }
.jarvis-summary-text { white-space:pre-wrap; }
.jarvis-launcher { position:fixed; right:20px; bottom:20px; z-index:30; background:var(--mcn-yellow,#FFD60A)!important; color:#202329!important; box-shadow:0 3px 12px #0002; border-radius:8px; padding:10px 15px; }
body:has(dialog[open]) .jarvis-launcher { display:none; }
.jarvis-steps pre { white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; font-size:13px; background:#f6f7f9; padding:12px; border-radius:6px; }
#jarvis-runs { display:grid; gap:8px; }
#jarvis-runs button { text-align:left; }
@media(max-width:600px){.jarvis-launcher{right:12px;bottom:12px}.jarvis-dashboard-heading{align-items:flex-start}.jarvis-brief-items{display:grid}.jarvis-dashboard{padding:16px}}
body[data-workspace-section="assistant"] .jarvis-launcher { display:none; }
@media(max-width:1050px){.assistant-layout .assistant-context{order:0}}

/* Visual management views share the existing workbench controls and tables. */
main.data-view #details>.dashboard-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); margin:0 0 20px; }
.visual-toolbar { display:flex; gap:8px; flex-wrap:wrap; margin:0 0 18px; }
.visual-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border:1px solid var(--mcn-border,#dfe2e5); border-top:3px solid var(--mcn-yellow); background:white; border-radius:8px; margin:20px 0; overflow:hidden; }
.visual-kpis>div { padding:18px 20px; border-right:1px solid var(--mcn-border,#dfe2e5); min-width:0; }
.visual-kpis span,.visual-kpis small { display:block; color:var(--mcn-secondary,#68717c); font-size:12px; line-height:1.5; }
.visual-kpis strong { display:block; font-size:26px; line-height:1.25; margin:9px 0; color:#25292c; }
.visual-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-bottom:20px; }
.visual-card { min-width:0; background:white; border:1px solid var(--mcn-border,#dfe2e5); border-radius:8px; padding:20px; }
.visual-card h3 { margin:0 0 18px!important; font-size:16px!important; }
.visual-card p { font-size:12px; }
.visual-card svg { display:block; width:100%; max-height:270px; }
.visual-card svg text { font:11px system-ui; fill:#68717c; }
.visual-card svg .chart-total { font-size:18px; font-weight:650; fill:#25292c; }
.chart-wide { grid-column:1/-1; }
.chart-scroll { overflow-x:auto; }
.chart-scroll svg { min-width:620px; }
.chart-scroll g[role=button] { cursor:pointer; }
.chart-scroll g[role=button]:hover rect:first-of-type,.chart-scroll g[role=button]:focus rect:first-of-type { fill:#ffd60a22; outline:none; }
.chart-key { display:flex; justify-content:center; gap:22px; font-size:12px; }
.chart-key span { display:flex; align-items:center; gap:7px; }
.chart-key i,.chart-swatch { display:inline-block; width:10px; height:10px; border-radius:2px; flex-shrink:0; }
.donut-layout { display:grid; grid-template-columns:150px minmax(0,1fr); align-items:center; gap:20px; min-height:180px; }
.chart-legend { list-style:none; padding:0; margin:0; }
.chart-legend li { display:flex; align-items:center; gap:8px; font-size:12px; margin:12px 0; }
.chart-legend strong { margin-left:auto; white-space:nowrap; }
.chart-empty { min-height:180px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:#68717c; font-size:13px; padding:20px; }
.chart-bars { display:grid; gap:16px; }
.chart-bar-row>div:first-child { display:flex; justify-content:space-between; gap:12px; font-size:12px; margin-bottom:7px; }
.chart-bar-row strong { white-space:nowrap; }
.chart-track { height:9px; background:#eef1f3; border-radius:3px; overflow:hidden; }
.chart-track span { display:block; height:100%; border-radius:3px; }
.visual-records { border:1px solid var(--mcn-border,#dfe2e5); border-radius:8px; padding:0!important; margin:12px 0; background:white; overflow:hidden; }
.visual-records>summary { padding:16px 20px; font-size:14px; font-weight:600; cursor:pointer; min-height:50px; }
.visual-records>p,.visual-records>.record-actions,.visual-records>details { margin:12px 20px; }
.visual-records>.table-scroll { border-top:1px solid var(--mcn-border,#dfe2e5); }
.visual-week-detail:not(:empty) { margin:16px 0; padding:16px; border:1px solid var(--mcn-yellow); border-radius:8px; background:white; }
.ops-hub .ops-toolbar,.management-workspace .performance-filters { padding:14px 16px; border:1px solid var(--mcn-border,#dfe2e5); border-radius:8px; background:#f7f8f9; }
@media(max-width:1000px){.visual-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.donut-layout{grid-template-columns:110px minmax(0,1fr);gap:12px}}
@media(max-width:650px){.visual-grid{grid-template-columns:1fr}.visual-card{padding:16px}.visual-kpis>div{padding:14px}.visual-kpis strong{font-size:22px}.donut-layout{grid-template-columns:120px minmax(0,1fr)}main.data-view #details>.dashboard-metrics{grid-template-columns:repeat(3,minmax(0,1fr))!important}.dashboard-metrics .dashboard-metric{padding:12px!important}.dashboard-metrics .dashboard-metric p{display:none}}
.visual-grid:has(>.visual-card:only-child){grid-template-columns:1fr}
.visual-card:only-child .donut-layout{max-width:600px}

/* Keystone is a voice surface. Configuration belongs exclusively in Settings. */
main.data-view[data-section="assistant"]>aside{padding:24px!important;display:flex;flex-direction:column;}
main[data-section="assistant"] #details{flex:1;display:flex;flex-direction:column;min-height:0;padding:0!important;max-width:none!important;}
.jarvis-voice-stage{position:relative;width:100%;flex:1;min-height:300px;margin:0;display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse at center,#fffbed 0%,#fff 65%);border:1px solid #e2e4e7;border-radius:8px;box-shadow:0 4px 20px #20232906;--voice-level:0;}
.jarvis-orb{position:relative!important;width:clamp(150px,min(28vw,36dvh),300px);aspect-ratio:1;border:0!important;border-radius:50%!important;background:transparent!important;box-shadow:none!important;padding:0!important;isolation:isolate;transform:scale(calc(1 + var(--voice-level)*.12));transition:transform 75ms linear;}
.jarvis-orb:focus-visible{outline:2px solid var(--mcn-yellow)!important;outline-offset:28px;}
.jarvis-orbit{position:absolute;inset:0;border:2px solid #e5e7eb;border-top:3px solid #FFD60A;border-right-color:transparent;border-radius:50%;animation:jarvis-orbit 24s linear infinite;box-shadow:0 0 calc(10px + var(--voice-level)*45px) #ffd60a22;}
.jarvis-orbit.orbit-two{inset:7%;animation-direction:reverse;animation-duration:19s;border-color:#edeef0;border-bottom:2px solid #d7b800;}
.jarvis-orbit.orbit-three{inset:-8%;animation-duration:38s;border:1px dashed #d9dcdf;}
.jarvis-core{position:absolute;inset:18%;border-radius:50%;overflow:hidden;opacity:.95;box-shadow:0 0 50px #ffd60a12;}
.jarvis-core img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.jarvis-wave{position:absolute;bottom:-22%;left:50%;transform:translateX(-50%);height:22px;display:flex;gap:5px;align-items:center;}
.jarvis-wave i{width:3px;border-radius:4px;background:#6b7077;height:calc(3px + var(--voice-level)*24px);transition:height 90ms linear;}
.jarvis-wave i:nth-child(2n){height:calc(3px + var(--voice-level)*15px);}
.jarvis-voice-stage[data-phase=thinking] .jarvis-orbit{animation-duration:3s;}
.jarvis-voice-stage[data-phase=listening] .jarvis-orbit{border-top-color:#9b8500;}
.jarvis-voice-stage[data-phase=error] .jarvis-orbit{border-top-color:#e89a83;}
.jarvis-end{position:absolute!important;right:24px;top:24px;width:40px;height:40px;background:transparent!important;border:1px solid #e2e4e7!important;color:#555b62!important;font-size:24px!important;border-radius:50%!important;}
.jarvis-sr-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
@keyframes jarvis-orbit{to{rotate:360deg;}}
@media(prefers-reduced-motion:reduce){.jarvis-orbit{animation:none!important;}.jarvis-orb{transform:none!important;}.jarvis-wave i{transition:none;}}
.reduce-motion .jarvis-orbit{animation:none!important;}.reduce-motion .jarvis-orb{transform:none!important;}

main[data-section="assistant"] .workspace-data-tools,main[data-section="assistant"] #details>details{display:none!important;}
main[data-section="assistant"] aside>footer{display:none!important;}

@media(max-width:600px){main.data-view[data-section="assistant"]>aside{padding:12px!important;}.jarvis-end{right:16px;top:16px;}}

.jarvis-end{width:44px!important;height:44px!important;min-height:44px!important;padding:0!important;line-height:1!important;display:grid;place-items:center;}

/* Small shared AI symbol; the voice surface uses an unbranded animated core. */
.ai-symbol{display:inline-block;width:18px;height:18px;flex:0 0 18px;background:currentColor;mask:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%204v16M6%2012l10-8M6%2012l10%208%22%2F%3E%3Ccircle%20cx%3D%2218%22%20cy%3D%224%22%20r%3D%222%22%2F%3E%3Ccircle%20cx%3D%2218%22%20cy%3D%2220%22%20r%3D%222%22%2F%3E%3Cpath%20d%3D%22M11%2012h7%22%2F%3E%3Ccircle%20cx%3D%2220%22%20cy%3D%2212%22%20r%3D%222%22%2F%3E%3C%2Fsvg%3E') center/contain no-repeat;-webkit-mask:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%204v16M6%2012l10-8M6%2012l10%208%22%2F%3E%3Ccircle%20cx%3D%2218%22%20cy%3D%224%22%20r%3D%222%22%2F%3E%3Ccircle%20cx%3D%2218%22%20cy%3D%2220%22%20r%3D%222%22%2F%3E%3Cpath%20d%3D%22M11%2012h7%22%2F%3E%3Ccircle%20cx%3D%2220%22%20cy%3D%2212%22%20r%3D%222%22%2F%3E%3C%2Fsvg%3E') center/contain no-repeat;}
.jarvis-launcher{display:inline-flex;align-items:center;gap:8px;}
.jarvis-core{background:radial-gradient(circle,#ffd60a38 0%,#ffd60a12 38%,transparent 72%);box-shadow:none;}

/* Clearly distinguish standby, wake acknowledgement, listening and speech. */
.jarvis-voice-stage{--phase-color:#b29a25;transition:background-color .25s;}
.jarvis-voice-stage[data-phase=waking],.jarvis-voice-stage[data-phase=listening]{--phase-color:#008f91;}
.jarvis-voice-stage[data-phase=thinking]{--phase-color:#b58c00;}
.jarvis-voice-stage[data-phase=speaking]{--phase-color:#6652bd;}
.jarvis-voice-stage[data-phase=error]{--phase-color:#bd493e;}
.jarvis-voice-stage:not([data-phase=idle]) .jarvis-orbit{border-top-color:var(--phase-color);border-width:3px;box-shadow:0 0 calc(12px + var(--voice-level)*55px) color-mix(in srgb,var(--phase-color) 30%,transparent);}
.jarvis-voice-stage:not([data-phase=idle]) .orbit-two{border-bottom-color:var(--phase-color);}
.jarvis-voice-stage:not([data-phase=idle]) .jarvis-core{background:radial-gradient(circle,color-mix(in srgb,var(--phase-color) 32%,transparent),transparent 72%);transform:scale(calc(1 + var(--voice-level)*.35));}
.jarvis-voice-stage[data-phase=listening] .orbit-three{border:2px solid #008f9166;animation:keystone-listen 2s ease-in-out infinite;}
.jarvis-voice-stage[data-phase=speaking] .jarvis-orbit{animation-duration:5s;}
.jarvis-voice-stage[data-phase=speaking] .orbit-two{animation-duration:7s;}
.jarvis-voice-stage[data-phase=speaking] .orbit-three{border:2px solid #6652bd55;transform:scale(calc(1 + var(--voice-level)*.22));}
.jarvis-voice-stage:is([data-phase=speaking],[data-phase=listening]) .jarvis-wave i{background:var(--phase-color);width:4px;height:calc(6px + var(--voice-level)*38px);}
.jarvis-voice-stage:is([data-phase=speaking],[data-phase=listening]) .jarvis-wave i:nth-child(2n){height:calc(6px + var(--voice-level)*24px);}
.jarvis-orb::after{content:'';position:absolute;inset:-12%;border:3px solid #008f91;border-radius:50%;opacity:0;pointer-events:none;}
.jarvis-voice-stage[data-wake=detected] .jarvis-orb::after{animation:keystone-wake-ring 1s ease-out 2;}
@keyframes keystone-wake-ring{0%{opacity:.85;transform:scale(.8)}100%{opacity:0;transform:scale(1.35)}}
@keyframes keystone-listen{50%{opacity:.45;transform:scale(1.05)}}
@media(prefers-reduced-motion:reduce){.jarvis-orb::after{animation:none!important;}.jarvis-core,.orbit-three{transform:none!important;}}
.reduce-motion .jarvis-orb::after{animation:none!important;}.reduce-motion .jarvis-core,.reduce-motion .orbit-three{transform:none!important;}

/* Keep contact row actions readable at every table width. */
@media screen {
 main.data-view[data-section] #details .contacts-directory .contact-actions-cell{text-align:right;vertical-align:middle;white-space:nowrap;overflow-wrap:normal}
 main.data-view[data-section] #details .contacts-directory .contact-actions-heading{text-align:right}
 main.data-view[data-section] #details .contacts-directory .contact-edit-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:80px;width:auto;min-height:40px;padding:8px 12px;margin:0;line-height:1.25;white-space:nowrap;word-break:normal;overflow-wrap:normal;flex-wrap:nowrap}
 main.data-view[data-section] #details .contacts-directory .contact-edit-action>*{white-space:nowrap;word-break:normal;overflow-wrap:normal;flex-shrink:0}
}

/* Shared saved-document view: quotes, invoices and job reports. */
.record-pdf { min-width: 0; overflow: hidden; border: 1px solid var(--border, #dce1e5); border-radius: 8px; background: #fff; }
.record-pdf-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 24px; border-bottom: 1px solid #dce1e5; }
.record-pdf-toolbar h3 { margin: 0; font-size: 16px; line-height: 1.5; }
.record-pdf-toolbar a { font-size: 14px; color: #262a2e; text-decoration: underline; text-underline-offset: 4px; }
.record-pdf > p, .record-pdf > button { margin: 24px; }
.record-pdf iframe { display: block; width: 100%; height: 78vh; min-height: 520px; border: 0; background: #e9ecef; }
.record-pdf [hidden] { display: none; }
.record-document-details { margin-top: 16px; border: 1px solid #dce1e5; border-radius: 8px; background: #fff; }
.record-document-details > summary { padding: 16px 24px; cursor: pointer; font-weight: 600; }
.record-document-details > .profile-fields { padding: 0 24px 24px; }
@media (max-width: 600px) { .record-pdf-toolbar { padding: 16px; } .record-pdf iframe { height: 70vh; min-height: 400px; } }

.weather-days { display:grid; grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:16px;margin:20px 0; }
.weather-days article { display:flex;flex-direction:column;gap:8px;min-width:0; }
.weather-days article > span { font-size:22px;font-weight:600; }
.weather-days small { line-height:1.5;color:var(--muted,#66717e); }
.lead-board { display:flex;gap:16px;overflow-x:auto;padding-bottom:16px;align-items:flex-start; }
.lead-stage { flex:0 0 260px;background:#e9edf0;padding:16px;border-radius:8px;min-height:180px; }
.lead-stage h3 { display:flex;justify-content:space-between;align-items:center;font-size:15px;margin:0 0 16px; }
.lead-card { padding:12px;background:white;border:1px solid #dce1e5;border-radius:8px;margin-bottom:12px; }
.lead-open { display:flex!important;flex-direction:column;align-items:flex-start!important;gap:8px;text-align:left!important;background:transparent!important;border:0!important;box-shadow:none!important;padding:8px!important;width:100%; }
.lead-open small { font-weight:400;color:#66717e; }
.lead-card select { width:100%;margin-top:12px; }
.lead-workspace .table-scroll { overflow-x:auto; }
.lead-workspace table { width:100%;min-width:850px;border-collapse:collapse;background:white; }
.lead-workspace td,.lead-workspace th { padding:16px;text-align:left;border-bottom:1px solid #dce1e5;vertical-align:middle; }

/* Invoice accounting choices sit above the description and amounts. */
#modal.quote-workspace .document-item.invoice-line { grid-template-columns:repeat(6,minmax(0,1fr));border-radius:8px; }
#modal.quote-workspace .invoice-line > label:has([data-item-field="itemCode"]),
#modal.quote-workspace .invoice-line > label:has([data-item-field="accountCode"]),
#modal.quote-workspace .invoice-line > label:has([data-item-field="taxType"]) { grid-column:1/-1; }
#modal.quote-workspace .invoice-line .item-description { grid-column:span 3; }
@media(max-width:900px) {
 #modal.quote-workspace .document-item.invoice-line { grid-template-columns:repeat(2,minmax(0,1fr)); }
 #modal.quote-workspace .invoice-line > label:has([data-item-field="itemCode"]),
 #modal.quote-workspace .invoice-line > label:has([data-item-field="accountCode"]),
 #modal.quote-workspace .invoice-line > label:has([data-item-field="taxType"]) { grid-column:auto; }
 #modal.quote-workspace .invoice-line .item-description { grid-column:1/-1; }
}

/* Address search stays in the form flow, including drawers and mobile layouts. */
.address-suggestions { width:100%; min-width:0; margin-top:8px; border:1px solid #d8dde2; border-radius:8px; background:#fff; color:#25282c; overflow:hidden; }
.address-suggestions[hidden] { display:none !important; }
.address-suggestions [role=listbox] { max-height:240px; overflow-y:auto; }
.address-suggestions [role=option] { padding:12px 16px; line-height:1.5; cursor:pointer; overflow-wrap:anywhere; border-bottom:1px solid #edf0f2; }
.address-suggestions [role=option]:hover,.address-suggestions [aria-selected=true] { background:#fff5bc; }
.address-search-status:not(:empty) { padding:12px 16px; font-size:13px; line-height:1.5; }
.address-search-credit { padding:8px 16px; text-align:right; font:500 12px/1.5 Arial,sans-serif; color:#5e646d; }

/* Preserve explicit visibility in the shared document editor grid. */
.quote-workspace [hidden] { display: none !important; }

/* Global utilities: search, notifications, then the signed-in account. */
body>header .header-actions{display:flex;align-items:center;gap:12px}
body>header .header-actions>.workspace-search-button{order:0;margin:0}
body>header .header-actions>.notification-menu{order:1}
body>header .header-actions>#account-actions{order:2;flex:none}
body>header #account-actions>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;padding:10px 14px;line-height:1.4}
body>header #account-actions #signed-in{display:block;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:inherit;font-weight:600}
body>header .account-chevron{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex:none;line-height:1}
@media(max-width:900px){body>header .header-actions{gap:8px}body>header #account-actions #signed-in{max-width:110px;font-size:12px}}

body>header .account-chevron svg{display:block;width:16px;height:16px;flex:none}

/* Responsive workbench: tablets share the touch navigation, with one scroll owner. */
@media screen and (max-width:900px){
 body>header{height:64px!important;min-height:64px;flex-wrap:nowrap!important;gap:6px!important}
 body>header .brand{margin:0!important;width:100px!important;min-width:0!important;flex:0 1 100px;background:transparent!important}
 body>header .brand img{max-width:100%;height:auto}
 body>header #account-actions button{min-height:44px}
 body>header .header-actions{flex:0 1 auto;min-width:0;width:auto;gap:6px;margin-left:auto}
 body>header .workspace-search-button{display:inline-flex!important;align-items:center;justify-content:center;width:44px!important;min-width:44px!important;height:44px;padding:0!important;font-size:0!important;flex:none}
 body>header .workspace-search-button::before{margin:0!important;width:20px;height:20px}
 body>header .notification-menu>summary{width:44px;height:44px}
 body>header #account-actions>summary{height:44px;min-width:44px;gap:6px;padding:8px!important}
 body>header #account-actions #signed-in{display:block!important;max-width:90px;font-size:12px}
 body>header .account-chevron{width:14px;flex:none}
 body>header .notification-panel,body>header #account-actions>.more-actions-panel{position:fixed;top:68px;right:8px;width:min(360px,calc(100vw - 16px));max-height:calc(100dvh - 84px);overflow-y:auto;box-sizing:border-box}
 body:not(.mobile-nav-open) #business-nav{visibility:hidden;pointer-events:none}
 body.mobile-nav-open #business-nav{visibility:visible;pointer-events:auto}
 main.data-view>aside{height:100%;overflow-y:auto;overscroll-behavior-y:contain}
 #details :is(.workspace-title,.shared-cal-heading,.engineer-heading){flex-wrap:wrap;gap:12px}
 #details :is(.workspace-title,.shared-cal-heading)>div{min-width:0}
 #details .dashboard-status-summary{display:flex!important;overflow-x:auto;scroll-snap-type:x proximity;max-width:100%;margin:16px 0}
 #details .dashboard-status-summary button.stage-stat{flex:0 0 112px;min-width:112px;min-height:84px;padding:12px!important;scroll-snap-align:start}
 #details .dashboard-status-summary button.stage-stat strong{font-size:24px!important}
 #modal:not(.document-preview){overscroll-behavior:contain;scroll-padding-bottom:100px}
 #modal :is(input,select,textarea){font-size:16px!important}
 #modal .editor-save-bar{position:sticky;bottom:0;z-index:5;margin-bottom:0!important;background:#f3f5f7!important}
 .shared-cal-toolbar h2{flex-basis:100%;order:2;font-size:18px!important;line-height:1.4}
 .shared-cal-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
 .scheduler-backlog [data-unscheduled]{max-height:280px;overflow-y:auto}
 .table-scroll{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
 .jarvis-launcher{bottom:max(12px,env(safe-area-inset-bottom));max-width:150px}
}
@media screen and (max-width:480px){
 body>header .brand{width:80px!important;min-width:80px!important}body>header .brand img{max-width:80px!important}
 body>header #account-actions #signed-in{max-width:64px}
 body>header .mobile-nav-toggle{flex-basis:40px;width:40px}
 main.data-view #details>.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 #details .insight-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 #details .insight-strip>div{min-width:0;padding:16px;border-bottom:1px solid var(--mcn-border)}
 #details .insight-strip strong{font-size:26px}
 #modal :is(.editor-save-bar,.quote-save-actions){flex-wrap:wrap;justify-content:flex-end}
 #modal .form-grid{grid-template-columns:minmax(0,1fr)!important}
 .shared-cal-filters{grid-template-columns:minmax(0,1fr)!important}
}

@media screen and (max-width:360px){body>header .brand{width:60px!important;min-width:60px!important}body>header .brand img{max-width:60px!important}body>header #account-actions #signed-in{max-width:40px}}

/* Touch scheduling and the focused phone overview share MCN workbench tokens. */
.schedule-picker{width:min(420px,calc(100vw - 32px));box-sizing:border-box;border:1px solid #dce1e5;border-radius:8px;padding:24px;background:#fff;color:#24272c}
.schedule-picker::backdrop{background:#17212c66}
.schedule-picker form,.schedule-picker label{display:grid;gap:8px}.schedule-picker form{gap:16px}
.schedule-picker h2,.schedule-picker p{margin:0}.schedule-picker input{min-width:0;width:100%;box-sizing:border-box;min-height:44px;font:inherit;font-size:16px}
.schedule-actions{display:flex;justify-content:flex-end;gap:8px}.schedule-actions button{min-height:44px}
.scheduler-backlog-row{border-bottom:1px solid #dce1e5;padding-bottom:8px;margin-bottom:8px}.scheduler-schedule-action{min-height:44px;width:100%}
.mobile-dashboard{display:none}
@media(max-width:600px){
 main[data-section="overview"] #details.has-mobile-dashboard:not(.mobile-dashboard-expanded)>:not(.mobile-dashboard){display:none!important}
 .mobile-dashboard{display:grid;gap:16px}.mobile-day-card{padding:16px;border:1px solid #dce1e5;border-radius:8px;background:white;min-width:0}
 .mobile-day-card h2{font-size:18px;margin:0 0 12px}.mobile-day-card p{color:#66717e}
 .mobile-day-record{display:flex!important;flex-direction:column;align-items:flex-start!important;text-align:left!important;width:100%;min-height:52px;padding:12px!important;gap:4px;border:0!important;border-bottom:1px solid #e7eaed!important;border-radius:0!important;white-space:normal!important}
 .mobile-day-record strong{overflow-wrap:anywhere}.mobile-day-record span{font-size:13px;color:#66717e}.mobile-dashboard-toggle{min-height:44px;background:var(--mcn-yellow)!important;color:#24272c!important}
 .mobile-dashboard-expanded .mobile-day-card{display:none}
}

/* Daily overview: consistent touch targets and safe space for the assistant. */
.mobile-task-row{display:flex;align-items:center;gap:8px;min-width:0}
.mobile-task-row .mobile-day-record{flex:1;min-width:0}
.mobile-task-row .task-complete-checkbox{flex:none;min-width:24px;min-height:24px}
.schedule-refresh-notice{position:fixed;bottom:24px;left:24px;right:24px;z-index:1000;padding:16px;background:#fff;border:1px solid #dce1e5;border-radius:8px;box-shadow:0 4px 24px #0002;color:#24272c}
@media(max-width:600px){
 body:has(.jarvis-launcher) main>aside{padding-bottom:calc(84px + env(safe-area-inset-bottom))!important}
 .mobile-dashboard{padding-bottom:calc(80px + env(safe-area-inset-bottom))}
 .mobile-task-row .task-complete-checkbox{margin:8px}
}
.hr-record-review{padding:16px;margin:16px 0;border:1px solid #dce1e5;border-left:3px solid var(--mcn-yellow);border-radius:8px;background:white}
.hr-record-review h2{font-size:18px;margin:0 0 8px;line-height:1.3}
.hr-record-review button{margin:8px 8px 0 0}
/* Shared controls retain readable labels and keyboard focus at every width. */
.settings-option-row{display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left;min-height:44px;line-height:1.4}
.settings-option-row>span:last-child{flex:none;line-height:1}
.jobs-register .job-status-select{min-width:150px;line-height:1.4;padding-right:32px}
:where(.register-record-link,.record-link,.mobile-day-record,.settings-option-row):focus-visible{outline:2px solid #24272c;outline-offset:2px}
@media(prefers-reduced-motion:reduce){.mobile-dashboard *,.schedule-picker *{animation:none!important;transition:none!important}}

/* Compact screens use the navigation entry for Keystone, keeping actions clear. */
@media screen and (max-width:900px){
 .jarvis-launcher{display:none!important}
 #modal .quote-save-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:8px;align-items:center}
 #modal .quote-save-actions>.quote-save-outcome{grid-column:1 / -1;grid-row:1;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;min-width:0}
 #modal .quote-save-actions>.quote-save-outcome select{min-width:0;max-width:70%;min-height:44px}
 #modal .quote-save-actions>button{grid-row:2;width:100%;min-height:44px!important;margin:0}
 .schedule-picker{max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}
}

/* Keep the reconciliation report readable inside the shared dialog. */
#modal .xero-balance-table{overflow:auto;border:1px solid var(--mcn-border);border-radius:8px;background:#fff;margin-top:24px}
#modal .xero-balance-table table{width:100%;min-width:620px;border-collapse:collapse;font-size:13px;line-height:1.5}
#modal .xero-balance-table th,#modal .xero-balance-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--mcn-border);vertical-align:middle}
#modal .xero-balance-table th{background:#f3f4f5;font-weight:600}
#modal .xero-balance-table td:first-child{max-width:220px;overflow-wrap:anywhere}
#modal .xero-balance-table td:nth-child(2){white-space:nowrap}
#modal .xero-balance-table :is(th,td):nth-child(3),#modal .xero-balance-table :is(th,td):nth-child(4){text-align:right;font-variant-numeric:tabular-nums}
#modal .xero-balance-table tbody tr:last-child td{border-bottom:0}

/* Map overlays are geographic symbols, not full-size form buttons. Keep their
   geometry independent of mobile touch-control and generic button rules. */
button.google-business-marker, button.traffic-incident-marker {
  box-sizing:border-box;display:flex;align-items:center;justify-content:center;
  width:var(--map-marker-size,32px)!important;height:var(--map-marker-size,32px)!important;
  min-width:var(--map-marker-size,32px)!important;min-height:var(--map-marker-size,32px)!important;
  max-width:var(--map-marker-size,32px)!important;max-height:var(--map-marker-size,32px)!important;
  padding:0!important;margin:0!important;gap:0!important;line-height:1;flex:none;
}
button.traffic-incident-marker {--map-marker-size:34px}
button.google-business-marker>svg,button.traffic-incident-marker>svg {display:block;flex:none;margin:0}
@media(max-width:900px) {
  button.google-business-marker,button.traffic-incident-marker {--map-marker-size:40px}
  button.google-business-marker:not(.fleet-arrow)>svg {width:22px;height:22px}
  button.google-business-marker.cluster-marker {font-size:13px}
}

.map-options-toggle{display:none!important}
@media(max-width:600px){
 .main-google-tools-control.compact-map-controls,.fleet-google-controls.compact-map-controls{margin:0 10px 24px;max-width:calc(100vw - 20px);position:relative}
 .compact-map-controls>.map-options-toggle{display:flex!important;align-items:center;justify-content:center;min-height:40px!important;margin:0;padding:8px 14px!important;background:#fff;color:#24272c;border:1px solid #dce1e5;border-radius:8px;font:600 12px/1.4 Inter,system-ui,sans-serif;box-shadow:0 2px 8px #17212b20}
 .compact-map-controls>.map-options-toggle[aria-expanded=true]{border-color:var(--mcn-yellow);box-shadow:inset 0 -3px var(--mcn-yellow)}
 .operations-map .compact-map-controls>.map-tools,.compact-map-controls>.fleet-google-control-buttons{display:none!important}
 .operations-map .compact-map-controls.map-options-open>.map-tools,.compact-map-controls.map-options-open>.fleet-google-control-buttons{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));position:absolute;left:0;bottom:48px;width:260px;max-width:calc(100vw - 24px);max-height:50dvh;overflow:auto;padding:8px;gap:6px;background:#fff;border:1px solid #dce1e5;border-radius:8px;box-shadow:0 4px 16px #17212b26}
 .compact-map-controls button{min-height:40px!important;padding:8px 10px!important;margin:0;font-size:12px!important;line-height:1.4}
 .compact-map-controls button[hidden]{display:none!important}
 .compact-map-controls button[aria-pressed=true]{background:var(--mcn-yellow)!important;color:#24272c}
 .main-google-filter-control{margin:10px;max-width:calc(100vw - 72px)}
 .operations-map .main-google-filter-control .map-heading.map-dropdown-toolbar{flex-wrap:nowrap;gap:6px}
 .map-dropdown-toolbar .map-client-panel{max-width:140px}
 .map-dropdown-toolbar .map-location-trigger,.map-dropdown-toolbar .traffic-map-control>button{min-height:40px!important;padding:8px!important;font-size:11px!important;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .map-dropdown-toolbar .traffic-map-control{min-width:0}
}

/* Job working surface: shared by office and assigned engineers. */
main.data-view #details .job-work-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0 24px}
main.data-view #details .job-work-actions button{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;min-width:0;min-height:80px;padding:16px;text-align:left;white-space:normal;line-height:1.4;border:1px solid var(--mcn-border);border-radius:8px;background:#fff;color:#24272b}
main.data-view #details .job-work-actions button span{font-size:13px;font-weight:400;color:#626975}
main.data-view #details .job-work-actions button.primary{background:#FFD60A;border-color:#FFD60A}
main.data-view #details .job-work-actions button:hover{border-color:#a9adb4}
main.data-view #details .job-work-actions button:focus-visible{outline:2px solid #796500;outline-offset:3px}
main.data-view #details .engineer-workspace .engineer-description{padding:16px;margin:16px 0;background:#f5f6f7;border:1px solid var(--mcn-border);border-radius:8px}
main.data-view #details .engineer-workspace .record-body{white-space:pre-wrap;max-width:none}
main.data-view #details .engineer-check-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:16px;border:1px solid var(--mcn-border);border-radius:8px;align-items:start;background:#fff}
main.data-view #details .job-check-config{grid-column:1/-1;border:0;padding:0}
main.data-view #details .job-check-evidence{margin:0;min-width:0;border:0;padding:0}
main.data-view #details .job-check-evidence summary,main.data-view #details .job-check-config summary{min-height:44px;display:flex;align-items:center;font-size:14px;color:#626975;cursor:pointer}
.job-file-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}
.job-file-card{min-width:0;border:1px solid #dce0e5;border-radius:8px;padding:12px;display:flex;flex-wrap:wrap;gap:8px;align-content:start}
.job-file-card>a:first-child{display:block;width:100%;overflow-wrap:anywhere;color:inherit;font-weight:600}
.job-file-card img{width:100%;height:132px;object-fit:cover;display:block;border-radius:4px;margin-bottom:8px}
.job-file-card button,.job-file-card>a:not(:first-child){min-height:44px;display:inline-flex;align-items:center;padding:8px;line-height:1.4}
.job-empty{color:#626975;grid-column:1/-1}
main.data-view #details .job-attachments{padding:0;border:0;box-shadow:none}
main.data-view #details .engineer-section .job-attachments>h3{display:none}
@media(max-width:600px){
 main.data-view #details .job-work-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 main.data-view #details .job-work-actions button{padding:12px;min-height:88px}
 main.data-view #details .engineer-check-row{grid-template-columns:minmax(0,1fr);gap:8px;padding:12px}
 main.data-view #details .engineer-steps{display:flex;overflow-x:auto;gap:0}
 main.data-view #details .engineer-steps button{flex:1 0 auto;min-height:48px;padding:12px 8px;font-size:13px}
 .job-file-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
}

/* Compact, shared review queue across record registers. */
.record-review-attention{margin:16px 0;padding:16px;border:1px solid #dce1e5;border-radius:8px;background:#fff}
.record-review-attention summary{cursor:pointer;line-height:1.5;font-weight:600}
.record-review-row{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;margin-top:8px;padding:12px!important;border:0;border-top:1px solid #e1e5e8;border-radius:0;background:none;box-shadow:none;text-align:left;white-space:normal!important}
.record-review-row span{color:#626d77;font-size:13px;line-height:1.5}
@media(max-width:600px){.record-review-row{flex-direction:column;align-items:flex-start;gap:4px}}

/* Estimate comparison uses the same compact disclosure and register treatment. */
.estimate-comparison{margin-block:24px}.estimate-comparison details{border:1px solid var(--border,#dce1e5);border-radius:8px;padding:16px;background:#fff}.estimate-comparison summary{cursor:pointer;font-weight:600;line-height:1.5}.estimate-comparison label{display:grid;gap:8px;margin-block:16px;max-width:480px}.estimate-comparison .table-scroll{overflow:auto}.estimate-comparison table{min-width:560px}.estimate-comparison [data-comparison]>button{margin-top:16px}
