.tabbar[data-v-c9333994]{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:repeat(5,1fr);align-items:center;height:calc(var(--nav-h) + var(--safe-b));padding-bottom:var(--safe-b);background:#ffffffdb;backdrop-filter:blur(18px) saturate(1.4);border-top:1px solid var(--line);box-shadow:0 -8px 30px #c46c8c1f}.tabbar-glow[data-v-c9333994]{position:absolute;top:5px;width:34px;height:34px;border-radius:50%;background:radial-gradient(circle,#ff7ea857,#ff7ea800);filter:blur(4px);transition:left .42s var(--ease-spring);pointer-events:none}.tab[data-v-c9333994]{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 0 6px;color:var(--muted);transition:color var(--t-fast) linear,transform var(--t-fast) var(--ease-spring)}.tab[data-v-c9333994]:active{transform:scale(.92)}.tab.on[data-v-c9333994]{color:var(--pink-600)}.tab-ico[data-v-c9333994]{display:grid;place-items:center;width:34px;height:26px;transition:transform var(--t-mid) var(--ease-spring)}.tab.on .tab-ico[data-v-c9333994]{transform:translateY(-2px) scale(1.08)}.tab-label[data-v-c9333994]{font-size:10.5px;font-weight:700;letter-spacing:.2px}.tab.on[data-v-c9333994]:after{content:"";position:absolute;bottom:2px;width:16px;height:3px;border-radius:var(--r-pill);background:var(--grad-love)}@media(min-width:768px){.tabbar[data-v-c9333994]{left:50%;right:auto;transform:translate(-50%);bottom:16px;width:min(520px,calc(100% - 32px));border-radius:var(--r-pill);border:1px solid var(--line);height:var(--nav-h);padding-bottom:0;box-shadow:var(--sh-3)}}.toast-layer[data-v-5a69b45d]{position:fixed;left:50%;top:calc(16px + var(--safe-t));transform:translate(-50%);z-index:200;display:flex;flex-direction:column;align-items:center;gap:8px;width:min(420px,calc(100vw - 32px));pointer-events:none}.toast[data-v-5a69b45d]{pointer-events:auto;display:flex;align-items:center;gap:9px;padding:11px 16px;border-radius:var(--r-pill);font-size:13.5px;font-weight:650;background:#fffffff7;border:1px solid var(--line);box-shadow:var(--sh-3);backdrop-filter:blur(10px);max-width:100%}.t-success[data-v-5a69b45d]{color:#1e9c77;border-color:#2fc39657;background:linear-gradient(120deg,#f1fcf8,#fff)}.t-error[data-v-5a69b45d]{color:#c93a3f;border-color:#ff5a5f57;background:linear-gradient(120deg,#fff3f3,#fff)}.t-warn[data-v-5a69b45d]{color:#b5730d;border-color:#ff9f1c5c;background:linear-gradient(120deg,#fff8ec,#fff)}.t-info[data-v-5a69b45d]{color:#3e74c9;border-color:#5b9dff52;background:linear-gradient(120deg,#f3f7ff,#fff)}.msg[data-v-5a69b45d]{flex:1;min-width:0}.act[data-v-5a69b45d]{flex:none;padding:4px 12px;border-radius:var(--r-pill);font-size:12px;font-weight:800;color:#fff;background:var(--grad-love);box-shadow:0 4px 12px #ff7ea857;transition:transform var(--t-fast) var(--ease-spring)}.act[data-v-5a69b45d]:hover{transform:translateY(-1px) scale(1.04)}.act[data-v-5a69b45d]:active{transform:scale(.95)}.toast-enter-active[data-v-5a69b45d]{transition:all .32s var(--ease-spring)}.toast-leave-active[data-v-5a69b45d]{transition:all .22s var(--ease-out);position:absolute}.toast-enter-from[data-v-5a69b45d]{opacity:0;transform:translateY(-14px) scale(.94)}.toast-leave-to[data-v-5a69b45d]{opacity:0;transform:translateY(-10px) scale(.96)}.topbar[data-v-5091f17f]{position:fixed;top:0;left:0;right:0;z-index:70;display:flex;align-items:center;justify-content:space-between;gap:12px;height:calc(var(--top-h) + var(--safe-t));padding:var(--safe-t) 16px 0;background:#fffafac7;backdrop-filter:blur(16px) saturate(1.3);border-bottom:1px solid var(--line)}.brand[data-v-5091f17f]{display:flex;align-items:center;gap:9px;color:var(--ink)}.brand-mark[data-v-5091f17f]{display:grid;place-items:center;width:28px;height:28px;border-radius:10px;color:#fff;background:var(--grad-love);box-shadow:0 6px 14px #ff7ea85c;animation:beat-5091f17f 2.8s ease-in-out infinite}@keyframes beat-5091f17f{0%,to{transform:scale(1)}14%{transform:scale(1.13)}28%{transform:scale(1)}42%{transform:scale(1.08)}}.brand-text[data-v-5091f17f]{display:flex;flex-direction:column;line-height:1.12}.brand-text b[data-v-5091f17f]{font-size:14.5px;font-weight:800;letter-spacing:-.2px}.brand-text i[data-v-5091f17f]{font-size:9.5px;font-style:normal;letter-spacing:1.4px;color:var(--muted);text-transform:uppercase}.topbar-right[data-v-5091f17f]{display:flex;align-items:center;gap:10px}.live-dot[data-v-5091f17f]{width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 #2fc3968c;animation:pulse-5091f17f 2.6s infinite}@keyframes pulse-5091f17f{70%{box-shadow:0 0 0 8px #2fc39600}to{box-shadow:0 0 #2fc39600}}.me[data-v-5091f17f]{display:flex;align-items:center;gap:7px;padding:4px 12px 4px 4px;border-radius:var(--r-pill);background:#fffc;border:1px solid var(--line);color:var(--ink);font-size:12.5px;font-weight:700;transition:transform var(--t-fast) var(--ease-spring),box-shadow var(--t-fast) linear}.me[data-v-5091f17f]:hover{transform:translateY(-1px);box-shadow:var(--sh-1)}.me img[data-v-5091f17f]{width:24px;height:24px;border-radius:9px}.admin-chip[data-v-5091f17f]{color:var(--ink);gap:5px;padding:6px 12px;cursor:default}.admin-chip[data-v-5091f17f]:hover{transform:none;box-shadow:none}.super-tag[data-v-5091f17f]{font-style:normal;font-size:9.5px;font-weight:800;padding:1px 6px;border-radius:var(--r-pill);color:#fff;background:linear-gradient(120deg,#a98bff,#6fa8ff)}.logout-btn[data-v-5091f17f]{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;color:var(--muted);background:#fffc;border:1px solid var(--line);transition:all var(--t-fast) linear}.logout-btn[data-v-5091f17f]:hover{color:#c93a3f;background:var(--danger-soft)}main[data-v-5091f17f]{flex:1;display:flex;flex-direction:column}main.with-top[data-v-5091f17f]{padding-top:calc(var(--top-h) + var(--safe-t))}@media(min-width:768px){.topbar[data-v-5091f17f]{padding-left:28px;padding-right:28px}}:root{--pink-600: #F2568C;--pink-500: #FF7EA8;--pink-400: #FF9EC0;--pink-300: #FFC1D6;--pink-100: #FFE8F0;--pink-050: #FFF4F8;--blue-600: #4C86E8;--blue-500: #6FA8FF;--blue-300: #A9C9FF;--blue-100: #E2EDFF;--purple-500: #A98BFF;--purple-300: #D3C2FF;--purple-100: #EFE8FF;--gold-500: #FFB020;--gold-300: #FFD98A;--gold-100: #FFF1D6;--success: #2FC396;--success-soft: #DDF7EE;--warning: #FF9F1C;--warning-soft: #FFF0DA;--danger: #FF5A5F;--danger-soft: #FFE6E7;--info: #5B9DFF;--info-soft: #E4EEFF;--bg: #FFF6F3;--bg-deep: #FDEDEA;--surface: #FFFFFF;--surface-2: #FFFAFC;--surface-3: #FFF1F5;--overlay: rgba(58, 34, 48, .44);--scrim: rgba(38, 22, 32, .72);--ink: #33262F;--ink-soft: #6B5A66;--muted: #9C8B96;--line: rgba(255, 126, 168, .18);--line-strong: rgba(255, 126, 168, .34);--grad-main: linear-gradient(135deg, #FF9EC0 0%, #FFB6A8 42%, #A9C9FF 100%);--grad-love: linear-gradient(120deg, #FF7EA8 0%, #A98BFF 55%, #6FA8FF 100%);--grad-gold: linear-gradient(120deg, #FFB020 0%, #FF7EA8 100%);--grad-mint: linear-gradient(120deg, #3FD1A5 0%, #6FA8FF 100%);--grad-card: linear-gradient(160deg, rgba(255, 255, 255, .94) 0%, rgba(255, 244, 248, .86) 100%);--r-xs: 10px;--r-sm: 14px;--r-md: 20px;--r-lg: 28px;--r-xl: 36px;--r-pill: 999px;--sh-1: 0 2px 8px rgba(196, 108, 140, .08);--sh-2: 0 8px 24px rgba(196, 108, 140, .12);--sh-3: 0 18px 48px rgba(170, 90, 130, .18);--sh-glow: 0 0 0 4px rgba(255, 126, 168, .16);--nav-h: 64px;--top-h: 56px;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);--page-max: 1080px;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--t-fast: .16s;--t-mid: .28s;--t-slow: .52s;color-scheme:light}.tone-pink{--tone: var(--pink-500);--tone-soft: var(--pink-100)}.tone-blue{--tone: var(--blue-500);--tone-soft: var(--blue-100)}.tone-purple{--tone: var(--purple-500);--tone-soft: var(--purple-100)}.tone-gold{--tone: var(--gold-500);--tone-soft: var(--gold-100)}.tone-mint{--tone: var(--success);--tone-soft: var(--success-soft)}.tone-coral{--tone: var(--danger);--tone-soft: var(--danger-soft)}*,*:before,*:after{box-sizing:border-box}html,body,#app{height:100%}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans SC,system-ui,sans-serif;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}h1,h2,h3,h4,p,figure{margin:0}button{font:inherit;color:inherit;border:none;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}input,textarea,select{font:inherit;color:inherit}img{display:block;max-width:100%}a{color:var(--pink-600);text-decoration:none}[id]{scroll-margin-top:calc(var(--top-h) + var(--safe-t) + 14px)}*{scrollbar-width:thin;scrollbar-color:var(--pink-300) var(--pink-050)}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:var(--pink-050);border-radius:var(--r-pill)}*::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--pink-400),var(--purple-300));border-radius:var(--r-pill);border:2px solid var(--pink-050)}*::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--pink-600),var(--purple-500))}.app-bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;background:radial-gradient(1100px 620px at 8% -8%,#ffe1ec,#ffe1ec00 62%),radial-gradient(900px 560px at 102% 4%,#dde9ff,#dde9ff00 60%),radial-gradient(760px 620px at 46% 108%,#ffefd6,#ffefd600 62%),linear-gradient(178deg,#fff8f5,#fff3f7 46%,#f4f7ff)}.app-bg:after{content:"";position:absolute;inset:-50%;opacity:.4;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.42'/%3E%3C/svg%3E");mix-blend-mode:soft-light}.aurora{position:absolute;border-radius:50%;filter:blur(58px);opacity:.5;will-change:transform}.aurora.a1{width:46vmax;height:46vmax;left:-14vmax;top:-12vmax;background:radial-gradient(circle,#ff9ec0d9,#ff9ec000);animation:drift1 26s var(--ease-out) infinite alternate}.aurora.a2{width:40vmax;height:40vmax;right:-12vmax;top:18vmax;background:radial-gradient(circle,#a9c9ffcc,#a9c9ff00);animation:drift2 32s var(--ease-out) infinite alternate}.aurora.a3{width:34vmax;height:34vmax;left:24vmax;bottom:-14vmax;background:radial-gradient(circle,#ffd98ab3,#ffd98a00);animation:drift3 29s var(--ease-out) infinite alternate}@keyframes drift1{to{transform:translate3d(8vmax,6vmax,0) scale(1.12)}}@keyframes drift2{to{transform:translate3d(-7vmax,9vmax,0) scale(1.08)}}@keyframes drift3{to{transform:translate3d(6vmax,-8vmax,0) scale(1.15)}}.app-shell{position:relative;z-index:1;min-height:100%;display:flex;flex-direction:column}.page{width:100%;max-width:var(--page-max);margin:0 auto;padding:16px 16px calc(var(--nav-h) + var(--safe-b) + 28px);flex:1;animation:pageIn .42s var(--ease-out) both}@keyframes pageIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.page.no-nav{padding-bottom:calc(var(--safe-b) + 28px)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:6px 0 16px}.page-title{font-size:24px;font-weight:800;letter-spacing:-.4px;line-height:1.25}.page-sub{font-size:12.5px;color:var(--muted);margin-top:2px}.eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:var(--pink-600)}.card{position:relative;background:var(--grad-card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-2);padding:18px;backdrop-filter:blur(8px);transition:transform var(--t-mid) var(--ease-out),box-shadow var(--t-mid) var(--ease-out)}.card.tight{padding:14px}.card.hoverable:hover{transform:translateY(-3px);box-shadow:var(--sh-3)}.card-title{font-size:15px;font-weight:750;display:flex;align-items:center;gap:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;border-radius:var(--r-pill);font-size:14px;font-weight:700;background:var(--surface);border:1px solid var(--line-strong);color:var(--ink);box-shadow:var(--sh-1);transition:transform var(--t-fast) var(--ease-spring),box-shadow var(--t-fast) var(--ease-out),opacity var(--t-fast) linear,background var(--t-fast) linear;user-select:none}.btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--sh-2)}.btn:active:not(:disabled){transform:translateY(0) scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible{outline:none;box-shadow:var(--sh-glow),var(--sh-2)}.btn-primary{background:var(--grad-love);color:#fff;border-color:transparent;box-shadow:0 10px 24px #ff7ea857}.btn-primary:hover:not(:disabled){box-shadow:0 14px 32px #ff7ea86b}.btn-ghost{background:#ffffffb3}.btn-danger{background:var(--danger-soft);color:#c93a3f;border-color:#ff5a5f4d}.btn-block{width:100%}.btn-sm{padding:7px 13px;font-size:12.5px}.field{display:block;margin-bottom:14px}.field-label{display:block;font-size:12.5px;font-weight:700;color:var(--ink-soft);margin-bottom:6px}.input,.textarea{width:100%;padding:12px 14px;border-radius:var(--r-sm);border:1.5px solid var(--line);background:#ffffffeb;transition:border-color var(--t-fast) linear,box-shadow var(--t-fast) linear;outline:none}.input:focus,.textarea:focus{border-color:var(--pink-400);box-shadow:var(--sh-glow)}.textarea{resize:vertical;min-height:84px;line-height:1.55}.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:var(--r-pill);font-size:12px;font-weight:700;background:var(--tone-soft, var(--pink-100));color:var(--tone, var(--pink-600));border:1px solid color-mix(in srgb,var(--tone, var(--pink-500)) 24%,transparent);transition:transform var(--t-fast) var(--ease-spring),background var(--t-fast) linear}button.chip:hover{transform:translateY(-1px)}.chip.active{background:var(--tone, var(--pink-500));color:#fff;border-color:transparent;box-shadow:0 6px 16px color-mix(in srgb,var(--tone, var(--pink-500)) 34%,transparent)}.meter{position:relative;height:9px;border-radius:var(--r-pill);background:var(--surface-3);overflow:hidden}.meter-fill{position:absolute;inset:0 auto 0 0;border-radius:var(--r-pill);background:linear-gradient(90deg,var(--tone, var(--pink-500)),color-mix(in srgb,var(--tone, var(--pink-500)) 45%,#FFD98A));transition:width var(--t-slow) var(--ease-out)}.meter-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);transform:translate(-100%);animation:shimmer 2.6s linear infinite}@keyframes shimmer{to{transform:translate(100%)}}.stack{display:flex;flex-direction:column;gap:14px}.row{display:flex;align-items:center;gap:10px}.row.wrap{flex-wrap:wrap}.spacer{flex:1}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.reveal{opacity:0;transform:translateY(16px);animation:revealIn .62s var(--ease-out) forwards}@keyframes revealIn{to{opacity:1;transform:none}}.d1{animation-delay:60ms}.d2{animation-delay:.14s}.d3{animation-delay:.22s}.d4{animation-delay:.3s}.d5{animation-delay:.38s}.d6{animation-delay:.46s}.fade-enter-active,.fade-leave-active{transition:opacity var(--t-mid) var(--ease-out),transform var(--t-mid) var(--ease-out)}.fade-enter-from{opacity:0;transform:translateY(10px)}.fade-leave-to{opacity:0;transform:translateY(-6px)}.pop-enter-active{transition:all .26s var(--ease-spring)}.pop-leave-active{transition:all .18s var(--ease-out)}.pop-enter-from,.pop-leave-to{opacity:0;transform:scale(.94)}.muted{color:var(--muted)}.soft{color:var(--ink-soft)}.tiny{font-size:11.5px}.small{font-size:13px}.bold{font-weight:700}.center{text-align:center}.mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.gradient-text{background:var(--grad-love);-webkit-background-clip:text;background-clip:text;color:transparent}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(min-width:768px){body{font-size:15.5px}.page{padding:24px 24px calc(var(--nav-h) + var(--safe-b) + 36px)}.page-title{font-size:30px}.card{padding:22px;border-radius:var(--r-xl)}}@media(min-width:1024px){.page{padding:32px 32px calc(var(--nav-h) + var(--safe-b) + 48px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
