/* Joyride Auto Leasing brand — navy #162b3f, blue #449ccb, teal #52bfb4, gradient #2bb5c8 → #6cc47a → #a5cf3f */
:root{--navy:#162b3f;--navy2:#1f3a55;--blue:#1a9fb0;--teal:#52bfb4;--green:#6cc47a;--lime:#a5cf3f;--bg:#f3f6f8;--line:#e2e8ee;--ink:#1a2a3a;--muted:#5d6b7a;
--grad:linear-gradient(90deg,#2bb5c8 0%,#6cc47a 55%,#a5cf3f 100%);--r:14px;--shadow:0 1px 2px rgba(22,43,63,.06),0 4px 16px rgba(22,43,63,.06)}
*{box-sizing:border-box}
body{font-family:"Mark Pro",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;margin:0;background:var(--bg);color:var(--ink);font-size:15px;line-height:1.45;-webkit-text-size-adjust:100%}
a{color:var(--link)}a:hover{color:var(--navy)}
h1{font-size:1.5rem;margin:.6em 0 .4em;color:var(--navy);letter-spacing:-.01em}h2{font-size:1.15rem;margin:1.6em 0 .6em;color:var(--navy)}h3{margin:0 0 .5em;color:var(--navy);font-size:1rem}
small{color:var(--muted)}
/* header */
header{background:var(--navy);color:#fff;padding:10px 16px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;position:relative;box-shadow:0 2px 10px rgba(0,0,0,.15)}
header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--grad)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff}.brand img{height:30px;width:auto;display:block}
.brand-sub{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;opacity:.75;border-left:1px solid rgba(255,255,255,.3);padding-left:10px}
.brand-acct{text-transform:none;letter-spacing:.02em;font-weight:600;opacity:.9;max-width:42vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
header nav{display:flex;align-items:center;flex-wrap:wrap;gap:4px 2px;width:100%}
header nav a{color:#fff;text-decoration:none;padding:6px 10px;border-radius:999px;font-size:.92rem}header nav a:hover{background:rgba(255,255,255,.12);color:#fff}
.who{opacity:.7;font-size:.8rem;margin:0 6px 0 auto;max-width:45vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
header nav button{background:transparent;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.45);border-radius:999px;padding:5px 12px;font-size:.85rem}header nav button:hover{background:rgba(255,255,255,.12)}
body.guest header{justify-content:center}
main{padding:14px 14px 10px;max-width:1240px;margin:auto}
footer{text-align:center;padding:22px 16px 28px;color:var(--muted);border-top:1px solid var(--line);margin-top:34px;font-size:.85rem;background:#fff}
.foot-logo{height:22px;width:auto;margin-bottom:6px;opacity:.9}
/* tables */
table{border-collapse:separate;border-spacing:0;width:100%;background:#fff;margin-bottom:14px;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
th,td{border-bottom:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top;font-size:.9rem}
th{background:#eef4f8;color:var(--navy);font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
tr:last-child td{border-bottom:0}tr:hover td{background:#f8fbfd}
td a{font-weight:600;text-decoration:none}
@media(min-width:900px){table{display:table}}
/* badges */
.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.02em;white-space:nowrap}
.ok{background:#e1f5e4;color:#1d6b33}.soon{background:#fff1cc;color:#7a5200}.expired{background:#fde0e0;color:#9b1c1c}.unknown{background:#edf0f3;color:var(--muted)}.sample{background:#e3f1fa;color:#1e5f8c}
.sample-banner{background:#eaf6fb;border:1px dashed var(--blue);color:#1e4f72;padding:10px 12px;border-radius:12px;font-size:.9rem}
.alert{background:#fff7e0;border:1px solid #f0c94a;border-left:4px solid #e0a800;padding:10px 12px;border-radius:12px;font-size:.9rem}
/* cards */
.cards{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:700px){.cards{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.cards .card::before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:var(--grad)}
.narrow{max-width:380px;margin:28px auto}
.login{text-align:center;padding:28px 22px}.login form{text-align:left}.login h1{font-size:1.25rem;margin-top:18px}
.login-logo{width:220px;max-width:80%;height:auto}.login-sub{margin:6px 0 0;color:var(--muted);font-size:.85rem}
.login label{margin-bottom:12px}.login input{width:100%}.login button{width:100%;padding:12px;font-size:1rem;margin-top:6px}
.tag{margin:18px 0 0;font-size:.8rem;color:var(--teal);font-weight:600;letter-spacing:.05em}
/* buttons */
button,.btn{font:inherit;display:inline-block;background:var(--navy);color:#fff;border:0;padding:9px 16px;border-radius:999px;text-decoration:none;cursor:pointer;font-weight:600;font-size:.9rem;line-height:1.2;transition:filter .15s,transform .05s}
button:hover,.btn:hover{filter:brightness(1.15);color:#fff}button:active,.btn:active{transform:translateY(1px)}
.btn{margin:3px 0}
.inline{display:inline}
/* forms */
form.grid{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;background:#fff;padding:14px;border:1px solid var(--line);border-radius:var(--r);margin-bottom:20px;box-shadow:var(--shadow)}
form.grid label{flex:1 1 140px}form.grid label.chk{flex:1 1 100%}form.grid>button{flex:1 1 100%}
@media(min-width:700px){form.grid>button{flex:0 0 auto}form.grid label.chk{flex:0 1 auto}}
label{display:flex;flex-direction:column;font-size:.8rem;color:var(--muted);font-weight:600;gap:4px}label.chk{flex-direction:row;align-items:center;gap:6px}
input,select{font:inherit;font-size:16px;padding:9px 11px;border:1px solid #cbd5df;border-radius:10px;background:#fff;color:var(--ink);min-width:0}
input:focus,select:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(82,191,180,.25)}
input[type=checkbox]{width:18px;height:18px;accent-color:var(--teal)}
td form.inline{display:flex;flex-wrap:wrap;gap:6px}td form.inline input{padding:6px 8px;font-size:14px}td form.inline button{padding:6px 12px}
.err{color:#b42323;font-weight:600}
.pill{display:inline-block;background:#e6f3f8;color:var(--navy);padding:4px 10px;border-radius:999px;margin:0 4px 6px 0;font-size:.85rem}
pre.doc{background:#fff;padding:16px;white-space:pre-wrap;border-radius:var(--r);border:1px solid var(--line);font-size:.85rem}
.mono{font-family:inherit;letter-spacing:.5px;font-variant-numeric:tabular-nums}
.copy-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;margin-left:6px;vertical-align:-7px;border:none;border-radius:8px;background:#eaf3f8;color:var(--navy);cursor:pointer}
.copy-btn svg{width:14px;height:14px}.copy-btn:hover{background:#d9ecf5;filter:none}.copy-btn.ok{color:#1d8f45;background:#e1f5e4}
dialog.modal{border:none;border-radius:18px;padding:22px;max-width:420px;width:calc(100% - 32px);box-shadow:0 20px 50px rgba(0,0,0,.3)}
dialog.modal::backdrop{background:rgba(22,43,63,.5)}
dialog.modal .row{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}
.docs{margin-top:12px;border-top:1px solid var(--line);padding-top:10px;font-size:13px}
.doc{margin:4px 0}.doc-del,.doc-reread{background:none;border:1px solid #ddd;border-radius:4px;padding:0 5px;font-size:12px;cursor:pointer;line-height:18px;color:#555}.doc-del:hover{border-color:#c33;color:#c33}.doc a{text-decoration:none}
.upload-btn{display:inline-block;margin-top:6px;padding:6px 12px;border:1.5px dashed var(--blue);border-radius:999px;color:var(--link);cursor:pointer;font-size:12px;font-weight:600}
.upload-btn:hover{background:#eaf6fb}
.btn-row{display:flex;gap:8px;flex-wrap:wrap;align-items:stretch}
.btn-row .btn{margin:0;flex:1 1 0;min-width:0;padding:10px 6px;font-size:14px;white-space:nowrap;text-align:center;border-radius:999px}
@media(min-width:700px){header{padding:12px 28px}header nav{width:auto}.who{margin-left:10px;max-width:none}.brand img{height:34px}main{padding:22px 28px}h1{font-size:1.75rem}}
.btn-row .btn{flex:1 1 130px;white-space:normal}
@media(max-width:899px){
table.vt{display:block;background:transparent;border:0;box-shadow:none;overflow:visible}table.vt tbody{display:block}
table.vt tr:first-child{display:none}
table.vt tr{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:14px;margin-bottom:12px;position:relative;overflow:hidden}
table.vt tr::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--grad)}
table.vt td{border:0;padding:0;font-size:.88rem;background:none!important}
table.vt td::before{content:attr(data-l);display:block;font-size:.66rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:700;margin-bottom:2px}
table.vt td[data-l=Vehicle],table.vt td[data-l="Plate / VIN"],table.vt td[data-l=Customer]{grid-column:1/-1}
table.vt td[data-l=Vehicle]::before{display:none}table.vt td[data-l=Vehicle] a{font-size:1.05rem}
}
td form.inline{min-width:200px}
/* accounts */
.muted{color:var(--muted);margin:.2em 0 0;font-size:.9rem}.crumb{margin:6px 0 0}.crumb a{text-decoration:none;font-weight:600}
.acct-head{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;justify-content:space-between;margin-bottom:14px}.acct-head h1{margin-bottom:0}
.acct-head .btn{flex:0 0 auto;padding:10px 18px}
@media(max-width:520px){.acct-head .btn{width:100%;text-align:center}}
.cards.accts{display:grid;gap:14px;grid-template-columns:1fr;align-items:stretch}
@media(min-width:700px){.cards.accts{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}}
@media(min-width:1100px){.cards.accts{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}}
.card.acct{display:flex;flex-direction:column;height:100%;text-decoration:none;color:inherit;transition:transform .12s,box-shadow .12s}
.card.acct:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(22,43,63,.12)}
.card.acct::before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:var(--grad)}
.acct-top{display:flex;gap:12px;align-items:flex-start;min-height:4.6rem}.acct-top>div:nth-child(2){flex:1;min-width:0}.acct-top h3{margin:0 0 4px;font-size:1.1rem;line-height:1.25;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-height:2.5em}
.acct-top small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3;min-height:1.3em}
.acct-ic{width:44px;height:44px;border-radius:12px;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:800;font-size:1.2rem;flex:0 0 auto;box-shadow:inset 0 -3px 0 var(--teal)}
.acct-n{text-align:center;flex:0 0 auto;padding-top:2px}.acct-n strong{display:block;font-size:1.6rem;line-height:1;color:var(--navy)}.acct-n small{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em}
.stats{display:grid;grid-template-columns:1fr;gap:6px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.stat{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:.85rem;min-height:1.6em}.stat span{flex:1;color:var(--muted);font-weight:600}
.acct-go{display:block;margin-top:auto;padding-top:12px;font-weight:700;color:var(--link);font-size:.9rem}
/* vehicle list row numbers */
th.num,td.row-num{width:2.2rem;text-align:center;color:var(--muted);font-variant-numeric:tabular-nums;font-weight:700}
td.row-num .num{display:inline-block;min-width:1.5rem}
@media(max-width:899px){
table.vt td.row-num,table.vt td.sel{grid-column:auto;position:absolute;top:10px;z-index:1}
table.vt td.sel{right:12px}
table.vt td.row-num{left:14px;padding:0!important}
table.vt td.row-num::before{display:none}
table.vt td.row-num .num{display:inline-grid;place-items:center;min-width:26px;height:26px;border-radius:999px;background:#eef4f8;color:var(--navy);font-size:.8rem;font-weight:800}
table.vt td[data-l=Vehicle]{padding-left:36px!important;padding-right:36px!important}
}
.parse{margin:4px 0 2px;padding:6px 10px;border-radius:8px;font-size:.85rem;font-weight:600}
.parse-ok{background:#e6f7f2;color:#0b6b52;border-left:4px solid var(--teal)}
.parse-warn{background:#fff6e0;color:#8a5a00;border-left:4px solid #f0b429}
.parse-bad{background:#fde8e8;color:#9b1c1c;border-left:4px solid #e02424}
.smart{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:14px 0;border-left:4px solid var(--teal)}.smart>div:first-child{flex:1;min-width:240px}.smart h3{margin:0 0 4px}.smart p{margin:0}
.smart-btn{cursor:pointer;white-space:nowrap}.smart-res{flex-basis:100%;margin:0}.smart-res:empty{display:none}.smart-res a{margin-left:6px;color:inherit;text-decoration:underline}
.smart-drop{flex-basis:100%;border:2px dashed var(--teal);border-radius:10px;padding:18px;text-align:center;color:var(--teal);font-weight:600;cursor:copy}.smart-drop.over{background:rgba(0,150,150,.08)}
.smart-sum{flex-basis:100%;margin:0}.smart-sum:empty{display:none}.smart-list{flex-basis:100%;list-style:none;margin:0;padding:0;max-height:420px;overflow:auto}.smart-list:empty{display:none}
.si{padding:6px 10px;border-left:4px solid #ccc;margin:3px 0;font-size:.92em;background:#fafafa}.si-ok{border-color:#2a9d5c}.si-warn{border-color:#e0a000}.si-bad{border-color:#d33}.si-muted{color:#888}.si a{margin-left:6px;color:inherit;text-decoration:underline}.btn-sm{padding:3px 8px;font-size:.85em}

.bulk-bar{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--navy);color:#fff;padding:10px 14px;border-radius:14px;margin:10px 0;box-shadow:0 6px 18px rgba(22,43,63,.25)}
.bulk-bar[hidden]{display:none}.bulk-bar #bulk-n{font-weight:600;margin-right:auto}.bulk-bar .btn{margin:0}
th.sel,td.sel{width:28px;text-align:center}.sel input{width:18px;height:18px;accent-color:var(--blue);cursor:pointer}
dialog.modal label.chk{display:flex;gap:8px;align-items:center;font-weight:500}
.smart-box{flex-basis:100%;display:flex;flex-direction:column;gap:6px}.smart-box[hidden]{display:none}.smart-head{display:flex;align-items:flex-start;gap:8px}.smart-head .smart-sum{flex:1}
.smart-close{background:none;border:1px solid #ccc;border-radius:6px;padding:4px 10px;cursor:pointer;color:#555;white-space:nowrap}.smart-close:hover{background:#f3f3f3}
.btn-link{background:none;border:0;padding:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit}.smart-sub{list-style:none;margin:6px 0 0;padding:0 0 0 12px}.smart-sub[hidden]{display:none}
.si-thumb{float:left;margin:0 10px 6px 0}.si-thumb img{width:120px;height:auto;border:1px solid #ccc;border-radius:4px;background:#fff}
.si{overflow:hidden}.si-view{font-size:.9em}
.smart-prev{text-align:center}.smart-prev-img{max-width:400px;width:100%;max-height:420px;object-fit:contain;border:1px solid #ccc;border-radius:4px;background:#fff}
/* vehicle search */
form.vs{position:relative;display:flex;align-items:center;margin:0}
form.vs input[name=q]{width:100%;font:inherit;border:0;border-radius:999px;padding:8px 14px 8px 36px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235d6b7a' stroke-width='2.5'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E") no-repeat 12px center;color:var(--ink);font-size:.92rem;outline:none}
form.vs input[name=q]:focus{box-shadow:0 0 0 3px rgba(82,191,180,.55)}
header form.vs-head{order:5;flex:1 1 100%;margin-top:6px}
@media(min-width:900px){header form.vs-head{order:0;flex:0 1 300px;margin:0 8px}}
.vs-big{margin:6px 0 14px}.vs-big input[name=q]{padding:13px 18px 13px 42px!important;font-size:1.05rem!important;box-shadow:0 0 0 1.5px var(--line),0 4px 14px rgba(22,43,63,.08);background-position:15px center!important}
.vs-drop{position:absolute;top:calc(100% + 6px);left:0;right:0;min-width:min(340px,92vw);background:#fff;border-radius:14px;box-shadow:0 10px 30px rgba(22,43,63,.25);z-index:50;overflow:hidden;max-height:70vh;overflow-y:auto;border-top:3px solid var(--teal)}
.vs-item{display:block;padding:9px 14px;color:var(--ink)!important;text-decoration:none;border-bottom:1px solid var(--line);border-radius:0!important;font-size:.92rem}
.vs-item small{display:block;color:var(--muted);font-size:.8rem}.vs-item:hover,.vs-item.on{background:#eaf6f5!important}
.vs-acct{display:inline-block;background:#e6f3f8;color:var(--navy);border-radius:999px;padding:1px 8px;font-size:.75rem;margin-left:4px}
.vs-all{font-weight:600;color:var(--link)!important}.vs-none{padding:12px 14px;color:var(--muted);font-size:.9rem}
.vs-meta{color:var(--muted);font-size:.85rem;margin:-8px 0 10px 4px;min-height:1em}
[data-search][hidden],table.vt tr[hidden],.vs-empty-row[hidden]{display:none!important}
td.doc-cell{cursor:pointer;border-radius:8px;transition:background .15s}
td.doc-cell:hover,td.doc-cell:focus-visible{background:rgba(0,120,200,.07);outline:none;box-shadow:inset 0 0 0 1px rgba(0,120,200,.25)}
dialog.docpop{max-width:760px;padding:18px}
.dp-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.dp-head h3{margin:0}
.dp-x{background:none;border:none;font-size:28px;line-height:1;cursor:pointer;color:#555}
.dp-list{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:6px;margin:6px 0;padding-bottom:4px}.dp-chip{flex:0 0 auto;white-space:nowrap;margin:0;color:#222;border:1px solid #c3c7cb;background:#fff;border-radius:999px;padding:4px 10px;font-size:12px;cursor:pointer}.dp-chip.on{background:#162b3f;color:#fff;border-color:#162b3f}
.dp-prev{background:#f3f5f7;border-radius:12px;min-height:120px;display:flex;align-items:center;justify-content:center;overflow:auto;max-height:65vh}
.dp-prev img{max-width:100%;max-height:65vh;display:block}.dp-prev iframe{width:100%;height:65vh;border:0}
.dp-none{color:#666;font-weight:600;padding:30px}
.dp-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.dp-acts .btn{flex:0 0 auto}
@media(max-width:600px){dialog.docpop{padding:12px;width:calc(100% - 16px)}.dp-acts .btn{flex:1 1 45%;text-align:center}}
dialog.docpop .dp-list .dp-chip{color:#222;background:#fff;width:auto;display:inline-block;margin:0;padding:4px 10px;font-size:12px;font-weight:600}
dialog.docpop .dp-list .dp-chip.on{background:#162b3f;color:#fff}
dialog.docpop .dp-x{background:none;color:#555;width:auto;padding:0 4px;margin:0}
/* v27: $45 card payment popup */
dialog.pay-modal{max-width:440px}
.pay-fee{display:flex;justify-content:space-between;align-items:center;background:#eef4f8;border-radius:12px;padding:10px 14px;margin:10px 0 4px;color:var(--navy);font-weight:600}
.pay-fee strong{font-size:1.25rem}
.pay-note{margin:0 0 10px}
.pay-fields{display:flex;flex-direction:column;gap:10px}
.pay-fields input{width:100%;box-sizing:border-box}
.pay-3{display:grid;grid-template-columns:1fr .8fr 1fr;gap:8px}
@media(max-width:380px){.pay-3{grid-template-columns:1fr 1fr}.pay-3 label:last-child{grid-column:1/-1}}
.pay-msg,.pay-off{padding:8px 12px;border-radius:10px;margin:10px 0 0;font-size:.88rem}
.pay-secure{margin:8px 0 0}
.pay-go:disabled{opacity:.55;cursor:not-allowed}
.pay-done .parse{padding:10px 12px;border-radius:10px}
.pay-txn{font-size:.95rem}.pay-txn strong{font-family:ui-monospace,Menlo,monospace}
.req-hist{list-style:none;padding:0;margin:10px 0 0;font-size:.85rem}.req-hist li{margin:4px 0}
/* v28: renewal total (NY DMV fee + $45) */
.pay-quote{display:table;width:100%;margin:10px 0 4px;border:1px solid var(--line);border-radius:12px;box-shadow:none;overflow:hidden}
.pay-quote td{padding:8px 12px;font-size:.92rem;border-bottom:1px solid var(--line)}
.pay-quote td:last-child{text-align:right;white-space:nowrap;font-weight:600;vertical-align:top}
.pay-quote .pq-sub{display:inline-block;font-size:.76rem;line-height:1.3;margin-top:2px}
.pay-quote tr.pq-total td{background:#eef4f8;color:var(--navy);font-weight:800;font-size:1.1rem;border-bottom:0}
.pay-nodmv{padding:10px 12px;border-radius:10px;margin:10px 0 0;font-size:.9rem}
fieldset.dmv-fs{flex:1 1 100%;display:flex;flex-wrap:wrap;gap:12px;border:1px dashed #cbd5df;border-radius:12px;padding:10px 12px;margin:0}
fieldset.dmv-fs legend{font-size:.8rem;font-weight:700;color:var(--navy);padding:0 6px}
fieldset.dmv-fs label{flex:1 1 130px}.dmv-prev{flex:1 1 100%;margin:0;padding:8px 12px;border-radius:10px;font-size:.85rem}
.dmv-due{color:#8a5a00}.btn-link{background:none;color:var(--link);padding:0;font-weight:600;text-decoration:underline}
/* v29: Renew yourself on NY DMV (outline, sits next to Ask Joyride to renew) */
.btn-row .btn.btn-dmv{display:inline-flex;align-items:center;justify-content:center}
/* ---- v30 Add/Edit vehicle form: sections, smart upload, auto-fill highlights, DMV fee disclosure ---- */
form.vform{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:16px;margin-bottom:20px;display:flex;flex-direction:column;gap:14px}
.vf-sec{border:0;border-top:1px solid var(--line);margin:0;padding:12px 0 0;min-width:0}
.vf-sec legend{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--navy);padding:0 8px 0 0}
.vf-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.vf-row>label{flex:1 1 150px;min-width:0}.vf-row>label.vf-vin{flex:2 1 280px}
.vin-wrap{display:flex;gap:6px}.vin-wrap input{flex:1;letter-spacing:.04em}.vin-wrap .btn-sm{white-space:nowrap;padding:6px 12px}
.vin-st{font-weight:500;min-height:1em;font-size:.78rem}.vin-st.vin-ok{color:#0b6b52}.vin-st.vin-warn{color:#8a5a00}
form.vform textarea{font:inherit;font-size:16px;width:100%;box-sizing:border-box;padding:9px 11px;border:1px solid #cbd5df;border-radius:10px;resize:vertical;margin-top:8px}
.vf-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:12px}
.vf-foot button{min-width:160px}label.vf-sample{font-size:.75rem;font-weight:500;color:var(--muted)}label.vf-sample input{width:14px;height:14px}
.su{background:#f6fafb;border:1px solid #dbe8ec;border-radius:12px;padding:12px}
.su-head{font-size:.9rem;color:var(--navy)}.su-head .muted{font-size:.8rem;display:block;margin-top:2px}
.su-zones{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.su-zone{display:flex;flex-direction:row;align-items:center;gap:10px;border:1.5px dashed #9fcfd0;border-radius:12px;background:#fff;padding:12px 14px;cursor:pointer;color:var(--navy);font-size:.9rem;transition:background .15s,border-color .15s}
.su-zone:hover,.su-zone:focus,.su-zone.drag{background:#eaf7f5;border-color:var(--teal);outline:none}.su-zone small{font-weight:500;margin-left:auto;font-size:.72rem}.su-ic{font-size:1.3rem}.su-l{font-weight:700}
.su-status:empty{display:none}.su-status{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.su-res{font-size:.82rem;background:#fff;border:1px solid var(--line);border-left:4px solid #cbd5df;border-radius:10px;padding:8px 10px;line-height:1.45}.su-res.su-ok{border-left-color:var(--teal)}.su-res.su-warn{border-left-color:#f0b429}.su-res.su-bad{border-left-color:#e02424}.su-res.su-busy{border-left-color:var(--blue)}
.su-rh{display:flex;gap:6px;align-items:center;margin-bottom:2px}.su-x{margin-left:auto;background:none;border:0;color:var(--muted);font-size:.75rem;text-decoration:underline;cursor:pointer;padding:0}
.spin{display:inline-block;width:12px;height:12px;border:2px solid #cfe3ea;border-top-color:var(--blue);border-radius:50%;animation:spn .8s linear infinite;vertical-align:-2px}@keyframes spn{to{transform:rotate(360deg)}}
input.af,select.af{background:#eefaf7;border-color:#8fd3c9}input.af-ok,select.af-ok{border-color:#8fd3c9}
label.af-l::after{content:'auto-filled from ' attr(data-src);font-size:.66rem;font-weight:600;color:#0b6b52;order:3}
label.af-diff input,label.af-diff select{border-color:#f0b429;background:#fffaf0}
.af-hint{font-size:.74rem;color:#8a5a00;font-weight:500}.af-hint b{color:var(--ink)}.af-use{font-size:.72rem;padding:1px 8px;margin-left:4px;border-radius:6px;border:1px solid #e0b44a;background:#fff;color:#8a5a00;cursor:pointer}
.af-dtxt{color:#8a5a00}
details.dmv-adv{border:1px solid var(--line);border-radius:12px;padding:0 12px;background:#fbfcfd}
details.dmv-adv>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;padding:10px 0;font-size:.82rem;font-weight:700;color:var(--muted)}
details.dmv-adv>summary::-webkit-details-marker{display:none}details.dmv-adv>summary::before{content:'▸';font-size:.8rem;transition:transform .15s}details.dmv-adv[open]>summary::before{transform:rotate(90deg)}
.chip{display:inline-block;font-size:.72rem;font-weight:700;border-radius:999px;padding:2px 10px;margin-left:auto;cursor:help}.chip-ok{background:#e6f7f2;color:#0b6b52}.chip-warn{background:#f1f3f5;color:#6b7785}
.dmv-grid{display:flex;flex-wrap:wrap;gap:12px}.dmv-grid label{flex:1 1 130px}
.dmv-break{font-size:.8rem;margin:10px 0 4px;color:var(--ink)}.dmv-src{font-size:.72rem;color:var(--muted);margin:0 0 12px}
@media(max-width:640px){.su-zones{grid-template-columns:1fr}.su-zone small{display:none}.vf-foot button{flex:1 1 100%}form.vform{padding:12px}}
.plate-wrap{display:flex;gap:6px}.plate-wrap input{flex:1;min-width:0}select.plate-st{flex:0 0 auto;width:68px;padding:9px 6px}.plate-wrap .btn-sm{white-space:nowrap;padding:6px 12px}.plate-lust{font-weight:500;font-size:.78rem;min-height:1em}.plate-lust.vin-ok{color:#0b6b52}.plate-lust.vin-warn{color:#8a5a00}
.vf-row>label.vf-plate{flex:1.6 1 250px}
.pay-est strong{color:var(--navy)}.pay-hold-note{margin:6px 0 10px;line-height:1.4}.pay-hold-note small{color:var(--ink);font-size:.82rem}
.hold-form{display:flex;gap:6px;align-items:flex-end;flex-wrap:wrap;margin:6px 0 4px}.hold-form label{font-size:.72rem}.hold-form input{width:110px;padding:5px 8px;font-size:14px}
.danger-link{color:#b42318!important}.admin-flash{margin:6px 0 10px}
.pay-est-x{display:block;margin-top:4px;color:var(--navy)}label.dmv-confirm{font-size:.8rem;font-weight:600;color:var(--ink);margin:4px 0 8px;align-items:flex-start}label.dmv-confirm small{font-weight:500}
/* v35 saved cards */
.saved-card{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;border:1px solid var(--line,#e3e7ee);border-radius:10px;padding:8px 12px;margin:8px 0 12px;background:#fff;font-size:.9rem}
.saved-card .sc-h{font-weight:700;color:var(--navy)}.saved-card .sc-act{display:flex;gap:6px;margin-left:auto}.saved-card .sc-act form{margin:0}
.btn-sm{padding:5px 10px;font-size:.8rem}
.pay-saved{display:flex;flex-direction:column;gap:6px;margin:8px 0 10px}label.pay-pm{border:1px solid var(--line,#e3e7ee);border-radius:8px;padding:9px 10px;color:var(--ink);font-size:.9rem;cursor:pointer}label.pay-pm:has(input:checked){border-color:var(--navy);background:#f3f6fb}
label.pay-save{color:var(--ink);font-size:.85rem;margin:8px 0 2px;align-items:flex-start}label.pay-save input{margin-top:3px}

/* v36 collapsible form sections */
details.vf-dis{border:0;border-top:1px solid var(--line);padding:0}
details.vf-dis>summary{cursor:pointer;list-style:none;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;padding:12px 0 2px}
details.vf-dis>summary::-webkit-details-marker{display:none}
details.vf-dis>summary .vf-lg{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--navy)}
details.vf-dis>summary .vf-lg::before{content:'▸';display:inline-block;margin-right:6px;transition:transform .15s}details.vf-dis[open]>summary .vf-lg::before{transform:rotate(90deg)}
details.vf-dis>summary .vf-sum{font-size:.82rem;color:var(--muted);font-weight:500}
details.vf-dis[open]>summary .vf-sum{display:none}
details.vf-dis>.vf-row{padding-bottom:4px}
/* v37 list: VIN + copy button in a straight column */
.vin-line{display:inline-flex;align-items:center;gap:6px;max-width:100%}
.vin-line .vin-txt{display:inline-block;width:18ch;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;font-size:.78rem;letter-spacing:0}
.vin-line .copy-btn{margin-left:0;vertical-align:middle;flex:0 0 26px}
/* v37 vehicle cards: Registration wide, Inspection + Insurance narrow */
@media(min-width:700px){.cards.veh-cards{grid-template-columns:1fr 1fr}.cards.veh-cards .card-reg{grid-column:1/-1}}
@media(min-width:1100px){.cards.veh-cards{grid-template-columns:2fr 1fr 1fr}.cards.veh-cards .card-reg{grid-column:auto}}
.reg-grid{display:grid;grid-template-columns:1fr;gap:4px 18px}@media(min-width:560px){.reg-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.reg-addr{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fbfcfd;margin:8px 0 10px;display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.reg-addr .ra-h{font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.reg-addr address{font-style:normal;line-height:1.4;font-weight:600;color:var(--ink)}.reg-addr .ra-none{margin:0}
.ac-cur{margin:4px 0 6px}.ac-new .ac-h{font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--navy)}
/* v37 payment method */
.saved-card.sc-cust{border-color:#bcd3e6;background:#f6fafd;padding:12px 14px}.saved-card .sc-ic{font-size:1.1rem}.saved-card .sc-none{font-weight:600;color:var(--ink)}

/* v38: vehicle cards share rows (title / body / footer) so the grey footer lines align */
.cards.veh-cards{grid-auto-rows:auto}
.cards.veh-cards>.card{display:grid;grid-row:span 3;grid-template-rows:subgrid;row-gap:0;align-content:start}
.cards.veh-cards>.card>h3{margin-bottom:10px}
.cards.veh-cards .card-foot{border-top:1px solid var(--line);margin-top:12px;padding-top:10px;align-self:stretch}
.cards.veh-cards .card-foot .docs{border-top:0;margin-top:0;padding-top:0}
.card-insp .card-foot .btn{margin:0}
/* v38: registration address panel */
.reg-grid{align-items:start}
.reg-addr{display:flex;gap:10px;align-items:flex-start;border:0;background:none;padding:2px 0 0;margin:0 0 12px;flex-direction:row}
@media(min-width:560px){.reg-addr{border-left:1px solid var(--line);padding-left:16px}}
.reg-addr .ra-pin{flex:0 0 18px;color:var(--blue,#2a7ab8);margin-top:2px}
.reg-addr .ra-body{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0}
.reg-addr .ra-h{font-size:.78rem;font-weight:600;letter-spacing:0;text-transform:none;color:var(--muted)}
.reg-addr address{font-style:normal;line-height:1.45;font-weight:600;color:var(--ink)}
.reg-addr .ra-none{color:var(--muted);font-weight:500}
.reg-addr .ra-move{margin-top:6px}
/* v38: address autocomplete */
.ac-st-wrap{position:relative}.ac-sug{position:absolute;left:0;right:0;top:100%;z-index:20;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(20,33,61,.15);margin-top:2px;overflow:hidden}
.ac-opt{display:flex;flex-direction:column;align-items:flex-start;width:100%;text-align:left;background:#fff;color:var(--ink);border:0;border-bottom:1px solid var(--line);border-radius:0;padding:8px 12px;margin:0;font-size:.9rem;cursor:pointer;box-shadow:none}
.ac-opt:last-child{border-bottom:0}.ac-opt small{color:var(--muted);font-weight:500}.ac-opt:hover,.ac-opt.on{background:#eef5fb;filter:none}
.pay-2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ac-attr{margin:0}.ac-attr small{font-size:.68rem;color:var(--muted)}
/* v38: share sheet */
.sh-btn{display:inline-flex;align-items:center;gap:8px;margin:0 0 10px;width:100%;justify-content:center}
.sh-q{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;margin:0 0 0 4px;vertical-align:middle;border:0;border-radius:8px;background:#eaf3f8;color:var(--navy);cursor:pointer;box-shadow:none}.sh-q:hover{background:#d9ecf5;filter:none}
dialog.share-modal{max-width:460px;width:calc(100% - 24px);padding:0}.sh-in{padding:16px 18px}.sh-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.sh-head h3{margin:0}.sh-veh{margin:2px 0 0;font-size:.85rem}
.sh-thumbs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.sh-th{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:var(--ink);font-size:.78rem;font-weight:600}.sh-th img{width:100%;height:110px;object-fit:cover;object-position:top;border:1px solid var(--line);border-radius:8px;background:#f6f8fa}
.sh-miss{background:#fff4e5;color:#8a4b00;border-radius:8px;padding:6px 10px;font-size:.82rem;font-weight:600;margin:0 0 10px}.sh-none{font-weight:600}
.sh-acts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.sh-act{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--navy);font-size:.78rem;font-weight:600;text-decoration:none;cursor:pointer;margin:0;box-shadow:none}.sh-act:hover{background:#f1f5f9;filter:none}.sh-ic{font-size:1.25rem;line-height:1}
.sh-qr{display:flex;gap:12px;align-items:center;margin:14px 0 6px}.sh-qr-img{flex:0 0 112px;width:112px}.sh-qr-img svg{width:112px;height:112px;display:block}.sh-qr p{margin:0;font-size:.8rem}
.sh-exp{font-size:.78rem;margin:6px 0}.sh-links summary{cursor:pointer;font-size:.8rem;font-weight:600;color:var(--muted)}.sh-link{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.75rem;padding:4px 0;border-top:1px solid var(--line)}.sh-rev{background:#fff;color:#b42318;border:1px solid #f1c4bf;border-radius:8px;padding:3px 8px;font-size:.72rem;margin:0;box-shadow:none}
@media(max-width:600px){dialog.share-modal{margin:auto 0 0;width:100%;max-width:100%;border-radius:18px 18px 0 0;max-height:92vh}}

/* ===== v40 theme (user decision): solid navy main buttons, Joyride teal for accents =====
   primary   = solid navy #162b3f, white text (hover slightly lighter) - one main CTA per card/popup, no gradients on buttons
   secondary = white with navy outline
   tertiary  = dashed teal pill (uploads) or teal text links
   accents   = Joyride teal #17a2b4 (icons, focus rings, active nav, chips); #0f7f8c for teal text (contrast)
   danger    = red; neutral = greys for text/lines/disabled; brand gradient only on decorative accent lines */
:root{--primary:#162b3f;--primary-hover:#24415e;--primary-solid:#17a2b4;--teal:#17a2b4;--teal-ink:#0f7f8c;--teal-bg:#e8f6f8;--blue:#17a2b4;
--secondary:var(--navy);--secondary-bg:#fff;--secondary-hover:#eef4f8;--neutral:#5d6b7a;--neutral-bg:#eef2f6;--neutral-line:#cfd8e2;
--danger:#b42318;--danger-hover:#9b1c1c;--link:#0f7f8c;--focus:0 0 0 3px rgba(23,162,180,.30)}
button,.btn{background:var(--primary);color:#fff;border:1.5px solid transparent;box-shadow:none}
button:not([class]):hover,.btn:hover,.btn-primary:hover{background:var(--primary-hover);filter:none;color:#fff}
button:focus-visible,.btn:focus-visible,a:focus-visible{outline:none;box-shadow:var(--focus)}
.btn-primary{background:var(--primary)!important;color:#fff!important;border-color:transparent!important}
.btn-primary:hover{background:var(--primary-hover)!important}
.btn-sec,.btn-row .btn.btn-sec{background:var(--secondary-bg)!important;color:var(--secondary)!important;border:1.5px solid var(--secondary)!important}
.btn-sec:hover{background:var(--secondary-hover)!important;color:var(--secondary)!important}
.btn-sec svg,.sh-btn svg,.insp-near svg{color:var(--teal)}
button.danger,.btn.danger{background:var(--danger)!important;color:#fff!important;border-color:transparent!important}
button.danger:hover,.btn.danger:hover{background:var(--danger-hover)!important}
.btn-sec.danger-link,.btn.danger-link{background:#fff!important;color:var(--danger)!important;border:1.5px solid #f1c4bf!important}
.btn-link{background:none!important;border:0!important;color:var(--link);padding:0;box-shadow:none}.btn-link:hover{background:none!important;color:var(--link);text-decoration:underline}
.btn-link.danger-link{color:var(--danger)!important;border:0!important}
button:not([class]):disabled,.btn:disabled,.btn:disabled:hover{background:var(--neutral-bg)!important;color:#8a97a5!important;border-color:var(--neutral-line)!important;cursor:not-allowed;opacity:1}
header nav button{background:transparent!important;border:0;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.45)}header nav button:hover{background:rgba(255,255,255,.12)!important}
header nav a.on{box-shadow:inset 0 -2px 0 var(--teal);border-radius:6px 6px 0 0}
.copy-btn,.copy-btn:hover{border:0}.copy-btn{background:var(--teal-bg);color:var(--teal-ink)}.copy-btn:hover{background:#d3eef2}
.sh-q{background:var(--teal-bg)!important;color:var(--teal-ink)!important}.sh-q:hover{background:#d3eef2!important}
.af-use,.su-x,.sh-act,.sh-rev,.sh-x,.ac-opt,.sh-q,.sel-all{box-shadow:none}
.upload-btn{border-color:var(--teal)!important;color:var(--teal-ink)!important;background:#fff}.upload-btn:hover{background:var(--teal-bg)}
a{color:var(--link)}header a,nav a,a.btn{color:inherit}
.sample-banner{background:var(--teal-bg);border-color:var(--teal);color:#0d5e66}
input:focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:var(--focus);outline:none}
.reg-addr .ra-pin{color:var(--teal)}
dialog.docpop .dp-list .dp-chip.on{background:var(--teal-bg);color:var(--teal-ink);border-color:var(--teal)}
.ac-opt:hover,.ac-opt.on,.vs-item:hover,.vs-item.on{background:var(--teal-bg)!important}
.sel input,input[type=checkbox],input[type=radio]{accent-color:var(--teal)}
/* v40 vehicle cards: clean doc links (no file names / parse text), muted placeholders, toast */
.doc-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}.doc-links .upload-btn{margin-top:0}
.doc-view{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:.88rem;color:var(--link);text-decoration:none}.doc-view:hover{text-decoration:underline}.doc-view .dv-ic{color:var(--teal)}
.doc-none{font-size:.85rem;margin:0}.ins-carrier{font-weight:600}span.muted{margin:0;font-size:inherit}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:1000;max-width:min(92vw,460px);background:var(--navy);color:#fff;padding:12px 18px;border-radius:12px;box-shadow:0 8px 28px rgba(22,43,63,.28);font-weight:600;font-size:.92rem;border-left:4px solid var(--teal);animation:tin .2s ease-out}
.toast-warn{border-left-color:#f0b429}.toast[hidden]{display:none}@keyframes tin{from{opacity:0;transform:translate(-50%,8px)}}
.admin-docs{margin-top:14px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:10px 14px}.admin-docs>summary{cursor:pointer;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.admin-docs .ad-grid{display:grid;gap:16px;margin-top:10px}@media(min-width:800px){.admin-docs .ad-grid{grid-template-columns:1fr 1fr}}.admin-docs h4{margin:0 0 6px}
/* inspection: finder button sits right under Last / Next due */
.card-insp .card-main .insp-near{display:inline-flex;align-items:center;gap:6px;margin:8px 0 0;width:auto}
.card-insp .insp-near svg{width:15px;height:15px;flex:0 0 auto;margin:0;color:var(--teal)}
.card-insp .card-foot:empty{min-height:1px}
@media(max-width:699px){.cards.veh-cards .card-insp .card-foot:empty{display:none}.card-insp .card-main{padding-bottom:2px}}
/* v39 list: share icon in a straight column at the right edge of the Vehicle cell, vertically centered */
.veh-cell{display:flex;align-items:center;gap:10px}.veh-cell .vc-txt{flex:1 1 auto;min-width:0}
.veh-cell .sh-q{flex:0 0 28px;margin:0 0 0 auto;align-self:center}

/* v41: "Joyride color" = brand teal→lime gradient pill (same hues as the header/card accent).
   Sampled from the existing --grad / card top stripe: #2bb5c8 → #6cc47a → #a5cf3f
   (teal ~#22b8c4 on the left to lime ~#8cc63f/#a5cf3f on the right), white bold text, rounded pill.
   Used only on the buttons the user named; everything else stays v40 navy/teal. */
:root{--joyride-gradient:var(--grad)}
.btn-joyride,label.btn.btn-joyride{background:var(--joyride-gradient)!important;color:#fff!important;border-color:transparent!important;font-weight:700}
.btn-joyride:hover,label.btn.btn-joyride:hover{background:var(--joyride-gradient)!important;filter:brightness(1.08);color:#fff!important}
.joyride-words{background:var(--joyride-gradient);-webkit-background-clip:text;background-clip:text;color:#a5cf3f;-webkit-text-fill-color:transparent;font-weight:700}
.reg-addr .ra-move{white-space:normal;line-height:1.25;text-align:center;max-width:100%}

/* v43: welcome dashboard tiles on the vehicle list (customer home + admin account view) */
.welcome.acct-head{margin-bottom:8px}
.dash-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 16px}
@media(min-width:800px){.dash-tiles{grid-template-columns:repeat(4,1fr);gap:12px}}
.dash-tile,button.dash-tile{display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:#fff!important;color:var(--navy)!important;border:1px solid var(--line)!important;border-radius:var(--r)!important;box-shadow:var(--shadow);padding:14px 16px 12px;text-align:left;margin:0;width:100%;position:relative;overflow:hidden;cursor:pointer;font:inherit;font-weight:600;filter:none}
.dash-tile::before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:var(--grad)}
.dash-tile:hover,button.dash-tile:hover{background:#f8fbfd!important;color:var(--navy)!important;filter:none;transform:none}
.dash-tile.on,button.dash-tile.on,.dash-tile.on:hover,button.dash-tile.on:hover{background:var(--teal-bg)!important;box-shadow:var(--shadow),0 0 0 2px var(--teal)}
.dash-tile:focus-visible{outline:none;box-shadow:var(--focus)}
.dash-ic{color:var(--teal);margin-bottom:4px;display:flex}.dash-ic svg{width:20px;height:20px}
.dash-n{font-size:1.85rem;line-height:1.1;font-weight:800;color:var(--navy);letter-spacing:-.02em}
.dash-tile.dash-soon .dash-n{color:#7a5200}
.dash-tile.dash-expired .dash-n{color:#9b1c1c}
.dash-l{font-size:.78rem;font-weight:600;color:var(--muted);line-height:1.25;margin-top:2px}

/* v44: tidy filter count, empty row, collapsed Add vehicle, request chips + panel */
.vt-toolbar{display:flex;justify-content:flex-end;align-items:baseline;gap:10px;margin:0 0 8px}
.vt-toolbar[hidden]{display:none}
.vt-toolbar .vs-meta{margin:0;min-height:0;font-size:.85rem;color:var(--muted);text-align:right}
.vs-clear{margin:0;font-size:.85rem}
td.vs-empty-td,tr.vs-empty-row td{text-align:center;padding:28px 16px;color:var(--muted);font-weight:600;background:transparent!important}
@media(max-width:899px){
table.vt tr.vs-empty-row{display:block;padding:28px 16px;text-align:center}
table.vt tr.vs-empty-row::before,table.vt tr.vs-empty-row td::before{display:none}
table.vt tr.vs-empty-row[hidden]{display:none!important}
}
.dash-s{display:block;font-size:.68rem;font-weight:500;color:var(--muted);line-height:1.3;margin-top:2px}
.req-chip{display:inline-block;margin:5px 6px 0 0;padding:2px 9px;border-radius:999px;background:#e6f7f2;color:#0b6b52;font-size:.72rem;font-weight:700;letter-spacing:.01em;text-decoration:none;line-height:1.4}
a.req-chip:hover{background:#d4f0e8;color:#0b6b52;text-decoration:none}
details.add-veh{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);margin:18px 0 20px;overflow:hidden}
details.add-veh>summary.add-veh-sum{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;padding:14px 18px;font-weight:700;color:var(--navy);font-size:1.05rem}
details.add-veh>summary.add-veh-sum::-webkit-details-marker{display:none}
details.add-veh>summary.add-veh-sum .add-plus{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:999px;background:#eef4f8;color:var(--navy);font-size:1.15rem;font-weight:800;line-height:1;flex:0 0 auto}
details.add-veh[open]>summary.add-veh-sum .add-plus{transform:rotate(45deg)}
details.add-veh>summary.add-veh-sum small{font-weight:600;color:var(--muted);font-size:.85rem}
details.add-veh[open]>summary.add-veh-sum{border-bottom:1px solid var(--line)}
details.add-veh form.vform{margin:0;border:0;border-radius:0;box-shadow:none}
.req-panel{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:16px 18px 16px 22px;margin:0 0 16px;position:relative;overflow:hidden}
.req-panel::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--grad)}
.req-panel h2{margin:0 0 10px;font-size:1.1rem}
.req-open+.req-open{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.req-kind{margin:0 0 2px;font-weight:800;color:var(--navy)}
.req-status{margin:6px 0 0;font-weight:600;color:var(--navy)}
.req-amt,.req-addr{margin:4px 0 0;font-size:.9rem}
.req-admin{margin:8px 0 0;display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;font-size:.85rem}
.req-admin a{font-weight:700;text-decoration:none}
.req-hist-block{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.req-panel>.req-hist-block:first-child{margin-top:0;padding-top:0;border-top:0}
.req-hist-h{margin:0 0 6px;font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
