@charset "UTF-8";.app-alert-overlay[data-v-c3841a3e]{position:fixed;inset:0;background:#4a3f3f59;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10000;display:flex;align-items:center;justify-content:center;padding:16px}.app-alert-box[data-v-c3841a3e]{background:var(--color-surface);border-radius:20px;padding:28px 24px 20px;width:100%;max-width:320px;box-shadow:0 20px 60px #ff85a133,0 4px 16px #0000001a;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px}.app-alert-box--danger[data-v-c3841a3e]{box-shadow:0 20px 60px #ff647833,0 4px 16px #0000001a;border-top:3px solid #FF7B8A}.app-alert-icon[data-v-c3841a3e]{font-size:2.2rem;line-height:1;margin-bottom:2px}.app-alert-title[data-v-c3841a3e]{font-size:1rem;font-weight:700;color:var(--color-text)}.app-alert-message[data-v-c3841a3e]{font-size:.875rem;color:var(--color-text-secondary);line-height:1.6;word-break:break-word}.app-alert-actions[data-v-c3841a3e]{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;margin-top:6px}.app-alert-actions--single[data-v-c3841a3e]{grid-template-columns:1fr}.app-alert-btn[data-v-c3841a3e]{padding:10px 0;border-radius:12px;font-size:.875rem;font-weight:600;border:none;cursor:pointer;transition:background .15s,transform .1s,box-shadow .15s}.app-alert-btn[data-v-c3841a3e]:active{transform:scale(.97)}.app-alert-btn--cancel[data-v-c3841a3e]{background:var(--color-border);color:var(--color-text-secondary)}.app-alert-btn--cancel[data-v-c3841a3e]:hover{background:#e8d4da}.app-alert-btn--confirm.app-alert-btn--default[data-v-c3841a3e]{background:var(--theme-primary-dark);color:#fff;box-shadow:0 4px 14px #ff85a166}.app-alert-btn--confirm.app-alert-btn--default[data-v-c3841a3e]:hover{background:#ff6d8f;box-shadow:0 6px 18px #ff85a180}.app-alert-btn--confirm.app-alert-btn--danger[data-v-c3841a3e]{background:#ff7b8a;color:#fff;box-shadow:0 4px 14px #ff647859}.app-alert-btn--confirm.app-alert-btn--danger[data-v-c3841a3e]:hover{background:#ff5a6e;box-shadow:0 6px 18px #ff647873}.alert-fade-enter-active[data-v-c3841a3e],.alert-fade-leave-active[data-v-c3841a3e]{transition:opacity .2s}.alert-fade-enter-from[data-v-c3841a3e],.alert-fade-leave-to[data-v-c3841a3e]{opacity:0}.alert-pop-enter-active[data-v-c3841a3e]{transition:opacity .2s,transform .2s}.alert-pop-leave-active[data-v-c3841a3e]{transition:opacity .15s,transform .15s}.alert-pop-enter-from[data-v-c3841a3e]{opacity:0;transform:scale(.88) translateY(12px)}.alert-pop-leave-to[data-v-c3841a3e]{opacity:0;transform:scale(.95)}#app-root{min-height:100vh}.modal-overlay{position:fixed;inset:0;background:#0000002e;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}@keyframes popIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-header h2,.modal-header h3{font-size:18px;font-weight:700}.modal-actions{display:flex;gap:10px;justify-content:flex-end}.modal-close{width:30px;height:30px;border-radius:50%;border:none;background:transparent;color:var(--color-text-secondary, #aaa);font-size:1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s,transform .15s;flex-shrink:0}.modal-close:hover{background:#00000012;color:var(--color-text, #333);transform:rotate(90deg)}.modal-close:active{transform:rotate(90deg) scale(.9)}.page-header{margin-bottom:24px}.page-title{font-size:24px;font-weight:800;color:var(--color-text)}.page-sub{font-size:13px;color:var(--color-text-secondary);margin-top:2px}.loading-center{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px;color:var(--color-text-secondary);font-size:14px}.filter-btn{padding:6px 14px;border-radius:var(--radius-full);border:2px solid var(--color-border);font-size:13px;font-weight:500;cursor:pointer;background:transparent;color:var(--color-text-secondary);transition:all var(--transition);font-family:inherit}.filter-btn.active,.filter-btn:hover{border-color:var(--theme-primary);background:var(--theme-primary-light);color:var(--theme-primary-dark)}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:13px;font-weight:600;color:var(--color-text-secondary)}.form-input{width:100%;padding:10px 12px;background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:14px;outline:none;box-sizing:border-box;transition:border-color var(--transition);font-family:inherit}.form-input:focus{border-color:var(--theme-primary);box-shadow:0 0 0 3px var(--theme-primary-light)}.form-input::placeholder{color:var(--color-text-light)}.error-msg{background:#ffe0e0;color:#c0392b;border-radius:var(--radius-md);padding:10px 14px;font-size:13px}.tag-removable{display:inline-flex;align-items:center;gap:4px}.tag-removable button{background:none;border:none;cursor:pointer;font-size:10px;color:var(--theme-primary-dark);padding:0;line-height:1}.btn-danger{background:#ff7b8a;color:#fff;border:none;padding:10px 20px;border-radius:var(--radius-full);font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;transition:filter var(--transition)}.btn-danger:hover{filter:brightness(1.05)}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.btn-icon-sm{width:28px;height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:none;background:transparent;cursor:pointer;font-size:14px;color:var(--color-text-secondary);transition:all var(--transition)}.btn-icon-sm:hover{background:var(--color-border);color:var(--color-text)}:root{--color-pink: #FFB3C6;--color-pink-light: #FFD6E0;--color-pink-dark: #FF85A1;--color-mint: #B5EAD7;--color-mint-light: #D4F5E9;--color-lavender: #C7CEEA;--color-lavender-light: #E4E8F8;--color-peach: #FFDAC1;--color-yellow: #FFFACD;--color-sky: #C1E1FF;--color-lemon: #FFFACD;--theme-primary: #FFB3C6;--theme-primary-dark: #FF85A1;--theme-primary-light: #FFD6E0;--theme-bg: #FFF5F7;--color-white: #FFFFFF;--color-bg: var(--theme-bg);--color-surface: #FFFFFF;--color-text: #4A3F3F;--color-text-secondary: #9E8E8E;--color-text-light: #C4B0B0;--color-border: #F0E0E5;--color-shadow: rgba(255, 100, 130, .1);--note-white: #FFFFFF;--note-pink: #FFD6E0;--note-mint: #D4F5E9;--note-lavender: #E4E8F8;--note-peach: #FFE8D6;--note-yellow: #FFF8D6;--note-sky: #D6EEFF;--radius-sm: 8px;--radius-md: 16px;--radius-lg: 24px;--radius-xl: 32px;--radius-full: 9999px;--shadow-sm: 0 2px 8px rgba(255, 100, 130, .08);--shadow-md: 0 4px 16px rgba(255, 100, 130, .12);--shadow-lg: 0 8px 32px rgba(255, 100, 130, .16);--transition: .2s ease;--transition-slow: .3s ease}[data-theme=mint]{--theme-primary: #B5EAD7;--theme-primary-dark: #7DD6B3;--theme-primary-light: #D4F5E9;--theme-bg: #F0FAF6;--color-shadow: rgba(100, 200, 160, .1);--color-border: #D0EEE4}[data-theme=lavender]{--theme-primary: #C7CEEA;--theme-primary-dark: #8E9AC8;--theme-primary-light: #E4E8F8;--theme-bg: #F4F5FD;--color-shadow: rgba(120, 130, 200, .1);--color-border: #DDE0F0}[data-theme=peach]{--theme-primary: #FFDAC1;--theme-primary-dark: #FFB08A;--theme-primary-light: #FFE8D6;--theme-bg: #FFF6F0;--color-shadow: rgba(255, 140, 80, .1);--color-border: #F0DDD0}[data-theme=sky]{--theme-primary: #C1E1FF;--theme-primary-dark: #7FC0FF;--theme-primary-light: #D6EEFF;--theme-bg: #F0F7FF;--color-shadow: rgba(80, 150, 255, .1);--color-border: #D0E4F5}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body{font-family:PingFang SC,Microsoft YaHei,Noto Sans SC,sans-serif;background-color:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--theme-primary);border-radius:var(--radius-full)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;border:none;border-radius:var(--radius-full);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--transition);text-decoration:none;white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:active{transform:scale(.97)}.btn-primary{background:var(--theme-primary-dark);color:#fff;box-shadow:0 4px 12px #ff64824d}.btn-primary:hover{filter:brightness(1.05);box-shadow:0 6px 16px #ff648266;transform:translateY(-1px)}.btn-outline{background:transparent;color:var(--theme-primary-dark);border:2px solid var(--theme-primary)}.btn-outline:hover{background:var(--theme-primary-light)}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover{background:var(--color-border);color:var(--color-text)}.btn-sm{padding:6px 14px;font-size:12px}.btn-lg{padding:14px 28px;font-size:16px}.btn-icon{padding:10px;border-radius:var(--radius-md)}.input{width:100%;padding:12px 16px;border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:14px;background:var(--color-surface);color:var(--color-text);transition:border-color var(--transition);outline:none;font-family:inherit}.input:focus{border-color:var(--theme-primary);box-shadow:0 0 0 3px var(--theme-primary-light)}.input::placeholder{color:var(--color-text-light)}.card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px;transition:box-shadow var(--transition),transform var(--transition)}.card:hover{box-shadow:var(--shadow-md)}.tag{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:500;background:var(--theme-primary-light);color:var(--theme-primary-dark)}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-full);font-size:11px;font-weight:700;background:var(--theme-primary-dark);color:#fff}.avatar{width:40px;height:40px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:#fff;flex-shrink:0;background:var(--theme-primary)}.divider{height:1px;background:var(--color-border);margin:16px 0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;color:var(--color-text-secondary);text-align:center;gap:12px}.empty-state .empty-icon{font-size:64px;opacity:.7}.empty-state p{font-size:14px}.loading-spinner{width:32px;height:32px;border:3px solid var(--theme-primary-light);border-top-color:var(--theme-primary-dark);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast-container{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{padding:12px 20px;border-radius:var(--radius-full);font-size:14px;font-weight:500;box-shadow:var(--shadow-md);pointer-events:auto;display:flex;align-items:center;gap:8px;animation:toastIn .3s ease}.toast-success{background:#b5ead7;color:#2d7a5a}.toast-error{background:#ffd6d6;color:#c0392b}.toast-info{background:var(--theme-primary-light);color:var(--theme-primary-dark)}@keyframes toastIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.page-fade-enter-active,.page-fade-leave-active{transition:opacity .2s ease}.page-fade-enter-from,.page-fade-leave-to{opacity:0}.page-slide-enter-active,.page-slide-leave-active{transition:all .25s ease}.page-slide-enter-from{opacity:0;transform:translate(20px)}.page-slide-leave-to{opacity:0;transform:translate(-20px)}.container{max-width:1200px;margin:0 auto;padding:0 16px}.page-with-nav{padding-bottom:72px}@media(min-width:768px){.page-with-nav{padding-bottom:0}}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.flex-1{flex:1}.text-center{text-align:center}.font-bold{font-weight:700}.text-sm{font-size:12px}.text-secondary{color:var(--color-text-secondary)}.w-full{width:100%}.hidden{display:none}
