.app-root[data-v-41271f8c]{min-height:100dvh}:root{--bg: #f4f5f7;--card: #ffffff;--card-border: rgba(23, 25, 35, .07);--text: #171923;--text-2: #5b6170;--text-3: #9aa1af;--primary: #3b6ef6;--primary-weak: #e9effe;--green: #189a54;--green-weak: #e4f5ec;--red: #d8433f;--red-weak: #fdecec;--amber: #c07f1f;--amber-weak: #faf0dd;--purple: #7a5af8;--purple-weak: #efeafe;--shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 4px 16px rgba(16, 24, 40, .05);--radius: 18px;--radius-sm: 12px;--tabbar-h: 58px;--safe-bottom: env(safe-area-inset-bottom, 0px)}@media(prefers-color-scheme:dark){:root{--bg: #0f1115;--card: #1a1d24;--card-border: rgba(255, 255, 255, .07);--text: #eef0f4;--text-2: #a6acba;--text-3: #6b7280;--primary: #6a90ff;--primary-weak: rgba(106, 144, 255, .15);--green: #34c47c;--green-weak: rgba(52, 196, 124, .14);--red: #f07672;--red-weak: rgba(248, 113, 113, .13);--amber: #e5a645;--amber-weak: rgba(229, 166, 69, .14);--purple: #a68dff;--purple-weak: rgba(166, 141, 255, .14);--shadow: none}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{background:var(--bg)}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,Helvetica Neue,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.55;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}#app{max-width:640px;margin:0 auto;min-height:100dvh}.page{padding:18px 16px calc(var(--tabbar-h) + var(--safe-bottom) + 28px);animation:page-in .22s ease}.page-title{font-size:28px;font-weight:800;letter-spacing:-.5px;margin:0}.page-sub{color:var(--text-3);font-size:13px;margin-top:4px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card+.card,.card-gap{margin-top:12px}.section-title{font-size:13px;font-weight:600;color:var(--text-3);letter-spacing:.3px;margin:20px 4px 10px;text-transform:uppercase}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:var(--radius-sm);padding:10px 18px;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;transition:opacity .15s,transform .1s;background:var(--primary);color:#fff}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:default}.btn-lg{padding:14px 24px;font-size:16px;border-radius:14px}.btn-block{display:flex;width:100%}.btn-ghost{background:transparent;color:var(--primary);border:1.5px solid var(--primary)}.btn-soft{background:var(--primary-weak);color:var(--primary)}.btn-danger{background:var(--red);color:#fff}.btn-danger-soft{background:var(--red-weak);color:var(--red)}.btn-sm{padding:6px 12px;font-size:13px;border-radius:10px}.icon-btn{width:38px;height:38px;border-radius:12px;border:none;background:var(--primary-weak);color:var(--primary);font-size:18px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.field{margin-bottom:14px}.field-label{display:block;font-size:13px;font-weight:600;color:var(--text-2);margin-bottom:6px}.input,.select{width:100%;padding:11px 14px;border-radius:var(--radius-sm);border:1.5px solid var(--card-border);background:var(--bg);color:var(--text);font-size:15px;font-family:inherit;outline:none;transition:border-color .15s}.input:focus,.select:focus{border-color:var(--primary)}.input::placeholder{color:var(--text-3)}.field-error{color:var(--red);font-size:13px;margin-top:5px}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.badge-green{background:var(--green-weak);color:var(--green)}.badge-red{background:var(--red-weak);color:var(--red)}.badge-amber{background:var(--amber-weak);color:var(--amber)}.badge-purple{background:var(--purple-weak);color:var(--purple)}.badge-gray{background:var(--bg);color:var(--text-3)}.badge-primary{background:var(--primary-weak);color:var(--primary)}.chip{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border-radius:999px;border:1.5px solid var(--card-border);background:var(--card);color:var(--text-2);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.chip.active{background:var(--primary-weak);border-color:var(--primary);color:var(--primary)}.list-item{display:flex;align-items:center;gap:12px;padding:13px 4px;border-bottom:1px solid var(--card-border)}.list-item:last-child{border-bottom:none}.avatar{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:#fff;flex-shrink:0}.sheet-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f111573;z-index:200;display:flex;align-items:flex-end;justify-content:center}.sheet{background:var(--card);width:100%;max-width:640px;border-radius:22px 22px 0 0;padding:10px 18px calc(18px + var(--safe-bottom));max-height:82dvh;overflow-y:auto;animation:sheet-up .25s cubic-bezier(.2,.9,.3,1)}@keyframes sheet-up{0%{transform:translateY(60px);opacity:.4}to{transform:none;opacity:1}}.sheet-handle{width:38px;height:5px;border-radius:3px;background:var(--card-border);margin:4px auto 12px}.sheet-title{font-size:17px;font-weight:700;margin-bottom:4px}.tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:640px;height:calc(var(--tabbar-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--card);border-top:1px solid var(--card-border);display:flex;z-index:100}.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;color:var(--text-3);font-size:11px;font-weight:600}.tab svg{width:24px;height:24px}.tab.active{color:var(--primary)}.progress-track{height:8px;background:var(--bg);border-radius:4px;overflow:hidden}.progress-fill{height:100%;border-radius:4px;transition:width .4s ease}.empty{text-align:center;padding:44px 20px;color:var(--text-3)}.empty-emoji{font-size:44px;margin-bottom:10px}.empty-title{font-size:16px;font-weight:600;color:var(--text-2);margin-bottom:4px}.toast-host{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:300;display:flex;flex-direction:column;gap:8px;width:max-content;max-width:88vw}.toast{background:#171923eb;color:#fff;padding:10px 18px;border-radius:12px;font-size:14px;font-weight:500;box-shadow:0 4px 20px #0000002e;animation:toast-in .25s ease}.toast.success{background:#189a54f2}.toast.error{background:#d8433ff2}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.loading{display:flex;align-items:center;justify-content:center;padding:60px;color:var(--text-3)}.spinner{width:26px;height:26px;border:3px solid var(--card-border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:10px;font-size:14px;cursor:pointer;position:relative}.cal-cell.today{font-weight:800}.cal-cell.selected{background:var(--primary-weak);font-weight:700}.cal-cell.muted{color:var(--text-3);opacity:.45}.cal-cell.other{visibility:hidden}.cal-dots{display:flex;gap:3px;height:5px}.cal-dot{width:5px;height:5px;border-radius:50%}.text-2{color:var(--text-2)}.text-3{color:var(--text-3)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.divider{height:1px;background:var(--card-border);margin:14px 0}.fade-enter-active,.fade-leave-active{transition:opacity .18s}.fade-enter-from,.fade-leave-to{opacity:0}
