body {
	font-family: Inter,system-ui,sans-serif;
	scroll-behavior: smooth
}

.fade-in {
	animation: fadeIn .5s ease-in-out
}

@layer utilities {
    .content-auto {
        content-visibility: auto;
    }
    .text-shadow {
        text-shadow: 0 2px 4px rgba(0,0,0,0.1);
    }
    .transition-height {
        transition: max-height 0.3s ease-in-out;
    }
    .scrollbar-hide::-webkit-scrollbar {
        display: none;
    }
    .scrollbar-hide {
        -ms-overflow-style: none;
        scrollbar-width: none;
    }
}

@keyframes fadeIn {
	from {
		opacity: 0;
		transform: translateY(10px)
	}

	to {
		opacity: 1;
		transform: translateY(0)
	}
}

.pulse {
	animation: pulse 2s infinite
}

@keyframes pulse {
	0% {
		transform: scale(1)
	}

	50% {
		transform: scale(1.05)
	}

	100% {
		transform: scale(1)
	}
}

.loader {
	border-top-color: #3b82f6;
	animation: spinner .6s linear infinite
}

@keyframes spinner {
	0% {
		transform: rotate(0)
	}

	100% {
		transform: rotate(360deg)
	}
}

.user-avatar {
	background: linear-gradient(135deg,#3b82f6 0,#8b5cf6 50%,#ec4899 100%);
	position: relative;
	overflow: hidden;
	transition: all .3s cubic-bezier(.4,0,.2,1)
}

.user-avatar::before {
	content: '';
	position: absolute;
	top: -50%;
	left: -50%;
	width: 200%;
	height: 200%;
	background: linear-gradient(45deg,transparent,rgba(255,255,255,.1),transparent);
	transform: rotate(45deg);
	transition: all .6s ease;
	opacity: 0
}

.user-avatar:hover::before {
	opacity: 1;
	transform: rotate(45deg) translate(50%,50%)
}

.user-avatar:hover {
	transform: scale(1.1) rotate(5deg);
	box-shadow: 0 20px 40px rgba(59,130,246,.3)
}

.user-avatar-icon {
	transition: all .3s ease
}

.user-avatar:hover .user-avatar-icon {
	transform: scale(1.2);
	color: #fff
}

@keyframes avatarGlow {
	0%,100% {
		box-shadow: 0 0 5px rgba(59,130,246,.5),0 0 10px rgba(139,92,246,.3),0 0 15px rgba(236,72,153,.2)
	}

	50% {
		box-shadow: 0 0 10px rgba(59,130,246,.8),0 0 20px rgba(139,92,246,.5),0 0 30px rgba(236,72,153,.3)
	}
}

.user-avatar-glow {
	animation: avatarGlow 3s ease-in-out infinite
}

.theme-gradient {
	background: linear-gradient(135deg,#3b82f6 0,#8b5cf6 100%)
}

.theme-gradient-hover {
	background: linear-gradient(135deg,#2563eb 0,#7c3aed 100%)
}

.theme-shadow {
	box-shadow: 0 4px 14px 0 rgba(59,130,246,.25)
}

.theme-shadow-hover {
	box-shadow: 0 8px 25px 0 rgba(59,130,246,.35)
}

.input-focus-theme:focus {
	border-color: #3b82f6;
	box-shadow: 0 0 0 3px rgba(59,130,246,.1),0 4px 14px 0 rgba(59,130,246,.15)
}

#optGrid {
	transition: grid-template-columns .8s cubic-bezier(.4,0,.2,1)
}

@media (min-width:1024px) {
	#optGrid {
		grid-template-columns: minmax(0,.65fr) minmax(0,.35fr)
	}

	#optGrid.opt-wide-right {
		grid-template-columns: minmax(0,.35fr) minmax(0,.65fr)
	}
}

#promptInput:focus {
	transform: scale(1.01);
	box-shadow: 0 0 0 3px rgba(59,130,246,.1);
	transition: all .3s ease
}

#optimizeBtn:hover {
	transform: translateY(-2px) scale(1.02);
	box-shadow: 0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)
}

#optimizeBtn,#promptInput {
	transition: all .3s cubic-bezier(.4,0,.2,1)
}

/* 保留优化结果中的原始换行和空白 */
#optimizedPrompt {
	white-space: pre-wrap;
}

/* 统一的提示卡片样式 */
.alert {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 12px 16px;
	border-radius: 12px;
	border-width: 1px;
}
.alert * { margin: 0; }
.alert .alert-body { line-height: 1.6; }
.alert .alert-title { font-weight: 600; margin-bottom: 2px; }
.alert .alert-desc { font-size: 0.875rem; }
.alert .alert-icon {
	width: 24px;
	height: 24px;
	border-radius: 9999px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	margin-top: 2px;
}

/* 避免错误提示在结果区域被 pre-wrap 撑高，仅影响 #optimizedPrompt 内部 */
#optimizedPrompt .alert,
#optimizedPrompt .alert .alert-desc {
	white-space: normal;
}

/* 错误态 */
.alert-error { background: #FEF2F2; border-color: #FECACA; }
.alert-error .alert-icon { background: #FEE2E2; color: #DC2626; }
.alert-error .alert-title { color: #991B1B; }
.alert-error .alert-desc { color: #DC2626; word-break: break-word; white-space: pre-wrap; }

@media (max-width:768px) {
	.container {
		padding-left: 1rem;
		padding-right: 1rem
	}
}

.dark .user-avatar {
	box-shadow: 0 0 20px rgba(59,130,246,.2)
}

.dark .input-focus-theme:focus {
	box-shadow: 0 0 0 3px rgba(59,130,246,.2),0 4px 14px 0 rgba(59,130,246,.25)
}

@media (prefers-reduced-motion:reduce) {
	* {
		animation-duration: 0s!important;
		animation-iteration-count: 1!important;
		transition-duration: 0s!important
	}
}

@media print {
	.no-print {
		display: none!important
	}

	body {
		background: #fff!important;
		color: #000!important
	}
}

.page-header {
	background: linear-gradient(135deg,#ebf4ff 0,#e9d5ff 100%)
}

.dark .page-header {
	background: linear-gradient(135deg,rgba(59,130,246,.1) 0,rgba(139,92,246,.1) 100%)
}

.category-filter {
	transition: all .3s ease
}

.category-filter:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(0,0,0,.1)
}

.category-filter.active {
	background: linear-gradient(135deg,#3b82f6 0,#8b5cf6 100%);
	color: #fff;
	box-shadow: 0 4px 12px rgba(59,130,246,.3)
}

.search-input {
	transition: all .3s cubic-bezier(.4,0,.2,1);
	position: relative;
	overflow: hidden
}

.search-input::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg,transparent,rgba(59,130,246,.1),transparent);
	transition: left .5s ease
}

.search-input:hover::before {
	left: 100%
}

.search-input:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 25px rgba(59,130,246,.15),0 4px 10px rgba(0,0,0,.1);
	border-color: rgba(59,130,246,.5)
}

.search-input:focus {
	transform: scale(1.02) translateY(-2px);
	box-shadow: 0 0 0 3px rgba(59,130,246,.1),0 8px 25px rgba(59,130,246,.15),0 4px 10px rgba(0,0,0,.1);
	border-color: #3b82f6
}

.search-input:focus+i.fa-search {
	color: #3b82f6;
	transform: scale(1.1) rotate(5deg);
	transition: all .3s ease
}

.template-card {
	transition: all .3s cubic-bezier(.4,0,.2,1);
	border: 1px solid transparent
}

.template-card:hover {
	transform: translateY(-4px) scale(1.02);
	border-color: rgba(59,130,246,.2);
	box-shadow: 0 20px 40px rgba(0,0,0,.1)
}

.dark .template-card:hover {
	border-color: rgba(59,130,246,.4);
	box-shadow: 0 20px 40px rgba(0,0,0,.3)
}

.category-tag {
	font-size: .75rem;
	font-weight: 500;
	padding: .25rem .5rem;
	border-radius: 9999px;
	transition: all .3s ease
}

.category-tag:hover {
	transform: scale(1.05)
}

.favorite-btn {
	transition: all .3s ease
}

.favorite-btn:hover {
	transform: scale(1.2);
	color: #ef4444
}

.favorite-btn.active {
	color: #ef4444;
	animation: heartBeat .6s ease-in-out
}

@keyframes heartBeat {
	0% {
		transform: scale(1)
	}

	14% {
		transform: scale(1.3)
	}

	28% {
		transform: scale(1)
	}

	42% {
		transform: scale(1.3)
	}

	70% {
		transform: scale(1)
	}
}

.use-template-btn {
	transition: all .3s ease;
	background: linear-gradient(135deg,rgba(59,130,246,.1) 0,rgba(139,92,246,.1) 100%)
}

.use-template-btn:hover {
	background: linear-gradient(135deg,rgba(59,130,246,.2) 0,rgba(139,92,246,.2) 100%);
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(59,130,246,.2)
}

.input-focus-theme {
	transition: all .3s cubic-bezier(.4,0,.2,1);
	position: relative;
	overflow: hidden
}

.input-focus-theme::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg,transparent,rgba(59,130,246,.1),transparent);
	transition: left .5s ease;
	pointer-events: none
}

.input-focus-theme:hover::before {
	left: 100%
}

.input-focus-theme:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 15px rgba(59,130,246,.1),0 2px 8px rgba(0,0,0,.05);
	border-color: rgba(59,130,246,.4)
}

.input-focus-theme:focus {
	transform: scale(1.01) translateY(-1px);
	box-shadow: 0 0 0 3px rgba(59,130,246,.1),0 4px 15px rgba(59,130,246,.1);
	border-color: #3b82f6
}

.sort-select {
	transition: all .3s cubic-bezier(.4,0,.2,1);
	cursor: pointer
}

.sort-select:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 15px rgba(139,92,246,.1);
	border-color: rgba(139,92,246,.4)
}

.sort-select:focus {
	transform: scale(1.01) translateY(-1px);
	box-shadow: 0 0 0 3px rgba(139,92,246,.1),0 4px 15px rgba(139,92,246,.1);
	border-color: #8b5cf6
}

.pagination-btn {
	transition: all .3s ease
}

.pagination-btn:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(0,0,0,.1)
}

.pagination-btn.active {
	background: linear-gradient(135deg,#3b82f6 0,#8b5cf6 100%);
	color: #fff;
	box-shadow: 0 4px 12px rgba(59,130,246,.3)
}

.empty-state {
	opacity: 0;
	animation: fadeInUp .6s ease-out forwards
}

@keyframes fadeInUp {
	from {
		opacity: 0;
		transform: translateY(20px)
	}

	to {
		opacity: 1;
		transform: translateY(0)
	}
}

.load-more-btn {
	transition: all .3s ease
}

.load-more-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 25px rgba(0,0,0,.15)
}

/* 移除重复的 .sort-select 定义，统一使用上方更具体的样式 */

.view-mode-btn {
	transition: all .3s ease
}

.view-mode-btn:hover {
	transform: scale(1.1);
	color: #3b82f6
}

@media (max-width:768px) {
	.template-card:hover {
		transform: translateY(-2px) scale(1.01)
	}

	.category-filter {
		font-size: .875rem;
		padding: .5rem 1rem
	}
}

.dark .template-card {
	background: rgba(55,65,81,.5);
	border-color: rgba(75,85,99,.5)
}

.dark .search-input {
	background: rgba(55,65,81,.8);
	border-color: rgba(75,85,99,.8)
}

.dark .sort-select {
	background: rgba(55,65,81,.8);
	border-color: rgba(75,85,99,.8)
}

.loading-skeleton {
	background: linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);
	background-size: 200% 100%;
	animation: loading 1.5s infinite
}

.dark .loading-skeleton {
	background: linear-gradient(90deg,#374151 25%,#4b5563 50%,#374151 75%);
	background-size: 200% 100%
}

@keyframes loading {
	0% {
		background-position: 200% 0
	}

	100% {
		background-position: -200% 0
	}
}

/* 统一滚动条样式 - 宽度7px，兼容暗黑模式 */
::-webkit-scrollbar {
	width: 7px;
	height: 7px;
}

::-webkit-scrollbar-track {
	background: #f1f1f1;
	border-radius: 4px;
}

::-webkit-scrollbar-thumb {
	background: #c1c1c1;
	border-radius: 4px;
	border: 1px solid #f1f1f1;
}

::-webkit-scrollbar-thumb:hover {
	background: #a8a8a8;
}

::-webkit-scrollbar-corner {
	background: #f1f1f1;
}

/* 暗黑模式滚动条样式 */
.dark ::-webkit-scrollbar-track {
	background: #374151;
}

.dark ::-webkit-scrollbar-thumb {
	background: #6b7280;
	border-color: #374151;
}

.dark ::-webkit-scrollbar-thumb:hover {
	background: #9ca3af;
}

.dark ::-webkit-scrollbar-corner {
	background: #374151;
}

/* 特定容器的滚动条样式（保持原有类名兼容性） */
.prompts-container::-webkit-scrollbar,
.task-content::-webkit-scrollbar,
.prompt-content::-webkit-scrollbar {
	width: 7px;
	height: 7px;
}

.prompts-container::-webkit-scrollbar-track,
.task-content::-webkit-scrollbar-track,
.prompt-content::-webkit-scrollbar-track {
	background: #f1f1f1;
	border-radius: 4px;
}

.prompts-container::-webkit-scrollbar-thumb,
.task-content::-webkit-scrollbar-thumb,
.prompt-content::-webkit-scrollbar-thumb {
	background: #c1c1c1;
	border-radius: 4px;
	border: 1px solid #f1f1f1;
}

.prompts-container::-webkit-scrollbar-thumb:hover,
.task-content::-webkit-scrollbar-thumb:hover,
.prompt-content::-webkit-scrollbar-thumb:hover {
	background: #a8a8a8;
}

.dark .prompts-container::-webkit-scrollbar-track,
.dark .task-content::-webkit-scrollbar-track,
.dark .prompt-content::-webkit-scrollbar-track {
	background: #374151;
}

.dark .prompts-container::-webkit-scrollbar-thumb,
.dark .task-content::-webkit-scrollbar-thumb,
.dark .prompt-content::-webkit-scrollbar-thumb {
	background: #6b7280;
	border-color: #374151;
}

.dark .prompts-container::-webkit-scrollbar-thumb:hover,
.dark .task-content::-webkit-scrollbar-thumb:hover,
.dark .prompt-content::-webkit-scrollbar-thumb:hover {
	background: #9ca3af;
}

/* 搜索建议滚动条样式 */
.search-suggestions::-webkit-scrollbar {
	width: 7px;
	height: 7px;
}

.search-suggestions::-webkit-scrollbar-track {
	background: #f1f1f1;
	border-radius: 4px;
}

.search-suggestions::-webkit-scrollbar-thumb {
	background: #c1c1c1;
	border-radius: 4px;
	border: 1px solid #f1f1f1;
}

.search-suggestions::-webkit-scrollbar-thumb:hover {
	background: #a8a8a8;
}

.dark .search-suggestions::-webkit-scrollbar-track {
	background: #374151;
}

.dark .search-suggestions::-webkit-scrollbar-thumb {
	background: #6b7280;
	border-color: #374151;
}

.dark .search-suggestions::-webkit-scrollbar-thumb:hover {
	background: #9ca3af;
}

/* Firefox 滚动条样式 */
* {
	scrollbar-width: thin;
	scrollbar-color: #c1c1c1 #f1f1f1;
}

.dark * {
	scrollbar-color: #6b7280 #374151;
}

/* 特定容器的Firefox滚动条样式 */
.prompts-container,
.task-content,
.prompt-content {
	scrollbar-width: thin;
	scrollbar-color: #c1c1c1 #f1f1f1;
}

.dark .prompts-container,
.dark .task-content,
.dark .prompt-content {
	scrollbar-color: #6b7280 #374151;
}

/* 搜索建议的Firefox滚动条样式 */
.search-suggestions {
	scrollbar-width: thin;
	scrollbar-color: #c1c1c1 #f1f1f1;
}

.dark .search-suggestions {
	scrollbar-color: #6b7280 #374151;
}

.input-focus-theme {
	transition: all .3s cubic-bezier(.4,0,.2,1);
	position: relative;
	overflow: hidden
}

.input-focus-theme::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg,transparent,rgba(59,130,246,.1),transparent);
	transition: left .5s ease;
	pointer-events: none
}

.input-focus-theme:hover::before {
	left: 100%
}

.input-focus-theme:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 15px rgba(59,130,246,.1),0 2px 8px rgba(0,0,0,.05);
	border-color: rgba(59,130,246,.4)
}

.input-focus-theme:focus {
	transform: scale(1.01) translateY(-1px);
	box-shadow: 0 0 0 3px rgba(59,130,246,.1),0 4px 15px rgba(59,130,246,.1);
	border-color: #3b82f6
}

.pagination-btn {
	transition: all .3s cubic-bezier(.4,0,.2,1);
	position: relative;
	overflow: hidden
}

.pagination-btn::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg,transparent,rgba(59,130,246,.2),transparent);
	transition: left .5s ease
}

.pagination-btn:hover::before {
	left: 100%
}

.pagination-btn:hover {
	background-color: #3b82f6;
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(59,130,246,.3)
}

.pagination-btn.active {
	background-color: #3b82f6;
	color: #fff;
	box-shadow: 0 4px 15px rgba(59,130,246,.3)
}

.load-more-btn {
	transition: all .3s cubic-bezier(.4,0,.2,1);
	position: relative;
	overflow: hidden
}

.load-more-btn::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg,transparent,rgba(59,130,246,.1),transparent);
	transition: left .6s ease
}

.load-more-btn:hover::before {
	left: 100%
}

.load-more-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 25px rgba(0,0,0,.15);
	border-color: rgba(59,130,246,.5)
}

.view-mode-btn {
	transition: all .3s cubic-bezier(.4,0,.2,1)
}

.view-mode-btn:hover {
	transform: rotate(90deg) scale(1.1);
	color: #3b82f6;
	background-color: rgba(59,130,246,.1)
}

#resetFiltersBtn {
	transition: all .3s cubic-bezier(.4,0,.2,1);
	position: relative;
	overflow: hidden
}

#resetFiltersBtn::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg,transparent,rgba(239,68,68,.1),transparent);
	transition: left .5s ease
}

#resetFiltersBtn:hover::before {
	left: 100%
}

#resetFiltersBtn:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(239,68,68,.2);
	background-color: #ef4444
}

.category-filter {
	transition: all .3s cubic-bezier(.4,0,.2,1);
	position: relative;
	overflow: hidden
}

.category-filter::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);
	transition: left .5s ease
}

.category-filter:hover::before {
	left: 100%
}

.category-filter:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(0,0,0,.15)
}

.template-card {
	transition: all .3s cubic-bezier(.4,0,.2,1);
	border: 1px solid transparent;
	position: relative;
	overflow: hidden
}

.template-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg,transparent,rgba(59,130,246,.05),transparent);
	transition: left .8s ease;
	pointer-events: none
}

.template-card:hover::before {
	left: 100%
}

.template-card:hover {
	transform: translateY(-6px) scale(1.02);
	border-color: rgba(59,130,246,.3);
	box-shadow: 0 25px 50px rgba(0,0,0,.15)
}

.dark .template-card:hover {
	border-color: rgba(59,130,246,.5);
	box-shadow: 0 25px 50px rgba(0,0,0,.4)
}

.favorite-btn {
	transition: all .3s cubic-bezier(.4,0,.2,1);
	position: relative
}

.favorite-btn::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 0;
	height: 0;
	background: rgba(239,68,68,.2);
	border-radius: 50%;
	transform: translate(-50%,-50%);
	transition: all .3s ease
}

.favorite-btn:hover::before {
	width: 40px;
	height: 40px
}

.favorite-btn:hover {
	transform: scale(1.3);
	color: #ef4444
}

.favorite-btn.active {
	color: #ef4444;
	animation: heartBeat .8s cubic-bezier(.4,0,.2,1)
}

@keyframes pulse {
	0%,100% {
		transform: scale(1);
		opacity: 1
	}

	50% {
		transform: scale(1.05);
		opacity: .8
	}
}

.pulse-animation {
	animation: pulse 2s infinite
}

@keyframes float {
	0%,100% {
		transform: translateY(0)
	}

	50% {
		transform: translateY(-10px)
	}
}

.float-animation {
	animation: float 3s ease-in-out infinite
}

.css3 {
	box-shadow: 0 0;
	width: calc(100% + 2em);
	font-size: 24px
}

blockquote,body,button,code,dd,div,dl,dt,fieldset,form,h1,h2,h3,h4,h5,h6,input,legend,li,ol,p,pre,td,textarea,th,ul {
	margin: 0;
	padding: 0
}

fieldset,img {
	border: 0
}

:focus {
	outline: 0
}

address,cite,code,ctoolion,dfn,em,optgroup,strong,th,var {
	font-style: normal;
	font-weight: 400
}

h1,h2,h3,h4,h5,h6 {
	font-size: 100%;
	font-weight: 400
}

abbr,acronym {
	border: 0;
	font-variant: normal
}

button,input,optgroup,option,select,textarea {
	font-family: inherit;
	font-size: inherit;
	font-style: inherit;
	font-weight: inherit
}

code,kbd,samp,tt {
	font-size: 100%
}

body {
	line-height: 1.5
}

ol,ul {
	list-style: none
}

table {
	border-collapse: collapse;
	border-spacing: 0
}

ctoolion,th {
	text-align: left
}

sub,sup {
	font-size: 100%;
	vertical-align: baseline
}

:link,:visited,ins {
	text-decoration: none
}

blockquote,q {
	quotes: none
}

blockquote:after,blockquote:before,q:after,q:before {
	content: '';
	content: none
}

/* 统一按钮主题样式 */
.btn-primary {
	@apply bg-gradient-to-r from-primary to-accent hover:from-primary/90 hover:to-accent/90 text-white font-medium rounded-lg transition-all duration-300 shadow-lg hover:shadow-xl transform hover:-translate-y-0.5;
}

.btn-primary-sm {
	@apply bg-gradient-to-r from-primary to-accent hover:from-primary/90 hover:to-accent/90 text-white px-4 py-2 rounded-lg transition-all duration-300 shadow-md hover:shadow-lg;
}

.btn-primary-lg {
	@apply bg-gradient-to-r from-primary to-accent hover:from-primary/90 hover:to-accent/90 text-white px-8 py-3 rounded-lg transition-all duration-300 shadow-lg hover:shadow-xl transform hover:-translate-y-0.5 font-medium;
}

.btn-primary-full {
	@apply w-full bg-gradient-to-r from-primary to-accent hover:from-primary/90 hover:to-accent/90 text-white font-semibold py-3 px-6 rounded-lg transition-all duration-300 shadow-lg hover:shadow-xl transform hover:-translate-y-0.5;
}

.btn-secondary {
	@apply bg-white dark:bg-neutral-800 hover:bg-gray-50 dark:hover:bg-neutral-700 text-gray-800 dark:text-gray-100 font-medium rounded-lg border border-gray-200 dark:border-gray-700 shadow-md hover:shadow-lg transition-all duration-300;
}

.btn-accent {
	@apply bg-gradient-to-r from-accent to-primary hover:from-accent/90 hover:to-primary/90 text-white font-medium rounded-lg transition-all duration-300 shadow-md hover:shadow-lg;
}

/* 分类筛选按钮样式 */
.category-filter {
	@apply px-4 py-2 rounded-full text-sm font-medium transition-all duration-300;
}

.category-filter.active {
	@apply bg-gradient-to-r from-primary to-accent text-white shadow-md;
}

.category-filter:not(.active) {
	@apply bg-gray-100 dark:bg-neutral-700 hover:bg-gray-200 dark:hover:bg-neutral-600 text-gray-700 dark:text-gray-200;
}

/* 表单按钮样式 */
.form-btn-primary {
	@apply bg-gradient-to-r from-primary to-accent hover:from-primary/90 hover:to-accent/90 text-white font-medium rounded-lg transition-all duration-300 shadow-md hover:shadow-lg;
}

/* 操作按钮样式 */
.action-btn-primary {
	@apply bg-gradient-to-r from-primary to-accent hover:from-primary/90 hover:to-accent/90 text-white px-4 py-2 rounded-lg transition-all duration-300;
}

.action-btn-secondary {
	@apply bg-gray-600 hover:bg-gray-700 text-white px-4 py-2 rounded-lg transition-all duration-300;
}

.action-btn-danger {
	@apply bg-red-600 hover:bg-red-700 text-white px-4 py-2 rounded-lg transition-all duration-300;
}

.action-btn-success {
	@apply bg-green-600 hover:bg-green-700 text-white px-4 py-2 rounded-lg transition-all duration-300;
}