*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg0: #08080f;--bg1: #0d0d18;--bg2: #13132a;--bg3: #1a1a3a;--border: #252545;--text: #dde0f5;--text2: #8888aa;--accent: #4fc3f7;--accent2: #7c4dff;--green: #66bb6a;--red: #ef5350;--orange: #ffa726;font-family:Inter,system-ui,-apple-system,sans-serif}html,body,#root{height:100%;overflow:hidden}body{background:var(--bg0);color:var(--text);font-size:13px}button{cursor:pointer;font-family:inherit;font-size:12px;border:none;outline:none;transition:background .12s,opacity .12s}button:disabled{opacity:.35;cursor:not-allowed}input,textarea{font-family:inherit;color:var(--text);background:transparent;border:none;outline:none}input[type=number]::-webkit-inner-spin-button{opacity:.4}select.input-field{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%238888aa'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:28px;cursor:pointer}select.input-field option{background:#1a1a3a;color:#dde0f5}*{scrollbar-width:thin;scrollbar-color:#444 transparent}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#444;border-radius:2px}.app{display:flex;flex-direction:column;height:100vh;background:var(--bg0)}.app-header{height:48px;flex-shrink:0;display:flex;align-items:center;gap:12px;padding:0 16px;border-bottom:1px solid var(--border);background:var(--bg1)}.app-logo{font-size:16px;font-weight:700;color:var(--accent);letter-spacing:-.3px}.app-logo span{color:var(--accent2)}.app-subtitle{font-size:11px;color:var(--text2);flex:1}.app-body{display:flex;flex:1;overflow:hidden}.left-panel{width:248px;flex-shrink:0;display:flex;flex-direction:column;overflow-y:auto;border-right:1px solid var(--border);background:var(--bg1)}.canvas-wrapper{flex:1;position:relative;overflow:hidden}.right-panel{width:310px;flex-shrink:0;display:flex;flex-direction:column;border-left:1px solid var(--border);background:var(--bg1)}.bottom-bar{height:52px;flex-shrink:0;display:flex;align-items:center;gap:12px;padding:0 14px;border-top:1px solid var(--border);background:var(--bg1)}.section{padding:12px 12px 0}.section-title{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text2);margin-bottom:8px}.input-field{background:var(--bg3);border:1px solid var(--border);border-radius:6px;padding:6px 10px;color:var(--text);font-size:12px;width:100%;transition:border-color .15s}.input-field:focus{border-color:var(--accent)}.btn-primary{background:var(--accent2);color:#fff;padding:6px 12px;border-radius:6px;font-weight:500;font-size:12px}.btn-primary:hover:not(:disabled){background:#9c6fff}.btn-secondary{background:var(--bg3);color:var(--text);padding:6px 10px;border-radius:6px;border:1px solid var(--border);font-size:12px}.btn-secondary:hover:not(:disabled){background:#252545}.upload-panel{display:flex;flex-direction:column}.drop-zone{border:1.5px dashed var(--border);border-radius:8px;padding:12px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;min-height:80px;display:flex;align-items:center;justify-content:center}.drop-zone:hover,.drop-zone.dragging{border-color:var(--accent);background:#4fc3f70a}.drop-hint{display:flex;flex-direction:column;gap:4px;color:var(--text2);font-size:12px}.status-msg{font-size:11px;margin-top:6px;padding:5px 8px;border-radius:5px;display:flex;align-items:center;gap:6px}.status-msg.analyzing{background:#4fc3f71a;color:var(--accent)}.status-msg.error{background:#ef53501f;color:var(--red)}.status-msg.done{background:#66bb6a1a;color:var(--green)}.spinner{width:12px;height:12px;border-radius:50%;border:2px solid transparent;border-top-color:var(--accent);animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.bp-summary{background:var(--bg2);border-radius:8px;padding:8px}.bp-row{display:flex;justify-content:space-between;padding:3px 0;font-size:12px;color:var(--text2);border-bottom:1px solid rgba(255,255,255,.03)}.bp-row:last-of-type{border-bottom:none}.bp-row .val{color:var(--text);font-family:JetBrains Mono,monospace}.time-controls{display:flex;align-items:center;gap:10px;flex:1}.sim-time{font-family:JetBrains Mono,monospace;font-size:13px;color:var(--accent);min-width:100px}.ctrl-group{display:flex;align-items:center;gap:4px}.ctrl-btn{background:var(--bg3);color:var(--text);width:32px;height:32px;border-radius:6px;font-size:14px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border)}.ctrl-btn:hover:not(:disabled){background:var(--bg2);border-color:var(--accent)}.ctrl-btn.active{background:#4fc3f726;border-color:var(--accent);color:var(--accent)}.ctrl-btn.teacher{color:#ab47bc}.ctrl-btn.active.teacher{background:#ab47bc26;border-color:#ab47bc}.timescale-btn{background:var(--bg3);color:var(--text2);padding:4px 7px;border-radius:5px;font-size:11px;border:1px solid var(--border)}.timescale-btn:hover{background:var(--bg2);color:var(--text)}.timescale-btn.active{background:#4fc3f71f;color:var(--accent);border-color:var(--accent)}.missing-warning{font-size:11px;color:var(--orange);background:#ffa7261a;padding:4px 8px;border-radius:5px}.vector-controls{display:flex;align-items:center;gap:6px}.toggle-btn{background:transparent;color:var(--text2);padding:4px 8px;border-radius:5px;font-size:11px;border:1px solid var(--border);white-space:nowrap}.toggle-btn:hover{color:var(--text);background:var(--bg3)}.toggle-btn.active{color:var(--accent);border-color:var(--accent);background:#4fc3f714}.force-legend{display:flex;align-items:center;gap:8px;margin-left:8px}.legend-item{display:flex;align-items:center;color:var(--text2);font-size:11px}.tutor-panel{display:flex;flex-direction:column;height:100%;overflow:hidden}.tutor-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border);flex-shrink:0;font-weight:600;font-size:13px}.badge{font-size:10px;font-weight:500;padding:2px 6px;border-radius:10px}.badge.green{background:#66bb6a26;color:var(--green)}.badge.red{background:#ef535026;color:var(--red)}.tutor-messages{flex:1;overflow-y:auto;padding:10px 12px;display:flex;flex-direction:column;gap:10px}.tutor-welcome{color:var(--text2);font-size:12px;line-height:1.6}.tutor-msg{display:flex;flex-direction:column;gap:3px;max-width:96%}.tutor-msg.user{align-self:flex-end}.tutor-msg.assistant{align-self:flex-start}.msg-role{font-size:10px;font-weight:600;letter-spacing:.05em;color:var(--text2);text-transform:uppercase}.tutor-msg.user .msg-role{text-align:right}.msg-body{padding:8px 10px;border-radius:8px;font-size:12px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.tutor-msg.user .msg-body{background:#7c4dff2e;border-radius:8px 8px 2px}.tutor-msg.assistant .msg-body{background:var(--bg3);border-radius:2px 8px 8px}.force-highlight{color:#ffe082;font-weight:600;text-shadow:0 0 8px rgba(255,224,130,.6);padding:0 1px;border-radius:2px}.typing-dots{display:flex;gap:5px;padding:10px 4px}.typing-dots span{width:7px;height:7px;border-radius:50%;background:var(--text2);animation:bounce 1s ease-in-out infinite}.typing-dots span:nth-child(1){animation-delay:0s}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.starters{display:flex;flex-direction:column;gap:4px;padding:6px 12px;flex-shrink:0}.starter-btn{background:var(--bg3);color:var(--text2);text-align:left;padding:6px 10px;border-radius:6px;border:1px solid var(--border);font-size:11px}.starter-btn:hover{color:var(--accent);border-color:var(--accent);background:#4fc3f70d}.tutor-input-area{display:flex;gap:6px;padding:10px 12px;border-top:1px solid var(--border);flex-shrink:0}.tutor-input{flex:1;background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:7px 10px;color:var(--text);font-size:12px;resize:none;line-height:1.5}.tutor-input:focus{border-color:var(--accent)}.send-btn{width:36px;height:36px;border-radius:8px;background:var(--accent2);color:#fff;font-size:16px;display:flex;align-items:center;justify-content:center;align-self:flex-end}.send-btn:hover:not(:disabled){background:#9c6fff}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:0;width:460px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080}.modal-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:2px}.modal-header>span:first-child{font-weight:700;font-size:15px;color:var(--orange)}.modal-body{overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:14px}.modal-footer{padding:10px 20px;border-top:1px solid var(--border)}.missing-field{background:var(--bg3);border-radius:8px;padding:10px 12px}.field-desc{font-size:12px;color:var(--text);line-height:1.4}.field-path{font-size:10px;color:var(--text2);font-family:JetBrains Mono,monospace;margin-top:2px}
