.tabbar[data-v-b8ca5423]{width:100%;max-width:var(--app-max-width);height:var(--tabbar-height);background:var(--color-bg-card);box-shadow:0 -2px 10px var(--color-tabbar-shadow);z-index:100;-webkit-user-select:none;user-select:none;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tabbar-item[data-v-b8ca5423]{justify-content:center;align-items:center;gap:var(--spacing-xs);color:var(--color-tab-inactive);transition:color var(--transition-fast);padding:var(--spacing-sm) 0;flex-direction:column;flex:1;display:flex}.tabbar-item.active[data-v-b8ca5423]{color:var(--color-tab-active)}.tabbar-icon[data-v-b8ca5423]{font-size:var(--font-size-xl);line-height:1}.tabbar-label[data-v-b8ca5423]{font-size:var(--font-size-xs);line-height:1}.toast[data-v-fdb7a110]{top:var(--spacing-xl);align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);border-radius:var(--radius-md);font-size:var(--font-size-base);color:var(--color-text-inverse);z-index:var(--toast-z-index);box-shadow:var(--shadow-lg);max-width:90%;display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast.success[data-v-fdb7a110]{background:var(--color-success)}.toast.error[data-v-fdb7a110]{background:var(--color-danger)}.toast.warning[data-v-fdb7a110]{background:var(--color-warning)}.toast.info[data-v-fdb7a110]{background:var(--color-info)}.toast-message[data-v-fdb7a110]{line-height:1.4}.carousel[data-v-cef79aa0]{aspect-ratio:16/9;border-radius:var(--radius-md);background:var(--color-bg-secondary);width:100%;position:relative;overflow:hidden}.carousel-track[data-v-cef79aa0]{width:100%;height:100%}.carousel-slide[data-v-cef79aa0]{opacity:0;width:100%;height:100%;transition:opacity var(--transition-base);text-align:left;pointer-events:none;cursor:pointer;border:0;padding:0;position:absolute;top:0;left:0}.carousel-slide.active[data-v-cef79aa0]{opacity:1;pointer-events:auto}.carousel-slide img[data-v-cef79aa0]{object-fit:cover;cursor:pointer;width:100%;height:100%;display:block}.carousel-title[data-v-cef79aa0]{width:100%;padding:var(--spacing-md);background:linear-gradient(transparent, var(--color-carousel-title-bg));color:var(--color-text-inverse);font-size:var(--font-size-base);position:absolute;bottom:0;left:0}.carousel-btn[data-v-cef79aa0]{border-radius:var(--radius-full);background:var(--color-carousel-btn-bg);width:32px;height:32px;color:var(--color-text-primary);opacity:.7;transition:opacity var(--transition-fast);justify-content:center;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.carousel-btn[data-v-cef79aa0]:hover{opacity:1}.carousel-btn.prev[data-v-cef79aa0]{left:var(--spacing-sm)}.carousel-btn.next[data-v-cef79aa0]{right:var(--spacing-sm)}.carousel-dots[data-v-cef79aa0]{bottom:var(--spacing-sm);gap:var(--spacing-xs);display:flex;position:absolute;left:50%;transform:translate(-50%)}.carousel-dot[data-v-cef79aa0]{border-radius:var(--radius-full);background:var(--color-carousel-dot-bg);width:8px;height:8px;transition:background var(--transition-fast)}.carousel-dot.active[data-v-cef79aa0]{background:var(--color-text-inverse)}.topbar[data-v-8f8557f0]{background:var(--color-bg-card);padding:0 var(--spacing-sm);border-bottom:1px solid var(--color-border-light);box-shadow:var(--shadow-sm);align-items:center;gap:10px;display:flex}.topbar-carousel[data-v-8f8557f0]{transform-origin:top;flex:0 0 70%;min-width:0;margin-bottom:-3.9375%;transform:scaleY(.9)}.topbar-shop[data-v-8f8557f0]{justify-content:center;align-items:center;gap:var(--spacing-xs);flex-direction:column;flex:1;min-width:0;display:flex}.shop-card-main[data-v-8f8557f0]{align-items:center;gap:var(--spacing-xs);cursor:pointer;background:0 0;border:0;flex-direction:column;width:100%;min-width:0;padding:0;display:flex}.shop-card-main[data-v-8f8557f0]:focus-visible,.shop-detail-btn[data-v-8f8557f0]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.shop-avatar[data-v-8f8557f0]{border-radius:var(--radius-md);object-fit:cover;width:60px;height:60px}.shop-name[data-v-8f8557f0]{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-text-primary);text-align:center;white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.shop-detail-btn[data-v-8f8557f0]{max-width:100%;color:var(--color-text-inverse);font-size:11px;font-weight:var(--font-weight-semibold);cursor:pointer;transition:var(--transition-fast);text-overflow:ellipsis;white-space:nowrap;background:#f5a623;border:none;border-radius:16px;padding:4px 12px;font-family:inherit;overflow:hidden}.shop-detail-btn[data-v-8f8557f0]:active{background:#d98b12;transform:scale(.92)}.image-preview[data-v-e71917e9]{z-index:9999;background:#000000e6;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.preview-toolbar[data-v-e71917e9]{width:100%;padding:var(--spacing-md) var(--spacing-lg);z-index:1;justify-content:space-between;align-items:center;display:flex;position:absolute;top:0;left:0}.toolbar-btn[data-v-e71917e9]{color:var(--color-text-inverse);border-radius:var(--radius-sm);padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-sm);cursor:pointer;transition:var(--transition-fast);background:#fff3;border:none}.toolbar-btn[data-v-e71917e9]:active{background:#ffffff4d}.close-btn[data-v-e71917e9]{border-radius:var(--radius-sm);justify-content:center;align-items:center;width:36px;height:36px;padding:0;display:flex}.preview-content[data-v-e71917e9]{touch-action:none;flex:1;justify-content:center;align-items:center;width:100%;min-height:0;display:flex;overflow:hidden}.preview-image[data-v-e71917e9]{object-fit:contain;cursor:pointer;max-width:100%;max-height:100%;transition:transform .3s}.preview-image.scaled[data-v-e71917e9]{cursor:zoom-out}.preview-image.interacting[data-v-e71917e9]{transition:none}.fade-enter-active[data-v-e71917e9],.fade-leave-active[data-v-e71917e9]{transition:opacity .25s}.fade-enter-from[data-v-e71917e9],.fade-leave-to[data-v-e71917e9]{opacity:0}.app-wrapper[data-v-23645db8]{width:100%;max-width:var(--app-max-width);min-height:100dvh;margin:0 auto;position:relative}.pull-refresh[data-v-23645db8]{top:calc(env(safe-area-inset-top) - 38px);z-index:1100;background:var(--color-bg-card);box-shadow:var(--shadow-card);color:var(--color-primary);font-size:var(--font-size-sm);white-space:nowrap;pointer-events:none;border-radius:20px;align-items:center;gap:6px;padding:7px 12px;transition:transform 80ms ease-out;display:flex;position:fixed;left:50%}.pull-refresh-icon[data-v-23645db8]{font-size:20px;line-height:1;transition:transform .15s;display:inline-block}.pull-refresh-icon.ready[data-v-23645db8]{transform:rotate(180deg)}.pull-refresh-icon.spinning[data-v-23645db8]{animation:.8s linear infinite spin}.navigation-progress[data-v-23645db8]{z-index:1000;background:var(--color-primary);border-radius:0 3px 3px 0;width:45%;height:3px;animation:.9s ease-in-out infinite navigation-progress-23645db8;position:fixed;top:0;left:0}@keyframes navigation-progress-23645db8{0%{transform:translate(-100%)}to{transform:translate(225%)}}.app-topbar[data-v-23645db8]{width:100%}.splash[data-v-23645db8]{width:100%;max-width:var(--app-max-width);height:100%;z-index:var(--splash-z-index);background:var(--color-bg-card);transition:opacity var(--transition-slow);padding:var(--spacing-4xl) var(--spacing-3xl);flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;top:0;left:50%;transform:translate(-50%)}.splash-logo[data-v-23645db8]{border-radius:var(--radius-full);background:var(--color-primary);width:100px;height:100px;font-weight:var(--font-weight-black);color:var(--color-text-inverse);margin-bottom:var(--spacing-lg);box-shadow:var(--shadow-primary);line-height:1.1;font-size:var(--font-size-logo);letter-spacing:4px;flex-direction:column;justify-content:center;align-items:center;display:flex}.splash-brand[data-v-23645db8]{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-primary);letter-spacing:1px}.splash-sub[data-v-23645db8]{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--spacing-xs);letter-spacing:3px}.splash-progress[data-v-23645db8]{margin-top:var(--spacing-3xl);background:var(--color-bg-secondary);border-radius:var(--radius-xs);width:180px;height:4px;overflow:hidden}.splash-progress-bar[data-v-23645db8]{background:var(--gradient-primary);border-radius:var(--radius-xs);width:0%;height:100%;transition:width .1s linear}.splash-hint[data-v-23645db8]{margin-top:var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-text-tertiary);letter-spacing:1px}.splash-status[data-v-23645db8]{font-size:var(--font-size-xs);color:var(--color-primary);margin-top:var(--spacing-xs)}.splash-disclaimer[data-v-23645db8]{margin-top:var(--spacing-xl);font-size:var(--font-size-xs);color:var(--color-text-tertiary);letter-spacing:.5px;white-space:normal;text-align:center;line-height:1.5}:root{--color-primary:#1a3a8a;--color-primary-light:#4a7ad8;--color-primary-dark:#142f6e;--color-accent:#e67e22;--color-accent-light:#f39c12;--color-accent-dark:#d35400;--color-bg:#f2eee9;--color-bg-card:#fff;--color-bg-secondary:#e8e0d8;--color-bg-tertiary:#f7f3ee;--color-text-primary:#2c2c2c;--color-text-secondary:#8a7a6a;--color-text-tertiary:#b3a89e;--color-text-disabled:#c0b8b0;--color-text-inverse:#fff;--color-success:#27ae60;--color-warning:#f39c12;--color-danger:#e74c3c;--color-info:#3498db;--color-border:#e0d8d0;--color-border-light:#ede7e0;--color-overlay:#00000080;--color-tab-active:#1a3a8a;--color-tab-inactive:#8a7a6a;--color-special-price:#e74c3c;--color-original-price:#999;--color-medal-gold:gold;--color-medal-silver:silver;--color-medal-bronze:#cd7f32;--color-carousel-title-bg:#0009;--color-carousel-btn-bg:#fffc;--color-carousel-dot-bg:#ffffff80;--color-mask-bg:#fffc;--color-tabbar-shadow:#0000000d;--color-link:#1a3a8a;--font-size-xs:11px;--font-size-sm:12px;--font-size-base:14px;--font-size-md:15px;--font-size-lg:16px;--font-size-xl:18px;--font-size-2xl:20px;--font-size-3xl:22px;--font-size-4xl:24px;--font-size-5xl:28px;--font-size-6xl:32px;--font-size-logo:40px;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-black:900;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:20px;--radius-full:50%;--radius-circle:9999px;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 2px 8px #00000014;--shadow-lg:0 4px 16px #0000001a;--shadow-xl:0 8px 32px #1a3a8a26;--shadow-card:0 0 20px #0000000f;--shadow-primary:0 8px 32px #1a3a8a59;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:12px;--spacing-lg:16px;--spacing-xl:20px;--spacing-2xl:24px;--spacing-3xl:32px;--spacing-4xl:40px;--app-max-width:420px;--tabbar-height:56px;--splash-z-index:9999;--modal-z-index:1000;--toast-z-index:2000;--transition-fast:.2s ease;--transition-base:.3s ease;--transition-slow:.6s ease;--gradient-primary:linear-gradient(90deg, #1a3a8a, #4a7ad8);--gradient-accent:linear-gradient(135deg, #e67e22, #f39c12);--font-family:system-ui, -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{overscroll-behavior-y:none;-ms-overflow-style:none;scrollbar-width:none;height:100%}html::-webkit-scrollbar{display:none}body::-webkit-scrollbar{display:none}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text-primary);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}a{color:var(--color-link);text-decoration:none}ul,ol{list-style:none}img{max-width:100%;display:block}button{font-family:inherit;font-size:inherit;cursor:pointer;color:inherit;background:0 0;border:none}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit;background:0 0;border:none;outline:none}table{border-collapse:collapse;border-spacing:0}body{background:var(--color-bg);justify-content:center;align-items:flex-start;min-height:100dvh;display:flex}#app{width:100%;max-width:var(--app-max-width);min-height:100dvh;margin:0 auto;position:relative;overflow-x:clip}html.pwa-standalone{--pwa-top-safe-area:env(safe-area-inset-top,0px)}@media (hover:none) and (pointer:coarse){html.pwa-standalone{--pwa-top-safe-area:max(32px, env(safe-area-inset-top,0px))}}html.pwa-standalone .club-detail>.detail-header,html.pwa-standalone .recruitment-detail-view>.detail-header,html.pwa-standalone .club-event-detail>.detail-header,html.pwa-standalone .shop-detail-page>.detail-header{height:calc(56px + var(--pwa-top-safe-area));padding-top:var(--pwa-top-safe-area)}html.pwa-standalone .club-event-list>.page-header,html.pwa-standalone .recruitment-list-view>.page-header{min-height:calc(56px + var(--pwa-top-safe-area));padding-top:var(--pwa-top-safe-area)}html.pwa-standalone .stall-menu-view .stall-header,html.pwa-standalone .dining-detail .stall-header{padding-top:calc(var(--spacing-md) + var(--pwa-top-safe-area))}html.pwa-standalone .canteen-detail-view,html.pwa-standalone .activity-detail-view{padding-top:calc(var(--spacing-lg) + var(--pwa-top-safe-area))}html.pwa-standalone .shop-back-button,html.pwa-standalone .coupon-share-button{top:calc(6px + var(--pwa-top-safe-area))}html.pwa-standalone .ferris-view{padding-top:var(--pwa-top-safe-area)}html.pwa-standalone .ferris-view .top-actions{padding-top:calc(12px + var(--pwa-top-safe-area))}html.pwa-standalone .image-preview .preview-toolbar{padding-top:calc(var(--spacing-md) + var(--pwa-top-safe-area))}.app-container{width:100%;max-width:var(--app-max-width);background:var(--color-bg);min-height:100dvh;box-shadow:var(--shadow-card);padding-bottom:var(--tabbar-height);-webkit-user-select:none;user-select:none;position:relative;overflow-x:clip}.fade-enter-active,.fade-leave-active{transition:opacity var(--transition-base)}.fade-enter-from,.fade-leave-to{opacity:0}.slide-enter-active,.slide-leave-active{transition:transform var(--transition-base)}.slide-enter-from{transform:translateY(100%)}.slide-leave-to{transform:translateY(-100%)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
