@keyframes logoWiggle-940f4aa9{0%,to{transform:scale(1.08) rotate(0)}25%{transform:scale(1.12) rotate(-8deg)}75%{transform:scale(1.12) rotate(8deg)}}@keyframes navTumble-940f4aa9{0%{transform:translateY(0) rotate(0)}30%{transform:translateY(-3px) rotate(-6deg)}60%{transform:translateY(-3px) rotate(6deg)}to{transform:translateY(0) rotate(0)}}@keyframes navShine-940f4aa9{0%{transform:translate(-100%)}to{transform:translate(200%)}}.navbar[data-v-940f4aa9]{position:fixed;top:0;left:0;right:0;z-index:200;background:linear-gradient(180deg,#fffffff0,#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 #fff9 inset,0 4px 24px -8px #141e501a,0 1px 4px #0000000a}.nav-inner[data-v-940f4aa9]{max-width:1080px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:68px}.nav-logo[data-v-940f4aa9]{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:800;color:var(--gray-900, #1C1C1E);letter-spacing:-.02em;text-decoration:none;white-space:nowrap;flex-shrink:0}.nav-logo-img[data-v-940f4aa9]{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#fff,#fafbff);padding:3px;object-fit:contain;transition:transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s ease;box-shadow:0 1px #ffffffe6 inset,0 2px 6px #0028781f,0 6px 16px -4px #0028782e;flex-shrink:0}.nav-logo:hover .nav-logo-img[data-v-940f4aa9]{animation:logoWiggle-940f4aa9 .6s cubic-bezier(.36,1.6,.4,1) both;box-shadow:0 1px #ffffffe6 inset,0 4px 12px #007aff40,0 10px 24px -6px #007aff4d}.nav-links[data-v-940f4aa9]{display:none;align-items:center;gap:4px;list-style:none}.nav-links a[data-v-940f4aa9]{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;white-space:nowrap}.nav-links a[data-v-940f4aa9]:hover{background:#007aff14;color:#007aff}.nav-links .nav-cta[data-v-940f4aa9]{position:relative;background:linear-gradient(135deg,#007aff,#5ac8fa);color:#fff!important;padding:9px 20px;border-radius:999px;font-weight:700;margin-left:8px;box-shadow:0 1px #ffffff4d inset,0 4px 12px -2px #007aff66,0 8px 20px -6px #007aff4d;overflow:hidden;transition:transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s ease}.nav-links .nav-cta[data-v-940f4aa9]:before{content:"";position:absolute;top:0;left:0;width:30%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);transform:translate(-100%);pointer-events:none}.nav-links .nav-cta[data-v-940f4aa9]:hover{background:linear-gradient(135deg,#007aff,#5ac8fa);transform:translateY(-2px);box-shadow:0 1px #ffffff4d inset,0 6px 16px -2px #007aff80,0 14px 28px -6px #007aff66}.nav-links .nav-cta[data-v-940f4aa9]:hover:before{animation:navShine-940f4aa9 1s ease}.nav-links .nav-cta i[data-v-940f4aa9]{transition:transform .35s cubic-bezier(.36,1.6,.4,1)}.nav-links .nav-cta:hover i[data-v-940f4aa9]{animation:navTumble-940f4aa9 .6s ease}.nav-links .nav-cta-camp[data-v-940f4aa9]{background:linear-gradient(135deg,#ea580c,#f97316);margin-left:4px;box-shadow:0 1px #ffffff4d inset,0 4px 12px -2px #ea580c66,0 8px 20px -6px #ea580c4d}.nav-links .nav-cta-camp[data-v-940f4aa9]:hover{background:linear-gradient(135deg,#ea580c,#f97316);box-shadow:0 1px #ffffff4d inset,0 6px 16px -2px #ea580c8c,0 14px 28px -6px #ea580c66}.nav-user-wrap[data-v-940f4aa9]{position:relative;margin-left:8px}.nav-user-btn[data-v-940f4aa9]{display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,#007aff14,#5ac8fa0a);border:1.5px solid rgba(0,122,255,.18);border-radius:999px;padding:5px 14px 5px 5px;cursor:pointer;transition:transform .25s cubic-bezier(.22,1,.36,1),background .25s ease,border-color .25s ease,box-shadow .25s ease;font-family:inherit;box-shadow:0 1px #fff9 inset,0 2px 6px -2px #007aff26}.nav-user-btn[data-v-940f4aa9]:hover{background:linear-gradient(135deg,#007aff24,#5ac8fa14);border-color:#007aff59;transform:translateY(-1px);box-shadow:0 1px #fff9 inset,0 6px 14px -2px #007aff40}.nav-user-avatar[data-v-940f4aa9]{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;box-shadow:0 1px #ffffff4d inset,0 2px 6px #007aff4d}.nav-user-name[data-v-940f4aa9]{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-940f4aa9]{font-size:10px;color:var(--gray-500, #8E8E93);transition:transform .25s ease}.nav-user-arrow.rotated[data-v-940f4aa9]{transform:rotate(180deg)}.nav-auth-btn[data-v-940f4aa9]{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-940f4aa9]:hover{background:#007aff14;border-color:#007aff}.nav-auth-btn i[data-v-940f4aa9]:first-child{font-size:16px}.nav-dropdown[data-v-940f4aa9]{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-940f4aa9]{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-940f4aa9]{width:20px;text-align:center;color:var(--gray-500, #8E8E93);font-size:15px}.dropdown-item[data-v-940f4aa9]:hover{background:#007aff14;color:#007aff}.dropdown-item:hover i[data-v-940f4aa9]{color:#007aff}.dropdown-divider[data-v-940f4aa9]{height:1px;background:var(--gray-200, #E5E5EA);margin:6px 8px}.dropdown-logout[data-v-940f4aa9],.dropdown-logout i[data-v-940f4aa9]{color:#ff3b30}.dropdown-logout[data-v-940f4aa9]:hover{background:#ff3b3014;color:#ff3b30}.dropdown-points[data-v-940f4aa9]{padding:14px 16px;text-align:center}.dropdown-points-label[data-v-940f4aa9]{font-size:12px;font-weight:600;color:#8e8e93;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.dropdown-points-value[data-v-940f4aa9]{font-size:28px;font-weight:800;color:#007aff;line-height:1.1}.mobile-user-detail[data-v-940f4aa9]{display:flex;flex-direction:column;gap:2px}.mobile-user-points[data-v-940f4aa9]{font-size:14px;font-weight:600;color:#007aff;display:flex;align-items:center;gap:4px}.mobile-user-points i[data-v-940f4aa9]{font-size:12px}.dropdown-enter-active[data-v-940f4aa9]{animation:dropdownIn-940f4aa9 .25s cubic-bezier(.22,1,.36,1)}.dropdown-leave-active[data-v-940f4aa9]{animation:dropdownOut-940f4aa9 .15s ease-in}@keyframes dropdownIn-940f4aa9{0%{opacity:0;transform:translateY(-8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes dropdownOut-940f4aa9{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-6px) scale(.97)}}.nav-toggle[data-v-940f4aa9]{display:flex;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;margin-right:-8px}.nav-toggle span[data-v-940f4aa9]{display:block;width:22px;height:2px;background:var(--gray-900, #1C1C1E);border-radius:2px;transition:all .3s ease}.mobile-menu[data-v-940f4aa9]{position:fixed;top:68px;left:0;right:0;bottom:0;background:radial-gradient(ellipse at top,rgba(0,122,255,.05),transparent 50%),#fffffff7;backdrop-filter:saturate(180%) blur(28px);-webkit-backdrop-filter:saturate(180%) blur(28px);z-index:199;display:flex;flex-direction:column;padding:20px 24px;overflow-y:auto}.mobile-menu a[data-v-940f4aa9]{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,transform .2s;text-decoration:none}.mobile-menu a[data-v-940f4aa9]:hover{color:#007aff;transform:translate(4px)}.mobile-menu a:hover i[data-v-940f4aa9]{color:#007aff}.mobile-menu a i[data-v-940f4aa9]{width:24px;text-align:center;color:var(--gray-500, #8E8E93);font-size:16px}.mobile-cta[data-v-940f4aa9]{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-940f4aa9]:hover{color:#fff!important}.mobile-cta-camp[data-v-940f4aa9]{background:#ea580c!important;box-shadow:0 4px 20px #ea580c40!important;margin-top:10px!important}.mobile-cta-camp[data-v-940f4aa9]:hover{background:#c2410c!important;color:#fff!important}.mobile-auth-section[data-v-940f4aa9]{margin-top:24px;padding-top:24px;border-top:2px solid var(--gray-200, #E5E5EA)}.mobile-user-info[data-v-940f4aa9]{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:12px 0}.mobile-user-avatar[data-v-940f4aa9]{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-940f4aa9]{font-size:18px;font-weight:700;color:var(--gray-900, #1C1C1E)}.mobile-auth-link[data-v-940f4aa9]{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-940f4aa9]:hover{color:#007aff}.mobile-auth-link i[data-v-940f4aa9]{width:24px;text-align:center;color:var(--gray-500, #8E8E93);font-size:15px}.mobile-logout-btn[data-v-940f4aa9]{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-940f4aa9]:hover{background:#ff3b3014}.mobile-login-btn[data-v-940f4aa9]{margin-top:0!important}.mobile-register-link[data-v-940f4aa9]{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-940f4aa9]:hover{background:#007aff14;color:#007aff!important}.mobile-menu-enter-active[data-v-940f4aa9]{animation:mobileIn-940f4aa9 .35s cubic-bezier(.22,1,.36,1)}.mobile-menu-leave-active[data-v-940f4aa9]{animation:mobileOut-940f4aa9 .25s ease-in}@keyframes mobileIn-940f4aa9{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes mobileOut-940f4aa9{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}@media(min-width:768px){.nav-links[data-v-940f4aa9]{display:flex}.nav-toggle[data-v-940f4aa9]{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;--color-gold: #FFD60A;--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: #ffffff;--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);--gold: var(--color-gold);--font-family: "Inter", "Noto Sans TC", -apple-system, BlinkMacSystemFont, "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: 10px;--radius-md: 14px;--radius-lg: 18px;--radius-xl: 22px;--radius-2xl: 28px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 1px 0 rgba(255,255,255,.9) inset, 0 1px 3px rgba(20,30,80,.05), 0 4px 12px -4px rgba(20,30,80,.08);--shadow-md: 0 1px 0 rgba(255,255,255,.9) inset, 0 2px 6px rgba(0,0,0,.04), 0 8px 24px -8px rgba(20,30,80,.1);--shadow-lg: 0 1px 0 rgba(255,255,255,.9) inset, 0 4px 12px rgba(0,0,0,.05), 0 16px 40px -10px rgba(20,30,80,.16);--shadow-hover: 0 1px 0 rgba(255,255,255,.9) inset, 0 2px 6px rgba(0,0,0,.04), 0 18px 40px -12px rgba(20,30,80,.18);--shadow-sketch: 6px 7px 0 0 rgba(0,122,255,.12), 0 1px 0 rgba(255,255,255,.9) inset, 0 8px 24px -8px rgba(20,30,80,.08);--shadow-sketch-hover: 10px 12px 0 0 rgba(0,122,255,.2), 0 1px 0 rgba(255,255,255,.9) inset, 0 22px 44px -12px rgba(20,30,80,.18);--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(.36, 1.6, .4, 1);--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .35s;--duration-sheet: .5s;--bottom-nav-height: 64px;--navbar-height: 48px;--topnav-height: 68px}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;scroll-behavior:smooth}body{font-family:var(--font-family);font-size:var(--text-body);color:var(--text);background:radial-gradient(ellipse 80% 50% at 15% 0%,rgba(0,122,255,.05),transparent 60%),radial-gradient(ellipse 60% 40% at 85% 30%,rgba(175,82,222,.04),transparent 60%),radial-gradient(ellipse 70% 50% at 50% 100%,rgba(52,199,89,.04),transparent 60%),#fff;background-attachment:fixed;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)}@keyframes sparkleTwinkle{0%,to{opacity:.4;transform:scale(.8) rotate(0)}50%{opacity:1;transform:scale(1.1) rotate(180deg)}}@keyframes iconJiggle{0%,to{transform:rotate(0) scale(1)}20%{transform:rotate(-12deg) scale(1.08)}40%{transform:rotate(12deg) scale(1.08)}60%{transform:rotate(-8deg) scale(1.04)}80%{transform:rotate(8deg) scale(1.04)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes btnShine{0%{transform:translate(-100%)}to{transform:translate(200%)}}@keyframes navTumble{0%{transform:translateY(0) rotate(0)}30%{transform:translateY(-3px) rotate(-6deg)}60%{transform:translateY(-3px) rotate(6deg)}to{transform:translateY(0) rotate(0)}}.fade-up{animation:fadeUp .6s var(--ease-bounce) both}.fade-up.d1{animation-delay:.08s}.fade-up.d2{animation-delay:.16s}.fade-up.d3{animation-delay:.24s}.fade-up.d4{animation-delay:.32s}.fade-up.d5{animation-delay:.4s}.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}.loading-spinner{width:40px;height:40px;border:3px solid var(--gray-200);border-top-color:var(--color-primary);border-right-color:var(--color-primary-light);border-radius:50%;animation:spin .7s linear infinite;margin-bottom:var(--space-4);filter:drop-shadow(0 4px 12px rgba(0,122,255,.2))}.page{min-height:calc(100vh - var(--bottom-nav-height));max-width:1080px;margin:0 auto;padding:var(--space-4) 24px var(--space-6)}.section-label{display:inline-block;font-size:12px;font-weight:700;color:var(--color-primary);text-transform:uppercase;letter-spacing:.14em;margin-bottom:14px;padding:6px 14px;background:linear-gradient(135deg,#007aff1a,#5ac8fa0f);border:1px solid rgba(0,122,255,.15);border-radius:999px;box-shadow:0 1px #fff9 inset,0 2px 6px -2px #007aff26}.section-title,.page-title{position:relative;font-size:28px;font-weight:800;background:linear-gradient(180deg,#0a0a1a,#2a2a3e);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.025em;line-height:1.2;margin-bottom:8px}.page-sub,.section-sub{font-size:15px;color:var(--gray-500);margin-bottom:24px;line-height:1.7}.card{position:relative;background:linear-gradient(180deg,#fff,#fafbff);border-radius:22px 26px 22px 24px;padding:24px;margin-bottom:16px;border:2px solid var(--card-border, rgba(0,122,255,.15));box-shadow:4px 5px 0 0 var(--card-shadow-color, rgba(0,122,255,.1)),0 1px #ffffffe6 inset,0 8px 20px -8px #141e5014;transition:transform .35s var(--ease-bounce),box-shadow .3s var(--ease-out),border-color .25s ease}.card:hover{transform:translateY(-4px);border-color:var(--card-glow-color, var(--color-primary));box-shadow:7px 9px 0 0 var(--card-shadow-color, rgba(0,122,255,.18)),0 1px #ffffffe6 inset,0 18px 36px -10px #141e502e}.card.card-primary{--card-border: rgba(0,122,255,.22);--card-shadow-color: rgba(0,122,255,.15);--card-glow-color: #007AFF}.card.card-success{--card-border: rgba(52,199,89,.24);--card-shadow-color: rgba(52,199,89,.15);--card-glow-color: #34C759}.card.card-warning{--card-border: rgba(255,149,0,.26);--card-shadow-color: rgba(255,149,0,.18);--card-glow-color: #FF9500}.card.card-danger{--card-border: rgba(255,59,48,.24);--card-shadow-color: rgba(255,59,48,.15);--card-glow-color: #FF3B30}.card.card-purple{--card-border: rgba(175,82,222,.24);--card-shadow-color: rgba(175,82,222,.15);--card-glow-color: #AF52DE}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:0 24px;height:50px;border:none;border-radius:var(--radius-full);font-size:var(--text-headline);font-weight:700;font-family:var(--font-family);cursor:pointer;text-decoration:none;gap:10px;overflow:hidden;transition:transform .25s var(--ease-bounce),box-shadow .25s var(--ease-out),background .25s ease,color .25s ease}.btn:before{content:"";position:absolute;top:0;left:0;width:30%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);transform:translate(-100%);pointer-events:none}.btn:hover:before{animation:btnShine 1s ease}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg,var(--color-primary) 0%,#5AC8FA 100%);color:var(--white);box-shadow:0 1px #ffffff4d inset,0 4px 16px -2px #007aff66,0 10px 24px -8px #007aff4d}.btn-primary:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 1px #ffffff4d inset,0 8px 24px -2px #007aff8c,0 16px 32px -10px #007aff66}.btn-primary:hover i{animation:navTumble .6s ease}.btn-secondary,.btn-outline{background:#ffffff80;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--color-primary);border:2px solid var(--color-primary)}.btn-secondary:hover,.btn-outline:hover{background:linear-gradient(135deg,var(--color-primary),#5AC8FA);color:var(--white);border-color:transparent;transform:translateY(-2px) scale(1.02);box-shadow:0 8px 22px -2px #007aff73}.btn-danger{background:linear-gradient(135deg,var(--color-danger),#FF6B5E);color:var(--white);box-shadow:0 1px #ffffff4d inset,0 4px 16px -2px #ff3b3066}.btn-danger:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 1px #ffffff4d inset,0 8px 24px -2px #ff3b308c}.btn-success{background:linear-gradient(135deg,var(--color-accent),#5AD8A0);color:var(--white);box-shadow:0 1px #ffffff4d inset,0 4px 16px -2px #34c75966}.btn-success:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 1px #ffffff4d inset,0 8px 24px -2px #34c7598c}.btn-ghost{background:transparent;border:none;color:var(--color-primary);height:44px;box-shadow:none}.btn-ghost:before{display:none}.btn-ghost:hover{background:var(--color-primary-bg);transform:none;box-shadow:none}.btn-pill{border-radius:var(--radius-full);height:38px;padding:0 16px;font-size:var(--text-subhead)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn:disabled:before{display:none}.btn:disabled:hover{transform:none!important;box-shadow:none}.form-group{margin-bottom:var(--space-5)}.form-label{display:block;margin-bottom:10px;font-weight:700;font-size:14px;color:var(--gray-700);letter-spacing:-.005em}.form-control{width:100%;height:52px;padding:0 18px;border:1.5px solid var(--gray-200);border-radius:14px;background:#fafbffb3;font-size:15px;font-family:var(--font-family);color:var(--text);transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.form-control:hover{border-color:var(--gray-400);background:var(--white)}.form-control:focus{outline:none;border-color:var(--color-primary);background:var(--white);box-shadow:0 0 0 4px #007aff1f}.form-control::placeholder{color:var(--gray-400)}textarea.form-control{height:auto;min-height:120px;padding:14px 18px;resize:vertical}.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;gap:4px;padding:4px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:700;letter-spacing:.02em}.badge-confirmed,.badge-success{background:linear-gradient(135deg,#34c75929,#30d1581a);color:#34c759;border:1px solid rgba(52,199,89,.22)}.badge-waiting,.badge-warning{background:linear-gradient(135deg,#ff95002e,#ff9f0a1a);color:#ff9500;border:1px solid rgba(255,149,0,.22)}.badge-cancelled,.badge-danger{background:linear-gradient(135deg,#ff3b3029,#ff6b5e1a);color:#ff3b30;border:1px solid rgba(255,59,48,.22)}.badge-attended,.badge-primary{background:linear-gradient(135deg,#007aff24,#5ac8fa14);color:#007aff;border:1px solid rgba(0,122,255,.2)}.badge-no-show{background:linear-gradient(135deg,#8e8e9329,#8e8e9314);color:#8e8e93;border:1px solid rgba(142,142,147,.2)}.badge-pending,.badge-purple{background:linear-gradient(135deg,#af52de29,#bf5af21a);color:#af52de;border:1px solid rgba(175,82,222,.22)}.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)}.gradient-text{background:linear-gradient(135deg,var(--color-primary),#5AC8FA);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.page-hero-banner{position:relative;padding:36px 24px 28px;margin-bottom:8px;border-radius:0 0 28px 28px;background:radial-gradient(ellipse 60% 50% at 50% 0%,rgba(0,122,255,.1),transparent 70%),linear-gradient(180deg,#fafbff,#f4f6fb);overflow:hidden}.page-hero-banner:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle at 15% 80%,rgba(0,122,255,.12),transparent 35%),radial-gradient(circle at 85% 20%,rgba(175,82,222,.1),transparent 40%);pointer-events:none}.page-hero-banner>*{position:relative;z-index:1}.bg-dots{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'><circle cx='10' cy='15' r='2' fill='%23007AFF' opacity='.10'/><circle cx='55' cy='40' r='2.5' fill='%23AF52DE' opacity='.08'/><circle cx='30' cy='65' r='2' fill='%2334C759' opacity='.10'/><circle cx='70' cy='70' r='1.5' fill='%23FF9500' opacity='.10'/></svg>");background-size:80px 80px}@media(max-width:640px){.page{padding:var(--space-3) 16px var(--space-6)}.card{padding:20px;border-radius:18px 22px 18px 20px;box-shadow:3px 4px 0 0 var(--card-shadow-color, rgba(0,122,255,.1)),0 1px #ffffffe6 inset,0 6px 18px -6px #141e5014}.card:hover{transform:translateY(-3px);box-shadow:5px 6px 0 0 var(--card-shadow-color, rgba(0,122,255,.18)),0 1px #ffffffe6 inset,0 14px 28px -8px #141e502e}.section-title,.page-title{font-size:24px}.btn{height:48px;padding:0 22px;font-size:16px}.form-control{height:48px;padding:0 16px}.form-label{font-size:13px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.15s!important}}
