.ov-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--ov-space-2);padding:var(--ov-space-3) var(--ov-space-6);border-radius:var(--ov-radius-pill);font-family:var(--ov-font-sans);font-weight:var(--ov-w-semibold);font-size:var(--ov-fs-sm);letter-spacing:.01em;border:none;cursor:pointer;text-decoration:none;transition:background var(--ov-dur-fast) var(--ov-ease),box-shadow var(--ov-dur-fast) var(--ov-ease),opacity var(--ov-dur-fast) var(--ov-ease),border-color var(--ov-dur-fast) var(--ov-ease);white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;line-height:1}.ov-btn[data-variant=primary]{background:var(--ov-blue);color:var(--ov-white);box-shadow:0 1px 3px rgba(0,150,255,.25)}.ov-btn[data-variant=primary]:hover:not(:disabled){background:var(--ov-blue-700);box-shadow:0 4px 12px rgba(0,150,255,.35)}.ov-btn[data-variant=secondary]{background:var(--ov-blue-50);color:var(--ov-blue-700);border:1.5px solid var(--ov-blue-100)}.ov-btn[data-variant=secondary]:hover:not(:disabled){background:var(--ov-blue-100);border-color:var(--ov-blue-300)}.ov-btn[data-variant=ghost]{background:transparent;color:var(--ov-steel);border:1.5px solid transparent}.ov-btn[data-variant=ghost]:hover:not(:disabled){background:var(--ov-cloud);border-color:var(--ov-line)}.ov-btn[data-variant=danger]{background:var(--ov-banned);color:var(--ov-white);box-shadow:0 1px 3px rgba(255,77,94,.25)}.ov-btn[data-variant=danger]:hover:not(:disabled){background:var(--ov-banned-fg);box-shadow:0 4px 12px rgba(255,77,94,.35)}.ov-btn[data-size=sm]{padding:var(--ov-space-2) var(--ov-space-4);font-size:var(--ov-fs-xs)}.ov-btn[data-size=lg]{padding:var(--ov-space-4) var(--ov-space-8);font-size:var(--ov-fs-body)}.ov-btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.ov-btn:focus-visible{outline:2px solid var(--ov-blue);outline-offset:3px}.ov-btn-spinner{width:14px;height:14px;border:2px solid;border-top:2px solid transparent;border-radius:50%;animation:ov-spin .6s linear infinite;flex-shrink:0}@keyframes ov-spin{to{transform:rotate(1turn)}}