.app-container{min-height:100vh;display:flex;flex-direction:column}.page-enter-active,.page-leave-active{transition:all var(--transition-normal)}.page-enter-from,.page-leave-to{opacity:0;transform:translateY(10px) scale(.99)}.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:2rem;text-align:center;background-color:var(--bg-color);color:var(--text-primary);animation:fadeIn .5s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.error-title{font-size:2rem;font-weight:700;margin-bottom:1rem;color:var(--danger-color);animation:slideInUp .6s ease-out .1s both}.error-message{font-size:1.125rem;margin-bottom:2rem;color:var(--text-secondary);max-width:600px;animation:slideInUp .6s ease-out .2s both}.reload-btn{padding:.75rem 1.5rem;font-size:1rem;font-weight:600;background:var(--primary-gradient);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-normal);box-shadow:var(--shadow-sm);margin-bottom:2rem;animation:slideInUp .6s ease-out .3s both;transform-origin:center}.reload-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.reload-btn:active{transform:translateY(0) scale(.98)}.error-details,.debug-info{margin-top:2rem;padding:1.5rem;background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);max-width:800px;text-align:left;width:100%;animation:slideInUp .6s ease-out .4s both}.error-details h3,.debug-info h3{margin-top:0;margin-bottom:1rem;font-size:1.25rem;color:var(--text-primary);animation:fadeIn .5s ease-out .5s both}.error-stack,.debug-info-content{margin:0;font-size:.875rem;color:var(--text-danger);font-family:Monaco,Menlo,Ubuntu Mono,monospace;line-height:1.5;overflow:auto;max-height:300px;background-color:var(--bg-color);padding:1rem;border-radius:var(--radius-md);border:1px solid var(--border-color);animation:fadeIn .5s ease-out .6s both}.debug-info-content{color:var(--text-primary);background-color:var(--card-bg)}@keyframes slideInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes bounce{0%,20%,53%,80%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1);transform:translateZ(0)}40%,43%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translate3d(0,-30px,0)}70%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translate3d(0,-15px,0)}90%{transform:translate3d(0,-4px,0)}}@keyframes shake{0%,to{transform:translateZ(0)}10%,30%,50%,70%,90%{transform:translate3d(-10px,0,0)}20%,40%,60%,80%{transform:translate3d(10px,0,0)}}.app-header[data-v-199139e7]{background-color:var(--card-bg);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:1000;animation:slideDown-199139e7 .5s ease-out}@keyframes slideDown-199139e7{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.header-content[data-v-199139e7]{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;gap:1.5rem}.logo[data-v-199139e7]{text-decoration:none;display:flex;align-items:center;transition:transform var(--transition-normal)}.logo[data-v-199139e7]:hover{transform:scale(1.02)}.logo-image[data-v-199139e7]{height:24px;width:auto;transition:all var(--transition-normal);filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.logo:hover .logo-image[data-v-199139e7]{transform:scale(1.05);filter:drop-shadow(0 4px 8px rgba(0,0,0,.15))}.mobile-menu-toggle[data-v-199139e7]{background:none;border:none;cursor:pointer;padding:.5rem;display:none;transition:all var(--transition-normal);border-radius:var(--radius-md);color:var(--text-primary)}.mobile-menu-toggle[data-v-199139e7]:hover{background-color:var(--primary-light);transform:scale(1.1)}.mobile-menu-toggle[data-v-199139e7]:active{transform:scale(.95)}.menu-icon[data-v-199139e7]{display:flex;flex-direction:column;gap:4px}.menu-icon .bar[data-v-199139e7]{width:24px;height:2px;background-color:var(--text-primary);transition:all .3s cubic-bezier(.4,0,.2,1);transform-origin:center}.menu-icon.open .bar[data-v-199139e7]:nth-child(1){transform:rotate(45deg) translate(5px,5px);background-color:var(--primary-color)}.menu-icon.open .bar[data-v-199139e7]:nth-child(2){opacity:0;transform:translate(-10px)}.menu-icon.open .bar[data-v-199139e7]:nth-child(3){transform:rotate(-45deg) translate(5px,-5px);background-color:var(--primary-color)}.main-nav[data-v-199139e7]{display:flex;gap:1.5rem;transition:all var(--transition-normal)}.nav-link[data-v-199139e7]{color:var(--text-secondary);text-decoration:none;font-weight:500;padding:.5rem 0;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;display:inline-block;overflow:hidden}.nav-link[data-v-199139e7]:before{content:"";position:absolute;bottom:0;left:-100%;width:100%;height:2px;background-color:var(--primary-color);border-radius:2px;transition:all .3s cubic-bezier(.4,0,.2,1)}.nav-link[data-v-199139e7]:hover:before,.nav-link.active[data-v-199139e7]:before{left:0}.nav-link[data-v-199139e7]:hover,.nav-link.active[data-v-199139e7]{color:var(--primary-color);transform:translateY(-2px)}.nav-link[data-v-199139e7]:hover{text-shadow:0 1px 3px rgba(22,93,255,.2)}.search-box[data-v-199139e7]{flex:1;max-width:400px;display:flex;align-items:center;background-color:var(--bg-color);border-radius:var(--radius-md);padding:.25rem .5rem;border:1px solid var(--border-color);transition:all .3s cubic-bezier(.4,0,.2,1);height:36px;box-shadow:0 1px 2px #0000000d;transform-origin:center}.search-box[data-v-199139e7]:focus-within{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #165dff1a;background-color:var(--card-bg);transform:translateY(-1px)}.search-box input[data-v-199139e7]{flex:1;background:transparent;border:none;outline:none;font-size:.9rem;color:var(--text-primary);padding:.25rem .5rem;transition:all var(--transition-normal)}.search-box input[data-v-199139e7]::placeholder{color:var(--text-tertiary);transition:all var(--transition-normal)}.search-box:focus-within input[data-v-199139e7]::placeholder{color:var(--text-primary);opacity:.7}.search-btn[data-v-199139e7]{background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:.25rem .375rem;border-radius:var(--radius-sm);transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;transform-origin:center}.search-btn[data-v-199139e7]:hover{color:var(--primary-color);background-color:var(--border-color);transform:scale(1.1)}.search-btn[data-v-199139e7]:active{transform:scale(.95)}.search-clear-btn[data-v-199139e7]{background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:4px;display:flex;align-items:center;justify-content:center;transition:all var(--transition-normal);margin-right:4px}.search-clear-btn[data-v-199139e7]:hover{color:var(--text-primary)}.user-menu[data-v-199139e7]{display:flex;align-items:center;gap:1rem}.user-btn[data-v-199139e7]{display:flex;align-items:center;gap:.5rem;background:none;border:none;cursor:pointer;padding:.5rem 1rem;border-radius:var(--radius-md);transition:all .3s cubic-bezier(.4,0,.2,1);font-size:1rem;color:var(--text-primary);position:relative;overflow:hidden}.user-btn[data-v-199139e7]:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(22,93,255,.1),transparent);transition:all .6s ease}.user-btn[data-v-199139e7]:hover:before{left:100%}.user-btn[data-v-199139e7]:hover{background-color:var(--primary-light);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.user-btn[data-v-199139e7]:active{transform:translateY(0)}.user-name[data-v-199139e7]{font-weight:500;transition:all var(--transition-normal)}.user-btn:hover .user-name[data-v-199139e7]{color:var(--primary-color)}.dropdown[data-v-199139e7]{position:relative}.dropdown-menu[data-v-199139e7]{position:absolute;top:100%;right:0;margin-top:.5rem;background-color:var(--card-bg);box-shadow:var(--shadow-md);border-radius:var(--radius-md);min-width:180px;z-index:1001;overflow:hidden;border:1px solid var(--border-color);transform-origin:top right;animation:dropdownFadeIn-199139e7 .3s cubic-bezier(.4,0,.2,1);opacity:0;visibility:hidden;transform:scale(.95) translateY(-5px);transition:all .3s cubic-bezier(.4,0,.2,1)}.dropdown-menu.visible[data-v-199139e7]{opacity:1;visibility:visible;transform:scale(1) translateY(0)}@keyframes dropdownFadeIn-199139e7{0%{opacity:0;transform:scale(.95) translateY(-5px)}to{opacity:1;transform:scale(1) translateY(0)}}.dropdown-item[data-v-199139e7]{display:block;width:100%;padding:.75rem 1rem;text-align:left;background:none;border:none;cursor:pointer;color:var(--text-primary);text-decoration:none;font-size:.95rem;transition:all .2s ease;position:relative;overflow:hidden}.dropdown-item[data-v-199139e7]:before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background-color:var(--primary-color);transform:translate(-100%);transition:all .3s ease}.dropdown-item-icon[data-v-199139e7]{margin-right:.5rem;display:inline-block;width:16px;height:16px;vertical-align:middle}.dropdown-item[data-v-199139e7]:hover{background-color:var(--bg-color);color:var(--primary-color);padding-left:1.25rem}.dropdown-item[data-v-199139e7]:hover:before{transform:translate(0)}.dropdown-divider[data-v-199139e7]{height:1px;background-color:var(--border-color);margin:.5rem 0;transition:all var(--transition-normal)}.logout-btn[data-v-199139e7]{color:var(--danger-color)!important}.logout-btn[data-v-199139e7]:hover{background-color:#f53f3f1a!important}.logout-btn[data-v-199139e7]:hover:before{background-color:var(--danger-color)}.login-btn[data-v-199139e7],.register-btn[data-v-199139e7]{padding:.5rem 1rem;border-radius:var(--radius-md);text-decoration:none;font-weight:500;transition:all .3s cubic-bezier(.4,0,.2,1);transform-origin:center;box-shadow:var(--shadow-sm)}.login-btn[data-v-199139e7]{color:var(--primary-color);background-color:transparent;border:1px solid var(--primary-color);position:relative;overflow:hidden;z-index:1}.login-btn[data-v-199139e7]:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:var(--primary-gradient);transition:all .3s ease;z-index:-1}.login-btn[data-v-199139e7]:hover:before{left:0}.login-btn[data-v-199139e7]:hover{color:#fff;box-shadow:var(--shadow-md);transform:translateY(-2px)}.register-btn[data-v-199139e7]{color:#fff;background:var(--primary-gradient);border:1px solid var(--primary-color);position:relative;overflow:hidden;z-index:1}.register-btn[data-v-199139e7]:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:all .3s ease;z-index:-1}.register-btn[data-v-199139e7]:hover:before{left:100%}.register-btn[data-v-199139e7]:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.login-btn[data-v-199139e7]:active,.register-btn[data-v-199139e7]:active{transform:translateY(0)}@media (max-width: 1024px){.header-content[data-v-199139e7]{gap:1rem}.search-box[data-v-199139e7]{max-width:300px}}@media (max-width: 768px){.mobile-menu-toggle[data-v-199139e7]{display:block}.header-content[data-v-199139e7]{flex-wrap:wrap;gap:.75rem;padding:.75rem 0}.main-nav[data-v-199139e7]{position:fixed;top:60px;left:0;width:100%;height:calc(100vh - 60px);background-color:var(--card-bg);flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;padding:2rem;transform:translate(-100%);opacity:0;visibility:hidden;z-index:999;box-shadow:var(--shadow-md);transition:all .4s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.main-nav.open[data-v-199139e7]{transform:translate(0);opacity:1;visibility:visible;animation:mobileMenuSlideIn-199139e7 .5s cubic-bezier(.4,0,.2,1)}@keyframes mobileMenuSlideIn-199139e7{0%{transform:translate(-100%);opacity:0}50%{opacity:.5}to{transform:translate(0);opacity:1}}.nav-link[data-v-199139e7]{font-size:1.2rem;padding:.75rem 1.5rem;border-radius:var(--radius-md);transition:all .3s ease}.nav-link[data-v-199139e7]:before{display:none}.nav-link[data-v-199139e7]:hover,.nav-link.active[data-v-199139e7]{background-color:var(--primary-light);color:var(--primary-color);transform:translateY(-3px) scale(1.05);box-shadow:var(--shadow-sm)}.search-box[data-v-199139e7]{max-width:100%;width:100%;order:2;margin:0 auto;height:44px}.user-menu[data-v-199139e7]{gap:.5rem;order:3;display:flex;align-items:center}.login-btn[data-v-199139e7],.register-btn[data-v-199139e7]{padding:.4rem .8rem;font-size:.9rem;min-height:40px}.dropdown-menu[data-v-199139e7]{right:auto;left:50%;transform:translate(-50%) scale(.95) translateY(-5px)}.dropdown-menu.visible[data-v-199139e7]{transform:translate(-50%) scale(1) translateY(0)}}@media (max-width: 640px){.header-content[data-v-199139e7]{gap:.5rem;padding:.5rem 0}.logo-image[data-v-199139e7]{height:20px}.login-btn[data-v-199139e7],.register-btn[data-v-199139e7]{padding:.3rem .6rem;font-size:.8rem;min-height:36px}.main-nav[data-v-199139e7]{gap:1.25rem;top:56px;height:calc(100vh - 56px)}.nav-link[data-v-199139e7]{font-size:1.1rem;padding:.625rem 1.25rem}}@media (max-width: 480px){.header-content[data-v-199139e7]{gap:.5rem}.mobile-menu-toggle[data-v-199139e7]{padding:.375rem}.search-box[data-v-199139e7]{height:40px}.search-box input[data-v-199139e7]{font-size:.85rem}.user-menu[data-v-199139e7]{gap:.375rem}.user-btn[data-v-199139e7]{padding:.375rem .75rem}.user-name[data-v-199139e7]{display:none}.login-btn[data-v-199139e7]{font-size:.85rem;padding:.375rem .75rem}}.app-footer[data-v-86ebfdfb]{background-color:var(--card-bg);border-top:1px solid var(--border-color);padding:2rem 0;margin-top:auto}.footer-content[data-v-86ebfdfb]{display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center}.copyright[data-v-86ebfdfb]{margin:0;color:var(--text-secondary);font-size:.9rem}.footer-links[data-v-86ebfdfb]{display:flex;gap:1.5rem;flex-wrap:wrap;justify-content:center}.footer-link[data-v-86ebfdfb]{color:var(--text-secondary);text-decoration:none;font-size:.9rem;transition:color var(--transition-normal)}.footer-link[data-v-86ebfdfb]:hover{color:var(--primary-color)}@media (max-width: 768px){.footer-links[data-v-86ebfdfb]{gap:1rem}.copyright[data-v-86ebfdfb],.footer-link[data-v-86ebfdfb]{font-size:.8125rem}.app-footer[data-v-86ebfdfb]{padding:1.5rem 0}}.floating-theme-btn[data-v-967d7346]{position:relative;width:48px;height:48px;border-radius:50%;background-color:var(--card-bg);color:var(--text-primary);border:1px solid var(--border-color);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);transition:all var(--transition-normal)}.floating-theme-btn[data-v-967d7346]:hover{background-color:var(--primary-light);transform:translateY(-2px);box-shadow:var(--shadow-md)}.theme-icon-wrapper[data-v-967d7346]{position:relative;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.theme-icon[data-v-967d7346]{position:absolute;width:24px;height:24px;transition:opacity var(--transition-normal),transform var(--transition-normal);display:flex;align-items:center;justify-content:center}.theme-icon.hidden[data-v-967d7346]{opacity:0;transform:scale(.8);pointer-events:none}.sun-icon[data-v-967d7346]{opacity:1;transform:scale(1)}.sun-main[data-v-967d7346]{width:14px;height:14px;background-color:var(--warning-color);border-radius:50%;box-shadow:0 0 10px #ff7d0099;position:relative;z-index:1}.sun-rays[data-v-967d7346]{position:absolute;width:24px;height:24px;pointer-events:none}.sun-rays[data-v-967d7346]:before,.sun-rays[data-v-967d7346]:after,.sun-rays span[data-v-967d7346]:nth-child(1),.sun-rays span[data-v-967d7346]:nth-child(2){content:"";position:absolute;width:2px;height:24px;background-color:var(--warning-color);border-radius:1px;left:50%;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 5px rgba(var(--warning-color),.6)}.sun-rays[data-v-967d7346]:after{transform:translate(-50%,-50%) rotate(90deg)}.sun-rays span[data-v-967d7346]:nth-child(1){transform:translate(-50%,-50%) rotate(45deg)}.sun-rays span[data-v-967d7346]:nth-child(2){transform:translate(-50%,-50%) rotate(135deg)}.moon-icon[data-v-967d7346]{opacity:1;transform:scale(1)}.moon-main[data-v-967d7346]{width:14px;height:14px;background-color:var(--text-tertiary);border-radius:50%;box-shadow:0 0 8px #86909c99;position:relative;overflow:hidden}.moon-shadow[data-v-967d7346]{position:absolute;width:10px;height:10px;background-color:var(--text-secondary);border-radius:50%;top:2px;left:8px;box-shadow:0 0 5px #4e596999}@media (max-width: 768px){.floating-theme-btn[data-v-967d7346]{width:44px;height:44px}}.back-to-top[data-v-74a25b07]{position:fixed;bottom:2rem;right:2rem;width:48px;height:48px;border-radius:50%;background-color:var(--primary-color);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);transition:all var(--transition-normal);z-index:999}.back-to-top[data-v-74a25b07]:hover{background-color:var(--primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}@media (max-width: 768px){.back-to-top[data-v-74a25b07]{width:44px;height:44px;bottom:1rem;right:1rem}.back-to-top svg[data-v-74a25b07]{width:20px;height:20px}}.floating-favorites-btn[data-v-44ebfe10]{position:relative;width:48px;height:48px;border-radius:50%;background-color:var(--card-bg);color:var(--text-primary);border:1px solid var(--border-color);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);transition:all var(--transition-normal);text-decoration:none}.floating-favorites-btn[data-v-44ebfe10]:hover{background-color:var(--primary-light);transform:translateY(-2px);box-shadow:var(--shadow-md)}.favorites-icon-wrapper[data-v-44ebfe10]{position:relative;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.favorites-icon[data-v-44ebfe10]{width:20px;height:20px;transition:all var(--transition-normal);display:flex;align-items:center;justify-content:center}.favorites-icon svg[data-v-44ebfe10]{fill:currentColor;transition:all var(--transition-normal)}.floating-favorites-btn:hover .favorites-icon svg[data-v-44ebfe10]{transform:scale(1.1) rotate(5deg);fill:var(--primary-color)}@media (max-width: 768px){.floating-favorites-btn[data-v-44ebfe10]{width:44px;height:44px}.favorites-icon[data-v-44ebfe10]{width:18px;height:18px}}.floating-create-post-btn[data-v-6f2538eb]{position:relative;width:48px;height:48px;border-radius:50%;background-color:var(--card-bg);color:var(--text-primary);border:1px solid var(--border-color);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);transition:all var(--transition-normal);text-decoration:none}.floating-create-post-btn[data-v-6f2538eb]:hover{background-color:var(--primary-light);transform:translateY(-2px);box-shadow:var(--shadow-md)}.create-post-icon-wrapper[data-v-6f2538eb]{position:relative;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.create-post-icon[data-v-6f2538eb]{width:20px;height:20px;transition:all var(--transition-normal);display:flex;align-items:center;justify-content:center}.create-post-icon svg[data-v-6f2538eb]{fill:currentColor;transition:all var(--transition-normal)}.floating-create-post-btn:hover .create-post-icon svg[data-v-6f2538eb]{transform:scale(1.1) rotate(5deg);fill:var(--primary-color)}@media (max-width: 768px){.floating-create-post-btn[data-v-6f2538eb]{width:44px;height:44px}.create-post-icon[data-v-6f2538eb]{width:18px;height:18px}}.floating-my-posts-btn[data-v-d7e44a19]{position:relative;width:48px;height:48px;border-radius:50%;background-color:var(--card-bg);color:var(--text-primary);border:1px solid var(--border-color);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);transition:all var(--transition-normal);text-decoration:none}.floating-my-posts-btn[data-v-d7e44a19]:hover{background-color:var(--primary-light);transform:translateY(-2px);box-shadow:var(--shadow-md)}.my-posts-icon-wrapper[data-v-d7e44a19]{position:relative;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.my-posts-icon[data-v-d7e44a19]{width:20px;height:20px;transition:all var(--transition-normal);display:flex;align-items:center;justify-content:center}.my-posts-icon svg[data-v-d7e44a19]{fill:currentColor;transition:all var(--transition-normal)}.floating-my-posts-btn:hover .my-posts-icon svg[data-v-d7e44a19]{transform:scale(1.1) rotate(5deg);fill:var(--primary-color)}@media (max-width: 768px){.floating-my-posts-btn[data-v-d7e44a19]{width:44px;height:44px}.my-posts-icon[data-v-d7e44a19]{width:18px;height:18px}}.app-container[data-v-096b74b6]{display:flex;flex-direction:column;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background-color:var(--bg-color);color:var(--text-primary)}.app-main[data-v-096b74b6]{flex:1;padding:2rem 0}.fade-enter-active[data-v-096b74b6],.fade-leave-active[data-v-096b74b6]{transition:opacity .3s ease}.fade-enter-from[data-v-096b74b6],.fade-leave-to[data-v-096b74b6]{opacity:0}.floating-menu-container[data-v-096b74b6]{position:fixed;bottom:2rem;right:2rem;display:flex;flex-direction:column;gap:3px;z-index:999}.menu-toggle-btn[data-v-096b74b6]{position:relative;width:48px;height:48px;border-radius:50%;background-color:var(--card-bg);color:var(--text-primary);border:1px solid var(--border-color);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);transition:all var(--transition-normal);z-index:1000}.menu-toggle-btn[data-v-096b74b6]:hover{background-color:var(--primary-light);transform:translateY(-2px);box-shadow:var(--shadow-md)}.menu-toggle-btn.active[data-v-096b74b6]{background-color:var(--primary-light)}.toggle-icon[data-v-096b74b6]{transition:transform var(--transition-normal);width:20px;height:20px;display:flex;align-items:center;justify-content:center}.toggle-icon.rotated[data-v-096b74b6]{transform:rotate(180deg)}.toggle-icon svg[data-v-096b74b6]{width:20px;height:20px;fill:currentColor;transition:all var(--transition-normal)}.menu-toggle-btn:hover .toggle-icon svg[data-v-096b74b6]{transform:scale(1.1) rotate(5deg);fill:var(--primary-color)}.menu-items[data-v-096b74b6]{display:flex;flex-direction:column;gap:3px;margin-top:3px}.menu-item-enter-active[data-v-096b74b6],.menu-item-leave-active[data-v-096b74b6]{transition:all .3s ease}.menu-item-enter-from[data-v-096b74b6],.menu-item-leave-to[data-v-096b74b6]{opacity:0;transform:translate(20px) scale(.8)}.floating-menu-container.collapsed[data-v-096b74b6]{gap:0}@media (max-width: 1024px){.floating-menu-container[data-v-096b74b6]{bottom:1.5rem;right:1.5rem}.menu-toggle-btn[data-v-096b74b6]{width:52px;height:52px}.menu-items[data-v-096b74b6]{gap:4px}}@media (max-width: 768px){.app-main[data-v-096b74b6]{padding:1rem 0}.floating-menu-container[data-v-096b74b6]{bottom:1rem;right:1rem}.menu-toggle-btn[data-v-096b74b6]{width:44px;height:44px;box-shadow:0 4px 12px #165dff4d}.toggle-icon svg[data-v-096b74b6]{width:22px;height:22px}.menu-items[data-v-096b74b6]{gap:4px;margin-top:4px}.menu-item-enter-active[data-v-096b74b6],.menu-item-leave-active[data-v-096b74b6]{transition:all .2s ease}.menu-item-enter-from[data-v-096b74b6],.menu-item-leave-to[data-v-096b74b6]{opacity:0;transform:translate(15px) scale(.9)}}@media (max-width: 640px){.floating-menu-container[data-v-096b74b6]{bottom:1rem;right:1rem}.menu-toggle-btn[data-v-096b74b6]{width:44px;height:44px}.toggle-icon svg[data-v-096b74b6]{width:24px;height:24px}}@media (max-width: 480px){.floating-menu-container[data-v-096b74b6]{bottom:.75rem;right:.75rem}.menu-toggle-btn[data-v-096b74b6]{width:44px;height:44px;box-shadow:0 6px 16px #165dff59}.toggle-icon svg[data-v-096b74b6]{width:24px;height:24px}.menu-items[data-v-096b74b6]{gap:5px;margin-top:5px}}@media (max-width: 360px){.floating-menu-container[data-v-096b74b6]{bottom:.5rem;right:.5rem}.menu-toggle-btn[data-v-096b74b6]{width:44px;height:44px}.toggle-icon svg[data-v-096b74b6]{width:22px;height:22px}}@media (hover: none) and (pointer: coarse){.menu-toggle-btn[data-v-096b74b6]{min-width:44px;min-height:44px}.menu-toggle-btn[data-v-096b74b6]:hover{transform:none;box-shadow:var(--shadow-md)}.menu-toggle-btn[data-v-096b74b6]:active{transform:scale(.95);transition:all .1s ease}.menu-toggle-btn[data-v-096b74b6]:focus{outline:2px solid var(--primary-color);outline-offset:2px}.menu-toggle-btn[data-v-096b74b6]{touch-action:manipulation}}*{margin:0;padding:0;box-sizing:border-box}html,body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.6;color:var(--text-primary);background-color:var(--bg-color);scroll-behavior:smooth}body,body *{transition:color var(--transition-normal),background-color var(--transition-normal),border-color var(--transition-normal),box-shadow var(--transition-normal);transition-property:color,background-color,border-color,box-shadow;transition-duration:var(--transition-normal);transition-timing-function:ease}:root{--primary-color: #2563EB;--primary-color-rgb: 37, 99, 235;--primary-hover: #3B82F6;--primary-light: #DBEAFE;--primary-gradient: linear-gradient(135deg, #2563EB 0%, #3B82F6 100%);--icon-color: var(--text-primary);--icon-color-hover: var(--primary-color);--secondary-color: #64748B;--secondary-color-rgb: 100, 116, 139;--secondary-hover: #475569;--success-color: #10B981;--success-color-rgb: 16, 185, 129;--success-hover: #059669;--danger-color: #EF4444;--danger-color-rgb: 239, 68, 68;--danger-hover: #DC2626;--warning-color: #F59E0B;--warning-color-rgb: 245, 158, 11;--warning-hover: #D97706;--text-primary: #1E293B;--text-secondary: #64748B;--text-tertiary: #94A3B8;--border-color: #E2E8F0;--border-color-rgb: 226, 232, 240;--bg-color: #F8FAFC;--bg-color-rgb: 248, 250, 252;--card-bg: #FFFFFF;--card-bg-rgb: 255, 255, 255;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--transition-fast: .15s ease;--transition-normal: .2s ease-in-out;--transition-slow: .3s ease}:root.dark{--primary-color: #3B82F6;--primary-color-rgb: 59, 130, 246;--primary-hover: #60A5FA;--primary-light: rgba(59, 130, 246, .15);--primary-gradient: linear-gradient(135deg, #3B82F6 0%, #60A5FA 100%);--secondary-color: #94A3B8;--secondary-color-rgb: 148, 163, 184;--secondary-hover: #CBD5E1;--success-color: #34D399;--success-color-rgb: 52, 211, 153;--success-hover: #10B981;--danger-color: #EF4444;--danger-color-rgb: 239, 68, 68;--danger-hover: #DC2626;--warning-color: #FBBF24;--warning-color-rgb: 251, 191, 36;--warning-hover: #F59E0B;--text-primary: #F1F5F9;--text-secondary: #CBD5E1;--text-tertiary: #94A3B8;--border-color: #334155;--border-color-rgb: 51, 65, 85;--bg-color: #0F172A;--bg-color-rgb: 15, 23, 42;--card-bg: #1E293B;--card-bg-rgb: 30, 41, 59;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .3);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .4), 0 2px 4px -2px rgb(0 0 0 / .3);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .5), 0 4px 6px -4px rgb(0 0 0 / .4);--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--transition-fast: .15s ease;--transition-normal: .2s ease-in-out;--transition-slow: .3s ease}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25;margin-bottom:1rem;color:var(--text-primary)}.n-card-header__main{color:var(--text-primary)!important}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;color:var(--text-secondary)}a{color:var(--primary-color);text-decoration:none;transition:all var(--transition-normal)}a:hover{color:var(--primary-hover)}.container{padding:0 1.5rem}.card{background-color:var(--card-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-normal);overflow:hidden;border:1px solid var(--border-color)}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.table{width:100%;margin-bottom:1rem;color:var(--text-primary);border-collapse:collapse;background-color:var(--card-bg);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.table th,.table td{padding:1rem;vertical-align:middle;border-top:1px solid var(--border-color);font-size:.875rem;transition:all var(--transition-normal)}.table thead th{vertical-align:bottom;border-bottom:2px solid var(--border-color);background:var(--bg-color);color:var(--text-primary);font-weight:600;text-align:left;text-transform:uppercase;font-size:.75rem;letter-spacing:.5px}.table tbody tr{transition:all var(--transition-normal);border-bottom:1px solid var(--border-color)}.table tbody tr:last-child{border-bottom:none}.table-striped tbody tr:nth-of-type(odd){background-color:#165dff05}.table-hover tbody tr:hover{background-color:#165dff0d;transform:translate(4px);box-shadow:inset 4px 0 0 var(--primary-color)}.table-hover tbody tr:hover td{color:var(--text-primary)}.table td{color:var(--text-secondary)}.table .btn-group{display:flex;gap:.5rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.625rem;border:1px solid transparent;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal);gap:.5rem;min-height:32px;text-decoration:none;outline:none}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.btn:focus{outline:2px solid rgba(22,93,255,.3);outline-offset:2px}.btn-primary{background:var(--primary-gradient);color:#fff;box-shadow:var(--shadow-sm);border:none}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm)}.btn-secondary{background:linear-gradient(135deg,var(--secondary-color) 0%,var(--secondary-hover) 100%);color:#fff;border:none;box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-secondary:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm)}.btn-outline-primary{background-color:transparent;color:var(--primary-color);border:2px solid var(--primary-color);transition:all var(--transition-normal)}.btn-outline-primary:hover:not(:disabled){background-color:var(--primary-light);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.btn-success{background:linear-gradient(135deg,var(--success-color) 0%,var(--success-hover) 100%);color:#fff;border:none;box-shadow:var(--shadow-sm)}.btn-success:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-danger{background:linear-gradient(135deg,var(--danger-color) 0%,var(--danger-hover) 100%);color:#fff;border:none;box-shadow:var(--shadow-sm)}.btn-danger:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-sm{padding:.25rem .5rem;font-size:.75rem;min-height:28px;gap:.25rem}.btn-icon-only{padding:.375rem;width:28px;height:28px;min-height:28px;background-color:transparent;border:2px solid transparent;color:var(--text-secondary);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:all var(--transition-normal)}.btn-icon-only.btn-primary{color:var(--text-secondary);border-color:transparent;background:transparent;box-shadow:none}.btn-icon-only.btn-primary:hover{background-color:var(--bg-color);color:var(--primary-color);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-icon-only.btn-danger{color:var(--text-secondary);border-color:transparent;background:transparent;box-shadow:none}.btn-icon-only.btn-danger:hover{background-color:var(--bg-color);color:var(--danger-color);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-icon-only:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-icon-only:active{transform:translateY(0);box-shadow:none}.btn-lg{padding:.875rem 1.75rem;font-size:1rem;min-height:44px;font-weight:600}.btn-block{width:100%;display:flex}.btn-group{display:flex;gap:.25rem;align-items:center}.btn-group.action-buttons{gap:.125rem}.btn-group-vertical{display:flex;flex-direction:column;gap:.5rem;align-items:stretch}.form-group{margin-bottom:.75rem}.form-label{display:block;margin-bottom:.375rem;font-weight:500;color:var(--text-primary);font-size:.875rem}.form-control{width:100%;padding:.625rem .875rem;font-size:.875rem;line-height:1.5;color:var(--text-primary);background-color:var(--card-bg);background-clip:padding-box;border:2px solid var(--border-color);border-radius:var(--radius-md);transition:all var(--transition-normal);box-shadow:0 1px 2px #0000000d;min-height:40px}.form-control:focus{border-color:var(--primary-color);outline:0;box-shadow:0 0 0 3px #165dff1a;transform:translateY(-1px)}.form-control::placeholder{color:var(--text-tertiary);opacity:1}.form-control:disabled,.form-control[readonly]{background-color:var(--bg-color);opacity:.6;cursor:not-allowed}.form-select{width:100%;padding:.625rem 2.25rem .625rem .875rem;font-size:.875rem;line-height:1.5;color:var(--text-primary);background-color:var(--card-bg);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-宽度='2' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:2px solid var(--border-color);border-radius:var(--radius-md);transition:all var(--transition-normal);-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-select:focus{border-color:var(--primary-color);outline:0;box-shadow:0 0 0 3px #165dff1a;transform:translateY(-1px)}.form-control.textarea{min-height:120px;resize:vertical;padding:.875rem}.form-check{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.form-check-input{width:16px;height:16px;cursor:pointer;accent-color:var(--primary-color);transition:all var(--transition-normal)}.form-check-label{cursor:pointer;color:var(--text-secondary);font-size:.875rem;transition:all var(--transition-normal)}.form-check:hover .form-check-label{color:var(--text-primary)}.form-group-horizontal{display:flex;align-items:center;gap:1rem}.form-group-horizontal .form-label{flex:0 0 120px;margin-bottom:0;text-align:right}.form-group-horizontal .form-control{flex:1;margin-bottom:0}.form-error{border-color:var(--danger-color)!important}.form-error:focus{box-shadow:0 0 0 3px #f53f3f1a!important}.form-error-message{color:var(--danger-color);font-size:.75rem;margin-top:.25rem;display:block}.form-success{border-color:var(--success-color)!important}.form-success:focus{box-shadow:0 0 0 3px #00b42a1a!important}.input-group{position:relative;display:flex;align-items:stretch;width:100%}.input-group .form-control{position:relative;flex:1 1 auto;width:1%;margin-bottom:0}.input-group-append,.input-group-prepend{display:flex;align-items:center}.input-group-text{display:flex;align-items:center;padding:.625rem .875rem;margin-bottom:0;font-size:.875rem;font-weight:500;color:var(--text-secondary);text-align:center;white-space:nowrap;background-color:var(--bg-color);border:2px solid var(--border-color);border-radius:var(--radius-md);transition:all var(--transition-normal)}.input-group .form-control:focus+.input-group-text,.input-group .form-control:focus~.input-group-text{border-color:var(--primary-color);background-color:var(--primary-light)}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group .btn+.btn,.input-group .btn+.input-group-text,.input-group .input-group-text+.input-group-text,.input-group .input-group-text+.btn{margin-left:-1px}.input-group .form-control:not(:last-child),.input-group .btn:not(:last-child),.input-group .input-group-text:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group .form-control:not(:first-child),.input-group .btn:not(:first-child),.input-group .input-group-text:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;visibility:hidden;transition:all var(--transition-normal)}.modal-overlay.active{opacity:1;visibility:visible}.modal{background-color:var(--card-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:500px;max-height:90vh;overflow-y:auto;transform:scale(.9) translateY(-20px);opacity:0;transition:all var(--transition-normal);border:1px solid var(--border-color)}.modal-overlay.active .modal{transform:scale(1) translateY(0);opacity:1}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--border-color);background:var(--bg-color);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.modal-header h3,.modal-header h5{margin:0;color:var(--text-primary);font-weight:600}.modal-close{background:var(--primary-color);border:2px solid var(--primary-color);font-size:1.5rem;cursor:pointer;color:#fff;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);transition:all var(--transition-normal);padding:0;opacity:1;box-shadow:var(--shadow-md);z-index:100}.modal-close .icon{color:inherit!important;fill:currentColor!important;stroke:currentColor!important}.modal-close:hover{background-color:var(--primary-hover);border-color:var(--primary-hover);color:#fff;transform:rotate(90deg);box-shadow:var(--shadow-lg)}iconclose{color:inherit!important;fill:currentColor!important;stroke:currentColor!important;opacity:1!important}.modal-body{padding:1rem}.modal-body .form-group{margin-bottom:.25rem!important}.modal-body .form-group.mt-3{margin-top:.25rem!important}.modal-body .form-group+.form-group{margin-top:.25rem!important}.modal-footer{display:flex;align-items:center;justify-content:center;gap:.25rem;padding:1rem;border-top:1px solid var(--border-color);background-color:var(--bg-color);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.modal form{display:flex;flex-direction:column;gap:1rem}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.9) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes modalOverlayFadeIn{0%{opacity:0;visibility:hidden}to{opacity:1;visibility:visible}}.modal.alert-modal{max-width:400px;text-align:center}.modal.confirm-modal{max-width:450px}.modal.loading-modal{max-width:300px;text-align:center}.loading-modal .modal-body{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem}.modal-enter-active,.modal-leave-active{transition:all var(--transition-normal)}.modal-enter-from,.modal-leave-to{opacity:0;transform:scale(.9) translateY(-20px)}.modal-overlay-enter-active,.modal-overlay-leave-active{transition:all var(--transition-normal)}.modal-overlay-enter-from,.modal-overlay-leave-to{opacity:0;visibility:hidden}.page-layout{display:flex;flex-direction:column;min-height:100vh}.page-header{background-color:var(--card-bg);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100;transition:all var(--transition-normal)}.page-content{flex:1;padding:2rem 0}.page-footer{background-color:var(--text-primary);color:#fff;padding:2rem 0;margin-top:auto;text-align:center}.sidebar{background-color:var(--card-bg);box-shadow:var(--shadow-md);height:100vh;position:fixed;top:0;left:0;z-index:99;overflow-y:auto;transition:transform var(--transition-normal);border-right:1px solid var(--border-color);width:240px}.admin-layout{display:flex;min-height:100vh}.admin-content{flex:1;padding:2rem;background-color:var(--bg-color);margin-left:180px;transition:all var(--transition-normal)}.bookmark-card{transition:all var(--transition-normal);cursor:pointer}.bookmark-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.bookmark-icon{width:56px;height:56px;border-radius:var(--radius-md);object-fit:cover;margin-right:1rem;background-color:var(--primary-light);display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:var(--primary-color)}.category-item{transition:all var(--transition-normal);border-radius:var(--radius-full);padding:.625rem 1.25rem;background-color:var(--bg-color);border:1px solid var(--border-color)}.category-item:hover{background-color:var(--primary-light);color:var(--primary-color);border-color:var(--primary-color);transform:translateY(-1px)}.search-container{position:relative;flex-grow:1;max-width:600px}.search-input{width:100%;padding:.75rem 2.5rem .75rem 1rem;border:1px solid var(--border-color);border-radius:var(--radius-full);font-size:.875rem;transition:all var(--transition-normal);box-shadow:var(--shadow-sm)}.search-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #165dff1a,var(--shadow-md);transform:translateY(-1px)}.search-button{position:absolute;right:0;top:0;height:100%;padding:0 1rem;background:var(--primary-gradient);border:none;border-radius:var(--radius-full);cursor:pointer;color:#fff;display:flex;align-items:center;justify-content:center;transition:all var(--transition-normal);box-shadow:var(--shadow-sm)}.search-button:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.user-menu{position:relative;cursor:pointer}.user-menu-dropdown{position:absolute;right:0;top:100%;margin-top:.5rem;background-color:var(--card-bg);box-shadow:var(--shadow-lg);border-radius:var(--radius-lg);min-width:180px;z-index:100;border:1px solid var(--border-color);opacity:0;visibility:hidden;transform:translateY(-10px);transition:all var(--transition-normal)}.user-menu:hover .user-menu-dropdown{opacity:1;visibility:visible;transform:translateY(0)}.user-menu-dropdown a,.user-menu-dropdown button{display:block;width:100%;padding:.75rem 1rem;text-align:left;background:none;border:none;font-size:.875rem;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);border-radius:var(--radius-md);margin:.25rem}.user-menu-dropdown a:hover,.user-menu-dropdown button:hover{background-color:var(--bg-color);color:var(--primary-color)}.badge{display:inline-block;padding:.25rem .75rem;font-size:.75rem;font-weight:500;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--radius-full)}.badge-primary{color:#fff;background-color:var(--primary-color)}.badge-success{color:#fff;background-color:var(--success-color)}.badge-warning{color:var(--text-primary);background-color:var(--warning-color)}.badge-danger{color:#fff;background-color:var(--danger-color)}.rating{color:var(--warning-color)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.35rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mt-0{margin-top:0}.mt-1{margin-top:.35rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.p-0{padding:0}.p-1{padding:.35rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.d-flex{display:flex}.align-items-center{align-items:center}.justify-content-between{justify-content:space-between}.justify-content-center{justify-content:center}.justify-content-around{justify-content:space-around}.justify-content-evenly{justify-content:space-evenly}.flex-wrap{flex-wrap:wrap}.flex-column{flex-direction:column}.flex-grow-1{flex-grow:1}.flex-shrink-0{flex-shrink:0}.gap-1{gap:.5rem}.gap-2{gap:1rem}.gap-3{gap:1.5rem}.gap-4{gap:2rem}.position-relative{position:relative}.position-absolute{position:absolute}.position-fixed{position:fixed}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-success{color:var(--success-color)}.text-danger{color:var(--danger-color)}.text-warning{color:var(--warning-color)}.text-primary-color{color:var(--primary-color)}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.font-weight-bold{font-weight:700}.font-weight-medium{font-weight:500}.bg-primary{background-color:var(--primary-color)}.bg-primary-light{background-color:var(--primary-light)}.bg-secondary{background-color:var(--secondary-color)}.bg-success{background-color:var(--success-color)}.bg-danger{background-color:var(--danger-color)}.bg-warning{background-color:var(--warning-color)}.bg-light{background-color:var(--bg-color)}.bg-white{background-color:var(--card-bg)}.border{border:1px solid var(--border-color)}.border-top{border-top:1px solid var(--border-color)}.border-bottom{border-bottom:1px solid var(--border-color)}.border-left{border-left:1px solid var(--border-color)}.border-right{border-right:1px solid var(--border-color)}.rounded{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-none{box-shadow:none}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.transition{transition:all var(--transition-normal)}.transition-fast{transition:all var(--transition-fast)}.transition-slow{transition:all var(--transition-slow)}.transform{transform:translate(0)}.transform:hover{transform:translateY(-2px)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-color);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb{background:var(--text-tertiary);border-radius:var(--radius-full);transition:all var(--transition-normal)}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}::selection{background-color:#165dff33;color:var(--text-primary)}::-moz-selection{background-color:#165dff33;color:var(--text-primary)}.back-to-top{position:fixed;bottom:2rem;right:2rem;width:44px;height:44px;border-radius:var(--radius-full);background:var(--primary-gradient);color:#fff;border:none;box-shadow:var(--shadow-md);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-normal);opacity:0;visibility:hidden;z-index:99}.back-to-top.visible{opacity:1;visibility:visible}.back-to-top:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.loading{display:flex;align-items:center;justify-content:center;min-height:200px;gap:.5rem;color:var(--text-tertiary)}.loading:after{content:"";width:20px;height:20px;border:2px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:3rem 1.5rem;color:var(--text-tertiary)}.empty-state svg{width:64px;height:64px;margin-bottom:1rem;opacity:.5}.fade-enter-active,.fade-leave-active{transition:opacity var(--transition-normal)}.fade-enter-from,.fade-leave-to{opacity:0}.slide-up-enter-active,.slide-up-leave-active{transition:all var(--transition-normal)}.slide-up-enter-from{opacity:0;transform:translateY(20px)}.slide-up-leave-to{opacity:0;transform:translateY(-20px)}.category-icon{display:inline-flex;align-items:center;justify-content:center;font-size:1rem}.category-icon svg{width:24px;height:24px;fill:var(--icon-color);transition:fill var(--transition-normal)}.category-icon svg path,.category-icon svg polygon,.category-icon svg circle,.category-icon svg rect{fill:inherit}.nav-link:hover .category-icon svg,.category-link:hover .category-icon svg{fill:var(--icon-color-hover)}.nav-link.active .category-icon svg,.category-link.active .category-icon svg{fill:currentColor}.icon-preview svg{width:24px;height:24px;fill:var(--icon-color)}svg.icon{fill:currentColor;transition:fill var(--transition-normal)}svg.icon path,svg.icon polygon,svg.icon circle,svg.icon rect{fill:inherit}@media (max-width: 1024px){h1{font-size:2rem}h2{font-size:1.75rem}h3{font-size:1.5rem}.container{padding:0 1.5rem}.card-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.25rem}}@media (max-width: 768px){h1{font-size:1.75rem;line-height:1.3}h2{font-size:1.5rem;line-height:1.35}h3{font-size:1.25rem;line-height:1.4}.btn,.btn-icon-only,.nav-link,.subcategory-item,.favorite-btn,.search-button{min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center}.form-control,.form-select{min-height:44px}.container{padding:0 1.25rem}.card-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.sidebar{width:100%;height:auto;position:relative;transform:none;border-right:none;border-bottom:1px solid var(--border-color)}.admin-content{margin-left:0;padding:1rem}}@media (max-width: 640px){h1{font-size:1.625rem}h2{font-size:1.375rem}h3{font-size:1.125rem}.container{padding:0 1rem}.card-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.875rem}.btn{padding:.75rem 1.5rem;font-size:.95rem;border-radius:var(--radius-lg)}}@media (max-width: 480px){h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.125rem}.container{padding:0 .875rem}.btn{padding:.875rem 1.75rem;font-size:1rem;border-radius:var(--radius-lg)}.card-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem}}@media (max-width: 360px){h1{font-size:1.375rem}h2{font-size:1.125rem}.container{padding:0 .75rem}.card-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.625rem}.btn{padding:.75rem 1.5rem;font-size:.95rem}}@media (hover: none) and (pointer: coarse){*{-webkit-tap-highlight-color:transparent}.btn:active,.nav-link:active,.subcategory-item:active,.bookmark-card:active{transform:scale(.96);transition:all .1s ease}.btn:focus,.nav-link:focus,.subcategory-item:focus,.form-control:focus{outline:2px solid var(--primary-color);outline-offset:2px}}@media (max-width: 480px){.admin-content{padding:.75rem}.nav-list{grid-template-columns:1fr}.btn{padding:.875rem 1rem;font-size:1rem}.table th,.table td{padding:.5rem .25rem;font-size:.75rem}.form-group{margin-bottom:1rem}.form-label{font-size:.875rem}.modal{margin:.5rem;max-width:calc(100% - 1rem);max-height:calc(100vh - 1rem)}.modal-header,.modal-body,.modal-footer{padding:.75rem}.card-grid{grid-template-columns:1fr;gap:.75rem}}.sidebar-toggle{display:none;position:fixed;top:1rem;left:1rem;z-index:1000;background-color:var(--primary-color);color:#fff;border:none;border-radius:var(--radius-full);width:48px;height:48px;cursor:pointer;box-shadow:var(--shadow-md);transition:all var(--transition-normal)}.sidebar-toggle:hover{background-color:var(--primary-hover);transform:scale(1.05)}.admin-form .form-group{margin-bottom:1.5rem}.admin-form .form-label{margin-bottom:.75rem;font-weight:600;font-size:.875rem}.admin-form .form-control,.admin-form .form-select{font-size:1rem;padding:.875rem;border-radius:var(--radius-md);border:2px solid var(--border-color);transition:all var(--transition-normal)}.admin-form .form-control:focus,.admin-form .form-select:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 3px #165dff1a;transform:translateY(-1px)}.modal-body .form-group{margin-bottom:1rem}.modal-body .form-group.mt-3{margin-top:1.5rem}.modal-body .form-group+.form-group{margin-top:1.5rem}.btn-group .btn{margin-right:.5rem}.btn-group .btn:last-child{margin-right:0}.badge{padding:.375rem .75rem;font-size:.75rem;font-weight:600;border-radius:var(--radius-full)}.loading{min-height:200px;display:flex;align-items:center;justify-content:center;gap:1rem;color:var(--text-tertiary)}.empty-state{padding:3rem 1.5rem;text-align:center;color:var(--text-tertiary)}.empty-state h3{margin-bottom:.5rem;color:var(--text-secondary)}.empty-state p{margin-bottom:1.5rem}.error-state{padding:3rem 1.5rem;text-align:center;color:var(--text-tertiary)}.error-state h3{margin-bottom:.5rem;color:var(--danger-color)}.error-state p{margin-bottom:1.5rem}
