.tabbar[data-v-31b0c0aa]{position:fixed;left:0;right:0;bottom:0;z-index:50;background:#fff;border-top:1px solid var(--rule);display:flex;padding:6px 8px calc(6px + var(--safe-bottom))}@media(min-width:768px){.tabbar[data-v-31b0c0aa]{display:none}}.tab-item[data-v-31b0c0aa]{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--ink-3);font-size:11px;font-weight:600;padding:6px 0}.tab-item.active[data-v-31b0c0aa]{color:var(--brand)}.tab-item .ico[data-v-31b0c0aa]{font-size:22px;line-height:1}.sidebar[data-v-17a8ddfc]{display:none}@media(min-width:768px){.sidebar[data-v-17a8ddfc]{display:flex;flex-direction:column;gap:6px;position:fixed;left:0;top:0;bottom:0;width:var(--nav-width);background:#fff;border-right:1px solid var(--rule);padding:calc(20px + var(--safe-top)) 16px calc(20px + var(--safe-bottom));z-index:40}}.brand[data-v-17a8ddfc]{display:flex;align-items:center;gap:10px;padding:4px 6px 18px}.brand .logo[data-v-17a8ddfc]{width:40px;height:40px;border-radius:12px;background:var(--brand-soft);display:inline-flex;align-items:center;justify-content:center;font-size:22px}.brand .name[data-v-17a8ddfc]{font-weight:800;font-size:17px}.item[data-v-17a8ddfc]{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:12px;color:var(--ink-2);font-weight:600;font-size:15px;cursor:pointer;-webkit-user-select:none;user-select:none}.item[data-v-17a8ddfc]:hover{background:#12a8930f}.item.active[data-v-17a8ddfc]{background:var(--brand-soft);color:var(--brand)}.item .ico[data-v-17a8ddfc]{font-size:20px}.foot[data-v-17a8ddfc]{margin-top:auto;display:flex;flex-direction:column;gap:8px;padding-top:12px}.theme[data-v-17a8ddfc]{font-size:12px;color:var(--ink-3);padding:0 6px}.out[data-v-17a8ddfc]{font-size:13px;color:var(--ink-2);text-align:left;padding:8px 12px;border-radius:10px}.out[data-v-17a8ddfc]:hover{background:#fdeeea;color:var(--danger)}:root{--brand: #12a893;--brand-deep: #0c8877;--brand-soft: #e4f7f2;--accent: #ffb04a;--danger: #f2645c;--bg: #f4f7f6;--card: #ffffff;--ink: #23312e;--ink-2: #7b8b87;--ink-3: #b3bfbb;--rule: #eef2f1;--radius: 18px;--radius-sm: 12px;--shadow: 0 8px 24px rgba(18, 168, 147, .12);--shadow-soft: 0 4px 12px rgba(18, 168, 147, .08);--grad-brand: linear-gradient(135deg, var(--brand), #33c9b2);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--content-max: 1200px;--content-short: 560px;--nav-width: 220px;--font: "PingFang SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif}body.theme-girl,body[data-theme=GIRL]{--brand: #f291b6;--brand-deep: #dd6f9b;--brand-soft: #fdeef4;--shadow: 0 8px 24px rgba(242,145,182,.16)}body.theme-boy,body[data-theme=BOY]{--brand: #4aa8e0;--brand-deep: #2f87c2;--brand-soft: #e9f4fc;--shadow: 0 8px 24px rgba(74,168,224,.16)}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body,#app{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none}input,textarea{font-family:inherit}.page{width:100%;max-width:var(--content-short);margin:0 auto;min-height:100vh;padding:calc(16px + var(--safe-top)) 16px calc(96px + var(--safe-bottom))}.page-title{font-size:24px;font-weight:800;margin:4px 0 14px;letter-spacing:.5px}.page-sub{color:var(--ink-2);font-size:14px;margin:-8px 0 16px}@media(min-width:768px){body{padding-left:var(--nav-width)}#app{max-width:calc(var(--content-max) + var(--nav-width));margin:0 auto}.page{max-width:100%;padding:calc(28px + var(--safe-top)) 28px calc(40px + var(--safe-bottom))}}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-soft);padding:16px;margin-bottom:12px}.card.clickable{cursor:pointer;transition:transform .12s,box-shadow .2s}.card.clickable:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:16px;font-weight:700;border-radius:999px;padding:12px 22px;color:#fff;background:var(--brand);transition:transform .08s,opacity .15s;white-space:nowrap}.btn:active{transform:scale(.97)}.btn.block{width:100%}.btn.ghost{background:transparent;color:var(--brand);box-shadow:inset 0 0 0 2px var(--brand)}.btn.danger{background:var(--danger)}.btn.sm{font-size:13px;padding:8px 14px}.btn[disabled]{opacity:.5;pointer-events:none}.row{display:flex;align-items:center;gap:12px;padding:12px 2px;border-bottom:1px solid var(--rule)}.row:last-child{border-bottom:none}.thumb{width:46px;height:46px;border-radius:14px;flex:none;display:flex;align-items:center;justify-content:center;font-size:22px;color:#fff;font-weight:800}.meta{flex:1;min-width:0}.meta .t{font-size:16px;font-weight:700}.meta .s{font-size:12px;color:var(--ink-2);margin-top:3px}.bar{height:10px;border-radius:999px;background:#eaf0ee;overflow:hidden}.bar i{display:block;height:100%;border-radius:999px;background:var(--grad-brand);transition:width .4s}.pill{display:inline-block;font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px}.pill.ok{color:var(--brand);background:var(--brand-soft)}.pill.x{color:var(--danger);background:#fdeeea}.muted{color:var(--ink-2);font-size:13px}.empty{text-align:center;color:var(--ink-3);padding:40px 0;font-size:14px}.field{width:100%;padding:14px 16px;border-radius:14px;border:1.5px solid #e3ebe9;font-size:16px;background:#fff;outline:none}.field:focus{border-color:var(--brand)}textarea.field{resize:none;min-height:110px}.msg-error{text-align:center;color:var(--danger);font-size:13px;min-height:18px;margin:6px 0}.topbar{display:flex;align-items:center;gap:10px;margin-bottom:6px}.topbar .back{font-size:20px;padding:4px 8px 4px 0;color:var(--ink);font-weight:700}.topbar .title{font-size:17px;font-weight:800}.grid{display:grid;gap:14px;grid-template-columns:1fr}@media(min-width:768px){.grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}.grid>.card{margin-bottom:0}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}@media(min-width:768px){.stats{grid-template-columns:repeat(4,1fr);gap:14px}}.stat{background:var(--card);border-radius:var(--radius-sm);box-shadow:var(--shadow-soft);padding:14px;text-align:center}.stat .b{display:block;font-size:24px;color:var(--brand);font-weight:800}.stat .s{font-size:12px;color:var(--ink-2)}@media(min-width:768px){.grid.cols-2{grid-template-columns:repeat(2,1fr)}}
