:root{--bg:#f5f7f8;--panel:#fff;--ink:#172026;--muted:#69767d;--line:#dfe5e8;--accent:#0e6b50;--accent2:#e9f3ef;--warn:#a56b00;--warnbg:#fff5d8;--bad:#a73131;--badbg:#fde9e7;--good:#227a52;--goodbg:#e8f5ee;--nav:#101c22}
*{box-sizing:border-box} body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)} button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{background:var(--nav);color:#fff;padding:22px 16px;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;padding:4px 6px 24px}.brand-mark{width:44px;height:44px;border-radius:12px;background:#fff;color:var(--nav);display:grid;place-items:center;font-weight:900}.brand span{display:block;color:#9db0ba;font-size:12px;margin-top:3px}.sidebar nav{display:grid;gap:6px}.sidebar nav button{border:0;background:transparent;color:#c8d4da;padding:12px 14px;border-radius:10px;text-align:left;cursor:pointer}.sidebar nav button:hover,.sidebar nav button.active{background:#20323a;color:white}.sidebar-foot{margin-top:auto;font-size:12px;color:#82949d;padding:12px 6px}.topbar{padding:24px 30px 18px;display:flex;justify-content:space-between;gap:20px;align-items:center}.topbar h1{margin:0 0 5px;font-size:26px}.topbar p{margin:0;color:var(--muted)}.primary{border:0;background:var(--accent);color:#fff;padding:13px 18px;border-radius:10px;font-weight:800;cursor:pointer}.secondary{border:1px solid var(--line);background:#fff;color:var(--ink);padding:10px 14px;border-radius:9px;cursor:pointer}.danger{border:0;background:var(--bad);color:white;padding:10px 14px;border-radius:9px}.content{padding:0 30px 32px}.grid{display:grid;gap:16px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:0 2px 10px rgba(17,34,44,.03)}.metric .label{color:var(--muted);font-size:13px}.metric .value{font-size:29px;font-weight:850;margin-top:5px}.metric .hint{font-size:12px;margin-top:5px;color:var(--muted)}.section-title{display:flex;justify-content:space-between;align-items:center;margin:22px 0 10px}.section-title h2{font-size:18px;margin:0}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:11px 10px;border-bottom:1px solid var(--line);text-align:left;font-size:14px}.table th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#fafbfb}.clickable{cursor:pointer}.clickable:hover{background:#f6faf8}.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:800}.badge.good{background:var(--goodbg);color:var(--good)}.badge.warn{background:var(--warnbg);color:var(--warn)}.badge.bad{background:var(--badbg);color:var(--bad)}.badge.neutral{background:#eef2f4;color:#5c6970}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.field{display:grid;gap:6px}.field label{font-size:12px;color:var(--muted);font-weight:700}.field input,.field select,.field textarea{border:1px solid #cfd8dc;background:#fff;border-radius:9px;padding:10px 11px;min-width:0}.field textarea{min-height:90px;resize:vertical}.span-2{grid-column:span 2}.span-3{grid-column:span 3}.wizard-head{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.step-chip{padding:8px 10px;border-radius:999px;background:#edf1f3;color:#65727a;font-size:12px;font-weight:800}.step-chip.active{background:var(--accent2);color:var(--accent)}.actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}.battery-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.battery-id{font-size:24px;font-weight:900}.battery-meta{color:var(--muted);margin-top:5px}.tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);margin-top:18px;overflow:auto}.tabs button{border:0;background:transparent;padding:11px 8px;white-space:nowrap;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent}.tabs button.active{color:var(--accent);border-color:var(--accent);font-weight:800}.cell-grid{display:grid;grid-template-columns:repeat(12,minmax(68px,1fr));gap:7px}.cell-box{border:1px solid var(--line);border-radius:8px;padding:8px;text-align:center;background:#fff}.cell-box .n{font-size:11px;color:var(--muted)}.cell-box .v{font-weight:850;font-size:13px;margin-top:3px}.cell-box.good{border-color:#b9ddc8;background:var(--goodbg)}.cell-box.warn{border-color:#efd487;background:var(--warnbg)}.cell-box.bad{border-color:#efb5ae;background:var(--badbg)}.chart{height:240px;width:100%;display:block}.legend{font-size:12px;color:var(--muted);margin-top:6px}.notice{padding:12px 14px;border-radius:10px;background:#eef6f3;border:1px solid #d3e8df;color:#315e4c}.warning-box{padding:12px 14px;border-radius:10px;background:var(--warnbg);border:1px solid #edd99e;color:#725619}.kv{display:grid;grid-template-columns:180px 1fr;border-bottom:1px solid var(--line);padding:9px 0;gap:10px}.kv > span:first-child:not(.sani-id-badge){color:var(--muted)}.empty{padding:40px;text-align:center;color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.sticky-save{position:sticky;bottom:0;background:linear-gradient(transparent,var(--bg) 30%);padding-top:24px}.small{font-size:12px;color:var(--muted)}.public-card{max-width:760px;margin:25px auto}.print-only{display:none}
@media(max-width:1100px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr 1fr}.span-3{grid-column:span 2}.cell-grid{grid-template-columns:repeat(8,1fr)}}
@media(max-width:620px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto;min-height:auto}.sidebar nav{grid-template-columns:repeat(2,1fr)}.topbar{padding:18px;align-items:flex-start}.topbar .primary{display:none}.content{padding:0 18px 24px}.grid-4,.grid-3,.grid-2,.form-grid{grid-template-columns:1fr}.span-2,.span-3{grid-column:auto}.cell-grid{grid-template-columns:repeat(4,1fr)}}
@media print{.sidebar,.topbar,.actions,.tabs{display:none!important}.app-shell{display:block}.content{padding:0}.card{box-shadow:none}.print-only{display:block}}
.sync-status{display:inline-flex;margin-left:8px;padding:3px 8px;border-radius:999px;background:#eaf1f4;color:#617078;font-size:11px;vertical-align:middle}.flow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}.flow div{padding:10px 12px;background:#f4f7f8;border-radius:10px;font-size:13px}.flow b{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--nav);color:#fff;margin-right:5px}.flow span{color:#89979e}.form-panel{margin-top:16px}.import-box{border-style:dashed}.actions.left{justify-content:flex-start;align-items:center}.cell-input{width:88px;border:1px solid #d1dade;border-radius:7px;padding:7px}.small-input{width:76px}.note-input{min-width:170px;border:1px solid #d1dade;border-radius:7px;padding:7px}.toast{position:fixed;right:22px;bottom:22px;z-index:9999;padding:13px 16px;border-radius:10px;box-shadow:0 8px 30px rgba(0,0,0,.16);background:#fff;border:1px solid var(--line);font-weight:800}.toast.good{color:var(--good);border-color:#b6dcc8}.toast.bad{color:var(--bad);border-color:#edb3ad}.chart-line{color:var(--accent)}
@media(max-width:620px){.flow span{display:none}.flow div{flex:1 1 45%}.note-input{min-width:130px}.cell-input{width:76px}}
.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#eef4f2,#f7f8f9)}
.auth-card{width:min(460px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px;box-shadow:0 18px 60px rgba(16,28,34,.12)}
.auth-brand{display:flex;gap:14px;align-items:center;margin-bottom:22px}.auth-brand h1{margin:0;font-size:22px}.auth-brand p{margin:4px 0 0;color:var(--muted);font-size:13px}.auth-card form{display:grid;gap:14px}.auth-submit{width:100%;margin-top:4px}.auth-error{min-height:18px;color:var(--bad);font-size:12px;font-weight:700}.auth-note{margin:14px 0 0}.sidebar-foot strong{display:block;color:#fff}.sidebar-foot .user-role{display:inline-block;margin-top:5px;font-size:10px;padding:3px 6px;border-radius:999px;background:#20323a;color:#c8d4da}.sidebar-foot button{display:block;margin-top:9px;border:0;background:transparent;color:#d5e0e5;padding:0;cursor:pointer;text-decoration:underline}.version-note{margin-top:12px;color:#82949d}.compact{padding:7px 10px;border-radius:8px;font-size:12px}.actions-cell{white-space:nowrap}.user-metric{font-size:18px!important;line-height:1.2}.attachment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.attachment-card{padding:14px}.attachment-card a{color:var(--ink);text-decoration:none;display:block;margin:5px 0 8px;word-break:break-word}.attachment-card a:hover{text-decoration:underline}.attachment-kind{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);font-weight:900}.hash-line{font-size:9px;color:var(--muted);word-break:break-all;margin-top:8px}.link-danger{border:0;background:transparent;color:var(--bad);padding:7px 0 0;cursor:pointer;font-size:12px}.primary:disabled,.secondary:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:1000px){.attachment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.attachment-grid{grid-template-columns:1fr}.auth-card{padding:20px}}
.inspection-timer-card{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:-8px 0 16px;padding:12px 16px;border-color:#cfe4da;background:#f2f8f5}.inspection-timer-card strong{color:var(--accent)}
@media(max-width:680px){.inspection-timer-card{align-items:flex-start;flex-direction:column;gap:4px}}
/* v0.12.31 tablet visual stabilization */
main{min-width:0}
@media (min-width:621px) and (max-width:900px){
  .app-shell{grid-template-columns:200px minmax(0,1fr)}
  .sidebar{padding:14px 10px}
  .brand{gap:8px;padding:2px 4px 14px}
  .brand-mark{width:36px;height:36px;border-radius:10px}
  .brand strong{font-size:14px}
  .brand span{font-size:10px}
  .sidebar nav{gap:3px}
  .sidebar nav button{padding:9px 10px;font-size:13px}
  .sidebar-foot{padding:8px 4px}
  .topbar{padding:18px 18px 14px;gap:10px;flex-wrap:wrap}
  .topbar h1{font-size:23px}
  .topbar .primary{padding:11px 13px;font-size:13px}
  .content{padding:0 18px 24px}
  .grid-2,.grid-3{grid-template-columns:1fr}
  .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cell-grid{grid-template-columns:repeat(6,minmax(62px,1fr))}
  .kv{grid-template-columns:minmax(125px,42%) minmax(0,1fr)}
  .battery-head{flex-direction:column}
  .table-wrap{max-width:100%;overflow-x:auto}
}

/* Keep all navigation entries reachable on short screens. */
.sidebar{min-height:0;overflow-y:auto;overscroll-behavior:contain}.sidebar .brand,.sidebar-foot{flex-shrink:0}

/* Guided data entry: shared by dynamically rendered forms. */
.guide-required{color:#b42318;font-weight:800;font-size:1.1em}
.guide-bar{position:sticky;top:0;z-index:12;padding:12px 14px;margin:0 0 18px;background:#f1f8f5;border:1px solid #a9cfc0;border-radius:10px;box-shadow:0 2px 8px #17202612}
.guide-progress{font-weight:800;color:#12533f}.guide-help{font-size:12px;line-height:1.5;margin-top:3px;color:#455b52}.guide-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.guide-actions button{background:#fff;border:1px solid #8bab9e;border-radius:7px;padding:8px 12px;min-height:40px;cursor:pointer}.guide-actions button:disabled{opacity:.45;cursor:default}.guide-actions [hidden]{display:none}.guide-message{color:#a1261c;font-weight:700;line-height:1.5}.guide-message:not(:empty){margin-top:8px}.guide-cell-mode{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;font-size:13px}.guide-cell-mode select{min-height:40px;max-width:100%;padding:6px;border:1px solid #8bab9e;border-radius:6px;background:#fff}
.guided-form input,.guided-form select,.guided-form textarea{scroll-margin:150px 24px 120px}
.guided-form .guide-active,.guided-form input:focus-visible,.guided-form select:focus-visible,.guided-form textarea:focus-visible{outline:3px solid #087553;outline-offset:3px;box-shadow:0 0 0 6px #dff3ea;background-color:#fbfffd}
.guided-form .guide-invalid{outline:2px solid #b42318;outline-offset:2px}.guided-form .guide-active-row{background:#eff8f4}.guided-form .guide-active-row>td:first-child{box-shadow:inset 4px 0 #087553;color:#075c42}
@media(max-width:1024px){.guided-form input,.guided-form select,.guided-form textarea{min-height:44px}.guide-actions button{min-height:44px}.guide-bar{position:sticky}.guided-form input,.guided-form select,.guided-form textarea{scroll-margin:70px 16px 100px}}
@media(prefers-reduced-motion:reduce){.guided-form *{scroll-behavior:auto}}

/* Universal measurement screens */
.lab-json{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;max-height:28rem;overflow:auto}.lab-chart{margin:16px 0;max-width:100%;min-width:0}.lab-chart svg{display:block;width:100%;max-width:760px;height:auto}.lab-actions{display:flex;flex-wrap:wrap;gap:10px}#lab-message{overflow-wrap:anywhere;margin:12px 0}#lab-history,#lab-review,#lab-map{min-width:0;max-width:100%;overflow-wrap:anywhere}#lab-import-form input[type=file]{max-width:100%;min-width:0}#app:has([id^="lab-"]) .section-title{flex-wrap:wrap}

/* Fleet actions must fit the content column instead of overflowing a right-aligned flex row. */
.fleet-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:10px;justify-content:stretch}
.fleet-actions>button{min-width:0;white-space:normal;overflow-wrap:anywhere;height:100%;min-height:48px}
/* A single active field-work panel, with unchanged underlying form controls. */
#inspection-form [data-inspection-step][hidden],#inspection-form [hidden]{display:none!important}
.inspection-step-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:14px 0}
.inspection-step-nav button{min-width:0;min-height:48px;padding:9px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);overflow-wrap:anywhere;cursor:pointer;text-align:left}
.inspection-step-nav button.active{background:var(--accent);color:white;border-color:var(--accent)}
#wizard-progress{scroll-margin-top:14px;font-size:20px}
#inspection-form .guide-bar{position:static}
#inspection-form [data-inspection-step]>.card{margin-top:12px!important}
#inspection-form .actions{flex-wrap:wrap;justify-content:flex-start}
#inspection-form .section-title{flex-wrap:wrap;gap:10px}
.wizard-controls{position:sticky;bottom:0;display:flex;flex-wrap:wrap;gap:8px;padding:12px 0;background:var(--bg);z-index:3}
.wizard-controls button{min-height:44px}
.wizard-text,#wizard-evidence-summary{white-space:pre-wrap;overflow-wrap:anywhere}
.wizard-cells{width:100%;max-width:100%;overflow:visible}
.wizard-cells table{width:100%;table-layout:fixed}
.wizard-cells th,.wizard-cells td{white-space:normal;overflow-wrap:anywhere;padding:8px}
.wizard-cells input,.wizard-cells select{width:100%;min-width:0;max-width:100%;min-height:44px}
@media(max-width:1024px){
 .inspection-step-nav{grid-template-columns:repeat(5,minmax(0,1fr));font-size:12px}
 #inspection-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 #inspection-form .form-grid>.field{min-width:0;max-width:100%}
 #inspection-form .form-grid>.span-3{grid-column:1/-1}
 #inspection-form input,#inspection-form select,#inspection-form textarea{max-width:100%;min-width:0}
 .wizard-cells table,.wizard-cells tbody{display:block}
 .wizard-cells thead{display:none}
 .wizard-cells tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px 0;border-bottom:1px solid var(--line)}
 .wizard-cells td{display:block;border:0;padding:0;min-width:0}
 .wizard-cells td:first-child,.wizard-cells td[data-cell-status]{grid-column:1/-1}
 .wizard-cells td::before{content:attr(data-label);display:block;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:4px}
}
@media(max-width:620px){#inspection-form .form-grid{grid-template-columns:1fr}#inspection-form .field{grid-column:1/-1}}

#inspection-form .guide-progress{display:none}
#inspection-form .guide-bar{padding:10px;margin:8px 0}
#inspection-timer{padding:8px 12px;margin:8px 0;font-size:13px}
#inspection-draft-status{padding:8px 12px;font-size:12px;line-height:1.4}
@media(max-width:620px){.inspection-step-nav{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* The step title is already displayed by the shared wizard header. */
.evidence-preview{display:flex;gap:12px;padding:12px;border:1px solid var(--border,#ddd);margin:8px 0;overflow-wrap:anywhere}.evidence-preview img{width:80px;height:80px;object-fit:contain}.evidence-preview>div{min-width:0;flex:1}.evidence-preview select{max-width:100%}.review-checklist{overflow-wrap:anywhere}.review-checklist dl{display:grid;grid-template-columns:minmax(100px,1fr) minmax(0,2fr);gap:8px}.review-checklist dd{margin:0}.review-errors{border-left:4px solid #b91c1c;padding:12px}.review-warnings{border-left:4px solid #c78b00;padding:12px}button:disabled{cursor:not-allowed;opacity:.55}
/* Notifications must never intercept field navigation or evidence actions. */
.toast{pointer-events:none}
body:has(#inspection-form[data-wizard]) .toast{bottom:100px;max-width:calc(100vw - 32px)}

.trial-banner{padding:12px 18px;background:#fff1c2;color:#593c00;font-weight:750;border-bottom:2px solid #be8b18;overflow-wrap:anywhere}.trial-banner span{font-weight:400}.correction-dialog{max-width:min(620px,calc(100vw - 32px));border:1px solid #bcc7d1;border-radius:12px;padding:24px}.correction-dialog::backdrop{background:#17212baa}.correction-dialog textarea{display:block;width:100%;min-height:100px}.evidence-format{max-width:150px;overflow-wrap:anywhere;padding:12px;background:#edf1f4;color:#425163}.draft-corrections{margin:14px 0}.review-checklist p{overflow-wrap:anywhere}

/* Location-first forms stay inside the tablet viewport. */
fieldset { min-width:0; border:1px solid #d5e4df; border-radius:10px; margin:12px 0; padding:14px; }
.lw-inactive { opacity:.6; }
#lw-create-dialog { width:min(900px,94vw); max-height:90vh; overflow:auto; }
#lw-setup select[multiple] { min-height:100px; }
#lw-trends { margin-top:20px; }
/* Field correction dialogs keep the underlying entry form intact. */
.fc-dialog{width:min(900px,94vw);max-height:90vh;overflow:auto;border:1px solid #bed3c9;border-radius:12px;padding:20px;box-sizing:border-box}.fc-dialog textarea{display:block;width:100%;min-height:160px;box-sizing:border-box}.fc-dialog .form-grid{min-width:0}.fc-dialog input,.fc-dialog select{max-width:100%;box-sizing:border-box}.evidence-preview img{max-width:140px;max-height:110px;object-fit:contain}.evidence-preview>div{min-width:0;overflow-wrap:anywhere}

/* Scoped presentation for the new work/cost module. */
.work-cost-screen .actions{flex-wrap:wrap;justify-content:flex-start}
.work-cost-screen button:not(.primary):not(.secondary){border:1px solid var(--line);background:white;color:var(--ink);padding:10px 14px;border-radius:9px;cursor:pointer}
.work-cost-screen .actions button{flex:0 1 auto;min-height:44px}
.work-cost-screen details{padding:10px 0;border-bottom:1px solid var(--line)}
.work-cost-screen fieldset{border:1px solid var(--line);border-radius:10px;margin:16px 0;padding:16px}
.work-cost-screen fieldset>label{display:inline-flex;align-items:center;gap:8px;margin:8px 16px 8px 0}
.work-cost-screen #wc-results{display:grid;gap:12px;margin-top:20px}
/* Manual field review: readable labels, separate cell measurements and visible focus. */
.stat>span,.stat>strong{display:block}.stat>strong{margin-top:.35rem}.kv{gap:1rem}.field{min-width:0}.field label{overflow-wrap:anywhere}.field input,.field select{max-width:100%}
#manual-electrolyte-tables table{width:100%;table-layout:fixed}#manual-electrolyte-tables td:first-child{width:20%}#manual-electrolyte-tables input,#manual-electrolyte-tables select{width:100%;min-width:0}
.guide-active,:focus-visible{outline:3px solid #087e8b;outline-offset:2px}

/* Diagnostic field layout, scoped to the existing wizard. */
#lw-setup[data-diagnostic]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}
#lw-setup[data-diagnostic]>.form-grid{display:block}#lw-setup[data-diagnostic]>.form-grid>.field{margin-bottom:12px}
.diag-instrument-block{min-width:0}#u-purpose-setup{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}#u-purpose-setup label{min-width:0}#u-purpose-setup select{width:100%;min-width:0}
#inspection-form [hidden],#lw-setup [hidden]{display:none!important}
.diag-technical-table{max-height:65vh;overflow:auto}.diag-technical-table thead{position:sticky;top:0;z-index:2;background:#f3f7f6}.diag-technical-table td,.diag-technical-table th{padding:4px 6px}.diag-technical-table input,.diag-technical-table select{padding:5px;min-height:32px;width:100%;min-width:65px}
[data-diagnostic-status=bad]{background:#ffe8e6}[data-diagnostic-status=warn]{background:#fff5d6}
#diag-thermal-zones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}#diag-thermal-zones>h3,#diag-thermal-zones>p{grid-column:1/-1}#diag-thermal-zones img{max-width:160px;max-height:130px}#diag-thermal-zones fieldset{min-width:0}
#diag-evidence-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
@media(max-width:850px){#lw-setup[data-diagnostic]{grid-template-columns:1fr}#u-purpose-setup{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Keep technical tables tabular on tablets; override the older mobile-card rules. */
#inspection-form .diag-technical-table{overflow:auto;max-width:100%}
#inspection-form .diag-technical-table table{display:table!important;table-layout:fixed;width:100%}
#inspection-form .diag-technical-table thead{display:table-header-group!important}
#inspection-form .diag-technical-table tbody{display:table-row-group!important}
#inspection-form .diag-technical-table tr{display:table-row!important}
#inspection-form .diag-technical-table td,#inspection-form .diag-technical-table th{display:table-cell;padding:5px;white-space:normal;overflow-wrap:anywhere;vertical-align:middle}
#inspection-form .diag-technical-table td[hidden],#inspection-form .diag-technical-table th[hidden],#inspection-form .diag-technical-table tr[hidden]{display:none!important}
#inspection-form .diag-technical-table td::before{display:none!important}
#inspection-form .diag-technical-table input,#inspection-form .diag-technical-table select{min-width:0;width:100%;min-height:34px;box-sizing:border-box}
#inspection-form .diag-technical-table th{font-size:11px;background:#f1f6f5;top:0;z-index:2}
#inspection-form .diag-technical-table td:first-child{width:40px}
#manual-electrolyte-tables table{min-width:680px}
.diag-instrument-block select,#inspection-form select[id^="diag-"]{min-height:38px;width:100%;border:1px solid #c5d2d9;border-radius:6px;padding:6px}
#inspection-form .diag-technical-table [data-cell-status] button{font-size:11px;white-space:normal}

#inspection-form .diag-technical-table th:first-child{width:32px}
#inspection-form .diag-technical-table th[data-cell-status]{width:130px}
#inspection-form .diag-technical-table [data-cell-status]{font-size:12px;overflow-wrap:normal}
#inspection-form .diag-technical-table [data-cell-status] button{display:block;padding:3px 6px;min-height:26px;white-space:nowrap}
/* Reports: readable actions and filters at desktop and tablet widths. */
.report-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.report-filters label{display:grid;gap:5px;min-width:0}.report-filters input,.report-filters select{width:100%;min-width:0}.report-detail{display:block;margin-top:5px;overflow-wrap:anywhere}.report-actions{display:flex;flex-wrap:wrap;gap:6px}.report-actions button{white-space:normal;max-width:100%}#reports-register,#report-battery-history{min-width:0}#reports-register td,#report-battery-history td{overflow-wrap:anywhere;max-width:220px}@media(max-width:900px){.report-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}

@media(max-width:1050px){
 #reports-register .table-wrap,#report-battery-history .table-wrap{overflow:visible}
 #reports-register table,#report-battery-history table{display:block;width:100%;min-width:0}
 #reports-register thead,#report-battery-history thead{display:none}
 #reports-register tbody,#report-battery-history tbody{display:grid;gap:14px}
 #reports-register tbody tr,#report-battery-history tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid #ccd8df;border-radius:8px;padding:8px;background:#fff}
 #reports-register td,#report-battery-history td{display:block;max-width:none;min-width:0;border:0;padding:8px;white-space:normal}
 #reports-register td::before,#report-battery-history td::before{content:attr(data-label);display:block;font-size:12px;font-weight:700;color:#49616c;margin-bottom:6px}
 #reports-register td:last-child,#report-battery-history td:last-child{grid-column:1/-1}
 .report-actions button{min-height:40px;padding:8px 12px}
}

/* Battery QR handoff only. The label document owns its physical print dimensions. */
#battery-qr-ready{background:#fff;padding:24px;border-radius:12px}
.battery-qr-cards{display:grid;grid-template-columns:minmax(280px,0.85fr) minmax(420px,1.15fr);gap:24px;align-items:start}
.battery-qr-cards h2{font-size:20px;margin:0 0 16px}.battery-qr-details{display:grid;grid-template-columns:minmax(125px,1fr) 1.4fr;gap:0;margin:0}.battery-qr-details dt,.battery-qr-details dd{padding:13px 0;border-bottom:1px solid #e1e7e4;margin:0;overflow-wrap:anywhere}.battery-qr-details dt{color:#56645e}.battery-qr-details dd{font-weight:600}.battery-qr-details dd:first-of-type{font-size:24px;color:#0e6b50}
#battery-qr-preview{display:block;width:100%;aspect-ratio:3/2;border:0;background:white}.battery-qr-actions{display:flex;flex-wrap:wrap;gap:14px;margin:28px 0 20px}.battery-qr-actions button,.battery-qr-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:15px 22px;font-size:16px;font-weight:650;border-radius:8px;text-decoration:none}.battery-qr-actions a{border:1px solid #cbd8d1;color:#153b2b;background:#fff}.battery-qr-actions .primary{background:#0e6b50;color:white}
@media(max-width:1100px){.battery-qr-cards{grid-template-columns:1fr}#battery-qr-ready{padding:16px}.battery-qr-actions>*{flex:1 1 220px}}

/* Linked asset details: presentation only; stored identities and links are unchanged. */
.traction-system{margin:24px 0;border:1px solid #b7d4c7;border-left:4px solid #15734e;scroll-margin-top:20px;background:#f7fbf9}
.traction-system:focus{outline:2px solid #388c68;outline-offset:3px}
.traction-chain{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;padding:0;margin:20px 0}
.traction-node{position:relative;min-width:0;padding:16px 12px;border:1px solid #cddfd5;border-radius:10px;background:#fff;display:flex;flex-direction:column;gap:8px}
.traction-node span{font-size:14px;color:#355e4d}
.traction-node strong{font-size:clamp(18px,2vw,24px);color:#163e2c;overflow-wrap:anywhere}
.traction-node+.traction-node:before{content:'→';position:absolute;left:-28px;top:50%;transform:translateY(-50%);font-size:24px;color:#388c68}
.traction-revealed{animation:traction-reveal 1.5s ease-out}
@keyframes traction-reveal{from{box-shadow:0 0 0 5px #9bcdb5}to{box-shadow:0 0 0 0 transparent}}
@media(max-width:900px){.traction-chain{grid-template-columns:1fr;gap:28px}.traction-node+.traction-node:before{content:'↓';left:50%;top:-29px;transform:translateX(-50%);line-height:28px}.traction-node strong{font-size:22px}}
@media(prefers-reduced-motion:reduce){.traction-revealed{animation:none}}

.traction-history-toggle{scroll-margin-top:20px;display:block;width:100%;padding:14px 12px;margin-top:12px;text-align:left;border:1px solid #b7d4c7;border-radius:8px;background:#fff;color:#163e2c;font:inherit;font-weight:600;cursor:pointer}
.traction-history-toggle:focus-visible{outline:2px solid #15734e;outline-offset:2px}
#traction-history[hidden]{display:none!important}
.traction-history-entry{padding:14px 0;border-top:1px solid #cddfd5}
.traction-history-entry h4{margin:0 0 12px}.traction-history-entry dl{display:grid;grid-template-columns:minmax(120px,1fr) 2fr;gap:8px;margin:0}.traction-history-entry dd{margin:0;overflow-wrap:anywhere}
/* Phase 1: same-page orientation, no layout changes outside the opened block. */
.inline-revealed{outline:3px solid #27875c;outline-offset:3px;scroll-margin-top:90px}
.phase1-system{margin:12px 0;padding:14px;background:#f0f8f3;border:1px solid #b6d8c4;border-radius:10px}
.phase1-chain{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;flex-wrap:wrap}
.phase1-chain div{display:flex;flex-direction:column;gap:4px;min-width:110px}.phase1-chain strong{font-size:1.15rem}.phase1-arrow{color:#27875c;font-size:1.5rem}
[data-validation-message]{color:#a32020;font-weight:600}
@media(max-width:600px){.phase1-chain{flex-direction:column;align-items:flex-start}.phase1-arrow{transform:rotate(90deg);align-self:center}.phase1-chain div{width:100%}}

/* Keep the original file input accessible to scripts without browser-language captions. */
.sr-file-native{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
.sr-file-control{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}
.sr-file-control .small{overflow-wrap:anywhere;min-width:0}

/* Scoped SLI guided workflows; existing modules unchanged. */
.sli-screen .sli-jobs{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:20px 0}
.sli-screen .sli-jobs button{min-height:76px;font-size:17px;text-align:left;padding:16px}
.sli-screen .sli-steps{display:flex;flex-wrap:wrap;gap:12px;list-style:none;padding:0}.sli-steps li{padding:10px;background:#eef3f5;border-radius:8px}.sli-steps .active{background:#144e5e;color:white}
.sli-screen .sli-field-error,.sli-screen .sli-errors{color:#9b2525}.sli-screen .sli-errors:empty{display:none}.sli-screen .sli-errors button{color:inherit}
.sli-screen fieldset{border:1px solid #d6e0e3;border-radius:10px;padding:16px}.sli-screen fieldset[hidden]{display:none}.sli-screen legend{font-weight:700}.sli-screen .sli-qr{width:180px;max-width:90%}.sli-screen input:focus,.sli-screen select:focus,.sli-screen textarea:focus{outline:3px solid #197c91;outline-offset:2px}.sli-screen [data-step]{scroll-margin-top:20px}
.sli-screen button,.sli-screen a.secondary{border:1px solid #b8cbd0;border-radius:8px;background:white;color:#143b46;padding:10px 16px;cursor:pointer;font:inherit;min-height:44px}.sli-screen button:hover{background:#e7f2f4}.sli-screen #sli-confirm,.sli-screen #import-confirm{background:#176174;color:white}.sli-screen input:not([type=checkbox]),.sli-screen select,.sli-screen textarea{display:block;width:100%;box-sizing:border-box;min-height:44px;margin:6px 0 14px;padding:9px;border:1px solid #b8cbd0;border-radius:7px;background:white;font:inherit}.sli-screen textarea{min-height:100px}.sli-screen .form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px 20px}.sli-screen .actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.sli-screen .actions:first-child{justify-content:flex-start;margin-bottom:20px}.sli-screen :focus-visible{outline:3px solid #197c91;outline-offset:3px}
/* Shared tenant branding. Watermark is behind content and cannot intercept input. */
main { position:relative; isolation:isolate; }
main::before { content:""; position:absolute; inset:180px 6% 0; z-index:-1; background-image:var(--tenant-watermark,none); background-repeat:no-repeat; background-position:center 100px; background-size:min(65%,600px) auto; opacity:.04; pointer-events:none; }
.tenant-header-logo { width:144px; height:58px; object-fit:contain; flex:0 0 auto; }
.tenant-header-logo[hidden] { display:none; }
.topbar:has(.tenant-header-logo:not([hidden])) { gap:18px; }
.topbar:has(.tenant-header-logo:not([hidden])) > div { flex:1; min-width:0; }
@media(max-width:640px){.tenant-header-logo { width:96px; height:42px; }.topbar:has(.tenant-header-logo:not([hidden])) { flex-wrap:wrap;gap:10px; }main::before{inset-inline:3%;background-size:90% auto;}}
@media print {main::before,.tenant-header-logo{display:none!important;}}

/* Shared correction controls */
[data-visual-detail] {width:100%;margin-top:12px} [data-inspection-step="1"] .form-grid{align-items:start}[data-core-qr] input{width:min(100%,36rem)}.draft-merge-dialog{max-width:900px;width:90vw;max-height:85vh;overflow:auto}.draft-merge-dialog pre{white-space:pre-wrap;max-height:180px;overflow:auto}.workflow-invalid{outline:3px solid #b42318}#workflow-validation{padding:12px;background:#fff4e5}[data-core-visual]{width:100%;min-height:130px}[data-visual-summary]{grid-column:1/-1;display:block}[data-visual-detail]>label{display:block;margin-top:10px}[data-visual-detail] textarea{width:100%;box-sizing:border-box;min-height:90px}[data-visual-detail] input{max-width:100%}[data-visual-detail] figure{margin:10px 0}#inspection-form[data-wizard-step="1"] #diag-step-errors{display:none}#wizard-draft-status p{margin:2px 0}

/* Required field marker only; labels retain their existing colors. */
.required-marker, .guide-required { color: #C62828 !important; font-weight: 700; }
.cell-guide-svg{display:block;width:100%;max-height:520px;margin:16px auto;background:#f5f7fa;border-radius:12px}.cell-tile{cursor:pointer;transition:transform .15s}.cell-tile rect{fill:#fff;stroke:#617387;stroke-width:2}.cell-tile text,.link-label{text-anchor:middle;fill:#102b46;font-weight:700;font-size:18px}.cell-tile.selected{transform:translateY(-5px)}.cell-tile.selected rect{fill:#fff3c4;stroke:#d18a00;stroke-width:4}.cell-link{stroke:#748494;stroke-width:12;cursor:pointer;stroke-linecap:round}.cell-link.selected{stroke:#f9a825;stroke-width:18}.link-label{font-size:10px;pointer-events:none;paint-order:stroke;stroke:#f5f7fa;stroke-width:3px}.cell-target{font-size:1.3rem;font-weight:700}#bt-live-panel [data-capture]{width:100%}#bt-live-panel details{margin:12px 0}@media(prefers-reduced-motion:reduce){.cell-tile{transition:none}}
.service-action{margin:16px 0;padding:16px;border:1px solid #cbd5e1;border-radius:8px}.service-photos{display:flex;flex-wrap:wrap;gap:16px}.service-photos figure{margin:0;max-width:240px}.service-photos img{max-width:100%;height:170px;object-fit:contain}.service-action .field{align-self:start}
#bt-live-panel [data-graph]{overflow-x:auto} @media(max-width:600px){.cell-guide-svg{min-width:580px;max-height:420px}}

/* Shared battery layout: fixed readable geometry with independent viewport. */
#bt-live-panel .cell-layout-fields{display:flex;flex-wrap:wrap;gap:16px}
#bt-live-panel .cell-layout-fields label{display:flex;flex-direction:column;gap:6px;min-width:190px}
#bt-live-panel [data-graph]{overflow:auto;max-height:520px;touch-action:pan-x pan-y;border-radius:12px}
#bt-live-panel .cell-guide-svg{max-height:none;min-width:0;max-width:none;margin:0}
#bt-live-panel .cell-zoom{display:flex;align-items:center;gap:12px;margin:12px 0}
#bt-live-panel .cell-zoom label{display:flex;align-items:center;gap:12px}
#bt-live-panel [data-zoom]{width:160px}
#bt-live-panel [data-layout-status]{color:#a32b24}

.asset-data-dialog{width:min(1050px,94vw);max-height:90vh;overflow:auto;border:1px solid #999;border-radius:8px}.asset-data-dialog label{display:block;margin:8px 0}.asset-data-dialog input:not([type=checkbox]),.asset-data-dialog select{width:100%;min-height:40px}.asset-data-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.asset-data-field{padding:8px;border-bottom:1px solid #ddd}.asset-data-dialog summary{padding:12px;font-weight:600}

.pack-terminal circle{fill:#fff;stroke:#333;stroke-width:2}.pack-terminal text{fill:#111;font-size:13px;font-weight:bold;text-anchor:middle}.pack-terminal.selected circle{fill:#ffcf40;stroke:#b3261e;stroke-width:4}.pack-terminal.selected text{font-size:18px}.pack-terminal{cursor:pointer}[data-pack] label{display:block;margin:10px 0}[data-pack-foot]{background:#f0f4f7;font-weight:bold}

/* Shared core typography: applies also to dynamically inserted forms. */
:root{--sani-label-ink:#172026;--sani-form-gap:18px}
.app-shell h1,#app h1,dialog h1{font-size:24px;font-weight:800;line-height:1.3;margin-bottom:20px}
#app h2,dialog h2,.section-title h2{font-size:20px;font-weight:750;line-height:1.4;margin:24px 0 16px}
#app h3,dialog h3,section>h3{font-size:18px;font-weight:750;line-height:1.4;margin:22px 0 14px}
label,.field>label,.form-grid label,legend,.field-label{font-size:15px;font-weight:700;color:var(--sani-label-ink);line-height:1.45}
label input,label select,label textarea,label button,input,select,textarea{font-weight:400}
label .small,label small,label .hint,.help-text,.helper-text{font-size:12px;font-weight:400}
.form-grid,.asset-data-grid{row-gap:var(--sani-form-gap)}
.field>label{display:block;margin-bottom:7px}
section+section,.form-panel>details+details{margin-top:20px}
.sani-id-badge{display:inline-block;white-space:nowrap;border-radius:5px;padding:2px 7px;font-size:.94em;font-weight:700;line-height:1.45;letter-spacing:.015em;vertical-align:baseline}
.asset-data-dialog .asset-heading{font-size:24px;font-weight:800;margin:12px 0 8px;display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.asset-data-dialog .asset-subheading{font-size:15px;font-weight:400;color:#46545d;margin:0 0 24px}
.asset-data-field{display:block!important;min-width:0}.asset-data-field>label{display:block}
.asset-data-field details{margin:6px 0 2px;font-weight:400;font-size:12px;color:#52616b}
.asset-data-field details summary{font-size:12px;font-weight:400;cursor:pointer}
.asset-data-field details label{font-size:13px;margin-top:10px}
.asset-data-field details p{margin:6px 0}.asset-data-field [data-value]{width:100%;box-sizing:border-box}
.sani-photo-button{margin:8px 0}.sani-photo-status{font-size:13px;font-weight:400}.sani-photo-preview{max-width:220px;max-height:180px;object-fit:contain}
@media(max-width:600px){.asset-data-dialog{max-width:calc(100vw - 24px);box-sizing:border-box}.asset-data-dialog .asset-heading{font-size:22px}.form-grid{row-gap:16px}}

#page-title{font-size:24px;font-weight:800;line-height:1.3;margin-bottom:12px}
/* Shared sections remain usable on narrow screens. */
@media(max-width:600px){.section-title{flex-wrap:wrap;gap:10px}.section-title>h2{flex:1 0 100%;margin-bottom:6px}.section-title .actions{flex-wrap:wrap}.section-title button{max-width:100%;white-space:normal}.form-grid>*{min-width:0}.form-panel input,.form-panel select,.form-panel textarea{max-width:100%;box-sizing:border-box}}
input[type=file][data-core-photo="1"]{display:none!important}

.sani-id-badge[data-asset-prefix="SA-B"]{background:#7C3AED;color:#FFFFFF;}.sani-id-badge[data-asset-prefix="SA-M"]{background:#0F6B78;color:#FFFFFF;}.sani-id-badge[data-asset-prefix="SA-P"]{background:#8A6F4D;color:#FFFFFF;}
/* Presentation only: the existing energy inputs, values and calculations are unchanged. */
#energy-fields{display:block;margin-top:24px;padding:20px;border:1px solid #cbd5df;border-radius:8px;min-width:0}
#energy-fields:not([open]){display:block}
#energy-fields:not([open])>:not(summary){display:none}
#energy-fields .energy-input-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px;min-width:0}
#energy-fields>summary{font-weight:700;cursor:pointer;line-height:1.45}
#energy-fields .energy-input-grid>label{display:flex;flex-direction:column;gap:8px;min-width:0;margin:0;line-height:1.45;white-space:normal}
#energy-fields .energy-input-grid>label>input:not([type=checkbox]),#energy-fields textarea{width:100%;max-width:100%;box-sizing:border-box;min-width:0;margin:0}
#energy-fields .energy-input-grid>label:has(input[type=checkbox]){grid-column:1/-1;display:flex;flex-direction:row;align-items:flex-start;font-weight:400;gap:10px;padding-top:10px;border-top:1px solid #dde3e9}
#energy-fields input[type=checkbox]{flex:0 0 18px;width:18px;height:18px;margin:2px 0 0}
#energy-fields .energy-input-grid>label:has(textarea){grid-column:1/-1}
#energy-fields textarea{min-height:82px}
@media(max-width:650px){#energy-fields{padding:14px}#energy-fields .energy-input-grid{grid-template-columns:minmax(0,1fr);gap:16px}}

/* Shared traction controls; no measurement or status thresholds. */
#inspection-form [data-visual-detail]{align-self:start;grid-column:1/-1}
#inspection-form .form-grid{align-items:start}
#inspection-form [data-core-thermal]{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;align-items:start}
#inspection-form [data-core-thermal] label{display:flex;flex-direction:column;min-width:0;gap:6px}
#bt-live-panel.traction-cell-guide [data-graph]{position:sticky;top:0;z-index:8;background:white;max-height:230px;overflow:auto;border:1px solid #d8dfdc}
.traction-cell-guide .cell-tile.next rect{stroke:#126c55;stroke-width:3;stroke-dasharray:5 3}
@media(max-width:640px){#bt-live-panel.traction-cell-guide [data-graph]{max-height:180px}#inspection-form select{max-width:100%;min-width:0}}

.traction-cell-guide{display:contents}
#diag-thermal-zones [data-zone-fields]{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;align-items:start}
#diag-thermal-zones [data-zone-fields][hidden]{display:none}
#diag-thermal-zones label{display:flex;flex-direction:column;gap:6px;min-width:0}
#diag-thermal-zones input{width:100%;box-sizing:border-box}

#inspection-form [data-inspection-step="4"] .form-grid{grid-template-columns:repeat(auto-fit,minmax(min(330px,100%),1fr))}

/* Shared traction measurement table: use only visible columns, preserve input geometry. */
#inspection-form .wizard-cells.diag-technical-table table{table-layout:auto!important;width:100%!important}
#inspection-form .wizard-cells th,#inspection-form .wizard-cells td{overflow-wrap:normal;word-break:normal;vertical-align:middle}
#inspection-form .wizard-cells th:not([hidden]),#inspection-form .wizard-cells td:not([hidden]){width:auto!important;min-width:125px}
#inspection-form .wizard-cells th:first-child,#inspection-form .wizard-cells td:first-child{width:75px!important;min-width:75px}
#inspection-form .wizard-cells [data-density-meta=status]{min-width:160px;max-width:220px}
#inspection-form .wizard-cells [data-density-meta=reason]{min-width:220px}
#inspection-form .wizard-cells [data-density-option]{white-space:normal;overflow-wrap:normal}
#inspection-form .wizard-cells input[type=checkbox]{width:18px;min-width:18px;min-height:18px;height:18px}
#inspection-form #density-bulk{display:block}
#density-bulk:not([open])>:not(summary){display:none!important}
#density-bulk>summary{font-weight:700;cursor:pointer}
#density-bulk[open]>label{margin-top:14px}
#wizard-draft-status details:not([open])>:not(summary){display:none}
#inspection-form .wizard-footer{position:sticky;bottom:0}

#inspection-form .wizard-cells th{text-transform:none}

#traction-registration .form-grid>section.card{padding:12px; margin:0; min-height:0}
#traction-registration .form-grid>section.card p{margin:5px 0}
#traction-registration .form-grid>p,#traction-registration .form-grid>label:has(#tr-confirm){grid-column:1/-1}
#traction-registration [hidden]{display:none!important}
#traction-registration .required-star{display:inline}

.inspection-step-nav button{display:flex;align-items:center;gap:7px;text-align:left}.wizard-step-icon{width:19px;height:19px;flex:0 0 19px}

/* Shared traction table geometry; status does not change dimensions. */
#new-cell-body td { vertical-align:middle; }
#new-cell-body input[data-k] { box-sizing:border-box; height:38px; min-height:38px; font-size:14px; border-width:1px; width:100%; }
.shared-analysis { margin:12px 0; }
.shared-analysis table { width:100%; table-layout:auto; }
.shared-analysis p { overflow-wrap:anywhere; }

/* Identity text stays white independently of surrounding field/link/theme styles. */
.sani-id-badge[data-asset-prefix]{color:#fff;-webkit-text-fill-color:#fff}

/* Shared traction report review: same five measure columns and Ri groups as PDF. */
.proposed-measures{table-layout:fixed;width:100%;min-width:720px}.proposed-measures th:nth-child(1){width:26%}.proposed-measures th:nth-child(2){width:26%}.proposed-measures th:nth-child(3){width:10%;white-space:nowrap}.proposed-measures th:nth-child(4){width:15%}.proposed-measures th:nth-child(5){width:23%}.proposed-measures td{vertical-align:top;overflow-wrap:break-word}
.ri-group{display:inline-block;padding:3px 7px;border-radius:4px;color:#172026;background:#e5e7eb;font-weight:700}.ri-group-GREEN{background:#14764c;color:#fff}.ri-group-YELLOW{background:#f5cb55}.ri-group-RED{background:#b42318;color:#fff}.expert-section h4{font-weight:700;margin-bottom:6px}.expert-section p{margin-top:0}

/* Report distribution markers do not change row dimensions. */
.ri-marker{display:inline-block;width:10px;height:10px;margin-right:6px}.ri-marker-GREEN{background:#2e7d32}.ri-marker-YELLOW{background:#f9a825}.ri-marker-RED{background:#c62828}.traction-materials table{table-layout:fixed;width:100%}[data-battery-mass-box]{margin:16px 0}[data-battery-mass-box] select{max-width:100%}

/* Shared report table: data rows stay uniform; explanatory footer may wrap. */
.traction-result-table tbody tr{height:42px}.traction-result-table tbody td{height:42px;box-sizing:border-box;white-space:nowrap;font-size:14px;border-width:1px;padding:8px}
.traction-result-table tfoot td{border:1px solid var(--border,#bfc3c7);padding:8px;white-space:normal}

#inspection-form[data-traction-photo-layout] #diag-thermal-zones [id^="diag-zone-preview-"],#inspection-form[data-traction-photo-layout] #diag-thermal-zones [id^="diag-zone-status-"],#inspection-form[data-traction-photo-layout] #diag-thermal-legacy{grid-column:1/-1}

/* Stable status geometry; no autosave-driven focus or scroll. */
html{scrollbar-gutter:stable}
#wizard-draft-status{min-block-size:14rem;margin-block:12px;overflow-wrap:anywhere}
#wizard-draft-status [data-save-message]{min-block-size:4.5em;margin:0 0 .5em}
#wizard-draft-status [data-save-time]{display:block;min-block-size:3em;font-variant-numeric:tabular-nums}
#wizard-draft-status>button{min-height:44px;margin-block:6px}
#inspection-timer{font-variant-numeric:tabular-nums}

/* Step 7 only: the existing canonical table and physical map share one viewport. */
.step7-measurement-workspace{display:grid;grid-template-columns:minmax(0,65fr) minmax(0,35fr);gap:12px;align-items:start}
.step7-measurement-workspace>.wizard-cells{min-width:0;max-height:calc(100dvh - 160px);overflow:auto;padding:8px;scrollbar-gutter:stable}
.step7-measurement-workspace .table th,.step7-measurement-workspace .table td{padding:7px 5px}
.step7-measurement-workspace .table thead{position:sticky;top:0;z-index:2}
.step7-measurement-workspace [data-k=voltage],.step7-measurement-workspace [data-k=ir]{width:90px;min-width:74px;max-width:100%;padding:7px 5px}
#bt-live-panel.step7-map-controls{display:block;position:sticky;top:12px;min-width:0;max-height:calc(100dvh - 160px);overflow:auto;padding:10px}
#bt-live-panel.step7-map-controls h3{font-size:16px;margin:0 0 8px}
#bt-live-panel.step7-map-controls [data-graph]{position:static;max-height:none;overflow:hidden}
#bt-live-panel.step7-map-controls .cell-guide-svg{width:100%!important;height:auto!important;max-height:300px;min-width:0;margin:6px 0}
#bt-live-panel.step7-map-controls .cell-tile{transform:none;transition:none}
#bt-live-panel.step7-map-controls .cell-tile.selected rect{stroke:#172026;stroke-width:5;stroke-dasharray:none}
#bt-live-panel.step7-map-controls .cell-tile.next rect{stroke:#455a64;stroke-width:3;stroke-dasharray:5 4}
#bt-live-panel.step7-map-controls .step7-measured-mark{font-size:16px;font-weight:800;fill:#172026}
#bt-live-panel.step7-map-controls .cell-zoom{display:none}
#bt-live-panel.step7-map-controls p{margin:8px 0}
#bt-live-panel.step7-map-controls [data-message]{min-height:3em}
@media(max-width:760px){
 .step7-measurement-workspace{grid-template-columns:minmax(0,1fr)}
 #bt-live-panel.step7-map-controls{grid-row:1;position:sticky;top:0;z-index:9;max-height:43dvh;overflow:auto}
 #bt-live-panel.step7-map-controls .cell-guide-svg{max-height:180px}
 .step7-measurement-workspace>.wizard-cells{max-height:48dvh}
}
.step7-measurement-workspace>.wizard-cells,#bt-live-panel.step7-map-controls{margin:0!important}

/* Step 7 only: compact numeric controls; fixed units never receive keyboard input. */
.step7-measurement-workspace #new-cell-body .step7-value-unit{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.step7-measurement-workspace #new-cell-body .step7-value-unit input[data-k]{width:100px;min-width:100px;max-width:100px;height:36px;min-height:36px;padding:6px 8px;flex:0 0 100px;border-radius:4px}
.step7-measurement-workspace #new-cell-body .step7-fixed-unit{font-size:13px;font-weight:600;white-space:nowrap}
#bt-live-panel.step7-map-controls .cell-layout-fields{display:flex;flex-wrap:wrap;gap:12px}
#bt-live-panel.step7-map-controls .cell-layout-fields label{flex:1 1 100px;min-width:0}
#bt-live-panel.step7-map-controls .cell-layout-fields select{display:block;width:82px;min-width:82px;max-width:82px;min-height:36px;padding:6px 8px}
#bt-live-panel.step7-map-controls [data-mode-status]{font-size:13px;line-height:1.4}

/* Save acknowledgements and errors share a stable footprint during data entry.
   Long messages remain fully available by scrolling inside their own region. */
#wizard-draft-status [data-save-message]{block-size:4.5em;overflow:auto}
#wizard-draft-status [data-save-time]{block-size:3em;overflow:auto}

/* Step 8 only: canonical electrolyte inputs beside the existing physical map. */
#inspection-step-6 #matrix-evidence{padding:10px 14px;margin:0 0 10px}
#inspection-step-6 #matrix-evidence>summary{cursor:pointer;font-weight:700;font-size:14px}
#inspection-step-6 #matrix-evidence>label{display:block;margin-top:10px}
#inspection-step-6 #matrix-evidence>p{font-size:13px;line-height:1.4}
#inspection-step-6 .step8-measurement-info{margin:0 0 12px;font-size:12px;line-height:1.4;color:var(--muted)}
#inspection-step-6 .step8-measurement-info p{margin:3px 0}
#inspection-step-6 .step8-measurement-info>section>h3{display:none}
.step8-electrolyte-workspace{display:grid;grid-template-columns:minmax(0,62fr) minmax(0,38fr);gap:16px;align-items:start}
#inspection-form .step8-electrolyte-workspace>.wizard-cells{min-width:0;margin:0;padding:8px;max-height:min(620px,calc(100dvh - 150px));overflow:auto;scrollbar-gutter:stable}
#inspection-form .step8-electrolyte-workspace .table th,#inspection-form .step8-electrolyte-workspace .table td{padding:5px 10px}
#inspection-form .step8-electrolyte-workspace .table th:first-child{width:80px}
#inspection-form .step8-electrolyte-workspace input[data-k=density],#inspection-form .step8-electrolyte-workspace input[data-k=densityTemp]{width:100px;min-width:0;max-width:100%;height:36px;padding:6px 8px;border:1px solid #b8c6ce;border-radius:5px;font-variant-numeric:tabular-nums}
#inspection-form .step8-electrolyte-workspace input[data-k=densityTemp]{width:80px}
#bt-live-panel.step8-map-controls{position:sticky;top:12px;min-width:0;margin:0;padding:14px;display:flex;flex-direction:column;gap:8px;max-height:calc(100dvh - 36px);overflow:auto}
#bt-live-panel.step8-map-controls>[hidden]{display:none!important}
#bt-live-panel.step8-map-controls h3{font-size:16px;margin:0;order:0}
#bt-live-panel.step8-map-controls [data-target]{order:1;font-size:21px;font-weight:750;margin:0}
#bt-live-panel.step8-map-controls [data-progress]{order:2;font-size:13px;line-height:1.5;margin:0;font-variant-numeric:tabular-nums}
#bt-live-panel.step8-map-controls [data-graph]{order:3;position:static;max-height:none;overflow:auto}
#bt-live-panel.step8-map-controls .cell-guide-svg{height:auto!important;min-width:0;margin:0}
#bt-live-panel.step8-map-controls .cell-tile{transform:none;transition:none}
#bt-live-panel.step8-map-controls .cell-tile.selected rect{stroke:#172026;stroke-width:5;stroke-dasharray:none}
#bt-live-panel.step8-map-controls .cell-tile.next rect{stroke:#455a64;stroke-width:3;stroke-dasharray:5 4}
#bt-live-panel.step8-map-controls .step8-measured-mark{font-size:16px;font-weight:800;fill:#172026}
#bt-live-panel.step8-map-controls [data-manual-pair]{order:4;font-size:13px;min-height:36px;white-space:normal}
#bt-live-panel.step8-map-controls [data-message]{order:5;margin:0;min-height:1.4em;font-size:13px}
#bt-live-panel.step8-map-controls [data-layout]{order:6;font-size:13px}
#bt-live-panel.step8-map-controls [data-layout] details{margin:0}
#bt-live-panel.step8-map-controls .cell-layout-fields{display:flex;flex-wrap:wrap;gap:12px}
#bt-live-panel.step8-map-controls .cell-layout-fields label{flex:1 1 100px;min-width:0}
#bt-live-panel.step8-map-controls .cell-layout-fields select{display:block;width:82px;min-width:0;min-height:36px}
#bt-live-panel.step8-map-controls .cell-zoom{order:7;font-size:12px;margin:0}
#bt-live-panel.step8-map-controls .cell-zoom label{display:flex;align-items:center;gap:6px}
#bt-live-panel.step8-map-controls .cell-zoom input{min-width:0;width:100px}
@media(max-width:900px){
 .step8-electrolyte-workspace{grid-template-columns:minmax(0,1fr)}
 #bt-live-panel.step8-map-controls{position:static;max-height:none;grid-row:2}
 #bt-live-panel.step8-map-controls .cell-guide-svg{max-height:360px}
 #inspection-form .step8-electrolyte-workspace>.wizard-cells{max-height:55dvh}
}
@media(max-width:480px){
 #inspection-form .step8-electrolyte-workspace .table th,#inspection-form .step8-electrolyte-workspace .table td{padding:5px 4px}
 #inspection-form .step8-electrolyte-workspace .table th:first-child{width:48px}
 #inspection-form .step8-electrolyte-workspace input[data-k=density]{width:90px}
 #inspection-form .step8-electrolyte-workspace input[data-k=densityTemp]{width:70px}
}
/* Keep Step 8 actions below the content instead of covering the narrow map. */
#inspection-form[data-wizard-step="6"]>.wizard-controls{position:static}

/* Company directory and company card only. */
#company-directory .directory-toolbar{display:flex;align-items:end;gap:16px;margin:4px 0 16px;justify-content:space-between}
#company-directory .directory-search{display:grid;gap:7px;width:min(460px,100%);flex:1;min-width:220px;font-size:13px;font-weight:700}
#company-search{padding:12px 14px;border:1px solid #b8c9c4;border-radius:8px;width:100%;background:#fff;min-height:44px}
#company-directory .directory-options{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;color:var(--muted);font-size:12px}
#company-directory .directory-table-wrap,#company-card-view .directory-table-wrap{padding:0;overflow:auto}
#company-directory .directory-table-wrap{max-height:calc(100dvh - 380px);min-height:250px;scrollbar-gutter:stable}
#company-directory .table thead{position:sticky;top:0;z-index:1}
#company-directory .table th,#company-directory .table td{padding:13px 10px;white-space:nowrap;font-size:13px;vertical-align:middle}
#company-directory .table thead th{font-size:11px;letter-spacing:.02em;background:#f1f6f5}
#company-directory .table th:first-child{white-space:normal;min-width:190px;width:30%}
#company-directory .table tbody th{font-weight:650;background:transparent;text-transform:none;letter-spacing:normal}
#company-directory [data-company-row]{cursor:pointer}
#company-directory [data-company-row]:hover{background:#f2f8f5}
#company-directory .directory-company-name{padding:0;border:0;background:transparent;text-align:left;color:#164d3d;font:inherit;cursor:pointer}
#company-directory .directory-count{text-align:center;font-variant-numeric:tabular-nums}
#company-directory .directory-pib{font-variant-numeric:tabular-nums;color:#52656b}
#company-directory .directory-pagination{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin:14px 0;font-size:13px}
#company-result-count{margin-right:auto;color:var(--muted)}
#company-page-size{padding:7px 9px;border:1px solid var(--line);border-radius:6px;background:#fff;margin-left:6px}
#company-directory .directory-page-buttons{display:flex;align-items:center;gap:12px}
#company-directory button:disabled{opacity:.4;cursor:default}
#company-directory .directory-empty{text-align:center;padding:40px}
#company-card-view .directory-back{background:none;border:0;padding:0;color:#126c55;cursor:pointer;font-weight:650}
#company-card-view .directory-card-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:22px 0}
#company-card-view .directory-card-heading h2{margin:5px 0 0;font-size:26px}
#company-card-view .directory-card-actions{display:flex;gap:8px;flex-wrap:wrap}
#company-card-view .directory-tabs{display:flex;gap:3px;overflow-x:auto;border-bottom:1px solid var(--line);margin-bottom:18px}
#company-card-view .directory-tabs button{border:0;border-bottom:3px solid transparent;padding:13px 15px;background:transparent;white-space:nowrap;cursor:pointer;color:#51666f}
#company-card-view .directory-tabs button[aria-selected=true]{border-color:#126c55;color:#126c55;font-weight:750}
#company-card-view [role=tabpanel][hidden]{display:none!important}
#company-card-view .directory-company-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 36px;margin:8px 0}
#company-card-view dt{font-size:12px;color:var(--muted);margin-bottom:7px}
#company-card-view dd{margin:0;font-size:15px;font-weight:550;overflow-wrap:anywhere}
#company-card-view .directory-location-list{padding:0 18px}
#company-card-view .directory-location{padding:18px 0;border-bottom:1px solid var(--line)}
#company-card-view .directory-location:last-child{border-bottom:0}
#company-card-view .directory-location summary{cursor:pointer;font-weight:700}
#company-card-view .directory-location summary .small{display:block;margin:6px 0 0 18px;font-weight:400}
#company-card-view .directory-location-actions{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0}
#company-card-view [data-location-equipment]{margin-top:18px}
#company-card-view [data-location-equipment] li{margin:8px 0}
#company-card-view .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:700px){
 #company-directory .directory-toolbar,#company-card-view .directory-card-heading{align-items:stretch;flex-direction:column}
 #company-directory .directory-options{align-items:start;flex-direction:column}
 #company-directory .directory-table-wrap{max-height:60dvh}
 #company-card-view .directory-company-details{grid-template-columns:1fr}
}

#company-directory .directory-toolbar .company-type-field{width:240px;max-width:100%;margin:0;flex:0 1 240px}
@media(max-width:700px){#company-directory .directory-toolbar .company-type-field{flex:auto;width:100%}}

#company-card-view{margin:0 30px 30px}
@media(max-width:700px){#company-card-view{margin:0 16px 20px}}
main:has(#company-directory),main:has(#company-card-view){min-width:0}
@media(max-width:1100px){
 #company-directory .directory-toolbar{flex-wrap:wrap}
 #company-directory .directory-search{flex-basis:100%;width:100%;min-width:0}
 #company-directory .directory-options{flex-wrap:wrap}
 #company-card-view .directory-card-heading{flex-wrap:wrap}
}

/* Registration step 3: presentation only; existing controls and references. */
#traction-form.battery-registration-layout .battery-identity-heading { margin: 4px 0 0; }
#traction-form.battery-registration-layout [data-battery-mass-box] { min-width: 0; border-top: 1px solid #dbe3ec; padding-top: 16px; }
#traction-form.battery-registration-layout [data-battery-mass-box] > h3 { margin: 0 0 12px; }
#traction-form.battery-registration-layout [data-battery-mass-box] > .field { max-width: 660px; }
#traction-form.battery-registration-layout [data-battery-mass-box] > details { margin: 10px 0 16px; }
#traction-form.battery-registration-layout .registration-ri-reference { margin: 0; min-width: 0; }
#traction-form.battery-registration-layout .registration-ri-fields { display: grid; grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr); gap: 16px; align-items: end; }
#traction-form.battery-registration-layout .registration-ri-fields input { max-width: 220px; font-weight: 600; }
#traction-form.battery-registration-layout .registration-ri-origin { margin-top: 14px; padding: 12px; background: #f3f6fa; border-radius: 6px; overflow-wrap: anywhere; }
#traction-form.battery-registration-layout .registration-ri-origin p { margin: 5px 0 0; }
@media (max-width: 680px) {
 #traction-form.battery-registration-layout .registration-ri-fields { grid-template-columns: minmax(0, 1fr); }
}
