*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg: #F7F5F2;--surface: #FFFFFF;--surface-2: #FAF9F7;--surface-3: #F0EDE8;--primary: #0D3B4C;--primary-light: #E8F1F4;--primary-soft: rgba(13, 59, 76, .08);--primary-dark: #092B38;--secondary: #B85C3E;--secondary-light: #FDF0EC;--secondary-soft: rgba(184, 92, 62, .08);--accent: #C99E5A;--accent-light: #FCF6EA;--accent-soft: rgba(201, 158, 90, .08);--success: #2D6A4F;--success-light: #EAF4EF;--warning: #B48811;--warning-light: #FCF6EA;--error: #B54747;--error-light: #FDEEEE;--text: #1A1A1A;--text-secondary: #6B6B6B;--text-muted: #9E9E98;--text-on-primary: #FFFFFF;--border: #EBE8E3;--border-strong: #D8D4CC;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .03);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .02);--shadow-card: 0 2px 6px rgba(0, 0, 0, .04), 0 4px 12px rgba(0, 0, 0, .03);--shadow-elevated: 0 8px 24px rgba(0, 0, 0, .06);--font-display: "Noto Serif SC", "Source Han Serif SC", "Songti SC", Georgia, serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--safe-bottom: env(safe-area-inset-bottom, 0);--safe-top: env(safe-area-inset-top, 0)}html,body{min-height:100%}body{font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-weight:400;line-height:1.5}a{color:var(--primary);text-decoration:none}#app-root{min-height:100vh;display:flex;flex-direction:column;max-width:480px;margin:0 auto;position:relative;background:var(--bg);overflow-x:hidden}.app-header{position:sticky;top:0;z-index:100;background:#f7f5f2e0;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:12px 16px;padding-top:calc(12px + var(--safe-top));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(235,232,227,.7);flex-shrink:0;transition:border-color .2s ease}#app-root.scroll-down .app-header{border-bottom-color:transparent}.logo-text{font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--primary);letter-spacing:2px;cursor:pointer;line-height:1;transition:opacity .2s}.logo-text:hover{opacity:.8}.header-spacer{width:38px}.header-btn-notif,.header-btn-back{width:38px;height:38px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;padding:0;transition:all .2s ease}.header-btn-notif:hover,.header-btn-back:hover{border-color:var(--border-strong);color:var(--primary);box-shadow:var(--shadow-sm)}.header-btn-notif{position:relative}.notif-badge{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;border-radius:9px;background:var(--secondary);color:#fff;font-size:10px;display:flex;align-items:center;justify-content:center;padding:0 5px;font-family:var(--font-ui);font-weight:700;box-shadow:0 1px 3px #b85c3e59}.main{flex:1;min-width:0;padding:0 0 calc(72px + var(--safe-bottom))}.main.no-tab{padding-bottom:0}.view-wrap{min-height:100%;display:flex;flex-direction:column}.tab-bar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;display:flex;background:#ffffff8c;border-top:1px solid rgba(255,255,255,.45);box-shadow:0 -2px 14px #00000008;padding:8px 16px calc(8px + var(--safe-bottom));z-index:100;backdrop-filter:blur(22px) saturate(160%);-webkit-backdrop-filter:blur(22px) saturate(160%);transition:border-color .2s ease}#app-root.scroll-down .tab-bar{border-top-color:transparent}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:none;color:var(--text-muted);font-size:10px;cursor:pointer;font-family:var(--font-ui);font-weight:500;padding:4px 0;transition:color .2s ease;letter-spacing:.3px;position:relative}.tab-icon-wrap{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all .2s ease;position:relative}.tab-item .icon{width:22px;height:22px;transition:transform .2s ease}.tab-item:active .icon{transform:scale(.92)}.tab-item.active{color:var(--primary)}.tab-item.active .tab-icon-wrap{background:var(--primary-soft)}.tab-item.create .tab-icon-wrap{background:var(--surface-2);border:1px solid var(--border)}.tab-item.create.active .tab-icon-wrap{background:var(--primary-soft);border-color:transparent;color:var(--primary)}.tab-label{transition:transform .2s ease}.toast{position:fixed;bottom:96px;left:50%;transform:translate(-50%);background:#1a1a1aeb;color:#fff;padding:12px 20px;border-radius:var(--radius-lg);font-size:14px;z-index:999;pointer-events:none;white-space:nowrap;font-family:var(--font-ui);box-shadow:0 8px 28px #0000002e;display:inline-flex;align-items:center;gap:10px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.toast-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0}.toast-enter-active,.toast-leave-active{transition:all .3s cubic-bezier(.22,1,.36,1)}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(-50%) translateY(16px) scale(.96)}.icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.icon-sm{width:18px;height:18px}.icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.loading{text-align:center;padding:48px 20px;color:var(--text-secondary);font-size:14px;font-family:var(--font-body)}.empty{text-align:center;padding:48px 20px;color:var(--text-secondary);font-size:14px;font-family:var(--font-body);line-height:1.6}.page-enter-active,.page-leave-active{transition:all .25s cubic-bezier(.22,1,.36,1)}.page-enter-from{opacity:0;transform:translateY(16px)}.page-leave-to{opacity:0;transform:translateY(-8px)}.pop-enter-active,.pop-leave-active{transition:all .2s cubic-bezier(.34,1.56,.64,1)}.pop-enter-from,.pop-leave-to{opacity:0;transform:scale(.5)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}
