:root{--pink: #ff8fb1;--pink-deep: #ff6f91;--purple: #8b7cf6;--blue: #4aa8ff;--green: #4cd97b;--orange: #ffb347;--ink: #3b3355;--ink-soft: #7a7392;--card: #ffffff;--bg: #fff5fa;--line: #f1e6f0;--shadow: 0 8px 20px rgba(255, 143, 177, .18);--radius: 20px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#app{height:100%;margin:0}body{font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,system-ui,sans-serif;background:var(--bg);color:var(--ink);font-size:16px;line-height:1.5}#app{max-width:480px;margin:0 auto;min-height:100%;background:var(--bg);display:flex;flex-direction:column;position:relative}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}.page{flex:1;padding:16px 16px 88px;overflow-y:auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:0 20px;border-radius:999px;background:var(--pink);color:#fff;font-size:17px;font-weight:700;box-shadow:var(--shadow);transition:transform .12s ease,opacity .12s ease}.btn:active{transform:scale(.97)}.btn.block{width:100%}.btn.ghost{background:#fff;color:var(--pink-deep);border:2px solid var(--pink);box-shadow:none}.btn.purple{background:var(--purple)}.btn:disabled{opacity:.5}.card{background:var(--card);border-radius:var(--radius);padding:16px;box-shadow:0 6px 16px #8b7cf614}.title{font-size:22px;font-weight:800;margin:8px 0 4px}.subtitle{color:var(--ink-soft);font-size:13px}.row{display:flex;align-items:center;gap:10px}.between{display:flex;align-items:center;justify-content:space-between;gap:10px}.pill{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:999px;background:#fff;font-size:13px;font-weight:700;box-shadow:0 3px 10px #8b7cf61a}.tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;display:flex;background:#fffffff5;border-top:1px solid var(--line);padding:6px 0 calc(6px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:30}.tabbar a{flex:1;text-align:center;text-decoration:none;color:var(--ink-soft);font-size:11px;font-weight:700;padding:6px 0}.tabbar a .ico{display:block;font-size:22px;line-height:1.2}.tabbar a.active{color:var(--pink-deep)}.fade-enter-active,.fade-leave-active{transition:opacity .18s ease}.fade-enter-from,.fade-leave-to{opacity:0}
