.toast-wrap[data-v-15cd011d]{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:999;display:flex;flex-direction:column;align-items:center;gap:10px;width:calc(100% - 40px);max-width:400px;pointer-events:none}.toast[data-v-15cd011d]{display:flex;align-items:center;gap:10px;background:var(--surface);color:var(--text-1);padding:11px 18px;border-radius:var(--r-pill);font-size:14px;box-shadow:var(--shadow-lg);cursor:pointer;pointer-events:auto;max-width:100%}.toast[data-v-15cd011d]:active{transform:scale(.97)}.toast-icon[data-v-15cd011d]{font-size:17px;line-height:1}.toast-msg[data-v-15cd011d]{line-height:1.35}.toast-success[data-v-15cd011d]{background:var(--success-bg);color:var(--success-ink)}.toast-error[data-v-15cd011d]{background:var(--danger-bg);color:var(--danger-ink)}.toast-warn[data-v-15cd011d]{background:var(--warning-bg);color:var(--warning-ink)}.toast-info[data-v-15cd011d]{background:var(--info-bg);color:var(--info-ink)}.toast-enter-active[data-v-15cd011d],.toast-leave-active[data-v-15cd011d]{transition:all .28s ease}.toast-enter-from[data-v-15cd011d]{opacity:0;transform:translateY(-14px) scale(.92)}.toast-leave-to[data-v-15cd011d]{opacity:0;transform:translateY(-8px) scale(.94)}.auth-mask[data-v-88a08913]{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(74,63,59,.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px}.auth-modal[data-v-88a08913]{position:relative;width:100%;max-width:400px;background:var(--surface);border-radius:var(--r-lg);padding:32px 28px;box-shadow:var(--shadow-lg);animation:pop-88a08913 .25s ease}@keyframes pop-88a08913{0%{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}.close[data-v-88a08913]{position:absolute;top:14px;right:16px;width:32px;height:32px;border:none;border-radius:var(--r-pill);background:var(--fill);color:var(--muted);font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.close[data-v-88a08913]:active{transform:scale(.92)}@media (hover: hover){.close[data-v-88a08913]:hover{background:var(--line);color:var(--text-2)}}.logo[data-v-88a08913]{text-align:center;font-size:42px}.title[data-v-88a08913]{text-align:center;font-size:22px;margin:8px 0 4px;color:var(--text)}.subtitle[data-v-88a08913]{text-align:center;font-size:13px;color:var(--muted);margin-bottom:20px}.field[data-v-88a08913]{display:flex;align-items:center;gap:10px;background:var(--fill);border-radius:var(--r-md);padding:12px 16px;margin-bottom:12px}.field-icon[data-v-88a08913]{font-size:16px}.field input[data-v-88a08913]{flex:1;border:none;outline:none;background:transparent;font-size:var(--fs-input);color:var(--text);min-width:0}.code-btn[data-v-88a08913]{flex:none;border:none;background:var(--primary-soft);color:var(--primary-deep);font-size:12px;font-weight:600;padding:6px 12px;border-radius:var(--r-pill);cursor:pointer;white-space:nowrap;transition:transform .12s ease}.code-btn[data-v-88a08913]:active:not(:disabled){transform:scale(.96)}.code-btn[data-v-88a08913]:disabled{opacity:.6;cursor:not-allowed}.error[data-v-88a08913]{color:var(--danger);font-size:13px;text-align:center;margin:4px 0 12px}.info[data-v-88a08913]{color:var(--success);font-size:13px;text-align:center;margin:4px 0 12px}.btn-primary[data-v-88a08913]{width:100%;padding:13px;border:none;border-radius:var(--r-md);background:var(--grad-primary);color:#fff;font-size:15px;font-weight:700;cursor:pointer;transition:transform .12s ease}.btn-primary[data-v-88a08913]:active{transform:scale(.97)}.btn-primary[data-v-88a08913]:disabled{opacity:.6;cursor:not-allowed}.switch[data-v-88a08913]{text-align:center;font-size:13px;color:var(--muted);margin-top:14px}.switch a[data-v-88a08913]{color:var(--primary-deep);font-weight:600;text-decoration:none}.switch a[data-v-88a08913]:active{opacity:.7}@media (hover: hover){.switch a[data-v-88a08913]:hover{color:var(--brand)}}.switch .dot[data-v-88a08913]{margin:0 6px}.line-icon[data-v-832abfb9]{flex:none;display:inline-block;vertical-align:middle;overflow:visible}.page-enter-active[data-v-bbe37906],.page-leave-active[data-v-bbe37906]{transition:opacity .22s ease,transform .22s ease}.page-enter-from[data-v-bbe37906]{opacity:0;transform:translateY(10px)}.page-leave-to[data-v-bbe37906]{opacity:0;transform:translateY(-6px)}.header-actions[data-v-bbe37906]{display:flex;align-items:center;gap:8px}.brand[data-v-bbe37906]{display:none;cursor:pointer;flex:none}.header-nav[data-v-bbe37906]{display:flex;align-items:center;gap:4px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:1;min-width:0;justify-content:flex-start}.header-nav[data-v-bbe37906]::-webkit-scrollbar{display:none}.header-nav-item[data-v-bbe37906]{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--r-pill);color:var(--muted);font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap;transition:background .15s ease,color .15s ease,transform .15s ease}@media (hover: hover){.header-nav-item[data-v-bbe37906]:hover{background:var(--line);color:var(--text)}}.header-nav-item[data-v-bbe37906]:active{transform:scale(.97)}.header-nav-item.active[data-v-bbe37906]{background:var(--grad-primary);color:#fff;box-shadow:var(--shadow-btn)}.nav-icon[data-v-bbe37906]{display:flex;align-items:center;justify-content:center;line-height:1}.user-chip[data-v-bbe37906]{display:none;align-items:center;gap:8px;padding:4px 12px 4px 4px;border-radius:var(--r-pill);background:var(--fill)}.user-avatar[data-v-bbe37906]{font-size:18px;width:30px;height:30px;border-radius:50%;background:var(--primary-soft);display:flex;align-items:center;justify-content:center}.user-avatar-img[data-v-bbe37906]{object-fit:cover;flex:none}.user-name[data-v-bbe37906]{font-size:13px;font-weight:600;color:var(--text);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 960px){.header-nav[data-v-bbe37906]{justify-content:center}.user-chip[data-v-bbe37906]{display:flex}}.bell-btn[data-v-bbe37906]{position:relative;width:36px;height:36px;border:none;border-radius:50%;background:var(--fill);color:var(--muted);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .12s ease,background .15s ease,color .15s ease}.bell-btn[data-v-bbe37906]:active{transform:scale(.9)}@media (hover: hover){.bell-btn[data-v-bbe37906]:hover{background:var(--line);color:var(--text-2)}}.bell-dot[data-v-bbe37906]{position:absolute;top:-3px;right:-3px;min-width:17px;height:17px;padding:0 4px;border-radius:var(--r-pill);background:var(--danger);color:#fff;font-size:10px;font-weight:700;line-height:17px;text-align:center;box-shadow:0 0 0 2px #fff}.site-footer[data-v-bbe37906]{padding:14px 16px 20px;text-align:center}.icp-link[data-v-bbe37906]{color:var(--muted);font-size:12px;text-decoration:none;transition:color .15s ease}.icp-link[data-v-bbe37906]:active{opacity:.7}@media (hover: hover){.icp-link[data-v-bbe37906]:hover{color:var(--primary);text-decoration:underline}}:root{--brand: #B5825C;--brand-deep: #8A5A32;--brand-soft: #FAEFE2;--brand-grad: linear-gradient(135deg, #C89A6E 0%, #B5825C 55%, #8A5A32 100%);--accent: #D9A85C;--bg: #FBF7F2;--surface: #FFFFFF;--fill: #FAF6F1;--line: #F0E8E2;--text-1: #3B2F2A;--text-2: #6B5B4E;--text-3: #9C8B7A;--success: #3F9C6D;--success-bg: #E6F3EC;--warning: #D9A85C;--warning-bg: #FFF3DD;--danger: #D97070;--danger-bg: #FBECEC;--info: #7E94AF;--info-bg: #E9EEF6;--success-ink: #317A56;--warning-ink: #8A6B3A;--danger-ink: #A55555;--info-ink: #5D6D81;--shadow-sm: 0 1px 3px rgba(59, 47, 42, .05);--shadow-md: 0 4px 16px rgba(181, 130, 92, .1);--shadow-lg: 0 12px 32px rgba(138, 90, 50, .14);--shadow-btn: 0 6px 18px rgba(181, 130, 92, .28), inset 0 1px 0 rgba(255, 255, 255, .28);--r-xs: 8px;--r-sm: 12px;--r-md: 16px;--r-lg: 20px;--r-pill: 999px;--ease: cubic-bezier(.2, .8, .2, 1);--t-fast: .15s;--t: .2s;--t-slow: .25s;--fs-input: 16px}@media (prefers-reduced-motion: reduce){:root{--t-fast: 0ms;--t: 0ms;--t-slow: 0ms}}:root{--card: var(--surface);--primary: var(--brand);--primary-deep: var(--brand-deep);--primary-soft: var(--brand-soft);--grad-primary: var(--brand-grad);--gold: var(--warning);--green: var(--success);--mint: var(--success);--sky: var(--info);--pink: var(--danger);--text: var(--text-1);--muted: var(--text-3);--shadow: var(--shadow-md);--radius: var(--r-lg);--grad-mint: linear-gradient(135deg, #A8D8BE 0%, #7FBF9B 100%)}*{box-sizing:border-box;margin:0;padding:0}html,body{background:radial-gradient(1200px 500px at 12% -8%,rgba(231,203,164,.2),transparent 60%),radial-gradient(1000px 480px at 100% 4%,rgba(240,217,168,.18),transparent 55%),var(--bg);background-attachment:fixed;color:var(--text);font-family:PingFang SC,Microsoft YaHei,Hiragino Sans GB,-apple-system,Segoe UI,Roboto,sans-serif;min-height:100vh;-webkit-font-smoothing:antialiased}a{color:var(--primary-deep);text-decoration:none}button{font-family:inherit}select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-color:var(--fill);border:1.5px solid var(--line);border-radius:var(--r-sm);padding:9px 38px 9px 14px;font-size:14px;font-weight:500;color:var(--text);font-family:inherit;cursor:pointer;box-shadow:var(--shadow-sm);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%238A5A32' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:12px;transition:border-color .22s ease,box-shadow .22s ease,background-color .22s ease,transform .22s ease}select:hover{border-color:var(--accent);box-shadow:var(--shadow-md);transform:translateY(-1px)}select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px #b5825c1a,var(--shadow-md);background-color:var(--surface)}.btn-primary{background:var(--grad-primary);color:#fff;border:none;padding:13px 0;border-radius:999px;font-size:16px;font-weight:700;cursor:pointer;width:100%;box-shadow:var(--shadow-btn);transition:transform .15s ease,box-shadow .15s ease}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 26px #b5825c57,inset 0 1px #ffffff47}.btn-primary:active:not(:disabled){transform:translateY(0) scale(.97);box-shadow:var(--shadow-md)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-sm{padding:7px 14px;border-radius:999px;font-size:13px;border:none;cursor:pointer;font-weight:600;background:var(--primary-soft);color:var(--primary-deep);width:auto;transition:transform .12s ease,opacity .12s ease,box-shadow .12s ease}.btn-sm:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-sm:active{transform:scale(.94)}.btn-danger{background:var(--danger-bg);color:var(--danger-ink);border-radius:999px}.btn-cancel{background:var(--fill);color:var(--text-3)}.btn-reschedule{background:var(--brand-soft);color:var(--brand)}.btn-ghost{background:var(--fill);color:var(--text-1)}.btn-login{background:var(--grad-primary);color:#fff;box-shadow:var(--shadow-btn)}.btn-login:hover{transform:translateY(-1px)}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-md);border:1px solid var(--line)}.field{display:flex;align-items:center;gap:10px;background:var(--fill);border:1.5px solid transparent;border-radius:var(--r-md);padding:0 15px;min-height:50px;transition:border-color .2s,box-shadow .2s,background .2s}.field:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px #b5825c1f;background:var(--surface)}.field-icon{font-size:19px;line-height:1}.field input,.field select,.field textarea{flex:1;border:none;outline:none;background:transparent;font-size:15px;color:var(--text);font-family:inherit}.field select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:26px;background-color:transparent;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%238A5A32' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 2px center;background-size:12px;cursor:pointer;transition:background-position .2s ease}.field select:hover{background-position:right 0 center}.field select:focus{box-shadow:none;background-color:transparent;border:none}.field input::placeholder,.field textarea::placeholder{color:var(--text-3)}.field textarea{padding:14px 0;resize:none;height:auto;min-height:88px;line-height:1.6}.badge{display:inline-block;padding:3px 11px;border-radius:999px;font-size:12px;font-weight:600}.badge-admin{background:var(--brand-soft);color:var(--brand-deep)}.badge-user,.badge-on{background:var(--success-bg);color:var(--success-ink)}.badge-off{background:var(--fill);color:var(--text-3)}.badge-pending{background:var(--warning-bg);color:var(--warning-ink)}.badge-confirmed{background:var(--success-bg);color:var(--success-ink)}.badge-completed{background:var(--info-bg);color:var(--info-ink)}.badge-cancelled{background:var(--fill);color:var(--text-3)}.status{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px}.app-shell{max-width:1200px;margin:0 auto;min-height:100vh;position:relative}.app-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:rgba(251,247,242,.88);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.app-header .brand{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:700}.app-header .brand-logo{height:30px;width:auto;object-fit:contain;display:block;flex-shrink:0}.app-content{padding:16px 18px 28px}@media (min-width: 960px){.app-header{padding:16px 32px}.app-content{max-width:1080px;margin:0 auto;padding:28px 32px 56px}}.section-title{display:flex;align-items:center;gap:9px;font-size:17px;font-weight:700;margin:24px 2px 15px}.section-title:before{content:"";width:5px;height:19px;border-radius:999px;background:var(--grad-primary);flex:none;box-shadow:0 0 0 4px #b5825c1a}.icon-orb{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;flex:none;transition:transform .2s ease}.icon-orb.orange{background:var(--brand-soft);color:var(--brand)}.icon-orb.green{background:var(--success-bg);color:var(--success)}.icon-orb.blue{background:var(--info-bg);color:var(--info)}.icon-orb.pink{background:var(--danger-bg);color:var(--danger)}.icon-orb.gold{background:var(--warning-bg);color:var(--accent)}.chips{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}.chip{flex:none;padding:7px 16px;border-radius:999px;font-size:13px;cursor:pointer;background:#fff;color:var(--muted);border:1px solid var(--line);white-space:nowrap;transition:all .15s ease}.chip:hover{border-color:var(--accent);color:var(--primary-deep)}.chip:active{transform:scale(.94)}.chip.active{background:var(--primary-deep);color:#fff;border-color:var(--primary-deep);box-shadow:0 6px 16px #8a5a3247}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(59,47,42,.42);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:100;padding:24px}.modal{background:#fff;border-radius:26px;width:100%;max-width:420px;padding:26px 24px;max-height:86vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:pop .25s ease}.modal-title{font-size:19px;font-weight:700;margin-bottom:18px;text-align:center}@keyframes pop{0%{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}.empty{text-align:center;color:var(--muted);padding:48px 0;font-size:14px}.empty .empty-icon{width:96px;height:96px;margin:0 auto 16px;border-radius:50%;background:radial-gradient(circle at 50% 35%,var(--surface) 0%,var(--brand-soft) 70%,var(--line) 100%);box-shadow:var(--shadow-md),inset 0 2px 6px #ffffffb3;display:flex;align-items:center;justify-content:center;font-size:42px}.empty .empty-title{font-size:16px;font-weight:700;color:var(--text);margin-bottom:6px}.empty .empty-sub{font-size:13px;color:var(--muted);margin-bottom:18px}.empty .empty-btn{display:inline-block;width:auto;padding:10px 28px;font-size:14px;font-weight:700;border-radius:999px;border:none;cursor:pointer;background:var(--grad-primary);color:#fff;box-shadow:0 6px 18px #b5825c59,inset 0 1px #ffffff40;transition:transform .15s ease,box-shadow .15s ease}.empty .empty-btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px #b5825c73}.tip{text-align:center;color:var(--muted);padding:40px 0;font-size:14px}.tip.error{color:var(--danger)}.tip-loading{text-align:center;color:var(--muted);padding:40px 0;font-size:14px}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:24px;background:radial-gradient(900px 420px at 20% 0%,rgba(250,239,226,.55),transparent 60%),radial-gradient(800px 400px at 100% 100%,rgba(240,217,168,.34),transparent 55%),linear-gradient(160deg,var(--brand-soft) 0%,var(--bg) 100%)}.auth-card{background:#fff;border-radius:var(--r-lg);padding:42px 34px 36px;width:100%;max-width:410px;box-shadow:var(--shadow-lg);border:1px solid var(--line);position:relative;z-index:2;text-align:center}.auth-card .logo{width:112px;height:auto;margin:0 auto 14px;object-fit:contain;display:block}.auth-card .logo-full{width:210px;height:auto;margin:0 auto 10px;object-fit:contain;display:block}.auth-card .title{font-size:26px;font-weight:700;letter-spacing:1px}.auth-card .admin-login-title{text-align:center;font-size:20px;font-weight:700;color:var(--primary-deep);margin:0 0 6px}.auth-card .subtitle{color:var(--muted);font-size:14px;margin:8px 0 28px}.auth-card .field{margin-bottom:14px}.auth-card .error{color:var(--danger);font-size:13px;margin:4px 0 12px}.auth-card .switch{margin-top:20px;font-size:14px;color:var(--muted)}.auth-card .forgot-link{margin-top:12px;font-size:14px;color:var(--muted);cursor:pointer;text-align:center}.auth-card .forgot-link:hover{color:var(--primary-deep)}.auth-card .info{color:var(--green);font-size:13px;margin:4px 0 12px}.auth-card .code-btn{flex:none;border:none;background:var(--primary-soft);color:var(--primary-deep);font-size:13px;font-weight:600;padding:7px 12px;border-radius:999px;cursor:pointer;white-space:nowrap}.auth-card .code-btn:disabled{opacity:.55;cursor:not-allowed}.auth-card .captcha-field{gap:8px}.auth-card .captcha-field input{min-width:0}.auth-card .captcha-img{flex:none;height:40px;width:104px;border-radius:var(--r-xs);cursor:pointer;object-fit:cover;border:1px solid var(--line)}.paw{position:absolute;font-size:54px;opacity:.14;z-index:1;-webkit-user-select:none;user-select:none;pointer-events:none}.card-hover{transition:transform .2s ease,box-shadow .2s ease}.card-hover:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.card-hover:active{transform:translateY(-1px) scale(.99)}.skeleton{position:relative;overflow:hidden;background:var(--line);border-radius:var(--r-xs)}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);animation:skeleton-shimmer 1.4s infinite}@keyframes skeleton-shimmer{to{transform:translate(100%)}}@keyframes fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:fade-up .5s ease both}.fade-up-1{animation-delay:.05s}.fade-up-2{animation-delay:.1s}.fade-up-3{animation-delay:.15s}.fade-up-4{animation-delay:.2s}.fade-up-5{animation-delay:.25s}.fade-up-6{animation-delay:.3s}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.grad-text{background:var(--grad-primary);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.store-marker-pin{width:30px;height:30px;border-radius:50%;background:var(--surface);border:2px solid var(--brand);font-size:15px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);box-sizing:border-box}.store-marker-pin.active{width:42px;height:42px;font-size:21px;border-width:3px;border-color:var(--brand-deep);background:var(--brand-soft)}.user-loc-pin{width:20px;height:20px;border-radius:50%;background:var(--info);border:3px solid var(--surface);box-shadow:0 0 0 2px #7e94af59;box-sizing:border-box}
