.term-mask[data-v-3034847c]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80}.term-card[data-v-3034847c]{position:fixed;z-index:81;width:300px;max-height:calc(100vh - 32px);overflow-y:auto;border-radius:16px;padding:16px 18px;background:#100a28f5;border:1px solid rgba(124,108,255,.4);box-shadow:0 24px 60px #030014b3,0 0 30px #7c6cff33;animation:termIn-3034847c .3s var(--ease-out);color:var(--text)}@keyframes termIn-3034847c{0%{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}.term-card .term-head[data-v-3034847c]{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.term-card .term-name[data-v-3034847c]{font-size:20px;font-weight:800;letter-spacing:2px;background:linear-gradient(90deg,var(--purple),var(--cyan));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.term-card .term-close[data-v-3034847c]{border:none;cursor:pointer;background:#ffffff14;color:var(--text-dim);border-radius:8px;width:28px;height:28px;font-size:14px;transition:all .2s}.term-card .term-close[data-v-3034847c]:hover{color:var(--text);background:#ff5c8a40}.term-card .term-sec[data-v-3034847c]{font-size:12.5px;line-height:1.75;color:var(--text-dim);margin-bottom:8px}.term-card .t-label[data-v-3034847c]{display:inline-block;font-size:10.5px;letter-spacing:2px;font-weight:700;color:var(--cyan);border:1px solid rgba(0,229,255,.35);border-radius:5px;padding:1px 6px;margin-right:7px;vertical-align:1px}.term-card .term-btn[data-v-3034847c]{width:100%;margin-top:8px}[data-theme=light] .term-card[data-v-3034847c]{background:#fcfbfff7;border-color:#6451e859}[data-theme=light] .term-card .term-name[data-v-3034847c]{-webkit-text-fill-color:var(--purple);color:var(--purple)}.type-toggle[data-v-791ca14f]{display:flex;gap:8px}.type-toggle button[data-v-791ca14f]{flex:1;padding:8px 0;border-radius:10px;cursor:pointer;background:#ffffff0d;border:1px solid rgba(255,255,255,.14);color:var(--text-dim);font-family:inherit;font-size:13px;transition:all .25s var(--spring)}.type-toggle button.on[data-v-791ca14f]{color:var(--text);font-weight:700;border-color:transparent;background:linear-gradient(135deg,#7c6cff4d,#00e5ff33);box-shadow:0 0 14px #7c6cff40}.lunar-row[data-v-791ca14f]{display:flex;gap:10px}.lunar-row select[data-v-791ca14f]{flex:1}.rule-hint[data-v-791ca14f]{font-size:12px;color:var(--text-dim);margin-top:-4px}.type-toggle button[data-v-791ca14f]:disabled{opacity:.35;cursor:not-allowed}.marker-list[data-v-39f01906]{margin-bottom:4px}.marker-row[data-v-39f01906]{display:flex;align-items:center;gap:10px;padding:9px 11px;margin-bottom:8px;border-radius:12px;cursor:pointer;background:#ffffff0a;border:1px solid rgba(255,255,255,.09);transition:all .3s}.marker-row[data-v-39f01906]:hover{border-color:#00e5ff59}.marker-row.editing[data-v-39f01906]{border-color:var(--cyan);background:#00e5ff12}.marker-row .m-icon[data-v-39f01906]{font-size:17px;width:22px;text-align:center;flex:none}.marker-row .m-name[data-v-39f01906]{flex:1;font-size:14px;font-weight:600}.marker-row .m-count[data-v-39f01906]{font-size:11px;color:var(--text-dim)}.marker-row .del[data-v-39f01906]{border:none;cursor:pointer;border-radius:8px;padding:4px 9px;background:#ff5c8a1f;color:var(--danger);font-size:12px;font-family:inherit;transition:all .25s var(--spring);flex:none}.marker-row .del[data-v-39f01906]:hover{background:#ff5c8a47;transform:scale(1.08)}.form-title[data-v-39f01906]{font-size:13px;letter-spacing:2px;color:var(--text);margin-bottom:2px}.color-picker[data-v-39f01906]{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.swatch[data-v-39f01906]{width:32px;height:32px;border-radius:10px;cursor:pointer;border:2px solid transparent;transition:all .25s var(--spring)}.swatch.on[data-v-39f01906]{border-color:#fff;transform:scale(1.12);box-shadow:0 0 12px #ffffff4d}.swatch.custom[data-v-39f01906]{position:relative;overflow:hidden;background:conic-gradient(red,orange,#ff0,green,#0ff,#00f,violet,red);display:inline-flex}.swatch.custom input[data-v-39f01906]{position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;width:48px;height:48px;cursor:pointer;border:none;padding:0;opacity:0}[data-theme=light] .marker-row[data-v-39f01906],[data-theme=light] .marker-row.editing[data-v-39f01906]{background:#ffffffb3;border-color:#3c2d8c29}[data-theme=light] .marker-row.editing[data-v-39f01906]{border-color:var(--cyan)}.habit-list[data-v-c58fd6aa]{margin-bottom:4px}.habit-def[data-v-c58fd6aa]{display:flex;align-items:center;gap:10px;padding:9px 11px;margin-bottom:8px;border-radius:12px;cursor:pointer;background:#ffffff0a;border:1px solid rgba(255,255,255,.09);transition:all .3s}.habit-def[data-v-c58fd6aa]:hover{border-color:var(--hc)}.habit-def.editing[data-v-c58fd6aa]{border-color:var(--hc);background:color-mix(in srgb,var(--hc) 10%,transparent)}.habit-def .h-icon[data-v-c58fd6aa]{font-size:17px;width:22px;text-align:center;flex:none}.habit-def .h-name[data-v-c58fd6aa]{flex:1;font-size:14px;font-weight:600}.habit-def .h-target[data-v-c58fd6aa]{font-size:11px;color:var(--text-dim);flex:none}.habit-def .h-done[data-v-c58fd6aa]{font-size:11px;color:var(--hc);flex:none}.habit-def .del[data-v-c58fd6aa]{border:none;cursor:pointer;border-radius:8px;padding:4px 9px;background:#ff5c8a1f;color:var(--danger);font-size:12px;font-family:inherit;transition:all .25s var(--spring);flex:none}.habit-def .del[data-v-c58fd6aa]:hover{background:#ff5c8a47;transform:scale(1.08)}.form-title[data-v-c58fd6aa]{font-size:13px;letter-spacing:2px;color:var(--text);margin-bottom:2px}.icon-picker[data-v-c58fd6aa]{display:flex;gap:6px;flex-wrap:wrap}.icon-picker span[data-v-c58fd6aa]{width:36px;height:36px;border-radius:10px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:18px;background:#ffffff0d;border:1px solid rgba(255,255,255,.12);transition:all .2s var(--spring)}.icon-picker span[data-v-c58fd6aa]:hover{border-color:#00e5ff73}.icon-picker span.on[data-v-c58fd6aa]{border-color:var(--cyan);background:#00e5ff1f;transform:scale(1.1)}.color-picker[data-v-c58fd6aa]{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.swatch[data-v-c58fd6aa]{width:32px;height:32px;border-radius:10px;cursor:pointer;border:2px solid transparent;transition:all .25s var(--spring)}.swatch.on[data-v-c58fd6aa]{border-color:#fff;transform:scale(1.12);box-shadow:0 0 12px #ffffff4d}.swatch.custom[data-v-c58fd6aa]{position:relative;overflow:hidden;background:conic-gradient(red,orange,#ff0,green,#0ff,#00f,violet,red);display:inline-flex}.swatch.custom input[data-v-c58fd6aa]{position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;width:48px;height:48px;cursor:pointer;border:none;padding:0;opacity:0}.target-row[data-v-c58fd6aa]{display:flex;gap:10px;align-items:center}.target-input[data-v-c58fd6aa]{width:80px;text-align:center}[data-theme=light] .habit-def[data-v-c58fd6aa],[data-theme=light] .habit-def.editing[data-v-c58fd6aa]{background:#ffffffb3;border-color:#3c2d8c29}[data-theme=light] .habit-def.editing[data-v-c58fd6aa]{border-color:var(--hc)}[data-theme=light] .icon-picker span[data-v-c58fd6aa]{background:#3c2d8c0f;border-color:#3c2d8c24}.reward-mask[data-v-86d435f3]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;background:#030014e0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);animation:rewardIn-86d435f3 .35s var(--ease-out)}@keyframes rewardIn-86d435f3{0%{opacity:0}to{opacity:1}}.reward-fx[data-v-86d435f3]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.reward-card[data-v-86d435f3]{display:flex;flex-direction:column;align-items:center;gap:18px;max-width:min(92vw,560px);max-height:92vh;overflow-y:auto;padding:30px 28px;border-radius:22px;background:#100a28eb;border:1px solid rgba(124,108,255,.45);box-shadow:0 30px 90px #030014cc,0 0 60px #7c6cff40;animation:cardPop-86d435f3 .45s var(--spring)}@keyframes cardPop-86d435f3{0%{opacity:0;transform:scale(.88) translateY(18px)}to{opacity:1;transform:none}}.reward-emoji[data-v-86d435f3]{font-size:64px;line-height:1;animation:bounce-86d435f3 .9s var(--spring)}@keyframes bounce-86d435f3{0%{transform:scale(.3)}60%{transform:scale(1.15)}to{transform:scale(1)}}.reward-title[data-v-86d435f3]{font-size:19px;font-weight:800;letter-spacing:2px;text-align:center;background:linear-gradient(90deg,var(--purple),var(--cyan));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.reward-quote[data-v-86d435f3]{display:flex;flex-direction:column;gap:10px;text-align:center}.q-zh[data-v-86d435f3]{font-size:17px;font-weight:600;letter-spacing:1.5px;line-height:1.8;color:var(--cyan)}.q-from[data-v-86d435f3]{font-size:12px;color:var(--text-dim);letter-spacing:1px}.q-en[data-v-86d435f3]{font-size:12.5px;font-style:italic;letter-spacing:.5px;line-height:1.7;color:var(--text-dim)}.reward-close[data-v-86d435f3]{min-width:160px}.theme-picker[data-v-71ff7471]{display:flex;gap:10px;flex-wrap:wrap}.theme-card[data-v-71ff7471]{flex:1;min-width:180px;display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:14px;cursor:pointer;background:#ffffff0d;border:1px solid rgba(255,255,255,.14);transition:all .25s}.theme-card[data-v-71ff7471]:hover{border-color:#00e5ff73}.theme-card.on[data-v-71ff7471]{border-color:transparent;background:linear-gradient(135deg,#7c6cff40,#00e5ff26);box-shadow:0 0 18px #7c6cff40}.theme-swatch[data-v-71ff7471]{width:44px;height:44px;border-radius:12px;flex:none;border:1px solid rgba(255,255,255,.25)}.theme-swatch.dark[data-v-71ff7471]{background:radial-gradient(circle at 30% 30%,#2a1360,#05010f 70%);box-shadow:inset 0 0 10px #7c6cff80}.theme-swatch.light[data-v-71ff7471]{background:linear-gradient(160deg,#fff,#e8e4f8)}.t-name[data-v-71ff7471]{font-size:14px;font-weight:600}.t-desc[data-v-71ff7471]{font-size:11px;color:var(--text-dim);margin-top:2px}.opt-list[data-v-71ff7471]{display:flex;flex-direction:column;gap:8px}.opt-row[data-v-71ff7471]{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:12px;cursor:pointer;background:#ffffff0a;border:1px solid rgba(255,255,255,.09);transition:border-color .25s;margin:0}.opt-row[data-v-71ff7471]:hover{border-color:#00e5ff59}.opt-row input[type=checkbox][data-v-71ff7471]{width:18px;height:18px;accent-color:#7c6cff;cursor:pointer;flex:none;padding:0;border:none;background:none}.opt-text .o-name[data-v-71ff7471]{font-size:13.5px;font-weight:600}.opt-text .o-desc[data-v-71ff7471]{font-size:11px;color:var(--text-dim);margin-top:2px}.rem-row[data-v-71ff7471]{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:10px 12px;border-radius:12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.09)}.rem-row input[type=checkbox][data-v-71ff7471]{width:16px;height:16px;accent-color:#7c6cff;cursor:pointer;flex:none;padding:0;border:none;background:none}.rem-icon[data-v-71ff7471]{width:44px;text-align:center}.rem-name[data-v-71ff7471]{flex:1;min-width:70px}.rem-num[data-v-71ff7471]{width:52px;text-align:center}.rem-icon[data-v-71ff7471],.rem-name[data-v-71ff7471],.rem-num[data-v-71ff7471]{padding:6px 8px;border-radius:9px;font-size:12.5px;font-family:inherit;color:var(--text);background:#ffffff0f;border:1px solid rgba(255,255,255,.14);outline:none}.rem-icon[data-v-71ff7471]:focus,.rem-name[data-v-71ff7471]:focus,.rem-num[data-v-71ff7471]:focus{border-color:#00e5ff80}.rem-lab[data-v-71ff7471]{font-size:11.5px;color:var(--text-dim);flex:none}.rem-hours[data-v-71ff7471]{display:inline-flex;align-items:center;gap:3px}.rem-del[data-v-71ff7471]{margin-left:auto;border:none;cursor:pointer;flex:none;width:26px;height:26px;border-radius:8px;background:#ffffff0f;color:var(--text-dim);font-size:12px;transition:all .2s;font-family:inherit}.rem-del[data-v-71ff7471]:hover{background:#ff5c8a38;color:var(--danger)}.rem-add[data-v-71ff7471]{align-self:flex-start;padding:8px 16px;border-radius:10px;cursor:pointer;font-size:12.5px;font-family:inherit;color:var(--text);background:#7c6cff29;border:1px solid rgba(124,108,255,.4);transition:all .2s}.rem-add[data-v-71ff7471]:hover{background:#7c6cff4d}.rem-hint[data-v-71ff7471]{font-size:11px;color:var(--text-dim);line-height:1.6}[data-theme=light] .rem-icon[data-v-71ff7471],[data-theme=light] .rem-name[data-v-71ff7471],[data-theme=light] .rem-num[data-v-71ff7471]{background:#fffc;border-color:#b46cff40}[data-theme=light] .rem-row[data-v-71ff7471]{background:#ffffffb3;border-color:#b46cff33}.ics-box[data-v-71ff7471]{display:flex;gap:14px;align-items:center;padding:14px;border-radius:14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.09)}.ics-qr[data-v-71ff7471]{flex:none;padding:7px;border-radius:10px;background:#fff}.ics-qr[data-v-71ff7471] svg{display:block;width:118px;height:118px}.ics-main[data-v-71ff7471]{flex:1;display:flex;flex-direction:column;gap:9px;min-width:0}.ics-desc[data-v-71ff7471]{font-size:11.5px;color:var(--text-dim);line-height:1.6}.ics-btn[data-v-71ff7471]{text-align:center;text-decoration:none;font-size:13px;padding:8px 14px}.ics-url[data-v-71ff7471]{font-size:11px;color:var(--text-dim);word-break:break-all;line-height:1.5;-webkit-user-select:all;user-select:all;cursor:pointer;opacity:.8}.ics-regen[data-v-71ff7471]{align-self:flex-start;border:none;background:none;cursor:pointer;color:var(--text-dim);font-size:11px;font-family:inherit;text-decoration:underline;text-underline-offset:3px}.ics-regen[data-v-71ff7471]:hover{color:var(--danger)}[data-theme=light] .ics-box[data-v-71ff7471]{background:#ffffffb3;border-color:#b46cff33}.zodiac-modal[data-v-29c5911d]{max-height:calc(100vh - 60px);overflow-y:auto}.my-zodiac[data-v-29c5911d]{display:flex;align-items:center;gap:12px}.my-zodiac .z-symbol[data-v-29c5911d]{font-size:30px;line-height:1}.my-zodiac .z-name[data-v-29c5911d]{font-size:15px;font-weight:700}.my-zodiac .z-range[data-v-29c5911d]{font-size:11px;color:var(--text-dim);margin-top:2px}.fortune[data-v-29c5911d]{margin-top:10px;font-size:12.5px;line-height:1.8;color:var(--text-dim);background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:10px 12px}.fortune.error[data-v-29c5911d]{color:var(--danger);display:flex;align-items:center;gap:10px}.fortune .btn[data-v-29c5911d]{padding:3px 12px;font-size:12px}.fortune.orig[data-v-29c5911d]{font-style:italic;opacity:.7}.orig-toggle[data-v-29c5911d]{border:none;background:none;cursor:pointer;padding:4px 2px 0;font-size:11px;color:var(--cyan);font-family:inherit}.orig-toggle[data-v-29c5911d]:hover{text-decoration:underline}.zodiac-grid[data-v-29c5911d]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.z-cell[data-v-29c5911d]{position:relative;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px 8px;border-radius:12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);transition:all .25s var(--spring)}.z-cell[data-v-29c5911d]:hover{border-color:#00e5ff59;transform:translateY(-2px)}.z-cell.mine[data-v-29c5911d]{border-color:var(--purple);background:#7c6cff1f;box-shadow:0 0 14px #7c6cff40}.z-cell .z-symbol[data-v-29c5911d]{font-size:20px;line-height:1}.z-cell .z-name[data-v-29c5911d]{font-size:12.5px;font-weight:700}.z-cell .z-range[data-v-29c5911d]{font-size:10px;color:var(--text-dim)}.today-tag[data-v-29c5911d]{position:absolute;top:5px;right:5px;font-size:9px;padding:1px 5px;border-radius:5px;color:#062;background:linear-gradient(135deg,#7dffb0,#00e5ff)}[data-theme=light] .fortune[data-v-29c5911d],[data-theme=light] .z-cell[data-v-29c5911d]{background:#ffffffb3;border-color:#3c2d8c29}@media(max-width:640px){.zodiac-grid[data-v-29c5911d]{grid-template-columns:repeat(2,1fr)}}.reminder-bar[data-v-e3d0d52c]{display:flex;align-items:center;gap:8px;margin:0 0 10px;padding:10px 14px;border-radius:14px;background:linear-gradient(135deg,#7c6cff29,#ff5c8a1f);border:1px solid rgba(180,108,255,.35);animation:remIn-e3d0d52c .4s var(--ease-out)}@keyframes remIn-e3d0d52c{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.reminder-items[data-v-e3d0d52c]{flex:1;display:flex;flex-wrap:wrap;gap:6px 22px}.reminder-item[data-v-e3d0d52c]{display:flex;align-items:center;gap:7px;font-size:13px}.food-tip .r-when[data-v-e3d0d52c]{color:var(--cyan);opacity:.85}.r-icon[data-v-e3d0d52c]{font-size:15px}.r-title[data-v-e3d0d52c]{font-weight:600}.r-when[data-v-e3d0d52c]{font-size:11px;color:var(--text-dim)}.r-close[data-v-e3d0d52c]{border:none;cursor:pointer;flex:none;width:24px;height:24px;border-radius:8px;background:#ffffff14;color:var(--text-dim);font-size:12px;transition:all .2s;font-family:inherit}.r-close[data-v-e3d0d52c]:hover{color:var(--text);background:#ff5c8a40}[data-theme=light] .reminder-bar[data-v-e3d0d52c]{background:#ffffffbf;border-color:#b46cff4d}.celebrate[data-v-fb857fc2]{text-align:center;overflow:visible}.c-glow[data-v-fb857fc2]{position:absolute;top:-40px;right:-40px;bottom:-40px;left:-40px;z-index:-1;pointer-events:none;background:radial-gradient(circle at 50% 30%,rgba(124,108,255,.35),transparent 60%),radial-gradient(circle at 70% 70%,rgba(255,92,138,.2),transparent 55%);filter:blur(20px)}.c-title[data-v-fb857fc2]{font-size:18px;letter-spacing:3px;margin-bottom:18px;background:linear-gradient(90deg,var(--purple),var(--cyan));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.c-list[data-v-fb857fc2]{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.c-item[data-v-fb857fc2]{display:flex;align-items:center;gap:14px;text-align:left;padding:12px 16px;border-radius:14px;background:#ffffff0d;border:1px solid rgba(255,255,255,.12)}.c-icon[data-v-fb857fc2]{font-size:26px;line-height:1}.c-name[data-v-fb857fc2]{font-size:15px;font-weight:700}.c-sub[data-v-fb857fc2]{font-size:11.5px;color:var(--text-dim);margin-top:2px}[data-theme=light] .c-item[data-v-fb857fc2]{background:#ffffffbf;border-color:#3c2d8c29}.rt-stack[data-v-a4bac7a3]{position:fixed;right:18px;bottom:18px;z-index:90;display:flex;flex-direction:column;gap:10px;pointer-events:none}.rt-card[data-v-a4bac7a3]{pointer-events:auto;display:flex;align-items:center;gap:12px;min-width:240px;max-width:320px;padding:13px 14px;border-radius:16px;background:linear-gradient(135deg,#1e143ceb,#120c28f0);border:1px solid rgba(124,108,255,.45);box-shadow:0 8px 32px #00000073,0 0 24px #7c6cff2e;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.rt-enter-active[data-v-a4bac7a3],.rt-leave-active[data-v-a4bac7a3]{transition:all .35s var(--ease-out)}.rt-enter-from[data-v-a4bac7a3]{opacity:0;transform:translate(40px)}.rt-leave-to[data-v-a4bac7a3]{opacity:0;transform:translateY(14px) scale(.96)}.rt-icon[data-v-a4bac7a3]{font-size:26px;flex:none;filter:drop-shadow(0 0 8px rgba(124,108,255,.5))}.rt-body[data-v-a4bac7a3]{flex:1;min-width:0}.rt-name[data-v-a4bac7a3]{font-size:14.5px;font-weight:700;display:flex;align-items:baseline;gap:8px}.rt-time[data-v-a4bac7a3]{font-size:11px;font-weight:500;color:var(--text-dim)}.rt-text[data-v-a4bac7a3]{font-size:12px;color:var(--text-dim);margin-top:3px}.rt-close[data-v-a4bac7a3]{border:none;cursor:pointer;flex:none;width:26px;height:26px;border-radius:9px;background:#ffffff14;color:var(--text-dim);font-size:12px;transition:all .2s;font-family:inherit}.rt-close[data-v-a4bac7a3]:hover{color:var(--text);background:#7c6cff4d}[data-theme=light] .rt-card[data-v-a4bac7a3]{background:linear-gradient(135deg,#fffffff0,#f6f3fff5);border-color:#b46cff59;box-shadow:0 8px 28px #7c6cff38}:root{--bg-0: #05010f;--bg-1: #0a0620;--purple: #7c6cff;--purple-deep: #2a1360;--cyan: #00e5ff;--pink: #b46cff;--blue: #5a8bff;--text: #eae6ff;--text-dim: #a89fd0;--glass: rgba(255, 255, 255, .05);--glass-border: rgba(255, 255, 255, .11);--danger: #ff5c8a;--spring: cubic-bezier(.34, 1.56, .64, 1);--ease-out: cubic-bezier(.22, 1, .36, 1)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{font-family:Segoe UI,PingFang SC,Microsoft YaHei,system-ui,sans-serif;background:var(--bg-0);color:var(--text);overflow-x:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#7c6cff59;border-radius:4px}::-webkit-scrollbar-track{background:transparent}.space{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-3;background:radial-gradient(ellipse 80% 60% at 12% 0%,rgba(124,108,255,.2),transparent 60%),radial-gradient(ellipse 70% 60% at 92% 100%,rgba(0,229,255,.13),transparent 60%),radial-gradient(ellipse 50% 40% at 70% 15%,rgba(180,108,255,.09),transparent 70%),linear-gradient(180deg,var(--bg-1),var(--bg-0) 70%)}.stars,.stars:after{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;pointer-events:none}.stars{background-image:radial-gradient(1px 1px at 25px 35px,rgba(255,255,255,.9),transparent),radial-gradient(1px 1px at 125px 15px,rgba(255,255,255,.5),transparent),radial-gradient(1.5px 1.5px at 68px 90px,rgba(200,230,255,.8),transparent),radial-gradient(1px 1px at 180px 140px,rgba(255,255,255,.6),transparent),radial-gradient(1px 1px at 10px 180px,rgba(190,170,255,.7),transparent);background-size:220px 220px;animation:twinkle 7s ease-in-out infinite alternate}.stars:after{content:"";background-image:radial-gradient(1px 1px at 40px 60px,rgba(255,255,255,.7),transparent),radial-gradient(1.5px 1.5px at 160px 30px,rgba(0,229,255,.6),transparent),radial-gradient(1px 1px at 95px 170px,rgba(255,255,255,.45),transparent);background-size:320px 320px;animation:twinkle 11s ease-in-out infinite alternate-reverse}@keyframes twinkle{0%{opacity:.45}to{opacity:1}}.parallax{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none}.shape{position:absolute;opacity:.8;animation:float var(--dur, 14s) ease-in-out infinite alternate;animation-delay:var(--delay, 0s)}@keyframes float{0%{transform:translate3d(0,-16px,0) rotate(0)}to{transform:translate3d(0,16px,0) rotate(24deg)}}.ring{width:var(--s, 120px);height:var(--s, 120px);border-radius:50%;border:2px solid rgba(124,108,255,.45);box-shadow:0 0 22px #7c6cff4d,inset 0 0 22px #7c6cff26}.tri{width:var(--s, 70px);height:var(--s, 70px);background:linear-gradient(135deg,#00e5ff73,#7c6cff73);clip-path:polygon(50% 0,100% 100%,0 100%);filter:drop-shadow(0 0 12px rgba(0,229,255,.35))}.cube{width:var(--s, 54px);height:var(--s, 54px);border-radius:12px;background:linear-gradient(135deg,#b46cff59,#00e5ff47);border:1px solid rgba(255,255,255,.22);box-shadow:0 0 18px #b46cff4d}.dot{width:var(--s, 10px);height:var(--s, 10px);border-radius:50%;background:radial-gradient(circle,#fff,rgba(124,108,255,.8) 60%,transparent);box-shadow:0 0 16px #7c6cffcc}.cross{width:var(--s, 46px);height:var(--s, 46px);background:#00e5ff8c;clip-path:polygon(40% 0,60% 0,60% 40%,100% 40%,100% 60%,60% 60%,60% 100%,40% 100%,40% 60%,0 60%,0 40%,40% 40%);filter:drop-shadow(0 0 10px rgba(0,229,255,.5))}.app{max-width:1440px;margin:0 auto;padding:20px 22px 40px;display:flex;flex-direction:column;gap:18px;min-height:100vh}.app-main{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:20px;align-items:start;flex:1}header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:10px 4px 0}.title-3d{position:relative;font-size:clamp(26px,4vw,44px);font-weight:800;letter-spacing:clamp(2px,.6vw,6px);line-height:1.1;white-space:nowrap;-webkit-user-select:none;user-select:none}.title-3d .extrude{position:absolute;top:0;right:0;bottom:0;left:0;color:var(--purple-deep);transform:translateY(4px);text-shadow:0 1px 0 #3a1a92,0 2px 0 #361788,0 3px 0 #30157c,0 4px 0 #2a136e,0 5px 0 #241162,0 6px 10px rgba(0,0,0,.6)}.title-3d .face{position:relative;background:linear-gradient(180deg,#fff 10%,#c9b8ff 40%,var(--purple) 65%,var(--cyan));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.title-3d:after{content:"";position:absolute;top:-30%;right:-30%;bottom:-30%;left:-30%;z-index:-1;background:radial-gradient(ellipse 60% 50% at 50% 40%,rgba(124,108,255,.45),transparent 70%),radial-gradient(ellipse 50% 45% at 60% 65%,rgba(0,229,255,.3),transparent 70%);filter:blur(24px);animation:halo 5s ease-in-out infinite alternate}@keyframes halo{0%{opacity:.6;transform:scale(.96)}to{opacity:1;transform:scale(1.05)}}.brand .tagline{font-size:11px;letter-spacing:4px;color:var(--text-dim);margin-top:6px}.nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.month-label{min-width:190px;text-align:center;font-size:17px;font-weight:700;letter-spacing:1px;cursor:pointer;border-radius:10px;padding:4px 10px;transition:all .3s}.month-label:hover{background:#ffffff0f}.month-label .ym-title{font-size:20px;letter-spacing:2px}.month-label small{display:block;font-size:11px;font-weight:400;color:var(--cyan);letter-spacing:3px;margin-top:3px}.btn{position:relative;padding:9px 18px;border-radius:12px;font-size:14px;font-weight:700;letter-spacing:1px;cursor:pointer;border:none;color:var(--text);background:var(--glass);border:1px solid var(--glass-border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 5px #ffffff0f,inset 0 1px #ffffff24;transition:box-shadow .25s var(--ease-out),border-color .25s;font-family:inherit}.btn:hover{animation:btnBounce .65s var(--spring) both;border-color:#00e5ff73;box-shadow:0 7px #ffffff14,0 12px 26px #00e5ff38,inset 0 1px #fff3}.btn:active{animation:none;transform:translateY(4px);box-shadow:0 1px #ffffff0d}@keyframes btnBounce{0%{transform:translateY(0)}30%{transform:translateY(-7px) scale(1.04)}55%{transform:translateY(2px) scale(.98)}75%{transform:translateY(-3px)}to{transform:translateY(-2px)}}.btn.primary{color:#fff;background:linear-gradient(135deg,var(--purple),var(--blue) 55%,var(--cyan));border:none;box-shadow:0 6px #1d0d55,0 14px 30px #7c6cff66,inset 0 1px #ffffff73}.btn.primary:hover{box-shadow:0 8px #1d0d55,0 20px 40px #00e5ff73,inset 0 1px #ffffff8c}.btn.primary:active{transform:translateY(5px);box-shadow:0 2px #1d0d55,0 8px 18px #7c6cff59}.btn.icon{padding:9px 13px;font-size:15px}.btn.danger-ghost:hover{border-color:#ff5c8a80;box-shadow:0 7px #ffffff0f,0 12px 26px #ff5c8a33}.ym-select{background:var(--glass);border:1px solid var(--glass-border);border-radius:10px;padding:7px 10px;color:var(--text);font-family:inherit;font-size:13px;outline:none;cursor:pointer}.ym-select option{background:#12102a}.ym-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80}.ym-pop{position:fixed;z-index:81;width:328px;border-radius:16px;padding:14px 16px 10px;background:#100a28f5;border:1px solid rgba(124,108,255,.4);box-shadow:0 24px 60px #030014b3,0 0 30px #7c6cff33;backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);animation:ymIn .3s var(--ease-out)}@keyframes ymIn{0%{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}.ym-pop .pop-label{font-size:10.5px;letter-spacing:3px;font-weight:700;color:var(--cyan);margin:2px 0 8px}.ym-pop .pop-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:12px}.ym-pop .pop-grid.months{grid-template-columns:repeat(6,1fr)}.ym-pop .pop-cell{border:1px solid var(--glass-border);background:var(--glass);color:var(--text-dim);border-radius:8px;padding:6px 0;font-family:inherit;font-size:13px;font-weight:600;text-align:center;cursor:pointer;transition:all .15s}.ym-pop .pop-cell:hover{color:var(--text);border-color:#7c6cff99;background:#7c6cff26}.ym-pop .pop-cell.cur{color:#fff;border-color:transparent;background:linear-gradient(135deg,var(--purple),var(--cyan))}[data-theme=light] .ym-pop{background:#fcfbfff7;border-color:#6451e859}.calendar-card{border-radius:22px;background:var(--glass);border:1px solid var(--glass-border);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);box-shadow:0 18px 44px #03001480,inset 0 1px #ffffff21;padding:16px;position:relative;overflow:hidden}.calendar-card:before{content:"";position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);opacity:.7}.weekday-row{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:12px;letter-spacing:2px;color:var(--text-dim);padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.07)}.weekday-row .weekend{color:#b46cffcc}.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;padding-top:12px}.cell{position:relative;min-height:clamp(72px,10.5vh,104px);border-radius:14px;padding:8px 9px;background:#ffffff07;border:1px solid rgba(255,255,255,.07);cursor:pointer;overflow:hidden;opacity:0;animation:cellIn .55s var(--ease-out) forwards;animation-delay:var(--d, 0s);transition:transform .18s var(--ease-out),border-color .08s linear,box-shadow .08s linear;display:flex;flex-direction:column}@keyframes cellIn{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}.cell:hover{transform:translateY(-4px) scale(1.025);border-color:#00e5ff66;box-shadow:0 10px 24px #00e5ff26}.cell.other-month{filter:grayscale(1) opacity(.55)}.cell.weekend{background:#b46cff1a}.cell.today{border-color:var(--cyan);box-shadow:0 0 0 1px var(--cyan),0 0 22px #00e5ff40}.cell.selected{border-color:var(--purple);box-shadow:0 0 0 1px var(--purple),0 0 26px #7c6cff59;transform:translateY(-3px) scale(1.02)}.cell .date-num{font-size:14px;font-weight:700}.cell.today .date-num{color:var(--cyan);text-shadow:0 0 12px rgba(0,229,255,.8)}.cell-top{display:flex;align-items:center;gap:5px}.hol-badge{font-size:10px;font-weight:700;line-height:1;padding:2px 4px;border-radius:5px;flex:none}.hol-badge.off{color:#062;background:linear-gradient(135deg,#7dffb0,#00e5ff)}.hol-badge.work{color:#fff;background:linear-gradient(135deg,#ff5c8a,#b46cff)}.cell .sub-line{font-size:10.5px;margin-top:2px;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cell .sub-line.lunar{color:var(--text-dim);opacity:.85}.cell .sub-line.term{color:var(--cyan)}.cell .sub-line.holiday-txt{color:var(--pink);font-weight:600}.cell .sub-line.wiki-link{cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}.cell .marks{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;align-items:center}.cell .ck{width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,var(--purple),var(--cyan));box-shadow:0 0 8px #00e5ffb3}.cell .note-flag{font-size:10px;color:var(--pink)}.cell .anniv-flag{font-size:13px;line-height:1;filter:drop-shadow(0 0 6px rgba(180,108,255,.8))}.cell .task-flag{font-size:10px;color:var(--cyan);letter-spacing:1px;background:#00e5ff1a;border-radius:6px;padding:1px 5px}.cell .marker-flag{font-size:12px;line-height:1;filter:drop-shadow(0 0 5px currentColor)}.cell.marker-hit{border-color:var(--mc);background:color-mix(in srgb,var(--mc) 14%,rgba(255,255,255,.028))}.cell.marker-hit:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:14px;pointer-events:none;box-shadow:inset 0 0 0 1px var(--mc),0 0 18px color-mix(in srgb,var(--mc) 45%,transparent)}.panel{border-radius:22px;background:var(--glass);border:1px solid var(--glass-border);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);box-shadow:0 18px 44px #03001480,inset 0 1px #ffffff21;padding:22px 20px;position:sticky;top:16px;opacity:0;transform:translate(24px);animation:panelIn .25s var(--ease-out) forwards;max-height:calc(100vh - 32px);overflow-y:auto}@keyframes panelIn{to{opacity:1;transform:none}}.panel .close{display:none}.panel-title{font-size:19px;font-weight:800;letter-spacing:1px}.panel-title small{display:block;margin-top:4px;font-size:11.5px;font-weight:400;letter-spacing:2px;color:var(--text-dim)}.panel-sub{margin-top:6px;font-size:12px;letter-spacing:1px;color:var(--pink)}.divider{height:1px;margin:16px 0;background:linear-gradient(90deg,transparent,rgba(124,108,255,.45),transparent)}.sec-label{font-size:11px;letter-spacing:3px;color:var(--cyan);margin-bottom:12px}.app-main.solo{grid-template-columns:1fr}.multi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}.multi-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.custom-sep{font-size:12px;color:var(--text-dim);letter-spacing:2px}.multi-grid .calendar-card{padding:12px}.multi-grid .cell{min-height:78px;padding:6px 7px}.multi-grid .grid-month-title{text-align:center;font-size:15px;font-weight:800;letter-spacing:2px;padding-bottom:8px}.multi-panel-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0502148c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px;animation:maskIn .25s var(--ease-out)}@keyframes maskIn{0%{opacity:0}to{opacity:1}}.multi-panel{position:relative;width:390px;max-width:100%}.multi-panel .close{display:inline-block;float:right}[data-theme=light] .multi-panel-mask{background:#281e5059}.checkin-btn{width:100%;padding:13px;border-radius:14px;font-family:inherit;font-size:15px;font-weight:700;letter-spacing:3px;cursor:pointer;transition:all .3s var(--spring);background:#ffffff0d;border:1px solid rgba(255,255,255,.14);color:var(--text-dim)}.checkin-btn:hover{border-color:#00e5ff73;transform:translateY(-2px)}.checkin-btn.on{color:#fff;background:linear-gradient(135deg,var(--purple),var(--cyan));border-color:transparent;box-shadow:0 6px 18px #00e5ff59;animation:pop .5s var(--spring)}@keyframes pop{0%{transform:scale(.92)}60%{transform:scale(1.06)}to{transform:scale(1)}}.task-item{display:flex;align-items:center;gap:10px;padding:9px 11px;margin-bottom:8px;border-radius:12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.09);transition:all .3s}.task-item:hover{border-color:#00e5ff59}.task-item .tick{width:20px;height:20px;flex:none;border-radius:7px;border:1.5px solid rgba(255,255,255,.3);cursor:pointer;position:relative;transition:all .25s var(--spring)}.task-item.done .tick{background:linear-gradient(135deg,var(--purple),var(--cyan));border-color:transparent;box-shadow:0 0 10px #00e5ff80}.task-item.done .tick:after{content:"✓";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:13px;color:#fff;font-weight:800}.task-item .task-title{flex:1;font-size:14px;word-break:break-all}.task-item.done .task-title{text-decoration:line-through;color:var(--text-dim)}.task-item .del{border:none;cursor:pointer;border-radius:8px;padding:4px 9px;background:#ff5c8a1f;color:var(--danger);font-size:12px;font-family:inherit;transition:all .25s var(--spring);flex:none}.task-item .del:hover{background:#ff5c8a47;transform:scale(1.08)}.task-item .task-due{flex:none;font-size:12px;font-weight:600;color:var(--cyan);opacity:.9;background:#00e5ff14;border:1px solid rgba(0,229,255,.25);border-radius:8px;padding:2px 7px}.task-meta-row{display:flex;align-items:center;gap:14px;margin-top:8px;font-size:12.5px;color:var(--text-dim)}.task-meta-row .t-time-label{display:flex;align-items:center;gap:7px;cursor:pointer}.task-meta-row .t-time{background:#ffffff0d;border:1px solid rgba(255,255,255,.14);border-radius:8px;padding:4px 7px;color:var(--text);font-size:12.5px;font-family:inherit;outline:none;color-scheme:dark}.task-meta-row .t-time:focus{border-color:#00e5ff66}.task-meta-row .t-remind{display:flex;align-items:center;gap:5px;cursor:pointer;-webkit-user-select:none;user-select:none}.task-meta-row .t-remind.off{opacity:.4;cursor:not-allowed}.task-meta-row .t-remind input{accent-color:var(--cyan);cursor:pointer}.task-input-row{display:flex;gap:8px}.task-input{flex:1;min-width:0;background:#ffffff0d;border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:9px 12px;color:var(--text);font-size:14px;font-family:inherit;outline:none;transition:border-color .3s,box-shadow .3s}.task-input:focus{border-color:var(--cyan);box-shadow:0 0 14px #00e5ff40}.anniv-item{display:flex;align-items:center;gap:10px;padding:9px 11px;margin-bottom:8px;border-radius:12px;background:#b46cff12;border:1px solid rgba(180,108,255,.22);transition:all .3s}.anniv-item:hover{border-color:#b46cff80}.anniv-item .icon{font-size:20px;flex:none}.anniv-item .info{flex:1;min-width:0}.anniv-item .a-title{font-size:14px;font-weight:600}.anniv-item .a-sub{font-size:11.5px;color:var(--text-dim);margin-top:2px}.anniv-item .a-sub b{color:var(--pink)}.marker-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:0 4px}.marker-chip{display:inline-flex;gap:6px;align-items:center;padding:5px 12px;border-radius:999px;background:#ffffff0d;border:1px solid rgba(255,255,255,.14);cursor:pointer;font-size:12.5px;color:var(--text);font-family:inherit;transition:all .25s var(--spring)}.marker-chip:hover{border-color:#00e5ff73;transform:translateY(-1px)}.marker-chip .m-icon{font-size:14px;line-height:1}.marker-chip.on{border-color:var(--mc);background:color-mix(in srgb,var(--mc) 15%,transparent);box-shadow:0 0 14px color-mix(in srgb,var(--mc) 40%,transparent)}.marker-chip.add{color:var(--text-dim)}.marker-toggles{display:flex;gap:8px;flex-wrap:wrap}.marker-panel-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.habit-list{display:flex;flex-direction:column;gap:8px}.habit-row{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.09);transition:border-color .3s,box-shadow .3s}.habit-row .h-icon{font-size:17px;width:22px;text-align:center;flex:none}.habit-row .h-info{flex:1;min-width:0}.habit-row .h-name{font-size:13.5px;font-weight:600}.habit-row.done .h-name{color:var(--hc)}.habit-row .h-dots{display:flex;gap:4px;margin-top:5px;flex-wrap:wrap}.habit-row .h-dot{width:9px;height:9px;border-radius:50%;background:#ffffff1f;transition:all .2s var(--spring)}.habit-row .h-dot.on{background:var(--hc);box-shadow:0 0 7px color-mix(in srgb,var(--hc) 60%,transparent);transform:scale(1.05)}.habit-row .h-count{font-size:11.5px;color:var(--text-dim);flex:none;min-width:34px;text-align:right;font-variant-numeric:tabular-nums}.habit-row.done .h-count{color:var(--hc);font-weight:700}.habit-row .h-btns{display:flex;gap:6px;flex:none}.habit-row .h-btn{width:28px;height:28px;border-radius:9px;cursor:pointer;border:1px solid rgba(255,255,255,.14);background:#ffffff0d;color:var(--text);font-size:14px;line-height:1;font-family:inherit;transition:all .2s var(--spring);display:inline-flex;align-items:center;justify-content:center;padding:0}.habit-row .h-btn:hover:not(:disabled){border-color:var(--hc);transform:scale(1.08)}.habit-row .h-btn.plus{border-color:color-mix(in srgb,var(--hc) 55%,transparent);color:var(--hc)}.habit-row .h-btn.plus:hover:not(:disabled){background:color-mix(in srgb,var(--hc) 18%,transparent)}.habit-row .h-btn:disabled{opacity:.35;cursor:default}.habit-row.done{border-color:color-mix(in srgb,var(--hc) 45%,transparent)}.note-area{width:100%;min-height:110px;resize:vertical;background:#ffffff0d;border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:12px 14px;color:var(--text);font-size:14px;line-height:1.8;font-family:inherit;outline:none;transition:border-color .3s,box-shadow .3s}.note-area:focus{border-color:var(--purple);box-shadow:0 0 14px #7c6cff40}.save-hint{text-align:right;font-size:11px;color:var(--text-dim);margin-top:6px;height:14px}.save-hint.flash{color:var(--cyan)}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.auth-card{width:min(400px,100%);border-radius:22px;background:var(--glass);border:1px solid var(--glass-border);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);box-shadow:0 18px 44px #03001480,inset 0 1px #ffffff21;padding:34px 30px;position:relative;overflow:hidden;animation:modalIn .5s var(--spring)}.auth-card:before{content:"";position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);opacity:.7}.auth-card h2{font-size:22px;letter-spacing:4px;text-align:center;margin-bottom:6px;background:linear-gradient(90deg,var(--purple),var(--cyan));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.auth-card .sub{text-align:center;font-size:12px;color:var(--text-dim);letter-spacing:2px;margin-bottom:24px}.auth-card input{width:100%;background:#ffffff0d;border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:12px 14px;color:var(--text);font-size:14px;font-family:inherit;outline:none;transition:border-color .3s,box-shadow .3s;margin-bottom:12px}.auth-card input:focus{border-color:var(--cyan);box-shadow:0 0 14px #00e5ff40}.auth-card .btn{width:100%;margin-top:6px}.auth-error{color:var(--danger);font-size:12.5px;letter-spacing:1px;text-align:center;margin-bottom:10px;min-height:16px}.auth-switch{text-align:center;margin-top:16px;font-size:12.5px;color:var(--text-dim)}.auth-switch a{color:var(--cyan);cursor:pointer;text-decoration:none}.auth-remember{display:flex;align-items:center;gap:7px;margin:-2px 0 14px;font-size:12.5px;color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none}.auth-remember input{width:15px;height:15px;margin:0;accent-color:var(--cyan);cursor:pointer}.auth-history{margin:-4px 0 12px}.auth-history-label{font-size:11.5px;color:var(--text-dim);letter-spacing:1px}.auth-history-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.auth-history-item{display:inline-flex;align-items:center;gap:4px;background:#ffffff0d;border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:4px 6px 4px 12px;font-size:12.5px}.auth-history-item a{color:var(--cyan);cursor:pointer}.auth-history-del{cursor:pointer;font-style:normal;font-size:10px;color:var(--text-dim);width:16px;height:16px;line-height:14px;text-align:center;border-radius:50%;transition:color .2s,background .2s}.auth-history-del:hover{color:#fff;background:var(--danger)}[data-theme=light] .auth-history-item{background:#ffffffb3;border-color:#3c2d8c29}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#03000f99;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:20px}.modal{width:min(560px,100%);max-height:86vh;overflow-y:auto;border-radius:22px;padding:26px 24px;background:#100a28eb;border:1px solid var(--glass-border);box-shadow:0 30px 80px #0009,0 0 40px #7c6cff26;animation:modalIn .5s var(--spring)}@keyframes modalIn{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:none}}.modal h3{font-size:17px;letter-spacing:3px;margin-bottom:4px;background:linear-gradient(90deg,var(--purple),var(--cyan));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.modal .sub{font-size:12px;color:var(--text-dim);margin-bottom:14px}.modal label{display:block;font-size:11px;letter-spacing:2px;color:var(--text-dim);margin:12px 0 6px}.modal input,.modal select{width:100%;background:#ffffff0d;border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:10px 12px;color:var(--text);font-size:14px;font-family:inherit;outline:none;transition:border-color .3s}.modal input:focus,.modal select:focus{border-color:var(--cyan)}.modal select option{background:#12102a}.icon-picker{display:flex;gap:8px;flex-wrap:wrap}.icon-picker span{width:40px;height:40px;display:grid;place-items:center;font-size:20px;border-radius:10px;cursor:pointer;background:#ffffff0d;border:1px solid rgba(255,255,255,.14);transition:all .25s var(--spring)}.icon-picker span.on{border-color:transparent;background:linear-gradient(135deg,var(--purple),var(--cyan));box-shadow:0 4px 14px #00e5ff59;transform:scale(1.1)}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px;flex-wrap:wrap}.toast{position:fixed;left:50%;bottom:34px;transform:translate(-50%) translateY(20px);z-index:99;padding:12px 26px;border-radius:999px;background:#100a28f2;border:1px solid rgba(0,229,255,.45);color:var(--text);font-size:14px;letter-spacing:1px;box-shadow:0 12px 34px #00e5ff40;opacity:0;pointer-events:none;transition:all .45s var(--spring);max-width:86vw;text-align:center}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}footer{text-align:center;padding:14px 0 6px;color:#a89fd066;font-size:12px;letter-spacing:2px}.logout-fab{position:fixed;left:18px;bottom:18px;z-index:30;padding:9px 16px;font-size:13px;box-shadow:0 8px 24px #03001473}[data-theme=light]{--bg-0: #f4f2fb;--bg-1: #ece8f9;--purple: #6451e8;--purple-deep: #a99df2;--cyan: #0a8fae;--pink: #a047c9;--blue: #3b6bf0;--text: #251b52;--text-dim: #6f6694;--glass: rgba(255, 255, 255, .62);--glass-border: rgba(50, 35, 120, .14);--danger: #d63384}[data-theme=light] .space{background:radial-gradient(ellipse 80% 60% at 12% 0%,rgba(100,81,232,.14),transparent 60%),radial-gradient(ellipse 70% 60% at 92% 100%,rgba(10,143,174,.1),transparent 60%),linear-gradient(180deg,var(--bg-1),var(--bg-0) 70%)}[data-theme=light] .stars,[data-theme=light] .stars:after{display:none}[data-theme=light] .parallax{opacity:.35}[data-theme=light] .title-3d .extrude{color:#c8c0f4;text-shadow:0 1px 0 #beb3ef,0 2px 0 #b4a8ea,0 3px 0 #a99de4,0 4px 0 #9c8fdc,0 6px 8px rgba(80,60,180,.18)}[data-theme=light] .title-3d .face{background:linear-gradient(180deg,#3c2e9e 10%,#6451e8 45%,#0a8fae);-webkit-background-clip:text;background-clip:text}[data-theme=light] .cell{background:#ffffff8c;border:1px solid rgba(60,45,140,.1)}[data-theme=light] .cell.weekend{background:#b46cff17}[data-theme=light] .cell:hover{box-shadow:0 10px 24px #6451e826}[data-theme=light] .cell.today{box-shadow:0 0 0 1px var(--cyan),0 0 18px #0a8fae4d}[data-theme=light] .cell.today .date-num{text-shadow:none}[data-theme=light] .btn{box-shadow:0 5px #3c2d8c1f,inset 0 1px #ffffffe6}[data-theme=light] .btn.primary{box-shadow:0 6px #c9bd86,0 14px 30px #6451e859,inset 0 1px #ffffff8c}[data-theme=light] .btn.primary:active{box-shadow:0 2px #c9bd86,0 8px 18px #6451e84d}[data-theme=light] .hol-badge.off{color:#064}[data-theme=light] .toast,[data-theme=light] .modal{background:#fcfbfff5;color:var(--text)}[data-theme=light] .task-item,[data-theme=light] .opt-row,[data-theme=light] .task-input,[data-theme=light] .note-area,[data-theme=light] .auth-card input,[data-theme=light] .modal input,[data-theme=light] .modal select,[data-theme=light] .theme-card,[data-theme=light] .anniv-item,[data-theme=light] .checkin-btn,[data-theme=light] .ym-select,[data-theme=light] .habit-row{background:#ffffffb3;border-color:#3c2d8c29;color:var(--text)}[data-theme=light] .ym-select option,[data-theme=light] .modal select option{background:#fff;color:#251b52}[data-theme=light] .habit-row .h-dot{background:#3c2d8c26}[data-theme=light] .task-meta-row .t-time{background:#ffffffb3;border-color:#3c2d8c29;color-scheme:light}[data-theme=light] .task-item .task-due{background:#008cbe14}[data-theme=light] .habit-row .h-btn{background:#ffffffb3;border-color:#3c2d8c29}[data-theme=light] .modal h3,[data-theme=light] .auth-card h2{-webkit-text-fill-color:var(--purple);color:var(--purple)}[data-theme=light] .panel,[data-theme=light] .auth-card{box-shadow:0 18px 44px #503cb41f,inset 0 1px #ffffffe6}[data-theme=light] ::-webkit-scrollbar-thumb{background:#6451e84d}[data-theme=light] .marker-chip{background:#ffffffb3;border-color:#3c2d8c29}[data-theme=light] .cell.marker-hit{background:color-mix(in srgb,var(--mc) 10%,#fff)}.empty-hint{color:var(--text-dim);font-size:13px}@media(max-width:980px){.app{padding:14px 12px 90px}.app-main{grid-template-columns:1fr}.panel{position:fixed;left:12px;right:12px;bottom:12px;top:auto;z-index:40;max-height:72vh;display:none}.panel.open{display:block;animation:sheetIn .55s var(--spring)}@keyframes sheetIn{0%{opacity:0;transform:translateY(60px)}to{opacity:1;transform:none}}.panel .close{display:inline-block;float:right}.grid{gap:5px}.cell{min-height:64px;padding:4px 5px}.cell .date-num{font-size:13px}.hol-badge{position:absolute;top:3px;right:3px;font-size:9px;padding:2px 3px;border-radius:4px}.cell .sub-line{font-size:9.5px;line-height:1.35;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.cell .marks .ck{width:6px;height:6px}.cell .anniv-flag{font-size:11px}.cell .marker-flag{font-size:10px}.marker-bar{flex-wrap:nowrap;overflow-x:auto;padding:0 2px}.month-label{min-width:0}.multi-grid,.multi-grid.two{grid-template-columns:1fr}.panel{animation:none;opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}.cell,.panel{opacity:1;transform:none}}
