/* uc-button. Consumes only --uc-* (theme + brand aware). Default = outline; .uc-button--accent =
   filled accent. Pair with --uc-accent/--uc-accent-contrast for branded buttons.
   Variants: --danger/--success filled status; --icon = square icon-only (REQUIRES aria-label,
   the visible text is the icon); sizes --sm/--lg; --block = full width. .is-loading pairs with a
   .uc-spinner inside and blocks pointer events while busy (host swaps icon<->spinner). */
.uc-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;box-sizing:border-box;padding:9px 16px;border:1px solid var(--uc-border);border-radius:var(--uc-radius);background:transparent;color:var(--uc-text);font:600 14px/1 var(--uc-font,system-ui,sans-serif);cursor:pointer;text-decoration:none;transition:border-color .15s,opacity .15s}
.uc-button:hover{border-color:var(--uc-text-dim)}
.uc-button:active{opacity:.85}
.uc-button:disabled{opacity:.5;cursor:not-allowed}
.uc-button--accent{background:var(--uc-accent);color:var(--uc-accent-contrast);border-color:var(--uc-accent)}
.uc-button--accent:hover{border-color:var(--uc-accent);opacity:.9}
.uc-button--danger{background:var(--uc-danger);color:var(--uc-danger-contrast, #fff);border-color:var(--uc-danger)}
.uc-button--danger:hover{border-color:var(--uc-danger);opacity:.9}
.uc-button--success{background:var(--uc-success);color:var(--uc-success-contrast, #fff);border-color:var(--uc-success)}
.uc-button--success:hover{border-color:var(--uc-success);opacity:.9}
.uc-button--sm{padding:5px 10px;font-size:12px;gap:6px}
.uc-button--lg{padding:12px 22px;font-size:16px}
/* icon-only: square hit area, icon centered; the accessible name MUST come from aria-label
   (or title) because no text is rendered. SVG icons size to the button's font. */
.uc-button--icon{padding:9px;width:36px;flex:0 0 auto}
.uc-button--icon.uc-button--sm{padding:5px;width:28px}
.uc-button--icon.uc-button--lg{padding:12px;width:46px}
.uc-button svg{width:16px;height:16px;flex:0 0 auto}
.uc-button--sm svg{width:13px;height:13px}
.uc-button--lg svg{width:20px;height:20px}
/* loading: host swaps content to <span class="uc-spinner"></span> + sets aria-busy="true";
   pointer-events:none stops double submits without disabling (keeps :disabled styling to the host). */
.uc-button.is-loading{pointer-events:none;opacity:.75}
.uc-button .uc-spinner{font-size:14px}
.uc-button--lg .uc-spinner{font-size:16px}
.uc-button--block{display:flex;width:100%}
