.auth-container{min-height:100vh;background:linear-gradient(135deg,#0b1220,#1a1f35);display:grid;grid-template-columns:1fr 1fr;gap:0;overflow:hidden}.auth-box{background:linear-gradient(180deg,#0f172af2,#0f172afa);padding:3rem 2.5rem;display:flex;flex-direction:column;justify-content:center;max-width:500px;margin:auto;width:100%}.auth-header{margin-bottom:2rem}.auth-header h1{color:#e6eef8;font-size:2rem;margin-bottom:.5rem;font-weight:600}.auth-header p{color:#9fb9d6;font-size:.95rem}.auth-tabs{display:flex;gap:.5rem;margin-bottom:2rem;background:#ffffff08;padding:.4rem;border-radius:12px}.auth-tab{flex:1;padding:.75rem 1.5rem;background:transparent;border:none;color:#9fb9d6;font-size:.95rem;font-weight:600;cursor:pointer;border-radius:8px;transition:all .2s}.auth-tab.active{background:linear-gradient(135deg,#3b82f633,#2563eb33);color:#e6eef8;box-shadow:0 4px 12px #3b82f626}.auth-form{display:flex;flex-direction:column;gap:1.25rem}.auth-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#fca5a5;padding:.75rem 1rem;border-radius:8px;font-size:.9rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{color:#bcd7ee;font-size:.9rem;font-weight:500}.form-group input{padding:.875rem 1rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#e6eef8;font-size:.95rem;transition:all .2s}.form-group input::placeholder{color:#e6eef866}.form-group input:focus{outline:none;border-color:#3b82f680;background:#ffffff0f;box-shadow:0 0 0 3px #3b82f61a}.form-group input:disabled{opacity:.6;cursor:not-allowed}.auth-btn{padding:1rem;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;margin-top:.5rem}.auth-btn:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 6px 20px #3b82f64d}.auth-btn:active:not(:disabled){transform:translateY(0)}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-footer{margin-top:1.5rem;text-align:center}.auth-footer p{color:#9fb9d6;font-size:.9rem}.auth-link{background:none;border:none;color:#3b82f6;font-weight:600;cursor:pointer;text-decoration:none;padding:0;transition:color .2s}.auth-link:hover:not(:disabled){color:#60a5fa;text-decoration:underline}.auth-link:disabled{opacity:.6;cursor:not-allowed}.auth-visual{background:linear-gradient(135deg,#1a1f35,#0f1729);display:flex;align-items:center;justify-content:center;padding:3rem}.sorting-preview{width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.bars{display:flex;align-items:flex-end;gap:.75rem;width:100%;height:280px;padding:1rem}.bar{flex:1;background:linear-gradient(180deg,#3b82f6,#1e40af);border-radius:6px 6px 0 0;box-shadow:0 4px 12px #3b82f64d;animation:barPulse 2s ease-in-out infinite;transform-origin:bottom}.bar:nth-child(1){animation-delay:0s}.bar:nth-child(2){animation-delay:.2s}.bar:nth-child(3){animation-delay:.4s}.bar:nth-child(4){animation-delay:.6s}.bar:nth-child(5){animation-delay:.8s}.bar:nth-child(6){animation-delay:1s}@keyframes barPulse{0%,to{opacity:1;transform:scaleY(1)}50%{opacity:.7;transform:scaleY(.95)}}.preview-caption{color:#9fb9d6;font-size:.9rem;text-align:center}@media (max-width: 968px){.auth-container{grid-template-columns:1fr}.auth-visual{display:none}.auth-box{max-width:100%;padding:2rem 1.5rem}}@media (max-width: 480px){.auth-header h1{font-size:1.5rem}.auth-box{padding:1.5rem 1rem}.auth-tabs{gap:.25rem}.auth-tab{padding:.625rem 1rem;font-size:.875rem}}:root{--bg-dark: #0b1220;--card: #ffffff;--muted: #9fb9d6;--accent-blue-start: #07a6d6;--accent-blue-end: #023b6b;--accent-coral-start: #ff9b9b;--accent-coral-end: #ff6b6b}.topic-selector-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(180deg,var(--bg-dark),#081424);display:flex;align-items:center;justify-content:center;z-index:10000}.topic-card{width:760px;max-width:96%;background:linear-gradient(180deg,#ffffff05,#ffffff03);border-radius:14px;box-shadow:0 20px 40px #02061799;overflow:hidden;padding:32px;display:flex;align-items:center;justify-content:center}.topic-content{width:100%;padding:8px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center}.topic-content h1{margin:0 0 10px;font-size:28px;color:#e6eef8;text-align:center}.topic-content p.lead{margin:0 0 20px;color:var(--muted);text-align:center}.tiles{display:flex;gap:28px;align-items:center;justify-content:center}.tile{width:300px;height:300px;background:var(--card);border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;border:1px solid rgba(255,255,255,.04);box-shadow:0 12px 30px #02061759;transition:transform .14s ease,box-shadow .14s ease;-webkit-user-select:none;user-select:none;padding:18px;text-align:center;color:#0b1220}.tile:hover{transform:translateY(-8px);box-shadow:0 22px 40px #02061780}.tile .bar{width:80%;height:10px;border-radius:6px;margin-bottom:18px}.tile .title{font-size:22px;font-weight:700;margin-bottom:8px}.tile .subtitle{font-size:14px;color:#5b6f86}.tile.blue .bar{background:linear-gradient(90deg,var(--accent-blue-start),var(--accent-blue-end))}.tile.coral .bar{background:linear-gradient(90deg,var(--accent-coral-start),var(--accent-coral-end))}@media (max-width: 760px){.topic-card{flex-direction:column;padding:18px}.tiles{flex-direction:column}.tile{width:100%;height:180px}}.toolbar{display:flex;align-items:center;justify-content:flex-start;gap:1rem;padding:1rem 2rem;background-color:#34495e;box-shadow:0 2px 10px #0000001a;flex-wrap:wrap;min-height:80px}.user-info{display:flex;align-items:center;gap:1rem;padding:.5rem 1rem;background:#ffffff0d;border-radius:8px}.username{color:#fff;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9rem;font-weight:500}.change-topic-button{background:#07a6d633;border:1px solid rgba(7,166,214,.4);border-radius:6px;padding:.4rem .8rem;color:#7dd3fc;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease}.change-topic-button:hover:not(:disabled){background:#07a6d64d;border-color:#07a6d699;color:#bae6fd}.change-topic-button:disabled{opacity:.5;cursor:not-allowed}.logout-button{background:#ef444433;border:1px solid rgba(239,68,68,.4);border-radius:6px;padding:.4rem .8rem;color:#fca5a5;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease}.logout-button:hover:not(:disabled){background:#ef44444d;border-color:#ef444499;color:#fee2e2}.logout-button:disabled{opacity:.5;cursor:not-allowed}.toolbar-button,.algorithm-button,.sort-button{background:transparent;border:2px solid transparent;border-radius:8px;padding:.5rem 1rem;color:#fff;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.toolbar-button:hover:not(:disabled),.algorithm-button:hover:not(:disabled),.sort-button:hover:not(:disabled){color:#f1f1f1;border-color:#ffffff4d;transform:translateY(-2px)}.toolbar-button:disabled,.algorithm-button:disabled,.sort-button:disabled{color:#d61d1dcc;cursor:not-allowed;transform:none}.algorithm-button.active{color:#f15eff;border-color:#f15eff;background:#f15eff1a}.algorithm-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.separator{width:3px;height:40px;background:#0000004d;border-radius:2px}.control-group{display:flex;flex-direction:column;gap:.5rem;align-items:center;min-height:60px;justify-content:space-between}.control-label{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.85rem;color:#fff;text-align:center}.size-slider{width:120px;height:6px;border-radius:3px;background:#fff3;outline:none;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none}.size-slider::-webkit-slider-thumb{-moz-appearance:none;appearance:none;-webkit-appearance:none;height:18px;width:18px;border-radius:50%;background:#f15eff;cursor:pointer;box-shadow:0 2px 6px #0003;transition:all .3s ease}.size-slider::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:0 4px 12px #f15eff66}.size-slider::-moz-range-thumb{height:18px;width:18px;border-radius:50%;background:#f15eff;cursor:pointer;border:none;box-shadow:0 2px 6px #0003}.size-slider:disabled{opacity:.5;cursor:not-allowed}.size-slider:disabled::-webkit-slider-thumb{cursor:not-allowed;transform:none}.speed-slider::-webkit-slider-thumb{background:#4ecdc4}.speed-slider::-webkit-slider-thumb:hover{box-shadow:0 4px 12px #4ecdc466}.speed-slider::-moz-range-thumb{background:#4ecdc4}.speed-value{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-weight:600;margin-top:.25rem;line-height:1;height:12px;display:flex;align-items:center;justify-content:center}.control-spacer{height:12px;margin-top:.25rem}.sort-button{background:linear-gradient(45deg,#f15eff,#a855f7);border-color:transparent;font-weight:600;text-transform:uppercase;letter-spacing:1px}.sort-button:hover:not(:disabled){background:linear-gradient(45deg,#e14eca,#9333ea);transform:translateY(-3px);box-shadow:0 8px 25px #f15eff4d}@media (max-width: 768px){.toolbar{flex-direction:column;align-items:stretch;padding:1rem;gap:1rem}.algorithm-buttons{justify-content:center}.separator{display:none}.control-group{flex-direction:row;justify-content:space-between}}.visualizer{flex:1;display:flex;align-items:flex-end;justify-content:center;background:linear-gradient(180deg,#e6e6e6,#f5f5f5);padding:2rem 1rem;min-height:0}.array-container{display:flex;align-items:flex-end;justify-content:center;gap:1px;width:100%;height:100%;min-height:400px;max-width:100%;overflow-x:auto;padding:0 1rem}.array-element{display:flex;align-items:flex-end;justify-content:center;padding:4px 2px;font-weight:700;font-size:12px;color:#fff;text-shadow:1px 1px 2px rgba(0,0,0,.5);border-radius:4px 4px 0 0;transition:all .3s ease;min-width:8px;position:relative;box-shadow:0 2px 8px #0000001a}.array-element:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.array-element{animation:elementPulse .3s ease-out}@keyframes elementPulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@media (max-width: 768px){.visualizer{padding:1rem .5rem}.array-container{min-height:300px;padding:0 .5rem}}@media (max-width: 480px){.array-container{min-height:250px;gap:0}.array-element{font-size:10px;padding:2px 1px}}.array-container::-webkit-scrollbar{height:8px}.array-container::-webkit-scrollbar-track{background:#0000001a;border-radius:4px}.array-container::-webkit-scrollbar-thumb{background:#34495e80;border-radius:4px}.array-container::-webkit-scrollbar-thumb:hover{background:#34495eb3}.alphabeta-toolbar{display:flex;align-items:center;padding:1rem 2rem;background:linear-gradient(135deg,#1e293b,#0f172a);border-bottom:2px solid #334155;box-shadow:0 4px 6px #0000004d;position:sticky;top:0;z-index:100}.toolbar-title{display:flex;align-items:center}.toolbar-title h2{margin:0;font-size:1.5rem;font-weight:600;color:#e2e8f0;letter-spacing:.5px}.toolbar-spacer{flex:1}.user-section{display:flex;align-items:center;gap:1rem}.username{font-size:1rem;color:#94a3b8;font-weight:500;padding:.5rem 1rem;background:#0f172a80;border-radius:6px;border:1px solid #334155}.toolbar-btn{padding:.5rem 1rem;font-size:.9rem;font-weight:500;border:none;border-radius:6px;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:.5px}.change-topic-btn{background:#3b82f6;color:#fff}.change-topic-btn:hover{background:#2563eb;transform:translateY(-1px);box-shadow:0 4px 8px #3b82f64d}.logout-btn{background:#ef4444;color:#fff}.logout-btn:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 4px 8px #ef44444d}.toolbar-btn:active{transform:translateY(0)}@media (max-width: 768px){.alphabeta-toolbar{flex-wrap:wrap;padding:.75rem 1rem;gap:.5rem}.toolbar-title h2{font-size:1.2rem}.toolbar-spacer{display:none}.user-section{width:100%;justify-content:flex-end;gap:.5rem}.username{font-size:.85rem;padding:.4rem .75rem}.toolbar-btn{padding:.4rem .75rem;font-size:.8rem}}.alphabeta-container{width:100%;height:100vh;background:linear-gradient(180deg,#0b1220,#081424);color:#e6eef8;overflow:hidden;display:flex;flex-direction:column}.alphabeta-content{display:flex;flex:1;overflow:hidden}.tree-visualization{flex:1;padding:2rem;overflow:auto;display:flex;align-items:center;justify-content:center;min-height:0}.tree-visualization svg{display:block;background:#ffffff05;border-radius:8px;min-width:100%;min-height:100%}.tree-visualization .node{transform:scale(1.5)}.tree-visualization .link{stroke-width:3px}.control-panel{width:320px;padding:1.5rem;background:#ffffff0d;border-left:1px solid rgba(255,255,255,.1);overflow-y:auto}.control-section{margin-bottom:2rem;padding:1rem;background:#ffffff08;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.control-section h3{margin:0 0 1rem;font-size:1.1rem;color:#07a6d6}.control-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.control-row label{font-size:.9rem;color:#e6eef8}.button-group{display:flex;gap:.5rem}.button-group button,.control-row>button{padding:.4rem 1rem;background:#07a6d633;border:1px solid rgba(7,166,214,.4);border-radius:6px;color:#7dd3fc;cursor:pointer;font-size:.9rem;transition:all .2s ease}.button-group button:hover,.control-row>button:hover{background:#07a6d64d;border-color:#07a6d699}.action-button{width:100%;padding:.8rem;margin-bottom:.8rem;background:#07a6d633;border:1px solid rgba(7,166,214,.4);border-radius:6px;color:#7dd3fc;cursor:pointer;font-size:.95rem;font-weight:500;transition:all .2s ease}.action-button:hover{background:#07a6d64d;border-color:#07a6d699;transform:translateY(-1px)}.action-button.primary{background:linear-gradient(45deg,#f15eff,#a855f7);border:none;color:#fff}.action-button.primary:hover{background:linear-gradient(45deg,#e14eca,#9333ea);transform:translateY(-2px)}.result-box{padding:1rem;margin:1rem 0;border-radius:8px;text-align:center}.result-box.correct{background:#10b98133;border:1px solid rgba(16,185,129,.4);color:#6ee7b7}.result-box.incorrect{background:#ef444433;border:1px solid rgba(239,68,68,.4);color:#fca5a5}.result-box h3{margin:0 0 .5rem;font-size:1.2rem}.result-box p{margin:0;font-size:.9rem}.input-box{padding:1rem;margin:1rem 0;background:#ffffff14;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.input-box h3{margin:0 0 1rem;font-size:1rem;color:#e6eef8}.input-box input{width:100%;padding:.6rem;margin-bottom:.8rem;background:#0000004d;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#e6eef8;font-size:1rem}.input-box input:focus{outline:none;border-color:#07a6d6}.instructions{padding:1rem;background:#ffffff08;border-radius:8px;margin-top:1rem;border:1px solid rgba(255,255,255,.1)}.instructions h4{margin:0 0 .8rem;font-size:.95rem;color:#07a6d6}.instructions ul{margin:0;padding-left:1.5rem;font-size:.85rem;color:#9fb9d6;line-height:1.6}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{width:90%;max-width:600px;max-height:80vh;background:linear-gradient(180deg,#1a2332,#0f1825);border-radius:12px;border:1px solid rgba(255,255,255,.1);overflow:hidden}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;background:#ffffff0d;border-bottom:1px solid rgba(255,255,255,.1)}.modal-header h3{margin:0;color:#e6eef8}.modal-header button{width:32px;height:32px;background:transparent;border:none;color:#9fb9d6;font-size:2rem;cursor:pointer;line-height:1;transition:color .2s}.modal-header button:hover{color:#e6eef8}.scores-list{padding:1.5rem;max-height:calc(80vh - 100px);overflow-y:auto}.scores-list p{text-align:center;color:#9fb9d6}.score-item{padding:1rem;margin-bottom:.8rem;background:#ffffff0d;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.score-main{display:flex;align-items:center;gap:1rem}.score-badge{padding:.5rem 1rem;border-radius:6px;font-weight:700;font-size:1.1rem;min-width:80px;text-align:center}.score-badge.correct{background:#10b98133;color:#6ee7b7;border:1px solid rgba(16,185,129,.4)}.score-badge.incorrect{background:#ef444433;color:#fca5a5;border:1px solid rgba(239,68,68,.4)}.score-details{flex:1}.score-details p{margin:0 0 .3rem;font-size:.9rem;color:#e6eef8;text-align:left}.score-date{font-size:.8rem!important;color:#9fb9d6!important}@media (max-width: 1024px){.alphabeta-content{flex-direction:column}.control-panel{width:100%;max-height:40vh;border-left:none;border-top:1px solid rgba(255,255,255,.1)}.tree-visualization{height:60vh}}.app.loading{background:linear-gradient(135deg,#0b1220,#1a1f35);display:flex;align-items:center;justify-content:center}.loading-spinner{color:#e6eef8;font-size:1.2rem;font-family:Monaco,Menlo,Ubuntu Mono,monospace;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;background-color:#0b1220;overflow-x:hidden}#root{width:100vw;min-height:100vh}.app{display:flex;flex-direction:column;min-height:100vh}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
