*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg: #000000;--bg-panel: #000000;--bg-input: #0d0d0d;--text: #f5f5f5;--text-dim: #f5f5f5;--neon: #ffffff;--neon-dim: #cccccc;--neon-glow: rgba(255, 255, 255, .3);--danger: #ff4444;--danger-glow: rgba(255, 68, 68, .4);--border: #f0f0f0;--success: #ffffff}html,body,#root{height:100%;width:100%}body{font-family:"Press Start 2P",monospace;background:var(--bg);color:var(--text);font-size:10px;line-height:1.8;overflow-x:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}button{font-family:"Press Start 2P",monospace;cursor:pointer;border:2px solid var(--neon);background:transparent;color:var(--neon);padding:10px 18px;font-size:10px;transition:all .2s;text-transform:uppercase}button:hover{background:var(--neon);color:var(--bg);box-shadow:0 0 12px var(--neon-glow),0 0 24px var(--neon-glow)}button:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;background:transparent;color:var(--neon-dim)}button.danger{border-color:var(--danger);color:var(--danger)}button.danger:hover{background:var(--danger);color:var(--bg);box-shadow:0 0 12px var(--danger-glow)}input,select{font-family:"Press Start 2P",monospace;background:var(--bg-input);border:2px solid var(--border);color:var(--text);padding:8px 12px;font-size:9px;outline:none;transition:border-color .2s}input:focus,select:focus{border-color:var(--neon);box-shadow:0 0 6px var(--neon-glow)}select option{background:var(--bg-input);color:var(--text)}a{color:var(--neon);text-decoration:none;cursor:pointer}a:hover{text-shadow:0 0 8px var(--neon-glow)}.auth-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:20px}.auth-box{border:2px solid var(--border);padding:40px;max-width:480px;width:100%;background:var(--bg-panel)}.auth-box h1{text-align:center;font-size:14px;margin-bottom:30px;color:var(--neon);text-shadow:0 0 10px var(--neon-glow)}.auth-note{font-size:12px;color:var(--text-dim);margin-bottom:8px;line-height:1.6;font-family:monospace;font-style:italic}.auth-box .field{margin-bottom:18px}.auth-box .field label{display:block;margin-bottom:6px;font-size:8px;color:var(--text-dim)}.auth-box .field input{width:100%}.auth-box button{width:100%;margin-top:10px;padding:14px;font-size:12px}.auth-box .switch-link{text-align:center;margin-top:20px;font-size:8px}.auth-error{color:var(--danger);font-size:8px;margin-bottom:12px;text-align:center}.main-page{display:flex;flex-direction:column;height:100vh}.main-header{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;border-bottom:2px solid var(--border);background:var(--bg-panel);flex-shrink:0}.main-header h1{font-size:12px;color:var(--neon);text-shadow:0 0 10px var(--neon-glow)}.header-right{display:flex;align-items:center;gap:14px}.help-icon{width:36px;height:36px;border:2px solid #ffffff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff;cursor:pointer;transition:all .2s;text-decoration:none;flex-shrink:0;font-weight:700}.help-icon:hover{border-color:#fff;color:#000;background:#fff;box-shadow:0 0 12px #ffffff80;text-shadow:none}.logout-btn{font-size:9px;padding:10px 16px;border-color:#fff;color:#fff}.logout-btn:hover{border-color:var(--danger);color:var(--danger);background:transparent;box-shadow:0 0 8px var(--danger-glow)}.main-content{display:flex;flex:1;overflow:hidden;position:relative}.sidebar{width:260px;min-width:260px;border-right:2px solid var(--border);background:var(--bg-panel);display:flex;flex-direction:column;overflow-y:auto;padding:16px;position:absolute;left:0;top:0;bottom:0;z-index:20;transition:transform .25s ease}.sidebar-overlay{box-shadow:4px 0 20px #00000080}.sidebar-collapsed{transform:translate(-100%);pointer-events:none}.sidebar-tab{position:fixed;top:50%;margin-top:-24px;width:24px;height:48px;padding:0;border:2px solid var(--border);border-radius:0 6px 6px 0;background:var(--bg-panel);color:var(--neon);font-size:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:30;transition:all .2s;box-shadow:2px 0 8px #0000004d}.sidebar-tab:hover{background:var(--neon);color:var(--bg);box-shadow:0 0 12px var(--neon-glow)}.sidebar-tab.tab-right{left:260px;border-radius:0 6px 6px 0}.sidebar-tab.tab-left{left:0;border-radius:0 6px 6px 0;border-left:none}.workspace{transition:margin-left .25s ease}.sidebar-section{margin-bottom:24px}.sidebar-section h2{font-size:9px;color:var(--text-dim);margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--border)}.sidebar-list{list-style:none}.sidebar-item{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;margin-bottom:4px;border:1px solid transparent;cursor:pointer;font-size:8px;transition:all .15s;word-break:break-all}.sidebar-item:hover{border-color:var(--border);background:#ffffff08}.sidebar-item.active{border-color:var(--neon);background:#ffbb3314;color:var(--neon)}.sidebar-item .item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-item.csv-file-item{cursor:pointer}.item-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.icon-btn{background:none;border:none;color:var(--text-dim);font-size:12px;cursor:pointer;padding:0 4px;line-height:1;font-family:inherit}.icon-btn:hover{color:var(--neon);background:none;box-shadow:none}.download-btn:hover{color:var(--neon)}.delete-btn{background:none;border:none;color:var(--text-dim);font-size:12px;cursor:pointer;padding:0 4px;line-height:1;flex-shrink:0;margin-left:8px}.delete-btn:hover{color:var(--danger);background:none;box-shadow:none}.add-btn{display:flex;align-items:center;justify-content:center;width:100%;padding:8px;border:2px dashed var(--border);background:transparent;color:var(--text-dim);font-size:16px;cursor:pointer;transition:all .2s;margin-top:6px}.add-btn:hover{border-color:var(--neon);color:var(--neon);box-shadow:0 0 8px var(--neon-glow)}.upload-input{display:none}.workspace{flex:1;overflow-y:auto;padding:24px;display:flex;flex-direction:column;align-items:center}.workspace-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-dim);font-size:10px}.project-editor{width:100%;max-width:800px}.editor-section{margin-bottom:24px}.editor-section h3{font-size:10px;margin-bottom:12px;color:var(--neon);text-shadow:0 0 6px var(--neon-glow)}.layers-config{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.layer-row{display:flex;align-items:center;gap:10px}.layer-row label{font-size:8px;color:var(--text-dim);min-width:100px}.layer-row input{width:70px;text-align:center}.layer-row .delete-btn{font-family:"Press Start 2P",monospace}.add-layer-btn{font-size:8px;padding:6px 12px;border-style:dashed}.config-row{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:16px;align-items:flex-end}.config-field{display:flex;flex-direction:column;gap:6px}.config-field label{font-size:7px;color:var(--text-dim)}.config-field select,.config-field input{min-width:140px}.big-btn{width:100%;padding:16px;font-size:14px;margin-bottom:12px;letter-spacing:2px}.big-btn.train{border-color:var(--success);color:var(--success)}.big-btn.train:hover{background:var(--success);color:var(--bg);box-shadow:0 0 16px #4f46}.nn-image-wrapper{display:flex;justify-content:center;margin:20px 0;padding:16px;background:var(--bg)}.nn-image-wrapper img{max-width:100%;height:auto;image-rendering:auto}.answer-section{width:100%}.input-vector-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.input-vector-field{display:flex;flex-direction:column;gap:4px}.input-vector-field label{font-size:6px;color:var(--text-dim)}.input-vector-field input{width:80px;text-align:center}.answer-output{border:2px solid var(--border);background:var(--bg);padding:16px;min-height:80px;font-family:monospace;font-size:14px;white-space:pre-wrap;word-break:break-all;color:var(--success);line-height:1.8}.loading{color:var(--neon);font-size:10px;text-align:center;padding:20px;animation:blink 1s infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.status-msg{font-size:8px;text-align:center;padding:8px;margin-bottom:12px}.status-msg.error{color:var(--danger)}.status-msg.success{color:var(--success)}
