:root{--primary: #2563eb;--primary-dark: #1d4ed8;--primary-soft: #eff6ff;--bg: #f2f4f8;--card: #ffffff;--text: #1f2937;--text-sub: #6b7280;--border: #e5e7eb;--success: #16a34a;--success-soft: #f0fdf4;--warn: #d97706;--warn-soft: #fffbeb;--danger: #dc2626;--danger-soft: #fef2f2;--radius: 16px;--shadow: 0 2px 12px rgba(17, 24, 39, .06)}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Helvetica Neue,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overflow-x:hidden}#app{max-width:430px;margin:0 auto;min-height:100vh;background:var(--bg);position:relative}@media (min-width: 640px){#app:has(.is-community){max-width:960px}}.rotate-hint{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#111827;color:#fff;display:none;align-items:center;justify-content:center;text-align:center;font-size:16px;padding:40px}@media (orientation: landscape) and (max-height: 520px){.rotate-hint{display:flex}}.page{min-height:100vh;padding:20px 18px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column}.card{background:var(--card);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:999px;padding:14px 28px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .15s,opacity .15s,background .15s;touch-action:manipulation;-webkit-user-select:none;user-select:none}.btn:active{transform:scale(.97)}.btn--primary{background:var(--primary);color:#fff;width:100%;box-shadow:0 6px 16px #2563eb47}.btn--primary:disabled{background:#cbd5e1;box-shadow:none;color:#fff;cursor:not-allowed}.btn--ghost{background:transparent;color:var(--primary);border:1.5px solid var(--primary)}.btn--ghost:disabled{border-color:#cbd5e1;color:#cbd5e1;cursor:not-allowed}.btn--link{background:transparent;color:var(--text-sub);border:none;font-size:14px;padding:10px}.btn--block{width:100%}.page-enter-active,.page-leave-active{transition:opacity .18s ease,transform .18s ease}.page-enter-from{opacity:0;transform:translate(12px)}.page-leave-to{opacity:0;transform:translate(-12px)}.fade-enter-active,.fade-leave-active{transition:opacity .2s ease}.fade-enter-from,.fade-leave-to{opacity:0}.toast-container{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:10000;width:min(90vw,360px);display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{background:#111827eb;color:#fff;font-size:14px;line-height:1.5;padding:12px 16px;border-radius:12px;text-align:center;word-break:break-all}.toast--error{background:#dc2626f2}.toast--success{background:#16a34af2}.toast-enter-active,.toast-leave-active{transition:all .25s ease}.toast-enter-from,.toast-leave-to{opacity:0;transform:translateY(-10px)}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000;background:#ffffffe0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.loading-spinner{width:44px;height:44px;border-radius:50%;border:3.5px solid var(--primary-soft);border-top-color:var(--primary);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-size:14px;color:var(--text-sub)}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9500;background:#11182780;display:flex;align-items:center;justify-content:center;padding:32px 24px}.modal-body{width:100%;max-width:340px;background:var(--card);border-radius:20px;padding:24px 20px 18px;box-shadow:0 20px 50px #0003}.modal-title{font-size:18px;font-weight:700;text-align:center;margin-bottom:14px}.modal-content{font-size:14px;color:var(--text);line-height:1.7;margin-bottom:18px}.modal-footer{display:flex;gap:10px}.topbar{display:flex;align-items:center;gap:8px;margin-bottom:18px}.topbar .back{background:var(--card);border:none;width:36px;height:36px;border-radius:50%;font-size:18px;cursor:pointer;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center}.topbar .title{font-size:17px;font-weight:700}
