@layer ui{.ui-btn{--btn-bg: var(--surface);--btn-fg: var(--text);--btn-border: transparent;--btn-bg-hover: var(--btn-bg);--btn-fg-hover: var(--btn-fg);--btn-border-hover: var(--btn-border);--btn-shadow: none;--btn-h: var(--touch);--btn-px: 18px;--btn-gap: var(--space-2);--btn-font-size: var(--text-base);--btn-weight: var(--weight-semibold);--btn-icon: 20px;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--btn-gap);min-height:var(--btn-h);min-width:var(--btn-h);padding:var(--space-2) var(--btn-px);border:1.5px solid var(--btn-border);border-radius:var(--radius-btn);background:var(--btn-bg);color:var(--btn-fg);box-shadow:var(--btn-shadow);font:inherit;font-size:var(--btn-font-size);font-weight:var(--btn-weight);line-height:1.2;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.ui-btn svg{flex:none;width:var(--btn-icon);height:var(--btn-icon)}.ui-btn__content{display:inline-flex;align-items:center;justify-content:center;gap:var(--btn-gap);min-width:0;transition:opacity var(--dur-fast) var(--ease)}.ui-btn__label{min-width:0;text-wrap:balance}@media(hover:hover){.ui-btn:not(:disabled,[aria-disabled=true]):hover{background:var(--btn-bg-hover);color:var(--btn-fg-hover);border-color:var(--btn-border-hover)}}.ui-btn:not(:disabled,[aria-disabled=true]):active{transform:translateY(1px)}.ui-btn--action{--btn-bg: var(--action);--btn-fg: var(--on-action);--btn-bg-hover: var(--action-hover);--btn-shadow: var(--shadow-1)}.ui-btn--primary{--btn-bg: var(--primary);--btn-fg: var(--on-primary);--btn-bg-hover: var(--primary-hover);--btn-shadow: var(--shadow-1)}.ui-btn--secondary{--btn-bg: var(--surface);--btn-fg: var(--text);--btn-border: var(--control-border);--btn-bg-hover: var(--surface-sunk);--btn-border-hover: var(--text-muted)}.ui-btn--ghost{--btn-bg: transparent;--btn-fg: var(--text);--btn-bg-hover: var(--surface-sunk)}.ui-btn--danger{--btn-bg: var(--danger);--btn-fg: var(--on-danger);--btn-bg-hover: color-mix(in srgb, var(--danger) 84%, var(--text));--btn-shadow: var(--shadow-1)}.ui-btn--link{--btn-bg: transparent;--btn-fg: var(--primary);--btn-fg-hover: var(--primary-hover);--btn-px: var(--space-1);text-decoration:underline;text-decoration-thickness:from-font;text-underline-offset:.18em}.ui-btn--lg{--btn-h: 56px;--btn-px: var(--space-6);--btn-font-size: var(--text-md);--btn-weight: var(--weight-bold);--btn-icon: 22px}.ui-btn--block{display:flex;width:100%}.ui-btn--icon{--btn-px: 0;--btn-icon: 22px;width:var(--btn-h);padding-block:0}.ui-btn:disabled,.ui-btn[aria-disabled=true]:not([aria-busy=true]){--btn-bg: var(--surface-sunk);--btn-fg: var(--text-muted);--btn-border: var(--line);--btn-shadow: none;cursor:not-allowed}.ui-btn--ghost:disabled,.ui-btn--link:disabled{--btn-bg: transparent;--btn-border: transparent}.ui-btn[aria-busy=true]{cursor:progress}.ui-btn[aria-busy=true] .ui-btn__content{opacity:0}.ui-btn__spinner{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;animation:ui-btn-spin .8s linear infinite}@keyframes ui-btn-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.ui-btn,.ui-btn__content{transition:none}.ui-btn:not(:disabled,[aria-disabled=true]):active{transform:none}.ui-btn__spinner{animation:none}}}
