.tabbar[data-v-a937f089]{position:absolute;left:0;right:0;bottom:0;z-index:60;height:calc(var(--tabbar-h) + var(--safe-b));padding-bottom:var(--safe-b);display:flex;background:#fffffff7;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--c-line);box-shadow:var(--sd-bar)}.tab[data-v-a937f089]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:var(--fs-xs);color:var(--c-text-3);transition:color .15s ease}.tab.on[data-v-a937f089]{color:var(--c-brand-deep);font-weight:700}.tab.on[data-v-a937f089] svg{transform:translateY(-1px)}.staff-tabbar[data-v-a289f114]{position:absolute;left:0;right:0;bottom:0;z-index:60;height:calc(var(--tabbar-h) + var(--safe-b));padding-bottom:var(--safe-b);display:flex;background:var(--c-staff-ink);border-top:1px solid rgba(255,255,255,.08)}.tab[data-v-a289f114]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:var(--fs-xs);color:#ffffff80;transition:color .15s ease}.tab.on[data-v-a289f114]{color:#fff;font-weight:700}.tab.on[data-v-a289f114] svg{transform:translateY(-1px);color:#7d9bf0}.toast[data-v-70909741]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:300;max-width:76%;padding:11px 20px;border-radius:var(--r-sm);background:#14161ad6;color:#fff;font-size:var(--fs-md);text-align:center;pointer-events:none}.toast-enter-active[data-v-70909741],.toast-leave-active[data-v-70909741]{transition:opacity .2s ease}.toast-enter-from[data-v-70909741],.toast-leave-to[data-v-70909741]{opacity:0}:root{--c-brand: #e8833a;--c-brand-deep: #c8641b;--c-brand-soft: #fdf2e7;--c-brand-line: #f6ddc4;--c-ink: #191b1f;--c-ink-2: #23262c;--c-ink-3: #31353d;--c-text: #191b1f;--c-text-2: #5c6270;--c-text-3: #9aa0ac;--c-text-4: #c2c7d0;--c-line: #edeff3;--c-line-2: #f5f6f8;--c-bg: #f4f5f7;--c-white: #ffffff;--c-success: #16a34a;--c-danger: #e5484d;--c-warn: #e8a33d;--c-info: #3b82f6;--c-staff: #3d6be0;--c-staff-deep: #2b4fb8;--c-staff-soft: #eef2fe;--c-staff-line: #d6dffb;--c-staff-ink: #171c26;--r-xs: 6px;--r-sm: 10px;--r-md: 14px;--r-lg: 18px;--r-xl: 24px;--r-full: 999px;--sd-card: 0 2px 12px rgba(20, 25, 35, .05);--sd-raise: 0 6px 20px rgba(20, 25, 35, .09);--sd-brand: 0 6px 18px rgba(232, 131, 58, .32);--sd-bar: 0 -2px 16px rgba(20, 25, 35, .07);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--fs-xs: 11px;--fs-sm: 12px;--fs-md: 13px;--fs-base: 14px;--fs-lg: 15px;--fs-xl: 17px;--fs-2xl: 20px;--fs-3xl: 24px;--tabbar-h: 54px;--app-max: 430px;--safe-b: env(safe-area-inset-bottom, 0px)}:root{--tone-1: linear-gradient(135deg, #ffe6cc, #ffcfa3);--tone-2: linear-gradient(135deg, #d9ecff, #b7d9ff);--tone-3: linear-gradient(135deg, #ffe0e3, #ffc3c9);--tone-4: linear-gradient(135deg, #dcf5e6, #b9e9cd);--tone-5: linear-gradient(135deg, #ece3ff, #d5c6ff);--tone-6: linear-gradient(135deg, #e2f3f6, #c2e6ec);--tone-7: linear-gradient(135deg, #fff0d6, #ffe0ad);--tone-8: linear-gradient(135deg, #eef1f5, #dce1e9)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#app{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Source Han Sans CN,Helvetica Neue,Arial,sans-serif;font-size:var(--fs-base);line-height:1.5;color:var(--c-text);background:#e7e9ec;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}button{font-family:inherit;border:none;background:none;cursor:pointer;color:inherit;font-size:inherit}input{font-family:inherit;border:none;outline:none;background:transparent;color:inherit}input::placeholder{color:var(--c-text-4)}ul,ol{list-style:none}a{color:inherit;text-decoration:none}.app-shell{position:relative;width:100%;max-width:var(--app-max);margin:0 auto;min-height:100%;background:var(--c-bg);display:flex;flex-direction:column}@media(min-width:520px){body{padding:22px 0}.app-shell{height:calc(100vh - 44px);min-height:640px;border-radius:30px;overflow:hidden;box-shadow:0 20px 54px #0f141e47}}body.admin-mode{padding:0;background:#eef0f4}.page-scroll{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.page-scroll::-webkit-scrollbar{width:0}.pad{padding-left:var(--sp-3);padding-right:var(--sp-3)}.card{background:var(--c-white);border-radius:var(--r-lg);box-shadow:var(--sd-card)}.row{display:flex;align-items:center}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clamp-2{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sec-head{display:flex;align-items:flex-end;padding:var(--sp-5) 0 var(--sp-3)}.sec-head .bar{width:3px;height:15px;border-radius:2px;background:var(--c-brand);margin-right:8px;align-self:center}.sec-head h3{font-size:var(--fs-xl);font-weight:700;letter-spacing:.2px}.sec-head .sub{font-size:var(--fs-sm);color:var(--c-text-3);margin-left:8px;padding-bottom:1px}.sec-head .more{margin-left:auto;font-size:var(--fs-sm);color:var(--c-text-3);display:flex;align-items:center;gap:1px}.tag{display:inline-block;font-size:var(--fs-xs);line-height:1.5;padding:1px 6px;border-radius:4px;background:var(--c-brand-soft);color:#a35d16;white-space:nowrap}.tag.blue{background:#eaf2ff;color:#3568d4}.tag.green{background:#e7f7ee;color:#0f8a45}.tag.grey{background:var(--c-line-2);color:var(--c-text-3)}.price{display:flex;align-items:baseline;gap:5px}.price .now{color:var(--c-danger);font-weight:800;font-size:var(--fs-md)}.price .now em{font-style:normal;font-size:19px;letter-spacing:-.5px}.price .old{font-size:var(--fs-xs);color:var(--c-text-4);text-decoration:line-through}.btn{border-radius:var(--r-full);font-weight:700;text-align:center;transition:transform .12s ease,opacity .12s ease}.btn:active{transform:scale(.97)}.btn-brand{background:linear-gradient(135deg,#f29a52,var(--c-brand-deep));color:#fff;box-shadow:var(--sd-brand)}.btn-ghost{border:1px solid var(--c-line);color:var(--c-text-2);background:var(--c-white)}.thumb{display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:var(--r-md);font-size:34px;line-height:1;-webkit-user-select:none;user-select:none}.fade-enter-active,.fade-leave-active{transition:opacity .18s ease}.fade-enter-from,.fade-leave-to{opacity:0}.slide-enter-active,.slide-leave-active{transition:transform .28s cubic-bezier(.32,.72,0,1)}.slide-enter-from,.slide-leave-to{transform:translate(100%)}
