*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,var(--primary-color) 0,var(--accent-color) 100%);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;min-height:100vh}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--primary-color:#8c1d40;--accent-color:#ffc627;--primary-dark:#5c0f2c;--accent-light:#ffd85f;--bg-primary:#fff;--bg-secondary:#f5f5f5;--text-primary:#191919;--text-secondary:#666;--border-color:#e0e0e0;--shadow:0 2px 8px #0000001a}.App{display:flex;gap:20px;height:100vh;max-height:100vh;max-width:1800px;min-height:100vh;overflow:hidden;transition:gap .3s ease-in-out}.App,.App.modern-mode{margin:0 auto;padding:20px}.App.modern-mode{align-items:center;gap:0;justify-content:center;max-width:none}.App.sidebar-collapsed{gap:0}.sidebar-vertical-tab{align-items:center;background:linear-gradient(180deg,#8c1d40,#5c0f2c);background:linear-gradient(180deg,var(--primary-color) 0,var(--primary-dark) 100%);border:none;border-radius:0 12px 12px 0;box-shadow:4px 0 16px #0000004d;cursor:pointer;display:flex;flex-direction:column;gap:4px;height:140px;justify-content:center;left:0;padding:12px 0;position:fixed;top:50%;transform:translateY(-50%);transition:all .3s cubic-bezier(.4,0,.2,1);width:36px;z-index:9999}.sidebar-vertical-tab:hover{box-shadow:4px 0 20px #0006;filter:brightness(1.1);width:44px}.sidebar-vertical-tab:active{filter:brightness(.95);width:40px}.tab-arrow{font-size:20px;line-height:1;margin-bottom:8px}.tab-arrow,.tab-text{color:#fff;font-weight:700}.tab-text{font-size:14px;letter-spacing:3px;text-orientation:mixed;transform:rotate(180deg);white-space:nowrap;writing-mode:vertical-rl}.sidebar{background:#fff;background:var(--bg-primary);border-radius:16px;box-shadow:0 8px 32px #00000026;display:flex;flex-direction:column;flex-shrink:0;height:calc(100vh - 40px);max-height:calc(100vh - 40px);overflow:hidden;width:280px}.suggestions-sidebar{width:320px}.sidebar-header{background:linear-gradient(135deg,#8c1d40,#5c0f2c);background:linear-gradient(135deg,var(--primary-color) 0,var(--primary-dark) 100%);box-shadow:0 2px 8px #0000001a;box-shadow:var(--shadow);color:#fff;padding:20px}.sidebar-header h3{font-size:18px;font-weight:600;margin:0}.sidebar-content{display:flex;flex:1 1;flex-direction:column;gap:8px;overflow-y:auto;padding:16px}.sidebar-content::-webkit-scrollbar{width:6px}.sidebar-content::-webkit-scrollbar-track{background:#f5f5f5;background:var(--bg-secondary)}.sidebar-content::-webkit-scrollbar-thumb{background:#e0e0e0;background:var(--border-color);border-radius:3px}.question-category{display:flex;flex-direction:column;gap:8px}.category-header{align-items:center;background:#f5f5f5;background:var(--bg-secondary);border:none;border-radius:8px;color:#191919;color:var(--text-primary);cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:8px;padding:10px 12px;text-align:left;transition:all .2s;width:100%}.category-header:hover{background:#e0e0e0;background:var(--border-color);transform:translateX(2px)}.category-icon{color:#8c1d40;color:var(--primary-color);display:inline-block;font-size:10px;transition:transform .2s;width:12px}.category-name{flex:1 1}.category-count{color:#666;color:var(--text-secondary);font-size:11px;font-weight:400}.category-questions{animation:slideDown .2s ease-out;display:flex;flex-direction:column;gap:6px;padding-left:8px}.sidebar-suggestion{background:#fff;border:2px solid #e0e0e0;border:2px solid var(--border-color);border-radius:8px;color:#191919;color:var(--text-primary);cursor:pointer;font-size:13px;line-height:1.3;padding:10px 12px;text-align:left;transition:all .2s;width:100%}.sidebar-suggestion:hover{background:#8c1d40;background:var(--primary-color);border-color:#8c1d40;border-color:var(--primary-color);box-shadow:0 2px 8px #0000001a;box-shadow:var(--shadow);color:#fff;transform:translateX(4px)}.chat-container{background:#fff;background:var(--bg-primary);border-radius:16px;box-shadow:0 8px 32px #00000026;display:flex;flex:1 1;flex-direction:column;height:calc(100vh - 40px);max-height:calc(100vh - 40px);overflow:hidden}.chat-header{background:linear-gradient(135deg,#8c1d40,#5c0f2c);background:linear-gradient(135deg,var(--primary-color) 0,var(--primary-dark) 100%);box-shadow:0 2px 8px #0000001a;box-shadow:var(--shadow);color:#fff;flex-wrap:wrap;justify-content:space-between;padding:20px 24px}.chat-header,.header-left{align-items:center;display:flex;gap:16px}.header-collapse-button{align-items:center;background:#ffffff26;border:1px solid #ffffff4d;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:20px;font-weight:700;height:44px;justify-content:center;transition:all .3s ease;width:44px}.header-collapse-button:hover{background:#ffffff40;transform:scale(1.05)}.header-collapse-button:active{transform:scale(.95)}.sidebar-toggle-button{align-items:center;background:#ffffff26;border:1px solid #ffffff4d;border-radius:8px;cursor:pointer;display:flex;height:44px;justify-content:center;padding:10px;transition:all .3s ease;width:44px}.sidebar-toggle-button:hover{background:#ffffff40;transform:scale(1.05)}.sidebar-toggle-button:active{transform:scale(.95)}.hamburger-icon{display:flex;flex-direction:column;gap:4px;height:16px;position:relative;width:20px}.hamburger-icon span{background:#fff;border-radius:2px;display:block;height:2px;transition:all .3s ease;width:100%}.App.sidebar-collapsed .hamburger-icon span:first-child{transform:translateY(6px) rotate(45deg)}.App.sidebar-collapsed .hamburger-icon span:nth-child(2){opacity:0;transform:translateX(-10px)}.App.sidebar-collapsed .hamburger-icon span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.header-content h1{font-size:24px;font-weight:700;margin-bottom:4px}.subtitle{font-size:14px;opacity:.9}.header-controls{align-items:center;display:flex;gap:16px}.student-switcher{align-items:center;display:flex;font-size:14px;gap:8px}.student-select{background:#fff3;border:1px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;padding:6px 12px;transition:all .2s}.student-select:hover{background:#ffffff4d}.student-select option{background:#8c1d40;background:var(--primary-color);color:#fff}.action-buttons{display:flex;gap:8px}.icon-button{background:#fff3;border:1px solid #ffffff4d;border-radius:6px;cursor:pointer;font-size:18px;padding:8px 12px;transition:all .2s}.icon-button:hover:not(:disabled){background:#ffffff4d;transform:translateY(-1px)}.icon-button:disabled{cursor:not-allowed;opacity:.4}.icon-button.confirm-state{animation:pulse-warning-button .6s ease-in-out;background:#ff98004d;border-color:#ff9800}.icon-button.confirm-state:hover:not(:disabled){background:#ff980066;border-color:#f57c00}@keyframes pulse-warning-button{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.export-dropdown{position:relative}.export-menu{background:#fff;border-radius:8px;box-shadow:0 4px 12px #0003;margin-top:8px;min-width:180px;overflow:hidden;position:absolute;right:0;top:100%;z-index:100}.export-menu button{background:#fff;border:none;color:#191919;color:var(--text-primary);cursor:pointer;display:block;font-size:14px;padding:12px 16px;text-align:left;transition:background .2s;width:100%}.export-menu button:hover{background:#f5f5f5;background:var(--bg-secondary)}.student-info-banner{background:#ffd85f;background:var(--accent-light);border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--border-color);color:#5c0f2c;color:var(--primary-dark);font-size:14px;font-weight:500;padding:12px 24px}.messages-container{background:#f5f5f5;background:var(--bg-secondary);flex:1 1;max-height:calc(90vh - 200px);min-height:0;overflow-y:auto;padding:24px}.messages-container::-webkit-scrollbar{width:8px}.messages-container::-webkit-scrollbar-track{background:#f5f5f5;background:var(--bg-secondary)}.messages-container::-webkit-scrollbar-thumb{background:#e0e0e0;background:var(--border-color);border-radius:4px}.messages-container::-webkit-scrollbar-thumb:hover{background:#666;background:var(--text-secondary)}.message{animation:fadeIn .3s ease-in;display:flex;margin-bottom:12px}.message+.message{margin-top:12px}.message.user{justify-content:flex-end}.message.assistant{justify-content:flex-start}.message-content{border-radius:12px;font-size:15px;max-width:75%;padding:12px 16px}.message.user .message-content{background:#8c1d40;background:var(--primary-color);border-bottom-right-radius:4px;color:#fff}.message.assistant .message-content{background:#fff;border:1px solid #e0e0e0;border:1px solid var(--border-color);border-bottom-left-radius:4px;color:#191919;color:var(--text-primary);transition:all .2s ease}.message.assistant .message-content:hover{border-color:#8c1d40;border-color:var(--primary-color);box-shadow:0 4px 12px #0000001f;transform:translateY(-2px)}.message-timestamp{color:#666;color:var(--text-secondary);font-size:11px;margin-top:4px;text-align:right}.message.assistant .message-timestamp{text-align:left}.typing-indicator{gap:4px;padding:8px 0}.typing-indicator span{animation:typing 1.4s infinite;background:#8c1d40;background:var(--primary-color);border-radius:50%;height:8px;width:8px}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-10px)}}.error-banner{background:#ffebee;border:1px solid #ef5350;border-radius:8px;color:#c62828;margin-bottom:16px;padding:12px 16px}.suggestions-container{background:#f5f5f5;background:var(--bg-secondary);padding:0 24px 24px}.suggestions-title{color:#666;color:var(--text-secondary);font-size:14px;font-weight:600;margin-bottom:12px}.suggestions-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.suggestion-button{background:#fff;border:1px solid #e0e0e0;border:1px solid var(--border-color);border-radius:8px;color:#191919;color:var(--text-primary);cursor:pointer;font-size:14px;padding:12px 16px;text-align:left;transition:all .2s}.suggestion-button:hover{background:#8c1d40;background:var(--primary-color);border-color:#8c1d40;border-color:var(--primary-color);box-shadow:0 2px 8px #0000001a;box-shadow:var(--shadow);color:#fff;transform:translateY(-2px)}.input-container{background:#fff;border-top:1px solid #e0e0e0;border-top:1px solid var(--border-color);padding:16px 24px}.input-form{align-items:flex-end;display:flex;gap:12px}.message-input{border:2px solid #e0e0e0;border:2px solid var(--border-color);border-radius:8px;flex:1 1;font-family:inherit;font-size:15px;max-height:120px;min-height:48px;padding:12px 16px;resize:none;transition:border-color .2s}.message-input:focus{border-color:#8c1d40;border-color:var(--primary-color);box-shadow:0 0 0 3px #8c1d401a;outline:none}.message-input:disabled{background:#f5f5f5;background:var(--bg-secondary);cursor:not-allowed}.save-button{background:#ffc627;background:var(--accent-color);border:2px solid #ffc627;border:2px solid var(--accent-color);border-radius:8px;color:#5c0f2c;color:var(--primary-dark);cursor:pointer;font-size:18px;font-weight:600;height:48px;padding:12px 20px;transition:all .2s}.save-button:hover:not(:disabled){background:#ffd85f;background:var(--accent-light);box-shadow:0 2px 8px #0000001a;box-shadow:var(--shadow);transform:translateY(-2px)}.save-button:disabled{background:#f5f5f5;background:var(--bg-secondary);border-color:#e0e0e0;border-color:var(--border-color);cursor:not-allowed;opacity:.5}.send-button{align-items:center;background:#8c1d40;background:var(--primary-color);border:none;border-radius:50%;box-shadow:0 2px 8px #8c1d404d;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:20px;height:48px;justify-content:center;padding:0;transition:all .3s cubic-bezier(.4,0,.2,1);width:48px}.send-button:hover:not(:disabled){background:#5c0f2c;background:var(--primary-dark);box-shadow:0 4px 16px #8c1d4066;transform:scale(1.1) rotate(5deg)}.send-button:active:not(:disabled){transform:scale(.95)}.send-button:disabled{background:#666;background:var(--text-secondary);box-shadow:none;cursor:not-allowed;opacity:.5}.input-hint{color:#666;color:var(--text-secondary);font-size:12px;margin-top:8px;text-align:center}@supports (padding:max(0px)){.App{padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}.input-container{padding-bottom:max(16px,env(safe-area-inset-bottom))}}.messages-container,.sidebar-content{-webkit-overflow-scrolling:touch;overflow-scrolling:touch}button,input,select,textarea{-webkit-appearance:none;appearance:none}html{-webkit-text-size-adjust:100%}*{-webkit-tap-highlight-color:rgba(140,29,64,.1)}@media (max-width:1024px){.App{flex-direction:column;gap:10px;padding:10px}.sidebar{height:auto;max-height:300px;width:100%}.chat-container{height:calc(70vh - 10px)}.header-controls{flex-wrap:wrap;gap:8px}}@media (max-width:768px){.App{gap:0;max-width:100%;padding:0}.App,body{min-height:100vh;min-height:-webkit-fill-available}.sidebar,.suggestions-sidebar{display:none}.chat-container{border-radius:0;height:100vh;height:-webkit-fill-available}.chat-header{align-items:center;flex-direction:row;gap:8px;min-height:56px;padding:10px 12px}.header-content h1{font-size:16px;margin-bottom:0}.subtitle{display:none}.header-controls{align-items:center;display:flex;gap:8px}.student-switcher{display:none}.student-select{font-size:14px;padding:4px 8px}.action-buttons{display:flex;gap:8px}.student-info-banner{font-size:13px;padding:8px 12px}.messages-container{max-height:calc(100vh - 200px);max-height:calc(var(--vh, 1vh)*100 - 200px);padding:12px}.message-content{font-size:14px;max-width:90%;padding:10px 12px}.input-container{background:#fff;box-shadow:0 -2px 10px #0000001a;padding:8px 12px}.input-form{gap:8px}.message-input{padding:10px 12px}.message-input,.save-button{border-radius:22px;font-size:16px;min-height:44px}.save-button{min-width:50px;padding:0 16px}.send-button{border-radius:22px;font-size:14px;min-height:44px;min-width:50px;padding:0 20px}.icon-button{min-height:44px;min-width:44px}.sidebar-suggestion{font-size:13px;min-height:44px;padding:12px}.category-header{min-height:44px}.messages-container::-webkit-scrollbar,.sidebar-content::-webkit-scrollbar{display:none}.messages-container,.sidebar-content{-ms-overflow-style:none;scrollbar-width:none}}@media (max-width:768px) and (orientation:portrait){.chat-container{height:calc(100vh - 210px);height:calc(var(--vh, 1vh)*100 - 210px)}}@media (max-width:768px) and (orientation:landscape){.App{flex-direction:row;gap:0}.sidebar{border-radius:0;max-height:100vh;width:250px}.chat-container{height:100vh;height:-webkit-fill-available}}.result-count-badge{background:#e3f2fd;border-radius:12px;color:#1976d2;font-size:14px;font-weight:600;margin-bottom:12px;padding:4px 12px}.loading-text,.result-count-badge{display:inline-block}.loading-text:after{animation:ellipsis 1.5s infinite;content:""}@keyframes ellipsis{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.skeleton-container{padding:12px 16px}.skeleton-text{animation:shimmer 2s infinite;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:1000px 100%;border-radius:4px;height:16px;margin-bottom:8px}.skeleton-text.short{width:60%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.course-card{background:#fff;border:1px solid #e0e0e0;border:1px solid var(--border-color);border-radius:8px;box-shadow:0 1px 3px #00000014;margin-bottom:12px;padding:16px;transition:all .2s ease}.course-card:hover{border-color:#8c1d40;border-color:var(--primary-color);box-shadow:0 4px 12px #0000001f;transform:translateY(-2px)}.course-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.course-code{color:#191919;color:var(--text-primary);font-size:18px;font-weight:600}.course-credits{background:#f5f5f5;background:var(--bg-secondary);border-radius:4px;color:#666;color:var(--text-secondary);font-size:14px;padding:4px 8px}.course-title{color:#333;font-size:16px;margin-bottom:12px}.course-meta-item{align-items:center;display:flex;gap:6px}.course-id{color:#666;color:var(--text-secondary);font-size:14px;margin-left:8px}.course-list{display:flex;flex-direction:column;gap:12px}.course-results{width:100%}.show-more-button{background:#fff;border:2px solid #8c1d40;border:2px solid var(--primary-color);border-radius:8px;color:#8c1d40;color:var(--primary-color);cursor:pointer;font-size:14px;font-weight:600;margin-top:12px;padding:12px;transition:all .2s ease;width:100%}.show-more-button:hover{background:#8c1d40;background:var(--primary-color);box-shadow:0 4px 12px #8c1d4033;color:#fff;transform:translateY(-2px)}.filter-container{background:#f5f5f5;background:var(--bg-secondary);border-radius:8px;margin:12px 0;padding:12px}.filter-label{color:#666;color:var(--text-secondary);font-size:13px;font-weight:600;margin-bottom:8px}.filter-chips{display:flex;flex-wrap:wrap;gap:8px}.filter-chip{background:#fff;border:2px solid #e0e0e0;border:2px solid var(--border-color);border-radius:16px;color:#191919;color:var(--text-primary);cursor:pointer;font-size:13px;font-weight:500;padding:6px 12px;transition:all .2s ease}.filter-chip:hover{transform:translateY(-1px)}.filter-chip.active,.filter-chip:hover{border-color:#8c1d40;border-color:var(--primary-color)}.filter-chip.active{background:#8c1d40;background:var(--primary-color);color:#fff}.filter-result-info{color:#8c1d40;color:var(--primary-color);font-size:13px;font-weight:600;margin-top:8px}.no-results{background:#f5f5f5;background:var(--bg-secondary);border-radius:8px;color:#666;color:var(--text-secondary);font-size:14px;padding:24px;text-align:center}.typo-correction-banner{align-items:center;background:#fff3cd;border:1px solid #ffc107;border-radius:8px;color:#856404;display:flex;flex-wrap:wrap;font-size:13px;gap:8px;margin-bottom:8px;padding:8px 12px}.typo-correction-item{align-items:center;display:inline-flex;margin-left:4px}.typo-word{color:#d32f2f;font-weight:600;text-decoration:line-through}.typo-arrow{color:#666}.corrected-word{color:#2e7d32;font-weight:600}.visually-hidden{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.course-card:focus-visible{box-shadow:0 0 0 4px #8c1d4033;outline:3px solid #8c1d40;outline:3px solid var(--primary-color);outline-offset:2px}.filter-chip:focus-visible{box-shadow:0 0 0 4px #8c1d4033;outline:3px solid #8c1d40;outline:3px solid var(--primary-color);outline-offset:2px}.show-more-button:focus-visible{box-shadow:0 0 0 4px #8c1d4033;outline:3px solid #8c1d40;outline:3px solid var(--primary-color);outline-offset:2px}.icon-button:focus-visible{box-shadow:0 0 0 4px #ffffff4d;outline:3px solid #fff;outline-offset:2px}.course-meta{color:#666;color:var(--text-secondary);display:flex;flex-wrap:wrap;font-size:14px;gap:16px}.course-meta dd{margin:0}.modern-input-container{background:#fff;background:var(--bg-primary,#fff);border-top:1px solid #e5e7eb;border-top:1px solid var(--border-color,#e5e7eb);box-shadow:0 -2px 10px #0000000d;padding:20px 24px}.modern-input-form{align-items:flex-end;background:#f9fafb;background:var(--bg-secondary,#f9fafb);border:2px solid #e5e7eb;border:2px solid var(--border-color,#e5e7eb);border-radius:12px;display:flex;gap:12px;padding:12px 16px;transition:all .2s ease}.modern-input-form:focus-within{background:#fff;background:var(--bg-primary,#fff);border-color:#2563eb;border-color:var(--primary-color,#2563eb);box-shadow:0 0 0 4px #2563eb1a;box-shadow:0 0 0 4px var(--focus-ring,#2563eb1a)}.modern-message-input{background:#0000;border:none;color:#111827;color:var(--text-primary,#111827);flex:1 1;font-family:Inter,sans-serif;font-family:var(--font-family-primary,"Inter",sans-serif);font-size:15px;font-weight:400;font-weight:var(--font-weight-normal,400);line-height:1.5;max-height:200px;outline:none;padding:4px 0;resize:none;transition:all .15s ease}.modern-message-input::placeholder{color:#9ca3af;color:var(--text-tertiary,#9ca3af)}.modern-message-input:disabled{cursor:not-allowed;opacity:.6}.modern-send-button{align-items:center;background:#2563eb;background:var(--primary-color,#2563eb);border:none;border-radius:10px;box-shadow:0 2px 4px #2563eb4d;box-shadow:var(--shadow,0 2px 4px #2563eb4d);color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:20px;height:44px;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);width:44px}.modern-send-button:hover:not(:disabled){background:#1e40af;background:var(--primary-dark,#1e40af);box-shadow:0 4px 8px #2563eb66;box-shadow:var(--shadow-md,0 4px 8px #2563eb66);transform:scale(1.05)}.modern-send-button:active:not(:disabled){transform:scale(.95);transition:all .1s ease}.modern-send-button:disabled{background:#f3f4f6;background:var(--bg-tertiary,#f3f4f6);box-shadow:none;cursor:not-allowed}.modern-input-hint,.modern-send-button:disabled{color:#9ca3af;color:var(--text-tertiary,#9ca3af)}.modern-input-hint{font-size:12px;font-weight:400;font-weight:var(--font-weight-normal,400);margin:8px 0 0;text-align:center}@media (max-width:768px){.modern-input-container{padding:16px}.modern-input-form{padding:10px 12px}.modern-message-input{font-size:14px}.modern-send-button{font-size:18px;height:40px;width:40px}}.debug-panel{background:#fffbeb;border:2px solid #f59e0b;border-radius:8px;font-family:Consolas,Monaco,Courier New,monospace;font-size:13px;margin:16px 0;overflow:hidden}.debug-panel-header{align-items:center;background:#fef3c7;border:none;color:#92400e;cursor:pointer;display:flex;font-weight:600;justify-content:space-between;padding:12px 16px;transition:background-color .2s;width:100%}.debug-panel-header:hover{background:#fde68a}.debug-panel-title{align-items:center;display:flex;font-size:14px;gap:8px}.debug-panel-status{font-weight:500;margin-left:8px}.debug-panel-id{color:#78716c;font-size:11px;font-weight:400}.debug-panel-async-badge{background:#f59e0b;border-radius:4px;color:#fff;font-size:11px;font-weight:500;margin-left:8px;padding:2px 8px}.debug-panel-content{padding:16px}.debug-timeline{background:#f3f4f6;border-radius:4px;height:24px;margin-bottom:16px;overflow:hidden;position:relative}.timeline-bar{height:100%;opacity:.8;position:absolute;transition:opacity .2s}.timeline-bar:hover{cursor:pointer;opacity:1}.debug-events{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.debug-event{background:#fff;border:1px solid #e5e7eb;border-radius:6px;overflow:hidden}.debug-event-header{align-items:center;background:#fafafa;border:none;cursor:pointer;display:flex;justify-content:space-between;padding:10px 12px;transition:background-color .2s;width:100%}.debug-event-header:hover{background:#f5f5f5}.debug-event-title{align-items:center;color:#374151;display:flex;font-weight:500;gap:8px}.debug-event-error{font-size:12px;margin-left:8px}.debug-event-latency{color:#6b7280;font-size:12px;font-weight:600}.debug-event-details{background:#fff;border-top:1px solid #e5e7eb;padding:12px}.debug-event-field{line-height:1.6;margin-bottom:8px}.debug-event-field strong{color:#4b5563;margin-right:8px}.debug-event-error-detail{background:#fee2e2;border-radius:4px;color:#dc2626;margin-top:8px;padding:8px}.debug-event-metadata{background:#f9fafb;border:1px solid #e5e7eb;border-radius:4px;font-size:11px;margin-top:8px;max-height:200px;overflow-x:auto;padding:8px}.debug-api-paths{background:#f0fdf4;border:2px solid #10b981;border-radius:8px;margin-bottom:16px;padding:12px}.debug-section-title{color:#065f46;font-size:14px;font-weight:600;margin:0 0 12px}.api-paths-list{display:flex;flex-direction:column;gap:8px}.api-path-item{align-items:center;background:#fff;border:1px solid #d1fae5;border-radius:6px;display:flex;font-size:12px;gap:8px;padding:8px 12px}.api-path-method{background:#3b82f6;border-radius:4px;color:#fff;font-size:11px;font-weight:600;padding:2px 8px;text-transform:uppercase}.api-path-method[data-method=GET]{background:#10b981}.api-path-method[data-method=POST]{background:#3b82f6}.api-path-method[data-method=PUT]{background:#f59e0b}.api-path-method[data-method=DELETE]{background:#ef4444}.api-path-url{color:#065f46;flex:1 1;font-family:Consolas,Monaco,Courier New,monospace;font-weight:500}.api-path-group{color:#6b7280;font-size:11px}.debug-event-api-path{background:#f0fdf4;border-left:3px solid #10b981;border-radius:4px;padding:8px}.api-path-code{background:#fff;border:1px solid #d1fae5;border-radius:4px;color:#065f46;display:block;font-family:Consolas,Monaco,Courier New,monospace;font-size:12px;margin-top:4px;padding:6px 8px}.debug-summary{border-top:1px solid #e5e7eb;display:flex;font-size:12px;gap:24px;padding-top:12px}.debug-summary-stat{color:#6b7280}.debug-summary-stat strong{color:#374151;margin-right:4px}@media (max-width:768px){.debug-panel-header{align-items:flex-start}.debug-panel-header,.debug-summary{flex-direction:column;gap:8px}}.markdown-list{margin:8px 0;padding-left:20px}.markdown-list li{margin:4px 0}.markdown-link{color:#8c1d40;font-weight:500;text-decoration:underline}.markdown-link:hover{color:#5c0f2c}.inline-code{background:#f5f5f5;border-radius:4px;color:#8c1d40;font-family:Courier New,monospace;font-size:.9em;padding:2px 6px}.code-block{background:#f5f5f5;border-radius:8px;margin:8px 0;overflow-x:auto;padding:12px}.code-block code{color:#191919;font-family:Courier New,monospace;font-size:.9em}.message-content p{word-wrap:break-word;margin:0;white-space:pre-wrap}.message-content p:not(:last-child){margin-bottom:8px}.message-content h1,.message-content h2,.message-content h3{font-weight:600;margin:12px 0 8px}.message-content h1{font-size:1.5em}.message-content h2{font-size:1.3em}.message-content h3{font-size:1.1em}.message-content blockquote{border-left:3px solid #8c1d40;color:#666;font-style:italic;margin:8px 0;padding-left:12px}.message-content hr{border:none;border-top:1px solid #e0e0e0;margin:12px 0}.message-content table{border-collapse:collapse;margin:8px 0;width:100%}.message-content table td,.message-content table th{border:1px solid #e0e0e0;padding:8px;text-align:left}.message-content table th{background:#f5f5f5;font-weight:600}.message.error .message-content{background:#ffebee;border-color:#ef5350;color:#c62828}.modern-messages-container{display:flex;flex:1 1;flex-direction:column;overflow-y:auto;padding:24px 0;scroll-behavior:smooth}.modern-messages-container::-webkit-scrollbar{width:8px}.modern-messages-container::-webkit-scrollbar-track{background:#0000}.modern-messages-container::-webkit-scrollbar-thumb{background:#e5e7eb;background:var(--border-color,#e5e7eb);border-radius:4px;-webkit-transition:background .15s ease;transition:background .15s ease}.modern-messages-container::-webkit-scrollbar-thumb:hover{background:#9ca3af;background:var(--text-tertiary,#9ca3af)}.modern-message{animation:messageSlideIn .2s ease;display:flex;gap:12px;padding:16px 24px}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.modern-message.user{flex-direction:row-reverse;padding-left:60px}.modern-message.assistant{padding-right:60px}.message-avatar{flex-shrink:0}.avatar-circle{align-items:center;background:linear-gradient(135deg,#2563eb,#3b82f6);background:linear-gradient(135deg,var(--primary-color,#2563eb),var(--accent-color,#3b82f6));border-radius:50%;box-shadow:0 2px 4px #0000001a;box-shadow:var(--shadow,0 2px 4px #0000001a);display:flex;height:40px;justify-content:center;width:40px}.avatar-icon{font-size:20px}.message-container{display:flex;flex:1 1;flex-direction:column;gap:8px;min-width:0}.message-header{align-items:center;display:flex;gap:12px;padding-left:4px}.assistant-name{color:#111827;color:var(--text-primary,#111827);font-size:15px;font-weight:600;font-weight:var(--font-weight-semibold,600)}.assistant-role{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:12px;font-weight:400;font-weight:var(--font-weight-normal,400)}.message-time{color:#9ca3af;color:var(--text-tertiary,#9ca3af);font-size:12px;margin-left:auto}.message-bubble{display:flex;flex-direction:column;gap:8px}.modern-message.assistant .message-bubble{background:#fff;background:var(--bg-primary,#fff);border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:12px 12px 12px 4px;box-shadow:0 1px 3px #0000000d;box-shadow:var(--shadow,0 1px 3px #0000000d);padding:16px 20px}.modern-message.user .message-bubble{background:#2563eb;background:var(--primary-color,#2563eb);border-radius:12px 12px 4px 12px;box-shadow:0 2px 6px #2563eb33;box-shadow:var(--shadow-md,0 2px 6px #2563eb33);margin-left:auto;padding:12px 18px}.user-message-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.user-label{color:#ffffffe6;font-size:13px;font-weight:600;font-weight:var(--font-weight-semibold,600)}.modern-message.user .message-time{color:#ffffffb3}.message-content{word-wrap:break-word;line-height:1.6}.modern-message.assistant .message-content{color:#111827;color:var(--text-primary,#111827);font-size:15px}.modern-message.user .message-content{color:#fff;font-size:14px}.message-content p{margin:0 0 12px}.message-content p:last-child{margin-bottom:0}.message-content strong{font-weight:600;font-weight:var(--font-weight-semibold,600)}.message-content ol,.message-content ul{margin:8px 0;padding-left:24px}.message-content li{margin:4px 0}.message-content code{background:#f3f4f6;background:var(--bg-tertiary,#f3f4f6);border-radius:4px;font-family:Monaco,Courier New,monospace;font-size:.9em;padding:2px 6px}.modern-message.user .message-content code{background:#fff3;color:#fff}.message-content pre{background:#f3f4f6;background:var(--bg-tertiary,#f3f4f6);border-radius:6px;margin:8px 0;overflow-x:auto;padding:12px}.message-content pre code{background:none;padding:0}.modern-message.assistant .message-bubble:hover{border-color:#d1d5db;border-color:var(--border-color,#d1d5db);box-shadow:0 2px 6px #00000014;box-shadow:var(--shadow-md,0 2px 6px #00000014)}.loading-message .message-bubble{background:#fff;background:var(--bg-primary,#fff);border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:12px 12px 12px 4px;box-shadow:0 1px 3px #0000000d;box-shadow:var(--shadow,0 1px 3px #0000000d);display:flex;flex-direction:column;gap:8px;padding:16px 20px}.typing-indicator{align-items:center;display:flex;gap:6px;height:20px}.typing-indicator .dot{animation:typingBounce 1.4s infinite;background:#2563eb;background:var(--primary-color,#2563eb);border-radius:50%;height:8px;width:8px}.typing-indicator .dot:first-child{animation-delay:0s}.typing-indicator .dot:nth-child(2){animation-delay:.2s}.typing-indicator .dot:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{opacity:.7;transform:translateY(0)}30%{opacity:1;transform:translateY(-10px)}}.loading-text{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:13px;font-style:italic}@media (max-width:768px){.modern-message{padding:12px 16px}.modern-message.user{padding-left:40px}.modern-message.assistant{padding-right:40px}.avatar-circle{height:36px;width:36px}.avatar-icon{font-size:18px}.message-content{font-size:14px}}.debug-toggle-container,.debug-toggle-label{align-items:center;display:flex}.debug-toggle-label{color:#666;cursor:pointer;font-size:14px;gap:8px;transition:color .2s;-webkit-user-select:none;user-select:none}.debug-toggle-label:hover{color:#333}.debug-toggle-checkbox{accent-color:#f59e0b;cursor:pointer;height:16px;width:16px}.debug-toggle-text{font-weight:500}.debug-toggle-label input:checked~.debug-toggle-text{color:#f59e0b}.theme-picker{position:relative}.theme-picker-button{font-size:20px}.theme-picker-overlay{bottom:0;left:0;position:fixed;right:0;top:0;z-index:99}.theme-picker-menu{animation:slideDown .2s ease-out;background:#fff;border-radius:12px;box-shadow:0 8px 32px #0003;max-width:400px;min-width:320px;overflow:hidden;position:absolute;right:0;top:calc(100% + 8px);z-index:100}.theme-picker-header{align-items:center;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:16px 20px}.theme-picker-header h4{color:var(--text-primary);font-size:16px;font-weight:600;margin:0}.theme-picker-close{align-items:center;background:none;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:28px;height:28px;justify-content:center;line-height:1;padding:0;transition:all .2s;width:28px}.theme-picker-close:hover{background:var(--border-color);color:var(--text-primary)}.theme-picker-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,1fr);max-height:400px;overflow-y:auto;padding:16px}.theme-option{background:#fff;border:2px solid var(--border-color);flex-direction:column;gap:8px;padding:12px;position:relative;text-align:left;transition:all .2s}.theme-option:hover{border-color:var(--primary-color);box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.theme-option.active{background:linear-gradient(135deg,#8c1d400d,#ffc6270d);border-color:var(--primary-color);box-shadow:0 2px 8px #8c1d4033}.theme-preview{display:flex;gap:8px;height:40px}.theme-color-accent,.theme-color-primary{border-radius:4px;box-shadow:0 2px 4px #0000001a;flex:1 1}.theme-name{color:var(--text-primary);font-size:13px;font-weight:600}.theme-check{align-items:center;background:var(--primary-color);border-radius:50%;color:#fff;display:flex;font-size:14px;font-weight:700;height:24px;justify-content:center;position:absolute;right:8px;top:8px;width:24px}.theme-picker-grid::-webkit-scrollbar{width:6px}.theme-picker-grid::-webkit-scrollbar-track{background:var(--bg-secondary)}.theme-picker-grid::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.theme-picker-grid::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}@media (max-width:768px){.theme-picker-menu{min-width:280px;right:-10px}.theme-picker-grid{grid-template-columns:1fr}}.settings-panel-container{position:relative;z-index:1000}.settings-panel-container.modern-mode{position:static}.settings-panel-container.modern-mode .settings-trigger-button{font-size:18px;height:36px;width:36px}.settings-trigger-button{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 1px 3px #0000001a;cursor:pointer;display:flex;font-size:20px;height:40px;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);width:40px}.settings-trigger-button:hover{background:#f9fafb;box-shadow:0 4px 8px #00000026;transform:translateY(-2px) rotate(90deg)}.settings-trigger-button:active{box-shadow:0 1px 3px #0000001a;transform:translateY(0) rotate(90deg);transition:all .1s ease}.settings-panel-dropdown{animation:slideDown .2s ease;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 10px 25px #00000026;max-height:600px;overflow-y:auto;position:absolute;right:0;top:calc(100% + 8px);width:320px}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.settings-panel-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:16px 20px}.settings-panel-header h3{color:#111827;font-size:18px;font-weight:600;margin:0}.settings-close-button{align-items:center;background:#0000;border:none;border-radius:6px;color:#6b7280;cursor:pointer;display:flex;font-size:20px;height:28px;justify-content:center;transition:all .15s ease;width:28px}.settings-close-button:hover{background:#f3f4f6;color:#111827}.settings-panel-content{padding:16px 20px}.settings-section{margin-bottom:24px}.settings-section:last-child{margin-bottom:8px}.settings-section h4{color:#374151;font-size:14px;font-weight:600;letter-spacing:.05em;margin:0 0 12px;text-transform:uppercase}.ui-mode-toggle{background:#f3f4f6;border-radius:8px;display:flex;gap:8px;padding:4px}.mode-button{background:#0000;border:none;border-radius:6px;color:#6b7280;cursor:pointer;flex:1 1;font-size:14px;font-weight:500;padding:8px 16px;transition:all .15s ease}.mode-button:hover{color:#111827}.mode-button.active{background:#fff;box-shadow:0 1px 3px #0000001a;color:#2563eb}.settings-description{color:#6b7280;font-size:12px;font-style:italic;margin:8px 0 0}.theme-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(5,1fr)}.theme-option{align-items:center;aspect-ratio:1;border:2px solid #0000;border-radius:8px;box-shadow:0 1px 3px #0003;color:#fff;cursor:pointer;display:flex;font-size:16px;justify-content:center;transition:all .15s ease;width:100%}.theme-option:hover{box-shadow:0 2px 6px #00000040;transform:scale(1.1)}.theme-option.active{border-color:#111827;box-shadow:0 0 0 3px #2563eb33}.student-selector{background:#fff;border:1px solid #d1d5db;border-radius:8px;color:#111827;cursor:pointer;font-size:14px;padding:8px 12px;transition:all .15s ease;width:100%}.student-selector:hover{border-color:#9ca3af}.student-selector:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a;outline:none}.settings-checkbox{align-items:center;border-radius:6px;cursor:pointer;display:flex;gap:8px;padding:8px;transition:background .15s ease}.settings-checkbox:hover{background:#f9fafb}.settings-checkbox input[type=checkbox]{cursor:pointer;height:18px;width:18px}.settings-action-button,.settings-checkbox span{color:#374151;font-size:14px}.settings-action-button{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;font-weight:500;margin-top:8px;padding:10px 16px;text-align:left;transition:all .15s ease;width:100%}.settings-action-button:hover{background:#e5e7eb;border-color:#d1d5db}.settings-action-button:active{transform:scale(.98)}.settings-panel-dropdown::-webkit-scrollbar{width:8px}.settings-panel-dropdown::-webkit-scrollbar-track{background:#0000}.settings-panel-dropdown::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}.settings-panel-dropdown::-webkit-scrollbar-thumb:hover{background:#9ca3af}.modern-layout{animation:fadeIn .3s ease;background:#f9fafb;background:var(--bg-secondary,#f9fafb);border-radius:16px;box-shadow:0 8px 32px #00000026;display:flex;flex-direction:column;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-family-primary,"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif);height:calc(100vh - 40px);max-width:1800px;overflow:hidden;width:100%}.modern-header{align-items:center;background:linear-gradient(135deg,#fff,#f9fafb);background:linear-gradient(135deg,var(--bg-primary,#fff) 0,var(--bg-secondary,#f9fafb) 100%);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border-color,#e5e7eb);box-shadow:0 1px 3px #0000000d;box-shadow:var(--shadow,0 1px 3px #0000000d);display:flex;justify-content:space-between;min-height:100px;padding:24px 32px;z-index:10}.header-left-section{flex:1 1}.greeting-section{display:flex;flex-direction:column;gap:4px}.greeting-title{color:#111827;color:var(--text-primary,#111827);font-size:28px;font-weight:700;font-weight:var(--font-weight-bold,700);line-height:1.2;margin:0}.greeting-subtitle{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:15px;font-weight:400;font-weight:var(--font-weight-normal,400);margin:0}.header-right-section{align-items:center;display:flex;gap:16px}.student-id-badge{align-items:flex-end;background:#fff;background:var(--bg-primary,#fff);border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:10px;box-shadow:0 1px 3px #0000001a;box-shadow:var(--shadow,0 1px 3px #0000001a);cursor:default;display:flex;flex-direction:column;padding:12px 20px;transition:all .2s ease}.student-id-badge:hover{box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md,0 4px 6px #0000001a);transform:translateY(-2px)}.program-badge{align-items:center;background:#eff6ff;background:var(--active-bg,#eff6ff);border:1px solid #2563eb;border:1px solid var(--primary-color,#2563eb);border-radius:10px;box-shadow:0 1px 3px #0000001a;box-shadow:var(--shadow,0 1px 3px #0000001a);cursor:default;display:flex;gap:12px;padding:12px 20px;transition:all .2s ease}.program-badge:hover{box-shadow:0 4px 6px #2563eb33;box-shadow:var(--shadow-md,0 4px 6px #2563eb33);transform:translateY(-2px)}.badge-icon{font-size:24px}.badge-content{display:flex;flex-direction:column;gap:2px}.badge-label{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:11px;letter-spacing:.05em;text-transform:uppercase}.badge-label,.badge-value{font-weight:600;font-weight:var(--font-weight-semibold,600)}.badge-value{color:#111827;color:var(--text-primary,#111827);font-size:14px;line-height:1.3}.program-badge .badge-value{color:#2563eb;color:var(--primary-color,#2563eb)}.modern-content{grid-gap:0;display:grid;flex:1 1;gap:0;grid-template-columns:280px 1fr 280px;overflow:hidden}.modern-nav{background:#fff;background:var(--bg-primary,#fff);border-right:1px solid #e5e7eb;border-right:1px solid var(--border-color,#e5e7eb);display:flex;flex-direction:column;overflow:hidden;padding:0}.modern-chat-history{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border-color,#e5e7eb);flex:1 1;min-height:0;overflow-y:auto}.nav-section{background:#fff;background:var(--bg-primary,#fff);border-top:1px solid #e5e7eb;border-top:1px solid var(--border-color,#e5e7eb);display:flex;flex-direction:column;flex-shrink:0;gap:4px;padding:24px 16px}.nav-header{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:12px;font-weight:600;font-weight:var(--font-weight-semibold,600);letter-spacing:.05em;margin:0 0 12px 12px;text-transform:uppercase}.nav-item{align-items:center;background:#0000;border:none;border-radius:8px;color:#111827;color:var(--text-primary,#111827);cursor:pointer;display:flex;font-weight:500;font-weight:var(--font-weight-medium,500);gap:12px;overflow:hidden;padding:12px 16px;position:relative;text-align:left;transition:all .15s ease}.nav-item:before{background:#2563eb;background:var(--primary-color,#2563eb);bottom:0;content:"";left:0;position:absolute;top:0;transform:scaleY(0);transition:transform .2s ease;width:3px}.nav-item:hover{background:#f3f4f6;background:var(--hover-bg,#f3f4f6);transform:translateX(4px)}.nav-item.active{background:#eff6ff;background:var(--active-bg,#eff6ff);color:#2563eb;color:var(--primary-color,#2563eb)}.nav-item.active:before{transform:scaleY(1)}.nav-icon{flex-shrink:0;font-size:20px}.nav-label{color:inherit;font-size:14px;font-weight:500;font-weight:var(--font-weight-medium,500)}.modern-main{background:#fff;background:var(--bg-primary,#fff);display:flex;flex-direction:column;overflow-y:auto}.modern-sidebar{background:#f9fafb;background:var(--bg-secondary,#f9fafb);border-left:1px solid #e5e7eb;border-left:1px solid var(--border-color,#e5e7eb);overflow-y:auto;padding:24px 20px}.sidebar-section{display:flex;flex-direction:column;gap:20px}.sidebar-header-with-settings{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.sidebar-header{color:#111827;color:var(--text-primary,#111827);font-size:16px;font-weight:600;font-weight:var(--font-weight-semibold,600);margin:0}.sidebar-settings-button{flex-shrink:0}.suggestion-category{display:flex;flex-direction:column;gap:8px}.category-title{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:13px;font-weight:600;font-weight:var(--font-weight-semibold,600);letter-spacing:.05em;margin:0 0 8px;text-transform:uppercase}.suggestion-pill{background:#fff;background:var(--bg-primary,#fff);border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:8px;box-shadow:0 1px 2px #0000000d;box-shadow:var(--shadow,0 1px 2px #0000000d);color:#374151;color:var(--text-primary,#374151);cursor:pointer;font-size:13px;font-weight:400;font-weight:var(--font-weight-normal,400);padding:10px 14px;position:relative;text-align:left;transition:all .18s cubic-bezier(.4,0,.2,1)}.suggestion-pill:hover{background:#eff6ff;background:var(--active-bg,#eff6ff);border-color:#2563eb;border-color:var(--primary-color,#2563eb);box-shadow:0 4px 6px #2563eb26;box-shadow:var(--shadow-md,0 4px 6px #2563eb26);color:#2563eb;color:var(--primary-color,#2563eb);transform:translateX(4px) scale(1.02)}.suggestion-pill:active{transform:translateX(4px) scale(.98);transition:all .1s ease}@media (max-width:1024px){.modern-content{grid-template-columns:200px 1fr 240px}.greeting-title{font-size:24px}.greeting-subtitle{font-size:14px}}@media (max-width:768px){.modern-content{grid-template-columns:1fr}.modern-nav,.modern-sidebar{display:none}.modern-header{align-items:flex-start;flex-direction:column;gap:16px;min-height:auto;padding:16px 20px}.header-right-section{justify-content:space-between;width:100%}.greeting-title{font-size:22px}.greeting-subtitle{font-size:13px}.program-badge,.student-id-badge{padding:10px 16px}.badge-value{font-size:13px}}.modern-main::-webkit-scrollbar,.modern-nav::-webkit-scrollbar,.modern-sidebar::-webkit-scrollbar{width:6px}.modern-main::-webkit-scrollbar-track,.modern-nav::-webkit-scrollbar-track,.modern-sidebar::-webkit-scrollbar-track{background:#0000}.modern-main::-webkit-scrollbar-thumb,.modern-nav::-webkit-scrollbar-thumb,.modern-sidebar::-webkit-scrollbar-thumb{background:#d1d5db;background:var(--border-color,#d1d5db);border-radius:3px}.modern-main::-webkit-scrollbar-thumb:hover,.modern-nav::-webkit-scrollbar-thumb:hover,.modern-sidebar::-webkit-scrollbar-thumb:hover{background:#9ca3af;background:var(--text-tertiary,#9ca3af)}.chat-sidebar{background:#f8f9fa;background:var(--sidebar-bg,#f8f9fa);border-right:1px solid #e0e0e0;border-right:1px solid var(--border-color,#e0e0e0);display:flex;flex-direction:column;flex-shrink:0;height:calc(100vh - 40px);max-height:calc(100vh - 40px);overflow:hidden;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);width:280px}.chat-sidebar.collapsed{border-right:none;min-width:0;opacity:0;overflow:visible;padding:0;pointer-events:none;width:0}.sidebar-collapsed-badge{align-items:center;animation:slideIn .3s ease-out;background:#8c1d40;background:var(--primary-color,#8c1d40);border-radius:20px;box-shadow:0 4px 12px #00000026;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:6px;left:20px;padding:8px 12px;position:absolute;top:20px;transition:all .3s ease;z-index:100}.sidebar-collapsed-badge:hover{box-shadow:0 6px 16px #0003;transform:scale(1.05)}.badge-icon{font-size:18px;line-height:1}.badge-count{min-width:20px;text-align:center}.sidebar-edge-toggle{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(135deg,#8c1d40,#5c0f2c);background:linear-gradient(135deg,var(--primary-color,#8c1d40) 0,var(--primary-dark,#5c0f2c) 100%);border:2px solid #fff;border-radius:0 12px 12px 0;box-shadow:0 4px 12px #0000004d;color:#fff;cursor:pointer;display:flex;font-size:20px;font-weight:700;height:80px;justify-content:center;opacity:1;position:absolute;right:-20px;top:50%;transform:translateY(-50%);transition:all .3s cubic-bezier(.4,0,.2,1);width:40px;z-index:1001}.sidebar-edge-toggle:hover{background:linear-gradient(135deg,#6d1530,#5c0f2c);background:linear-gradient(135deg,var(--primary-hover,#6d1530) 0,var(--primary-dark,#5c0f2c) 100%);border-color:#ffc627;border-color:var(--accent-color,#ffc627);box-shadow:0 6px 20px #0006;transform:translateY(-50%) translateX(3px);width:48px}.sidebar-edge-toggle:active{transform:translateY(-50%) scale(.95)}.chat-sidebar.collapsed .sidebar-edge-toggle{align-items:center!important;animation:pulse-expand 2s ease-in-out infinite;background:#ffc627!important;border:3px solid #fff!important;border-radius:0 16px 16px 0!important;box-shadow:0 8px 24px #00000080!important;color:#8c1d40!important;display:flex!important;font-size:24px!important;font-weight:700!important;height:96px!important;justify-content:center!important;left:20px!important;opacity:1!important;pointer-events:auto!important;position:fixed!important;right:auto!important;top:50%!important;transform:translateY(-50%)!important;width:48px!important;z-index:9999!important}.chat-sidebar.collapsed .sidebar-edge-toggle:hover{animation:none;background:#ffd85f!important;box-shadow:0 12px 32px #0009!important;transform:translateY(-50%) translateX(5px)!important;width:56px!important}@keyframes pulse-expand{0%,to{box-shadow:0 4px 12px #0000004d}50%{box-shadow:0 4px 20px #ffc62799}}.sidebar-header{align-items:center;border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--border-color,#e0e0e0);display:flex;gap:12px;justify-content:space-between;padding:16px}.sidebar-title{color:#1a1a1a;color:var(--text-primary,#1a1a1a);font-size:18px;font-weight:600;margin:0}.sidebar-header-buttons{align-items:center;display:flex;gap:8px}.new-chat-button{background:#8c1d40;background:var(--primary-color,#8c1d40);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;padding:8px 12px;transition:all .2s ease;white-space:nowrap}.new-chat-button:hover{background:#6d1530;background:var(--primary-hover,#6d1530);transform:translateY(-1px)}.new-chat-button:active{transform:translateY(0)}.sidebar-close-button{align-items:center;background:#0000;border:1px solid #e0e0e0;border:1px solid var(--border-color,#e0e0e0);border-radius:6px;color:#666;color:var(--text-secondary,#666);cursor:pointer;display:flex;font-size:18px;justify-content:center;line-height:1;padding:6px 10px;transition:all .2s ease;white-space:nowrap}.sidebar-close-button:hover{background:#f0f0f0;background:var(--hover-bg,#f0f0f0);border-color:#8c1d40;border-color:var(--primary-color,#8c1d40);color:#1a1a1a;color:var(--text-primary,#1a1a1a);transform:translateX(-2px)}.sidebar-close-button:active{transform:translateX(0)}.search-bar{border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--border-color,#e0e0e0);padding:12px 16px;position:relative}.search-icon{color:#666;color:var(--text-secondary,#666);left:28px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.search-input{background:#fff;border:1px solid #e0e0e0;border:1px solid var(--border-color,#e0e0e0);border-radius:6px;font-size:14px;padding:8px 32px 8px 36px;transition:border-color .2s ease;width:100%}.search-input:focus{border-color:#8c1d40;border-color:var(--primary-color,#8c1d40);outline:none}.search-clear{background:#0000;border:none;color:#666;color:var(--text-secondary,#666);cursor:pointer;font-size:16px;line-height:1;padding:4px;position:absolute;right:24px;top:50%;transform:translateY(-50%);transition:color .2s ease}.search-clear:hover{color:#1a1a1a;color:var(--text-primary,#1a1a1a)}.sidebar-controls{align-items:center;border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--border-color,#e0e0e0);display:flex;gap:6px;padding:12px 16px}.filter-toggle{background:#0000;border:1px solid #e0e0e0;border:1px solid var(--border-color,#e0e0e0);border-radius:6px;color:#666;color:var(--text-secondary,#666);cursor:pointer;flex:1 1;font-size:12px;min-width:0;padding:6px 8px;transition:all .2s ease}.filter-toggle.active{background:#8c1d40;background:var(--primary-color,#8c1d40);border-color:#8c1d40;border-color:var(--primary-color,#8c1d40);color:#fff}.filter-toggle:hover:not(.active){background:#f0f0f0;background:var(--hover-bg,#f0f0f0)}.refresh-button{align-items:center;background:#0000;border:1px solid #e0e0e0;border:1px solid var(--border-color,#e0e0e0);border-radius:6px;cursor:pointer;display:flex;flex-shrink:0;font-size:15px;height:32px;justify-content:center;padding:6px 10px;transition:all .2s ease;width:36px}.refresh-button:hover{background:#f0f0f0;background:var(--hover-bg,#f0f0f0);transform:rotate(90deg)}.clear-all-button{align-items:center;background:#0000;border:1px solid #c00;border-radius:6px;color:#c00;cursor:pointer;display:flex;flex-shrink:0;font-size:15px;height:32px;justify-content:center;min-width:36px;overflow:hidden;padding:6px 10px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap}.clear-all-button:hover:not(:disabled):not(.confirm-state){background:#c00;color:#fff}.clear-all-button:disabled{cursor:not-allowed;opacity:.4}.clear-all-button.confirm-state{animation:pulse-warning .6s ease-in-out;background:#ff9800;border-color:#ff9800;color:#fff;font-weight:600}.clear-all-button.confirm-state:hover{background:#f57c00;border-color:#f57c00;transform:scale(1.05)}@keyframes pulse-warning{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.sidebar-error{align-items:center;background:#fee;border-bottom:1px solid #fcc;color:#c00;display:flex;font-size:13px;justify-content:space-between;padding:12px 16px}.retry-button{background:#c00;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:4px 12px}.conversation-list{flex:1 1;overflow-y:auto;padding:8px 0}.conversation-group{margin-bottom:16px}.conversation-group-header{align-items:center;color:#666;color:var(--text-secondary,#666);display:flex;font-size:12px;font-weight:600;gap:6px;letter-spacing:.5px;padding:8px 16px;text-transform:uppercase}.pin-icon{font-size:14px}.conversation-item{background:#0000;border-left:3px solid #0000;cursor:pointer;padding:12px 16px;position:relative;transition:all .2s ease}.conversation-item:hover{background:#f0f0f0;background:var(--hover-bg,#f0f0f0)}.conversation-item.active{background:#e8e8e8;background:var(--active-bg,#e8e8e8);border-left-color:#8c1d40;border-left-color:var(--primary-color,#8c1d40)}.conversation-item.processing{opacity:.6;pointer-events:none}.conversation-content{display:flex;flex-direction:column;gap:4px}.conversation-header{align-items:flex-start;display:flex;gap:8px;justify-content:space-between}.conversation-title{color:#1a1a1a;color:var(--text-primary,#1a1a1a);flex:1 1;font-size:14px;font-weight:500;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pin-indicator{font-size:12px;margin-right:4px}.conversation-menu-button{background:#0000;border:none;color:#666;color:var(--text-secondary,#666);cursor:pointer;font-size:18px;line-height:1;opacity:0;padding:2px 6px;transition:all .2s ease}.conversation-item:hover .conversation-menu-button{opacity:1}.conversation-menu-button:hover{background:#e0e0e0;background:var(--hover-bg,#e0e0e0);border-radius:4px;color:#1a1a1a;color:var(--text-primary,#1a1a1a)}.conversation-meta{align-items:center;color:#666;color:var(--text-secondary,#666);display:flex;font-size:12px;justify-content:space-between}.conversation-time{flex:1 1}.conversation-message-count{font-weight:500}.conversation-title-input{background:#fff;border:2px solid #8c1d40;border:2px solid var(--primary-color,#8c1d40);border-radius:4px;font-size:14px;font-weight:500;padding:4px 8px;width:100%}.conversation-title-input:focus{outline:none}.conversation-menu{background:#fff;border:1px solid #e0e0e0;border:1px solid var(--border-color,#e0e0e0);border-radius:8px;box-shadow:0 4px 12px #00000026;max-height:300px;min-width:160px;overflow:visible;overflow-y:auto;position:fixed;z-index:1000}.menu-item{align-items:center;background:#0000;border:none;color:#1a1a1a;color:var(--text-primary,#1a1a1a);cursor:pointer;display:flex;font-size:14px;gap:8px;padding:10px 16px;text-align:left;transition:background .2s ease;width:100%}.menu-item:hover{background:#f0f0f0;background:var(--hover-bg,#f0f0f0)}.menu-item.delete{color:#c00}.menu-item.delete:hover{background:#fee}.conversation-processing-overlay{align-items:center;background:#fffc;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}.spinner{animation:spin .6s linear infinite;border:2px solid #e0e0e0;border-top-color:#8c1d40;border:2px solid var(--border-color,#e0e0e0);border-radius:50%;border-top-color:var(--primary-color,#8c1d40);height:20px;width:20px}.conversation-item-skeleton{animation:pulse 1.5s ease-in-out infinite;padding:12px 16px}.skeleton-title{height:14px;margin-bottom:8px;width:80%}.skeleton-preview,.skeleton-title{background:#e0e0e0;background:var(--skeleton-bg,#e0e0e0);border-radius:4px}.skeleton-preview{height:12px;margin-bottom:6px;width:60%}.skeleton-time{background:#e0e0e0;background:var(--skeleton-bg,#e0e0e0);border-radius:4px;height:10px;width:40%}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.empty-state{color:#666;color:var(--text-secondary,#666);padding:32px 16px;text-align:center}.empty-state p{font-size:14px;margin:8px 0}.empty-state-hint{color:#999;color:var(--text-tertiary,#999);font-size:13px}.clear-search-button{background:#8c1d40;background:var(--primary-color,#8c1d40);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;margin-top:12px;padding:8px 16px;transition:all .2s ease}.clear-search-button:hover{background:#6d1530;background:var(--primary-hover,#6d1530)}@media (max-width:768px){.chat-sidebar{width:240px}.sidebar-title{font-size:16px}.new-chat-button{font-size:13px;padding:6px 10px}.chat-sidebar{border-radius:0;box-shadow:4px 0 24px #0003;height:100vh;left:0;max-height:100vh;max-width:320px;position:fixed;top:0;width:85%;z-index:2000}.chat-sidebar.collapsed{opacity:1;transform:translateX(-100%)}.chat-sidebar:not(.collapsed){transform:translateX(0)}.conversation-title{font-size:13px}.conversation-meta{font-size:11px}.sidebar-edge-toggle{height:88px;opacity:1;right:-44px;width:44px}.chat-sidebar.collapsed .sidebar-edge-toggle{left:0;right:auto;width:48px}.sidebar-collapsed-badge{display:none}.App.sidebar-collapsed:before{content:none}.App:not(.sidebar-collapsed):before{animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;bottom:0;content:"";left:0;position:fixed;right:0;top:0;z-index:1999}}@media (prefers-color-scheme:dark){.chat-sidebar{--sidebar-bg:#1e1e1e;--border-color:#333;--text-primary:#e0e0e0;--text-secondary:#a0a0a0;--text-tertiary:#666;--hover-bg:#2a2a2a;--active-bg:#333;--skeleton-bg:#333}.search-input{background:#2a2a2a;color:#e0e0e0}.conversation-menu{background:#2a2a2a;border-color:#333}}@media (prefers-contrast:high){.conversation-item{border:1px solid #e0e0e0;border:1px solid var(--border-color,#e0e0e0);margin-bottom:4px}.conversation-item.active{border-left-width:4px}}@media (prefers-reduced-motion:reduce){.conversation-item,.menu-item,.new-chat-button,.refresh-button,.sidebar-edge-toggle{transition:none}.conversation-item-skeleton,.spinner{animation:none}}.chat-sidebar.modern-mode{background:#0000;border-right:none;height:auto;max-height:none;padding:0;width:100%}.chat-sidebar.modern-mode .sidebar-header{background:#fff;background:var(--bg-primary,#fff);padding:16px}.chat-sidebar.modern-mode .sidebar-controls{gap:8px;padding:12px 16px}.chat-sidebar.modern-mode .conversation-list-container{max-height:none;padding:0 16px}.chat-sidebar.modern-mode .sidebar-header-buttons{gap:8px}.chat-sidebar.modern-mode .clear-all-button{min-width:auto;padding:6px 10px}.chat-sidebar.modern-mode .sidebar-title{color:#111827!important;font-weight:600}.chat-sidebar.modern-mode .conversation-title{color:#111827!important}.chat-sidebar.modern-mode .conversation-meta,.chat-sidebar.modern-mode .conversation-time{color:#6b7280!important}.chat-sidebar.modern-mode .search-input{background:#f9fafb;border:1px solid #e5e7eb;color:#111827}.chat-sidebar.modern-mode .search-input::placeholder{color:#9ca3af}.chat-sidebar.modern-mode .search-input:focus{background:#fff;border-color:#2563eb}.chat-sidebar.modern-mode .search-clear,.chat-sidebar.modern-mode .search-icon{color:#6b7280}.chat-sidebar.modern-mode .search-clear:hover{color:#111827}.chat-sidebar.modern-mode .filter-toggle{color:#111827;min-width:70px;padding:6px 12px;text-align:center;white-space:nowrap}.chat-sidebar.modern-mode .filter-toggle.active{background:#2563eb;border-color:#2563eb;color:#fff}.toast-container{bottom:24px;display:flex;flex-direction:column-reverse;gap:12px;left:50%;max-width:500px;pointer-events:none;position:fixed;transform:translateX(-50%);width:auto;z-index:9999}.toast-container>*{pointer-events:auto}.toast{align-items:center;animation:toast-slide-up .3s cubic-bezier(.4,0,.2,1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#1c1c1cf2;border-radius:8px;bottom:auto;box-shadow:0 4px 12px #0000004d,0 0 0 1px #ffffff1a;color:#fff;display:flex;font-size:14px;font-weight:500;gap:16px;left:auto;line-height:1.4;max-width:500px;min-width:320px;padding:12px 16px;position:relative;transform:none;z-index:9999}@keyframes toast-slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.toast-content{align-items:center;display:flex;flex:1 1;gap:16px}.toast-message{flex:1 1}.toast-action{background:#ffffff26;border:none;border-radius:4px;color:#fcd116;cursor:pointer;font-size:13px;font-weight:600;letter-spacing:.5px;padding:6px 12px;text-transform:uppercase;transition:all .2s ease}.toast-action:hover{background:#ffffff40;transform:scale(1.05)}.toast-action:active{transform:scale(.95)}.toast-close{align-items:center;background:#0000;border:none;color:#fff9;cursor:pointer;display:flex;font-size:16px;justify-content:center;padding:4px 8px;transition:color .2s ease}.toast-close:hover{color:#ffffffe6}.toast-info{background:#1c1c1cf2}.toast-success{background:#107d10f2}.toast-error{background:#b41010f2}.toast-warning{background:#c88c00f2}@media (max-width:768px){.toast-container{bottom:80px;left:16px;max-width:none;right:16px;transform:none}.toast{max-width:none;min-width:auto}}.logs-viewer-overlay{align-items:center;background-color:#000000b3;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:10000}.logs-viewer-modal{background:#fff;background:var(--background-color,#fff);border-radius:12px;box-shadow:0 10px 40px #0000004d;display:flex;flex-direction:column;height:90vh;max-height:900px;max-width:1400px;overflow:hidden;width:95%}.logs-viewer-header{align-items:center;background:#f5f5f5;background:var(--header-bg,#f5f5f5);border-bottom:2px solid #e0e0e0;border-bottom:2px solid var(--border-color,#e0e0e0);display:flex;justify-content:space-between;padding:20px 24px}.logs-viewer-header h2{margin:0}.close-button,.logs-viewer-header h2{color:#333;color:var(--text-color,#333);font-size:1.5rem}.close-button{background:none;border:none;border-radius:6px;cursor:pointer;padding:8px 12px;transition:background-color .2s}.close-button:hover{background-color:#0000000d;background-color:var(--hover-bg,#0000000d)}.logs-viewer-controls{background:#fafafa;background:var(--controls-bg,#fafafa);border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--border-color,#e0e0e0);padding:16px 24px}.control-row{align-items:center;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:12px}.control-row:last-child{margin-bottom:0}.control-group{align-items:center;display:flex;gap:8px}.control-group label{color:#333;color:var(--text-color,#333);font-weight:500;white-space:nowrap}.filter-input,.log-group-select,.time-range-select{background:#fff;background:var(--input-bg,#fff);border:1px solid #ddd;border:1px solid var(--border-color,#ddd);border-radius:6px;color:#333;color:var(--text-color,#333);font-size:.9rem;min-width:200px;padding:8px 12px}.filter-input:focus,.log-group-select:focus,.time-range-select:focus{border-color:#8c1d40;border-color:var(--primary-color,#8c1d40);box-shadow:0 0 0 3px #8c1d401a;box-shadow:0 0 0 3px var(--primary-shadow,#8c1d401a);outline:none}.filter-group{display:flex;flex:1 1;gap:8px}.filter-input{flex:1 1;min-width:300px}.export-button,.filter-button,.refresh-button,.search-button{background:#8c1d40;background:var(--primary-color,#8c1d40);border:none;border-radius:6px;color:#fff;cursor:pointer;flex-shrink:0;font-weight:500;min-width:-webkit-fit-content;min-width:fit-content;padding:8px 16px;transition:all .2s;white-space:nowrap}.export-button:hover,.filter-button:hover,.refresh-button:hover,.search-button:hover{background:#6d1632;background:var(--primary-hover,#6d1632);box-shadow:0 2px 8px #00000026;transform:translateY(-1px)}.export-button:disabled,.filter-button:disabled,.refresh-button:disabled,.search-button:disabled{cursor:not-allowed;opacity:.5;transform:none}.search-button{background:#ffc627;background:var(--secondary-color,#ffc627);color:#333}.search-button:hover{background:#e6b323;background:var(--secondary-hover,#e6b323)}.quick-filter-buttons{display:flex;gap:8px}.filter-btn{background:#fff;background:var(--input-bg,#fff);border:1px solid #ddd;border:1px solid var(--border-color,#ddd);border-radius:6px;color:#333;color:var(--text-color,#333);cursor:pointer;font-size:.85rem;padding:6px 12px;transition:all .2s;white-space:nowrap}.filter-btn:hover:not(:disabled){background:#f5f5f5;background:var(--hover-bg,#f5f5f5);border-color:#8c1d40;border-color:var(--primary-color,#8c1d40);box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.filter-btn:disabled{cursor:not-allowed;opacity:.5}.bedrock-btn{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea;color:#fff;font-weight:500}.bedrock-btn:hover:not(:disabled){background:linear-gradient(135deg,#5568d3,#63408a);border-color:#5568d3;box-shadow:0 2px 8px #667eea4d}.logs-count{color:#666;color:var(--text-muted,#666);font-size:.9rem;font-weight:500;margin-left:auto}.logs-error{background-color:#fee;border:1px solid #fcc;border-radius:6px;color:#c33;margin:16px 24px;padding:12px 16px}.logs-content{background:#fff;background:var(--content-bg,#fff);display:flex;flex:1 1;flex-direction:column;overflow:hidden}.logs-empty,.logs-loading{align-items:center;color:#666;color:var(--text-muted,#666);display:flex;flex:1 1;font-size:1.1rem;justify-content:center}.logs-list{flex:1 1;overflow-y:auto;padding:16px 24px}.log-entry{background:#f9f9f9;background:var(--log-entry-bg,#f9f9f9);border-left:4px solid;border-radius:6px;margin-bottom:12px;padding:12px;transition:background-color .2s}.log-entry:hover{background:#f0f0f0;background:var(--log-entry-hover,#f0f0f0)}.log-entry.log-error{background:#fff5f5;border-left-color:#d32f2f}.log-entry.log-warning{background:#fff8e1;border-left-color:#f57c00}.log-entry.log-info{background:#f0f7ff;border-left-color:#1976d2}.log-entry.log-debug{background:#fafafa;border-left-color:#7b7b7b}.log-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:8px}.log-timestamp{color:#666;color:var(--text-muted,#666);font-family:Courier New,monospace;font-size:.85rem;font-weight:600}.log-group-name,.log-stream{background:#0000000d;background:var(--tag-bg,#0000000d);border-radius:12px;color:#666;color:var(--text-muted,#666);font-size:.75rem;padding:2px 8px}.log-message{color:#333;color:var(--text-color,#333);font-family:Courier New,monospace;font-size:.85rem;line-height:1.5;margin:0;white-space:pre-wrap;word-break:break-word}.log-entry.bedrock-log{background:linear-gradient(135deg,#f8f9fe,#faf7ff);border-left-color:#667eea;padding:16px}.bedrock-badge{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:14px;color:#fff;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:4px 10px}.bedrock-formatted{margin-top:12px}.bedrock-meta{background:#667eea0d;border:1px solid #667eea1a;border-radius:6px;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px;padding:10px}.bedrock-model,.bedrock-operation,.bedrock-tokens{background:#fff;border:1px solid #667eea33;border-radius:12px;color:#444;font-size:.8rem;font-weight:500;padding:4px 10px}.bedrock-tokens{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-color:#81c784;color:#2e7d32;margin-left:auto}.bedrock-section{background:#fff;border-left:4px solid;border-radius:8px;box-shadow:0 1px 3px #00000014;margin-bottom:16px;padding:14px}.bedrock-section .section-title{align-items:center;color:#333;display:flex;font-size:.9rem;font-size:.75rem;font-weight:700;gap:6px;letter-spacing:.5px;margin-bottom:10px;text-transform:uppercase}.bedrock-section .section-content{background:#00000005;border-radius:4px;color:#444;font-size:.9rem;line-height:1.7;padding:8px;white-space:pre-wrap;word-break:break-word}.bedrock-blue{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-left-color:#1976d2}.bedrock-purple{background:linear-gradient(135deg,#f3e5f5,#e1bee7);border-left-color:#7b1fa2}.bedrock-orange{background:linear-gradient(135deg,#fff3e0,#ffe0b2);border-left-color:#f57c00}.bedrock-green{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-left-color:#388e3c}.bedrock-red{background:linear-gradient(135deg,#ffebee,#ffcdd2);border-left-color:#d32f2f}.tool-calls,.tool-results{margin-top:8px}.tool-call{background:#ff98000d;border:1px solid #ff980033;border-radius:6px;margin-bottom:12px;padding:10px}.tool-name{align-items:center;color:#e65100;display:flex;font-size:.85rem;font-weight:700;gap:6px;margin-bottom:6px}.tool-input{background:#fff;border:1px solid #ff980026;border-radius:4px;color:#333;font-family:Courier New,monospace;font-size:.8rem;line-height:1.4;margin:0;padding:8px;white-space:pre-wrap;word-break:break-word}.tool-result{background:#4caf500d;border:1px solid #4caf5033;border-radius:6px;margin-bottom:8px;padding:10px}.result-content{background:#fff;border:1px solid #4caf5026;border-radius:4px;color:#333;font-family:Courier New,monospace;font-size:.8rem;line-height:1.4;margin:0;max-height:300px;overflow-y:auto;padding:8px;white-space:pre-wrap;word-break:break-word}.raw-json-toggle{background:#00000008;border:1px solid #0000001a;border-radius:6px;margin-top:16px;padding:8px}.raw-json-toggle summary{color:#666;cursor:pointer;font-size:.8rem;font-weight:600;padding:4px;-webkit-user-select:none;user-select:none}.raw-json-toggle summary:hover{color:#333}.raw-json-toggle[open] summary{margin-bottom:8px}.raw-json-toggle .log-message{background:#f5f5f5;border-radius:4px;font-size:.75rem;max-height:400px;overflow-y:auto;padding:8px}.log-entry.lambda-log{border-left-width:4px;padding:14px}.lambda-badge{border-radius:14px;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:4px 10px}.lambda-badge-green{background:linear-gradient(135deg,#66bb6a,#43a047);color:#fff}.lambda-badge-blue{background:linear-gradient(135deg,#42a5f5,#1e88e5);color:#fff}.lambda-badge-orange{background:linear-gradient(135deg,#ffa726,#fb8c00);color:#fff}.lambda-badge-red{background:linear-gradient(135deg,#ef5350,#e53935);color:#fff}.lambda-badge-purple{background:linear-gradient(135deg,#ab47bc,#8e24aa);color:#fff}.lambda-badge-gray{background:linear-gradient(135deg,#90a4ae,#78909c);color:#fff}.lambda-formatted{margin-top:12px}.lambda-section{background:#fff;border-left:4px solid;border-radius:8px;box-shadow:0 1px 3px #00000014;margin-bottom:14px;padding:12px}.lambda-section .section-title{align-items:center;color:#333;display:flex;font-size:.85rem;font-weight:700;gap:10px;justify-content:space-between;margin-bottom:10px}.request-id-inline{color:#666;font-size:.7rem;font-weight:500;margin-left:auto}.request-id-inline code{background:#0000000d;border-radius:3px;font-size:.7rem;padding:2px 6px}.lambda-end,.lambda-start{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-left-color:#66bb6a}.lambda-report{background:linear-gradient(135deg,#f3e5f5,#e1bee7);border-left-color:#ab47bc}.lambda-meta{display:flex;flex-wrap:wrap;font-size:.8rem;gap:12px}.meta-item{align-items:center;background:#fff;border:1px solid #0000001a;border-radius:12px;display:flex;gap:6px;padding:4px 10px}.meta-item code{color:#7b1fa2;font-family:Courier New,monospace;font-size:.75rem;font-weight:600}.lambda-metrics{margin-top:10px}.metrics-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.metric-item{background:#fff;border:1px solid #0000001a;border-radius:8px;box-shadow:0 1px 2px #0000000d;display:flex;flex-direction:column;padding:10px 14px}.metric-label{color:#666;font-size:.7rem;font-weight:600;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.metric-value{color:#333;font-family:Courier New,monospace;font-size:1rem;font-weight:700}.metric-percent{color:#666;font-size:.8rem;font-weight:500}.metric-green{color:#2e7d32!important}.metric-blue{color:#1565c0!important}.metric-orange{color:#ef6c00!important}.metric-red{color:#c62828!important}.lambda-log{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-left-color:#42a5f5}.lambda-log-error{background:linear-gradient(135deg,#ffebee,#ffcdd2)!important;border-left-color:#ef5350!important}.lambda-log-warning{background:linear-gradient(135deg,#fff3e0,#ffe0b2)!important;border-left-color:#ffa726!important}.lambda-log-info{background:linear-gradient(135deg,#e3f2fd,#bbdefb)!important;border-left-color:#42a5f5!important}.lambda-log-debug{background:linear-gradient(135deg,#eceff1,#cfd8dc)!important;border-left-color:#90a4ae!important}.error-info{background:#fff;border-left:3px solid #ef5350;border-radius:6px;margin-bottom:10px;padding:10px}.error-message,.error-stack,.error-type{color:#c62828;font-size:.85rem;line-height:1.5;margin-bottom:6px}.error-message:last-child,.error-stack:last-child,.error-type:last-child{margin-bottom:0}.error-info strong{color:#b71c1c;font-weight:700}.log-content{margin-top:8px}.json-content,.text-content{background:#fff;border:1px solid #0000001a;border-radius:6px;color:#333;font-family:Courier New,monospace;font-size:.8rem;line-height:1.5;margin:0;max-height:400px;overflow-y:auto;padding:10px;white-space:pre-wrap;word-break:break-word}.logs-list::-webkit-scrollbar{width:10px}.logs-list::-webkit-scrollbar-track{background:#f1f1f1;background:var(--scrollbar-track,#f1f1f1);border-radius:5px}.logs-list::-webkit-scrollbar-thumb{background:#888;background:var(--scrollbar-thumb,#888);border-radius:5px}.logs-list::-webkit-scrollbar-thumb:hover{background:#555;background:var(--scrollbar-thumb-hover,#555)}.bedrock-trace-filters{background:linear-gradient(135deg,#f8f9fe,#faf7ff);border:1px solid #667eea33;border-radius:8px;margin-top:8px;padding:12px}.trace-filter-buttons{display:flex;gap:8px;margin-left:8px}.filter-btn-sm{font-size:.8rem;padding:4px 10px}.trace-type-checkboxes{display:flex;flex-wrap:wrap;gap:16px;margin-top:10px;padding-left:8px}.trace-checkbox{align-items:center;border-radius:6px;cursor:pointer;display:flex;gap:8px;padding:6px 12px;transition:background-color .2s;-webkit-user-select:none;user-select:none}.trace-checkbox:hover{background-color:#667eea1a}.trace-checkbox input[type=checkbox]{accent-color:#667eea;cursor:pointer;height:16px;width:16px}.trace-label{align-items:center;display:flex;font-size:.85rem;font-weight:500;gap:4px}.trace-user-query{color:#1565c0}.trace-reasoning{color:#7b1fa2}.trace-tool-calls{color:#ef6c00}.trace-tool-results{color:#2e7d32}.trace-response{color:#1565c0}@media (max-width:768px){.logs-viewer-modal{border-radius:0;height:100vh;max-height:none;width:100%}.control-group,.control-row{align-items:stretch;flex-direction:column}.filter-input{min-width:auto}.logs-count{margin-left:0;text-align:center}.trace-type-checkboxes{flex-direction:column;gap:8px}}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-card{animation:slideIn .5s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:480px;overflow:hidden;width:100%}@keyframes slideIn{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.login-header{background:linear-gradient(135deg,#8c1d40,#6b1530);color:#fff;padding:40px 30px 30px;text-align:center}.login-icon{animation:bounce 2s infinite;font-size:64px;margin-bottom:16px}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.login-header h1{font-size:32px;font-weight:700;margin:0 0 8px}.login-subtitle{font-size:14px;font-weight:400;margin:0;opacity:.9}.login-content{padding:40px 30px}.login-description{color:#666;font-size:16px;line-height:1.6;margin:0 0 32px;text-align:center}.login-button{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;box-shadow:0 4px 15px #667eea66;color:#fff;cursor:pointer;display:flex;font-size:18px;font-weight:600;gap:12px;justify-content:center;padding:16px 24px;transition:all .3s ease;width:100%}.login-button:hover{box-shadow:0 6px 20px #667eea99;transform:translateY(-2px)}.login-button:active{transform:translateY(0)}.login-button-icon{font-size:24px}.login-button-text{font-size:18px}.login-features{display:flex;flex-direction:column;gap:16px;margin-top:32px}.feature-item{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;gap:12px;padding:12px;transition:all .2s ease}.feature-item:hover{background:#e9ecef;transform:translateX(4px)}.feature-icon{flex-shrink:0;font-size:24px}.feature-text{color:#495057;font-size:15px;font-weight:500}.login-footer{background:#f8f9fa;border-top:1px solid #e9ecef;padding:20px 30px}.login-note{color:#6c757d;font-size:14px;margin:0;text-align:center}@media (max-width:480px){.login-container{padding:16px}.login-header{padding:32px 24px 24px}.login-header h1{font-size:28px}.login-icon{font-size:56px}.login-content{padding:32px 24px}.login-button{font-size:16px;padding:14px 20px}.feature-item{padding:10px}.feature-icon{font-size:20px}.feature-text{font-size:14px}}@media (prefers-color-scheme:dark){.login-card{background:#1a1a1a}.login-description{color:#999}.feature-item{background:#2a2a2a}.feature-item:hover{background:#333}.feature-text{color:#ccc}.login-footer{background:#2a2a2a;border-top-color:#444}.login-note{color:#999}}.oauth-callback-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.oauth-callback-card{animation:fadeIn .5s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:480px;padding:60px 40px;text-align:center;width:100%}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.oauth-callback-card h2{color:#333;font-size:28px;font-weight:700;margin:24px 0 12px}.oauth-callback-card p{color:#666;font-size:16px;line-height:1.5;margin:0}.oauth-spinner{height:100px;margin:0 auto 24px;position:relative;width:100px}.spinner-ring{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#667eea;height:100%;left:0;position:absolute;top:0;width:100%}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.spinner-icon{font-size:48px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.oauth-success-icon{animation:successPop .5s ease-out;font-size:80px;margin-bottom:16px}@keyframes successPop{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.oauth-error-icon{animation:errorShake .5s ease-out;font-size:80px;margin-bottom:16px}@keyframes errorShake{0%,to{transform:translateX(0)}25%{transform:translateX(-10px)}75%{transform:translateX(10px)}}.error-message{color:#dc3545;font-weight:500;margin:16px 0 8px}.error-hint{color:#999;font-size:14px}@media (max-width:480px){.oauth-callback-card{padding:48px 32px}.oauth-callback-card h2{font-size:24px}.oauth-spinner{height:80px;width:80px}.spinner-icon{font-size:40px}.oauth-error-icon,.oauth-success-icon{font-size:64px}}@media (prefers-color-scheme:dark){.oauth-callback-card{background:#1a1a1a}.oauth-callback-card h2{color:#fff}.oauth-callback-card p{color:#999}.spinner-ring{border-color:#667eea #333 #333}}
/*# sourceMappingURL=main.cb984049.css.map*/