﻿:root{--bg:#070707;--panel:#151515;--panel2:#1f1f1f;--text:#f2f2f2;--muted:#a7a9ac;--line:#2b2b2b;--brand:#e10600;--brand-dark:#8b0000;--ok:#48b06a;--bad:#d85d5d;--warn:#d7a542;--input:#050505}
*{box-sizing:border-box}html,body{max-width:100%;overflow-x:hidden}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px}a{color:inherit}small,.muted{color:var(--muted)}h1{margin:0 0 18px;font-family:Rajdhani,Inter,system-ui,sans-serif;text-transform:uppercase;letter-spacing:.035em;font-size:2.1rem;line-height:1.05;font-weight:900}h2{margin:0 0 14px;font-size:1.05rem;text-transform:uppercase;letter-spacing:.04em}h3{margin:16px 0 8px;font-size:1rem}.wrap{max-width:1280px;margin:0 auto;padding:22px}.top{position:sticky;top:0;z-index:10;display:flex;gap:18px;align-items:center;padding:10px 18px;background:#070707;border-bottom:1px solid #242424}.brand{display:flex;align-items:center;min-width:230px;text-decoration:none}.brand-logo{width:200px;max-width:100%;height:52px;object-fit:contain;object-position:left center}.brand-fallback{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.top nav{display:flex;flex-wrap:wrap;gap:4px;flex:1}.top nav a,.user a{padding:8px 10px;border-radius:4px;text-decoration:none;color:var(--muted);text-transform:uppercase;font-size:.82rem;letter-spacing:.04em}.top nav a:hover,.top nav a.active,.user a:hover{background:var(--brand-dark);color:#fff}.user{text-align:right;color:var(--muted);font-size:.9rem}.user span{display:block;color:var(--brand)}
.login-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top,#171f25,#070707 58%)}.login-card{width:min(460px,92vw);background:#151515;border:1px solid #2b2b2b;border-radius:18px;padding:34px 36px;box-shadow:0 24px 70px #000b}.login-mark{display:block;margin-bottom:16px}.login-logo{display:block;width:320px;max-width:100%;height:auto;object-fit:contain;object-position:left center}.login-card p{margin:0 0 24px;color:var(--muted);font-size:1.05rem}.login-fields{display:grid;gap:16px;margin-bottom:22px}.login-card label{font-weight:700}.login-card input{margin-top:7px;padding:15px 16px;font-size:1.05rem}.login-button{min-width:128px;padding:14px 20px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:18px}.callout{border-color:var(--brand)}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:18px}.metric{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:14px;padding:18px}.metric strong{display:block;font-size:2rem;color:var(--brand)}.metric span{color:var(--muted)}
.tech-current-step{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.04)}.tech-current-step span{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.tech-current-step strong{color:var(--text);font-family:Rajdhani,Inter,system-ui,sans-serif;font-size:1.25rem;text-transform:uppercase}[hidden]{display:none!important}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:18px;background:rgba(0,0,0,.78)}.notify-modal{width:min(440px,100%);padding:20px;border:1px solid rgba(236,0,0,.45);border-radius:22px;background:#111;box-shadow:0 24px 80px rgba(0,0,0,.45)}.notify-modal h2{margin-top:0}.notify-modal .actions{display:grid;gap:10px;margin-top:16px}
form.stack,label{display:grid;gap:7px}.stack{gap:12px}.inline,.toolbar,.actions{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:16px}input,select,textarea{width:100%;background:var(--input);border:1px solid var(--line);border-radius:10px;color:var(--text);padding:11px;font:inherit}textarea{min-height:90px}.check{display:flex;align-items:center;gap:10px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px}.check input{width:auto}.check.big{font-size:1.05rem;padding:14px}.checks{display:grid;gap:8px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 13px;border:1px solid var(--line);border-radius:6px;background:var(--panel2);color:var(--text);text-decoration:none;cursor:pointer;font:inherit;text-transform:uppercase;font-weight:800;letter-spacing:.03em}.btn:hover{filter:brightness(1.12)}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:900}.btn.warn{background:var(--warn);border-color:var(--warn);color:#15100a}.btn.small{padding:6px 9px;font-size:.86rem}.btn.big{width:100%;padding:16px;font-size:1.15rem}button:disabled{opacity:.45;cursor:not-allowed}.file{position:relative;overflow:hidden}.file input{position:absolute;inset:0;opacity:0;cursor:pointer}
table{width:100%;border-collapse:collapse;background:var(--panel);overflow:hidden;border-radius:12px}th,td{border-bottom:1px solid var(--line);padding:11px;text-align:left;vertical-align:top}th{color:var(--muted);font-size:.84rem;text-transform:uppercase;letter-spacing:.04em}.badge{display:inline-block;padding:5px 9px;border-radius:999px;background:#2b3740;color:#dce7ec;font-size:.85rem}.badge.big{font-size:1rem;padding:9px 13px}.flash{border-radius:10px;padding:14px 16px;margin-bottom:14px;background:#1e3a29;border:1px solid #2e7043;font-weight:600}.flash.bad{background:#3a1a1a;border-color:var(--bad);color:#f5c0c0}.flash.bad{background:#421d1d;border-color:#7a3434}.flash.warn{background:#403319;border-color:#806322}
.list-row{display:grid;gap:4px;padding:11px;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:0}.job-head{display:flex;justify-content:space-between;gap:18px}.job-head p{margin:6px 0;color:var(--muted)}
.job-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.job-card,.schedule-job{display:grid;gap:6px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--panel2);text-decoration:none}.job-card strong{font-size:1.1rem}.job-card em,.schedule-job em{font-style:normal;color:var(--brand)}.tech-tabs{position:sticky;top:70px;z-index:5;display:flex;gap:8px;background:var(--bg);padding:8px 0 14px}.tech-tabs a{flex:1;text-align:center;background:var(--panel2);border:1px solid var(--line);padding:12px;border-radius:10px;text-decoration:none}
.progress{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:8px;margin-bottom:18px}.progress span{border:1px solid var(--line);border-radius:999px;padding:10px;text-align:center;color:var(--muted);background:var(--panel2)}.progress span.done{background:#1f432d;border-color:#39784d;color:#eaffef}.photo-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.photo-card{display:grid;gap:10px;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:12px}.thumb{width:100%;height:130px;object-fit:cover;border-radius:10px;background:#0a0d10;border:1px solid var(--line)}.thumb.empty{display:grid;place-items:center;color:var(--muted)}.thumb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.compare{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.compare-card{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:12px}.compare-card>div{display:inline-block;width:49%;vertical-align:top}.compare-card span{display:block;color:var(--muted);font-size:.85rem;margin-bottom:6px}.timer-readout{font-size:2.4rem;font-weight:900;color:var(--brand);text-align:center;padding:18px;background:#0d1114;border-radius:12px;margin-bottom:14px}
@media (max-width:900px){.top{display:block}.brand{display:block;margin-bottom:8px}.top nav{overflow:hidden;flex-wrap:wrap;padding-bottom:4px}.user{text-align:left;margin-top:6px}.grid.three{grid-template-columns:1fr}.wrap{padding:14px}.job-head{display:block}table{display:table;overflow:hidden}.photo-cards{grid-template-columns:1fr}.tech-tabs{top:104px}}

/* Operational shell */
.app-shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh;width:100%;overflow:hidden}.sidebar{position:sticky;top:0;height:100vh;background:#070707;border-right:1px solid #242424;padding:16px 12px;display:flex;flex-direction:column;gap:16px}.sidebar-brand{min-width:0}.sidebar .brand-logo{width:180px;height:auto}.menu-toggle{display:none}.side-nav{display:grid;gap:3px}.side-nav a{padding:9px 10px;border-radius:6px;color:var(--muted);text-decoration:none;text-transform:uppercase;font-weight:750;letter-spacing:.035em;font-size:.9rem}.side-nav a:hover,.side-nav a.active{background:#151515;color:#fff;border-left:3px solid var(--brand)}.mobile-menu-logout{display:none}.sidebar-user{margin-top:auto;border-top:1px solid var(--line);padding-top:12px;color:#fff;font-weight:750}.sidebar-user strong{display:block}.sidebar-user span{display:block;color:var(--brand);font-size:.76rem;text-transform:uppercase}.sidebar-user a{display:inline-block;margin-top:8px;color:var(--muted);text-decoration:none}.admin-wrap{max-width:1240px;width:100%;padding:22px;overflow-x:hidden}
.job-filters{align-items:flex-start;display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px}.job-filters form{display:grid;grid-template-columns:minmax(180px,2fr) minmax(145px,1fr) minmax(145px,1fr) minmax(145px,1fr) minmax(145px,1fr) auto auto;gap:10px;width:100%;min-width:0}
.schedule-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.schedule-filters{display:grid;grid-template-columns:180px minmax(160px,1fr) minmax(160px,1fr) auto;gap:10px}.schedule-grid{align-items:start}.empty-mini{border:1px dashed #333;border-radius:8px;padding:12px;color:var(--muted);background:#101010}
.page-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.page-actions strong{display:block;text-transform:uppercase}.page-actions span{display:block;color:var(--muted);margin-top:4px}.filter-panel{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(auto-fit,minmax(140px,1fr));gap:10px;align-items:end;border:1px solid var(--line);background:#101010;border-radius:10px;padding:12px;margin-bottom:16px;min-width:0}.filter-panel>*{min-width:0}.filter-actions{display:flex;gap:8px;flex-wrap:wrap}.filter-search{min-width:0}.table-wrap{width:100%;max-width:100%;overflow:hidden;border-radius:10px}.ops-table{min-width:0}.ops-table tr:hover td{background:#111}.job-title-cell strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.row-actions{white-space:normal;width:auto}.btn.ghost{background:#101010;color:var(--muted)}
.customer-search{grid-template-columns:minmax(240px,1fr) auto auto}.drawer-panel{border-color:#333;background:#121212}.customer-detail{display:flex;justify-content:space-between;gap:14px}.customer-detail strong,.customer-detail span{display:block}.customer-detail p{color:var(--muted)}.compact-list{display:grid;gap:8px}.compact-list a{display:flex;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:8px;padding:10px;text-decoration:none;background:#0d0d0d}.compact-list span{color:var(--muted)}.compact-list em{font-style:normal;color:var(--brand);font-weight:900;text-transform:uppercase}
.schedule-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-bottom:14px}.schedule-day{padding:13px}.schedule-day-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.schedule-day-head h2{margin:0}.schedule-day-head span{color:var(--muted);font-size:.8rem;white-space:normal}.empty-mini strong,.empty-mini span{display:block}.schedule-job-card{padding:11px;border-radius:8px;background:#101010}.schedule-job-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.schedule-job-top strong{font-size:.95rem}.schedule-job-card .badge{flex:0 0 auto}.schedule-job-card small{color:var(--muted)}
.setup-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.setup-cards a{display:grid;gap:6px;border:1px solid var(--line);border-radius:10px;background:#101010;padding:14px;text-decoration:none}.setup-cards strong{text-transform:uppercase}.setup-cards span{color:var(--muted)}.setup-cards em{font-style:normal;color:var(--brand);font-weight:900;text-transform:uppercase}.preview-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--brand);background:#160606;border-radius:10px;padding:12px;margin-bottom:14px}.preview-banner strong,.preview-banner span{display:block}.preview-banner span{color:var(--muted)}.tech-preview-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.preview-steps{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-bottom:14px}.preview-steps a{border:1px solid var(--line);border-radius:8px;background:#101010;color:var(--muted);padding:10px;text-align:center;text-transform:uppercase;font-weight:900;font-size:.78rem;text-decoration:none}.preview-steps a.done{background:var(--brand);border-color:var(--brand);color:#fff}.preview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}.preview-card{display:grid;gap:12px;align-content:start}.preview-photo-cards{grid-template-columns:1fr}.confirm-panel{max-width:720px}.vehicle-confirm-title{font-size:1.2rem;font-weight:900}.vehicle-proof-grid{grid-template-columns:1fr}.proof-grid>*{min-width:0}.proof-grid span{overflow-wrap:anywhere;word-break:break-word}.mileage-card{border:1px solid #ddd;border-radius:8px;padding:10px;background:#101010}.mileage-card input{margin-top:8px}
.dash-light-panel{border:1px solid var(--line);border-radius:10px;background:#0d0d0d;padding:14px}.dash-light-panel h3{margin-top:0;text-transform:uppercase}.dash-light-panel p{color:var(--muted);margin-top:-4px}.dash-light-grid{display:grid;grid-template-columns:1fr;gap:10px}.dash-choice{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;background:#151515;padding:13px;font-weight:900;text-transform:uppercase}.dash-choice input{width:auto}.dash-choice.no-lights{border-color:#1f7a3b;background:#0d1b11}.dash-other-note{margin-top:10px}.dash-notify{margin-top:10px;border-color:var(--brand);background:#190606}
.dash-summary{display:inline-block;margin-top:8px;border-radius:999px;padding:6px 9px;font-size:.78rem;font-weight:900;text-transform:uppercase}.dash-summary.ok{background:#0d1b11;color:#9be4aa;border:1px solid #1f7a3b}.dash-summary.warn{background:#220000;color:#fff;border:1px solid var(--brand)}.dash-summary.pending{background:#191919;color:var(--muted);border:1px solid var(--line)}

/* Component system */
.panel{border-radius:10px}.badge{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:5px 10px;border-radius:999px;background:#2b2b2b;color:#fff;font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.badge-scheduled{background:#343434;color:#f2f2f2}.badge-assigned{background:#262626;color:#fff}.badge-active,.badge-red{background:var(--brand);color:#fff}.badge-alert,.badge-review{background:var(--brand-dark);color:#fff}.badge-warn{background:#c58b18;color:#070707}.badge-complete{background:#1f7a3b;color:#fff}.badge-cancelled{background:#4b4b4b;color:#a7a9ac;text-decoration:line-through}
.warning-state{border:1px solid var(--brand);background:#270000;color:#fff;padding:14px;border-radius:8px;margin-bottom:14px;font-weight:800}.security-alert{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #5d1111;background:#160606;color:#fff;padding:9px 10px;border-radius:8px;margin-bottom:14px;font-size:.9rem}.next-copy{color:var(--muted);margin-top:-6px;margin-bottom:18px}.action-panel{max-width:860px;margin-inline:auto}.quick-actions{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 18px}.metric-link{text-decoration:none}.metric small{display:block;margin-top:8px;color:var(--muted)}.empty-state{border:1px dashed #3a3a3a;border-radius:10px;padding:18px;background:#101010}.empty-state strong{display:block;margin-bottom:6px}.empty-state p{color:var(--muted);margin:0 0 12px}.alert-row{border-left:3px solid var(--brand);background:#110707}
.dashboard-stats{grid-template-columns:repeat(3,minmax(0,1fr));max-width:980px}.dashboard-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);background:#101010;border-radius:10px;padding:14px;margin-bottom:16px}.dashboard-actions strong{display:block;text-transform:uppercase}.dashboard-actions span{display:block;color:var(--muted);margin-top:4px}.dashboard-actions>div:last-child{display:flex;gap:8px;flex-wrap:wrap}.dashboard-stack{display:grid;grid-template-columns:1fr;gap:14px}.dash-job-list{display:grid;gap:10px}.dash-job-card{display:grid;gap:10px;border:1px solid var(--line);border-radius:10px;background:#101010;padding:13px}.dash-job-main{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.dash-job-main strong{display:block;text-transform:uppercase;font-weight:900;letter-spacing:.02em}.dash-job-main span{display:block;color:var(--muted);margin-top:3px}.dash-job-meta{display:flex;gap:4px 14px;flex-wrap:wrap;margin-top:4px}.dash-job-meta span{color:var(--muted);font-size:.82rem;font-weight:600}.dash-job-actions{display:flex;gap:8px}.workflow-mini{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.workflow-mini span{height:7px;border-radius:999px;background:#333;text-indent:-999px;overflow:hidden}.workflow-mini span.done{background:#1f7a3b}.proof-gap-card{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #3a1a1a;border-left:3px solid var(--brand);border-radius:10px;background:#100707;padding:12px;margin-bottom:8px}.proof-gap-card strong{display:block;text-transform:uppercase}.proof-gap-card span{display:block;color:#d6baba;margin-top:4px}.empty-ok{border:1px solid #243d2b;background:#0d1b11;border-radius:10px;padding:14px}.empty-ok strong{display:block;color:#9be4aa}.empty-ok span{display:block;color:var(--muted);margin-top:4px}
.template-card{border:1px solid var(--line);border-radius:10px;background:#101010;padding:14px;margin-bottom:12px}.template-head{display:flex;align-items:center;gap:8px;justify-content:space-between;margin-bottom:10px}.template-head strong{text-transform:uppercase}.template-head em{font-style:normal;color:var(--muted);font-size:.78rem;text-transform:uppercase}.stage-badge,.required-tag,.optional-tag{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:5px 8px;font-size:.72rem;text-transform:uppercase;font-weight:900}.stage-badge{background:#262626;color:#fff}.required-tag{border:1px solid var(--brand);background:#220000;color:#fff;margin:3px}.optional-tag{border:1px solid #3a3a3a;background:#151515;color:var(--muted);margin:3px}.photo-requirement-list{display:flex;flex-wrap:wrap;gap:6px}.photo-requirement-list b{color:#fff}
.grouped-form fieldset{border:1px solid var(--line);border-radius:10px;padding:16px;margin:0 0 14px;background:#101010}.grouped-form legend{padding:0 8px;color:#fff;text-transform:uppercase;font-weight:900;letter-spacing:.04em}.info-strip{display:flex;justify-content:space-between;align-items:center;gap:14px;border:1px solid var(--line);background:#101010;border-radius:10px;padding:14px;margin-bottom:16px}.info-strip strong{display:block;text-transform:uppercase}.info-strip span{display:block;color:var(--muted);margin-top:4px}.lifecycle{display:flex;flex-wrap:wrap;gap:6px;overflow:hidden;padding:0 0 14px;margin-bottom:10px}.lifecycle span{flex:1 1 120px;min-width:0;border:1px solid var(--line);background:#101010;color:var(--muted);border-radius:999px;padding:7px 10px;font-size:.72rem;text-transform:uppercase;font-weight:900;text-align:center}.lifecycle span.done{border-color:#1f7a3b;color:#9be4aa}.lifecycle span.active{background:var(--brand);border-color:var(--brand);color:#fff}.lifecycle span.cancelled{background:#333;color:#777;text-decoration:line-through}.proof-body{background:#fff;color:#111}.proof-packet{max-width:1100px;margin:0 auto;padding:24px}.proof-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.proof-logo{width:220px;height:auto}.proof-body .panel{background:#fff;color:#111;border-color:#ccc}.proof-body .muted,.proof-body small{color:#555}.proof-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.proof-grid div{border:1px solid #ddd;border-radius:8px;padding:10px}.proof-grid strong{display:block;text-transform:uppercase;font-size:.75rem;color:#555}.proof-grid span{display:block;margin-top:4px;font-weight:800}

/* Technician workflow */
.tech-wrap{max-width:980px}.tech-tabs{top:0}.step-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:18px}.step-nav a{padding:12px 10px;border:1px solid var(--line);border-radius:8px;background:#111;color:var(--muted);text-decoration:none;text-align:center;text-transform:uppercase;font-size:.78rem;font-weight:900}.step-nav a.done{border-color:#1f7a3b;color:#fff}.step-nav a.active{background:var(--brand);border-color:var(--brand);color:#fff}.tech-step{min-height:420px}
.job-cards{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.job-card{border-radius:10px;border-color:#333;background:#151515}.job-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.job-card strong{font-family:Rajdhani,Inter,system-ui,sans-serif;text-transform:uppercase;font-size:1.15rem}.job-card-meta{display:flex;gap:10px;color:#fff}.job-card-meta span{border:1px solid var(--line);border-radius:6px;padding:6px 8px;background:#090909;font-weight:800}.job-card b{margin-top:8px;color:#fff;background:var(--brand);border-radius:6px;padding:10px;text-align:center;text-transform:uppercase}
.progress span{border-radius:6px;text-transform:uppercase;font-size:.78rem;font-weight:900}.checklist-form{gap:14px}.checklist-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;border-radius:8px}.checklist-row em{font-style:normal;font-size:.76rem;text-transform:uppercase;font-weight:900;color:var(--muted)}.checklist-row.required-missing{border-color:var(--brand);background:#220000}.checklist-row.complete{border-color:#1f7a3b;background:#102617}.checklist-row.complete em{color:#75d48c}
.photo-cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.photo-card{border-radius:10px;min-height:300px}.photo-card.required-missing{border-color:var(--brand);background:#1c0505}.photo-card.complete{border-color:#1f7a3b;background:#0d2113}.photo-card.optional{border-color:#3a3a3a}.photo-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.photo-card-head strong{text-transform:uppercase}.photo-card-head em{font-style:normal;color:var(--muted);font-size:.72rem;text-transform:uppercase;font-weight:900;text-align:right}.photo-card.required-missing .photo-card-head em{color:#ff8b86}.photo-card.complete .photo-card-head em{color:#75d48c}.photo-card .thumb{height:165px}.photo-card .btn{width:100%;min-height:48px}
.photo-flow{max-width:560px}.photo-step-count{display:inline-flex;border:1px solid var(--brand);border-radius:999px;background:#220000;color:#fff;padding:6px 10px;margin-bottom:12px;font-weight:900;text-transform:uppercase}.photo-prompt{display:grid;gap:18px;border:1px solid var(--brand);border-radius:18px;background:#100505;padding:18px;margin-bottom:16px}.photo-prompt-title{display:grid;gap:4px;text-align:center}.photo-prompt-title span{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.photo-prompt-title strong{font-family:Rajdhani,Inter,system-ui,sans-serif;font-size:2rem;line-height:1;text-transform:uppercase}.photo-complete-state{display:grid;gap:10px;border:1px solid #1f7a3b;border-radius:16px;background:#0d2113;padding:18px;margin-bottom:16px}.photo-complete-state strong{text-transform:uppercase}.photo-complete-state span{color:var(--muted)}.photo-progress-list{display:grid;gap:8px}.photo-progress-row{border:1px solid var(--line);border-radius:10px;background:#101010;padding:10px}.photo-progress-row>span{font-weight:900;text-transform:uppercase}.photo-progress-row>em{float:right;font-style:normal;color:var(--muted);font-size:.75rem;text-transform:uppercase;font-weight:900}.photo-progress-row.complete{border-color:#1f7a3b;background:#0d2113}.photo-progress-row.missing{border-color:var(--brand);background:#1c0505}.photo-progress-row details{clear:both;margin-top:8px}.photo-progress-row summary{cursor:pointer;color:#fff;font-weight:900;text-transform:uppercase}
.mobile-job-list{display:none}.mobile-job-card{display:grid;gap:10px;border:1px solid var(--line);border-radius:12px;background:#151515;padding:13px}.mobile-job-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.mobile-job-card-head strong{display:block;font-family:Rajdhani,Inter,system-ui,sans-serif;text-transform:uppercase;font-size:1.15rem;line-height:1.05}.mobile-job-card-head span{display:block;color:var(--muted);margin-top:4px}.mobile-job-detail{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;border-top:1px solid #252525;padding-top:8px}.mobile-job-detail b{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}.mobile-job-detail span{overflow-wrap:anywhere}.mobile-job-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;border-top:1px solid #252525;padding-top:10px}.mobile-job-actions .btn{width:100%;min-height:40px}
.view-as-bar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-bottom:1px solid #2a1111;background:#120505;color:#fff}.view-as-bar strong{text-transform:uppercase;font-size:.8rem;letter-spacing:.05em}.view-as-bar span{color:var(--muted);font-size:.82rem}
.status-progress{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:10px;background:#101010;padding:10px 12px;margin:0 0 14px}.status-progress>div:first-child{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.status-progress span{color:var(--muted);font-weight:750;text-transform:uppercase;font-size:.78rem}.status-dots{display:flex;align-items:center;gap:5px}.status-dots i{display:block;width:8px;height:8px;border-radius:999px;background:#333}.status-dots i.done{background:#1f7a3b}.status-dots i.active{width:18px;background:var(--brand)}
.proof-packet .compare-card{background:#fff!important;border:1px solid #ccc!important;color:#111!important}.proof-packet .compare-card span{color:#555!important}.proof-packet .thumb{background:#fff!important;border:1px solid #bbb!important;color:#555!important}.proof-packet .thumb.empty{background:#fff!important}

@media (max-width:900px){.app-shell{display:block}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid #242424}.side-nav{grid-template-columns:1fr}.admin-wrap{padding:16px}.top{display:flex}.brand{display:flex}.brand-logo{width:165px;height:auto}.step-nav{grid-template-columns:1fr}.photo-cards,.job-cards{grid-template-columns:1fr}.action-panel{max-width:none}.login-card{width:min(520px,94vw)}}
@media (max-width:1100px){.job-filters form{grid-template-columns:1fr 1fr}.job-filters .btn{width:100%}}

/* Mobile-first operational layout */
@media (max-width:900px){
  body{font-size:15px}
  .app-shell{display:block;min-height:100vh}
  .sidebar{position:sticky;top:0;z-index:20;height:auto;display:grid;grid-template-columns:1fr auto;gap:6px 10px;padding:8px 12px;background:#070707;border-right:0;border-bottom:1px solid #242424}
  .sidebar-brand{min-width:0;margin:0}
  .sidebar .brand-logo{width:142px;height:34px;object-fit:contain;object-position:left center}
  .dash-home-btn{display:inline-flex!important}.menu-toggle{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;align-self:center;justify-self:end;width:38px;height:34px;border:1px solid #252525;border-radius:8px;background:#111;color:#fff}
  .menu-toggle span{display:block;width:20px;height:2px;background:#fff;border-radius:2px;margin:3px 0}
  .side-nav{grid-column:1/-1;display:none;gap:6px;overflow:hidden;white-space:normal;padding:4px 0 2px;scrollbar-width:none}
  .sidebar.menu-open .side-nav{display:grid}
  .side-nav::-webkit-scrollbar{display:none}
  .side-nav a{flex:1 1 auto;padding:9px 10px;border:1px solid #252525;border-radius:8px;background:#101010;font-size:.72rem;line-height:1;font-weight:700}
  .side-nav a:hover,.side-nav a.active{border-left:1px solid #252525;background:var(--brand);color:#fff}
  .sidebar.menu-open .mobile-menu-logout{display:flex!important;align-items:center;justify-content:center;width:100%;padding:9px 10px;border-radius:6px;color:var(--bad)!important;text-transform:uppercase;font-weight:800;letter-spacing:.035em;font-size:.9rem;text-decoration:none;border:1px solid rgba(216,93,93,.3);background:#0d0d0d;margin-top:2px;box-sizing:border-box}
  .sidebar-user{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:6px;margin:0;border:1px solid #202020;border-radius:8px;background:#0d0d0d;padding:5px 8px;text-align:center;font-size:.74rem;line-height:1.05}
  .sidebar-user strong{font-weight:700}
  .sidebar-user span{font-size:.68rem}
  .sidebar-user span:before{content:"- ";color:var(--muted)}
  .desktop-logout{display:none!important}
  .admin-wrap,.tech-wrap,.wrap{padding:12px;max-width:none}
  h1{font-size:1.65rem;line-height:1.05;margin:6px 0 12px;font-weight:800;letter-spacing:.025em}
  h2{font-size:.94rem;font-weight:750;letter-spacing:.025em}
  h3{font-size:.9rem;font-weight:750}
  .flash{padding:10px 12px;margin-bottom:12px;font-size:.92rem}
  .panel{padding:14px;border-radius:10px;margin-bottom:12px}
  .cards{grid-template-columns:1fr;gap:10px}
  .dashboard-stats{grid-template-columns:repeat(3,minmax(0,1fr));max-width:none}
  .dashboard-actions{display:grid;grid-template-columns:1fr;padding:12px}
  .dashboard-actions>div:last-child{display:grid;grid-template-columns:1fr;gap:8px}
  .dash-job-main{display:grid;grid-template-columns:1fr auto}
  .dash-job-meta{display:grid;grid-template-columns:1fr}
  .proof-gap-card{display:grid;grid-template-columns:1fr}
  .metric{padding:14px}
  .metric strong{font-size:1.6rem}
  .toolbar,.inline,.actions{display:grid;grid-template-columns:1fr;gap:8px;align-items:stretch}
  .job-filters{display:grid;grid-template-columns:1fr}
  .job-filters form,.schedule-filters,.filter-panel,.customer-search{grid-template-columns:1fr}
  .page-actions,.customer-detail{display:grid;grid-template-columns:1fr}
  .filter-actions{display:grid;grid-template-columns:1fr 1fr}
  .filter-actions .btn{width:100%}
  .schedule-actions{display:grid;grid-template-columns:1fr 1fr}
  .toolbar .btn,.inline .btn,.actions .btn{width:100%}
  input,select,textarea{min-height:46px;font-size:16px;border-radius:8px}
  .btn{min-height:42px;border-radius:8px;font-size:.9rem;font-weight:750}
  .mobile-job-list{display:grid;gap:10px}
  .table-wrap{display:none}
  .mobile-job-card .badge{align-self:start;max-width:120px;text-align:center;line-height:1.05}
  .mobile-job-card-head strong{font-size:1.05rem;font-weight:750}
  .mobile-job-actions{grid-template-columns:1fr 1fr}
  .mobile-job-actions .btn:first-child{grid-column:auto}
  .view-as-bar{padding:6px 10px}
  .view-as-bar strong{font-size:.72rem}
  .view-as-bar span{display:none}
  .status-progress{align-items:flex-start;padding:9px 10px;margin-bottom:10px}
  .status-progress span{font-size:.68rem}
  .status-dots{gap:3px;flex-wrap:nowrap;justify-content:flex-end;max-width:50%;flex:0 0 auto}
  .status-dots i{width:6px;height:6px;flex:0 0 auto}
  .status-dots i.active{width:13px}
  table{display:table;overflow:hidden;border-radius:8px}
  th,td{padding:9px;white-space:normal}
  .schedule-day{padding:14px}
  .schedule-job{padding:13px;border-radius:8px}
  .schedule-board{grid-template-columns:1fr}
  .compact-list a{display:grid;grid-template-columns:1fr}
  .preview-banner,.tech-preview-hero{display:grid;grid-template-columns:1fr}
  .preview-steps{grid-template-columns:1fr}
  .preview-grid{grid-template-columns:1fr}
  .vehicle-proof-grid{grid-template-columns:1fr}
  .dash-light-grid{grid-template-columns:1fr}
  .confirm-panel{max-width:none}
  .grid.three{grid-template-columns:1fr}
  .job-head{display:block}
  .job-head .badge{margin-top:8px}
  .step-nav{grid-template-columns:1fr;gap:7px}
  .step-nav a{padding:10px 8px;font-size:.7rem}
  .progress{grid-template-columns:1fr;gap:7px}
  .progress span{padding:8px;font-size:.68rem}
  .photo-cards,.job-cards{grid-template-columns:1fr}
  .photo-card{min-height:0}
  .photo-card .thumb{height:210px}
  .check.big{font-size:1rem;padding:13px}
  .timer-readout{font-size:2.1rem}
  .tech-current-step{padding:9px 11px;margin:8px 0;border-radius:10px}
  .tech-current-step span{font-size:.68rem}
  .tech-current-step strong{font-size:1.05rem;font-weight:750}
  .next-copy{font-size:.9rem;margin-bottom:12px}
  .photo-step-count{font-size:.78rem;padding:4px 8px;margin-bottom:10px}
  .photo-prompt{gap:12px;padding:14px;border-radius:14px;margin-bottom:12px}
  .photo-prompt-title span{font-size:.68rem}
  .photo-prompt-title strong{font-size:1.45rem;font-weight:750}
  .badge{font-size:.68rem;min-height:24px;padding:4px 8px;font-weight:750}
  .job-head h2{font-size:.98rem}
}

@media (max-width:420px){
  .cards{grid-template-columns:1fr}
  .sidebar .brand-logo{width:128px}
  .sidebar-user{max-width:none}
  h1{font-size:1.48rem}
}

/* No horizontal scrolling anywhere: wrap and shrink content instead. */
html,body{overflow-x:hidden!important}
.app-shell,.admin-wrap,.wrap,.panel,.table-wrap,.proof-packet{max-width:100%!important;overflow-x:hidden!important}
.top nav,.side-nav,.tech-tabs,.lifecycle,.quick-actions,.page-actions,.filter-actions,.dash-job-actions{flex-wrap:wrap!important;overflow:hidden!important;white-space:normal!important}
.side-nav a,.tech-tabs a,.lifecycle span{flex:1 1 auto!important;min-width:0!important;white-space:normal!important;text-align:center}
.lifecycle{display:flex!important;gap:6px!important;padding-bottom:10px!important}
.table-wrap{overflow:hidden!important}
table,.ops-table{display:table!important;width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed;overflow:hidden!important}
th,td{white-space:normal!important;overflow-wrap:anywhere;word-break:break-word}
.row-actions{white-space:normal!important;width:auto!important}
.row-actions .btn{white-space:normal!important;margin:2px}
img,video,canvas,iframe{max-width:100%;height:auto}

@media print{
  .no-print,.sidebar,.top,.quick-actions{display:none!important}
  html,body,.proof-body{width:100%!important;max-width:100%!important;overflow-x:hidden!important;background:#fff!important;color:#000!important}
  .proof-packet{width:100%!important;max-width:100%!important;padding:0!important;overflow:hidden!important}
  .proof-packet *{max-width:100%}
  .panel{break-inside:avoid;background:#fff!important;border-color:#ccc!important}
  .proof-packet .job-head{display:flex!important}
  .proof-packet .lifecycle{display:none!important}
  .proof-packet .compare-card{background:#fff!important;border:1px solid #ccc!important;color:#000!important}
  .proof-packet .thumb{background:#fff!important;border:1px solid #bbb!important;color:#555!important}
  .proof-packet .thumb.empty{background:#fff!important}
}

/* -- Smart customer/vehicle select -- */
.smart-select-wrap{position:relative}
.smart-search{width:100%;background:var(--input);border:1px solid var(--line);border-radius:10px;color:var(--text);padding:11px;font:inherit}
.smart-search:disabled{opacity:.45;cursor:not-allowed}
.smart-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:200;background:#1a1a1a;border:1px solid var(--line);border-radius:10px;max-height:260px;overflow-y:auto;box-shadow:0 8px 32px rgba(0,0,0,.55)}
.smart-dropdown-item{padding:11px 14px;cursor:pointer;border-bottom:1px solid var(--line);font-size:.95rem;display:flex;align-items:center;gap:10px}
.smart-dropdown-item:last-child{border-bottom:none}
.smart-dropdown-item:hover,.smart-dropdown-item.focused{background:var(--line)}
.smart-dropdown-item.new-item{color:var(--brand);font-weight:800;letter-spacing:.02em}
.smart-dropdown-item.new-item::before{content:"+";font-size:1.1rem;margin-right:2px}
.smart-dropdown-empty{padding:12px 14px;color:var(--muted);font-size:.9rem}
/* -- Customer / Vehicle info card -- */
.info-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-top:8px;display:grid;gap:6px}
.info-card-row{display:flex;gap:10px;align-items:baseline;font-size:.93rem}
.info-card-label{color:var(--muted);min-width:72px;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}
/* ---- Calendar Picker ---- */
.cal-trigger-wrap { display:flex; gap:.5rem; align-items:center; }
.cal-display { flex:1; cursor:pointer; background:#1a1a1a; border:1px solid #333; color:#fff; padding:.5rem .75rem; border-radius:6px; }
.cal-popup { position:absolute; z-index:200; background:#1e1e1e; border:1px solid #333; border-radius:10px; box-shadow:0 8px 32px rgba(0,0,0,.6); padding:.75rem; width:280px; }
.cal-popup-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:.5rem; }
.cal-nav { background:none; border:none; color:#ccc; font-size:1.1rem; cursor:pointer; padding:.2rem .5rem; border-radius:4px; }
.cal-nav:hover { background:#333; }
.cal-month-label { font-weight:600; color:#fff; }
.cal-weekdays { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; margin-bottom:4px; }
.cal-weekday { text-align:center; font-size:.7rem; color:#666; padding:.15rem 0; }
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.cal-day { text-align:center; padding:.35rem .2rem; border-radius:5px; cursor:pointer; font-size:.82rem; color:#ccc; position:relative; user-select:none; }
.cal-day:hover { background:#2c2c2c; color:#fff; }
.cal-day.selected { background:#e03030; color:#fff; font-weight:700; }
.cal-day.today { box-shadow:inset 0 0 0 1px #666; color:#fff; }
.cal-day.other-month { color:#444; }
.cal-day.has-jobs::after { content:''; display:block; width:4px; height:4px; border-radius:50%; background:#e08030; margin:.1rem auto 0; }
.cal-day.empty { cursor:default; }
.avail-hint { font-size:.8em; color:#aaa; margin-top:.25rem; }

/* ---- Time Slots ---- */
.time-slots { display:flex; flex-wrap:wrap; gap:.4rem; }
.time-slot { background:transparent; border:1px solid #444; color:#ccc; padding:.3rem .7rem; border-radius:20px; cursor:pointer; font-size:.82rem; transition:background .15s,color .15s,border-color .15s; }
.time-slot:hover { border-color:#e03030; color:#fff; }
.time-slot.selected { background:#e03030; border-color:#e03030; color:#fff; }

/* ── Admin subnav ── */
.nav-admin-btn{display:block;padding:9px 10px;border-radius:6px;color:var(--brand);text-decoration:none;text-transform:uppercase;font-weight:800;letter-spacing:.035em;font-size:.9rem;border:1px solid rgba(225,6,0,.3);text-align:center;margin-top:4px}
.nav-admin-btn:hover,.nav-admin-btn.active{background:rgba(225,6,0,.12);color:#fff;border-color:var(--brand)}
.admin-subnav{display:none!important}
.admin-subnav.admin-subnav-open{display:grid!important}
/* ── Dashboard home button ── */
.sidebar-top{display:flex;align-items:center;justify-content:space-between;padding:0}
.sidebar-top-actions{display:flex;align-items:center;gap:6px}
.dash-home-btn{display:none;align-items:center;justify-content:center;width:36px;height:34px;border:1px solid #252525;border-radius:8px;background:#111;color:#fff;font-size:1.3rem;text-decoration:none;line-height:1}
.dash-home-btn:hover{background:#1a1a1a;color:var(--brand)}
/* ── Customer history ── */
.info-card-actions{display:flex;gap:8px;align-items:center;margin-top:8px;flex-wrap:wrap}
.cust-job-history{display:grid;gap:6px;margin-top:8px}
.cust-job-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:#0f0f0f;border:1px solid var(--line);border-radius:8px;text-decoration:none;color:var(--text);gap:12px}
.cust-job-row:hover{border-color:#444;background:#141414}
.cust-job-row-main{display:grid;gap:2px}
.cust-job-row-main strong{font-size:.92rem}
.cust-job-row-main span{font-size:.8rem;color:var(--muted)}
.cust-job-row-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}
.cust-job-row-meta small{font-size:.78rem;color:var(--muted)}
.badge-ok{background:rgba(72,176,106,.15);color:#48b06a;border:1px solid rgba(72,176,106,.3);padding:2px 8px;border-radius:999px;font-size:.75rem;font-weight:700;text-transform:uppercase}
.badge-active{background:rgba(225,6,0,.12);color:var(--brand);border:1px solid rgba(225,6,0,.3);padding:2px 8px;border-radius:999px;font-size:.75rem;font-weight:700;text-transform:uppercase}
.badge-muted{background:#111;color:var(--muted);border:1px solid var(--line);padding:2px 8px;border-radius:999px;font-size:.75rem;font-weight:700;text-transform:uppercase}