#root { width: 100%; overflow-x: hidden; } body { margin: 0; padding: 0; overflow-x: hidden; } .logo { height: 6em; padding: 1.5em; will-change: filter; transition: filter 300ms; } .logo:hover { filter: drop-shadow(0 0 2em #646cffaa); } .logo.react:hover { filter: drop-shadow(0 0 2em #61dafbaa); } @keyframes logo-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } @media (prefers-reduced-motion: no-preference) { a:nth-of-type(2) .logo { animation: logo-spin infinite 20s linear; } } .card { padding: 2em; } .read-the-docs { color: #888; } .app-container { display: flex; min-height: 100vh; transition: all 0.3s ease; width: 100%; overflow-x: hidden; position: relative; } .app-container.light { background-color: #ffffff; color: #000000; } .app-container.dark { /* background-color: #040511; */ color: #ffffff; } .sidebar { height: 100vh; padding: 0.5rem; display: flex; flex-direction: column; transition: all 0.3s ease-in-out; position: fixed; left: 0; top: 0; background-color: rgba(0, 0, 0, 0.1); backdrop-filter: blur(8px); z-index: 999; } .sidebar-top { display: flex; flex-direction: column; gap: 0.5rem; } .sidebar-bottom { margin-top: auto; } .sidebar.open { width: 200px; z-index: 1; } .sidebar.closed { width: 40px; } .toggle-btn { background: none; border: none; color: #fff; font-size: 1.25rem; cursor: pointer; padding: 0.5rem; margin-bottom: 1rem; transition: color 0.3s ease; text-align: left; } .toggle-btn:hover { color: rgba(255, 255, 255, 0.8); } .nav-links { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 1rem; } .nav-link { display: flex; align-items: center; color: #fff; text-decoration: none; padding: 0.5rem; transition: all 0.3s ease; font-size: 1rem; } .nav-link.theme-toggle { margin-top: auto; } .nav-link svg { font-size: 1.2rem; transition: all 0.3s ease; } .nav-link:hover svg { color: linear-gradient(90deg, #000 0%, #e0e0e0 50%, #ffffff 100%); animation: ease-in-out 3s infinite; } .link-text { transition: all 0.3s ease; white-space: nowrap; font-size: 0.9rem; margin-left: 0.5rem; } .nav-link:hover .link-text { background: linear-gradient(90deg, #ffffff 0%, #e0e0e0 50%, #ffffff 100%); -webkit-background-clip: text; background-clip: text; color: transparent; animation: textShine 3s infinite; } @keyframes textShine { 0% { background-position: -100px; } 100% { background-position: 100px; } } @keyframes iconShine { 0% { background-position: -50px; } 100% { background-position: 50px; } } .link-text.hidden { opacity: 0; width: 0; overflow: hidden; } .theme-toggle { margin-top: auto; background: none; border: none; cursor: pointer; color: #fff; padding: 0.5rem; } .main-content { margin-left: 40px; padding: 1rem; flex: 1; transition: margin-left 0.3s ease-in-out; width: calc(100% - 40px); box-sizing: border-box; } .main-content.expanded { margin-left: 40px; } .light .nav-link, .light .toggle-btn { color: #000000; } .dark .nav-link, .dark .toggle-btn { color: #ffffff; } .auth-container { display: flex; justify-content: center; align-items: center; min-height: calc(100vh - 2rem); padding: 1rem; gap: 4rem; max-width: 100%; box-sizing: border-box; } .bg-login { background: url("../assets/bg2.gif") no-repeat center center fixed #040511; background-size: cover; } .simple-bg { /* background: url("../assets/bg3.gif") repeat center center fixed #040511; */ background: url("../assets/bg3.gif") repeat center center fixed #000; background-size: contain; background-blend-mode: lighten; height: 100%; width: 100%; position: fixed; opacity: 1; } .auth-form-container { background: rgba(99, 102, 241, 0.05); backdrop-filter: blur(10px); padding: 1rem; width: 100%; max-width: 360px; position: relative; overflow: hidden; transition: all 0.3s ease; border-radius: 24px; } .auth-form-container::before { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.1), transparent); transform: translateX(-100%) rotate(45deg); transition: transform 0.1s ease; } .auth-form-container:hover::before { animation: cardGloss 1s ease-in-out; } @keyframes cardGloss { 0% { transform: translateX(-100%) rotate(45deg); } 100% { transform: translateX(100%) rotate(45deg); } } .auth-form-container h2 { margin-bottom: 1.5rem; font-size: 1.75rem; text-align: center; position: relative; } .form-group { margin-bottom: 1rem; position: relative; } .auth-form .form-group input { width: 100%; padding: 0.5rem 0; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 8px; background: rgba(255, 255, 255, 0.05); color: inherit; font-size: 0.9rem; transition: all 0.3s ease; text-align: center; } .light .form-group input { background: rgba(0, 0, 0, 0.05); border-color: rgba(0, 0, 0, 0.1); } .form-group input:focus { outline: none; border-color: rgba(255, 255, 255, 0.3); background: rgba(255, 255, 255, 0.1); } .light .form-group input:focus { border-color: rgba(0, 0, 0, 0.3); background: rgba(0, 0, 0, 0.08); } .submit-btn { width: 100%; padding: 0.5rem; border: none; border-radius: 8px; background: #6366f1; color: white; font-size: 0.9rem; font-weight: 600; cursor: pointer; transition: all 0.3s ease; margin-top: 0.5rem; } .submit-btn:hover { background: #4f46e5; transform: translateY(-1px); } .form-switch { margin-top: 1rem; text-align: center; font-size: 0.85rem; position: relative; } .form-switch a { color: #6366f1; text-decoration: none; font-weight: 600; transition: all 0.3s ease; margin-left: 0.25rem; } .form-switch a:hover { color: #4f46e5; } .hero-section { max-width: 400px; } .hero-content { display: flex; flex-direction: column; align-items: flex-start; gap: 2rem; } .hero-logo { display: flex; align-items: center; gap: 1rem; } .hero-logo svg { font-size: 3rem; } .product-name { position: fixed; font-size: 20px; width: 165px; bottom: 20px; left: 70px; } sup { font-size: 20px; font-weight: bold; } sub { font-size: 12px; background: #6366f1; border: 1px solid #999; padding: 1px; border-radius: 5px; position: absolute; top: 5px; right: 5px; font-weight: bold; } .hero-logo h1 { font-size: 3.5rem; font-weight: 700; background: linear-gradient(0.25turn, #fff, #8a8f98); -webkit-background-clip: text; background-clip: text; color: transparent; } .hero-tagline { font-size: 1.5rem; font-weight: 500; color: #6366f1; position: relative; padding-left: 1rem; } .nav-divider { height: 1px; background: rgba(255, 255, 255, 0.1); margin: 0.5rem 0; width: 100%; } .light .nav-divider { background: rgba(0, 0, 0, 0.1); } @media (max-width: 968px) { .auth-container { padding: 1rem; gap: 2rem; } .main-content { padding: 0.5rem; } .hero-section { text-align: center; } .hero-content { align-items: center; } .hero-logo h1 { font-size: 2.5rem; } .hero-tagline { font-size: 1.25rem; } } #toast-container { position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%); z-index: 10000; width: auto; max-width: calc(100vw - 40px); pointer-events: none; } #toast-container>* { pointer-events: auto; } /* Prevent horizontal scrollbar when toast appears */ body.has-toast { overflow-x: hidden; }