@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--bg-primary:#fff;--bg-secondary:#f1f5f9;--bg-glass:#fffc;--bg-glass-hover:#fffffff2;--accent-primary:#3b82f6;--accent-secondary:#8b5cf6;--accent-gradient:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));--text-primary:#0f172a;--text-secondary:#475569;--border-color:#0000001a;--border-radius:16px;--shadow-sm:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--shadow-md:0 10px 15px -3px #0003, 0 4px 6px -2px #0000001a;--shadow-glass:0 8px 32px 0 #0000005e;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}button,input,textarea,select{font-family:inherit}body{font-family:var(--font-family);background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;margin:0;overflow-x:hidden}#root{width:100vw;height:100vh;margin:0;padding:0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-secondary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulseGradient{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.glass-panel{background:var(--bg-glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:var(--border-radius);box-shadow:var(--shadow-glass)}.app-container{background-color:var(--bg-primary);width:100vw;height:100vh;display:flex;overflow:hidden}.sidebar{border-right:1px solid var(--border-color);background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:10;flex-direction:column;width:280px;padding:1.5rem;display:flex}.brand{flex-shrink:0;align-items:center;gap:12px;margin-bottom:2rem;animation:.5s ease-out fadeIn;display:flex}.brand-icon{justify-content:center;align-items:center;height:48px;display:flex}.brand h1{background:var(--accent-gradient);-webkit-text-fill-color:transparent;background-size:200% 200%;-webkit-background-clip:text;font-size:1.25rem;font-weight:700;animation:4s infinite pulseGradient}.discipline-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);flex-shrink:0;margin-bottom:.75rem;font-size:.75rem;font-weight:600}.discipline-list{flex-direction:column;flex:1;gap:.5rem;min-height:0;display:flex;overflow-y:auto}.discipline-btn{color:var(--text-secondary);font-family:var(--font-family);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:12px;align-items:center;gap:12px;padding:.75rem 1rem;font-size:.95rem;font-weight:500;transition:all .2s;display:flex}.discipline-btn:hover{color:var(--text-primary);background:#ffffff0d}.discipline-btn.active{background:var(--bg-glass);border-color:var(--border-color);color:var(--text-primary);box-shadow:var(--shadow-sm)}.discipline-btn.active .icon{color:var(--accent-primary)}.new-chat-btn{background:var(--accent-gradient);color:#fff;width:100%;font-family:var(--font-family);cursor:pointer;border:none;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;gap:10px;margin-bottom:.85rem;padding:.75rem 1rem;font-size:.95rem;font-weight:600;transition:all .2s;display:flex;box-shadow:0 4px 12px #3b82f640}.new-chat-btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px #3b82f659}.new-chat-btn:active{transform:translateY(0)}.sidebar-tabs{background:#0000000a;border-radius:10px;flex-shrink:0;gap:4px;margin-bottom:.75rem;padding:4px;display:flex}.sidebar-tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:7px;flex:1;justify-content:center;align-items:center;gap:6px;padding:6px 8px;font-size:.78rem;font-weight:600;transition:all .2s;display:flex}.sidebar-tab.active{color:var(--text-primary);background:#fff;box-shadow:0 1px 3px #00000014}.history-list{flex-direction:column;flex:1;gap:4px;min-height:0;padding-right:2px;display:flex;overflow-y:auto}.history-item{color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:8px;padding:.6rem .75rem;transition:all .2s;display:flex;position:relative}.history-item:hover{color:var(--text-primary);background:#ffffffa6}.history-item.active{background:var(--bg-glass);color:var(--text-primary);box-shadow:var(--shadow-sm);border-color:#3b82f659;font-weight:500}.history-item-icon{color:var(--text-secondary);flex-shrink:0;align-items:center;display:flex}.history-item.active .history-item-icon{color:var(--accent-primary)}.history-item-content{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.history-item-title{white-space:nowrap;text-overflow:ellipsis;color:inherit;font-size:.86rem;overflow:hidden}.history-item-meta{color:var(--text-secondary);align-items:center;gap:6px;font-size:.7rem;display:flex}.history-item-badge{text-transform:uppercase;color:var(--accent-primary);letter-spacing:.03em;background:#3b82f61a;border-radius:4px;padding:1px 5px;font-size:.62rem;font-weight:700}.history-item-actions{flex-shrink:0;align-items:center;gap:2px;display:none}.history-item:hover .history-item-actions,.history-item.active .history-item-actions{display:flex}.history-action-btn{width:24px;height:24px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .15s;display:inline-flex}.history-action-btn:hover{color:var(--text-primary);background:#00000014}.history-action-btn.delete:hover{color:#ef4444;background:#ef444426}.history-edit-form{align-items:center;gap:4px;width:100%;display:flex}.history-edit-input{border:1px solid var(--accent-primary);min-width:0;color:var(--text-primary);background:#fff;border-radius:6px;outline:none;flex:1;padding:3px 6px;font-size:.82rem}.history-empty{text-align:center;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:2.5rem 1rem;font-size:.85rem;display:flex}.history-empty p{color:var(--text-secondary);font-size:.82rem}.user-profile{border-top:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;margin-top:auto;padding-top:1rem;display:flex}.user-info{color:var(--text-primary);align-items:center;gap:8px;font-size:.95rem;font-weight:500;display:flex}.logout-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;padding:8px;transition:all .2s;display:flex}.logout-btn:hover{color:#ef4444;background:#ef44441a}.chat-area{z-index:10;flex-direction:column;flex:1;display:flex;position:relative}.chat-header{border-bottom:1px solid var(--border-color);background:var(--bg-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-shrink:0;justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.header-info h2{font-size:1.25rem;font-weight:600}.header-info p{color:var(--text-secondary);margin-top:.25rem;font-size:.85rem}.api-key-btn{background:var(--bg-glass);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:.5rem 1rem;font-size:.85rem;transition:all .2s;display:flex}.api-key-btn:hover{color:var(--text-primary);background:#ffffff1a}.api-key-btn.has-key{color:#10b981;border-color:#10b9814d}.model-badge{background:var(--bg-glass);border:1px solid var(--border-color);height:34px;color:var(--text-secondary);white-space:nowrap;box-sizing:border-box;border-radius:9px;flex-shrink:0;align-items:center;gap:8px;padding:0 .85rem;font-size:.8rem;font-weight:500;transition:all .3s;display:inline-flex}.model-badge:hover{border-color:var(--accent-primary);color:var(--text-primary)}.status-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.status-dot.online{background-color:#10b981;box-shadow:0 0 8px #10b98199}.status-dot.cloud{background-color:#6366f1;box-shadow:0 0 8px #6366f199}.messages-container{flex-direction:column;flex:1;gap:1.5rem;min-height:0;padding:2rem;display:flex;overflow-y:auto}.empty-state{text-align:center;max-width:500px;margin:auto;animation:.6s ease-out fadeIn}.empty-state-icon{background:var(--bg-glass);border:1px solid var(--border-color);width:80px;height:80px;color:var(--accent-primary);box-shadow:var(--shadow-md);border-radius:24px;justify-content:center;align-items:center;margin:0 auto 1.5rem;display:flex}.empty-state h3{margin-bottom:.75rem;font-size:1.5rem}.empty-state p{color:var(--text-secondary);margin-bottom:2rem;line-height:1.6}.message{gap:1rem;max-width:85%;animation:.3s ease-out fadeIn;display:flex}.message.user{flex-direction:row-reverse;align-self:flex-end;animation:.3s ease-out slideInRight}.message.ai{align-self:flex-start;animation:.3s ease-out slideInLeft}.avatar{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.user .avatar{background:var(--bg-secondary);border:1px solid var(--border-color)}.ai .avatar{background:var(--accent-gradient);color:#fff;box-shadow:0 4px 10px #3b82f64d}.message-content{border-radius:16px;padding:1rem 1.25rem;font-size:.95rem;line-height:1.6}.user .message-content{background:var(--accent-primary);color:#fff;border-top-right-radius:4px}.ai .message-content{background:var(--bg-glass);border:1px solid var(--border-color);color:var(--text-primary);border-top-left-radius:4px}.header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.mode-toggle-btn{cursor:pointer;border:1px solid var(--border-color);white-space:nowrap;box-sizing:border-box;border-radius:9px;flex-shrink:0;align-items:center;gap:6px;height:34px;padding:0 .85rem;font-size:.82rem;font-weight:600;transition:all .2s;display:inline-flex}.mode-toggle-btn.learn{color:#2563eb;background:#3b82f61f;border-color:#3b82f659}.mode-toggle-btn.learn:hover{background:#3b82f633;transform:translateY(-1px)}.mode-toggle-btn.work{color:#d97706;background:#f59e0b26;border-color:#f59e0b66}.mode-toggle-btn.work:hover{background:#f59e0b40;transform:translateY(-1px)}.lang-select{background:var(--bg-glass);border:1px solid var(--border-color);height:34px;color:var(--text-secondary);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-sizing:border-box;border-radius:9px;outline:none;flex-shrink:0;padding:0 .65rem;font-size:.82rem;font-weight:500;transition:border-color .2s}.lang-select:hover,.lang-select:focus{border-color:var(--accent-primary);color:var(--text-primary)}.header-new-btn{background:var(--accent-gradient);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:9px;flex-shrink:0;align-items:center;gap:6px;height:34px;padding:0 .85rem;font-size:.82rem;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 2px 8px #3b82f640}.header-new-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3b82f659}.header-new-btn:active{transform:translateY(0)}.header-tool-btn{background:var(--bg-glass);border:1px solid var(--border-color);height:34px;color:var(--text-secondary);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);white-space:nowrap;border-radius:9px;flex-shrink:0;align-items:center;gap:6px;padding:0 .85rem;font-size:.82rem;font-weight:500;transition:all .2s;display:inline-flex}.header-tool-btn:hover{border-color:var(--accent-primary);color:var(--text-primary)}.header-tool-btn.active{color:var(--accent-primary);border-color:var(--accent-primary);background:#3b82f61f;font-weight:600}.input-area{background:linear-gradient(to top, var(--bg-primary) 65%, transparent);flex-shrink:0;padding:1.25rem 2rem 1.5rem}.composer-box{background:var(--bg-glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:18px;flex-direction:column;max-width:900px;margin:0 auto;transition:border-color .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden;box-shadow:0 6px 24px #0000000f}.composer-box:focus-within{border-color:var(--accent-primary);box-shadow:0 10px 32px #3b82f633}.composer-box .chat-input{width:100%;color:var(--text-primary);font-family:var(--font-family);resize:none;min-height:52px;max-height:180px;box-shadow:none;box-sizing:border-box;background:0 0;border:none;outline:none;padding:.95rem 1.25rem .5rem;font-size:.98rem;line-height:1.5}.composer-toolbar{background:#ffffff73;border-top:1px solid #0000000f;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .85rem;display:flex}.toolbar-left{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex:1;align-items:center;gap:6px;min-width:0;display:flex;overflow-x:auto}.toolbar-left::-webkit-scrollbar{display:none}.toolbar-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.toolbar-action-btn{height:34px;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-color);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:0 .75rem;font-size:.82rem;font-weight:500;transition:all .18s;display:inline-flex}.toolbar-action-btn:hover:not(:disabled){color:var(--accent-primary);border-color:var(--accent-primary);background:#3b82f61a;transform:translateY(-1px)}.toolbar-action-btn:active:not(:disabled){transform:translateY(0)}.toolbar-action-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.upload-main-btn{color:var(--accent-primary);background:#3b82f61a;border-color:#3b82f64d;font-weight:600}.upload-main-btn:hover:not(:disabled){background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.toolbar-pill-btn{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-secondary)}.toolbar-pill-btn:hover:not(:disabled){border-color:var(--accent-primary);color:var(--accent-primary);background:#3b82f614}.voice-btn{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-secondary)}.voice-btn.listening{font-weight:600;animation:1.3s infinite mic-pulse;color:#fff!important;background:#ef4444!important;border-color:#ef4444!important}.toolbar-send-btn{background:var(--accent-gradient);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;gap:6px;height:34px;padding:0 1.15rem;font-size:.85rem;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 2px 8px #3b82f647}.toolbar-send-btn:hover:not(:disabled){background:var(--accent-secondary);transform:translateY(-1px);box-shadow:0 4px 14px #3b82f666}.toolbar-send-btn:active:not(:disabled){transform:translateY(0)}.toolbar-send-btn:disabled{background:var(--bg-secondary);color:var(--text-secondary);box-shadow:none;cursor:not-allowed;transform:none}.attachment-preview-bar{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);background:#ffffffbf;border-radius:12px;justify-content:space-between;align-items:center;margin:.65rem .85rem .25rem;padding:.45rem .75rem;animation:.2s ease-out fadeIn;display:flex}.attachment-preview-content{align-items:center;gap:.75rem;display:flex;overflow:hidden}.preview-thumb{object-fit:cover;border:1px solid var(--border-color);border-radius:8px;width:44px;height:44px}.preview-icon{background:var(--bg-secondary);width:44px;height:44px;color:var(--accent-primary);border:1px solid var(--border-color);border-radius:8px;justify-content:center;align-items:center;display:flex}.preview-icon.video{color:#a855f7;background:#a855f71f}.preview-icon.file{color:#3b82f6;background:#3b82f61f}.preview-meta{text-align:left;flex-direction:column;display:flex;overflow:hidden}.preview-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:320px;font-size:.88rem;font-weight:600;overflow:hidden}.preview-size{color:var(--text-secondary);font-size:.75rem;font-weight:500}.preview-remove-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:6px;transition:all .2s;display:flex}.preview-remove-btn:hover{color:#ef4444;background:#ef44441f}.voice-listening-banner{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--text-primary);background:#ef444414;border:1px solid #ef444440;border-radius:12px;align-items:center;gap:.75rem;margin:.65rem .85rem .25rem;padding:.5rem .85rem;font-size:.86rem;font-weight:500;animation:.25s ease-out fadeIn;display:flex;box-shadow:0 4px 12px #ef444414}.voice-pulse-dot{background:#ef4444;border-radius:50%;flex-shrink:0;width:10px;height:10px;animation:1.2s infinite mic-pulse}.voice-stop-btn{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:8px;margin-left:auto;padding:.3rem .75rem;font-size:.78rem;font-weight:600;transition:background .2s}.voice-stop-btn:hover{background:#dc2626}.attachment-display{margin-bottom:.65rem}.image-attachment-wrapper{border-radius:12px;flex-direction:column;gap:4px;max-width:380px;display:inline-flex;overflow:hidden}.chat-image-preview{object-fit:cover;cursor:pointer;border-radius:10px;max-width:100%;max-height:280px;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 12px #00000026}.chat-image-preview:hover{transform:scale(1.015);box-shadow:0 6px 16px #00000040}.video-attachment-wrapper{border-radius:12px;flex-direction:column;gap:4px;max-width:440px;display:flex;overflow:hidden}.chat-video-player{background:#000;border-radius:10px;outline:none;width:100%;max-height:280px;box-shadow:0 4px 12px #0003}.attachment-filename{opacity:.85;align-items:center;gap:4px;padding:2px 4px;font-size:.75rem;display:inline-flex}.file-attachment-card{color:inherit;background:#0000000d;border:1px solid #fff3;border-radius:12px;align-items:center;gap:.75rem;max-width:380px;padding:.75rem 1rem;text-decoration:none;transition:all .2s;display:inline-flex}.user .file-attachment-card{color:#fff;background:#ffffff2e;border-color:#ffffff59}.ai .file-attachment-card{background:var(--bg-secondary);border-color:var(--border-color);color:var(--text-primary)}.file-attachment-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.file-icon-badge{background:var(--accent-gradient);color:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.file-card-details{text-align:left;flex-direction:column;display:flex;overflow:hidden}.file-card-title{white-space:nowrap;text-overflow:ellipsis;max-width:240px;font-size:.88rem;font-weight:600;overflow:hidden}.file-card-subtitle{opacity:.75;font-size:.74rem}.file-download-btn-icon{opacity:.7;flex-shrink:0;margin-left:auto;transition:opacity .2s,transform .2s}.file-attachment-card:hover .file-download-btn-icon{opacity:1;transform:translateY(2px)}.message-actions{border-top:1px dashed var(--border-color);align-items:center;gap:8px;margin-top:.6rem;padding-top:.4rem;display:flex}.speak-action-btn{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:12px;align-items:center;gap:5px;padding:.25rem .65rem;font-size:.76rem;font-weight:500;transition:all .2s;display:inline-flex}.speak-action-btn:hover{background:var(--bg-secondary);color:var(--accent-primary);border-color:var(--accent-primary)}.speak-action-btn.speaking{color:#a855f7;background:#a855f71f;border-color:#a855f7;animation:1.5s infinite pulse-border}@keyframes pulse-border{0%{box-shadow:0 0 #a855f766}70%{box-shadow:0 0 0 6px #a855f700}to{box-shadow:0 0 #a855f700}}.chat-area.drag-over{border:2px dashed var(--accent-primary)!important;background:#3b82f608!important}.drag-overlay-banner{background:var(--accent-primary);color:#fff;z-index:50;pointer-events:none;border-radius:20px;padding:.5rem 1.25rem;font-size:.88rem;font-weight:600;animation:.2s ease-out fadeIn;position:absolute;top:1rem;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #3b82f666}.auth-container{justify-content:center;align-items:center}.auth-card{text-align:center;z-index:10;width:100%;max-width:440px;padding:3rem}.auth-card .brand-icon{height:80px;margin-bottom:1.5rem}.auth-card h2{margin-bottom:.5rem;font-size:1.75rem}.auth-card p{color:var(--text-secondary);margin-bottom:2rem}.auth-form{flex-direction:column;gap:1rem;margin-bottom:1.5rem;display:flex}.input-group{flex-direction:column;align-items:flex-start;gap:.25rem;display:flex}.input-label{color:var(--text-secondary);margin-left:.5rem;font-size:.85rem}.auth-form input{border:1px solid var(--border-color);color:var(--text-primary);background:#ffffff80;border-radius:12px;padding:1rem;font-size:1rem;transition:border-color .2s}.auth-form input:focus{border-color:var(--accent-primary);outline:none}.auth-switch{color:var(--text-secondary);margin-top:1.5rem;font-size:.95rem}.text-btn{color:var(--accent-primary);cursor:pointer;background:0 0;border:none;font-weight:600}.text-btn:hover{text-decoration:underline}.modal-overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:100;background:#000000b3;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-primary);border:1px solid var(--border-color);width:90%;max-width:480px;box-shadow:var(--shadow-glass);border-radius:24px;padding:2.5rem;position:relative}.modal-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;transition:color .2s;position:absolute;top:1.5rem;right:1.5rem}.modal-content h3{margin-bottom:.5rem;font-size:1.5rem}.modal-content p{color:var(--text-secondary);margin-bottom:1.5rem}.modal-content input{background:var(--bg-secondary);border:1px solid var(--border-color);width:100%;color:var(--text-primary);border-radius:12px;margin-bottom:1.5rem;padding:.75rem 1rem;font-family:monospace}.save-btn{background:var(--accent-gradient);color:#fff;cursor:pointer;border:none;border-radius:12px;width:100%;padding:1rem;font-size:1rem;font-weight:600;transition:opacity .2s}.save-btn:hover{opacity:.9}.modal-content.wide-dialog{border-radius:20px;max-width:780px;max-height:88vh;padding:2rem;overflow-y:auto}.modal-content.medium-dialog{border-radius:20px;max-width:580px;max-height:88vh;padding:2rem;overflow-y:auto}.calc-nav-tabs{scrollbar-width:none;background:#0000000a;border-radius:12px;gap:6px;margin-bottom:1.5rem;padding:4px;display:flex;overflow-x:auto}.calc-nav-tabs::-webkit-scrollbar{display:none}.calc-tab-pill{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;align-items:center;gap:6px;padding:.5rem .85rem;font-size:.82rem;font-weight:500;transition:all .2s;display:inline-flex}.calc-tab-pill:hover{color:var(--text-primary);background:#fff9}.calc-tab-pill.active{color:var(--accent-primary);background:#fff;font-weight:600;box-shadow:0 2px 6px #00000014}.calc-form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.calc-field{text-align:left;flex-direction:column;gap:6px;display:flex}.calc-field label{color:var(--text-secondary);font-size:.8rem;font-weight:600}.calc-field input,.calc-field select{border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);box-sizing:border-box;border-radius:9px;outline:none;width:100%;padding:.65rem .85rem;font-size:.9rem;transition:border-color .2s}.calc-field input:focus,.calc-field select:focus{border-color:var(--accent-primary);background:#fff}.calc-result-card{text-align:left;background:#3b82f60d;border:1px solid #3b82f640;border-radius:14px;margin-top:1.5rem;padding:1.25rem;animation:.25s ease-out fadeIn}.calc-result-header{border-bottom:1px solid #3b82f626;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.5rem;display:flex}.calc-result-header h4{color:var(--accent-primary);font-size:1.05rem;font-weight:600}.calc-standard-chip{color:#1d4ed8;background:#3b82f61f;border-radius:6px;padding:3px 8px;font-size:.72rem;font-weight:600}.calc-stat-row{border-bottom:1px dashed #0000000f;justify-content:space-between;align-items:center;padding:.4rem 0;font-size:.86rem;display:flex}.calc-stat-label{color:var(--text-secondary)}.calc-stat-value{color:var(--text-primary);font-weight:600}.calc-safety-badge{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;margin-top:1rem;padding:.65rem .85rem;font-size:.78rem;line-height:1.4}.onboarding-role-grid{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem;display:grid}.role-choice-card{border:2px solid var(--border-color);background:var(--bg-secondary);cursor:pointer;text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:1.25rem 1rem;transition:all .2s;display:flex}.role-choice-card:hover{border-color:var(--accent-primary);transform:translateY(-2px)}.role-choice-card.active{border-color:var(--accent-primary);background:#3b82f614;box-shadow:0 4px 14px #3b82f62e}.role-choice-card h4{font-size:.98rem;font-weight:600}.role-choice-card p{color:var(--text-secondary);margin:0;font-size:.76rem;line-height:1.35}.exam-result-box{background:var(--bg-secondary);border:1px solid var(--border-color);text-align:left;border-radius:12px;max-height:380px;margin-top:1rem;padding:1.25rem;font-size:.9rem;line-height:1.6;overflow-y:auto}.typing-indicator{gap:4px;padding:.5rem 0;display:flex}.typing-indicator span{background:var(--text-secondary);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite both bounce}.typing-indicator span:first-child{animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}@media screen and (width<=768px){.app-container:not(.auth-container){flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--border-color);flex-shrink:0;width:100%;height:auto;padding:.85rem 1rem}.brand{margin-bottom:.75rem}.discipline-list{-webkit-overflow-scrolling:touch;flex-direction:row;gap:.5rem;padding-bottom:.35rem;overflow-x:auto}.discipline-btn{white-space:nowrap;padding:.5rem .75rem;font-size:.85rem}.user-profile{display:none}.chat-header{gap:.65rem;padding:.85rem 1rem}.header-info{flex:1;min-width:0}.header-info h2{white-space:nowrap;text-overflow:ellipsis;font-size:1.05rem;overflow:hidden}.header-info p{display:none}.header-actions{gap:6px}.header-tool-btn,.header-new-btn,.model-badge{border-radius:8px;height:32px;padding:0 .65rem;font-size:.78rem}.messages-container{gap:1rem;padding:1rem}.message{max-width:95%}.input-area{padding:.65rem .85rem .85rem}.composer-toolbar{gap:.35rem;padding:.4rem .65rem}.toolbar-action-btn{border-radius:8px;gap:5px;height:32px;padding:0 .6rem;font-size:.78rem}.toolbar-send-btn{border-radius:8px;gap:5px;height:32px;padding:0 .95rem;font-size:.82rem}.auth-card{width:95%;padding:2rem 1.5rem}.modal-content{padding:1.5rem}}@media screen and (width<=640px){.toolbar-pill-btn span,.voice-btn:not(.listening) span{display:none}.toolbar-pill-btn,.voice-btn{min-width:32px;padding:0 .6rem}.toolbar-left{gap:4px}.toolbar-right{gap:6px}}@media screen and (width<=480px){.upload-main-btn span{display:none}.upload-main-btn{min-width:32px;padding:0 .6rem}.toolbar-send-btn span{display:none}.toolbar-send-btn{min-width:36px;padding:0 .75rem}.header-tool-btn span,.header-new-btn span{display:none}.header-tool-btn,.header-new-btn{min-width:32px;padding:0 .6rem}.model-badge{text-overflow:ellipsis;max-width:120px;overflow:hidden}}.auth-tabs{border:1px solid var(--border-color);background:#0000000a;border-radius:12px;gap:4px;margin-bottom:1.5rem;padding:4px;display:flex}.auth-tab-btn{color:var(--text-secondary);font-family:var(--font-family);cursor:pointer;background:0 0;border:none;border-radius:9px;flex:1;justify-content:center;align-items:center;gap:8px;padding:.65rem .75rem;font-size:.88rem;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.auth-tab-btn:hover{color:var(--text-primary);background:#fff9}.auth-tab-btn.active{color:var(--accent-primary);background:#fff;font-weight:600;box-shadow:0 2px 8px #00000014}.auth-badge-icon{width:54px;height:54px;color:var(--accent-primary);background:linear-gradient(135deg,#3b82f61f,#8b5cf626);border:1px solid #3b82f640;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 1rem;display:flex;box-shadow:0 4px 12px #3b82f626}.input-with-icon{align-items:center;width:100%;display:flex;position:relative}.input-with-icon .input-icon{color:var(--text-secondary);pointer-events:none;align-items:center;display:flex;position:absolute;left:14px}.input-with-icon input{width:100%;padding-left:42px!important}.otp-email-chip{color:var(--accent-primary);background:#3b82f614;border:1px solid #3b82f633;border-radius:20px;align-items:center;gap:8px;margin-bottom:1.25rem;padding:6px 14px;font-size:.9rem;font-weight:500;display:inline-flex}.otp-edit-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:3px;padding:2px 4px;font-size:.8rem;transition:color .15s;display:flex}.otp-edit-btn:hover{color:var(--accent-primary);text-decoration:underline}.otp-code-input{letter-spacing:12px!important;text-align:center!important;color:#1e3a8a!important;background:#f8fafc!important;border:2px solid #3b82f64d!important;padding:.9rem .5rem!important;font-family:Courier New,Courier,monospace!important;font-size:1.85rem!important;font-weight:700!important}.otp-code-input:focus{border-color:var(--accent-primary)!important;background:#fff!important;box-shadow:0 0 0 4px #3b82f626!important}.auth-alert{text-align:left;border-radius:10px;align-items:center;gap:8px;margin-bottom:1rem;padding:10px 14px;font-size:.88rem;animation:.2s fadeIn;display:flex}.auth-alert.error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.auth-alert.success{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0}.auth-alert.info{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe}.server-offline-banner{color:#be123c;text-align:left;background:#fff1f2;border:1px solid #fecdd3;border-radius:10px;align-items:center;gap:10px;margin-bottom:1.25rem;padding:.75rem 1rem;font-size:.88rem;line-height:1.4;animation:.3s ease-out fadeIn;display:flex}.server-offline-banner code{color:#9f1239;background:#be123c1a;border-radius:4px;padding:2px 6px;font-weight:600}.resend-row{color:var(--text-secondary);justify-content:center;align-items:center;gap:8px;margin-top:1rem;font-size:.88rem;display:flex}.resend-btn{color:var(--accent-primary);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:.88rem;font-weight:600;display:inline-flex}.resend-btn:disabled{color:var(--text-secondary);cursor:not-allowed;opacity:.6}.resend-btn:not(:disabled):hover{text-decoration:underline}.spinner{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
