.ui-btn,.ui-icon-btn{border-radius:var(--radius-sm);cursor:pointer;touch-action:manipulation;transition:transform var(--dur-micro) var(--steps-press), box-shadow var(--dur-micro) var(--steps-press), opacity var(--dur-fast) linear, background var(--dur-fast) linear, color var(--dur-fast) linear, border-color var(--dur-fast) linear;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.ui-btn:focus-visible,.ui-icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ui-btn:active:not(:disabled):not(.is-loading),.ui-icon-btn:active:not(:disabled){transform:var(--press-offset);animation:px-press-flash var(--dur-micro) steps(1, end)}.ui-btn:disabled,.ui-icon-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;animation:none;transform:none}.ui-btn{gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-weight:600;font-size:var(--font-size-base);text-align:center}.ui-btn--sm{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm)}.ui-btn--lg{min-height:var(--control-lg);padding:var(--spacing-ms) var(--spacing-lg)}.ui-btn--block{width:100%;display:flex}.ui-btn__icon{flex-shrink:0;display:inline-flex}.ui-btn--primary{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.ui-btn--primary:active:not(:disabled):not(.is-loading){box-shadow:1px 1px 0 var(--text-main);text-shadow:none}.ui-btn--secondary{background:var(--glass-bg);color:var(--text-main);border-color:var(--glass-border-strong)}.ui-btn--ghost{color:var(--text-muted);background:0 0}.ui-btn--danger{background:var(--glass-bg);color:var(--error);border-color:var(--error)}@media (hover:hover){.ui-btn--primary:hover:not(:disabled):not(.is-loading){box-shadow:2px 2px 0 var(--text-main);border-color:var(--accent-hover);background:var(--accent-hover);transform:translateY(-1px)}.ui-btn--secondary:hover:not(:disabled):not(.is-loading){color:var(--accent);border-color:var(--accent);background:var(--glass-hover);transform:translateY(-1px)}.ui-btn--ghost:hover:not(:disabled):not(.is-loading){color:var(--text-main);background:var(--glass-hover)}.ui-btn--danger:hover:not(:disabled):not(.is-loading){background:var(--error);color:var(--bg-color);transform:translateY(-1px)}}.ui-btn.is-loading{cursor:progress}.ui-btn.is-loading:after{content:"";width:calc(var(--cell) * 3);height:var(--cell);animation:ui-btn-cells var(--dur-loop) steps(3, end) infinite;background:currentColor;flex-shrink:0}@keyframes ui-btn-cells{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.ui-icon-btn{width:var(--control-lg);height:var(--control-lg);flex-shrink:0;padding:0}.ui-icon-btn--sm{width:var(--control-sm);height:var(--control-sm)}.ui-icon-btn--md{width:var(--control-md);height:var(--control-md)}.ui-icon-btn--glass{color:var(--text-main);background:var(--glass-bg);border-color:var(--glass-border);box-shadow:var(--glass-shadow)}.ui-icon-btn--outline{color:var(--text-muted);border-color:var(--glass-border);background:0 0}.ui-icon-btn--ghost{color:var(--text-muted);background:0 0;border-color:#0000}.ui-icon-btn--danger{color:var(--error);background:var(--glass-bg);border-color:var(--error)}.ui-icon-btn--glass:active:not(:disabled){background:var(--accent);color:var(--accent-contrast);box-shadow:none}@media (hover:hover){.ui-icon-btn--glass:hover:not(:disabled):not(.ui-icon-btn--dock-segment){color:var(--accent);background:var(--glass-hover);border-color:var(--accent);transform:translateY(-1px)}.ui-icon-btn--outline:hover:not(:disabled){color:var(--accent);background:var(--glass-hover);border-color:var(--accent)}.ui-icon-btn--ghost:hover:not(:disabled){color:var(--text-main);background:var(--glass-hover)}.ui-icon-btn--danger:hover:not(:disabled){background:var(--error);color:var(--bg-color)}}@media (prefers-reduced-motion:reduce){.ui-btn,.ui-icon-btn{transition:none}.ui-btn:active:not(:disabled):not(.is-loading),.ui-icon-btn:active:not(:disabled){animation:none;transform:none}.ui-btn.is-loading:after{animation:none}}
