:root{--warm-50: #fafbfc;--warm-100: #f6f7f9;--warm-150: #eef0f3;--warm-200: #eceef1;--warm-250: #e5e8ec;--warm-300: #dbdfe4;--warm-350: #edeff2;--warm-400: #c4c9d0;--warm-500: #a3a8b1;--warm-600: #9398a1;--warm-700: #858a93;--warm-800: #585d66;--warm-900: #373b42;--ink: #15181d;--white: #ffffff;--coral: #f25c3b;--coral-deep: #d6361f;--coral-text: #c0432a;--coral-tint: #fdeee9;--violet: #6157ff;--violet-text: #4a3fd6;--violet-tint: #eeecff;--teal: #1fa37a;--teal-text: #157a56;--teal-tint: #e7f4ee;--amber: #f2a93b;--amber-text: #b5740f;--amber-tint: #fdf1e2;--blue: #3b82c4;--blue-tint: #e8f1f9;--pink: #e0529b;--danger: #e5484d;--danger-text: #c0362f;--danger-tint: #fce9e9;--heat-0: var(--warm-400);--heat-1: var(--amber);--heat-2: var(--coral);--heat-3: var(--coral-deep);--surface: var(--white);--surface-sunken: var(--warm-50);--surface-muted: var(--warm-150);--canvas: var(--warm-100);--canvas-deep: var(--warm-200);--border: var(--warm-250);--border-strong: var(--warm-300);--divider: var(--warm-350);--text-primary: var(--ink);--text-secondary: var(--warm-900);--text-tertiary: var(--warm-800);--text-muted: var(--warm-700);--text-faint: var(--warm-600);--accent: var(--coral);--success: var(--teal);--success-text: var(--teal-text);--success-tint: var(--teal-tint);--warning: var(--amber);--warning-text: var(--amber-text);--warning-tint: var(--amber-tint);--danger-color: var(--danger);--danger-color-text: var(--danger-text);--danger-color-tint: var(--danger-tint);--font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", system-ui, sans-serif;--font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, monospace;--fs-display: 34px;--fs-h1: 25px;--fs-h2: 19px;--fs-body: 14px;--fs-ui: 13.5px;--fs-sm: 12.5px;--fs-xs: 11.5px;--fs-mono-label: 10.5px;--ls-mono: .08em;--sp-2: 7px;--sp-3: 10px;--sp-4: 14px;--sp-5: 16px;--sp-6: 20px;--sp-7: 22px;--sp-8: 24px;--sp-10: 32px;--r-sm: 8px;--r-md: 10px;--r-lg: 14px;--r-xl: 16px;--r-2xl: 18px;--r-pill: 999px;--content-max: 1340px;--topbar-h: 62px;--shadow-card: 0 18px 55px rgba(21, 24, 29, .06);--shadow-hover: 0 22px 60px rgba(21, 24, 29, .1);--shadow-xs: 0 1px 2px rgba(28, 27, 26, .04);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--shadow-pop: 0 14px 34px -18px rgba(28, 27, 26, .32);--dur-fast: .18s;--dur-med: .26s;--ease-out: cubic-bezier(.2, .8, .2, 1);--grad-brand: linear-gradient(135deg, #f25c3b, #6157ff)}@keyframes loop-ping{0%{opacity:.55;transform:scale(1)}70%,to{opacity:0;transform:scale(2.6)}}@keyframes loop-fadein{0%{opacity:0}to{opacity:1}}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--canvas);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--fs-body)}button{font:inherit}.vl-app{min-height:100vh;background:var(--canvas)}.vl-topbar{position:sticky;top:0;z-index:10;background:#fffffff0;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.vl-topbar__inner{align-items:center;display:flex;height:var(--topbar-h);justify-content:space-between;margin:0 auto;max-width:var(--content-max);padding:0 var(--sp-8)}.vl-topbar__left,.vl-topbar__actions,.vl-hero__actions{align-items:center;display:flex;gap:var(--sp-4)}.vl-logo{display:block;height:34px;width:auto}.vl-nav{align-items:center;display:flex;gap:3px}.vl-nav__item{background:transparent;border:0;border-radius:var(--r-pill);color:var(--text-tertiary);cursor:pointer;text-decoration:none;font-size:var(--fs-ui);font-weight:650;padding:8px 13px}.vl-nav__item.is-active{background:var(--ink);color:var(--white)}.vl-main{margin:0 auto;max-width:var(--content-max);padding:var(--sp-8)}.vl-user-menu{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);display:flex;gap:var(--sp-3);min-height:38px;padding:5px 6px 5px var(--sp-3)}.vl-user-menu span{display:grid;gap:1px;max-width:180px}.vl-user-menu strong,.vl-user-menu small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vl-user-menu strong{color:var(--text-primary);font-size:var(--fs-xs);font-weight:750}.vl-user-menu small{color:var(--text-faint);font-family:var(--font-mono);font-size:10px;letter-spacing:var(--ls-mono);text-transform:uppercase}.vl-user-menu button{background:var(--surface-muted);border:0;border-radius:var(--r-sm);color:var(--text-secondary);cursor:pointer;font-size:var(--fs-xs);font-weight:750;min-height:28px;padding:6px 9px}.vl-auth-page{align-items:center;background:linear-gradient(180deg,#ffffffa3,#fff0),var(--canvas);display:flex;min-height:100vh;padding:var(--sp-8)}.vl-auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-card);display:grid;gap:var(--sp-4);margin:0 auto;max-width:450px;padding:var(--sp-8);width:100%}.vl-auth-card__logo{display:block;height:38px;width:fit-content}.vl-auth-card__icon{align-items:center;background:var(--coral-tint);border-radius:var(--r-md);color:var(--coral-text);display:inline-flex;height:42px;justify-content:center;margin-top:var(--sp-3);width:42px}.vl-auth-card h1{font-size:var(--fs-h1);letter-spacing:0;line-height:1.08;margin:0}.vl-auth-card p{color:var(--text-secondary);line-height:1.55;margin:0}.vl-auth-card__actions{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-2)}.vl-auth-note,.vl-auth-error{align-items:center;border-radius:var(--r-md);display:flex;gap:var(--sp-2);line-height:1.35;padding:var(--sp-3)}.vl-auth-note{background:var(--surface-muted);color:var(--text-secondary);font-size:var(--fs-sm);font-weight:650}.vl-auth-error{background:var(--danger-tint);color:var(--danger-text);font-size:var(--fs-sm);font-weight:700}.vl-auth-card__spinner{animation:vl-spin .9s linear infinite}@keyframes vl-spin{to{transform:rotate(360deg)}}.vl-overview{display:grid;gap:var(--sp-5)}.vl-hero{align-items:end;display:flex;justify-content:space-between;gap:var(--sp-5);margin-bottom:2px}.vl-eyebrow{color:var(--text-faint);display:block;font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:650;letter-spacing:.08em;margin-bottom:var(--sp-2);text-transform:uppercase}.vl-hero h1{font-size:var(--fs-h1);letter-spacing:0;line-height:1.15;margin:0}.vl-button{align-items:center;border:1px solid transparent;border-radius:var(--r-md);cursor:pointer;display:inline-flex;font-size:var(--fs-ui);font-weight:700;gap:var(--sp-2);justify-content:center;line-height:1;min-height:36px;padding:9px 14px;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;white-space:nowrap}.vl-button:hover,.vl-button:focus-visible{box-shadow:var(--shadow-card);transform:translateY(-1px)}.vl-button:disabled{cursor:not-allowed;opacity:.58;transform:none}.vl-button:focus-visible,.vl-nav__item:focus-visible,.vl-post-row:focus-visible,.vl-rec:focus-visible,.vl-table-row:focus-visible{outline:2px solid var(--coral);outline-offset:2px}.vl-button--primary{background:var(--ink);color:var(--white)}.vl-button--secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text-secondary)}.vl-button--ghost{aspect-ratio:1;background:transparent;color:var(--text-tertiary);padding:9px}.vl-button--danger{background:var(--danger-tint);border-color:var(--danger-tint);color:var(--danger-text)}.vl-badge,.vl-delta{align-items:center;border-radius:var(--r-pill);display:inline-flex;font-size:var(--fs-xs);font-weight:750;line-height:1;padding:5px 8px;white-space:nowrap}.vl-badge--neutral,.vl-delta--neutral{background:var(--surface-muted);color:var(--text-tertiary)}.vl-badge--accent,.vl-delta--accent{background:var(--coral-tint);color:var(--coral-text)}.vl-badge--violet,.vl-delta--violet{background:var(--violet-tint);color:var(--violet-text)}.vl-badge--warning,.vl-delta--warning{background:var(--warning-tint);color:var(--warning-text)}.vl-badge--danger,.vl-delta--danger{background:var(--danger-tint);color:var(--danger-text)}.vl-badge__dot{background:currentColor;border-radius:50%;height:6px;position:relative;width:6px}.vl-badge__dot:after{animation:loop-ping 1.6s var(--ease-out) infinite;background:currentColor;border-radius:inherit;content:"";top:0;right:0;bottom:0;left:0;position:absolute}.vl-delta--success{background:var(--success-tint);color:var(--success-text)}.vl-avatar{align-items:center;background:var(--vl-avatar-bg);border-radius:50%;color:var(--white);display:inline-flex;flex:0 0 auto;font-size:calc(var(--vl-avatar-size) * .4);font-weight:750;height:var(--vl-avatar-size);justify-content:center;width:var(--vl-avatar-size)}.vl-chip{align-items:center;background:var(--surface-muted);border-radius:var(--r-pill);color:var(--text-secondary);display:inline-flex;font-size:var(--fs-sm);font-weight:700;gap:6px;line-height:1;padding:7px 12px;white-space:nowrap}.vl-chip.is-selected{background:var(--ink);color:var(--white)}.vl-metrics{display:grid;gap:var(--sp-4);grid-template-columns:repeat(4,minmax(0,1fr))}.vl-metric-card,.vl-panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-card)}.vl-metric-card{border-radius:var(--r-xl);min-height:142px;padding:17px 19px;position:relative;overflow:hidden}.vl-metric-card__body{align-items:end;display:flex;gap:var(--sp-3);justify-content:space-between}.vl-metric-card strong{display:block;font-size:29px;font-variant-numeric:tabular-nums;letter-spacing:0;line-height:1}.vl-sparkline{bottom:14px;height:42px;opacity:.78;position:absolute;right:16px;width:118px}.vl-sparkline path{fill:none;stroke:var(--coral);stroke-linecap:round;stroke-linejoin:round;stroke-width:3}.vl-workspace{align-items:start;display:grid;gap:var(--sp-5);grid-template-columns:minmax(0,1fr) 372px}.vl-primary-column{display:grid;gap:var(--sp-5)}.vl-panel{border-radius:var(--r-2xl);padding:var(--sp-7)}.vl-panel__header{align-items:start;display:flex;gap:var(--sp-5);justify-content:space-between;margin-bottom:var(--sp-5)}.vl-panel h2{font-size:var(--fs-h2);letter-spacing:0;line-height:1.2;margin:0 0 4px}.vl-panel p,.vl-panel small{color:var(--text-muted);line-height:1.45}.vl-panel p{margin:0}.vl-growth-chart{display:block;height:230px;width:100%}.vl-growth-chart line{stroke:var(--divider)}.vl-growth-chart__fill{fill:url(#vl-growth-fill)}.vl-growth-chart__line{fill:none;stroke:var(--coral);stroke-linecap:round;stroke-width:3}.vl-post-list,.vl-rec-list{display:grid;gap:var(--sp-3)}.vl-post-row,.vl-rec{align-items:center;background:transparent;border:1px solid var(--border);border-radius:var(--r-lg);color:inherit;cursor:pointer;display:flex;gap:var(--sp-4);padding:var(--sp-3);text-align:left;width:100%}.vl-post-row:hover,.vl-rec:hover{border-color:var(--border-strong);box-shadow:var(--shadow-card)}.vl-post-row__thumb{align-items:center;border-radius:var(--r-md);color:#ffffffeb;display:flex;flex:0 0 auto;height:64px;justify-content:center;width:48px}.vl-post-row__thumb--static{background:var(--grad-brand)}.vl-post-row__content{display:grid;flex:1;min-width:0}.vl-post-row__content strong,.vl-rec strong{overflow-wrap:anywhere}.vl-post-row__content small,.vl-post-row__stat small,.vl-rec small{color:var(--text-muted);display:block;font-size:var(--fs-sm);margin-top:3px}.vl-post-row__stat{display:grid;font-variant-numeric:tabular-nums;justify-items:end}.vl-rec{align-items:flex-start;padding:var(--sp-4)}.vl-rec__icon{align-items:center;border-radius:var(--r-md);display:flex;flex:0 0 auto;height:36px;justify-content:center;width:36px}.vl-rec__icon--accent{background:var(--coral-tint);color:var(--coral-text)}.vl-rec__icon--violet{background:var(--violet-tint);color:var(--violet-text)}.vl-rec__icon--warning{background:var(--warning-tint);color:var(--warning-text)}.vl-rec>span:nth-child(2){flex:1}.vl-page-header{align-items:end;display:flex;gap:var(--sp-6);justify-content:space-between;margin-bottom:var(--sp-6)}.vl-page-header h1{font-size:var(--fs-display);letter-spacing:0;line-height:1.08;margin:0}.vl-page-header p{color:var(--text-muted);line-height:1.5;margin:var(--sp-3) 0 0;max-width:620px}.vl-page-header__actions,.vl-toolbar,.vl-toolbar__group,.vl-ds-row{align-items:center;display:flex;gap:var(--sp-3)}.vl-toolbar{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);justify-content:space-between;margin-bottom:var(--sp-4);padding:var(--sp-3)}.vl-toolbar__group{flex-wrap:wrap}.vl-design-system{display:grid;gap:var(--sp-6)}.vl-ds-section{display:grid;gap:var(--sp-4)}.vl-ds-section>h2{font-size:var(--fs-h2);letter-spacing:0;margin:0}.vl-ds-brand-grid,.vl-ds-data-grid,.vl-ds-state-grid{display:grid;gap:var(--sp-4);grid-template-columns:repeat(2,minmax(0,1fr))}.vl-ds-brand-card,.vl-ds-brand-mark{align-items:center;display:flex;gap:var(--sp-5)}.vl-ds-brand-card img{flex:0 0 auto;width:180px}.vl-ds-brand-card p,.vl-ds-brand-mark p{color:var(--text-muted);line-height:1.5;margin:0}.vl-ds-brand-mark img{height:64px;width:64px}.vl-ds-brand-mark strong{display:block;font-size:var(--fs-h2);letter-spacing:0}.vl-swatch-grid{display:grid;gap:var(--sp-4);grid-template-columns:repeat(4,minmax(0,1fr))}.vl-swatch{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-card);display:grid;gap:var(--sp-2);padding:var(--sp-4)}.vl-swatch>span{border:1px solid var(--border);border-radius:var(--r-md);height:58px}.vl-swatch strong,.vl-swatch small{overflow-wrap:anywhere}.vl-swatch small{color:var(--text-muted);font-family:var(--font-mono);font-size:var(--fs-xs)}.vl-type-specimen h2{font-size:var(--fs-display);letter-spacing:0;line-height:1.08;margin:0 0 var(--sp-3);max-width:760px}.vl-type-specimen p{color:var(--text-muted);line-height:1.55;margin:0;max-width:720px}.vl-type-specimen__numbers{display:flex;flex-wrap:wrap;gap:var(--sp-5);margin-top:var(--sp-5)}.vl-type-specimen__numbers strong{font-family:var(--font-mono);font-size:28px;font-variant-numeric:tabular-nums}.vl-ds-grid{display:grid;gap:var(--sp-5);grid-template-columns:minmax(0,1fr) auto}.vl-ds-stack{display:grid;gap:var(--sp-4)}.vl-ds-row{flex-wrap:wrap}.vl-ds-avatars{align-content:start}.vl-ds-data-grid{align-items:stretch}.vl-ds-stat-grid{display:grid;gap:var(--sp-4);grid-template-columns:repeat(4,minmax(0,1fr))}.vl-stat-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-xs);padding:var(--sp-4)}.vl-stat-tile strong{display:block;font-size:20px;font-variant-numeric:tabular-nums}.vl-stat-tile--accent strong{color:var(--coral-text)}.vl-stat-tile--success strong{color:var(--success-text)}.vl-stat-tile--warning strong{color:var(--warning-text)}.vl-stat-tile--violet strong{color:var(--violet-text)}.vl-heat-bar{align-items:center;display:flex;gap:var(--sp-2);min-width:140px}.vl-heat-bar__track,.vl-funnel-bar__track{background:var(--surface-muted);border-radius:var(--r-pill);display:block;overflow:hidden}.vl-heat-bar__track{flex:1;height:7px}.vl-heat-bar__fill,.vl-funnel-bar__fill{border-radius:inherit;display:block;height:100%}.vl-heat-bar__fill--flat{background:var(--heat-0)}.vl-heat-bar__fill--warm{background:var(--heat-1)}.vl-heat-bar__fill--hot{background:var(--heat-2)}.vl-heat-bar__fill--blazing{background:var(--heat-3)}.vl-heat-bar strong{color:var(--coral-text);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.vl-funnel-bar{display:grid;gap:6px}.vl-funnel-bar__meta{align-items:center;display:flex;font-size:var(--fs-sm);justify-content:space-between}.vl-funnel-bar__meta span{color:var(--text-secondary);font-weight:700}.vl-funnel-bar__meta strong{color:var(--text-muted);font-variant-numeric:tabular-nums}.vl-funnel-bar__track{height:10px}.vl-funnel-bar__fill--violet{background:var(--violet)}.vl-funnel-bar__fill--coral{background:var(--coral)}.vl-funnel-bar__fill--teal{background:var(--teal)}.vl-funnel-bar__fill--amber{background:var(--amber)}.vl-ds-table{display:grid;gap:var(--sp-2);padding:var(--sp-3)}.vl-table-row{align-items:center;background:transparent;border:1px solid transparent;border-radius:var(--r-md);color:inherit;cursor:pointer;display:grid;gap:var(--sp-4);grid-template-columns:minmax(0,1fr) minmax(160px,260px) auto auto;padding:var(--sp-3);text-align:left}.vl-table-row:hover{background:var(--surface-sunken);border-color:var(--border)}.vl-table-row strong,.vl-table-row small{display:block}.vl-table-row small{color:var(--text-muted);margin-top:3px}.vl-action-shell,.vl-content-shell{align-items:flex-start;display:flex;gap:var(--sp-4)}.vl-action-shell>div,.vl-content-shell>div{flex:1;min-width:0}.vl-action-shell h2,.vl-content-shell h2{margin-top:0}.vl-ds-state-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.vl-state-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-card);display:grid;gap:var(--sp-2);min-height:158px;padding:var(--sp-5)}.vl-state-card svg{color:var(--coral-text)}.vl-state-card strong{font-size:var(--fs-title, 15.5px)}.vl-state-card p{color:var(--text-muted);line-height:1.45;margin:0}.vl-spinner{animation:loop-fadein .9s var(--ease-out) infinite alternate;border:2px solid var(--surface-muted);border-top-color:var(--coral);border-radius:50%;display:block;height:24px;width:24px}@media (max-width: 980px){.vl-topbar__inner,.vl-hero,.vl-topbar__left{align-items:flex-start;flex-direction:column}.vl-topbar__inner{height:auto;gap:var(--sp-4);padding:var(--sp-5)}.vl-nav{flex-wrap:wrap}.vl-topbar__actions{width:100%}.vl-user-menu{margin-left:auto}.vl-main{padding:var(--sp-5)}.vl-metrics,.vl-workspace,.vl-ds-brand-grid,.vl-ds-data-grid,.vl-ds-state-grid,.vl-ds-grid{grid-template-columns:1fr}.vl-swatch-grid,.vl-ds-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vl-page-header{align-items:flex-start;flex-direction:column}}@media (max-width: 620px){.vl-hero__actions{align-items:stretch;flex-direction:column}.vl-hero__actions .vl-button{width:100%}.vl-topbar__actions{align-items:center;gap:var(--sp-3)}.vl-user-menu{width:100%}.vl-user-menu span{max-width:none}.vl-topbar__actions .vl-button--secondary{flex:1}.vl-topbar__actions .vl-button--ghost{flex:0 0 36px;width:36px}.vl-post-row{align-items:flex-start;flex-wrap:wrap}.vl-post-row__stat{justify-items:start}.vl-page-header__actions,.vl-toolbar{align-items:stretch;flex-direction:column}.vl-page-header h1,.vl-type-specimen h2{font-size:28px}.vl-swatch-grid,.vl-ds-stat-grid{grid-template-columns:1fr}.vl-table-row{align-items:start;grid-template-columns:1fr}.vl-ds-brand-card,.vl-ds-brand-mark,.vl-action-shell,.vl-content-shell{flex-direction:column}.vl-ds-brand-card img{width:156px}}
