#app{min-height:100dvh}:root{--primary-color: #2563eb;--primary-light: #60a5fa;--primary-dark: #1d4ed8;--bg-color: #f5f7fb;--card-bg: #ffffff;--surface-soft: #edf4ff;--surface-warm: #fff7ed;--text-primary: #172033;--text-secondary: #5f6f89;--text-placeholder: #9aa8bb;--border-color: rgba(23, 32, 51, .08);--shadow-sm: 0 1px 2px rgba(23, 32, 51, .05);--shadow: 0 10px 30px rgba(23, 32, 51, .08), 0 1px 2px rgba(23, 32, 51, .04);--shadow-lg: 0 20px 50px rgba(23, 32, 51, .13), 0 8px 18px rgba(23, 32, 51, .08);--radius: 18px;--radius-sm: 14px;--radius-xs: 8px;--accent: #0f766e;--accent-light: #dff7f4;--warning: #f59e0b;--danger: #ef4444;--success: #10b981;--ease: cubic-bezier(.4, 0, .2, 1)}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%;overscroll-behavior:none;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background:linear-gradient(160deg,#edf4fffa,#f7f9fcf5 45%,#effaf7f2);background-attachment:fixed;color:var(--text-primary);min-height:100dvh;overflow-x:hidden;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-button--primary{--el-button-bg-color: var(--primary-color);--el-button-border-color: var(--primary-color);--el-button-hover-bg-color: var(--primary-light);--el-button-hover-border-color: var(--primary-light);--el-button-active-bg-color: var(--primary-dark);--el-button-active-border-color: var(--primary-dark)}.el-tag--primary{--el-tag-bg-color: #eef2ff;--el-tag-border-color: #c7d2fe;--el-tag-text-color: var(--primary-color)}.card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border-color);transition:all .25s var(--ease);overflow:hidden}.card:hover{box-shadow:var(--shadow-lg)}.container{max-width:480px;margin:0 auto;padding:0 16px}.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-ellipsis-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#c0c4cc;border-radius:2px}::-webkit-scrollbar-thumb:hover{background:#909399}.fade-enter-active,.fade-leave-active{transition:opacity .3s ease}.fade-enter-from,.fade-leave-to{opacity:0}.app-layout{min-height:100dvh;display:flex;flex-direction:column}.app-header{background:#eef1f8f2;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);position:sticky;top:0;z-index:100}.app-main{flex:1;padding:16px 0}.stat-card{background:linear-gradient(135deg,var(--primary-color),var(--primary-light));color:#fff;border-radius:var(--radius);padding:24px;text-align:center}.stat-card .stat-number{font-size:36px;font-weight:700;margin-bottom:8px}.stat-card .stat-label{font-size:14px;opacity:.9}.douyin-icon{color:var(--primary-color)}img[loading=lazy],img[data-lazy-src]{opacity:0;transition:opacity .18s ease}img.is-lazy-loaded,img:not([data-lazy-src]){opacity:1}.app-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10050;padding:20px;padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))}.app-confirm-modal{width:100%;max-width:320px;background:#fff;border-radius:20px;padding:24px 20px 20px;box-shadow:0 20px 50px #0f172a33}.app-confirm-title{margin:0 0 8px;font-size:1.0625rem;font-weight:700;color:#1e293b;text-align:center}.app-confirm-desc{margin:0 0 20px;font-size:.875rem;color:#64748b;line-height:1.5;text-align:center;white-space:pre-wrap;word-break:break-word;max-height:min(50vh,280px);overflow-y:auto;-webkit-overflow-scrolling:touch}.app-confirm-actions{display:flex;gap:10px}.app-confirm-btn{flex:1;height:42px;border-radius:12px;border:none;font-size:.875rem;font-weight:600;cursor:pointer;font-family:inherit}.app-confirm-btn--secondary{background:#f1f5f9;color:#475569}.app-confirm-btn--primary{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff}.app-confirm-btn--danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.app-toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%);max-width:calc(100vw - 32px);padding:12px 18px;border-radius:14px;font-size:.8125rem;font-weight:600;color:#fff;z-index:10051;box-shadow:0 10px 30px #0f172a2e;text-align:center;line-height:1.4}.app-toast--success{background:linear-gradient(135deg,#22c55e,#16a34a)}.app-toast--warning{background:linear-gradient(135deg,#f59e0b,#d97706)}.app-toast--error{background:linear-gradient(135deg,#ef4444,#dc2626)}.app-toast--info{background:linear-gradient(135deg,#3b82f6,#2563eb)}.app-toast-fade-enter-active,.app-toast-fade-leave-active{transition:opacity .2s ease,transform .2s ease}.app-toast-fade-enter-from,.app-toast-fade-leave-to{opacity:0;transform:translate(-50%) translateY(12px)}.el-overlay{display:flex;align-items:center;justify-content:center}.el-overlay-dialog{display:flex;align-items:center;justify-content:center;padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}.el-dialog{margin:0 auto!important;max-width:calc(100vw - 32px);border-radius:16px}.el-message-box__wrapper{display:flex;align-items:center;justify-content:center;padding:16px}.el-message-box{max-width:calc(100vw - 32px);border-radius:16px}.el-message{min-width:auto;max-width:calc(100vw - 32px)}@media (min-width: 481px){body{padding:20px 0;background:linear-gradient(135deg,#eef3f9,#f8fafc 42%,#edf7f5)}#app:has(.home-page),#app:has(.leaderboard-page),#app:has(.mine-page),#app:has(.detail-page),#app:has(.grid-page),#app:has(.auth-page){max-width:480px;margin:0 auto;min-height:calc(100dvh - 40px);border-radius:24px;overflow:hidden;box-shadow:0 24px 70px #17203329,0 6px 16px #17203314;background:linear-gradient(160deg,#f5f8fc,#eef5ff 48%,#f4fbf8)}#app:has(.admin-layout),#app:has(.admin-login-page){max-width:none;margin:0;border-radius:0;box-shadow:none;background:#f0f2f5}}
