:root{--slot:#ffd21f;--slot-ink:#5a4700;--out:#8aa4c8}.slot-panel{background:#fffbea;border:1px dashed #c9a600;margin:0 0 .85rem;padding:.75rem .85rem}.slot-panel-head{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.slot-panel-head h3{margin:0}.slot-badge{color:var(--slot-ink);background:var(--slot);border-radius:var(--radius-pill);padding:.15rem .45rem;font-size:.72rem;font-weight:700}.slot-panel>.hint{margin:.3rem 0 .6rem}.slot-list{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.slot-open{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:#fff;border:1px solid #ecd98a;gap:.2rem;min-height:44px;padding:.6rem .7rem;display:grid}.slot-open:hover,.slot-open:focus-visible{border-color:var(--slot-ink);box-shadow:0 0 0 2px var(--slot);outline:none}.slot-title{overflow-wrap:anywhere;font-size:.85rem}.slot-why{font-size:.78rem}.slot-approvals{flex-wrap:wrap;gap:.3rem .8rem;font-size:.75rem;font-weight:600;display:flex}.slot-approvals .is-yes{color:var(--ok)}.slot-approvals .is-wait{color:var(--warn)}.slot-when{margin:0 0 .4rem;font-weight:700}.slot-jobs{margin:0 0 .5rem;padding-left:1.1rem;font-size:.88rem}.slot-detrack{margin:.4rem 0 .6rem;font-size:.85rem}.slot-detrack p{margin:.15rem 0 0}.plan-slot{text-align:left;width:100%;color:var(--ink);font:inherit;cursor:pointer;border-radius:var(--radius-s);background:repeating-linear-gradient(135deg,#fff8d6,#fff8d6 6px,#fffbea 6px 12px);border:1px dashed #c9a600;padding:.4rem .55rem;font-size:.78rem;display:block}.plan-slot strong{font-weight:700}.plan-tabs.has-4{grid-template-columns:repeat(4,minmax(0,1fr))}.layout.plan-wide>.panel,.avail,.avail-grid{min-width:0;max-width:100%}.avail-bar-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.avail-sync{margin:0}.avail-legend{flex-wrap:wrap;gap:.35rem .9rem;margin:.3rem 0 .6rem;font-size:.75rem;display:flex}.avail-legend>span{align-items:center;gap:.3rem;display:inline-flex}.avail-key{border:1px solid #b9b9b4;width:1.4rem;height:.7rem;display:inline-block}.avail-key.is-out,.avail-seg.is-out{background:repeating-linear-gradient(90deg, var(--out), var(--out) 3px, #c9d6e8 3px, #c9d6e8 5px);border-color:#6f8bb3}.avail-key.is-booked{background:var(--ink);border-color:var(--ink)}.avail-key.is-slot,.avail-seg.is-slot{background:repeating-linear-gradient(135deg, var(--slot), var(--slot) 4px, #fff3b0 4px, #fff3b0 8px);border:1px dashed #8a7100}.avail-key.is-free,.avail-seg.is-free{background:#e8f3ec;border-color:#b7d8c3}.avail-grid{border:1px solid var(--line);gap:0;display:grid;overflow-x:auto}.avail-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(7.5rem,9rem) repeat(7,minmax(7.5rem,1fr));min-width:64rem;display:grid}.avail-row:last-child{border-bottom:0}.avail-head{background:#f3f3ef;font-size:.75rem;font-weight:700}.avail-head>span{padding:.4rem .45rem}.avail-head>span.is-today{color:var(--signal)}.avail-van{z-index:1;color:inherit;border-right:1px solid var(--line);background:#fff;gap:.1rem;padding:.5rem;font-size:.82rem;text-decoration:none;display:grid;position:sticky;left:0}.avail-head .avail-van{background:#f3f3ef}.avail-cell{border-left:1px solid #f0f0ec;align-content:start;gap:.35rem;padding:.45rem;display:grid}.avail-cell.is-closed{background:#f7f7f5}.avail-cell.is-today{background:#fffdf5}.avail-track{background:#f3f3ef;border:1px solid #e4e4e0;height:.9rem;position:relative}.avail-seg{border:1px solid #0000;padding:0;position:absolute;top:0;bottom:0}button.avail-seg{cursor:pointer}.avail-notes{gap:.15rem;font-size:.72rem;line-height:1.3;display:grid}.avail-free{color:var(--ok);font-weight:600}.avail-booked{overflow-wrap:anywhere;font-weight:600}.avail-slot{text-align:left;font:inherit;cursor:pointer;border-radius:var(--radius-s);background:#fff8d6;border:1px dashed #8a7100;min-height:32px;padding:.25rem .35rem;font-size:.72rem}.avail-slot:focus-visible,button.avail-seg:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.upcoming-list{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.upcoming-list li{border-bottom:1px solid #f0f0ec;grid-template-columns:7rem 1fr;gap:.5rem;padding:.35rem 0;font-size:.85rem;display:grid}.upcoming-list li.is-today .upcoming-day{color:var(--signal)}.upcoming-day{font-weight:700}.upcoming-what{gap:.15rem;display:grid}.upcoming-run{color:#36557f}.upcoming-visit{font-weight:600}.upcoming-slot{color:var(--slot-ink);font-weight:600}.upcoming-clash{color:var(--signal);font-weight:700}.detrack-hours{border:1px solid var(--line);gap:.5rem;margin:0;padding:.55rem .7rem;display:grid}.detrack-hours legend{padding:0 .25rem;font-size:.75rem;font-weight:600}.detrack-days{flex-wrap:wrap;gap:.35rem .75rem;display:flex}.detrack-day{text-transform:none;letter-spacing:0;color:var(--ink);flex-direction:row;align-items:center;gap:.3rem;font-size:.85rem;display:inline-flex}.detrack-day input{width:auto;margin:0}@media (width<=700px){.avail-grid{border:0;gap:.75rem;overflow:visible}.avail-row{border:1px solid var(--line);grid-template-columns:1fr;min-width:0}.avail-head{display:none}.avail-van{border-right:0;border-bottom:1px solid var(--line);background:#f8f8f5;position:static}.avail-cell{border-top:1px solid #f0f0ec;border-left:0;grid-template-columns:4.5rem 1fr}.avail-cell:before{content:attr(data-day);font-size:.78rem;font-weight:700}.avail-track,.avail-notes{grid-column:2}.avail-slot,.slot-open{min-height:44px}.upcoming-list li{grid-template-columns:1fr;gap:.1rem}}@media (prefers-reduced-motion:reduce){.slot-open,.avail-slot{transition:none}}:root{--ink:#111;--muted:#5c5f63;--line:#e4e4e0;--paper:#f6f6f3;--panel:#fff;--signal:#c40800;--ok:#1f7a3f;--warn:#9a6b00;--info:#1a4f8c;--personal:#3f4a5a;--hold:#6b6e73;--font:"Manrope", "Helvetica Neue", sans-serif;--radius-s:8px;--radius-m:12px;--radius-l:16px;--radius-pill:999px;--shadow-card:0 1px 2px #1111110a, 0 2px 8px #1111110a;--shadow-lift:0 2px 4px #1111110f, 0 8px 20px #11111112}*{box-sizing:border-box}body{font-family:var(--font);background:var(--paper);color:var(--ink);margin:0;line-height:1.45}header.app-bar{color:var(--ink);background:#dcdcdc;border-bottom:1px solid #c8c8c8;flex-direction:column;align-items:stretch;gap:.55rem;padding:.7rem 1.25rem .75rem;display:flex}header h1{letter-spacing:-.03em;margin:0;font-size:1.35rem;font-weight:700;line-height:1.55rem}.brand{align-items:center;gap:.45rem;display:flex}.brand-logo-wrap{flex-shrink:0;align-items:center;height:1.55rem;display:flex}.brand-logo{width:auto;height:1.55rem;display:block}.bar-row{align-items:center;gap:.4rem;width:100%;min-width:0;display:flex}.bar-actions{flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:.4rem;margin-left:auto;display:flex}.account{align-items:stretch;gap:.35rem;display:flex}.pill{color:var(--muted);border:1px solid #cfcfcb;padding:.2rem .45rem;font-size:.75rem}.user-box,.sign-out{color:var(--ink);white-space:nowrap;background:#fff;border:1px solid #bdbdbd;align-items:center;padding:.4rem .65rem;font-size:.78rem;font-weight:600;display:inline-flex}.sign-out{cursor:pointer}.nav{--fade-l:0px;--fade-r:0px;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;scrollbar-width:none;min-width:0;-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--fade-l), #000 calc(100% - var(--fade-r)), transparent 100%);-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--fade-l), #000 calc(100% - var(--fade-r)), transparent 100%);mask-image:linear-gradient(to right, transparent 0, #000 var(--fade-l), #000 calc(100% - var(--fade-r)), transparent 100%);flex-wrap:nowrap;gap:.25rem;margin:0;scroll-padding-inline:1.5rem;display:flex;overflow-x:auto}.nav::-webkit-scrollbar{display:none}.nav.fade-left{--fade-l:1.75rem}.nav.fade-right{--fade-r:1.75rem}.nav-wrap{flex:0 auto;min-width:0;display:flex;position:relative}.nav-wrap .nav{flex:auto}.nav-arrow{z-index:1;width:1.6rem;height:1.6rem;color:var(--ink);cursor:pointer;background:#fff;border:1px solid #c4c4bf;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:transform .15s,box-shadow .15s;display:flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 1px 4px #1111112e}.nav-arrow:hover{box-shadow:0 2px 8px #11111138}.nav-arrow:active{transform:translateY(-50%)scale(.92)}.nav-arrow.is-left{left:0}.nav-arrow.is-right{animation:1.6s ease-in-out .6s 2 nav-nudge;right:0}@keyframes nav-nudge{0%,to{transform:translateY(-50%)}50%{transform:translateY(-50%)translate(3px)}}@media (prefers-reduced-motion:reduce){.nav-arrow.is-right{animation:none}}@media (width<=700px){.nav-arrow{background:var(--ink);color:#fff;border-color:var(--ink);width:1.75rem;height:1.75rem;box-shadow:0 1px 6px #1111114d}.nav.fade-left{--fade-l:2.25rem}.nav.fade-right{--fade-r:2.25rem}}.nav a{scroll-snap-align:start;color:var(--ink);white-space:nowrap;border:1px solid #0000;flex-shrink:0;padding:.4rem .65rem;font-size:.8rem;font-weight:600;text-decoration:none}.nav a:hover{border-color:#cfcfcb}.nav a.active,.nav a.is-active{background:var(--ink);color:#fff}.layout{gap:1rem;max-width:1400px;margin:0 auto;padding:1rem;display:grid}@media (width>=1100px){.layout.two{grid-template-columns:1.15fr .85fr;align-items:start}.span-2{grid-column:1/-1}}.panel{background:var(--panel);border:1px solid var(--line);padding:1rem}.panel h2{margin:0 0 .85rem;font-size:.95rem;font-weight:700}.filters,.detail-actions{flex-wrap:wrap;gap:.5rem;display:flex}.filters{margin-bottom:.85rem}select,input,textarea,button{font:inherit}select,input:not([type]),input[type=text],input[type=password],input[type=datetime-local],textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;padding:.55rem .65rem}textarea{resize:vertical;min-height:4.5rem}label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);gap:.25rem;font-size:.72rem;font-weight:600;display:grid}.btn{background:var(--ink);color:#fff;cursor:pointer;border:1px solid #0000;padding:.55rem .85rem;font-size:.8rem;font-weight:600}.btn:hover{opacity:.9}.btn--ghost{color:var(--ink);border-color:var(--line);background:#fff}.btn--small{padding:.35rem .55rem;font-size:.72rem}.btn--danger{color:var(--signal);background:#fff;border-color:#f0c4c0}.fleet-list,.stack{gap:.65rem;display:grid}.van,.log-item{border:1px solid var(--line);background:#fff;padding:.85rem}.van{cursor:pointer}.van:hover{border-color:#bbb}.van.is-active{border-color:var(--ink);box-shadow:inset 3px 0 0 var(--signal)}.van-top,.log-top{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.van-reg{letter-spacing:.02em;font-size:1.05rem;font-weight:700}.van-meta,.repair-meta,.empty,.hint{color:var(--muted)}.van-meta,.hint{font-size:.82rem}.repair-meta{margin-top:.2rem;font-size:.72rem}.badge{letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;border:1px solid;padding:.2rem .45rem;font-size:.68rem;font-weight:700;display:inline-block}.badge.to-inspect,.result-ignored,.result-pending{color:var(--hold)}.badge.parts-ordered,.result-unmatched{color:var(--warn)}.badge.repair-in-progress,.result-updated{color:var(--info)}.badge.done,.badge.completed,.result-duplicate{color:var(--ok)}.badge.to-be-inspected{color:var(--hold)}.badge.in-progress{color:var(--info)}.result-undone{color:var(--signal)}.detail-grid{gap:.75rem;display:grid}@media (width>=640px){.detail-grid.two{grid-template-columns:1fr 1fr}.user-row{grid-template-columns:1.2fr .8fr auto auto}}.repair-main{grid-template-columns:1fr auto;align-items:start;gap:.4rem;display:grid}.detail-actions{margin-top:.85rem}.cal-nav{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.cal-nav h3{margin:0;font-size:.95rem;font-weight:700}.cal-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.cal-dow,.cal-day{background:#fff;min-height:4.6rem;padding:.35rem;font-size:.72rem}.cal-dow{text-align:center;min-height:0;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;background:#f0f0ec;padding:.4rem .2rem;font-weight:700}.cal-day.is-muted{color:#aaa;background:#fafaf8}.cal-day.is-today{outline:2px solid var(--ink);outline-offset:-2px}.cal-day-num{margin-bottom:.25rem;font-weight:700}.cal-chip{color:#fff;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;text-align:left;background:#111;border:0;width:100%;margin-top:.15rem;padding:.15rem .3rem;font-size:.62rem;font-weight:600;display:block;overflow:hidden}.cal-chip.parts-ordered{background:#9a6b00}.cal-chip.repair-in-progress{background:#1a4f8c}.cal-chip.to-inspect{background:#6b6e73}.cal-chip.done,.cal-chip.completed{background:#1f7a3f}.cal-chip.to-be-inspected{background:#6b6e73}.cal-chip.in-progress{background:#1a4f8c}.btn.is-selected{background:var(--ink);color:#fff;border-color:var(--ink)}.job-stage{margin:.35rem 0 0;font-size:.78rem;font-weight:700}.job-stage.is-parts_ordered{border:1.5px solid var(--ok);border-radius:var(--radius-pill);color:var(--ok);padding:.12rem .6rem;display:table}.invoice-flag{margin:.35rem 0 0;font-size:.78rem;font-weight:700}.invoice-flag.is-invoiced{color:var(--ok)}.invoice-flag.is-deposit,.invoice-flag.is-awaiting{color:var(--warn)}.invoice-flag.is-open{color:var(--signal)}.invoice-flag.is-waiting{color:var(--muted);font-weight:600}.invoice-flag-wrap .detail-actions{margin-top:.35rem}.van-meta.invoice-gap,.van-meta .invoice-gap{color:var(--signal);font-weight:700}.van-counts{color:var(--muted);grid-template-columns:auto auto;justify-content:start;gap:.05rem .4rem;margin:.3rem 0 0;font-size:.82rem;display:grid}.van-counts dt{margin:0}.van-counts dd{color:var(--ink);font-variant-numeric:tabular-nums;margin:0;font-weight:700}.van-counts dd.invoice-gap,.van-counts dd.count-open{color:var(--signal)}.van-counts dd.count-done{color:var(--ok)}.legend{color:var(--muted);flex-wrap:wrap;gap:.65rem;margin-top:.75rem;font-size:.75rem;display:flex}.legend span:before{content:"";vertical-align:-1px;background:currentColor;width:.65rem;height:.65rem;margin-right:.3rem;display:inline-block}.login-wrap{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.login-card{border:1px solid var(--line);background:#fff;gap:.75rem;width:min(420px,100%);padding:1.25rem;display:grid}.login-card h1{margin:0;font-size:1.2rem}.login-logo{width:220px;max-width:70%;height:auto;margin:0 auto .25rem;display:block}.error{color:var(--signal);margin:0;font-size:.85rem}.qr{background:#fff;width:180px;height:180px}.user-row,.assign-row{align-items:end;gap:.45rem;display:grid}.assign-row{grid-template-columns:1fr auto}.app-shell:not(.can-edit) .editors-only,body:not(.can-edit) .editors-only,.app-shell:not(.is-admin) .admins-only,body:not(.is-admin) .admins-only{display:none!important}input:disabled,select:disabled,textarea:disabled{color:var(--ink);background:#f7f7f5}.counts{flex-wrap:wrap;gap:.5rem;margin-bottom:.85rem;display:flex}.count{border:1px solid var(--line);background:#fff;padding:.55rem .75rem;font-size:.82rem}.count strong{font-size:1.1rem;display:block}.history,.repairs{gap:.55rem;margin-top:.5rem;display:grid}.history-item{border-left:3px solid var(--line);background:#fafaf8;padding:.45rem .65rem}.history-item.is-media{border-left-color:var(--info)}.history-item.is-job{border-left-color:var(--ok)}.history-item.is-ongoing{border-left-color:#1a4f8c}.history-item.is-done{border-left-color:var(--ok)}.photo-button{text-transform:none;letter-spacing:0;color:var(--ink);justify-content:center;justify-self:start;align-items:center;font-size:.8rem;display:inline-flex;position:relative;overflow:hidden}.photo-button input{opacity:0;cursor:pointer;position:absolute;inset:0}.photo-pick{align-items:flex-end;gap:.5rem;display:flex}.layout.narrow{max-width:760px}.filters{grid-template-columns:1fr;align-items:center;display:grid}.status-filter{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;margin:-.35rem 0 .85rem;display:grid}.status-filter .btn{min-width:0;line-height:1.2}.filters select,.filters input{text-overflow:ellipsis;min-width:0}.panel-head{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.panel-head h2{margin-bottom:.85rem}.panel h3{margin:0 0 .5rem;font-size:.85rem;font-weight:700}a.van{color:inherit;text-decoration:none;display:block}a.van:active{background:#f3f3ef}.van-title{letter-spacing:.02em;margin:0;font-size:1.35rem}.back-link{color:var(--ink);padding:.35rem 0;font-size:.9rem;font-weight:600;text-decoration:none}.job-text{overflow-wrap:anywhere;margin:.15rem 0 0;font-weight:600}.history-item.is-pending{border-left-color:var(--warn);background:#fffaf0}.pending{gap:.5rem;margin-top:1rem;display:grid}.pending-tag{color:var(--warn);margin:.4rem 0 0;font-size:.78rem;font-weight:600}.request-form{gap:.5rem;margin-top:.5rem;display:grid}.request-form.add-job{border-top:1px solid var(--line);margin-top:1rem;padding-top:1rem}.detail-actions.tight{margin-top:.45rem}.banner{background:#fff;border:1px solid;padding:.65rem .8rem}.notice{color:var(--ok);margin:0;font-size:.85rem}.facts{grid-template-columns:auto 1fr;gap:.4rem 1rem;margin:0;font-size:.9rem;display:grid}.facts dt{color:var(--muted)}.facts dd{margin:0;font-weight:600}.history-photo{object-fit:cover;max-width:160px;max-height:120px;margin-top:.4rem;display:block}.photo-thumb{cursor:zoom-in;background:0 0;border:0;padding:0;display:block}.photo-viewer{z-index:100;padding:max(1rem, env(safe-area-inset-top)) max(.75rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left));overscroll-behavior:contain;background:#000000d1;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.photo-viewer-box{max-width:min(100%,1100px);max-height:100%;position:relative}.photo-viewer-box img{object-fit:contain;background:#fff;max-width:100%;max-height:calc(100dvh - 2rem);display:block}.photo-viewer-close{color:#fff;cursor:pointer;background:#000000a6;border:0;border-radius:50%;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.6rem;line-height:1;display:flex;position:absolute;top:.4rem;right:.4rem}.job-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;margin-top:.45rem;display:grid}.job-actions .btn{min-width:0;padding:.35rem .25rem;line-height:1.2}.nav-count{background:var(--signal);color:#fff;text-align:center;border-radius:.6rem;min-width:1.2rem;margin-left:.35rem;padding:0 .3rem;font-size:.68rem;display:inline-block}.btn:disabled{opacity:.5;cursor:default}.btn.is-spent,.btn.is-spent:disabled{opacity:1;color:#9a9a95;box-shadow:none;background:#ecece8;border-color:#ecece8}input[type=search]{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;padding:.55rem .65rem}@media (width<=700px){header.app-bar{z-index:10;gap:.45rem;padding:.7rem .75rem .65rem;position:sticky;top:0}header h1{font-size:1.25rem;line-height:1.45rem}.pill{display:none}.bar-row{gap:.3rem}.bar-actions{width:auto}.brand-logo-wrap{height:1.45rem}.brand-logo{width:auto;height:1.45rem}.user-box,.sign-out{min-height:0;padding:.35rem .5rem;font-size:.72rem}.nav a{padding:.35rem .5rem;font-size:.78rem}.layout{gap:.65rem;padding:.65rem}.panel{padding:.85rem}.filters{gap:.35rem}.status-filter{gap:.3rem}.status-filter .btn{padding:.35rem .2rem;font-size:.72rem}.job-actions .btn{padding:.35rem .2rem;font-size:.75rem}.filters select,.filters input{padding:.45rem .4rem;font-size:16px}select,input,textarea,input[type=search]{min-height:2.75rem;font-size:16px}.btn{min-height:2.75rem;padding:.6rem 1rem;font-size:.9rem}header .sign-out.btn{min-height:0;padding:.35rem .5rem;font-size:.72rem}.btn--small{min-height:2.25rem;font-size:.8rem}.request-form .detail-actions .btn,.request-form>.btn{flex:1}.van{padding:.9rem}.repair-main{grid-template-columns:1fr}.cal-dow,.cal-day{min-height:3.2rem;padding:.2rem;font-size:.65rem}.cal-chip{padding:.1rem .15rem;font-size:.55rem}.user-row,.assign-row{grid-template-columns:1fr}}.proposal{margin:.45rem 0;padding-left:1.1rem}.proposal li{margin:.15rem 0}.btn,.sign-out,.user-box,.pill,.nav a,.badge,.nav-count,.photo-button{border-radius:var(--radius-pill)}.btn{transition:background-color .15s,border-color .15s,box-shadow .15s,opacity .15s}.btn--ghost:hover{box-shadow:var(--shadow-card);opacity:1;border-color:#c9c9c4}.nav a{transition:background-color .15s,border-color .15s}select,input:not([type]),input[type=text],input[type=password],input[type=datetime-local],input[type=search],textarea{border-radius:var(--radius-s);transition:border-color .15s,box-shadow .15s}select:focus,input:focus,textarea:focus{border-color:#9a9a95;outline:none;box-shadow:0 0 0 3px #11111114}.panel,.login-card{border-radius:var(--radius-l);box-shadow:var(--shadow-card)}.van,.log-item,.count,.banner{border-radius:var(--radius-m)}.van{box-shadow:var(--shadow-card);transition:box-shadow .15s,border-color .15s,transform .15s}.van:hover{box-shadow:var(--shadow-lift)}.history-item,.history-photo,.photo-thumb{border-radius:var(--radius-s)}.photo-thumb{overflow:hidden}.photo-viewer-box img{border-radius:var(--radius-m)}.cal-grid{border-radius:var(--radius-m);overflow:hidden}.cal-chip{border-radius:6px}.cal-day.is-today{outline-offset:-2px;border-radius:4px}.see-photo{background:var(--ink);color:#fff;border:1px solid var(--ink);letter-spacing:.01em;justify-self:start;margin-top:.5rem;font-weight:700;box-shadow:0 1px 3px #11111140}.see-photo:before{content:"";vertical-align:-.12em;background:currentColor;width:.95em;height:.95em;margin-right:.4rem;display:inline-block;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 3 7.2 5H4a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-3.2L15 3H9Zm3 5a5 5 0 1 1 0 10 5 5 0 0 1 0-10Zm0 2a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 3 7.2 5H4a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-3.2L15 3H9Zm3 5a5 5 0 1 1 0 10 5 5 0 0 1 0-10Zm0 2a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z'/%3E%3C/svg%3E") 50%/contain no-repeat}.see-photo:hover{opacity:.88}.see-photo.is-none{background:var(--signal);border-color:var(--signal);color:#fff}.see-photo.is-one{color:#111;background:#ffc400;border-color:#c99a00}.see-photo.is-both{background:var(--ok);border-color:var(--ok);color:#fff}.see-photo:focus-visible{outline:3px solid var(--signal);outline-offset:2px}.photo-column-actions{flex-wrap:wrap;gap:.35rem;margin-top:.45rem;display:flex}.photo-column-actions .btn{flex:auto;justify-content:center}.photo-button.is-disabled{opacity:.5;pointer-events:none}.photo-window-note{margin:.6rem 0 0}.btn--alert{background:var(--signal);color:#fff;border-color:var(--signal)}.btn--alert:hover{opacity:.9}label.btn--alert{color:#fff}.photo-window{-webkit-overflow-scrolling:touch;background:var(--panel);border-radius:var(--radius-l);width:min(100%,960px);max-height:calc(100dvh - 2rem);box-shadow:var(--shadow-lift);padding:1rem;position:relative;overflow:auto}.photo-window-title{margin:0 2.75rem .75rem 0;font-weight:700}.photo-window .photo-viewer-close{top:.6rem;right:.6rem}.photo-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.photo-column h3{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 .4rem;font-size:.8rem;font-weight:700}.photo-column-frame{aspect-ratio:3/4;border-radius:var(--radius-m);background:#f0f0ec;justify-content:center;align-items:center;display:flex;overflow:hidden}.photo-column-frame img{object-fit:contain;width:100%;height:100%;display:block}.photo-column-frame.is-empty{color:var(--muted);text-align:center;border:1px dashed #cfcfcb;padding:.75rem;font-size:.85rem;font-weight:600}@media (width<=700px){.photo-window{padding:.75rem}.photo-columns{gap:.5rem}}.van-side{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.45rem;display:flex}.completion-ring{flex-direction:column;align-items:center;gap:.1rem;margin:0;display:flex}.completion-ring svg{display:block}.completion-track{fill:none;stroke:#dcefe2;stroke-width:6px}.completion-fill{fill:none;stroke:var(--ok);stroke-width:6px;stroke-linecap:round;transition:stroke-dasharray .4s}.completion-ring text{font-family:var(--font);fill:var(--ink);font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.completion-ring figcaption,.completion-caption{color:var(--muted);letter-spacing:.02em;font-size:.66rem;font-weight:600}.van .van-top{align-items:flex-start}.inspection-line{margin-top:.3rem;font-weight:600}.inspection-line.is-due{color:var(--signal);font-weight:700}.page-stage{overflow-x:clip}.page{animation-duration:.32s;animation-timing-function:cubic-bezier(.32,.72,0,1);animation-fill-mode:backwards}.page.page-fade{animation-name:page-fade-in;animation-duration:.26s}.page.page-forward{animation-name:page-in-from-right}.page.page-back{animation-name:page-in-from-left}@keyframes page-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes page-in-from-right{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:none}}@keyframes page-in-from-left{0%{opacity:0;transform:translate(-28px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.page{animation:none}}.task-add{grid-template-columns:1fr auto;gap:.5rem;margin:.25rem 0 1rem;display:grid}.task-heading{align-items:center;gap:.4rem;margin:1rem 0 .5rem;display:flex}.task-count{border-radius:var(--radius-pill);text-align:center;background:#ecece8;min-width:1.4rem;padding:0 .4rem;font-size:.72rem}.task-list{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.task{border:1px solid var(--line);border-radius:var(--radius-m);background:#fff;align-items:flex-start;gap:.5rem;padding:.65rem .75rem;transition:background-color .2s,opacity .2s;display:flex;position:relative}.task-check{cursor:pointer;text-transform:none;letter-spacing:0;color:var(--ink);flex:1;align-items:flex-start;gap:.65rem;font-size:.95rem;font-weight:500;display:flex}.task-check input{opacity:0;width:1px;height:1px;position:absolute}.task-box{background:#fff;border:2px solid #b9b9b4;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:1.35rem;height:1.35rem;margin-top:.05rem;transition:background-color .18s,border-color .18s,transform .12s;display:flex}.task-check input:checked+.task-box{background:var(--ok);border-color:var(--ok)}.task-check input:checked+.task-box:after{content:"";border:2.5px solid #fff;border-width:0 2.5px 2.5px 0;width:.38rem;height:.7rem;transform:translateY(-1px)rotate(45deg)}.task-check input:focus-visible+.task-box{box-shadow:0 0 0 3px #1f7a3f40}.task-check:active .task-box{transform:scale(.9)}.task-body{gap:.15rem;min-width:0;display:grid}.task-text{overflow-wrap:anywhere;line-height:1.35}.task-meta{color:var(--muted);font-size:.75rem;font-weight:500}.task.is-done{background:#fafaf8}.task.is-done .task-text{color:var(--muted);text-decoration:line-through}.task-remove{width:1.9rem;height:1.9rem;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;flex-shrink:0;font-size:1.25rem;line-height:1}.task-remove:hover{color:var(--signal);background:#f0f0ec}@media (width<=700px){.task-add{grid-template-columns:1fr}.task-add .btn{justify-self:stretch}}.update-bar{border-radius:var(--radius-pill);background:var(--ink);color:#fff;width:calc(100% - 2rem);max-width:760px;font:inherit;cursor:pointer;box-shadow:var(--shadow-lift);border:0;margin:.75rem auto 0;padding:.6rem 1rem;font-size:.85rem;font-weight:700;animation:.26s cubic-bezier(.32,.72,0,1) both page-fade-in;display:block}.plan-tabs{margin:.75rem 0 .85rem}.btn.plan-tab-add{color:#111;background:#ffd21f;border-color:#ffd21f;grid-column:-2}.btn.plan-tab-add.btn--ghost{color:#5c4700;background:#fff6cc;border-color:#f2c200}.btn.plan-tab-add.btn--ghost:hover{background:#ffef9e;border-color:#e0b400}.plan-view-switch{gap:.4rem;margin:-.25rem 0 .75rem;display:flex}.plan-week,.plan-list{gap:.6rem;display:grid}.plan-day{border:1px solid var(--line);border-radius:var(--radius-m);background:#fff;padding:.65rem .75rem}.plan-day.is-today{border-color:var(--ink);box-shadow:inset 3px 0 0 var(--signal)}.plan-day.is-past{background:#fafaf8}.plan-day-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.plan-day-head h3{margin:0;font-size:.88rem;font-weight:700}.plan-day-load{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:700}.plan-day-load.is-over{color:var(--signal)}.plan-day-jobs{gap:.4rem;margin-top:.5rem;display:grid}.plan-free{margin:.35rem 0 0;font-size:.78rem}.plan-job{text-align:left;border:1px solid var(--line);border-left:3px solid var(--info);border-radius:var(--radius-s);cursor:pointer;width:100%;color:var(--ink);background:#fafaf8;gap:.15rem;padding:.45rem .6rem;display:grid}.plan-job:hover{border-color:#bbb;border-left-color:var(--info)}.plan-job-top{justify-content:space-between;gap:.5rem;font-size:.8rem;display:flex}.plan-job-hours{color:var(--muted);white-space:nowrap;font-size:.75rem;font-weight:600}.plan-job-title{font-size:.85rem}.parts-badge{border-radius:var(--radius-pill);border:1px solid;justify-self:start;padding:.1rem .45rem;font-size:.7rem;font-weight:700}.parts-badge.is-to_order{color:var(--signal)}.parts-badge.is-ordered{color:var(--warn)}.parts-badge.is-arrived{color:var(--ok)}.quote-badge{border-radius:var(--radius-pill);color:var(--info);border:1px solid;justify-self:start;padding:.1rem .45rem;font-size:.7rem;font-weight:700}.quote-badge.is-deposit{color:var(--ok)}.plan-line{flex-wrap:wrap;align-items:center;gap:.4rem;margin:.35rem 0 0;font-size:.78rem;font-weight:600;display:flex}.plan-line a{color:var(--info);text-decoration:none}.plan-edit{border:1px solid var(--line);border-radius:var(--radius-pill);color:var(--ink);font:inherit;cursor:pointer;background:#fff;padding:.1rem .5rem;font-size:.7rem;font-weight:700;transition:border-color .15s,box-shadow .15s}.plan-edit:hover{box-shadow:var(--shadow-card);border-color:#c9c9c4}.plan-date-edit input[type=date]{width:auto;padding:.3rem .45rem;font-size:.8rem}.plan-date-edit .error{flex-basis:100%;margin:0}.plan-sheet{width:min(100%,520px)}.plan-sheet-van{margin:-.4rem 0 .75rem;font-size:.85rem;font-weight:600}.plan-sheet-van a{color:var(--info)}.plan-form{gap:.6rem;display:grid}.plan-form input[type=date],.plan-form input[type=number],.hours-taken input{border:1px solid var(--line);width:100%;color:var(--ink);border-radius:var(--radius-s);background:#fff;padding:.55rem .65rem;font-size:16px}.plan-help{flex-wrap:wrap;align-items:center;gap:.4rem;margin:-.35rem 0 0;font-size:.75rem;display:flex}.plan-facts{grid-template-columns:auto 1fr;gap:.35rem .75rem;margin:0;font-size:.88rem;display:grid}.plan-facts dt{color:var(--muted)}.plan-facts dd{margin:0;font-weight:600}.plan-van{color:inherit;text-decoration:none;display:block}.hours-taken{margin-top:.1rem}.van-swatch{vertical-align:-.05em;border-radius:3px;flex-shrink:0;width:.7rem;height:.7rem;margin-right:.35rem;display:inline-block}.plan-job-reg{align-items:center;display:inline-flex}.plan-van{border-left:4px solid var(--line)}.plan-month{border:1px solid var(--line);border-radius:var(--radius-m);background:#fff;overflow:hidden}.plan-month-dow{background:#f0f0ec;grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.plan-month-dow span{text-align:center;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:.35rem 0;font-size:.66rem;font-weight:700}.plan-month-week{border-top:1px solid var(--line);grid-template-columns:repeat(7,minmax(0,1fr));row-gap:3px;min-height:4.2rem;padding-bottom:4px;display:grid;position:relative}.plan-month-day{z-index:0;border:0;border-left:1px solid var(--line);font:inherit;color:var(--ink);cursor:pointer;background:#fff;grid-row:1/-1;justify-content:flex-start;align-items:flex-start;padding:.25rem .35rem;font-size:.72rem;font-weight:700;display:flex}.plan-month-day:first-child{border-left:0}.plan-month-day.is-muted{color:#aaa;background:#fafaf8}.plan-month-day.is-today{box-shadow:inset 0 0 0 2px var(--ink)}.plan-bar{z-index:1;min-width:0;font:inherit;letter-spacing:.02em;text-align:left;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border:0;border-radius:6px;align-self:stretch;align-items:center;margin:0 3px;padding:0 .15rem;font-size:.66rem;font-weight:700;display:flex;overflow:hidden;box-shadow:0 0 0 2px #fff}.plan-bar.cont-left{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:0}.plan-bar.cont-right{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0}.plan-bar-label{text-overflow:ellipsis;border-radius:4px;padding:.05rem .25rem;overflow:hidden}.plan-mode{border:1px solid var(--line);border-radius:var(--radius-pill);background:#f3f3f0;flex-shrink:0;grid-template-columns:1fr 1fr;margin-bottom:.85rem;padding:3px;display:inline-grid;position:relative}.plan-mode:before{content:"";border-radius:var(--radius-pill);background:var(--ink);width:calc(50% - 3px);transition:transform .32s cubic-bezier(.32,.72,0,1);position:absolute;top:3px;bottom:3px;left:3px}.plan-mode.is-personal:before{transform:translate(100%)}.plan-mode button{z-index:1;border-radius:var(--radius-pill);font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:.35rem .85rem;font-size:.8rem;font-weight:700;transition:color .25s;position:relative}.plan-mode button.is-on{color:#fff}.plan-fade{animation:.26s cubic-bezier(.32,.72,0,1) backwards page-fade-in}.plan-tabs .btn,.plan-view-switch .btn{transition:background-color .25s,border-color .25s,color .25s,box-shadow .25s,opacity .15s}@media (prefers-reduced-motion:reduce){.plan-fade{animation:none}.plan-mode:before{transition:none}}.plan-job.is-personal,.plan-job.is-personal:hover{border-left-color:var(--personal)}.plan-job.is-personal.is-done .plan-job-title{color:var(--muted);text-decoration:line-through}.plan-day-load.is-muted{opacity:.5}.plan-bar.is-personal{background:var(--personal);color:#fff}.plan-bar.is-personal.is-done .plan-bar-label{text-decoration:line-through}.plan-strip{width:100%;min-width:0;font:inherit;color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:.45rem;padding:.1rem 0;display:flex}.plan-strip:before{content:"";background:#c9c9c4;border-radius:2px;flex:0 0 1.4rem;height:3px}.plan-strip-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.72rem;font-weight:600;overflow:hidden}.plan-strip.is-done .plan-strip-text{text-decoration:line-through}.plan-month-line{z-index:1;cursor:pointer;background:0 0;border:0;min-width:0;margin:0 3px;padding:0;position:relative}.plan-month-line:before{content:"";background:#b4b4ae;border-radius:2px;height:3px;margin-top:-1.5px;position:absolute;top:50%;left:0;right:0}.plan-month-line.cont-left{margin-left:0}.plan-month-line.cont-right{margin-right:0}.plan-month-line.cont-left:before{border-top-left-radius:0;border-bottom-left-radius:0}.plan-month-line.cont-right:before{border-top-right-radius:0;border-bottom-right-radius:0}.plan-personal-warning{color:var(--signal);margin:0 0 .25rem;font-weight:800}.personal-add{grid-template-columns:1fr auto auto;align-items:end;gap:.5rem;margin:.25rem 0 1rem;display:grid}.personal-dates{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.personal-date{min-width:0}.personal-edit{flex:1;grid-template-columns:1fr auto;gap:.5rem;display:grid}.personal-edit .detail-actions{grid-column:1/-1}.task.is-highlight{border-color:var(--personal);box-shadow:0 0 0 2px var(--personal)}.task-meta.is-late{color:var(--signal)}@media (width<=560px){.personal-add,.personal-edit{grid-template-columns:1fr}}.plan-bar:focus-visible{outline:2px solid var(--ink);outline-offset:1px}@media (width<=700px){.plan-bar{letter-spacing:0;margin:0 2px;padding:0 .1rem;font-size:.6rem}.plan-bar-label{padding:.05rem .15rem}.plan-month-day{padding:.2rem .25rem}}.outlook-status,.connections,.settings-box{border:1px solid var(--line);border-radius:var(--radius-m);background:#fafaf8;margin-bottom:1rem;padding:.75rem .85rem}.outlook-status h3,.connections h3,.settings-box h3{margin:0 0 .35rem;font-size:.85rem}.connections-heading{margin:.5rem 0;font-size:.95rem}.connections-grid{align-items:start;gap:.75rem;margin-bottom:1rem;display:grid}.connections-grid>*{margin-bottom:0}@media (width>=860px){.connections-grid{grid-template-columns:1fr 1fr}}.outlook-status p{margin:.2rem 0}.outlook-status form{margin-top:.75rem}.outlook-status ol{margin:.35rem 0;padding-left:1.2rem;font-size:.88rem}.outlook-ok{color:var(--ok);font-size:.88rem;font-weight:700}.outlook-code-value{letter-spacing:.08em;font-variant-numeric:tabular-nums;font-size:1.1rem}.delivery-emails{gap:.5rem;margin-top:.5rem;display:grid}.delivery{border:1px solid var(--line);border-left:3px solid var(--warn);border-radius:var(--radius-s);background:#fafaf8;gap:.35rem;padding:.5rem .65rem;display:grid}.delivery.is-matched{border-left-color:var(--ok)}.delivery-subject{margin:0;font-size:.85rem;font-weight:600}.delivery .repair-meta{margin:0}.delivery-dismiss{justify-self:start}.delivery-supplier{color:var(--muted);text-transform:capitalize;font-weight:500}.delivery-items{margin:0;padding-left:1.1rem;font-size:.8rem}.delivery-jobs{color:var(--ok);margin:0;padding-left:1.1rem;font-size:.8rem;font-weight:600}.parts-badge.is-stock{color:var(--ok)}.plan-unset{gap:.3rem;display:grid}.plan-unset>.btn{justify-self:start}.delivery-match{gap:.4rem;display:grid}.delivery-actions{flex-wrap:wrap;gap:.4rem;display:flex}.delivery.is-general{border-left-color:var(--info)}.delivery-general{color:var(--info);align-self:center;font-size:.8rem;font-weight:700}.parts-pending{color:var(--warn);justify-self:start;font-size:.72rem;font-weight:700}.photo-column-note{margin:.35rem 0 0;font-size:.75rem}.plan-sheet .personal-add{grid-template-columns:1fr;margin-bottom:0}.job-alert{background:var(--signal);color:#fff;width:calc(100% - 2rem);max-width:760px;box-shadow:var(--shadow-lift);border-radius:1rem;align-items:stretch;margin:.75rem auto 0;animation:.26s cubic-bezier(.32,.72,0,1) both page-fade-in;display:flex;overflow:hidden}.job-alert-open{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;gap:.1rem;padding:.6rem 1rem;display:flex}.job-alert-title{font-size:.85rem;font-weight:700}.job-alert-text{text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.job-alert-close{width:2.75rem;color:inherit;cursor:pointer;background:0 0;border:0;border-left:1px solid #ffffff4d;flex:none;font-size:1.3rem}.plan-mark-off{margin-left:auto}.plan-day.is-unavailable{background:repeating-linear-gradient(135deg,#fff 0 8px,#f4f4f1 8px 16px)}.plan-off{border-radius:var(--radius-s);background:var(--ink);color:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem;margin-top:.45rem;padding:.4rem .6rem;font-size:.78rem;font-weight:700;display:flex}.plan-off.is-pending{color:var(--ink);border:1px dashed var(--ink);background:#fff}.plan-off-actions{gap:.3rem;display:flex}.plan-off:not(.is-pending) .btn--ghost{background:#fff}.plan-month-day.is-unavailable{color:#999;background:repeating-linear-gradient(135deg,#fff 0 6px,#ecece8 6px 12px)}.ptr{top:env(safe-area-inset-top);z-index:200;background:var(--panel);width:40px;height:40px;color:var(--ink);box-shadow:var(--shadow-lift);pointer-events:none;border-radius:50%;place-items:center;transition:transform .25s cubic-bezier(.32,.72,0,1),opacity .2s;display:grid;position:fixed;left:50%}.ptr.is-dragging{transition:none}.ptr svg{transition:transform .15s}.ptr-spinner{border:2.5px solid var(--line);border-top-color:var(--ink);border-radius:50%;width:20px;height:20px;animation:.7s linear infinite ptr-spin}@keyframes ptr-spin{to{transform:rotate(360deg)}}.job-price{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:.5rem;margin:.35rem 0 0;font-size:.82rem;font-weight:700;display:flex}.job-price.is-unpriced{color:var(--muted);font-weight:600}.job-price-form{border:1px solid var(--line);background:#fafaf8;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-top:.5rem;padding:.6rem;display:grid}.job-price-form .job-price-detail,.job-price-form .job-price-hint,.job-price-form .detail-actions,.job-price-form .error{grid-column:1/-1}.job-price-form .job-price-hint{margin:0}.invoicing-van{margin-top:.85rem}.invoicing-van h3{margin:0 0 .4rem;font-size:.95rem}.invoicing-job.is-picked{border-left-color:var(--ok)}.invoicing-pick{font-size:inherit;font-weight:inherit;letter-spacing:normal;text-transform:none;color:var(--ink);align-items:center;gap:.55rem;display:flex}.invoicing-pick input{flex:none;width:1.1rem;height:1.1rem}.invoicing-pick .job-text{margin:0}.invoicing-footer{border-top:1px solid var(--line);gap:.75rem;margin-top:1rem;padding-top:1rem;display:grid}.invoicing-totals{grid-template-columns:auto auto;justify-content:start;gap:.15rem 1rem;margin:0;font-size:.9rem;display:grid}.invoicing-totals dt{color:var(--muted)}.invoicing-totals dd{text-align:right;font-variant-numeric:tabular-nums;margin:0;font-weight:700}.invoicing-totals dt:last-of-type,.invoicing-totals dd:last-of-type{color:var(--ink);font-size:1rem}.weekly-note{border-left:3px solid var(--ok);background:#f3f7f4;margin:0 0 .6rem;padding:.55rem .7rem;font-size:.88rem}@font-face{font-family:Geist;src:url(/fonts/geist-latin-400-700.woff2)format("woff2");font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:Atkinson Hyperlegible;src:url(/fonts/atkinson-latin-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Atkinson Hyperlegible;src:url(/fonts/atkinson-latin-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}:root,:root[data-theme=ledger]{--ink:#0a0a0a;--muted:#636363;--line:#e6e6e6;--paper:#f7f7f7;--panel:#fff;--raised:#f3f3f3;--active:#ebebeb;--control:#d4d4d4;--signal:#c4242a;--ok:#1f7a3f;--warn:#9a5b00;--info:#1d5fbf;--hold:#6b6b6b;--font:"Geist", "Helvetica Neue", system-ui, sans-serif;--radius-s:6px;--radius-m:8px;--radius-l:8px;--shadow-card:none;--shadow-lift:0 10px 30px #0a0a0a1a;--here:var(--active);--here-ink:var(--ink);--side-w:248px;--tap:44px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-exit:cubic-bezier(.55, .055, .675, .19)}:root[data-theme=workshop]{--ink:#000;--muted:#2f2f2f;--line:#8c8c8c;--paper:#fff;--panel:#fff;--raised:#f0f0f0;--active:#ffd400;--control:#000;--signal:#b00000;--ok:#0d5c27;--warn:#6b4200;--info:#0b3d91;--hold:#3b3b3b;--font:"Atkinson Hyperlegible", "Helvetica Neue", system-ui, sans-serif;--radius-s:4px;--radius-m:6px;--radius-l:6px;--shadow-card:none;--shadow-lift:0 10px 30px #0000002e;--here:#ffd400;--here-ink:#000;--side-w:260px;--tap:56px;font-size:18px}body{background:var(--paper);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}.num{font-variant-numeric:tabular-nums}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}[data-theme=workshop] :focus-visible{outline:3px solid #000;box-shadow:0 0 0 6px #ffd400}.app-shell{grid-template-columns:var(--side-w) minmax(0, 1fr);min-height:100vh;display:grid}.side{background:var(--paper);scrollbar-width:thin;flex-direction:column;gap:2px;height:100vh;padding:20px 12px 16px;display:flex;position:sticky;top:0;overflow-y:auto}.ws{color:var(--ink);border-radius:8px;align-items:center;gap:10px;margin-bottom:14px;padding:6px 8px;text-decoration:none;display:flex}.ws:hover{background:var(--active)}.mark{background:var(--ink);color:#fff;border-radius:7px;flex:none;place-items:center;width:30px;height:30px;display:grid}.ws{flex-direction:column;align-items:flex-start;gap:6px;padding:8px 10px 10px}.ws-logo{width:176px;max-width:100%;height:auto;display:block}.ws-text small{letter-spacing:.02em;color:var(--muted);font-size:12px;font-weight:500}.phonebar-logo{width:auto;height:44px;display:block}.ws-text b{letter-spacing:-.01em;white-space:nowrap;font-size:13.5px;font-weight:600;line-height:18px;display:block}.ws-text small{color:var(--muted);font-size:12px;line-height:16px;display:block}.side-group h2{color:var(--muted);margin:18px 10px 6px;font-size:12px;font-weight:500}.side-group a{color:#3a3a3a;border-radius:6px;align-items:center;gap:10px;min-height:34px;padding:0 10px;font-size:14px;text-decoration:none;display:flex;position:relative}.side-group a:hover{background:var(--active);color:var(--ink)}.side-group a.active{color:var(--here-ink);background:0 0;font-weight:600}.side,.tabbar{position:relative}.side{position:sticky}.tabbar{position:fixed}.nav-pill{z-index:0;background:var(--here);opacity:0;pointer-events:none;border-radius:6px;position:absolute;top:0;left:0}.nav-pill[data-ready]{transition:transform .24s var(--ease-out), width .24s var(--ease-out), height .24s var(--ease-out), opacity .15s ease}a,button,label,input,select{touch-action:manipulation}.side>:not(.nav-pill),.side-group>*,.tabbar>:not(.nav-pill){z-index:1;position:relative}.side-group a.active:hover{background:0 0}.tabbar .nav-pill{border-radius:10px}[data-theme=workshop] .side .nav-pill{border-radius:4px;box-shadow:inset 0 0 0 2px #000}[data-theme=workshop] .tabbar .nav-pill{border-radius:0}.side-group a .nav-count,.tabbar .nav-count,.more .nav-count{margin-left:auto}.icon{flex:none;width:16px;height:16px}.side-foot{gap:10px;margin-top:auto;padding-top:16px;display:grid}.conns{gap:6px;padding:0 10px;display:grid}.conn{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.conn:before{content:"";background:var(--signal);border-radius:50%;flex:none;width:6px;height:6px}.conn.is-ok:before{background:var(--ok)}.me{border-radius:8px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.avatar{color:#3d3d3d;background:#efefef;border-radius:50%;place-items:center;width:28px;height:28px;font-size:12px;font-weight:600;display:grid}.avatar.is-admin{color:#1d3f7a;background:#e8eefa}.avatar.is-client{color:#1f5130;background:#e4f3e9}.avatar.is-mechanic{color:#000;background:#ffd400}.avatar.is-editor{color:#3d3d3d;background:#efefef}.me-text b{font-size:14px;font-weight:500;line-height:18px;display:block}.me-text small{color:var(--muted);font-size:12px;line-height:16px;display:block}.me .sign-out{min-height:30px;padding:0 10px}.main-col,.page-stage{min-width:0}.page-loading{padding:1.5rem}.phonebar,.tabbar,.more{display:none}@media (width<=900px){.app-shell{display:block}.side{display:none}.phonebar{z-index:20;height:60px;padding:0 16px;padding-top:env(safe-area-inset-top);box-sizing:content-box;background:var(--paper);border-bottom:1px solid var(--line);align-items:center;gap:10px;display:flex;position:sticky;top:0}.phonebar .mark{width:26px;height:26px}.phonebar-title{flex:1;font-size:15px;font-weight:600}.phonebar-me{color:var(--muted);font-size:13px}.main-col{padding-bottom:calc(68px + env(safe-area-inset-bottom))}.tabbar{z-index:30;padding:0 4px env(safe-area-inset-bottom);background:var(--panel);border-top:1px solid var(--line);display:grid;position:fixed;inset:auto 0 0}.tabbar a,.tabbar button{min-height:60px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11.5px;font-weight:500;text-decoration:none;display:flex;position:relative}.tabbar .icon{width:22px;height:22px}.tabbar a.active,.tabbar button.active{color:var(--ink);font-weight:700}.tabbar .nav-count{margin:0;position:absolute;top:6px;left:calc(50% + 4px)}.nav-dot{background:var(--signal);border-radius:50%;width:8px;height:8px;position:absolute;top:10px;left:calc(50% + 8px)}.more{z-index:40;visibility:hidden;opacity:0;background:#0a0a0a4d;transition:opacity .24s,visibility 0s linear .24s;display:block;position:fixed;inset:0}.more.is-open{visibility:visible;opacity:1;transition:opacity .24s}.more-panel{max-height:80vh;padding:8px 8px calc(16px + env(safe-area-inset-bottom));background:var(--panel);transition:transform .32s var(--ease-out);border-radius:14px 14px 0 0;position:absolute;inset:auto 0 0;overflow-y:auto;transform:translateY(100%);box-shadow:0 -10px 30px #0000001f}.more.is-open .more-panel{transform:none}.more-who,.more-conn{color:var(--muted);margin:0;padding:12px 16px 8px;font-size:13px}.more a,.more-out{width:100%;min-height:52px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:14px;padding:0 16px;font-size:16px;text-decoration:none;display:flex}.more a:hover,.more-out:hover{background:var(--raised)}.more .icon{width:20px;height:20px}.update-bar,.job-alert{width:calc(100% - 1.5rem)}.plan-line a{align-items:center;min-height:44px;display:inline-flex}.plan-edit{min-height:40px;padding:0 .8rem}input[type=checkbox],input[type=radio]{width:24px;height:24px}}[data-theme=ledger] .panel,[data-theme=ledger] .login-card{border:1px solid var(--line);box-shadow:none;border-radius:8px}[data-theme=ledger] .panel h2{letter-spacing:-.005em;font-size:15px;font-weight:600}[data-theme=ledger] .layout{gap:20px;padding:28px 32px 40px}[data-theme=ledger] .layout.narrow{max-width:960px}[data-theme=ledger] .van,[data-theme=ledger] .log-item,[data-theme=ledger] .count,[data-theme=ledger] .banner{box-shadow:none;border-radius:8px}[data-theme=ledger] .van:hover{box-shadow:none;background:#fcfcfc;border-color:#cfcfcf}[data-theme=ledger] .btn{border-radius:6px;font-weight:500}[data-theme=ledger] .btn--ghost{border-color:var(--control)}[data-theme=ledger] .btn--ghost:hover{box-shadow:none;background:var(--raised)}[data-theme=ledger] .nav-count{background:var(--ink);border-radius:9px;font-weight:600}[data-theme=ledger] .side-group a.active .nav-count{background:var(--ink)}[data-theme=ledger] .badge{color:var(--ink);letter-spacing:0;text-transform:none;border:0;border-radius:0;align-items:center;gap:7px;padding:0;font-size:13px;font-weight:500;display:inline-flex}[data-theme=ledger] .badge:before{content:"";background:var(--dot,#9a9a9a);border-radius:50%;flex:none;width:7px;height:7px}[data-theme=ledger] .badge.parts-ordered{--dot:#b26a00}[data-theme=ledger] .badge.repair-in-progress,[data-theme=ledger] .badge.in-progress{--dot:var(--info)}[data-theme=ledger] .badge.done,[data-theme=ledger] .badge.completed{--dot:var(--ok)}[data-theme=ledger] .badge.to-inspect,[data-theme=ledger] .badge.to-be-inspected{--dot:transparent;color:var(--muted)}[data-theme=ledger] .badge.to-inspect:before,[data-theme=ledger] .badge.to-be-inspected:before{box-shadow:inset 0 0 0 1.5px #9a9a9a}[data-theme=ledger] .completion-track{stroke:#eee}[data-theme=ledger] .completion-fill{stroke:var(--ink)}[data-theme=ledger] .plan-job{background:#fff;border-left-width:2px}[data-theme=ledger] .history-item{background:#fafafa}[data-theme=ledger] .weekly-note{border-left-color:var(--ink);background:#f5f5f5}label{letter-spacing:0;text-transform:none;font-size:13px;font-weight:500}[data-theme=workshop] label{color:var(--ink);font-size:.85rem;font-weight:700}.van-reg,.van-title{border:1.5px solid var(--ink);width:max-content;color:var(--ink);letter-spacing:.04em;background:#fff;border-radius:4px;justify-self:start;align-items:center;padding:0 8px;font-weight:700;line-height:1;display:inline-flex}.van-reg{height:28px;margin-bottom:4px;font-size:15px}.van-title{border-width:2px;border-radius:5px;height:40px;padding:0 12px;font-size:22px}::view-transition-group(*.plate){animation-duration:.3s;animation-timing-function:var(--ease-out)}::view-transition-old(*.plate){width:100%;height:100%}::view-transition-new(*.plate){width:100%;height:100%}@media (width>=1180px){.fleet-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}[data-theme=workshop] body{line-height:1.45}[data-theme=workshop] .side{background:#fff;border-right:2px solid #000}[data-theme=workshop] .side-group a{color:#000;border:2px solid #0000;min-height:48px;font-size:16px}[data-theme=workshop] .side-group a.active{border-color:#0000}[data-theme=workshop] .side-group h2{color:#000;font-size:13px;font-weight:700}[data-theme=workshop] .panel,[data-theme=workshop] .login-card{box-shadow:none;border:2px solid #000;border-radius:6px}[data-theme=workshop] .panel h2{font-size:1.15rem;font-weight:700}[data-theme=workshop] .layout{gap:18px;padding:24px}[data-theme=workshop] .van,[data-theme=workshop] .log-item,[data-theme=workshop] .task,[data-theme=workshop] .plan-day{box-shadow:none;border:2px solid #000;border-radius:6px}[data-theme=workshop] .van:hover{box-shadow:0 0 0 3px #ffd400}a.btn,label.btn,[data-theme=workshop] .btn{text-align:center;justify-content:center;align-items:center;display:inline-flex}[data-theme=workshop] .btn{min-height:var(--tap);border:2px solid #000;border-radius:4px;padding:0 1.1rem;font-size:1rem;font-weight:700}[data-theme=workshop] .btn--ghost{color:#000;background:#fff}[data-theme=workshop] .btn--small{min-height:44px;font-size:.9rem}[data-theme=workshop] .btn.is-selected,[data-theme=workshop] .btn[aria-pressed=true]{color:#000;background:#ffd400;border-color:#000}[data-theme=workshop] .btn--danger{color:var(--signal);border-color:var(--signal)}[data-theme=workshop] select,[data-theme=workshop] input:not([type=checkbox]):not([type=radio]):not([type=file]),[data-theme=workshop] textarea{min-height:var(--tap);border:2px solid #000;border-radius:4px;font-size:1rem}[data-theme=workshop] .badge{color:#000;letter-spacing:0;text-transform:none;border:2px solid #000;border-radius:4px;padding:.25rem .6rem;font-size:.75rem}[data-theme=workshop] .badge.parts-ordered{background:#ffd400}[data-theme=workshop] .badge.repair-in-progress,[data-theme=workshop] .badge.in-progress{color:#fff;background:#000}[data-theme=workshop] .badge.done,[data-theme=workshop] .badge.completed{background:var(--ok);border-color:var(--ok);color:#fff}[data-theme=workshop] .van-reg{border-width:2.5px;height:36px;font-size:1.15rem}[data-theme=workshop] .van-title{border-width:3px;height:48px;font-size:1.5rem}[data-theme=workshop] .van-meta,[data-theme=workshop] .hint,[data-theme=workshop] .repair-meta{color:#2f2f2f}[data-theme=workshop] .nav-count{background:var(--signal);font-weight:700}[data-theme=workshop] .completion-track{stroke:#dcdcdc}[data-theme=workshop] .completion-fill{stroke:#000}[data-theme=workshop] .completion-ring text{font-size:13px}[data-theme=workshop] .plan-job{background:#fff;border:2px solid #000;border-left-width:6px}[data-theme=workshop] .back-link{align-items:center;min-height:48px;font-size:1rem;font-weight:700;display:inline-flex}[data-theme=workshop] .plan-edit{border:2px solid #000;min-height:40px;padding:0 .8rem;font-size:.85rem}[data-theme=workshop] .plan-line a{color:#000;text-underline-offset:3px;align-items:center;min-height:40px;text-decoration:underline;display:inline-flex}[data-theme=workshop] .job-actions .btn{min-height:var(--tap);font-size:.9rem}@media (width<=900px){[data-theme=workshop] .layout{padding:14px}[data-theme=workshop] .status-filter .btn{min-height:52px;padding:0 .3rem;font-size:.8rem;line-height:1.15}[data-theme=workshop] .phonebar{background:#fff;border-bottom:2px solid #000;height:60px}[data-theme=workshop] .tabbar{border-top:2px solid #000}[data-theme=workshop] .tabbar a,[data-theme=workshop] .tabbar button{color:#000;min-height:68px;font-size:13px}[data-theme=workshop] .tabbar a.active,[data-theme=workshop] .tabbar button.active{background:0 0}}.side{view-transition-name:side}.tabbar{view-transition-name:tabbar}.phonebar{view-transition-name:phonebar}::view-transition-group(side){animation:none}::view-transition-old(side){animation:none}::view-transition-new(side){animation:none}::view-transition-group(tabbar){animation:none}::view-transition-old(tabbar){animation:none}::view-transition-new(tabbar){animation:none}::view-transition-group(phonebar){animation:none}::view-transition-old(phonebar){animation:none}::view-transition-new(phonebar){animation:none}::view-transition-old(side){display:none}::view-transition-old(tabbar){display:none}::view-transition-old(phonebar){display:none}.page.page-still,html.vt-nav .page,.has-vt .plan-fade{animation:none}::view-transition{pointer-events:none}::view-transition-old(root){animation:vt-leave 90ms var(--ease-exit) both}::view-transition-new(root){animation:vt-up .24s var(--ease-out) 30ms both}html:active-view-transition-type(forward)::view-transition-new(root){animation-name:vt-from-right}html:active-view-transition-type(back)::view-transition-new(root){animation-name:vt-from-left}html.vt-inpage [style*=--vtn]{view-transition-name:var(--vtn);view-transition-class:row}html:active-view-transition-type(inpage)::view-transition-old(root){display:none}html:active-view-transition-type(inpage)::view-transition-new(root){animation:none}::view-transition-group(*.row){animation-duration:.22s;animation-timing-function:var(--ease-out)}::view-transition-old(*.row):only-child{animation:vt-out .12s var(--ease-exit) both}::view-transition-new(*.row):only-child{animation:vt-up .2s var(--ease-out) 40ms both}@keyframes vt-leave{to{opacity:0}}@keyframes vt-up{0%{opacity:0;transform:translateY(10px)}}@keyframes vt-from-right{0%{opacity:0;transform:translate(28px)}}@keyframes vt-from-left{0%{opacity:0;transform:translate(-28px)}}@keyframes vt-out{to{opacity:0;transform:scale(.98)}}.first-load .page .panel,.first-load .page .van,.first-load .page .plan-day,.first-load .page .task{animation:first-rise .46s var(--ease-out) backwards}.first-load .page .panel:nth-child(2){animation-delay:60ms}.first-load .page .panel:nth-child(3){animation-delay:.12s}.first-load .page .panel:nth-child(n+4){animation-delay:.18s}.first-load .page .van:first-child,.first-load .page .plan-day:first-child,.first-load .page .task:first-child{animation-delay:80ms}.first-load .page .van:nth-child(2),.first-load .page .plan-day:nth-child(2),.first-load .page .task:nth-child(2){animation-delay:.12s}.first-load .page .van:nth-child(3),.first-load .page .plan-day:nth-child(3),.first-load .page .task:nth-child(3){animation-delay:.16s}.first-load .page .van:nth-child(4),.first-load .page .plan-day:nth-child(4),.first-load .page .task:nth-child(4){animation-delay:.2s}.first-load .page .van:nth-child(n+5),.first-load .page .plan-day:nth-child(n+5),.first-load .page .task:nth-child(n+5){animation-delay:.24s}@keyframes first-rise{0%{opacity:0;transform:translateY(10px)}}.btn,.side-group a,.tabbar a,.tabbar button,.ws,.van,.plan-job,.plan-edit,.more a,.more-out{transition:background-color .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .14s var(--ease-out)}.btn:active,.tabbar a:active,.tabbar button:active,.more a:active{transform:scale(.97)}a.van:active{transform:scale(.99)}[data-theme=workshop] .btn:active{transform:translateY(2px)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important;animation-duration:0s!important;animation-delay:0s!important}::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}.dash{max-width:1280px;padding:36px 40px 56px;font-size:14px;line-height:20px}[data-theme=workshop] .dash{font-size:1rem;line-height:1.45}a.btn{text-decoration:none}.dash-title{align-items:flex-end;gap:16px;margin-bottom:28px;display:flex}.dash-h{letter-spacing:-.025em;margin:0;font-size:28px;font-weight:600;line-height:34px}.dash-title p{color:var(--muted);margin:6px 0 0;font-size:15px;line-height:22px}.dash-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.stamp{color:var(--muted);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.dot{background:var(--muted);border-radius:50%;width:6px;height:6px;display:inline-block}.dot.is-ok{background:var(--ok)}.dash .btn{min-height:36px;padding:0 14px}.kpis{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-m);grid-template-columns:repeat(4,1fr);margin-bottom:24px;display:grid}.kpi{border-left:1px solid #efefef;padding:18px 22px 20px}.kpi:first-child{border-left:0}.kpi-l{color:var(--muted);font-size:13px}.kpi-v{letter-spacing:-.02em;margin-top:8px;font-size:30px;font-weight:500;line-height:36px}.kpi-v small{color:var(--muted);letter-spacing:0;font-size:14px;font-weight:400}.kpi-c{color:var(--muted);margin-top:4px;font-size:12px}.dash-grid{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:24px;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-m)}.card-head{align-items:baseline;gap:12px;padding:18px 20px 0;display:flex}.card-head h3{margin:0;font-size:15px;font-weight:600}.card-head .meta{color:var(--muted);margin-left:auto;font-size:12px}.card-body{padding:12px 20px 18px}.vans-card{padding-top:6px}.dash-tabs{border-bottom:1px solid var(--line);scrollbar-width:none;gap:22px;padding:0 20px;display:flex;position:relative;overflow-x:auto}.dash-tabs button{min-height:40px;color:var(--muted);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-bottom:1.5px solid #0000;margin-bottom:-1px;padding:10px 0 11px;font-size:14px;transition:color .18s,border-color .18s}.dash-tabs button:hover{color:var(--ink)}.dash-tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--ink);font-weight:500}.dash-tabs .n{color:var(--muted);margin-left:6px;font-weight:400}.dash-toolbar{align-items:center;gap:12px;padding:14px 20px 12px;display:flex}.dash-toolbar input[type=search]{border:1px solid var(--control);border-radius:var(--radius-s);width:300px;max-width:100%;height:36px;min-height:0;padding:0 12px}.dash-toolbar .total{color:var(--muted);margin-left:auto;font-size:13px}.vans-table{border-collapse:collapse;table-layout:fixed;width:100%}.vans-table th{color:var(--muted);text-align:left;white-space:nowrap;padding:0 12px 10px;font-size:12px;font-weight:400}.vans-table td{vertical-align:middle;text-overflow:ellipsis;border-top:1px solid #efefef;padding:14px 12px;overflow:hidden}.vans-table th:first-child,.vans-table td:first-child{padding-left:20px}.vans-table th:last-child,.vans-table td:last-child{padding-right:20px}.vans-table .r{text-align:right}.vans-table tr.row{cursor:pointer}.vans-table tr.row td{transition:background-color .18s}.vans-table tr.row:hover td{background:#fafafa}.vans-table td.open b{font-weight:600}.who{align-items:center;gap:12px;min-width:0;display:flex}.sub{color:var(--muted);margin-top:2px;font-size:12px;display:block}.sub.is-due{color:var(--signal);font-weight:500}.plate{border:1px solid var(--ink);height:24px;color:var(--ink);letter-spacing:.03em;white-space:nowrap;transition:background-color .18s ease, transform .14s var(--ease-out);background:#fff;border-radius:4px;flex:none;align-items:center;padding:0 7px;font-size:12.5px;font-weight:600;text-decoration:none;display:inline-flex}a.plate:hover{background:var(--raised);transform:translateY(-1px)}.vans-cards{margin:0;padding:0 16px;list-style:none;display:none}.dash-empty{padding:12px 20px 18px}.dash-rail{flex-direction:column;gap:24px;display:flex}.wkc{grid-template-columns:repeat(7,1fr);align-items:end;gap:8px;height:190px;margin-bottom:8px;padding-top:18px;display:grid;position:relative}.wkc .ref{border-top:1px dashed #cfcfcf;position:absolute;bottom:142px;left:0;right:0}.wkc .ref span{background:var(--panel);color:var(--muted);padding-left:4px;font-size:11px;position:absolute;top:-17px;right:0}.wkc .col{flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;height:100%;display:flex}.wkc .bar{background:var(--info);transform-origin:50% 100%;border-radius:3px 3px 0 0;width:100%;max-width:28px}.wkc .v{font-size:12px}.wkc .x{height:28px;color:var(--muted);text-align:center;font-size:11.5px;line-height:14px}.wkc .today .x{color:var(--ink);font-weight:600}.wk-note{color:var(--muted);border-top:1px solid #efefef;margin:18px 0 0;padding-top:12px;font-size:13px}.wk-note b{color:var(--ink);font-weight:500}.queue{margin:0;padding:0;list-style:none}.queue li{border-top:1px solid #efefef;padding:10px 0}.queue li:first-child{border-top:0;padding-top:2px}.queue b{white-space:nowrap;text-overflow:ellipsis;font-weight:600;display:block;overflow:hidden}.viewall{width:100%;margin-top:10px}.dash-notify{margin-top:24px}.first-load .dash .kpi,.first-load .dash .card{animation:first-rise .46s var(--ease-out) backwards}.first-load .dash .kpi:nth-child(2){animation-delay:50ms}.first-load .dash .kpi:nth-child(3){animation-delay:.1s}.first-load .dash .kpi:nth-child(4){animation-delay:.15s}.first-load .dash .vans-card{animation-delay:.2s}.first-load .dash-rail .card{animation-delay:.26s}.first-load .wkc .bar{animation:bar-grow .62s var(--ease-out) .3s backwards}@keyframes bar-grow{0%{transform:scaleY(0)}}@media (width<=1180px){.dash-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=900px){.dash{padding:20px 16px 24px}.dash-title{flex-wrap:wrap;align-items:flex-start;margin-bottom:20px}.dash-h{font-size:24px;line-height:30px}.dash-actions{width:100%;margin-left:0}.dash-actions .btn{flex:1;min-height:44px}.stamp{display:none}.kpis{grid-template-columns:1fr 1fr}.kpi{padding:14px 16px 16px}.kpi-v{font-size:24px;line-height:30px}.kpi:nth-child(3){border-left:0}.kpi:nth-child(n+3){border-top:1px solid #efefef}.dash-tabs,.dash-toolbar{padding-left:16px;padding-right:16px}.dash-tabs button{min-height:44px}.dash-toolbar{flex-wrap:wrap}.dash-toolbar input[type=search]{width:100%;height:44px}.dash-toolbar .total{margin-left:0}.vans-table{display:none}.vans-cards{display:block}.vans-cards a{min-height:64px;color:inherit;border-top:1px solid #efefef;grid-template-columns:1fr auto;gap:4px 12px;padding:12px 0;text-decoration:none;display:grid}.vans-cards .plate{justify-self:start}.vans-cards .n{text-align:right;font-weight:700}.vans-cards .n small{color:var(--muted);font-size:12px;font-weight:500;display:block}.vans-cards .l2{color:var(--muted);flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:6px 8px;font-size:13px;display:flex}.vans-cards .l2 .sub{margin:0}}[data-theme=workshop] .dash{padding:28px 28px 48px}[data-theme=workshop] .dash-h{font-size:1.75rem;font-weight:700}[data-theme=workshop] .dash-title p{color:#000;font-size:1rem}[data-theme=workshop] .kpis,[data-theme=workshop] .card{border:2px solid #000;border-radius:6px}[data-theme=workshop] .kpi{border-left:2px solid #000}[data-theme=workshop] .kpi-l,[data-theme=workshop] .kpi-c{color:#000}[data-theme=workshop] .kpi-l{font-weight:700}[data-theme=workshop] .kpi-v{font-size:2.1rem;font-weight:700}[data-theme=workshop] .dash-tabs{border-bottom:2px solid #000}[data-theme=workshop] .dash-tabs button{color:#000;border-bottom-width:4px;min-height:52px;font-size:.9rem}[data-theme=workshop] .dash-tabs button[aria-selected=true]{background:#ffd400;border-bottom-color:#000;padding-left:10px;padding-right:10px;font-weight:700}[data-theme=workshop] .dash-toolbar input[type=search]{border:2px solid #000;height:52px}[data-theme=workshop] .vans-table td{border-top:1px solid #8c8c8c;font-size:.95rem}[data-theme=workshop] .vans-table th{color:#000;font-size:.8rem;font-weight:700}[data-theme=workshop] .plate{border-width:2.5px;height:34px;padding:0 9px;font-size:1.05rem;font-weight:700}[data-theme=workshop] .sub{color:#2f2f2f;font-size:.8rem}[data-theme=workshop] .open.is-mechanic b,[data-theme=workshop] .n.is-mechanic{color:var(--signal)}[data-theme=workshop] .wkc .bar{background:#000;border-radius:0}[data-theme=workshop] .wkc .x,[data-theme=workshop] .wk-note{color:#000}[data-theme=workshop] .wkc .today .x{background:#ffd400}[data-theme=workshop] .card-head h3{font-size:1.05rem;font-weight:700}@media (width<=900px){[data-theme=workshop] .dash{padding:16px 14px 24px}[data-theme=workshop] .vans-cards a{border-top:1px solid #8c8c8c;min-height:76px}[data-theme=workshop] .vans-cards .l2{color:#000;font-size:.8rem}[data-theme=workshop] .kpi:nth-child(n+3){border-top:2px solid #000}}[data-theme=workshop] .dash-grid{grid-template-columns:minmax(0,1fr) 320px}[data-theme=workshop] .vans-table td{white-space:normal;padding:12px 10px;font-size:.85rem;overflow:visible}[data-theme=workshop] .vans-table th{white-space:normal;padding:0 10px 10px}[data-theme=workshop] .vans-table .plate{height:30px;padding:0 7px;font-size:.95rem}[data-theme=workshop] .vans-table .badge{white-space:normal;font-size:.7rem}[data-theme=workshop] .who{gap:8px}@media (width<=1180px){[data-theme=workshop] .dash-grid{grid-template-columns:minmax(0,1fr)}}.appr .dash-tabs{margin-bottom:16px;padding:0}.appr-split{grid-template-columns:420px minmax(0,1fr);align-items:start;gap:24px;display:grid}.appr-items{margin:0;padding:0;list-style:none}.appr-items button{width:100%;min-height:68px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-top:1px solid #efefef;border-radius:0;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:12px;transition:background-color .18s;display:grid}.appr-items li:first-child button{border-top:0}.appr-items button:hover{background:#fafafa}.appr-items button[aria-current=true]{background:var(--active);border-radius:var(--radius-s);border-top-color:#0000}.appr-items li:has(button[aria-current=true])+li button{border-top-color:#0000}.appr-items .t{align-items:center;gap:8px;min-width:0;font-weight:600;display:flex}.appr-items .tt{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.appr-items .when{color:var(--muted);text-align:right;white-space:nowrap;font-size:12px}.appr-items .l2{color:var(--muted);grid-column:1/-1;font-size:13px}.folded{color:var(--muted);margin:12px 0 0;padding:0 12px;font-size:13px}.appr-detail{padding:20px 24px 24px}.appr-detail .back{display:none}.appr-h{flex-wrap:wrap;align-items:center;gap:10px;margin:8px 0 4px;font-size:20px;font-weight:600;line-height:28px;display:flex}.appr-detail .from{color:var(--muted);margin:0 0 16px}.appr-detail .what{margin:0 0 14px;font-size:15px}.appr-detail .what b{font-weight:600}.appr-detail blockquote{border-radius:var(--radius-s);background:var(--raised);margin:0 0 16px;padding:12px 16px}.appr-detail .rule{color:var(--muted);margin:14px 0 18px;font-size:13px}.appr-detail .acts{flex-wrap:wrap;gap:8px;display:flex}.appr-detail .assign-row{grid-template-columns:minmax(0,1fr) auto}.conf{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 12px;max-width:420px;margin:0 0 14px;display:grid}.conf-track{background:var(--raised);border-radius:4px;height:8px;position:relative}.conf-track>span{background:var(--ink);border-radius:4px;position:absolute;inset:0 auto 0 0}.conf-track>i{background:var(--signal);width:1.5px;position:absolute;top:-3px;bottom:-3px}.conf-lab{color:var(--muted);grid-column:1/-1;font-size:12px}.appr-slots .card-body{padding-top:18px}@media (width<=1000px){.appr-split{grid-template-columns:minmax(0,1fr)}.appr-split.is-showing .appr-list,.appr-split:not(.is-showing) .appr-detail-col{display:none}.appr-detail{padding:16px}.appr-detail .back{min-height:44px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;margin:-8px 0 4px;padding:0;display:flex}.appr-detail .acts .btn{flex:140px;min-height:44px}}.inv-owners{gap:24px;display:grid}.inv-table{border-collapse:collapse;width:100%;margin-top:8px}.inv-table th{color:var(--muted);text-align:left;padding:6px 12px 10px;font-size:12px;font-weight:400}.inv-table td{vertical-align:top;border-top:1px solid #efefef;padding:14px 12px}.inv-table th:first-child,.inv-table td:first-child{padding-left:20px}.inv-table th:last-child,.inv-table td:last-child{padding-right:20px}.inv-table .r{text-align:right;white-space:nowrap}.inv-table td.chk{width:40px;padding-right:0}.inv-table td.chk input{width:18px;height:18px;accent-color:var(--ink);margin-top:2px}.inv-table td.job b{font-weight:500}.inv-sub{flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:6px;display:flex}.inv-table tr.needs-price td{background:#fcfcfc}.inv-table td.price .job-price{margin:0}.inv-table td.price .job-price-form{margin-top:0}.inv-table tfoot td{color:var(--muted);padding-top:8px;padding-bottom:8px}.inv-table tfoot tr.total td{border-top:1px solid var(--line);color:var(--ink);padding-top:12px;font-size:16px}.inv-table tfoot tr.total b{font-weight:700}.dash-none{color:var(--muted)}.link-btn{color:var(--muted);font:inherit;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;margin-top:6px;padding:0;font-size:12px;text-decoration:underline}.link-btn:hover{color:var(--signal)}.inv-make{border-top:1px solid #efefef;flex-wrap:wrap;justify-content:flex-end;align-items:flex-end;gap:12px;padding:14px 20px 18px;display:flex}.inv-make label{min-width:180px}.inv-run .when{letter-spacing:-.015em;margin:2px 0 8px;font-size:22px;font-weight:500}.inv-run p{color:var(--muted);margin:0 0 10px}.inv-run p b{color:var(--ink);font-weight:500}.inv-list{margin:0;padding:0;list-style:none}.inv-list li{border-top:1px solid #efefef;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:12px 0;display:grid}.inv-list li:first-child{border-top:0;padding-top:2px}.inv-list .id{overflow-wrap:anywhere;font-weight:500}.inv-list .amt{text-align:right;font-weight:700}.inv-list .l2,.inv-list .l3,.inv-list .l4{color:var(--muted);grid-column:1/-1;font-size:12px}.inv-list .l3{margin:0}.inv-list .l4{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.inv-list .l4 .btn{min-height:28px;padding:0 10px;font-size:12px}@media (width<=700px){.inv-table thead{display:none}.inv-table,.inv-table tbody,.inv-table tfoot{display:block}.inv-table tbody tr{border-top:1px solid #efefef;grid-template-columns:32px minmax(0,1fr) auto;gap:6px 8px;padding:12px 16px;display:grid}.inv-table tbody td{border:0;background:0 0!important;padding:0!important}.inv-table tbody td.chk{grid-row:1/span 2}.inv-table tbody td.job{grid-column:2}.inv-table tbody td.r{grid-area:1/3}.inv-table tbody td.price{grid-column:2/-1}.inv-table tfoot tr{justify-content:space-between;padding:8px 16px;display:flex}.inv-table tfoot td{border:0!important;padding:0!important}.inv-table tfoot td:empty{display:none}.inv-make{padding:14px 16px 18px}.inv-make .btn{flex:1;min-height:44px}}.vanp .back-link{min-height:32px;color:var(--muted);align-items:center;margin-bottom:8px;font-size:14px;font-weight:500;display:inline-flex}.vanp-head{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:6px;display:flex}.vanp-lede{color:var(--muted);margin:6px 0 0;font-size:15px;line-height:22px}.vanp-notes{color:var(--muted);margin:4px 0 0}.vanp .dash-tabs{margin:18px 0 16px;padding:0}.vanp-main{min-width:0}.vanp-jobs,.vanp-history{padding:6px 20px 18px}.vanp-jobs .repairs,.vanp-history .history{gap:0;margin-top:0}.vanp-jobs .history-item,.vanp-history .history-item{background:0 0;border:0;border-top:1px solid #efefef;border-radius:0;padding:16px 0}.vanp-jobs .history-item:first-child,.vanp-history .history-item:first-child{border-top:0}.vanp-jobs .history-item.is-pending{border-radius:var(--radius-s);background:#fffbeb;padding:12px}.vanp .job-text{font-size:15px;font-weight:600}.vanp .job-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.vanp .job-actions .btn{flex:none;min-height:32px;padding:0 12px}.vanp .job-actions .btn:last-child{background:var(--ink);color:#fff;border-color:var(--ink);order:-1}.vanp .job-actions .btn:last-child.is-selected,.vanp .job-actions .btn:last-child:disabled{background:var(--raised);color:var(--muted);border-color:var(--line)}.vanp .request-form.add-job{border:1px solid var(--line);border-radius:var(--radius-m);margin-top:8px;padding:16px}.vanp .pending{margin-top:16px}.vanp .dash-rail .panel{border:1px solid var(--line);border-radius:var(--radius-m);box-shadow:none;margin:0;padding:18px 20px}.vanp .dash-rail .panel h2{margin-bottom:10px;font-size:15px}.vanp-details .facts{grid-template-columns:1fr auto;gap:0;font-size:14px}.vanp-details .facts dt,.vanp-details .facts dd{border-top:1px solid #efefef;padding:8px 0}.vanp-details .facts dt:first-of-type,.vanp-details .facts dd:first-of-type{border-top:0}.vanp-details .facts dd{text-align:right}.vanp-details .detail-grid.two{grid-template-columns:1fr}@media (width<=900px){.vanp-jobs,.vanp-history{padding:4px 16px 16px}.vanp .job-actions .btn{flex:auto;min-height:44px}.vanp .job-actions .btn:last-child{flex-basis:100%}}.plan .dash-tabs{margin-bottom:14px;padding:0}.plan .dash-tabs .plan-tab-add{color:#5c4700}.plan .dash-tabs .plan-tab-add[aria-selected=true]{border-bottom-color:#f2c200}.plan-frame{min-width:0}.plan-scope{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 16px;display:flex}.plan-scope .btn{min-height:34px}.plan-range{margin:0 4px;font-size:14px;font-weight:600}.plan-scope-gap{flex:1}.seg{border:1px solid var(--line);border-radius:var(--radius-s);background:var(--raised);padding:2px;display:inline-flex}.seg button{min-height:30px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;padding:0 12px;font-weight:500}.seg button[aria-pressed=true]{border-color:var(--line);color:var(--ink);background:#fff;font-weight:600}.plan-days7{display:none}.plan-week.is-cols{grid-template-columns:repeat(7,minmax(0,1fr));align-items:stretch;gap:10px;display:grid}.plan-col,.plan-col>.plan-day{min-width:0;height:100%}.plan-week.is-cols .plan-day{border:1px solid var(--line);border-radius:var(--radius-m);background:#fff;min-height:360px;padding:10px}.plan-week.is-cols .plan-day.is-today{border-color:var(--line);border-top:2px solid var(--info);box-shadow:none}.plan-week.is-cols .plan-day.is-past{background:#fafafa}.plan-week.is-cols .plan-day-head{border-bottom:1px solid #efefef;gap:6px;padding-bottom:10px;display:grid}.plan-week.is-cols .plan-day-head h3{font-size:13px}.plan-week.is-cols .plan-day-load{font-size:11.5px;font-weight:500}.plan-cap{background:var(--raised);border-radius:2px;height:4px;display:block;position:relative;overflow:hidden}.plan-cap>span{background:var(--info);transform-origin:0;border-radius:2px;position:absolute;inset:0 auto 0 0}.plan-cap.is-over>span{background:var(--signal)}.plan-week.is-cols .plan-job{padding:8px}.plan-week.is-cols .plan-job-top{flex-wrap:nowrap;font-size:12px}.plan-week.is-cols .plan-job-reg{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.vanp .see-photo.is-none{color:var(--ink);border-color:var(--ink);box-shadow:none;background:#fff}[data-theme=workshop] .vanp .see-photo.is-none{border-width:2px}.dash .banner{margin:0 0 16px}.plan-week.is-cols .plan-job-title{font-size:12.5px;line-height:17px}.first-load .plan-cap>span{animation:cap-fill .62s var(--ease-out) .2s backwards}@keyframes cap-fill{0%{transform:scaleX(0)}}@media (width<=1279px){.plan-days7{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:12px;display:grid}.plan-days7 button{border:2px solid var(--line);border-radius:var(--radius-s);min-height:64px;color:var(--ink);font:inherit;cursor:pointer;background:#fff;flex-direction:column;align-items:center;gap:4px;padding:6px 2px;display:flex}.plan-days7 button[aria-pressed=true]{border-color:var(--ink)}.plan-days7 .wd{color:var(--muted);font-size:12px}.plan-days7 .dn{font-size:16px;font-weight:700}.plan-days7 .plan-cap{width:70%}.plan-week.is-cols{display:block}.plan-col{display:none}.plan-col.is-shown{display:block}.plan-week.is-cols .plan-day{min-height:0}}@media (width<=700px){.plan-scope .seg{display:none}}[data-theme=workshop] .appr-items button{border-top:1px solid #8c8c8c;min-height:76px}[data-theme=workshop] .appr-items button[aria-current=true]{background:#ffd400}[data-theme=workshop] .vanp-jobs,[data-theme=workshop] .vanp-history{padding:6px 18px 18px}[data-theme=workshop] .vanp-jobs .history-item,[data-theme=workshop] .vanp-history .history-item{border-top:1px solid #8c8c8c}[data-theme=workshop] .vanp .job-text{font-size:1.05rem;font-weight:700}[data-theme=workshop] .vanp .job-actions .btn{min-height:52px}[data-theme=workshop] .vanp .job-actions .btn:last-child{color:#fff;background:#000}[data-theme=workshop] .vanp .request-form.add-job{border:2px solid #000}[data-theme=workshop] .vanp .dash-rail .panel{border:2px solid #000;border-radius:6px}[data-theme=workshop] .vanp-lede,[data-theme=workshop] .vanp .back-link{color:#000}[data-theme=workshop] .vanp-details .facts dt,[data-theme=workshop] .vanp-details .facts dd{border-top-color:#8c8c8c}[data-theme=workshop] .seg{background:#fff;border:2px solid #000}[data-theme=workshop] .seg button{color:#000;min-height:44px}[data-theme=workshop] .seg button[aria-pressed=true]{background:#ffd400;border-color:#000}[data-theme=workshop] .plan-week.is-cols{gap:8px}[data-theme=workshop] .plan-week.is-cols .plan-day{border:2px solid #000;border-radius:6px;padding:8px}[data-theme=workshop] .plan-week.is-cols .plan-day.is-today{border-top-width:6px;border-top-color:#ffd400}[data-theme=workshop] .plan-week.is-cols .plan-day-head h3{font-size:.85rem}[data-theme=workshop] .plan-week.is-cols .plan-job-title{font-size:.8rem;line-height:1.25}[data-theme=workshop] .plan-week.is-cols .plan-job-top{font-size:.75rem}[data-theme=workshop] .plan-cap{background:#dcdcdc;border-radius:0;height:8px}[data-theme=workshop] .plan-cap>span{background:#000;border-radius:0}[data-theme=workshop] .plan-days7 button{border-color:#000;min-height:72px}[data-theme=workshop] .plan-days7 button[aria-pressed=true]{background:#ffd400}[data-theme=workshop] .plan-days7 .wd{color:#000}.plan-week.is-cols .plan-day{flex-direction:column;display:flex;overflow:hidden}.plan-week.is-cols .plan-day-jobs{grid-template-columns:minmax(0,1fr)}.plan-week.is-cols .plan-day-jobs>*{min-width:0;max-width:100%}.plan-week.is-cols .plan-job{min-width:0;max-width:100%;overflow:hidden}.plan-week.is-cols .plan-job-top{align-items:baseline;gap:6px;min-width:0;display:flex}.plan-week.is-cols .plan-job-reg{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;overflow:hidden}.plan-week.is-cols .plan-job-hours{flex:none}.plan-week.is-cols .plan-job-title{overflow-wrap:anywhere}.plan-week.is-cols .parts-badge,.plan-week.is-cols .quote-badge,.plan-week.is-cols .parts-pending{white-space:normal;overflow-wrap:anywhere;max-width:100%}.plan-week.is-cols .plan-day-head h3,.plan-week.is-cols .plan-day-load{overflow-wrap:anywhere}.plan-week.is-cols .plan-slot,.plan-week.is-cols .plan-strip,.plan-week.is-cols .plan-off{white-space:normal;overflow-wrap:anywhere;min-width:0;max-width:100%}.tk-map-wrap{z-index:0;isolation:isolate;position:relative}.tk-map,.leaflet-container{z-index:0}.fl .dash-tabs{margin-bottom:16px;padding:0}.fl .tk-live.card{gap:16px;padding:16px}.fl .tk-map{border-radius:var(--radius-s);border-color:var(--line)}.fl .tk-side{min-width:0}.fl .tk-filter .btn,.fl .tk-book{min-height:32px}[data-theme=workshop] .fl .tk-live.card,[data-theme=workshop] .fl .tk-map{border:2px solid #000}@media (width<=900px){.fl .tk-live.card{padding:12px}.fl .tk-filter .btn,.fl .tk-book{min-height:44px}}.fl .dash-tabs.tk-tabs{flex-wrap:nowrap;gap:22px;display:flex}[data-theme=workshop] .fl .dash-tabs.tk-tabs{gap:10px}
