.ui-button{border-radius:var(--radius);font-weight:500;font-family:var(--font-body);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:.5rem;display:inline-flex;position:relative;overflow:hidden}.ui-button:before{content:"";background:linear-gradient(90deg,#0000,#ffffff26,#0000);width:100%;height:100%;transition:left .5s;position:absolute;top:0;left:-100%}.ui-button:hover:before{left:100%}.ui-button svg,.ui-button .button-icon{flex-shrink:0;width:1rem;height:1rem}.ui-button--sm{border-radius:calc(var(--radius) - 2px);padding:.5rem .875rem;font-size:.8125rem}.ui-button--sm svg,.ui-button--sm .button-icon{width:.875rem;height:.875rem}.ui-button--md{padding:.625rem 1.25rem;font-size:.875rem}.ui-button--lg{padding:.875rem 1.75rem;font-size:1rem}.ui-button--lg svg,.ui-button--lg .button-icon{width:1.125rem;height:1.125rem}.ui-button--primary{background:var(--gradient-primary);color:hsl(var(--primary-foreground));box-shadow:0 2px 8px hsl(var(--primary)/.25)}.ui-button--primary:hover:not(:disabled){box-shadow:0 4px 16px hsl(var(--primary)/.35);transform:translateY(-1px)}.ui-button--primary:active:not(:disabled){box-shadow:0 2px 8px hsl(var(--primary)/.25);transform:translateY(0)}.ui-button--secondary{background:hsl(var(--background));color:hsl(var(--foreground));border:1px solid hsl(var(--border));box-shadow:var(--shadow-sm)}.ui-button--secondary:hover:not(:disabled){background:hsl(var(--accent));border-color:hsl(var(--accent));box-shadow:var(--shadow);transform:translateY(-1px)}.ui-button--secondary:active:not(:disabled){transform:translateY(0)}.ui-button--danger{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground));box-shadow:0 2px 8px hsl(var(--destructive)/.25)}.ui-button--danger:hover:not(:disabled){background:hsl(var(--destructive)/.9);box-shadow:0 4px 16px hsl(var(--destructive)/.35);transform:translateY(-1px)}.ui-button--danger:active:not(:disabled){transform:translateY(0)}.ui-button--ghost{color:hsl(var(--foreground));background:0 0}.ui-button--ghost:before{display:none}.ui-button--ghost:hover:not(:disabled){background:hsl(var(--accent))}.ui-button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none!important;transform:none!important}.ui-button:disabled:before{display:none}.ui-button:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}.ui-button .animate-spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.ui-button--icon-only{aspect-ratio:1;padding:.5rem}.ui-button--icon-only.ui-button--sm{padding:.375rem}.ui-button--icon-only.ui-button--lg{padding:.75rem}
.ui-card{border-radius:var(--radius);transition:all var(--transition-base);padding:1.5rem;position:relative;overflow:hidden}.ui-card--default{background:hsl(var(--card));border:1px solid hsl(var(--border));box-shadow:var(--shadow)}.ui-card--default:hover{box-shadow:var(--shadow-md)}.ui-card--glass{background:hsl(var(--card)/.7);-webkit-backdrop-filter:blur(12px);border:1px solid hsl(var(--border)/.5);box-shadow:0 8px 32px #00000014}.ui-card--glass:hover{box-shadow:0 12px 40px #0000001f}.ui-card--hover{cursor:pointer}.ui-card--hover:hover{transform:translateY(-2px)}.ui-card--hover:active{transform:translateY(0)}.ui-card--glow:before{content:"";background:var(--gradient-glow);opacity:0;height:100%;transition:opacity var(--transition-base);pointer-events:none;position:absolute;top:0;left:0;right:0}.ui-card--glow:hover:before{opacity:1}.ui-card--accent{border-left:3px solid hsl(var(--primary))}.ui-card--accent-success{border-left:3px solid hsl(var(--success))}.ui-card--accent-warning{border-left:3px solid hsl(var(--warning))}.ui-card--accent-danger{border-left:3px solid hsl(var(--destructive))}.ui-card--animated{animation:.4s backwards fadeInUp}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.ui-card{padding:1.25rem}}@media (max-width:480px){.ui-card{padding:1rem}}
.ui-input-wrapper{flex-direction:column;gap:.5rem;display:flex}.ui-input-label{color:hsl(var(--foreground));align-items:center;gap:.375rem;font-size:.875rem;font-weight:500;display:flex}.ui-input-label--required:after{content:"*";color:hsl(var(--destructive))}.ui-input{background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:var(--radius);width:100%;color:hsl(var(--foreground));font-size:.9375rem;font-family:var(--font-body);transition:all var(--transition-fast);box-shadow:var(--shadow-sm);padding:.75rem 1rem}.ui-input:hover:not(:disabled){border-color:hsl(var(--input))}.ui-input:focus{border-color:hsl(var(--ring));box-shadow:0 0 0 3px hsl(var(--ring)/.15),var(--shadow-glow);outline:none}.ui-input::placeholder{color:hsl(var(--muted-foreground));opacity:.7}.ui-input:disabled{opacity:.6;cursor:not-allowed;background:hsl(var(--muted))}.ui-input--error,.ui-input--error:hover{border-color:hsl(var(--destructive))}.ui-input--error:focus{border-color:hsl(var(--destructive));box-shadow:0 0 0 3px hsl(var(--destructive)/.15)}.ui-input-error{color:hsl(var(--destructive));align-items:center;gap:.375rem;font-size:.8125rem;animation:.2s fadeIn;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.ui-input--success{border-color:hsl(var(--success))}.ui-input--success:focus{border-color:hsl(var(--success));box-shadow:0 0 0 3px hsl(var(--success)/.15)}.ui-input-helper{color:hsl(var(--muted-foreground));font-size:.8125rem;line-height:1.5}.ui-input-with-icon{position:relative}.ui-input-with-icon .ui-input{padding-left:2.75rem}.ui-input-icon{width:1.125rem;height:1.125rem;color:hsl(var(--muted-foreground));pointer-events:none;transition:color var(--transition-fast);position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.ui-input-with-icon .ui-input:focus+.ui-input-icon,.ui-input-with-icon:focus-within .ui-input-icon{color:hsl(var(--ring))}.ui-input--sm{padding:.5rem .75rem;font-size:.8125rem}.ui-input--lg{padding:1rem 1.25rem;font-size:1rem}textarea.ui-input{resize:vertical;min-height:100px;line-height:1.5}select.ui-input{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 1rem center;background-repeat:no-repeat;padding-right:2.75rem}select.ui-input:disabled{cursor:not-allowed}@media (max-width:768px){.ui-input{padding:.625rem .875rem;font-size:1rem}}
