.vl-sr-only,.vl-sr-only-focusable:not(:focus):not(:focus-within){clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.vl-tabular{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}:root{--z-sticky:10;--z-dialog:50;--z-popover:60;--z-tooltip:70;--z-toast:80}.vl-link{color:var(--primary);text-underline-offset:2px;border-radius:var(--r-sm);transition:color var(--t-fast) var(--ease-out);text-decoration:underline}.vl-link:hover{color:var(--primary-hover)}.vl-link:focus-visible{outline:var(--focus-ring);outline-offset:var(--ring-gap)}.vl-link:active{color:var(--primary-pressed)}.vl-page-center{background:var(--canvas);justify-content:center;align-items:center;min-height:100dvh;padding:24px 16px;display:flex}.vl-page-center>*{width:100%;max-width:30rem}.vl-brand-disc{border-radius:var(--r-full);background:var(--vl-gradient-brand);width:4rem;height:4rem;color:var(--text-on-primary);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.vl-brand-disc--lg{width:5rem;height:5rem;box-shadow:var(--e3)}
.vl-btn{--btn-h:40px;--btn-px:14px;--btn-fs:13px;--btn-gap:8px;--btn-radius:var(--r-full);justify-content:center;align-items:center;gap:var(--btn-gap);height:var(--btn-h);padding-inline:var(--btn-px);border-radius:var(--btn-radius);font:inherit;font-size:var(--btn-fs);letter-spacing:-.005em;white-space:nowrap;cursor:pointer;isolation:isolate;transition:background-color var(--t-fast) var(--ease-out), border-color var(--t-fast) var(--ease-out), box-shadow var(--t-fast) var(--ease-out), transform var(--t-fast) var(--ease-out);border:1px solid #0000;font-weight:600;line-height:1;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.vl-btn:after{content:"";z-index:-1;border-radius:inherit;transition:transform var(--t-slow) var(--ease-out);background:linear-gradient(105deg,#0000 36%,#ffffff42 50%,#0000 64%);position:absolute;inset:0;transform:translate(-115%)}.vl-btn:hover:not(:disabled):after{transform:translate(115%)}.vl-btn:hover:not(:disabled){box-shadow:var(--e2);transform:translateY(-1px)}.vl-btn:active:not(:disabled):after{transition:none;transform:translate(-115%)}.vl-btn:focus-visible{box-shadow:var(--ring), var(--e2);outline:none}.vl-btn:disabled{cursor:not-allowed;opacity:.45;box-shadow:var(--e1), var(--edge);filter:saturate(.5);transform:none}.vl-btn:disabled:after{display:none}.vl-btn--primary{background:var(--primary);color:var(--text-on-primary);box-shadow:0 4px 12px -6px color-mix(in srgb, var(--primary) 50%, transparent), var(--e1), inset 0 1px 0 #ffffff38}.vl-btn--primary:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 8px 18px -8px color-mix(in srgb, var(--primary) 50%, transparent), var(--e2), inset 0 1px 0 #ffffff42}.vl-btn--primary:active:not(:disabled){background:var(--primary-pressed)}.vl-btn--primary:focus-visible{box-shadow:var(--ring-on-color)}.vl-btn--secondary{background:var(--surface-muted);color:var(--text);border-color:var(--border)}.vl-btn--secondary:hover:not(:disabled){background:var(--surface-active)}.vl-btn--outline{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.vl-btn--outline:hover:not(:disabled){background:var(--surface-hover);border-color:var(--primary);color:var(--primary-text)}.vl-btn--ghost{color:var(--text-muted);background:0 0}.vl-btn--ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.vl-btn--danger{background:var(--danger-bg);color:var(--danger-text);border-color:var(--danger-border)}.vl-btn--warning{background:var(--warning-bg);color:var(--warning-text);border-color:var(--warning-border)}.vl-btn--danger:hover:not(:disabled){background:var(--danger);color:var(--text-on-primary);border-color:var(--danger)}.vl-btn--danger:focus-visible{box-shadow:0 0 0 var(--ring-gap) var(--surface), 0 0 0 calc(var(--ring-gap) + var(--ring-w)) var(--danger)}.vl-btn--brand{background:var(--vl-gradient-brand);color:#fff;box-shadow:0 6px 16px -8px color-mix(in srgb, var(--vl-blue-600) 50%, transparent), inset 0 1px 0 #ffffff42}.vl-btn--brand:hover:not(:disabled){background:var(--vl-gradient-brand-hover);box-shadow:0 10px 22px -10px color-mix(in srgb, var(--vl-blue-600) 50%, transparent), inset 0 1px 0 #ffffff4d}.vl-btn--sm{--btn-h:34px;--btn-px:10px;--btn-fs:11.5px;--btn-gap:6px;--btn-radius:var(--r-sm)}.vl-btn--lg{--btn-h:46px;--btn-px:18px;--btn-fs:14.5px;--btn-gap:10px}.vl-btn--icon{--btn-px:0;width:max(var(--btn-h), 44px);min-height:44px;padding:0}.vl-btn--full{width:100%}.vl-btn[data-loading=true]{cursor:progress;pointer-events:none}.vl-btn[data-loading=true] .vl-btn__content{visibility:hidden}.vl-btn__content{align-items:center;gap:var(--btn-gap);display:inline-flex}.vl-btn__spinner{place-items:center;display:grid;position:absolute;inset:0}.vl-btn__spinner svg{width:1em;height:1em;animation:.7s linear infinite vl-spin}@keyframes vl-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.vl-btn:hover:not(:disabled){transform:none}.vl-btn:after{display:none}.vl-btn__spinner svg{animation:1.2s ease-in-out infinite vl-pulse}@keyframes vl-pulse{0%,to{opacity:1}50%{opacity:.4}}}.vl-btn--accent{color:var(--text-on-primary);border-color:#0000}.vl-btn--accent:hover:not(:disabled){filter:brightness(1.1)}.vl-btn--accent:focus-visible{outline:var(--focus-ring);outline-offset:var(--ring-gap)}.vl-btn--accent:active:not(:disabled){filter:brightness(.94)}.vl-btn--accent:disabled{filter:grayscale(.4);opacity:.5}.vl-btn--primary,.vl-btn--brand,.vl-btn--danger{box-shadow:var(--edge), var(--e1)}.vl-btn--secondary,.vl-btn--outline{-webkit-backdrop-filter:saturate(160%) blur(var(--glass-chrome-blur));backdrop-filter:saturate(160%) blur(var(--glass-chrome-blur));box-shadow:var(--edge-subtle), var(--e1)}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.vl-btn--secondary{background:var(--glass-chrome)}.vl-btn--outline{background:var(--glass-panel)}}.vl-btn:active:not(:disabled){box-shadow:var(--e0);transform:translateY(.5px)}.vl-btn:disabled{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
