:root{--columbia-blue: #B9D6F2;--bice-blue: #006DAA;--sapphire: #0353A4;--prussian-blue: #003559;--oxford-blue: #061A40;--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: #10b981;--success-light: #d1fae5;--error: #ef4444;--error-light: #fef2f2;--warning: #f59e0b;--warning-light: #fef3c7}@font-face{font-family:Overused Grotesk;src:url(../assets/font/fonts/OverusedGrotesk-Light.woff2) format("woff2"),url(../assets/font/fonts/OverusedGrotesk-Light.woff) format("woff");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Overused Grotesk;src:url(../assets/font/fonts/OverusedGrotesk-Roman.woff2) format("woff2"),url(../assets/font/fonts/OverusedGrotesk-Roman.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Overused Grotesk;src:url(../assets/font/fonts/OverusedGrotesk-Medium.woff2) format("woff2"),url(../assets/font/fonts/OverusedGrotesk-Medium.woff) format("woff");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Overused Grotesk;src:url(../assets/font/fonts/OverusedGrotesk-SemiBold.woff2) format("woff2"),url(../assets/font/fonts/OverusedGrotesk-SemiBold.woff) format("woff");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Overused Grotesk;src:url(../assets/font/fonts/OverusedGrotesk-Bold.woff2) format("woff2"),url(../assets/font/fonts/OverusedGrotesk-Bold.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}.cta-button{background:#1e40af;color:#fff;padding:.75rem 1.5rem;border:none;border-radius:16px;text-decoration:none;font-weight:600;transition:background-color .3s,transform .2s;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-family:Overused Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.cta-button:hover{background:#1d4ed8;transform:translateY(-2px)}.login-btn-custom:hover{background:#b9d6f233!important}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Overused Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif;background:var(--columbia-blue);background:linear-gradient(215deg,var(--columbia-blue) 0%,#f8fafc 30%);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2{font-weight:600!important}body.classroom-page{height:100vh;overflow:hidden}body.protected-page{visibility:hidden}body.protected-page.auth-verified{visibility:visible}html:not(.auth-checked) body{opacity:0;visibility:hidden}html.auth-checked body{opacity:1;visibility:visible;transition:opacity .2s ease-in}.logo{display:flex;align-items:center;gap:.2rem;font-size:1.2rem;font-weight:700;color:var(--sapphire)}.logo-complete{height:1.5em;width:auto;min-width:125px;max-width:225px;opacity:.85}.hero-text-line{opacity:0;transform:translateY(20px);filter:blur(6px);will-change:opacity,transform,filter;font-family:Overused Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif}.hero-text-line-1{animation:hero-entrance .6s ease-out 0ms forwards}.hero-text-line-2{animation:hero-entrance .6s ease-out .3s forwards}@keyframes hero-entrance{0%{opacity:0;transform:translateY(20px);filter:blur(6px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}.auth-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#061a40d9;display:flex;align-items:center;justify-content:center;z-index:1000;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.auth-modal{background:#fff;border-radius:12px;width:90%;max-width:420px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;position:relative;font-family:Overused Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif}.auth-modal-header{display:flex;justify-content:flex-end;padding:16px 20px 0}.auth-modal-close{background:none;border:none;font-size:24px;color:var(--gray-500);cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s ease}.auth-modal-close:hover{background:var(--gray-100);color:var(--gray-700)}.auth-modal-content{padding:0 32px 32px}.auth-tabs{display:flex;border-bottom:1px solid var(--gray-200);margin-bottom:24px}.auth-tab{background:none;border:none;padding:12px 16px;font-size:16px;font-weight:500;color:var(--gray-500);cursor:pointer;border-bottom:2px solid transparent;transition:all .2s ease;flex:1;font-family:Overused Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif}.auth-tab.active{color:var(--sapphire);border-bottom-color:var(--sapphire)}.auth-tab:hover:not(.active){color:var(--gray-700)}.auth-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:14px;font-weight:500;color:var(--gray-700);font-family:Overused Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif}.form-group input{padding:12px 16px;border:1px solid var(--gray-300);border-radius:8px;font-size:16px;transition:border-color .2s ease,box-shadow .2s ease;background:#fff;font-family:Overused Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif}.form-group input:focus{outline:none;border-color:var(--sapphire);box-shadow:0 0 0 3px #0553a41a}.form-group input.error{border-color:var(--error)}.form-group input.error:focus{border-color:var(--error);box-shadow:0 0 0 3px #ef44441a}.error-message{color:var(--error);font-size:14px;margin-top:4px}.submit-error{text-align:center;font-weight:500;padding:12px;background:var(--error-light);border:1px solid #fecaca;border-radius:8px;margin-top:8px;color:var(--error)}.auth-submit-btn{background:var(--sapphire);color:#fff;border:none;padding:14px 24px;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:background-color .2s ease;margin-top:8px;font-family:Overused Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif}.auth-submit-btn:hover:not(:disabled){background:var(--bice-blue)}.auth-submit-btn:active:not(:disabled){background:var(--prussian-blue)}.auth-submit-btn:disabled{background:var(--gray-400);cursor:not-allowed}.auth-footer{text-align:center;margin-top:24px;padding-top:24px;border-top:1px solid var(--gray-200);color:var(--gray-500);font-size:14px}.auth-link-btn{background:none;border:none;color:var(--sapphire);cursor:pointer;text-decoration:underline;font-size:14px;padding:0}.auth-link-btn:hover{color:var(--bice-blue)}.top-bar-auth{display:flex;align-items:center;gap:12px;margin-left:auto}.user-info{display:flex;align-items:center;gap:8px;color:var(--gray-700);font-size:14px}.auth-button{background:var(--sapphire);color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:14px;cursor:pointer;transition:background-color .2s ease}.auth-button:hover{background:var(--bice-blue)}.auth-button:active{background:var(--prussian-blue)}.auth-button.secondary{background:transparent;color:var(--gray-500);border:1px solid var(--gray-300)}.auth-button.secondary:hover{background:var(--gray-50);color:var(--gray-700)}.page-container{display:flex;height:calc(100vh - 60px);width:100%;position:relative;top:0;transition:top .3s ease-in-out,height .3s ease-in-out}.chat-area{width:50%;min-width:350px;max-width:1000px;flex-shrink:0;display:flex;flex-direction:column;height:100%;border-right:1px solid var(--gray-200);background:#fff}.chat-log{flex-grow:1;overflow-y:auto;padding:2rem 2.5rem 0;display:flex;flex-direction:column;-ms-overflow-style:none;scrollbar-width:none}.chat-log::-webkit-scrollbar{display:none}.resizer{width:2px;cursor:col-resize;background-color:var(--gray-50);z-index:10;transition:background-color .2s ease}.resizer:hover,.resizer.resizing{background-color:var(--sapphire)}.sidebar{flex-grow:1;background-color:var(--gray-50);display:flex;flex-direction:column;min-width:260px}.problem-dropdown{position:fixed;top:60px;left:0;right:0;z-index:100;background:#fff;border-bottom:1px solid var(--gray-200);box-shadow:0 4px 6px -1px #061a401a;transform:translateY(-100%);transition:transform .3s ease-in-out,opacity .3s ease-in-out;opacity:0;overflow:hidden}.problem-dropdown.collapsed{transform:translateY(-100%);opacity:0}.problem-dropdown.expanded{transform:translateY(0);opacity:1;overflow:auto}.problem-dropdown .problem-card{margin:0;border:none;border-radius:0;box-shadow:none;background:#fff}.problem-dropdown .problem-card-body{padding:8px 5% 0;max-width:1200px;margin:0 auto}.chat-input-container{padding:1.5rem;border-top:1px solid var(--gray-200);background:var(--gray-50)}.chat-input-wrapper{max-width:80%;margin:0 auto;position:relative;display:flex;flex-direction:column;background-color:#fff;border-radius:21px;border:1px solid var(--gray-200);padding:.75rem 1rem}.chat-input{width:100%;min-height:44px;border:none;background:transparent;color:var(--gray-800);font-size:.9375rem;resize:none;font-family:inherit;line-height:1.5;padding:.5rem 0}.chat-input:empty:before{content:attr(placeholder);color:var(--gray-400);pointer-events:none}.chat-input:focus{outline:none}.chat-input:focus::placeholder{color:transparent}.chat-input.disabled{color:var(--gray-400);cursor:not-allowed;opacity:.6}.chat-input.disabled:empty:before{color:var(--gray-400)}.send-button.disabled{background-color:var(--gray-300)!important;cursor:not-allowed!important;opacity:.6}.button-row{display:flex;gap:1rem;justify-content:flex-end;margin-top:.5rem;align-items:center}.send-button{width:36px;height:36px;border:none;border-radius:18px;background-color:var(--sapphire);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.send-button:hover:not(:disabled){background-color:var(--bice-blue)}.send-button:active:not(:disabled){background-color:var(--prussian-blue)}.send-button:disabled{background-color:var(--gray-400);cursor:not-allowed}.hint-button{color:#868686;width:36px;height:36px;border-radius:18px;cursor:pointer;font-weight:600;font-size:.95rem;transition:all 0s cubic-bezier(.4,0,.2,1);background:transparent;border:1px solid transparent;box-shadow:none}.hint-button:hover:not(:disabled){background:linear-gradient(135deg,#fff6,#fff3);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.3);box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.hint-button:disabled{color:#99999980;cursor:not-allowed;background:transparent;border:1px solid transparent;box-shadow:none}.annotation-toggle-btn{width:36px;height:36px;border:none;border-radius:18px;background-color:#f3f4f6;color:#6b7280;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;font-size:14px}.annotation-toggle-btn:hover{background-color:#e5e7eb;color:#374151}.annotation-toggle-btn.active{background-color:#3b82f6;color:#fff}.annotation-toggle-btn.active:hover{background-color:#2563eb}.annotation-toggle-btn.active:active{background-color:#1d4ed8}.debug-button{width:36px;height:36px;border:none;border-radius:18px;background-color:#f3f4f6;color:#6b7280;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);font-size:.9rem}.debug-button:hover{background-color:#e5e7eb;color:#374151}.debug-button:active{background-color:#d1d5db;color:#1f2937}.discussion-content{flex-grow:1;overflow-y:auto;padding:1rem .5rem;display:flex;flex-direction:column;position:relative;-ms-overflow-style:none;scrollbar-width:none}.discussion-content .spacer{height:150px;width:100%;flex-shrink:0;pointer-events:none}.discussion-content::-webkit-scrollbar{display:none}.message{display:flex;flex-direction:column;max-width:95%}.message+.message{margin-top:2rem}.message.ai+.message.ai{margin-top:.5rem}.message-sender{font-size:.8rem;font-weight:600;color:#555;margin-bottom:4px;margin-left:5px}.message.user{align-self:flex-end;align-items:flex-end;margin-right:8px}.message.ai{align-self:flex-start;align-items:flex-start;margin-left:8px}.message-bubble{padding:10px 14px;border-radius:16px 16px 0;width:fit-content;max-width:100%;word-wrap:break-word}.ai .ai-message-content{padding:4px 0;width:100%;color:#333;line-height:1.5}.user .message-bubble{background-color:var(--sapphire);color:#fff;position:relative;overflow:hidden;display:flex;align-items:center}.message-bubble.correct{animation:bubble-glow .8s ease-out;position:relative;display:flex;align-items:center}.checkmark-icon{width:22px;height:22px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-left:8px;flex-shrink:0;opacity:0;transform:translate(150%);box-shadow:0 0 2px #0000001a;cursor:default}.message-bubble.correct .checkmark-icon{animation:slide-in-check .4s ease-out .2s forwards}.checkmark-icon svg{width:14px;height:14px;stroke:#28a745;stroke-width:2.5;fill:none}@keyframes slide-in-check{to{opacity:1;transform:translate(0)}}.mode-indicator{position:relative;background:linear-gradient(135deg,var(--sapphire) 0%,var(--bice-blue) 100%);color:#fff;padding:.75rem 1.25rem;margin:-1rem -1rem 1rem;border-radius:.75rem .75rem 0 0;opacity:0;transform:translateY(-10px);transition:all .3s ease}.mode-indicator.visible{opacity:1;transform:translateY(0)}.mode-indicator-content{display:flex;align-items:center;gap:.75rem;font-size:.875rem;font-weight:500}.mode-indicator svg{width:1.25rem;height:1.25rem;stroke-width:2.5}.socratic-mode~.spacer~#hybrid-editor{border-color:var(--sapphire)}.socratic-mode~.spacer~#hybrid-editor:focus{box-shadow:0 0 0 3px #0553a41a}@keyframes geogebra-highlight{0%{opacity:.3}50%{opacity:1}to{opacity:.3}}.highlighted-object{animation:geogebra-highlight 2s ease-in-out infinite}.socratic-mode-toggle{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#fff;border:1px solid var(--gray-200);border-radius:.5rem;font-size:.875rem;font-weight:500;color:var(--gray-700);cursor:pointer;transition:all .2s ease}.socratic-mode-toggle:hover{background:var(--gray-50);border-color:var(--sapphire);color:var(--sapphire)}.socratic-mode-toggle.active{background:var(--sapphire);border-color:var(--sapphire);color:#fff}.socratic-mode-toggle svg{width:1.125rem;height:1.125rem}@keyframes bubble-glow{0%,to{box-shadow:none}50%{box-shadow:0 0 12px 4px #28a7454d}}.typing-indicator{display:flex;align-items:center;padding:8px 12px;margin-top:1rem;margin-bottom:1rem}.typing-indicator span{height:8px;width:8px;background-color:#9e9e9e;border-radius:50%;display:inline-block;margin:0 2px;animation:bounce 1.4s infinite ease-in-out both}.typing-indicator span:nth-of-type(2){animation-delay:.2s}.typing-indicator span:nth-of-type(3){animation-delay:.4s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.top-bar{background:#fff;border-bottom:1px solid var(--gray-200);padding:12px 24px 12px 84px;display:flex;align-items:center;height:60px;position:sticky;top:0;z-index:200;width:100%;box-sizing:border-box;transition:padding-left .3s ease}.logo{font-size:24px;font-weight:700;color:var(--oxford-blue);cursor:pointer;transition:color .2s ease;display:flex;align-items:center;gap:6px}.logo:hover{color:var(--sapphire)}.logo span{color:var(--sapphire)!important;transition:color .2s ease}.logo:hover span{color:var(--bice-blue)!important}.logo-icon{width:32px;height:32px;flex-shrink:0;transform:translateY(-1px);filter:brightness(0)}.classroom-page .logo-icon{transform:translateY(1px)}.classroom-info{display:flex;align-items:center;gap:32px;position:absolute;left:50%;transform:translate(-50%)}.classroom-label{font-size:16px;font-weight:600;color:var(--gray-700)}#toggle-problem-btn{display:flex;align-items:center;gap:8px;font-size:16px;color:var(--gray-500);background:none;border:none;cursor:pointer;padding:8px 12px;border-radius:6px;transition:background-color .2s}#toggle-problem-btn:hover{background-color:var(--gray-100)}#toggle-problem-btn .chevron{width:16px;height:16px;transition:transform .3s ease-in-out}#toggle-problem-btn.expanded .chevron{transform:rotate(180deg)}#toggle-problem-btn.collapsed .chevron{transform:rotate(0)}@keyframes glow-pulse{0%{box-shadow:0 0 #216fdb4d}50%{box-shadow:0 0 0 4px #216fdb80}to{box-shadow:0 0 #216fdb4d}}#toggle-problem-btn.indicator-glow{animation:glow-pulse 1.8s ease-in-out infinite;border-radius:6px}.settings-icon{width:24px;height:24px;color:#9ca3af;cursor:pointer}.whiteboard-title{font-size:18px;font-weight:600;color:#1f2937;margin:0;padding:0;line-height:1.2}#canvas-wrapper{position:relative;width:100%;height:100%;transform:none!important}#ggb-element{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.tl-canvas{background:transparent!important}#tldraw-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:2;background:transparent;pointer-events:none;transform:none!important}#tldraw-overlay .tlui-toolbar{top:12px;bottom:unset}#tldraw-overlay .tl-canvas{background:transparent!important}#tldraw-overlay.active{pointer-events:auto}#problem-container.expanded::-webkit-scrollbar{width:6px}#problem-container.expanded::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}#problem-container.expanded::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}#problem-container.expanded::-webkit-scrollbar-thumb:hover{background:#94a3b8}.problem-card{background:#fff;border:none;border-radius:0;padding:0;margin:0;box-shadow:none;max-width:100%;box-sizing:border-box}.problem-header{padding:16px 20px 8px;width:100%;max-width:1200px;margin:0 auto;border-bottom:1px solid var(--gray-200)}.problem-card-title{font-size:1.125rem;font-weight:700;color:var(--prussian-blue);margin:0}.problem-content{display:grid;grid-template-columns:1fr auto;gap:0;align-items:start;width:100%}.problem-card-body{display:flex;flex-direction:column;gap:0;margin:0;padding:0}.problem-card-body:has(.problem-diagram-container:empty),.problem-card-body:has(#problem-diagram:empty){grid-template-columns:1fr}.problem-diagram-container:empty,.problem-diagram-container:has(#problem-diagram:empty){display:none!important;width:0;padding:0;margin:0}.problem-text-and-choices{font-size:1rem;line-height:1.6;color:var(--gray-700);width:100%;margin:0;padding:16px 20px}#problem-text,#problem-text p,#problem-text div,#problem-text span{margin:0;padding:0}#problem-text a,.problem-tooltip a,.problem-card a{color:#2563eb;text-decoration:none;border-bottom:1px solid #2563eb;transition:all .2s ease}#problem-text a:hover,.problem-tooltip a:hover,.problem-card a:hover{color:#1d4ed8;border-bottom-color:#1d4ed8;background-color:#2563eb0d}#problem-text a[href^=http],.problem-tooltip a[href^=http],.problem-card a[href^=http]{cursor:pointer}.problem-diagram-container{display:flex;align-items:center;justify-content:center;min-width:200px}.problem-diagram-container:empty{display:none}#problem-diagram img{max-width:100%;border-radius:8px;border:1px solid #e5e7eb}#problem-choices-list{list-style-type:none;padding:0 20px 16px;margin:12px 0 0;counter-reset:choice-counter;display:flex;flex-wrap:wrap;gap:8px 16px}#problem-choices-list li{display:flex;align-items:baseline;counter-increment:choice-counter;margin:4px 0;white-space:nowrap}#problem-choices-list li:before{content:counter(choice-counter,upper-alpha) ".";font-weight:600;color:#4b5563;min-width:20px;margin-right:4px;flex-shrink:0}mjx-container{margin-left:.25em;margin-right:.25em}.choice-item mjx-container:first-of-type{margin-left:.3em}.choice-item mjx-container{display:inline-block;vertical-align:baseline}#problem-choices-list li.choice-item{white-space:normal;flex-wrap:wrap}.choice-item>*:not(:first-child){margin-left:.25em}.canvas-container{flex:1;padding:0;margin:0;display:flex;flex-direction:column;min-height:0;overflow:hidden;width:100%;min-height:400px}.canvas{width:100%;height:100%;max-width:100%;max-height:100%;border:none;border-radius:0;background:#fff;box-sizing:border-box;margin:0;padding:0}#ggb-element{width:100%;height:100%;max-width:100%;max-height:100%;border:none;border-radius:0;box-sizing:border-box;overflow:visible;min-height:400px;flex:1}#ggb-element>div,#ggb-element iframe,#ggb-element canvas{width:100%!important;height:100%!important;max-width:none!important;max-height:none!important}#ggb-element .applet_scaler{width:100%!important;height:100%!important;transform:none!important;max-width:none!important;max-height:none!important}#ggb-element .applet_scaler>div,#ggb-element .applet_scaler iframe{width:100%!important;height:100%!important}@media (max-width: 900px){.problem-card-body,.page-container{flex-direction:column}.chat-area{width:100%;height:40vh;min-width:unset;max-width:unset;border-right:none;border-bottom:1px solid #e5e7eb}.chat-log{padding:1.5rem 1.5rem 0}.resizer{display:none}.sidebar{height:60vh;min-width:unset}.top-bar{padding:.5rem 1rem;font-size:.9rem}.logo{font-size:1.2rem}.classroom-label{font-size:.85rem;white-space:nowrap}#toggle-problem-btn{font-size:.85rem;padding:.4rem .6rem}}@media (max-width: 480px){.top-bar{padding:.4rem .8rem;font-size:.8rem}.logo{font-size:1.1rem}.classroom-label{font-size:.75rem;display:none}#toggle-problem-btn{font-size:.8rem;padding:.3rem .5rem}.chat-log{padding:1rem 1rem 0}.chat-message{font-size:.9rem;padding:.8rem 1rem}.input-container{padding:1rem}#user-input{font-size:.9rem;padding:.8rem 1rem}}.controls{display:flex;flex-direction:column;gap:12px}#start-button{width:100%;padding:12px 16px;font-size:14px;font-weight:600;background:var(--sapphire);color:#fff;border:none;border-radius:8px;cursor:pointer;transition:all .2s}#start-button:hover:not(:disabled){background:var(--bice-blue);transform:translateY(-1px)}#start-button:active:not(:disabled){background:var(--prussian-blue);transform:translateY(0)}#start-button:disabled{background:var(--gray-400);cursor:not-allowed;transform:none}#cancel-button{width:100%;padding:10px 16px;font-size:14px;font-weight:500;background:var(--gray-100);color:var(--gray-500);border:1px solid var(--gray-300);border-radius:8px;cursor:pointer;transition:all .2s}#cancel-button:hover:not(:disabled){background:var(--gray-200);border-color:var(--gray-400)}#cancel-button:disabled{background:var(--gray-50);color:var(--gray-300);cursor:not-allowed}.speed-control{display:flex;align-items:center;gap:8px;font-size:14px;color:#6b7280}#speed-range{flex:1;height:4px;background:#e5e7eb;border-radius:2px;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}#speed-range::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:#3b82f6;border-radius:50%;cursor:pointer}#speed-range::-moz-range-thumb{width:16px;height:16px;background:#3b82f6;border-radius:50%;cursor:pointer;border:none}.typewriter-chunk{opacity:0;transition:opacity .1s ease-in}.typewriter-chunk.visible{opacity:1}.tutor-message{background:#eff6ff;color:#1e40af;padding:12px 16px;border-radius:16px;margin:8px 0;max-width:85%;line-height:1.5;font-size:14px;border:1px solid #dbeafe}.tutor-error{background:#fef2f2;color:#dc2626;padding:12px 16px;border-radius:16px;margin:8px 0;max-width:85%;line-height:1.5;font-size:14px;border:1px solid #fecaca}.tutor-loading{display:inline-flex;align-items:center;gap:8px;color:#6b7280;font-style:italic;padding:12px 16px;background:#f9fafb;border-radius:16px;margin:8px 0;font-size:14px;border:1px solid #e5e7eb}.loading-dots{display:inline-flex;gap:3px}.loading-dots span{width:4px;height:4px;background:#6b7280;border-radius:50%;animation:loading-bounce 1.4s ease-in-out infinite both}.loading-dots span:nth-child(1){animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}.loading-dots span:nth-child(3){animation-delay:0s}@keyframes loading-bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.problem-tooltip{position:fixed;z-index:1000;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 10px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:400px;min-width:300px;opacity:0;visibility:hidden;transition:opacity .2s ease-in-out,visibility .2s ease-in-out;pointer-events:none;font-size:14px;line-height:1.5}.problem-tooltip.visible{opacity:1;visibility:visible}.tooltip-content{padding:16px 20px}.tooltip-text{color:#374151;margin:0}.problem-tooltip .MathJax{font-size:inherit!important}.problem-dropdown.expanded~.problem-tooltip{opacity:0!important;visibility:hidden!important}@keyframes hero-text-entrance{0%{opacity:0;transform:translateY(300px);filter:blur(10px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}.hero-text-line{opacity:0;transform:translateY(300px);filter:blur(10px);animation:hero-text-entrance .8s cubic-bezier(.25,.46,.45,.94) forwards}.hero-text-line{will-change:opacity,transform,filter}.hero-text-line.animation-complete{will-change:auto}.waitlist-title{font-size:24px;font-weight:700;color:#111827;margin:0 0 8px;text-align:center;font-family:Overused Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif}.waitlist-subtitle{font-size:16px;color:#6b7280;margin:0 0 24px;text-align:center;line-height:1.5;font-family:Overused Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif}.waitlist-form{margin-bottom:20px}.waitlist-submit{background:#2563eb;color:#fff;width:100%}.waitlist-submit:hover:not(:disabled){background:#1d4ed8}.waitlist-footer{text-align:center;color:#6b7280;font-size:14px;margin-top:20px}.success-message{text-align:center;padding:32px 0}.success-message h3{color:#059669;font-size:20px;font-weight:600;margin:0 0 8px}.success-message p{color:#6b7280;font-size:16px;margin:0}.demo-title{font-size:24px;font-weight:700;color:#111827;margin:0 0 8px;text-align:center;font-family:Overused Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif}.demo-subtitle{font-size:16px;color:#6b7280;margin:0 0 24px;text-align:center;line-height:1.5;font-family:Overused Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif}.demo-form{margin-bottom:20px}.demo-submit{background:#2563eb;color:#fff;width:100%}.demo-submit:hover:not(:disabled){background:#1d4ed8}.demo-info{background:#f3f4f6;border-radius:8px;padding:16px;margin:20px 0}.demo-hint{font-size:14px;color:#4b5563;margin:0;line-height:1.5}.demo-footer{text-align:center;color:#6b7280;font-size:14px;margin-top:20px}.master-password-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.master-password-modal{background:#fff;border-radius:16px;width:90%;max-width:400px;padding:0;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;animation:masterPasswordFadeIn .3s ease-out}.master-password-content{padding:32px}.master-password-header{text-align:center;margin-bottom:32px}.master-password-header h2{font-size:28px;font-weight:700;color:var(--oxford-blue);margin-bottom:8px;font-family:Overused Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif}.master-password-header p{font-size:16px;color:var(--gray-600);font-family:Overused Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif}.master-password-form{display:flex;flex-direction:column;gap:24px}.master-password-form .form-group{display:flex;flex-direction:column;gap:8px}.master-password-form label{font-weight:600;color:var(--gray-700);font-size:14px;font-family:Overused Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif}.master-password-form input{padding:12px 16px;border:2px solid var(--gray-300);border-radius:8px;font-size:16px;transition:border-color .2s ease;font-family:Overused Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif}.master-password-form input:focus{outline:none;border-color:var(--sapphire);box-shadow:0 0 0 3px #0353a41a}.master-password-form input.error{border-color:var(--error)}.master-password-form .error-message{color:var(--error);font-size:14px;font-weight:500;font-family:Overused Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif}.master-password-submit-btn{background:var(--sapphire);color:#fff;padding:14px 24px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:Overused Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif}.master-password-submit-btn:hover:not(:disabled){background:var(--bice-blue);transform:translateY(-1px);box-shadow:0 4px 12px #0353a44d}.master-password-submit-btn:disabled{background:var(--gray-400);cursor:not-allowed;transform:none}@keyframes masterPasswordFadeIn{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}body{background-attachment:fixed!important;min-height:100vh}header{background:#fff!important;border-bottom:1px solid var(--gray-200)!important;box-shadow:0 1px 3px #0000001a!important}.hero{background:#ffffff0d!important;backdrop-filter:blur(20px)!important;-webkit-backdrop-filter:blur(20px)!important}.hero-demo{background:#ffffff26!important;backdrop-filter:blur(30px)!important;-webkit-backdrop-filter:blur(30px)!important;border:1px solid rgba(255,255,255,.3)!important;box-shadow:0 25px 50px -12px #00000040,0 8px 32px #1f26874d!important}.about{background:#ffffff1a!important;backdrop-filter:blur(20px)!important;-webkit-backdrop-filter:blur(20px)!important;border-top:1px solid var(--gray-200)}.features{background:#ffffff0d!important;backdrop-filter:blur(20px)!important;-webkit-backdrop-filter:blur(20px)!important;border-top:1px solid var(--gray-200)}.why-different{background:#ffffff1a!important;backdrop-filter:blur(20px)!important;-webkit-backdrop-filter:blur(20px)!important;border-top:1px solid var(--gray-200)}.vision{background:#ffffff0d!important;backdrop-filter:blur(20px)!important;-webkit-backdrop-filter:blur(20px)!important;border-top:1px solid var(--gray-200)}.early-access{background:#1e293bcc!important;backdrop-filter:blur(25px)!important;-webkit-backdrop-filter:blur(25px)!important;border-top:1px solid var(--gray-200)}.feature-card{background:#ffffff26!important;backdrop-filter:blur(25px)!important;-webkit-backdrop-filter:blur(25px)!important;border:1px solid rgba(255,255,255,.25)!important;box-shadow:0 8px 32px #1f268733!important;transition:all .3s ease}.feature-card:hover{background:#fff3!important;box-shadow:0 12px 40px #1f26874d!important}.vision-card{background:#ffffff26!important;backdrop-filter:blur(25px)!important;-webkit-backdrop-filter:blur(25px)!important;border:1px solid rgba(255,255,255,.25)!important;box-shadow:0 8px 32px #1f268733!important;transition:all .3s ease}.vision-card:hover{background:#fff3!important;box-shadow:0 12px 40px #1f26874d!important}.comparison-list li{background:#ffffff26!important;backdrop-filter:blur(20px)!important;-webkit-backdrop-filter:blur(20px)!important;border:1px solid rgba(255,255,255,.2)!important;border-left:4px solid rgba(59,130,246,.8)!important;box-shadow:0 4px 16px #1f268726!important}.benefit{background:#fff3!important;backdrop-filter:blur(15px)!important;-webkit-backdrop-filter:blur(15px)!important;border:1px solid rgba(255,255,255,.3)!important;transition:all .3s ease}.benefit:hover{background:#ffffff4d!important;box-shadow:0 8px 25px #1f268733!important}footer{background:#0f172ae6!important;backdrop-filter:blur(20px)!important;-webkit-backdrop-filter:blur(20px)!important;border-top:1px solid rgba(255,255,255,.1)}.loading-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--columbia-blue);background:linear-gradient(135deg,var(--columbia-blue) 0%,#f8fafc 100%);display:flex;align-items:center;justify-content:center;z-index:10000;opacity:1;transition:opacity .3s ease-in-out}.loading-screen.fade-out{opacity:0;pointer-events:none}.loading-content{text-align:center;animation:fadeInUp .6s ease-out}.loading-logo{height:80px;width:auto;margin-bottom:2rem;animation:pulse 2s ease-in-out infinite;opacity:.8;filter:drop-shadow(0 2px 8px rgba(0,0,0,.1));mix-blend-mode:multiply}.loading-spinner{width:50px;height:50px;margin:0 auto 1.5rem;border:3px solid rgba(0,109,170,.1);border-top-color:var(--bice-blue);border-radius:50%;animation:spin 1s linear infinite}.loading-text{font-size:1.1rem;color:var(--prussian-blue);font-weight:500;letter-spacing:.02em}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.9}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.history-toggle-btn{background:transparent;border:none;color:var(--prussian-blue);font-size:1.2rem;padding:.5rem;cursor:pointer;transition:all .2s ease;border-radius:.375rem;margin-right:1rem}.history-toggle-btn:hover{background:#0035a41a;color:var(--sapphire)}.conversation-sidebar{position:fixed;top:0;left:0;width:60px;height:100vh;background:#fff;box-shadow:2px 0 10px #0000001a;transition:width .3s cubic-bezier(.4,0,.2,1);z-index:1001;display:flex;flex-direction:column;overflow:hidden}.conversation-sidebar.expanded{width:320px}.sidebar-overlay{display:none}.sidebar-header{display:flex;justify-content:center;align-items:center;padding:1rem;border-bottom:1px solid var(--gray-200);background:var(--gray-50);height:60px;flex-shrink:0;position:relative}.sidebar-header h3{font-size:1.25rem;font-weight:600;color:var(--oxford-blue);margin:0;white-space:nowrap;overflow:hidden;transition:none}.sidebar-header-text{display:flex;align-items:center;gap:.75rem;overflow:hidden;width:0;opacity:0;transition:width .3s ease,opacity .15s ease}.conversation-sidebar.expanded .sidebar-header-text{width:auto;opacity:1;transition:width .3s ease,opacity .15s ease .15s}.conversation-sidebar:not(.expanded) .sidebar-header-text{width:0;opacity:0;transition:width .3s ease,opacity 0s}.conversation-sidebar:not(.expanded) .sidebar-header{padding:1rem .5rem}.sidebar-close-btn{background:transparent;border:none;color:var(--gray-500);font-size:1.25rem;cursor:pointer;padding:.5rem;transition:color .2s ease}.sidebar-close-btn:hover{color:var(--gray-700)}.conversation-sidebar:not(.expanded) .sidebar-close-btn{display:none}.sidebar-expand-icon{display:block!important;font-size:1.25rem;color:var(--prussian-blue);margin:0;padding:.5rem;cursor:pointer;transition:all .2s ease;position:relative;background:#ff00001a;border:1px solid red;min-width:20px;min-height:20px}.sidebar-expand-icon:before{content:"☰"!important;display:inline-block;font-family:Arial,sans-serif}.sidebar-expand-icon:hover{color:var(--oxford-blue);background:var(--gray-100);border-radius:4px}.conversation-sidebar:not(.expanded) .sidebar-expand-icon{display:block!important}.conversation-sidebar.expanded .sidebar-expand-icon{display:block!important;position:absolute;top:1rem;right:1rem;z-index:10}.sidebar-search{padding:1rem;border-bottom:1px solid var(--gray-200);max-height:68px;overflow:hidden;transition:max-height .3s ease,opacity .3s ease,padding .3s ease}.conversation-sidebar:not(.expanded) .sidebar-search{max-height:0;opacity:0;padding:0 1rem}.conversation-sidebar:not(.expanded) .empty-state{display:none}.conversation-sidebar:not(.expanded) .sidebar-content{display:none}.search-input-wrapper{position:relative}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--gray-400);font-size:.875rem}.search-input{width:100%;padding:.625rem 1rem .625rem 2.5rem;border:1px solid var(--gray-300);border-radius:.5rem;font-size:.875rem;font-family:inherit;transition:all .2s ease}.search-input:focus{outline:none;border-color:var(--bice-blue);box-shadow:0 0 0 3px #006daa1a}.sidebar-content{flex:1;overflow-y:auto;overflow-x:hidden;background:#fff}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:var(--gray-500)}.loading-spinner .spinner{width:40px;height:40px;border:3px solid var(--gray-200);border-top-color:var(--bice-blue);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:var(--gray-400);text-align:center}.empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.empty-hint{font-size:.875rem;color:var(--gray-500);margin-top:.5rem}.conversation-list{display:block}.conversation-group-header{font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--gray-500);padding:.75rem 1rem .5rem;background:var(--gray-50);border-top:1px solid var(--gray-200);position:sticky;top:0;white-space:nowrap;overflow:hidden;transition:opacity .15s ease}.conversation-sidebar:not(.expanded) .conversation-group-header{opacity:0;height:0;padding:0;transition:opacity 0s,height .3s ease,padding .3s ease}.conversation-item{display:flex;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--gray-100);transition:padding .3s ease,background .2s ease;cursor:pointer;position:relative}.conversation-sidebar:not(.expanded) .conversation-item{padding:.75rem;justify-content:center;display:flex;align-items:center}.conversation-icon-wrapper{flex-shrink:0;width:36px;height:36px;margin-right:.75rem;transition:margin .3s ease}.conversation-sidebar:not(.expanded) .conversation-icon-wrapper{margin-right:0}.conversation-icon{width:36px;height:36px;background:var(--gray-100);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;color:var(--prussian-blue);font-size:.875rem;line-height:1;text-align:center}.conversation-content-wrapper{flex:1;display:flex;align-items:center;min-width:0;overflow:hidden;opacity:1;transition:opacity .15s ease .15s}.conversation-sidebar:not(.expanded) .conversation-content-wrapper{opacity:0;width:0;transition:opacity 0s}.conversation-item:hover{background:var(--gray-50)}.conversation-item.selected{background:#006daa0d;border-left:3px solid var(--bice-blue);padding-left:calc(1.5rem - 3px)}.conversation-main{flex:1;min-width:0}.conversation-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.conversation-title{font-size:.9375rem;font-weight:500;color:var(--prussian-blue);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.status-completed,.status-active{font-size:.625rem}.status-completed{color:var(--success)}.status-active{color:var(--bice-blue)}.conversation-meta{display:flex;align-items:center;gap:.5rem}.conversation-time{font-size:.75rem;color:var(--gray-500)}.conversation-actions{display:flex;gap:.25rem;opacity:0;transition:opacity .2s ease}.conversation-item:hover .conversation-actions{opacity:1}.action-btn{background:transparent;border:none;color:var(--gray-400);padding:.375rem;cursor:pointer;border-radius:.25rem;font-size:.875rem;transition:all .2s ease}.action-btn:hover{color:var(--gray-600);background:var(--gray-100)}.restart-btn:hover{color:var(--bice-blue)}.delete-btn:hover{color:var(--error)}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000}.modal-content{background:#fff;border-radius:.75rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:400px;width:90%;animation:fadeInScale .2s ease}.restart-dialog{padding:2rem}.restart-dialog h3{font-size:1.25rem;font-weight:600;color:var(--oxford-blue);margin:0 0 1rem}.restart-dialog p{color:var(--gray-600);margin:0 0 1.5rem;line-height:1.5}.dialog-actions{display:flex;gap:.75rem;justify-content:flex-end}.btn-cancel{padding:.625rem 1.25rem;border:1px solid var(--gray-300);background:#fff;color:var(--gray-700);border-radius:.5rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-cancel:hover{background:var(--gray-50);border-color:var(--gray-400)}.btn-primary{padding:.625rem 1.25rem;border:none;background:var(--sapphire);color:#fff;border-radius:.5rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.btn-primary:hover{background:var(--prussian-blue)}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (max-width: 768px){body{padding-left:0!important}.conversation-sidebar{width:0;box-shadow:none}.conversation-sidebar.expanded{width:100%;box-shadow:2px 0 10px #0000001a}body.sidebar-expanded:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:1000}.history-toggle-btn{display:block}.conversation-item{padding:1rem}.conversation-actions{opacity:1}.top-bar,body.sidebar-expanded .top-bar,.selection-page header,body.sidebar-expanded .selection-page header{margin-left:0!important;padding-left:24px!important}}body.classroom-page,body.selection-page{padding-left:60px;transition:padding-left .3s ease}body.classroom-page.sidebar-expanded,body.selection-page.sidebar-expanded{padding-left:320px}.selection-page header{position:sticky;top:0;left:0;right:0;width:100%;margin-left:0;height:60px;display:flex;align-items:center;background:#fff;border-bottom:1px solid var(--gray-200)}.selection-page header nav{padding-left:80px;padding-right:20px;transition:padding-left .3s ease;display:flex;align-items:center;justify-content:space-between;width:100%;height:100%}body.sidebar-expanded .selection-page header nav{padding-left:340px;padding-right:20px}.conversation-loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:none;align-items:center;justify-content:center;z-index:10000}.conversation-loading-overlay .loading-content{background:#fff;padding:30px 40px;border-radius:12px;box-shadow:0 4px 20px #0000004d;display:flex;flex-direction:column;align-items:center;gap:20px}.conversation-loading-overlay .spinner{width:40px;height:40px;border:3px solid #f3f3f3;border-top:3px solid var(--bice-blue);border-radius:50%;animation:spin 1s linear infinite}.conversation-loading-overlay .loading-text{font-size:16px;color:var(--prussian-blue);font-weight:500}.completion-badge{position:relative;background:linear-gradient(135deg,var(--success) 0%,#059669 100%);color:#fff;padding:1rem 1.5rem;margin:-1rem -1rem 1rem;border-radius:.75rem .75rem 0 0;opacity:0;transform:translateY(-10px);transition:all .3s ease;box-shadow:0 4px 6px #10b98133}.completion-badge.visible{opacity:1;transform:translateY(0)}.completion-badge-content{display:flex;align-items:center;gap:.75rem;font-size:1rem;font-weight:600}.completion-badge svg{width:1.5rem;height:1.5rem;stroke-width:2.5}.celebration-effect{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);font-size:5rem;z-index:9999;pointer-events:none;animation:celebrate 2s ease-out forwards}@keyframes celebrate{0%{transform:translate(-50%,-50%) scale(0) rotate(0);opacity:0}50%{transform:translate(-50%,-50%) scale(1.2) rotate(180deg);opacity:1}to{transform:translate(-50%,-50%) scale(.8) rotate(360deg);opacity:0}}
