.btn{justify-content:center;align-items:center;gap:var(--spacing-2);border-radius:var(--radius-md);text-align:center;transition:all var(--transition-fast);padding:var(--spacing-3) var(--spacing-5);font-size:1rem;font-weight:500;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:var(--color-bg-surface);box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-dark)}.btn-secondary{background-color:var(--color-secondary);color:var(--color-bg-surface)}.btn-secondary:hover:not(:disabled){background-color:var(--color-secondary-dark)}.btn-outline{color:var(--color-primary);border:1px solid var(--color-primary);background-color:#0000}.btn-outline:hover:not(:disabled){background-color:var(--color-primary);color:var(--color-bg-surface)}.btn-ghost{color:var(--color-text-primary);background-color:#0000}.btn-ghost:hover:not(:disabled){background-color:var(--color-bg-subtle)}.btn-sm{padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-sm);font-size:.875rem}.btn-lg{padding:var(--spacing-4) var(--spacing-6);border-radius:var(--radius-lg);font-size:1.125rem}.btn-full{width:100%}
.input-wrapper{gap:var(--spacing-1);flex-direction:column;width:100%;display:flex}.input-label{color:var(--color-text-primary);font-size:.875rem;font-weight:500}.input-field-container{align-items:center;display:flex;position:relative}.input-field{width:100%;padding:var(--spacing-3) var(--spacing-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg-surface);color:var(--color-text-primary);transition:all var(--transition-fast);outline:none;font-family:inherit;font-size:1rem}.input-field:hover{border-color:var(--color-border-hover)}.input-field:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #c15b3d33}.input-field:disabled{background-color:var(--color-bg-subtle);cursor:not-allowed;opacity:.7}.input-field.has-error{border-color:var(--color-error)}.input-field.has-error:focus{box-shadow:0 0 0 2px #d32f2f33}.input-icon-left{left:var(--spacing-3);color:var(--color-text-muted);position:absolute}.input-icon-right{right:var(--spacing-3);color:var(--color-text-muted);position:absolute}.input-with-icon-left{padding-left:calc(var(--spacing-4) + var(--spacing-6))}.input-with-icon-right{padding-right:calc(var(--spacing-4) + var(--spacing-6))}.input-error-text{color:var(--color-error);margin-top:var(--spacing-1);font-size:.75rem}
.card{background-color:var(--color-bg-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);flex-direction:column;display:flex;overflow:hidden}.card-hoverable{transition:transform var(--transition-normal), box-shadow var(--transition-normal)}.card-hoverable:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.card-header{padding:var(--spacing-4) var(--spacing-5);border-bottom:1px solid var(--color-border)}.card-body{padding:var(--spacing-5);flex-grow:1}.card-footer{padding:var(--spacing-4) var(--spacing-5);border-top:1px solid var(--color-border);background-color:var(--color-bg-subtle)}
.skeleton{background:linear-gradient(90deg, var(--color-bg-subtle) 25%, var(--color-border) 50%, var(--color-bg-subtle) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s linear infinite skeleton-loading}.skeleton-circular{border-radius:var(--radius-full)}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}
.spinner{border:3px solid #0000001a;border-left-color:var(--color-primary);border-radius:50%;animation:1s linear infinite spin;display:inline-block}.spinner-sm{border-width:2px;width:16px;height:16px}.spinner-md{width:24px;height:24px}.spinner-lg{border-width:4px;width:32px;height:32px}@keyframes spin{to{transform:rotate(360deg)}}
