.navbar[data-v-60ba1345]{position:fixed;top:0;left:0;right:0;z-index:200;background:#ffffffd1;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:.5px solid rgba(0,0,0,.06);box-shadow:0 1px 8px #0000000a}.nav-inner[data-v-60ba1345]{max-width:1080px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:64px}.nav-logo[data-v-60ba1345]{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:800;color:var(--gray-900, #1C1C1E);letter-spacing:-.02em;text-decoration:none}.nav-logo-img[data-v-60ba1345]{width:40px;height:40px;border-radius:10px;background:#ffffffeb;padding:3px;object-fit:contain;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 2px 8px #00000026;flex-shrink:0}.nav-logo:hover .nav-logo-img[data-v-60ba1345]{transform:scale(1.08)}.nav-links[data-v-60ba1345]{display:none;align-items:center;gap:4px;list-style:none}.nav-links a[data-v-60ba1345]{display:block;padding:8px 16px;font-size:15px;font-weight:500;color:var(--gray-700, #48484A);border-radius:8px;transition:all .2s ease;text-decoration:none}.nav-links a[data-v-60ba1345]:hover{background:#007aff14;color:#007aff}.nav-links .nav-cta[data-v-60ba1345]{background:#007aff;color:#fff!important;padding:8px 20px;border-radius:999px;font-weight:600;margin-left:8px}.nav-links .nav-cta[data-v-60ba1345]:hover{background:#0056cc}.nav-links .nav-cta-camp[data-v-60ba1345]{background:#ea580c;margin-left:4px}.nav-links .nav-cta-camp[data-v-60ba1345]:hover{background:#c2410c}.nav-user-wrap[data-v-60ba1345]{position:relative;margin-left:8px}.nav-user-btn[data-v-60ba1345]{display:flex;align-items:center;gap:8px;background:#007aff0f;border:1.5px solid rgba(0,122,255,.15);border-radius:999px;padding:5px 14px 5px 5px;cursor:pointer;transition:all .25s ease;font-family:inherit}.nav-user-btn[data-v-60ba1345]:hover{background:#007aff1f;border-color:#007aff4d}.nav-user-avatar[data-v-60ba1345]{width:32px;height:32px;border-radius:999px;background:linear-gradient(135deg,#007aff,#5ac8fa);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0}.nav-user-name[data-v-60ba1345]{font-size:14px;font-weight:600;color:var(--gray-900, #1C1C1E);max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-user-arrow[data-v-60ba1345]{font-size:10px;color:var(--gray-500, #8E8E93);transition:transform .25s ease}.nav-user-arrow.rotated[data-v-60ba1345]{transform:rotate(180deg)}.nav-auth-btn[data-v-60ba1345]{display:flex;align-items:center;gap:6px;background:transparent;border:1.5px solid rgba(0,122,255,.35);border-radius:999px;padding:7px 14px;cursor:pointer;font-size:14px;font-weight:600;color:#007aff;transition:all .25s ease;font-family:inherit}.nav-auth-btn[data-v-60ba1345]:hover{background:#007aff14;border-color:#007aff}.nav-auth-btn i[data-v-60ba1345]:first-child{font-size:16px}.nav-dropdown[data-v-60ba1345]{position:absolute;top:calc(100% + 10px);right:0;min-width:200px;background:#fffffff5;backdrop-filter:saturate(180%) blur(24px);-webkit-backdrop-filter:saturate(180%) blur(24px);border-radius:14px;box-shadow:0 8px 40px #0000001f,0 2px 8px #0000000f;border:.5px solid rgba(0,0,0,.08);padding:8px;z-index:300}.dropdown-item[data-v-60ba1345]{display:flex;align-items:center;gap:12px;padding:12px 14px;font-size:15px;font-weight:500;color:var(--gray-900, #1C1C1E);border-radius:10px;transition:all .2s ease;cursor:pointer;text-decoration:none;border:none;background:none;width:100%;font-family:inherit}.dropdown-item i[data-v-60ba1345]{width:20px;text-align:center;color:var(--gray-500, #8E8E93);font-size:15px}.dropdown-item[data-v-60ba1345]:hover{background:#007aff14;color:#007aff}.dropdown-item:hover i[data-v-60ba1345]{color:#007aff}.dropdown-divider[data-v-60ba1345]{height:1px;background:var(--gray-200, #E5E5EA);margin:6px 8px}.dropdown-logout[data-v-60ba1345],.dropdown-logout i[data-v-60ba1345]{color:#ff3b30}.dropdown-logout[data-v-60ba1345]:hover{background:#ff3b3014;color:#ff3b30}.dropdown-points[data-v-60ba1345]{padding:14px 16px;text-align:center}.dropdown-points-label[data-v-60ba1345]{font-size:12px;font-weight:600;color:#8e8e93;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.dropdown-points-value[data-v-60ba1345]{font-size:28px;font-weight:800;color:#007aff;line-height:1.1}.mobile-user-detail[data-v-60ba1345]{display:flex;flex-direction:column;gap:2px}.mobile-user-points[data-v-60ba1345]{font-size:14px;font-weight:600;color:#007aff;display:flex;align-items:center;gap:4px}.mobile-user-points i[data-v-60ba1345]{font-size:12px}.dropdown-enter-active[data-v-60ba1345]{animation:dropdownIn-60ba1345 .25s cubic-bezier(.22,1,.36,1)}.dropdown-leave-active[data-v-60ba1345]{animation:dropdownOut-60ba1345 .15s ease-in}@keyframes dropdownIn-60ba1345{0%{opacity:0;transform:translateY(-8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes dropdownOut-60ba1345{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-6px) scale(.97)}}.nav-toggle[data-v-60ba1345]{display:flex;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;margin-right:-8px}.nav-toggle span[data-v-60ba1345]{display:block;width:22px;height:2px;background:var(--gray-900, #1C1C1E);border-radius:2px;transition:all .3s ease}.mobile-menu[data-v-60ba1345]{position:fixed;inset:64px 0 0;background:#fffffff5;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);z-index:199;display:flex;flex-direction:column;padding:16px 24px;overflow-y:auto}.mobile-menu a[data-v-60ba1345]{display:flex;align-items:center;gap:12px;padding:16px 0;font-size:18px;font-weight:600;color:var(--gray-900, #1C1C1E);border-bottom:1px solid var(--gray-100, #F2F2F7);transition:color .2s;text-decoration:none}.mobile-menu a[data-v-60ba1345]:hover{color:#007aff}.mobile-menu a i[data-v-60ba1345]{width:24px;text-align:center;color:var(--gray-500, #8E8E93);font-size:16px}.mobile-cta[data-v-60ba1345]{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:24px;background:#007aff;color:#fff!important;border:none;border-radius:14px;height:52px;font-size:17px;font-weight:700;box-shadow:0 4px 20px #007aff40;text-decoration:none;border-bottom:none!important}.mobile-cta[data-v-60ba1345]:hover{color:#fff!important}.mobile-cta-camp[data-v-60ba1345]{background:#ea580c!important;box-shadow:0 4px 20px #ea580c40!important;margin-top:10px!important}.mobile-cta-camp[data-v-60ba1345]:hover{background:#c2410c!important;color:#fff!important}.mobile-auth-section[data-v-60ba1345]{margin-top:24px;padding-top:24px;border-top:2px solid var(--gray-200, #E5E5EA)}.mobile-user-info[data-v-60ba1345]{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:12px 0}.mobile-user-avatar[data-v-60ba1345]{width:44px;height:44px;border-radius:999px;background:linear-gradient(135deg,#007aff,#5ac8fa);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;flex-shrink:0}.mobile-user-name[data-v-60ba1345]{font-size:18px;font-weight:700;color:var(--gray-900, #1C1C1E)}.mobile-auth-link[data-v-60ba1345]{display:flex;align-items:center;gap:12px;padding:14px 0;font-size:16px;font-weight:500;color:var(--gray-700, #48484A);border-bottom:1px solid var(--gray-100, #F2F2F7);text-decoration:none;transition:color .2s}.mobile-auth-link[data-v-60ba1345]:hover{color:#007aff}.mobile-auth-link i[data-v-60ba1345]{width:24px;text-align:center;color:var(--gray-500, #8E8E93);font-size:15px}.mobile-logout-btn[data-v-60ba1345]{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:20px;width:100%;background:transparent;color:#ff3b30;border:1.5px solid #FF3B30;border-radius:14px;height:52px;font-size:17px;font-weight:700;cursor:pointer;transition:all .2s ease;font-family:inherit}.mobile-logout-btn[data-v-60ba1345]:hover{background:#ff3b3014}.mobile-login-btn[data-v-60ba1345]{margin-top:0!important}.mobile-register-link[data-v-60ba1345]{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:12px;background:transparent;color:#007aff;border:1.5px solid #007AFF;border-radius:14px;height:52px;font-size:17px;font-weight:600;text-decoration:none;border-bottom:none!important}.mobile-register-link[data-v-60ba1345]:hover{background:#007aff14;color:#007aff!important}.mobile-menu-enter-active[data-v-60ba1345]{animation:mobileIn-60ba1345 .35s cubic-bezier(.22,1,.36,1)}.mobile-menu-leave-active[data-v-60ba1345]{animation:mobileOut-60ba1345 .25s ease-in}@keyframes mobileIn-60ba1345{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes mobileOut-60ba1345{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}@media(min-width:768px){.nav-links[data-v-60ba1345]{display:flex}.nav-toggle[data-v-60ba1345]{display:none}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary: #007AFF;--color-primary-light: #4DA2FF;--color-primary-dark: #0056CC;--color-primary-bg: rgba(0, 122, 255, .08);--color-accent: #34C759;--color-accent-light: #6ADB83;--color-warning: #FF9500;--color-danger: #FF3B30;--color-info: #5AC8FA;--color-purple: #AF52DE;--gray-50: #F9FAFB;--gray-100: #F2F2F7;--gray-200: #E5E5EA;--gray-300: #D1D1D6;--gray-400: #C7C7CC;--gray-500: #8E8E93;--gray-600: #636366;--gray-700: #48484A;--gray-800: #3A3A3C;--gray-900: #1C1C1E;--bg: var(--gray-50);--text: var(--gray-900);--text-secondary: var(--gray-500);--border: var(--gray-200);--white: #FFFFFF;--primary: var(--color-primary);--primary-dark: var(--color-primary-dark);--success: var(--color-accent);--warning: var(--color-warning);--danger: var(--color-danger);--info: var(--color-info);--font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Inter", "Noto Sans TC", "PingFang TC", "Helvetica Neue", sans-serif;--font-mono: "SF Mono", "Menlo", "Consolas", monospace;--text-hero: 34px;--text-title-1: 28px;--text-title-2: 22px;--text-title-3: 20px;--text-headline: 17px;--text-body: 17px;--text-callout: 16px;--text-subhead: 15px;--text-footnote: 13px;--text-caption: 12px;--font-xs: 12px;--font-sm: 14px;--font-md: 16px;--font-lg: 18px;--font-xl: 20px;--font-title: 24px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--radius-xs: 6px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 28px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .06), 0 1px 4px rgba(0, 0, 0, .04);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .08), 0 2px 8px rgba(0, 0, 0, .04);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .1), 0 4px 16px rgba(0, 0, 0, .05);--shadow-hover: 0 8px 28px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--ease-out: cubic-bezier(.25, .1, .25, 1);--ease-in-out: cubic-bezier(.42, 0, .58, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-bounce: cubic-bezier(.22, 1, .36, 1);--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .35s;--duration-sheet: .5s;--bottom-nav-height: 64px;--navbar-height: 48px;--topnav-height: 64px}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{font-family:var(--font-family);font-size:var(--text-body);color:var(--text);background:var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}#app{min-height:100vh;display:flex;flex-direction:column}.app-container,.main-content{min-height:100vh}.main-content.has-topnav{padding-top:var(--topnav-height)}button,a,input,.card,.badge,.nav-item{transition:all var(--duration-normal) var(--ease-out)}.loading-screen,.error-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-6);text-align:center;background:var(--bg)}.loading-spinner{width:36px;height:36px;border:3px solid var(--gray-200);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite;margin-bottom:var(--space-4)}@keyframes spin{to{transform:rotate(360deg)}}.page{min-height:calc(100vh - var(--bottom-nav-height));max-width:1080px;margin:0 auto;padding:var(--space-4) 24px;padding-bottom:var(--space-6)}.card{background:var(--white);border-radius:var(--radius-md);padding:var(--space-5);margin-bottom:var(--space-4);box-shadow:var(--shadow-sm);border:none}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:0 var(--space-5);height:50px;border:none;border-radius:var(--radius-sm);font-size:var(--text-headline);font-weight:600;font-family:var(--font-family);cursor:pointer;transition:all var(--duration-normal) var(--ease-out);text-decoration:none;gap:var(--space-2)}.btn:active{transform:scale(.97);transition-duration:var(--duration-fast)}.btn-primary{background:var(--color-primary);color:var(--white)}.btn-primary:hover{background:var(--color-primary-dark);box-shadow:0 4px 16px #007aff4d}.btn-secondary{background:transparent;border:1.5px solid var(--color-primary);color:var(--color-primary)}.btn-danger{background:var(--color-danger);color:var(--white)}.btn-success{background:var(--color-accent);color:var(--white)}.btn-outline{background:transparent;border:1.5px solid var(--color-primary);color:var(--color-primary)}.btn-ghost{background:transparent;border:none;color:var(--color-primary);height:44px}.btn-pill{border-radius:var(--radius-full);height:36px;padding:0 var(--space-4);font-size:var(--text-subhead)}.btn:disabled{opacity:.5;cursor:not-allowed}.form-group{margin-bottom:var(--space-4)}.form-label{display:block;margin-bottom:var(--space-2);font-weight:500;font-size:var(--text-callout);color:var(--gray-700)}.form-control{width:100%;height:50px;padding:0 var(--space-4);border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);background:var(--gray-50);font-size:var(--text-body);font-family:var(--font-family);color:var(--text);transition:border-color var(--duration-normal) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out)}.form-control:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-bg)}.form-control::placeholder{color:var(--gray-400)}.fade-enter-active,.fade-leave-active{transition:opacity var(--duration-normal) var(--ease-out)}.fade-enter-from,.fade-leave-to{opacity:0}.page-enter-active{animation:fadeSlideUp var(--duration-slow) var(--ease-bounce)}.page-leave-active{animation:fadeOut var(--duration-fast) var(--ease-out)}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-xs);font-size:var(--text-caption);font-weight:600}.badge-confirmed{background:#34c7591f;color:#34c759}.badge-waiting{background:#ff95001f;color:#ff9500}.badge-cancelled{background:#ff3b301f;color:#ff3b30}.badge-attended{background:#007aff1f;color:#007aff}.badge-no-show{background:#8e8e931f;color:#8e8e93}.badge-pending{background:#af52de1f;color:#af52de}.text-center{text-align:center}.text-primary{color:var(--color-primary)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-accent)}.text-secondary{color:var(--text-secondary)}.mb-0{margin-bottom:0}.mb-sm{margin-bottom:var(--space-2)}.mb-md{margin-bottom:var(--space-4)}.mb-lg{margin-bottom:var(--space-6)}.mt-0{margin-top:0}.mt-sm{margin-top:var(--space-2)}.mt-md{margin-top:var(--space-4)}.mt-lg{margin-top:var(--space-6)}.p-0{padding:0}.p-sm{padding:var(--space-2)}.p-md{padding:var(--space-4)}.p-lg{padding:var(--space-6)}
