.twu-button{width:fit-content;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:6px;font-weight:700;transition:transform .16s,border-color .16s,background-color .16s,color .16s,opacity .16s,box-shadow .16s;display:inline-flex}.twu-button:hover:not(:disabled){transform:translateY(-1px)}.twu-button:focus-visible{outline:2px solid var(--titan-ui-color-accent);outline-offset:3px}.twu-button:disabled{cursor:not-allowed}.twu-button--primary:disabled:not(.twu-button--loading),.twu-button--danger:disabled:not(.twu-button--loading),.twu-button--success:disabled:not(.twu-button--loading),.twu-button--info:disabled:not(.twu-button--loading),.twu-button--purple:disabled:not(.twu-button--loading){border-color:var(--titan-ui-color-border);background:var(--titan-ui-color-surface-strong);color:var(--titan-ui-color-text-muted);box-shadow:none}.twu-button--secondary:disabled:not(.twu-button--loading){border-color:var(--titan-ui-color-border);background:var(--titan-ui-color-surface);color:var(--titan-ui-color-text-muted);box-shadow:none}.twu-button--ghost:disabled:not(.twu-button--loading){color:color-mix(in srgb, var(--titan-ui-color-text-muted) 55%, transparent)}.twu-button--loading{position:relative}.twu-button__label{align-items:center;gap:6px;display:inline-flex}.twu-button--loading .twu-button__label{visibility:hidden}.twu-button__spinner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.twu-button--sm{min-height:32px;padding:0 8px;font-size:.8rem}.twu-button--md{min-height:46px;padding:0 18px;font-size:.95rem}.twu-button--lg{min-height:52px;padding:0 22px;font-size:1rem}.twu-button--primary{background:linear-gradient(135deg, var(--titan-ui-color-button-primary), var(--titan-ui-color-button-primary-strong));color:var(--titan-ui-color-button-primary-text);box-shadow:0 6px 16px var(--titan-ui-color-button-primary-shadow)}.twu-button--primary:hover:not(:disabled){filter:brightness(1.06);box-shadow:0 8px 20px var(--titan-ui-color-button-primary-shadow)}.twu-button--secondary{border-color:var(--titan-ui-color-border);background:var(--titan-ui-color-surface);color:var(--titan-ui-color-text)}.twu-button--secondary:hover:not(:disabled){border-color:var(--titan-ui-color-border-strong);background:var(--titan-ui-color-surface-strong)}.twu-button--ghost{color:var(--titan-ui-color-text-muted);background:0 0}.twu-button--ghost:hover:not(:disabled){background:var(--titan-ui-color-surface-soft);color:var(--titan-ui-color-text)}.twu-button--danger{color:#fff;box-shadow:0 16px 36px var(--titan-ui-color-shadow);background:linear-gradient(135deg,#ef4444,#dc2626)}.twu-button--success{color:#fff;box-shadow:0 16px 36px var(--titan-ui-color-shadow);background:linear-gradient(135deg,#22c55e,#16a34a)}.twu-button--info{color:#fff;box-shadow:0 16px 36px var(--titan-ui-color-shadow);background:linear-gradient(135deg,#0ea5e9,#0284c7)}.twu-button--purple{color:#fff;box-shadow:0 16px 36px var(--titan-ui-color-shadow);background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.twu-button--danger:hover:not(:disabled),.twu-button--success:hover:not(:disabled),.twu-button--info:hover:not(:disabled),.twu-button--purple:hover:not(:disabled){opacity:.96}.twu-button--sm,.twu-button--sm:hover:not(:disabled){box-shadow:none}.twu-spinner{--twu-spinner-size:40px;--twu-spinner-thickness:4px;--twu-spinner-speed:.9s;inline-size:var(--twu-spinner-size);block-size:var(--twu-spinner-size);vertical-align:middle;place-items:center;display:inline-grid}.twu-spinner__ring{background:conic-gradient(from 0deg, transparent 0deg, var(--titan-ui-color-accent-soft) 70deg, var(--titan-ui-color-accent) 270deg, var(--titan-ui-color-accent-strong) 360deg);block-size:100%;inline-size:100%;-webkit-mask:radial-gradient(farthest-side, transparent calc(100% - var(--twu-spinner-thickness)), #000 calc(100% - var(--twu-spinner-thickness) + .5px));-webkit-mask:radial-gradient(farthest-side, transparent calc(100% - var(--twu-spinner-thickness)), #000 calc(100% - var(--twu-spinner-thickness) + .5px));mask:radial-gradient(farthest-side, transparent calc(100% - var(--twu-spinner-thickness)), #000 calc(100% - var(--twu-spinner-thickness) + .5px));animation:twu-spinner-rotate var(--twu-spinner-speed) cubic-bezier(.65, 0, .35, 1) infinite;border-radius:50%;grid-area:1/1}.twu-spinner__ring--trail{opacity:.35;filter:blur(1px);animation-duration:calc(var(--twu-spinner-speed) * 1.6);animation-direction:reverse}.twu-spinner--xs{--twu-spinner-size:18px;--twu-spinner-thickness:2.5px}.twu-spinner--sm{--twu-spinner-size:26px;--twu-spinner-thickness:3px}.twu-spinner--md{--twu-spinner-size:40px;--twu-spinner-thickness:4px}.twu-spinner--lg{--twu-spinner-size:60px;--twu-spinner-thickness:5px}.twu-spinner--xl{--twu-spinner-size:84px;--twu-spinner-thickness:6px}@keyframes twu-spinner-rotate{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.twu-spinner__ring{animation-duration:2.4s;animation-timing-function:linear}.twu-spinner__ring--trail{display:none}}
