const css = `
.m-btn{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.08em;background:transparent;color:var(--ink);border:1px solid var(--line);padding:6px 14px;cursor:pointer;transition:all .12s;border-radius:var(--radius-sm,4px);white-space:nowrap}
.m-btn:hover{border-color:var(--muted);background:var(--panel-2)}
.m-btn--xs{padding:2px 8px;font-size:11px}
.m-btn--ghost{border-color:transparent;color:var(--muted)}
.m-btn--ghost:hover{color:var(--green);border-color:var(--green-dim);background:transparent}
.m-btn--solid{background:var(--green);color:var(--bg-deep);border-color:var(--green)}
.m-btn--solid:hover{background:#79ec94;border-color:#79ec94;box-shadow:0 0 14px rgba(95,221,125,.35)}
.m-btn--accept{border-color:var(--green-dim);color:var(--green)}
.m-btn--accept:hover{background:var(--green);color:var(--bg-deep);border-color:var(--green);box-shadow:0 0 14px rgba(95,221,125,.3)}
.m-btn--reject{border-color:var(--red-dim);color:var(--red)}
.m-btn--reject:hover{background:var(--red);color:var(--bg-deep);border-color:var(--red);box-shadow:0 0 14px rgba(255,93,93,.3)}
.m-btn:disabled{opacity:.4;cursor:not-allowed}
`;
function ensureCss() {
  if (typeof document === 'undefined' || document.getElementById('m-btn-css')) return;
  const s = document.createElement('style'); s.id = 'm-btn-css'; s.textContent = css;
  document.head.appendChild(s);
}

export function Button({ variant = 'default', size, disabled, onClick, type = 'button', style, children }) {
  ensureCss();
  const cls = ['m-btn'];
  if (variant !== 'default') cls.push('m-btn--' + variant);
  if (size === 'xs') cls.push('m-btn--xs');
  return (
    <button type={type} className={cls.join(' ')} disabled={disabled} onClick={onClick} style={style}>
      {children}
    </button>
  );
}
