/* 基础与重置 */
*{box-sizing:border-box;margin:0;padding:0}
body{opacity:0;transition:opacity .3s;font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;background-color:#f8fafc;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}
body.loaded{opacity:1}

/* 加载动画 */
.loading-indicator{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:#64748b;font-size:14px;z-index:9999}
.loading-spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:#10b981;border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 1rem}
@keyframes spin{to{transform:rotate(360deg)}}

/* 头部与标题 */
.header-gradient{background:linear-gradient(135deg,#1e293b 0%,#334155 100%)}
.section-title{position:relative;padding-left:1rem;font-weight:600}
.section-title::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:16px;border-radius:2px}
.supply-dot::before{background:linear-gradient(180deg,#10b981 0%,#3b82f6 100%)}
.demand-dot::before{background:linear-gradient(180deg,#f43f5e 0%,#ec4899 100%)}
.content-block{margin-bottom:1.5rem}
.community-logo{mix-blend-mode:multiply;filter:saturate(.8) opacity(.9)}

/* 布局 */
.flex{display:flex}
.flex-col{flex-direction:column}
.flex-wrap{flex-wrap:wrap}
.items-center{align-items:center}
.items-end{align-items:flex-end}
.items-start{align-items:flex-start}
.justify-center{justify-content:center}
.justify-between{justify-content:space-between}
.justify-end{justify-content:flex-end}
.gap-2{gap:.5rem}
.gap-4{gap:1rem}
.grid{display:grid}
.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}
.divide-y>*+*{border-top-width:1px;border-top-color:#f1f5f9}
.divide-slate-100>*+*{border-color:#f1f5f9}

/* 间距 */
.p-2{padding:.5rem}
.p-8{padding:2rem}
.p-10{padding:2.5rem}
.px-2{padding-left:.5rem;padding-right:.5rem}
.px-2-5{padding-left:.625rem;padding-right:.625rem}
.px-3{padding-left:.75rem;padding-right:.75rem}
.py-0-5{padding-top:.125rem;padding-bottom:.125rem}
.py-1{padding-top:.25rem;padding-bottom:.25rem}
.py-1-5{padding-top:.375rem;padding-bottom:.375rem}
.pl-3{padding-left:.75rem}
.pl-4{padding-left:1rem}
.mb-1{margin-bottom:.25rem}
.mb-3{margin-bottom:.75rem}
.mb-8{margin-bottom:2rem}
.mt-2{margin-top:.5rem}
.space-y-6>*+*{margin-top:1.5rem}
.space-y-8>*+*{margin-top:2rem}

/* 字体 */
.text-right{text-align:right}
.text-xs{font-size:.75rem;line-height:1rem}
.text-sm{font-size:.875rem;line-height:1.25rem}
.text-lg{font-size:1.125rem;line-height:1.75rem}
.text-xl{font-size:1.25rem;line-height:1.75rem}
.text-3xl{font-size:1.875rem;line-height:2.25rem}
.text-4xl{font-size:2.25rem;line-height:2.5rem}
.font-bold{font-weight:700}
.font-light{font-weight:300}
.font-medium{font-weight:500}
.font-mono{font-family:ui-monospace,monospace}
.italic{font-style:italic}
.tracking-tight{letter-spacing:-.025em}
.tracking-wide{letter-spacing:.025em}
.tracking-wider{letter-spacing:.05em}
.leading-relaxed{line-height:1.625}

/* 颜色 */
.text-white{color:#fff}
.text-slate-300{color:#cbd5e1}
.text-slate-400{color:#94a3b8}
.text-slate-500{color:#64748b}
.text-slate-600{color:#475569}
.text-slate-700{color:#334155}
.text-slate-800{color:#1e293b}
.text-emerald-600{color:#10b981}
.text-rose-600{color:#f43f5e}
.text-amber-600{color:#f59e0b}
.text-indigo-600{color:#6366f1}
.bg-white{background-color:#fff}
.bg-slate-50{background-color:#f8fafc}
.bg-slate-50-30{background-color:rgba(248,250,252,.3)}
.bg-white-10{background-color:rgba(255,255,255,.1)}

/* 边框与圆角 */
.border{border-width:1px}
.border-l-2{border-left-width:2px}
.border-slate-100{border-color:#f1f5f9}
.border-slate-200{border-color:#e2e8f0}
.border-emerald-500{border-color:#10b981}
.border-amber-100{border-color:#fef3c7}
.border-white-10{border-color:rgba(255,255,255,.1)}
.rounded{border-radius:.25rem}
.rounded-lg{border-radius:.5rem}
.rounded-3xl{border-radius:1.5rem}

/* 其他 */
.shadow-sm{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}
.shadow-2xl{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}
.max-w-2xl{max-width:42rem}
.max-w-5xl{max-width:64rem}
.w-full{width:100%}
.overflow-hidden{overflow:hidden}
.flex-1{flex:1}
.flex-shrink-0{flex-shrink:0}

/* 响应式 */
@media(min-width:640px){.sm\:p-6{padding:1.5rem}}
@media(min-width:768px){
  .md\:text-4xl{font-size:2.25rem;line-height:2.5rem}
  .md\:flex-row{flex-direction:row}
  .md\:items-end{align-items:flex-end}
  .md\:p-10{padding:2.5rem}
  .md\:p-12{padding:3rem}
  .md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}
  .md\:col-span-7{grid-column:span 7/span 7}
  .md\:col-span-5{grid-column:span 5/span 5}
  .md\:divide-y-0>*+*{border-top-width:0}
  .md\:divide-x>*+*{border-left-width:1px;border-left-color:#f1f5f9;border-top-width:0}
}
