:root{font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:#19392d;background:#f7f4eb}*{box-sizing:border-box}html,body{min-height:100%;background:#f7f4eb}body{margin:0;min-height:100vh;background:#f7f4eb;color:#26362f}button,input,select,textarea{font:inherit}button{border:0;border-radius:10px;background:#19392d;color:white;padding:11px 16px;font-weight:700;cursor:pointer}button:hover{filter:brightness(1.08)}button.secondary{background:white;color:#19392d;border:1px solid #c9d2cc}.danger{background:#b8334e}.hidden{display:none!important}.shell{max-width:1500px;min-height:100vh;margin:auto;padding:18px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.topbar h1{margin:2px 0 0;font-size:30px}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.12em;color:#e8477a}.top-actions,.toolbar-actions{display:flex;gap:10px;align-items:center}.panel{background:white;border-radius:16px;padding:18px;box-shadow:0 1px 8px rgba(25,57,45,.08)}.narrow{max-width:460px;margin:8vh auto}.stack{display:grid;gap:12px}.stack label,.form-grid label,.assign-row label{display:grid;gap:6px;font-weight:700;font-size:13px}input,select,textarea{width:100%;border:1px solid #d6ddd9;background:#fafafa;border-radius:9px;padding:11px;color:#26362f}textarea{min-height:92px;resize:vertical}.notice{background:#fff3cd;border:1px solid #ffe08a;color:#735c00;padding:14px;border-radius:12px;margin-bottom:14px}.error{color:#b8334e;margin-top:10px}.toolbar{display:flex;justify-content:space-between;gap:20px;align-items:center}.toolbar h2,.panel h3{margin:0}.toolbar p{margin:4px 0 0;color:#6d7772}.metrics{display:grid;grid-template-columns:repeat(6,minmax(110px,1fr));gap:10px;margin:14px 0}.metric{background:white;border-radius:14px;padding:15px;box-shadow:0 1px 8px rgba(25,57,45,.06)}.metric strong{display:block;font-size:25px}.metric span{font-size:12px;color:#69736e}.workspace{display:grid;grid-template-columns:minmax(330px,420px) 1fr;gap:14px;align-items:start}.jobs-panel{position:sticky;top:12px;max-height:calc(100vh - 30px);overflow:auto}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.job-list{display:grid;gap:10px}.job-card{border:1px solid #e0e5e2;border-radius:12px;padding:13px;cursor:pointer}.job-card:hover,.job-card.selected{border-color:#19392d;background:#f2f6f3}.job-top{display:flex;justify-content:space-between;gap:8px;align-items:start}.job-card h4{margin:0;font-size:17px}.job-card p{margin:5px 0 0;color:#66716b;font-size:13px}.pill{display:inline-flex;padding:6px 9px;border-radius:999px;background:#e1ebe5;color:#19392d;font-size:11px;font-weight:800;text-transform:uppercase}.pill.rework{background:#fde4e9;color:#9f253e}.detail-head{display:flex;justify-content:space-between;gap:12px}.detail-head h2{margin:8px 0 4px}.detail-head p{margin:0;color:#67716c}.assign-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin:18px 0}.meta-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0 18px}.meta{background:#f6f7f5;border-radius:10px;padding:10px}.meta span{display:block;font-size:11px;color:#748078;text-transform:uppercase}.meta strong{display:block;margin-top:3px;font-size:14px}.tabs{display:flex;gap:6px;overflow:auto;border-bottom:1px solid #e4e8e5;padding-bottom:8px}.tab{background:#f1f3f1;color:#34463d;white-space:nowrap;padding:8px 11px}.tab.active{background:#19392d;color:white}.tab-content{min-height:250px;padding-top:14px}.record{border:1px solid #e3e7e4;border-radius:11px;padding:12px;margin-bottom:10px}.record h4{margin:0 0 8px}.kv{display:grid;grid-template-columns:180px 1fr;gap:6px 12px;font-size:13px}.kv div:nth-child(odd){font-weight:800;color:#536159}.evidence-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.evidence-card img{width:100%;height:150px;object-fit:cover;border-radius:9px;background:#eee}.evidence-card p{font-size:12px;margin:6px 0}.review-actions{border-top:1px solid #e5e8e6;margin-top:14px;padding-top:14px}.review-actions>div{display:flex;gap:8px;margin-top:8px}.empty-state{text-align:center;color:#78817d;padding:90px 20px}dialog{border:0;border-radius:16px;width:min(850px,94vw);padding:0;box-shadow:0 20px 70px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(10,20,15,.45)}.dialog-form{padding:20px}.dialog-head{display:flex;justify-content:space-between;align-items:center}.dialog-head h2{margin:0}.icon-btn{background:transparent;color:#19392d;font-size:28px;padding:2px 8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.wide{grid-column:1/-1}.dialog-actions{display:flex;justify-content:flex-end;gap:8px}.json{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f5f6f5;padding:10px;border-radius:8px;white-space:pre-wrap;overflow:auto;font-size:12px}@media(max-width:900px){.workspace{grid-template-columns:1fr}.jobs-panel{position:static;max-height:none}.metrics{grid-template-columns:repeat(2,1fr)}.meta-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.shell{padding:10px}.topbar,.toolbar{align-items:flex-start;flex-direction:column}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.assign-row{grid-template-columns:1fr}.meta-grid{grid-template-columns:1fr}.metrics{grid-template-columns:1fr 1fr}}


/* Visual job records */
.record-summary{display:flex;flex-wrap:wrap;gap:10px 22px;margin:0 0 14px;padding:10px 12px;background:#f6f7f5;border-radius:10px;font-size:13px;color:#4f5d55}

.a55-visual{display:grid;gap:14px}
.a55-map-shell{position:relative;aspect-ratio:2/1;min-height:300px;overflow:hidden;border:1px solid #d8dfda;border-radius:14px;background:#e8ece9}
.a55-map-tiles{position:absolute;inset:0;overflow:hidden;background:#e8ece9}
.a55-map-tile{position:absolute;display:block;object-fit:cover;max-width:none;border:0}
.a55-map-overlay{position:absolute;inset:0;width:100%;height:100%;z-index:2}
.a55-route{fill:none;stroke:#19392d;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;paint-order:stroke;filter:drop-shadow(0 1px 1px rgba(255,255,255,.85))}
.a55-chamber circle{fill:#fff;stroke:#19392d;stroke-width:5}
.a55-chamber text{font:800 14px Inter,system-ui,sans-serif;fill:#19392d;pointer-events:none}
.a55-blockage circle{fill:#fff;stroke:#e8477a;stroke-width:4}
.a55-blockage path{stroke:#e8477a;stroke-width:7;stroke-linecap:round}
.a55-blockage text{font:800 15px Inter,system-ui,sans-serif;fill:#a3214d;paint-order:stroke;stroke:white;stroke-width:4px}
.a55-map-legend{position:absolute;left:12px;bottom:12px;z-index:3;display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:rgba(255,255,255,.94);padding:8px 10px;border-radius:9px;font-size:11px;font-weight:800;box-shadow:0 1px 5px rgba(25,57,45,.15)}
.a55-map-legend span{display:flex;align-items:center;gap:5px}
.legend-chamber{width:13px;height:13px;border:3px solid #19392d;border-radius:50%;background:#fff;display:inline-block}
.legend-blockage{width:17px;height:17px;display:inline-grid;place-items:center;border:2px solid #e8477a;border-radius:50%;color:#e8477a;font-style:normal;font-size:16px;line-height:1}
.legend-route{width:24px;height:0;border-top:4px solid #19392d;display:inline-block;border-radius:999px}
.a55-map-attribution{position:absolute;right:6px;bottom:5px;z-index:3;background:rgba(255,255,255,.86);padding:2px 5px;border-radius:4px;font-size:9px;color:#59665f}
.a55-map-empty,.box-empty{padding:30px;border:1px dashed #cbd4cf;border-radius:12px;text-align:center;color:#77817c;background:#f8f9f7}
.a55-details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.a55-detail-card{border:1px solid #e0e5e2;border-radius:12px;padding:12px;background:#fff;min-width:0}
.a55-detail-card.chamber{border-left:5px solid #19392d}
.a55-detail-card.blockage{border-left:5px solid #e8477a}
.a55-detail-title{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#68736d;margin-bottom:5px}
.a55-detail-card strong{display:block;font-size:15px;color:#26362f;overflow-wrap:anywhere}
.a55-detail-card small{display:block;margin-top:4px;color:#7a847f;font-size:11px}
.a55-dot.chamber{width:11px;height:11px;border-radius:50%;background:#19392d;display:inline-block}
.a55-x{display:inline-grid;place-items:center;width:14px;height:14px;border-radius:50%;background:#e8477a;color:white;font-weight:900;line-height:1}

.box-visual{display:grid;gap:18px}
.box-progress-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.box-progress-card{border:1px solid #dfe5e1;border-radius:11px;background:#f7f9f7;padding:10px 11px}
.box-progress-card span,.box-progress-card strong,.box-progress-card small{display:block}
.box-progress-card span{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#6f7a74}
.box-progress-card strong{font-size:20px;color:#19392d;margin-top:3px}
.box-progress-card small{font-size:10px;color:#87908b;margin-top:1px}
.box-route{display:grid;gap:12px;padding:8px 0}
.box-route-row{display:flex;align-items:center;justify-content:flex-start;gap:0;min-height:190px;border:1px solid #edf0ee;border-radius:12px;padding:12px 8px;background:#fbfcfb;overflow:hidden}
.box-chamber-node{flex:0 0 145px;min-height:92px;border:3px solid #19392d;border-radius:16px;background:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:12px;box-shadow:0 4px 14px rgba(25,57,45,.08);position:relative;z-index:2}
.box-chamber-node span{font-size:10px;font-weight:800;letter-spacing:.07em;color:#738078}
.box-chamber-node strong{font-size:17px;color:#19392d;margin-top:5px;overflow-wrap:anywhere;max-width:100%}
.box-section-node{flex:0 0 210px;display:grid;grid-template-rows:auto 34px auto;align-items:center;text-align:center;padding:0 8px}
.box-section-length{display:grid;justify-items:center;margin-bottom:2px}
.box-section-length span{font-size:9px;font-weight:800;letter-spacing:.07em;color:#7b8580}
.box-section-length strong{font-size:17px;color:#26362f;margin-top:2px}
.box-connector{height:28px;display:flex;align-items:center;position:relative}
.box-connector span{height:5px;background:#19392d;flex:1;border-radius:999px}
.box-connector i{width:0;height:0;border-top:9px solid transparent;border-bottom:9px solid transparent;border-left:14px solid #19392d;margin-left:-2px}
.box-statuses{display:flex;gap:5px;justify-content:center;align-items:flex-start;flex-wrap:wrap;min-height:48px}
.section-badge{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:800;white-space:nowrap}
.section-badge.danger{background:#fde3e9;color:#a3214d;border:1px solid #f4b9c7}
.section-badge.warning{background:#fff1cc;color:#7d5a00;border:1px solid #efd992}
.section-badge.new-duct{background:#e8e4ff;color:#51408a;border:1px solid #cfc5ff}
.section-badge.success{background:#e1eee6;color:#19392d;border:1px solid #c1d6c8}
.section-badge.neutral{background:#eef1ef;color:#6d7772;border:1px solid #d9dfdb}
.box-table-wrap{overflow-x:auto;border:1px solid #e1e6e3;border-radius:12px}
.box-summary-table{width:100%;border-collapse:collapse;min-width:650px;font-size:12px}
.box-summary-table th,.box-summary-table td{padding:10px 12px;text-align:left;border-bottom:1px solid #e8ece9;vertical-align:top}
.box-summary-table th{background:#f3f6f4;color:#19392d;font-size:10px;text-transform:uppercase;letter-spacing:.05em}
.box-summary-table tbody tr:last-child td{border-bottom:0}

@media(max-width:900px){
  .box-progress-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:700px){
  .a55-map-shell{min-height:240px;aspect-ratio:1.55/1}
  .a55-details-grid{grid-template-columns:1fr}
  .box-progress-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .box-route-row{overflow-x:auto;padding-left:2px;padding-right:2px}
  .box-chamber-node{flex-basis:120px}
  .box-section-node{flex-basis:175px}
}

@media print{
  .topbar,.toolbar,.jobs-panel,.assign-row,.tabs,.review-actions,#reloadDetailBtn{display:none!important}
  body,.shell{background:#fff}
  .shell{max-width:none;padding:0}
  .workspace{display:block}
  .panel,.record{box-shadow:none;border:0}
  .detail-panel{padding:0}
  .a55-map-shell{break-inside:avoid}
  .box-route{overflow:visible;padding:0}
  .box-route-row{overflow:visible;break-inside:avoid;page-break-inside:avoid;margin-bottom:8px}
  .box-progress-summary{grid-template-columns:repeat(6,minmax(0,1fr));break-inside:avoid}
  .box-summary-table{min-width:0}
}

.rework-selector{display:grid;gap:10px;padding:14px;border:1px solid #e1e6e3;border-radius:12px;background:#fafbf9}
.rework-selector>div:first-child{display:grid;gap:2px}
.rework-selector strong{color:#19392d;font-size:14px}
.rework-selector span{color:#707b75;font-size:12px}
.rework-options{display:flex;flex-wrap:wrap;gap:8px}
.rework-options label{display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid #dbe2dd;border-radius:999px;background:white;font-size:12px;font-weight:700;color:#33453c;cursor:pointer}
.rework-options input{accent-color:#e8477a}
.rework-summary{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.rework-summary span{padding:4px 8px;border-radius:999px;background:#fde8ef;color:#9d2350;font-size:11px;font-weight:800}

.live-ops-panel{margin-bottom:18px;overflow:hidden}
.live-ops-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:14px}
.live-ops-head h2{margin:4px 0 3px;color:#19392d}
.live-ops-head p{margin:0;color:#68736d}
.live-ops-status{display:grid;grid-template-columns:auto 1fr;align-items:end;column-gap:7px;text-align:right;min-width:155px}
.live-ops-status>strong{font-size:30px;line-height:1;color:#19392d}
.live-ops-status>span{font-size:12px;font-weight:800;text-transform:uppercase;color:#68736d;padding-bottom:3px}
.live-ops-status>small{grid-column:1/-1;margin-top:5px;color:#87908b;font-size:10px}
.live-engineer-map{position:relative;aspect-ratio:2.12/1;min-height:320px;overflow:hidden;border:1px solid #d8dfda;border-radius:14px;background:#e7ece8}
.live-map-tiles{position:absolute;inset:0;overflow:hidden}
.live-map-tile{position:absolute;display:block;object-fit:cover;max-width:none;border:0}
.live-map-overlay{position:absolute;inset:0;width:100%;height:100%;z-index:2}
.live-map-marker .live-marker-pulse{fill:rgba(232,71,122,.18);stroke:#e8477a;stroke-width:2}
.live-map-marker .live-marker-core{fill:#19392d;stroke:#fff;stroke-width:4}
.live-map-marker>text{font:800 11px Inter,system-ui,sans-serif;fill:#fff}
.live-map-marker rect{fill:rgba(255,255,255,.96);stroke:#d8dfda;stroke-width:1.5;filter:drop-shadow(0 2px 4px rgba(25,57,45,.18))}
.live-marker-name{font:800 12px Inter,system-ui,sans-serif;fill:#19392d}
.live-marker-job{font:600 9px Inter,system-ui,sans-serif;fill:#66736c}
.live-map-attribution{position:absolute;right:6px;bottom:5px;z-index:3;background:rgba(255,255,255,.88);padding:2px 5px;border-radius:4px;font-size:9px;color:#59665f}
.live-map-empty{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:30px;color:#77817c;background:#f5f7f5}
.live-engineer-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:9px;margin-top:12px}
.live-engineer-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;text-align:left;padding:10px 12px;border:1px solid #dce3de;border-radius:12px;background:#fff;color:#26362f;cursor:pointer}
.live-engineer-card:hover{border-color:#19392d}
.live-engineer-card.stale{opacity:.65}
.live-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#19392d;color:#fff;font-size:12px;font-weight:900}
.live-card-copy,.live-card-meta{display:grid;gap:2px;min-width:0}
.live-card-copy strong,.live-card-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.live-card-copy small,.live-card-meta small{color:#77817c;font-size:10px}
.live-card-meta{text-align:right}
.live-card-meta strong{font-size:11px;color:#e8477a}
.live-list-empty{padding:12px;color:#77817c;font-size:12px}
@media(max-width:720px){
  .live-ops-head{display:grid}
  .live-ops-status{text-align:left;grid-template-columns:auto auto;justify-content:start}
  .live-engineer-map{aspect-ratio:1.4/1;min-height:300px}
}
@media print{
  .live-ops-panel{display:none!important}
}

.detail-head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.danger-outline{background:#fff!important;color:#a3214d!important;border:1px solid #e8477a!important}
.danger-outline:hover{background:#fde8ef!important}
.danger-outline:disabled{opacity:.55;cursor:wait}
@media(max-width:620px){
  .detail-head-actions{width:100%}
  .detail-head-actions button{flex:1}
}

.user-management-panel{margin-bottom:18px}
.user-management-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:14px}
.user-management-head h2{margin:4px 0 3px;color:#19392d}
.user-management-head p{margin:0;color:#68736d;max-width:700px}
.user-counts{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.user-counts span{padding:7px 10px;border-radius:999px;background:#f1f4f2;color:#5f6c65;font-size:11px;font-weight:700}
.user-counts strong{color:#19392d;font-size:14px}
.engineer-users-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px}
.engineer-user-card{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main action" "meta action";gap:8px 14px;align-items:center;padding:13px;border:1px solid #dce3de;border-radius:13px;background:#fff}
.engineer-user-card.inactive{background:#f7f8f7;opacity:.8}
.engineer-user-main{grid-area:main;display:flex;align-items:center;gap:10px;min-width:0}
.engineer-user-main>div{display:grid;gap:2px;min-width:0}
.engineer-user-main strong,.engineer-user-main small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.engineer-user-main strong{color:#19392d}
.engineer-user-main small{font-size:11px;color:#758078}
.engineer-user-meta{grid-area:meta;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:10px;color:#77817c}
.user-status{padding:4px 7px;border-radius:999px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.user-status.active{background:#e1eee6;color:#19392d}
.user-status.inactive{background:#eceeed;color:#6e7772}
.manage-engineer-btn{grid-area:action;min-width:125px;align-self:center}
.manage-engineer-btn:disabled{opacity:.55}
@media(max-width:700px){
  .user-management-head{display:grid}
  .user-counts{justify-content:flex-start}
  .engineer-user-card{grid-template-columns:1fr;grid-template-areas:"main" "meta" "action"}
  .manage-engineer-btn{width:100%}
}
@media print{
  .user-management-panel{display:none!important}
}


/* Structured risk assessment output */
.risk-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:18px}
.risk-summary>div{display:grid;gap:4px;padding:11px 12px;border:1px solid #e1e6e3;border-radius:11px;background:#f8faf8}
.risk-summary span{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#78827d}
.risk-summary strong{font-size:13px;color:#26362f}
.risk-summary-value{display:inline-flex;width:max-content;padding:4px 8px;border-radius:999px}
.risk-summary-value.low{background:#e1eee6;color:#19392d}
.risk-summary-value.medium{background:#fff1cc;color:#7d5a00}
.risk-output-section{margin-top:18px}
.risk-output-section h4{margin:0 0 9px;color:#19392d}
.risk-section-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.risk-section-head span{font-size:10px;color:#818b85}
.risk-chips{display:flex;flex-wrap:wrap;gap:7px}
.risk-chip{padding:6px 9px;border-radius:999px;background:#e8efea;color:#19392d;font-size:11px;font-weight:800}
.risk-chip.muted{background:#eef0ef;color:#707974}
.risk-hazard-list{display:grid;gap:9px}
.risk-hazard-card{border:1px solid #dfe5e1;border-left:5px solid #19392d;border-radius:12px;padding:12px;background:#fff}
.risk-hazard-card.legacy{border-left-color:#9ba39f}
.risk-hazard-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.risk-hazard-head>div{display:grid;gap:3px}
.risk-hazard-head>div>span{font-size:9px;font-weight:900;letter-spacing:.07em;color:#8b938f}
.risk-hazard-head strong{font-size:15px;color:#19392d}
.risk-badge{padding:5px 8px;border-radius:999px;font-size:10px;font-weight:900;white-space:nowrap}
.risk-badge.low{background:#e1eee6;color:#19392d}
.risk-badge.medium{background:#fff1cc;color:#7d5a00}
.risk-control{margin-top:10px;padding-top:10px;border-top:1px solid #edf0ee}
.risk-control>span{font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#7d8781}
.risk-control p{margin:4px 0 0;white-space:pre-wrap;color:#39483f;font-size:13px}
.risk-notes-box{padding:11px 12px;border-radius:10px;background:#f6f8f6;border:1px solid #e3e7e4;white-space:pre-wrap;font-size:13px;color:#39483f}
.risk-ppe-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:7px}
.risk-ppe-item{display:flex;gap:8px;align-items:center;padding:8px 10px;border-radius:9px;font-size:11px;font-weight:700}
.risk-ppe-item.yes{background:#e6f0e9;color:#19392d}
.risk-ppe-item.no{background:#f0f1f0;color:#7a827e}
.risk-ppe-item span{font-size:14px;font-weight:900}

/* Evidence grouped by mandatory stage */
.evidence-stage-section{margin-bottom:18px;padding:14px;border:1px solid #dfe5e1;border-radius:13px;background:#fafbf9}
.evidence-stage-section.additional{background:#f5f7f5}
.evidence-stage-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:12px}
.evidence-stage-head>div>span{font-size:9px;font-weight:900;letter-spacing:.07em;color:#e8477a}
.evidence-stage-head h4{margin:2px 0 2px;color:#19392d;font-size:18px}
.evidence-stage-head p{margin:0;color:#6d7872;font-size:11px}
.evidence-requirement{padding:6px 9px;border-radius:999px;font-size:10px;font-weight:900;white-space:nowrap}
.evidence-requirement.complete{background:#e1eee6;color:#19392d}
.evidence-requirement.missing{background:#fde8ef;color:#a3214d}
.evidence-empty{padding:22px;border:1px dashed #cfd7d2;border-radius:10px;text-align:center;color:#7b8580;background:#fff;font-size:12px}
.evidence-card{overflow:hidden;padding:0!important}
.evidence-card img{width:100%;height:220px;object-fit:cover;display:block;background:#eef1ef}
.evidence-card-copy{padding:10px 12px}
.evidence-card-copy strong{display:block;color:#19392d}
.evidence-card-copy p{margin:5px 0;color:#58645d;font-size:12px}
.evidence-card-copy small{display:block;margin-top:5px;color:#84908a;font-size:10px}
.evidence-photo-label{display:inline-flex!important;width:max-content;max-width:100%;margin-top:7px;padding:5px 8px;border-radius:999px;background:#e7efe9;color:#19392d!important;font-size:10px;font-weight:800;overflow-wrap:anywhere}
.evidence-photo-notes{white-space:pre-wrap}
.evidence-photo-meta{display:grid;gap:3px;margin-top:8px;padding-top:8px;border-top:1px solid #edf0ee;color:#738078;font-size:10px}
.evidence-photo-meta span{display:block}
.evidence-photo-meta strong{display:inline;color:#526159;font-size:10px}


@media(max-width:650px){
  .risk-hazard-head,.evidence-stage-head{display:grid}
  .risk-badge,.evidence-requirement{width:max-content}
}


/* Job editing / documents */
.dialog-subtitle{margin:2px 0 0;color:#e8477a;font-weight:800}
.dialog-help{font-size:12px;color:#758078}
.job-documents{display:grid;gap:16px}
.document-upload-panel{display:grid;gap:10px;padding:14px;border:1px solid #dfe5e1;border-radius:13px;background:#f8faf8}
.document-upload-panel h4{margin:2px 0;color:#19392d;font-size:18px}
.document-upload-panel p{margin:0;color:#68736d;font-size:12px}
.document-file-picker{display:inline-flex;align-items:center;justify-content:center;width:max-content;padding:9px 12px;border-radius:9px;background:#19392d;color:#fff;font-size:12px;font-weight:800;cursor:pointer}
.document-file-picker input{display:none}
.selected-file-status{display:flex;align-items:center;gap:8px;min-height:38px;padding:9px 11px;border:1px dashed #cfd8d2;border-radius:10px;background:#fff;color:#748078;font-size:12px;font-weight:700;overflow-wrap:anywhere}
.selected-file-status.has-file{border-style:solid;border-color:#9fc9b2;background:#edf8f1;color:#236044}
.selected-file-status.has-file::before{content:"✓";display:inline-grid;place-items:center;flex:0 0 20px;width:20px;height:20px;border-radius:50%;background:#2c7a57;color:#fff;font-size:12px;font-weight:900}
.document-upload-panel textarea{min-height:70px;padding:10px;border:1px solid #d9dfdb;border-radius:9px;resize:vertical}
.document-upload-status{min-height:18px;color:#68736d;font-size:11px}
.document-list>h4{margin:0 0 9px;color:#19392d}
.job-document-card{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;margin-bottom:8px;border:1px solid #dfe5e1;border-radius:12px;background:#fff}
.job-document-icon{width:54px;height:48px;display:grid;place-items:center;border-radius:9px;background:#e7efea;color:#19392d;font-size:10px;font-weight:900;text-transform:uppercase}
.job-document-copy{display:grid;gap:3px;min-width:0}
.job-document-copy strong{color:#19392d;overflow-wrap:anywhere}
.job-document-copy span{font-size:10px;color:#7d8781}
.job-document-copy p{margin:3px 0 0;font-size:11px;color:#59665f}
.job-document-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.documents-empty{padding:24px;border:1px dashed #cfd7d2;border-radius:10px;text-align:center;color:#77817c;background:#fafbf9}
@media(max-width:680px){
  .job-document-card{grid-template-columns:48px minmax(0,1fr);grid-template-areas:"icon copy" "actions actions"}
  .job-document-icon{grid-area:icon;width:46px}
  .job-document-copy{grid-area:copy}
  .job-document-actions{grid-area:actions;justify-content:stretch}
  .job-document-actions button{flex:1}
}


/* Multi-day job records */
.pill.aborted{background:#f7e0dc;color:#9b342d}
.daily-record-card{border:1px solid #dfe5e1;border-left:5px solid #19392d;border-radius:13px;padding:15px;margin-bottom:12px;background:#fff}
.daily-record-card.completed{border-left-color:#2c7a57}
.daily-record-card.aborted{border-left-color:#b8334e}
.daily-record-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.daily-record-head h4{margin:4px 0 0;font-size:18px}
.daily-outcome{display:inline-flex;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:800;text-transform:uppercase;background:#e8efe9;color:#19392d}
.daily-outcome.completed{background:#e0efe6;color:#256247}
.daily-outcome.aborted{background:#f7e0dc;color:#9b342d}
.daily-record-meta,.daily-photo-counts{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:12px;font-size:13px;color:#536159}
.daily-photo-counts span{background:#f4f6f4;border-radius:999px;padding:5px 9px}
.daily-abort-reason{margin-top:12px;padding:10px 12px;border-radius:9px;background:#fff0ed;color:#7b2d28;font-size:13px}
.daily-empty{padding:26px;text-align:center;color:#758079;border:1px dashed #ccd5cf;border-radius:12px}
@media(max-width:1100px){.metrics{grid-template-columns:repeat(3,1fr)}}


/* Leave management */
.leave-management-panel{margin:14px 0}
.leave-management-head,.leave-totals-head,.leave-section-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.leave-management-head h2,.leave-totals-head h3,.leave-section-head h3{margin:3px 0 4px}
.leave-management-head p{margin:0;color:#68736d}
.leave-calendar-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.leave-calendar-controls strong{min-width:155px;text-align:center;font-size:16px}
.leave-summary-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}
.leave-summary-card{background:#f6f7f5;border-radius:12px;padding:13px}
.leave-summary-card strong{display:block;font-size:24px;color:#19392d}
.leave-summary-card span{font-size:12px;color:#6c7771}
.leave-management-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:16px;align-items:start}
.leave-calendar-wrap{min-width:0}
.leave-weekdays,.leave-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.leave-weekdays{margin-bottom:5px}
.leave-weekdays span{text-align:center;font-size:11px;font-weight:800;color:#68736d;padding:5px}
.leave-day{min-height:118px;border:1px solid #e0e5e2;border-radius:10px;background:#fff;padding:7px;overflow:hidden}
.leave-day.weekend{background:#f7f7f4}
.leave-day.today{box-shadow:inset 0 0 0 2px #19392d}
.leave-day.blank{border:0;background:transparent;box-shadow:none}
.leave-day-number{font-size:12px;font-weight:800;color:#59665f;margin-bottom:6px}
.leave-day-people{display:grid;gap:4px}
.leave-calendar-person{border-radius:7px;padding:5px 6px;font-size:10px;line-height:1.15;background:#e7efe9;color:#19392d;border-left:3px solid #19392d}
.leave-calendar-person.pending{background:#fff0f5;color:#8d2850;border-left-color:#e8477a}
.leave-calendar-person strong,.leave-calendar-person span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.leave-calendar-person span{font-size:9px;opacity:.78;margin-top:2px}
.leave-approvals{border-left:1px solid #e4e8e5;padding-left:16px}
.leave-pending-list{display:grid;gap:10px;margin-top:10px}
.leave-empty{padding:20px;border:1px dashed #cbd4cf;border-radius:11px;text-align:center;color:#77817c;background:#f8f9f7}
.leave-request-card{border:1px solid #e0e5e2;border-radius:12px;padding:12px;background:#fff}
.leave-request-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.leave-request-head>div strong,.leave-request-head>div span{display:block}
.leave-request-head>div span{font-size:11px;color:#6d7772;margin-top:2px}
.leave-days-badge{background:#f2f5f2;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:800;color:#19392d;white-space:nowrap}
.leave-request-dates{font-size:13px;font-weight:800;margin-top:9px;color:#26362f}
.leave-request-card p{font-size:12px;color:#536159;margin:8px 0}
.leave-request-card p.muted{color:#89918d}
.leave-request-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.leave-totals-head{margin:20px 0 10px;padding-top:16px;border-top:1px solid #e5e8e6}
.leave-totals-head label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800}
.leave-totals-head select{width:auto;min-width:100px}
.leave-engineer-totals{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.leave-total-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;gap:10px;border:1px solid #e1e6e3;border-radius:12px;padding:11px;background:#fff}
.leave-total-copy strong,.leave-total-copy span,.leave-total-taken strong,.leave-total-taken span,.leave-total-number strong,.leave-total-number span,.leave-total-pending strong,.leave-total-pending span{display:block}
.leave-total-copy span,.leave-total-taken span,.leave-total-number span,.leave-total-pending span{font-size:10px;color:#7a847f}
.leave-total-taken,.leave-total-number,.leave-total-pending{text-align:right}
.leave-total-number strong{font-size:20px;color:#19392d}
.leave-total-pending strong{font-size:16px;color:#e8477a}
@media(max-width:1050px){.leave-management-grid{grid-template-columns:1fr}.leave-approvals{border-left:0;border-top:1px solid #e4e8e5;padding-left:0;padding-top:14px}}
@media(max-width:720px){.leave-management-head,.leave-totals-head{flex-direction:column}.leave-summary-metrics{grid-template-columns:1fr}.leave-day{min-height:90px;padding:4px}.leave-calendar-person{padding:4px;font-size:9px}.leave-calendar-person span{display:none}.leave-total-card{grid-template-columns:auto 1fr auto}.leave-total-taken,.leave-total-number,.leave-total-pending{grid-column:2/-1;text-align:left}}


/* Office dashboard navigation */
.office-nav{display:flex;gap:8px;align-items:center;overflow-x:auto;position:sticky;top:10px;z-index:20;margin-bottom:14px;padding:9px}
.office-nav-btn{background:#eef2ef;color:#19392d;border:1px solid #d8dfda;white-space:nowrap}
.office-nav-btn.active{background:#19392d;color:#fff;border-color:#19392d}
.office-view.hidden{display:none!important}
.overview-head{margin:4px 0 12px}
.overview-head h2{margin:3px 0 4px}
.overview-head p{margin:0;color:#68736d}
.overview-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}
.overview-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:5px;min-height:145px;background:#fff;color:#19392d;border:1px solid #dfe5e1;border-radius:14px;padding:16px;box-shadow:none}
.overview-card:hover{border-color:#19392d;transform:translateY(-1px)}
.overview-card strong{font-size:24px}
.overview-card small{color:#68736d;line-height:1.35}
.overview-open{margin-top:auto;font-size:12px;font-weight:800;color:#e8477a}

.leave-calendar-person{width:100%;border:0;text-align:left;cursor:pointer;font-family:inherit}
.leave-request-actions.three{grid-template-columns:repeat(3,1fr)}
.leave-records-head{display:flex;justify-content:space-between;gap:16px;align-items:end;margin:22px 0 10px;padding-top:17px;border-top:1px solid #e2e7e4}
.leave-records-head h3{margin:3px 0 3px}
.leave-records-head p{margin:0;color:#69756e;font-size:13px}
.leave-records-head select{width:auto;min-width:145px}
.leave-all-records{display:grid;gap:8px}
.leave-record-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;border:1px solid #e0e5e2;border-radius:12px;padding:12px;background:#fff}
.leave-record-main strong,.leave-record-main span,.leave-record-main small{display:block}
.leave-record-main span{margin-top:3px;font-size:13px;color:#37483f}
.leave-record-main small{margin-top:2px;color:#7a847f}
.leave-record-status{display:inline-flex;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:800;text-transform:uppercase;background:#f2f4f2;color:#56625c}
.leave-record-status.approved{background:#e0efe6;color:#256247}
.leave-record-status.pending{background:#fff0f5;color:#8d2850}
.leave-record-status.rejected{background:#f7e0dc;color:#9b342d}
.leave-record-status.cancelled{background:#eceeed;color:#666f6a}
.leave-edit-btn{min-width:72px}

@media(max-width:1000px){
  .overview-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .office-nav{position:static}
  .overview-cards{grid-template-columns:1fr}
  .leave-records-head{flex-direction:column;align-items:stretch}
  .leave-records-head select{width:100%}
  .leave-record-row{grid-template-columns:1fr auto}
  .leave-edit-btn{grid-column:1/-1}
  .leave-request-actions.three{grid-template-columns:1fr}
}


/* Job record export actions */
.record-export-bar{display:flex;justify-content:space-between;gap:16px;align-items:center;border:1px solid #dfe5e1;border-radius:13px;background:#f7f9f7;padding:13px 14px;margin-bottom:14px}
.record-export-bar>div strong,.record-export-bar>div span{display:block}
.record-export-bar>div strong{font-size:14px;color:#19392d}
.record-export-bar>div span{font-size:12px;color:#68736d;margin-top:2px}
.record-export-bar button{white-space:nowrap}
.record-export-inline{display:flex;justify-content:flex-end;margin:0 0 9px}
.evidence-download-btn{margin-top:10px;width:100%;font-size:11px}
@media(max-width:700px){
  .record-export-bar{align-items:stretch;flex-direction:column}
  .record-export-bar button{width:100%}
}


/* Compact serpentine Box-to-Box export, based on traditional route-sheet layout */
.box-compact-export{display:grid;gap:12px}
.box-export-route-title,.box-export-summary-title,.box-export-breakdown-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;color:#19392d}
.box-export-route-title strong,.box-export-summary-title,.box-export-breakdown-title{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.box-export-route-title span{font-size:10px;color:#7b8580;font-weight:600;text-transform:none;letter-spacing:0}
.box-export-route{display:grid;gap:0;border-top:1px solid #dfe4e1;border-bottom:1px solid #dfe4e1;padding:7px 0}
.box-export-row{display:flex;align-items:stretch;justify-content:flex-start;min-height:76px;break-inside:avoid;page-break-inside:avoid}
.box-export-row.rtl{flex-direction:row-reverse}
.box-export-chamber{flex:0 0 73px;min-width:73px;max-width:73px;height:46px;align-self:center;border:1.5px solid #1e2e27;background:#fff;display:flex;flex-direction:column;justify-content:center;text-align:center;padding:3px 4px;box-sizing:border-box}
.box-export-chamber small{font-size:6.5px;line-height:1;color:#77817c;font-weight:800;letter-spacing:.03em}
.box-export-chamber strong{font-size:8.5px;line-height:1.08;color:#1e2e27;margin-top:3px;overflow-wrap:anywhere}
.box-export-section{flex:0 0 79px;min-width:79px;max-width:79px;display:grid;grid-template-rows:11px 18px 15px minmax(20px,auto);align-content:center;text-align:center;padding:3px 2px;box-sizing:border-box}
.box-export-section small{font-size:6.5px;color:#7b8580;font-weight:800;letter-spacing:.025em}
.box-export-section>strong{font-size:8.5px;color:#19392d;background:#dff3e5;border:1px solid #c5e2cf;padding:2px 1px;line-height:1.05}
.box-export-section em{font-style:normal;font-size:6.3px;line-height:1.12;color:#4c5952;padding-top:2px;overflow-wrap:anywhere}
.box-export-section em.empty{color:#9aa19d}
.box-export-arrow{height:18px;display:flex;align-items:center}
.box-export-arrow span{height:1.5px;background:#ed405e;flex:1}
.box-export-arrow i{width:0;height:0;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:7px solid #ed405e}
.box-export-row.rtl .box-export-arrow{flex-direction:row-reverse}
.box-export-row.rtl .box-export-arrow i{border-left:0;border-right:7px solid #ed405e}
.box-export-turn{height:18px;display:flex;flex-direction:column;justify-content:center;color:#1e2e27;font-size:10px;line-height:1}
.box-export-turn.right{align-items:flex-end;padding-right:34px}
.box-export-turn.left{align-items:flex-start;padding-left:34px}
.box-export-turn span{display:block;height:9px;width:1.5px;background:#1e2e27}
.box-export-turn b{font-size:10px;font-weight:900;margin-top:-2px}
.box-compact-export .box-progress-summary{margin-top:0}
.box-export-breakdown-title{margin-top:3px}
.box-compact-export .box-summary-table{font-size:9px;min-width:0}
.box-compact-export .box-summary-table th,.box-compact-export .box-summary-table td{padding:5px 7px}
.box-compact-export .box-table-wrap{overflow:visible}
@media print{
  .box-compact-export{gap:9px}
  .box-export-route{padding:4px 0}
  .box-export-row{min-height:68px}
  .box-export-chamber{height:42px}
  .box-export-turn{height:14px}
  .box-compact-export .box-progress-summary{grid-template-columns:repeat(6,minmax(0,1fr))}
  .box-compact-export .box-table-wrap{break-before:auto}
  .box-compact-export .box-summary-table thead{display:table-header-group}
  .box-compact-export .box-summary-table tr{break-inside:avoid;page-break-inside:avoid}
}



/* Compact A55 print layout — tuned for one landscape A4 page */
.a55-export-record{display:grid;gap:5px}
.a55-export-record>h2{margin:0 0 2px;font-size:16px;line-height:1.05}
.a55-export-record .export-meta{margin:3px 0 5px;gap:5px}
.a55-export-record .export-meta>div{padding:5px 7px;border-radius:6px}
.a55-export-record .export-meta span{font-size:8px}
.a55-export-record .export-meta strong{font-size:10px;margin-top:2px}
.a55-export-record>.record{margin:0 0 4px;padding:5px 7px;font-size:9px;line-height:1.2}
.a55-export-record>.record p{margin:2px 0 0}
.a55-export-record>.record-summary{margin:0 0 4px;padding:5px 7px;font-size:9px;line-height:1.2}
.a55-export-record .a55-visual{display:grid;grid-template-columns:minmax(0,2.15fr) minmax(235px,.85fr);gap:8px;align-items:start}
.a55-export-record .a55-map-shell{height:82mm;min-height:0;aspect-ratio:auto;border-radius:8px}
.a55-export-record .a55-map-legend{left:7px;bottom:7px;gap:7px;padding:4px 6px;border-radius:6px;font-size:8px}
.a55-export-record .legend-chamber{width:10px;height:10px;border-width:2px}
.a55-export-record .legend-blockage{width:13px;height:13px;font-size:12px}
.a55-export-record .legend-route{width:18px;border-top-width:3px}
.a55-export-record .a55-map-attribution{font-size:7px;padding:1px 3px}
.a55-export-record .a55-details-grid{grid-template-columns:1fr;gap:6px}
.a55-export-record .a55-detail-card{padding:8px 9px;border-radius:7px;border-left-width:4px}
.a55-export-record .a55-detail-title{gap:5px;font-size:9px;margin-bottom:3px}
.a55-export-record .a55-detail-card strong{font-size:11px;line-height:1.2}
.a55-export-record .a55-detail-card small{font-size:9px;line-height:1.25;margin-top:3px}
.a55-export-record .a55-dot.chamber{width:7px;height:7px}
.a55-export-record .a55-x{width:9px;height:9px;font-size:8px}

/* True serpentine Box-to-Box turn — no repeated chamber */
.box-export-row.terminal{min-height:52px}
.box-export-row-link{height:64px;display:flex;align-items:stretch;gap:6px;break-inside:avoid;page-break-inside:avoid}
.box-export-row-link.right{justify-content:flex-end;padding-right:31px}
.box-export-row-link.left{justify-content:flex-start;padding-left:31px}
.box-export-turn-section{width:92px;align-self:center;border:1px solid var(--section-color,#cfd7d2);background:var(--section-bg,#f5f7f5);border-radius:7px;padding:4px 5px;text-align:center}
.box-export-turn-section small,.box-export-turn-section strong{display:block}
.box-export-turn-section small{font-size:6px;color:#68736d;font-weight:800;letter-spacing:.03em}
.box-export-turn-section strong{font-size:8px;color:#19392d;margin-top:2px}
.box-export-turn-arrow{width:18px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.box-export-turn-arrow span{width:2px;height:42px;background:var(--section-color,#19392d);border-radius:999px}
.box-export-turn-arrow i{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:8px solid var(--section-color,#19392d);margin-top:-1px}

/* Section colour coding */
.box-export-section{border:1px solid var(--section-color,#d9dfdb);background:var(--section-bg,#f7f9f7);border-radius:7px;margin:2px 1px}
.box-export-section>strong{background:#fff;border-color:var(--section-color,#cfd7d2)}
.box-export-arrow span{background:var(--section-color,#ed405e)}
.box-export-arrow i{border-left-color:var(--section-color,#ed405e)}
.box-export-row.rtl .box-export-arrow i{border-right-color:var(--section-color,#ed405e)}
.status-blocked{--section-color:#b8334e;--section-bg:#fde3e9}
.status-desilt{--section-color:#b07a00;--section-bg:#fff1cc}
.status-new-duct{--section-color:#6653a4;--section-bg:#e8e4ff}
.status-tree{--section-color:#6e711f;--section-bg:#f0f2cf}
.status-roped{--section-color:#2e7d50;--section-bg:#e1eee6}
.status-cabled{--section-color:#14727a;--section-bg:#def1f2}
.status-blown{--section-color:#3567a8;--section-bg:#e2ecfa}
.status-neutral{--section-color:#aeb8b2;--section-bg:#f2f4f3}
.box-export-statuses{display:flex;flex-wrap:wrap;justify-content:center;gap:2px;padding-top:2px}
.box-export-statuses span{display:inline-flex;align-items:center;padding:1px 3px;border-radius:999px;font-size:5.5px;font-weight:800;line-height:1.2;border:1px solid transparent}
.box-export-statuses .blocked{background:#fde3e9;color:#9f253e;border-color:#f4b9c7}
.box-export-statuses .desilt{background:#fff1cc;color:#7d5a00;border-color:#efd992}
.box-export-statuses .new-duct{background:#e8e4ff;color:#51408a;border-color:#cfc5ff}
.box-export-statuses .tree{background:#f0f2cf;color:#565a17;border-color:#d9dc9e}
.box-export-statuses .roped{background:#e1eee6;color:#24633f;border-color:#c1d6c8}
.box-export-statuses .cabled{background:#def1f2;color:#0f5960;border-color:#b6dadd}
.box-export-statuses .blown{background:#e2ecfa;color:#285488;border-color:#bdd0ed}
.box-export-statuses .neutral{background:#eef1ef;color:#6d7772;border-color:#d9dfdb}

@media print{
  .a55-export-record{gap:4px}
  .a55-export-record .a55-map-shell{height:80mm}
  .box-export-row-link{height:56px}
  .box-export-row-link.right{padding-right:31px}
  .box-export-row-link.left{padding-left:31px}
  .box-export-turn-arrow span{height:35px}
}


/* Risk assessment history */
.risk-history-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 12px;padding:10px 12px;border:1px solid #dfe5e1;border-radius:10px;background:#f7f9f7}
.risk-history-head strong{color:#19392d;font-size:14px}
.risk-history-head span{color:#728078;font-size:11px}
.risk-history-source{margin:-2px 0 9px;padding-bottom:7px;border-bottom:1px solid #edf0ee;color:#7b8580;font-size:10px;font-weight:700}
.box-table-status-neutral{display:inline-flex;padding:3px 6px;border-radius:999px;background:#eef1ef;border:1px solid #d9dfdb;color:#6d7772;font-size:9px;font-weight:800}


/* Work-day drill-down */
.daily-record-card[data-work-day-select]{cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.daily-record-card[data-work-day-select]:hover{border-color:#8ba397;box-shadow:0 5px 18px rgba(25,57,45,.09);transform:translateY(-1px)}
.daily-record-card[data-work-day-select]:focus{outline:3px solid rgba(232,71,122,.2);outline-offset:2px}
.daily-record-card.selected{border-color:#19392d;background:#f7faf8;box-shadow:0 0 0 2px rgba(25,57,45,.08)}
.daily-record-open{margin-top:12px;padding-top:9px;border-top:1px solid #edf0ee;color:#e8477a;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.day-filter-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 14px;padding:12px 14px;border:1px solid #cad7cf;border-left:5px solid #19392d;border-radius:12px;background:#f4f8f5}
.day-filter-bar>div{display:grid;gap:2px}
.day-filter-bar .eyebrow{font-size:9px}
.day-filter-bar strong{font-size:16px;color:#19392d}
.day-filter-bar small{font-size:11px;color:#68756e}
.day-filter-bar button{white-space:nowrap}
.work-day-detail{display:grid;gap:14px}
.work-day-detail-section{border:1px solid #e0e6e2;border-radius:14px;background:#fff;padding:14px}
.work-day-detail-section.summary{background:#f8faf8}
.work-day-detail-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px;border-bottom:1px solid #edf0ee;padding-bottom:8px}
.work-day-detail-title span{font-size:9px;font-weight:800;letter-spacing:.08em;color:#e8477a}
.work-day-detail-title h3{margin:0;font-size:17px;color:#19392d}
.work-day-detail-section .daily-record-card{margin-bottom:0}
@media(max-width:700px){
  .day-filter-bar,.work-day-detail-title{align-items:flex-start;flex-direction:column}
  .day-filter-bar button{width:100%}
}


/* Approved completed-job archive */
.detail-slot{display:contents}
.completed-panel-head{align-items:flex-start;gap:10px}
.completed-panel-head>div{min-width:0}
.completed-panel-head input{width:min(210px,48%);padding:8px 10px}
.completed-jobs-help{margin:0 0 12px;color:#6d7772;font-size:12px;line-height:1.4}
.completed-job-review{color:#2c7a57!important;font-weight:700;font-size:11px!important}
#officeViewCompleted .job-card .pill{background:#e0efe6;color:#256247}
#officeViewCompleted .jobs-panel{border-top:4px solid #2c7a57}
@media(max-width:600px){
  .completed-panel-head{flex-direction:column}
  .completed-panel-head input{width:100%}
}


/* Dual office / engineer access */
.access-fieldset{border:1px solid #d9e0db;border-radius:12px;padding:12px 14px;display:grid;gap:9px;background:#fafbf9}
.access-fieldset legend{padding:0 6px;font-size:12px;font-weight:800;color:#19392d}
.access-check{display:flex!important;grid-template-columns:none!important;align-items:center;gap:9px!important;font-size:13px!important;font-weight:700!important;cursor:pointer}
.access-check input{width:18px;height:18px;min-width:18px;margin:0;padding:0;accent-color:#19392d}
.access-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.access-badge{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.access-badge.office{background:#e8e4ff;color:#51408a;border:1px solid #cfc5ff}
.access-badge.engineer{background:#e1eee6;color:#24633f;border:1px solid #c1d6c8}


/* Self-service password change */
.password-success{margin-top:10px;padding:10px 12px;border:1px solid #b9d8c5;border-radius:10px;background:#e9f5ed;color:#24623f;font-size:13px;font-weight:800}
#changePasswordDialog{width:min(560px,94vw)}


/* Protected account access */
.protected-access-control{display:inline-flex;align-items:center;justify-content:center;padding:8px 10px;border:1px solid #d7c58e;border-radius:10px;background:#fff7d8;color:#725b00;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}


/* Office Box-to-Box survey planner */
.box-office-planner-bar{border-left:4px solid #e8477a;background:#fff8fb}
.box-planner{display:grid;gap:14px;border:1px solid #dce3df;border-radius:14px;padding:16px;background:#fbfcfb}
.box-planner-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.box-planner-toolbar h3{margin:3px 0 3px;color:#19392d}
.box-planner-toolbar p{margin:0;color:#6c7871;font-size:13px}
.box-planner-actions,.box-planner-route-actions{display:flex;gap:8px;flex-wrap:wrap}
.box-planner-route{display:grid;gap:10px}
.box-planner-chamber{border:2px solid #19392d;border-radius:12px;padding:11px;background:#fff}
.box-planner-chamber>span,.box-planner-section-head span{display:block;font-size:10px;font-weight:800;letter-spacing:.07em;color:#e8477a}
.box-planner-chamber input{margin-top:6px}
.box-planner-section{margin-left:24px;border-left:4px solid #9cb0a5;border-radius:0 12px 12px 0;padding:12px 12px 12px 14px;background:#f3f6f4}
.box-planner-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.box-planner-section-head strong{display:block;margin-top:2px;color:#19392d;font-size:13px}
button.compact{padding:7px 9px;font-size:11px}
.box-planner-section>label{display:grid;gap:5px;font-size:12px;font-weight:800}
.box-planner-statuses{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.box-planner-check{display:flex!important;align-items:center;gap:6px!important;padding:6px 8px;border:1px solid #d8dfda;border-radius:999px;background:#fff;font-size:11px!important;font-weight:700!important}
.box-planner-check input{width:16px;height:16px;min-width:16px;margin:0;padding:0;accent-color:#19392d}
.box-planner-notes{display:grid;gap:6px;font-size:12px;font-weight:800}
@media(max-width:700px){
  .box-planner-toolbar,.box-planner-section-head{flex-direction:column;align-items:stretch}
  .box-planner-actions button,.box-planner-route-actions button{flex:1}
  .box-planner-section{margin-left:10px}
}


/* Company Library + Toolbox Talks */
.resources-management{display:grid;gap:14px}
.resources-panel,.toolbox-management-panel{min-width:0}
.resources-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}
.resources-head h2{margin:3px 0 4px}
.resources-head p{margin:0;color:#68756e}
.resource-upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;border:1px solid #e0e6e2;border-radius:14px;padding:14px;background:#f8faf8}
.resource-upload-grid .wide{grid-column:1/-1}
.resource-upload-grid label:not(.document-file-picker){display:grid;gap:5px;font-size:12px;font-weight:800;color:#35463d}
.resources-list-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 10px}
.resources-list-head h3{margin:0}
.resource-document-list,.toolbox-talk-list{display:grid;gap:9px}
.resource-document-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;border:1px solid #dfe5e1;border-radius:12px;padding:12px;background:#fff}
.resource-document-card.archived,.toolbox-office-card.archived{opacity:.68;background:#f4f5f4}
.resource-document-main strong,.resource-document-main small{display:block}
.resource-document-main strong{margin-top:3px;color:#19392d;font-size:15px}
.resource-document-main p{margin:5px 0;color:#5c6962;font-size:12px}
.resource-document-main small{margin-top:5px;color:#818b85;font-size:10px}
.resource-category{display:inline-flex;padding:3px 7px;border-radius:999px;background:#fff0f5;color:#8d2850;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.resource-document-actions,.toolbox-office-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.resource-archived-label{display:inline-flex;padding:6px 8px;border-radius:999px;background:#e8eae9;color:#68716c;font-size:10px;font-weight:800;text-transform:uppercase}
.toolbox-engineer-fieldset{border:1px solid #d9e0db;border-radius:12px;padding:12px;background:#fff}
.toolbox-engineer-fieldset legend{font-size:12px;font-weight:800;color:#19392d;padding:0 6px}
.toolbox-select-all{padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #e6eae7}
.toolbox-engineer-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:7px}
.toolbox-engineer-choice{padding:7px 8px;border:1px solid #e1e6e3;border-radius:9px;background:#fafbfa}
.toolbox-office-card{border:1px solid #dce3df;border-radius:14px;background:#fff;padding:14px}
.toolbox-office-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.toolbox-office-head h4{margin:3px 0 4px;color:#19392d;font-size:18px}
.toolbox-office-head p{margin:0 0 5px;color:#59675f;font-size:12px}
.toolbox-office-head small{color:#808985;font-size:10px}
.toolbox-progress-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:13px 0}
.toolbox-progress-grid>div{border:1px solid #e1e6e3;border-radius:10px;padding:9px;background:#f8faf8}
.toolbox-progress-grid span,.toolbox-progress-grid strong{display:block}
.toolbox-progress-grid span{font-size:9px;color:#758079;text-transform:uppercase;font-weight:800}
.toolbox-progress-grid strong{margin-top:2px;font-size:20px;color:#19392d}
.toolbox-register-wrap{overflow-x:auto;border:1px solid #e3e7e5;border-radius:10px}
.toolbox-register{width:100%;border-collapse:collapse;min-width:730px}
.toolbox-register th,.toolbox-register td{padding:8px 9px;text-align:left;border-bottom:1px solid #edf0ee;font-size:11px}
.toolbox-register th{background:#f5f7f5;color:#58655e;font-size:9px;text-transform:uppercase}
.toolbox-status{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:800;text-transform:uppercase}
.toolbox-status.issued{background:#fff0f5;color:#8d2850}
.toolbox-status.opened{background:#fff1cc;color:#735200}
.toolbox-status.acknowledged{background:#e0efe6;color:#256247}
@media(max-width:760px){
  .resource-upload-grid{grid-template-columns:1fr}
  .resource-upload-grid .wide{grid-column:auto}
  .resource-document-card,.toolbox-office-head{grid-template-columns:1fr;display:grid}
  .resource-document-actions,.toolbox-office-actions{justify-content:flex-start}
  .toolbox-progress-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* Fleet & Stock management */
.asset-management-head,
.stock-ledger-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px;
}
.asset-management-head h2,
.stock-ledger-head h3 { margin:3px 0 5px; }
.asset-management-head p,
.stock-ledger-head p { margin:0; color:var(--muted); }

.asset-summary-metrics {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:0 0 18px;
}
.asset-summary-metrics > div {
  border:1px solid var(--line);
  background:var(--surface-soft, #f7f9f8);
  border-radius:14px;
  padding:14px 16px;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.asset-summary-metrics strong { font-size:25px; line-height:1; }
.asset-summary-metrics span { color:var(--muted); font-size:12px; }
.asset-summary-metrics .attention strong { color:#a52b2b; }

.fleet-vehicle-list,
.stock-item-list,
.stock-movement-list {
  display:grid;
  gap:12px;
}
.fleet-vehicle-card,
.stock-item-card {
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  padding:16px;
}
.fleet-vehicle-card.archived,
.stock-item-card.archived { opacity:.7; background:#f7f7f7; }
.stock-item-card.low-stock { border-color:#d8a53a; box-shadow:inset 4px 0 0 #d8a53a; }

.fleet-vehicle-head,
.stock-item-title-row,
.fleet-vehicle-foot {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
.fleet-vehicle-head h3,
.stock-item-title-row h3 { margin:4px 0 0; }
.vehicle-registration {
  display:inline-block;
  font-weight:800;
  letter-spacing:.08em;
  background:#f1f4f2;
  border:1px solid var(--line);
  border-radius:8px;
  padding:4px 8px;
}
.asset-status {
  border-radius:999px;
  padding:6px 10px;
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
}
.asset-status.active { background:#e8f5ee; color:#157347; }
.asset-status.maintenance { background:#fff3cd; color:#8a6410; }
.asset-status.off_road { background:#f8d7da; color:#842029; }
.asset-status.sold { background:#eceff1; color:#5b6266; }

.fleet-assignment {
  margin:14px 0;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.fleet-assignment span { color:var(--muted); font-size:12px; }
.fleet-assignment strong { font-size:15px; }

.asset-date-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin:12px 0 14px;
}
.asset-date {
  border-radius:10px;
  padding:9px 10px;
  font-size:12px;
  background:#f5f7f6;
}
.asset-date b { display:block; margin-bottom:2px; }
.asset-date.overdue { background:#f8d7da; color:#842029; }
.asset-date.due-soon { background:#fff3cd; color:#73510b; }
.asset-date.current { background:#e8f5ee; color:#157347; }
.asset-date.neutral { color:#68716d; }
.fleet-vehicle-foot > div { min-width:0; }
.fleet-vehicle-foot span { font-size:12px; }
.fleet-vehicle-foot p { margin:6px 0 0; color:var(--muted); white-space:pre-wrap; }

.stock-management { display:grid; gap:16px; }
.stock-item-main { min-width:0; }
.stock-item-title-row > div:first-child span { color:var(--muted); font-size:12px; }
.stock-balance {
  min-width:110px;
  text-align:right;
  padding:8px 10px;
  border-radius:12px;
  background:#eef5f1;
}
.stock-balance strong { display:block; font-size:22px; line-height:1.05; }
.stock-balance span { color:var(--muted); font-size:11px; }
.stock-balance.attention { background:#fff3cd; color:#73510b; }

.stock-item-meta {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px 16px;
  margin:14px 0 8px;
  font-size:12px;
  color:#4e5954;
}
.stock-item-main > p { margin:8px 0 0; color:var(--muted); }
.stock-item-actions {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}
.stock-item-actions button { min-width:92px; }

.stock-ledger-panel { overflow:hidden; }
.stock-ledger-head select { min-width:160px; }
.stock-movement-row {
  display:grid;
  grid-template-columns:52px minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  border:1px solid var(--line);
  border-radius:13px;
  padding:12px 14px;
  background:#fff;
}
.movement-direction {
  width:44px;
  height:32px;
  border-radius:9px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:11px;
  font-weight:900;
}
.stock-movement-row.in .movement-direction { background:#e8f5ee; color:#157347; }
.stock-movement-row.out .movement-direction { background:#f8e8e8; color:#9b2c2c; }
.movement-main { min-width:0; }
.movement-main strong,
.movement-main span,
.movement-main small { display:block; }
.movement-main span,
.movement-main small { color:var(--muted); font-size:11px; margin-top:2px; }
.movement-main p { margin:5px 0 0; font-size:12px; }
.movement-quantity { text-align:right; }
.movement-quantity strong { display:block; }
.movement-quantity span { display:block; color:var(--muted); font-size:11px; margin-top:2px; }

.stock-active-check {
  align-self:end;
  min-height:44px;
  display:flex;
  align-items:center;
}

@media (max-width: 900px) {
  .asset-summary-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .asset-date-grid,
  .stock-item-meta { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .asset-management-head,
  .stock-ledger-head,
  .fleet-vehicle-head,
  .stock-item-title-row,
  .fleet-vehicle-foot {
    flex-direction:column;
    align-items:stretch;
  }
  .asset-summary-metrics,
  .asset-date-grid,
  .stock-item-meta { grid-template-columns:1fr; }
  .stock-balance { text-align:left; min-width:0; }
  .stock-movement-row { grid-template-columns:44px minmax(0,1fr); }
  .movement-quantity { grid-column:2; text-align:left; }
}

/* Automatic England bank holidays in leave management */
.leave-day.bank-holiday{background:#fff8ec;border-color:#e8c77b}
.leave-calendar-bank-holiday{border-radius:7px;padding:5px 6px;font-size:9px;line-height:1.2;background:#fff0cf;color:#6c4b00;border-left:3px solid #d99a00}
.leave-calendar-bank-holiday strong,.leave-calendar-bank-holiday span{display:block}
.leave-calendar-bank-holiday span{margin-top:2px;opacity:.82}
.leave-summary-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
.leave-entitlement-card{grid-template-columns:auto minmax(0,1fr) repeat(7,auto)}
.leave-entitlement-card>div:not(.leave-total-copy){text-align:right}
.leave-entitlement-card>div:not(.leave-total-copy) strong,
.leave-entitlement-card>div:not(.leave-total-copy) span{display:block}
.leave-entitlement-card>div:not(.leave-total-copy) span{font-size:10px;color:#7a847f}
.leave-total-entitlement strong,.leave-total-bookable strong,.leave-total-remaining strong{font-size:19px;color:#19392d}
.leave-total-bank strong{font-size:17px;color:#9a6800}
.leave-total-remaining strong{color:#256247}
@media(max-width:1100px){
  .leave-entitlement-card{grid-template-columns:auto minmax(0,1fr) repeat(3,auto)}
  .leave-entitlement-card>div:nth-child(n+6){grid-column:auto}
}
@media(max-width:720px){
  .leave-summary-metrics{grid-template-columns:1fr}
  .leave-entitlement-card{grid-template-columns:auto 1fr}
  .leave-entitlement-card>div:not(.leave-total-copy){grid-column:2;text-align:left}
}


/* Responsive engineer leave entitlement cards */
.leave-engineer-totals{
  grid-template-columns:1fr;
}
.leave-entitlement-card{
  display:block;
  padding:14px;
  overflow:hidden;
}
.leave-entitlement-person{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  padding-bottom:12px;
  margin-bottom:12px;
  border-bottom:1px solid #e4e8e5;
}
.leave-entitlement-person .leave-total-copy{
  min-width:0;
}
.leave-entitlement-person .leave-total-copy strong,
.leave-entitlement-person .leave-total-copy span{
  display:block;
}
.leave-entitlement-person .leave-total-copy strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.leave-entitlement-stats{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
.leave-entitlement-stats .leave-stat{
  min-width:0;
  padding:10px 11px;
  border:1px solid #e4e8e5;
  border-radius:10px;
  background:#f8f9f7;
  text-align:left;
}
.leave-entitlement-stats .leave-stat strong,
.leave-entitlement-stats .leave-stat span{
  display:block;
}
.leave-entitlement-stats .leave-stat strong{
  font-size:20px;
  line-height:1.1;
  margin-bottom:3px;
}
.leave-entitlement-stats .leave-stat span{
  font-size:10px;
  line-height:1.25;
  color:#727d77;
  white-space:normal;
  overflow-wrap:anywhere;
}
.leave-entitlement-stats .leave-total-bank{
  background:#fff8ec;
  border-color:#ecd59e;
}
.leave-entitlement-stats .leave-total-remaining{
  background:#edf6f0;
  border-color:#cfe2d5;
}
.leave-entitlement-stats .leave-total-pending{
  background:#fff3f7;
  border-color:#f0cfdb;
}
@media(max-width:1050px){
  .leave-entitlement-stats{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media(max-width:760px){
  .leave-entitlement-stats{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:440px){
  .leave-entitlement-stats{
    grid-template-columns:1fr;
  }
}


/* Stock ledger Excel export */
.stock-ledger-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.stock-ledger-actions select{
  min-width:150px;
}
.stock-ledger-actions button{
  white-space:nowrap;
}
@media(max-width:700px){
  .stock-ledger-actions{
    width:100%;
    align-items:stretch;
  }
  .stock-ledger-actions select,
  .stock-ledger-actions button{
    width:100%;
  }
}


/* Global office search */
.toolbar{position:relative}
.office-global-search{position:relative;flex:1;min-width:260px;max-width:620px;margin-left:auto}
.office-global-search input{width:100%;min-height:44px;padding:10px 13px;border:1px solid #d7dfda;border-radius:10px;background:#fff;font:inherit}
.office-global-search-results{position:absolute;z-index:70;left:0;right:0;top:calc(100% + 6px);max-height:440px;overflow:auto;background:#fff;border:1px solid #dce3df;border-radius:12px;box-shadow:0 12px 32px rgba(25,57,45,.16);padding:7px}
.global-search-result{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 9px;width:100%;text-align:left;background:#fff;color:#19392d;border:0;border-radius:9px;padding:9px 10px}
.global-search-result:hover{background:#f1f5f2}
.global-search-result .global-search-type{grid-row:1/3;align-self:start;font-size:9px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;background:#edf2ef;border-radius:999px;padding:4px 6px}
.global-search-result strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.global-search-result small{font-size:11px;color:#6e7973;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.global-search-empty{padding:16px;text-align:center;color:#748079;font-size:13px}
.nav-alert-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;margin-left:4px;padding:0 5px;border-radius:999px;background:#e8477a;color:#fff;font-size:10px;font-weight:900}

/* Collapsible stock panels */
.stock-section-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.stock-collapse-btn{min-width:94px}
.stock-collapsible-body.hidden{display:none!important}
.stock-collapsible-panel .stock-section-head{margin-bottom:0}
.stock-collapsible-panel .stock-collapsible-body:not(.hidden){margin-top:14px}

/* Engineer stock request approvals */
.stock-request-list,.engineer-stock-list{display:grid;gap:10px;margin-top:12px}
.stock-request-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;border:1px solid #e0e6e2;border-radius:12px;background:#fff;padding:13px}
.stock-request-card.pending{border-left:4px solid #e8477a}
.stock-request-card.approved{border-left:4px solid #2f7657}
.stock-request-card.rejected{border-left:4px solid #a24943;opacity:.82}
.stock-request-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.stock-request-title>strong{font-size:15px}
.stock-request-status{display:inline-flex;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:900;text-transform:uppercase;background:#edf1ef;color:#56625c}
.stock-request-status.pending{background:#fff0f5;color:#8d2850}
.stock-request-status.approved{background:#e3f1e8;color:#2b694e}
.stock-request-status.rejected{background:#f6e5e2;color:#933c35}
.stock-request-main h4{margin:7px 0 5px;color:#19392d}
.stock-request-meta{display:flex;gap:11px;flex-wrap:wrap;font-size:11px;color:#617068}
.stock-request-main p{margin:7px 0 0;font-size:12px;color:#526159}
.stock-request-main>small{display:block;margin-top:6px;color:#7c8580}
.stock-request-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.stock-request-warning{margin-top:8px;border-radius:8px;background:#fff5e3;color:#79520d;padding:7px 9px;font-size:11px;font-weight:700}
.stock-request-reviewed{font-size:11px;color:#78827d}
.engineer-stock-card{border:1px solid #e0e6e2;border-radius:12px;background:#fff;padding:13px}
.engineer-stock-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid #e7ebe8;padding-bottom:9px;margin-bottom:8px}
.engineer-stock-head>div strong,.engineer-stock-head>div span{display:block}
.engineer-stock-head>div span,.engineer-stock-head small{font-size:11px;color:#728078;margin-top:2px}
.engineer-stock-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:7px}
.engineer-stock-item{display:flex;justify-content:space-between;gap:10px;align-items:center;background:#f7f9f7;border-radius:9px;padding:9px 10px}
.engineer-stock-item span strong,.engineer-stock-item span small{display:block}
.engineer-stock-item span strong{font-size:12px;color:#26382f}
.engineer-stock-item span small{font-size:10px;color:#7b8580;margin-top:2px}
.engineer-stock-item>b{font-size:14px;color:#19392d;white-space:nowrap}

@media(max-width:900px){
  .toolbar{align-items:stretch;flex-wrap:wrap}
  .office-global-search{order:3;max-width:none;min-width:100%;margin-left:0}
}
@media(max-width:700px){
  .stock-section-actions,.stock-request-actions{width:100%;align-items:stretch}
  .stock-section-actions button,.stock-request-actions button{flex:1}
  .stock-request-card{grid-template-columns:1fr}
  .stock-request-actions{justify-content:stretch}
  .engineer-stock-head{flex-direction:column}
  .engineer-stock-items{grid-template-columns:1fr}
}


/* Highlight exact records opened from global search */
[data-search-stock-id],
[data-search-vehicle-id],
[data-search-user-id],
[data-search-document-id],
[data-search-talk-id]{
  scroll-margin-top:24px;
}
.search-jump-highlight{
  animation:searchJumpPulse 3.2s ease-out;
  position:relative;
  z-index:1;
}
@keyframes searchJumpPulse{
  0%{
    box-shadow:0 0 0 4px rgba(232,71,122,.34),0 10px 26px rgba(25,57,45,.14);
    transform:scale(1.008);
  }
  28%{
    box-shadow:0 0 0 3px rgba(232,71,122,.24),0 8px 20px rgba(25,57,45,.11);
  }
  100%{
    box-shadow:0 0 0 0 rgba(232,71,122,0);
    transform:scale(1);
  }
}
@media(prefers-reduced-motion:reduce){
  .search-jump-highlight{animation:none;outline:3px solid rgba(232,71,122,.4)}
}


/* Focused stock search result */
.stock-search-focus-banner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  border:1px solid rgba(232,71,122,.25);
  background:#fff6f9;
  border-radius:13px;
  padding:12px 14px;
  margin-bottom:12px;
}
.stock-search-focus-banner>div strong,
.stock-search-focus-banner>div small{
  display:block;
}
.stock-search-focus-banner>div strong{
  margin-top:3px;
  font-size:15px;
  color:#19392d;
}
.stock-search-focus-banner>div small{
  margin-top:2px;
  color:#6f7a74;
}
@media(max-width:700px){
  .stock-search-focus-banner{
    align-items:stretch;
    flex-direction:column;
  }
}


/* A55 new duct / overlay details */
.a55-new-duct-summary{
  margin-top:12px;
  border:1px solid #d7dfda;
  border-left:5px solid #6653a4;
  border-radius:12px;
  background:#faf9ff;
  padding:12px;
}
.a55-new-duct-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
.a55-new-duct-head>div:first-child strong,
.a55-new-duct-head>div:first-child small{
  display:block;
}
.a55-new-duct-head>div:first-child strong{
  margin-top:3px;
  font-size:24px;
  color:#19392d;
}
.a55-new-duct-head>div:first-child small{
  margin-top:1px;
  color:#6d7772;
  font-size:11px;
}
.a55-duct-chamber-grid{
  display:grid;
  gap:5px;
  min-width:280px;
}
.a55-duct-chamber-grid span{
  padding:7px 9px;
  border:1px solid #e0e4e1;
  border-radius:8px;
  background:#fff;
  font-size:12px;
  color:#37483f;
}
.a55-duct-breakdown{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:10px;
}
.a55-duct-segment{
  display:grid;
  grid-template-columns:auto minmax(90px,1fr) auto;
  gap:7px;
  align-items:center;
  padding:7px 9px;
  border:1px solid #dedfe8;
  border-radius:9px;
  background:#fff;
  font-size:11px;
}
.a55-duct-segment span{
  color:#7b8580;
  font-size:9px;
  font-weight:800;
  text-transform:uppercase;
}
.a55-duct-segment strong{color:#37483f}
.a55-duct-segment b{color:#6653a4;white-space:nowrap}
.a55-duct-no-breakdown{margin-top:9px;color:#7b8580;font-size:11px}

.a55-export-record .a55-new-duct-summary{
  margin-top:5px;
  padding:6px 8px;
  border-radius:7px;
  border-left-width:4px;
}
.a55-export-record .a55-new-duct-head{gap:8px}
.a55-export-record .a55-new-duct-head>div:first-child strong{font-size:14px}
.a55-export-record .a55-new-duct-head>div:first-child small{font-size:8px}
.a55-export-record .a55-duct-chamber-grid{
  min-width:220px;
  gap:3px;
}
.a55-export-record .a55-duct-chamber-grid span{
  padding:4px 6px;
  border-radius:5px;
  font-size:9px;
}
.a55-export-record .a55-duct-breakdown{
  margin-top:5px;
  gap:4px;
}
.a55-export-record .a55-duct-segment{
  grid-template-columns:auto minmax(65px,1fr) auto;
  gap:4px;
  padding:4px 6px;
  border-radius:5px;
  font-size:9px;
}
.a55-export-record .a55-duct-segment span{font-size:7px}
.a55-export-record .a55-duct-no-breakdown{margin-top:4px;font-size:8px}

@media(max-width:700px){
  .a55-new-duct-head{flex-direction:column}
  .a55-duct-chamber-grid{min-width:0;width:100%}
}
@media print{
  .a55-export-record .a55-visual{
    grid-template-columns:minmax(0,2.15fr) minmax(235px,.85fr);
  }
}


/* Bank holiday worked leave credits */
.bank-holiday-credit-section{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid #e4e9e6;
}
.bank-holiday-credit-list{
  display:grid;
  gap:9px;
  margin-top:10px;
}
.bank-holiday-credit-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:12px;
  align-items:center;
  border:1px solid #dfe5e1;
  border-left:4px solid #6653a4;
  border-radius:11px;
  background:#faf9ff;
  padding:11px 12px;
}
.bank-holiday-credit-main strong,
.bank-holiday-credit-main span,
.bank-holiday-credit-main small{
  display:block;
}
.bank-holiday-credit-main strong{
  color:#19392d;
  font-size:14px;
}
.bank-holiday-credit-main span{
  margin-top:2px;
  color:#5f6d65;
  font-size:12px;
  font-weight:700;
}
.bank-holiday-credit-main small{
  margin-top:3px;
  color:#7a847f;
  font-size:11px;
}
.leave-credit-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 9px;
  border-radius:999px;
  background:#e8e4ff;
  color:#51408a;
  border:1px solid #cfc5ff;
  font-size:11px;
  font-weight:900;
  white-space:nowrap;
}
.leave-stat.leave-total-credit{
  background:#f1efff;
}
@media(max-width:700px){
  .bank-holiday-credit-row{
    grid-template-columns:1fr;
    align-items:stretch;
  }
  .leave-credit-badge{
    justify-self:start;
  }
}


/* Bank holiday credit engineer selector */
.leave-credit-engineer-choices{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:8px;
  margin-top:6px;
}
.leave-credit-engineer-choice{
  display:grid;
  grid-template-columns:40px minmax(0,1fr) 28px;
  gap:10px;
  align-items:center;
  width:100%;
  text-align:left;
  background:#fff;
  color:#26362f;
  border:1px solid #dce3de;
  border-radius:11px;
  padding:10px 11px;
}
.leave-credit-engineer-choice:hover{
  border-color:#19392d;
  background:#f7faf8;
}
.leave-credit-engineer-choice.selected{
  border-color:#19392d;
  background:#eaf2ed;
  box-shadow:0 0 0 2px rgba(25,57,45,.08);
}
.leave-credit-engineer-copy{
  min-width:0;
}
.leave-credit-engineer-copy strong,
.leave-credit-engineer-copy small{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.leave-credit-engineer-copy strong{
  color:#19392d;
  font-size:14px;
}
.leave-credit-engineer-copy small{
  margin-top:2px;
  color:#758078;
  font-size:11px;
}
.leave-credit-choice-tick{
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  border-radius:50%;
  background:#eef2ef;
  color:#a1aaa5;
  font-weight:900;
}
.leave-credit-engineer-choice.selected .leave-credit-choice-tick{
  background:#19392d;
  color:#fff;
}
@media(max-width:650px){
  .leave-credit-engineer-choices{
    grid-template-columns:1fr;
  }
}


/* Street Manager / permits */
.streetworks-management{display:grid;gap:14px}
.streetworks-head,.streetworks-list-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}
.streetworks-head h2,.streetworks-list-head h3{margin:3px 0 4px}
.streetworks-head p,.streetworks-list-head p{margin:0;color:#68736d;max-width:760px}
.streetworks-actions,.streetworks-filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.streetworks-filters input{min-width:290px}
.streetworks-filters select{width:auto;min-width:190px}
.streetworks-connection-message{margin:12px 0 2px;padding:10px 12px;border-radius:10px;background:#f6f8f6;color:#5c6962;font-size:12px}
.streetworks-connection-badge.connected{background:#e1eee6;color:#215d43}
.streetworks-connection-badge.configured{background:#fff1d8;color:#7a5713}
.streetworks-connection-badge.not-connected{background:#f5e3e1;color:#903b34}
.streetworks-record-list{display:grid;gap:10px;margin-top:12px}
.streetworks-record-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start;border:1px solid #dfe5e1;border-left:5px solid #19392d;border-radius:13px;background:#fff;padding:13px}
.streetworks-record-card.fpn{border-left-color:#e8477a}
.streetworks-record-title{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.streetworks-record-title>strong{font-size:15px;color:#19392d}
.streetworks-record-main h4{margin:7px 0 5px;color:#26362f;font-size:14px}
.streetworks-record-main>small{display:block;color:#76817b;font-size:10px;margin-top:5px}
.streetworks-status{display:inline-flex;padding:5px 8px;border-radius:999px;background:#eef1ef;color:#5c6862;font-size:9px;font-weight:900;text-transform:uppercase}
.streetworks-status.good{background:#e1eee6;color:#215d43}
.streetworks-status.attention{background:#fff0f5;color:#8d2850}
.streetworks-status.muted{background:#eceeed;color:#67706b}
.streetworks-record-meta{display:flex;gap:8px 15px;flex-wrap:wrap;font-size:11px;color:#5f6d65}
.streetworks-job-link{display:grid;grid-template-columns:auto minmax(240px,430px);align-items:center;gap:9px;margin-top:10px;font-size:11px;font-weight:800;color:#55635b}
.streetworks-job-link select{padding:8px 9px}
.streetworks-linked-job{display:inline-flex;margin-top:6px;padding:5px 8px;border-radius:999px;background:#edf3ef;color:#315543;font-size:10px;font-weight:800}
.streetworks-record-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end;max-width:280px}
.streetworks-action-history{display:grid;gap:7px;margin-top:10px}
.streetworks-action-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:10px 11px;border:1px solid #e2e7e4;border-radius:10px;background:#fff}
.streetworks-action-row>div strong,.streetworks-action-row>div span,.streetworks-action-row>div small{display:block}
.streetworks-action-row>div strong{font-size:12px;color:#19392d}
.streetworks-action-row>div span{font-size:10px;color:#6e7973;margin-top:2px}
.streetworks-action-row>div small{font-size:10px;color:#a0443c;margin-top:3px}
.streetworks-action-row>small{font-size:10px;color:#818a85}
.streetworks-action-outcome{display:inline-flex;padding:4px 7px;border-radius:999px;background:#eef1ef;font-size:9px;font-weight:900;text-transform:uppercase}
.streetworks-action-row.success .streetworks-action-outcome{background:#e1eee6;color:#215d43}
.streetworks-action-row.failed .streetworks-action-outcome{background:#f5e3e1;color:#903b34}
.streetworks-detail-summary{display:flex;gap:10px 20px;flex-wrap:wrap;margin:12px 0;padding:10px 12px;background:#f6f8f6;border-radius:10px;font-size:12px}
.streetworks-json{max-height:55vh}
@media(max-width:800px){
  .streetworks-head,.streetworks-list-head{flex-direction:column}
  .streetworks-actions,.streetworks-filters{width:100%;justify-content:stretch}
  .streetworks-filters input,.streetworks-filters select,.streetworks-actions button{width:100%;min-width:0}
  .streetworks-record-card{grid-template-columns:1fr}
  .streetworks-record-actions{max-width:none;justify-content:stretch}
  .streetworks-record-actions button{flex:1}
  .streetworks-job-link{grid-template-columns:1fr}
  .streetworks-action-row{grid-template-columns:1fr auto}
  .streetworks-action-row>small{grid-column:1/-1}
}


/* Clickable Fleet compliance filters */
.asset-summary-metrics > .fleet-summary-filter{
  appearance:none;
  border:1px solid var(--line);
  background:var(--surface-soft, #f7f9f8);
  color:inherit;
  border-radius:14px;
  padding:14px 16px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:3px;
  text-align:left;
  font:inherit;
  cursor:pointer;
  min-width:0;
}
.asset-summary-metrics > .fleet-summary-filter:hover{
  border-color:#8ea097;
  background:#f1f5f2;
}
.asset-summary-metrics > .fleet-summary-filter.active{
  border-color:#19392d;
  background:#e9f1ec;
  box-shadow:0 0 0 2px rgba(25,57,45,.08);
}
.asset-summary-metrics > .fleet-summary-filter.attention strong{
  color:#a52b2b;
}
.asset-summary-metrics > .fleet-summary-filter small{
  margin-top:3px;
  font-size:9px;
  font-weight:800;
  color:#7b857f;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.fleet-filter-banner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  border:1px solid #cfd9d3;
  border-left:5px solid #19392d;
  border-radius:12px;
  background:#f4f8f5;
  padding:11px 12px;
}
.fleet-filter-banner strong,
.fleet-filter-banner small{
  display:block;
}
.fleet-filter-banner strong{
  margin-top:2px;
  color:#19392d;
  font-size:14px;
}
.fleet-filter-banner small{
  margin-top:2px;
  color:#6d7972;
  font-size:11px;
}
@media(max-width:620px){
  .fleet-filter-banner{
    flex-direction:column;
    align-items:stretch;
  }
}


/* Fleet header actions */
.fleet-head-actions{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}
@media(max-width:620px){
  .fleet-head-actions{
    width:100%;
  }
  .fleet-head-actions button{
    flex:1;
  }
}


/* Multi-item stock booking / requests */
.bulk-stock-dialog-form{width:min(820px,94vw)}
.bulk-stock-lines-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:18px 0 9px}
.bulk-stock-lines-head strong{display:block;margin-top:2px;color:#19392d}
.bulk-stock-lines{display:grid;gap:9px}
.bulk-stock-line{display:grid;grid-template-columns:minmax(0,1fr) 150px auto;gap:9px;align-items:end;padding:10px;border:1px solid #dfe5e1;border-radius:11px;background:#f8faf8}
.bulk-stock-line label{display:grid;gap:5px;font-size:12px;font-weight:800;color:#35463d}
.bulk-stock-line .remove-bulk-stock-line{height:44px;white-space:nowrap}
.stock-request-batch-badge{display:inline-flex;padding:4px 7px;border-radius:999px;background:#e8e4ff;color:#51408a;font-size:9px;font-weight:900;text-transform:uppercase}
.stock-request-batch-lines{display:grid;gap:6px;margin:10px 0}
.stock-request-batch-line{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:10px 16px;align-items:center;padding:8px 10px;border:1px solid #e3e8e5;border-radius:9px;background:#f9faf9}
.stock-request-batch-line>div strong,.stock-request-batch-line>div small{display:block}
.stock-request-batch-line>div strong{font-size:12px;color:#26382f}
.stock-request-batch-line>div small{font-size:9px;color:#7b8580;margin-top:2px}
.stock-request-batch-line>span{font-size:11px;color:#56635c;white-space:nowrap}
.stock-request-batch-line.insufficient{border-color:#e3a9a3;background:#fff5f4}
.stock-request-card.batch{border-left:4px solid #51408a}
@media(max-width:720px){
  .bulk-stock-lines-head{align-items:stretch;flex-direction:column}
  .bulk-stock-lines-head button{width:100%}
  .bulk-stock-line{grid-template-columns:1fr}
  .stock-request-batch-line{grid-template-columns:1fr}
  .stock-request-batch-line>span{white-space:normal}
}


/* Workday monitoring and daily vehicle checks */
.workday-management{display:block}
.workday-panel{padding:22px}
.workday-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:16px}
.workday-head h2{margin:4px 0 5px;color:#19392d}
.workday-head p{margin:0;color:#68736d;max-width:760px}
.workday-filters{display:grid;grid-template-columns:minmax(240px,1.4fr) minmax(160px,.7fr) minmax(180px,.8fr);gap:12px;margin:18px 0}
.workday-filters label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#4d5b54}
.workday-filters input,.workday-filters select{width:100%}
.workday-columns{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(340px,.82fr);gap:18px;align-items:start}
.workday-columns>section{min-width:0}
.workday-list-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}
.workday-list-head h3{margin:3px 0 0;color:#19392d}
.workday-session-list,.vehicle-check-list{display:grid;gap:12px}
.workday-session-card,.vehicle-check-card{border:1px solid #dce4df;border-radius:14px;background:#fff;padding:16px;box-shadow:0 4px 16px rgba(25,57,45,.05)}
.workday-session-card.active{border-color:#8fb7a1;box-shadow:0 0 0 2px rgba(25,57,45,.05)}
.workday-session-head,.vehicle-check-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.workday-session-head h3,.vehicle-check-head h3{margin:3px 0 2px;color:#19392d}
.workday-session-head p,.vehicle-check-head p{margin:0;color:#68736d}
.workday-status,.vehicle-check-result{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:800;letter-spacing:.03em;white-space:nowrap}
.workday-status.active,.vehicle-check-result.pass{background:#e1ebe5;color:#19392d}
.workday-status.completed{background:#edf0ee;color:#53615a}
.workday-status.force_closed,.vehicle-check-result.fail{background:#fde8ef;color:#a32650}
.workday-session-meta,.vehicle-check-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 14px;margin:14px 0}
.workday-session-meta span,.vehicle-check-meta span{display:grid;gap:2px;color:#5f6c66;font-size:12px}
.workday-session-meta b,.vehicle-check-meta b{color:#19392d;font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.vehicle-check-card.fail{border-color:#efadc2}
.vehicle-check-card.pass{border-color:#cbded1}
.vehicle-check-notes{margin:8px 0 12px;padding:10px;border-radius:9px;background:#fff4f7;color:#7f2946;font-size:13px}
.workday-summary-card.active{border-color:#8fb7a1!important;background:#f0f7f3}
.workday-summary-card.attention{border-color:#efadc2!important;background:#fff4f7}
.workday-detail-dialog{width:min(1080px,calc(100vw - 28px));max-width:1080px}
.workday-detail-form{width:100%;max-width:none}
.workday-detail-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}
.workday-detail-summary>div{display:grid;gap:3px;padding:11px;border:1px solid #e0e6e2;border-radius:10px;background:#fafbf9}
.workday-detail-summary span{font-size:11px;text-transform:uppercase;font-weight:700;color:#6a756f}
.workday-detail-summary strong{color:#19392d}
.workday-detail-check{margin:12px 0 20px}
.workday-check-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;color:#5e6964;font-size:12px}
.workday-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.workday-check-row{display:grid;grid-template-columns:24px 1fr auto;gap:8px;align-items:center;border-radius:9px;padding:9px 10px;font-size:12px}
.workday-check-row.pass{background:#eff6f2;color:#19392d}
.workday-check-row.fail{background:#fff0f4;color:#922342}
.workday-check-row>b{font-size:10px;letter-spacing:.04em}
.workday-defects,.workday-check-notes,.workday-tracking-proof{display:grid;gap:6px;margin-top:12px;padding:12px;border-radius:10px;border:1px solid #e2e6e3;background:#fafbf9;color:#4d5953;font-size:12px}
.workday-defects{border-color:#efadc2;background:#fff5f8}
.workday-tracking-proof summary{font-weight:800;color:#19392d;cursor:pointer}
.workday-tracking-proof p{margin:4px 0}
.workday-route-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:18px 0 9px}
.workday-route-head h3{margin:3px 0 0;color:#19392d}
.workday-route-map{height:460px;min-height:360px}
.workday-route-line{fill:none;stroke:#e8477a;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.workday-route-start{fill:#fff;stroke:#19392d;stroke-width:5}
.workday-route-end{fill:#e8477a;stroke:#fff;stroke-width:4}
.workday-route-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;color:#5f6b65;font-size:12px}
.workday-route-meta span{padding:7px 9px;border-radius:8px;background:#f2f5f3}
@media (max-width:900px){
  .workday-columns{grid-template-columns:1fr}
  .workday-filters{grid-template-columns:1fr 1fr}
  .workday-detail-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:620px){
  .workday-head,.workday-session-head,.vehicle-check-head,.workday-check-detail-head{display:grid}
  .workday-filters,.workday-detail-summary,.workday-check-grid{grid-template-columns:1fr}
  .workday-session-meta,.vehicle-check-meta{grid-template-columns:1fr}
  .workday-route-map{height:360px}
}


/* Vehicle defect lifecycle */
.vehicle-defects-section{
  margin-top:28px;
  padding-top:24px;
  border-top:1px solid var(--line);
}
.vehicle-defects-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:18px;
  margin-bottom:14px;
}
.vehicle-defects-head h3{margin:4px 0 3px}
.vehicle-defects-head p{margin:0;color:var(--muted);max-width:760px}
.vehicle-defects-controls{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.vehicle-defects-controls select{min-width:210px}
.vehicle-defects-controls .pill.attention{
  background:#f8d7da;
  color:#842029;
}
.vehicle-defect-list{
  display:grid;
  gap:12px;
}
.vehicle-defect-card{
  border:1px solid var(--line);
  border-left:5px solid #7c8b83;
  border-radius:14px;
  background:#fff;
  padding:15px 16px;
}
.vehicle-defect-card.minor{border-left-color:#73837a}
.vehicle-defect-card.major{border-left-color:#d99a00}
.vehicle-defect-card.safety-critical{
  border-left-color:#b42318;
  background:#fffafa;
}
.vehicle-defect-card.cleared-defect{
  opacity:.78;
  background:#f7f8f7;
  border-left-color:#5f7569;
}
.vehicle-defect-card-head{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
}
.vehicle-defect-card-head h4{margin:7px 0 0;font-size:18px}
.vehicle-defect-badges{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.defect-severity,
.defect-status{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:5px 9px;
  font-size:10px;
  font-weight:800;
  letter-spacing:.03em;
  text-transform:uppercase;
}
.defect-severity.minor{background:#edf2ef;color:#405048}
.defect-severity.major{background:#fff3cd;color:#73510b}
.defect-severity.safety-critical{background:#f8d7da;color:#842029}
.defect-status.open{background:#f0f1f0;color:#4c5651}
.defect-status.action-required{background:#fff3cd;color:#73510b}
.defect-status.repair-booked{background:#e6f0fa;color:#185b92}
.defect-status.awaiting-parts{background:#fcebd8;color:#8a4a00}
.defect-status.ready-for-inspection{background:#e7f2eb;color:#21643f}
.defect-status.cleared{background:#e8f5ee;color:#157347}
.vehicle-defect-description{
  margin:12px 0 9px;
  white-space:pre-wrap;
}
.vehicle-defect-meta{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  padding:10px 0;
  color:var(--muted);
  font-size:12px;
}
.vehicle-defect-progress,
.vehicle-defect-clearance{
  border-radius:10px;
  padding:10px 11px;
  margin-top:9px;
  background:#f4f7f5;
  font-size:12px;
}
.vehicle-defect-clearance{background:#e8f5ee;color:#285a3e}
.vehicle-defect-actions{
  display:flex;
  justify-content:flex-end;
  margin-top:12px;
}
.fleet-defect-alert{
  width:100%;
  appearance:none;
  text-align:left;
  border:1px solid #d9c16c;
  border-left:5px solid #d99a00;
  border-radius:11px;
  background:#fff9e8;
  padding:10px 12px;
  margin-top:13px;
  cursor:pointer;
  font:inherit;
}
.fleet-defect-alert strong,
.fleet-defect-alert span,
.fleet-defect-alert small{display:block}
.fleet-defect-alert strong{font-size:12px;color:#73510b}
.fleet-defect-alert span{font-size:12px;margin-top:3px;color:#62583a}
.fleet-defect-alert small{font-size:10px;margin-top:5px;color:#827652;font-weight:700}
.fleet-defect-alert.safety-critical{
  border-color:#d67c75;
  border-left-color:#b42318;
  background:#fff1f0;
}
.fleet-defect-alert.safety-critical strong{color:#842029}
.fleet-vehicle-card.has-critical-defect{
  border-color:#d67c75;
  box-shadow:inset 4px 0 0 #b42318;
}
.fleet-vehicle-card.has-open-defect{
  border-color:#dccb83;
  box-shadow:inset 4px 0 0 #d99a00;
}
.asset-summary-metrics > .fleet-summary-filter.critical strong{color:#b42318}
.vehicle-defect-source-summary{
  display:grid;
  gap:4px;
  border:1px solid var(--line);
  border-left:4px solid #19392d;
  border-radius:12px;
  background:#f6f8f7;
  padding:12px 13px;
  margin-bottom:14px;
}
.vehicle-defect-source-summary strong{font-size:15px}
.vehicle-defect-source-summary span{white-space:pre-wrap;color:#46514c}
.vehicle-defect-source-summary small{color:var(--muted)}
.vehicle-defect-dialog-form textarea{min-height:88px}
@media(max-width:700px){
  .vehicle-defects-head,
  .vehicle-defect-card-head{
    flex-direction:column;
    align-items:stretch;
  }
  .vehicle-defect-badges{justify-content:flex-start}
  .vehicle-defect-meta{grid-template-columns:1fr}
  .vehicle-defects-controls{align-items:stretch}
  .vehicle-defects-controls select{min-width:0;width:100%}
}


/* Multi-engineer job teams */
.job-team-assignment{
  align-items:flex-end;
  gap:14px;
  flex-wrap:wrap;
}
.job-team-assignment > label{
  min-width:210px;
}
.job-team-picker-block{
  flex:1 1 360px;
}
.job-team-picker-block > span,
.job-team-fieldset legend{
  display:block;
  margin-bottom:7px;
  color:var(--muted);
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.job-team-fieldset{
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px 14px;
  margin:0;
}
.job-team-picker{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:7px 10px;
}
.job-team-check{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:38px;
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#f8faf9;
  cursor:pointer;
}
.job-team-check input{
  width:auto;
  margin:0;
}
.job-team-check span{
  font-weight:700;
  color:#33443d;
}
.job-team-empty{
  color:var(--muted);
  font-size:13px;
}

/* Completed-work photo groups */
.completed-evidence-groups{
  display:grid;
  gap:14px;
}
.completed-evidence-group{
  border:1px solid #cbd9d2;
  border-radius:14px;
  background:#f7faf8;
  padding:13px;
}
.completed-evidence-group-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:12px;
}
.completed-evidence-group-head span{
  display:block;
  color:var(--muted);
  font-size:10px;
  font-weight:800;
  letter-spacing:.05em;
}
.completed-evidence-group-head h5{
  margin:3px 0 2px;
  font-size:18px;
  color:#18372c;
}
.completed-evidence-group-head p{
  margin:0;
  color:var(--muted);
  font-size:12px;
}
.completed-evidence-group-head > strong{
  white-space:nowrap;
  border-radius:999px;
  background:#e5f1eb;
  color:#285d47;
  padding:6px 9px;
  font-size:11px;
}

@media(max-width:700px){
  .job-team-picker{
    grid-template-columns:1fr;
  }
  .completed-evidence-group-head{
    flex-direction:column;
  }
}


/* Focused Street Manager notification inbox */
.streetworks-notification-panel{
  overflow:visible;
}
.streetworks-watch-areas{
  display:grid;
  grid-template-columns:minmax(220px,1fr) minmax(300px,1.2fr);
  gap:12px 18px;
  align-items:center;
  margin:14px 0 16px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#f7faf8;
}
.streetworks-watch-copy strong,
.streetworks-watch-copy span{
  display:block;
}
.streetworks-watch-copy strong{
  font-size:13px;
  color:#19392d;
}
.streetworks-watch-copy span{
  margin-top:4px;
  font-size:12px;
  color:var(--muted);
  line-height:1.45;
}
.streetworks-watch-form{
  display:flex;
  gap:8px;
}
.streetworks-watch-form input{
  flex:1;
  min-width:0;
}
.streetworks-watch-list{
  grid-column:1/-1;
  display:flex;
  gap:7px;
  flex-wrap:wrap;
}
.streetworks-watch-chip{
  display:inline-flex;
  align-items:center;
  gap:7px;
  border:1px solid #bad0c4;
  border-radius:999px;
  background:#eaf3ee;
  color:#234f3c;
  padding:6px 7px 6px 10px;
  font-size:11px;
  font-weight:800;
}
.streetworks-watch-chip button{
  width:22px;
  height:22px;
  border:0;
  border-radius:50%;
  padding:0;
  background:#d7e7de;
  color:#234f3c;
  font-size:15px;
  line-height:1;
  cursor:pointer;
}
.streetworks-watch-empty{
  font-size:12px;
  color:var(--muted);
}
.streetworks-watch-areas .error{
  grid-column:1/-1;
  margin:0;
}
.streetworks-notification-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:0 0 14px;
}
.streetworks-notification-scope{
  appearance:none;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  color:inherit;
  padding:12px 13px;
  text-align:left;
  cursor:pointer;
  font:inherit;
}
.streetworks-notification-scope:hover{
  border-color:#91a89c;
  background:#f5f8f6;
}
.streetworks-notification-scope strong,
.streetworks-notification-scope span,
.streetworks-notification-scope small{
  display:block;
}
.streetworks-notification-scope strong{
  font-size:22px;
  color:#19392d;
}
.streetworks-notification-scope span{
  margin-top:2px;
  font-size:12px;
  font-weight:800;
}
.streetworks-notification-scope small{
  margin-top:3px;
  color:var(--muted);
  font-size:10px;
}
.streetworks-notification-toolbar{
  display:grid;
  grid-template-columns:minmax(220px,1.5fr) repeat(5,minmax(145px,auto));
  gap:8px;
  margin-bottom:14px;
}
.streetworks-notification-toolbar input,
.streetworks-notification-toolbar select{
  width:100%;
  min-width:0;
}
.streetworks-record-card.notification.relevant{
  border-left:5px solid #2f7655;
  background:#fbfdfc;
}
.streetworks-record-card.notification.national{
  border-left:5px solid #9da7a2;
}
.streetworks-notification-badges{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.streetworks-relevance{
  display:inline-flex;
  align-items:center;
  padding:4px 7px;
  border-radius:999px;
  font-size:9px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.03em;
}
.streetworks-relevance.relevant{
  background:#e1eee6;
  color:#215d43;
}
.streetworks-relevance.national{
  background:#eef1ef;
  color:#66736d;
}
.streetworks-relevance-links{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:9px;
}
.streetworks-area-match{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  background:#eaf1f7;
  color:#315f80;
  padding:5px 8px;
  font-size:10px;
  font-weight:800;
}
@media(max-width:1100px){
  .streetworks-notification-toolbar{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .streetworks-notification-summary{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:700px){
  .streetworks-watch-areas{
    grid-template-columns:1fr;
  }
  .streetworks-watch-form{
    flex-direction:column;
  }
  .streetworks-watch-list,
  .streetworks-watch-areas .error{
    grid-column:1;
  }
  .streetworks-notification-toolbar{
    grid-template-columns:1fr;
  }
  .streetworks-notification-summary{
    grid-template-columns:1fr 1fr;
  }
  .streetworks-notification-badges{
    justify-content:flex-start;
  }
}


/* Street Manager relevance */
.streetworks-near-job-match{
  display:inline-flex;
  align-items:center;
  margin-top:6px;
  padding:6px 9px;
  border-radius:999px;
  background:#eef4ff;
  border:1px solid #cddcf7;
  color:#315985;
  font-size:11px;
  font-weight:800;
}


/* Street Manager Open Data monitor source labels */
.streetworks-open-data-source{
  display:inline-flex;
  margin-top:8px;
  padding:5px 8px;
  border-radius:999px;
  background:#eef7f1;
  border:1px solid #cce4d4;
  color:#2f6847;
  font-size:10px;
  font-weight:800;
}
.streetworks-source-pill{
  display:inline-flex;
  align-items:center;
  padding:6px 9px;
  border-radius:999px;
  background:#eef7f1;
  border:1px solid #cce4d4;
  color:#2f6847;
  font-size:11px;
  font-weight:800;
}


.workday-card-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.workday-card-actions button{flex:1 1 180px}


/* Evidence deletion controls */
.record-export-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.evidence-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.evidence-card-actions .evidence-download-btn{margin-top:0;width:auto}
.evidence-card-actions .evidence-delete-btn{font-size:11px}
@media(max-width:700px){
  .record-export-actions{display:grid;grid-template-columns:1fr;width:100%}
  .evidence-card-actions{grid-template-columns:1fr}
}


/* Compact job-team assignment on job detail */
.job-team-summary{display:flex;gap:6px;flex-wrap:wrap;align-items:center;min-height:32px;margin-bottom:7px}
.job-team-chip{display:inline-flex;align-items:center;max-width:190px;padding:5px 9px;border-radius:999px;background:#e8f0eb;color:#19392d;font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.job-team-chip-more{background:#f3e7ec;color:#9b3155}
.job-team-summary-empty{font-size:12px;color:var(--muted)}
.job-team-toggle{padding:7px 10px;font-size:12px;margin-bottom:8px}
.detail-job-team-picker{max-height:150px;overflow-y:auto;overscroll-behavior:contain;padding:4px 4px 4px 0}
.job-team-fieldset .job-team-picker{max-height:190px;overflow-y:auto;overscroll-behavior:contain}
@media(max-width:700px){
  .job-team-chip{max-width:145px}
  .detail-job-team-picker{max-height:180px}
}


/* Work-day cleanup controls */
.daily-delete-bar{border-color:#efc6cf;background:#fff7f9}
.daily-delete-bar>div strong{color:#8c2742}


/* Per-line / partial stock request review */
.stock-line-review{grid-column:1/-1;display:grid;grid-template-columns:minmax(150px,1fr) auto auto;gap:8px;align-items:end;margin-top:8px;padding-top:9px;border-top:1px solid #e6e9ee}
.stock-line-review label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:800;color:var(--muted)}
.stock-line-review input{min-width:110px;padding:8px 9px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}
.stock-partial-badge{display:inline-flex;margin-left:6px;padding:2px 6px;border-radius:999px;background:#fff1c7;color:#7a5200;font-style:normal;font-size:10px;font-weight:900}
.stock-line-rejected{color:#a1283d;font-weight:800}
@media(max-width:720px){.stock-line-review{grid-template-columns:1fr}.stock-line-review button{width:100%}}

.job-card-reassign{margin-top:10px;width:100%;padding:8px 10px;font-size:12px}.job-card-reassign:hover{border-color:#19392d}


/* Central reporting hub */
.reports-management{display:grid;gap:14px}
.reports-hero{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}
.reports-hero h2,.report-builder h3,.report-results-panel h3{margin:3px 0 5px}
.reports-hero p,.report-builder-head p,.report-results-head p{margin:0;color:#66736c}
.reports-hero-note{min-width:260px;max-width:360px;padding:12px 14px;border-radius:12px;background:#f2f6f3;border:1px solid #dbe5df}
.reports-hero-note strong,.reports-hero-note span{display:block}
.reports-hero-note span{margin-top:4px;font-size:12px;color:#66736c}
.reports-library{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.report-library-card{text-align:left;background:#fff;color:#26362f;border:1px solid #dfe5e1;border-radius:14px;padding:15px;box-shadow:0 1px 8px rgba(25,57,45,.05);min-height:126px}
.report-library-card:hover{border-color:#19392d;background:#f7faf8}
.report-library-card strong,.report-library-card small{display:block}
.report-library-card strong{font-size:16px;color:#19392d;margin:5px 0}
.report-library-card small{font-size:12px;line-height:1.45;color:#69756e}
.report-library-card.future{opacity:.62;cursor:not-allowed;background:#f6f6f4}
.report-builder-head,.report-results-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.report-builder-actions,.report-run-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.report-filter-grid{display:grid;grid-template-columns:repeat(6,minmax(140px,1fr));gap:10px;margin:16px 0 12px}
.report-filter-grid label{display:grid;gap:6px;font-size:12px;font-weight:800;color:#536159}
.report-run-row{padding-top:4px}
#reportRunStatus{font-size:12px;color:#6f7a74;margin-left:4px}
.report-summary-metrics{margin-top:14px}
.report-results-panel{overflow:hidden}
.report-results-empty{padding:38px 20px;text-align:center;color:#78817d;background:#fafbfa;border:1px dashed #d9e0dc;border-radius:12px;margin-top:14px}
.report-table-wrap{overflow:auto;margin-top:14px;border:1px solid #dfe5e1;border-radius:12px;background:#fff}
.report-table{border-collapse:collapse;width:100%;min-width:900px;font-size:12px}
.report-table th,.report-table td{padding:9px 10px;border-bottom:1px solid #e6ebe8;text-align:left;vertical-align:top;white-space:nowrap}
.report-table th{position:sticky;top:0;background:#f1f5f2;color:#19392d;font-size:11px;text-transform:uppercase;letter-spacing:.03em;z-index:1}
.report-table tr:last-child td{border-bottom:0}
.report-table tbody tr:hover{background:#f8faf9}
.report-table td.report-cell-wrap{white-space:normal;min-width:220px;max-width:380px}
.report-limit-note{padding:10px 12px;font-size:11px;color:#6f7a74;background:#f7f9f7;border-top:1px solid #e2e7e4}
.report-print-shell{display:none}
@media(max-width:1200px){.report-filter-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}}
@media(max-width:760px){
  .reports-hero,.report-builder-head,.report-results-head{flex-direction:column}
  .reports-hero-note{min-width:0;max-width:none;width:100%}
  .report-filter-grid{grid-template-columns:1fr 1fr}
  .report-builder-actions{width:100%}
  .report-builder-actions button{flex:1}
}
@media(max-width:520px){.report-filter-grid{grid-template-columns:1fr}}

.civils-rework-actions{margin-top:12px;padding-top:12px;border-top:1px solid #e3e7e4}
.civils-rework-actions>strong{display:block;margin-bottom:8px}
.civils-rework-actions>div{display:flex;flex-wrap:wrap;gap:7px}
.civils-rework-actions button{font-size:12px;padding:8px 10px}
.civils-rework-open{display:grid;gap:8px;margin-top:12px}
.civils-rework-item{border:1px solid #f0c4ce;background:#fff5f7;border-radius:10px;padding:10px}
.civils-rework-item p{margin:6px 0;color:#5f6864}
.civils-rework-item .pill{margin-left:8px}


/* Equipment register */
.equipment-management {
  display: grid;
  gap: 18px;
}

.equipment-hero {
  padding-bottom: 18px;
}

.equipment-filter-panel {
  padding: 16px 18px;
}

.equipment-filters {
  display: grid;
  grid-template-columns: minmax(220px, 1.4fr) minmax(220px, 1.2fr) repeat(3, minmax(160px, 1fr)) auto;
  gap: 12px;
  align-items: end;
}

.equipment-filters label {
  display: grid;
  gap: 6px;
}

.equipment-filters button {
  min-height: 42px;
  white-space: nowrap;
}

.equipment-asset-list,
.equipment-movement-list {
  display: grid;
  gap: 12px;
}

.equipment-asset-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  padding: 18px;
  border: 1px solid var(--line, #dfe5e1);
  border-radius: 14px;
  background: #fff;
}

.equipment-asset-card.archived {
  opacity: .68;
}

.equipment-asset-title {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
}

.equipment-asset-title h3 {
  margin: 4px 0 2px;
}

.equipment-asset-title small {
  color: #68736d;
}

.equipment-status {
  display: inline-flex;
  align-items: center;
  padding: 5px 9px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  background: #eef3f0;
  text-transform: capitalize;
  white-space: nowrap;
}

.equipment-status.assigned {
  background: #e9f3ff;
}

.equipment-status.repair,
.equipment-status.lost {
  background: #fff0e8;
}

.equipment-status.retired {
  background: #eff0f0;
}

.equipment-meta-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(180px, 1fr));
  gap: 8px 16px;
  margin-top: 14px;
  font-size: 13px;
}

.equipment-meta-grid .attention {
  font-weight: 700;
}

.equipment-asset-main > p {
  margin: 12px 0 0;
  color: #56615b;
}

.equipment-asset-actions {
  display: flex;
  align-items: flex-start;
}

.equipment-history-table-wrap {
  overflow-x: auto;
}

.equipment-history-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 860px;
}

.equipment-history-table th,
.equipment-history-table td {
  text-align: left;
  padding: 9px 10px;
  border-bottom: 1px solid #e5e9e7;
  vertical-align: top;
  font-size: 13px;
}

.equipment-history-table th {
  background: #f5f7f6;
  color: #4d5953;
  font-size: 12px;
}

@media (max-width: 1100px) {
  .equipment-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .equipment-meta-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .equipment-filters,
  .equipment-meta-grid {
    grid-template-columns: 1fr;
  }

  .equipment-asset-card {
    grid-template-columns: 1fr;
  }

  .equipment-asset-title {
    flex-direction: column;
  }
}


/* v1.74 — branded desktop sidebar navigation */
:root{
  --nlfo-navy:#123a6d;
  --nlfo-blue:#1d5f9f;
  --nlfo-blue-2:#2878bd;
  --nlfo-pink:#e8477a;
  --nlfo-bg:#f3f7fb;
  --nlfo-panel:#ffffff;
  --nlfo-line:#d7e3ee;
  --nlfo-ink:#17324d;
  --nlfo-muted:#687c8d;
}

body{
  background:var(--nlfo-bg);
  color:var(--nlfo-ink);
}

button{
  background:var(--nlfo-navy);
}

button.secondary{
  background:#fff;
  color:var(--nlfo-navy);
  border-color:#c9d9e7;
}

input,select,textarea{
  border-color:#cfdae5;
  background:#fbfdff;
  color:var(--nlfo-ink);
}

input:focus,select:focus,textarea:focus{
  outline:none;
  border-color:var(--nlfo-blue-2);
  box-shadow:0 0 0 3px rgba(40,120,189,.12);
}

.eyebrow{
  color:var(--nlfo-pink);
}

.panel{
  box-shadow:0 2px 12px rgba(18,58,109,.075);
}

.topbar{
  position:relative;
  overflow:hidden;
  background:linear-gradient(135deg,var(--nlfo-navy),#0c2c53);
  color:#fff;
  padding:16px 18px;
  border-radius:18px;
  box-shadow:0 8px 24px rgba(18,58,109,.16);
}

.topbar::after{
  content:"";
  position:absolute;
  right:-20px;
  top:-125px;
  width:180px;
  height:180px;
  border:8px solid rgba(232,71,122,.88);
  transform:rotate(32deg);
  pointer-events:none;
  z-index:0;
}

.topbar > *{
  position:relative;
  z-index:1;
}

.topbar h1{
  color:#fff;
}

.topbar .eyebrow{
  color:#ff75a3;
}

.topbar .pill{
  background:rgba(255,255,255,.14);
  color:#fff;
}

.topbar button.secondary{
  background:rgba(255,255,255,.09);
  color:#fff;
  border-color:rgba(255,255,255,.28);
}

.toolbar{
  grid-column:1/-1;
  border-top:4px solid var(--nlfo-pink);
}

.toolbar h2,
.panel h2,
.panel h3,
.overview-head h2{
  color:var(--nlfo-navy);
}

#appPanel:not(.hidden){
  display:grid;
  grid-template-columns:252px minmax(0,1fr);
  gap:16px;
  align-items:start;
}

#appPanel > .office-view{
  grid-column:2;
  min-width:0;
}

.office-nav{
  grid-column:1;
  grid-row:2 / span 100;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:4px;
  overflow-y:auto;
  overflow-x:hidden;
  position:sticky;
  top:12px;
  z-index:20;
  max-height:calc(100vh - 24px);
  margin:0;
  padding:13px 10px 16px;
  background:linear-gradient(180deg,var(--nlfo-navy),#0c2d54);
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  box-shadow:0 8px 24px rgba(18,58,109,.16);
  scrollbar-width:thin;
}

.office-nav-brand{
  display:flex;
  align-items:baseline;
  gap:7px;
  color:#fff;
  padding:5px 9px 12px;
  margin-bottom:2px;
  border-bottom:1px solid rgba(255,255,255,.13);
}

.office-nav-brand span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--nlfo-pink);
  color:#fff;
  border-radius:7px;
  padding:4px 6px;
  font-size:10px;
  font-weight:900;
  letter-spacing:.09em;
}

.office-nav-brand strong{
  font-size:15px;
  letter-spacing:.02em;
}

.office-nav-group-label{
  padding:12px 11px 4px;
  color:#9eb9d1;
  font-size:9px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.office-nav-group-label.office-nav-streetworks-label{
  color:#ff80aa;
}

.office-nav-btn{
  width:100%;
  min-height:39px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  text-align:left;
  white-space:normal;
  background:transparent;
  color:#edf5fc;
  border:1px solid transparent;
  border-radius:10px;
  padding:9px 11px;
  font-size:13px;
  line-height:1.2;
}

.office-nav-btn:hover{
  filter:none;
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.08);
}

.office-nav-btn.active{
  background:#fff;
  color:var(--nlfo-navy);
  border-color:#fff;
  box-shadow:inset 4px 0 0 var(--nlfo-pink),0 4px 12px rgba(0,0,0,.08);
}

.office-nav-btn.office-nav-streetworks{
  background:rgba(232,71,122,.12);
  border-color:rgba(232,71,122,.28);
}

.office-nav-btn.office-nav-streetworks:hover{
  background:rgba(232,71,122,.2);
}

.office-nav-btn.office-nav-streetworks.active{
  background:#fff;
  color:var(--nlfo-navy);
  border-color:#fff;
}

.office-nav .nav-alert-badge{
  flex:0 0 auto;
  margin-left:auto;
  background:var(--nlfo-pink);
  color:#fff;
}

.overview-card{
  color:var(--nlfo-navy);
  border-color:var(--nlfo-line);
}

.overview-card:hover{
  border-color:var(--nlfo-blue-2);
  box-shadow:0 7px 18px rgba(18,58,109,.09);
}

.overview-open{
  color:var(--nlfo-pink);
}

.tab.active{
  background:var(--nlfo-navy);
}

.office-global-search input{
  border-color:#cedbe7;
}

.global-search-result{
  color:var(--nlfo-navy);
}

.global-search-result:hover{
  background:#f0f6fb;
}

.report-library-card:hover,
.report-library-card.active{
  border-color:var(--nlfo-blue-2);
}

@media(max-width:1050px){
  #appPanel:not(.hidden){
    display:block;
  }

  #appPanel > .office-view{
    min-width:0;
  }

  .office-nav{
    display:flex;
    flex-direction:row;
    align-items:center;
    gap:7px;
    overflow-x:auto;
    overflow-y:hidden;
    position:sticky;
    top:8px;
    max-height:none;
    margin-bottom:14px;
    padding:9px;
    background:#fff;
    border:1px solid var(--nlfo-line);
    border-radius:14px;
    box-shadow:0 4px 14px rgba(18,58,109,.09);
  }

  .office-nav-brand,
  .office-nav-group-label{
    display:none;
  }

  .office-nav-btn{
    width:auto;
    min-height:38px;
    flex:0 0 auto;
    white-space:nowrap;
    background:#eef5fb;
    color:var(--nlfo-navy);
    border-color:#d7e4ef;
    padding:9px 12px;
  }

  .office-nav-btn:hover{
    background:#e4f0fa;
    border-color:#c7dceb;
  }

  .office-nav-btn.active,
  .office-nav-btn.office-nav-streetworks.active{
    background:var(--nlfo-navy);
    color:#fff;
    border-color:var(--nlfo-navy);
    box-shadow:inset 0 -3px 0 var(--nlfo-pink);
  }

  .office-nav-btn.office-nav-streetworks{
    background:#fff0f5;
    color:#8b2850;
    border-color:#f3c6d5;
  }
}

@media(max-width:700px){
  .topbar{
    border-radius:14px;
    padding:14px;
  }

  .topbar::after{
    display:none;
  }
}


/* v1.75 — interactive Live Ops map */
.live-ops-head-actions{
  display:flex;
  align-items:flex-start;
  justify-content:flex-end;
  gap:12px;
  flex-wrap:wrap;
}

.live-map-help{
  margin:-3px 0 10px;
  color:var(--nlfo-muted,#687c8d);
  font-size:11px;
  font-weight:700;
}

.live-engineer-map.leaflet-container,
#liveEngineerMap.leaflet-container{
  cursor:grab;
  background:#dfeaf2;
}

#liveEngineerMap.leaflet-container:active{
  cursor:grabbing;
}

#liveEngineerMap .leaflet-control-zoom a{
  color:var(--nlfo-navy,#123a6d);
  font-weight:900;
}

#liveEngineerMap .leaflet-control-attribution{
  font-size:9px;
  color:#586b7b;
}

.live-leaflet-icon{
  background:transparent!important;
  border:0!important;
}

.live-leaflet-marker{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--nlfo-navy,#123a6d);
  border:4px solid #fff;
  box-shadow:0 3px 12px rgba(18,58,109,.35);
  position:relative;
}

.live-leaflet-marker::before{
  content:"";
  position:absolute;
  inset:-8px;
  border-radius:50%;
  border:2px solid rgba(232,71,122,.45);
  background:rgba(232,71,122,.10);
}

.live-leaflet-marker span{
  position:relative;
  z-index:1;
  color:#fff;
  font-size:11px;
  font-weight:900;
  letter-spacing:.02em;
}

.live-leaflet-marker.stale{
  opacity:.66;
  filter:saturate(.6);
}

#liveEngineerMap .live-accuracy-circle{
  stroke:var(--nlfo-blue-2,#2878bd);
  stroke-width:1.5;
  stroke-opacity:.65;
  fill:var(--nlfo-blue-2,#2878bd);
  fill-opacity:.08;
}

.live-map-popup{
  display:grid;
  gap:4px;
  min-width:190px;
}

.live-map-popup strong{
  color:var(--nlfo-navy,#123a6d);
  font-size:14px;
}

.live-map-popup span{
  color:#40576b;
  font-weight:700;
  font-size:12px;
}

.live-map-popup small{
  color:#738595;
  font-size:10px;
}

.live-map-popup button{
  margin-top:6px;
  padding:8px 10px;
  border-radius:8px;
  font-size:11px;
}

.live-map-empty-overlay{
  z-index:650;
  background:rgba(245,248,251,.92);
  pointer-events:none;
}

.live-card-meta em{
  color:var(--nlfo-blue,#1d5f9f);
  font-size:9px;
  font-style:normal;
  font-weight:800;
}

.live-engineer-card:disabled{
  cursor:default;
}

.live-engineer-card:not(:disabled):hover{
  border-color:var(--nlfo-blue-2,#2878bd);
  box-shadow:0 4px 12px rgba(18,58,109,.08);
}

@media(max-width:720px){
  .live-ops-head-actions{
    justify-content:flex-start;
  }

  .live-ops-head-actions > button{
    order:2;
  }

  .live-map-help{
    line-height:1.35;
  }
}


/* v1.78 — Telecoms / Electrical stock split */
.stock-split-toolbar{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin:14px 0 12px;
  padding:11px 12px;
  border:1px solid var(--nlfo-line,#d7e3ee);
  border-radius:13px;
  background:#f8fbfe;
}

.stock-division-tabs{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
}

.stock-division-tab{
  display:flex;
  align-items:center;
  gap:7px;
  min-height:40px;
  padding:8px 12px;
  background:#fff;
  color:var(--nlfo-navy,#123a6d);
  border:1px solid #cfddea;
  border-radius:10px;
}

.stock-division-tab span{
  display:inline-flex;
  min-width:24px;
  height:22px;
  align-items:center;
  justify-content:center;
  padding:0 6px;
  border-radius:999px;
  background:#e8f1f8;
  color:var(--nlfo-blue,#1d5f9f);
  font-size:10px;
  font-weight:900;
}

.stock-division-tab.active{
  background:var(--nlfo-navy,#123a6d);
  color:#fff;
  border-color:var(--nlfo-navy,#123a6d);
  box-shadow:inset 0 -3px 0 var(--nlfo-pink,#e8477a);
}

.stock-division-tab.active span{
  background:rgba(255,255,255,.17);
  color:#fff;
}

.stock-category-filter{
  display:grid;
  gap:5px;
  min-width:210px;
  color:#536b7d;
  font-size:11px;
  font-weight:800;
}

.stock-category-filter select{
  min-height:40px;
  background:#fff;
}

.stock-item-card.stock-electrical{
  border-left:4px solid var(--nlfo-blue-2,#2878bd);
}

.stock-item-card.stock-telecoms{
  border-left:4px solid var(--nlfo-pink,#e8477a);
}

.stock-item-badges{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  margin-bottom:5px;
}

.stock-division-badge,
.stock-category-badge{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  padding:4px 7px;
  border-radius:999px;
  font-size:9px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.stock-division-badge.telecoms{
  background:#fff0f5;
  color:#9a2853;
}

.stock-division-badge.electrical{
  background:#e8f3fb;
  color:#185b91;
}

.stock-category-badge{
  background:#f0f3f5;
  color:#5d6d78;
}

@media(max-width:700px){
  .stock-split-toolbar{
    align-items:stretch;
  }

  .stock-division-tabs{
    width:100%;
  }

  .stock-division-tab{
    flex:1 1 105px;
    justify-content:center;
  }

  .stock-category-filter{
    width:100%;
  }
}


/* v1.79 — Stock section expand / retract controls */
.stock-split-toolbar-actions{
  display:flex;
  align-items:flex-end;
  gap:8px;
  flex-wrap:wrap;
}

.stock-split-toolbar-actions .stock-collapse-btn{
  min-height:40px;
  white-space:nowrap;
}

.stock-division-body{
  display:block;
}

.stock-requests-panel .stock-ledger-actions,
.engineer-stock-panel .stock-ledger-actions{
  align-items:center;
}

@media(max-width:700px){
  .stock-split-toolbar-actions{
    width:100%;
    align-items:stretch;
  }

  .stock-split-toolbar-actions .stock-category-filter{
    flex:1 1 180px;
  }

  .stock-split-toolbar-actions .stock-collapse-btn{
    flex:1 1 160px;
  }
}

.streetworks-summary-nav{width:100%;text-align:left;color:inherit;background:white;border:1px solid transparent;padding:15px;box-shadow:0 1px 8px rgba(25,57,45,.06);transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}
.streetworks-summary-nav:hover{filter:none;transform:translateY(-1px);border-color:#2878bd;box-shadow:0 5px 14px rgba(29,95,159,.14)}
.streetworks-summary-nav:focus-visible{outline:3px solid rgba(40,120,189,.28);outline-offset:2px}
.streetworks-summary-nav strong{display:block;font-size:25px;color:#17324d}
.streetworks-summary-nav span{display:block;font-size:12px;color:#687c8d;margin-top:2px}
.streetworks-summary-nav small{display:block;font-size:11px;color:#2878bd;margin-top:7px;font-weight:800}

.toolbox-signed-people{display:grid;gap:7px;min-width:190px}
.toolbox-signed-person{display:grid;gap:3px;padding:6px 8px;border:1px solid #e3e8ed;border-radius:9px;background:#fbfcfd}
.toolbox-signed-person strong{font-size:11px;color:#17324d}
.toolbox-signed-person small{font-size:9px;color:#687c8d}
.toolbox-signature-preview{width:180px;max-width:100%;height:60px;background:#fff;border-bottom:1px solid #cdd8e2}
.toolbox-signature-preview path{fill:none;stroke:#17324d;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}


/* v1.89 — weekly engineer whereabouts programme */
.whereabouts-management{display:grid;gap:14px}
.whereabouts-hero{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}
.whereabouts-hero h2{margin:3px 0 5px}
.whereabouts-hero p,.whereabouts-hero-note span{margin:0;color:#66736c}
.whereabouts-hero-note{display:flex;flex-direction:column;gap:4px;min-width:260px;padding:12px 14px;border-radius:12px;background:#f4f8fb;border:1px solid #d9e4ec}
.whereabouts-toolbar{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center}
.whereabouts-week-nav{display:flex;gap:8px;flex-wrap:wrap}
.whereabouts-week-summary{display:flex;flex-direction:column;gap:3px;text-align:center}
.whereabouts-week-summary strong{font-size:16px;color:#17324d}
.whereabouts-status{font-size:12px;color:#66736c;min-height:16px}
.whereabouts-status.good{color:#18794e}
.whereabouts-status.bad{color:#b42318}
.whereabouts-board-wrap{padding:0;overflow:hidden}
.whereabouts-grid{display:grid;grid-template-columns:minmax(180px,1.15fr) repeat(7,minmax(150px,1fr));overflow:auto;max-width:100%;background:#e1e8ed;gap:1px}
.whereabouts-grid-head{background:#eef4f7;padding:12px 10px;min-height:66px;display:flex;flex-direction:column;justify-content:center;gap:3px;position:sticky;top:0;z-index:2}
.whereabouts-grid-head strong{color:#17324d;font-size:13px;text-transform:uppercase;letter-spacing:.04em}
.whereabouts-grid-head span{font-size:12px;color:#66736c}
.whereabouts-engineer-head{left:0;z-index:4}
.whereabouts-engineer-cell{background:#fff;padding:12px;min-height:104px;display:flex;flex-direction:column;justify-content:center;gap:4px;position:sticky;left:0;z-index:1}
.whereabouts-engineer-cell strong{font-size:14px;color:#17324d}
.whereabouts-engineer-cell span{font-size:11px;color:#7a8580;overflow-wrap:anywhere}
.whereabouts-day-cell{appearance:none;border:0;border-radius:0;background:#fff;min-height:104px;padding:8px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px;text-align:left;cursor:pointer;color:inherit}
.whereabouts-day-cell:hover{background:#f8fbfd}
.whereabouts-day-cell.is-today,.whereabouts-grid-head.is-today{background:#fff9e8}
.whereabouts-entry{display:flex;flex-direction:column;gap:2px;padding:7px 8px;border-radius:8px;background:#edf5fb;border-left:4px solid #1261a0}
.whereabouts-entry-period{font-size:10px;font-weight:800;letter-spacing:.05em;color:#1261a0}
.whereabouts-entry strong{font-size:12px;color:#182334;line-height:1.25}
.whereabouts-entry small{font-size:10px;color:#667085;line-height:1.25}
.whereabouts-entry-job{color:#3d6078!important}
.whereabouts-add{margin:auto;color:#5c7181;font-size:12px;font-weight:700}
.whereabouts-empty{grid-column:1/-1;background:#fff}
.whereabouts-dialog{width:min(760px,94vw);border:0;border-radius:16px;padding:0;box-shadow:0 24px 70px rgba(20,39,58,.28)}
.whereabouts-dialog::backdrop{background:rgba(13,36,71,.38)}
.whereabouts-dialog form{padding:20px}
.whereabouts-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
.whereabouts-dialog-head h3{margin:3px 0 0;color:#17324d}
.whereabouts-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}
.whereabouts-form-grid label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:700;color:#596761}
.whereabouts-form-grid input,.whereabouts-form-grid select,.whereabouts-form-grid textarea{width:100%;box-sizing:border-box;border:1px solid #cfd9df;border-radius:9px;padding:10px 11px;background:#fff;color:#182334;font:inherit}
.whereabouts-form-grid textarea{resize:vertical}
.whereabouts-span-2{grid-column:1/-1}
.whereabouts-dialog-actions{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;align-items:center;margin-top:16px}
@media(max-width:1100px){
  .whereabouts-toolbar{grid-template-columns:1fr}
  .whereabouts-week-summary{text-align:left}
  .whereabouts-hero{flex-direction:column}
  .whereabouts-hero-note{min-width:0;width:100%;box-sizing:border-box}
}
@media(max-width:700px){
  .whereabouts-form-grid{grid-template-columns:1fr}
  .whereabouts-span-2{grid-column:auto}
  .whereabouts-dialog-actions{grid-template-columns:1fr 1fr}
  .whereabouts-dialog-actions span{display:none}
}

.whereabouts-leave-entry{background:#fff2f1;border-left-color:#c13a2d}
.whereabouts-leave-entry .whereabouts-entry-period{color:#a53026}
.whereabouts-leave-entry strong{color:#7f251e}

.whereabouts-optional{font-weight:500;color:#7a8580;font-size:11px}
