.ui-spinner{--spinner-size:24px;width:var(--spinner-size);height:var(--spinner-size);border-radius:var(--radius-pill);border:2px solid;border-right-color:#0000;flex:none;animation:.7s linear infinite ui-spinner-rotate;display:inline-block}.ui-spinner[data-size=sm]{--spinner-size:16px}@keyframes ui-spinner-rotate{to{transform:rotate(360deg)}}.ui-button{--button-h:var(--control-h);justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--button-h);padding:0 var(--space-5);border-radius:var(--radius-md);font:inherit;font-size:var(--text-sm);text-align:center;white-space:nowrap;cursor:pointer;transition:background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, color var(--dur-fast) ease;border:1px solid #0000;font-weight:700;line-height:1.2;display:inline-flex}a.ui-button{text-decoration:none}.ui-button[data-size=sm]{--button-h:var(--control-h-sm);padding:0 var(--space-3)}.ui-button[data-full-width]{width:100%}.ui-button__icon{flex:none;display:inline-flex}.ui-button[data-variant=primary]{background:var(--liva-brand);color:var(--liva-ink-inverse)}@media (hover:hover){.ui-button[data-variant=primary]:hover:not(:disabled){background:var(--liva-accent)}}.ui-button[data-variant=accent]{background:var(--liva-accent);color:var(--liva-ink-inverse)}@media (hover:hover){.ui-button[data-variant=accent]:hover:not(:disabled){background:var(--liva-accent-hover)}}.ui-button[data-variant=accent-soft]{background:var(--liva-accent-soft);color:var(--liva-accent-ink)}@media (hover:hover){.ui-button[data-variant=accent-soft]:hover:not(:disabled){border-color:var(--liva-accent)}}.ui-button[data-variant=secondary]{background:var(--liva-surface);border-color:var(--liva-line);color:var(--liva-ink)}@media (hover:hover){.ui-button[data-variant=secondary]:hover:not(:disabled){border-color:var(--liva-line-strong)}}.ui-button[data-variant=ghost]{color:var(--liva-ink-muted);background:0 0}@media (hover:hover){.ui-button[data-variant=ghost]:hover:not(:disabled){background:var(--liva-surface-muted);color:var(--liva-ink)}}.ui-button[data-variant=danger]{background:var(--liva-surface);border-color:var(--liva-negative-line);color:var(--liva-negative-ink)}@media (hover:hover){.ui-button[data-variant=danger]:hover:not(:disabled){background:var(--liva-negative-soft)}}.ui-button[data-variant=inverse]{background:var(--liva-surface);color:var(--liva-brand)}.ui-button[data-variant=inverse-soft]{background:color-mix(in srgb, var(--liva-ink-inverse) 10%, transparent);border-color:color-mix(in srgb, var(--liva-ink-inverse) 28%, transparent);color:var(--liva-ink-inverse)}@media (hover:hover){.ui-button[data-variant=inverse]:hover:not(:disabled){background:var(--liva-accent-tint)}.ui-button[data-variant=inverse-soft]:hover:not(:disabled){background:color-mix(in srgb, var(--liva-ink-inverse) 18%, transparent)}}.ui-button:is([data-variant=inverse],[data-variant=inverse-soft]):focus-visible{outline-color:var(--liva-ink-inverse)}.ui-button:disabled{cursor:not-allowed;opacity:.55}.ui-button[aria-busy=true]{cursor:progress}@media (pointer:coarse){.ui-button{transition:background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, color var(--dur-fast) ease, transform var(--dur-fast) var(--ease-out)}.ui-button:active:not(:disabled){opacity:1;transform:scale(.97)}}.ui-icon-button{width:var(--control-h);min-height:var(--control-h);border-radius:var(--radius-md);padding:0}
