:root{--page-padding:1rem;--bg-app:#f4f7fb;--bg-surface:#fff;--bg-muted:#f1f5f9;--bg-interactive:#2563eb0d;--border-soft:#0f172a14;--border-strong:#0f172a1f;--border-outline:#0f172a1a;--accent-soft:#2563eb0d;--elevation-0:none;--elevation-1:0 1px 2px #0f172a0d;--elevation-header:0 1px 0 #0f172a0f;--elevation-card:0 1px 2px #0f172a0a, 0 2px 8px #0f172a0a;--elevation-primary:0 2px 8px #0f172a14, 0 1px 2px #0f172a0f;--elevation-dock-up:0 -2px 8px #0f172a0d;--elevation-2:0 8px 24px #0f172a12, 0 2px 6px #0f172a0a;--elevation-dock:var(--elevation-dock-up), 0 8px 24px #0f172a14, 0 2px 6px #0f172a0d;--elevation-3:0 10px 28px #0f172a14, 0 4px 10px #0f172a0d;--elevation-fab:0 3px 12px #0f172a1f, 0 1px 3px #0f172a14;--radius-sm:10px;--radius-md:12px;--radius-lg:16px;--radius-card:14px;--radius-mobile-dock:0px;--header-height:52px;--mobile-dock-bar-width:100%;--mobile-dock-radius:0px;--mobile-dock-margin-bottom:0px;--mobile-dock-tab-row-min-h:var(--header-height);--icon-stroke:1.65;--mobile-dock-pad-top-with-fab:0px;--mobile-dock-pad-bottom:0px;--radius-fab:14px;--nav-height:60px;--btn-height-primary:44px;--btn-height-secondary:40px;--icon-chrome:36px}
.ui-btn{box-sizing:border-box;justify-content:center;align-items:center;gap:var(--space-sm);white-space:nowrap;-webkit-font-smoothing:antialiased;touch-action:manipulation;cursor:pointer;transition:background-color var(--motion-duration-ui) var(--motion-ease-standard,cubic-bezier(.4, 0, .2, 1)), border-color var(--motion-duration-ui) var(--motion-ease-standard,cubic-bezier(.4, 0, .2, 1)), color var(--motion-duration-ui) var(--motion-ease-standard,cubic-bezier(.4, 0, .2, 1)), box-shadow var(--motion-duration-ui) var(--motion-ease-standard,cubic-bezier(.4, 0, .2, 1)), transform var(--motion-duration-tap) var(--motion-ease-out,cubic-bezier(.22, 1, .36, 1)), filter var(--motion-duration-ui) var(--motion-ease-standard,cubic-bezier(.4, 0, .2, 1)), opacity var(--motion-duration-ui) var(--motion-ease-standard,cubic-bezier(.4, 0, .2, 1));border-style:solid;border-width:0;font-size:13px;font-weight:500;line-height:1.2;text-decoration:none;display:inline-flex}.ui-btn svg{pointer-events:none;flex-shrink:0;width:1rem;height:1rem}.ui-btn:focus-visible{box-shadow:0 0 0 2px hsl(var(--background)), 0 0 0 4px hsl(var(--ring) / .35);outline:none}.ui-btn:disabled{pointer-events:none;opacity:.5;transform:none}@media (prefers-reduced-motion:reduce){.ui-btn{transition-duration:.01ms}.ui-btn:active{transform:none}}.ui-btn--sz-default{min-height:var(--button-h-default);padding-left:var(--space-lg);padding-right:var(--space-lg);border-radius:var(--radius-md)}.ui-btn--sz-sm{min-height:var(--button-h-compact);padding-left:var(--space-md);padding-right:var(--space-md);border-radius:var(--radius-sm);font-size:12px}.ui-btn--sz-lg{min-height:var(--button-h-large);padding-left:var(--space-lg);padding-right:var(--space-lg);border-radius:var(--radius-md);font-size:14px}.ui-btn--sz-icon{width:var(--button-h-default);height:var(--button-h-default);border-radius:var(--radius-sm);padding:0}.ui-btn--sz-icon svg{pointer-events:auto}.ui-btn[data-button-variant=default]{border-radius:var(--radius-md);color:hsl(var(--primary-foreground));box-shadow:0 3px 8px #2563eb2e, inset 0 1px 0 #ffffff26, 0 0 0 1px hsl(var(--primary) / .2);background:linear-gradient(#2866eb,#1f3d8e);border:0}.dark .ui-btn[data-button-variant=default]{background:linear-gradient(180deg, hsl(var(--primary)), hsl(var(--primary-strong)));box-shadow:0 3px 8px #2563eb38, inset 0 1px 0 #ffffff1a, 0 0 0 1px hsl(var(--primary) / .22)}.ui-btn[data-button-variant=default]:hover:not(:disabled){filter:brightness(1.04)}.ui-btn[data-button-variant=default]:active:not(:disabled){transform:scale(.98)}.ui-btn[data-button-variant=destructive]{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground));border-radius:var(--radius-sm)}.ui-btn[data-button-variant=destructive]:hover:not(:disabled){background:hsl(var(--destructive) / .9)}.ui-btn[data-button-variant=outline]{color:hsl(var(--foreground));border-radius:var(--radius-sm);background:#ffffffd1;border-width:1px;border-color:#0f172a0f;box-shadow:0 1px 2px #0000000a}.dark .ui-btn[data-button-variant=outline]{background:hsl(var(--card));border-color:hsl(var(--border));box-shadow:0 1px 2px #00000040}.ui-btn[data-button-variant=outline]:hover:not(:disabled){background:hsl(var(--muted) / .5);border-color:hsl(var(--border) / .9)}.ui-btn[data-button-variant=outline]:active:not(:disabled){transform:scale(.98)}.ui-btn[data-button-variant=secondary]{color:hsl(var(--foreground));border-radius:var(--radius-sm);background:#ffffffd1;border-width:1px;border-color:#0f172a0f;box-shadow:0 1px 2px #0000000a}.dark .ui-btn[data-button-variant=secondary]{background:hsl(var(--card));border-color:hsl(var(--border));box-shadow:0 1px 2px #00000040}.ui-btn[data-button-variant=secondary]:hover:not(:disabled){background:hsl(var(--muted) / .45);border-color:hsl(var(--border) / .9)}.ui-btn[data-button-variant=secondary]:active:not(:disabled){transform:scale(.98)}.ui-btn[data-button-variant=ghost]{color:hsl(var(--muted-foreground));border-radius:var(--radius-sm);box-shadow:none;background:0 0}.ui-btn[data-button-variant=ghost]:hover:not(:disabled){background:hsl(var(--muted) / .55);color:hsl(var(--foreground))}.ui-btn[data-button-variant=ghost]:active:not(:disabled){background:hsl(var(--muted) / .65);transform:scale(.98)}.ui-btn[data-button-variant=subtle]{background:hsl(var(--primary) / .1);color:hsl(var(--primary));border-radius:var(--radius-sm);box-shadow:none}.ui-btn[data-button-variant=subtle]:hover:not(:disabled){background:hsl(var(--primary) / .16)}.ui-btn[data-button-variant=link]{color:hsl(var(--primary));box-shadow:none;min-height:unset;text-underline-offset:4px;background:0 0;border-radius:0;padding:0}.ui-btn[data-button-variant=link]:hover:not(:disabled){text-decoration:underline}.ui-btn[data-button-variant=link].ui-btn--sz-default,.ui-btn[data-button-variant=link].ui-btn--sz-sm,.ui-btn[data-button-variant=link].ui-btn--sz-lg,.ui-btn[data-button-variant=link].ui-btn--sz-icon{min-height:unset;border-radius:0;width:auto;height:auto;padding:0}@media (prefers-reduced-motion:reduce){.ui-btn[data-button-variant=outline]:active:not(:disabled),.ui-btn[data-button-variant=secondary]:active:not(:disabled),.ui-btn[data-button-variant=default]:active:not(:disabled),.ui-btn[data-button-variant=ghost]:active:not(:disabled){transform:none}}
