.bottomnav[data-v-04c8cfc5]{position:fixed;left:0;right:0;bottom:0;z-index:40;padding:8px 16px calc(var(--safe-bottom) + 10px);pointer-events:none}.bottomnav__pill[data-v-04c8cfc5]{display:flex;flex-direction:row;height:56px;padding:4px;background:#fffffff5;border:1px solid #ebe3d9;border-radius:36px;box-shadow:0 6px 18px #1f1c1714;backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);overflow:hidden;pointer-events:auto}.bottomnav__tab[data-v-04c8cfc5]{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:26px;color:#8f8578;transition:background .18s ease,color .18s ease}.bottomnav__tab.is-active[data-v-04c8cfc5]{background:#2e6b5c;color:#fff}.bottomnav__icon[data-v-04c8cfc5]{position:relative;display:flex}.bottomnav__dot[data-v-04c8cfc5]{position:absolute;top:-4px;right:-8px;min-width:15px;height:15px;padding:0 4px;border-radius:8px;background:#b5453b;color:#fff;font-family:var(--font-num);font-size:10px;font-style:normal;line-height:15px;text-align:center}.bottomnav__label[data-v-04c8cfc5]{font-family:var(--font-sans);font-size:10px;line-height:14px;font-weight:500}.toast[data-v-3cbdc45f]{display:flex;align-items:center;gap:8px}.toast--error[data-v-3cbdc45f]{background:#b5453bf0}.toast--success[data-v-3cbdc45f]{background:#2e6b5cf0}.toast__icon[data-v-3cbdc45f]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:#ffffff38;font-size:11px;font-weight:700;line-height:1}.toast__spin[data-v-3cbdc45f]{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;animation:spin .7s linear infinite}.app-shell[data-v-6266e2b4]{position:relative;height:100%;display:flex;flex-direction:column;overflow:hidden;background:var(--c-bg-page)}.page-fade-enter-active[data-v-6266e2b4],.page-fade-leave-active[data-v-6266e2b4]{transition:opacity .16s ease}.page-fade-enter-from[data-v-6266e2b4],.page-fade-leave-to[data-v-6266e2b4]{opacity:0}:root{--c-bg-page: #f7f5f0;--c-bg-soft: #fcfaf5;--c-bg-card: #ffffff;--c-bg-ink: #243630;--c-text-1: #1f1c17;--c-text-2: #6b6154;--c-text-3: #8f8578;--c-text-4: #b2a89c;--c-border-weak: #ebe3d9;--c-border-strong: #dbd1c4;--c-brand: #2e6b5c;--c-brand-2: #3b806e;--c-brand-soft: #ebf2f0;--c-cinnabar: #b5453b;--c-cinnabar-soft: #faedeb;--c-gold: #c7a15c;--c-gold-soft: #f7f2e3;--c-warn: #c98a3d;--c-text-body: #3d372f;--r-card: 16px;--r-btn: 12px;--r-input: 10px;--r-pill: 100px;--font-sans: "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", system-ui, sans-serif;--font-serif: "Source Han Serif CN", "Noto Serif SC", "Songti SC", "SimSun", serif;--font-num: "Inter", "Noto Sans SC", "PingFang SC", sans-serif;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--header-h: 52px;--tabbar-h: 56px;--page-gutter: 16px;--shadow-card: 0 1px 2px rgba(31, 28, 23, .04), 0 6px 20px rgba(31, 28, 23, .05);--shadow-pop: 0 8px 32px rgba(31, 28, 23, .14);--shadow-tabbar: 0 -1px 0 var(--c-border-weak), 0 -8px 24px rgba(31, 28, 23, .04)}::-webkit-scrollbar{width:0;height:0}*,*:before,*:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;height:100%;overscroll-behavior-y:none}body{font-family:var(--font-sans);color:var(--c-text-1);background:var(--c-bg-page);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-size-adjust:100%}#app{height:100%}@media (min-width: 560px){html,body{background:#ece7dd}html #app{width:420px;max-width:420px;height:min(880px,94vh);margin:3vh auto;overflow:hidden;position:relative;transform:translateZ(0);border-radius:28px;box-shadow:0 0 0 10px #1c1a17,0 0 0 12px #33302b,0 24px 60px #1c1a1752;background:var(--c-bg-page)}}button{font-family:inherit;font-size:inherit;border:none;background:none;padding:0;cursor:pointer;color:inherit}input,textarea,select{font-family:inherit;font-size:inherit;border:none;outline:none;background:transparent;color:inherit;appearance:none}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}svg{display:block;flex:none}h1,h2,h3,h4,p{margin:0}ul,ol{margin:0;padding:0;list-style:none}.page{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;background:var(--c-bg-page);padding-bottom:calc(var(--safe-bottom) + 16px)}.page::-webkit-scrollbar{width:0;height:0}.page--tabbar{padding-bottom:calc(var(--safe-bottom) + 100px)}.page--actionbar{padding-bottom:calc(var(--safe-bottom) + 92px)}.page-body{padding:0 var(--page-gutter)}.scroll-area{overflow-y:auto;-webkit-overflow-scrolling:touch}.app-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;height:var(--header-h);padding:0 var(--page-gutter);padding-top:var(--safe-top);height:calc(var(--header-h) + var(--safe-top));background:#f7f5f0eb;backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);border-bottom:1px solid transparent;transition:border-color .2s}.app-header--bordered{border-bottom-color:var(--c-border-weak)}.app-header__title{flex:1;min-width:0;font-family:var(--font-serif);font-size:19px;font-weight:600;letter-spacing:.5px;color:var(--c-text-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-header__sub{font-size:12px;color:var(--c-text-3);font-weight:400;letter-spacing:0}.icon-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;color:var(--c-text-2);transition:background .16s}.icon-btn:active{background:#1f1c170f}.icon-btn--badge{position:relative}.icon-btn__badge{position:absolute;top:2px;right:1px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--c-cinnabar);color:#fff;font-size:10px;line-height:16px;text-align:center;font-family:var(--font-num)}.t-serif-xl{font-family:var(--font-serif);font-size:24px;line-height:34px;font-weight:600;letter-spacing:1px;color:var(--c-text-1)}.t-serif-lg{font-family:var(--font-serif);font-size:19px;line-height:28px;font-weight:600;letter-spacing:.6px}.t-title{font-size:16px;line-height:23px;font-weight:600;color:var(--c-text-1)}.t-body{font-size:14px;line-height:22px;color:var(--c-text-body)}.t-sub{font-size:13px;line-height:20px;color:var(--c-text-2)}.t-cap{font-size:12px;line-height:18px;color:var(--c-text-3)}.t-mini{font-size:11px;line-height:16px;color:var(--c-text-4)}.t-num{font-family:var(--font-num);font-variant-numeric:tabular-nums}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.row{display:flex;flex-direction:row;align-items:center}.row-top{display:flex;flex-direction:row;align-items:flex-start}.col{display:flex;flex-direction:column}.between{justify-content:space-between}.center{align-items:center;justify-content:center}.wrap{flex-wrap:wrap}.fill{flex:1;min-width:0}.g4{gap:4px}.g6{gap:6px}.g8{gap:8px}.g10{gap:10px}.g12{gap:12px}.g16{gap:16px}.mt4{margin-top:4px}.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mt24{margin-top:24px}.section-title{display:flex;align-items:center;gap:8px;margin:22px 0 10px;font-family:var(--font-serif);font-size:16px;font-weight:600;letter-spacing:.6px;color:var(--c-text-1)}.section-title:before{content:"";width:3px;height:14px;border-radius:2px;background:var(--c-brand)}.section-title__more{margin-left:auto;font-family:var(--font-sans);font-size:12px;font-weight:400;letter-spacing:0;color:var(--c-text-3)}.card{background:var(--c-bg-card);border-radius:var(--r-card);box-shadow:var(--shadow-card);padding:16px}.card--flat{box-shadow:none;border:1px solid var(--c-border-weak)}.card--ink{background:var(--c-bg-ink);color:#f2efe8;box-shadow:0 10px 30px #24363038}.card--tight{padding:12px}.card+.card{margin-top:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:44px;padding:0 20px;border-radius:var(--r-btn);font-size:15px;font-weight:600;letter-spacing:.5px;transition:transform .12s,opacity .16s,background .16s}.btn:active{transform:scale(.985)}.btn:disabled{opacity:.5;pointer-events:none}.btn--primary{background:var(--c-brand);color:#fff;box-shadow:0 6px 18px #2e6b5c3d}.btn--ghost{background:var(--c-brand-soft);color:var(--c-brand)}.btn--outline{border:1px solid var(--c-border-strong);background:var(--c-bg-card);color:var(--c-text-1)}.btn--danger{background:var(--c-cinnabar-soft);color:var(--c-cinnabar)}.btn--block{width:100%}.btn--sm{height:34px;padding:0 14px;font-size:13px;border-radius:10px}.btn--pill{border-radius:var(--r-pill)}.btn-row{display:flex;gap:10px}.fab{position:fixed;right:18px;bottom:calc(var(--safe-bottom) + var(--tabbar-h) + 18px);z-index:30;display:flex;align-items:center;gap:6px;height:46px;padding:0 20px;border-radius:var(--r-pill);background:var(--c-brand);color:#fff;font-size:14px;font-weight:600;box-shadow:0 10px 26px #2e6b5c57}.fab:active{transform:scale(.97)}.field{display:flex;align-items:center;gap:12px;min-height:52px;padding:10px 0;border-bottom:1px solid var(--c-border-weak)}.field:last-child{border-bottom:none}.field--stack{flex-direction:column;align-items:stretch;gap:6px}.field__label{width:84px;flex:none;font-size:14px;color:var(--c-text-2)}.field__required:after{content:"*";margin-left:2px;color:var(--c-cinnabar)}.field__input{flex:1;min-width:0;font-size:15px;color:var(--c-text-1);line-height:22px}.field__input::placeholder{color:var(--c-text-4)}.field__hint{font-size:12px;line-height:18px;color:var(--c-text-3)}.field__value{flex:1;min-width:0;font-size:15px;text-align:right;color:var(--c-text-1)}.field__arrow{flex:none;color:var(--c-text-4)}.input-box{width:100%;min-height:46px;padding:12px 14px;border-radius:var(--r-input);background:var(--c-bg-soft);border:1px solid var(--c-border-weak);font-size:15px;line-height:22px;transition:border-color .16s,background .16s}.input-box:focus{border-color:var(--c-brand-2);background:#fff}textarea.input-box{min-height:96px;resize:none}.seg{display:flex;gap:8px;flex-wrap:wrap}.seg__item{height:34px;padding:0 14px;border-radius:var(--r-pill);border:1px solid var(--c-border-weak);background:var(--c-bg-soft);font-size:13px;color:var(--c-text-2);transition:all .16s}.seg__item--active{border-color:var(--c-brand);background:var(--c-brand-soft);color:var(--c-brand);font-weight:600}.tabs{display:flex;gap:4px;padding:0 var(--page-gutter);border-bottom:1px solid var(--c-border-weak);background:var(--c-bg-page);position:sticky;top:calc(var(--header-h) + var(--safe-top));z-index:15}.tabs__item{position:relative;padding:11px 12px 12px;font-size:14px;color:var(--c-text-3);transition:color .16s}.tabs__item--active{color:var(--c-text-1);font-weight:600}.tabs__item--active:after{content:"";position:absolute;left:50%;bottom:0;transform:translate(-50%);width:20px;height:2px;border-radius:2px;background:var(--c-brand)}.tabs__count{margin-left:4px;font-family:var(--font-num);font-size:12px;color:var(--c-cinnabar)}.tag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:6px;font-size:11px;line-height:1;letter-spacing:.2px;white-space:nowrap}.tag--brand{background:var(--c-brand-soft);color:var(--c-brand)}.tag--cinnabar{background:var(--c-cinnabar-soft);color:var(--c-cinnabar)}.tag--gold{background:var(--c-gold-soft);color:#9a7530}.tag--plain{background:#1f1c170d;color:var(--c-text-2)}.tag--outline{border:1px solid var(--c-border-strong);color:var(--c-text-2)}.seal{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;background:var(--c-cinnabar);color:#fff;font-family:var(--font-serif);font-size:18px;font-weight:600}.avatar{flex:none;width:40px;height:40px;border-radius:12px;object-fit:cover;background:var(--c-brand-soft);display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:17px;color:var(--c-brand);overflow:hidden}.avatar--round{border-radius:50%}.avatar--lg{width:56px;height:56px;font-size:22px;border-radius:16px}.avatar--sm{width:30px;height:30px;font-size:13px;border-radius:9px}.avatar--xs{width:24px;height:24px;font-size:11px;border-radius:8px}.avatar img{width:100%;height:100%;object-fit:cover}.empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:56px 24px;text-align:center}.empty__icon{width:64px;height:64px;border-radius:20px;display:flex;align-items:center;justify-content:center;background:var(--c-brand-soft);color:var(--c-brand)}.empty__title{font-family:var(--font-serif);font-size:16px;font-weight:600;color:var(--c-text-1)}.empty__desc{font-size:13px;line-height:20px;color:var(--c-text-3);max-width:240px}.skeleton{background:linear-gradient(90deg,#efeae2 25%,#f7f4ee 37%,#efeae2 63%);background-size:400% 100%;animation:skeleton 1.3s ease infinite;border-radius:8px}@keyframes skeleton{0%{background-position:100% 50%}to{background-position:0 50%}}.spinner{width:20px;height:20px;border-radius:50%;border:2px solid var(--c-border-strong);border-top-color:var(--c-brand);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-block{display:flex;align-items:center;justify-content:center;gap:8px;padding:28px;color:var(--c-text-3);font-size:13px}.list-end{padding:18px 0 6px;text-align:center;font-size:12px;color:var(--c-text-4)}.sheet-mask{position:fixed;inset:0;z-index:90;background:#1816136b;backdrop-filter:blur(2px);animation:fade .18s ease}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:91;max-height:82vh;display:flex;flex-direction:column;border-radius:20px 20px 0 0;background:var(--c-bg-page);padding-bottom:var(--safe-bottom);animation:slide-up .24s cubic-bezier(.22,.9,.3,1);overflow:hidden}.sheet__head{display:flex;align-items:center;gap:10px;padding:16px var(--page-gutter) 10px;border-bottom:1px solid var(--c-border-weak)}.sheet__title{flex:1;font-family:var(--font-serif);font-size:16px;font-weight:600}.sheet__body{padding:12px var(--page-gutter) 20px;overflow-y:auto;-webkit-overflow-scrolling:touch}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fade{0%{opacity:0}to{opacity:1}}.toast-wrap{position:fixed;top:50%;left:0;right:0;z-index:200;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;transform:translateY(-50%)}.toast{max-width:78%;padding:11px 18px;border-radius:12px;background:#1f1c17e0;color:#fff;font-size:14px;line-height:20px;text-align:center;animation:toast-in .2s ease}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;align-items:stretch;height:calc(var(--tabbar-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:#fcfaf5f0;backdrop-filter:saturate(1.6) blur(16px);-webkit-backdrop-filter:saturate(1.6) blur(16px);box-shadow:var(--shadow-tabbar)}.tabbar__item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10px;letter-spacing:.4px;color:var(--c-text-3);transition:color .16s}.tabbar__item--active{color:var(--c-brand);font-weight:600}.tabbar__item--active .tabbar__icon{transform:translateY(-1px)}.tabbar__icon{position:relative;transition:transform .16s}.tabbar__dot{position:absolute;top:-2px;right:-6px;min-width:15px;height:15px;padding:0 4px;border-radius:8px;background:var(--c-cinnabar);color:#fff;font-family:var(--font-num);font-size:10px;line-height:15px;text-align:center}.list-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--c-border-weak)}.list-row:last-child{border-bottom:none}.list-row__title{font-size:15px;font-weight:600;color:var(--c-text-1)}.list-row__desc{font-size:12.5px;line-height:19px;color:var(--c-text-3)}.list-row__meta{font-size:12px;color:var(--c-text-4);white-space:nowrap}.divider{height:1px;background:var(--c-border-weak);margin:12px 0}.divider--inset{margin-left:var(--page-gutter);margin-right:var(--page-gutter)}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--c-border-weak);border-radius:12px;overflow:hidden}.stat-cell{background:var(--c-bg-card);padding:12px 8px;text-align:center}.stat-cell__num{font-family:var(--font-num);font-size:20px;font-weight:600;color:var(--c-text-1);line-height:26px}.stat-cell__num--brand{color:var(--c-brand)}.stat-cell__label{font-size:11px;color:var(--c-text-3);margin-top:2px}
