:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;padding:0;display:flex;place-items:center;min-width:320px;min-height:100vh;overflow-x:hidden;width:100%}#root{width:100%;height:100vh;margin:0;padding:0}*{box-sizing:border-box;max-width:100%}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--bg: #0f1115;--panel: #151821;--panel-2: #1b2030;--border: #2b3345;--muted: #aab3c0;--text: #e6eaf2;--accent: #6c8cff;--accent-2: #5eead4;--danger: #ff7b7b;--shadow: 0 10px 30px rgba(0,0,0,.35)}.app{display:flex;height:100vh;width:100%;color:var(--text);background:radial-gradient(1200px 800px at 80% -20%,rgba(108,140,255,.08),transparent),radial-gradient(900px 600px at -10% 110%,rgba(94,234,212,.06),transparent),var(--bg);overflow:hidden}.sidebar{width:300px;min-width:220px;max-width:45vw;border-right:1px solid var(--border);padding:12px;overflow:auto;resize:horizontal;background:linear-gradient(180deg,var(--panel),var(--panel-2));box-shadow:var(--shadow)}.sidebar{transition:transform .22s ease,opacity .22s ease,width .22s ease}.sidebar.open{transform:translate(0)}@media (max-width: 900px){.sidebar{position:fixed;left:0;top:0;bottom:0;height:100vh;transform:translate(-102%);width:80vw;max-width:360px;resize:none;z-index:12}.sidebar.open{transform:translate(0)}.backdrop{position:fixed;inset:0;background:#00000073;z-index:11}}.sidebar-header{display:flex;align-items:center;justify-content:space-between}.program-list{list-style:none;padding:0;margin:12px 0 0}.program-list li{padding:8px;border-radius:6px;border:1px solid transparent;margin-bottom:8px;cursor:pointer;transition:transform .12s ease,border-color .12s ease,background .12s ease;display:flex;align-items:center;justify-content:space-between}.program-item{flex:1}.delete-program-btn{background:transparent;border:1px solid transparent;color:#ff7b7b;font-size:16px;padding:4px 6px;border-radius:6px;cursor:pointer;opacity:.6;transition:all .2s ease;margin-left:8px}.delete-program-btn:hover{opacity:1;background:#ff7b7b1a;border-color:#ff7b7b4d;transform:scale(1.1)}.delete-program-btn:disabled{opacity:.3;cursor:not-allowed;border-color:transparent}.program-list li.active,.program-list li:hover{border-color:var(--accent);background:#6c8cff1a;transform:translateY(-1px)}.program-name{font-weight:600}.program-preview{color:var(--muted);font-size:12px;margin-top:4px}.program-updated{color:#7c8799;font-size:11px;margin-top:2px}.main{flex:1;display:flex;flex-direction:column}.toolbar{display:flex;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,var(--panel-2),var(--panel));position:sticky;top:0;z-index:5;box-shadow:var(--shadow);flex-wrap:wrap;min-height:60px}.user-profile{display:flex;align-items:center;gap:10px;margin-left:10px;padding-left:10px}.user-name-display{font-weight:600;color:var(--accent);font-size:14px}.user-email{font-size:13px;color:var(--muted);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sign-out{background:transparent;color:var(--accent);border:1px solid var(--border);border-radius:4px;padding:4px 8px;font-size:12px;cursor:pointer;transition:all .2s ease}.sign-out:hover{background:#6c8cff1a;border-color:var(--accent)}.toolbar .title{width:280px;background:#0f131c;border:1px solid var(--border);color:var(--text);padding:10px 12px;border-radius:10px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.toolbar .title:focus{border-color:var(--accent);box-shadow:0 0 0 3px #6c8cff40}.toolbar .user-name{width:120px;background:#0f131c;border:1px solid var(--border);color:var(--text);padding:10px 12px;border-radius:8px;font-size:14px;margin-right:8px;transition:border-color .15s ease,box-shadow .15s ease}.toolbar .user-name:focus{border-color:var(--accent);box-shadow:0 0 0 3px #6c8cff40}.toolbar .user-name::placeholder{color:#666}.toolbar .spacer{flex:1}.toolbar .status{color:#aaa;font-size:12px}.editor{border-bottom:1px solid var(--border)}.results-wrap{padding:16px;overflow:auto}.results .meta{display:flex;gap:12px;color:var(--muted);margin-bottom:8px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{border:1px solid var(--border);padding:10px 12px;text-align:left;font-size:14px}th{background:#0f131c}tbody tr:nth-child(2n){background:#121724}.placeholder{color:var(--muted)}.error{color:var(--danger);white-space:pre-wrap}.run{background:linear-gradient(180deg,#2b3050,#212642);border:1px solid rgba(108,140,255,.35);color:#dfe6ff;border-radius:10px;padding:8px 12px;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.run:hover{transform:translateY(-1px);box-shadow:0 8px 24px #6c8cff40;border-color:var(--accent)}.ai-toggle{background:#1a1f2e;border:2px solid;border-image:linear-gradient(135deg,#ff6b6b4d,#4ecdc44d,#45b7d14d,#96ceb44d,#feca574d) 1;animation:borderGlowDim 3s ease infinite;color:#fff;border-radius:12px;padding:10px 16px;font-weight:700;font-size:14px;text-shadow:0 1px 2px rgba(0,0,0,.3);box-shadow:0 2px 8px #ff6b6b33,0 0 10px #4ecdc426;transition:all .3s ease;position:relative;overflow:hidden}.ai-toggle:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.ai-toggle:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 8px 25px #ff6b6b99,0 0 30px #4ecdc480;border-color:#ffffff80}.ai-toggle:hover:before{left:100%}@keyframes borderGlowDim{0%{border-image:linear-gradient(135deg,#ff6b6b4d,#4ecdc44d,#45b7d14d,#96ceb44d,#feca574d) 1;box-shadow:0 2px 8px #ff6b6b33,0 0 10px #4ecdc426}25%{border-image:linear-gradient(135deg,#4ecdc44d,#45b7d14d,#96ceb44d,#feca574d,#ff6b6b4d) 1;box-shadow:0 2px 8px #4ecdc433,0 0 10px #45b7d126}50%{border-image:linear-gradient(135deg,#45b7d14d,#96ceb44d,#feca574d,#ff6b6b4d,#4ecdc44d) 1;box-shadow:0 2px 8px #45b7d133,0 0 10px #96ceb426}75%{border-image:linear-gradient(135deg,#96ceb44d,#feca574d,#ff6b6b4d,#4ecdc44d,#45b7d14d) 1;box-shadow:0 2px 8px #96ceb433,0 0 10px #feca5726}to{border-image:linear-gradient(135deg,#feca574d,#ff6b6b4d,#4ecdc44d,#45b7d14d,#96ceb44d) 1;box-shadow:0 2px 8px #feca5733,0 0 10px #ff6b6b26}}button{border-radius:10px;border:1px solid var(--border);padding:8px 12px;background:#0f131c;color:var(--text);transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease,background .12s ease}button:hover{transform:translateY(-1px);border-color:var(--accent-2);box-shadow:0 8px 18px #5eead42e}.toolbar button[title="Submit to Database"]{background:linear-gradient(135deg,#4caf50,#45a049);border-color:#4caf50;color:#fff;font-weight:600;transition:all .2s ease}.toolbar button[title="Submit to Database"]:hover:not(:disabled){background:linear-gradient(135deg,#45a049,#3d8b40);border-color:#45a049;transform:translateY(-1px);box-shadow:0 4px 12px #4caf504d}.toolbar button[title="Submit to Database"]:disabled{background:#555;border-color:#666;color:#888;cursor:not-allowed;transform:none;box-shadow:none}.modal-overlay{position:fixed;inset:0;background:#000c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .3s ease}.name-entry-modal{background:linear-gradient(135deg,#1a1f2e,#2a2f3e);border:1px solid var(--border);border-radius:20px;padding:0;width:90%;max-width:480px;box-shadow:0 20px 40px #0006,0 0 0 1px #ffffff0d;animation:slideUp .3s ease;overflow:hidden}.modal-header{background:linear-gradient(135deg,var(--accent),var(--accent-2));padding:32px 32px 24px;text-align:center;color:#fff}.modal-header h2{margin:0 0 8px;font-size:28px;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.3)}.modal-header p{margin:0;font-size:16px;opacity:.9;font-weight:400}.modal-form{padding:32px}.form-group{margin-bottom:24px}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:var(--text);font-size:14px}.form-group input{width:100%;padding:14px 16px;background:#0f131c;border:2px solid var(--border);border-radius:12px;color:var(--text);font-size:16px;transition:all .2s ease;box-sizing:border-box}.form-group input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px #6c8cff33;transform:translateY(-1px)}.form-group input.disabled-input{background:#1a1f2e;color:#666;cursor:not-allowed}.form-group input::placeholder{color:#666}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:32px}.modal-actions button{padding:12px 24px;border-radius:12px;font-weight:600;font-size:14px;transition:all .2s ease;border:2px solid;cursor:pointer}.cancel-btn{background:transparent;border-color:var(--border);color:var(--text)}.cancel-btn:hover:not(:disabled){background:#2a2f3e;border-color:#3a3f4e;transform:translateY(-1px)}.submit-btn{background:linear-gradient(135deg,var(--accent),var(--accent-2));border-color:var(--accent);color:#fff;box-shadow:0 4px 12px #6c8cff4d}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #6c8cff66}.submit-btn:disabled{background:#555;border-color:#666;color:#888;cursor:not-allowed;transform:none;box-shadow:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}*::-webkit-scrollbar{height:8px;width:8px}*::-webkit-scrollbar-thumb{background:var(--border);border-radius:8px}.auth{position:fixed;inset:0;display:grid;grid-template-columns:1fr minmax(420px,520px);align-items:stretch;padding:0;background:radial-gradient(1200px 800px at 80% -20%,rgba(108,140,255,.08),transparent),radial-gradient(900px 600px at -10% 110%,rgba(94,234,212,.06),transparent),var(--bg);overflow:hidden}.auth-container{display:contents}@media (max-width: 768px){.auth-container{flex-direction:column;height:auto;max-height:90vh}.auth-hero,.auth-card{padding:30px 20px}}.auth-hero{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;background:linear-gradient(135deg,var(--panel-2),var(--panel));position:relative;overflow:hidden;padding:40px}.auth-hero:before{content:"";position:absolute;width:200%;height:200%;background:radial-gradient(circle at center,rgba(108,140,255,.15) 0%,transparent 50%);top:-50%;left:-50%;animation:pulse 15s infinite ease-in-out}@keyframes pulse{0%{transform:scale(.8);opacity:.5}50%{transform:scale(1.2);opacity:.8}to{transform:scale(.8);opacity:.5}}.auth-hero-content{padding:56px 48px;text-align:left}.auth-hero-content h1{font-size:48px;margin:0 0 10px;background:linear-gradient(90deg,#6c8cff,#5eead4);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 2px 10px rgba(108,140,255,.2)}.auth-hero-content p{color:var(--muted);font-size:18px;max-width:320px;line-height:1.5;margin:0 auto}.auth-card{width:400px;max-width:90vw;background:var(--bg);padding:30px;display:flex;flex-direction:column;justify-content:center;border-radius:16px;box-shadow:0 10px 25px #0003;border:1px solid var(--border)}.auth-card h1{margin:0 0 12px;font-size:32px;background:linear-gradient(90deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.auth-card .muted{color:var(--muted);margin:0 0 24px;font-size:15px;line-height:1.5}.auth-card label{display:block;margin:12px 0 8px;font-size:14px;font-weight:500;color:var(--text)}.auth-card input[type=text],.auth-card input[type=password],.auth-card input:not([type]){width:100%;background:#0f131c99;color:var(--text);border:1px solid var(--border);border-radius:12px;padding:14px 16px;font-size:15px;transition:all .2s ease}.auth-card input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #6c8cff33;outline:none}.auth-card .error{color:var(--danger);background:#ff7b7b1a;border:1px solid rgba(255,123,123,.3);border-radius:8px;padding:12px 16px;margin:16px 0;font-size:14px}.auth-card .success{color:var(--accent-2);background:#5eead41a;border:1px solid rgba(94,234,212,.3);border-radius:8px;padding:12px 16px;margin:16px 0;font-size:14px}.auth-card button.primary{background:linear-gradient(90deg,var(--accent),var(--accent-2));border:none;color:#fff;font-weight:600;padding:14px 20px;border-radius:12px;cursor:pointer;transition:all .2s ease;margin-top:10px;width:100%}.auth-card button.primary.xl{font-size:16px;padding:16px 24px}.auth-card button.primary:hover{transform:translateY(-2px);box-shadow:0 5px 15px #6c8cff66}.auth-card button.primary:disabled{opacity:.7;cursor:not-allowed;transform:none;box-shadow:none}.pw-wrap{position:relative}.pw-wrap .small{position:absolute;right:12px;top:50%;transform:translateY(-50%)}.auth-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:16px 0}.auth-switch{text-align:center;margin-top:24px;color:var(--muted);font-size:14px}.auth-switch .link,.auth-card button.link{color:var(--accent);font-weight:500;text-decoration:none;background:none;border:none;cursor:pointer;padding:0;font-size:14px}.auth-switch .link:hover,.auth-card button.link:hover{text-decoration:underline}.remember{color:var(--muted);display:flex;align-items:center;gap:8px;font-size:14px}.remember input[type=checkbox]{margin:0;accent-color:var(--accent)}.remember label{margin:0!important;cursor:pointer;display:inline-flex;align-items:center}.link{background:transparent;border:none;color:var(--accent);cursor:pointer;font-weight:500;font-size:14px;transition:color .2s ease}.link:hover{color:var(--accent-2);text-decoration:underline}.primary{width:100%;background:linear-gradient(135deg,var(--accent),#4a6ae5);border:none;color:#fff;border-radius:12px;padding:14px;font-weight:600;transition:all .3s ease;position:relative;overflow:hidden}.primary:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.primary:hover:after{left:100%}.primary:hover{transform:translateY(-2px);box-shadow:0 8px 20px #6c8cff66}.primary.xl{padding:16px;font-size:16px;letter-spacing:.5px}.secondary{width:100%;background:#0f131c99;color:var(--text);border:1px solid var(--border);border-radius:12px;padding:14px;font-weight:500;transition:all .2s ease}.secondary:hover{border-color:var(--accent-2);background:#0f131ccc}.auth-switch{margin-top:24px;color:var(--muted);text-align:center;font-size:15px}.auth-error{background:#ff7b7b1a;border:1px solid #ff7b7b;color:#ffb7b7;padding:12px 16px;border-radius:10px;margin:16px 0;font-size:14px}.auth-success{background:#7bff7b1a;border:1px solid #7bff7b;color:#b7ffb7;padding:12px 16px;border-radius:10px;margin:16px 0;font-size:14px}@media (max-width: 900px){.auth{padding:16px}.auth-container{flex-direction:column;height:auto;max-height:none}.auth-hero{padding:30px 20px}.auth-hero-copy h1{font-size:36px}.auth-hero-copy p{font-size:16px}.auth-card{width:100%;padding:30px 20px}}@media (max-width: 480px){.auth-hero{padding:24px 16px}.auth-hero-copy h1{font-size:32px}.auth-card{padding:24px 16px}.auth-card h1{font-size:28px}.primary.xl{padding:14px}}.ai-fab{position:fixed;right:18px;bottom:18px;background:linear-gradient(180deg,#3e2b63,#2a1f48);border:1px solid rgba(155,135,245,.45);box-shadow:0 10px 24px #9b87f540;font-size:18px}.ai-modal .ai-panel{position:fixed;right:24px;bottom:80px;width:min(520px,92vw);background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px;z-index:20;box-shadow:var(--shadow)}.ai-modal h3{margin:6px 0 10px}.ai-modal label{display:block;font-size:12px;color:var(--muted);margin:6px 0}.ai-modal input,.ai-modal textarea{width:100%;background:#0f131c;color:var(--text);border:1px solid var(--border);border-radius:10px;padding:8px 10px}.ai-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}.chat-panel{position:fixed;right:0;top:0;bottom:0;width:min(360px,90vw);background:linear-gradient(180deg,var(--panel-2),var(--panel));border-left:1px solid var(--border);box-shadow:var(--shadow);display:flex;flex-direction:column;z-index:21;transform:translate(102%);transition:transform .24s ease}.chat-panel.open{transform:translate(0)}.chat-header{padding:14px;font-weight:700;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.chat-actions button{padding:6px 10px}.chat-body{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:10px}.bubble{max-width:85%;padding:10px 12px;border-radius:14px}.bubble.user{background:var(--accent);color:#fff;align-self:flex-end}.bubble.model{background:#0f131c;border:1px solid var(--border)}.ai-response h1{font-size:1.4em;font-weight:700;margin:0 0 8px;color:var(--accent)}.ai-response h2{font-size:1.2em;font-weight:600;margin:12px 0 6px;color:var(--accent-2)}.ai-response h3{font-size:1.1em;font-weight:600;margin:10px 0 4px;color:var(--text)}.ai-response p{margin:6px 0;line-height:1.5}.ai-response .code-block{background:#0a0d14;border:1px solid var(--border);border-radius:8px;padding:12px;margin:8px 0;overflow-x:auto;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.4;position:relative}.ai-response .code-block code{color:#e6eaf2;display:block;white-space:pre}.ai-response .inline-code{background:#1a1f2e;border:1px solid #2a3345;border-radius:4px;padding:2px 6px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9em;color:gold}.ai-response strong{font-weight:700;color:var(--accent-2)}.ai-response em{font-style:italic;color:#aab3c0}.apply-code-btn{margin-top:8px;padding:8px 16px;background:linear-gradient(135deg,#667eea,#764ba2);border:1px solid rgba(102,126,234,.5);color:#fff;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #667eea4d;position:relative;overflow:hidden}.apply-code-btn:before{content:"⚡";position:absolute;left:8px;top:50%;transform:translateY(-50%);opacity:0;transition:all .2s ease}.apply-code-btn:hover{background:linear-gradient(135deg,#764ba2,#667eea);border-color:#667eea;transform:translateY(-2px);box-shadow:0 4px 15px #667eea80;padding-left:24px}.apply-code-btn:hover:before{opacity:1;left:8px}.bubble.thinking{opacity:.7;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.7}50%{opacity:1}}.chat-input{padding:10px;border-top:1px solid var(--border);display:flex;gap:8px}.chat-input input{flex:1;background:#0f131c;color:var(--text);border:1px solid var(--border);border-radius:10px;padding:10px 12px}@media (max-width: 900px){.sidebar{display:none}.toolbar{flex-wrap:wrap;gap:6px}.toolbar .title{width:100%}.editor{border:none}}@media (max-width: 600px){.toolbar{position:static}.results-wrap{padding:6px}th,td{font-size:12px;padding:4px 6px}}.auth-card{padding:64px 52px;row-gap:0}.auth-card h1{margin:0 0 16px}.auth-card .muted{margin:0 0 28px}.auth-card label{margin:16px 0 10px}.auth-card input[type=text],.auth-card input[type=password],.auth-card input:not([type]){margin:0 0 14px;padding:16px 18px;border-radius:14px}.auth-row{margin:22px 0}.primary.xl{padding:18px 20px;margin-top:8px}.auth-switch{margin-top:28px}
