/* Mech Tech Vehicle Protection + RO Library. Black / white / Nardo grey / signal red. */
.vp-root,.vp-dlg,.vp-cslink{--vp-ink:#121314;--vp-paper:#f4f4f2;--vp-card:#fbfbfa;--vp-nardo:#6e7073;--vp-nardo-l:#c9cacb;--vp-line:#d9d9d6;--vp-red:#c8102e;--vp-red-d:#9e0c24;--vp-ok:#2f6b4f;--vp-warn:#a36a00;--vp-r:4px;font-family:inherit;color:var(--vp-ink)}
.vp-root{display:flex;flex-direction:column;gap:14px;max-width:1180px}
.vp-eye{font:600 11px/1.2 ui-monospace,"Space Mono",monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--vp-nardo)}
.vp-foot{font-size:12.5px;color:var(--vp-nardo);line-height:1.45}
.vp-hero{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;padding:22px 22px 20px;background:var(--vp-ink);color:#f4f4f2;border-left:6px solid var(--vp-red);border-radius:var(--vp-r)}
.vp-hero h2{margin:6px 0 4px;font-size:clamp(22px,3.2vw,32px);letter-spacing:-.02em;line-height:1.05}
.vp-hero p{margin:0;color:var(--vp-nardo-l);font-size:14px}.vp-hero .vp-eye{color:#9a9c9f}
.vp-hero-r{display:flex;gap:6px;flex-wrap:wrap}
.vp-card{background:var(--vp-card);border:1px solid var(--vp-line);border-radius:var(--vp-r);padding:16px}
.vp-card h3,.vp-card h4{margin:0 0 8px;font-size:15px;letter-spacing:-.01em}
.vp-h4{display:flex;gap:8px;align-items:center;margin:18px 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.08em}.vp-h4 span{font:600 11px ui-monospace,monospace;background:var(--vp-ink);color:#f4f4f2;padding:2px 6px;border-radius:2px}
.vp-note{background:#ececea;border-left:3px solid var(--vp-nardo);padding:10px 12px;font-size:13.5px;border-radius:2px;color:var(--vp-ink)}
.vp-alert{background:#fbeaec;border-left:3px solid var(--vp-red);padding:12px;font-size:14px;color:var(--vp-red-d);display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.vp-msg{margin-top:8px;font-size:13px;padding:8px 10px;background:#e8efe9;color:var(--vp-ok);border-radius:2px}.vp-msg.is-bad{background:#fbeaec;color:var(--vp-red-d)}
.vp-empty{padding:26px 16px;text-align:center;border:1px dashed var(--vp-nardo-l);color:var(--vp-nardo);font-size:14px;display:flex;flex-direction:column;gap:4px;border-radius:var(--vp-r)}.vp-empty b{color:var(--vp-ink)}
.vp-btn{appearance:none;border:1px solid var(--vp-ink);background:transparent;color:var(--vp-ink);font:600 13px/1 inherit;padding:10px 14px;min-height:40px;border-radius:2px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:transform .12s,background .12s;white-space:nowrap}
.vp-btn:active{transform:translateY(1px)}.vp-btn[disabled]{opacity:.45;cursor:not-allowed}
.vp-btn.is-primary,.vp-btn.is-dark{background:var(--vp-ink);color:#f4f4f2}.vp-btn.is-primary:hover{background:#2a2c2e}
.vp-btn.is-red{background:var(--vp-red);border-color:var(--vp-red);color:#fff8f8}.vp-btn.is-ghost{border-color:var(--vp-nardo-l)}.vp-btn.is-ghost:hover{border-color:var(--vp-ink)}
.vp-file{position:relative;overflow:hidden}.vp-file input{position:absolute;inset:0;opacity:0;cursor:pointer;font-size:0}
.vp-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
.vp-chip{display:inline-flex;align-items:center;font:600 11px/1 ui-monospace,monospace;letter-spacing:.04em;text-transform:uppercase;padding:5px 7px;border:1px solid var(--vp-nardo-l);border-radius:2px;color:var(--vp-nardo);background:var(--vp-card)}
.vp-chip.is-ok{border-color:var(--vp-ok);color:var(--vp-ok)}.vp-chip.is-warn{border-color:var(--vp-warn);color:var(--vp-warn)}.vp-chip.is-red{background:var(--vp-red);border-color:var(--vp-red);color:#fff}.vp-chip.is-on{background:var(--vp-ink);border-color:var(--vp-ink);color:#f4f4f2}
.vp-chips{display:flex;gap:6px;flex-wrap:wrap}
.vp-f{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:600;color:var(--vp-nardo);border:0;padding:0;margin:8px 0 0;min-width:0}
.vp-f input,.vp-f select,.vp-f textarea{font:400 15px inherit;color:var(--vp-ink);background:#fff;border:1px solid var(--vp-nardo-l);border-radius:2px;padding:9px 10px;min-height:42px;width:100%;box-sizing:border-box}
.vp-f input:focus,.vp-f select:focus,.vp-f textarea:focus{outline:2px solid var(--vp-ink);outline-offset:-1px}
.vp-narrow{max-width:320px}.vp-grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.vp-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.vp-mode{border:1px solid var(--vp-line);padding:14px;cursor:pointer;display:flex;flex-direction:column;gap:6px;border-radius:2px;position:relative}
.vp-mode input{position:absolute;opacity:0}.vp-mode b{font-size:16px}.vp-mode small{color:var(--vp-nardo);font-size:12.5px;line-height:1.4}
.vp-mode.is-on{border-color:var(--vp-ink);box-shadow:inset 0 -4px 0 var(--vp-red)}
.vp-grp{margin-top:10px}.vp-grp>small{font:600 11px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--vp-nardo)}
.vp-checks{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.vp-checks label{display:flex;gap:7px;align-items:center;border:1px solid var(--vp-line);padding:8px 10px;font-size:13.5px;cursor:pointer;border-radius:2px;background:#fff}
.vp-checks label:has(input:checked){border-color:var(--vp-ink);background:#ececea}
.vp-row2{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;align-items:end}
.vp-check{display:flex;gap:10px;align-items:flex-start;cursor:pointer}.vp-check span{display:flex;flex-direction:column;gap:3px;font-size:14px}.vp-check small{color:var(--vp-nardo)}.vp-check input{width:18px;height:18px;margin-top:2px;accent-color:var(--vp-ink)}
.vp-skel{display:flex;flex-direction:column;gap:10px;padding:8px 0}.vp-skel i{height:54px;background:linear-gradient(90deg,#e6e6e3,#f2f2f0,#e6e6e3);background-size:200% 100%;animation:vp-sh 1.3s linear infinite;border-radius:2px}.vp-skel i:nth-child(2){width:80%}.vp-skel i:nth-child(3){width:60%}
@keyframes vp-sh{to{background-position:-200% 0}}
/* dialog */
body.vp-lock{overflow:hidden}
.vp-back{position:fixed;inset:0;z-index:1200;background:rgba(18,19,20,.62);display:flex;align-items:center;justify-content:center;padding:20px;animation:vp-in .18s ease-out}
.vp-dlg{background:var(--vp-paper);width:min(1080px,100%);max-height:calc(100dvh - 40px);display:flex;flex-direction:column;border-radius:var(--vp-r);overflow:hidden;animation:vp-up .22s cubic-bezier(.2,.8,.2,1)}
@keyframes vp-in{from{opacity:0}}@keyframes vp-up{from{transform:translateY(14px);opacity:0}}
.vp-dhead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:16px 18px;background:var(--vp-ink);color:#f4f4f2;border-bottom:3px solid var(--vp-red)}
.vp-dhead h3{margin:4px 0 2px;font-size:20px;letter-spacing:-.01em}.vp-dhead .vp-foot{color:#a5a7aa;font-family:ui-monospace,monospace}.vp-dhead .vp-eye{color:#9a9c9f}
.vp-hacts{display:flex;gap:8px;align-items:center}.vp-hacts .vp-btn{color:#f4f4f2;border-color:#55575a}
.vp-x{background:transparent;border:1px solid #55575a;color:#f4f4f2;font:600 13px inherit;padding:10px 12px;min-height:40px;border-radius:2px;cursor:pointer}
.vp-body{overflow:auto;padding:16px 18px 28px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.vp-comp{display:grid;grid-template-columns:auto 1fr 1fr;gap:10px;align-items:stretch;margin-bottom:12px}.vp-comp>.vp-chip{align-self:center}
.vp-cbox{border:1px solid var(--vp-line);border-left:4px solid var(--vp-nardo);padding:8px 12px;background:var(--vp-card);display:flex;flex-direction:column;gap:2px}
.vp-cbox small{font:600 10.5px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.12em;color:var(--vp-nardo)}.vp-cbox b{font-size:16px}.vp-cbox span{font-size:12.5px;color:var(--vp-nardo)}
.vp-cbox.is-ok{border-left-color:var(--vp-ok)}.vp-cbox.is-red{border-left-color:var(--vp-red)}.vp-cbox.is-red b{color:var(--vp-red-d)}
.vp-tabs{display:flex;gap:0;border-bottom:2px solid var(--vp-ink);margin-bottom:14px;overflow-x:auto;scrollbar-width:none}
.vp-tabs button{appearance:none;background:transparent;border:0;padding:11px 14px;font:600 13.5px inherit;color:var(--vp-nardo);cursor:pointer;white-space:nowrap;min-height:44px}
.vp-tabs button.is-on{background:var(--vp-ink);color:#f4f4f2}.vp-tabs button b{background:var(--vp-red);color:#fff;font-size:11px;padding:1px 5px;border-radius:2px}
.vp-prog{display:flex;align-items:center;gap:12px;margin-bottom:12px;font:600 12.5px ui-monospace,monospace;color:var(--vp-nardo)}.vp-prog .vp-bar{flex:1}
.vp-bar{height:6px;background:#dddcd9;overflow:hidden;border-radius:1px}.vp-bar i{display:block;height:100%;background:var(--vp-ink);transform-origin:left;transition:transform .25s}
.vp-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.vp-slot{background:var(--vp-card);border:1px solid var(--vp-line);border-radius:var(--vp-r);overflow:hidden;display:flex;flex-direction:column}
.vp-slot.is-req{border-top:3px solid var(--vp-red)}.vp-slot.is-done{border-top:3px solid var(--vp-ink)}
.vp-shot{aspect-ratio:4/3;background:repeating-linear-gradient(135deg,#e9e9e6 0 10px,#e2e2df 10px 20px);display:flex;align-items:center;justify-content:center}
.vp-shot img{width:100%;height:100%;object-fit:cover;display:block}
.vp-ghost{font:600 12px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--vp-nardo);padding:10px;text-align:center}
.vp-sinfo{padding:10px 12px 12px;display:flex;flex-direction:column;gap:6px}.vp-stop{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.vp-stop b{font-size:14.5px;margin-right:auto}
.vp-sinfo .vp-acts{margin-top:2px}.vp-sinfo .vp-btn{flex:1 1 auto;justify-content:center}
.vp-up{display:flex;flex-direction:column;gap:4px;font-size:12px}.vp-up.is-error span{color:var(--vp-red-d)}.vp-up.is-done span{color:var(--vp-ok)}.vp-up.is-wait span{color:var(--vp-warn)}.vp-up.is-error .vp-bar i{background:var(--vp-red)}.vp-up.is-done .vp-bar i{background:var(--vp-ok)}
.vp-hist{list-style:none;padding:0;margin:4px 0 0;display:flex;flex-direction:column;gap:6px}.vp-hist li{display:flex;gap:8px;align-items:center;font-size:12px}.vp-hist img{width:56px;height:42px;object-fit:cover;border-radius:2px}
.vp-int{margin-top:18px;padding:14px;border:1px solid var(--vp-line);background:#ececea;border-radius:var(--vp-r)}
.vp-int header{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px;flex-wrap:wrap}.vp-int h4{margin:0 0 2px}
.vp-gate{margin-top:16px;border-left:4px solid var(--vp-red)}
.vp-dmg{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:18px}
.vp-map{position:sticky;top:0;align-self:start}
.vp-mapin{position:relative;aspect-ratio:100/160;cursor:crosshair;background:var(--vp-card);border:1px solid var(--vp-line);border-radius:var(--vp-r);touch-action:manipulation}
.vp-car{width:100%;height:100%;display:block}.vp-car .b{fill:#e4e4e1;stroke:var(--vp-ink);stroke-width:.8}.vp-car .g{fill:var(--vp-nardo-l);stroke:var(--vp-nardo);stroke-width:.5}.vp-car .c{fill:#d6d6d3}.vp-car .w{fill:var(--vp-ink)}.vp-car .t{font:600 4px ui-monospace,monospace;fill:var(--vp-nardo);text-anchor:middle;letter-spacing:.4px}
.vp-pin{position:absolute;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;background:var(--vp-red);border:2px solid #fff;color:#fff;font:700 11px/18px ui-monospace,monospace;text-align:center;font-style:normal;pointer-events:none;animation:vp-pop .2s ease-out}
.vp-pin.is-old{background:var(--vp-ink)}@keyframes vp-pop{from{transform:scale(.4);opacity:0}}
.vp-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:6px;margin-top:4px}
.vp-pick label{position:relative;border:2px solid transparent;cursor:pointer;display:flex;flex-direction:column;gap:2px;font-weight:400}.vp-pick label.is-on{border-color:var(--vp-red)}
.vp-pick input{position:absolute;top:4px;left:4px;accent-color:var(--vp-red)}.vp-pick img{width:100%;aspect-ratio:4/3;object-fit:cover}.vp-pick small{font-size:10.5px;color:var(--vp-nardo)}
.vp-ditem{border-left:3px solid var(--vp-ink);background:var(--vp-card);padding:10px 12px;margin-bottom:8px;display:flex;flex-direction:column;gap:4px}.vp-ditem p{margin:0;font-size:14px}
.vp-thumbs{display:flex;gap:6px;flex-wrap:wrap}.vp-thumbs img{width:64px;height:48px;object-fit:cover;border-radius:2px}
.vp-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.vp-pair figure{margin:0;background:var(--vp-card);border:1px solid var(--vp-line);border-radius:var(--vp-r);overflow:hidden}
.vp-pair img,.vp-pair .vp-ghost{width:100%;aspect-ratio:4/3;object-fit:cover;display:flex;align-items:center;justify-content:center;background:#e4e4e1}
.vp-pair figcaption{padding:8px 10px;display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--vp-nardo)}.vp-pair figcaption b{color:var(--vp-ink);font-size:13px}
.vp-audit{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.vp-audit li{font-size:13px;padding:8px 10px;background:var(--vp-card);border:1px solid var(--vp-line)}.vp-audit p{margin:4px 0 0}
/* library */
.vp-filt{display:grid;grid-template-columns:2fr repeat(5,1fr);gap:10px;align-items:end;background:var(--vp-card);border:1px solid var(--vp-line);padding:12px 14px;border-radius:var(--vp-r)}
.vp-filt .vp-acts{grid-column:1/-1;margin-top:0}
.vp-lmeta{font:600 12px ui-monospace,monospace;color:var(--vp-nardo);text-transform:uppercase;letter-spacing:.08em}.vp-lmeta b{color:var(--vp-ink)}
.vp-ltable{display:flex;flex-direction:column;border-top:2px solid var(--vp-ink)}
.vp-lrow{appearance:none;display:grid;grid-template-columns:110px 1.6fr 1.2fr auto;gap:12px;align-items:center;text-align:left;background:var(--vp-card);border:0;border-bottom:1px solid var(--vp-line);padding:12px 12px;cursor:pointer;font:inherit;color:var(--vp-ink);transition:background .12s}
.vp-lrow:hover{background:#ececea;box-shadow:inset 3px 0 0 var(--vp-red)}
.vp-ln{font:700 13px ui-monospace,monospace}.vp-lv,.vp-lp{display:flex;flex-direction:column;gap:2px;min-width:0}.vp-lv b{font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vp-lv small,.vp-lp small{color:var(--vp-nardo);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vp-ls{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.vp-pager{display:flex;gap:12px;align-items:center;justify-content:center;font:600 12.5px ui-monospace,monospace}
.vp-rhead{padding:16px 0 4px}.vp-rhead h2{margin:4px 0 8px;font-size:clamp(22px,3vw,30px);letter-spacing:-.02em}
.vp-tabs-lib{margin-bottom:0}.vp-tabbody{padding-top:14px}
.vp-dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1px;background:var(--vp-line);border:1px solid var(--vp-line);margin:0 0 14px}
.vp-dl div{background:var(--vp-card);padding:10px 12px}.vp-dl dt{font:600 10.5px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--vp-nardo)}.vp-dl dd{margin:4px 0 0;font-size:14.5px;word-break:break-word}
.vp-gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}.vp-gal a{display:flex;flex-direction:column;gap:3px;color:var(--vp-ink);text-decoration:none}.vp-gal img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:2px}.vp-gal small{font-size:11.5px;color:var(--vp-nardo)}
.vp-ins{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:5px;font-size:13.5px}
.vp-tl{list-style:none;padding:0 0 0 14px;margin:0;border-left:2px solid var(--vp-ink);display:flex;flex-direction:column;gap:10px}.vp-tl li{font-size:13.5px;position:relative}.vp-tl li:before{content:"";position:absolute;left:-20px;top:5px;width:8px;height:8px;background:var(--vp-red)}.vp-tl time{display:block;font:600 11px ui-monospace,monospace;color:var(--vp-nardo)}
.vp-docs{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.vp-doc{display:flex;flex-direction:column;gap:3px;padding:12px;border:1px solid var(--vp-line);background:var(--vp-card);color:var(--vp-ink);text-decoration:none;border-left:3px solid var(--vp-ink)}.vp-doc:hover{border-left-color:var(--vp-red)}.vp-doc small{color:var(--vp-nardo)}
.vp-rel{display:flex;flex-direction:column;gap:6px}.vp-relrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.vp-relrow span{margin-right:auto;font-size:13.5px}.vp-relrow small{color:var(--vp-nardo)}
.vp-cslink{margin-top:16px;display:flex;justify-content:space-between;gap:14px;align-items:center;padding:16px;background:#ececea;border-left:4px solid var(--vp-red);border-radius:var(--vp-r);flex-wrap:wrap}.vp-cslink p{margin:4px 0 0;font-size:13px;color:var(--vp-nardo)}
@media (max-width:900px){.vp-filt{grid-template-columns:1fr 1fr}.vp-filt .vp-q{grid-column:1/-1}.vp-lrow{grid-template-columns:1fr auto}.vp-ln{grid-column:1/-1}.vp-lp{display:none}}
@media (max-width:767px){
 .vp-back{padding:0;align-items:stretch}.vp-dlg{max-height:100dvh;height:100dvh;border-radius:0}
 .vp-dhead{padding:calc(10px + env(safe-area-inset-top)) 14px 12px}.vp-dhead h3{font-size:17px}.vp-hacts{flex-direction:column;align-items:stretch}
 .vp-body{padding:12px 12px calc(28px + env(safe-area-inset-bottom))}
 .vp-comp{grid-template-columns:1fr 1fr}.vp-comp>.vp-chip{grid-column:1/-1;justify-self:start}
 .vp-slots{grid-template-columns:1fr}.vp-modes,.vp-row2,.vp-grid2,.vp-dmg{grid-template-columns:1fr}
 .vp-map{position:static;max-width:260px;margin:0 auto;width:100%}
 .vp-pair{grid-template-columns:1fr}.vp-hero{flex-direction:column;align-items:flex-start;padding:18px}
 .vp-filt{grid-template-columns:1fr}.vp-btn{min-height:44px}
}
@media (prefers-reduced-motion:reduce){.vp-back,.vp-dlg,.vp-pin,.vp-skel i{animation:none}}
.vp-est ul{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-direction:column;gap:3px;font-size:13px}.vp-est li,.vp-esttot{display:flex;justify-content:space-between;gap:8px}.vp-esttot{border-top:1px solid var(--vp-line);margin-top:6px;padding-top:6px;font-size:13.5px}
.vp-ditem .vp-audit li{background:#fff}
.vp-vin{margin-bottom:12px;font-size:12.5px;border-left-color:var(--vp-warn)}
