.logo[data-v-fd01af72]{width:34px;height:34px;border-radius:9px;flex-shrink:0;box-shadow:var(--shadow-sm)}.avatar[data-v-fd01af72]{font-size:18px}.nick[data-v-fd01af72]{max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.star[data-v-fd01af72]{background:#fff7dd}.toast[data-v-e2ad53a0]{position:fixed;left:50%;top:72px;transform:translate(-50%);background:#fff;color:var(--ink);font-weight:700;padding:10px 22px;border-radius:999px;box-shadow:var(--shadow);z-index:200;max-width:86vw;text-align:center}.toast.success[data-v-e2ad53a0]{background:#e3f8dc;color:#2f7d18}.toast.error[data-v-e2ad53a0]{background:#ffe3e3;color:#d03030}.toast-enter-active[data-v-e2ad53a0],.toast-leave-active[data-v-e2ad53a0]{transition:all .25s ease}.toast-enter-from[data-v-e2ad53a0],.toast-leave-to[data-v-e2ad53a0]{opacity:0;transform:translate(-50%,-12px)}.star-burst[data-v-a0583e20]{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:150;display:flex;flex-direction:column;align-items:center;justify-content:center}.burst-title[data-v-a0583e20]{font-size:34px;font-weight:900;color:#fff;text-shadow:0 3px 0 rgba(255,158,120,.9);animation:pop-in .4s ease both}.burst-stars[data-v-a0583e20]{margin-top:8px;display:flex;gap:6px;font-size:52px}.bs[data-v-a0583e20]{display:inline-block;animation:star-fly 1.5s ease forwards}.burst-plus[data-v-a0583e20]{margin-top:6px;font-size:24px;font-weight:900;color:var(--yellow);text-shadow:0 2px 0 rgba(160,110,0,.35);animation:pop-in .5s .2s ease both}.badge-icon[data-v-b75bb1e5]{font-size:54px}.badge-title[data-v-b75bb1e5]{font-size:24px;font-weight:900;margin:8px 0 14px}.badge-list[data-v-b75bb1e5]{list-style:none;margin-bottom:18px}.badge-item[data-v-b75bb1e5]{display:flex;align-items:center;gap:10px;background:#fff7dd;border-radius:14px;padding:10px 14px;font-weight:800;margin-bottom:8px}.bi[data-v-b75bb1e5]{font-size:26px}.moon[data-v-07888c0c]{font-size:64px;animation:float-y 2.4s ease-in-out infinite}.bt[data-v-07888c0c]{font-size:26px;font-weight:900;margin:10px 0}.bd[data-v-07888c0c]{color:var(--ink-light);line-height:1.8;margin-bottom:18px}.app-shell[data-v-123f0230]{display:flex;flex-direction:column;min-height:100vh}.fade-enter-active[data-v-123f0230],.fade-leave-active[data-v-123f0230]{transition:opacity .15s ease}.fade-enter-from[data-v-123f0230],.fade-leave-to[data-v-123f0230]{opacity:0}:root{--bg: #fff8e7;--bg2: #ffefd6;--card: #ffffff;--ink: #5b4636;--ink-light: #9c8468;--coral: #ff7e67;--coral-dark: #f05e46;--teal: #4ecdc4;--teal-dark: #38b2a9;--yellow: #ffd93d;--purple: #a78bfa;--pink: #ff9eb5;--green: #7ed957;--red: #ff6b6b;--blue: #6ec6ff;--shadow: 0 6px 0 rgba(91, 70, 54, .12), 0 10px 24px rgba(91, 70, 54, .1);--shadow-sm: 0 3px 0 rgba(91, 70, 54, .12);--radius: 22px}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%}body{font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,Segoe UI,Comic Sans MS,sans-serif;background:linear-gradient(160deg,var(--bg) 0%,var(--bg2) 60%,#ffe3f0 100%);color:var(--ink);font-size:17px;-webkit-font-smoothing:antialiased;overscroll-behavior:none}#app{max-width:560px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}.page{flex:1;padding:16px 16px 32px}.page-title{font-size:24px;font-weight:800;text-align:center;margin:8px 0 16px;letter-spacing:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;cursor:pointer;border-radius:999px;font-family:inherit;font-weight:800;font-size:18px;padding:14px 28px;color:#fff;background:var(--coral);box-shadow:var(--shadow-sm);transition:transform .08s ease,box-shadow .08s ease,filter .15s;-webkit-user-select:none;user-select:none}.btn:active{transform:translateY(3px) scale(.98);box-shadow:none}.btn:disabled{filter:grayscale(.6);opacity:.6;cursor:not-allowed}.btn.teal{background:var(--teal)}.btn.purple{background:var(--purple)}.btn.green{background:var(--green);color:#3c6b1f}.btn.yellow{background:var(--yellow);color:#7a5c00}.btn.ghost{background:#fff;color:var(--ink);box-shadow:var(--shadow-sm);border:2px solid #f0e2cc}.btn.big{font-size:22px;padding:18px 40px}.btn.small{font-size:14px;padding:8px 16px}.btn.block{width:100%}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.card+.card{margin-top:14px}.card-title{font-size:18px;font-weight:800;margin-bottom:10px;display:flex;align-items:center;gap:8px}.bar{height:14px;border-radius:999px;background:#f3e8d5;overflow:hidden}.bar>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--yellow),var(--coral));transition:width .4s ease}.bar.thin{height:8px}.tag{display:inline-block;padding:3px 12px;border-radius:999px;font-size:13px;font-weight:700;background:#fff3d6;color:#a5761b}.opts{display:grid;grid-template-columns:1fr 1fr;gap:14px}.opt{border:3px solid #ecdcc2;cursor:pointer;font-family:inherit;background:#fff;border-radius:20px;box-shadow:0 4px #efe3cd,var(--shadow-sm);padding:22px 10px;font-size:36px;font-weight:800;color:var(--ink);transition:transform .1s,background .15s,border-color .15s,color .15s;-webkit-user-select:none;user-select:none}.opt small{display:block;font-size:15px;font-weight:600;color:var(--ink-light);margin-top:6px}.opt:active{transform:scale(.96)}.opt.right{background:#c9f2ae;border-color:#5cb838;color:#1c5c08;box-shadow:0 5px #5cb838;animation:opt-pop .4s ease}.opt.wrong{background:#ffd0d0;border-color:#e24c4c;color:#9c0f0f;box-shadow:0 5px #e24c4c;animation:shake .45s ease}.opt.dim{opacity:.35}.opt.tall{padding:26px 10px}.big-letter{font-size:96px;font-weight:800;line-height:1.1;color:var(--coral);font-family:Times New Roman,SimSun,serif;letter-spacing:2px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.row{display:flex;align-items:center;gap:10px}.spread{display:flex;align-items:center;justify-content:space-between;gap:10px}.muted{color:var(--ink-light);font-size:14px}.center{text-align:center}.mt{margin-top:14px}.grow{flex:1}.big{font-size:20px;font-weight:900;color:var(--ink)}.tag.red{background:#ffe3e3;color:var(--red)}.empty{text-align:center;padding:48px 16px;color:var(--ink-light)}.empty .icon{font-size:56px;margin-bottom:12px}@keyframes pop-in{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}@keyframes opt-pop{0%{transform:scale(1)}45%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-6px)}80%{transform:translate(6px)}}@keyframes float-y{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes bounce-slow{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-6px) scale(1.03)}}@keyframes star-fly{0%{transform:translateY(0) scale(.6);opacity:0}30%{opacity:1;transform:translateY(-20px) scale(1.15)}to{transform:translateY(-90px) scale(1.4);opacity:0}}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-ring{0%{box-shadow:0 0 #ff7e6780}to{box-shadow:0 0 0 18px #ff7e6700}}.anim-pop{animation:pop-in .35s ease both}.anim-shake{animation:shake .4s ease}.anim-float{animation:float-y 2.4s ease-in-out infinite}.anim-bounce{animation:bounce-slow 1.8s ease-in-out infinite}.anim-pulse{animation:pulse-ring 1.2s ease-out infinite}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#5b463673;display:flex;align-items:center;justify-content:center;z-index:100;padding:24px}.overlay .box{background:#fff;border-radius:28px;box-shadow:var(--shadow);padding:28px 24px;width:100%;max-width:380px;text-align:center}.topbar{display:flex;align-items:center;gap:10px;padding:12px 16px;position:sticky;top:0;z-index:50;background:#fff8e7eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.chip{display:inline-flex;align-items:center;gap:4px;background:#fff;border-radius:999px;padding:6px 12px;font-weight:800;font-size:15px;box-shadow:var(--shadow-sm);white-space:nowrap;border:none;font-family:inherit;color:var(--ink);cursor:default}button.chip{cursor:pointer}.topbar .timebar{flex:1;min-width:60px}input[type=text],input[type=number]{font-family:inherit;font-size:17px;border:2px solid #f0e2cc;border-radius:14px;padding:12px 14px;background:#fffdf8;color:var(--ink);outline:none;width:100%}input[type=text]:focus,input[type=number]:focus{border-color:var(--coral)}input[type=range]{width:100%;accent-color:var(--coral)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-thumb{background:#e8d9bf;border-radius:3px}
