:root{
  --ink:#14202B; --ink-2:#22313F; --paper:#F2F3EF; --panel:#FFFFFF; --line:#D9DCD6; --line-2:#C3C8C0;
  --steel:#5E6B75; --paint:#F0BE1B; --paint-ink:#4A3800; --go:#1F7A4C; --go-bg:#E3F1E9; --stop:#B23A2E; --stop-bg:#F8E4E1;
  --warn-bg:#FBF1CF; --info:#245A8D; --info-bg:#E2EDF7;
  --head:"Bahnschrift","DIN Alternate","DIN 1451 Std","Arial Narrow","Roboto Condensed","Segoe UI",system-ui,sans-serif;
  --body:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --r:6px; --nav-w:224px; --tab-h:60px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 var(--body);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--head);font-weight:600;letter-spacing:.005em;line-height:1.15;margin:0}
h1{font-size:1.75rem} h2{font-size:1.2rem} h3{font-size:1rem}
a{color:var(--info)} p{margin:.4em 0}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--paint);outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.muted{color:var(--steel)} .small{font-size:.85rem} .right{text-align:right} .nowrap{white-space:nowrap}
.num{font-family:var(--head);font-variant-numeric:tabular-nums}
.row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap} .row.between{justify-content:space-between}
.stack>*+*{margin-top:1rem} .grow{flex:1 1 auto}

/* ---------- shell ---------- */
.shell{display:grid;grid-template-columns:var(--nav-w) 1fr;min-height:100vh}
.nav{background:var(--ink);color:#E8ECEF;padding:1rem 0 1rem;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}
.brand{font-family:var(--head);font-weight:700;font-size:1.15rem;padding:.25rem 1.25rem 1rem;display:flex;gap:.6rem;align-items:center}
.brand .bars{display:inline-flex;gap:3px}.brand .bars i{display:block;width:4px;height:18px;background:var(--paint)}
.tenant{padding:0 1.25rem 1rem;border-bottom:1px solid #2E3E4C;margin-bottom:.75rem}
.tenant b{display:block;font-family:var(--head);font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tenant span{font-size:.8rem;color:#9AA8B3}
.nav .item{display:flex;align-items:center;gap:.7rem;padding:.6rem 1.25rem;color:#C9D2D9;text-decoration:none;position:relative;font-size:.95rem}
.nav a.item:hover{background:var(--ink-2);color:#fff}
.nav a.item[aria-current="page"]{color:#fff;background:var(--ink-2)}
.nav a.item[aria-current="page"]::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:repeating-linear-gradient(180deg,var(--paint) 0 10px,transparent 10px 16px)}
.nav .sep{height:1px;background:#2E3E4C;margin:.75rem 1.25rem}
.nav .soon{opacity:.55;cursor:default}.nav .soon em{font-style:normal;font-size:.68rem;margin-left:auto;border:1px solid #4A5B6A;border-radius:99px;padding:0 .45rem}
.nav .me{margin-top:auto;padding:1rem 1.25rem 0;border-top:1px solid #2E3E4C;font-size:.85rem}
.nav .me button{background:none;border:0;color:#9AA8B3;padding:0;text-decoration:underline;cursor:pointer}
.ico{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
main{padding:1.5rem clamp(1rem,3vw,2.25rem) 3rem;min-width:0;max-width:1200px;width:100%}
main.wide{max-width:none}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}
.page-head p{margin:.2rem 0 0;color:var(--steel)}

/* ---------- controls ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:42px;padding:.5rem 1rem;border-radius:var(--r);border:1px solid var(--line-2);background:var(--panel);cursor:pointer;font-weight:600;text-decoration:none;color:var(--ink)}
.btn:hover{border-color:var(--ink)}
.btn.primary{background:var(--paint);border-color:var(--paint);color:#241B00}
.btn.primary:hover{background:#E2B10F}
.btn.dark{background:var(--ink);border-color:var(--ink);color:#fff}
.btn.danger{color:var(--stop);border-color:#E3B9B4}.btn.danger:hover{background:var(--stop-bg);border-color:var(--stop)}
.btn.ghost{border-color:transparent;background:transparent}.btn.sm{min-height:34px;padding:.25rem .7rem;font-size:.9rem}
.btn[disabled]{opacity:.5;cursor:not-allowed}
label.f{display:block;font-weight:600;font-size:.88rem;margin-bottom:.9rem}
label.f>span.hint{display:block;font-weight:400;color:var(--steel);font-size:.8rem}
input,select,textarea{width:100%;min-height:42px;padding:.5rem .7rem;border:1px solid var(--line-2);border-radius:var(--r);background:#fff;margin-top:.25rem}
textarea{min-height:90px;resize:vertical} input[type=checkbox],input[type=radio]{width:auto;min-height:0;margin:0 .5rem 0 0}
input:focus,select:focus,textarea:focus{border-color:var(--ink)}
.grid{display:grid;gap:0 1rem;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.grid .wide{grid-column:1/-1}
.check{display:flex;align-items:flex-start;gap:.25rem;font-weight:400;padding:.3rem 0}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem 1.25rem}
.panel+.panel{margin-top:1rem}
.dash>*+*{margin-top:1rem}.dash>.stats{margin-bottom:0}
.panel>h2{margin-bottom:.8rem}
.alert{padding:.7rem .9rem;border-radius:var(--r);border:1px solid;margin:0 0 1rem;font-size:.92rem}
.alert.err{background:var(--stop-bg);border-color:#E3B9B4;color:#6E1F17}
.alert.warn{background:var(--warn-bg);border-color:#E7D48A;color:#5A4600}
.alert.ok{background:var(--go-bg);border-color:#B7DAC6;color:#124A2D}
.alert.info{background:var(--info-bg);border-color:#B5CDE4;color:#173B5A}
.empty{padding:2.5rem 1rem;text-align:center;color:var(--steel)}
.empty b{display:block;color:var(--ink);font-family:var(--head);font-size:1.1rem;margin-bottom:.25rem}

/* ---------- the stock tag ---------- */
.tag{display:inline-flex;align-items:center;font-family:var(--head);font-weight:700;font-size:.82rem;letter-spacing:.04em;background:var(--paint);color:#241B00;padding:.12rem .55rem .12rem .8rem;clip-path:polygon(.45rem 0,100% 0,100% 100%,.45rem 100%,0 50%);}
.tag.big{font-size:1.05rem;padding:.2rem .8rem .2rem 1.1rem;clip-path:polygon(.7rem 0,100% 0,100% 100%,.7rem 100%,0 50%)}
.pill{display:inline-block;padding:.05rem .6rem;border-radius:99px;font-size:.78rem;font-weight:600;border:1px solid;white-space:nowrap}
.pill.Available{background:var(--go-bg);color:#124A2D;border-color:#B7DAC6}
.pill.Incoming,.pill.InRecon{background:var(--info-bg);color:#173B5A;border-color:#B5CDE4}
.pill.OnHold{background:var(--warn-bg);color:#5A4600;border-color:#E7D48A}
.pill.Sold,.pill.Delivered,.pill.Wholesale{background:#E9EAE6;color:#3D464D;border-color:var(--line-2)}
.pill.flag{background:var(--stop-bg);color:#6E1F17;border-color:#E3B9B4}

/* ---------- stats ---------- */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:.75rem;margin-bottom:1.25rem}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:.8rem 1rem;border-top:4px solid var(--ink);container-type:inline-size;min-width:0}
.stat.paint{border-top-color:var(--paint)}.stat.alert-s{border-top-color:var(--stop)}
.stat b{display:block;font-family:var(--head);font-size:1.7rem;font-size:clamp(1.05rem,17cqi,1.7rem);line-height:1.1;white-space:nowrap}.stat b.long{font-size:clamp(.95rem,14cqi,1.7rem)}.stat span{font-size:.82rem;color:var(--steel)}
.bars-h{display:grid;gap:.4rem}.bars-h .b{display:grid;grid-template-columns:110px 1fr 36px;gap:.6rem;align-items:center;font-size:.88rem}
.bars-h .track{height:14px;background:#E9EBE6;border-radius:2px;overflow:hidden}.bars-h .fill{height:100%;background:var(--ink)}

/* ---------- vehicle list ---------- */
.filters{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem;align-items:end}
.filters>*{flex:0 1 auto}.filters input,.filters select{margin-top:0;width:auto;min-width:130px}.filters .search{flex:1 1 220px}.filters .search input{width:100%}
.vlist{display:grid;gap:.6rem}
.vrow{display:grid;grid-template-columns:116px 1fr auto;gap:.9rem;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:.55rem;text-decoration:none;color:inherit}
.vrow:hover{border-color:var(--ink)}
.thumb{width:116px;height:78px;border-radius:4px;background:#E5E7E2 center/cover no-repeat;display:flex;align-items:center;justify-content:center;color:var(--steel);font-size:.75rem;overflow:hidden}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.vmain .title{font-family:var(--head);font-weight:600;font-size:1.1rem;line-height:1.2}
.vmain .sub{font-size:.85rem;color:var(--steel);margin-top:.15rem}
.vmain .meta{display:flex;gap:.4rem .9rem;flex-wrap:wrap;font-size:.85rem;margin-top:.35rem;align-items:center}
.vside{text-align:right}.vside .price{font-family:var(--head);font-size:1.25rem;font-weight:600}.vside .cost{font-size:.8rem;color:var(--steel)}
.aged{color:var(--stop);font-weight:700}
.pager{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;gap:1rem}

/* ---------- vehicle detail ---------- */
.vhead{display:flex;gap:1rem;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;margin-bottom:1.1rem}
.vhead h1{margin:.35rem 0 .1rem}.vin{font-family:ui-monospace,Consolas,monospace;letter-spacing:.05em;font-size:.9rem}
.split{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:1rem;align-items:start}.split>.panel+.panel{margin-top:0}
.hero{aspect-ratio:4/3;background:#DFE2DC;border-radius:var(--r);overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--steel);position:relative}
.hero img{width:100%;height:100%;object-fit:cover}
.strip{display:flex;gap:.4rem;overflow-x:auto;padding:.5rem 0 .2rem}
.strip button{flex:none;width:84px;height:58px;padding:0;border:2px solid transparent;border-radius:4px;overflow:hidden;background:#DFE2DC;cursor:pointer}
.strip button[aria-current="true"]{border-color:var(--paint)}.strip img{width:100%;height:100%;object-fit:cover;display:block}
.facts{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:0}.facts dt{color:var(--steel);font-size:.88rem}.facts dd{margin:0;font-weight:600}
.odo{display:flex;align-items:baseline;gap:.5rem}.odo b{font-family:var(--head);font-size:2rem;line-height:1}
.tl{list-style:none;margin:0;padding:0}.tl li{padding:.55rem 0 .55rem 1.1rem;border-left:3px solid var(--line);position:relative;font-size:.9rem}
.tl li::before{content:"";position:absolute;left:-7px;top:.95rem;width:11px;height:11px;border-radius:50%;background:var(--ink);border:2px solid var(--paper)}
.tl .when{color:var(--steel);font-size:.78rem;display:block}.tl .chg{display:block;font-size:.82rem;color:var(--steel)}
.drop{border:2px dashed var(--line-2);border-radius:var(--r);padding:1rem;text-align:center;background:#FAFAF8}
.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.6rem}
.ph{position:relative;border-radius:4px;overflow:hidden;background:#DFE2DC;aspect-ratio:4/3}.ph img{width:100%;height:100%;object-fit:cover;display:block}
.ph .cap{position:absolute;left:0;right:0;bottom:0;background:rgba(20,32,43,.82);color:#fff;font-size:.72rem;padding:.15rem .4rem}
.ph .acts{position:absolute;top:4px;right:4px;display:flex;gap:3px}.ph .acts button{border:0;border-radius:3px;background:rgba(255,255,255,.92);padding:.1rem .4rem;font-size:.72rem;cursor:pointer;font-weight:600}
.ph .cover{position:absolute;top:4px;left:4px;background:var(--paint);font-size:.68rem;font-weight:700;padding:.05rem .4rem;border-radius:3px}

/* ---------- tables ---------- */
table.t{width:100%;border-collapse:collapse;font-size:.92rem}
table.t th{text-align:left;font-weight:600;color:var(--steel);font-size:.82rem;padding:.5rem .6rem;border-bottom:2px solid var(--ink)}
table.t td{padding:.6rem;border-bottom:1px solid var(--line);vertical-align:top}
.scroll-x{overflow-x:auto}
.perms{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:0 1.25rem}
.perms h3{grid-column:1/-1;margin:.9rem 0 .2rem}

/* ---------- modal ---------- */
.veil{position:fixed;inset:0;background:rgba(20,32,43,.55);z-index:50;display:flex;align-items:center;justify-content:center;padding:1rem;overflow:auto}
.modal{background:var(--panel);border-radius:8px;width:min(560px,100%);max-height:calc(100vh - 2rem);overflow:auto;padding:1.25rem;border-top:6px solid var(--paint)}
.modal h2{margin-bottom:.8rem}.modal .actions{display:flex;gap:.6rem;justify-content:flex-end;margin-top:1rem;flex-wrap:wrap}
.copybox{display:flex;gap:.5rem}.copybox input{font-family:ui-monospace,Consolas,monospace;font-size:.8rem}
#toasts{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--tab-h) + 14px);z-index:80;display:grid;gap:.4rem;pointer-events:none;width:min(420px,calc(100% - 2rem))}
.toast{background:var(--ink);color:#fff;padding:.65rem .9rem;border-radius:var(--r);border-left:6px solid var(--paint);box-shadow:0 6px 18px rgba(0,0,0,.25)}
.toast.err{border-left-color:#FF8A7D}
.spin{width:22px;height:22px;border:3px solid var(--line-2);border-top-color:var(--ink);border-radius:50%;animation:sp .8s linear infinite;margin:2rem auto}
@keyframes sp{to{transform:rotate(360deg)}}

/* ---------- signed-out screens ---------- */
.auth{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.auth .side{background:var(--ink);color:#fff;padding:3rem clamp(1.5rem,5vw,4rem);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.auth .side::after{content:"";position:absolute;right:-60px;top:0;bottom:0;width:150px;background:repeating-linear-gradient(180deg,var(--paint) 0 46px,transparent 46px 92px);transform:skewX(-8deg);opacity:.95}
.auth .side h1{font-size:clamp(2rem,4vw,3.2rem);max-width:12ch;margin-top:3rem}
.auth .side p{color:#B8C4CD;max-width:34ch}
.auth .form{padding:3rem clamp(1.25rem,5vw,4rem);display:flex;align-items:center}.auth .form>div{width:min(420px,100%)}
.demo{margin-top:1.25rem;font-size:.84rem;background:#fff;border:1px dashed var(--line-2);border-radius:var(--r);padding:.7rem .9rem}
.demo button{background:none;border:0;padding:0;color:var(--info);text-decoration:underline;cursor:pointer}

/* ---------- phone ---------- */
.tabs{display:none}
@media (max-width:860px){
  .shell{grid-template-columns:1fr}.nav{display:none}
  main{padding:1rem 1rem calc(var(--tab-h) + 1.5rem)}
  .tabs{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;left:0;right:0;bottom:0;height:var(--tab-h);background:var(--ink);z-index:40;padding-bottom:env(safe-area-inset-bottom)}
  .tabs a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#AEBBC5;text-decoration:none;font-size:.7rem;position:relative}
  .tabs a[aria-current="page"]{color:#fff}.tabs a[aria-current="page"]::before{content:"";position:absolute;top:0;left:20%;right:20%;height:4px;background:var(--paint)}
  .split{grid-template-columns:1fr}
  .auth{grid-template-columns:1fr}.auth .side{padding:1.5rem;min-height:190px}.auth .side h1{margin-top:1rem;font-size:1.8rem}.auth .side::after{display:none}
  .vrow{grid-template-columns:92px 1fr}.thumb{width:92px;height:70px}.vside{grid-column:1/-1;text-align:left;display:flex;gap:.8rem;align-items:baseline}
  h1{font-size:1.45rem}
  .stats{grid-template-columns:repeat(2,1fr)}
}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important}}

/* photo manager */
.pm .ph{cursor:pointer;outline-offset:2px}.pm .ph.dragging{opacity:.35}.pm .ph.over{box-shadow:0 0 0 3px var(--paint)}
.pm .ph.sel{box-shadow:0 0 0 3px var(--info)}
.ph .num{position:absolute;left:4px;bottom:22px;background:rgba(20,32,43,.85);color:#fff;font:700 .72rem var(--head);min-width:1.4rem;text-align:center;padding:.05rem .3rem;border-radius:3px}
.ph .pick{position:absolute;top:2px;right:2px;padding:4px;line-height:0;background:rgba(255,255,255,.85);border-radius:3px;cursor:pointer}.ph .pick input{margin:0;width:16px;height:16px}
.ph .arrows{position:absolute;right:4px;bottom:22px;display:none;gap:3px}.ph .arrows button{border:0;border-radius:3px;background:rgba(255,255,255,.92);width:28px;height:28px;font-size:1.1rem;line-height:1;cursor:pointer}
.ph .arrows button:disabled{opacity:.35}
@media (hover:none),(pointer:coarse){.ph .arrows{display:flex}}
.pm .ph:hover .arrows,.pm .ph:focus-within .arrows{display:flex}
/* documents */
.docs{list-style:none;margin:.6rem 0 0;padding:0}.docs li{display:flex;flex-wrap:wrap;gap:.4rem .8rem;align-items:center;padding:.7rem 0;border-top:1px solid var(--line)}
.docs .ext{flex:none;width:44px;height:44px;border-radius:4px;background:var(--ink);color:#fff;font:700 .7rem var(--head);display:flex;align-items:center;justify-content:center}
.docs .dmain{flex:1;min-width:0}.docs .dmain b{word-break:break-word}.docs .dacts{display:flex;gap:.3rem;flex-wrap:wrap;width:100%;padding-left:56px}
.pill.vis-s{background:#E8EAE6;color:var(--ink)}.pill.vis-r{background:var(--stop-bg);color:var(--stop)}.pill.vis-p{background:var(--go-bg);color:var(--go)}
fieldset.vis{border:1px solid var(--line);border-radius:var(--r);padding:.4rem .9rem .2rem;margin:.6rem 0}fieldset.vis legend{font-weight:600;padding:0 .3rem}
.roles-pick{border-left:3px solid var(--line-2);padding:.2rem 0 .2rem .8rem;margin:.4rem 0}

/* keep map layers (z-index up to 1000) inside the map so menus, dialogs and toasts stay on top */
.leaflet-container{isolation:isolate;z-index:0}

/* service jobs */
.pill.svc-Planned{background:var(--info-bg);color:var(--info)}.pill.svc-GoingToVendor,.pill.svc-AtVendor{background:var(--warn-bg);color:var(--paint-ink)}
.pill.svc-ReadyForPickup{background:var(--go-bg);color:var(--go)}.pill.svc-Returned{background:#E8EAE6;color:var(--ink)}.pill.svc-Cancelled{background:#E8EAE6;color:var(--steel);text-decoration:line-through}
.job+.job{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}.job.overdue{box-shadow:inset 4px 0 0 var(--stop);padding-left:.8rem}
.job-vendor{margin:.6rem 0 .2rem}
.steps{display:flex;list-style:none;padding:0;margin:.7rem 0;gap:0;counter-reset:s}
.steps li{flex:1;position:relative;font-size:.74rem;color:var(--steel);padding-top:1.1rem;text-align:center}
.steps li::before{content:"";position:absolute;top:.25rem;left:50%;width:.7rem;height:.7rem;margin-left:-.35rem;border-radius:50%;background:var(--line-2);z-index:1}
.steps li::after{content:"";position:absolute;top:.55rem;left:-50%;width:100%;height:2px;background:var(--line)}.steps li:first-child::after{display:none}
.steps li.done::before,.steps li.done::after,.steps li.now::after{background:var(--go)}.steps li.now::before{background:var(--paint);box-shadow:0 0 0 3px var(--warn-bg)}
.steps li.now{color:var(--ink);font-weight:700}
.legs{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:.7rem 0}
.leg{border:1px solid var(--line);border-radius:var(--r);padding:.6rem .7rem;background:#FAFBF9}.leg.done{background:var(--go-bg);border-color:#BFE0CC}
.leg-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:.2rem}
.jnotes{list-style:none;margin:.5rem 0 0;padding:0}.jnotes li{padding:.4rem 0;border-top:1px dashed var(--line)}
.checks{display:flex;flex-wrap:wrap;gap:.2rem 1.2rem;margin:.3rem 0 .6rem;font-weight:400}
details.history{margin-top:1rem}details.history summary{cursor:pointer;font-weight:600;padding:.4rem 0}
.jobgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:1rem}
.tasks{list-style:none;margin:0;padding:0}.tasks li{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.7rem 0;border-top:1px solid var(--line)}
@media(max-width:640px){.legs{grid-template-columns:1fr}.jobgrid{grid-template-columns:1fr}.tasks li{flex-direction:column;align-items:stretch}}

/* sales */
.pill.deal-Hold{background:var(--warn-bg);color:var(--paint-ink)}.pill.deal-Sold,.pill.deal-Delivered{background:var(--info-bg);color:var(--info)}.pill.deal-Cancelled{background:#E8EAE6;color:var(--steel);text-decoration:line-through}
.deal+.deal{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}.deal.closed{opacity:.7}
.deal-cust{margin:.6rem 0 .1rem}
table.money{width:100%;border-collapse:collapse;margin:.3rem 0 .6rem;font-size:.92rem}table.money td{padding:.25rem 0;border-bottom:1px solid var(--line)}table.money tr:last-child td{border-bottom:0;font-weight:700}
table.money td.num{text-align:right;white-space:nowrap}
h3.sub{margin:1rem 0 .5rem;padding-top:.6rem;border-top:1px solid var(--line);font-size:1rem}.modal h3.sub:first-of-type{border-top:0;padding-top:0;margin-top:.2rem}
.cpick .cresults{display:grid;gap:.3rem;margin-top:.4rem}.cres{display:flex;flex-direction:column;align-items:flex-start;text-align:left;border:1px solid var(--line);background:#fff;border-radius:var(--r);padding:.45rem .7rem;cursor:pointer}.cres:hover{border-color:var(--ink)}
.cchosen{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:var(--r);padding:.6rem .8rem;background:#FAFBF9}
.feerow{display:grid;grid-template-columns:1fr 9rem auto;gap:.4rem;margin-bottom:.35rem}.feerow input{margin:0}
.tibox{border-left:3px solid var(--line-2);padding-left:.9rem;margin:.3rem 0 .8rem}
.deal-sum{background:#FAFBF9;border:1px solid var(--line);border-radius:var(--r);padding:.4rem .9rem;margin-top:.6rem}

/* calendar */
.caltool{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:space-between;margin-bottom:.8rem}.calrange{font-family:var(--head);font-size:1.1rem}
.reqs{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.tl{padding:.8rem}.tl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.tl-grid{position:relative;width:max-content;min-width:100%}
.tl-row{display:flex;border-bottom:1px solid var(--line)}.tl-top{position:sticky;top:0;z-index:3;background:var(--panel);border-bottom:2px solid var(--ink)}
.tl-name{flex:none;width:150px;position:sticky;left:0;z-index:2;background:var(--panel);padding:.55rem .6rem;font-weight:600;font-size:.88rem;border-right:1px solid var(--line)}
.tl-head{position:relative;height:28px}.tl-hour{position:absolute;top:0;height:28px;font-size:.75rem;color:var(--steel);padding:.4rem .3rem;border-left:1px solid var(--line)}
.tl-lane{position:relative;height:var(--lane-h,58px);cursor:crosshair;touch-action:pan-x pan-y}
.tl-shade{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(135deg,#F0F1EE 0 6px,#E7E9E4 6px 12px);pointer-events:auto}
.tl-tick{position:absolute;top:0;bottom:0;width:1px;background:#F0F1EE}.tl-tick.hr{background:var(--line)}
.tl-ev{position:absolute;top:5px;bottom:5px;border-radius:5px;background:color-mix(in srgb,var(--c) 18%,#fff);border-left:4px solid var(--c);padding:.2rem .4rem;font-size:.75rem;line-height:1.25;overflow:hidden;cursor:grab;display:flex;flex-direction:column;z-index:1;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.tl-ev b,.tl-ev span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl-ev:focus{outline:2px solid var(--ink)}
.tl-ev.dragging{opacity:.75;cursor:grabbing;z-index:5;box-shadow:0 6px 16px rgba(0,0,0,.25)}
.tl-ev.block{background:repeating-linear-gradient(135deg,#E2E5E9 0 6px,#EDEFF2 6px 12px);border-left-color:#718096;color:#4A5568}
.tl-ev.trip{background:#F4F5F2;border:1px dashed #A0A7AE;border-left-width:1px;color:var(--steel);cursor:default;top:30px}
.tl-ev.st-Requested{border-style:dashed;border-width:1px 1px 1px 4px;background:#fff}.tl-ev.st-NoShow{opacity:.45;text-decoration:line-through}.tl-ev.st-Completed{opacity:.7}
.tl-ev.st-CheckedIn{box-shadow:inset 0 0 0 2px var(--go)}
.tl-grip{position:absolute;right:0;top:0;bottom:0;width:8px;cursor:ew-resize}
.tl-ghost{position:absolute;top:5px;bottom:5px;background:rgba(240,190,27,.35);border:2px dashed var(--paint);border-radius:5px;pointer-events:none}
.tl-nowwrap{position:absolute;top:0;bottom:0;left:150px;pointer-events:none}.tl-now{position:absolute;top:0;bottom:0;width:2px;background:var(--stop);z-index:4}
.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem}
.wday{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:.4rem;min-height:180px;display:flex;flex-direction:column;gap:.3rem}
.wday.today{border-color:var(--paint);box-shadow:inset 0 3px 0 var(--paint)}.wday.closed{background:#F6F7F4}
.wday-h{display:flex;align-items:center;gap:.4rem}.wday-h span{color:var(--steel)}.wday-h button{margin-left:auto;padding:0 .5rem}
.wev{display:flex;flex-direction:column;text-align:left;border:0;border-left:4px solid var(--c);background:color-mix(in srgb,var(--c) 14%,#fff);border-radius:4px;padding:.25rem .4rem;font:inherit;font-size:.8rem;cursor:pointer;color:inherit;text-decoration:none}
.wev b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wev.block{--c:#718096}.wev.trip{border:1px dashed #A0A7AE;background:#F4F5F2;color:var(--steel)}
.wev.st-Requested{border-style:dashed;border-width:1px 1px 1px 4px;background:#fff}.wev.st-NoShow{opacity:.5;text-decoration:line-through}
.agday+.agday{margin-top:1rem}.agday h3{margin-bottom:.4rem}
.agenda{list-style:none;margin:0;padding:0}.agenda li{display:flex;gap:.8rem;padding:.55rem .5rem;border-left:4px solid var(--c,#A0A7AE);border-bottom:1px solid var(--line);cursor:pointer}
.agenda li:hover{background:#FAFBF9}.agenda li.trip{border-left:4px dashed #A0A7AE;cursor:default;color:var(--steel)}.agenda li.st-NoShow{opacity:.55}.agenda li.st-Requested{border-left-style:dashed}
.ag-time{flex:none;width:4.6rem;font-weight:700;font-size:.88rem}
.pill.ap-Requested{background:var(--info-bg);color:var(--info)}.pill.ap-CheckedIn{background:var(--go-bg);color:var(--go)}.pill.ap-Completed{background:#E8EAE6}.pill.ap-NoShow,.pill.ap-Cancelled{background:var(--stop-bg);color:var(--stop)}
ul.warns{margin:.4rem 0;padding-left:1.2rem}
.hrow{display:grid;grid-template-columns:9rem 7.5rem auto 7.5rem;gap:.5rem;align-items:center;padding:.3rem 0;border-bottom:1px solid var(--line)}.hrow input[type=time]{margin:0}
.swatch{display:inline-block;width:14px;height:14px;border-radius:3px;vertical-align:middle}
@media(max-width:900px){.week{grid-template-columns:1fr}.wday{min-height:0}}
@media(max-width:560px){.hrow{grid-template-columns:1fr 1fr;}.hrow>span{display:none}}
/* support visits */
ul.plain{list-style:none;margin:0;padding:0}
.supportbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap;background:#6B46C1;color:#fff;padding:.55rem 1rem;margin:-1.5rem calc(-1 * clamp(1rem,3vw,2.25rem)) 1rem;font-size:.9rem}
.supportbar .btn{background:#fff;color:#44337A;border-color:#fff}
.supportnote{display:flex;justify-content:space-between;align-items:center;gap:.8rem;flex-wrap:wrap}
@media (max-width:860px){.supportbar{margin:-1rem -1rem 1rem}}
/* website analytics */
.analytics>*+*{margin-top:1rem}.analytics>.stats{margin-bottom:0}
.delta{font-size:.78rem;color:var(--steel)}.delta.up{color:#2F855A}.delta.down{color:#C53030}
ul.rank{list-style:none;margin:0;padding:0}
ul.rank li{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.45rem 0;border-bottom:1px solid var(--line)}
.rank-l{position:relative;flex:1;min-width:0;padding-bottom:6px;overflow-wrap:anywhere}
.rank-l i{position:absolute;left:0;bottom:0;height:3px;border-radius:2px;background:#2B6CB0;opacity:.55}
.chart-wrap{position:relative}
svg.chart{width:100%;height:auto;display:block;overflow:visible}
svg.chart .grid{stroke:#E4E7EA;stroke-width:1}
svg.chart .tick{font-size:11px;fill:var(--steel)}
svg.chart .bar{fill:#2B6CB0}
svg.chart .hit{fill:transparent;cursor:default;outline:none}
svg.chart .hit.on{fill:rgba(43,108,176,.07)}
.chart-tip{position:absolute;z-index:5;width:160px;background:var(--ink);color:#fff;border-radius:6px;padding:.45rem .6rem;font-size:.78rem;pointer-events:none;box-shadow:0 4px 14px rgba(0,0,0,.2)}
.chart-tip b{display:block}
/* support tickets */
.nav .item .badge,.tabs .badge{margin-left:auto;font-style:normal;background:var(--paint);color:#241B00;border-radius:999px;font-size:.72rem;font-weight:700;min-width:1.4rem;text-align:center;padding:.05rem .4rem}
.tabs a{position:relative}.tabs .badge{position:absolute;top:4px;right:calc(50% - 1.6rem);margin:0}
.chip{display:inline-block;font-size:.72rem;font-weight:600;border-radius:999px;padding:.08rem .5rem;background:#E9EEF4;color:#2A4A6B;margin-left:.4rem}
.chip.warn{background:#FFF1C2;color:#6B4E00}.chip.new{background:var(--paint);color:#241B00}
ul.tk-list li a{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}
ul.tk-list li a:hover b{text-decoration:underline}
ol.thread{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.8rem}
.tk-msg{border:1px solid var(--line);border-radius:8px;padding:.7rem .9rem;background:#fff}
.tk-msg.platform{background:#F4F7FB;border-color:#D7E1EC}
.tk-msg.internal{background:#FFFAEB;border-color:#F3DE9A;border-style:dashed}
.tk-meta{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-bottom:.35rem}.tk-meta .muted{margin-left:auto}
.tk-body{white-space:pre-wrap;overflow-wrap:anywhere}
.tk-sys{font-size:.82rem;color:var(--steel);text-align:center}
.tk-files{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.6rem}
.tk-file{display:flex;align-items:center;gap:.4rem;border:1px solid var(--line);border-radius:6px;padding:.3rem .5rem;background:#fff;text-decoration:none;color:inherit;max-width:280px;font-size:.85rem}
.tk-file img{width:56px;height:42px;object-fit:cover;border-radius:4px}
.tk-compose{margin-top:1rem}.tk-compose textarea.internal{background:#FFFAEB}
.tk-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:1rem;align-items:start}
@media (max-width:960px){.tk-layout{grid-template-columns:1fr}}
dl.kv{display:grid;grid-template-columns:auto 1fr;gap:.35rem .8rem;margin:.6rem 0 0}dl.kv dt{color:var(--steel)}dl.kv dd{margin:0}
tr.clickable{cursor:pointer}tr.clickable:hover td{background:#F6F7F5}
tr.unread b{font-weight:800}
span.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--paint)}

