/* Agreed main-page presentation. Existing form and widget IDs stay stable. */
header{height:auto;min-height:96px;padding:12px 24px;gap:20px}
header .brand .system-logo{width:145px;height:auto}header .brand small{display:none}
#account{margin-left:auto;gap:18px;align-items:center}.account-identity{gap:12px;align-items:center}.account-avatar{display:flex!important;width:54px;height:54px;flex:none}.account-identity div>span{font-size:.75rem}.account-identity b{font-size:.85rem}.account-photo-link{text-decoration:underline}.signout-button{min-height:44px}
#shell{grid-template-columns:230px minmax(0,1fr)}#nav{overflow:visible;padding:14px 10px;gap:4px}
#nav>.workspace-company{padding:14px 8px 18px;margin-bottom:12px;border-bottom:1px solid #ffffff26}#nav>.workspace-company div>span{display:none}
#nav .nav-menu{position:relative;margin:0;border:0;padding:0;flex:none}#nav .nav-menu>summary{list-style:none;display:flex;align-items:center;gap:12px;border-radius:8px;min-height:48px;padding:12px 14px;color:#d4e3e9;font-size:.88rem;cursor:pointer;font-weight:550}#nav .nav-menu>summary::-webkit-details-marker{display:none}#nav .nav-menu>summary:hover,#nav .nav-menu[open]>summary{background:#ffffff16;color:white}#nav .nav-chevron{margin-left:auto;font-size:1.25rem}#nav .nav-menu[open] .nav-chevron{transform:rotate(90deg)}
#nav .nav-submenu{position:absolute;left:100%;top:0;z-index:30;width:275px;padding:8px;background:#143a4d;border:1px solid #3b5969;border-radius:8px;box-shadow:0 8px 26px #102e4133}#nav .nav-submenu a{min-height:44px;padding:12px;font-size:.85rem}#nav>a{min-height:48px}#nav summary:focus-visible,#nav a:focus-visible{outline:2px solid #f09cc3;outline-offset:-2px}
.workspace-dashboard-intro{padding:0;margin-bottom:24px;display:block}.workspace-dashboard-intro .workspace-scene{display:none}.dashboard-heading h1{font-size:1.9rem}.dashboard-heading .lead{max-width:650px}
section[aria-labelledby="workspace-areas-heading"] .settings-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}section[aria-labelledby="workspace-areas-heading"] .quick-access{padding:14px}section[aria-labelledby="workspace-areas-heading"] .quick-access h2{font-size:.88rem}section[aria-labelledby="workspace-areas-heading"] .quick-access a{font-size:.8rem;min-height:44px}
.financial-charts{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:18px}.financial-chart-pending{margin:0;padding:20px}.financial-chart-pending h2{font-size:1.1rem}.financial-chart-pending p{color:var(--muted);font-size:.85rem;line-height:1.6}
.work-progress-chart{padding:22px;background:white;border:1px solid var(--line);border-radius:12px;margin-bottom:18px}.work-progress-chart h2{font-size:1.25rem}.work-progress-chart>p{color:var(--muted);font-size:.82rem}.work-progress-bar{display:flex;height:24px;background:#e5edf0;border-radius:6px;overflow:hidden}.work-progress-bar .completed{background:#218951}.work-progress-bar .todo{background:#598bc1}.work-progress-values{display:flex;gap:22px;flex-wrap:wrap;margin:16px 0}.work-progress-values span{font-size:.88rem}.work-progress-values b{font-size:1.25rem;margin-right:6px}.work-progress-values .overdue{color:#b02834}.work-progress-values .completed{color:#217247}
.selected-workspace-notice{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#e7f1f2;border-radius:8px;padding:12px 16px;font-size:.85rem;margin-bottom:16px}.workspace-view-controls{padding:0;border:0;box-shadow:none;background:transparent}.workspace-view-controls .view-context{width:100%}
.non-factual-preview{border-top:3px solid #5784a4;padding-top:16px}.non-factual-preview button:disabled{opacity:.75}.non-factual-preview input:disabled,.non-factual-preview select:disabled,.non-factual-preview textarea:disabled{opacity:1;color:#3e565e;background:#f7f9fa}
@media(max-width:1000px){section[aria-labelledby="workspace-areas-heading"] .settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.account-identity b{max-width:200px}}
@media(max-width:700px){header{padding:10px 14px;min-height:106px;gap:10px;flex-wrap:wrap}header .brand .system-logo{width:105px}#account{gap:8px;flex:1;justify-content:flex-end}.account-avatar{width:38px;height:38px}.account-identity{gap:8px}.account-identity div>span{font-size:.63rem}.account-identity b{font-size:.72rem;white-space:normal;max-width:150px}#account .signout-button span{display:inline;font-size:.65rem}#account .signout-button .workspace-icon{display:none}#menu-toggle:not([hidden]){display:flex;min-height:44px;margin-left:auto}#shell{display:block}body.navigation-open #nav{overflow:visible;max-height:none;gap:2px}#nav .nav-submenu{position:static;width:auto;margin:0 4px 6px 20px;box-shadow:none;border:0;background:#ffffff09}#nav .nav-menu>summary{font-size:.9rem;min-height:48px}#nav .nav-submenu a{font-size:.87rem}#nav .nav-menu{margin:0}.financial-charts{grid-template-columns:1fr}.work-progress-chart{padding:17px}.selected-workspace-notice{align-items:flex-start;flex-direction:column;gap:8px}section[aria-labelledby="workspace-areas-heading"] .settings-grid{grid-template-columns:1fr}.dashboard-heading h1{font-size:1.65rem}}

.work-progress-bar{width:100%;display:block}.work-progress-bar .completed{fill:#218951}.work-progress-bar .todo{fill:#598bc1}

@media(min-width:701px){#nav .nav-submenu{max-height:calc(100vh - 120px);overflow:auto}#nav .nav-menu:last-of-type .nav-submenu{top:auto;bottom:0}}
.account-identity{display:grid;grid-template-columns:54px auto;gap:5px 12px}.account-identity>div{display:contents}.account-identity .account-avatar{grid-column:1;grid-row:1}.account-identity b{grid-column:2;grid-row:1;align-self:start}.account-identity .account-photo-link{grid-column:2;grid-row:1;align-self:end}.account-identity [data-account-company]{grid-column:1/-1;grid-row:2;text-align:center}
@media(max-width:700px){.account-identity{grid-template-columns:38px minmax(0,1fr);gap:4px 8px}.account-identity b{max-width:150px}.account-identity [data-account-company]{font-size:.63rem}}

.selected-workspace-notice{flex-wrap:wrap}.selected-recording-reason{flex-basis:100%;font-size:.8rem}.selected-recording-reason>summary{cursor:pointer}.selected-recording-reason .view-reason{margin-top:10px;max-width:600px}

.engineer-job-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:12px}.engineer-job-link{display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:10px;padding:16px;min-height:80px;text-decoration:none;background:#f0f7f7;color:var(--ink,#173b4b)}.engineer-job-link:hover,.engineer-job-link:focus-visible{outline:2px solid #168e85;background:#e3f2ef}.engineer-job-link span{font-size:.85rem}.dashboard-engineer-jobs{margin-bottom:18px}[data-preview-period][aria-pressed="true"]{background:#147d82;color:white}

.report-view-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:16px}.report-view-card{margin:0}.report-view-card h2{font-size:1.2rem}.report-item-picker{position:sticky;top:0;background:#f4f8fa;border:1px solid #ccdce1;border-radius:12px;padding:12px;z-index:2;margin:12px 0}.report-item-picker .field{margin:0}.report-item-progress{margin:6px 0 0}.compact-report-form .practice-readings{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:10px}.compact-report-form .practice-field{margin:0;padding:10px}.compact-report-section{border-top:1px solid #d7e3e8;padding:12px 0}.compact-report-section>summary{font-weight:700;cursor:pointer;padding:6px 0}.compact-report-form [hidden]{display:none!important}.compact-report-form .practice-setup{display:flex;flex-wrap:wrap;gap:12px}.compact-report-form .practice-setup span{margin:0}.compact-report-form .sticky-save{z-index:3}

/* Keep wrapped names and the profile link on separate rows on narrow phones. */
.account-identity .account-avatar{grid-row:1/3}.account-identity b{grid-row:1;line-height:1.4}.account-identity .account-photo-link{grid-row:2;align-self:start}.account-identity [data-account-company]{grid-row:3}

/* Native controls can have wider intrinsic sizes on Linux/phone browsers. */
.compact-report-form input,.compact-report-form select,.compact-report-form textarea{min-width:0;max-width:100%}
.compact-report-form .panel,.compact-report-form .sticky-save,.report-item-picker{min-width:0;overflow-wrap:anywhere}
.compact-report-form button{max-width:100%;white-space:normal}
.report-entry-progress{margin:8px 0 14px;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:8px}.report-entry-progress>p{margin:0 0 8px}.report-entry-status{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.report-entry-status>span{padding:5px 8px;border:1px solid #b8c6cc;border-radius:6px;font-size:.85rem}.report-entry-progress .report-entry-complete,select option.report-entry-complete{background:#e9f7ee;color:#165e31;border-color:#62a77b}.report-entry-status .report-entry-review{background:#fff4dc;color:#684800;border-color:#bc8a2f}.report-entry-progress summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600}.report-entry-list{display:grid;gap:6px;max-height:40vh;overflow-y:auto}.report-entry-list button{min-height:44px;text-align:left;white-space:normal;overflow-wrap:anywhere;margin:0}.report-entry-list [aria-current=true]{outline:2px solid var(--teal);outline-offset:-2px}
.report-entry-status .report-entry-review[data-tone=red]{background:#fff0ed;color:#8f1d14;border-color:#cd6258}
/* Avoid native WebKit select text extending beyond a correctly sized field. */
.compact-report-form select,.service-picker select{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;appearance:none;-webkit-appearance:none;padding-right:2rem;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px;background-repeat:no-repeat}
.report-entry-progress{min-width:0;max-width:100%;overflow-wrap:anywhere}
/* Approved hygiene entry: one named inventory beside the existing questions. */
.hygiene-entry-layout{display:grid;grid-template-columns:minmax(240px,310px) minmax(0,1fr);gap:20px;align-items:start;margin:18px 0}
.hygiene-entry-layout .hygiene-inventory{margin:0;min-width:0;position:sticky;top:96px;max-height:calc(100vh - 120px);overflow:auto}
.hygiene-entry-detail{min-width:0;scroll-margin-top:105px}
.hygiene-inventory-tools .field{margin:10px 0}
.hygiene-inventory-group{margin:16px 0}
.hygiene-inventory-group h3{font-size:1rem;margin:12px 0 7px}
.hygiene-inventory-group>div{display:grid;gap:7px}
.hygiene-inventory-group button{text-align:left;white-space:normal;overflow-wrap:anywhere;width:100%;line-height:1.4}
.hygiene-inventory-group button[aria-current=true]{outline:2px solid var(--teal,#137e83);outline-offset:1px}
.hygiene-inventory .report-entry-list{display:block;max-height:none;overflow:visible}
.hygiene-equipment-back{display:none;margin-bottom:12px}
@media(max-width:650px){.hygiene-entry-layout{grid-template-columns:minmax(0,1fr);gap:14px}.hygiene-entry-layout .hygiene-inventory{position:static;max-height:none}.hygiene-inventory .report-entry-list{max-height:55vh;overflow:auto}.hygiene-entry-detail{scroll-margin-top:90px}}

/* Agreed Hygiene sections retain the existing controls and saved completion. */
.hygiene-entry-shell{min-width:0}
.hygiene-entry-tabs{display:flex;flex-wrap:wrap;gap:8px;padding:8px 0;border-bottom:1px solid var(--line);margin:12px 0}
.hygiene-entry-tabs button{min-height:44px;margin:0}
.hygiene-entry-tabs button[aria-selected=true]{color:var(--teal);border-color:var(--teal);box-shadow:inset 0 -3px var(--teal)}
.hygiene-entry-shell [role=tabpanel][hidden]{display:none}
.hygiene-inventory-group{border-top:1px solid var(--line);padding-top:5px;margin:10px 0}
.hygiene-inventory-group>summary{display:flex;flex-wrap:wrap;gap:4px 12px;min-height:44px;align-items:center;cursor:pointer;justify-content:space-between}
.hygiene-inventory-group>summary>span{font-weight:400}
.hygiene-inventory-group>div{padding:5px 0}
.hygiene-review-row{display:flex;justify-content:space-between;align-items:start;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.hygiene-review-row>div{min-width:0;overflow-wrap:anywhere}
.hygiene-review-row>button{min-height:44px;flex-shrink:0;margin:0}
.hygiene-visit-notes,.hygiene-visit-review{min-width:0;padding:12px 0}
.hygiene-visit-review h3{font-size:1rem}
@media(max-width:480px){.hygiene-review-row{flex-direction:column}.hygiene-review-row>button{align-self:flex-start}}
/* Closed inventory groups have no active child hit areas in WebKit either. */
.hygiene-inventory>details:not([open])>:not(summary),.hygiene-inventory-group:not([open])>:not(summary){display:none}

/* The approved narrow view alternates inventory and one selected item.
   Controls remain mounted so navigation never discards draft facts. */
.hygiene-inventory-form .hygiene-inventory>details>summary[hidden]{display:none}
.hygiene-inventory-form .hygiene-visit-review .practice-progress{position:static}
.hygiene-entry-detail>.report-entry-status{margin-bottom:12px}
/* Actual Engineer report pages share the available width at every viewport.
   The same permitted Menu opens in normal flow; no routes are removed. */
body.engineer-entry-active #shell{display:block}
body.engineer-entry-active #main{max-width:none;padding:20px}
body.engineer-entry-active #menu-toggle:not([hidden]){display:flex;min-height:44px}
body.engineer-entry-active #nav{display:none}
body.engineer-entry-active.navigation-open #nav{display:block;max-height:none;overflow:visible}
body.engineer-entry-active #nav .nav-submenu{position:static;width:auto;margin:0 4px 6px 20px;max-height:none;box-shadow:none;border:0}
body.engineer-entry-active .service-entry-layout,
body.engineer-entry-active .hygiene-entry-layout{display:grid;grid-template-columns:minmax(220px,270px) minmax(0,1fr);gap:18px;align-items:start}
body.engineer-entry-active .service-entry-layout>.report-entry-progress,
body.engineer-entry-active .hygiene-entry-layout>.hygiene-inventory{position:sticky;top:calc(var(--entry-visual-top,0px) + 16px);max-height:calc(var(--entry-visual-height,100dvh) - var(--entry-actions-height,120px) - 40px - env(safe-area-inset-bottom,0px));overflow:auto;min-width:0;margin:0}
body.engineer-entry-active #engineer-form .practice-progress{position:static}
body.engineer-entry-active .sticky-save{bottom:var(--entry-visual-bottom-inset,0px)}
body.engineer-entry-active.entry-keyboard-visible .sticky-save{padding:6px 10px;gap:8px;flex-direction:row;align-items:center}
body.engineer-entry-active.entry-keyboard-visible .sticky-save .toolbar{flex-wrap:nowrap;gap:6px}
body.engineer-entry-active.entry-keyboard-visible .sticky-save button{font-size:.85rem;padding:8px 10px;min-height:44px}
body.engineer-entry-active.entry-keyboard-visible .sticky-save #save-status,
body.engineer-entry-active.entry-keyboard-visible .sticky-save #official-tank-save-status{font-size:.75rem;max-width:30%;line-height:1.3;margin:0}
body.engineer-entry-active.entry-keyboard-visible .sticky-save>a{display:none}
/* Samsung landscape IME can leave only about104CSSpx. Put the existing Save
   control beside the answer, preserving its status and original handler. */
body.engineer-entry-active.entry-tiny-keyboard #engineer-form,
body.engineer-entry-active.entry-tiny-keyboard #official-tanks-form{padding-right:136px}
body.engineer-entry-active.entry-tiny-keyboard .boiler-grid-scroll{max-width:calc(100vw - 176px)}
body.engineer-entry-active.entry-tiny-keyboard .sticky-save{position:fixed;right:8px;bottom:calc(var(--entry-visual-bottom-inset,0px) + 4px);width:128px;max-width:128px;padding:4px;flex-direction:column;align-items:stretch;gap:2px;z-index:12;margin:0}
body.engineer-entry-active.entry-tiny-keyboard .sticky-save .toolbar{display:block}
body.engineer-entry-active.entry-tiny-keyboard .sticky-save button{width:100%;margin:0;font-size:.75rem;line-height:1.15;padding:4px;min-height:44px}
body.engineer-entry-active.entry-tiny-keyboard #engineer-form .sticky-save button[type=submit]{display:none}
body.engineer-entry-active.entry-tiny-keyboard .sticky-save #save-status,
body.engineer-entry-active.entry-tiny-keyboard .sticky-save #official-tank-save-status{order:-1;max-width:100%;font-size:.65rem;line-height:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.engineer-entry-active.entry-tiny-keyboard .service-entry-layout>.report-entry-progress,
body.engineer-entry-active.entry-tiny-keyboard .hygiene-entry-layout>.hygiene-inventory{max-height:max(60px,calc(var(--entry-visual-height,100dvh) - 24px))}
body.engineer-entry-active.entry-tiny-keyboard #engineer-form textarea:focus,
body.engineer-entry-active.entry-tiny-keyboard #official-tanks-form textarea:focus{min-height:44px;height:44px}
.service-entry-detail{min-width:0;container-type:inline-size}
.service-entry-detail>.report-item-picker{position:static;margin-top:0}
.service-entry-detail .report-entry-list{max-height:none}
.entry-inventory-group{border-top:1px solid var(--line);margin:6px 0;padding:4px 0}
.entry-inventory-group>button{display:block;width:100%;margin:6px 0}
.boiler-saved-inventory{margin:14px 0}
.boiler-saved-samples{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}
.boiler-saved-samples button{text-align:left;white-space:normal;font-size:.85rem}
@media(max-width:650px){.boiler-saved-samples{grid-template-columns:repeat(2,minmax(0,1fr))}}
.service-entry-layout .report-entry-list{display:block;max-height:none;overflow:visible}
.service-entry-layout .report-entry-list>button{display:block;width:100%;max-width:100%;white-space:normal;margin:6px 0}
body.engineer-entry-active #engineer-form .grid,
body.engineer-entry-active #engineer-form .measurement-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.service-entry-detail .process-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.service-entry-detail .process-row>div:first-child{grid-column:1/-1}
.service-entry-detail input,.service-entry-detail select,.service-entry-detail textarea{min-width:0;max-width:100%}
body.engineer-entry-active #engineer-form input,
body.engineer-entry-active #engineer-form textarea,
body.engineer-entry-active #engineer-form select{scroll-margin-block:24px 160px}
/* Focus scrolling reserves the measured action-strip height without moving
   the Save button between pointer-down and click. */
@container(max-width:700px){
 .dosing-table{min-width:0;table-layout:auto}
 .dosing-table thead{display:none}
 .dosing-table tbody,.dosing-table tr,.dosing-table td,.dosing-table th{display:block;width:100%!important;white-space:normal}
 .dosing-table tr{border:1px solid var(--line);margin:10px 0}
 .dosing-table td[data-entry-column]::before{content:attr(data-entry-column);display:block;font-weight:650;margin-bottom:5px}
}
@container(max-width:400px){.process-row{grid-template-columns:minmax(0,1fr)}}
@media(max-width:650px){
 body.engineer-entry-active #main{padding:16px}
 body.engineer-entry-active .service-entry-layout,
 body.engineer-entry-active .hygiene-entry-layout{grid-template-columns:minmax(0,1fr);gap:14px}
 body.engineer-entry-active .service-entry-layout>.report-entry-progress,
 body.engineer-entry-active .hygiene-entry-layout>.hygiene-inventory{position:static;max-height:none}
 .hygiene-entry-layout:not(.hygiene-item-open)>.hygiene-entry-detail{display:none}
 .hygiene-entry-layout.hygiene-item-open>.hygiene-inventory{display:none}
 .hygiene-entry-detail>.hygiene-equipment-back{display:inline-flex;min-height:44px}
}
