:root{--primary-50: #eff6ff;--primary-100: #dbeafe;--primary-200: #bfdbfe;--primary-300: #93c5fd;--primary-400: #60a5fa;--primary-500: #3b82f6;--primary-600: #2563eb;--primary-700: #1d4ed8;--primary-800: #1e40af;--primary-900: #1e3a8a;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--success-50: #f0fdf4;--success-500: #22c55e;--success-600: #16a34a;--error-50: #fef2f2;--error-500: #ef4444;--error-600: #dc2626;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;color:var(--gray-900);background-color:var(--gray-50);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25;margin-bottom:var(--space-4)}h1{font-size:2.25rem}h2{font-size:1.875rem}h3{font-size:1.5rem}h4{font-size:1.25rem}h5{font-size:1.125rem}h6{font-size:1rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-weight:500;font-size:.875rem;text-decoration:none;border:none;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--primary-600);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--primary-700);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background-color:var(--gray-200);color:var(--gray-700)}.btn-secondary:hover:not(:disabled){background-color:var(--gray-300)}.btn-danger{background-color:var(--error-500);color:#fff}.btn-danger:hover:not(:disabled){background-color:var(--error-600)}.btn-sm{padding:var(--space-2) var(--space-3);font-size:.75rem}.btn-lg{padding:var(--space-4) var(--space-6);font-size:1rem}.card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200);overflow:hidden;transition:all .2s ease}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-header{padding:var(--space-4);border-bottom:1px solid var(--gray-200);background-color:var(--gray-50)}.card-body{padding:var(--space-4)}.card-footer{padding:var(--space-4);border-top:1px solid var(--gray-200);background-color:var(--gray-50)}.input{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--gray-300);border-radius:var(--radius-md);font-size:.875rem;transition:all .2s ease;background-color:#fff}.input:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 3px var(--primary-100)}.input:disabled{background-color:var(--gray-100);cursor:not-allowed}.badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.badge-primary{background-color:var(--primary-100);color:var(--primary-700)}.badge-success{background-color:var(--success-50);color:var(--success-600)}.badge-error{background-color:var(--error-50);color:var(--error-600)}.loading-spinner{display:inline-block;width:1rem;height:1rem;border:2px solid var(--gray-300);border-radius:50%;border-top-color:var(--primary-600);animation:spin 1s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.fade-in{animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.slide-in{animation:slideIn .3s ease-out}.container{max-width:1200px;margin:0 auto;padding:0 var(--space-4)}.grid{display:grid;gap:var(--space-4)}.grid-cols-1{grid-template-columns:repeat(1,1fr)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}@media (max-width: 768px){.grid-cols-2,.grid-cols-3{grid-template-columns:1fr}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--gray-100)}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:linear-gradient(135deg,#667eea,#764ba2);color:#1a202c;line-height:1.6;overflow-x:hidden}.landing-container{min-height:100vh;display:flex;flex-direction:column}.navbar{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 3rem;background:#dcdadaf2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.2);box-shadow:0 4px 20px #0000001a;position:sticky;top:0;z-index:100}.navbar-logo{display:flex;align-items:center}.navbar-logo img{height:42px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.btn-signin{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600;padding:.75rem 1.5rem;border-radius:50px;border:none;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #667eea4d;font-size:.95rem;letter-spacing:.5px}.btn-signin:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.hero{display:flex;flex-direction:column;justify-content:center;align-items:center;flex:1;text-align:center;padding:4rem 2rem;background:transparent;position:relative}.hero:before{content:"";position:absolute;inset:0;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grain" width="100" height="100" patternUnits="userSpaceOnUse"><circle cx="50" cy="50" r="0.5" fill="%23ffffff" opacity="0.1"/></pattern></defs><rect width="100" height="100" fill="url(%23grain)"/></svg>') repeat;pointer-events:none}.hero h1{font-size:clamp(2.5rem,5vw,4rem);font-weight:800;margin-bottom:1.5rem;color:#fff;text-shadow:0 4px 20px rgba(0,0,0,.3);letter-spacing:-.02em;line-height:1.1}.hero p{font-size:clamp(1.1rem,2vw,1.25rem);max-width:650px;margin-bottom:3rem;color:#ffffffe6;text-shadow:0 2px 10px rgba(0,0,0,.2);font-weight:400;line-height:1.7}.hero-buttons{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.btn-dashboard{background:#fffffff2;color:#667eea;border:2px solid rgba(255,255,255,.3);padding:1rem 2.5rem;border-radius:50px;font-weight:700;font-size:1.1rem;cursor:pointer;transition:all .3s ease;box-shadow:0 8px 25px #00000026;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);letter-spacing:.5px;text-transform:uppercase;position:relative;overflow:hidden}.btn-dashboard:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s ease}.btn-dashboard:hover:before{left:100%}.btn-dashboard:hover{transform:translateY(-3px);box-shadow:0 12px 35px #0003;background:#fff;border-color:#ffffff80}.footer{text-align:center;padding:2rem;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:.9rem;color:#fffc;border-top:1px solid rgba(255,255,255,.1);margin-top:auto}@media (max-width: 768px){.navbar{padding:1rem 1.5rem}.hero{padding:3rem 1.5rem}.hero h1{font-size:2.5rem}.hero p{font-size:1.1rem}.btn-dashboard{padding:.875rem 2rem;font-size:1rem}}@media (max-width: 480px){.navbar{padding:1rem}.hero{padding:2rem 1rem}.btn-signin{padding:.625rem 1.25rem;font-size:.9rem}.btn-dashboard{padding:.75rem 1.5rem;font-size:.95rem}}.google-login-container{display:flex;align-items:center;justify-content:center;width:100%}.google-login-btn{display:flex;align-items:center;gap:12px;background:#fff;color:#3c4043;border:1.5px solid #e5e7eb;border-radius:8px;font-size:1rem;font-weight:600;padding:12px 28px;box-shadow:0 2px 8px #3c404314;cursor:pointer;transition:box-shadow .2s,border-color .2s,transform .2s;outline:none;min-width:220px}.google-login-btn:hover,.google-login-btn:focus{border-color:#4285f4;box-shadow:0 4px 16px #4285f41f;transform:translateY(-2px) scale(1.01)}.google-logo{width:24px;height:24px;display:inline-block}@media (max-width: 600px){.google-login-btn{font-size:.95rem;padding:10px 16px;min-width:160px}.google-logo{width:20px;height:20px}}.login-bg{min-height:100vh;min-width:100vw;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.login-card{background:#fff;border-radius:20px;box-shadow:0 8px 32px #4c51ff1a,0 1.5px 6px #0000000a;padding:48px 32px;width:100%;max-width:400px;text-align:center;transition:box-shadow .3s,transform .3s;animation:loginFadeIn .7s cubic-bezier(.4,0,.2,1)}.login-card:hover{box-shadow:0 16px 48px #4c51ff2e,0 3px 12px #00000014;transform:translateY(-2px) scale(1.01)}.login-title{font-size:2rem;font-weight:700;color:#3730a3;margin-bottom:20px;letter-spacing:-1px}.login-desc{font-size:1rem;color:#64748b;margin-bottom:32px}.backend-notice{margin-top:24px;padding:16px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:12px;display:flex;align-items:flex-start;gap:12px;transition:all .3s ease}.backend-notice:hover{background:linear-gradient(135deg,#f1f5f9,#e2e8f0);transform:translateY(-1px)}.notice-icon{font-size:1.2rem;flex-shrink:0;margin-top:2px}.notice-text{font-size:.875rem;color:#475569;line-height:1.5;margin:0;text-align:left}@media (max-width: 600px){.login-card{padding:32px 12px;max-width:95vw}.login-title{font-size:1.3rem}}@keyframes loginFadeIn{0%{opacity:0;transform:translateY(40px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.session-card{background:#fff;border-radius:12px;border:2px solid transparent;padding:20px;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden;box-shadow:0 2px 8px #0000000d}.session-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(135deg,#667eea,#764ba2);transform:scaleX(0);transition:transform .3s ease}.session-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0000001a;border-color:#667eea33}.session-card:hover:before{transform:scaleX(1)}.session-card.selected{border-color:#667eea;background:linear-gradient(135deg,#667eea0d,#764ba20d);box-shadow:0 8px 25px #667eea26}.session-card.selected:before{transform:scaleX(1)}.card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:12px}.card-title{flex:1;min-width:0}.card-title h3{font-size:16px;font-weight:600;color:#1e293b;margin:0;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-card.selected .card-title h3{color:#667eea}.card-date{font-size:12px;color:#64748b;margin-top:4px;font-weight:500}.session-card.selected .card-date{color:#8b5cf6}.code-badge{display:flex;align-items:center;gap:4px;padding:4px 8px;background:#667eea1a;border-radius:6px;font-size:10px;font-weight:600;color:#667eea;text-transform:uppercase;letter-spacing:.5px;margin-left:8px;flex-shrink:0}.session-card.selected .code-badge{background:#667eea33;color:#667eea}.code-badge svg{width:12px;height:12px}.code-preview{margin-top:16px;padding:12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:11px;line-height:1.4;color:#475569;overflow:hidden;position:relative}.session-card.selected .code-preview{background:#667eea0d;border-color:#667eea33}.code-preview:after{content:"";position:absolute;bottom:0;right:0;width:40px;height:20px;background:linear-gradient(90deg,transparent,#f8fafc);pointer-events:none}.session-card.selected .code-preview:after{background:linear-gradient(90deg,transparent,rgba(102,126,234,.05))}.code-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-card.empty{border:2px dashed #cbd5e1;background:#f8fafc;display:flex;align-items:center;justify-content:center;min-height:120px;cursor:default}.session-card.empty:hover{transform:none;box-shadow:0 2px 8px #0000000d;border-color:#cbd5e1}.empty-content{text-align:center;color:#64748b}.empty-content svg{width:32px;height:32px;margin-bottom:8px;opacity:.5}.empty-content p{font-size:14px;margin:0;font-weight:500}.session-card.loading{pointer-events:none;opacity:.7}.loading-skeleton{display:flex;flex-direction:column;gap:8px}.skeleton-line{height:16px;background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0,#f1f5f9 75%);background-size:200% 100%;border-radius:4px;animation:skeleton-loading 1.5s infinite}.skeleton-line.short{width:60%}.skeleton-line.medium{width:80%}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.session-card:hover .card-title h3{color:#667eea}.session-card:hover .code-badge{background:#667eea26;transform:scale(1.05)}.session-card.selected{animation:cardSelect .3s ease-out}@keyframes cardSelect{0%{transform:scale(.98)}50%{transform:scale(1.02)}to{transform:scale(1)}}@media (max-width: 768px){.session-card{padding:16px}.card-title h3{font-size:14px}.code-preview{font-size:10px;padding:10px}.code-badge{font-size:9px;padding:3px 6px}}@media (prefers-color-scheme: dark){.session-card{background:#1e293b;border-color:#334155}.session-card:hover{border-color:#667eea}.session-card.selected{background:#667eea1a;border-color:#667eea}.card-title h3{color:#f1f5f9}.card-date{color:#94a3b8}.code-preview{background:#334155;border-color:#475569;color:#cbd5e1}.session-card.empty{background:#334155;border-color:#475569}.empty-content{color:#94a3b8}}.session-actions{display:flex;gap:8px;align-items:center}.session-action-btn{padding:8px 16px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:6px;position:relative;overflow:hidden}.session-action-btn: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}.session-action-btn:hover:before{left:100%}.session-action-btn.primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 15px #667eea4d}.session-action-btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px #667eea66}.session-action-btn.primary:active{transform:translateY(0);box-shadow:0 4px 15px #667eea4d}.session-action-btn.secondary{background:#fff;color:#64748b;border:2px solid #e2e8f0;box-shadow:0 2px 8px #0000000d}.session-action-btn.secondary:hover{background:#f8fafc;border-color:#cbd5e1;color:#475569;transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.session-action-btn.secondary:active{transform:translateY(0);box-shadow:0 2px 8px #0000000d}.session-action-btn.danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 4px 15px #ef44444d}.session-action-btn.danger:hover{transform:translateY(-2px);box-shadow:0 8px 25px #ef444466}.session-action-btn.danger:active{transform:translateY(0);box-shadow:0 4px 15px #ef44444d}.session-action-btn.success{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 4px 15px #10b9814d}.session-action-btn.success:hover{transform:translateY(-2px);box-shadow:0 8px 25px #10b98166}.session-action-btn.success:active{transform:translateY(0);box-shadow:0 4px 15px #10b9814d}.session-action-btn svg{width:16px;height:16px;transition:transform .3s ease}.session-action-btn:hover svg{transform:scale(1.1)}.session-action-btn.small{padding:6px 12px;font-size:12px}.session-action-btn.small svg{width:14px;height:14px}.session-action-btn.large{padding:12px 20px;font-size:16px}.session-action-btn.large svg{width:18px;height:18px}.session-action-btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important;box-shadow:none!important}.session-action-btn:disabled:hover{transform:none!important;box-shadow:none!important}.session-action-btn:disabled svg{transform:none!important}.session-action-btn.loading{position:relative;color:transparent}.session-action-btn.loading:after{content:"";position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:actionSpin 1s linear infinite}@keyframes actionSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.session-action-btn{position:relative}.session-action-btn[title]:hover:after{content:attr(title);position:absolute;bottom:-40px;left:50%;transform:translate(-50%);background:#1e293b;color:#fff;padding:8px 12px;border-radius:6px;font-size:12px;font-weight:500;white-space:nowrap;z-index:1000;box-shadow:0 4px 12px #00000026}.session-action-btn[title]:hover:before{content:"";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);border:4px solid transparent;border-bottom-color:#1e293b;z-index:1000}@media (max-width: 768px){.session-actions{gap:6px}.session-action-btn{padding:6px 12px;font-size:12px}.session-action-btn svg{width:14px;height:14px}.session-action-btn.large{padding:10px 16px;font-size:14px}.session-action-btn.large svg{width:16px;height:16px}}@media (max-width: 480px){.session-actions{flex-direction:column;gap:8px;width:100%}.session-action-btn{width:100%;justify-content:center}}.action-fade-in{animation:actionFadeIn .3s ease-out}@keyframes actionFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.action-scale-in{animation:actionScaleIn .2s ease-out}@keyframes actionScaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@media (prefers-color-scheme: dark){.session-action-btn.secondary{background:#334155;color:#e2e8f0;border-color:#475569}.session-action-btn.secondary:hover{background:#475569;border-color:#64748b;color:#f1f5f9}.session-action-btn[title]:hover:after{background:#0f172a;border:1px solid #334155}.session-action-btn[title]:hover:before{border-bottom-color:#0f172a}}.session-action-btn:focus{outline:none;box-shadow:0 0 0 3px #667eea4d}.session-action-btn.secondary:focus{box-shadow:0 0 0 3px #667eea4d}.session-action-btn.danger:focus{box-shadow:0 0 0 3px #ef44444d}.session-action-btn.success:focus{box-shadow:0 0 0 3px #10b9814d}.chat-panel{background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;border:1px solid rgba(0,0,0,.05);display:flex;flex-direction:column;height:100%;overflow:hidden;transition:all .3s ease}.chat-panel:hover{box-shadow:0 8px 30px #0000001f;transform:translateY(-2px)}.chat-header{padding:24px;border-bottom:1px solid rgba(0,0,0,.08);background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;position:relative;overflow:hidden}.chat-header:before{content:"";position:absolute;inset:0;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grain" width="100" height="100" patternUnits="userSpaceOnUse"><circle cx="25" cy="25" r="1" fill="rgba(255,255,255,0.1)"/><circle cx="75" cy="75" r="1" fill="rgba(255,255,255,0.1)"/><circle cx="50" cy="10" r="0.5" fill="rgba(255,255,255,0.1)"/><circle cx="10" cy="60" r="0.5" fill="rgba(255,255,255,0.1)"/><circle cx="90" cy="40" r="0.5" fill="rgba(255,255,255,0.1)"/></pattern></defs><rect width="100" height="100" fill="url(%23grain)"/></svg>');opacity:.3}.chat-header-content{position:relative;z-index:1;display:flex;align-items:center;gap:16px}.chat-avatar{width:48px;height:48px;background:#fff3;border-radius:50%;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.3)}.chat-avatar svg{width:24px;height:24px;color:#fff}.chat-info h3{font-size:20px;font-weight:700;margin:0;text-shadow:0 2px 4px rgba(0,0,0,.1)}.chat-info p{font-size:14px;opacity:.9;margin:4px 0 0;font-weight:500}.chat-messages{flex:1;padding:24px;overflow-y:auto;background:#fafbfc}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:#0000000d;border-radius:3px}.chat-messages::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}.chat-empty{display:flex;align-items:center;justify-content:center;height:100%;text-align:center}.empty-icon{width:80px;height:80px;background:linear-gradient(135deg,#e0e7ff,#c7d2fe);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 24px;box-shadow:0 8px 25px #6366f126}.empty-icon svg{width:40px;height:40px;color:#6366f1}.empty-content h3{font-size:24px;font-weight:700;color:#1e293b;margin:0 0 12px}.empty-content p{font-size:16px;color:#64748b;margin:0 0 32px;line-height:1.6}.suggestions{display:flex;flex-direction:column;gap:12px;max-width:300px;margin:0 auto}.suggestion-item{padding:12px 16px;background:#fff;border:1px solid rgba(99,102,241,.2);border-radius:12px;font-size:14px;color:#6366f1;cursor:pointer;transition:all .3s ease;text-align:left}.suggestion-item:hover{background:#f8fafc;border-color:#6366f1;transform:translateY(-1px);box-shadow:0 4px 12px #6366f126}.messages-container{display:flex;flex-direction:column;gap:16px}.message{display:flex;animation:messageSlideIn .3s ease-out}.message.user{justify-content:flex-end}.message.assistant{justify-content:flex-start}.message-bubble{max-width:70%;padding:16px 20px;border-radius:20px;position:relative;word-wrap:break-word;line-height:1.5}.message.user .message-bubble{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-bottom-right-radius:6px;box-shadow:0 4px 15px #667eea4d}.message.assistant .message-bubble{background:#fff;color:#1e293b;border:1px solid rgba(0,0,0,.08);border-bottom-left-radius:6px;box-shadow:0 2px 8px #0000000d}.message-content{font-size:14px;margin-bottom:8px}.message-time{font-size:11px;opacity:.7;font-weight:500}.chat-input-area{padding:24px;border-top:1px solid rgba(0,0,0,.08);background:#fff}.input-container{display:flex;gap:12px;align-items:flex-end}.chat-input{flex:1;padding:16px 20px;border:2px solid #e2e8f0;border-radius:12px;font-size:14px;font-family:inherit;transition:all .3s ease;background:#f8fafc;resize:none;min-height:48px;max-height:120px;line-height:1.5}.chat-input:focus{outline:none;border-color:#667eea;background:#fff;box-shadow:0 0 0 3px #667eea1a}.chat-input:disabled{background:#f1f5f9;cursor:not-allowed;opacity:.6}.generate-btn{padding:16px 24px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;color:#fff;font-weight:600;font-size:14px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:8px;white-space:nowrap;box-shadow:0 4px 15px #667eea4d}.generate-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #667eea66}.generate-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.generate-btn .loading-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite}.error-message{margin-top:16px;padding:16px;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;display:flex;align-items:center;gap:12px;animation:errorSlideIn .3s ease-out}.error-message svg{width:20px;height:20px;color:#ef4444;flex-shrink:0}.error-text{color:#dc2626;font-size:14px;font-weight:500}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes errorSlideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.chat-header{padding:20px}.chat-avatar{width:40px;height:40px}.chat-info h3{font-size:18px}.chat-messages,.chat-input-area{padding:20px}.input-container{flex-direction:column;gap:12px}.generate-btn{width:100%;justify-content:center}.message-bubble{max-width:85%}}.live-preview{background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;border:1px solid rgba(0,0,0,.05);display:flex;flex-direction:column;height:100%;overflow:hidden;transition:all .3s ease;position:relative}.live-preview:hover{box-shadow:0 8px 30px #0000001f;transform:translateY(-2px)}.preview-header{padding:24px;border-bottom:1px solid rgba(0,0,0,.08);background:linear-gradient(135deg,#10b981,#059669);color:#fff;position:relative;overflow:hidden}.preview-header:before{content:"";position:absolute;inset:0;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="preview-grain" width="100" height="100" patternUnits="userSpaceOnUse"><circle cx="25" cy="25" r="1" fill="rgba(255,255,255,0.1)"/><circle cx="75" cy="75" r="1" fill="rgba(255,255,255,0.1)"/><circle cx="50" cy="10" r="0.5" fill="rgba(255,255,255,0.1)"/><circle cx="10" cy="60" r="0.5" fill="rgba(255,255,255,0.1)"/><circle cx="90" cy="40" r="0.5" fill="rgba(255,255,255,0.1)"/></pattern></defs><rect width="100" height="100" fill="url(%23preview-grain)"/></svg>');opacity:.3}.preview-header-content{position:relative;z-index:1;display:flex;align-items:center;gap:16px}.preview-icon{width:48px;height:48px;background:#fff3;border-radius:50%;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.3)}.preview-icon svg{width:24px;height:24px;color:#fff}.preview-info h3{font-size:20px;font-weight:700;margin:0;text-shadow:0 2px 4px rgba(0,0,0,.1)}.preview-info p{font-size:14px;opacity:.9;margin:4px 0 0;font-weight:500}.preview-container{flex:1;position:relative;background:#f8fafc;overflow:hidden}.preview-iframe{width:100%;height:100%;border:none;background:#fff;border-radius:0;transition:all .3s ease}.preview-iframe.loading{opacity:.7}.preview-empty{display:flex;align-items:center;justify-content:center;height:100%;text-align:center;padding:40px}.empty-preview-icon{width:80px;height:80px;background:linear-gradient(135deg,#d1fae5,#a7f3d0);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 24px;box-shadow:0 8px 25px #10b98126}.empty-preview-icon svg{width:40px;height:40px;color:#10b981}.empty-preview-content h3{font-size:24px;font-weight:700;color:#1e293b;margin:0 0 12px}.empty-preview-content p{font-size:16px;color:#64748b;margin:0 0 32px;line-height:1.6}.preview-suggestions{display:flex;flex-direction:column;gap:12px;max-width:300px;margin:0 auto}.preview-suggestion-item{padding:12px 16px;background:#fff;border:1px solid rgba(16,185,129,.2);border-radius:12px;font-size:14px;color:#10b981;cursor:pointer;transition:all .3s ease;text-align:left}.preview-suggestion-item:hover{background:#f0fdf4;border-color:#10b981;transform:translateY(-1px);box-shadow:0 4px 12px #10b98126}.preview-loading{display:flex;align-items:center;justify-content:center;height:100%;background:#f8fafc}.preview-loading-spinner{width:48px;height:48px;border:4px solid #e2e8f0;border-top:4px solid #10b981;border-radius:50%;animation:previewSpin 1s linear infinite}@keyframes previewSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.preview-loading-text{margin-top:16px;color:#64748b;font-size:16px;font-weight:500}.preview-error{display:flex;align-items:center;justify-content:center;height:100%;padding:40px;text-align:center}.preview-error-icon{width:64px;height:64px;background:#fef2f2;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 24px;border:2px solid #fecaca}.preview-error-icon svg{width:32px;height:32px;color:#ef4444}.preview-error-content h3{font-size:20px;font-weight:600;color:#1e293b;margin:0 0 8px}.preview-error-content p{color:#64748b;margin:0;font-size:14px}.preview-controls{position:absolute;top:16px;right:16px;display:flex;gap:8px;z-index:10}.preview-control-btn{width:36px;height:36px;background:#ffffffe6;border:1px solid rgba(0,0,0,.1);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.preview-control-btn:hover{background:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.preview-control-btn svg{width:16px;height:16px;color:#64748b}.preview-control-btn:hover svg{color:#10b981}@media (max-width: 768px){.preview-header{padding:20px}.preview-icon{width:40px;height:40px}.preview-info h3{font-size:18px}.preview-controls{top:12px;right:12px}.preview-control-btn{width:32px;height:32px}.preview-control-btn svg{width:14px;height:14px}}.preview-fade-in{animation:previewFadeIn .5s ease-in}@keyframes previewFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.preview-scale-in{animation:previewScaleIn .3s ease-out}@keyframes previewScaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (prefers-color-scheme: dark){.live-preview{background:#1e293b;border-color:#334155}.preview-container{background:#0f172a}.preview-iframe{background:#1e293b}.empty-preview-content h3{color:#f1f5f9}.empty-preview-content p{color:#94a3b8}.preview-suggestion-item{background:#334155;border-color:#10b9814d;color:#10b981}.preview-suggestion-item:hover{background:#10b9811a}.preview-loading{background:#0f172a}.preview-control-btn{background:#1e293be6;border-color:#475569}.preview-control-btn:hover{background:#334155}.preview-control-btn svg{color:#94a3b8}}.code-inspector{background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;border:1px solid rgba(0,0,0,.05);overflow:hidden;transition:all .3s ease}.code-inspector:hover{box-shadow:0 8px 30px #0000001f;transform:translateY(-2px)}.inspector-header{padding:24px;border-bottom:1px solid rgba(0,0,0,.08);background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;position:relative;overflow:hidden}.inspector-header:before{content:"";position:absolute;inset:0;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="inspector-grain" width="100" height="100" patternUnits="userSpaceOnUse"><circle cx="25" cy="25" r="1" fill="rgba(255,255,255,0.1)"/><circle cx="75" cy="75" r="1" fill="rgba(255,255,255,0.1)"/><circle cx="50" cy="10" r="0.5" fill="rgba(255,255,255,0.1)"/><circle cx="10" cy="60" r="0.5" fill="rgba(255,255,255,0.1)"/><circle cx="90" cy="40" r="0.5" fill="rgba(255,255,255,0.1)"/></pattern></defs><rect width="100" height="100" fill="url(%23inspector-grain)"/></svg>');opacity:.3}.inspector-header-content{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between}.inspector-title{display:flex;align-items:center;gap:16px}.inspector-icon{width:48px;height:48px;background:#fff3;border-radius:50%;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.3)}.inspector-icon svg{width:24px;height:24px;color:#fff}.inspector-info h3{font-size:20px;font-weight:700;margin:0;text-shadow:0 2px 4px rgba(0,0,0,.1)}.inspector-info p{font-size:14px;opacity:.9;margin:4px 0 0;font-weight:500}.inspector-tabs{display:flex;background:#f8fafc;border-bottom:1px solid rgba(0,0,0,.08)}.inspector-tab{flex:1;padding:16px 24px;background:transparent;border:none;font-size:14px;font-weight:600;color:#64748b;cursor:pointer;transition:all .3s ease;position:relative;display:flex;align-items:center;justify-content:center;gap:8px}.inspector-tab:hover{color:#8b5cf6;background:#8b5cf60d}.inspector-tab.active{color:#8b5cf6;background:#fff}.inspector-tab.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.inspector-tab svg{width:16px;height:16px}.inspector-code-area{position:relative;background:#1e293b;min-height:400px}.code-editor{width:100%;min-height:400px;background:#1e293b;border:none;font-family:Fira Code,Monaco,Consolas,monospace;font-size:14px;line-height:1.6;color:#e2e8f0;padding:24px;resize:vertical;outline:none}.code-editor::-webkit-scrollbar{width:8px}.code-editor::-webkit-scrollbar-track{background:#334155}.code-editor::-webkit-scrollbar-thumb{background:#475569;border-radius:4px}.code-editor::-webkit-scrollbar-thumb:hover{background:#64748b}.inspector-actions{position:absolute;top:16px;right:16px;display:flex;gap:8px;z-index:10}.inspector-action-btn{padding:8px 12px;background:#1e293be6;border:1px solid rgba(71,85,105,.5);border-radius:8px;color:#e2e8f0;font-size:12px;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:6px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.inspector-action-btn:hover{background:#8b5cf633;border-color:#8b5cf6;color:#fff;transform:translateY(-1px)}.inspector-action-btn svg{width:14px;height:14px}.inspector-action-btn.danger:hover{background:#ef444433;border-color:#ef4444}.inspector-code-area .react-syntax-highlighter{background:#1e293b!important;border-radius:0!important;margin:0!important;padding:24px!important;font-family:Fira Code,Monaco,Consolas,monospace!important;font-size:14px!important;line-height:1.6!important}.inspector-code-area .react-syntax-highlighter pre{background:#1e293b!important;border-radius:0!important;margin:0!important;padding:0!important}.inspector-empty{display:flex;align-items:center;justify-content:center;height:400px;text-align:center;padding:40px;background:#1e293b}.empty-inspector-icon{width:80px;height:80px;background:linear-gradient(135deg,#c4b5fd,#a78bfa);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 24px;box-shadow:0 8px 25px #8b5cf626}.empty-inspector-icon svg{width:40px;height:40px;color:#8b5cf6}.empty-inspector-content h3{font-size:24px;font-weight:700;color:#f1f5f9;margin:0 0 12px}.empty-inspector-content p{font-size:16px;color:#94a3b8;margin:0;line-height:1.6}.inspector-loading{display:flex;align-items:center;justify-content:center;height:400px;background:#1e293b}.inspector-loading-spinner{width:48px;height:48px;border:4px solid #334155;border-top:4px solid #8b5cf6;border-radius:50%;animation:inspectorSpin 1s linear infinite}@keyframes inspectorSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.inspector-loading-text{margin-top:16px;color:#94a3b8;font-size:16px;font-weight:500}.inspector-message{position:fixed;top:24px;right:24px;padding:16px 20px;border-radius:12px;font-weight:600;font-size:14px;z-index:1000;animation:messageSlideIn .3s ease-out;box-shadow:0 8px 25px #00000026}.inspector-message.success{background:#10b981;color:#fff}.inspector-message.error{background:#ef4444;color:#fff}@keyframes messageSlideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@media (max-width: 768px){.inspector-header{padding:20px}.inspector-icon{width:40px;height:40px}.inspector-info h3{font-size:18px}.inspector-tabs{flex-direction:column}.inspector-tab{padding:12px 16px}.inspector-actions{top:12px;right:12px;flex-direction:column}.inspector-action-btn{padding:6px 10px;font-size:11px}.code-editor{font-size:12px;padding:16px}}.inspector-fade-in{animation:inspectorFadeIn .5s ease-in}@keyframes inspectorFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.inspector-scale-in{animation:inspectorScaleIn .3s ease-out}@keyframes inspectorScaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (prefers-color-scheme: dark){.code-inspector{background:#1e293b;border-color:#334155}.inspector-tabs{background:#334155;border-color:#475569}.inspector-tab{color:#94a3b8}.inspector-tab:hover{background:#8b5cf61a}.inspector-tab.active{background:#1e293b}.inspector-code-area{background:#0f172a}.code-editor{background:#0f172a;color:#e2e8f0}.inspector-action-btn{background:#0f172ae6;border-color:#475569;color:#e2e8f0}.inspector-action-btn:hover{background:#8b5cf633;border-color:#8b5cf6}}.dashboard-container{display:flex;height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.dashboard-sidebar{width:320px;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-right:1px solid rgba(255,255,255,.2);display:flex;flex-direction:column;box-shadow:4px 0 20px #0000001a}.sidebar-header{padding:24px;border-bottom:1px solid rgba(0,0,0,.1);background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.sidebar-logo{display:flex;align-items:center;gap:12px;margin-bottom:20px}.logo-icon{width:48px;height:48px;background:#fff3;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.logo-text h1{font-size:24px;font-weight:700;margin:0;background:linear-gradient(45deg,#fff,#f0f0f0);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.logo-text p{font-size:14px;opacity:.8;margin:4px 0 0}.new-session-btn{width:100%;padding:16px;background:#fff3;border:1px solid rgba(255,255,255,.3);border-radius:12px;color:#fff;font-weight:600;font-size:16px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.new-session-btn:hover{background:#ffffff4d;transform:translateY(-2px);box-shadow:0 8px 25px #0003}.sessions-list{flex:1;padding:20px;overflow-y:auto}.sessions-list::-webkit-scrollbar{width:6px}.sessions-list::-webkit-scrollbar-track{background:#0000000d;border-radius:3px}.sessions-list::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}.sidebar-footer{padding:20px;border-top:1px solid rgba(0,0,0,.1)}.logout-btn{width:100%;padding:12px;background:#ef4444;border:none;border-radius:8px;color:#fff;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:8px}.logout-btn:hover{background:#dc2626;transform:translateY(-1px)}.main-content{flex:1;display:flex;flex-direction:column;background:#f8fafc}.top-navigation{background:#fff;border-bottom:1px solid rgba(0,0,0,.1);padding:20px 32px;box-shadow:0 2px 10px #0000000d}.nav-content{display:flex;align-items:center;justify-content:space-between}.nav-left{display:flex;align-items:center;gap:16px}.mobile-menu-btn{display:none;padding:8px;background:#f1f5f9;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease}.mobile-menu-btn:hover{background:#e2e8f0}.nav-title h2{font-size:24px;font-weight:700;color:#1e293b;margin:0}.nav-title p{font-size:14px;color:#64748b;margin:4px 0 0}.content-area{flex:1;padding:32px;overflow-y:auto}.loading-container{display:flex;align-items:center;justify-content:center;height:400px}.loading-spinner{width:48px;height:48px;border:4px solid #e2e8f0;border-top:4px solid #3b82f6;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text{margin-top:16px;color:#64748b;font-size:16px}.error-container{background:#fff;border:1px solid #fecaca;border-radius:12px;padding:24px;margin-bottom:24px;box-shadow:0 4px 6px #0000000d}.error-content{display:flex;align-items:flex-start;gap:12px}.error-icon{font-size:24px;color:#ef4444;margin-top:2px}.error-text h3{font-size:18px;font-weight:600;color:#1e293b;margin:0 0 8px}.error-text p{color:#64748b;margin:0 0 16px}.retry-btn{padding:8px 16px;background:#ef4444;border:none;border-radius:6px;color:#fff;font-weight:500;cursor:pointer;transition:all .3s ease}.retry-btn:hover{background:#dc2626}.content-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px}@media (max-width: 1024px){.dashboard-sidebar{display:none}.mobile-menu-btn{display:block}.content-grid{grid-template-columns:1fr}}@media (max-width: 768px){.content-area{padding:20px}.top-navigation{padding:16px 20px}.nav-title h2{font-size:20px}}.fade-in{animation:fadeIn .5s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.slide-in{animation:slideIn .5s ease-out}@keyframes slideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}.new-session-btn,.logout-btn{padding:10px 16px;font-size:1rem;min-height:40px;border-radius:8px;gap:8px}.new-session-btn svg,.logout-btn svg{width:18px;height:18px;margin-right:6px}@media (max-width: 600px){.new-session-btn,.logout-btn{font-size:.95rem;padding:8px 10px;min-height:36px}.new-session-btn svg,.logout-btn svg{width:16px;height:16px}}
