.division-chooser{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}
.division-card{border:1px solid var(--border);border-radius:14px;padding:22px;background:linear-gradient(135deg,#151b22,#0f1318);color:var(--text);text-align:left;cursor:pointer}
.division-card strong{display:block;font-size:24px;margin-bottom:8px}.division-card span{color:var(--muted);line-height:1.45}
.division-card.trucking{border-color:#b8872f;background:linear-gradient(135deg,#221b10,#111418)}
.trucking-badge{display:inline-flex;align-items:center;border:1px solid #b8872f;border-radius:999px;padding:4px 10px;color:#f2c86e;font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.trucking-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.trucking-summary>div{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:14px}.trucking-summary strong{display:block;font-size:25px;margin-top:4px}
.trucking-ticket-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}.trucking-ticket-layout>.panel{grid-column:span 6}.trucking-ticket-layout>.wide-panel{grid-column:1/-1}
.trucking-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.trucking-calendar-head{font-size:12px;font-weight:800;color:var(--muted);padding:8px;text-align:center}.trucking-day{position:relative;min-height:128px;border:1px solid var(--border);border-radius:9px;background:#0d1217;padding:7px 7px 25px;overflow:hidden;cursor:pointer;transition:border-color .15s,transform .15s}.trucking-day:hover,.trucking-day:focus{border-color:#d6a23f;transform:translateY(-1px);outline:none}.trucking-day.other{opacity:.38}.trucking-day-number{font-weight:800;margin-bottom:5px}.trucking-day-jobs{max-height:88px;overflow:auto}.trucking-open-day{position:absolute;left:7px;right:7px;bottom:5px;color:#f2c86e;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.trucking-job-chip{display:block;width:100%;padding:5px 7px;margin:3px 0;border:0;border-radius:5px;background:#263342;color:white;text-align:left;font-size:11px;cursor:pointer}.trucking-job-chip.late{background:#6f2da8;animation:truckingPulse 1.1s infinite}.trucking-job-chip.maintenance{box-shadow:inset 4px 0 #e0a433}.trucking-job-chip.overdue{background:#781d26;animation:truckingFade 1s infinite}
.trucking-fleet{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:14px}.truck-card{position:relative;border:1px solid var(--border);border-radius:12px;background:linear-gradient(180deg,#182028,#0d1217);padding:16px;min-height:180px;cursor:pointer;transition:border-color .15s,transform .15s}.truck-card:hover,.truck-card:focus{border-color:#d6a23f;transform:translateY(-2px);outline:none}.truck-card h3{margin:0 0 2px}.truck-card-open{color:#f2c86e;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px}.truck-card .truck-status{position:absolute;top:14px;right:14px;width:13px;height:13px;border-radius:50%;background:#45c978}.truck-card.upcoming .truck-status{background:#e0a433}.truck-card.overdue{opacity:.48;animation:truckingFade 1.2s infinite}.truck-card.overdue .truck-status{background:#e45555}.truck-card.late{outline:3px solid #a855f7;animation:truckingPulse 1s infinite}.truck-card dl{display:grid;grid-template-columns:105px 1fr;gap:5px 10px;margin:0}.truck-card dt{color:var(--muted)}.truck-card dd{margin:0;font-weight:700}
.trucking-day-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(260px,1fr);gap:18px;align-items:start}.trucking-personnel-board{display:grid;gap:10px;max-height:720px;overflow:auto}.trucking-person-card{border:1px solid var(--border);border-left:5px solid #45c978;border-radius:10px;background:#10161c;padding:12px}.trucking-person-card.assigned{border-left-color:#4f8fea}.trucking-person-card.upcoming{border-left-color:#e0a433}.trucking-person-card.expired{border-left-color:#e45555;background:#261317}.trucking-person-card h4{margin:0 0 5px}.trucking-person-card p{margin:3px 0;color:var(--muted);font-size:12px}.trucking-person-card strong{color:var(--text)}
.trucking-daily-header{display:flex;justify-content:space-between;align-items:flex-end;gap:18px}.trucking-daily-header h2{margin:8px 0 4px}.trucking-empty-board{border:1px dashed var(--border);border-radius:12px;padding:28px;display:grid;gap:8px;color:var(--muted)}.trucking-empty-board strong{color:var(--text);font-size:18px}.trucking-ticket-link{padding:0;border:0;background:none;color:#72b7ff;text-decoration:underline;cursor:pointer;font:inherit}
.trucking-unit-map{min-height:430px;display:grid;gap:10px}.trucking-unit-map iframe{width:100%;height:390px;border:1px solid var(--border);border-radius:10px;background:#0c1116}.trucking-map-empty{min-height:300px;border:1px dashed var(--border);border-radius:10px;display:grid;place-content:center;gap:8px;text-align:center;color:var(--muted)}.trucking-map-empty strong{color:var(--text);font-size:19px}.trucking-detail-list{display:grid;grid-template-columns:minmax(130px,.7fr) minmax(0,1.3fr);gap:8px 14px;margin:0}.trucking-detail-list dt{color:var(--muted)}.trucking-detail-list dd{margin:0;font-weight:700;overflow-wrap:anywhere}.trucking-detail-record{display:grid;gap:6px;padding:12px 0;border-top:1px solid var(--border)}.trucking-detail-record:first-child{border-top:0}.trucking-detail-record span{color:var(--muted)}.trucking-detail-record button{justify-self:start}.cert-status.overdue{background:#521a22;color:#ffbec4}.cert-status.current{background:#153f2b;color:#a5f3c7}
.certification-editor{margin-top:16px;border:1px solid var(--border);border-radius:10px;padding:12px}.certification-row{display:grid;grid-template-columns:1.35fr 1fr 1fr 1fr 1fr auto;gap:8px;align-items:end;padding:10px 0;border-top:1px solid var(--border)}.certification-row:first-child{border-top:0}.certification-row label{font-size:11px}.certification-documents{grid-column:1/-1;display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px}.cert-status{display:inline-flex;padding:3px 8px;border-radius:999px;background:#24303b}.cert-status.upcoming{background:#4b3514;color:#ffd989}.cert-status.expired,.cert-status.missing-expiry,.cert-status.invalid-date{background:#521a22;color:#ffbec4}
.trucking-line-row{display:grid;grid-template-columns:2fr .7fr .7fr .7fr auto;gap:8px;align-items:end;padding:8px 0;border-bottom:1px solid var(--border)}
.trucking-map-preview{min-height:220px;border:1px solid var(--border);border-radius:10px;background:#0c1116 center/cover no-repeat;display:flex;align-items:center;justify-content:center;color:var(--muted)}
.dispatch-result{white-space:pre-wrap}.dispatch-result.ok{color:var(--ok)}.dispatch-result.warn{color:var(--warn)}.dispatch-result.bad{color:var(--bad)}
@keyframes truckingPulse{50%{box-shadow:0 0 0 6px rgba(168,85,247,.22)}}@keyframes truckingFade{50%{opacity:.22}}
@media(max-width:900px){.division-chooser,.trucking-summary{grid-template-columns:1fr 1fr}.trucking-ticket-layout>.panel{grid-column:1/-1}.trucking-line-row{grid-template-columns:1fr 1fr}.trucking-calendar{grid-template-columns:repeat(2,minmax(0,1fr))}.trucking-calendar-head{display:none}.trucking-day-layout{grid-template-columns:1fr}.trucking-daily-header{display:block}.certification-row{grid-template-columns:1fr 1fr}.certification-documents{grid-column:1/-1}}
