.btn{justify-content:center;align-items:center;gap:var(--space-2);font-family:var(--font-sans);font-weight:var(--font-weight-semibold);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);white-space:nowrap;border:none;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none!important;transform:none!important}.btn-xs{height:28px;padding:0 var(--space-2);font-size:var(--font-size-xs);border-radius:var(--radius-md)}.btn-sm{height:36px;padding:0 var(--space-3);font-size:var(--font-size-sm)}.btn-md{height:44px;padding:0 var(--space-5);font-size:var(--font-size-base)}.btn-lg{height:52px;padding:0 var(--space-8);font-size:var(--font-size-lg);border-radius:var(--radius-xl)}.btn-xl{height:60px;padding:0 var(--space-10);font-size:var(--font-size-xl);border-radius:var(--radius-xl)}.btn-primary{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-hover) 100%);box-shadow:var(--shadow-sm), var(--shadow-primary);color:#fff!important}.btn-primary .btn-text,.btn-primary .btn-icon,.btn-primary span{color:#fff!important}.btn-primary:hover:not(:disabled){box-shadow:var(--shadow-md), var(--shadow-primary-lg);background:linear-gradient(135deg, var(--color-primary-light) 0%, var(--color-primary) 100%);transform:translateY(-2px);color:#fff!important}.btn-primary:active:not(:disabled){box-shadow:var(--shadow-sm);transform:translateY(0)}.btn-secondary{background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border);box-shadow:var(--shadow-xs)}.btn-secondary:hover:not(:disabled){background:var(--color-background);border-color:var(--color-text-muted);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn-secondary:active:not(:disabled){background:var(--color-border-light);transform:translateY(0)}.btn-ghost{color:var(--color-text-secondary);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-background);color:var(--color-text-primary)}.btn-ghost:active:not(:disabled){background:var(--color-border-light)}.btn-text{color:var(--color-primary);padding-left:var(--space-2);padding-right:var(--space-2);background:0 0}.btn-text:hover:not(:disabled){color:var(--color-primary-hover);background:var(--color-primary-50)}.btn-accent{background:linear-gradient(135deg, var(--color-accent) 0%, var(--color-accent-hover) 100%);box-shadow:var(--shadow-sm), 0 4px 14px 0 #d977064d;color:#fff!important}.btn-accent .btn-text,.btn-accent .btn-icon,.btn-accent span{color:#fff!important}.btn-accent:hover:not(:disabled){box-shadow:var(--shadow-md), 0 8px 24px 0 #d9770666;background:linear-gradient(135deg, var(--color-accent-light) 0%, var(--color-accent) 100%);transform:translateY(-2px);color:#fff!important}.btn-danger{background:linear-gradient(135deg, var(--color-danger) 0%, #dc2626 100%);box-shadow:var(--shadow-sm), 0 4px 14px 0 #ef444440;color:#fff!important}.btn-danger .btn-text,.btn-danger .btn-icon,.btn-danger span{color:#fff!important}.btn-danger:hover:not(:disabled){box-shadow:var(--shadow-md), 0 8px 24px 0 #ef444459;transform:translateY(-2px);color:#fff!important}.btn-outline{color:var(--color-primary);border:2px solid var(--color-primary);background:0 0}.btn-outline:hover:not(:disabled){background:var(--color-primary);transform:translateY(-1px);color:#fff!important}.btn-outline:hover:not(:disabled) .btn-text,.btn-outline:hover:not(:disabled) .btn-icon,.btn-outline:hover:not(:disabled) span{color:#fff!important}.btn-full{width:100%}.btn-loading{color:#0000!important}.btn-loading .btn-text,.btn-loading .btn-icon{visibility:hidden}.btn-spinner{justify-content:center;align-items:center;display:flex;position:absolute}.btn-spinner svg{color:currentColor;width:20px;height:20px;animation:.8s linear infinite spin}.btn-loading .btn-spinner{color:#fff!important}.btn-secondary.btn-loading .btn-spinner,.btn-ghost.btn-loading .btn-spinner,.btn-text.btn-loading .btn-spinner,.btn-outline.btn-loading .btn-spinner{color:var(--color-primary)}.btn-icon{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.btn-icon svg{width:1.25em;height:1.25em}.btn-icon-only{aspect-ratio:1;padding:0}.btn-icon-only.btn-xs{width:28px}.btn-icon-only.btn-sm{width:36px}.btn-icon-only.btn-md{width:44px}.btn-icon-only.btn-lg{width:52px}.btn-icon-only.btn-xl{width:60px}.btn:after{content:"";opacity:0;background:radial-gradient(circle,#ffffff4d 0%,#0000 70%);transition:transform .5s,opacity .3s;position:absolute;inset:0;transform:scale(0)}.btn:active:after{opacity:1;transition:transform;transform:scale(2.5)}@media (width<=768px){.btn-icon-only.btn-xs,.btn-icon-only.btn-sm{width:44px;height:44px}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.message-container{top:calc(64px + var(--space-3));z-index:var(--z-tooltip);gap:var(--space-3);pointer-events:none;max-width:500px;width:calc(100% - var(--space-8));flex-direction:column;display:flex;position:fixed;left:50%;transform:translate(-50%)}.message{align-items:center;gap:var(--space-3);min-height:48px;padding:var(--space-3) var(--space-4);background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);pointer-events:auto;animation:toastSlideIn var(--transition-base);border-left:4px solid;display:flex}@keyframes toastSlideIn{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.message-success{border-left-color:var(--color-success);background:var(--color-success-bg)}.message-success .message-icon{color:var(--color-success)}.message-error{border-left-color:var(--color-danger);background:var(--color-danger-bg)}.message-error .message-icon{color:var(--color-danger)}.message-warning{border-left-color:var(--color-warning);background:var(--color-warning-bg)}.message-warning .message-icon{color:var(--color-warning)}.message-info{border-left-color:var(--color-info);background:var(--color-info-bg)}.message-info .message-icon{color:var(--color-info)}.message-icon{flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.message-icon svg{width:20px;height:20px}.message-content{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);line-height:var(--line-height-normal);flex:1}.message-close{border-radius:var(--radius-sm);cursor:pointer;width:24px;height:24px;color:var(--color-text-muted);transition:all var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.message-close:hover{color:var(--color-text-primary);background:#0000001a}.message-close:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.message-close svg{width:12px;height:12px}@media (width<=768px){.message-container{width:calc(100% - var(--space-4))}.message{padding:var(--space-2) var(--space-3)}}@media (prefers-color-scheme:dark){.message{background:var(--color-surface);box-shadow:0 10px 25px -5px #0000004d}.message-success{background:#10b9811a}.message-error{background:#ef44441a}.message-warning{background:#f59e0b1a}.message-info{background:#3b82f61a}}
