/* ABA Velocity Dash design system v1.0 + Dash polish Phase A (top tabs, tokens, numbers, header contrast) (Sloane, DASH_DESIGN_SYSTEM.md; built by Forge, UX pass Oct 23 2026).
   Tokens (§2-4), one shell (§5), page header + breadcrumbs (§5.3), buttons (§6), KPI grid (§9), tables (§10),
   empty/loading/error (§11), toasts (§12), motion (§14). Shared by every /q page that loads /q/vd/nav.js. */
@font-face{font-family:"Montserrat";src:url("/aba-assets/fonts/montserrat-var.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Lato";src:url("/aba-assets/fonts/lato-regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Lato";src:url("/aba-assets/fonts/lato-bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
:root{
  --vd-navy-950:#0B1F3A;--vd-navy-900:#0B1F3A;--vd-navy:#0B1F3A;--vd-navy-2:#132B4F;--vd-navy-3:#1C3A66;--vd-on-navy:#EEF2FA;--vd-on-navy-2:#B9C7E4;--vd-navy-700:#1C2A4E;--vd-red-600:#D22B2B;--vd-red-700:#A51C1C;--vd-red-300:#FF6B6B;--vd-sky-300:#B9C7E4;--vd-mut-400:#8C99B5;
  --vd-bg:#F5F7FB;--vd-surface:#FFFFFF;--vd-surface-2:#EEF2FA;--vd-border:#DFE5F0;--vd-border-strong:#C9D3E6;
  --vd-text:#0B1F3A;--vd-text-2:#475569;--vd-text-3:#5A6A8A;--vd-link:#0B1F3A;--vd-focus:#1D4ED8;
  --vd-ok-fg:#17663A;--vd-ok-bg:#E1F4E6;--vd-warn-fg:#8A5A00;--vd-warn-bg:#FFF7E8;--vd-warn-bd:#E9A23B;--vd-err-fg:#A51C1C;--vd-err-bg:#FDECEC;--vd-info-fg:#1D4ED8;--vd-info-bg:#EAF0FE;--vd-scrim:rgba(11,31,58,.55);
  --vd-font-head:"Montserrat",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;--vd-font-body:"Lato",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;--vd-font-mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --vd-fs-display:32px;--vd-lh-display:40px;--vd-fs-h1:24px;--vd-lh-h1:32px;--vd-fs-h2:20px;--vd-lh-h2:28px;--vd-fs-h3:16px;--vd-lh-h3:24px;
  --vd-fs-body:15px;--vd-lh-body:24px;--vd-fs-sm:13px;--vd-lh-sm:20px;--vd-fs-xs:12px;--vd-lh-xs:16px;--vd-fs-kpi:28px;--vd-lh-kpi:36px;
  --vd-fw-reg:400;--vd-fw-semi:600;--vd-fw-bold:700;--vd-fw-black:800;
  --vd-sp-0:0;--vd-sp-1:4px;--vd-sp-2:8px;--vd-sp-3:12px;--vd-sp-4:16px;--vd-sp-5:20px;--vd-sp-6:24px;--vd-sp-8:32px;--vd-sp-10:40px;--vd-sp-12:48px;--vd-sp-16:64px;
  --vd-radius-sm:6px;--vd-radius:8px;--vd-radius-lg:12px;--vd-radius-pill:999px;
  --vd-shadow-1:0 1px 2px rgba(11,31,68,.06),0 1px 3px rgba(11,31,68,.08);--vd-shadow-2:0 4px 12px rgba(11,31,68,.10);--vd-shadow-3:0 12px 32px rgba(11,15,26,.24);
  --vd-z-header:900;--vd-z-nav:890;--vd-z-sticky:10;--vd-z-drawer:950;--vd-z-modal:960;--vd-z-toast:980;
  --vd-dur-1:120ms;--vd-dur-2:200ms;--vd-dur-3:280ms;--vd-dur-fast:var(--vd-dur-1);--vd-dur-base:var(--vd-dur-2);--vd-dur-slow:var(--vd-dur-3);--vd-ease:cubic-bezier(.2,0,0,1);--vd-ease-out:cubic-bezier(0,0,.2,1);--vd-ease-in:cubic-bezier(.4,0,1,1);
  --vd-header-h:56px;--vd-tabs-h:44px;--vd-shell-h:calc(var(--vd-header-h) + var(--vd-tabs-h));--vd-content-max:1440px;--vd-page-pad:var(--vd-sp-6);--vd-mobile-nav-h:0px
}
/* §1 shell (Dash polish Phase A): ONE fixed header = 56px bar + 44px tab row (100px), reserved at EVERY width → no jump. Nothing else is sticky. */
html{scroll-padding-top:calc(var(--vd-shell-h) + var(--vd-sp-4));scrollbar-gutter:stable}
body.vd{margin:0;padding-top:var(--vd-shell-h);background:var(--vd-bg);color:var(--vd-text);font:var(--vd-fw-reg) var(--vd-fs-body)/var(--vd-lh-body) var(--vd-font-body)}
body.vd *,body.vd *::before,body.vd *::after{box-sizing:border-box}
.vd-skip{position:absolute;left:var(--vd-sp-2);top:-100px;z-index:999;background:var(--vd-surface);color:var(--vd-text);padding:var(--vd-sp-2) var(--vd-sp-3);border-radius:var(--vd-radius)}.vd-skip:focus{top:var(--vd-sp-2)}
.vd-header{position:fixed;inset:0 0 auto;z-index:var(--vd-z-header);background:var(--vd-navy);color:var(--vd-on-navy);box-shadow:0 1px 0 rgba(185,199,228,.14)}
.vd-hbar{height:var(--vd-header-h);display:flex;align-items:center;gap:var(--vd-sp-4);padding:0 var(--vd-sp-6);max-width:var(--vd-content-max);margin:0 auto}
.vd-brand{display:flex;align-items:center;flex:none;border-radius:var(--vd-radius-sm)}.vd-brand img{display:block;height:32px;width:112px}
.vd-header .sp{flex:1}
.vd-cmdk-btn{display:flex;align-items:center;gap:var(--vd-sp-2);height:32px;min-width:240px;padding:0 var(--vd-sp-2) 0 var(--vd-sp-3);border:1px solid rgba(185,199,228,.24);border-radius:var(--vd-radius);background:var(--vd-navy-2);color:var(--vd-on-navy-2);font:var(--vd-fw-semi) 13px/1 var(--vd-font-head);cursor:pointer;transition:background var(--vd-dur-1) var(--vd-ease),color var(--vd-dur-1) var(--vd-ease)}
.vd-cmdk-btn span{flex:1;text-align:left}.vd-cmdk-btn:hover{background:var(--vd-navy-3);color:#fff}
.vd-cmdk-btn kbd{font:var(--vd-fw-semi) 12px/16px var(--vd-font-head);padding:0 var(--vd-sp-1);border:1px solid rgba(185,199,228,.3);border-radius:4px;color:var(--vd-on-navy-2)}
.vd-usr{position:relative}
.vd-user{display:grid;place-items:center;width:36px;height:36px;border-radius:999px;border:1px solid rgba(185,199,228,.3);background:var(--vd-navy-2);color:var(--vd-on-navy);cursor:pointer}.vd-user:hover{background:var(--vd-navy-3)}
.vd-menu--r{left:auto;right:0}
.vd-menu-h{padding:var(--vd-sp-2) var(--vd-sp-3) var(--vd-sp-1);font:var(--vd-fw-bold) 12px/16px var(--vd-font-head);letter-spacing:.06em;text-transform:uppercase;color:var(--vd-text-3)}
.vd-header :focus-visible{outline:2px solid #fff;outline-offset:-2px}
.vd-header .vd-menu :focus-visible{outline:2px solid var(--vd-focus);outline-offset:-2px}
.vd-tabs{position:relative;height:var(--vd-tabs-h);max-width:var(--vd-content-max);margin:0 auto;padding:0 var(--vd-sp-4)}
.vd-tabs>ul{display:flex;height:100%;gap:var(--vd-sp-1);margin:0;padding:0;list-style:none;flex-wrap:nowrap}
.vd-tabs>ul>li{position:relative;display:flex;align-items:stretch}.vd-tabs>ul>li[hidden]{display:none}.vd-tabs>ul.is-pending>li{visibility:hidden}
.vd-tab{display:flex;align-items:center;gap:var(--vd-sp-1);height:100%;padding:0 var(--vd-sp-3);white-space:nowrap;background:none;border:0;cursor:pointer;
  font:var(--vd-fw-semi) 14px/1 var(--vd-font-head);color:var(--vd-on-navy-2);text-decoration:none;
  border-radius:var(--vd-radius-sm) var(--vd-radius-sm) 0 0;transition:color var(--vd-dur-1) var(--vd-ease),background var(--vd-dur-1) var(--vd-ease)}
.vd-tab:hover{color:#fff;background:rgba(255,255,255,.06)}
.vd-tab[aria-current="page"],li.is-active>.vd-tab{color:#fff;font-weight:var(--vd-fw-bold)}
.vd-tabs li.is-active::after{content:"";position:absolute;left:var(--vd-sp-3);right:var(--vd-sp-3);bottom:0;height:2px;background:#D22B2B;border-radius:2px 2px 0 0}
.vd-tab:focus-visible,.vd-tab-caret:focus-visible{outline:2px solid #fff;outline-offset:-2px}
.vd-tab-caret{width:24px;margin-left:calc(-1*var(--vd-sp-2));background:none;border:0;color:var(--vd-on-navy-2);cursor:pointer;display:grid;place-items:center;padding:0}
.vd-tab-caret:hover{color:#fff}.vd-tab-caret[aria-expanded="true"] .vd-i{transform:rotate(180deg)}.vd-tab-caret .vd-i{transition:transform var(--vd-dur-1) var(--vd-ease)}
.vd-menu{position:absolute;top:100%;left:0;min-width:220px;margin:0;padding:var(--vd-sp-1);list-style:none;
  background:var(--vd-surface);border:1px solid var(--vd-border);border-radius:var(--vd-radius);box-shadow:var(--vd-shadow-2);z-index:var(--vd-z-drawer);
  opacity:0;transform:translateY(-4px);transition:opacity var(--vd-dur-2) var(--vd-ease),transform var(--vd-dur-2) var(--vd-ease)}
.vd-menu[hidden]{display:none}.vd-menu:not([hidden]){opacity:1;transform:none}
@starting-style{.vd-menu:not([hidden]){opacity:0;transform:translateY(-4px)}}
.vd-menu a{display:flex;align-items:center;height:36px;padding:0 var(--vd-sp-3);border-radius:var(--vd-radius-sm);
  font:var(--vd-fw-semi) 14px/1 var(--vd-font-head);color:var(--vd-text);text-decoration:none}
.vd-menu a:hover,.vd-menu a:focus-visible{background:var(--vd-surface-2);outline:none}
.vd-menu a[aria-current="page"]{color:var(--vd-text);box-shadow:inset 2px 0 0 #D22B2B;background:var(--vd-surface-2)}
.vd-menu li.first{border-bottom:1px solid var(--vd-border);margin-bottom:var(--vd-sp-1);padding-bottom:var(--vd-sp-1)}
.vd-tabs-scroll{display:none}
.vd-main{margin-left:0;min-height:calc(100dvh - var(--vd-shell-h))}
.vd-page{max-width:var(--vd-content-max);margin:0 auto;padding:var(--vd-sp-6) var(--vd-page-pad) var(--vd-sp-16)}
.vd-ph{min-height:0}
.vd-i{width:20px;height:20px;flex:none;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.vd-i--16{width:16px;height:16px}.vd-i--24{width:24px;height:24px}
/* §5.3 page header + breadcrumbs (in flow, NOT sticky) */
.vd-ph{margin-bottom:var(--vd-sp-6)}
.vd-ph-row{display:flex;align-items:center;justify-content:space-between;gap:var(--vd-sp-4);flex-wrap:wrap}
.vd-ph-actions{display:flex;gap:var(--vd-sp-2);margin-left:auto}
.vd-ph-sub{margin:var(--vd-sp-1) 0 0;color:var(--vd-text-2);font-size:var(--vd-fs-sm)}
.vd-bc ol{display:flex;flex-wrap:wrap;gap:var(--vd-sp-2);list-style:none;margin:0 0 var(--vd-sp-2);padding:0;font-size:var(--vd-fs-sm);color:var(--vd-text-2)}
.vd-bc li+li::before{content:"›";margin-right:var(--vd-sp-2);color:var(--vd-text-3)}
.vd-bc a{color:var(--vd-text-2);text-decoration:none}.vd-bc a:hover{text-decoration:underline;color:var(--vd-text)}
.vd h1{font:var(--vd-fw-black) var(--vd-fs-h1)/var(--vd-lh-h1) var(--vd-font-head);letter-spacing:-.01em;margin:0 0 var(--vd-sp-3)}
.vd h2{font:var(--vd-fw-bold) var(--vd-fs-h2)/var(--vd-lh-h2) var(--vd-font-head);margin:var(--vd-sp-6) 0 var(--vd-sp-3)}
.vd h3{font:var(--vd-fw-bold) var(--vd-fs-h3)/var(--vd-lh-h3) var(--vd-font-head);margin:0}
.vd .num{font-family:var(--vd-font-head)}
/* §3 numbers: tabular, lining figures on every money, count, date and Opp # */
.vd :is(td,th,.num,.vd-kpi-value,.opp,.money,time,.colh,.kv,.big1,.fn,.vk b,.gg b,.dc .meta){font-variant-numeric:tabular-nums lining-nums}
.vd .neg{color:var(--vd-err-fg)}
.vd td.r,.vd th.r{text-align:right}
.vd .overline{font:var(--vd-fw-bold) var(--vd-fs-xs)/var(--vd-lh-xs) var(--vd-font-head);letter-spacing:.06em;text-transform:uppercase;color:var(--vd-text-2)}
/* §6 buttons */
.vd-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--vd-sp-2);height:40px;padding:0 var(--vd-sp-4);border-radius:var(--vd-radius);border:1px solid var(--vd-border-strong);background:var(--vd-surface);color:var(--vd-text);font:var(--vd-fw-semi) 14px/1 var(--vd-font-head);cursor:pointer;text-decoration:none;white-space:nowrap;transition:background var(--vd-dur-fast) var(--vd-ease),border-color var(--vd-dur-fast) var(--vd-ease)}
.vd-btn:hover{background:var(--vd-surface-2)}
.vd-btn--primary{background:var(--vd-red-600);border-color:var(--vd-red-600);color:#fff}.vd-btn--primary:hover{background:#B82424}
.vd-btn--danger{background:var(--vd-red-700);border-color:var(--vd-red-700);color:#fff}
.vd-btn--ghost{border-color:transparent;background:transparent}
.vd-btn--sm{height:32px;padding:0 var(--vd-sp-3);font-size:13px}
.vd-btn:disabled,.vd-btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed}
@media (pointer:coarse){.vd-btn{min-height:44px}}
/* pills */
.vd-pill{display:inline-flex;align-items:center;height:20px;padding:0 var(--vd-sp-2);border-radius:var(--vd-radius-pill);background:var(--vd-surface-2);color:var(--vd-text-2);font:var(--vd-fw-bold) var(--vd-fs-xs)/1 var(--vd-font-head)}
/* §5.5 grid + §9 KPI grid: explicit columns, never auto-fill (no-holes rule is enforced in nav.js) */
.vd-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--vd-sp-6)}
.span-3{grid-column:span 3}.span-4{grid-column:span 4}.span-6{grid-column:span 6}.span-12{grid-column:1/-1}
.vd-kpis{display:grid;gap:var(--vd-sp-4);grid-template-columns:repeat(var(--vd-kpi-cols,4),minmax(0,1fr))}
@media (max-width:1279px){.vd-kpis{--vd-kpi-cols:3}}@media (max-width:1023px){.vd-kpis{--vd-kpi-cols:2}}@media (max-width:479px){.vd-kpis{--vd-kpi-cols:1}}
/* §10 table header (light, sticky only inside its own scroll box) */
.vd-table-wrap{position:relative;overflow:auto;border:1px solid var(--vd-border);border-radius:var(--vd-radius-lg);background:var(--vd-surface)}
/* §11 states */
.vd-skel{background:linear-gradient(90deg,var(--vd-surface-2) 0,#F8FAFD 40%,var(--vd-surface-2) 80%);background-size:200% 100%;border-radius:var(--vd-radius-sm);animation:vd-shimmer 1.2s linear infinite}
.vd-skel--text{height:12px;margin:var(--vd-sp-2) 0}.vd-skel--h1{height:28px;width:40%;margin:var(--vd-sp-1) 0 var(--vd-sp-4)}.vd-skel--kpi{height:120px;border-radius:var(--vd-radius-lg)}.vd-skel--row{height:48px;margin-bottom:1px}
@keyframes vd-shimmer{to{background-position:-200% 0}}
.vd-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--vd-sp-3);padding:var(--vd-sp-12) var(--vd-sp-6);color:var(--vd-text-2)}
.vd-empty h3{color:var(--vd-text)}.vd-empty .vd-i{width:40px;height:40px;color:var(--vd-text-3)}
.vd-error{display:flex;gap:var(--vd-sp-3);align-items:flex-start;padding:var(--vd-sp-4);border-radius:var(--vd-radius);background:var(--vd-err-bg);color:var(--vd-err-fg);border:1px solid #F3C4C4;margin:var(--vd-sp-3) 0}
.vd-error .vd-error-b{flex:1;min-width:0}.vd-error p{margin:0 0 var(--vd-sp-2)}.vd-error details{font-size:var(--vd-fs-sm);color:var(--vd-text-2)}
/* §12 one toast region */
#vd-toasts{position:fixed;left:50%;bottom:calc(var(--vd-sp-6) + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:var(--vd-z-toast);display:flex;flex-direction:column;gap:var(--vd-sp-2);width:min(480px,calc(100vw - 32px));pointer-events:none}
.vd-toast{pointer-events:auto;display:flex;gap:var(--vd-sp-3);align-items:flex-start;padding:var(--vd-sp-3) var(--vd-sp-4);border-radius:var(--vd-radius);background:var(--vd-navy-900);color:#fff;box-shadow:var(--vd-shadow-3);font:var(--vd-fs-body)/var(--vd-lh-sm) var(--vd-font-body);font-size:14px;animation:vd-toast-in var(--vd-dur-base) var(--vd-ease-out)}
.vd-toast .msg{flex:1;min-width:0;white-space:pre-wrap}
.vd-toast button{all:unset;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--vd-radius-sm)}
.vd-toast button:focus-visible{outline:2px solid #fff}
.vd-toast--error{background:var(--vd-red-700)}
@keyframes vd-toast-in{from{opacity:0;transform:translateY(8px)}}
/* §19 focus */
body.vd :focus-visible{outline:2px solid var(--vd-focus);outline-offset:2px}
/* §1.8 phones (Sloane's call): same header; 48px bar + the SAME tabs as a swipeable 44px strip with scroll buttons. No bottom bar. 92px reserved. */
@media (max-width:767px){
 :root{--vd-header-h:48px;--vd-page-pad:var(--vd-sp-4)}
 .vd-hbar{padding:0 var(--vd-sp-4);padding-top:env(safe-area-inset-top);height:calc(var(--vd-header-h) + env(safe-area-inset-top));gap:var(--vd-sp-3)}
 body.vd{padding-top:calc(var(--vd-shell-h) + env(safe-area-inset-top))}
 .vd-brand img{width:28px;height:28px;object-fit:cover;object-position:left center}
 .vd-cmdk-btn{min-width:0;width:36px;height:36px;justify-content:center;padding:0}.vd-cmdk-btn span,.vd-cmdk-btn kbd{display:none}
 .vd-tabs{padding:0}.vd-tabs>ul{overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;padding:0 var(--vd-sp-10) 0 var(--vd-sp-2);scroll-padding-inline:var(--vd-sp-10);
  -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent)}
 .vd-tabs>ul::-webkit-scrollbar{display:none}.vd-tabs>ul>li{scroll-snap-align:start}.vd-tab-caret{display:none}
 .vd-tabs .vd-menu,.vd-header>.vd-menu{position:fixed;left:0;right:0;top:calc(var(--vd-shell-h) + env(safe-area-inset-top));border-radius:0 0 var(--vd-radius-lg) var(--vd-radius-lg);max-height:70dvh;overflow:auto}
 .vd-tabs .vd-menu a,.vd-header>.vd-menu a{height:48px;font-size:16px}.vd-more{display:none!important}
 .vd-tabs-scroll{position:absolute;top:0;bottom:0;width:32px;display:grid;place-items:center;background:var(--vd-navy);border:0;color:#fff;z-index:1;cursor:pointer;padding:0}
 .vd-tabs-scroll--r{right:0}.vd-tabs-scroll--l{left:0}.vd-tabs-scroll[hidden]{display:none}
 .vd-ph-actions .vd-btn:not(.vd-btn--primary){display:none}
}
/* §1.6 quick switcher */
.vd-cmdk{border:0;padding:0;width:min(640px,calc(100vw - 32px));margin:12vh auto auto;border-radius:var(--vd-radius-lg);box-shadow:var(--vd-shadow-3);background:var(--vd-surface);color:var(--vd-text)}
.vd-cmdk::backdrop{background:var(--vd-scrim)}
.vd-cmdk-in{border-bottom:1px solid var(--vd-border)}
.vd-cmdk-in input{width:100%;height:56px;border:0;padding:0 var(--vd-sp-5);font:var(--vd-fw-reg) 16px/24px var(--vd-font-body);color:var(--vd-text);background:none}.vd-cmdk-in input:focus{outline:none}
.vd-cmdk ul{list-style:none;margin:0;padding:var(--vd-sp-2);max-height:min(420px,60dvh);overflow:auto}
.vd-cmdk-g{padding:var(--vd-sp-2) var(--vd-sp-3) var(--vd-sp-1);font:var(--vd-fw-bold) 12px/16px var(--vd-font-head);letter-spacing:.06em;text-transform:uppercase;color:var(--vd-text-3)}
.vd-cmdk-o{display:flex;align-items:center;gap:var(--vd-sp-3);height:40px;padding:0 var(--vd-sp-3);border-radius:var(--vd-radius-sm);cursor:pointer;font:var(--vd-fw-semi) 14px/1 var(--vd-font-head);font-variant-numeric:tabular-nums}
.vd-cmdk-o .l{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vd-cmdk-o .s{font:var(--vd-fw-reg) 13px/1 var(--vd-font-body);color:var(--vd-text-3)}
.vd-cmdk-o[aria-selected="true"]{background:var(--vd-surface-2);box-shadow:inset 2px 0 0 #D22B2B}
.vd-cmdk-none{padding:var(--vd-sp-4) var(--vd-sp-3);color:var(--vd-text-3)}
.vd-cmdk-f{margin:0;padding:var(--vd-sp-2) var(--vd-sp-5);border-top:1px solid var(--vd-border);font:12px/16px var(--vd-font-body);color:var(--vd-text-3)}
.vd-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* §14 motion */
@keyframes vd-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:0ms!important;animation:none!important;scroll-behavior:auto!important}}
/* compat mode for pages not converted yet (Quotes): reserve the header, push their own sticky bars below it */
body.vd-compat{padding-top:var(--vd-shell-h)}
body.vd-compat .appbar{top:var(--vd-shell-h)}body.vd-compat .tabs{top:calc(var(--vd-shell-h) + var(--barh,56px))}body.vd-compat .side{top:calc(var(--vd-shell-h) + var(--barh,56px) + 64px)}

/* In-app dialog (§13) — VD.prompt/confirm/alert */
.vd-modal{border:0;padding:0;border-radius:var(--vd-radius-lg);box-shadow:var(--vd-shadow-3);width:min(560px,calc(100vw - 32px));max-height:min(88dvh,800px);color:var(--vd-text);background:var(--vd-surface)}
.vd-modal--sm{width:min(400px,calc(100vw - 32px))}
.vd-modal::backdrop{background:var(--vd-scrim)}
.vd-modal header,.vd-modal footer{padding:var(--vd-sp-4) var(--vd-sp-6)}.vd-modal .body{padding:0 var(--vd-sp-6) var(--vd-sp-4);overflow:auto}
.vd-modal footer{display:flex;justify-content:flex-end;gap:var(--vd-sp-2);border-top:1px solid var(--vd-border)}
.vd-dlg-t{margin:0;font:var(--vd-fw-bold) 20px/28px var(--vd-font-head);color:var(--vd-text)}
.vd-dlg-b{margin:0 0 var(--vd-sp-3);white-space:pre-line;color:var(--vd-text-2)}
.vd-dlg-l{display:grid;gap:var(--vd-sp-2);font-size:14px;color:var(--vd-text-2);white-space:pre-line}
.vd-dlg-in{height:40px;padding:0 var(--vd-sp-3);border:1px solid var(--vd-border-strong);border-radius:var(--vd-radius);font:inherit;color:var(--vd-text)}
.vd-dlg-in:focus{outline:2px solid var(--vd-focus);outline-offset:1px}
.vd-wm-b{color:var(--vd-red-600)}
.vd-preview [data-live-only]{display:none!important}
/* §1.7 one primary action; secondary "log" ways live in its dropdown */
.vd-split{position:relative;display:inline-flex}.vd-split>.vd-btn{border-top-right-radius:0;border-bottom-right-radius:0}
.vd-split-more>summary{list-style:none;border-top-left-radius:0;border-bottom-left-radius:0;border-left:1px solid rgba(255,255,255,.35);padding:0 var(--vd-sp-2);height:40px}
.vd-split-more>summary::-webkit-details-marker{display:none}
.vd-split-more:not([open])>.vd-menu{display:none}.vd-split-more[open]>.vd-menu{opacity:1;transform:none;top:calc(100% + 4px)}
/* CLS: the breadcrumb row is filled by nav.js; reserve its line so the page doesn't jump */
.vd-bc{min-height:28px}
/* CLS 375px (Ref Oct 23, #eric/#billing 0.043): a two-level breadcrumb used to wrap the Log outreach split onto a 2nd line after nav.js filled it.
   On phones the breadcrumb always takes its own line and the header reserves both rows (32 + gap + 40) before data renders, as #dash. */
@media (max-width:480px){.vd-ph-row>.vd-bc{flex:1 0 100%}.vd-ph-row{min-height:88px}}

/* close X for every modal and phone sheet (Oct 23) */
dialog>.vd-x{position:absolute;top:8px;right:8px;z-index:2;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:var(--vd-radius);background:transparent;color:inherit;font:400 28px/1 var(--vd-font-body);cursor:pointer}dialog>.vd-x:hover{background:rgba(11,31,58,.08)}dialog>.vd-x:focus-visible{outline:2px solid #2F6FEB;outline-offset:2px}
dialog:has(>.vd-x) h2:first-of-type{padding-right:44px}.vd-menu>.vd-x--sheet{display:none}
@media (max-width:767px){.vd-menu{position:relative}.vd-menu>.vd-x--sheet{display:inline-flex;position:absolute;top:4px;right:4px;width:44px;height:44px;align-items:center;justify-content:center;border:0;background:transparent;color:inherit;font:400 28px/1 var(--vd-font-body)}}
