*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--vd-bg);color:var(--vd-text);font:15px/24px var(--vd-font-body)}
.vh{max-width:1180px;margin:0 auto;padding:16px 16px 24px}.vel,.big{color:#D22B2B;font-weight:800}.big{text-transform:uppercase}
.vhh{display:flex;align-items:center;gap:12px;margin:4px 0 4px}.vda{width:64px;height:38px}.vdt{font:800 24px/1.1 var(--vd-font-head)}.vds{font:700 12px var(--vd-font-head);letter-spacing:.06em;text-transform:uppercase;color:#5a6a8a}
h2{font:800 16px var(--vd-font-head);margin:16px 0 8px}.meta{color:#5a6a8a;font-size:13px;margin:4px 0}
.gg{display:grid;grid-template-columns:1fr 1fr;gap:12px}.g{background:#fff;border:1px solid #dfe5f0;border-radius:12px;padding:12px 12px 8px;min-height:132px;display:flex;flex-direction:column}
.g h3{font:700 12px var(--vd-font-head);letter-spacing:.4px;margin:0 0 4px;color:#33466e}.g .gv{font:800 24px/1.1 var(--vd-font-head);margin:8px 0 2px}.g .gs{font-size:12px;color:#5a6a8a}
.g svg.gsvg{width:100%;max-width:200px;height:auto;display:block;margin:0 auto}.g.wide{grid-column:1/-1}.sbx{display:inline-block;background:#FFE9A8;color:#5a4300;font:800 12px var(--vd-font-head);letter-spacing:.06em;padding:2px 8px;border-radius:6px;margin-left:4px;vertical-align:middle}
.nod{color:#5a6a8a;font-size:13px;margin:auto 0}.alert{color:#A51C1C}
.tg{display:grid;grid-template-columns:1fr 1fr;gap:12px}.t{display:block;background:#fff;border:1px solid #dfe5f0;border-radius:12px;padding:12px;color:inherit;text-decoration:none;min-height:120px}
.t:active,.t:hover{border-color:#0B1F3A}.t h3{font:800 14px var(--vd-font-head);margin:0 0 8px;display:flex;justify-content:space-between;gap:8px}.t h3:after{content:"›";color:#D22B2B;font-size:20px;line-height:1}
.t .n{display:flex;justify-content:space-between;gap:8px;font-size:13px;margin:2px 0}.t .n b{font-weight:800}.spk{width:100%;height:28px;display:block;margin-top:8px}
.dg{display:grid;grid-template-columns:1fr;gap:12px}.d{background:#fff;border:1px solid #dfe5f0;border-radius:12px;padding:12px}.d h3{font:800 14px var(--vd-font-head);margin:0 0 8px}
.fr{display:grid;grid-template-columns:80px 1fr auto;gap:8px;align-items:center;font-size:13px;margin:4px 0}.fb{background:#eef2f8;border-radius:6px;height:12px;overflow:hidden}.fb i{display:block;height:100%;background:#D22B2B}
.d ul{margin:0;padding-left:16px}.d li{margin:4px 0}.d a{color:#0B1F3A}.btn{font:700 13px var(--vd-font-head);border:1px solid #0B1F3A;background:#fff;color:#0B1F3A;border-radius:8px;padding:8px 12px;min-height:36px;cursor:pointer}
@media(min-width:700px){.gg{grid-template-columns:repeat(4,1fr)}.tg{grid-template-columns:repeat(4,1fr)}.dg{grid-template-columns:1fr 1fr}.vh{padding:20px 24px 32px}}
@media(prefers-reduced-motion:no-preference){.needle{transition:transform .6s}}
#vdinstall{position:fixed;left:8px;right:8px;bottom:calc(68px + env(safe-area-inset-bottom));z-index:950;background:#0B1F3A;color:#EEF2FA;border-radius:12px;padding:12px 40px 12px 12px;font-size:14px}#vdinstall .x{position:absolute;right:8px;top:4px;background:none;border:0;color:#fff;font-size:24px}#vdinstall .btn{background:#D22B2B;color:#fff;border:0}@media(min-width:900px){#vdinstall{left:236px;bottom:12px}}

/* THE DASH logo v1 header (Oct 21 2026): files in /q/brand/ */
.vhh{background:#0B1F3A;color:#fff;border-radius:12px;padding:12px 16px}.vhh .vel,.vhh .big{color:#ff4d4d}.vhh .vds{color:#B9C7E4}
.vdh .vdlogo,.vhh .vdlogo{width:240px;height:auto;max-width:100%;flex:0 0 auto;display:block}.vdh .vdtx,.vhh .vdtx{min-width:0}
@media(max-width:560px){.vdh,.vhh{flex-direction:column;align-items:flex-start;gap:4px}}

/* UX pass Oct 23 2026 (Sloane design system v1.0): Home Dash keeps the welcome header but capped at 120px; brand type + tokens */
body.vd{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)}
.vh{max-width:var(--vd-content-max);padding:var(--vd-sp-6) var(--vd-page-pad) var(--vd-sp-16)}
.vhh{max-height:120px;overflow:hidden;border-radius:var(--vd-radius-lg);padding:var(--vd-sp-3) var(--vd-sp-4);gap:var(--vd-sp-4)}
.vhh .vdlogo{width:auto;height:88px;aspect-ratio:560/160}
.vdt{font:var(--vd-fw-black) var(--vd-fs-display)/var(--vd-lh-display) var(--vd-font-head)}.vds{font-family:var(--vd-font-head)}
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)}
.g,.t,.d{border-color:var(--vd-border);border-radius:var(--vd-radius-lg);box-shadow:var(--vd-shadow-1)}
.g h3,.t h3,.d h3{font-family:var(--vd-font-head)}.g .gv{font:var(--vd-fw-black) var(--vd-fs-kpi)/var(--vd-lh-kpi) var(--vd-font-head);font-variant-numeric:tabular-nums}
.gg,.tg{gap:var(--vd-sp-4)}
@media(max-width:767px){.vhh{max-height:none}.vhh .vdlogo{height:56px}.vdt{font-size:var(--vd-fs-h1);line-height:var(--vd-lh-h1)}}
/* CLS (Dash polish Phase A): reserve the final size of data-loaded areas so nothing below them jumps when figures arrive */
#gauges{min-height:280px}#tiles{min-height:496px}main.vh #previewmods{min-height:384px}
@media (max-width:1279px){#gauges{min-height:284px}#tiles{min-height:520px}main.vh #previewmods{min-height:568px}}
@media (max-width:1023px){#gauges{min-height:312px}#tiles{min-height:656px}main.vh #previewmods{min-height:756px}}
@media (max-width:767px){#gauges{min-height:632px}#tiles{min-height:984px}main.vh #previewmods{min-height:1380px}}
