@charset "UTF-8";@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,[data-theme=light]{color:var(--text);color-scheme:light;--gray-0:#ffffff;--gray-25:#fafbfc;--gray-50:#f5f7f9;--gray-100:#eceff3;--gray-200:#dde2e8;--gray-300:#c5cdd6;--gray-400:#98a3b0;--gray-500:#636e7b;--gray-600:#4f5a67;--gray-700:#38424e;--gray-800:#232b35;--gray-900:#141a22;--gray-950:#0b1017;--teal-50:#effaf8;--teal-100:#d2f1ec;--teal-500:#14918a;--teal-600:#0f766e;--teal-700:#0c5f59;--teal-800:#0a4a46;--bg:var(--gray-50);--bg-subtle:var(--gray-100);--surface:var(--gray-0);--surface-raised:var(--gray-0);--surface-sunken:var(--gray-25);--border:var(--gray-200);--border-strong:#8592a0;--divider:var(--gray-100);--text:var(--gray-900);--text-2:var(--gray-600);--text-3:var(--gray-500);--text-disabled:var(--gray-400);--text-inverse:#fff;--accent:var(--teal-600);--accent-hover:var(--teal-700);--accent-active:var(--teal-800);--accent-fg:#fff;--accent-subtle:var(--teal-50);--accent-text:var(--teal-700);--link:var(--teal-700);--focus:#0f766e;--focus-ring:0 0 0 2px var(--surface),0 0 0 4px var(--focus);--overlay:rgba(11,16,23,.48);--success:#15803d;--success-bg:#ecfdf3;--success-text:#166534;--success-border:#bbf0cf;--warning:#b45309;--warning-bg:#fff8eb;--warning-text:#92400e;--warning-border:#fde2a8;--danger:#c62828;--danger-bg:#fef2f2;--danger-text:#a31b1b;--danger-border:#f8c9c9;--danger-fg:#fff;--danger-hover:#a31b1b;--info:#1d5fd1;--info-bg:#eff5ff;--info-text:#1a4fa8;--info-border:#c7dafc;--shell-bg:var(--gray-950);--shell-fg:#e6eaef;--shell-accent:#5eead4;--sidebar-bg:var(--gray-0);--sidebar-fg:var(--gray-700);--sidebar-hover:var(--gray-50);--sidebar-active-bg:var(--teal-50);--sidebar-active-fg:var(--teal-700);--sidebar-w:232px;--chart-1:#0f766e;--chart-2:#3b6fd8;--chart-3:#c2410c;--chart-4:#7c5cc4;--chart-5:#a16207;--chart-6:#64748b;--chart-7:#be185d;--chart-8:#15803d;--chart-grid:var(--gray-100);--chart-axis:var(--gray-500);--app-hue:var(--accent);--font-sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-display:var(--font-sans);--font-mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;--fs-2xs:11px;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:18px;--fs-2xl:22px;--fs-3xl:28px;--fs-4xl:36px;--fs-5xl:48px;--lh-tight:1.2;--lh-snug:1.35;--lh-normal:1.5;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--tracking-tight:-.015em;--tracking-caps:.04em;--body-size:var(--fs-md);--space-0:0;--space-px:1px;--space-0_5:2px;--space-1:4px;--space-1_5:6px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--control-h-sm:28px;--control-h:32px;--control-h-lg:40px;--row-h:36px;--shell-h:40px;--topbar-h:52px;--container-w:1200px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-full:9999px;--shadow-sm:0 1px 2px rgba(16,24,40,.06),0 0 0 1px rgba(16,24,40,.04);--shadow-md:0 4px 12px rgba(16,24,40,.08),0 0 0 1px rgba(16,24,40,.05);--shadow-lg:0 12px 32px rgba(16,24,40,.14),0 0 0 1px rgba(16,24,40,.06);--z-base:0;--z-sticky:100;--z-sidebar:200;--z-shell:300;--z-dropdown:400;--z-overlay:500;--z-modal:510;--z-toast:600;--z-tooltip:700;--dur-instant:80ms;--dur-fast:.12s;--dur-base:.16s;--dur-slow:.24s;--ease-standard:cubic-bezier(.2,0,0,1);--ease-enter:cubic-bezier(0,0,.2,1);--ease-exit:cubic-bezier(.4,0,1,1)}@media(prefers-reduced-motion:reduce){:root{--dur-instant:0ms;--dur-fast:0ms;--dur-base:0ms;--dur-slow:0ms}}[data-theme=dark]{color:var(--text);color-scheme:dark;--bg:#0b1017;--bg-subtle:#111822;--surface:#121a24;--surface-raised:#18212d;--surface-sunken:#0e141c;--border:#232d3a;--border-strong:#2f3b4a;--divider:#1a2330;--text:#e8ecf1;--text-2:#a9b3bf;--text-3:#8692a0;--text-disabled:#5b6673;--accent:#2bb3a6;--accent-hover:#3cc7ba;--accent-active:#5eead4;--accent-fg:#04201d;--accent-subtle:rgba(43,179,166,.12);--accent-text:#5eead4;--link:#5eead4;--focus:#5eead4;--success:#3ccf7a;--success-bg:rgba(60,207,122,.12);--success-text:#7ee2a6;--success-border:rgba(60,207,122,.3);--warning:#f0a43a;--warning-bg:rgba(240,164,58,.12);--warning-text:#f7c47a;--warning-border:rgba(240,164,58,.3);--danger:#f26b6b;--danger-bg:rgba(242,107,107,.12);--danger-text:#f9a3a3;--danger-border:rgba(242,107,107,.3);--info:#6b9cf5;--info-bg:rgba(107,156,245,.12);--info-text:#a6c4fa;--info-border:rgba(107,156,245,.3);--sidebar-bg:#0e141c;--sidebar-fg:#a9b3bf;--sidebar-hover:#151d28;--sidebar-active-bg:rgba(43,179,166,.12);--sidebar-active-fg:#5eead4;--chart-1:#2bb3a6;--chart-2:#6b9cf5;--chart-3:#f08a4b;--chart-4:#a78bfa;--chart-5:#d4a72c;--chart-6:#8692a0;--chart-grid:#1a2330;--chart-axis:#8692a0;--shadow-sm:0 0 0 1px rgba(255,255,255,.05);--shadow-md:0 8px 24px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.06);--shadow-lg:0 16px 40px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.08);--border-strong:#627080;--text-3:#8a96a4;--overlay:rgba(0,0,0,.6);--danger-fg:#1f0606;--danger-hover:#f58b8b;--chart-7:#f472b6;--chart-8:#3ccf7a}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--bg:#0b1017;--bg-subtle:#111822;--surface:#121a24;--surface-raised:#18212d;--surface-sunken:#0e141c;--border:#232d3a;--border-strong:#2f3b4a;--divider:#1a2330;--text:#e8ecf1;--text-2:#a9b3bf;--text-3:#8692a0;--text-disabled:#5b6673;--accent:#2bb3a6;--accent-hover:#3cc7ba;--accent-active:#5eead4;--accent-fg:#04201d;--accent-subtle:rgba(43,179,166,.12);--accent-text:#5eead4;--link:#5eead4;--focus:#5eead4;--success:#3ccf7a;--success-bg:rgba(60,207,122,.12);--success-text:#7ee2a6;--success-border:rgba(60,207,122,.3);--warning:#f0a43a;--warning-bg:rgba(240,164,58,.12);--warning-text:#f7c47a;--warning-border:rgba(240,164,58,.3);--danger:#f26b6b;--danger-bg:rgba(242,107,107,.12);--danger-text:#f9a3a3;--danger-border:rgba(242,107,107,.3);--info:#6b9cf5;--info-bg:rgba(107,156,245,.12);--info-text:#a6c4fa;--info-border:rgba(107,156,245,.3);--sidebar-bg:#0e141c;--sidebar-fg:#a9b3bf;--sidebar-hover:#151d28;--sidebar-active-bg:rgba(43,179,166,.12);--sidebar-active-fg:#5eead4;--chart-1:#2bb3a6;--chart-2:#6b9cf5;--chart-3:#f08a4b;--chart-4:#a78bfa;--chart-5:#d4a72c;--chart-6:#8692a0;--chart-grid:#1a2330;--chart-axis:#8692a0;--shadow-sm:0 0 0 1px rgba(255,255,255,.05);--shadow-md:0 8px 24px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.06);--shadow-lg:0 16px 40px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.08);--border-strong:#627080;--text-3:#8a96a4;--overlay:rgba(0,0,0,.6);--danger-fg:#1f0606;--danger-hover:#f58b8b;--chart-7:#f472b6;--chart-8:#3ccf7a}}[data-app=home]{--app-hue:var(--accent)}[data-app=bookings]{--app-hue:#2563eb}[data-app=crm]{--app-hue:#0f766e}[data-app=invoices]{--app-hue:#7c3aed}[data-app=store]{--app-hue:#c2410c}[data-app=finance]{--app-hue:#15803d}[data-app=hr]{--app-hue:#a16207}[data-app=forms]{--app-hue:#0e7490}[data-app=docs]{--app-hue:#475569}[data-app=campaigns]{--app-hue:#be185d}[data-app=analytics]{--app-hue:#4338ca}[data-theme=dark] [data-app=bookings],[data-theme=dark][data-app=bookings]{--app-hue:#6b9cf5}[data-theme=dark] [data-app=crm],[data-theme=dark][data-app=crm]{--app-hue:#2bb3a6}[data-theme=dark] [data-app=invoices],[data-theme=dark][data-app=invoices]{--app-hue:#a78bfa}[data-theme=dark] [data-app=store],[data-theme=dark][data-app=store]{--app-hue:#f08a4b}[data-theme=dark] [data-app=finance],[data-theme=dark][data-app=finance]{--app-hue:#3ccf7a}[data-theme=dark] [data-app=hr],[data-theme=dark][data-app=hr]{--app-hue:#d4a72c}[data-theme=dark] [data-app=forms],[data-theme=dark][data-app=forms]{--app-hue:#38bdf8}[data-theme=dark] [data-app=docs],[data-theme=dark][data-app=docs]{--app-hue:#94a3b8}[data-theme=dark] [data-app=campaigns],[data-theme=dark][data-app=campaigns]{--app-hue:#f472b6}[data-theme=dark] [data-app=analytics],[data-theme=dark][data-app=analytics]{--app-hue:#818cf8}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;tab-size:4}body{min-height:100vh;font-family:var(--font-sans);font-size:var(--body-size);line-height:var(--lh-normal);font-weight:var(--fw-regular);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit;letter-spacing:inherit}button{cursor:pointer;background:none;border:0;padding:0}button:disabled{cursor:not-allowed}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--fw-semibold);line-height:var(--lh-tight);color:var(--text);text-wrap:balance}h1{font-size:var(--fs-3xl);letter-spacing:var(--tracking-tight)}h2{font-size:var(--fs-2xl);letter-spacing:var(--tracking-tight)}h3{font-size:var(--fs-xl)}h4{font-size:var(--fs-lg)}h5,h6{font-size:var(--fs-md)}p{text-wrap:pretty}small{font-size:var(--fs-xs)}b,strong{font-weight:var(--fw-semibold)}code,kbd,samp,pre{font-family:var(--font-mono);font-size:.92em}hr{border:0;border-top:1px solid var(--border)}table{border-collapse:collapse;border-spacing:0}a{color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}a:hover{color:var(--accent-hover)}::selection{background:var(--accent-subtle);color:var(--text)}:focus{outline:none}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-sm)}[hidden]{display:none!important}.vg-num,.vg-money{font-variant-numeric:tabular-nums}.vg-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.vg-muted{color:var(--text-2)}.vg-subtle{color:var(--text-3)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.vg-icon{display:inline-flex;flex:none;width:16px;height:16px;color:currentColor}.vg-icon svg{width:100%;height:100%}.vg-icon--20{width:20px;height:20px}.vg-btn{--_h:var(--control-h);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--_h);min-width:var(--_h);padding:0 var(--space-4);border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--fs-md);font-weight:var(--fw-medium);line-height:1;white-space:nowrap;text-decoration:none;-webkit-user-select:none;user-select:none;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard)}.vg-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.vg-btn:disabled,.vg-btn[aria-disabled=true]{opacity:.5;pointer-events:none}.vg-btn--primary{background:var(--accent);color:var(--accent-fg)}.vg-btn--primary:hover{background:var(--accent-hover);color:var(--accent-fg)}.vg-btn--primary:active{background:var(--accent-active)}.vg-btn--secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.vg-btn--secondary:hover{background:var(--bg-subtle);color:var(--text)}.vg-btn--ghost{background:transparent;color:var(--text-2)}.vg-btn--ghost:hover{background:var(--bg-subtle);color:var(--text)}.vg-btn--danger{background:var(--danger);color:var(--danger-fg)}.vg-btn--danger:hover{background:var(--danger-hover);color:var(--danger-fg)}.vg-btn--link{background:none;color:var(--link);padding:0;height:auto;min-width:0;text-decoration:underline;text-underline-offset:2px}.vg-btn--sm{--_h:var(--control-h-sm);padding:0 var(--space-3);font-size:var(--fs-sm)}.vg-btn--lg{--_h:var(--control-h-lg);padding:0 var(--space-5)}.vg-btn--icon{padding:0;width:var(--_h)}.vg-btn--block{width:100%}.vg-btn[aria-busy=true]{color:transparent!important;position:relative}.vg-btn[aria-busy=true]:after{content:"";position:absolute;width:14px;height:14px;border-radius:50%;border:2px solid var(--text-3);border-right-color:transparent;animation:vg-spin .7s linear infinite}.vg-btn--primary[aria-busy=true]:after{border-color:var(--accent-fg);border-right-color:transparent}@keyframes vg-spin{to{transform:rotate(360deg)}}.vg-btn-group{display:inline-flex;gap:var(--space-2);flex-wrap:wrap}.vg-input,.vg-select,.vg-textarea{display:block;width:100%;height:var(--control-h);padding:0 var(--space-3);background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-md);font-size:var(--fs-md);transition:border-color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard)}.vg-input::placeholder,.vg-textarea::placeholder{color:var(--text-3);opacity:1}.vg-input:hover,.vg-select:hover,.vg-textarea:hover{border-color:var(--text-3)}.vg-input:focus-visible,.vg-select:focus-visible,.vg-textarea:focus-visible,.vg-input:focus,.vg-select:focus,.vg-textarea:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px var(--accent-subtle),0 0 0 1px var(--focus)}.vg-input:disabled,.vg-select:disabled,.vg-textarea:disabled{background:var(--bg-subtle);color:var(--text-disabled);cursor:not-allowed}.vg-input[aria-invalid=true],.vg-select[aria-invalid=true],.vg-textarea[aria-invalid=true]{border-color:var(--danger)}.vg-input--sm{height:var(--control-h-sm);font-size:var(--fs-sm)}.vg-input--lg{height:var(--control-h-lg)}.vg-textarea{height:auto;min-height:80px;padding:var(--space-2) var(--space-3);line-height:var(--lh-normal);resize:vertical}.vg-select{appearance:none;padding-right:var(--space-8);cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--text-2) 50%),linear-gradient(135deg,var(--text-2) 50%,transparent 50%);background-position:calc(100% - 15px) 50%,calc(100% - 10px) 50%;background-size:5px 5px;background-repeat:no-repeat}.vg-input-group{position:relative;display:flex;align-items:center}.vg-input-group>.vg-input{flex:1}.vg-input-group__adorn{position:absolute;inset-block:0;display:flex;align-items:center;padding:0 var(--space-3);color:var(--text-3);pointer-events:none;font-variant-numeric:tabular-nums}.vg-input-group__adorn--start{left:0}.vg-input-group__adorn--end{right:0}.vg-input-group:has(.vg-input-group__adorn--start)>.vg-input{padding-left:var(--space-8)}.vg-input-group:has(.vg-input-group__adorn--end)>.vg-input{padding-right:var(--space-8)}.vg-check,.vg-radio,.vg-switch{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--fs-md);color:var(--text);cursor:pointer;min-height:24px}.vg-check input,.vg-radio input{appearance:none;flex:none;width:16px;height:16px;margin:0;border:1px solid var(--border-strong);background:var(--surface);display:grid;place-content:center;cursor:pointer;transition:background-color var(--dur-fast),border-color var(--dur-fast)}.vg-check input{border-radius:var(--radius-sm)}.vg-radio input{border-radius:50%}.vg-check input:checked,.vg-radio input:checked,.vg-check input:indeterminate{background:var(--accent);border-color:var(--accent)}.vg-check input:checked:before{content:"";width:9px;height:5px;border:2px solid var(--accent-fg);border-top:0;border-right:0;transform:translateY(-1px) rotate(-45deg)}.vg-check input:indeterminate:before{content:"";width:8px;height:2px;background:var(--accent-fg)}.vg-radio input:checked:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent-fg)}.vg-check input:focus-visible,.vg-radio input:focus-visible,.vg-switch input:focus-visible{outline:none;box-shadow:var(--focus-ring)}.vg-check input:disabled,.vg-radio input:disabled,.vg-switch input:disabled{opacity:.5;cursor:not-allowed}.vg-switch input{appearance:none;flex:none;position:relative;width:32px;height:18px;margin:0;border-radius:var(--radius-full);background:var(--border-strong);cursor:pointer;transition:background-color var(--dur-base) var(--ease-standard)}.vg-switch input:before{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-sm);transition:transform var(--dur-base) var(--ease-standard)}.vg-switch input:checked{background:var(--accent)}.vg-switch input:checked:before{transform:translate(14px);background:var(--accent-fg)}.vg-field{display:flex;flex-direction:column;gap:var(--space-1_5)}.vg-field+.vg-field,.vg-form-grid+.vg-field{margin-top:var(--space-4)}.vg-form-grid>.vg-field+.vg-field{margin-top:0}.vg-label{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text)}.vg-label__req{color:var(--danger-text);margin-left:2px}.vg-label__opt{color:var(--text-3);font-weight:var(--fw-regular);margin-left:var(--space-1)}.vg-help{font-size:var(--fs-xs);color:var(--text-3)}.vg-error{display:flex;align-items:center;gap:var(--space-1);font-size:var(--fs-xs);color:var(--danger-text)}.vg-fieldset{border:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.vg-fieldset legend{font-size:var(--fs-sm);font-weight:var(--fw-medium);margin-bottom:var(--space-2);padding:0}.vg-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4)}.vg-table-wrap{overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.vg-table{width:100%;font-size:var(--fs-md);color:var(--text)}.vg-table th,.vg-table td{height:var(--row-h);padding:0 var(--space-3);text-align:left;vertical-align:middle;border-bottom:1px solid var(--divider);white-space:nowrap}.vg-table thead th{position:sticky;top:0;z-index:1;background:var(--bg-subtle);color:var(--text-2);font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--tracking-caps);border-bottom:1px solid var(--border)}.vg-table tbody tr:hover{background:var(--bg-subtle)}.vg-table tbody tr[aria-selected=true]{background:var(--accent-subtle)}.vg-table tbody tr:last-child td{border-bottom:0}.vg-table--zebra tbody tr:nth-child(2n){background:var(--surface-sunken)}.vg-table--dense th,.vg-table--dense td{height:28px;font-size:var(--fs-sm)}.vg-table .vg-num,.vg-table td.num,.vg-table th.num{text-align:right;font-variant-numeric:tabular-nums}.vg-table__check{width:40px}.vg-bulkbar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--accent-subtle);color:var(--accent-text);border-radius:var(--radius-md);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.vg-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5)}.vg-card--flush{padding:0}.vg-card--raised{box-shadow:var(--shadow-md);border-color:transparent}.vg-card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.vg-card__title{font-size:var(--fs-lg);font-weight:var(--fw-semibold)}.vg-card__footer{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--divider)}.vg-badge{display:inline-flex;align-items:center;gap:var(--space-1_5);height:20px;padding:0 var(--space-2);border-radius:var(--radius-full);font-size:var(--fs-xs);font-weight:var(--fw-medium);line-height:1;white-space:nowrap;background:var(--bg-subtle);color:var(--text-2);border:1px solid var(--border)}.vg-badge--dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.vg-badge--success{background:var(--success-bg);color:var(--success-text);border-color:var(--success-border)}.vg-badge--warning{background:var(--warning-bg);color:var(--warning-text);border-color:var(--warning-border)}.vg-badge--danger{background:var(--danger-bg);color:var(--danger-text);border-color:var(--danger-border)}.vg-badge--info{background:var(--info-bg);color:var(--info-text);border-color:var(--info-border)}.vg-badge--accent{background:var(--accent-subtle);color:var(--accent-text);border-color:transparent}.vg-tag{display:inline-flex;align-items:center;gap:var(--space-1);height:24px;padding:0 var(--space-2);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text);font-size:var(--fs-sm);border:1px solid var(--border)}.vg-tag__remove{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:var(--radius-sm);color:var(--text-2)}.vg-tag__remove:hover{background:var(--border);color:var(--text)}.vg-app-glyph{display:inline-grid;place-items:center;flex:none;width:24px;height:24px;border-radius:var(--radius-md);background:color-mix(in oklab,var(--app-hue) 14%,var(--surface));color:var(--app-hue)}.vg-app-glyph .vg-icon{width:14px;height:14px}.vg-tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--border);overflow-x:auto}.vg-tab{position:relative;display:inline-flex;align-items:center;gap:var(--space-2);height:var(--control-h-lg);padding:0 var(--space-3);color:var(--text-2);font-size:var(--fs-md);font-weight:var(--fw-medium);text-decoration:none;white-space:nowrap;background:none;border:0;cursor:pointer}.vg-tab:hover,.vg-tab[aria-selected=true],.vg-tab[aria-current=page]{color:var(--text)}.vg-tab[aria-selected=true]:after,.vg-tab[aria-current=page]:after{content:"";position:absolute;left:var(--space-3);right:var(--space-3);bottom:-1px;height:2px;background:var(--accent);border-radius:2px 2px 0 0}.vg-tab__count{font-size:var(--fs-xs);color:var(--text-3);font-variant-numeric:tabular-nums}.vg-breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1_5);list-style:none;padding:0;font-size:var(--fs-sm);color:var(--text-2)}.vg-breadcrumb li+li:before{content:"/";color:var(--text-3);margin-right:var(--space-1_5)}.vg-breadcrumb a{color:var(--text-2);text-decoration:none}.vg-breadcrumb a:hover{color:var(--text);text-decoration:underline}.vg-breadcrumb [aria-current=page]{color:var(--text);font-weight:var(--fw-medium)}.vg-pagination{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);font-size:var(--fs-sm);color:var(--text-2)}.vg-pagination__pages{display:flex;gap:var(--space-1);list-style:none;padding:0}.vg-page{display:inline-grid;place-items:center;min-width:var(--control-h-sm);height:var(--control-h-sm);padding:0 var(--space-2);border-radius:var(--radius-md);color:var(--text-2);text-decoration:none;font-variant-numeric:tabular-nums;border:1px solid transparent}.vg-page:hover{background:var(--bg-subtle);color:var(--text)}.vg-page[aria-current=page]{background:var(--surface);border-color:var(--border-strong);color:var(--text);font-weight:var(--fw-semibold)}.vg-backdrop{position:fixed;inset:0;z-index:var(--z-overlay);background:var(--overlay);animation:vg-fade var(--dur-base) var(--ease-enter)}.vg-modal{position:fixed;z-index:var(--z-modal);left:50%;top:50%;transform:translate(-50%,-50%);width:min(480px,calc(100vw - 32px));max-height:calc(100vh - 64px);display:flex;flex-direction:column;background:var(--surface-raised);color:var(--text);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:0;padding:0;animation:vg-pop var(--dur-base) var(--ease-enter)}dialog.vg-modal::backdrop{background:var(--overlay)}.vg-modal--lg{width:min(640px,calc(100vw - 32px))}.vg-modal__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-5) var(--space-5) var(--space-3)}.vg-modal__title{font-size:var(--fs-lg);font-weight:var(--fw-semibold)}.vg-modal__body{padding:0 var(--space-5) var(--space-5);overflow:auto;color:var(--text-2)}.vg-modal__footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-top:1px solid var(--divider)}.vg-drawer{position:fixed;z-index:var(--z-modal);top:0;right:0;bottom:0;width:min(480px,100vw);display:flex;flex-direction:column;background:var(--surface-raised);color:var(--text);box-shadow:var(--shadow-lg);animation:vg-slide var(--dur-slow) var(--ease-enter)}.vg-drawer--lg{width:min(640px,100vw)}.vg-drawer__header{display:flex;align-items:center;justify-content:space-between;height:var(--topbar-h);padding:0 var(--space-5);border-bottom:1px solid var(--border)}.vg-drawer__body{flex:1;overflow:auto;padding:var(--space-5)}.vg-drawer__footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-top:1px solid var(--border)}.vg-toast-region{position:fixed;z-index:var(--z-toast);left:var(--space-4);bottom:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);max-width:min(400px,calc(100vw - 32px))}.vg-toast{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-raised);color:var(--text);border:1px solid var(--border);border-left:3px solid var(--text-3);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);font-size:var(--fs-md);animation:vg-pop var(--dur-base) var(--ease-enter)}.vg-toast__title{font-weight:var(--fw-semibold)}.vg-toast__body{color:var(--text-2);font-size:var(--fs-sm)}.vg-toast--success{border-left-color:var(--success)}.vg-toast--success>.vg-icon{color:var(--success)}.vg-toast--warning{border-left-color:var(--warning)}.vg-toast--warning>.vg-icon{color:var(--warning)}.vg-toast--danger{border-left-color:var(--danger)}.vg-toast--danger>.vg-icon{color:var(--danger)}.vg-toast--info{border-left-color:var(--info)}.vg-toast--info>.vg-icon{color:var(--info)}.vg-alert{display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--info-border);background:var(--info-bg);color:var(--info-text);font-size:var(--fs-md)}.vg-alert--success{border-color:var(--success-border);background:var(--success-bg);color:var(--success-text)}.vg-alert--warning{border-color:var(--warning-border);background:var(--warning-bg);color:var(--warning-text)}.vg-alert--danger{border-color:var(--danger-border);background:var(--danger-bg);color:var(--danger-text)}@keyframes vg-fade{0%{opacity:0}}@keyframes vg-pop{0%{opacity:0;transform:translate(var(--_tx,0),var(--_ty,4px)) scale(.98)}}.vg-modal{--_tx:-50%;--_ty: calc(-50% + 4px) }@keyframes vg-slide{0%{transform:translate(24px);opacity:0}}.vg-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-3);padding:var(--space-12) var(--space-6);color:var(--text-2)}.vg-empty__icon{display:grid;place-items:center;width:48px;height:48px;border-radius:var(--radius-lg);background:var(--bg-subtle);color:var(--text-3)}.vg-empty__icon .vg-icon{width:24px;height:24px}.vg-empty__title{font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--text)}.vg-empty__body{max-width:44ch}.vg-empty__actions{display:flex;gap:var(--space-2);flex-wrap:wrap;justify-content:center;margin-top:var(--space-2)}.vg-stat{display:flex;flex-direction:column;gap:var(--space-1);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5)}.vg-stat__label{font-size:var(--fs-sm);color:var(--text-2)}.vg-stat__value{font-size:var(--fs-3xl);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight);line-height:var(--lh-tight);font-variant-numeric:tabular-nums}.vg-stat__meta{display:flex;align-items:center;gap:var(--space-2);font-size:var(--fs-xs);color:var(--text-3)}.vg-stat__spark{height:32px;color:var(--chart-1)}.vg-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4)}.vg-skeleton{display:block;height:12px;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--bg-subtle) 0,var(--divider) 50%,var(--bg-subtle) 100%);background-size:200% 100%;animation:vg-shimmer 1.4s linear infinite}.vg-skeleton--text{width:100%}.vg-skeleton--title{height:20px;width:40%}.vg-skeleton--circle{width:32px;height:32px;border-radius:50%}@keyframes vg-shimmer{to{background-position:-200% 0}}.vg-app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.vg-sidebar{position:sticky;top:0;height:100vh;overflow:auto;z-index:var(--z-sidebar);display:flex;flex-direction:column;gap:var(--space-1);background:var(--sidebar-bg);border-right:1px solid var(--border);padding:var(--space-3)}.vg-sidebar__brand{display:flex;align-items:center;gap:var(--space-2);height:var(--control-h-lg);padding:0 var(--space-2);margin-bottom:var(--space-2)}.vg-sidebar__section{margin-top:var(--space-4);padding:0 var(--space-2) var(--space-1);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--text-3)}.vg-nav{display:flex;flex-direction:column;gap:2px;list-style:none;padding:0}.vg-nav__item{display:flex;align-items:center;gap:var(--space-2);height:32px;padding:0 var(--space-2);border-radius:var(--radius-md);color:var(--sidebar-fg);font-size:var(--fs-md);font-weight:var(--fw-medium);text-decoration:none}.vg-nav__item:hover{background:var(--sidebar-hover);color:var(--text)}.vg-nav__item[aria-current=page],.vg-nav__item.is-active{background:var(--sidebar-active-bg);color:var(--sidebar-active-fg)}.vg-nav__item .vg-badge{margin-left:auto}.vg-main{min-width:0;padding:var(--space-6) var(--space-8)}@media(max-width:1024px){.vg-app{grid-template-columns:56px 1fr}.vg-sidebar .vg-nav__label,.vg-sidebar__section,.vg-sidebar__brand .vg-wordmark-text{display:none}.vg-nav__item{justify-content:center}}@media(max-width:640px){.vg-app{grid-template-columns:1fr}.vg-sidebar{position:fixed;inset:auto 0 0;height:56px;flex-direction:row;border-right:0;border-top:1px solid var(--border);padding:var(--space-1)}.vg-sidebar>:not(.vg-nav){display:none}.vg-sidebar .vg-nav{flex-direction:row;justify-content:space-around;width:100%}.vg-main{padding:var(--space-4) var(--space-4) 72px}}.vg-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-6)}.vg-page-header__title{font-size:var(--fs-2xl);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight)}.vg-page-header__desc{margin-top:var(--space-1);color:var(--text-2)}.vg-page-header__actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.vg-toolbar{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-3)}.vg-toolbar__spacer{flex:1}.vg-toolbar .vg-input-group{width:min(280px,100%)}.vg-divider{height:1px;background:var(--border);border:0;margin:var(--space-4) 0}.vg-kbd{display:inline-flex;align-items:center;height:18px;padding:0 var(--space-1);border:1px solid var(--border);border-bottom-width:2px;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-2)}.vg-container{width:100%;max-width:var(--container-w);margin-inline:auto;padding-inline:var(--space-6)}.vg-section{padding-block:var(--space-20)}.vg-section--alt{background:var(--bg)}.vg-section--surface{background:var(--surface)}.vg-section__eyebrow{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--accent-text);margin-bottom:var(--space-2)}.vg-section__title{font-size:var(--fs-4xl);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight);max-width:24ch}.vg-section__lead{margin-top:var(--space-3);font-size:var(--fs-lg);color:var(--text-2);max-width:60ch}.vg-hero{padding-block:var(--space-20) var(--space-16);background:var(--surface)}.vg-hero__title{font-size:var(--fs-5xl);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight);line-height:1.1;max-width:20ch}.vg-hero__lead{margin-top:var(--space-4);font-size:var(--fs-xl);color:var(--text-2);max-width:56ch}.vg-hero__actions{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;margin-top:var(--space-8)}.vg-hero__shot{margin-top:var(--space-12);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface-sunken);box-shadow:var(--shadow-md)}.vg-proof{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-6);margin-top:var(--space-8);font-size:var(--fs-sm);color:var(--text-3)}.vg-split{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-12);align-items:center}@media(max-width:860px){.vg-split{grid-template-columns:1fr}.vg-hero__title{font-size:var(--fs-4xl)}.vg-section{padding-block:var(--space-12)}}.vg-features{display:grid;gap:var(--space-5);list-style:none;padding:0;margin-top:var(--space-6)}.vg-feature{display:grid;grid-template-columns:20px 1fr;gap:var(--space-1) var(--space-3)}.vg-feature>.vg-icon{width:20px;height:20px;color:var(--accent-text);margin-top:1px;grid-row:span 2}.vg-feature__title{font-weight:var(--fw-semibold);color:var(--text)}.vg-feature__body{color:var(--text-2)}.vg-pricing{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-4);margin-top:var(--space-8)}.vg-plan{display:flex;flex-direction:column;gap:var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6)}.vg-plan--featured{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.vg-plan__name{font-size:var(--fs-lg);font-weight:var(--fw-semibold)}.vg-plan__price{font-size:var(--fs-4xl);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight);font-variant-numeric:tabular-nums;line-height:1}.vg-plan__price small{font-size:var(--fs-sm);font-weight:var(--fw-regular);color:var(--text-2);letter-spacing:0}.vg-plan__note{font-size:var(--fs-xs);color:var(--text-3)}.vg-plan__list{display:flex;flex-direction:column;gap:var(--space-2);list-style:none;padding:0;color:var(--text-2)}.vg-plan__list li{display:flex;gap:var(--space-2)}.vg-plan__list .vg-icon{color:var(--accent-text);margin-top:3px}.vg-plan .vg-btn{margin-top:auto}.vg-faq{max-width:760px;margin-top:var(--space-6);border-top:1px solid var(--border)}.vg-faq details{border-bottom:1px solid var(--border)}.vg-faq summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) 0;font-weight:var(--fw-medium);cursor:pointer;list-style:none}.vg-faq summary::-webkit-details-marker{display:none}.vg-faq summary:after{content:"+";font-size:var(--fs-xl);color:var(--text-3);line-height:1}.vg-faq details[open] summary:after{content:"\2212"}.vg-faq details>div{padding:0 0 var(--space-4);color:var(--text-2);max-width:65ch}.vg-footer{padding-block:var(--space-12) var(--space-8);background:var(--surface);border-top:1px solid var(--border);font-size:var(--fs-sm);color:var(--text-2)}.vg-footer__grid{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:var(--space-8)}@media(max-width:760px){.vg-footer__grid{grid-template-columns:1fr 1fr}}.vg-footer h4{font-size:var(--fs-sm);margin-bottom:var(--space-3)}.vg-footer ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.vg-footer a{color:var(--text-2);text-decoration:none}.vg-footer a:hover{color:var(--text);text-decoration:underline}.vg-footer__bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-10);padding-top:var(--space-6);border-top:1px solid var(--divider);color:var(--text-3)}.vg-wordmark{display:inline-flex;align-items:center;gap:8px;color:var(--text);text-decoration:none;line-height:1}.vg-wordmark svg{width:auto}app-booking .booking-page{min-height:100vh;background:var(--bg-subtle);color:var(--text)}app-booking .center-msg{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);max-width:28rem;margin:0 auto;padding:18vh var(--space-5) var(--space-12);text-align:center;color:var(--text-2)}app-booking .center-msg h1{font-size:var(--fs-xl);font-weight:var(--fw-semibold);color:var(--text)}app-booking .spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:ving-spin .7s linear infinite}app-booking .state-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);color:var(--text-2)}app-booking .state-icon--ok{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}app-booking .state-icon--err{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger-text)}app-booking .booking-header{background:var(--surface);border-bottom:1px solid var(--border)}app-booking .header-inner{max-width:44rem;margin:0 auto;padding:var(--space-5) var(--space-4);display:flex;gap:var(--space-4);align-items:flex-start}app-booking .biz-avatar{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-lg);background:var(--accent-subtle);color:var(--accent-text);font-size:var(--fs-lg);font-weight:var(--fw-semibold)}app-booking .biz-name{font-size:var(--fs-xl);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight);line-height:var(--lh-snug)}app-booking .biz-desc{margin-top:var(--space-1);color:var(--text-2)}app-booking .biz-phone{margin-top:var(--space-2);display:inline-flex;align-items:center;gap:var(--space-1);color:var(--text-2);font-size:var(--fs-sm)}app-booking .stepper{list-style:none;max-width:44rem;margin:0 auto;padding:var(--space-4) var(--space-4) 0;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2)}app-booking .step{display:flex;align-items:center;gap:var(--space-2);padding-top:var(--space-2);border-top:2px solid var(--border);color:var(--text-3);font-size:var(--fs-sm);min-width:0}app-booking .step-num{flex:none;display:grid;place-items:center;width:22px;height:22px;border-radius:var(--radius-full);border:1px solid var(--border-strong);font-size:var(--fs-xs);font-weight:var(--fw-semibold);background:var(--surface)}app-booking .step-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}app-booking .step.active{border-top-color:var(--accent);color:var(--text);font-weight:var(--fw-medium)}app-booking .step.active .step-num{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}app-booking .step.done{border-top-color:var(--accent);color:var(--text-2)}app-booking .step.done .step-num{background:var(--accent-subtle);border-color:var(--accent-subtle);color:var(--accent-text)}app-booking .booking-body{max-width:44rem;margin:0 auto;padding:var(--space-5) var(--space-4) var(--space-10)}app-booking .step-content{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-4)}app-booking .step-title{font-size:var(--fs-lg);font-weight:var(--fw-semibold);margin-bottom:var(--space-4)}app-booking .step-sub{color:var(--text-2);margin:calc(-1 * var(--space-3)) 0 var(--space-4);font-size:var(--fs-sm)}app-booking .empty-msg,app-booking .muted{color:var(--text-2)}app-booking .service-grid{display:grid;gap:var(--space-2)}app-booking .service-card{display:grid;grid-template-columns:1fr auto;grid-template-areas:"name hint" "desc hint" "meta hint";gap:var(--space-1) var(--space-3);align-items:center;width:100%;text-align:left;padding:var(--space-4);background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-md);font:inherit;cursor:pointer;transition:border-color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard)}app-booking .service-card:hover{border-color:var(--accent);background:var(--bg-subtle)}app-booking .service-name{grid-area:name;font-weight:var(--fw-semibold)}app-booking .service-desc{grid-area:desc;color:var(--text-2);font-size:var(--fs-sm)}app-booking .service-meta{grid-area:meta;display:flex;gap:var(--space-4);margin-top:var(--space-1);font-size:var(--fs-sm);color:var(--text-2)}app-booking .service-duration{display:inline-flex;align-items:center;gap:var(--space-1)}app-booking .service-price{font-weight:var(--fw-medium);color:var(--text);font-variant-numeric:tabular-nums}app-booking .select-hint{grid-area:hint;color:var(--text-3)}app-booking .date-picker-wrapper{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-4);max-width:20rem}app-booking .date-label{font-size:var(--fs-sm);font-weight:var(--fw-medium)}app-booking .slots-loading{display:flex;align-items:center;gap:var(--space-2);color:var(--text-2);padding:var(--space-3) 0}app-booking .slots-section h3{font-size:var(--fs-md);font-weight:var(--fw-semibold)}app-booking .slots-tz{margin:var(--space-1) 0 var(--space-3);color:var(--text-3);font-size:var(--fs-xs)}app-booking .slots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:var(--space-2)}app-booking .slot-btn{height:44px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--text);font:inherit;font-weight:var(--fw-medium);font-variant-numeric:tabular-nums;cursor:pointer}app-booking .slot-btn:hover{border-color:var(--accent)}app-booking .slot-btn.selected{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}app-booking .form-row{display:grid;gap:0 var(--space-4)}app-booking .vg-field{margin-bottom:var(--space-4)}app-booking .consent-group{margin:var(--space-2) 0 var(--space-2)}app-booking .consent-hint{display:block;margin-top:var(--space-1);color:var(--text-3);font-size:var(--fs-xs)}app-booking .summary-card{margin:0 0 var(--space-4);padding:var(--space-2) var(--space-4)}app-booking .summary-row{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-2) 0;font-size:var(--fs-md)}app-booking .summary-row dt{color:var(--text-2)}app-booking .summary-row dd{margin:0;text-align:right;overflow-wrap:anywhere}app-booking .summary-row code{font-family:var(--font-mono);font-size:var(--fs-xs)}app-booking .summary-divider{height:1px;background:var(--divider);margin:var(--space-1) 0}app-booking .cancellation-policy{margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);border-left:3px solid var(--border-strong);background:var(--bg-subtle);border-radius:var(--radius-sm)}app-booking .cancellation-policy h3{font-size:var(--fs-sm);font-weight:var(--fw-semibold);margin-bottom:var(--space-1)}app-booking .cancellation-policy p{color:var(--text-2);font-size:var(--fs-sm)}app-booking .step-nav{display:flex;flex-direction:column-reverse;gap:var(--space-2);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--divider)}app-booking .step-nav .vg-btn{width:100%;height:var(--control-h-lg)}app-booking .success-state,app-booking .error-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-3)}app-booking .success-state h2,app-booking .error-state h2{font-size:var(--fs-xl);font-weight:var(--fw-semibold)}app-booking .success-state p,app-booking .error-state p{color:var(--text-2);max-width:36ch}app-booking .success-state .summary-card,app-booking .error-state .summary-card{width:100%;text-align:left}app-booking .booking-foot{max-width:44rem;margin:0 auto;padding:0 var(--space-4) var(--space-8);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);color:var(--text-3);font-size:var(--fs-xs)}app-booking .booking-foot a{color:var(--text-2)}@media(min-width:640px){app-booking .header-inner{padding:var(--space-6) var(--space-5)}app-booking .booking-body{padding:var(--space-6) var(--space-5) var(--space-12)}app-booking .step-content{padding:var(--space-6)}app-booking .form-row{grid-template-columns:1fr 1fr}app-booking .step-nav{flex-direction:row;justify-content:space-between}app-booking .step-nav .vg-btn{width:auto;height:var(--control-h)}}@media(max-width:420px){app-booking .step-label{display:none}app-booking .step.active .step-label{display:inline}}@media(prefers-reduced-motion:reduce){app-booking .spinner{animation-duration:2s}}:root{--bg-base: var(--bg);--bg-deep: var(--bg-subtle);--bg-elevated: var(--surface-raised);--bg-card: var(--surface);--surface-2: var(--bg-subtle);--text-primary: var(--text);--text-secondary: var(--text-2);--text-muted: var(--text-3);--primary: var(--accent);--primary-hover: var(--accent-hover);--primary-dark: var(--accent-hover);--primary-light: var(--accent-subtle);--primary-contrast: var(--accent-fg);--accent-1: var(--accent);--accent-2: var(--warning);--accent-grad: var(--accent);--on-accent: var(--accent-fg);--shadow-focus: var(--focus-ring);--shadow: var(--shadow-sm);--radius: var(--radius-md);--ease: var(--ease-standard);--sidebar-text: var(--sidebar-fg);--sidebar-active: var(--sidebar-active-bg);--text-xs: var(--fs-xs);--text-sm: var(--fs-sm);--text-base: var(--fs-md);--text-lg: var(--fs-lg);--text-xl: var(--fs-xl);--text-2xl: var(--fs-2xl);--text-3xl: var(--fs-3xl);--tour-color: var(--accent)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.loading{display:inline-block;width:16px;height:16px;border:2px solid var(--border);border-top-color:currentColor;border-radius:50%;animation:ving-spin .65s linear infinite;vertical-align:middle}@keyframes ving-spin{to{transform:rotate(360deg)}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--control-h);padding:0 var(--space-4);border:1px solid transparent;border-radius:var(--radius-md);font:inherit;font-size:var(--fs-md);font-weight:var(--fw-medium);cursor:pointer;text-decoration:none;transition:background var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard)}.btn:hover{text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-fg)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn-secondary:hover:not(:disabled){background:var(--bg-subtle)}.btn-danger{background:var(--danger);color:var(--danger-fg)}.btn-danger:hover:not(:disabled){background:var(--danger-hover)}.btn-success{background:var(--accent);color:var(--accent-fg)}.btn-outline{background:transparent;border-color:var(--border-strong);color:var(--text)}.btn-outline:hover:not(:disabled){background:var(--bg-subtle)}.btn-sm{height:var(--control-h-sm);padding:0 var(--space-3);font-size:var(--fs-sm)}.btn-lg{height:var(--control-h-lg);padding:0 var(--space-5)}.form-group{margin-bottom:var(--space-4)}.form-group label{display:block;font-size:var(--fs-sm);font-weight:var(--fw-medium);margin-bottom:var(--space-1);color:var(--text)}.form-control{width:100%;min-height:var(--control-h);padding:0 var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-md);font:inherit;font-size:var(--fs-md);background:var(--surface);color:var(--text)}textarea.form-control{padding:var(--space-2) var(--space-3)}.form-control:focus{outline:none;border-color:var(--focus);box-shadow:var(--focus-ring)}.form-control.ng-invalid.ng-touched{border-color:var(--danger)}.badge,.pill{display:inline-flex;align-items:center;gap:var(--space-1);height:22px;padding:0 var(--space-2);border-radius:var(--radius-full);font-size:var(--fs-xs);font-weight:var(--fw-medium);border:1px solid transparent;white-space:nowrap}.badge-pending{background:var(--warning-bg);color:var(--warning-text);border-color:var(--warning-border)}.badge-confirmed,.badge-active{background:var(--success-bg);color:var(--success-text);border-color:var(--success-border)}.badge-cancelled,.badge-noshow{background:var(--danger-bg);color:var(--danger-text);border-color:var(--danger-border)}.badge-completed,.badge-inactive{background:var(--bg-subtle);color:var(--text-2);border-color:var(--border)}.pill-success{background:var(--success-bg);color:var(--success-text);border-color:var(--success-border)}.pill-warning{background:var(--warning-bg);color:var(--warning-text);border-color:var(--warning-border)}.pill-danger{background:var(--danger-bg);color:var(--danger-text);border-color:var(--danger-border)}.pill-info{background:var(--info-bg);color:var(--info-text);border-color:var(--info-border)}.pill-neutral{background:var(--bg-subtle);color:var(--text-2);border-color:var(--border)}.page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-5)}.page-title{font-size:var(--fs-2xl);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight);margin:0}.data-table{width:100%;border-collapse:collapse;font-size:var(--fs-md)}.data-table th{text-align:left;height:36px;padding:0 var(--space-3);font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--text-3);background:var(--bg-subtle);border-bottom:1px solid var(--border)}.data-table td{height:var(--row-h);padding:0 var(--space-3);border-bottom:1px solid var(--divider)}.data-table tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:var(--bg-subtle)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4);font-size:var(--fs-md);border:1px solid transparent}.alert-error{background:var(--danger-bg);color:var(--danger-text);border-color:var(--danger-border)}.alert-success{background:var(--success-bg);color:var(--success-text);border-color:var(--success-border)}.alert-info{background:var(--info-bg);color:var(--info-text);border-color:var(--info-border)}.fc{--fc-border-color: var(--border);--fc-page-bg-color: var(--surface);--fc-neutral-bg-color: var(--bg-subtle);--fc-today-bg-color: var(--accent-subtle);--fc-event-bg-color: var(--surface);--fc-event-border-color: var(--border);--fc-event-text-color: var(--text);--fc-small-font-size: var(--fs-sm);font-family:var(--font-sans);color:var(--text)}.fc .fc-toolbar.fc-header-toolbar{margin-bottom:var(--space-4);gap:var(--space-3);flex-wrap:wrap}.fc .fc-toolbar-title{font-size:var(--fs-md);font-weight:var(--fw-medium);color:var(--text-2)}.fc .fc-button-primary{background:var(--surface)!important;border:1px solid var(--border-strong)!important;color:var(--text-2)!important;box-shadow:none!important;text-transform:none!important;font-weight:var(--fw-medium)!important;font-size:var(--fs-sm)!important;padding:.3rem .7rem!important;border-radius:var(--radius-sm)!important}.fc .fc-button-primary:not(:disabled):hover{background:var(--bg-subtle)!important;color:var(--text)!important}.fc .fc-button-primary:disabled{opacity:.5!important}.fc .fc-button-primary:focus,.fc .fc-button-primary:focus-visible{box-shadow:var(--focus-ring)!important}.fc .fc-button-group:has(.fc-timeGridWeek-button){background:var(--bg-subtle);padding:2px;border-radius:var(--radius-md);gap:2px}.fc .fc-button-group:has(.fc-timeGridWeek-button) .fc-button{background:transparent!important;border:none!important;color:var(--text-2)!important}.fc .fc-button-group:has(.fc-timeGridWeek-button) .fc-button.fc-button-active{background:var(--surface)!important;color:var(--text)!important;box-shadow:var(--shadow-sm)!important}.fc .fc-scrollgrid{border-radius:var(--radius-md);overflow:hidden}.fc .fc-col-header-cell{background:var(--bg-subtle)}.fc .fc-col-header-cell-cushion{padding:.45rem .4rem;font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-2);text-decoration:none}.fc .fc-col-header-cell.fc-day-today .fc-col-header-cell-cushion{color:var(--accent-text)}.fc .fc-timegrid-slot-label-cushion,.fc .fc-timegrid-axis-cushion{font-size:var(--fs-xs);color:var(--text-3)}.fc .fc-daygrid-day-number{font-size:var(--fs-sm);color:var(--text);padding:.3rem .4rem;text-decoration:none}.fc .fc-daygrid-day.fc-day-today .fc-daygrid-day-number{background:var(--accent);color:var(--accent-fg);border-radius:var(--radius-full);width:1.45rem;height:1.45rem;margin:.25rem;display:inline-flex;align-items:center;justify-content:center}.fc .fc-event{cursor:pointer;border:none;border-left:3px solid var(--text-3);border-radius:var(--radius-sm);padding:1px 3px;box-shadow:none}.fc .fc-event .fc-event-main{color:var(--text);font-weight:var(--fw-medium)}.fc .fc-event.ev-confirmed{background:var(--success-bg);border-left-color:var(--success)}.fc .fc-event.ev-pending{background:var(--warning-bg);border-left-color:var(--warning)}.fc .fc-event.ev-cancelled{background:var(--danger-bg);border-left-color:var(--danger)}.fc .fc-event.ev-completed{background:var(--bg-subtle);border-left-color:var(--text-3)}.fc .fc-event.ev-noshow{background:var(--danger-bg);border-left-color:var(--danger)}.fc .fc-event.ev-confirmed .fc-daygrid-event-dot{border-color:var(--success)}.fc .fc-event.ev-pending .fc-daygrid-event-dot{border-color:var(--warning)}.fc .fc-event.ev-cancelled .fc-daygrid-event-dot,.fc .fc-event.ev-noshow .fc-daygrid-event-dot{border-color:var(--danger)}.fc .fc-event.ev-completed .fc-daygrid-event-dot{border-color:var(--text-3)}.tour-highlight{outline:2px solid var(--tour-color);outline-offset:4px;border-radius:var(--radius-md)}.tour-card-glow{box-shadow:var(--focus-ring),var(--shadow-md)}
