.tabbar[data-v-00aa1942]{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;display:flex;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);z-index:100}.tab[data-v-00aa1942]{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 0 8px;color:var(--text-muted);transition:color .2s ease}.tab.active[data-v-00aa1942]{color:var(--primary)}.tab-label[data-v-00aa1942]{font-size:11px;font-weight:600}.tab[data-v-00aa1942]:active{opacity:.7}.toast-host[data-v-14a1374a]{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;padding-top:max(16px,env(safe-area-inset-top));pointer-events:none}.toast[data-v-14a1374a]{display:flex;align-items:center;gap:10px;max-width:448px;width:100%;padding:14px 16px;border-radius:14px;background:var(--surface);color:var(--text);box-shadow:var(--shadow);border:1px solid var(--border);font-size:15px;font-weight:500}.toast-praise[data-v-14a1374a]{border-left:4px solid var(--success)}.toast-praise .toast-icon[data-v-14a1374a]{color:var(--success)}.toast-cheer[data-v-14a1374a]{border-left:4px solid var(--single)}.toast-cheer .toast-icon[data-v-14a1374a]{color:var(--single)}.toast-icon[data-v-14a1374a]{display:inline-flex;flex-shrink:0}.toast-enter-active[data-v-14a1374a],.toast-leave-active[data-v-14a1374a]{transition:all .3s ease}.toast-enter-from[data-v-14a1374a]{opacity:0;transform:translateY(-16px)}.toast-leave-to[data-v-14a1374a]{opacity:0;transform:translateY(-8px)}.dialog-mask[data-v-eb996ac5]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:24px;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dialog[data-v-eb996ac5]{width:100%;max-width:340px;display:flex;flex-direction:column;align-items:center;text-align:center;padding:24px 22px 20px;border-radius:20px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow)}.dialog-icon[data-v-eb996ac5]{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;margin-bottom:14px;color:var(--primary);background:var(--surface-2)}.dialog-icon.danger[data-v-eb996ac5]{color:var(--danger)}.dialog-title[data-v-eb996ac5]{font-size:17px;font-weight:700;color:var(--text);margin-bottom:8px}.dialog-message[data-v-eb996ac5]{font-size:14px;line-height:1.6;color:var(--text-muted);margin-bottom:22px}.dialog-input-wrap[data-v-eb996ac5]{position:relative;width:100%;margin-bottom:18px;border-radius:14px;background:var(--surface-2);border:1.5px solid var(--border);transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.dialog-input-wrap[data-v-eb996ac5]:focus-within{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 18%,transparent)}.dialog-input-wrap.danger[data-v-eb996ac5]:focus-within{border-color:var(--danger);box-shadow:0 0 0 4px color-mix(in srgb,var(--danger) 18%,transparent)}.dialog-input[data-v-eb996ac5]{width:100%;padding:14px 16px;border:none;background:transparent;color:var(--text);font-size:16px;font-weight:600;letter-spacing:.14em;text-align:center;outline:none}.dialog-input[data-v-eb996ac5]::placeholder{font-weight:500;letter-spacing:.06em;color:var(--text-muted);opacity:.7}.dialog-actions[data-v-eb996ac5]{display:flex;gap:10px;width:100%}.d-btn[data-v-eb996ac5]{flex:1;padding:12px 0;border-radius:12px;font-size:15px;font-weight:600;transition:transform .1s ease,opacity .15s ease}.d-btn[data-v-eb996ac5]:active{transform:scale(.96)}.d-cancel[data-v-eb996ac5]{background:var(--surface-2);color:var(--text)}.d-confirm[data-v-eb996ac5]{background:var(--primary);color:var(--primary-contrast)}.d-confirm.danger[data-v-eb996ac5]{background:var(--danger);color:#fff}.dialog-enter-active[data-v-eb996ac5],.dialog-leave-active[data-v-eb996ac5]{transition:opacity .2s ease}.dialog-enter-active .dialog[data-v-eb996ac5],.dialog-leave-active .dialog[data-v-eb996ac5]{transition:transform .2s ease,opacity .2s ease}.dialog-enter-from[data-v-eb996ac5],.dialog-leave-to[data-v-eb996ac5]{opacity:0}.dialog-enter-from .dialog[data-v-eb996ac5],.dialog-leave-to .dialog[data-v-eb996ac5]{opacity:0;transform:scale(.92) translateY(8px)}.nav-loading[data-v-9b44bbd1]{position:fixed;top:0;left:0;right:0;z-index:1100;height:3px;background:color-mix(in srgb,var(--single, #4f46e5) 20%,transparent);overflow:hidden}.nav-loading-bar[data-v-9b44bbd1]{height:100%;width:40%;background:var(--single, #4f46e5);border-radius:0 2px 2px 0;animation:nav-loading-slide-9b44bbd1 1s ease-in-out infinite}@keyframes nav-loading-slide-9b44bbd1{0%{transform:translate(-100%)}to{transform:translate(350%)}}.navbar-fade-enter-active[data-v-9b44bbd1],.navbar-fade-leave-active[data-v-9b44bbd1]{transition:opacity .2s ease}.navbar-fade-enter-from[data-v-9b44bbd1],.navbar-fade-leave-to[data-v-9b44bbd1]{opacity:0}.sr-only[data-v-9b44bbd1]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell[data-v-71ba1f76]{min-height:100vh;min-height:100dvh}:root{--bg: #f4f6f8;--surface: #ffffff;--surface-2: #eef1f4;--border: #e2e6ea;--text: #1a2027;--text-muted: #687284;--primary: #0f766e;--primary-soft: #d7efec;--primary-contrast: #ffffff;--single: #ea580c;--single-soft: #fde6d6;--recurring: #2563eb;--recurring-soft: #dbe7fe;--success: #16a34a;--danger: #dc2626;--shadow: 0 1px 3px rgba(20, 30, 45, .08), 0 4px 16px rgba(20, 30, 45, .06);--radius: 16px}@media(prefers-color-scheme:dark){:root{--bg: #0e1116;--surface: #171b22;--surface-2: #1f242d;--border: #2a313b;--text: #e8ecf1;--text-muted: #8a95a5;--primary: #2dd4bf;--primary-soft: #173a37;--primary-contrast: #06201d;--single: #fb923c;--single-soft: #3a2415;--recurring: #60a5fa;--recurring-soft: #15233f;--success: #4ade80;--danger: #f87171;--shadow: 0 1px 3px rgba(0, 0, 0, .4), 0 4px 16px rgba(0, 0, 0, .3)}}html[data-theme=light]{--bg: #f4f6f8;--surface: #ffffff;--surface-2: #eef1f4;--border: #e2e6ea;--text: #1a2027;--text-muted: #687284;--primary: #0f766e;--primary-soft: #d7efec;--primary-contrast: #ffffff;--single: #ea580c;--single-soft: #fde6d6;--recurring: #2563eb;--recurring-soft: #dbe7fe;--success: #16a34a;--danger: #dc2626;--shadow: 0 1px 3px rgba(20, 30, 45, .08), 0 4px 16px rgba(20, 30, 45, .06)}html[data-theme=dark]{--bg: #0e1116;--surface: #171b22;--surface-2: #1f242d;--border: #2a313b;--text: #e8ecf1;--text-muted: #8a95a5;--primary: #2dd4bf;--primary-soft: #173a37;--primary-contrast: #06201d;--single: #fb923c;--single-soft: #3a2415;--recurring: #60a5fa;--recurring-soft: #15233f;--success: #4ade80;--danger: #f87171;--shadow: 0 1px 3px rgba(0, 0, 0, .4), 0 4px 16px rgba(0, 0, 0, .3)}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased;transition:background-color .3s ease,color .3s ease}#app{max-width:480px;margin:0 auto;min-height:100vh;min-height:100dvh;position:relative;background:var(--bg)}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea,select{font-family:inherit;font-size:16px;color:var(--text)}a{color:inherit;text-decoration:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 18px;border-radius:12px;font-size:16px;font-weight:600;background:var(--primary);color:var(--primary-contrast);transition:transform .1s ease,opacity .2s ease}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5}.btn-ghost{background:var(--surface-2);color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.fade-enter-active,.fade-leave-active{transition:opacity .2s ease}.fade-enter-from,.fade-leave-to{opacity:0}::-webkit-scrollbar{width:0;height:0}
