body,html{margin:0;padding:0}#root,body,html{height:100%;overflow:hidden;width:100%}#root{display:flex;flex-direction:column}App{position:absolute}.App,App{height:100%;overflow:hidden;width:100%}.App{display:flex;flex-direction:column}.abs-0000{bottom:0;left:0;position:absolute;right:0;top:0}.pyggb-IDE{display:grid;grid-template-rows:-webkit-min-content 1fr;grid-template-rows:min-content 1fr;height:100%;min-height:0;overflow-x:hidden;position:relative}.pyggb-IDE .navbar{padding:0}.pyggb-IDE .container-fluid.MenuBar .navbar-brand:last-child{margin-right:0}.pyggb-IDE .container-fluid.MenuBar{background-color:#303030;color:#fff;justify-content:flex-start;margin:0}.pyggb-IDE .container-fluid.MenuBar .ControlButton button{display:block;padding:2px 4px}.pyggb-IDE .container-fluid.MenuBar .loading-text{color:#fff;font-style:italic;margin-left:3rem}.pyggb-IDE .container-fluid.MenuBar .backing-state{color:#fff;display:flex;flex-direction:row;flex-grow:1;flex-shrink:1;font-style:italic;margin-left:3rem;width:1rem}.pyggb-IDE .container-fluid.MenuBar .backing-state .spinner-container{align-items:center;display:flex;flex-direction:row;height:2rem;justify-content:center;width:2rem}.pyggb-IDE .container-fluid.MenuBar .backing-state .spinner-border{visibility:hidden}.pyggb-IDE .container-fluid.MenuBar .backing-state .spinner-border.visible{visibility:visible}.pyggb-IDE .container-fluid.MenuBar .backing-state .spinner-border{margin-right:1rem}.pyggb-IDE .container-fluid.MenuBar .backing-state .FilenameDisplayOrEdit{overflow:hidden;padding-right:1rem;text-overflow:ellipsis;white-space:nowrap}.pyggb-IDE .main-content{grid-gap:0;background-color:#f5f5f5;display:grid;gap:0;grid-template-areas:"editor results" "editor output";grid-template-columns:1fr 1.2fr;grid-template-rows:1fr 150px;height:100%;min-height:0}.pyggb-IDE .main-content .editor-maybe-errors-outer{background-color:#fff;border-right:1px solid #e0e0e0;grid-area:editor;position:relative}.pyggb-IDE .main-content .editor-maybe-errors-outer .editor-maybe-errors-inner{display:grid}.pyggb-IDE .main-content .editor-maybe-errors-outer .editor-maybe-errors-inner.no-errors.content-user-program{grid-template-rows:1fr 0}.pyggb-IDE .main-content .editor-maybe-errors-outer .editor-maybe-errors-inner.no-errors.content-example{grid-template-rows:-webkit-min-content 1fr 0;grid-template-rows:min-content 1fr 0}.pyggb-IDE .main-content .editor-maybe-errors-outer .editor-maybe-errors-inner.has-errors.content-user-program{grid-template-rows:2fr 1fr}.pyggb-IDE .main-content .editor-maybe-errors-outer .editor-maybe-errors-inner.has-errors.content-example{grid-template-rows:-webkit-min-content 2fr 1fr;grid-template-rows:min-content 2fr 1fr}.pyggb-IDE .main-content .editor-maybe-errors-outer .editor-maybe-errors-inner.content-nothing-yet-loaded .copy-invitation-container,.pyggb-IDE .main-content .editor-maybe-errors-outer .editor-maybe-errors-inner.content-user-program .copy-invitation-container,.pyggb-IDE .main-content .editor-maybe-errors-outer .editor-maybe-errors-inner.no-errors .errors-container{display:none}.pyggb-IDE .main-content .editor-maybe-errors-outer .editor-maybe-errors-inner .copy-invitation-container{background-color:#ddd}.pyggb-IDE .main-content .editor-maybe-errors-outer .editor-maybe-errors-inner .copy-invitation-container .copy-example{align-items:center;display:flex;flex-direction:column}.pyggb-IDE .main-content .editor-maybe-errors-outer .editor-maybe-errors-inner .copy-invitation-container .copy-example p{margin:.5rem 0 0}.pyggb-IDE .main-content .editor-maybe-errors-outer .editor-maybe-errors-inner .copy-invitation-container .copy-example button{margin:1rem}.pyggb-IDE .main-content .editor-maybe-errors-outer .editor-maybe-errors-inner .editor{position:relative}.pyggb-IDE .main-content .editor-maybe-errors-outer .editor-maybe-errors-inner .editor .busy-overlay{display:none}.pyggb-IDE .main-content .editor-maybe-errors-outer .editor-maybe-errors-inner .editor .busy-overlay.booting,.pyggb-IDE .main-content .editor-maybe-errors-outer .editor-maybe-errors-inner .editor .busy-overlay.loading{align-items:center;background-color:#000;display:flex;flex-direction:row;justify-content:center;opacity:30%}.pyggb-IDE .main-content .editor-maybe-errors-outer .editor-maybe-errors-inner .errors-container{position:relative}.pyggb-IDE .main-content .editor-maybe-errors-outer .editor-maybe-errors-inner .errors-container .ErrorList{background-color:#fef2f2;border:1px solid #ef4444;border-left-width:4px;border-radius:.375rem;overflow:auto}.pyggb-IDE .main-content .editor-maybe-errors-outer .editor-maybe-errors-inner .errors-container .ErrorList .error-list-inner h1{color:#dc2626;font-size:1.25rem;font-weight:600;margin-bottom:1rem}.pyggb-IDE .main-content .editor-maybe-errors-outer .editor-maybe-errors-inner .errors-container .ErrorList .error-list-inner{margin:1rem}.pyggb-IDE .main-content .editor-maybe-errors-outer .editor-maybe-errors-inner .errors-container .ErrorList .error-list-inner>ul{padding-left:0}.pyggb-IDE .main-content .editor-maybe-errors-outer .editor-maybe-errors-inner .errors-container .ErrorList .error-list-inner>ul>li{list-style:none}.pyggb-IDE .main-content .editor-maybe-errors-outer .editor-maybe-errors-inner .errors-container .ErrorList .error-list-inner>ul ul>li{list-style:disc}.pyggb-IDE .main-content .editor-maybe-errors-outer .editor-maybe-errors-inner .errors-container .ErrorList .error-list-inner>ul ul>li p{margin:.25rem 0}.pyggb-IDE .main-content .results{background-color:#fff;display:flex;flex-direction:column;grid-area:results;height:100%;min-height:0}.pyggb-IDE .main-content .results .ggb{border-bottom:1px solid #e0e0e0;display:flex;flex:1 1 auto;flex-direction:column;height:100%;min-height:0;position:relative}.pyggb-IDE .main-content .results .stdout-outer{display:none}.pyggb-IDE .main-content .stdout-pane-bottom{background-color:#1e1e1e;border-top:1px solid #3e3e3e;color:#d4d4d4;display:flex;flex-direction:column;font-family:Consolas,Monaco,Courier New,monospace;font-size:.875rem;grid-area:output;min-height:0;position:relative}.pyggb-IDE .main-content .stdout-pane-bottom .stdout-outer{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden;position:relative}.pyggb-IDE .main-content .stdout-pane-bottom .stdout-header{background-color:#252525;border-bottom:1px solid #3e3e3e;color:#8a8a8a;flex-shrink:0;font-size:.75rem;font-weight:500;letter-spacing:.5px;padding:.5rem 1rem;text-transform:uppercase}.pyggb-IDE .main-content .stdout-pane-bottom .stdout-inner{flex:1 1;line-height:1.5;overflow-x:hidden;overflow-y:auto;padding:1rem}.pyggb-IDE .main-content .stdout-pane-bottom .stdout-inner pre{word-wrap:break-word;color:inherit;font-family:inherit;font-size:inherit;margin:0;white-space:pre-wrap}.FileChoice-list{padding:0}.FileChoice-list li{background-color:#eee;border-radius:6px;cursor:pointer;list-style:none;margin:.5rem 0;padding:.5rem;-webkit-user-select:none;user-select:none}.FileChoice-list li:hover{background-color:#ddd}.FileChoice-list li{display:grid;grid-template-columns:1fr auto}.FileChoice-list li span.file-name{align-items:center;display:flex;justify-content:left}.FileChoice-list li button{padding:2px 6px;visibility:hidden}.FileChoice-list li:hover button:not([disabled]){visibility:visible}ul.ExampleList{padding:0}ul.ExampleList li{background-color:#eee;border-radius:6px;cursor:pointer;list-style:none;margin:.5rem 0;padding:.5rem;-webkit-user-select:none;user-select:none}ul.ExampleList li:hover{background-color:#ddd}ul.ExampleList li h1{font-size:1.333rem}.FilenameDisplayOrEdit{padding:.25rem;-webkit-user-select:none;user-select:none}.FilenameDisplayOrEdit:hover{background-color:#606060}.DeleteChatModal .modal-dialog{margin:auto;max-width:360px}@media(max-width:768px){.DeleteChatModal .modal-dialog{margin:auto;max-width:88vw}}.DeleteChatModal .modal-content{background-color:#fff;border:none;border-radius:20px;box-shadow:0 8px 32px #0000002e;padding:4px}.DeleteChatModal .modal-body{padding:28px 24px 22px;text-align:center}@media(max-width:768px){.DeleteChatModal .modal-body{padding:22px 18px 18px}}.DeleteChatModal .delete-chat-title{color:#111;font-size:1.1rem;font-weight:700;margin-bottom:10px}@media(max-width:768px){.DeleteChatModal .delete-chat-title{font-size:1rem}}.DeleteChatModal .delete-chat-body{color:#666;font-size:.9rem;line-height:1.5;margin-bottom:24px}@media(max-width:768px){.DeleteChatModal .delete-chat-body{font-size:.85rem;margin-bottom:20px}}.DeleteChatModal .delete-chat-actions{display:flex;gap:10px}@media(max-width:768px){.DeleteChatModal .delete-chat-actions{gap:8px}}.DeleteChatModal .delete-chat-actions .delete-chat-btn{border-radius:999px;cursor:pointer;flex:1 1;font-size:.95rem;font-weight:600;padding:11px 0;transition:opacity .15s}@media(max-width:768px){.DeleteChatModal .delete-chat-actions .delete-chat-btn{font-size:.9rem;padding:10px 0}}.DeleteChatModal .delete-chat-actions .delete-chat-btn:hover{opacity:.82}.DeleteChatModal .delete-chat-actions .delete-chat-btn.cancel{background-color:#fff;border:1.5px solid #ccc;color:#111}.DeleteChatModal .delete-chat-actions .delete-chat-btn.confirm{background-color:#f0404a;border:none;color:#fff}.SessionErrorModal .modal-dialog{margin:auto;max-width:360px}@media(max-width:768px){.SessionErrorModal .modal-dialog{margin:auto;max-width:88vw}}.SessionErrorModal .modal-content{background-color:#fff;border:none;border-radius:20px;box-shadow:0 8px 32px #0000002e;padding:4px}.SessionErrorModal .modal-body{padding:28px 24px 22px;text-align:center}@media(max-width:768px){.SessionErrorModal .modal-body{padding:22px 18px 18px}}.SessionErrorModal .session-error-icon{font-size:2rem;line-height:1;margin-bottom:10px}.SessionErrorModal .session-error-title{color:#111;font-size:1.1rem;font-weight:700;margin-bottom:10px}@media(max-width:768px){.SessionErrorModal .session-error-title{font-size:1rem}}.SessionErrorModal .session-error-body{color:#666;font-size:.9rem;line-height:1.5;margin-bottom:24px}@media(max-width:768px){.SessionErrorModal .session-error-body{font-size:.85rem;margin-bottom:20px}}.SessionErrorModal .session-error-actions{display:flex;justify-content:center}.SessionErrorModal .session-error-actions .session-error-btn{background-color:#667eea;border:none;border-radius:999px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;min-width:120px;padding:11px 0;transition:opacity .15s}.SessionErrorModal .session-error-actions .session-error-btn:hover{opacity:.82}@media(max-width:768px){.SessionErrorModal .session-error-actions .session-error-btn{font-size:.9rem;padding:10px 0}}.AboutPyGgbModal .modal-body{padding-bottom:0}.AboutPyGgbModal section.logo-and-text{display:grid;grid-template-columns:auto 1fr}.AboutPyGgbModal section.logo-and-text p{margin-bottom:0}.AboutPyGgbModal section.logo-and-text p:first-child{margin-right:1rem;margin-top:.5rem}.AboutPyGgbModal section.logo-and-text img{width:60px}.AboutPyGgbModal section.logo-and-text{margin-bottom:1rem}.ShareAsUrlModalBody{align-items:center;display:flex;flex-direction:row;height:5rem}.ShareAsUrlModalBody,.ShareAsUrlModalBody.computing{justify-content:center}.ShareAsUrlModalBody.ready .content{width:100%}.ShareAsUrlModalBody.ready .content .text-and-button{display:flex;flex-direction:row;justify-content:space-between;margin-top:1rem}.ShareAsUrlModalBody.ready .content .text-and-button input{font-size:.85rem}.ShareAsUrlModalBody.ready .content .text-and-button button{font-size:.9rem;padding:.25rem;width:3rem}.chat-layout{background:linear-gradient(135deg,#667eea,#764ba2);display:flex;flex-direction:column;inset:0;overflow:hidden;position:fixed}.chat-layout .chat-main-content{grid-gap:0;display:grid;flex:1 1;gap:0;grid-template-columns:auto 1fr 1fr;grid-template-rows:1fr;height:100%;min-height:0;overflow:hidden;position:relative;transition:grid-template-columns .28s ease}.chat-layout .chat-main-content.graph-collapsed{grid-template-columns:auto 1fr 0}.chat-layout .chat-main-content.graph-collapsed .chat-graph-panel{min-width:0;overflow:hidden;pointer-events:none}.chat-layout .chat-sessions-panel{background:#f8f8f8;box-shadow:2px 0 4px #0000000d;display:flex;flex-direction:column;min-height:0;overflow:visible;position:relative;transition:all .3s ease;width:280px;z-index:200}.chat-layout .chat-sessions-panel.collapsed{background:#f8f8f8!important;width:60px}.chat-layout .chat-sessions-panel.collapsed .session-list{background:#f8f8f8!important}.chat-layout .chat-sessions-panel.collapsed .session-list-header{justify-content:center;padding:15px 5px}.chat-layout .chat-sessions-panel.collapsed .session-list-header .sidebar-logo{display:none}.chat-layout .chat-center-panel{background:#fff;border-radius:0;box-shadow:0 0 20px #00000026;display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;position:relative}.chat-layout .graph-reveal-tab{align-items:center;-webkit-appearance:none;appearance:none;background:#667eea;border:none;border-radius:8px 0 0 8px;box-shadow:-2px 0 8px #0000002e;color:#fff;cursor:pointer;display:flex;font-size:.75rem;font-weight:600;gap:5px;padding:10px 8px 10px 10px;position:absolute;right:0;top:50%;transform:translateY(-50%);transition:background .15s,padding .15s;writing-mode:horizontal-tb;z-index:50}.chat-layout .graph-reveal-tab:hover{background:#5567d5;padding-right:12px}.chat-layout .chat-graph-panel{background:#fff;border-radius:0;box-shadow:0 0 20px #00000026;display:flex!important;flex-direction:column!important;height:100%!important;min-height:0!important;overflow:hidden;position:relative}.chat-layout .chat-graph-panel .graph-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e0e0e0;display:flex;flex-shrink:0!important;justify-content:space-between;padding:10px 15px}.chat-layout .chat-graph-panel .graph-header h5{font-size:1.05rem;font-weight:600;margin:0}.chat-layout .chat-graph-panel .graph-header .graph-header-buttons{align-items:center;display:flex;gap:6px}.chat-layout .chat-graph-panel .graph-header .export-dropdown{position:relative}.chat-layout .chat-graph-panel .graph-header .export-dropdown .export-dropdown-btn{align-items:center;background:#667eea;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-size:.86rem;font-weight:600;gap:4px;padding:5px 13px;transition:background .18s;white-space:nowrap}.chat-layout .chat-graph-panel .graph-header .export-dropdown .export-dropdown-btn.open,.chat-layout .chat-graph-panel .graph-header .export-dropdown .export-dropdown-btn:hover{background:#5567d5}.chat-layout .chat-graph-panel .graph-header .export-dropdown .export-dropdown-btn:active{background:#45b}.chat-layout .chat-graph-panel .graph-header .export-dropdown .export-dropdown-menu{background:#fff;border:1px solid #d0d4e8;border-radius:8px;box-shadow:0 4px 16px #00000021;min-width:170px;overflow:hidden;position:absolute;right:0;top:calc(100% + 5px);z-index:200}.chat-layout .chat-graph-panel .graph-header .export-dropdown .export-dropdown-menu button{background:#0000;border:none;color:#333;cursor:pointer;display:block;font-size:.86rem;font-weight:500;padding:9px 16px;text-align:left;transition:background .15s;white-space:nowrap;width:100%}.chat-layout .chat-graph-panel .graph-header .export-dropdown .export-dropdown-menu button:hover{background:#f0f2ff;color:#667eea}.chat-layout .chat-graph-panel .graph-header .export-dropdown .export-dropdown-menu button:not(:last-child){border-bottom:1px solid #f0f0f5}.chat-layout .chat-graph-panel .graph-header .graph-toggle-btn{align-items:center;-webkit-appearance:none;appearance:none;background:#0000;border:1px solid #d0d4e8;border-radius:6px;color:#667eea;cursor:pointer;display:flex;flex-shrink:0;height:26px;justify-content:center;padding:0;transition:background .15s,border-color .15s;width:26px}.chat-layout .chat-graph-panel .graph-header .graph-toggle-btn:hover{background:#eef0ff;border-color:#667eea}.chat-layout .chat-graph-panel .graph-header .grid-icon-btn{align-items:center;-webkit-appearance:none;appearance:none;background:#0000;border:none;border-radius:20px;color:#9ca3af;cursor:pointer;display:flex;flex-shrink:0;gap:6px;height:28px;justify-content:center;padding:0 4px;transition:color .18s,background .18s}.chat-layout .chat-graph-panel .graph-header .grid-icon-btn:hover{background:#f3f4f6;color:#6b7280}.chat-layout .chat-graph-panel .graph-header .grid-icon-btn .grid-icon{align-items:center;display:flex;font-size:1.5rem;line-height:1;margin-top:-2px}.chat-layout .chat-graph-panel .graph-header .grid-icon-btn .grid-switch-track{align-items:center;background:#e5e7eb;border-radius:18px;box-shadow:inset 0 1px 2px #0000000d;display:flex;height:18px;position:relative;transition:background .3s ease;width:32px}.chat-layout .chat-graph-panel .graph-header .grid-icon-btn .grid-switch-thumb{align-items:center;background:#fff;border-radius:50%;box-shadow:0 1px 3px #0003;display:flex;height:14px;justify-content:center;left:2px;position:absolute;transition:transform .3s cubic-bezier(.4,0,.2,1);width:14px}.chat-layout .chat-graph-panel .graph-header .grid-icon-btn.on{color:#2563eb}.chat-layout .chat-graph-panel .graph-header .grid-icon-btn.on:hover{background:#eff6ff;color:#1d4ed8}.chat-layout .chat-graph-panel .graph-header .grid-icon-btn.on .grid-switch-track{background:#22c55e}.chat-layout .chat-graph-panel .graph-header .grid-icon-btn.on .grid-switch-thumb{transform:translateX(14px)}.chat-layout .chat-graph-panel .graph-content{display:flex!important;flex:1 1!important;flex-direction:column!important;height:auto!important;min-height:0!important;overflow:hidden!important;position:relative!important}.chat-layout .chat-graph-panel .code-panel-overlay{background:#fff;border-top:2px solid #667eea;bottom:0;display:flex;flex-direction:column;left:0;position:absolute;right:0;top:50px;z-index:5}.chat-layout .chat-graph-panel .code-panel-overlay .code-panel-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:8px 12px}.chat-layout .chat-graph-panel .code-panel-overlay .code-panel-header h6{font-size:.9rem;margin:0}.chat-layout .chat-graph-panel .code-panel-overlay .code-panel-content{flex:2 1;overflow:auto}.chat-layout .chat-graph-panel .code-panel-overlay .stdout-panel-content{background:#fafafa;border-top:1px solid #e0e0e0;flex:1 1;overflow:auto;padding:10px}.chat-layout .chat-graph-panel .code-panel-overlay .stdout-panel-content h6{font-size:.85rem;margin-bottom:8px}.session-list{background:#f8f8f8;display:flex;flex-direction:column;height:100%;min-height:0;overflow:visible}.session-list .session-list-header{align-items:center;background:#f8f8f8;border-bottom:1px solid #e8e8e8;color:#333;display:flex;flex-shrink:0;justify-content:space-between;min-height:60px;padding:15px}.session-list .session-list-header .sidebar-logo{align-items:center;display:flex;gap:10px}.session-list .session-list-header .sidebar-logo .logo-icon{height:32px;width:32px}.session-list .session-list-header .sidebar-logo .logo-icon-small{height:40px;width:40px}.session-list .session-list-header .sidebar-logo .logo-text{color:#333;font-size:1.2rem;font-weight:700}.session-list .session-list-header .collapse-toggle-btn{background:#0000!important;border:none!important;box-shadow:none!important;color:#555!important;padding:8px!important;text-decoration:none!important;transition:all .2s}.session-list .session-list-header .collapse-toggle-btn:hover{background:#0000000d!important;color:#333!important}.session-list .session-list-header .collapse-toggle-btn:focus{box-shadow:none!important;outline:none!important}.session-list .session-list-header .collapse-toggle-btn svg{display:block}.session-list .sidebar-navigation{background:#f8f8f8;border-bottom:1px solid #e8e8e8;display:flex;flex-direction:column;gap:8px;padding:15px 10px}.session-list .sidebar-navigation .nav-btn{align-items:center;background:#0000!important;border:none!important;border-radius:8px;color:#333!important;display:flex;font-size:.95rem;gap:12px;padding:10px 15px;text-align:left;text-decoration:none!important;transition:all .2s;width:100%}.session-list .sidebar-navigation .nav-btn:hover{background:#0000000d!important;border-color:#0000;color:#333!important;text-decoration:none!important}.session-list .sidebar-navigation .nav-btn.new-chat-btn{font-weight:500}.session-list .sidebar-navigation .nav-btn .nav-icon{font-size:1.1rem;text-align:center;width:20px}.session-list .sidebar-navigation .nav-btn .nav-text{flex:1 1}.session-list .sidebar-navigation .session-count-badge{color:#999;font-size:.85rem;margin-top:8px;padding:8px 15px}.session-list .session-list-scroll-container{background:#f8f8f8;flex:1 1;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.session-list .session-list-scroll-container::-webkit-scrollbar{display:none}.session-list .session-list-scroll-container .mobile-new-chat-container{display:none}.session-list .session-list-items{background:#0000;border-radius:0}.session-list .session-list-items .session-group-title{align-items:center;color:#7b7b7b;display:flex;font-size:.75rem;font-weight:600;justify-content:space-between;letter-spacing:.03em;padding:14px 16px 6px;text-transform:uppercase}.session-list .session-list-items .session-group-title .group-title-label{flex:1 1}.session-list .session-list-items .session-group-title .group-delete-btn{align-items:center;background:none;border:none;border-radius:4px;color:#7b7b7b;cursor:pointer;display:flex;justify-content:center;line-height:1;opacity:.75;padding:2px 4px;transition:opacity .15s ease,color .15s ease,background .15s ease}.session-list .session-list-items .session-group-title .group-delete-btn:hover{background:#e53e3e1a;color:#e53e3e;opacity:1}.session-list .session-list-items .session-list-item{align-items:center;background:#0000;border:none;border-left:3px solid #0000;border-radius:6px;color:#333;cursor:pointer;display:flex;justify-content:space-between;margin:2px 8px;padding:6px 10px!important;position:relative;transition:all .2s ease}.session-list .session-list-items .session-list-item:hover{background:#0000000d;border-left-color:#0000}.session-list .session-list-items .session-list-item.active{background:#667eea1a;border-left-color:#667eea;color:#667eea;font-weight:500}.session-list .session-list-items .session-list-item .session-info{align-items:center;display:flex;flex:1 1;gap:4px;min-width:0}.session-list .session-list-items .session-list-item .session-info .session-title{color:#333;flex:1 1;font-size:.875rem;margin-bottom:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-list .session-list-items .session-list-item .session-info .session-stub-icon{align-items:center;display:flex;flex-shrink:0;line-height:1;opacity:.45}.session-list .session-list-items .session-list-item .session-info .session-meta{align-items:center;display:flex;gap:8px}.session-list .session-list-items .session-list-item .session-info .session-meta small{color:#888!important}.session-list .session-list-items .session-list-item .session-actions{align-items:center;display:flex;justify-content:flex-end;min-width:28px;position:relative}.session-list .session-list-items .session-list-item .session-actions .session-menu-trigger{-webkit-tap-highlight-color:rgba(0,0,0,0);align-items:center;-webkit-appearance:none;appearance:none;background:#0000;border:none;border-radius:6px;color:#777;cursor:pointer;display:inline-flex;font-size:1rem;height:24px;justify-content:center;line-height:1;padding:0;width:24px}.session-list .session-list-items .session-list-item .session-actions .session-menu-trigger:hover{background:#0000000f;color:#444}.session-list .session-list-items .session-list-item .session-actions .session-action-menu{animation:sessionActionMenuIn .12s ease;background:#fff;border:1px solid #e2e2e2;border-radius:10px;box-shadow:0 6px 18px #0000001f;display:flex;flex-direction:column;gap:2px;min-width:136px;padding:4px;position:absolute;right:0;top:calc(100% + 6px);z-index:30}.session-list .session-list-items .session-list-item .session-actions .session-action-menu.mobile{right:8px}.session-list .session-list-items .session-list-item .session-actions .session-action-menu .session-action-item{-webkit-appearance:none;appearance:none;background:#0000;border:none;border-radius:8px;color:#333;cursor:pointer;font-size:.82rem;font-weight:500;padding:8px 10px;text-align:left}.session-list .session-list-items .session-list-item .session-actions .session-action-menu .session-action-item:hover{background:#f3f3f3}.session-list .session-list-items .session-list-item .session-actions .session-action-menu .session-action-item.danger{color:#d83a3a}.session-list .session-list-items .session-list-item .session-actions .session-action-menu .session-action-item.danger:hover{background:#fff1f1}@keyframes sessionActionMenuIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.session-list .session-list-empty{color:#999;padding:30px 20px;text-align:center}.session-list .session-list-empty p{margin-bottom:8px}.session-list .sidebar-collapsed-icons{align-items:center;background:#f8f8f8;display:flex;flex-direction:column;gap:15px;height:100%;padding:10px 0}.session-list .sidebar-collapsed-icons .sidebar-icon-btn{align-items:center!important;background:#0000!important;border:none!important;border-radius:8px;box-shadow:none!important;color:#555!important;display:flex!important;font-size:1.5rem;height:45px;justify-content:center!important;padding:8px!important;text-decoration:none!important;transition:all .2s;width:45px}.session-list .sidebar-collapsed-icons .sidebar-icon-btn:hover{background:#0000000d!important;color:#333!important;transform:scale(1.1)}.session-list .sidebar-collapsed-icons .sidebar-icon-btn:focus{box-shadow:none!important;outline:none!important}.session-list .sidebar-collapsed-icons .collapsed-user-section{margin-top:auto;padding-bottom:8px}.session-list .sidebar-collapsed-icons .collapsed-user-section .collapsed-user-avatar{border-radius:50%;cursor:pointer;height:32px;overflow:hidden;transition:transform .2s;width:32px}.session-list .sidebar-collapsed-icons .collapsed-user-section .collapsed-user-avatar img{height:100%;object-fit:cover;width:100%}.session-list .sidebar-collapsed-icons .collapsed-user-section .collapsed-user-avatar:hover{transform:scale(1.05)}.session-list .user-profile-section{background:#fafafa;border-top:1px solid #e0e0e0;margin-top:auto;padding:6px 12px}.session-list .user-profile-section .user-profile-trigger{align-items:center;background:#0000;border:none;border-radius:8px;cursor:pointer;display:flex;gap:10px;padding:6px 8px;text-align:left;transition:background .2s;width:100%}.session-list .user-profile-section .user-profile-trigger:hover{background:#0000000d}.session-list .user-profile-section .user-profile-trigger .user-avatar{border-radius:50%;flex-shrink:0;height:30px;object-fit:cover;width:30px}.session-list .user-profile-section .user-profile-trigger .user-name{color:#333;flex:1 1;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-list .user-profile-section .user-profile-trigger .profile-chevron{color:#aaa;flex-shrink:0}.user-dropdown-menu{border:1px solid #e8e8e8!important;border-radius:10px!important;box-shadow:0 4px 20px #00000026!important;margin-bottom:8px!important;min-width:220px!important;padding:6px 0!important;z-index:9999!important}.user-dropdown-menu .user-email-item{background:#0000!important;color:#999!important;cursor:default!important;font-size:13px;padding:10px 16px}.user-dropdown-menu .user-email-item .email-icon{margin-right:8px}.user-dropdown-menu .dropdown-menu-item{color:#333;font-size:14px;padding:10px 16px}.user-dropdown-menu .dropdown-menu-item .menu-icon{margin-right:10px}.user-dropdown-menu .dropdown-menu-item:hover{background:#f5f5f5}.user-dropdown-menu .logout-menu-item{color:#dc3545;font-size:14px;padding:10px 16px}.user-dropdown-menu .logout-menu-item .menu-icon{margin-right:10px}.user-dropdown-menu .logout-menu-item:hover{background:#fff5f5;color:#dc3545}.chat-interface{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.chat-interface .chat-messages{background:#fff;flex:1 1;min-height:0;overflow-x:hidden;overflow-y:auto;padding:20px}.chat-interface .chat-messages .chat-welcome{padding:40px 20px;text-align:center}.chat-interface .chat-messages .chat-welcome h3{color:#667eea;font-weight:700;margin-bottom:15px}.chat-interface .chat-messages .chat-welcome .chat-examples{background:#fff;border-radius:12px;box-shadow:0 1px 3px #00000014;margin-top:30px;padding:20px;text-align:left}.chat-interface .chat-messages .chat-welcome .chat-examples h5{color:#667eea;font-size:1rem;margin-bottom:12px}.chat-interface .chat-messages .chat-welcome .chat-examples ul{list-style:none;padding:0}.chat-interface .chat-messages .chat-welcome .chat-examples ul li{background:#f8f9fa;border-left:3px solid #667eea;border-radius:6px;cursor:pointer;margin:6px 0;padding:8px 12px;transition:all .2s}.chat-interface .chat-messages .chat-welcome .chat-examples ul li:hover{background:#e8eaff;transform:translateX(5px)}.chat-interface .chat-messages .chat-welcome .chat-welcome-hint{align-items:center;background:linear-gradient(135deg,#f5f3ff,#eef2ff);border:1px solid #ddd6fe;border-radius:10px;color:#667eea;display:flex;font-size:1rem;gap:10px;justify-content:flex-start;line-height:1.5;margin-top:16px;padding:14px 20px;text-align:left}.chat-interface .chat-messages .chat-welcome .chat-welcome-hint .chat-welcome-hint-icon{flex-shrink:0;font-size:1.5rem}.chat-interface .chat-messages .chat-welcome .chat-welcome-hint strong{color:#667eea}.chat-interface .chat-message{display:flex;flex-direction:column;margin-bottom:20px}.chat-interface .chat-message.chat-message-user{align-items:flex-end}.chat-interface .chat-message.chat-message-user .chat-message-content-text{background:#efefef;border-radius:18px 18px 4px 18px;box-shadow:0 1px 2px #00000014;color:#1a1a1a;max-width:70%;padding:10px 14px}.chat-interface .chat-message.chat-message-user .chat-message-content-image{align-self:flex-end;background:#0000;box-shadow:none;display:inline-flex;max-width:70%;padding:0}.chat-interface .chat-message.chat-message-user .chat-message-content-image img{border-radius:12px;box-shadow:0 2px 6px #00000026;display:block;max-height:200px;max-width:200px}.chat-interface .chat-message.chat-message-assistant{align-items:flex-start}.chat-interface .chat-message.chat-message-assistant .chat-message-content{background:#fff;border-radius:18px 18px 18px 4px;box-shadow:0 1px 3px #00000014;color:#333;max-width:80%;padding:12px 16px}.chat-interface .chat-message .chat-message-text{word-wrap:break-word;line-height:1.5;white-space:pre-wrap}.chat-interface .chat-message .answer-box{background:#fff;border-radius:8px;line-height:1.6;margin-bottom:12px;padding:16px}.chat-interface .chat-message .answer-box p{margin:.25em 0}.chat-interface .chat-message .answer-box p:first-child{margin-top:0}.chat-interface .chat-message .answer-box p:last-child{margin-bottom:0}.chat-interface .chat-message .answer-box ol,.chat-interface .chat-message .answer-box ul{margin:.25em 0;padding-left:1.5em}.chat-interface .chat-message .answer-box code{background:#00000014;border-radius:3px;font-family:Consolas,Monaco,Courier New,monospace;font-size:.9em;padding:2px 6px}.chat-interface .chat-message .answer-box strong{font-weight:600}.chat-interface .chat-message .additional-content{color:#555;line-height:1.5;margin-top:8px}.chat-interface .chat-message .additional-content p{margin:.25em 0}.chat-interface .chat-message .additional-content ol,.chat-interface .chat-message .additional-content ul{margin:.25em 0;padding-left:1.5em}.chat-interface .chat-message .additional-content code{background:#00000014;border-radius:3px;font-family:Consolas,Monaco,Courier New,monospace;font-size:.9em;padding:2px 6px}.chat-interface .chat-message .chat-message-text p{margin:.25em 0}.chat-interface .chat-message .chat-message-text p:first-child{margin-top:0}.chat-interface .chat-message .chat-message-text p:last-child{margin-bottom:0}.chat-interface .chat-message .chat-message-text ol,.chat-interface .chat-message .chat-message-text ul{margin:.25em 0;padding-left:1.5em}.chat-interface .chat-message .chat-message-text code{background:#00000014;border-radius:3px;font-family:Consolas,Monaco,Courier New,monospace;font-size:.9em;padding:2px 6px}.chat-interface .chat-message .chat-message-text pre{background:#2d2d2d;border-radius:8px;color:#f8f8f2;margin:.5em 0;overflow-x:auto;padding:12px}.chat-interface .chat-message .chat-message-text pre code{background:#0000;color:inherit;padding:0}.chat-interface .chat-message .chat-message-text strong{font-weight:600}.chat-interface .chat-message .chat-message-text em{font-style:italic}.chat-interface .chat-message .chat-message-text blockquote{border-left:3px solid #ddd;color:#666;margin:.5em 0;padding-left:1em}.chat-interface .chat-message .chat-message-image{margin-bottom:10px}.chat-interface .chat-message .chat-message-image img{border-radius:8px;box-shadow:0 2px 6px #0003;max-height:200px;max-width:100%}.chat-interface .chat-message .chat-message-code{background:#0000000d;border-radius:8px;margin-top:10px;overflow:hidden}.chat-interface .chat-message .chat-message-code .code-header{background:#0000000d;border-bottom:1px solid #0000001a;padding:6px 10px}.chat-interface .chat-message .chat-message-code .code-header small{font-weight:600;opacity:.7}.chat-interface .chat-message .chat-message-code pre{background:#2d2d2d;color:#f8f8f2;font-size:.85rem;margin:0;max-height:300px;overflow:auto;padding:12px}.chat-interface .chat-message .chat-message-code pre code{font-family:Consolas,Monaco,Courier New,monospace}.chat-interface .chat-message .chat-message-timestamp{color:#999;font-size:.75rem;margin-top:4px;padding:0 8px}.msg-actions{align-items:center;display:flex;flex-direction:row;gap:18px;margin-top:6px;padding:0 2px}.msg-actions .msg-action-btn{-webkit-tap-highlight-color:rgba(0,0,0,0);align-items:center;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-color:#0000!important;background:#0000!important;border:0 solid #0000!important;border-radius:0;box-shadow:none!important;color:#888;cursor:pointer;display:flex;font-size:.72rem;gap:4px;justify-content:center;line-height:1;outline:none!important;padding:6px 2px;transition:color .15s}.msg-actions .msg-action-btn:hover{background:#0000!important;color:#555}.msg-actions .msg-action-btn.active{color:#667eea}.msg-actions .msg-action-btn.disabled{color:#bcbcbc;cursor:not-allowed;opacity:.85}.msg-actions .msg-action-btn.disabled:hover{color:#bcbcbc}.msg-actions .msg-action-btn .msg-action-label{font-size:.68rem;font-weight:500;letter-spacing:.01em}.feedback-nudge{color:#aaa;font-size:.71rem;font-style:italic;margin-top:4px;padding:0 2px;-webkit-user-select:none;user-select:none}.chat-practice-label-bubble{align-self:flex-end;background:#667eea;border-radius:18px 18px 4px 18px;box-shadow:0 1px 3px #667eea59;color:#fff;font-size:.92rem;font-weight:400;line-height:1.4;max-width:70%;padding:10px 16px;word-break:break-word}.chat-practice-badge{align-items:center;color:#667eea;display:flex;font-size:.75rem;font-weight:600;gap:8px;justify-content:flex-end;margin-bottom:4px}.chat-practice-badge .chat-practice-regen-btn{-webkit-appearance:none;appearance:none;background:#0000;border:1px solid #c7cef5;border-radius:20px;color:#667eea;cursor:pointer;font-size:.7rem;padding:2px 8px;transition:background .15s,border-color .15s}.chat-practice-badge .chat-practice-regen-btn:hover{background:#eef0ff;border-color:#667eea}.chat-practice-question-text{background:#f4f6ff;border-left:3px solid #667eea;border-radius:6px;display:flex;flex-direction:column;font-size:.92rem;gap:8px;line-height:1.55;margin-bottom:12px;padding:10px 14px}.chat-practice-question-text p:last-child{margin-bottom:0}.practice-card-toolbar{display:flex;flex-shrink:0;gap:6px;justify-content:flex-end}.practice-card-toolbar .practice-toolbar-btn{-webkit-appearance:none;appearance:none;background:#eef0ff;border:1px solid #c7cef5;border-radius:20px;color:#667eea;cursor:pointer;font-size:.7rem;font-weight:600;line-height:1.6;padding:2px 9px;transition:background .15s,border-color .15s,color .15s;white-space:nowrap}.practice-card-toolbar .practice-toolbar-btn:hover{background:#dde2ff;border-color:#667eea}.practice-card-toolbar .practice-toolbar-btn.copied{background:#667eea;border-color:#667eea;color:#fff}.solution-toggle-btn{align-items:center;-webkit-appearance:none;appearance:none;background:#f0f2ff;border:1.5px solid #c7cef5;border-radius:20px;color:#667eea;cursor:pointer;display:inline-flex;font-size:.82rem;font-weight:500;gap:6px;margin-bottom:12px;padding:5px 14px;transition:background .15s,border-color .15s,color .15s}.solution-toggle-btn:hover{background:#e4e8ff;border-color:#667eea}.solution-toggle-btn.visible{background:#667eea;border-color:#667eea;color:#fff}.solution-toggle-btn.visible:hover{background:#5567d5}.chat-message.chat-message-user .chat-message-content-text{background:#e8e8e8!important;border-radius:18px 18px 4px 18px!important;box-shadow:0 1px 2px #00000014!important;color:#1a1a1a!important;display:inline-block;max-width:70%;padding:10px 14px!important}.chat-message.chat-message-user .chat-message-content-image{align-self:flex-end;background:#0000!important;box-shadow:none!important;display:inline-flex;max-width:70%;padding:0!important}.chat-message.chat-message-user .chat-message-content-image img{border-radius:12px;box-shadow:0 2px 6px #00000026;display:block;max-height:200px;max-width:200px}@media(min-width:769px){.chat-message.chat-message-user .chat-message-content-image img{max-height:340px!important;max-width:380px!important}}.chat-input-area{background:#fff;border-top:none;flex-shrink:0;padding:20px}.chat-input-area .chat-image-preview{display:inline-block;margin-bottom:10px;position:relative}.chat-input-area .chat-image-preview img{border-radius:8px;box-shadow:0 2px 6px #0003;max-height:150px;max-width:150px}.chat-input-area .chat-image-preview .remove-image-btn{align-items:center;border-radius:50%;display:flex;height:24px;justify-content:center;padding:0;position:absolute;right:-8px;top:-8px;width:24px}.chat-input-area .chat-input-group{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:24px;box-shadow:none;display:flex;gap:10px;padding:10px 16px;transition:border-color .2s}.chat-input-area .chat-input-group:focus-within{border-color:#d0d0d0;box-shadow:none}.chat-input-area .chat-input-group .input-icon-btn{align-items:center!important;align-self:center!important;background:#f0f0f0!important;border:none!important;border-radius:50%!important;display:flex!important;flex-shrink:0;font-size:1.45rem;height:42px;justify-content:center!important;line-height:1!important;margin:0!important;min-height:42px;min-width:42px;padding:0 0 1px!important;transition:background-color .2s,transform .1s;width:42px}.chat-input-area .chat-input-group .input-icon-btn:after,.chat-input-area .chat-input-group .input-icon-btn:before{display:none!important}.chat-input-area .chat-input-group .input-icon-btn:hover:not(:disabled){background:#e4e4e4!important;transform:scale(1.05)}.chat-input-area .chat-input-group .input-icon-btn:active:not(:disabled){background:#ddd!important;transform:scale(.98)}.chat-input-area .chat-input-group .input-icon-btn:focus{box-shadow:0 0 0 2px #667eea33!important}.chat-input-area .chat-input{border:none!important;box-shadow:none!important;color:#333;flex:1 1;height:auto;line-height:1.5;max-height:120px;min-height:38px;overflow-y:hidden;padding:8px 4px;resize:none;transition:height .1s ease}.chat-input-area .chat-input::placeholder{color:#999}.chat-input-area .chat-input:focus{border:none;box-shadow:none}.chat-input-area .mode-picker-wrap{align-self:center;flex-shrink:0;position:relative}.chat-input-area .mode-picker-wrap .mode-dropdown-toggle{align-items:center;background:#ebebeb;border:1px solid #d8d8d8;border-radius:999px;color:#333;cursor:pointer;display:inline-flex;font-size:.83rem;font-weight:500;gap:4px;height:42px;justify-content:center;padding:0 14px;transition:background .15s;white-space:nowrap}.chat-input-area .mode-picker-wrap .mode-dropdown-toggle:hover:not(:disabled){background:#dedede}.chat-input-area .mode-picker-wrap .mode-dropdown-toggle:disabled{cursor:default;opacity:.5}.chat-input-area .mode-picker-wrap .mode-dropdown-toggle .mode-caret{font-size:.55rem;opacity:.6;transform:rotate(0deg)}.chat-input-area .mode-picker-wrap .mode-hint-popover{animation:hintPopIn .3s cubic-bezier(.34,1.56,.64,1);background:#3b82f6;border-radius:12px;bottom:calc(100% + 14px);box-shadow:0 8px 24px #3b82f659;color:#fff;font-size:.88rem;font-weight:500;line-height:1.4;max-width:250px;padding:10px 16px;position:absolute;right:-8px;text-align:center;width:-webkit-max-content;width:max-content;z-index:1000}.chat-input-area .mode-picker-wrap .mode-hint-popover:after{background:#3b82f6;border-bottom-right-radius:2px;bottom:-5px;content:"";height:12px;position:absolute;right:30px;transform:rotate(45deg);width:12px}.chat-input-area .mode-picker-wrap .mode-sheet-backdrop{background:#0000;inset:0;position:fixed;z-index:999}.chat-input-area .mode-picker-wrap .mode-sheet{animation:modeSheetIn .15s ease;background:#fff;border:1px solid #e0e0e0;border-radius:14px;bottom:calc(100% + 8px);box-shadow:0 6px 24px #00000021;min-width:190px;padding:6px;position:absolute;right:0;z-index:1000}.chat-input-area .mode-picker-wrap .mode-sheet .mode-sheet-title{color:#aaa;font-size:.7rem;font-weight:600;letter-spacing:.06em;padding:4px 10px 6px;text-transform:uppercase}.chat-input-area .mode-picker-wrap .mode-sheet .mode-sheet-item{-webkit-tap-highlight-color:rgba(0,0,0,0);align-items:center;background:none;border:none;border-radius:10px;cursor:pointer;display:flex;gap:10px;padding:9px 10px;text-align:left;transition:background .12s;width:100%}.chat-input-area .mode-picker-wrap .mode-sheet .mode-sheet-item:hover{background:#f5f5f5}.chat-input-area .mode-picker-wrap .mode-sheet .mode-sheet-item.active .mode-sheet-label{color:#667eea;font-weight:600}.chat-input-area .mode-picker-wrap .mode-sheet .mode-sheet-item .mode-sheet-badge{flex-shrink:0;font-size:1.1rem}.chat-input-area .mode-picker-wrap .mode-sheet .mode-sheet-item .mode-sheet-text{display:flex;flex:1 1;flex-direction:column;min-width:0}.chat-input-area .mode-picker-wrap .mode-sheet .mode-sheet-item .mode-sheet-label{color:#222;font-size:.88rem;font-weight:500;line-height:1.2}.chat-input-area .mode-picker-wrap .mode-sheet .mode-sheet-item .mode-sheet-desc{color:#999;font-size:.74rem;margin-top:1px}.chat-input-area .mode-picker-wrap .mode-sheet .mode-sheet-item .mode-sheet-check{color:#667eea;flex-shrink:0;font-size:.9rem;font-weight:700}@keyframes modeSheetIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes hintPopIn{0%{opacity:0;transform:translateY(10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.chat-input-area .image-picker-wrap{align-self:center;flex-shrink:0;position:relative}.chat-input-area .image-picker-wrap .image-sheet-backdrop{background:#0000;inset:0;position:fixed;z-index:999}.chat-input-area .image-picker-wrap .image-action-sheet{animation:modeSheetIn .15s ease;background:#fff;border:1px solid #e0e0e0;border-radius:14px;bottom:calc(100% + 8px);box-shadow:0 6px 24px #00000021;left:0;min-width:180px;padding:6px;position:absolute;z-index:1000}.chat-input-area .image-picker-wrap .image-action-sheet .image-action-sheet-title{color:#aaa;font-size:.7rem;font-weight:600;letter-spacing:.06em;padding:4px 10px 6px;text-transform:uppercase}.chat-input-area .image-picker-wrap .image-action-sheet .image-action-item{-webkit-tap-highlight-color:rgba(0,0,0,0);align-items:center;background:none;border:none;border-radius:10px;cursor:pointer;display:flex;gap:10px;padding:9px 12px;text-align:left;transition:background .12s;width:100%}.chat-input-area .image-picker-wrap .image-action-sheet .image-action-item:hover{background:#f5f5f5}.chat-input-area .image-picker-wrap .image-action-sheet .image-action-item .image-action-icon{flex-shrink:0;font-size:1.15rem}.chat-input-area .image-picker-wrap .image-action-sheet .image-action-item .image-action-label{color:#222;font-size:.88rem;font-weight:500}.chat-input-area .input-send-btn{align-items:center!important;align-self:center!important;background:#f0f0f0!important;border:none!important;border-radius:50%!important;color:#666;display:flex!important;flex-shrink:0;font-size:1.3rem;height:44px;justify-content:center!important;line-height:1!important;margin:0!important;min-height:44px;min-width:44px;padding:0!important;text-align:center!important;text-decoration:none!important;transition:background-color .2s,transform .1s;vertical-align:middle!important;width:44px}.chat-input-area .input-send-btn:hover:not(:disabled){background:#667eea!important;color:#fff!important;text-decoration:none!important;transform:scale(1.08)}.chat-input-area .input-send-btn:active:not(:disabled){background:#5568d3!important;transform:scale(.98)}.chat-input-area .input-send-btn:disabled{background:#e8e8e8!important;color:#bbb!important}.chat-input-area .input-send-btn:focus{box-shadow:0 0 0 2px #667eea40!important}.chat-input-area .input-send-btn .form-check{margin-bottom:6px}.chat-message-pro .pro-mode-message .pro-mode-badge{margin-bottom:8px}.chat-message-pro .pro-mode-message .pro-mode-badge .badge{font-size:.85rem;padding:4px 10px}.chat-message-pro .pro-mode-message .pro-mode-plan{background:#f8f9fa;border-left:4px solid #667eea;border-radius:8px;margin-bottom:10px;padding:12px}.chat-message-pro .pro-mode-message .pro-mode-plan p:last-child{margin-bottom:0}.chat-message-pro .pro-mode-message .pro-mode-steps-count{background:#eef1ff;border-radius:6px;color:#667eea;display:inline-block;font-size:.85rem;font-weight:600;padding:6px 12px}.step-by-step-modal .modal-dialog{margin:0;max-width:100%}.step-by-step-modal .step-modal-header{background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:none;color:#fff;padding:20px 30px}.step-by-step-modal .step-modal-header .step-modal-title{align-items:center;display:flex;justify-content:space-between;width:100%}.step-by-step-modal .step-modal-header .step-modal-title h4{font-weight:600;margin:0}.step-by-step-modal .step-modal-header .step-modal-title .step-indicator{background:#fff3;border-radius:20px;font-size:1.1rem;font-weight:500;padding:8px 16px}.step-by-step-modal .step-modal-header .step-navigation-arrows{display:flex;gap:10px}.step-by-step-modal .step-modal-header .step-navigation-arrows .nav-arrow-btn{background:#0000;border:2px solid #fff;color:#fff;font-weight:500;padding:8px 16px}.step-by-step-modal .step-modal-header .step-navigation-arrows .nav-arrow-btn:hover:not(:disabled){background:#fff;color:#667eea}.step-by-step-modal .step-modal-header .step-navigation-arrows .nav-arrow-btn:disabled{cursor:not-allowed;opacity:.4}.step-by-step-modal .step-modal-header .btn-close{filter:brightness(0) invert(1);opacity:.8}.step-by-step-modal .step-modal-header .btn-close:hover{opacity:1}.step-by-step-modal .step-modal-body{height:calc(100vh - 80px);overflow:hidden;padding:0}.step-by-step-modal .step-modal-content{display:flex;height:100%}.step-by-step-modal .step-timeline-sidebar{background:#f8f9fa;border-right:2px solid #e0e0e0;overflow-y:auto;padding:20px;width:30%}.step-by-step-modal .step-timeline-sidebar .plan-section{margin-bottom:24px}.step-by-step-modal .step-timeline-sidebar .plan-section h5{align-items:center;color:#333;display:flex;font-weight:600;gap:8px;margin-bottom:12px}.step-by-step-modal .step-timeline-sidebar .plan-section .plan-text{background:#fff;border:1px solid #e0e0e0;border-radius:8px;font-size:.9rem;line-height:1.6;padding:15px}.step-by-step-modal .step-timeline-sidebar .plan-section .plan-text p:last-child{margin-bottom:0}.step-by-step-modal .step-timeline-sidebar .steps-list{display:flex;flex-direction:column;gap:12px}.step-by-step-modal .step-timeline-sidebar .step-card{background:#fff;border:2px solid #e0e0e0;border-radius:10px;cursor:pointer;transition:all .2s}.step-by-step-modal .step-timeline-sidebar .step-card:hover{border-color:#667eea;box-shadow:0 4px 12px #667eea26;transform:translateY(-2px)}.step-by-step-modal .step-timeline-sidebar .step-card.active{background:linear-gradient(135deg,#eef1ff,#f8f9ff);border-color:#667eea;box-shadow:0 4px 16px #667eea4d}.step-by-step-modal .step-timeline-sidebar .step-card.active .step-number-badge{background:#667eea;color:#fff}.step-by-step-modal .step-timeline-sidebar .step-card.error{background:#fff5f5;border-color:#dc3545}.step-by-step-modal .step-timeline-sidebar .step-card.error .step-number-badge{background:#dc3545;color:#fff}.step-by-step-modal .step-timeline-sidebar .step-card .card-body{padding:15px}.step-by-step-modal .step-timeline-sidebar .step-card .step-card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.step-by-step-modal .step-timeline-sidebar .step-card .step-number-badge{background:#e0e0e0;border-radius:20px;color:#333;font-size:.85rem;font-weight:600;padding:4px 12px}.step-by-step-modal .step-timeline-sidebar .step-card .error-icon{font-size:1.2rem}.step-by-step-modal .step-timeline-sidebar .step-card .step-title{color:#333;font-size:1rem;font-weight:600;margin-bottom:6px}.step-by-step-modal .step-timeline-sidebar .step-card .step-caption{color:#666;font-size:.85rem;line-height:1.4}.step-by-step-modal .step-canvas-area{background:#fff;display:flex;flex-direction:column;overflow:hidden;padding:0;width:70%}.step-by-step-modal .step-canvas-area .current-step-info{display:flex;flex-direction:column;height:100%}.step-by-step-modal .step-canvas-area .current-step-info h2{color:#333;font-weight:600;margin:20px 30px 12px}.step-by-step-modal .step-canvas-area .current-step-info .step-description{color:#666;font-size:1.1rem;line-height:1.6;margin:0 30px 20px}.step-by-step-modal .step-canvas-area .current-step-info .ggb-canvas-container{background:#f8f9fa;display:flex;flex:1 1;flex-direction:column;overflow:hidden;position:relative}.GeoGebraPane{display:block!important;height:auto!important;inset:0!important;overflow:hidden!important;position:absolute!important;width:auto!important}.GeoGebraPane>div{height:100%!important;overflow:hidden!important;width:100%!important}.GeoGebraPane .applet_scaler{height:100%!important;transform:none!important;transform-origin:initial!important;width:100%!important}.GeoGebraPane .applet_scaler>div{border:none!important;height:100%!important;width:100%!important}.GeoGebraPane .zoomPanelBtn:not(.zoomPanelHomeIn){display:none!important}@media(max-width:768px){.mobile-layout{background:#e8e8e8;display:flex;flex-direction:column;inset:0;overflow:hidden;position:fixed}.mobile-overlay-top{align-items:flex-start;display:flex;justify-content:space-between;left:0;padding:8px;pointer-events:none;position:absolute;right:0;top:0;z-index:10}.mobile-overlay-top .mobile-overlay-left,.mobile-overlay-top .mobile-overlay-right{display:flex;gap:6px;pointer-events:all}.mobile-overlay-btn{-webkit-tap-highlight-color:rgba(0,0,0,0);align-items:center;background:#ffffffe0;border:none;border-radius:8px;box-shadow:0 1px 4px #0000002e;color:#444;cursor:pointer;display:flex;height:32px;justify-content:center;transition:background .15s,transform .1s;width:32px}.mobile-overlay-btn svg{height:16px;width:16px}.mobile-overlay-btn:active{background:#fff;transform:scale(.93)}.mobile-overlay-btn.active{background:#667eeaeb;color:#fff}.history-hint-popover{animation:hintPopIn .3s cubic-bezier(.34,1.56,.64,1);background:#3b82f6;border-radius:12px;box-shadow:0 8px 24px #3b82f659;color:#fff;font-size:.88rem;font-weight:500;left:0;line-height:1.4;max-width:250px;padding:10px 16px;pointer-events:auto;position:absolute;text-align:left;top:calc(100% + 14px);width:-webkit-max-content;width:max-content;z-index:1000}.history-hint-popover:before{background:#3b82f6;border-top-left-radius:2px;content:"";height:12px;left:10px;position:absolute;top:-5px;transform:rotate(45deg);width:12px}.mobile-content{flex:1 1;min-height:0;overflow:hidden;position:relative}.mobile-graph-area{bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:0;transition:bottom .25s cubic-bezier(.4,0,.2,1)}.mobile-graph-area.dragging{transition:none}.mobile-graph-area .GeoGebraPane{height:auto!important;inset:0!important;margin:0!important;padding:0!important;position:absolute!important;width:auto!important;z-index:0}.mobile-graph-area .ggbtoolbarpanel,.mobile-graph-area .headerRight,.mobile-graph-area .settingsButton,.mobile-graph-area .toolbar,.mobile-graph-area .toolbarPanel,.mobile-graph-area .undoRedoPanel,.mobile-graph-area .zoomPanel,.mobile-graph-area .zoomPanelMobile,.mobile-graph-area [class*=headerBar],.mobile-graph-area [class*=settingsButton],.mobile-graph-area [class*=toolbar],.mobile-graph-area [class*=undoRedo],.mobile-graph-area [class*=zoomPanel]{display:none!important}.mobile-home-btn{-webkit-tap-highlight-color:rgba(0,0,0,0);align-items:center;background:#fff;border:none;border-radius:50%;bottom:12px;box-shadow:0 2px 6px #0000002e;color:#555;cursor:pointer;display:flex;height:36px;justify-content:center;opacity:.85;position:absolute;right:12px;transition:transform .15s,box-shadow .15s,opacity .2s;width:36px;z-index:5}.mobile-home-btn:active{box-shadow:0 1px 4px #0000001f;transform:scale(.9)}.mobile-fullscreen-overlay{display:flex;inset:0;position:absolute;z-index:40}.mobile-fullscreen-overlay .mobile-history-backdrop{background:#0006;inset:0;position:absolute;z-index:1}.mobile-fullscreen-overlay .mobile-history-sidebar{background:#fff;box-shadow:2px 0 12px #0003;display:flex;flex-direction:column;height:100%;max-width:360px;overflow:hidden;position:relative;width:80%;z-index:2}.mobile-fullscreen-overlay .session-list{display:flex;flex-direction:column;height:100%;width:100%}.mobile-fullscreen-overlay .session-list .session-list-header,.mobile-fullscreen-overlay .session-list .sidebar-navigation{display:none}.mobile-fullscreen-overlay .session-list .session-list-scroll-container{padding-top:10px;position:relative}.mobile-fullscreen-overlay .session-list .session-list-scroll-container .mobile-new-chat-container{-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;display:block;padding:0 10px 8px}.mobile-fullscreen-overlay .session-list .session-list-scroll-container .mobile-new-chat-container:focus-visible{outline:2px solid #667eea;outline-offset:2px}.mobile-fullscreen-overlay .session-list .session-list-scroll-container .mobile-new-chat-container .mobile-new-chat-btn{align-items:center;background:#0000!important;border:none!important;border-radius:8px;color:#333!important;display:flex;font-size:.95rem;font-weight:500;gap:12px;padding:10px 15px;text-align:left;text-decoration:none!important;transition:background .2s;width:100%}.mobile-fullscreen-overlay .session-list .session-list-scroll-container .mobile-new-chat-container .mobile-new-chat-btn .nav-icon{font-size:1.1rem;text-align:center;width:20px}.mobile-fullscreen-overlay .session-list .session-list-scroll-container .mobile-new-chat-container .mobile-new-chat-btn .nav-text{flex:1 1}.mobile-fullscreen-overlay .session-list .session-list-scroll-container .mobile-new-chat-container:active .mobile-new-chat-btn{background:#0000000d!important}.mobile-fullscreen-overlay .session-list .user-profile-section{border-bottom:1px solid #e0e0e0;border-top:none;margin-top:0;order:-1;padding:6px 12px}.mobile-settings-panel{background:#f2f2f7;display:flex;flex-direction:column;inset:0;overflow-y:auto;position:absolute;z-index:10}.mobile-settings-panel .msp-header{align-items:center;background:#f2f2f7;display:flex;gap:8px;padding:14px 16px 10px}.mobile-settings-panel .msp-header .msp-back-btn{-webkit-tap-highlight-color:rgba(0,0,0,0);align-items:center;background:#0000;border:none;color:#333;cursor:pointer;display:flex;height:32px;justify-content:center;padding:0;width:32px}.mobile-settings-panel .msp-header .msp-back-btn:active{opacity:.6}.mobile-settings-panel .msp-header .msp-title{color:#111;font-size:1rem;font-weight:700}.mobile-settings-panel .msp-user-card{align-items:center;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000000f;display:flex;gap:12px;margin:6px 16px 10px;padding:14px 16px}.mobile-settings-panel .msp-user-card .msp-avatar{border-radius:50%;flex-shrink:0;height:44px;object-fit:cover;width:44px}.mobile-settings-panel .msp-user-card .msp-user-name{color:#111;flex:1 1;font-size:1rem;font-weight:600}.mobile-settings-panel .msp-section-label{color:#888;font-size:.72rem;font-weight:600;letter-spacing:.05em;padding:6px 16px 4px;text-transform:uppercase}.mobile-settings-panel .msp-section-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000000f;margin:0 16px 10px;overflow:hidden}.mobile-settings-panel .msp-section-card .msp-row{-webkit-tap-highlight-color:rgba(0,0,0,0);align-items:center;cursor:pointer;display:flex;gap:12px;padding:14px 16px}.mobile-settings-panel .msp-section-card .msp-row:active{background:#f5f5f5}.mobile-settings-panel .msp-section-card .msp-row .msp-row-icon{flex-shrink:0;font-size:1.1rem}.mobile-settings-panel .msp-section-card .msp-row .msp-row-label{color:#111;flex:1 1;font-size:.95rem;font-weight:500}.mobile-settings-panel .msp-section-card .msp-row .msp-row-value{color:#888;font-size:.9rem;margin-right:4px}.mobile-settings-panel .msp-section-card .msp-row-divider{background:#f0f0f0;height:1px;margin:0 16px}.mobile-settings-panel .msp-section-card.msp-logout-card .msp-logout-row .msp-row-label{color:#e53935}.mobile-settings-panel .msp-flex-spacer{flex:1 1;min-height:24px}.mobile-bottom-sheet{background:#fff;border-radius:16px 16px 0 0;bottom:0;box-shadow:0 -6px 24px #0000002e,0 -1px 4px #00000014;display:flex;flex-direction:column;left:0;overflow:hidden;position:absolute;right:0;transition:height .25s cubic-bezier(.4,0,.2,1);z-index:10}.mobile-bottom-sheet.dragging{transition:none}.sheet-drag-handle{-webkit-tap-highlight-color:rgba(0,0,0,0);align-items:center;background:#fff;border-top:none;cursor:grab;display:flex;flex-shrink:0;height:30px;justify-content:center;touch-action:none}.sheet-drag-handle .drag-pill{background:silver;border-radius:999px;height:5px;width:36px}.sheet-drag-handle:active{cursor:grabbing}.sheet-drag-handle:active .drag-pill{background:#999}.sheet-chips-wrap{display:flex;flex-direction:column;flex-shrink:0}.sheet-chips{-webkit-overflow-scrolling:touch;align-items:center;display:flex;flex-direction:row;flex-shrink:0;gap:8px;overflow-x:auto;overflow-y:hidden;padding:6px 14px 8px;scroll-snap-type:x mandatory;scrollbar-width:none}.sheet-chips::-webkit-scrollbar{display:none}.sheet-chip{-webkit-tap-highlight-color:rgba(0,0,0,0);background:#fff;border:1.5px solid #d0d0d0;border-radius:999px;color:#333;cursor:pointer;flex-shrink:0;font-size:.8rem;padding:5px 13px;scroll-snap-align:start;transition:background .15s,border-color .15s;white-space:nowrap}.sheet-chip:active{background:#eef1ff;border-color:#667eea;color:#667eea}.sheet-generate-hint{align-items:center;background:linear-gradient(135deg,#f5f3ff,#eef2ff);border:1px solid #ddd6fe;border-radius:10px;color:#667eea;display:flex;font-size:.82rem;gap:8px;line-height:1.4;margin:2px 14px 6px;padding:10px 14px}.sheet-generate-hint .sheet-generate-hint-icon{flex-shrink:0;font-size:1.2rem}.sheet-generate-hint strong{color:#667eea}.sheet-messages{-webkit-overflow-scrolling:touch;background:#fff;flex:1 1;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:8px 12px}.sheet-messages::-webkit-scrollbar{width:4px}.sheet-messages::-webkit-scrollbar-thumb{background:#ccc;border-radius:2px}.sheet-messages .chat-messages{padding:0!important}.sheet-messages .chat-welcome{display:none!important}.sheet-messages .chat-message{display:flex;flex-direction:column;font-size:.9rem;margin-bottom:8px!important}.sheet-messages .chat-message .chat-message-content{max-width:90%!important}.sheet-messages .chat-message .chat-message-image img{max-height:120px;max-width:100%;object-fit:contain}.sheet-messages .chat-message.chat-message-user{align-items:flex-end}.sheet-messages .chat-message.chat-message-user .chat-message-content-text{font-size:.88rem;padding:6px 10px!important}.sheet-messages .chat-message.chat-message-assistant{align-items:flex-start}.chat-message-timestamp{display:none!important}.sheet-input{background:#0000;flex-grow:0;flex-shrink:0;margin-top:auto;padding:0 8px 10px}.sheet-input .chat-input-area{background:#0000!important;margin:0;padding:0}.sheet-input .chat-input-group{background:#f5f5f5;border:1px solid #e0e0e0;border-radius:24px;gap:6px!important;padding:1px 8px!important}.sheet-input .chat-input-group .chat-input{background:#0000!important;border:none!important;box-shadow:none!important;font-size:.9rem;max-height:96px;min-height:20px;overflow-y:hidden;padding:2px 4px!important}.sheet-input .chat-input-group .input-icon-btn{font-size:.9rem;height:24px!important;min-height:24px!important;min-width:24px!important;width:24px!important}.sheet-input .chat-input-group .input-send-btn{font-size:.9rem;height:26px!important;min-height:26px!important;min-width:26px!important;width:26px!important}.sheet-input .chat-input-group .mode-dropdown-toggle{font-size:.72rem!important;height:26px!important;padding:0 8px!important}.sheet-input .chat-input-group .mode-picker-wrap .mode-sheet-backdrop{background:#00000059!important}.sheet-input .chat-input-group .mode-picker-wrap .mode-sheet{animation:modeSheetUpIn .22s cubic-bezier(.4,0,.2,1)!important;border-radius:20px 20px 0 0!important;bottom:0!important;box-shadow:0 -4px 32px #0000002e!important;left:0!important;min-width:0!important;min-width:auto!important;padding:12px 12px 28px!important;position:fixed!important;right:0!important;width:100%!important}.sheet-input .chat-input-group .mode-picker-wrap .mode-sheet .mode-sheet-title{font-size:.75rem;padding:4px 10px 12px;text-align:center}.sheet-input .chat-input-group .mode-picker-wrap .mode-sheet .mode-sheet-item{border-radius:12px;padding:14px 16px}.sheet-input .chat-input-group .mode-picker-wrap .mode-sheet .mode-sheet-item .mode-sheet-badge{font-size:1.3rem}.sheet-input .chat-input-group .mode-picker-wrap .mode-sheet .mode-sheet-item .mode-sheet-label{font-size:1rem}.sheet-input .chat-input-group .mode-picker-wrap .mode-sheet .mode-sheet-item .mode-sheet-desc{font-size:.8rem}.sheet-input .chat-input-group .image-picker-wrap .image-sheet-backdrop{background:#00000059!important}.sheet-input .chat-input-group .image-picker-wrap .image-action-sheet{animation:modeSheetUpIn .22s cubic-bezier(.4,0,.2,1)!important;border-radius:20px 20px 0 0!important;bottom:0!important;box-shadow:0 -4px 32px #0000002e!important;left:0!important;min-width:0!important;min-width:auto!important;padding:12px 12px 36px!important;position:fixed!important;right:0!important;width:100%!important}.sheet-input .chat-input-group .image-picker-wrap .image-action-sheet .image-action-sheet-title{font-size:.75rem;padding:4px 10px 12px;text-align:center}.sheet-input .chat-input-group .image-picker-wrap .image-action-sheet .image-action-item{border-radius:14px;gap:14px;padding:16px 20px}.sheet-input .chat-input-group .image-picker-wrap .image-action-sheet .image-action-item .image-action-icon{font-size:1.4rem}.sheet-input .chat-input-group .image-picker-wrap .image-action-sheet .image-action-item .image-action-label{font-size:1.05rem}.sheet-input .chat-image-preview{max-height:50px}.sheet-input .chat-image-preview img{max-height:36px;object-fit:cover}.mobile-bottom-sheet,.sheet-input{touch-action:pan-y}@keyframes modeSheetUpIn{0%{transform:translateY(100%)}to{transform:translateY(0)}}}.auth-container{box-sizing:border-box;min-height:100vh;min-height:100dvh;overflow:hidden;padding:1rem;position:relative}.auth-container .auth-soft-bg{background:#f6f7fb;display:grid;filter:saturate(1);grid-template-columns:240px 1fr minmax(320px,40%);inset:0;opacity:.62;pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none;z-index:0}.auth-container .auth-soft-mobile-logo{display:none}.auth-container .auth-soft-sidebar{background:#fff;border-right:1px solid #e6e8f0;display:flex;flex-direction:column;gap:10px;padding:18px 12px}.auth-container .auth-soft-logo-row{align-items:center;display:flex;gap:8px;height:42px;margin-bottom:12px}.auth-container .auth-soft-logo{height:28px;object-fit:contain;width:28px}.auth-container .auth-soft-brand{color:#111827;font-size:14px;font-weight:700}.auth-container .auth-soft-nav-item{background:#eef2ff;border:1px solid #e1e7ff;border-radius:10px;height:38px}.auth-container .auth-soft-nav-item.short{width:72%}.auth-container .auth-soft-center{background:#f9fbff;border-right:1px solid #eceef5;display:flex;flex-direction:column;gap:14px;padding:18px}.auth-container .auth-soft-header{background:#fff;border:1px solid #eceef5;border-radius:10px;height:42px}.auth-container .auth-soft-chat-card{background:#fff;border:1px solid #e9ecf5;border-radius:14px;height:96px}.auth-container .auth-soft-chat-card.large{height:140px}.auth-container .auth-soft-input{background:#fff;border:1px solid #e9ecf5;border-radius:14px;height:56px;margin-top:auto}.auth-container .auth-soft-graph{background:#fff;display:flex;flex-direction:column;gap:14px;padding:18px}.auth-container .auth-soft-graph-head{background:#f9fbff;border:1px solid #eceef5;border-radius:10px;height:42px}.auth-container .auth-soft-graph-canvas{background:linear-gradient(90deg,#edf1fb 1px,#0000 0) 0 0/24px 24px,linear-gradient(180deg,#edf1fb 1px,#0000 0) 0 0/24px 24px,#fff;border:1px solid #e8ebf5;border-radius:14px;flex:1 1;min-height:320px}.auth-card{border:1px solid #e7e7e7;box-shadow:0 8px 28px #131b3214;max-width:400px;padding:2rem;position:relative;width:100%;z-index:2}.auth-card .auth-logo{margin-bottom:1.5rem;width:80px}.auth-card .auth-title{font-size:1.75rem;margin-bottom:.5rem}.auth-card .auth-subtitle{color:#666;font-size:1rem;margin-bottom:2rem}.auth-card .auth-tos{color:#999;font-size:.85rem;margin-top:1.5rem}.auth-card .auth-magic-form{display:flex;flex-direction:column;gap:8px;text-align:left}.auth-card .auth-magic-input{border:1px solid #ddd;border-radius:8px;font-size:15px;outline:none;padding:11px 14px;transition:border-color .15s;width:100%}.auth-card .auth-magic-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea26}.auth-card .auth-magic-input:disabled{background:#f8f8f8}.auth-card .auth-magic-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:15px;font-weight:600;padding:11px;transition:opacity .15s;width:100%}.auth-card .auth-magic-btn:disabled{cursor:not-allowed;opacity:.55}.auth-card .auth-magic-btn:not(:disabled):hover{opacity:.9}.auth-card .auth-magic-hint{color:#aaa;font-size:.78rem;margin:0;text-align:center}.auth-card .auth-magic-error{color:#dc3545;font-size:.82rem;margin:0}.auth-card .auth-magic-sent{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;padding:20px 16px;text-align:center}.auth-card .auth-magic-sent .auth-magic-sent-icon{font-size:2rem;margin-bottom:8px}.auth-card .auth-magic-sent .auth-magic-sent-title{color:#166534;font-size:1.05rem;font-weight:700;margin-bottom:6px}.auth-card .auth-magic-sent .auth-magic-sent-body{color:#374151;font-size:.88rem;margin-bottom:12px}.auth-card .auth-magic-resend{background:none;border:none;color:#667eea;cursor:pointer;font-size:.85rem;padding:0;text-decoration:underline}@media(max-width:480px){.auth-container{align-items:flex-start!important;padding:max(2rem,env(safe-area-inset-top,2rem)) .75rem .75rem}.auth-container .auth-soft-bg{filter:saturate(1);grid-template-areas:"graph" "chat";grid-template-columns:1fr;grid-template-rows:60% 40%;opacity:.7}.auth-container .auth-soft-sidebar{display:none}.auth-container .auth-soft-mobile-logo{align-items:center;background:#ffffffeb;border:1px solid #e8ebf5;border-radius:10px;display:flex;height:36px;justify-content:center;left:14px;position:absolute;top:14px;width:36px;z-index:2}.auth-container .auth-soft-mobile-logo .auth-soft-mobile-logo-img{height:24px;object-fit:contain;width:24px}.auth-container .auth-soft-graph{display:flex;gap:8px;grid-area:graph;padding:12px}.auth-container .auth-soft-graph .auth-soft-graph-head{border-radius:8px;height:32px}.auth-container .auth-soft-graph .auth-soft-graph-canvas{min-height:0}.auth-container .auth-soft-center{background:#f7f9ff;border-right:none;gap:8px;grid-area:chat;overflow:hidden;padding:10px 12px 0;position:relative}.auth-container .auth-soft-center .auth-soft-header{display:none}.auth-container .auth-soft-center .auth-soft-chat-card{border-radius:10px;height:56px}.auth-container .auth-soft-center .auth-soft-chat-card.large{height:64px}.auth-container .auth-soft-center .auth-soft-input{border-radius:999px;height:52px;margin-top:6px;transform:translateY(52%)}.auth-card{padding:1.25rem 1rem}.auth-card .auth-logo{margin-bottom:1rem;width:56px}.auth-card .auth-title{font-size:1.35rem;margin-bottom:.35rem}.auth-card .auth-subtitle{font-size:.9rem;margin-bottom:1.25rem}.auth-card .auth-google-btn,.auth-card .auth-guest-btn{font-size:15px!important;padding:10px!important}.auth-card .auth-magic-btn{font-size:14px!important;padding:10px!important}.auth-card .auth-magic-input{font-size:14px!important;padding:9px 12px!important}.auth-card .auth-tos{font-size:.78rem;margin-top:1rem}}.generate-practice-modal .modal-title{font-size:1.1rem;font-weight:700}.generate-practice-modal .generate-source-tabs{border:2px solid #e0e0e0;border-radius:10px;display:flex;overflow:hidden}.generate-practice-modal .generate-source-tab{background:none;border:none;border-right:2px solid #e0e0e0;color:#555;cursor:pointer;flex:1 1;font-size:.87rem;font-weight:500;padding:8px 10px;transition:background .15s,color .15s;white-space:nowrap}.generate-practice-modal .generate-source-tab:last-child{border-right:none}.generate-practice-modal .generate-source-tab:hover:not(:disabled){background:#f7f8ff;color:#667eea}.generate-practice-modal .generate-source-tab.active{background:#eef0ff;color:#3d4fcc;font-weight:600}.generate-practice-modal .generate-source-tab:disabled{cursor:not-allowed;opacity:.45}.generate-practice-modal .generate-chip-group{display:flex;flex-wrap:wrap;gap:8px}.generate-practice-modal .generate-chip{border:2px solid #e0e0e0;border-radius:20px;cursor:pointer;font-size:.86rem;font-weight:500;padding:6px 14px;transition:border-color .15s,background .15s}.generate-practice-modal .generate-chip:hover{background:#f7f8ff;border-color:#667eea}.generate-practice-modal .generate-chip.active{background:#eef0ff;border-color:#667eea;color:#3d4fcc}.generate-practice-modal .generate-optional{color:#aaa;font-size:.8em;font-weight:400}.generate-practice-modal .generate-custom-instructions{field-sizing:content;background:#fafafa;border:2px solid #e0e0e0;border-radius:8px;color:#333;font-family:inherit;font-size:.88rem;line-height:1.5;min-height:60px;padding:10px 12px;resize:none;transition:border-color .15s;width:100%}.generate-practice-modal .generate-custom-instructions:focus{background:#fff;border-color:#667eea;outline:none}.generate-practice-modal .generate-custom-instructions::placeholder{color:#bbb}.generate-practice-modal .generate-advanced-toggle{align-items:center;background:none;border:1.5px dashed #d0d0d0;border-radius:8px;color:#888;cursor:pointer;display:flex;font-size:.83rem;font-weight:500;justify-content:space-between;margin-bottom:2px;padding:7px 10px;transition:border-color .15s,color .15s;width:100%}.generate-practice-modal .generate-advanced-toggle:hover{border-color:#667eea;color:#667eea}.generate-practice-modal .generate-advanced-toggle .generate-advanced-caret{font-size:.65em;margin-left:6px}.generate-practice-modal .generate-advanced-section{display:flex;flex-direction:column;gap:12px;padding:12px 0 0}.generate-practice-modal .topic-dropdown{position:relative}.generate-practice-modal .topic-dropdown-trigger{align-items:center;background:#fff;border:2px solid #e0e0e0;border-radius:8px;color:#333;cursor:pointer;display:flex;font-size:.9rem;justify-content:space-between;padding:8px 12px;text-align:left;transition:border-color .15s;width:100%}.generate-practice-modal .topic-dropdown-trigger.open,.generate-practice-modal .topic-dropdown-trigger:hover{border-color:#667eea}.generate-practice-modal .topic-dropdown-trigger.open{border-bottom-color:#0000;border-bottom-left-radius:0;border-bottom-right-radius:0}.generate-practice-modal .topic-dropdown-trigger .topic-dropdown-value{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.generate-practice-modal .topic-dropdown-trigger .topic-dropdown-caret{color:#888;flex-shrink:0;font-size:.7em;margin-left:8px}.generate-practice-modal .topic-dropdown-panel{background:#fff;border:2px solid #667eea;border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:none;box-shadow:0 4px 16px #0000001f;left:0;position:absolute;right:0;top:100%;z-index:1050}.generate-practice-modal .topic-search-wrap{align-items:center;border-bottom:1px solid #eee;display:flex;gap:6px;padding:8px 10px}.generate-practice-modal .topic-search-wrap .topic-search-icon{color:#aaa;flex-shrink:0;font-size:.85em}.generate-practice-modal .topic-search-wrap .topic-search-input{background:#0000;border:none;color:#333;flex:1 1;font-size:.88rem;outline:none}.generate-practice-modal .topic-search-wrap .topic-search-input::placeholder{color:#bbb}.generate-practice-modal .topic-search-wrap .topic-search-clear{background:none;border:none;color:#aaa;cursor:pointer;font-size:.75rem;line-height:1;padding:0 2px}.generate-practice-modal .topic-search-wrap .topic-search-clear:hover{color:#555}.generate-practice-modal .topic-dropdown-list{max-height:220px;overflow-y:auto;padding:4px 0}.generate-practice-modal .topic-dropdown-group{padding-bottom:4px}.generate-practice-modal .topic-dropdown-group-label{color:#999;font-size:.73rem;font-weight:700;letter-spacing:.04em;padding:6px 12px 3px;pointer-events:none;text-transform:uppercase}.generate-practice-modal .topic-dropdown-item{align-items:center;background:none;border:none;color:#333;cursor:pointer;display:flex;font-size:.875rem;gap:6px;padding:6px 14px 6px 26px;text-align:left;transition:background .1s;width:100%}.generate-practice-modal .topic-dropdown-item:hover{background:#f3f4ff}.generate-practice-modal .topic-dropdown-item.selected{background:#eef0ff;color:#3d4fcc;font-weight:600;padding-left:10px}.generate-practice-modal .topic-dropdown-item .topic-check{color:#667eea;flex-shrink:0;font-size:.85em}.generate-practice-modal .topic-dropdown-empty{color:#aaa;font-size:.85rem;padding:14px;text-align:center}.generate-practice-modal .generate-upload-area{align-items:center;border:2px dashed #ccc;border-radius:10px;color:#888;cursor:pointer;display:flex;flex-direction:column;gap:8px;padding:24px;text-align:center;transition:border-color .15s}.generate-practice-modal .generate-upload-area:hover{border-color:#667eea;color:#667eea}@media(max-width:768px){.generate-practice-modal .generate-upload-desktop{display:none}}.generate-practice-modal .generate-upload-mobile{display:none;flex-direction:column;gap:12px}@media(max-width:768px){.generate-practice-modal .generate-upload-mobile{display:flex}}.generate-practice-modal .generate-upload-btn{-webkit-tap-highlight-color:rgba(0,0,0,0);align-items:center;border:none;border-radius:12px;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:10px;justify-content:center;padding:16px;transition:opacity .15s,transform .1s;width:100%}.generate-practice-modal .generate-upload-btn:active{opacity:.85;transform:scale(.97)}.generate-practice-modal .generate-upload-btn.primary{background:#667eea;color:#fff}.generate-practice-modal .generate-upload-btn.secondary{background:#f0f2ff;border:1.5px solid #c7cef5;color:#667eea}.generate-practice-modal .generate-upload-preview-wrap{align-items:center;display:flex;flex-direction:column;gap:8px}.generate-practice-modal .generate-upload-clear{-webkit-appearance:none;appearance:none;background:none;border:none;color:#e74c3c;cursor:pointer;font-size:.82rem;padding:2px 4px}.generate-practice-modal .generate-upload-clear:hover{text-decoration:underline}.generate-practice-modal .generate-upload-preview{border-radius:8px;max-height:180px;max-width:100%;object-fit:contain}.generate-question-btn{font-size:1.15em;opacity:.75;padding:4px 8px;transition:opacity .15s}.generate-question-btn:hover:not(:disabled){opacity:1}
/*# sourceMappingURL=main.2d047962.css.map*/