:root{--g:#1f4d2b;--g2:#2e6b3d;--lime:#8bc34a;--bg:#f3f5f1;--ink:#1b261d;--mut:#6b7280;--line:#e5e9e4;--r:14px}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{overflow-x:hidden}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text",Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink);font-size:17px;padding-bottom:calc(84px + env(safe-area-inset-bottom))}
.sample-bar{background:#fff3cd;color:#6b4e00;font-size:11.5px;padding:5px 10px;text-align:center}
header{display:flex;align-items:center;gap:10px;background:var(--g);color:#fff;padding:8px 14px;position:sticky;top:0;z-index:20}
.brand{display:flex;gap:8px;align-items:center;color:#fff;text-decoration:none}.brand span{display:flex;flex-direction:column;line-height:1.1}.brand small{color:#cfe6c9;font-size:12px}
.logo-badge{background:#fff;border-radius:8px;padding:3px 4px;width:44px;height:auto;display:block;box-sizing:border-box}
.login-logo{width:min(280px,86%);height:auto;display:block;margin:0 auto 6px}
.hero .logo-badge{width:52px}
.me{font-size:13px;color:#dcefe0}@media(max-width:600px){.me{display:none}}
.spacer{flex:1}
nav{display:flex;position:fixed;bottom:0;left:0;right:0;top:auto;background:#fff;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);justify-content:space-around;z-index:30}
nav a{flex:1;flex-direction:column;gap:2px;color:#4b5563;font-size:13px;font-weight:700;padding:10px 2px 8px;border:0;min-width:0;min-height:64px;display:flex;align-items:center;justify-content:center;text-decoration:none;white-space:nowrap}
nav a i{font-style:normal;font-size:24px}
nav a.on{color:var(--g)}
nav a.on i{transform:scale(1.08)}
main{padding:12px;max-width:1240px;margin:0 auto}
h1{font-size:22px;margin:6px 0}h2{font-size:20px;margin:8px 0 10px}h3{font-size:16px;margin:16px 0 8px}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
button,.btn{background:var(--g2);color:#fff;border:0;border-radius:10px;padding:10px 14px;font-weight:600;font-size:15px;cursor:pointer;min-height:42px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}
button.sec,.btn.sec{background:#e3ebe4;color:var(--g)}button.warn{background:#b45309}button.danger{background:#b91c1c}button.ghost{background:transparent;color:var(--g2);border:1px solid #c9d3ca}
button.sm{min-height:34px;padding:6px 10px;font-size:13px}button.big{width:100%;min-height:52px;font-size:17px}
button:disabled{opacity:.45;cursor:not-allowed}
input,select,textarea{font:inherit;font-size:16px;padding:10px;border:1px solid #c9d3ca;border-radius:10px;background:#fff;max-width:100%;min-height:44px}
textarea{min-height:70px}
.card{background:#fff;border-radius:var(--r);padding:14px;box-shadow:0 1px 3px rgba(0,0,0,.07);margin-bottom:10px}
.note{background:#eef6ff;border-left:4px solid #3b82f6;padding:9px 11px;border-radius:8px;font-size:13.5px;margin-bottom:10px}
.draftnote{background:#fff1f2;border-left:4px solid #e11d48;padding:10px;border-radius:8px;font-size:13.5px;margin-bottom:10px}
.badge{display:inline-block;font-size:12px;font-weight:700;padding:3px 8px;border-radius:999px;white-space:nowrap;vertical-align:middle}
.s-Available{background:#dcfce7;color:#166534}.s-Needs{background:#fef3c7;color:#92400e}.s-Out{background:#fee2e2;color:#991b1b}
.p-Urgent{background:#fee2e2;color:#b91c1c}.p-High{background:#ffedd5;color:#9a3412}.p-Medium{background:#e0f2fe;color:#075985}.p-Low{background:#f3f4f6;color:#374151}
.w-To{background:#f3f4f6;color:#374151}.w-In{background:#dbeafe;color:#1e40af}.w-Waiting{background:#ede9fe;color:#5b21b6}.w-Completed{background:#dcfce7;color:#166534}
.b-crit{background:#fce7f3;color:#9d174d}.b-pub{background:#dcfce7;color:#166534}.b-unpub{background:#f3f4f6;color:#4b5563}.b-chg{background:#fef3c7;color:#92400e}
/* job status colours */
.js-Unscheduled{--c:#9ca3af}.js-Shop{--c:#0f766e}.js-Scheduled{--c:#2563eb}.js-In{--c:#d97706}.js-Completed{--c:#16a34a}.js-Postponed{--c:#7c3aed}.js-Cancelled{--c:#dc2626}
.st{background:color-mix(in srgb,var(--c) 15%,#fff);color:var(--c)}
.chip{display:inline-block;background:#eef2ef;border-radius:7px;padding:2px 7px;margin:2px 3px 0 0;font-size:12.5px}
.chip.bad{background:#fee2e2;color:#991b1b}.chip.amber{background:#fef3c7;color:#92400e}
.muted{color:var(--mut);font-size:13.5px}.small{font-size:12px}
.ok-t{color:#166534;font-weight:700}.bad-t{color:#b91c1c;font-weight:700}.amb-t{color:#92400e;font-weight:700}
/* login */
.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:16px;background:linear-gradient(160deg,#1f4d2b,#2e6b3d)}
.login-card{background:#fff;border-radius:18px;padding:24px;width:360px;max-width:100%;text-align:center}
.login-card label{display:block;text-align:left;font-weight:600;margin:12px 0 4px}.login-card select,.login-card input{width:100%;margin-top:4px}
.login-card button{margin-top:16px}
/* dashboard */
.hero{background:linear-gradient(135deg,#1f4d2b,#3d7f4c);color:#fff;border-radius:var(--r);padding:16px;margin-bottom:12px}
.hero h1{margin:0}.hero .muted{color:#d6ead8}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:12px}
.tile{background:#fff;border-radius:var(--r);padding:12px;box-shadow:0 1px 3px rgba(0,0,0,.07);text-decoration:none;color:inherit;display:block}
.tile b{display:block;font-size:26px}.tile.red b{color:#b91c1c}.tile.amb b{color:#b45309}.tile.grn b{color:#166534}
.list a{display:flex;gap:8px;align-items:center;padding:11px 0;border-top:1px solid var(--line);color:inherit;text-decoration:none}
/* calendar */
.calbar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.calbar h2{margin:0;font-size:18px;flex:1;min-width:180px}
.seg{display:inline-flex;background:#e3ebe4;border-radius:10px;padding:3px}.seg button{background:transparent;color:var(--g);min-height:36px;padding:6px 12px}.seg button.on{background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.1)}
.calwrap{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:1400px){.calwrap{grid-template-columns:1fr 270px}}
@media(max-width:1399px){.calwrap>div:last-child{order:-1}.unsched .job{display:inline-block;width:260px;vertical-align:top;margin-right:6px}.unsched{white-space:normal}}
@media(min-width:900px){.week .job .addr{display:none}}
.week{display:grid;grid-template-columns:1fr;gap:8px}
@media(min-width:900px){.week{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}}
.day{background:#fff;border-radius:12px;padding:8px;min-height:90px;box-shadow:0 1px 2px rgba(0,0,0,.06);transition:outline .1s}
@media(min-width:900px){.day{min-height:300px}}
.day.today{outline:2px solid var(--lime)}.day.blocked{background:repeating-linear-gradient(45deg,#fff,#fff 10px,#fdf2f2 10px,#fdf2f2 20px)}
.over{outline:3px dashed #2563eb!important;background:#eff6ff!important}
.dayh{display:flex;justify-content:space-between;font-weight:700;font-size:13.5px;margin-bottom:6px;gap:4px;flex-wrap:wrap}
.flag{font-size:11.5px;font-weight:600;border-radius:6px;padding:2px 6px;display:inline-block;margin:0 0 4px 0}
.flag.blk{background:#fee2e2;color:#991b1b}.flag.shop{background:#e0f2fe;color:#075985}
.job{position:relative;background:color-mix(in srgb,var(--c) 9%,#fff);border-left:5px solid var(--c);border-radius:9px;padding:8px 8px 8px 10px;margin-bottom:6px;font-size:13px;cursor:pointer}
.job.js-Cancelled .t{text-decoration:line-through}
.job .t{font-weight:700;font-size:14px;padding-right:38px}.job .w{color:#b91c1c;font-weight:700;font-size:12px}
.handle{position:absolute;right:2px;top:2px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:20px;color:#6b7280;touch-action:none;cursor:grab;border-radius:8px;user-select:none;-webkit-user-select:none}
.handle:active{background:rgba(0,0,0,.06)}
.dragghost{position:fixed;z-index:100;pointer-events:none;opacity:.9;box-shadow:0 10px 30px rgba(0,0,0,.25);transform:rotate(2deg)}
.month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.month .dow{font-size:11px;font-weight:700;color:var(--mut);text-align:center;padding:4px 0}
.mcell{background:#fff;border-radius:8px;min-height:64px;padding:3px;font-size:11px;overflow:hidden;cursor:pointer}
@media(min-width:900px){.mcell{min-height:112px}}
.mcell.out{opacity:.45}.mcell.today{outline:2px solid var(--lime)}.mcell.sel{outline:2px solid #2563eb}
.mcell .n{font-weight:700;font-size:12px}
.mjob{background:var(--c);color:#fff;border-radius:4px;padding:1px 4px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}
.mjob.js-Cancelled{text-decoration:line-through;opacity:.6}
@media(max-width:600px){.mjob{font-size:0;height:6px;padding:0}}
.unsched{background:#fff;border-radius:12px;padding:8px;border:2px dashed #cbd5e1}
.legend{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0;font-size:12px}
/* sheet (modal) */
#sheet .back{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:50;display:flex;align-items:flex-end;justify-content:center}
@media(min-width:700px){#sheet .back{align-items:center;padding:20px}}
#sheet .panel{background:#fff;width:640px;max-width:100%;max-height:92vh;overflow:auto;border-radius:18px 18px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom))}
@media(min-width:700px){#sheet .panel{border-radius:18px}}
.form label{display:block;font-size:13px;font-weight:700;margin:12px 0 4px;color:#374151}
.form input,.form select,.form textarea{width:100%}
.two{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.toggles{display:flex;flex-wrap:wrap;gap:6px}
.tg{background:#f1f5f2;color:#374151;border:2px solid #d6ddd7;min-height:40px;font-size:14px;padding:6px 10px}
.tg.on{background:var(--g2);color:#fff;border-color:var(--g2)}.tg.oos{background:#fee2e2;color:#991b1b;border-color:#fecaca}
.msgs .e{color:#b91c1c;font-weight:700;font-size:13.5px}.msgs .w{color:#92400e;font-size:13.5px}
.owneronly{background:#fffbeb;border:1px dashed #f59e0b;border-radius:10px;padding:2px 10px 10px;margin-top:10px}
.stickybar{position:sticky;bottom:-16px;background:#fff;padding:10px 0;display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:12px}
.stickybar button{flex:1}
/* lists / tables */
.grid2{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}
.issue{border-left:5px solid #d1d5db;cursor:pointer}.issue.crit{border-left-color:#db2777}
.thumbs{display:flex;gap:6px;flex-wrap:wrap}.thumbs img{width:84px;height:84px;object-fit:cover;border-radius:8px}
table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;font-size:14px}
th,td{padding:8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{background:#eef3ef;font-size:12px}
tr.crit td{background:#fff5f8}
@media(max-width:760px){table.resp,table.resp tbody{display:block}table.resp thead{display:none}table.resp tr{display:block;border-bottom:8px solid var(--bg);padding:6px 0}table.resp td{display:block;border:0;padding:3px 12px}table.resp td::before{content:attr(data-l);display:block;font-size:11px;text-transform:uppercase;font-weight:700;color:var(--mut)}}
/* checklist */
.prog{height:10px;background:#e5e7eb;border-radius:999px;overflow:hidden}.prog>div{height:100%;background:var(--g2)}
.ran{display:flex;flex-wrap:wrap;gap:6px}
.grp h3{display:flex;justify-content:space-between;align-items:center;margin:0;gap:8px}
.grp.optional{opacity:.75}
.item{border-top:1px solid var(--line);padding:12px 0}
.item.opt .lbl{color:var(--mut)}
.item .lbl{font-weight:600;margin-bottom:8px}
.tog{display:flex;gap:8px}
.tog button{flex:1;background:#f1f5f2;color:#374151;border:2px solid #d6ddd7;min-height:50px;font-size:16px}
.tog button.ok.on{background:#16a34a;color:#fff;border-color:#16a34a}
.tog button.attn.on{background:#d97706;color:#fff;border-color:#d97706}
.item input.n{width:100%;margin-top:8px}
.item.isattn{background:#fffbeb;margin:0 -14px;padding:12px 14px}
.sawname{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:6px}.sawname input{flex:1 1 100%;min-height:40px;padding:6px 10px;font-size:15px}
.sticky{position:sticky;bottom:calc(70px + env(safe-area-inset-bottom));background:var(--bg);padding:10px 0;display:flex;gap:8px;z-index:5}
@media(min-width:900px){.sticky{bottom:0}}
.sticky button{flex:1;min-height:52px}
#toast{position:fixed;left:50%;bottom:calc(90px + env(safe-area-inset-bottom));transform:translateX(-50%);background:#1f2937;color:#fff;padding:12px 16px;border-radius:10px;display:none;z-index:200;max-width:92%;font-size:14.5px}

main:has(.calwrap){max-width:1600px}

.b-quote{background:#fef3c7;color:#92400e}.b-refused{background:#fee2e2;color:#991b1b}
.quotes{display:grid;grid-template-columns:1fr;gap:10px;margin:10px 0}
@media(min-width:700px){.quotes{grid-template-columns:1fr 1fr}}
.quote{border:2px solid #d6ddd7;border-radius:12px;padding:12px;background:#fbfdfb}
.quote .total{font-size:22px;font-weight:800;color:var(--g)}
.parts{margin:4px 0 8px;padding-left:18px}.parts li{margin:2px 0}
.partrow{display:grid;grid-template-columns:minmax(0,1fr) 52px 72px 36px;gap:6px;margin-bottom:6px;align-items:center}
.partrow input{min-height:42px;padding:8px;width:100%}
.partrow [data-delpart]{min-height:42px;padding:0;width:36px}
.todo-add{display:flex;gap:8px;align-items:center}.todo-add input{flex:1}
.todo-list{overflow:hidden}
.todo-item{display:flex;align-items:center;gap:10px;padding:12px 12px;border-bottom:1px solid var(--line);min-height:52px;background:#fff}
.todo-item:last-child{border-bottom:0}
.todo-item .txt{flex:1;font-size:16px}
.todo-item.done{background:#f4f5f3;opacity:.7}
.todo-item.done .txt{text-decoration:line-through;color:var(--mut)}
.todo-check{width:32px;height:32px;min-height:32px;padding:0;border-radius:8px;background:#fff;color:var(--g);border:2px solid var(--g2);flex-shrink:0;font-size:18px}
.todo-item.done .todo-check{background:var(--g2);color:#fff}
.todo-del{flex-shrink:0}
#qbar{display:grid;grid-template-columns:1fr 1fr;gap:8px}
#qbar button{width:100%;flex:none}

.shop-check{margin-top:10px}
.shop-check a{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 0;border-top:1px solid var(--line);color:inherit;text-decoration:none;min-height:44px}

#modebar{display:none !important;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border-bottom:1px solid var(--line);padding:8px 12px;position:sticky;top:50px;z-index:18}
#modebar .mode-seg{flex:1 1 240px;max-width:440px}
#modebar .mode-seg button{flex:1;min-height:46px;font-size:16px;font-weight:700}
@media(max-width:899px){#modebar{top:48px}}

.b-low{background:#fee2e2;color:#991b1b}
.inv-item.is-low{border-color:#fca5a5}
.inv-count{align-items:center;margin-top:8px;gap:8px}
.inv-qty{font-size:28px;font-weight:800;letter-spacing:-.02em;line-height:1}
.inv-pm{display:flex;gap:8px}
.inv-pm button{min-width:52px;min-height:52px;font-size:26px;padding:0;line-height:1}
.fuel-picks{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:8px}
.fuel-picks button{min-height:52px;padding:6px 2px;font-size:13px;font-weight:700;background:#fff;color:var(--ink);border:2px solid var(--line)}
.fuel-picks button.on{background:var(--g2);color:#fff;border-color:var(--g2)}
.fuel-picks button.low.on{background:#b91c1c;border-color:#b91c1c;color:#fff}
#invadd{min-height:48px;font-size:16px;font-weight:800}

.job-photos{margin:14px 0 8px}
.photo-sec{margin:10px 0 14px}
.photo-sec h3{margin:0 0 8px}
.photo-actions{display:flex;gap:8px;margin-top:10px}
.photo-actions label.btn,.photo-actions label.sec{flex:1;min-height:52px;display:flex;align-items:center;justify-content:center;font-weight:700;margin:0}
.thumbs{display:flex;gap:8px;flex-wrap:wrap}
.pthumb{margin:0;width:110px;cursor:pointer}
.pthumb img{width:110px;height:110px;object-fit:cover;border-radius:10px;border:1px solid var(--line);display:block;background:#eee}
.pthumb figcaption{margin-top:4px;line-height:1.2}
#lightbox{position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:70;display:flex;align-items:center;justify-content:center;padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom))}
#lightbox .lb-inner{max-width:640px;width:100%;color:#fff;text-align:center}
#lightbox img{max-width:100%;max-height:68vh;object-fit:contain;border-radius:10px;background:#000}
#lightbox .lb-cap{font-size:16px;margin:10px 0 4px}
#lightbox .lb-x{position:absolute;top:8px;right:8px;background:#fff}
#lightbox .danger{margin-top:12px}
#phcapbox .ph-cap-back{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:75;display:flex;align-items:flex-end;justify-content:center}
#phcapbox .ph-cap-panel{background:#fff;width:640px;max-width:100%;border-radius:18px 18px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom));max-height:90vh;overflow:auto}
.ph-preview{width:100%;max-height:220px;object-fit:contain;border-radius:10px;background:#111;margin:8px 0}
@media(min-width:700px){#phcapbox .ph-cap-back{align-items:center;padding:20px}#phcapbox .ph-cap-panel{border-radius:18px}}

.badge.b-qbo{background:#1e3a5f;color:#fff}
.qbo-card{border:2px solid #1e3a5f;margin-bottom:14px}
.qbo-card h2{color:#1e3a5f}
.qbo-job{border-top:1px solid var(--line);padding:12px 0}
.qbo-job button,.qbo-card #simqbo,.draftnote #bookit{min-height:52px;font-size:16px;font-weight:800}
.tg.oos{opacity:1;text-decoration:none;border-color:#b91c1c;color:#7f1d1d}
.tg.oos.on{background:#fee2e2;border-color:#991b1b;color:#7f1d1d}
.badge.jt-Lift{background:#c2410c;color:#fff}
.badge.jt-Climb{background:#0f766e;color:#fff}
.badge.jt-Other{background:#57534e;color:#fff}
.badge.you-role{background:#0f766e;color:#fff}
.oos-flag{background:#7f1d1d;color:#fecaca;border-radius:8px;padding:8px 10px;font-weight:700;margin:6px 0;font-size:13px;line-height:1.3}
.crew-picks{margin:4px 0 10px}
.crew-pick{border-bottom:1px solid var(--line);padding:8px 0}
.crew-pick .role-picks{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 2px}
.tg.sm{min-height:40px;font-size:13px;padding:6px 10px}

/* Daily trip inspection, roadside, unit documents */
.rig-line{margin-top:6px;font-weight:700;font-size:13px}
.already-box{background:#ecfdf5;border:2px solid #047857;border-radius:10px;padding:10px 12px;margin-top:8px}
.already-box.warn{background:#fff7ed;border-color:#c2410c}
.badge.b-soon{background:#fef3c7;color:#92400e}
.doc-slot{display:flex;gap:10px;align-items:flex-start;border-top:1px solid var(--line);padding:8px 0}
.doc-thumb{display:block;flex:0 0 72px}
.doc-thumb img{width:72px;height:72px;object-fit:cover;border-radius:8px;border:1px solid var(--line);background:#eee}
.sig-wrap{border:2px dashed var(--line);border-radius:10px;background:#fff;overflow:hidden;touch-action:none}
.sig-canvas{display:block;width:100%;height:140px;touch-action:none}
.insp-part{border-top:1px solid var(--line);padding:8px 0}
.insp-part summary{cursor:pointer;display:flex;justify-content:space-between;gap:8px;font-size:15px}
.insp-res{font-size:12px;font-weight:800;color:#444}
.def-opt{display:flex;gap:8px;align-items:flex-start;margin:4px 0}
.roadside-page h1{font-size:26px;margin:8px 0}
.roadside-card .rd-kvs>div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:8px 0;font-size:16px}
.roadside-card .rd-kvs span{color:var(--muted)}
.sig-fig{margin:10px 0}
.sig-fig img{max-width:100%;height:80px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:8px}
.doc-links{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.doc-chip{display:inline-block;background:#eee;border-radius:8px;padding:8px 10px;font-weight:700;color:inherit;text-decoration:none}
.def-list{padding-left:1.2em}
.insp-row{padding:4px 0;border-top:1px solid var(--line)}
@media print{
  .sample-bar,header,nav,#modebar,#toast,#sheet,.print-hide{display:none !important}
  body.roadside main{margin:0;padding:0}
  .roadside-page{font-size:14px}
}

.insp-skipped{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}

.rig-summary .rig-unit{margin-top:10px}
.shop-line{margin:6px 0;font-weight:700;font-size:13px}
.shop-line.good{color:#047857}
.shop-line.need{color:#b91c1c}
.shop-checks{margin-top:8px}
.shop-item{border-top:1px solid var(--line);padding:8px 0}
.shop-item.need{background:#fef2f2;margin:0 -8px;padding:8px}
.shop-row{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid var(--line);font-size:14px}
.shop-need, .shop-need.fix, .shop-need-fix{color:#b91c1c}
.shop-good{color:#047857}
.shop-ok{color:#92400e}
.hook-edit{margin-top:12px}
.hook-edit summary{cursor:pointer;padding:4px 0}
.ex-cols{display:grid;gap:16px}
.ex-group{margin:0 0 10px}
.ex-group h4{margin:8px 0 4px}
.ex-group ul{margin:0;padding-left:1.2em}
@media(min-width:700px){.ex-cols{grid-template-columns:1fr 1fr}}

/* Paper checklist: OK / Minor / Defect boxes */
.paper-legend{background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:12px 0}
.paper-legend p{margin:0 0 8px}
.paper-keys{display:flex;flex-wrap:wrap;gap:8px 12px;font-size:13px;font-weight:700;color:#1b261d}
.paper-keys .dn{color:#b91c1c}
.paper-sec{margin:12px 0 16px}
.paper-h{margin:0 0 6px;font-size:15px}
.paper-row{border-top:1px solid var(--line);padding:8px 0}
.paper-row.is-defect{background:#fef2f2;margin:0 -8px;padding:8px}
.paper-row.is-minor{background:#fff7ed;margin:0 -8px;padding:8px}
.paper-main{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px 8px}
.paper-num{font-weight:800;min-width:1.6em}
.paper-label{flex:1;min-width:120px;font-size:15px}
.ref-i{width:28px;height:28px;min-width:28px;min-height:28px;border-radius:50%;border:1.5px solid #334155;background:#fff;color:#1b261d;font:700 14px/1 sans-serif;padding:0;flex:none}
.paper-boxes{display:flex;gap:8px;margin-left:auto}
.paper-box{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:52px;min-height:56px;padding:4px 6px;background:#fff;color:#1b261d;border:1.5px solid #94a3b8;border-radius:8px}
.paper-box .sq{width:22px;height:22px;border:2px solid #334155;border-radius:3px;background:#fff;display:block;flex:none}
.paper-box .bl{font-size:11px;font-weight:800;color:#1b261d;line-height:1.1}
.paper-box.on{border-color:#0f766e;background:#ecfdf5}
.paper-box.on .sq{background:#0f766e;border-color:#0f766e;box-shadow:inset 0 0 0 2px #fff}
.paper-box.defect .bl{color:#b91c1c}
.paper-box.defect.on{border-color:#b91c1c;background:#fef2f2}
.paper-box.defect.on .sq{background:#b91c1c;border-color:#b91c1c;box-shadow:inset 0 0 0 2px #fff}
.do-not-drive{color:#b91c1c;font-weight:800;font-size:13px;margin-top:4px}
.paper-note{margin:8px 0 0 2.2em}
.paper-ref{margin:8px 0 0 2.2em;padding:8px 10px;background:#f8fafc;border:1px solid var(--line);border-radius:8px;font-size:13px;color:#1b261d}
.inspect-form{padding-bottom:8px}
.uncert{display:inline-block;margin-left:4px;font-size:11px;font-weight:700;color:#7a4a00;border:1px solid #c9a227;padding:0 5px;border-radius:4px}
@media(max-width:419px){
  .paper-boxes{width:100%;justify-content:flex-start;margin-left:1.6em}
  .paper-box{flex:1;max-width:80px}
}

/* Inspection findings work list */
.tab-badge{display:inline-block;min-width:1.3em;padding:1px 6px;margin-left:4px;border-radius:999px;background:#b91c1c;color:#fff;font-size:10px;font-weight:800;line-height:1.5;vertical-align:middle}
nav a .tab-badge{margin-left:0;margin-top:2px}
.finding{border-left:5px solid #d97706}
.finding-defect,.card.finding-defect{border-left:5px solid #b91c1c;background:#fef2f2}
.finding-detail{background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:8px 0}
.finding-detail.finding-defect{background:#fef2f2;border-color:#fecaca}
.findings-work h3{display:flex;align-items:center;gap:8px}

/* My Jobs calendar (phone-first) */
.mj-todo summary{cursor:pointer;font-size:16px;padding:4px 0;list-style:none}
.todo-stack .todo-row{display:flex;gap:10px;align-items:flex-start;padding:12px 0;border-top:1px solid var(--line);text-decoration:none;color:inherit;font-size:16px}
.todo-stack .todo-row.is-def{color:#8b1e1e}
.todo-stack .quote-wait{font-weight:700}
.mj-month{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.mj-mcell{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:52px;padding:6px 0;border-radius:10px;background:#f4f6f4;text-decoration:none;color:inherit;font-weight:700}
.mj-mcell.out{opacity:.35}
.mj-mcell.today{outline:2px solid #1b5e20;background:#e8f5e9}
.mj-dot{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;margin-top:2px;border-radius:99px;background:#1b5e20;color:#fff;font-size:11px}
.mj-week{display:flex;flex-direction:column;gap:8px}
.mj-day{display:block;padding:14px 16px;border-radius:12px;background:#f4f6f4;text-decoration:none;color:inherit}
.mj-day.today{outline:2px solid #1b5e20;background:#e8f5e9}
.mj-dayh{font-weight:800;font-size:16px}
.mj-count{display:inline-flex;min-width:24px;height:24px;align-items:center;justify-content:center;border-radius:99px;background:#1b5e20;color:#fff;font-weight:800;margin-right:6px}
.mj-stop{display:flex;gap:12px;align-items:flex-start;text-decoration:none;color:inherit;padding:14px}
.mj-num{flex:none;width:36px;height:36px;border-radius:99px;background:#1b5e20;color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:18px}
.eq-today{list-style:none;padding:0;margin:0}
.eq-today li{padding:8px 0;border-top:1px solid var(--line);font-size:16px}
.eq-today li.oos{color:#8b1e1e;font-weight:700}
.jt-Shop{background:#0f766e;color:#fff}
.js-Done{--c:#ca8a04}
.insp-flagged .insp-row.def{color:#8b1e1e;font-weight:700}
.insp-flagged .insp-row.minor{color:#92400e}
.att-list{list-style:none;padding:0;margin:6px 0 0}
.att-list li{padding:6px 0}
.hist-row{padding:8px 0;border-top:1px solid var(--line);font-size:14px}

h1{font-size:28px;margin:4px 0 6px;letter-spacing:-.02em}
.lede{color:var(--mut);font-size:16px;margin:0 0 12px}
.page-head{display:flex;align-items:center;gap:10px;margin:0 0 12px;min-height:48px}
.page-head h1{margin:0;font-size:22px;flex:1}
.back-btn{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;background:#e3ebe4;color:var(--g);text-decoration:none;font-size:28px;font-weight:700;flex-shrink:0}
.needs-h{margin:8px 0 10px;font-size:20px}
.need-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 16px}
.need-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;aspect-ratio:1/1;border-radius:18px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.08);text-decoration:none;color:inherit;padding:12px;min-height:0}
.need-tile .need-icon{font-size:28px;line-height:1;margin-bottom:2px}
.need-tile .need-count{font-size:40px;font-weight:800;letter-spacing:-.04em;line-height:1;margin:4px 0 6px}
.need-tile .need-label{font-size:16px;font-weight:700}
.need-tile.is-on{background:#eef6ee}
.need-tile.is-urgent{background:#fef2f2;color:#991b1b}
.need-tile.is-urgent .need-count{color:#b91c1c}
.need-tile.is-zero{background:#f3f4f3;color:#9ca3af;box-shadow:none}
.badge.b-new{background:#1e3a5f;color:#fff;font-size:11px;padding:2px 7px}
.sub{font-size:15px;color:var(--mut);margin-top:2px}
.job.slim{display:flex;gap:8px;align-items:flex-start;padding:10px}
.job.slim .t{font-size:15px;font-weight:700}
.menu-row,.unit-row{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;padding:16px 14px;min-height:60px;margin-bottom:8px}
.unit-row b{flex:1;font-size:18px}
.status-dot{width:12px;height:12px;border-radius:99px;background:#9ca3af;flex-shrink:0}
.status-dot.ok{background:#16a34a}
.status-dot.ni{background:#d97706}
.status-dot.oos{background:#b91c1c}
.status-lbl{font-size:15px;font-weight:700;color:var(--mut);min-width:3em;text-align:right}
.unit-row.st-oos,.card.is-def{border-left:5px solid #b91c1c}
.unit-row.st-ni{border-left:5px solid #d97706}
.job-top .job-addr{font-size:22px;font-weight:800;line-height:1.25;margin-bottom:6px}
.job-top .job-time{font-size:18px;font-weight:600;margin-bottom:10px}
.job-top .job-crew,.job-top .job-eq{font-size:17px;margin:6px 0}
.more-details{background:#fff;border-radius:14px;padding:4px 14px 10px;margin:10px 0;box-shadow:0 1px 3px rgba(0,0,0,.07)}
.more-details>summary{cursor:pointer;font-weight:700;font-size:17px;padding:14px 0;list-style:none}
.more-details>summary::-webkit-details-marker{display:none}
.crew-gear{padding:12px 0;border-top:1px solid var(--line)}
.crew-gear b{display:block;margin-bottom:8px;font-size:17px}
.yours{background:#eef6ee;border-radius:12px;padding:12px 14px;margin:10px 0}
.yours b{display:block;margin-bottom:4px}

.insp-hist{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;padding:12px 14px;min-height:60px;margin-bottom:8px}
.insp-hist-main{flex:1;min-width:0;text-decoration:none;color:inherit;display:block}
.insp-hist-main b{display:block;font-size:16px}
.insp-res{font-weight:800;font-size:15px;min-width:4.2em;text-align:right}
.insp-res.ok,.insp-hist.ok .insp-res{color:#15803d}
.insp-res.minor,.insp-hist.minor .insp-res{color:#b45309}
.insp-res.def,.insp-hist.def .insp-res{color:#b91c1c}
.insp-hist.ok{border-left:5px solid #16a34a}
.insp-hist.minor{border-left:5px solid #d97706}
.insp-hist.def{border-left:5px solid #b91c1c}
.pdf-ico{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:10px;background:#eef2ff;text-decoration:none;font-size:22px;flex-shrink:0}
.filter-row{gap:8px;align-items:center;margin:0 0 8px}
.insp-folder{margin:16px 0 20px}
.insp-folder h2{font-size:18px;margin:0 0 8px}

.need-tile.is-amber{background:#fff7ed;color:#9a3412}
.need-tile.is-amber .need-count{color:#c2410c}
.need-tile.is-ready{background:#ecfdf3;color:#166534}
.need-tile.is-ready .need-count{color:#15803d}
.need-tile .need-label{text-align:center;line-height:1.2;max-width:11em}
.crew-job{padding:18px 16px 16px;margin:0 0 18px}
.crew-job-addr{font-size:24px;font-weight:800;line-height:1.25;margin-bottom:4px}
.crew-truck{font-size:18px;margin:14px 0 16px;line-height:1.3}
.crew-truck b{font-size:22px}
.step-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:72px;font-size:22px;font-weight:800;border-radius:16px;margin:0 0 12px;text-decoration:none;border:0;color:inherit;box-sizing:border-box}
.step-btn .step-ico{font-size:28px;line-height:1}
.step-btn.is-next{background:var(--g,#1b5e2f);color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.16)}
.step-btn.is-done{background:#e7eee8;color:#66756a}
.step-btn.is-wait{background:#e5e7eb;color:#9ca3af}
.report-sm{display:block;text-align:center;margin:8px 0 14px;font-size:16px;font-weight:700;color:var(--g,#1b5e2f);text-decoration:none}
button.big{min-height:56px;font-size:20px;font-weight:800}

.workorder{margin:10px 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card, #fff)}
.workorder h3{margin:0 0 8px;font-size:16px}
.workorder-text{white-space:pre-wrap;font-size:15px;line-height:1.45}
/* v9.0 */
.b-emerg{background:#dc2626;color:#fff;font-weight:800}
.mjob.emerg{border-left:4px solid #dc2626}
.emerg-tg.on{background:#dc2626;color:#fff;border-color:#dc2626}
.day-load{font-size:12px;color:#555;margin:0 0 4px}
.day-load.is-over,.warn-long{background:#ffedd5;color:#9a3412;border-radius:8px;padding:4px 8px;font-weight:700}
.fleet-fix button{min-height:40px}
