.tab-bar[data-v-f6db38ad]{background:var(--bg-card);border-top:1px solid var(--border);width:100%;max-width:480px;height:calc(var(--tab-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);z-index:100;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}@media (width>=768px){.tab-bar[data-v-f6db38ad]{max-width:560px}}.tab-item[data-v-f6db38ad]{cursor:pointer;color:var(--text-weak);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;min-height:44px;transition:color .2s;display:flex}.tab-item.active[data-v-f6db38ad]{color:var(--coral-500)}.tab-label[data-v-f6db38ad]{font-size:var(--fs-tiny);font-weight:500}.toast-container[data-v-90190980]{z-index:2000;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:20px;left:50%;transform:translate(-50%)}.toast[data-v-90190980]{background:var(--coral-500);color:#fff;border-radius:var(--radius-full);box-shadow:var(--shadow-lg);white-space:nowrap;padding:12px 24px;font-size:14px;font-weight:500;animation:.3s toastIn}.toast--error[data-v-90190980]{background:var(--error)}.toast--info[data-v-90190980]{background:var(--info)}.mini-player[data-v-37b89cc0]{bottom:calc(var(--tab-h) + var(--safe-bottom) + 8px);background:var(--bg-card);border-radius:var(--radius-full);width:calc(100% - 32px);max-width:448px;box-shadow:var(--shadow-lg);z-index:150;align-items:center;gap:12px;padding:10px 16px;display:flex;position:fixed;left:50%;transform:translate(-50%)}@media (width>=768px){.mini-player[data-v-37b89cc0]{max-width:528px}}.mini-player__info[data-v-37b89cc0]{flex:1;min-width:0}.mini-player__title[data-v-37b89cc0]{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.mini-player__cn[data-v-37b89cc0]{color:var(--text-weak);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.mini-player__btn[data-v-37b89cc0]{width:32px;height:32px;color:var(--coral-500);border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;box-shadow:0 2px 8px #0000001f}.mini-player__close[data-v-37b89cc0]{background:var(--lavender-100);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;display:flex}.confirm-mask[data-v-5e028075]{z-index:3000;background:#281e2073;justify-content:center;align-items:center;padding:0 32px;display:flex;position:fixed;inset:0}.confirm-box[data-v-5e028075]{background:var(--bg-card);border-radius:var(--radius-lg);width:100%;max-width:300px;box-shadow:var(--shadow-lg);text-align:center;padding:24px 20px 16px;animation:.2s fadeIn}.confirm-title[data-v-5e028075]{font-size:var(--fs-h3,17px);color:var(--text-primary);margin-bottom:8px;font-weight:600}.confirm-msg[data-v-5e028075]{font-size:var(--fs-body,15px);color:var(--text-secondary);margin-bottom:20px;line-height:1.6}.confirm-actions[data-v-5e028075]{gap:12px;display:flex}.confirm-btn[data-v-5e028075]{border-radius:var(--radius-md);font-size:var(--fs-body,15px);cursor:pointer;border:none;flex:1;padding:11px 0;font-family:inherit;font-weight:600;transition:all .2s}.confirm-btn[data-v-5e028075]:active{transform:scale(.97)}.confirm-cancel[data-v-5e028075]{background:var(--lavender-100);color:var(--text-secondary)}.confirm-ok[data-v-5e028075]{background:var(--coral-500);color:#fff}.confirm-ok.danger[data-v-5e028075]{background:var(--error)}.app-shell[data-v-ad0c51bd]{flex-direction:column;max-width:480px;min-height:100dvh;margin:0 auto;display:flex;position:relative}.app-main[data-v-ad0c51bd]{padding:var(--space-4) var(--space-4) calc(var(--tab-h) + var(--space-6) + var(--safe-bottom));flex:1}.app-main--bare[data-v-ad0c51bd]{padding:0}.fade-enter-active[data-v-ad0c51bd],.fade-leave-active[data-v-ad0c51bd]{transition:opacity .18s}.fade-enter-from[data-v-ad0c51bd],.fade-leave-to[data-v-ad0c51bd]{opacity:0}@media (width>=768px){.app-shell[data-v-ad0c51bd]{max-width:560px}}:root{--coral-100:#fdf0f1;--coral-300:#f0a0a6;--coral-500:#dc6872;--coral-700:#b84550;--coral-900:#8a2e38;--yellow-100:#fefbe8;--yellow-300:#f8e898;--yellow-500:#faea7a;--yellow-700:#d4c54f;--yellow-900:#a89830;--lavender-100:#f0f0f5;--lavender-300:#b0aed8;--lavender-500:#7d7ab7;--lavender-700:#5a5685;--lavender-900:#3d3a5c;--peach-100:#fdf3f0;--peach-300:#f5c0b8;--peach-500:#eba59a;--peach-700:#c07a70;--peach-900:#8a5548;--success:#7bc9a3;--warning:#f5a623;--error:#e85d5d;--info:#6b9bd2;--text-primary:#3d2c2e;--text-secondary:#7a6b6e;--text-weak:#a89e9f;--bg-page:#fff9f0;--bg-card:#fff;--bg-float:#fff;--border:#e8ddd8;--radius-xs:6px;--radius-sm:10px;--radius-md:14px;--radius-lg:18px;--radius-xl:24px;--radius-full:9999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--shadow-sm:0 1px 4px #3d2c2e0f;--shadow-md:0 2px 12px #3d2c2e14;--shadow-lg:0 4px 20px #3d2c2e1a;--shadow-xl:0 8px 32px #3d2c2e1f;--shadow-coral:0 4px 16px #dc68724d;--shadow-yellow:0 4px 16px #faea7a66;--fs-tiny:11px;--fs-small:12px;--fs-caption:13px;--fs-body:15px;--fs-body-lg:16px;--fs-h3:17px;--fs-h2:20px;--fs-h1:24px;--fs-display:28px;--tab-h:64px;--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-tap-highlight-color:transparent;font-size:16px}body{background:var(--bg-page);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100dvh;font-family:-apple-system,PingFang SC,Noto Sans SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:var(--fs-body);font-weight:450;line-height:1.6;overflow-x:hidden}#app{min-height:100dvh}.card{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-4);box-shadow:var(--shadow-sm);transition:box-shadow .2s}.card-header{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.card-title{font-size:var(--fs-h3);letter-spacing:.02em;font-weight:600}.card-badge{font-size:var(--fs-tiny);border-radius:var(--radius-full);background:var(--coral-100);color:var(--coral-500);padding:4px 12px;font-weight:600}.btn{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:var(--radius-md);font-family:inherit;font-weight:600;font-size:var(--fs-body);border:none;justify-content:center;align-items:center;gap:6px;padding:12px 24px;transition:all .2s;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--coral-500);color:#fff;box-shadow:var(--shadow-coral)}.btn-primary:active{background:var(--coral-700)}.btn-outline{color:var(--lavender-500);border:1.5px solid var(--lavender-500);background:0 0}.btn-sm{font-size:var(--fs-caption);border-radius:var(--radius-sm);padding:8px 16px}.btn-block{width:100%}.btn-icon{border-radius:var(--radius-full);background:var(--lavender-100);width:32px;height:32px;color:var(--text-secondary);padding:0;font-size:14px}.form-input{border:1.5px solid var(--border);border-radius:var(--radius-sm);width:100%;font-size:var(--fs-body-lg);background:var(--bg-card);color:var(--text-primary);padding:12px 16px;font-family:inherit;transition:border-color .2s,box-shadow .2s}.form-input:focus{border-color:var(--coral-500);box-shadow:0 0 0 3px var(--coral-100);outline:none}.form-input::placeholder{color:var(--text-weak)}.section-title{font-size:var(--fs-h3);letter-spacing:.02em;margin-bottom:var(--space-3);font-weight:600}.empty-state{text-align:center;padding:var(--space-10) var(--space-4)}.empty-text{font-size:var(--fs-caption);color:var(--text-weak)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%)translateY(-10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes press{0%{transform:scale(1)}50%{transform:scale(.96)}to{transform:scale(1)}}.fade-enter-active{animation:.25s fadeIn}.hide-scrollbar::-webkit-scrollbar{display:none}.hide-scrollbar{scrollbar-width:none}
