/* 优化的Tailwind样式 - 最小化版本 */
/* 包含常用工具类，减少外部依赖 */

/* 布局 */
.w-full{width:100%}.w-auto{width:auto}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-1\/4{width:25%}.w-3\/4{width:75%}
.max-w-sm{max-width:24rem}.max-w-md{max-width:28rem}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}
.mx-auto{margin-left:auto;margin-right:auto}
.h-screen{height:100vh}.h-full{height:100%}.h-auto{height:auto}.h-10{height:2.5rem}.h-14{height:3.5rem}
.min-h-screen{min-height:100vh}

/* Flexbox */
.flex{display:flex}.inline-flex{display:inline-flex}.flex-col{flex-direction:column}.flex-row{flex-direction:row}
.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}
.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}
.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}
.flex-1{flex:1 1 0%}

/* 间距 */
.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}
.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}
.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}
.m-2{margin:.5rem}.m-4{margin:1rem}.m-6{margin:1.5rem}.m-8{margin:2rem}
.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}
.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}
.ml-2{margin-left:.5rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}
.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}

/* 网格 */
.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}

/* 定位 */
.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}
.inset-0{top:0;right:0;bottom:0;left:0}.top-0{top:0}.top-6{top:1.5rem}.top-24{top:6rem}
.bottom-0{bottom:0}.bottom-6{bottom:1.5rem}
.left-0{left:0}.left-6{left:1.5rem}
.right-0{right:0}.right-6{right:1.5rem}

/* 层级 */
.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}

/* 文本 */
.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}
.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}
.font-thin{font-weight:100}.font-light{font-weight:300}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-extrabold{font-weight:800}
.leading-none{line-height:1}.leading-tight{line-height:1.25}.leading-snug{line-height:1.375}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}
.tracking-tight{letter-spacing:-.025em}.tracking-normal{letter-spacing:0}.tracking-wide{letter-spacing:.025em}

/* 颜色 */
.text-white{color:#fff}.text-black{color:#000}
.text-primary{color:#165DFF}.text-secondary{color:#4080FF}.text-accent{color:#0FC6C2}
.text-dark{color:#1D2129}.text-light{color:#F2F3F5}.text-neutral{color:#4E5969}
.text-gray-50{color:#F9FAFB}.text-gray-100{color:#F3F4F6}.text-gray-200{color:#E5E7EB}.text-gray-300{color:#D1D5DB}.text-gray-400{color:#9CA3AF}.text-gray-500{color:#6B7280}.text-gray-600{color:#4B5563}.text-gray-700{color:#374151}.text-gray-800{color:#1F2937}.text-gray-900{color:#111827}
.text-red-500{color:#EF4444}.text-red-600{color:#DC2626}
.text-green-500{color:#10B981}.text-green-600{color:#059669}
.text-yellow-500{color:#EAB308}.text-yellow-600{color:#CA8A04}
.text-blue-500{color:#3B82F6}.text-blue-600{color:#2563EB}
.text-purple-500{color:#8B5CF6}.text-purple-600{color:#7C3AED}

/* 背景色 */
.bg-white{background-color:#fff}.bg-black{background-color:#000}
.bg-primary{background-color:#165DFF}.bg-secondary{background-color:#4080FF}.bg-accent{background-color:#0FC6C2}
.bg-dark{background-color:#1D2129}.bg-light{background-color:#F2F3F5}
.bg-gray-50{background-color:#F9FAFB}.bg-gray-100{background-color:#F3F4F6}.bg-gray-200{background-color:#E5E7EB}.bg-gray-300{background-color:#D1D5DB}.bg-gray-800{background-color:#1F2937}
.bg-blue-50{background-color:#EFF6FF}.bg-blue-100{background-color:#DBEAFE}.bg-blue-600{background-color:#2563EB}.bg-blue-700{background-color:#1D4ED8}
.bg-green-100{background-color:#D1FAE5}.bg-green-500{background-color:#10B981}
.bg-purple-100{background-color:#EDE9FE}.bg-purple-600{background-color:#9333EA}
.bg-yellow-100{background-color:#FEF3C7}
.bg-gradient-tech{background:linear-gradient(135deg, #165dff 0%, #0fc6c2 100%)}

/* 边框 */
.border{border-width:1px}.border-2{border-width:2px}
.border-t{border-top-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}
.border-primary{border-color:#165DFF}.border-gray-200{border-color:#E5E7EB}.border-gray-300{border-color:#D1D5DB}.border-gray-800{border-color:#1F2937}
.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-full{border-radius:9999px}

/* 阴影 */
.shadow-sm{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.shadow-xl{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.shadow-2xl{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}

/* 间距 - 特殊值 */
.space-x-2 > :not([hidden]) ~ :not([hidden]){margin-left:.5rem}.space-x-3 > :not([hidden]) ~ :not([hidden]){margin-left:.75rem}.space-x-4 > :not([hidden]) ~ :not([hidden]){margin-left:1rem}.space-x-8 > :not([hidden]) ~ :not([hidden]){margin-left:2rem}
.space-y-2 > :not([hidden]) ~ :not([hidden]){margin-top:.5rem}.space-y-3 > :not([hidden]) ~ :not([hidden]){margin-top:.75rem}.space-y-4 > :not([hidden]) ~ :not([hidden]){margin-top:1rem}.space-y-6 > :not([hidden]) ~ :not([hidden]){margin-top:1.5rem}

/* 显示 */
.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.hidden{display:none}

/* 圆角边框 */
.rounded-none{border-radius:0}.rounded-sm{border-radius:.125rem}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}

/* 溢出 */
.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}

/* 过渡 */
.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}
.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}
.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}
.duration-300{transition-duration:300ms}

/* 变换 */
.transform{transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
.-translate-y-1{--tw-translate-y:-0.25rem}
.hover\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05}

/* 悬停效果 */
.hover\:bg-blue-700:hover{background-color:#1D4ED8}
.hover\:bg-opacity-90:hover{--tw-bg-opacity:.9}
.hover\:text-primary:hover{color:#165DFF}
.hover\:text-white:hover{color:#fff}
.hover\:underline:hover{text-decoration:underline}
.hover\:shadow-lg:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}

/* 焦点 */
.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}
.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}

/* 透明度 */
.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-90{opacity:.9}.opacity-100{opacity:1}

/* 其他实用类 */
.cursor-pointer{cursor:pointer}.select-none{user-select:none}.pointer-events-none{pointer-events:none}
.backdrop-blur-md{--tw-backdrop-blur:blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}

/* 响应式断点 */
@media (min-width: 640px){
    .sm\:block{display:block}.sm\:flex{display:flex}.sm\:grid{display:grid}.sm\:hidden{display:none}
    .sm\:w-1\/2{width:50%}.sm\:w-auto{width:auto}
    .sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
    .sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}
    .sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}
}

@media (min-width: 768px){
    .md\:block{display:block}.md\:flex{display:flex}.md\:grid{display:grid}.md\:hidden{display:none}
    .md\:w-1\/2{width:50%}.md\:w-auto{width:auto}.md\:w-1\/3{width:33.333333%}.md\:w-2\/3{width:66.666667%}
    .md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
    .md\:text-4xl{font-size:2.25rem;line-height:2.5rem}
    .md\:text-5xl{font-size:3rem;line-height:1}
    .md\:px-6{padding-left:1.5rem;padding-right:1.5rem}
    .md\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}
}

@media (min-width: 1024px){
    .lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:hidden{display:none}
    .lg\:w-1\/2{width:50%}.lg\:w-1\/3{width:33.333333%}.lg\:w-2\/3{width:66.666667%}
    .lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
    .lg\:text-5xl{font-size:3rem;line-height:1}
}

/* 打印 */
@media print {
    .print\:hidden{display:none}
}

/* 内容可见性 - 性能优化 */
.content-auto{content-visibility:auto;contain-intrinsic-size:0 500px}

/* 行高限制 */
.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}
.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}

/* 文本阴影 */
.text-shadow{text-shadow:0 2px 4px rgba(0,0,0,.1)}

/* 卡片悬停效果 */
.card-hover{transition:all .3s ease}
.card-hover:hover{transform:translateY(-5px);box-shadow:0 10px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}
