.auth-container{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg);padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.auth-card{width:100%;max-width:420px;background:var(--surface-1);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:48px;box-shadow:0 20px 60px #00000073,inset 0 1px 0 var(--card-glow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.auth-header{margin-bottom:40px;text-align:center}.auth-title{margin:0 0 12px;font-size:32px;font-weight:700;line-height:1.2;color:var(--text-1);letter-spacing:-.5px}.auth-subtitle{margin:0;font-size:14px;line-height:1.5;color:var(--text-2)}.alert{padding:12px 16px;border-radius:var(--radius-sm);margin-bottom:24px;font-size:14px;line-height:1.5;border:1px solid;animation:slideInDown .3s ease-out}@keyframes slideInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes formEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes formExit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}.alert-success{background:var(--state-success-bg);border-color:var(--state-success-border);color:var(--success)}.alert-error{background:var(--state-danger-bg);border-color:var(--state-danger-border);color:var(--error-text)}.alert-info{background:var(--state-info-bg);border-color:var(--state-info-border);color:var(--info)}.auth-form{display:flex;flex-direction:column;gap:20px;margin-bottom:28px;animation:formEnter .3s ease-out}.auth-form.form-exit{animation:formExit .15s ease-out forwards}.form-group{display:flex;flex-direction:column;gap:8px}.form-label{font-size:14px;font-weight:500;color:var(--text-1);letter-spacing:.3px}.form-input{padding:12px 16px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-sm);color:var(--text-1);font-size:14px;font-family:inherit;transition:all .2s ease-out}.form-input::placeholder{color:var(--placeholder)}.form-input:hover:not(:disabled){border-color:var(--input-border-hover);background:#2c231c}.form-input:focus{outline:none;border-color:var(--input-border-focus);box-shadow:0 0 0 3px var(--focus-ring)}.form-input.input-error{border-color:var(--input-invalid-border);background:var(--state-danger-bg)}.form-input.input-error:focus{box-shadow:0 0 0 3px #d9534f33}.form-input:disabled{background:var(--disabled-bg);color:var(--disabled-text);border-color:var(--disabled-border);cursor:not-allowed}.form-error{font-size:12px;color:var(--error-text);font-weight:500;display:flex;align-items:center;gap:4px;animation:slideInDown .2s ease-out}.btn{padding:12px 20px;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease-out;font-family:inherit;letter-spacing:.3px}.btn-primary{width:100%;background:var(--btn-primary-bg);color:var(--btn-primary-text);box-shadow:0 4px 12px #ec7c2a47}.btn-primary:hover:not(:disabled){background:var(--btn-primary-hover);box-shadow:0 6px 16px #ec7c2a5c;transform:translateY(-1px)}.btn-primary:active:not(:disabled){background:var(--primary-pressed);box-shadow:0 2px 6px #ec7c2a3d;transform:translateY(0)}.btn-primary:disabled{background:var(--btn-primary-disabled);cursor:not-allowed;opacity:.65;color:var(--disabled-text)}.auth-footer{text-align:center;border-top:1px solid var(--divider);padding-top:24px}.auth-toggle-text{margin:0;font-size:14px;color:var(--text-2);line-height:1.5}.auth-toggle-link{background:none;border:none;color:var(--primary);font-weight:600;cursor:pointer;font-size:14px;padding:0;text-decoration:none;transition:color .2s ease-out}.auth-toggle-link:hover{color:var(--primary-hover)}.auth-toggle-link:active{color:var(--primary-pressed)}@media(max-width:480px){.auth-card{padding:32px 24px}.auth-title{font-size:26px}.form-input{font-size:16px}}@media(prefers-reduced-motion:reduce){.auth-form,.alert,.form-error,.btn-primary,.auth-toggle-link,.form-input{transition:none}@keyframes slideInDown{0%{opacity:1}to{opacity:1}}}.teaching-lobby{min-height:100vh;padding:1.5rem 2rem;background:var(--bg);color:var(--text-1)}.lobby-header{margin-bottom:1.5rem;text-align:center}.lobby-title{font-size:1.4rem;font-weight:600;letter-spacing:.02em;margin-bottom:.75rem}.lobby-meta{display:flex;flex-wrap:wrap;gap:1.25rem;font-size:.9rem;color:var(--text-2);justify-content:center}.link-accent{color:var(--info);cursor:pointer}.text-accent{color:var(--primary)}.status-success{color:var(--success)}.lobby-main{display:grid;grid-template-columns:1.4fr 1fr;gap:1.5rem;align-items:stretch}.panel-title{font-size:.95rem;font-weight:600;margin-bottom:.5rem;color:var(--text-1)}.slideshow{display:flex;flex-direction:column;background:var(--surface-1);border-radius:var(--radius-md);border:1px solid var(--divider);box-shadow:var(--shadow-sm);width:100%;height:100%}.slideshow-canvas{flex:1;min-height:0;border-radius:var(--radius-md);border:2px dashed var(--divider);background:linear-gradient(180deg,#2c231c59,#2c231c26);display:flex;align-items:stretch;justify-content:stretch;padding:1rem;box-shadow:var(--shadow-sm);overflow:hidden;width:100%;height:100%}.conversation{display:flex;flex-direction:column;background:var(--surface-1);border-radius:var(--radius-md);border:1px solid var(--divider);box-shadow:var(--shadow-sm)}.conversation-body{flex:1;padding:1rem;overflow-y:auto}.conversation-input{padding:.75rem;border-top:1px solid var(--divider)}.conversation-input input{width:100%;background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-sm);padding:.65rem .75rem;color:var(--text-1);font-size:.9rem}.hint-text{font-size:.8rem;color:var(--text-3)}.chat-bubble{max-width:85%;padding:.6rem .75rem;border-radius:var(--radius-md);font-size:.85rem;line-height:1.4;margin-bottom:.5rem}.chat-bubble.ai{align-self:flex-start;background:var(--bubble-in-bg);border:1px solid var(--bubble-in-border);color:var(--text-2)}.chat-bubble.user{align-self:flex-end;background:var(--bubble-out-bg);border:1px solid var(--bubble-out-border);color:var(--text-1)}.conversation-body{display:flex;flex-direction:column;gap:.25rem}.slide{animation:slideFade .45s ease-out}@keyframes slideFade{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.caption{position:absolute;bottom:.75rem;font-size:.75rem;color:var(--text-3)}.participants{background:var(--surface-1);border-radius:var(--radius-md);border:1px solid var(--divider);padding:.75rem 1rem;box-shadow:var(--shadow-sm)}.participants-list{list-style:none;padding:0;margin:0;font-size:.85rem;color:var(--text-2)}.participants-list li{padding:.35rem 0}.participants-list .host{color:var(--primary);font-weight:600}.participants-list .muted{color:var(--text-3)}.stage{display:grid;grid-template-columns:1fr 1fr;gap:1rem;height:calc(100vh - 140px)}.participants-toggle{background:var(--btn-icon-bg);border:1px solid var(--divider);border-radius:var(--radius-sm);padding:.35rem .6rem;color:var(--text-2);font-size:.8rem;margin-left:auto}.participants-toggle:hover{background:var(--btn-icon-hover)}.participants-dialog{position:fixed;inset:0;z-index:50}.participants-backdrop{position:fixed;inset:0;background:var(--backdrop)}.participants-drawer{position:fixed;top:0;right:0;width:320px;height:100%;background:var(--surface-1);border-left:1px solid var(--divider);padding:1rem;box-shadow:var(--shadow-md);display:flex;flex-direction:column;animation:slideIn .26s ease-out}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.close-drawer{margin-top:auto;background:var(--btn-primary-bg);color:var(--btn-primary-text);border-radius:var(--radius-sm);padding:.5rem}.message-group{display:flex;gap:.75rem;margin-bottom:1rem;align-items:flex-start}.message-group.user{flex-direction:row-reverse}.message-avatar{font-size:1.5rem;flex-shrink:0;min-width:32px;height:32px;display:flex;align-items:center;justify-content:center}.message-content{display:flex;flex-direction:column;gap:.25rem;flex:1}.message-group.user .message-content{align-items:flex-end}.message-header{display:flex;gap:.5rem;align-items:center;font-size:.75rem}.sender-name{font-weight:500;color:var(--text-1)}.message-timestamp{color:var(--text-3);font-size:.7rem}.chat-bubble{max-width:85%;padding:.6rem .75rem;border-radius:var(--radius-md);font-size:.85rem;line-height:1.4;word-wrap:break-word}.chat-bubble p{margin:0}.message-group.ai .chat-bubble{background:var(--bubble-in-bg);border:1px solid var(--bubble-in-border);color:var(--text-2)}.message-group.user .chat-bubble{background:var(--bubble-out-bg);border:1px solid var(--bubble-out-border);color:var(--text-1)}.chat-bubble.typing{padding:.6rem .75rem;display:flex;gap:.3rem;align-items:center;background:var(--bubble-in-bg);border:1px solid var(--bubble-in-border);color:var(--text-2)}.typing-dot{width:6px;height:6px;border-radius:50%;background:currentColor;animation:typing-pulse 1.4s infinite}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typing-pulse{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-6px)}}.conversation-input{display:flex;gap:.5rem;padding:.75rem;border-top:1px solid var(--divider)}.conversation-input input{flex:1;background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-sm);padding:.65rem .75rem;color:var(--text-1);font-size:.9rem}.conversation-input input::placeholder{color:var(--placeholder)}.conversation-input input:focus{outline:none;border-color:var(--input-border-focus);box-shadow:0 0 0 2px var(--focus-ring)}.send-button{background:var(--btn-primary-bg);color:var(--btn-primary-text);border:1px solid var(--divider);border-radius:var(--radius-sm);padding:.65rem 1rem;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .15s ease-out;white-space:nowrap}.send-button:hover{background:var(--btn-primary-hover, #4a5568);transform:translateY(-1px)}.send-button:active{transform:translateY(0)}:root{--bg: #221810;--surface-1: #2C231C;--surface-2: #3A2718;--surface-3: #2A2018;--divider: rgba(239, 229, 218, .1);--border-strong: rgba(239, 229, 218, .16);--text-1: #EFE5DA;--text-2: rgba(239, 229, 218, .78);--text-3: rgba(239, 229, 218, .55);--text-inverse: #221810;--primary: #EC7C2A;--primary-hover: #F08B3C;--primary-pressed: #D96D22;--secondary: #884A1D;--bubble-in-bg: #2C231C;--bubble-in-border: var(--divider);--bubble-out-bg: rgba(236, 124, 42, .2);--bubble-out-border: rgba(236, 124, 42, .35);--input-bg: rgba(44, 35, 28, .9);--input-border: var(--divider);--input-border-hover: rgba(239, 229, 218, .18);--input-border-focus: rgba(236, 124, 42, .65);--placeholder: rgba(239, 229, 218, .45);--focus-ring: rgba(236, 124, 42, .4);--header-bg: transparent;--nav-bg: #2C231C;--footer-bg: #2C231C;--card-bg: #2C231C;--tile-bg: #2C231C;--btn-primary-bg: var(--primary);--btn-primary-text: var(--text-inverse);--btn-primary-hover: var(--primary-hover);--btn-primary-disabled: rgba(236, 124, 42, .35);--btn-icon-bg: rgba(44, 35, 28, .75);--btn-icon-hover: rgba(58, 39, 24, .85);--success: #2EA485;--info: #3C6DCE;--media: #6F69F2;--muted-icon: #AAADB2;--error-text: #d9534f;--shadow-sm: 0 1px 2px rgba(0,0,0,.3);--shadow-md: 0 10px 28px rgba(0,0,0,.4);--radius-sm: 12px;--radius-md: 16px;--radius-lg: 22px;--state-danger-bg: rgba(217, 83, 79, .16);--state-danger-border: rgba(217, 83, 79, .45);--state-success-bg: rgba(46, 164, 133, .14);--state-success-border: rgba(46, 164, 133, .42);--state-info-bg: rgba(60, 109, 206, .14);--state-info-border: rgba(60, 109, 206, .4);--disabled-bg: rgba(239, 229, 218, .08);--disabled-text: rgba(239, 229, 218, .4);--disabled-border: rgba(239, 229, 218, .1);--backdrop: rgba(0, 0, 0, .55);--card-border: rgba(239, 229, 218, .1);--card-glow: rgba(236, 124, 42, .16);--input-invalid-border: rgba(217, 83, 79, .65);--input-valid-border: rgba(46, 164, 133, .6)}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;min-width:320px;background:var(--bg);color:var(--text-1);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--link);text-decoration:none;font-weight:500}a:hover{color:var(--link-hover);text-decoration:underline}button{font:inherit}img,video{max-width:100%;height:auto}
