*{box-sizing:border-box;margin:0;padding:0}html,body{height:100vh;overflow:hidden}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#333;background:#f5f6f8;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}#root{height:100vh;overflow:hidden}a{color:inherit;text-decoration:none}button,input,select{font-family:inherit}.no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.no-scrollbar::-webkit-scrollbar{display:none}.login-page[data-v-c0a020ab]{background:#f0f2f5;justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card[data-v-c0a020ab]{background:#fff;border-radius:16px;width:400px;max-width:90vw;padding:48px 40px;box-shadow:0 8px 32px #00000014}.login-title[data-v-c0a020ab]{color:#1a1a2e;margin:0 0 4px;font-size:28px;font-weight:700}.login-subtitle[data-v-c0a020ab]{color:#888;margin:0 0 32px;font-size:14px}.login-form[data-v-c0a020ab]{flex-direction:column;gap:20px;display:flex}.form-group[data-v-c0a020ab]{flex-direction:column;gap:6px;display:flex}.form-group label[data-v-c0a020ab]{color:#444;font-size:13px;font-weight:600}.form-group input[data-v-c0a020ab]{border:2px solid #e8e8e8;border-radius:10px;outline:none;padding:12px 16px;font-size:15px;transition:border-color .2s}.form-group input[data-v-c0a020ab]:focus{border-color:#4a90d9}.remember-row[data-v-c0a020ab]{color:#666;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:flex}.remember-row input[type=checkbox][data-v-c0a020ab]{cursor:pointer;accent-color:#4a90d9;width:16px;height:16px}.btn-primary[data-v-c0a020ab]{color:#fff;cursor:pointer;background:#4a90d9;border:none;border-radius:10px;padding:12px;font-size:16px;font-weight:600;transition:background .2s}.btn-primary[data-v-c0a020ab]:hover{background:#3a7bc8}.btn-primary[data-v-c0a020ab]:disabled{opacity:.6;cursor:not-allowed}.error-msg[data-v-c0a020ab]{color:#e74c3c;margin:0;font-size:13px}.divider[data-v-c0a020ab]{color:#aaa;align-items:center;margin:24px 0;font-size:13px;display:flex}.divider[data-v-c0a020ab]:before,.divider[data-v-c0a020ab]:after{content:"";background:#e8e8e8;flex:1;height:1px}.divider span[data-v-c0a020ab]{padding:0 16px}.btn-wechat[data-v-c0a020ab]{color:#fff;cursor:pointer;background:#07c160;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;width:100%;padding:12px;font-size:16px;font-weight:600;transition:background .2s;display:flex}.btn-wechat[data-v-c0a020ab]:hover{background:#06ad56}.wechat-icon[data-v-c0a020ab]{flex-shrink:0}.switch-text[data-v-c0a020ab]{text-align:center;color:#888;margin-top:24px;font-size:14px}.switch-text a[data-v-c0a020ab]{color:#4a90d9;font-weight:600;text-decoration:none}.switch-text a[data-v-c0a020ab]:hover{text-decoration:underline}.qrcode-mask[data-v-c0a020ab]{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.qrcode-dialog[data-v-c0a020ab]{text-align:center;background:#fff;border-radius:16px;width:340px;max-width:90vw;padding:40px 32px 32px;position:relative;box-shadow:0 16px 48px #0003}.qrcode-close[data-v-c0a020ab]{color:#999;cursor:pointer;background:0 0;border:none;font-size:20px;line-height:1;position:absolute;top:12px;right:16px}.qrcode-close[data-v-c0a020ab]:hover{color:#333}.qrcode-title[data-v-c0a020ab]{color:#1a1a2e;margin:0 0 8px;font-size:20px;font-weight:700}.qrcode-tip[data-v-c0a020ab]{color:#888;margin:0 0 24px;font-size:14px}.qrcode-img-wrap[data-v-c0a020ab]{border:1px solid #f0f0f0;border-radius:12px;justify-content:center;align-items:center;width:240px;height:240px;margin:0 auto 20px;display:flex;overflow:hidden}.qrcode-img[data-v-c0a020ab]{object-fit:contain;width:100%;height:100%}.qrcode-loading[data-v-c0a020ab]{color:#888;flex-direction:column;align-items:center;gap:12px;font-size:14px;display:flex}.spinner[data-v-c0a020ab]{border:3px solid #e8e8e8;border-top-color:#07c160;border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin-c0a020ab}@keyframes spin-c0a020ab{to{transform:rotate(360deg)}}.qrcode-error[data-v-c0a020ab]{color:#e74c3c;flex-direction:column;align-items:center;gap:12px;font-size:14px;display:flex}.btn-retry[data-v-c0a020ab]{color:#fff;cursor:pointer;background:#07c160;border:none;border-radius:8px;padding:8px 20px;font-size:14px}.btn-retry[data-v-c0a020ab]:hover{background:#06ad56}.qrcode-status[data-v-c0a020ab]{color:#666;justify-content:center;align-items:center;gap:8px;margin-bottom:12px;font-size:14px;display:flex}.status-indicator[data-v-c0a020ab]{background:#07c160;border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite pulse-c0a020ab}@keyframes pulse-c0a020ab{0%,to{opacity:1}50%{opacity:.3}}.qrcode-hint[data-v-c0a020ab]{color:#aaa;margin:0;font-size:12px}.todo-item[data-v-ebc6625e]{background:#fff;border:1px solid #eee;border-radius:12px;justify-content:space-between;align-items:center;padding:14px 18px;transition:all .2s;display:flex}.todo-item[data-v-ebc6625e]:hover{border-color:#ddd;box-shadow:0 2px 12px #0000000f}.todo-item.completed .todo-title[data-v-ebc6625e]{color:#aaa;text-decoration:line-through}.todo-left[data-v-ebc6625e]{flex:1;align-items:center;gap:14px;min-width:0;display:flex}.check-btn[data-v-ebc6625e]{cursor:pointer;background:0 0;border:2px solid #ccc;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;padding:0;transition:all .2s;display:flex}.check-btn.active[data-v-ebc6625e]{background:#4a90d9;border-color:#4a90d9}.check-btn svg[data-v-ebc6625e]{color:#fff;width:14px;height:14px}.todo-content[data-v-ebc6625e]{flex-direction:column;gap:4px;min-width:0;display:flex}.todo-title[data-v-ebc6625e]{color:#333;word-break:break-word;font-size:15px}.todo-desc[data-v-ebc6625e]{color:#999;word-break:break-word;font-size:13px;line-height:1.5}.todo-desc[data-v-ebc6625e] p{margin:0 0 4px}.todo-desc[data-v-ebc6625e] p:last-child{margin-bottom:0}.todo-desc[data-v-ebc6625e] ul,.todo-desc[data-v-ebc6625e] ol{margin:2px 0;padding-left:20px}.todo-desc[data-v-ebc6625e] li{margin:1px 0}.todo-desc[data-v-ebc6625e] a{color:#4a90d9}.todo-desc[data-v-ebc6625e] b,.todo-desc[data-v-ebc6625e] strong{color:#777}.todo-tags[data-v-ebc6625e]{flex-wrap:wrap;gap:6px;display:flex}.todo-tag[data-v-ebc6625e]{border-radius:6px;align-items:center;gap:4px;width:fit-content;margin-top:2px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.todo-tag svg[data-v-ebc6625e]{width:12px;height:12px}.reminder-tag[data-v-ebc6625e]{color:#ff9800;background:#fff8e1}.todo-tag.date-chip[data-v-ebc6625e]{font-weight:600}.todo-tag.date-chip.solar[data-v-ebc6625e]{color:#b8860b;background:#fff8e1}.todo-tag.date-chip.lunar[data-v-ebc6625e]{color:#6c3483;background:#f5eef9}.chip-icon[data-v-ebc6625e]{font-size:11px}.todo-actions[data-v-ebc6625e]{opacity:0;flex-shrink:0;gap:4px;transition:opacity .2s;display:flex}.todo-item:hover .todo-actions[data-v-ebc6625e]{opacity:1}.icon-btn[data-v-ebc6625e]{cursor:pointer;background:#f5f5f5;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;transition:background .2s;display:flex}.icon-btn svg[data-v-ebc6625e]{color:#666;width:16px;height:16px}.icon-btn[data-v-ebc6625e]:hover{background:#e8e8e8}.icon-btn.delete[data-v-ebc6625e]:hover{background:#fee}.icon-btn.delete:hover svg[data-v-ebc6625e]{color:#e74c3c}.rich-editor[data-v-4a24e77b]{box-sizing:border-box;border:2px solid #eee;border-radius:10px;flex-direction:column;width:100%;transition:border-color .2s;display:flex;overflow:hidden}.rich-editor[data-v-4a24e77b]:focus-within{border-color:#4a90d9}.rich-toolbar[data-v-4a24e77b]{background:#fafbfc;border-bottom:1px solid #f0f0f0;flex-wrap:wrap;align-items:center;gap:2px;padding:6px 8px;display:flex}.tb-btn[data-v-4a24e77b]{cursor:pointer;color:#666;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:14px;transition:all .15s;display:flex}.tb-btn svg[data-v-4a24e77b]{width:16px;height:16px}.tb-btn[data-v-4a24e77b]:hover{color:#4a90d9;background:#e8f0fe}.tb-sep[data-v-4a24e77b]{background:#e0e0e0;width:1px;height:18px;margin:0 4px}.rich-content[data-v-4a24e77b]{word-break:break-word;outline:none;flex:1;min-height:120px;max-height:none;padding:12px 16px;font-size:15px;line-height:1.6;overflow-y:auto}.rich-content.empty[data-v-4a24e77b]:before{content:attr(data-placeholder);color:#bbb;pointer-events:none}.rich-content[data-v-4a24e77b] p{margin:0 0 6px}.rich-content[data-v-4a24e77b] p:last-child{margin-bottom:0}.rich-content[data-v-4a24e77b] ul,.rich-content[data-v-4a24e77b] ol{margin:4px 0;padding-left:24px}.rich-content[data-v-4a24e77b] li{margin:2px 0}.rich-content[data-v-4a24e77b] a{color:#4a90d9;text-decoration:underline}.todo-form[data-v-ae39aec8]{background:#fff;border:2px solid #e8e8e8;border-radius:14px;flex-direction:column;gap:10px;padding:16px;display:flex}.form-input[data-v-ae39aec8]{box-sizing:border-box;border:2px solid #eee;border-radius:10px;outline:none;width:100%;height:42px;padding:10px 16px;font-size:14px;line-height:1.4;transition:border-color .2s}.form-input[data-v-ae39aec8]:focus{border-color:#4a90d9}.form-input.small[data-v-ae39aec8]{flex:1;min-width:0}.content-wrap[data-v-ae39aec8]{flex-direction:column;gap:2px;display:flex}.title-wrap[data-v-ae39aec8]{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex;position:relative}.char-counter[data-v-ae39aec8]{color:#aaa;text-align:right;padding-right:2px;font-size:11px;position:absolute;bottom:-18px;right:2px}.form-row[data-v-ae39aec8]{align-items:flex-end;gap:10px;padding-bottom:20px;display:flex}.form-select[data-v-ae39aec8]{cursor:pointer;box-sizing:border-box;background:#fff;border:2px solid #eee;border-radius:10px;outline:none;min-width:120px;height:42px;padding:10px 12px;font-size:14px;line-height:1.4}.form-select[data-v-ae39aec8]:focus{border-color:#4a90d9}.lunar-select[data-v-ae39aec8]{min-width:110px}.form-btns[data-v-ae39aec8]{gap:8px;display:flex}.btn-primary[data-v-ae39aec8]{color:#fff;cursor:pointer;white-space:nowrap;box-sizing:border-box;background:#4a90d9;border:none;border-radius:10px;height:42px;padding:10px 20px;font-size:14px;font-weight:600;line-height:1.4;transition:background .2s}.btn-primary[data-v-ae39aec8]:hover{background:#3a7bc8}.btn-cancel[data-v-ae39aec8]{color:#666;cursor:pointer;white-space:nowrap;box-sizing:border-box;background:#f0f0f0;border:none;border-radius:10px;height:42px;padding:10px 16px;font-size:14px;line-height:1.4;transition:background .2s}.btn-cancel[data-v-ae39aec8]:hover{background:#e0e0e0}.reminder-section[data-v-ae39aec8]{border-top:1px dashed #eee;margin-top:4px;padding-top:12px}.reminder-header[data-v-ae39aec8]{align-items:center;display:flex}.reminder-toggle[data-v-ae39aec8]{cursor:pointer;align-items:center;gap:10px;display:flex}.reminder-toggle input[data-v-ae39aec8]{display:none}.toggle-slider[data-v-ae39aec8]{background:#ddd;border-radius:12px;width:44px;height:24px;transition:background .3s;position:relative}.toggle-slider[data-v-ae39aec8]:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .3s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}.reminder-toggle input:checked+.toggle-slider[data-v-ae39aec8]{background:#4a90d9}.reminder-toggle input:checked+.toggle-slider[data-v-ae39aec8]:after{transform:translate(20px)}.toggle-label[data-v-ae39aec8]{color:#333;font-size:14px;font-weight:500}.reminder-options[data-v-ae39aec8]{background:#f8f9fa;border-radius:10px;flex-direction:column;gap:10px;margin-top:12px;padding:12px;display:flex}.option-row[data-v-ae39aec8]{align-items:center;gap:10px;display:flex}.option-row label[data-v-ae39aec8]{color:#666;min-width:90px;font-size:13px}.time-input[data-v-ae39aec8]{max-width:140px}.days-input[data-v-ae39aec8]{max-width:100px}.hint[data-v-ae39aec8]{color:#999;font-size:13px}.cal-switch[data-v-ae39aec8]{flex:1;gap:8px;display:flex}.cal-btn[data-v-ae39aec8]{color:#666;cursor:pointer;background:#fff;border:2px solid #eee;border-radius:10px;flex:1;padding:9px 14px;font-size:13px;font-weight:500;transition:all .2s}.cal-btn[data-v-ae39aec8]:hover{color:#4a90d9;border-color:#4a90d9}.cal-btn.active[data-v-ae39aec8]{color:#fff;background:#4a90d9;border-color:#4a90d9}.date-display[data-v-ae39aec8]{flex-wrap:wrap;gap:10px;display:flex}.date-chip[data-v-ae39aec8]{border-radius:10px;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:500;display:inline-flex}.date-chip.solar[data-v-ae39aec8]{color:#b8860b;background:#fff8e1;border:1px solid #ffe082}.date-chip.lunar[data-v-ae39aec8]{color:#6c3483;background:#f5eef9;border:1px solid #d7bde2}.chip-icon[data-v-ae39aec8]{font-size:13px}.chip-label[data-v-ae39aec8]{opacity:.8;font-size:11px}.chip-value[data-v-ae39aec8]{font-weight:600}.reminder-preview[data-v-ae39aec8]{color:#4a90d9;background:#e8f4fd;border-radius:8px;padding:8px 12px;font-size:13px;font-weight:500}@media (width<=600px){.form-row[data-v-ae39aec8]{flex-wrap:wrap}.form-input.small[data-v-ae39aec8]{width:100%}.option-row[data-v-ae39aec8]{flex-wrap:wrap}.option-row label[data-v-ae39aec8]{width:100%;min-width:auto}}.sidebar[data-v-87ed64b3]{background:#fafafa;border-right:1px solid #eee;flex-direction:column;flex-shrink:0;width:260px;height:100%;padding:20px 0;display:flex;overflow:hidden}.sidebar-header h2[data-v-87ed64b3]{color:#333;margin:0;padding:0 20px 16px;font-size:16px;font-weight:700}.category-list[data-v-87ed64b3]{scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;flex:1;gap:2px;padding:0 10px;display:flex;overflow-y:auto}.category-list[data-v-87ed64b3]::-webkit-scrollbar{display:none}.category-item[data-v-87ed64b3]{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:10px;width:100%;padding:10px 12px;font-size:14px;transition:background .15s;display:flex}.category-item[data-v-87ed64b3]:hover{background:#f0f0f0}.category-item.active[data-v-87ed64b3]{background:#e8f0fe}.cat-dot[data-v-87ed64b3]{border-radius:50%;flex-shrink:0;width:10px;height:10px}.cat-name[data-v-87ed64b3]{color:#444;flex:1}.cat-count[data-v-87ed64b3]{color:#aaa;background:#eee;border-radius:10px;padding:1px 8px;font-size:12px}.cat-actions[data-v-87ed64b3]{opacity:0;gap:2px;transition:opacity .15s;display:flex}.category-item:hover .cat-actions[data-v-87ed64b3]{opacity:1}.cat-action-btn[data-v-87ed64b3]{cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:24px;height:24px;padding:0;display:flex}.cat-action-btn svg[data-v-87ed64b3]{color:#888;width:14px;height:14px}.cat-action-btn[data-v-87ed64b3]:hover{background:#ddd}.cat-action-btn.del:hover svg[data-v-87ed64b3]{color:#e74c3c}.category-edit[data-v-87ed64b3]{background:#fff;border:1px solid #ddd;border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.edit-input[data-v-87ed64b3]{border:1px solid #ddd;border-radius:6px;outline:none;padding:6px 10px;font-size:13px}.edit-btns[data-v-87ed64b3]{gap:6px;display:flex}.btn-sm[data-v-87ed64b3]{cursor:pointer;color:#666;background:#eee;border:none;border-radius:6px;padding:4px 10px;font-size:12px}.btn-sm.save[data-v-87ed64b3]{color:#fff;background:#4a90d9}.add-category[data-v-87ed64b3]{border-top:1px solid #eee;margin-top:8px;padding:16px 20px}.add-category h3[data-v-87ed64b3]{color:#888;margin:0 0 10px;font-size:13px;font-weight:600}.add-input[data-v-87ed64b3]{box-sizing:border-box;border:1px solid #ddd;border-radius:8px;outline:none;width:100%;margin-bottom:8px;padding:8px 12px;font-size:13px}.add-input[data-v-87ed64b3]:focus{border-color:#4a90d9}.color-row[data-v-87ed64b3]{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.color-dot[data-v-87ed64b3]{cursor:pointer;border:2px solid #0000;border-radius:50%;width:20px;height:20px;transition:border-color .15s}.color-dot.selected[data-v-87ed64b3]{border-color:#333}.btn-add-cat[data-v-87ed64b3]{color:#fff;cursor:pointer;background:#4a90d9;border:none;border-radius:8px;width:100%;padding:8px;font-size:13px;font-weight:600;transition:background .2s}.btn-add-cat[data-v-87ed64b3]:hover{background:#3a7bc8}.confirm-overlay[data-v-67830976]{z-index:10000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-dialog[data-v-67830976]{text-align:center;background:#fff;border-radius:16px;flex-direction:column;align-items:center;width:90%;max-width:400px;padding:28px 28px 20px;display:flex;position:relative;overflow:hidden;box-shadow:0 20px 60px #00000040}.confirm-dialog[data-v-67830976]:before{content:"";height:4px;position:absolute;top:0;left:0;right:0}.confirm-dialog.type-info[data-v-67830976]:before{background:#4a90d9}.confirm-dialog.type-success[data-v-67830976]:before{background:#2ecc71}.confirm-dialog.type-warning[data-v-67830976]:before{background:#f39c12}.confirm-dialog.type-danger[data-v-67830976]:before{background:#e74c3c}.dialog-icon[data-v-67830976]{border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:16px;display:flex}.dialog-icon svg[data-v-67830976]{width:32px;height:32px}.type-info .dialog-icon[data-v-67830976]{color:#4a90d9;background:#e8f4fd}.type-success .dialog-icon[data-v-67830976]{color:#2ecc71;background:#e8f8ee}.type-warning .dialog-icon[data-v-67830976]{color:#f39c12;background:#fff8e1}.type-danger .dialog-icon[data-v-67830976]{color:#e74c3c;background:#fdeaea}.dialog-body[data-v-67830976]{width:100%}.dialog-title[data-v-67830976]{color:#1a1a2e;margin:0 0 8px;font-size:18px;font-weight:700}.dialog-message[data-v-67830976]{color:#666;word-break:break-word;margin:0;font-size:14px;line-height:1.6}.dialog-actions[data-v-67830976]{justify-content:center;gap:12px;width:100%;margin-top:24px;display:flex}.btn-cancel[data-v-67830976],.btn-confirm[data-v-67830976]{cursor:pointer;border:none;border-radius:10px;min-width:90px;padding:10px 24px;font-size:14px;font-weight:600;transition:all .2s}.btn-cancel[data-v-67830976]{color:#666;background:#f0f0f0}.btn-cancel[data-v-67830976]:hover{background:#e0e0e0}.btn-confirm[data-v-67830976]{color:#fff}.btn-info[data-v-67830976]{background:#4a90d9}.btn-info[data-v-67830976]:hover{background:#3a7bc8}.btn-success[data-v-67830976]{background:#2ecc71}.btn-success[data-v-67830976]:hover{background:#27ae60}.btn-warning[data-v-67830976]{background:#f39c12}.btn-warning[data-v-67830976]:hover{background:#d68910}.btn-danger[data-v-67830976]{background:#e74c3c}.btn-danger[data-v-67830976]:hover{background:#c0392b}.confirm-enter-active[data-v-67830976],.confirm-leave-active[data-v-67830976]{transition:opacity .25s}.confirm-enter-active .confirm-dialog[data-v-67830976],.confirm-leave-active .confirm-dialog[data-v-67830976]{transition:transform .25s}.confirm-enter-from[data-v-67830976],.confirm-leave-to[data-v-67830976]{opacity:0}.confirm-enter-from .confirm-dialog[data-v-67830976],.confirm-leave-to .confirm-dialog[data-v-67830976]{transform:scale(.9)translateY(-10px)}.app-layout[data-v-7b0edf8e]{background:#f5f6f8;height:100%;display:flex;overflow:hidden}.main-content[data-v-7b0edf8e]{flex-direction:column;flex:1;gap:20px;max-width:800px;height:100%;padding:32px 40px;display:flex;position:relative;overflow:hidden}.top-bar[data-v-7b0edf8e]{justify-content:space-between;align-items:flex-start;display:flex}.page-title[data-v-7b0edf8e]{color:#1a1a2e;margin:0;font-size:28px;font-weight:700}.page-stats[data-v-7b0edf8e]{color:#999;margin:4px 0 0;font-size:13px}.filter-bar[data-v-7b0edf8e]{background:#fff;border:1px solid #eee;border-radius:10px;gap:4px;width:fit-content;padding:4px;display:flex}.filter-bar button[data-v-7b0edf8e]{color:#888;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:6px 16px;font-size:13px;transition:all .15s}.filter-bar button.active[data-v-7b0edf8e]{color:#fff;background:#4a90d9}.filter-bar button[data-v-7b0edf8e]:hover:not(.active){background:#f5f5f5}.todo-list[data-v-7b0edf8e]{scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;flex:1;gap:8px;display:flex;overflow-y:auto}.todo-list[data-v-7b0edf8e]::-webkit-scrollbar{display:none}.empty-state[data-v-7b0edf8e]{text-align:center;color:#aaa;padding:48px 20px;font-size:15px}.fab-add[data-v-7b0edf8e]{color:#fff;cursor:pointer;z-index:50;background:#4a90d9;border:none;border-radius:30px;align-items:center;gap:8px;padding:14px 24px;font-size:14px;font-weight:600;transition:all .2s;display:flex;position:fixed;bottom:32px;right:32px;box-shadow:0 6px 20px #4a90d966}.fab-add svg[data-v-7b0edf8e]{width:18px;height:18px}.fab-add[data-v-7b0edf8e]:hover{background:#3a7bc8;transform:translateY(-2px);box-shadow:0 8px 24px #4a90d980}@media (width<=768px){.app-layout[data-v-7b0edf8e]{flex-direction:column}.sidebar[data-v-7b0edf8e]{border-bottom:1px solid #eee;border-right:none;width:100%}.main-content[data-v-7b0edf8e]{padding:20px}}.form-modal-overlay[data-v-7b0edf8e]{z-index:9999;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000073;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.form-modal[data-v-7b0edf8e]{background:#fff;border-radius:16px;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000040}.form-modal-header[data-v-7b0edf8e]{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:20px 24px 12px;display:flex}.form-modal-header h3[data-v-7b0edf8e]{color:#1a1a2e;margin:0;font-size:18px;font-weight:700}.modal-close[data-v-7b0edf8e]{color:#999;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:24px;line-height:1;transition:all .2s;display:flex}.modal-close[data-v-7b0edf8e]:hover{color:#666;background:#f0f0f0}.form-modal[data-v-7b0edf8e] .todo-form{border:none;padding:20px 24px 24px}.modal-enter-active[data-v-7b0edf8e],.modal-leave-active[data-v-7b0edf8e]{transition:opacity .25s}.modal-enter-active .form-modal[data-v-7b0edf8e],.modal-leave-active .form-modal[data-v-7b0edf8e]{transition:transform .25s}.modal-enter-from[data-v-7b0edf8e],.modal-leave-to[data-v-7b0edf8e]{opacity:0}.modal-enter-from .form-modal[data-v-7b0edf8e],.modal-leave-to .form-modal[data-v-7b0edf8e]{transform:scale(.95)translateY(-10px)}.note-form[data-v-41d87d72]{box-sizing:border-box;background:#fff;border-radius:12px;flex-direction:column;flex:1;gap:12px;width:100%;min-height:0;padding:24px;display:flex;box-shadow:0 2px 8px #0000000f}.form-header[data-v-41d87d72]{flex-direction:column;flex-shrink:0;gap:2px;display:flex}.content-wrap[data-v-41d87d72]{box-sizing:border-box;flex-direction:column;flex:1;gap:2px;width:100%;min-height:0;display:flex}.char-counter[data-v-41d87d72]{color:#aaa;text-align:right;padding-right:2px;font-size:11px}.title-input[data-v-41d87d72]{box-sizing:border-box;border:2px solid #e8e8e8;border-radius:10px;outline:none;width:100%;padding:12px 16px;font-size:18px;font-weight:600;transition:border-color .2s}.title-input[data-v-41d87d72]:focus{border-color:#4a90d9}.content-wrap[data-v-41d87d72] .rich-editor{box-sizing:border-box;flex-direction:column;flex:1;width:100%;min-height:0;display:flex}.content-wrap[data-v-41d87d72] .rich-content{flex:1;min-height:120px;max-height:none;overflow-y:auto}.form-actions[data-v-41d87d72]{border-top:1px solid #f0f0f0;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding-top:8px;display:flex}.folder-selector[data-v-41d87d72]{align-items:center;gap:6px;display:flex}.folder-label[data-v-41d87d72]{color:#888;font-size:13px}.folder-select[data-v-41d87d72]{cursor:pointer;color:#555;background:#fff;border:1px solid #ddd;border-radius:6px;outline:none;padding:6px 10px;font-size:13px}.folder-select[data-v-41d87d72]:focus{border-color:#4a90d9}.actions-buttons[data-v-41d87d72]{gap:12px;display:flex}.btn-cancel[data-v-41d87d72]{color:#666;cursor:pointer;background:#f5f5f5;border:none;border-radius:10px;padding:10px 24px;font-size:14px;transition:background .2s}.btn-cancel[data-v-41d87d72]:hover{background:#e8e8e8}.btn-save[data-v-41d87d72]{color:#fff;cursor:pointer;background:#4a90d9;border:none;border-radius:10px;padding:10px 24px;font-size:14px;font-weight:600;transition:background .2s}.btn-save[data-v-41d87d72]:hover{background:#3a7bc8}.notes-layout[data-v-172c8488]{background:#f5f6f8;flex:1;width:100%;min-width:0;height:100%;display:flex;overflow:hidden}.sidebar[data-v-172c8488]{background:#fff;border-right:1px solid #eee;flex-direction:column;flex-shrink:0;width:280px;height:100%;display:flex;overflow:hidden}.folder-section[data-v-172c8488]{border-bottom:1px solid #eee;flex-direction:column;flex-shrink:0;max-height:45%;padding:16px 0 8px;display:flex;overflow:hidden}.note-list-section[data-v-172c8488]{flex-direction:column;flex:1;min-height:0;padding-top:12px;display:flex;overflow:hidden}.sidebar-header[data-v-172c8488]{justify-content:space-between;align-items:center;padding:0 16px 12px;display:flex}.sidebar-header h3[data-v-172c8488]{color:#333;margin:0;font-size:14px;font-weight:600}.btn-new-folder[data-v-172c8488]{cursor:pointer;background:#f0f0f0;border:none;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;transition:background .2s;display:flex}.btn-new-folder[data-v-172c8488]:hover{background:#e8e8e8}.btn-new-folder svg[data-v-172c8488]{color:#666;width:16px;height:16px}.new-folder-form[data-v-172c8488]{gap:6px;padding:0 16px 12px;display:flex}.new-folder-form input[data-v-172c8488]{border:1px solid #ddd;border-radius:6px;outline:none;flex:1;padding:6px 10px;font-size:13px}.new-folder-form input[data-v-172c8488]:focus{border-color:#4a90d9}.btn-create[data-v-172c8488]{color:#fff;cursor:pointer;background:#4a90d9;border:none;border-radius:6px;padding:6px 12px;font-size:12px}.btn-cancel-small[data-v-172c8488]{cursor:pointer;color:#666;background:#eee;border:none;border-radius:6px;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:14px;display:flex}.folder-list[data-v-172c8488]{scrollbar-width:none;-ms-overflow-style:none;flex:1;min-height:0;padding:0 10px 8px;overflow-y:auto}.folder-list[data-v-172c8488]::-webkit-scrollbar{display:none}.folder-item[data-v-172c8488]{cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;transition:background .15s;display:flex;position:relative}.folder-item[data-v-172c8488]:hover{background:#f5f5f5}.folder-item.active[data-v-172c8488]{background:#e8f0fe}.folder-icon[data-v-172c8488]{color:#888;flex-shrink:0;width:16px;height:16px}.folder-item.active .folder-icon[data-v-172c8488]{color:#4a90d9}.folder-name[data-v-172c8488]{color:#444;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;overflow:hidden}.folder-count[data-v-172c8488]{color:#999;text-align:center;background:#eee;border-radius:8px;min-width:20px;padding:1px 6px;font-size:11px}.folder-actions[data-v-172c8488]{opacity:0;gap:2px;transition:opacity .15s;display:flex}.folder-item:hover .folder-actions[data-v-172c8488]{opacity:1}.folder-action-btn[data-v-172c8488]{cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:22px;height:22px;padding:0;display:flex}.folder-action-btn svg[data-v-172c8488]{color:#888;width:12px;height:12px}.folder-action-btn[data-v-172c8488]:hover{background:#ddd}.folder-action-btn.del:hover svg[data-v-172c8488]{color:#e74c3c}.folder-edit[data-v-172c8488]{background:#fff;border:1px solid #ddd;border-radius:8px;gap:6px;margin:2px 0;padding:6px 10px;display:flex}.edit-input[data-v-172c8488]{border:1px solid #ddd;border-radius:4px;outline:none;flex:1;padding:4px 8px;font-size:12px}.btn-save-sm[data-v-172c8488]{color:#fff;cursor:pointer;background:#4a90d9;border:none;border-radius:4px;padding:4px 8px;font-size:11px}.notes-main[data-v-172c8488]{box-sizing:border-box;flex-direction:column;flex:1;width:100%;height:100%;padding:24px 32px;display:flex;overflow:hidden}.edit-header[data-v-172c8488]{flex-shrink:0;align-items:center;gap:12px;margin-bottom:16px;display:flex}.btn-back[data-v-172c8488]{cursor:pointer;color:#666;background:#fff;border:1px solid #e0e0e0;border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;padding:0;transition:all .2s;display:flex}.btn-back svg[data-v-172c8488]{width:18px;height:18px}.btn-back[data-v-172c8488]:hover{color:#333;background:#f5f5f5;border-color:#ccc}.edit-body[data-v-172c8488]{box-sizing:border-box;flex-direction:column;flex:1;width:100%;min-height:0;display:flex;overflow:hidden}.page-title[data-v-172c8488]{color:#1a1a2e;margin:0;font-size:24px;font-weight:700}.search-box[data-v-172c8488]{flex:none;max-width:none;padding:0 10px 8px;position:relative}.search-box input[data-v-172c8488]{box-sizing:border-box;border:1px solid #ddd;border-radius:8px;outline:none;width:100%;padding:8px 36px 8px 12px;font-size:13px}.search-box input[data-v-172c8488]:focus{border-color:#4a90d9}.btn-search[data-v-172c8488]{cursor:pointer;background:0 0;border:none;padding:0;position:absolute;top:50%;right:18px;transform:translateY(-50%)}.btn-search svg[data-v-172c8488]{color:#888;width:14px;height:14px}.btn-clear[data-v-172c8488]{cursor:pointer;color:#666;background:#ddd;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.note-title-list[data-v-172c8488]{scrollbar-width:none;-ms-overflow-style:none;flex:1;padding:0 8px 8px;overflow-y:auto}.note-title-list[data-v-172c8488]::-webkit-scrollbar{display:none}.note-title-item[data-v-172c8488]{cursor:pointer;border-radius:8px;margin-bottom:2px;padding:10px 12px;transition:background .15s}.note-title-item[data-v-172c8488]:hover{background:#f5f5f5}.note-title-item.active[data-v-172c8488]{background:#e8f0fe}.note-title-text[data-v-172c8488]{color:#333;text-overflow:ellipsis;white-space:nowrap;margin-bottom:4px;font-size:14px;font-weight:500;overflow:hidden}.note-title-item.active .note-title-text[data-v-172c8488]{color:#4a90d9}.note-title-meta[data-v-172c8488]{color:#aaa;font-size:11px}.empty-state-sm[data-v-172c8488]{text-align:center;color:#aaa;padding:24px 12px;font-size:13px}.detail-header[data-v-172c8488]{flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px;display:flex}.detail-title[data-v-172c8488]{color:#1a1a2e;word-break:break-word;flex:1;min-width:0;margin:0;font-size:26px;font-weight:700}.detail-actions[data-v-172c8488]{flex-shrink:0;gap:8px;display:flex}.btn-action[data-v-172c8488]{color:#fff;cursor:pointer;background:#4a90d9;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.btn-action svg[data-v-172c8488]{width:15px;height:15px}.btn-action[data-v-172c8488]:hover{background:#3a7bc8}.btn-action.del[data-v-172c8488]{color:#666;background:#fff;border:1px solid #ddd}.btn-action.del[data-v-172c8488]:hover{color:#e74c3c;background:#fef0ef;border-color:#f5b7b1}.detail-meta[data-v-172c8488]{color:#aaa;flex-shrink:0;margin-bottom:16px;font-size:12px}.note-detail-content[data-v-172c8488]{color:#333;background:#fff;border:1px solid #eee;border-radius:12px;flex:1;min-height:0;padding:24px 28px;font-size:15px;line-height:1.8;overflow-y:auto}.note-detail-content[data-v-172c8488] p{margin:0 0 12px}.note-detail-content[data-v-172c8488] p:last-child{margin-bottom:0}.note-detail-content[data-v-172c8488] ul,.note-detail-content[data-v-172c8488] ol{margin:8px 0;padding-left:24px}.note-detail-content[data-v-172c8488] li{margin:4px 0}.note-detail-content[data-v-172c8488] b,.note-detail-content[data-v-172c8488] strong{font-weight:600}.note-detail-content[data-v-172c8488] a{color:#4a90d9}.empty-detail[data-v-172c8488]{color:#aaa;flex-direction:column;justify-content:center;align-items:center;height:100%;font-size:15px;display:flex}.empty-detail .empty-icon[data-v-172c8488]{margin-bottom:16px;font-size:56px}.empty-detail p[data-v-172c8488]{margin:0}@media (width<=768px){.sidebar[data-v-172c8488]{width:220px}.notes-main[data-v-172c8488]{padding:20px}}.reminder-form[data-v-b0702517]{flex-direction:column;gap:12px;display:flex}.input-wrap[data-v-b0702517]{flex-direction:column;gap:2px;display:flex}.char-counter[data-v-b0702517]{color:#aaa;text-align:right;padding-right:2px;font-size:11px}.form-input[data-v-b0702517]{box-sizing:border-box;border:2px solid #eee;border-radius:10px;outline:none;width:100%;padding:12px 16px;font-size:15px;transition:border-color .2s}.form-input[data-v-b0702517]:focus{border-color:#9b59b6}.form-select[data-v-b0702517]{cursor:pointer;background:#fff;border:2px solid #eee;border-radius:10px;outline:none;flex:1;padding:10px 12px;font-size:14px}.form-select[data-v-b0702517]:focus{border-color:#9b59b6}.lunar-select[data-v-b0702517]{flex:none;min-width:110px}.option-row[data-v-b0702517]{align-items:center;gap:12px;display:flex}.option-row label[data-v-b0702517]{color:#666;min-width:90px;font-size:13px;font-weight:500}.time-input[data-v-b0702517]{max-width:160px}.days-input[data-v-b0702517]{max-width:100px}.hint[data-v-b0702517]{color:#999;font-size:13px}.cal-switch[data-v-b0702517]{flex:1;gap:8px;display:flex}.cal-btn[data-v-b0702517]{color:#666;cursor:pointer;background:#fff;border:2px solid #eee;border-radius:10px;flex:1;padding:10px 16px;font-size:14px;font-weight:500;transition:all .2s}.cal-btn[data-v-b0702517]:hover{color:#9b59b6;border-color:#9b59b6}.cal-btn.active[data-v-b0702517]{color:#fff;background:#9b59b6;border-color:#9b59b6}.weekday-group[data-v-b0702517]{flex-wrap:wrap;flex:1;gap:6px;display:flex}.weekday-btn[data-v-b0702517]{color:#666;cursor:pointer;background:#fff;border:2px solid #eee;border-radius:8px;padding:6px 12px;font-size:13px;transition:all .15s}.weekday-btn[data-v-b0702517]:hover{color:#9b59b6;border-color:#9b59b6}.weekday-btn.active[data-v-b0702517]{color:#fff;background:#9b59b6;border-color:#9b59b6}.date-display[data-v-b0702517]{flex-wrap:wrap;gap:10px;display:flex}.date-chip[data-v-b0702517]{border-radius:10px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;display:inline-flex}.date-chip.solar[data-v-b0702517]{color:#b8860b;background:#fff8e1;border:1px solid #ffe082}.date-chip.lunar[data-v-b0702517]{color:#6c3483;background:#f5eef9;border:1px solid #d7bde2}.chip-icon[data-v-b0702517]{font-size:14px}.chip-label[data-v-b0702517]{opacity:.8;font-size:11px}.chip-value[data-v-b0702517]{font-weight:600}.reminder-preview[data-v-b0702517]{color:#9b59b6;background:#f5eef9;border-radius:10px;padding:10px 14px;font-size:13px;font-weight:500}.form-btns[data-v-b0702517]{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.btn-primary[data-v-b0702517]{color:#fff;cursor:pointer;background:#9b59b6;border:none;border-radius:10px;padding:10px 22px;font-size:14px;font-weight:600;transition:background .2s}.btn-primary[data-v-b0702517]:hover{background:#8e44ad}.btn-cancel[data-v-b0702517]{color:#666;cursor:pointer;background:#f0f0f0;border:none;border-radius:10px;padding:10px 18px;font-size:14px;transition:background .2s}.btn-cancel[data-v-b0702517]:hover{background:#e0e0e0}@media (width<=600px){.option-row[data-v-b0702517]{flex-wrap:wrap}.option-row label[data-v-b0702517]{width:100%;min-width:auto}}.reminder-layout[data-v-653a41f6]{background:#f5f6f8;height:100%;display:flex;overflow:hidden}.main-content[data-v-653a41f6]{flex-direction:column;flex:1;gap:20px;max-width:800px;height:100%;margin:0 auto;padding:32px 40px;display:flex;position:relative;overflow:hidden}.top-bar[data-v-653a41f6]{justify-content:space-between;align-items:flex-start;display:flex}.page-title[data-v-653a41f6]{color:#1a1a2e;margin:0;font-size:28px;font-weight:700}.page-stats[data-v-653a41f6]{color:#999;margin:4px 0 0;font-size:13px}.intro-banner[data-v-653a41f6]{background:linear-gradient(135deg,#f5eef9,#ede3f7);border-left:4px solid #9b59b6;border-radius:14px;align-items:center;gap:14px;padding:16px 20px;display:flex}.banner-icon[data-v-653a41f6]{font-size:28px}.banner-text[data-v-653a41f6]{flex-direction:column;gap:2px;display:flex}.banner-text strong[data-v-653a41f6]{color:#6c3483;font-size:15px}.banner-text span[data-v-653a41f6]{color:#8e5ba6;font-size:13px}.reminder-list[data-v-653a41f6]{scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;flex:1;gap:10px;display:flex;overflow-y:auto}.reminder-list[data-v-653a41f6]::-webkit-scrollbar{display:none}.empty-state[data-v-653a41f6]{text-align:center;color:#aaa;padding:48px 20px;font-size:15px}.reminder-item[data-v-653a41f6]{background:#fff;border:1px solid #eee;border-radius:12px;justify-content:space-between;align-items:center;padding:16px 18px;transition:all .2s;display:flex}.reminder-item[data-v-653a41f6]:hover{border-color:#ddd;box-shadow:0 2px 12px #0000000f}.reminder-item.disabled[data-v-653a41f6]{opacity:.55;background:#fafafa}.reminder-left[data-v-653a41f6]{flex:1;align-items:center;gap:14px;min-width:0;display:flex}.reminder-icon[data-v-653a41f6]{color:#f39c12;background:#fff8e1;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.reminder-icon svg[data-v-653a41f6]{width:20px;height:20px}.reminder-icon.type-daily[data-v-653a41f6]{color:#4a90d9;background:#e8f4fd}.reminder-icon.type-weekly[data-v-653a41f6]{color:#2ecc71;background:#e8f8ee}.reminder-icon.type-monthly[data-v-653a41f6]{color:#e74c3c;background:#fdeaea}.reminder-icon.type-yearly[data-v-653a41f6]{color:#9b59b6;background:#f5eef9}.reminder-icon.type-once[data-v-653a41f6]{color:#f39c12;background:#fff8e1}.reminder-content[data-v-653a41f6]{flex-direction:column;gap:4px;min-width:0;display:flex}.reminder-title-row[data-v-653a41f6]{align-items:center;gap:8px;display:flex}.reminder-title[data-v-653a41f6]{color:#333;word-break:break-word;font-size:15px;font-weight:600}.type-badge[data-v-653a41f6]{color:#666;background:#f0f0f0;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:600}.type-badge.badge-daily[data-v-653a41f6]{color:#4a90d9;background:#e8f4fd}.type-badge.badge-weekly[data-v-653a41f6]{color:#2ecc71;background:#e8f8ee}.type-badge.badge-monthly[data-v-653a41f6]{color:#e74c3c;background:#fdeaea}.type-badge.badge-yearly[data-v-653a41f6]{color:#9b59b6;background:#f5eef9}.type-badge.badge-once[data-v-653a41f6]{color:#f39c12;background:#fff8e1}.reminder-desc[data-v-653a41f6]{color:#999;word-break:break-word;font-size:13px}.reminder-time[data-v-653a41f6]{color:#9b59b6;align-items:center;gap:4px;font-size:12px;font-weight:500;display:inline-flex}.reminder-time svg[data-v-653a41f6]{width:12px;height:12px}.date-chips[data-v-653a41f6]{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.date-chip[data-v-653a41f6]{border-radius:6px;align-items:center;gap:3px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.date-chip.solar[data-v-653a41f6]{color:#b8860b;background:#fff8e1}.date-chip.lunar[data-v-653a41f6]{color:#6c3483;background:#f5eef9}.chip-icon[data-v-653a41f6]{font-size:11px}.reminder-actions[data-v-653a41f6]{flex-shrink:0;align-items:center;gap:8px;display:flex}.switch[data-v-653a41f6]{cursor:pointer;width:42px;height:24px;display:inline-block;position:relative}.switch input[data-v-653a41f6]{opacity:0;width:0;height:0}.slider[data-v-653a41f6]{background:#ddd;border-radius:12px;transition:background .3s;position:absolute;inset:0}.slider[data-v-653a41f6]:before{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .3s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.switch input:checked+.slider[data-v-653a41f6]{background:#9b59b6}.switch input:checked+.slider[data-v-653a41f6]:before{transform:translate(18px)}.icon-btn[data-v-653a41f6]{cursor:pointer;background:#f5f5f5;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;transition:background .2s;display:flex}.icon-btn svg[data-v-653a41f6]{color:#666;width:16px;height:16px}.icon-btn[data-v-653a41f6]:hover{background:#e8e8e8}.icon-btn.delete[data-v-653a41f6]:hover{background:#fee}.icon-btn.delete:hover svg[data-v-653a41f6]{color:#e74c3c}.fab-add[data-v-653a41f6]{color:#fff;cursor:pointer;z-index:50;background:#9b59b6;border:none;border-radius:30px;align-items:center;gap:8px;padding:14px 24px;font-size:14px;font-weight:600;transition:all .2s;display:flex;position:fixed;bottom:32px;right:32px;box-shadow:0 6px 20px #9b59b666}.fab-add svg[data-v-653a41f6]{width:18px;height:18px}.fab-add[data-v-653a41f6]:hover{background:#8e44ad;transform:translateY(-2px);box-shadow:0 8px 24px #9b59b680}.form-modal-overlay[data-v-653a41f6]{z-index:9999;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000073;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.form-modal[data-v-653a41f6]{background:#fff;border-radius:16px;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000040}.form-modal-header[data-v-653a41f6]{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.form-modal-header h3[data-v-653a41f6]{color:#1a1a2e;margin:0;font-size:18px;font-weight:700}.modal-close[data-v-653a41f6]{color:#999;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:24px;line-height:1;transition:all .2s;display:flex}.modal-close[data-v-653a41f6]:hover{color:#666;background:#f0f0f0}.form-modal-body[data-v-653a41f6]{padding:20px 24px 24px}.modal-enter-active[data-v-653a41f6],.modal-leave-active[data-v-653a41f6]{transition:opacity .25s}.modal-enter-active .form-modal[data-v-653a41f6],.modal-leave-active .form-modal[data-v-653a41f6]{transition:transform .25s}.modal-enter-from[data-v-653a41f6],.modal-leave-to[data-v-653a41f6]{opacity:0}.modal-enter-from .form-modal[data-v-653a41f6],.modal-leave-to .form-modal[data-v-653a41f6]{transform:scale(.95)translateY(-10px)}@media (width<=768px){.main-content[data-v-653a41f6]{padding:20px}}.reports-layout[data-v-8c7c9433]{background:#f5f6f8;flex:1;width:100%;min-width:0;height:100%;display:flex;overflow:hidden}.cal-panel[data-v-8c7c9433]{scrollbar-width:none;background:#fff;border-right:1px solid #eee;flex-shrink:0;width:356px;padding:20px 18px 12px;overflow-y:auto}.cal-panel[data-v-8c7c9433]::-webkit-scrollbar{display:none}.month-nav[data-v-8c7c9433]{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.month-btn[data-v-8c7c9433]{color:#666;cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-radius:7px;justify-content:center;align-items:center;width:26px;height:26px;padding:0;font-size:15px;line-height:1;transition:all .2s;display:flex}.month-btn[data-v-8c7c9433]:hover{color:#4a90d9;border-color:#4a90d9}.month-title[data-v-8c7c9433]{color:#1a1a2e;font-size:16px;font-weight:700}.back-today-row[data-v-8c7c9433]{text-align:center;margin-bottom:8px}.btn-back-today[data-v-8c7c9433]{color:#666;cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-radius:7px;padding:4px 12px;font-size:12px;transition:all .2s}.btn-back-today[data-v-8c7c9433]:hover{color:#4a90d9;border-color:#4a90d9}.calendar-weekdays[data-v-8c7c9433]{grid-template-columns:repeat(7,1fr);margin-bottom:4px;display:grid}.calendar-weekdays span[data-v-8c7c9433]{text-align:center;color:#999;padding:2px 0;font-size:11px;font-weight:600}.calendar-grid[data-v-8c7c9433]{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal-cell[data-v-8c7c9433]{color:#333;cursor:pointer;border:2px solid #0000;border-radius:10px;justify-content:center;align-items:center;height:40px;font-size:14px;transition:background .15s;display:flex;position:relative}.cal-cell[data-v-8c7c9433]:hover:not(.disabled){background:#f0f6ff}.cal-cell.out[data-v-8c7c9433]{color:#ccc;cursor:default}.cal-cell.disabled[data-v-8c7c9433]{cursor:default;color:#bbb}.cal-cell.out.disabled[data-v-8c7c9433]{color:#e0e0e0}.cal-cell.marked[data-v-8c7c9433]{background:#e8f0fe;font-weight:600}.cal-cell.selected[data-v-8c7c9433]{color:#fff;background:#4a90d9;font-weight:700}.cal-cell.today[data-v-8c7c9433]:not(.selected){border-color:#4a90d9}.cell-day[data-v-8c7c9433]{line-height:1}.cell-dot[data-v-8c7c9433]{background:#4a90d9;border-radius:50%;width:8px;height:8px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.cal-cell.selected .cell-dot[data-v-8c7c9433]{background:#fff}.calendar-legend[data-v-8c7c9433]{justify-content:center;gap:14px;padding:10px 0 2px;display:flex}.legend-item[data-v-8c7c9433]{color:#999;align-items:center;gap:5px;font-size:11px;display:flex}.legend-dot[data-v-8c7c9433]{background:#4a90d9;border-radius:50%;width:6px;height:6px}.legend-ring[data-v-8c7c9433]{box-sizing:border-box;border:2px solid #4a90d9;border-radius:3px;width:9px;height:9px}.weekly-list-block[data-v-8c7c9433]{border-top:1px solid #f0f0f0;margin-top:16px;padding-top:12px}.wl-title[data-v-8c7c9433]{color:#666;margin-bottom:8px;font-size:13px;font-weight:700}.wl-empty[data-v-8c7c9433]{color:#bbb;text-align:center;padding:8px 0;font-size:12px}.wl-item[data-v-8c7c9433]{cursor:pointer;border-radius:8px;padding:8px 10px;transition:background .15s}.wl-item[data-v-8c7c9433]:hover{background:#f0f6ff}.wl-range[data-v-8c7c9433]{color:#333;font-size:13px;font-weight:600}.wl-summary[data-v-8c7c9433]{color:#999;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:12px;overflow:hidden}.reports-main[data-v-8c7c9433]{box-sizing:border-box;flex-direction:column;flex:1;width:100%;min-width:0;height:100%;padding:20px 28px 0;display:flex;overflow:hidden}.content-toolbar[data-v-8c7c9433]{flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.content-title[data-v-8c7c9433]{color:#1a1a2e;flex:1;min-width:0;margin:0;font-size:22px;font-weight:700}.topbar-actions[data-v-8c7c9433]{flex-shrink:0;align-items:center;gap:8px;display:flex}.btn-new-today[data-v-8c7c9433]{color:#fff;cursor:pointer;background:#4a90d9;border:none;border-radius:8px;flex-shrink:0;padding:8px 16px;font-size:13px;font-weight:600;transition:background .2s}.btn-new-today[data-v-8c7c9433]:hover{background:#3a7bc8}.btn-tool[data-v-8c7c9433]{color:#555;cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.btn-tool svg[data-v-8c7c9433]{width:14px;height:14px}.btn-tool[data-v-8c7c9433]:hover{color:#4a90d9;border-color:#4a90d9}.content-area[data-v-8c7c9433]{flex:1;min-height:0;padding:0 0 20px;overflow-y:auto}.report-form[data-v-8c7c9433]{flex-direction:column;gap:12px;display:flex}.form-row.date-row[data-v-8c7c9433]{background:#fff;border:1px solid #eee;border-radius:10px;flex-shrink:0;align-items:center;gap:10px;padding:10px 14px;display:flex}.form-row.date-row label[data-v-8c7c9433]{color:#666;font-size:13px;font-weight:600}.date-input[data-v-8c7c9433]{color:#333;background:#fff;border:1px solid #ddd;border-radius:6px;outline:none;padding:6px 10px;font-size:14px}.date-input[data-v-8c7c9433]:disabled{color:#888;cursor:not-allowed;background:#f5f5f5}.date-locked[data-v-8c7c9433]{color:#aaa;font-size:12px}.section[data-v-8c7c9433]{background:#fff;border:1px solid #eee;border-radius:12px;flex-direction:column;min-height:130px;padding:12px 16px;display:flex}.section-head[data-v-8c7c9433]{flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.section-title[data-v-8c7c9433]{color:#333;font-size:14px;font-weight:600}.char-counter[data-v-8c7c9433]{color:#aaa;font-size:11px}.section-editor[data-v-8c7c9433]{flex-direction:column;flex:1;min-height:80px;display:flex;overflow:hidden}.section-editor[data-v-8c7c9433] .rich-editor{flex-direction:column;flex:1;min-height:0;display:flex}.section-editor[data-v-8c7c9433] .rich-content{flex:1;min-height:80px;max-height:none;overflow-y:auto}.form-actions[data-v-8c7c9433]{border-top:1px solid #f0f0f0;flex-shrink:0;align-items:center;gap:12px;margin-top:4px;padding:12px 0 4px;display:flex}.spacer[data-v-8c7c9433]{flex:1}.btn-action[data-v-8c7c9433]{color:#fff;cursor:pointer;background:#4a90d9;border:none;border-radius:8px;padding:9px 20px;font-size:13px;font-weight:600;transition:background .2s}.btn-action[data-v-8c7c9433]:hover{background:#3a7bc8}.btn-action.del[data-v-8c7c9433]{color:#666;background:#fff;border:1px solid #ddd}.btn-action.del[data-v-8c7c9433]:hover{color:#e74c3c;background:#fef0ef;border-color:#f5b7b1}.btn-cancel[data-v-8c7c9433]{color:#666;cursor:pointer;background:#f5f5f5;border:none;border-radius:8px;padding:9px 20px;font-size:13px}.btn-cancel[data-v-8c7c9433]:hover{background:#e8e8e8}.btn-save[data-v-8c7c9433]{color:#fff;cursor:pointer;background:#4a90d9;border:none;border-radius:8px;padding:9px 24px;font-size:14px;font-weight:600}.btn-save[data-v-8c7c9433]:hover:not(:disabled){background:#3a7bc8}.btn-save[data-v-8c7c9433]:disabled{cursor:not-allowed;background:#aac6e8}.detail-header[data-v-8c7c9433]{flex-shrink:0;justify-content:flex-end;align-items:center;gap:12px;margin-bottom:12px;display:flex}.detail-actions[data-v-8c7c9433]{flex-shrink:0;gap:8px;display:flex}.detail-scroll[data-v-8c7c9433]{flex:1;padding-right:4px;overflow-y:auto}.detail-section[data-v-8c7c9433]{background:#fff;border:1px solid #eee;border-radius:12px;margin-bottom:14px;padding:20px 24px}.ds-title[data-v-8c7c9433]{color:#4a90d9;margin:0 0 10px;font-size:15px;font-weight:600}.ds-content[data-v-8c7c9433]{color:#333;font-size:15px;line-height:1.8}.ds-content[data-v-8c7c9433] p{margin:0 0 10px}.ds-content[data-v-8c7c9433] p:last-child{margin-bottom:0}.ds-content[data-v-8c7c9433] ul,.ds-content[data-v-8c7c9433] ol{margin:8px 0;padding-left:24px}.empty-detail[data-v-8c7c9433]{color:#aaa;text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;font-size:15px;line-height:2;display:flex}.empty-detail .empty-icon[data-v-8c7c9433]{margin-bottom:12px;font-size:52px}.empty-detail p[data-v-8c7c9433]{margin:0}.modal-mask[data-v-8c7c9433]{z-index:1000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-dialog[data-v-8c7c9433]{background:#fff;border-radius:14px;flex-direction:column;width:720px;max-width:92vw;max-height:86vh;display:flex;overflow:hidden}.modal-header[data-v-8c7c9433]{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.modal-header h2[data-v-8c7c9433]{color:#333;margin:0;font-size:16px;font-weight:700}.modal-close[data-v-8c7c9433]{color:#999;cursor:pointer;background:0 0;border:none;font-size:18px}.modal-close[data-v-8c7c9433]:hover{color:#333}.modal-body[data-v-8c7c9433]{flex:1;padding:20px 24px;overflow-y:auto}.weekly-range[data-v-8c7c9433]{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.weekly-range label[data-v-8c7c9433]{color:#666;flex-direction:column;gap:4px;font-size:12px;display:flex}.weekly-range input[data-v-8c7c9433]{border:1px solid #ddd;border-radius:6px;outline:none;padding:7px 10px;font-size:13px}.btn-gen[data-v-8c7c9433]{color:#fff;cursor:pointer;background:#4a90d9;border:none;border-radius:8px;padding:9px 22px;font-size:14px;font-weight:600}.btn-gen[data-v-8c7c9433]:hover:not(:disabled){background:#3a7bc8}.btn-gen[data-v-8c7c9433]:disabled{cursor:not-allowed;background:#aac6e8}.weekly-status[data-v-8c7c9433]{font-size:13px;font-weight:600}.weekly-status.ok[data-v-8c7c9433]{color:#27ae60}.weekly-status.dirty[data-v-8c7c9433]{color:#e67e22}.weekly-hint[data-v-8c7c9433]{color:#aaa;margin-left:auto;font-size:12px}.weekly-rich[data-v-8c7c9433]{margin-top:14px}.weekly-rich[data-v-8c7c9433] .rich-content{min-height:320px;font-size:14.5px;line-height:1.8}.weekly-rich[data-v-8c7c9433] h2{color:#1a1a2e;margin:14px 0 8px;font-size:16px;font-weight:700}.weekly-rich[data-v-8c7c9433] h2:first-child{margin-top:0}.weekly-rich[data-v-8c7c9433] strong{color:#1a1a2e}.weekly-tip[data-v-8c7c9433]{text-align:center;color:#aaa;margin-top:10px;font-size:13px}.weekly-footer[data-v-8c7c9433]{border-top:1px solid #eee;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:14px 24px;display:flex}.footer-left[data-v-8c7c9433],.footer-right[data-v-8c7c9433]{gap:8px;display:flex}.btn-mini[data-v-8c7c9433]{color:#555;cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:7px;padding:7px 14px;font-size:13px;transition:all .2s}.btn-mini[data-v-8c7c9433]:hover:not(:disabled){color:#4a90d9;border-color:#4a90d9}.btn-mini[data-v-8c7c9433]:disabled{color:#bbb;cursor:not-allowed}.yearly-row[data-v-8c7c9433]{align-items:flex-end;gap:16px;display:flex}.yearly-row label[data-v-8c7c9433]{color:#666;flex-direction:column;gap:4px;font-size:12px;display:flex}.yearly-row input[data-v-8c7c9433]{border:1px solid #ddd;border-radius:6px;outline:none;width:120px;padding:7px 10px;font-size:14px}.yearly-tip[data-v-8c7c9433]{color:#999;margin:16px 0 0;font-size:13px;line-height:1.6}.msg-toast[data-v-8c7c9433]{z-index:10001;color:#333;background:#fff;border-left:4px solid #4a90d9;border-radius:12px;align-items:center;gap:10px;max-width:480px;padding:12px 20px;font-size:14px;display:flex;position:fixed;top:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #00000026}.msg-toast.t-success[data-v-8c7c9433]{border-left-color:#2ecc71}.msg-toast.t-error[data-v-8c7c9433]{border-left-color:#e74c3c}.mt-icon[data-v-8c7c9433]{color:#fff;background:#4a90d9;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.msg-toast.t-success .mt-icon[data-v-8c7c9433]{background:#2ecc71}.msg-toast.t-error .mt-icon[data-v-8c7c9433]{background:#e74c3c}.mt-icon svg[data-v-8c7c9433]{width:12px;height:12px}.mt-text[data-v-8c7c9433]{word-break:break-word;line-height:1.5}.msg-toast-enter-active[data-v-8c7c9433],.msg-toast-leave-active[data-v-8c7c9433]{transition:all .25s}.msg-toast-enter-from[data-v-8c7c9433],.msg-toast-leave-to[data-v-8c7c9433]{opacity:0;transform:translate(-50%)translateY(-12px)}@media (width<=960px){.cal-panel[data-v-8c7c9433]{width:260px;padding:14px 12px 8px}.cal-cell[data-v-8c7c9433]{height:32px;font-size:12px}.reports-main[data-v-8c7c9433]{padding:14px 16px 0}.content-title[data-v-8c7c9433]{font-size:18px}.detail-section[data-v-8c7c9433]{padding:14px 16px}}.settings-overlay[data-v-595ab5ad]{z-index:1000;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.settings-panel[data-v-595ab5ad]{background:#fff;border-radius:14px;flex-direction:column;width:680px;max-width:92vw;height:440px;max-height:88vh;display:flex;overflow:hidden;box-shadow:0 12px 40px #0000002e}.settings-header[data-v-595ab5ad]{border-bottom:1px solid #eee;flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.settings-header h2[data-v-595ab5ad]{color:#333;margin:0;font-size:16px;font-weight:700}.btn-close[data-v-595ab5ad]{cursor:pointer;color:#999;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:30px;height:30px;padding:0;transition:all .15s;display:flex}.btn-close svg[data-v-595ab5ad]{width:18px;height:18px}.btn-close[data-v-595ab5ad]:hover{color:#333;background:#f0f0f0}.settings-body[data-v-595ab5ad]{flex:1;display:flex;overflow:hidden}.settings-tabs[data-v-595ab5ad]{background:#fafbfc;border-right:1px solid #eee;flex-direction:column;flex-shrink:0;gap:4px;width:180px;padding:12px 10px;display:flex}.settings-tab[data-v-595ab5ad]{text-align:left;color:#666;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:10px 14px;font-size:14px;transition:all .15s}.settings-tab[data-v-595ab5ad]:hover{color:#333;background:#f0f0f0}.settings-tab.active[data-v-595ab5ad]{color:#4a90d9;background:#e8f0fe;font-weight:600}.settings-content[data-v-595ab5ad]{flex:1;padding:28px 32px;overflow-y:auto}.basic-settings h3[data-v-595ab5ad]{color:#333;margin:0 0 22px;font-size:15px;font-weight:600}.setting-row[data-v-595ab5ad]{border:1px solid #eee;border-radius:10px;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.setting-title[data-v-595ab5ad]{color:#333;font-size:14px;font-weight:600}.setting-desc[data-v-595ab5ad]{color:#999;margin-top:3px;font-size:12px}.switch[data-v-595ab5ad]{cursor:pointer;background:#ccc;border:none;border-radius:12px;flex-shrink:0;width:44px;height:24px;padding:0;transition:background .2s;position:relative}.switch.on[data-v-595ab5ad]{background:#4a90d9}.switch-knob[data-v-595ab5ad]{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}.switch.on .switch-knob[data-v-595ab5ad]{transform:translate(20px)}.password-form h3[data-v-595ab5ad]{color:#333;margin:0 0 4px;font-size:15px;font-weight:600}.form-tip[data-v-595ab5ad]{color:#999;margin:0 0 22px;font-size:13px}.form-field[data-v-595ab5ad]{margin-bottom:16px}.form-field label[data-v-595ab5ad]{color:#666;margin-bottom:6px;font-size:13px;display:block}.form-field input[data-v-595ab5ad]{color:#333;box-sizing:border-box;border:1px solid #ddd;border-radius:8px;outline:none;width:100%;padding:9px 12px;font-size:14px;transition:border-color .15s}.form-field input[data-v-595ab5ad]:focus{border-color:#4a90d9}.form-msg[data-v-595ab5ad]{margin:4px 0 14px;font-size:13px}.form-msg.error[data-v-595ab5ad]{color:#e74c3c}.form-msg.success[data-v-595ab5ad]{color:#2ecc71}.btn-submit[data-v-595ab5ad]{color:#fff;cursor:pointer;background:#4a90d9;border:none;border-radius:8px;padding:10px 22px;font-size:14px;font-weight:600;transition:background .2s}.btn-submit[data-v-595ab5ad]:hover:not(:disabled){background:#3a7bc8}.btn-submit[data-v-595ab5ad]:disabled{cursor:not-allowed;background:#aac6e8}.btn-wx-bind[data-v-595ab5ad]{color:#fff;cursor:pointer;background:#07c160;border:none;border-radius:8px;flex-shrink:0;padding:8px 18px;font-size:13px;font-weight:600;transition:background .2s}.btn-wx-bind[data-v-595ab5ad]:hover:not(:disabled){background:#06ad56}.btn-wx-bind[data-v-595ab5ad]:disabled{cursor:not-allowed;background:#9bd5b8}.wx-bound-badge[data-v-595ab5ad]{color:#07c160;background:#e8f7ef;border-radius:8px;flex-shrink:0;align-items:center;padding:6px 14px;font-size:13px;font-weight:600;display:inline-flex}.bind-qrcode-mask[data-v-595ab5ad]{z-index:1100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.bind-qrcode-dialog[data-v-595ab5ad]{text-align:center;background:#fff;border-radius:16px;width:340px;max-width:90vw;padding:40px 32px 32px;position:relative;box-shadow:0 16px 48px #0003}.bind-close[data-v-595ab5ad]{color:#999;cursor:pointer;background:0 0;border:none;font-size:20px;line-height:1;position:absolute;top:12px;right:16px}.bind-close[data-v-595ab5ad]:hover{color:#333}.bind-title[data-v-595ab5ad]{color:#1a1a2e;margin:0 0 8px;font-size:20px;font-weight:700}.bind-tip[data-v-595ab5ad]{color:#888;margin:0 0 24px;font-size:14px}.bind-qrcode-img-wrap[data-v-595ab5ad]{border:1px solid #f0f0f0;border-radius:12px;justify-content:center;align-items:center;width:240px;height:240px;margin:0 auto 20px;display:flex;overflow:hidden}.bind-qrcode-img[data-v-595ab5ad]{object-fit:contain;width:100%;height:100%}.bind-loading[data-v-595ab5ad]{color:#888;flex-direction:column;align-items:center;gap:12px;font-size:14px;display:flex}.bind-qrcode-mask .spinner[data-v-595ab5ad]{border:3px solid #e8e8e8;border-top-color:#07c160;border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin-595ab5ad}@keyframes spin-595ab5ad{to{transform:rotate(360deg)}}.bind-error[data-v-595ab5ad]{color:#e74c3c;flex-direction:column;align-items:center;gap:12px;font-size:14px;display:flex}.bind-qrcode-mask .btn-retry[data-v-595ab5ad]{color:#fff;cursor:pointer;background:#07c160;border:none;border-radius:8px;padding:8px 20px;font-size:14px}.bind-qrcode-mask .btn-retry[data-v-595ab5ad]:hover{background:#06ad56}.bind-status[data-v-595ab5ad]{color:#666;justify-content:center;align-items:center;gap:8px;margin-bottom:12px;font-size:14px;display:flex}.status-indicator[data-v-595ab5ad]{background:#07c160;border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite pulse-595ab5ad}@keyframes pulse-595ab5ad{0%,to{opacity:1}50%{opacity:.3}}.bind-hint[data-v-595ab5ad]{color:#aaa;margin:0;font-size:12px}.app-loading[data-v-1a2a03b9]{color:#888;background:#f5f6f8;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;display:flex}.loading-spinner[data-v-1a2a03b9]{border:3px solid #e0e0e0;border-top-color:#4a90d9;border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin-1a2a03b9}@keyframes spin-1a2a03b9{to{transform:rotate(360deg)}}.app-container[data-v-1a2a03b9]{background:#f5f6f8;flex-direction:column;height:100vh;display:flex;overflow:hidden}.main-nav[data-v-1a2a03b9]{z-index:100;background:#fff;border-bottom:1px solid #eee;flex-shrink:0;justify-content:space-between;align-items:center;padding:0 40px;display:flex}.nav-tabs[data-v-1a2a03b9]{gap:0;display:flex}.nav-actions[data-v-1a2a03b9]{align-items:center;gap:12px;display:flex}.user-name[data-v-1a2a03b9]{color:#666;font-size:14px;font-weight:500}.user-name.clickable[data-v-1a2a03b9]{cursor:pointer;border-radius:8px;padding:4px 10px;transition:all .15s}.user-name.clickable[data-v-1a2a03b9]:hover{color:#4a90d9;background:#e8f0fe}.btn-logout[data-v-1a2a03b9]{color:#666;cursor:pointer;background:#f0f0f0;border:none;border-radius:8px;padding:6px 14px;font-size:13px;transition:background .2s}.btn-logout[data-v-1a2a03b9]:hover{color:#e74c3c;background:#e0e0e0}.nav-tab[data-v-1a2a03b9]{color:#888;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:16px 24px;font-size:14px;font-weight:500;transition:color .2s;display:flex;position:relative}.nav-tab svg[data-v-1a2a03b9]{width:18px;height:18px}.nav-tab[data-v-1a2a03b9]:hover,.nav-tab.active[data-v-1a2a03b9]{color:#4a90d9}.nav-tab.active[data-v-1a2a03b9]:after{content:"";background:#4a90d9;border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:0;left:0;right:0}.nav-tab.reminder-tab[data-v-1a2a03b9]:hover,.nav-tab.reminder-tab.active[data-v-1a2a03b9]{color:#9b59b6}.nav-tab.reminder-tab.active[data-v-1a2a03b9]:after{background:#9b59b6}.nav-tab.report-tab[data-v-1a2a03b9]:hover,.nav-tab.report-tab.active[data-v-1a2a03b9]{color:#16a085}.nav-tab.report-tab.active[data-v-1a2a03b9]:after{background:#16a085}.app-content[data-v-1a2a03b9]{flex:1;width:100%;min-width:0;display:flex;overflow:hidden}@media (width<=768px){.main-nav[data-v-1a2a03b9]{padding:0 20px}.nav-tab[data-v-1a2a03b9]{padding:12px 16px;font-size:13px}}.nav-tab.mini-tab[data-v-1a2a03b9]{color:#07c160;border-left:1px solid #f0f0f0;margin-left:8px;padding-left:20px}.nav-tab.mini-tab[data-v-1a2a03b9]:hover{color:#06ad56;background:#07c1600f}.nav-tab.mini-tab[data-v-1a2a03b9]:after{display:none}.mini-qrcode-mask[data-v-1a2a03b9]{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.mini-qrcode-dialog[data-v-1a2a03b9]{text-align:center;background:#fff;border-radius:16px;width:340px;max-width:90vw;padding:40px 32px 32px;position:relative;box-shadow:0 16px 48px #0003}.mini-close[data-v-1a2a03b9]{color:#999;cursor:pointer;background:0 0;border:none;font-size:20px;line-height:1;position:absolute;top:12px;right:16px}.mini-close[data-v-1a2a03b9]:hover{color:#333}.mini-title[data-v-1a2a03b9]{color:#1a1a2e;margin:0 0 8px;font-size:22px;font-weight:700}.mini-tip[data-v-1a2a03b9]{color:#888;margin:0 0 24px;font-size:14px}.mini-qrcode-img-wrap[data-v-1a2a03b9]{border:1px solid #f0f0f0;border-radius:12px;justify-content:center;align-items:center;width:240px;height:240px;margin:0 auto 20px;display:flex;overflow:hidden}.mini-qrcode-img[data-v-1a2a03b9]{object-fit:contain;width:100%;height:100%}.mini-loading[data-v-1a2a03b9]{color:#888;flex-direction:column;align-items:center;gap:12px;font-size:14px;display:flex}.mini-qrcode-mask .spinner[data-v-1a2a03b9]{border:3px solid #e8e8e8;border-top-color:#07c160;border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin-1a2a03b9}.mini-error[data-v-1a2a03b9]{color:#e74c3c;flex-direction:column;align-items:center;gap:12px;font-size:14px;display:flex}.btn-retry[data-v-1a2a03b9]{color:#fff;cursor:pointer;background:#07c160;border:none;border-radius:8px;padding:8px 20px;font-size:14px}.btn-retry[data-v-1a2a03b9]:hover{background:#06ad56}.mini-hint[data-v-1a2a03b9]{color:#aaa;margin:0;font-size:12px}.btn-notify[data-v-1a2a03b9]{color:#e67e22;cursor:pointer;background:#fff3e0;border:1px solid #ffb74d;border-radius:8px;padding:6px 12px;font-size:12px;transition:all .2s}.btn-notify[data-v-1a2a03b9]:hover{background:#ffe0b2}.reminder-toast[data-v-1a2a03b9]{z-index:9999;cursor:pointer;background:#fff;border-left:4px solid #ff9800;border-radius:12px;align-items:flex-start;gap:12px;max-width:360px;padding:16px;display:flex;position:fixed;top:20px;right:20px;box-shadow:0 8px 32px #00000026}.toast-icon[data-v-1a2a03b9]{flex-shrink:0;font-size:24px}.toast-content[data-v-1a2a03b9]{flex:1;min-width:0}.toast-title[data-v-1a2a03b9]{color:#333;word-break:break-word;margin-bottom:4px;font-size:15px;font-weight:600}.toast-desc[data-v-1a2a03b9]{color:#666;word-break:break-word;font-size:13px}.toast-close[data-v-1a2a03b9]{color:#999;cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:20px;transition:all .2s;display:flex}.toast-close[data-v-1a2a03b9]:hover{color:#666;background:#f0f0f0}.toast-enter-active[data-v-1a2a03b9],.toast-leave-active[data-v-1a2a03b9]{transition:all .3s}.toast-enter-from[data-v-1a2a03b9],.toast-leave-to[data-v-1a2a03b9]{opacity:0;transform:translate(100%)}
