.confirm-overlay[data-v-990d3f85]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.confirm-dialog[data-v-990d3f85]{background:#fff;border-radius:16px;padding:32px;width:90%;max-width:360px;text-align:center;box-shadow:0 20px 60px #0003}.confirm-icon[data-v-990d3f85]{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 20px}.confirm-icon.warning[data-v-990d3f85]{background:#fff8e1;color:#f59e0b}.confirm-icon.danger[data-v-990d3f85]{background:#fee2e2;color:#ef4444}.confirm-icon.success[data-v-990d3f85]{background:#d1fae5;color:#10b981}.confirm-title[data-v-990d3f85]{font-size:20px;font-weight:600;color:#2d3748;margin:0 0 12px}.confirm-message[data-v-990d3f85]{font-size:14px;color:#718096;margin:0 0 24px;line-height:1.6}.confirm-actions[data-v-990d3f85]{display:flex;gap:12px}.cancel-btn[data-v-990d3f85],.confirm-btn[data-v-990d3f85]{flex:1;padding:12px 24px;border-radius:10px;font-size:15px;font-weight:500;cursor:pointer;transition:all .3s;border:none}.cancel-btn[data-v-990d3f85]{background:#f3f4f6;color:#4b5563}.cancel-btn[data-v-990d3f85]:hover{background:#e5e7eb}.confirm-btn[data-v-990d3f85]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.confirm-btn[data-v-990d3f85]:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.confirm-btn.danger[data-v-990d3f85]{background:linear-gradient(135deg,#ef4444,#dc2626)}.confirm-btn.danger[data-v-990d3f85]:hover{box-shadow:0 4px 12px #ef444466}.modal-enter-active[data-v-990d3f85],.modal-leave-active[data-v-990d3f85]{transition:opacity .3s ease}.modal-enter-from[data-v-990d3f85],.modal-leave-to[data-v-990d3f85]{opacity:0}.modal-enter-active .confirm-dialog[data-v-990d3f85],.modal-leave-active .confirm-dialog[data-v-990d3f85]{transition:transform .3s ease}.modal-enter-from .confirm-dialog[data-v-990d3f85],.modal-leave-to .confirm-dialog[data-v-990d3f85]{transform:scale(.9)}.app-header[data-v-61dc784c]{background:#fff;border-bottom:1px solid var(--border-light);position:sticky;top:0;z-index:var(--z-sticky);box-shadow:var(--shadow-sm)}.header-content[data-v-61dc784c]{display:flex;align-items:center;justify-content:space-between;height:64px;gap:var(--spacing-xl)}.logo-icon[data-v-61dc784c]{width:32px;height:32px;object-fit:contain;animation:float 3s ease-in-out infinite}.logo[data-v-61dc784c]{display:flex;align-items:center;gap:var(--spacing-sm);text-decoration:none;color:var(--primary-color);font-size:var(--font-xl);font-weight:600;transition:all .3s}.logo[data-v-61dc784c]:hover{transform:scale(1.05)}.logo-text[data-v-61dc784c]{display:none}@media (min-width: 768px){.logo-text[data-v-61dc784c]{display:block}}.nav-menu[data-v-61dc784c]{display:flex;gap:var(--spacing-md);flex:1}.nav-item[data-v-61dc784c]{padding:var(--spacing-sm) var(--spacing-md);color:var(--text-secondary);text-decoration:none;border-radius:var(--radius-md);transition:all .3s;font-size:var(--font-base);font-weight:500;white-space:nowrap}.nav-item[data-v-61dc784c]:hover{background:var(--hover-bg);color:var(--primary-color)}.nav-item.active[data-v-61dc784c]{color:var(--primary-color);background:var(--primary-light)}.header-actions[data-v-61dc784c]{display:flex;align-items:center;gap:var(--spacing-md)}.btn[data-v-61dc784c]{padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-size:var(--font-sm);font-weight:500;cursor:pointer;transition:all .3s;border:none}.btn-outline[data-v-61dc784c]{background:#fff;border:1px solid var(--primary-color);color:var(--primary-color)}.btn-outline[data-v-61dc784c]:hover{background:var(--primary-color);color:#fff}.notification-btn[data-v-61dc784c]{position:relative;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;cursor:pointer;transition:all .3s;color:var(--text-secondary)}.notification-btn[data-v-61dc784c]:hover{background:var(--hover-bg);color:var(--primary-color)}.notification-btn .badge[data-v-61dc784c]{position:absolute;top:4px;right:4px;background:var(--danger-color);color:#fff;font-size:10px;padding:2px 5px;border-radius:10px;min-width:16px;text-align:center;line-height:1}.user-menu[data-v-61dc784c]{position:relative;display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);cursor:pointer;transition:all .3s}.user-menu[data-v-61dc784c]:hover{background:var(--hover-bg)}.user-avatar[data-v-61dc784c],.user-avatar-placeholder[data-v-61dc784c]{width:32px;height:32px;border-radius:50%;object-fit:cover;flex-shrink:0}.user-avatar-placeholder[data-v-61dc784c]{background:var(--gray-200);display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.user-name[data-v-61dc784c]{font-size:var(--font-sm);font-weight:500;color:var(--text-color);max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-icon[data-v-61dc784c]{color:var(--text-muted);flex-shrink:0}.dropdown-menu[data-v-61dc784c]{position:absolute;top:calc(100% + 8px);right:0;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);min-width:200px;padding:var(--spacing-sm);z-index:100}.dropdown-item[data-v-61dc784c]{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);color:var(--text-color);text-decoration:none;border-radius:var(--radius-md);cursor:pointer;transition:all .3s;font-size:var(--font-sm);width:100%;border:none;background:none;text-align:left}.dropdown-item[data-v-61dc784c]:hover{background:var(--hover-bg);color:var(--primary-color)}.dropdown-item svg[data-v-61dc784c]{color:var(--text-muted);flex-shrink:0}.dropdown-item:hover svg[data-v-61dc784c]{color:var(--primary-color)}.dropdown-divider[data-v-61dc784c]{height:1px;background:var(--border-light);margin:var(--spacing-sm) 0}.fade-enter-active[data-v-61dc784c],.fade-leave-active[data-v-61dc784c]{transition:all .3s ease}.fade-enter-from[data-v-61dc784c],.fade-leave-to[data-v-61dc784c]{opacity:0;transform:translateY(-10px)}@media (max-width: 992px){.nav-menu[data-v-61dc784c]{gap:var(--spacing-sm)}.nav-item[data-v-61dc784c]{padding:var(--spacing-sm);font-size:var(--font-sm)}}@media (max-width: 768px){.nav-menu[data-v-61dc784c],.user-name[data-v-61dc784c]{display:none}}.app-footer[data-v-32ff385f]{background:var(--gray-900);color:var(--gray-300);padding:var(--spacing-4xl) 0 var(--spacing-lg);margin-top:auto}.footer-content[data-v-32ff385f]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-xl);margin-bottom:var(--spacing-xl)}.footer-col h3[data-v-32ff385f]{color:#fff;font-size:var(--font-lg);font-weight:600;margin:0 0 var(--spacing-md) 0}.footer-brand[data-v-32ff385f]{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);color:#fff}.brand-name[data-v-32ff385f]{font-size:20px;font-weight:700}.footer-desc[data-v-32ff385f]{color:var(--gray-400);font-size:var(--font-sm);line-height:1.6;margin-bottom:var(--spacing-md)}.footer-links[data-v-32ff385f]{list-style:none;padding:0;margin:0}.footer-links li[data-v-32ff385f]{margin-bottom:var(--spacing-sm)}.footer-links a[data-v-32ff385f]{color:var(--gray-400);text-decoration:none;font-size:var(--font-sm);transition:all .3s;display:inline-block}.footer-links a[data-v-32ff385f]:hover{color:var(--primary-color);transform:translate(4px)}.contact-info p[data-v-32ff385f]{color:var(--gray-400);font-size:var(--font-sm);margin-bottom:8px}.footer-bottom[data-v-32ff385f]{display:flex;justify-content:center;align-items:center;padding-top:var(--spacing-lg);border-top:1px solid var(--gray-800);color:var(--gray-500);font-size:var(--font-xs)}.copyright p[data-v-32ff385f]{color:var(--gray-500);font-size:var(--font-xs);line-height:1.6;text-align:center;margin:0}.icp-info a[data-v-32ff385f]{color:var(--gray-500);text-decoration:none;transition:color .3s ease}.icp-info a[data-v-32ff385f]:hover{color:var(--primary-color)}@media (max-width: 768px){.app-footer[data-v-32ff385f]{padding:var(--spacing-xl) 0 80px}.footer-content[data-v-32ff385f]{grid-template-columns:1fr;gap:var(--spacing-lg)}}@media (max-width: 480px){.footer-content[data-v-32ff385f]{grid-template-columns:1fr}}.mobile-tab-bar[data-v-afae01b5]{position:fixed;bottom:0;left:0;right:0;background:#fff;display:flex;justify-content:space-around;padding:8px 0 calc(8px + env(safe-area-inset-bottom));box-shadow:0 -2px 10px #00000014;z-index:1000}.tab-item[data-v-afae01b5]{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;color:#718096;text-decoration:none;transition:all .3s;padding:4px 0;position:relative}.tab-item.active[data-v-afae01b5]{color:#667eea}.tab-icon[data-v-afae01b5]{position:relative;display:flex;align-items:center;justify-content:center;width:28px;height:28px}.badge[data-v-afae01b5]{position:absolute;top:-4px;right:-8px;background:#f56565;color:#fff;font-size:10px;padding:2px 5px;border-radius:10px;min-width:16px;text-align:center;line-height:1}.tab-label[data-v-afae01b5]{font-size:11px;font-weight:500}.tab-item[data-v-afae01b5]:active{transform:scale(.95)}.tab-item.active .tab-icon[data-v-afae01b5]{transform:scale(1.1)}@media (min-width: 769px){.mobile-tab-bar[data-v-afae01b5]{display:none}}.modal-overlay[data-v-473ecf07]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--spacing-md)}.modal-content[data-v-473ecf07]{background:#fff;border-radius:var(--radius-xl);width:100%;max-width:400px;max-height:90vh;overflow-y:auto;position:relative;padding:var(--spacing-xl);box-shadow:var(--shadow-2xl)}.close-btn[data-v-473ecf07]{position:absolute;top:var(--spacing-md);right:var(--spacing-md);background:var(--gray-100);border:none;width:32px;height:32px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-muted);transition:all .3s}.close-btn[data-v-473ecf07]:hover{background:var(--gray-200);color:var(--text-color)}.modal-header[data-v-473ecf07]{text-align:center;margin-bottom:var(--spacing-xl)}.modal-title[data-v-473ecf07]{font-size:var(--font-2xl);font-weight:600;color:var(--heading-color);margin:0 0 var(--spacing-sm) 0}.modal-desc[data-v-473ecf07]{color:var(--text-muted);font-size:var(--font-sm);margin:0}.login-methods[data-v-473ecf07]{display:flex;flex-direction:column;gap:var(--spacing-md)}.login-btn[data-v-473ecf07]{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md);border:none;border-radius:var(--radius-lg);cursor:pointer;font-size:var(--font-base);font-weight:500;transition:all .3s}.wechat-btn[data-v-473ecf07]{background:#07c160;color:#fff}.wechat-btn[data-v-473ecf07]:hover{background:#06ad56;transform:translateY(-2px);box-shadow:var(--shadow-md)}.email-btn[data-v-473ecf07]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.email-btn[data-v-473ecf07]:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.account-btn[data-v-473ecf07]{background:var(--gray-100);color:var(--text-color)}.account-btn[data-v-473ecf07]:hover{background:var(--gray-200)}.wechat-qr-container[data-v-473ecf07]{text-align:center}.qr-wrapper[data-v-473ecf07]{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:var(--spacing-lg) 0}#wechat-qr-container[data-v-473ecf07]{width:300px;height:300px}#wechat-qr-container[data-v-473ecf07] iframe{width:100%!important;height:100%!important}.qr-loading[data-v-473ecf07],.qr-success[data-v-473ecf07]{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.qr-loading p[data-v-473ecf07]{color:var(--text-muted)}.qr-success p[data-v-473ecf07]{color:#07c160;font-weight:500}.loading-spinner.large[data-v-473ecf07]{width:40px;height:40px;border-width:3px}.email-login-form[data-v-473ecf07],.password-login-form[data-v-473ecf07]{margin-top:var(--spacing-lg)}.divider[data-v-473ecf07]{text-align:center;margin:var(--spacing-lg) 0;position:relative}.divider[data-v-473ecf07]:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:var(--border-color)}.divider span[data-v-473ecf07]{background:#fff;padding:0 var(--spacing-md);position:relative;color:var(--text-muted);font-size:var(--font-sm)}.password-group[data-v-473ecf07]{position:relative}.toggle-pwd-btn[data-v-473ecf07]{position:absolute;right:var(--spacing-sm);top:50%;transform:translateY(-50%);background:none;border:none;padding:4px;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .3s}.toggle-pwd-btn[data-v-473ecf07]:hover{background:var(--gray-100);color:var(--text-color)}.form-group[data-v-473ecf07]{margin-bottom:var(--spacing-md);position:relative}.form-input[data-v-473ecf07]{width:100%;padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--font-base);transition:all .3s}.form-input[data-v-473ecf07]:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 3px var(--primary-light)}.send-code-btn[data-v-473ecf07]{position:absolute;right:var(--spacing-sm);top:50%;transform:translateY(-50%);background:var(--primary-color);color:#fff;border:none;padding:6px var(--spacing-md);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-sm);white-space:nowrap;transition:all .3s}.send-code-btn[data-v-473ecf07]:disabled{background:var(--gray-300);cursor:not-allowed}.send-code-btn[data-v-473ecf07]:not(:disabled):hover{background:var(--primary-hover)}.submit-btn[data-v-473ecf07],.back-btn[data-v-473ecf07]{width:100%;padding:var(--spacing-md);border:none;border-radius:var(--radius-lg);cursor:pointer;font-size:var(--font-base);font-weight:500;transition:all .3s;display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.submit-btn[data-v-473ecf07]{background:var(--primary-color);color:#fff;margin-bottom:var(--spacing-sm)}.submit-btn[data-v-473ecf07]:disabled{background:var(--gray-300);cursor:not-allowed}.submit-btn[data-v-473ecf07]:not(:disabled):hover{background:var(--primary-hover);transform:translateY(-2px)}.back-btn[data-v-473ecf07]{background:var(--gray-100);color:var(--text-color)}.back-btn[data-v-473ecf07]:hover{background:var(--gray-200)}.loading-spinner[data-v-473ecf07]{width:16px;height:16px;border:2px solid white;border-top-color:transparent;border-radius:50%;animation:spin-473ecf07 .6s linear infinite}@keyframes spin-473ecf07{to{transform:rotate(360deg)}}.modal-footer[data-v-473ecf07]{margin-top:var(--spacing-xl);text-align:center}.agreement-text[data-v-473ecf07]{color:var(--text-muted);font-size:var(--font-xs);margin:0;line-height:1.6}.agreement-text a[data-v-473ecf07]{color:var(--primary-color);text-decoration:none}.agreement-text a[data-v-473ecf07]:hover{text-decoration:underline}.modal-enter-active[data-v-473ecf07],.modal-leave-active[data-v-473ecf07]{transition:opacity .3s ease}.modal-enter-from[data-v-473ecf07],.modal-leave-to[data-v-473ecf07]{opacity:0}.modal-enter-active .modal-content[data-v-473ecf07],.modal-leave-active .modal-content[data-v-473ecf07]{transition:transform .3s ease}.modal-enter-from .modal-content[data-v-473ecf07],.modal-leave-to .modal-content[data-v-473ecf07]{transform:scale(.9)}@media (max-width: 768px){.modal-content[data-v-473ecf07]{padding:var(--spacing-lg);max-width:90%}.modal-title[data-v-473ecf07]{font-size:var(--font-xl)}#wechat-qr-container[data-v-473ecf07]{width:250px;height:250px}}.notification-container[data-v-d4770ca6]{position:fixed;top:20px;right:20px;z-index:var(--z-tooltip);display:flex;flex-direction:column;gap:var(--spacing-sm);max-width:400px;pointer-events:none}.notification-item[data-v-d4770ca6]{background:#fff;border-radius:var(--radius-lg);padding:var(--spacing-md);box-shadow:var(--shadow-lg);display:flex;align-items:flex-start;gap:var(--spacing-sm);min-width:300px;pointer-events:auto;border-left:4px solid}.notification-success[data-v-d4770ca6]{border-left-color:var(--success-color)}.notification-error[data-v-d4770ca6]{border-left-color:var(--danger-color)}.notification-warning[data-v-d4770ca6]{border-left-color:var(--warning-color)}.notification-info[data-v-d4770ca6]{border-left-color:var(--info-color)}.notification-icon[data-v-d4770ca6]{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%}.notification-success .notification-icon[data-v-d4770ca6]{background:var(--success-light);color:var(--success-color)}.notification-error .notification-icon[data-v-d4770ca6]{background:var(--danger-light);color:var(--danger-color)}.notification-warning .notification-icon[data-v-d4770ca6]{background:var(--warning-light);color:var(--warning-color)}.notification-info .notification-icon[data-v-d4770ca6]{background:var(--info-light);color:var(--info-color)}.notification-content[data-v-d4770ca6]{flex:1;min-width:0}.notification-message[data-v-d4770ca6]{margin:0;font-size:var(--font-sm);color:var(--text-color);line-height:1.5;word-break:break-word}.notification-close[data-v-d4770ca6]{flex-shrink:0;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;border-radius:4px;transition:all .3s}.notification-close[data-v-d4770ca6]:hover{background:var(--gray-100);color:var(--text-color)}.notification-enter-active[data-v-d4770ca6],.notification-leave-active[data-v-d4770ca6]{transition:all .3s ease}.notification-enter-from[data-v-d4770ca6]{opacity:0;transform:translate(100%)}.notification-leave-to[data-v-d4770ca6]{opacity:0;transform:translate(100%) scale(.8)}.notification-move[data-v-d4770ca6]{transition:transform .3s ease}@media (max-width: 768px){.notification-container[data-v-d4770ca6]{top:10px;right:10px;left:10px;max-width:none}.notification-item[data-v-d4770ca6]{min-width:0}}#app[data-v-66f97dff]{min-height:100vh;display:flex;flex-direction:column;background:var(--bg-color)}.main-content[data-v-66f97dff]{flex:1;min-height:calc(100vh - 120px)}.main-content.has-mobile-nav[data-v-66f97dff]{padding-bottom:60px}.fade-enter-active[data-v-66f97dff],.fade-leave-active[data-v-66f97dff]{transition:opacity .3s ease}.fade-enter-from[data-v-66f97dff],.fade-leave-to[data-v-66f97dff]{opacity:0}.back-to-top[data-v-66f97dff]{position:fixed;bottom:80px;right:30px;width:48px;height:48px;background:var(--primary-color);color:#fff;border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #667eea66;transition:all .3s;z-index:999}.back-to-top[data-v-66f97dff]:hover{transform:translateY(-4px);box-shadow:0 6px 20px #667eea80}.back-to-top[data-v-66f97dff]:active{transform:translateY(-2px)}@media (max-width: 768px){.back-to-top[data-v-66f97dff]{bottom:80px;right:16px;width:40px;height:40px}}.toast[data-v-0401969b]{position:fixed;top:80px;left:50%;transform:translate(-50%);padding:12px 24px;border-radius:8px;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;z-index:9999;box-shadow:0 4px 12px #00000026}.toast.success[data-v-0401969b]{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.toast.error[data-v-0401969b]{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.toast.warning[data-v-0401969b]{background:#fff3cd;color:#856404;border:1px solid #ffeeba}.toast.info[data-v-0401969b]{background:#d1ecf1;color:#0c5460;border:1px solid #bee5eb}.toast-icon[data-v-0401969b]{font-size:16px}.toast-enter-active[data-v-0401969b],.toast-leave-active[data-v-0401969b]{transition:all .3s ease}.toast-enter-from[data-v-0401969b],.toast-leave-to[data-v-0401969b]{opacity:0;transform:translate(-50%) translateY(-20px)}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;line-height:1.6;color:var(--text-color);background:var(--bg-color);overflow-x:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a0aec0}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3;color:var(--heading-color)}h1{font-size:2rem}h2{font-size:1.75rem}h3{font-size:1.5rem}h4{font-size:1.25rem}h5{font-size:1.125rem}h6{font-size:1rem}p{margin-bottom:1rem}a{color:var(--primary-color);text-decoration:none;transition:color .3s}a:hover{color:var(--primary-hover)}button{font-family:inherit;font-size:inherit;outline:none;transition:all .3s}button:disabled{opacity:.6;cursor:not-allowed}input,textarea,select{font-family:inherit;font-size:inherit;outline:none}input::placeholder,textarea::placeholder{color:var(--text-muted)}img{max-width:100%;height:auto;display:block}ul,ol{list-style:none}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 16px}.container-fluid{width:100%;padding:0 16px}.row{display:flex;flex-wrap:wrap;margin:0 -8px}.col{flex:1;padding:0 8px}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-muted{color:var(--text-muted)}.text-primary{color:var(--primary-color)}.text-success{color:var(--success-color)}.text-warning{color:var(--warning-color)}.text-danger{color:var(--danger-color)}.fw-bold{font-weight:600}.fw-normal{font-weight:400}.d-none{display:none}.d-block{display:block}.d-flex{display:flex}.d-grid{display:grid}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.flex-wrap{flex-wrap:wrap}.flex-column{flex-direction:column}.gap-1{gap:.5rem}.gap-2{gap:1rem}.gap-3{gap:1.5rem}.gap-4{gap:2rem}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}.pt-1{padding-top:.5rem}.pt-2{padding-top:1rem}.pt-3{padding-top:1.5rem}.pt-4{padding-top:2rem}.pb-1{padding-bottom:.5rem}.pb-2{padding-bottom:1rem}.pb-3{padding-bottom:1.5rem}.pb-4{padding-bottom:2rem}.card{background:#fff;border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm);transition:all .3s}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-title{font-size:1.25rem;font-weight:600;margin-bottom:1rem;color:var(--heading-color)}.card-body{padding:1rem 0}.badge{display:inline-block;padding:.25rem .75rem;font-size:.875rem;font-weight:500;line-height:1;border-radius:var(--radius-full);white-space:nowrap}.badge-primary{background:var(--primary-light);color:var(--primary-color)}.badge-success{background:var(--success-light);color:var(--success-color)}.badge-warning{background:var(--warning-light);color:var(--warning-color)}.badge-danger{background:var(--danger-light);color:var(--danger-color)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .3s;text-decoration:none;gap:.5rem}.btn:active{transform:scale(.98)}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--gray-200);color:var(--text-color)}.btn-secondary:hover{background:var(--gray-300)}.btn-outline{background:transparent;border:1px solid var(--gray-300);color:var(--text-color)}.btn-outline:hover{background:var(--gray-100)}.btn-sm{padding:.5rem 1rem;font-size:.875rem}.btn-lg{padding:1rem 2rem;font-size:1.125rem}.btn-block{width:100%}.input-group{margin-bottom:1rem}.input-label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--heading-color)}.input-field{width:100%;padding:.75rem 1rem;font-size:1rem;border:1px solid var(--gray-300);border-radius:var(--radius-md);transition:all .3s}.input-field:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-light)}.input-field:disabled{background:var(--gray-100);cursor:not-allowed}.loading-spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--gray-300);border-top-color:var(--primary-color);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,var(--gray-200) 25%,var(--gray-300) 50%,var(--gray-200) 75%);background-size:200% 100%;animation:loading 1.5s ease-in-out infinite}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.divider{height:1px;background:var(--gray-200);margin:1.5rem 0}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-muted)}.empty-state svg{margin:0 auto 1rem;opacity:.5}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:var(--radius-lg);max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}@media (max-width: 1200px){.container{max-width:960px}}@media (max-width: 992px){.container{max-width:720px}}@media (max-width: 768px){html{font-size:14px}.container{max-width:100%}h1{font-size:1.75rem}h2{font-size:1.5rem}h3{font-size:1.25rem}}@media (max-width: 576px){.row{margin:0 -4px}.col{padding:0 4px}}@media print{.no-print{display:none!important}}:root{--primary-color: #667eea;--primary-hover: #5568d3;--primary-light: rgba(102, 126, 234, .1);--primary-dark: #4c51bf;--secondary-color: #764ba2;--secondary-hover: #6b3f8f;--secondary-light: rgba(118, 75, 162, .1);--success-color: #48bb78;--success-light: rgba(72, 187, 120, .1);--success-dark: #38a169;--warning-color: #ed8936;--warning-light: rgba(237, 137, 54, .1);--warning-dark: #dd6b20;--danger-color: #f56565;--danger-light: rgba(245, 101, 101, .1);--danger-dark: #e53e3e;--info-color: #4299e1;--info-light: rgba(66, 153, 225, .1);--info-dark: #3182ce;--white: #ffffff;--black: #000000;--gray-50: #f7fafc;--gray-100: #edf2f7;--gray-200: #e2e8f0;--gray-300: #cbd5e0;--gray-400: #a0aec0;--gray-500: #718096;--gray-600: #4a5568;--gray-700: #2d3748;--gray-800: #1a202c;--gray-900: #171923;--text-color: #2d3748;--text-secondary: #4a5568;--text-muted: #718096;--text-disabled: #a0aec0;--heading-color: #1a202c;--link-color: var(--primary-color);--link-hover: var(--primary-hover);--bg-color: #f5f7fa;--bg-secondary: #edf2f7;--bg-white: #ffffff;--card-bg: #ffffff;--hover-bg: #f7fafc;--border-color: #e2e8f0;--border-light: #edf2f7;--border-dark: #cbd5e0;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 20px;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 2px 4px 0 rgba(0, 0, 0, .06);--shadow-md: 0 4px 8px 0 rgba(0, 0, 0, .08);--shadow-lg: 0 8px 16px 0 rgba(0, 0, 0, .1);--shadow-xl: 0 12px 24px 0 rgba(0, 0, 0, .12);--shadow-2xl: 0 20px 40px 0 rgba(0, 0, 0, .15);--gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--gradient-success: linear-gradient(135deg, #48bb78 0%, #38a169 100%);--gradient-warning: linear-gradient(135deg, #ed8936 0%, #dd6b20 100%);--gradient-danger: linear-gradient(135deg, #f56565 0%, #e53e3e 100%);--transition-fast: .15s;--transition-base: .3s;--transition-slow: .5s;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;--font-xs: .75rem;--font-sm: .875rem;--font-base: 1rem;--font-lg: 1.125rem;--font-xl: 1.25rem;--font-2xl: 1.5rem;--font-3xl: 1.875rem;--font-4xl: 2.25rem;--font-5xl: 3rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--line-height-loose: 2;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 2.5rem;--spacing-3xl: 3rem;--spacing-4xl: 4rem;--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px;--container-2xl: 1536px;--breakpoint-xs: 0;--breakpoint-sm: 576px;--breakpoint-md: 768px;--breakpoint-lg: 992px;--breakpoint-xl: 1200px;--breakpoint-2xl: 1400px}@media (prefers-color-scheme: dark){:root.dark-mode{--text-color: #e2e8f0;--text-secondary: #cbd5e0;--text-muted: #a0aec0;--text-disabled: #718096;--heading-color: #f7fafc;--bg-color: #1a202c;--bg-secondary: #2d3748;--bg-white: #2d3748;--card-bg: #2d3748;--hover-bg: #374151;--border-color: #4a5568;--border-light: #374151;--border-dark: #718096;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-sm: 0 2px 4px 0 rgba(0, 0, 0, .35);--shadow-md: 0 4px 8px 0 rgba(0, 0, 0, .4);--shadow-lg: 0 8px 16px 0 rgba(0, 0, 0, .45);--shadow-xl: 0 12px 24px 0 rgba(0, 0, 0, .5);--shadow-2xl: 0 20px 40px 0 rgba(0, 0, 0, .55)}}@media (max-width: 768px){:root{--font-base: .875rem;--font-lg: 1rem;--font-xl: 1.125rem;--font-2xl: 1.25rem;--font-3xl: 1.5rem;--font-4xl: 1.875rem;--spacing-md: .875rem;--spacing-lg: 1.25rem;--spacing-xl: 1.75rem}}.theme-blue{--primary-color: #3b82f6;--primary-hover: #2563eb;--primary-light: rgba(59, 130, 246, .1)}.theme-green{--primary-color: #10b981;--primary-hover: #059669;--primary-light: rgba(16, 185, 129, .1)}.theme-purple{--primary-color: #8b5cf6;--primary-hover: #7c3aed;--primary-light: rgba(139, 92, 246, .1)}.theme-pink{--primary-color: #ec4899;--primary-hover: #db2777;--primary-light: rgba(236, 72, 153, .1)}
