@import"https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700&display=swap";.app{min-height:100vh;background:linear-gradient(135deg,#f8fafc,#f1f5f9,#e2e8f0);padding:0;color:var(--foreground)}.container{max-width:100%;margin:0 auto;padding:0 24px;min-height:100vh;display:flex;flex-direction:column}.header{position:sticky;top:0;z-index:10;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#fff9;border-bottom:1px solid rgba(255,255,255,.2);box-shadow:0 1px 3px #0000000d;padding:20px 24px;margin-bottom:0;text-align:center}.title{font-size:28px;font-weight:var(--font-weight-bold);color:var(--foreground);margin-bottom:4px;display:flex;align-items:center;justify-content:center;gap:10px}.subtitle{font-size:14px;color:var(--muted-foreground);font-weight:var(--font-weight-normal)}.reset-btn{position:absolute;top:50%;right:var(--spacing-lg);transform:translateY(-50%);padding:var(--spacing-sm) var(--spacing-md);background:#fffc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-lg);font-size:13px;color:var(--muted-foreground);cursor:pointer;transition:all .2s;font-weight:var(--font-weight-medium)}.reset-btn:hover{background:#fffffff2;color:var(--foreground)}.model-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.model-modal{background:#fff;border-radius:16px;width:90%;max-width:520px;max-height:80vh;overflow:hidden;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.model-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-bottom:1px solid #e2e8f0}.model-modal-title{margin:0;font-size:18px;font-weight:600;color:#1e293b}.model-modal-close{width:32px;height:32px;border:none;background:#0000000d;border-radius:8px;font-size:16px;color:#64748b;cursor:pointer;transition:all .2s}.model-modal-close:hover{background:#0000001a;color:#1e293b}.model-modal-body{padding:24px;display:flex;flex-direction:column;gap:16px;max-height:calc(80vh - 160px);overflow-y:auto}.model-modal-row{display:flex;flex-direction:column;gap:8px}.model-modal-label{font-size:14px;font-weight:600;color:#374151}.model-modal-select{width:100%;padding:12px 16px;font-size:14px;color:#1e293b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer;transition:all .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right 12px center;background-repeat:no-repeat;background-size:20px}.model-modal-select:hover{border-color:#3b82f6;background-color:#fff}.model-modal-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.model-modal-footer{display:flex;justify-content:space-between;gap:12px;padding:16px 24px;background:#f8fafc;border-top:1px solid #e2e8f0}.model-modal-reset{padding:10px 20px;font-size:14px;font-weight:500;color:#64748b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;transition:all .2s}.model-modal-reset:hover{background:#f1f5f9;color:#1e293b}.model-modal-confirm{padding:10px 24px;font-size:14px;font-weight:600;color:#fff;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;cursor:pointer;transition:all .2s}.model-modal-confirm:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.agent-indicator-inline{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.agent-chip{display:flex;align-items:center;gap:5px;padding:4px 10px;background:#fffc;border:1px solid #e2e8f0;border-radius:16px;font-size:11px;color:#94a3b8;transition:all .3s ease}.agent-chip .agent-light{width:6px;height:6px;border-radius:50%;background:#cbd5e1;transition:all .3s ease}.agent-chip .agent-name{font-weight:500}.agent-chip.active{background:#3b82f61a;border-color:#3b82f64d;color:#3b82f6}.agent-chip.active .agent-light{background:#3b82f6;box-shadow:0 0 6px #3b82f699}.agent-chip.loading .agent-light{animation:pulse-agent 1s ease-in-out infinite}@keyframes pulse-agent{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}.model-settings-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:#fffc;border:1px solid #e2e8f0;border-radius:50%;font-size:14px;color:#64748b;cursor:pointer;transition:all .2s ease;margin-left:4px}.model-settings-btn:hover{background:#f1f5f9;border-color:#cbd5e1;color:#475569}.model-settings-btn.active{background:#3b82f61a;border-color:#3b82f64d;color:#3b82f6}.section{margin-bottom:16px;padding:0 24px}.section:first-of-type{padding-top:24px}.chat-layout .section{padding:0}.chat-layout .section:first-of-type{padding-top:0}.section-title{font-size:18px;font-weight:600;color:#1e293b;margin-bottom:16px;padding-bottom:0;border-bottom:none}.upload-grid{display:grid;gap:16px}.upload-grid.two-col{grid-template-columns:repeat(2,1fr)}@media (max-width: 600px){.upload-grid.two-col{grid-template-columns:1fr}}.upload-card{background:#fffc;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(0,0,0,.08);border-radius:20px;transition:all .3s ease;overflow:hidden;box-shadow:0 8px 32px #00000014}.upload-card:hover{background:#ffffffe6;transform:translateY(-4px);box-shadow:0 12px 40px #0000001f}.upload-label{display:flex;flex-direction:column;align-items:center;padding:24px;cursor:pointer;min-height:180px}.upload-icon{font-size:40px;margin-bottom:12px}.upload-title{font-weight:600;color:#1e293b;font-size:15px;margin-bottom:12px}.file-input{display:none}.upload-placeholder{color:#94a3b8;font-size:14px;padding:20px;border:2px dashed rgba(0,0,0,.15);border-radius:12px;width:100%;text-align:center}.image-preview{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}.image-preview img{max-width:100%;max-height:140px;border-radius:12px;box-shadow:0 4px 16px #0000001a;object-fit:contain}.file-name{font-size:12px;color:#64748b;word-break:break-all;text-align:center;background:#fff9;padding:6px 12px;border-radius:8px}.submit-btn{width:100%;padding:var(--spacing-md) var(--spacing-xl);background:var(--primary);color:var(--primary-foreground);border:none;border-radius:var(--radius-xl);font-size:var(--font-size);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:10px;font-family:inherit;box-shadow:0 4px 16px #00000026}.submit-btn:hover:not(:disabled){background:#1e293b;transform:translateY(-2px);box-shadow:0 8px 24px #0003}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.spinner{width:18px;height:18px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.error-box{background:#fee2e2cc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(239,68,68,.3);border-radius:16px;padding:16px;margin:24px;color:#dc2626}.error-box h3{margin-bottom:6px;font-size:16px;font-weight:600}.main-content{padding:24px}.context-summary{background:#fffffff2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(226,232,240,.8);border-radius:16px;box-shadow:0 10px 25px #0000000d;overflow:hidden}.context-header{display:flex;align-items:center;gap:10px;padding:16px 24px;border-bottom:1px solid #e2e8f0;background:linear-gradient(to right,#f8fafc,#f1f5f9)}.context-header-icon{width:36px;height:36px;border-radius:8px;background:#fff;border:1px solid #e2e8f0;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0000001a;font-size:16px}.context-header-title{font-size:16px;font-weight:var(--font-weight-semibold);color:#0f172a}.problem-body{padding:24px;display:flex;flex-direction:column;gap:20px}.problem-text{font-size:16px;color:#0f172a;line-height:1.75;margin:0;font-weight:var(--font-weight-normal)}.choices-label{font-size:14px;color:#64748b;margin-bottom:12px;font-weight:var(--font-weight-normal)}.choices-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.choice-btn{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:10px;font-size:14px;color:#0f172a;font-weight:var(--font-weight-normal);cursor:pointer;transition:all .2s ease}.choice-btn:hover{border-color:#475569;background:#f8fafc}.choice-btn.selected{border-color:#2563eb;background:#eff6ff;color:#1d4ed8;font-weight:var(--font-weight-medium);position:relative}.choice-btn.selected:hover{background:#dbeafe;border-color:#1d4ed8}.choice-check{margin-left:6px;color:#16a34a;font-weight:700}.selected-answer-info{margin-top:12px;padding:10px 14px;background:#f8fafc;border-radius:8px;display:flex;align-items:center;gap:10px;font-size:14px}.selected-label{color:#64748b}.selected-value{font-weight:var(--font-weight-semibold);color:#0f172a}.answer-status{margin-left:auto;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:var(--font-weight-semibold)}.answer-status.correct{background:#dcfce7;color:#16a34a}.answer-status.incorrect{background:#fee2e2;color:#dc2626}.info-cards{display:flex;flex-direction:column;gap:16px}.strategy-card{background:#ffffffe6;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(0,0,0,.08);border-left:4px solid var(--primary);border-radius:var(--radius-2xl);overflow:hidden;box-shadow:0 8px 32px #00000014;transition:all .3s ease}.strategy-card:hover{box-shadow:0 12px 40px #0000001f}.strategy-card.collapsed{background:#fffc}.strategy-card.open{background:#ffffffe6}.strategy-toggle{width:100%;padding:18px var(--spacing-lg);background:transparent;border:none;display:flex;align-items:center;gap:12px;font-size:var(--font-size);font-weight:var(--font-weight-semibold);color:var(--foreground);cursor:pointer;transition:all .2s;font-family:inherit;text-align:left}.strategy-toggle:hover{background:#ffffff80;color:var(--foreground)}.strategy-card.open .strategy-toggle{color:#1e293b;background:transparent}.strategy-toggle-icon{font-size:10px;transition:transform .2s;color:var(--primary)}.strategy-body{padding:0 24px 24px;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.strategy-section{margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid rgba(0,0,0,.08)}.strategy-section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.strategy-section-title{font-size:18px;font-weight:var(--font-weight-bold);color:var(--foreground);margin-bottom:20px;padding-bottom:8px;border-bottom:2px solid var(--primary)}.strategy-item{margin-bottom:18px}.strategy-item:last-child{margin-bottom:0}.strategy-label{display:block;font-size:13px;font-weight:var(--font-weight-semibold);color:var(--muted-foreground);margin-bottom:10px;text-transform:uppercase;letter-spacing:.5px}.strategy-content{font-size:15px;color:var(--foreground);line-height:1.7;margin:0;padding:0}.strategy-empty{color:var(--muted-foreground);font-style:italic}.big-steps{margin:0;padding-left:0;list-style:none}.big-steps li{font-size:15px;color:var(--foreground);line-height:1.8;margin-bottom:8px;display:flex;align-items:flex-start;gap:12px}.big-steps li:before{content:counter(step-counter);counter-increment:step-counter;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#1e293b;color:#fff;font-size:12px;font-weight:600;flex-shrink:0}.big-steps{counter-reset:step-counter}.big-steps li:last-child{margin-bottom:0}.util-checks{margin:0;padding-left:0;list-style:none}.util-checks li{font-size:15px;color:var(--foreground);line-height:1.7;position:relative;padding-left:20px;margin-bottom:6px}.util-checks li:before{content:"•";position:absolute;left:0;color:var(--primary);font-weight:700;font-size:18px}.strategy-list{margin:0;padding-left:0;list-style:none}.strategy-list li{font-size:15px;color:var(--foreground);line-height:1.7;position:relative;padding-left:20px;margin-bottom:8px}.strategy-list li:before{content:"•";position:absolute;left:0;color:var(--primary);font-weight:700;font-size:18px}.strategy-list li:last-child{margin-bottom:0}.chat-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:0;margin-bottom:0;min-height:calc(100vh - 120px);align-items:start}.main-area{display:flex;flex-direction:column;min-height:0;gap:0}.main-section{margin-bottom:16px;padding:0}.main-section:first-of-type{padding-top:0}.plan-card-area{display:flex;flex-direction:column;min-height:0}.plan-section{margin-bottom:0;padding:0;height:100%;display:flex;flex-direction:column}.plan-card{background:#fffffff2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(226,232,240,.8);border-radius:16px;padding:0;box-shadow:0 10px 25px #0000000d;height:100%;display:flex;flex-direction:column;position:sticky;top:96px;max-height:calc(100vh - 120px);overflow:hidden}.plan-card:hover{box-shadow:0 12px 40px #0000001f}.plan-header{display:flex;align-items:center;gap:10px;padding:16px 24px;border-bottom:1px solid #e2e8f0;background:linear-gradient(to right,#f8fafc,#f1f5f9)}.plan-header-icon{width:36px;height:36px;border-radius:8px;background:#fff;border:1px solid #e2e8f0;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0000001a;font-size:16px}.plan-header-title{font-size:16px;font-weight:var(--font-weight-semibold);color:#0f172a}.plan-body{flex:1;overflow-y:auto;padding:24px}.plan-body::-webkit-scrollbar{width:6px}.plan-body::-webkit-scrollbar-track{background:#0000000d;border-radius:3px}.plan-body::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}.plan-body::-webkit-scrollbar-thumb:hover{background:#0000004d}.plan-step{margin-bottom:16px;padding:20px;border-radius:12px;background:linear-gradient(to bottom right,#fff,#f8fafc);border:1px solid #e2e8f0}.plan-step:last-child{margin-bottom:0}.plan-step-header{display:flex;align-items:center;gap:10px;margin-bottom:16px}.plan-step-number{width:28px;height:28px;border-radius:8px;background:linear-gradient(to bottom right,#475569,#1e293b);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;box-shadow:0 2px 4px #0000001a}.plan-step-title{font-size:16px;font-weight:var(--font-weight-semibold);color:#0f172a;margin:0}.plan-step-content{display:flex;flex-direction:column;gap:16px;margin-left:16px}.plan-item{display:flex;flex-direction:column;gap:6px}.plan-label{font-size:13px;font-weight:var(--font-weight-semibold);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.5px}.plan-text{font-size:14px;color:var(--foreground);line-height:1.6;margin:0;padding:0}.plan-empty{text-align:center;padding:40px 20px;color:var(--muted-foreground)}.plan-empty p{margin:0 0 8px;font-size:15px}.plan-empty-hint{font-size:13px;color:var(--muted-foreground);font-style:italic}.plan-strategy-divider{height:1px;background:#00000026;margin:20px 0;position:relative}.plan-strategy-divider:before{content:"";position:absolute;left:0;top:-2px;width:40px;height:3px;background:var(--primary);border-radius:2px}.plan-strategy-section{margin-top:20px;background:#00000005;border-radius:12px;padding:16px;border-left:3px solid var(--muted-foreground)}.plan-strategy-title{font-size:15px;font-weight:var(--font-weight-semibold);color:var(--foreground);margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid rgba(0,0,0,.1)}.plan-strategy-content{display:flex;flex-direction:column;gap:14px}.plan-strategy-item{display:flex;flex-direction:column;gap:6px}.plan-strategy-label{font-size:12px;font-weight:var(--font-weight-semibold);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.5px}.plan-strategy-text{font-size:13px;color:var(--foreground);line-height:1.6;margin:0;padding:0}.plan-strategy-text.empty{color:var(--muted-foreground);font-style:italic}.plan-strategy-list{margin:0;padding-left:0;list-style:none}.plan-strategy-list li{font-size:13px;color:var(--foreground);line-height:1.6;position:relative;padding-left:16px;margin-bottom:4px}.plan-strategy-list li:before{content:"•";position:absolute;left:0;color:var(--muted-foreground);font-weight:700;font-size:14px}.plan-strategy-big-steps{margin:0;padding-left:0;list-style:none;counter-reset:strategy-step-counter}.plan-strategy-big-steps li{font-size:13px;color:var(--foreground);line-height:1.6;margin-bottom:6px;display:flex;align-items:flex-start;gap:10px;counter-increment:strategy-step-counter}.plan-strategy-big-steps li:before{content:counter(strategy-step-counter);display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--muted-foreground);color:#fff;font-size:11px;font-weight:600;flex-shrink:0}.plan-item-group{margin-bottom:16px;padding-left:16px;border-left:2px solid #e2e8f0}.plan-item-group:last-child{margin-bottom:0}.plan-item-title{font-size:14px;font-weight:var(--font-weight-semibold);color:#475569;margin-bottom:8px}.plan-item-compare{display:flex;flex-direction:column;gap:8px}.plan-state-box{background:#fff;border-radius:8px;padding:12px;border:1px solid #f1f5f9;display:flex;flex-direction:column;gap:4px}.plan-state-label{font-size:12px;font-weight:var(--font-weight-normal);color:#64748b;margin-bottom:4px}.plan-state-text,.plan-compact-text{font-size:14px;color:#475569;line-height:1.6;margin:0;padding:0}.plan-compact-text.empty{color:#94a3b8;font-style:italic}.plan-compact-list{margin:0;padding-left:0;list-style:none}.plan-compact-list li{font-size:14px;color:#475569;line-height:1.6;position:relative;padding-left:16px;margin-bottom:4px}.plan-compact-list li:before{content:"•";position:absolute;left:0;color:#94a3b8;font-weight:700;font-size:14px}.plan-compact-big-steps{margin:0;padding-left:0;list-style:none;counter-reset:compact-step-counter}.plan-compact-big-steps li{font-size:14px;color:#475569;line-height:1.6;margin-bottom:6px;display:flex;align-items:flex-start;gap:10px;counter-increment:compact-step-counter}.plan-compact-big-steps li:before{content:counter(compact-step-counter);display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#94a3b8;color:#fff;font-size:11px;font-weight:600;flex-shrink:0}.chat-section{margin-bottom:0;flex:1;min-height:0;display:flex;flex-direction:column;padding:0}.chat-container{background:#fffffff2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(226,232,240,.8);border-radius:16px;box-shadow:0 10px 25px #0000000d;overflow:hidden;display:flex;flex-direction:column;height:550px}.chat-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-bottom:1px solid #e2e8f0;background:linear-gradient(to right,#f8fafc,#f1f5f9);flex-shrink:0}.chat-header-left{display:flex;align-items:center;gap:10px}.chat-header-icon{width:36px;height:36px;border-radius:8px;background:#fff;border:1px solid #e2e8f0;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0000001a;font-size:16px}.chat-header-title{font-size:16px;font-weight:var(--font-weight-semibold);color:#0f172a}.chat-messages{padding:16px 24px;display:flex;flex-direction:column;gap:12px;flex:1;overflow-y:auto;min-height:0}.chat-message{display:flex}.chat-message.user{justify-content:flex-end}.chat-message.tutor,.chat-message.assistant{justify-content:flex-start}.message-bubble{max-width:85%;border-radius:12px;padding:12px 16px}.message-bubble.user{background:linear-gradient(to bottom right,#eff6ff,#dbeafe);color:#1e40af;border:1px solid #bfdbfe}.message-bubble.tutor,.message-bubble.assistant{background:linear-gradient(to bottom right,#f8fafc,#f1f5f9);color:#1e293b;border:1px solid #e2e8f0}.message-meta{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:11px}.message-role{font-weight:600;padding:2px 6px;border-radius:4px}.message-role.tutor{background:#dbeafe;color:#1e40af}.message-role.assistant{background:#e2e8f0;color:#475569}.message-role.user{background:#dbeafe;color:#1e40af}.message-time{color:#94a3b8;font-size:10px}.message-text{margin:0;font-size:14px;line-height:1.75;white-space:pre-wrap}.message-text .markdown-latex-content{display:inline;color:inherit}.message-text .markdown-latex-content *{color:inherit}.message-text .md-paragraph{display:inline}.message-text .katex{font-size:1.1em}.message-text .katex-display{margin:.5em 0;overflow-x:auto;overflow-y:hidden}.message-text strong{font-weight:600}.message-text em{font-style:italic}.message-text code{background-color:#0000000d;padding:2px 6px;border-radius:4px;font-family:Consolas,Monaco,monospace;font-size:.9em}.message-text pre{background-color:#0000000d;padding:12px;border-radius:8px;overflow-x:auto;margin:8px 0}.message-text pre code{background:none;padding:0}.message-text ul,.message-text ol{margin:8px 0;padding-left:24px}.message-text li{margin:4px 0}.message-image{max-width:220px;border-radius:8px;margin-bottom:8px;box-shadow:0 2px 8px #0000001a}.typing-indicator{display:flex;gap:6px;padding:4px 0}.typing-indicator span{width:8px;height:8px;background:var(--primary);border-radius:50%;animation:typing 1.4s infinite ease-in-out}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{transform:translateY(0);opacity:.6}30%{transform:translateY(-8px);opacity:1}}.loading-bubble{min-width:120px}.loading-agent-info{display:flex;align-items:center;gap:6px;margin-bottom:8px;font-size:13px}.loading-agent-name{font-weight:600;color:var(--primary)}.loading-status{color:#64748b;animation:pulse-opacity 1.5s infinite}@keyframes pulse-opacity{0%,to{opacity:.6}50%{opacity:1}}.chat-input-area{padding:16px 24px;border-top:1px solid #e2e8f0;background:linear-gradient(to right,#f8fafc,#f1f5f9);flex-shrink:0}.role-toggle-container{display:flex;align-items:center;margin-bottom:12px}.role-toggle{display:flex;gap:4px;background:#e2e8f0;padding:3px;border-radius:8px}.role-toggle-btn{padding:6px 14px;border:none;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s;background:transparent;color:#64748b}.role-toggle-btn:hover{color:#334155}.role-toggle-btn.active{background:#fff;color:#1e40af;box-shadow:0 1px 3px #0000001a}.chat-input-wrapper{display:flex;gap:8px;align-items:center}.image-attach-btn{display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;transition:all .2s;padding:8px;border-radius:6px;background:transparent;border:none}.image-attach-btn:hover{background:#0000000d}.attached-image{position:relative;flex-basis:100%;margin-bottom:8px}.attached-image img{max-height:90px;border-radius:12px;box-shadow:0 4px 12px #00000026}.attached-image button{position:absolute;top:-8px;right:-8px;width:24px;height:24px;border-radius:50%;background:#ef4444;color:#fff;border:none;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #ef444466}.chat-input{flex:1;padding:10px 16px;border-radius:8px;background:#fff;border:1px solid #cbd5e1;font-size:14px;outline:none;font-family:inherit;color:#0f172a;transition:all .2s}.chat-input:focus{outline:none;box-shadow:0 0 0 2px #47556933;border-color:#475569}.chat-input::placeholder{color:#94a3b8}.send-btn{padding:10px 16px;border-radius:8px;background:linear-gradient(to right,#475569,#1e293b);color:#fff;border:none;font-size:16px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 1px 3px #0000001a}.send-btn:hover:not(:disabled){background:linear-gradient(to right,#1e293b,#0f172a);box-shadow:0 2px 8px #00000026}.send-btn:disabled{opacity:.4;cursor:not-allowed}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:#0000000d;border-radius:3px}.chat-messages::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}.chat-messages::-webkit-scrollbar-thumb:hover{background:#0000004d}.init-phase-modern{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;width:100%;max-width:1024px;margin:0 auto}.init-header-modern{text-align:center;margin-bottom:48px}.init-logo-modern{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:16px;background:linear-gradient(135deg,#1e293b,#0f172a);margin-bottom:16px;box-shadow:0 8px 24px #0003}.logo-icon{font-size:32px}.init-title-modern{font-size:32px;font-weight:var(--font-weight-bold);color:var(--foreground);margin-bottom:8px}.init-subtitle-modern{font-size:var(--font-size);color:var(--muted-foreground);font-weight:var(--font-weight-normal)}.upload-section-modern{width:100%;margin-bottom:32px}.upload-section-header{display:flex;align-items:center;gap:8px;margin-bottom:24px;padding:0 8px}.section-icon{font-size:20px;color:#94a3b8}.upload-section-title{font-size:18px;font-weight:var(--font-weight-semibold);color:var(--muted-foreground);margin:0}.upload-grid-modern{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}@media (max-width: 768px){.upload-grid-modern{grid-template-columns:1fr}}.upload-card-modern{width:100%}.upload-label-modern{display:block;border-radius:var(--radius-2xl);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#ffffffe6;border:2px dashed var(--border-color, #cbd5e1);transition:all .3s ease;cursor:pointer;overflow:hidden;box-shadow:0 8px 32px #00000014}.upload-label-modern:hover{border-color:var(--border-color, #475569);box-shadow:0 12px 40px #0000001f;transform:translateY(-2px)}.upload-content{padding:32px;text-align:center}.upload-icon-modern{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:12px;margin-bottom:16px;font-size:32px;transition:transform .3s ease}.upload-label-modern:hover .upload-icon-modern{transform:scale(1.1)}.upload-title-modern{font-size:18px;font-weight:var(--font-weight-semibold);color:var(--foreground);margin-bottom:var(--spacing-md)}.upload-success{margin-top:16px}.success-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:9999px;background:#f1f5f9;color:#475569;margin-bottom:16px}.success-dot{width:8px;height:8px;border-radius:50%;background:#64748b}.image-preview-modern{margin-top:16px}.image-preview-modern img{max-width:100%;max-height:200px;border-radius:12px;box-shadow:0 4px 16px #0000001a;object-fit:contain}.upload-placeholder-modern{margin-top:16px}.placeholder-button{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:12px var(--spacing-md);border-radius:var(--radius-lg);background:var(--card);border:1px solid var(--border);color:var(--muted-foreground);transition:all .2s ease}.upload-label-modern:hover .placeholder-button{border-color:var(--border-color, #475569);color:var(--border-color, #475569)}.placeholder-hint{font-size:14px;color:var(--muted-foreground);margin-top:12px;margin-bottom:0}.start-btn-modern{width:100%;padding:20px var(--spacing-lg);border-radius:var(--radius-2xl);background:linear-gradient(135deg,#1e293b,#0f172a);color:var(--primary-foreground);border:none;font-size:var(--font-size);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all .3s ease;box-shadow:0 8px 24px #0003;display:flex;align-items:center;justify-content:center;gap:12px;font-family:inherit}.start-btn-modern:hover:not(:disabled){background:linear-gradient(135deg,#0f172a,#030213);box-shadow:0 12px 32px #0000004d;transform:translateY(-2px)}.start-btn-modern:disabled{opacity:.5;cursor:not-allowed}.btn-icon{font-size:20px}.btn-arrow{font-size:20px;transition:transform .3s ease}.start-btn-modern:hover:not(:disabled) .btn-arrow{transform:translate(4px)}.info-text-modern{margin-top:24px;text-align:center}.info-text-modern p{font-size:14px;color:var(--muted-foreground);margin:0}.error-box-modern{background:#fee2e2e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(239,68,68,.3);border-radius:16px;padding:16px 20px;margin-bottom:24px;color:#dc2626;width:100%;max-width:1024px}.error-box-modern h3{margin-bottom:6px;font-size:16px;font-weight:600}.error-box-modern p{margin:0;font-size:14px}@media (max-width: 1024px){.chat-layout{grid-template-columns:1fr;gap:16px}.plan-card{max-height:500px;position:relative;top:0}.container{padding:0 16px}}.plan-tabs{display:flex;gap:4px;padding:12px 16px;background:linear-gradient(to right,#f8fafc,#f1f5f9);border-bottom:1px solid #e2e8f0}.plan-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 8px;border:1px solid transparent;border-radius:10px;background:transparent;cursor:pointer;transition:all .2s ease}.plan-tab:hover{background:#fffc;border-color:#e2e8f0}.plan-tab.active{background:linear-gradient(to bottom right,#475569,#1e293b);border-color:#334155;box-shadow:0 2px 8px #00000026}.plan-tab-number{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:12px;font-weight:600;background:#e2e8f0;color:#475569;transition:all .2s ease}.plan-tab.active .plan-tab-number{background:#fff3;color:#fff}.plan-tab-name{font-size:11px;font-weight:500;color:#64748b;white-space:nowrap;transition:all .2s ease}.plan-tab.active .plan-tab-name{color:#fff}.plan-state-text.waiting,.plan-text.waiting{color:#94a3b8}.diagnosis-meta{border-top:1px solid #e2e8f0;background:linear-gradient(to bottom right,#f8fafc,#f1f5f9)}.diagnosis-header{padding:12px 16px;border-bottom:1px solid #e2e8f0}.diagnosis-title{font-size:14px;font-weight:600;color:#1e293b}.diagnosis-body{padding:16px;display:flex;flex-direction:column;gap:12px}.diagnosis-item{display:flex;align-items:center;justify-content:space-between;gap:12px}.diagnosis-item.vertical{flex-direction:column;align-items:flex-start;gap:6px}.diagnosis-label{font-size:13px;font-weight:500;color:#64748b}.diagnosis-badge{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600}.diagnosis-badge.high{background:#dcfce7;color:#166534}.diagnosis-badge.medium{background:#fef9c3;color:#854d0e}.diagnosis-badge.low{background:#fee2e2;color:#991b1b}.diagnosis-badge.yes{background:#dbeafe;color:#1e40af}.diagnosis-badge.no{background:#f1f5f9;color:#64748b}.diagnosis-text{font-size:13px;color:#334155;line-height:1.6;margin:0;padding:10px 12px;background:#fff;border-radius:8px;border:1px solid #e2e8f0;width:100%}.diagnosis-questions{margin:0;padding:0;list-style:none;width:100%;display:flex;flex-direction:column;gap:8px}.diagnosis-questions li{font-size:13px;color:#334155;padding:10px 12px;background:linear-gradient(to right,#eff6ff,#f0f9ff);border-radius:8px;border:1px solid #bfdbfe;cursor:pointer;transition:all .2s}.diagnosis-questions li:hover{background:linear-gradient(to right,#dbeafe,#e0f2fe);border-color:#93c5fd}.diagnosis-panel{background:#fff;border:1px solid #e2e8f0;border-radius:12px 12px 0 0;box-shadow:0 -4px 20px #0000001a;margin:0 16px;animation:slideUp .2s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.diagnosis-panel-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #e2e8f0;background:linear-gradient(to right,#f8fafc,#f1f5f9);border-radius:12px 12px 0 0}.diagnosis-panel-title{font-size:14px;font-weight:600;color:#1e293b}.diagnosis-panel-close{background:none;border:none;font-size:16px;color:#64748b;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s}.diagnosis-panel-close:hover{background:#f1f5f9;color:#1e293b}.diagnosis-panel-body{padding:16px;display:flex;flex-direction:column;gap:12px;max-height:300px;overflow-y:auto}.diagnosis-panel-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.diagnosis-panel-row.vertical{flex-direction:column;align-items:flex-start;gap:6px}.diagnosis-panel-label{font-size:13px;font-weight:500;color:#64748b}.diagnosis-panel-text{font-size:13px;color:#334155;line-height:1.5;margin:0;padding:8px 12px;background:#f8fafc;border-radius:6px;width:100%}.diagnosis-panel-reasoning{font-size:12px;color:#475569;line-height:1.6;margin:0;padding:10px 12px;background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:8px;width:100%;border-left:3px solid #f59e0b;white-space:pre-wrap;word-break:break-word}.diagnosis-panel-completion{font-size:12px;color:#166534;line-height:1.6;margin:0;padding:10px 12px;background:linear-gradient(135deg,#dcfce7,#bbf7d0);border-radius:8px;width:100%;border-left:3px solid #22c55e;font-weight:500}.diagnosis-panel-questions{display:flex;flex-direction:column;gap:8px;padding-top:8px;border-top:1px solid #e2e8f0}.diagnosis-question-list{display:flex;flex-direction:column;gap:6px}.diagnosis-question-btn{width:100%;text-align:left;padding:10px 14px;background:linear-gradient(to right,#eff6ff,#f0f9ff);border:1px solid #bfdbfe;border-radius:8px;font-size:13px;color:#1e40af;cursor:pointer;transition:all .2s}.diagnosis-question-btn:hover{background:linear-gradient(to right,#dbeafe,#e0f2fe);border-color:#93c5fd;transform:translate(4px)}.diagnosis-question-btn.auto-sent{background:linear-gradient(to right,#f0fdf4,#ecfdf5);border-color:#86efac;opacity:.8;position:relative}.diagnosis-question-btn.auto-sent:hover{background:linear-gradient(to right,#dcfce7,#d1fae5);border-color:#4ade80;opacity:1}.auto-sent-badge{display:inline-block;padding:2px 8px;background:#22c55e;color:#fff;border-radius:12px;font-size:11px;font-weight:600;margin-bottom:6px}.question-meta{display:flex;gap:6px;margin-bottom:6px}.question-tag{font-size:10px;font-weight:600;padding:2px 6px;background:#1e40af;color:#fff;border-radius:4px}.question-item{font-size:10px;font-weight:500;padding:2px 6px;background:#e0e7ff;color:#3730a3;border-radius:4px}.question-text{font-size:13px;color:#1e40af;font-weight:500;line-height:1.4}.question-reason{font-size:11px;color:#64748b;margin-top:4px;font-style:italic}.updated-items-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.updated-item-tag{font-size:11px;font-weight:500;padding:4px 8px;background:linear-gradient(135deg,#dbeafe,#e0f2fe);color:#1e40af;border-radius:6px;border:1px solid #93c5fd}.sufficiency-grid{display:flex;flex-direction:column;gap:12px;margin-top:8px}.sufficiency-section{background:#f8fafccc;border-radius:8px;padding:10px;border:1px solid rgba(0,0,0,.05)}.sufficiency-section-title{font-size:12px;font-weight:600;color:#334155;margin-bottom:8px;display:block}.sufficiency-items{display:flex;flex-wrap:wrap;gap:6px}.sufficiency-item{display:flex;align-items:center;gap:4px;font-size:11px}.sufficiency-label{color:#64748b}.sufficiency-badge{padding:2px 6px;border-radius:4px;font-size:10px;font-weight:600}.sufficiency-badge.sufficient{background:#dcfce7;color:#166534}.sufficiency-badge.partial{background:#fef9c3;color:#854d0e}.sufficiency-badge.none{background:#fee2e2;color:#991b1b}.plan-tab-sufficiency{display:flex;gap:4px;margin-left:6px}.suff-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;font-size:10px;font-weight:700;color:#fff}.suff-dot.sufficient{background:#22c55e}.suff-dot.partial{background:#eab308}.suff-dot.none{background:#ef4444}.updated-badge{display:inline-flex;align-items:center;gap:2px;margin-left:8px;padding:2px 8px;background:linear-gradient(135deg,#dbeafe,#e0f2fe);color:#1e40af;font-size:11px;font-weight:600;border-radius:12px;animation:pulse-badge 2s ease-in-out infinite}@keyframes pulse-badge{0%,to{opacity:1}50%{opacity:.7}}.suff-badge{display:inline-flex;align-items:center;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:600;border-radius:4px}.suff-badge.sufficient{background:#dcfce7;color:#166534}.suff-badge.partial{background:#fef9c3;color:#854d0e}.suff-badge.none{background:#fee2e2;color:#991b1b}.plan-state-box.suff-충분{border-left:3px solid #22c55e}.plan-state-box.suff-부족{border-left:3px solid #eab308}.plan-state-box.suff-없음{border-left:3px solid #ef4444}.plan-item-title{display:flex;align-items:center;flex-wrap:wrap}.compact-list{display:flex;flex-direction:column;gap:8px}.compact-item{background:#ffffffe6;border-radius:10px;border:1px solid rgba(0,0,0,.08);overflow:hidden;transition:all .2s ease}.compact-item:hover{border-color:#00000026;box-shadow:0 2px 8px #0000000f}.compact-header{display:flex;align-items:center;gap:8px;padding:10px 14px;background:linear-gradient(to right,#f8fafce6,#f1f5f9e6);border-bottom:1px solid rgba(0,0,0,.05)}.compact-status{font-size:14px;line-height:1}.compact-title{font-size:13px;font-weight:600;color:#1e293b;flex:1}.compact-updated{font-size:12px;animation:pulse-badge 2s ease-in-out infinite}.compact-content{padding:12px 14px;display:flex;flex-direction:column;gap:8px}.compact-student,.compact-strategy{display:flex;gap:8px;font-size:12px;line-height:1.5}.compact-label{font-weight:600;color:#64748b;min-width:36px;flex-shrink:0}.compact-student .compact-label{color:#2563eb}.compact-strategy .compact-label{color:#059669}.compact-text{color:#334155;flex:1;word-break:break-word}.compact-strategy{padding-top:6px;border-top:1px dashed rgba(0,0,0,.08)}.compact-strategy .compact-text{color:#64748b;font-size:11px}.strategy-box{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #7dd3fc;border-radius:10px;margin-bottom:12px;overflow:hidden}.strategy-box-header{display:flex;align-items:center;gap:8px;padding:10px 14px;background:linear-gradient(to right,#0ea5e91a,#38bdf81a);border-bottom:1px solid rgba(14,165,233,.2)}.strategy-box-icon{font-size:14px}.strategy-box-title{font-size:13px;font-weight:600;color:#0369a1}.strategy-box-content{padding:12px 14px}.strategy-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.strategy-steps li{font-size:12px;color:#334155;line-height:1.5}.strategy-steps li::marker{color:#0284c7;font-weight:600}.strategy-empty{font-size:12px;color:#94a3b8;font-style:italic}.diagnosis-toggle-btn{width:40px;height:40px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;font-size:18px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;flex-shrink:0}.diagnosis-toggle-btn:hover:not(:disabled){background:#f1f5f9;border-color:#cbd5e1}.diagnosis-toggle-btn.active{background:linear-gradient(to bottom right,#475569,#1e293b);border-color:#334155;color:#fff}.diagnosis-toggle-btn.has-data{border-color:#93c5fd;background:#eff6ff}.diagnosis-toggle-btn.has-data.active{background:linear-gradient(to bottom right,#475569,#1e293b)}.diagnosis-toggle-btn:disabled{opacity:.4;cursor:not-allowed}.compact-error{font-size:10px;font-weight:500;padding:2px 6px;border-radius:4px;margin-left:auto;flex-shrink:0}.compact-error.no-error{background:#dcfce7;color:#15803d;border:1px solid #86efac}.compact-error.error{background:#fee2e2;color:#dc2626;border:1px solid #fca5a5}.compact-error.none{background:#f1f5f9;color:#94a3b8;border:1px solid #e2e8f0}.compact-error.unknown{background:#e5e7eb;color:#6b7280;border:1px solid #d1d5db}.loading-indicator{display:flex;align-items:center;gap:10px}.loading-text{font-size:13px;color:var(--muted-foreground)}.saved-problems-section{width:100%;max-width:600px;background:#fff;border-radius:16px;border:1px solid #e2e8f0;overflow:hidden;box-shadow:0 2px 8px #0000000a}.saved-problems-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-bottom:1px solid #e2e8f0;cursor:pointer;transition:background .2s ease}.saved-problems-header:hover{background:linear-gradient(135deg,#f1f5f9,#e2e8f0)}.saved-problems-title{display:flex;align-items:center;gap:10px}.saved-problems-title h2{margin:0;font-size:16px;font-weight:600;color:#1e293b}.problem-count{background:#3b82f6;color:#fff;font-size:12px;font-weight:600;padding:2px 8px;border-radius:12px}.collapse-icon{font-size:12px;color:#64748b;transition:transform .3s ease}.collapse-icon.open{transform:rotate(180deg)}.saved-problems-list{max-height:280px;overflow-y:auto}.saved-problem-item{display:flex;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid #f1f5f9;cursor:pointer;transition:all .2s ease}.saved-problem-item:last-child{border-bottom:none}.saved-problem-item:hover{background:#f8fafc}.problem-item-icon{font-size:24px;flex-shrink:0}.problem-item-info{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.problem-item-title{font-size:14px;font-weight:500;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.problem-item-date{font-size:12px;color:#94a3b8}.problem-item-actions{display:flex;gap:8px;flex-shrink:0}.problem-select-btn{padding:6px 14px;border:none;border-radius:8px;background:#3b82f6;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.problem-select-btn:hover{background:#2563eb;transform:translateY(-1px)}.problem-delete-btn{padding:6px 10px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;font-size:14px;cursor:pointer;transition:all .2s ease}.problem-delete-btn:hover{background:#fef2f2;border-color:#fecaca}.section-divider{display:flex;align-items:center;width:100%;max-width:600px;margin:24px 0}.section-divider:before,.section-divider:after{content:"";flex:1;height:1px;background:#e2e8f0}.section-divider span{padding:0 16px;font-size:13px;color:#94a3b8;white-space:nowrap}.problem-title-input-wrapper{width:100%;margin-bottom:16px}.problem-title-label{display:block;font-size:13px;font-weight:500;color:#64748b;margin-bottom:8px}.problem-title-input{width:100%;padding:12px 16px;border:1px solid #e2e8f0;border-radius:10px;font-size:14px;color:#1e293b;background:#f8fafc;transition:all .2s ease;box-sizing:border-box}.problem-title-input:focus{outline:none;border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f61a}.problem-title-input::placeholder{color:#94a3b8}.gold-model-selector{width:100%;margin-bottom:20px;padding:16px;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #fcd34d;border-radius:12px;box-sizing:border-box}.gold-model-label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#92400e;margin-bottom:10px}.gold-model-icon{font-size:18px}.gold-model-select{width:100%;padding:10px 14px;border:1px solid #f59e0b;border-radius:8px;font-size:14px;color:#78350f;background:#fff;cursor:pointer;transition:all .2s ease}.gold-model-select:focus{outline:none;border-color:#d97706;box-shadow:0 0 0 3px #f59e0b33}.gold-model-hint{margin-top:8px;font-size:12px;color:#a16207}.student-page{width:100%;height:100vh;height:100dvh;height:var(--fullHeight, 100dvh);position:fixed;top:0;right:0;bottom:0;left:0;background:#f8fafc;display:flex;flex-direction:column;overflow:hidden;padding-bottom:env(safe-area-inset-bottom,0px)}.student-error-banner{background:#fef2f2;border-bottom:1px solid #fecaca;padding:12px 20px;display:flex;justify-content:space-between;align-items:center;color:#991b1b}.student-error-banner button{padding:6px 12px;background:#ef4444;color:#fff;border:none;border-radius:6px;cursor:pointer}.student-layout{display:flex;flex:1;overflow:hidden;min-height:0;height:100%}.student-problem-panel,.student-timeline-panel,.student-chat-panel{display:flex;flex-direction:column;background:#fff;border-right:1px solid #e2e8f0;min-width:0}.student-timeline-panel{border-right:none}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid #e2e8f0;background:#f8fafc;flex-shrink:0;height:48px;box-sizing:border-box;min-width:0;overflow:hidden;position:relative}.panel-title{font-weight:600;font-size:14px;color:#334155}.right-panel-tabs{display:flex;gap:0}.right-panel-tab{padding:6px 12px;border:none;background:transparent;font-size:13px;font-weight:500;color:#94a3b8;cursor:pointer;border-bottom:2px solid transparent;transition:all .15s ease}.right-panel-tab:hover{color:#334155}.right-panel-tab.active{color:#334155;border-bottom-color:#3b82f6}.view-report-btn{padding:6px 12px;background:#4a9eff;color:#fff;border:none;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:background .2s}.view-report-btn:hover{background:#3d8be0}.panel-header-right{display:flex;align-items:center;gap:12px}.force-complete-area{align-self:center;padding:16px 0 24px;margin-top:8px}.force-complete-btn{width:fit-content;padding:10px 24px;background:#fff;color:#64748b;border:1px solid #d1d5db;border-radius:24px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;box-shadow:0 1px 3px #00000014;white-space:nowrap}.force-complete-btn:hover:not(:disabled){background:#fef2f2;border-color:#fca5a5;color:#dc2626}.new-session-btn{padding:6px 12px;background:#64748b;color:#fff;border:none;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:background .2s}.new-session-btn:hover:not(:disabled){background:#475569}.new-session-btn:disabled{background:#94a3b8;cursor:not-allowed}.live-indicator{display:flex;align-items:center;gap:6px;font-size:12px;padding:4px 10px;border-radius:12px;background:#0000000d;transition:all .2s}.live-indicator.active{background:#22c55e1f;color:#16a34a}.live-indicator.inactive{background:#0000000d;color:#9ca3af}.live-indicator.warning{background:#ef44441a;color:#ef4444}.live-indicator.warning .live-dot{animation:pulse 1s ease-in-out infinite}.live-indicator.warning .last-updated{color:#fca5a5}.live-indicator.stale{background:#00000008;color:#9ca3af}.live-indicator.stale .last-updated{color:#9ca3af}.live-indicator.complete{background:#3b82f61a;color:#3b82f6}.live-dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex-shrink:0}.live-indicator.active .live-dot{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.9)}}.live-text{font-weight:500}.last-updated{color:#9ca3af;font-size:11px;margin-left:2px}.live-indicator.active .last-updated{color:#6ee7b7}.student-info{display:flex;align-items:center;font-size:13px}.student-label{color:#94a3b8;margin-right:4px}.student-name{font-weight:500;color:#334155}.panel-login-info{padding:12px 16px;flex-shrink:0}.login-label{font-size:10px;color:#b0b8c4;margin-bottom:4px}.login-detail{font-size:11px;color:#94a3b8}.panel-content{flex:1;overflow-y:auto;padding:16px;min-width:0;width:100%;box-sizing:border-box}.student-problem-panel{min-width:0!important;max-width:600px;flex:0 0 auto;overflow:hidden}.student-problem-panel *{min-width:0}.student-timeline-panel{min-width:0!important;max-width:500px;flex:0 0 auto;overflow:hidden}.student-timeline-panel *{min-width:0}.panel-header-mobile-clickable .panel-collapse-icon{display:none}@media (max-width: 640px){.panel-header-mobile-clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.panel-header-mobile-clickable:active{background:#e2e8f0}.panel-header-mobile-clickable .panel-collapse-icon{display:block;color:#64748b;transition:transform .2s ease}.panel-header-mobile-clickable .panel-collapse-icon.collapsed{transform:rotate(-90deg)}}.panel-toggle-btn{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;border-radius:6px;color:#94a3b8;cursor:pointer;padding:0;z-index:1;transition:background .15s,color .15s}.student-problem-panel .panel-toggle-btn{right:8px}.student-timeline-panel .panel-toggle-btn{left:8px}.student-timeline-panel .panel-header{justify-content:center}.panel-toggle-btn:hover{background:#f1f5f9;color:#475569}@media (min-width: 641px){.student-problem-panel.collapsed{width:40px!important;min-width:40px!important;max-width:40px!important;flex:0 0 40px!important}.student-problem-panel.collapsed .panel-header{justify-content:center;overflow:visible}.student-problem-panel.collapsed .panel-title,.student-problem-panel.collapsed .panel-content{display:none}.student-problem-panel.collapsed .panel-toggle-btn{position:static;transform:none;flex-shrink:0}.student-timeline-panel.collapsed{width:40px!important;min-width:40px!important;max-width:40px!important;flex:0 0 40px!important}.student-timeline-panel.collapsed .panel-header{justify-content:center;overflow:visible}.student-timeline-panel.collapsed .panel-content{display:none}.student-timeline-panel.collapsed .panel-toggle-btn{position:static;transform:none;flex-shrink:0}.student-problem-panel.collapsed+.panel-divider,.panel-divider:has(+.student-timeline-panel.collapsed){display:none}}.panel-divider{width:6px;cursor:col-resize;background:transparent;position:relative;flex-shrink:0}.panel-divider:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:4px;height:40px;background:#e2e8f0;border-radius:2px;transition:background .2s,height .2s}.panel-divider:hover:after,.student-layout.dragging .panel-divider:after{background:#94a3b8;height:60px}.student-layout.dragging{cursor:col-resize;-webkit-user-select:none;user-select:none}.curriculum-info{padding:8px 12px;background:#f8fafc;border-radius:6px;margin-bottom:12px;line-height:1.4;word-break:keep-all}.curriculum-info .curriculum-title{font-size:11px;color:#94a3b8;margin-bottom:2px}.curriculum-info .module-title{font-size:13px;color:#475569;font-weight:500}.problem-image-container{margin-bottom:16px;border-radius:8px;overflow:hidden;border:1px solid #e2e8f0}.problem-image{width:100%;height:auto;display:block}.problem-image.clickable{cursor:zoom-in;transition:opacity .2s}.problem-image.clickable:hover{opacity:.9}.problem-text{font-size:14px;line-height:1.6;color:#334155;margin-bottom:16px}.problem-choices-student{display:flex;flex-direction:column;gap:8px}.choice-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;font-size:14px}.choice-item.selected{background:#eff6ff;border-color:#3b82f6}.choice-item.incorrect{background:#fef2f2;border-color:#ef4444}.choice-number{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#e2e8f0;border-radius:50%;font-size:12px;font-weight:600;color:#64748b;flex-shrink:0}.choice-item.selected .choice-number{background:#3b82f6;color:#fff}.choice-item.incorrect .choice-number{background:#ef4444;color:#fff}.choice-text{flex:1}.choice-check{color:#22c55e;font-weight:600}.choice-wrong{color:#ef4444;font-weight:600}.student-chat-panel{flex:1;min-width:200px;min-height:0;height:100%}.reset-btn-small{padding:6px 12px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;font-size:12px;color:#64748b;cursor:pointer;transition:all .2s;height:28px;display:flex;align-items:center}.reset-btn-small:hover{background:#e2e8f0;color:#334155}.chat-messages-student{flex:1;overflow-y:auto;min-height:0;padding:16px;display:flex;flex-direction:column;gap:12px;width:100%;box-sizing:border-box}.chat-msg{display:flex;flex-direction:column;max-width:60%!important}.chat-msg.chat-msg-tool{width:100%}.chat-msg.chat-msg-tool .msg-content{width:100%;box-sizing:border-box}.chat-msg.user,.chat-msg.student{align-self:flex-end}.chat-msg.tutor,.chat-msg.assistant{align-self:flex-start}.msg-role{font-size:11px;color:#94a3b8;margin-bottom:4px;padding:0 8px}.msg-content{padding:12px 16px;border-radius:16px;font-size:14px;line-height:1.5}.chat-msg.user .msg-content,.chat-msg.student .msg-content{background:#3b82f6;color:#fff;border-bottom-right-radius:4px}.chat-msg.user .msg-content *,.chat-msg.student .msg-content *{color:#fff}.chat-msg.tutor .msg-content,.chat-msg.assistant .msg-content{background:#f1f5f9;color:#334155;border-bottom-left-radius:4px}.chat-date-header{text-align:center;font-size:12px;color:#94a3b8;padding:12px 0 16px}.msg-time{font-size:11px;color:#94a3b8;margin-top:4px;padding:0 8px}.chat-msg.user .msg-time,.chat-msg.student .msg-time{text-align:right}.msg-footer{display:flex;align-items:center;gap:8px;margin-top:4px;padding:0 8px}.msg-footer .msg-time{margin-top:0;padding:0}.chat-msg.user .msg-footer,.chat-msg.student .msg-footer{justify-content:flex-end}.survey-response-bubble{display:flex;flex-direction:column;gap:6px}.survey-response-label{display:inline-block;font-size:11px;font-weight:600;background:#fff3;padding:2px 8px;border-radius:4px;width:fit-content}.survey-response-answers{display:flex;flex-direction:column;gap:2px}.survey-response-item{font-size:16px;line-height:1.5}.report-btn{font-size:11px;color:#94a3b8;background:none;border:none;padding:2px 6px;cursor:pointer;border-radius:4px;transition:all .2s}.report-btn:hover{color:#64748b;background:#0000000d}.chat-msg.tutor .markdown-block p,.chat-msg.assistant .markdown-block p{margin:0 0 8px}.chat-msg.tutor .markdown-block p:last-child,.chat-msg.assistant .markdown-block p:last-child{margin-bottom:0}.chat-msg.tutor .markdown-block blockquote,.chat-msg.assistant .markdown-block blockquote{all:unset!important;display:block!important;margin:8px 0!important;padding:8px 12px!important;background:#ffffff80!important;border:1px solid rgba(0,0,0,.06)!important;border-radius:8px!important;font-size:14px!important;font-style:normal!important;color:#475569!important;-webkit-backdrop-filter:blur(4px)!important;backdrop-filter:blur(4px)!important}.chat-msg.tutor .markdown-block blockquote p,.chat-msg.assistant .markdown-block blockquote p{margin:0!important;font-size:14px!important;line-height:1.5!important}.chat-msg.tutor .markdown-block em,.chat-msg.assistant .markdown-block em{color:#64748b;font-size:13px}.chat-msg.tutor .markdown-block strong,.chat-msg.assistant .markdown-block strong{font-weight:600}.chat-msg.tutor .markdown-block ol,.chat-msg.assistant .markdown-block ol{margin:8px 0;padding-left:24px}.chat-msg.tutor .markdown-block ul,.chat-msg.assistant .markdown-block ul{margin:8px 0;padding-left:20px}.chat-msg.tutor .markdown-block li,.chat-msg.assistant .markdown-block li{margin:4px 0;line-height:1.5}.msg-image{max-width:200px;border-radius:8px;margin-bottom:8px}.msg-image.clickable{cursor:zoom-in;transition:opacity .2s}.msg-image.clickable:hover{opacity:.85}.msg-content.typing{display:flex;gap:4px;padding:16px 20px}.msg-content.typing span{width:8px;height:8px;background:#94a3b8;border-radius:50%;animation:typing-bounce 1.4s infinite ease-in-out}.msg-content.typing span:nth-child(1){animation-delay:0s}.msg-content.typing span:nth-child(2){animation-delay:.2s}.msg-content.typing span:nth-child(3){animation-delay:.4s}@keyframes typing-bounce{0%,80%,to{transform:translateY(0)}40%{transform:translateY(-6px)}}.msg-content.loading-progress{padding:16px 20px;min-height:52px;display:flex;align-items:center}.loading-message{color:#64748b;font-size:14px;animation:loading-fade-in .3s ease-out,loading-pulse 2s ease-in-out .3s infinite}@keyframes loading-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes loading-pulse{0%,to{opacity:1}50%{opacity:.5}}.sse-progress-steps{display:flex;flex-direction:column;gap:8px}.sse-step{display:flex;align-items:center;gap:8px;font-size:13px;animation:loading-fade-in .3s ease-out}.sse-step.done{color:#94a3b8}.sse-step.active{color:#475569}.sse-step-check{color:#22c55e;font-size:12px;font-weight:600;flex-shrink:0;width:16px;text-align:center}.sse-step-spinner{width:14px;height:14px;border:2px solid #e2e8f0;border-top-color:#4263eb;border-radius:50%;flex-shrink:0;animation:sse-spin .8s linear infinite}.sse-step-text{line-height:1.4}@keyframes sse-spin{to{transform:rotate(360deg)}}.tool-progress-card{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#f0f4ff;border:1px solid #dbe4ff;border-radius:10px;animation:loading-fade-in .3s ease-out}.tool-progress-icon{font-size:20px;flex-shrink:0}.tool-progress-body{flex:1;min-width:0}.tool-progress-text{font-size:13px;font-weight:500;color:#4263eb;display:block;margin-bottom:6px}.tool-progress-bar{height:3px;background:#dbe4ff;border-radius:2px;overflow:hidden}.tool-progress-bar-fill{height:100%;width:40%;background:#4263eb;border-radius:2px;animation:tool-progress-slide 1.5s ease-in-out infinite}@keyframes tool-progress-slide{0%{transform:translate(-100%);width:40%}50%{transform:translate(80%);width:60%}to{transform:translate(250%);width:40%}}.chat-input-student{padding:16px;border-top:1px solid #e2e8f0;background:#f8fafc}.attached-preview{margin-bottom:12px;position:relative;display:inline-block}.attached-preview img{max-height:80px;border-radius:8px;border:1px solid #e2e8f0}.attached-preview button{position:absolute;top:-8px;right:-8px;width:24px;height:24px;background:#ef4444;color:#fff;border:none;border-radius:50%;cursor:pointer;font-size:12px}.input-row{display:flex;align-items:center;gap:4px;padding:4px;background:#fff;border:1px solid #e2e8f0;border-radius:28px;min-height:48px}.input-row.complete{background:#f1f5f9;border-color:#e2e8f0;padding:12px 20px;justify-content:center;align-items:center;min-height:48px}.input-row.complete .complete-message{color:#64748b;font-size:13px;font-weight:500;text-align:center}.attach-btn{width:36px!important;height:36px!important;min-width:36px;min-height:36px;display:flex;align-items:center;justify-content:center;background-color:#f1f5f9;border:none;border-radius:50%!important;cursor:pointer;font-size:0;transition:background-color .2s;flex-shrink:0;margin-left:4px;background-image:url(/icons/image_upload.png);background-repeat:no-repeat;background-position:center;background-size:60% 60%}.attach-btn:hover{background-color:#e2e8f0}.input-row textarea,.input-row .latex-input-textarea,.input-row .latex-input-preview{flex:1;padding:8px 12px;border:none!important;background:transparent!important;font-size:14px;font-family:inherit;outline:none;resize:none;min-height:36px;height:auto;max-height:100px;line-height:1.4;overflow-y:auto;box-shadow:none!important}.input-row .latex-input-container{min-height:36px;display:flex;align-items:center}@supports (-webkit-touch-callout: none){.input-row textarea,.input-row .latex-input-textarea{font-size:16px}}.input-row textarea:focus,.input-row .latex-input-textarea:focus,.input-row .latex-input-preview:focus{outline:none;border:none!important;box-shadow:none!important}.input-row textarea:disabled,.input-row .latex-input-textarea:disabled{background:transparent!important;color:#94a3b8;cursor:not-allowed}.input-row .send-btn{width:36px!important;height:36px!important;min-width:36px;min-height:36px;padding:0;background:#3b82f6;color:#fff;border:none;border-radius:50%!important;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;flex-shrink:0}.input-row .send-btn:hover:not(:disabled){background:#2563eb}.input-row .send-btn:disabled{background:#cbd5e1;cursor:not-allowed}.student-loading,.student-error,.student-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:40px}.student-loading .spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.student-loading p{color:#64748b}.student-error h2{color:#ef4444;margin-bottom:8px}.student-error p{color:#64748b;margin-bottom:16px}.student-error button{padding:10px 20px;background:#e2e8f0;color:#475569;border:none;border-radius:8px;cursor:pointer}.student-error button.primary{background:#3b82f6;color:#fff}.error-buttons{display:flex;gap:12px}.student-empty h2{color:#334155;margin-bottom:8px}.student-empty p{color:#64748b}.student-empty .hint{font-size:12px;color:#94a3b8;margin-top:8px}@media (max-width: 1024px){.student-chat-panel{flex:1}}@media (max-width: 768px){.student-timeline-panel{display:none}}.student-page .input-row.recording{display:flex;align-items:center;gap:4px;padding:4px 4px 4px 12px}.student-page .recording-waveform-container{flex:1;display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden}.student-page .recording-dot{width:8px;height:8px;border-radius:50%;background:#ef4444;animation:rec-blink 1s ease-in-out infinite;flex-shrink:0}.student-page .stop-recording-btn{width:36px!important;height:36px!important;min-width:36px;min-height:36px;border:none;background:#22c55e;color:#fff;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:50%!important;flex-shrink:0}.student-page .stop-recording-btn:hover{background:#16a34a}.student-page .cancel-recording-btn{width:36px!important;height:36px!important;min-width:36px;min-height:36px;border:none;background:#f1f5f9;color:#94a3b8;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:50%!important;flex-shrink:0}.student-page .cancel-recording-btn:hover{background:#e2e8f0;color:#64748b}.student-page .input-row.transcribing{display:flex;align-items:center;justify-content:center;padding:4px 16px}.student-page .transcribing-text{font-size:14px;color:#64748b;font-weight:500;animation:transcribing-fade .3s ease-out}@keyframes transcribing-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes rec-blink{0%,to{opacity:1}50%{opacity:.2}}.voice-preview-card{background:#f3f4f6;border-radius:8px;padding:12px;margin-bottom:8px;display:flex;flex-direction:column;gap:8px}.voice-preview-card .voice-preview-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.voice-preview-card .preview-audio{flex:1;min-width:180px;height:32px}.voice-preview-card .preview-warning{padding:8px;background:#fef3c7;border-radius:4px;font-size:13px;color:#92400e}.voice-preview-card .preview-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center;justify-content:flex-end;flex-shrink:0}.preview-btn{flex:0 0 auto;padding:8px 10px;border-radius:6px;font-size:13px;border:none;cursor:pointer;transition:all .2s;font-weight:500;white-space:nowrap}.preview-btn.primary{background:#4a9eff;color:#fff}.preview-btn.primary:hover{background:#3d8be0}.preview-btn.secondary{background:#fff;border:1px solid #d1d5db;color:#374151}.preview-btn.secondary:hover{background:#f9fafb;border-color:#9ca3af}.voice-btn{width:36px!important;height:36px!important;min-width:36px;min-height:36px;display:flex;align-items:center;justify-content:center;background:#fff;border:none;border-radius:50%!important;cursor:pointer;transition:all .2s;flex-shrink:0;background-image:url(/icons/voice_upload.png);background-repeat:no-repeat;background-position:center;background-size:80% 80%}.voice-btn:hover:not(:disabled){background-color:#e2e8f0}.voice-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 640px){.panel-toggle-btn{display:none}.student-layout{flex-direction:column;overflow:visible;min-height:0}.panel-divider{display:none}.student-problem-panel{width:100%!important;max-width:100%!important;min-width:0!important;max-height:none!important;border-right:none;border-bottom:1px solid #e2e8f0;flex-shrink:1!important}.student-problem-panel.collapsed{flex:0 0 48px!important;height:48px!important;min-height:48px!important;max-height:48px!important;overflow:hidden!important}.student-problem-panel.collapsed .panel-content{display:none!important}.student-problem-panel:not(.collapsed){flex:0 0 auto!important}.student-problem-panel:not(.collapsed) .panel-content{max-height:35vh;overflow-y:auto}.student-chat-panel{width:100%;flex:1;min-height:0;display:flex;flex-direction:column}.chat-messages-student{flex:1;min-height:0;overflow-y:auto}.chat-msg{max-width:85%!important}.chat-input-student{flex-shrink:0}.student-page .recording-controls{flex-direction:column;gap:12px}.student-page .recording-controls .stop-btn{width:100%;min-height:56px;font-size:16px}.student-page .recording-controls .cancel-btn{width:100%}.preview-actions{flex-direction:column}.preview-btn{width:100%}.input-row{gap:4px;padding:4px}.voice-btn,.input-row .send-btn,.attach-btn{width:40px;height:40px}}.image-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000;cursor:zoom-out;animation:modal-fade-in .2s ease-out}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}.image-modal-content{position:relative;max-width:90vw;max-height:90vh;cursor:default;animation:modal-scale-in .2s ease-out}@keyframes modal-scale-in{0%{transform:scale(.95)}to{transform:scale(1)}}.image-modal-content img{max-width:100%;max-height:90vh;border-radius:8px;box-shadow:0 20px 60px #00000080}.image-modal-close{position:absolute;top:-40px;right:0;width:32px;height:32px;background:#fff3;border:none;border-radius:50%;color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.image-modal-close:hover{background:#ffffff4d}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2) format("woff2"),url(/assets/KaTeX_AMS-Regular-DMm9YOAa.woff) format("woff"),url(/assets/KaTeX_AMS-Regular-DRggAlZN.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff) format("woff"),url(/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff) format("woff"),url(/assets/KaTeX_Fraktur-Regular-CB_wures.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Main-Bold-Cx986IdX.woff2) format("woff2"),url(/assets/KaTeX_Main-Bold-Jm3AIy58.woff) format("woff"),url(/assets/KaTeX_Main-Bold-waoOVXN0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2) format("woff2"),url(/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff) format("woff"),url(/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2) format("woff2"),url(/assets/KaTeX_Main-Italic-BMLOBm91.woff) format("woff"),url(/assets/KaTeX_Main-Italic-3WenGoN9.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-B22Nviop.woff2) format("woff2"),url(/assets/KaTeX_Main-Regular-Dr94JaBh.woff) format("woff"),url(/assets/KaTeX_Main-Regular-ypZvNtVU.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2) format("woff2"),url(/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff) format("woff"),url(/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-t53AETM-.woff2) format("woff2"),url(/assets/KaTeX_Math-Italic-DA0__PXp.woff) format("woff"),url(/assets/KaTeX_Math-Italic-flOr_0UB.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff) format("woff"),url(/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff) format("woff"),url(/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff) format("woff"),url(/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-D3wIWfF6.woff2) format("woff2"),url(/assets/KaTeX_Script-Regular-D5yQViql.woff) format("woff"),url(/assets/KaTeX_Script-Regular-C5JkGWo-.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2) format("woff2"),url(/assets/KaTeX_Size1-Regular-C195tn64.woff) format("woff"),url(/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2) format("woff2"),url(/assets/KaTeX_Size2-Regular-oD1tc_U0.woff) format("woff"),url(/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA4oAA4AAAAAHbQAAA3TAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgRQIDgmcDBEICo1oijYBNgIkA14LMgAEIAWJAAeBHAyBHBvbGiMRdnO0IkRRkiYDgr9KsJ1NUAf2kILNxgUmgqIgq1P89vcbIcmsQbRps3vCcXdYOKSWEPEKgZgQkprQQsxIXUgq0DqpGKmIvrgkeVGtEQD9DzAO29fM9jYhxZEsL2FeURH2JN4MIcTdO049NCVdxQ/w9NrSYFEBKTDKpLKfNkCGDc1RwjZLQcm3vqJ2UW9Xfa3tgAHz6ivp6vgC2yD4/6352ndnN0X0TL7seypkjZlMsjmZnf0Mm5Q+JykRWQBKCVCVPbARPXWyQtb5VgLB6Biq7/Uixcj2WGqdI8tGSgkuRG+t910GKP2D7AQH0DB9FMDW/obJZ8giFI3Wg8Cvevz0M+5m0rTh7XDBlvo9Y4vm13EXmfttwI4mBo1EG15fxJhUiCLbiiyCf/ZA6MFAhg3pGIZGdGIVjtPn6UcMk9A/UUr9PhoNsCENw1APAq0gpH73e+M+0ueyHbabc3vkbcdtzcf/fiy+NxQEjf9ud/ELBHAXJ0nk4z+MXH2Ev/kWyV4k7SkvpPc9Qr38F6RPWnM9cN6DJ0AdD1BhtgABtmoRoFCvPsBAumNm6soZG2Gk5GyVTo2sJncSyp0jQTYoR6WDvTwaaEcHsxHfvuWhHA3a6bN7twRKtcGok6NsCi7jYRrM2jExsUFMxMQYuJbMhuWNOumEJy9hi29Dmg5zMp/A5+hhPG19j1vBrq8JTLr8ki5VLPmG/PynJHVul440bxg5xuymHUFPBshC+nA9I1FmwbRBTNHAcik3Oae0cxKoI3MOriM42UrPe51nsaGxJ+WfXubAsP84aabUlQSJ1IiE0iPETLUU4CATgfXSCSpuRFRmCGbO+wSpAnzaeaCYW1VNEysRtuXCEL1kUFUbbtMv3Tilt/1c11jt3Q5bbMa84cpWipp8Elw3MZhOHsOlwwVUQM3lAR35JiFQbaYCRnMF2lxAWoOg2gyoIV4PouX8HytNIfLhqpJtXB4vjiViUI8IJ7bkC4ikkQvKksnOTKICwnqWSZ9YS5f0WCxmpgjbIq7EJcM4aI2nmhLNY2JIUgOjXZFWBHb+x5oh6cwb0Tv1ackHdKi0I9OO2wE9aogIOn540CCCziyhN+IaejtgAONKznHlHyutPrHGwCx9S6B8kfS4Mfi4Eyv7OU730bT1SCBjt834cXsf43zVjPUqqJjgrjeGnBxSG4aYAKFuVbeCfkDIjAqMb6yLNIbCuvXhMH2/+k2vkNpkORhR59N1CkzoOENvneIosjYmuTxlhUzaGEJQ/iWqx4dmwpmKjrwTiTGTCVozNAYqk/zXOndWxuWSmJkQpJw3pK5KX6QrLt5LATMqpmPAQhkhK6PUjzHUn7E0gHE0kPE0iKkolgkUx9SZmVAdDgpffdyJKg3k7VmzYGCwVXGz/tXmkOIp+vcWs+EMuhhvN0h9uhfzWJziBQmCREGSIFmQIkgVpAnSBRmC//6hkLZwaVhwxlrJSOdqlFtOYxlau9F2QN5Y98xmIAsiM1HVp2VFX+DHHGg6Ecjh3vmqtidX3qHI2qycTk/iwxSt5UzTmEP92ZBnEWTk4Mx8Mpl78ZDokxg/KWb+Q0QkvdKVmq3TMW+RXEgrsziSAfNXFMhDc60N5N9jQzjfO0kBKpUZl0ZmwJ41j/B9Hz6wmRaJB84niNmQrzp9eSlQCDDzazGDdVi3P36VZQ+Jy4f9UBNp+3zTjqI4abaFAm+GShVaXlsGdF3FYzZcDI6cori4kMxUECl9IjJZpzkvitAoxKue+90pDMvcKRxLl53TmOKCmV/xRolNKSqqUxc6LStOETmFOiLZZptlZepcKiAzteG8PEdpnQpbOMNcMsR4RR2Bs0cKFEvSmIjAFcnarqwUL4lDhHmnVkwu1IwshbiCcgvOheZuYyOteufZZwlcTlLgnZ3o/WcYdzZHW/WGaqaVfmTZ1aWCceJjkbZqsfbkOtcFlUZM/jy+hXHDbaUobWqqXaeWobbLO99yG5N3U4wxco0rQGGcOLASFMXeJoham8M+/x6O2WywK2l4HGbq1CoUyC/IZikQhdq3SiuNrvAEj0AVu9x2x3lp/xWzahaxidezFVtdcb5uEnzyl0ZmYiuKI0exvCd4Xc9CV1KB0db00z92wDPde0kukbvZIWN6jUWFTmPIC/Y4UPCm8UfDTFZpZNon1qLFTkBhxzB+FjQRA2Q/YRJT8pQigslMaUpFyAG8TMlXigiqmAZX4xgijKjRlGpLE0GdplRfCaJo0JQaSxNBk6ZmMzcya0FmrcisDdn0Q3HI2sWSppYigmlM1XT/kLQZSNpMJG0WkjYbSZuDpM1F0uYhFc1HxU4m1QJjDK6iL0S5uSj5rgXc3RejEigtcRBtqYPQsiTskmO5vosV+q4VGIKbOkDg0jtRrq+Em1YloaTFar3EGr1EUC8R0kus1Uus00usL97ABr2BjXoDm/QGNhuWtMVBKOwg/i78lT7hBsAvDmwHc/ao3vmUbBmhjeYySZNWvGkfZAgISDSaDo1SVpzGDsAEkF8B+gEapViUoZgUWXcRIGFZNm6gWbAKk0bp0k1MHG9fLYtV4iS2SmLEQFARzRcnf9PUS0LVn05/J9MiRRBU3v2IrvW974v4N00L7ZMk0wXP1409CHo/an8zTRHD3eSJ6m8D4YMkZNl3M79sqeuAsr/m3f+8/yl7A50aiAEJgeBeMWzu7ui9UfUBCe2TIqZIoOd/3/udRBOQidQZUERzb2/VwZN1H/Sju82ew2H2Wfr6qvfVf3hqwDvAIpkQVFy4B9Pe9e4/XvPeceu7h3dvO56iJPf0+A6cqA2ip18ER+iFgggiuOkvj24bby0N9j2UHIkgqIt+sVgfodC4YghLSMjSZbH0VR/6dMDrYJeKHilKTemt6v6kvzvn3/RrdWtr0GoN/xL+Sex/cPYLUpepx9cz/D46UPU5KXgAQa+NDps1v6J3xP1i2HtaDB0M9aX2deA7SYff//+gUCovMmIK/qfsFcOk+4Y5ZN97XlG6zebqtMbKgeRFi51vnxTQYBUik2rS/Cn6PC8ADR8FGxsRPB82dzfND90gIcshOcYUkfjherBz53odpm6TP8txlwOZ71xmfHHOvq053qFF/MRlS3jP0ELudrf2OeN8DHvp6ZceLe8qKYvWz/7yp0u4dKPfli3CYq0O13Ih71mylJ80tOi10On8wi+F4+LWgDPeJ30msSQt9/vkmHq9/Lvo2b461mP801v3W4xTcs6CbvF9UDdrSt+A8OUbpSh55qAUFXWznBBfdeJ8a4d7ugT5tvxUza3h9m4H7ptTqiG4z0g5dc0X29OcGlhpGFMpQo9ytTS+NViZpNdvU4kWx+LKxNY10kQ1yqGXrhe4/1nvP7E+nd5A92TtaRplbHSqoIdOqtRWti+fkB5/n1+/VvCmz12pG1kpQWsfi1ftlBobm0bpngs16CHkbIwdLnParxtTV3QYRlfJ0KFskH7pdN/YDn+yRuSd7sNH3aO0DYPggk6uWuXrfOc+fa3VTxFVvKaNxHsiHmsXyCLIE5yuOeN3/Jdf8HBL/5M6shjyhxHx9BjB1O0+4NLOnjLLSxwO7ukN4jMbOIcD879KLSi6Pk61Oqm2377n8079PXEEQ7cy7OKEC9nbpet118fxweTafpt69x/Bt8UqGzNQt7aelpc44dn5cqhwf71+qKp/Zf/+a0zcizOUWpl/iBcSXip0pplkatCchoH5c5aUM8I7/dWxAej8WicPL1URFZ9BDJelUwEwTkGqUhgSlydVes95YdXvhh9Gfz/aeFWvgVb4tuLbcv4+wLdutVZv/cUonwBD/6eDlE0aSiKK/uoH3+J1wDE/jMVqY2ysGufN84oIXB0sPzy8ollX/LegY74DgJXJR57sn+VGza0x3DnuIgABFM15LmajjjsNlYj+JEZGbuRYcAMOWxFkPN2w6Wd46xo4gVWQR/X4lyI/R6K/YK0110GzudPRW7Y+UOBGTfNNzHeYT0fiH0taunBpq9HEW8OKSaBGj21L0MqenEmNRWBAWDWAk4CpNoEZJ2tTaPFgbQYj8HxtFilErs3BTRwT8uO1NXQaWfIotchmPkAF5mMBAliEmZiOGVgCG9LgRzpscMAOOwowlT3JhusdazXGSC/hxR3UlmWVwWHpOIKheqONvjyhSiTHIkVUco5bnji8m//zL7PKaT1Vl5I6UE609f+gkr6MZKVyKc7zJRmCahLsdlyA5fdQkRSan9LgnnLEyGSkaKJCJog0wAgvepWBt80+1yKln1bMVtCljfNWDueKLsWwaEbBSfSPTEmVRsUcYYMnEjcjeyCZzBXK9E9BYBXLKjOSpUDR+nEV3TFSUdQaz+ot98QxgXwx0GQ+EEUAKB2qZPkQQ0GqFD8UPFMqyaCHM24BZmSGic9EYMagKizOw9Hz50DMrDLrqqLkTAhplMictiCAx5S3BIUQdeJeLnBy2CNtMfz6cV4u8XKoFZQesbf9YZiIERiHjaNodDW6LgcirX/mPnJIkBGDUpTBhSa0EIr38D5hCIszhCM8URGBqImoWjpvpt1ebu/v3Gl3qJfMnNM+9V+kiRFyROTPHQWOcs1dNW94/ukKMPZBvDi55i5CttdeJz84DLngLqjcdwEZ87bFFR8CIG35OAkDVN6VRDZ7aq67NteYqZ2lpT8oYB2CytoBd6VuAx4WgiAsnuj3WohG+LugzXiQRDeM3XYXlULv4dp5VFYC) format("woff2"),url(/assets/KaTeX_Size3-Regular-CTq5MqoE.woff) format("woff"),url(/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2) format("woff2"),url(/assets/KaTeX_Size4-Regular-BF-4gkZK.woff) format("woff"),url(/assets/KaTeX_Size4-Regular-DWFBv043.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2) format("woff2"),url(/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff) format("woff"),url(/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf) format("truetype")}.katex{font: 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.27"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}.latex-input-container{position:relative;width:100%;flex:1;min-height:40px}.latex-input-container.mode-edit{display:flex;align-items:flex-end}.latex-input-container.mode-edit .latex-input-textarea{flex:1}.latex-input-container.disabled{opacity:.6;pointer-events:none}.latex-edit-button{position:absolute;top:50%;right:10px;transform:translateY(-50%);z-index:10;padding:2px 6px;font-size:10px;font-weight:500;color:#666;background:#f5f5f5;border:1px solid #ddd;border-radius:3px;cursor:pointer;transition:all .15s ease}.latex-edit-button:hover{background:#eee;border-color:#ccc;color:#333}.latex-edit-button.editing{background:#e3f2fd;border-color:#90caf9;color:#1976d2}.latex-edit-button:disabled{cursor:not-allowed;opacity:.5}.latex-input-textarea{width:100%;min-height:40px;max-height:120px;padding:9px 16px;font-family:inherit;font-size:14px;line-height:1.4;color:#333;background:#fff;border:1px solid #e2e8f0;border-radius:8px;resize:none;overflow-y:auto;transition:border-color .15s ease;box-sizing:border-box}.latex-input-container.has-latex .latex-input-textarea{padding-right:60px}.latex-input-textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.latex-input-textarea::placeholder{color:#9ca3af}.latex-input-textarea:disabled{background:#f9fafb;color:#9ca3af;cursor:not-allowed}.latex-input-preview{min-height:40px;max-height:120px;padding:9px 16px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:text;transition:all .15s ease;box-sizing:border-box;overflow-y:auto}.latex-input-container.has-latex .latex-input-preview{padding-right:60px}.latex-input-preview:hover{background:#fff;border-color:#cbd5e1}.latex-input-preview:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.latex-input-preview .markdown-latex-content{font-size:13px;line-height:1.4}.latex-input-preview .markdown-latex-content p{margin:0}.latex-input-preview .katex{font-size:1.1em}.latex-input-preview .katex-error{color:#dc2626;background:#fef2f2;padding:2px 4px;border-radius:2px;font-family:monospace;font-size:11px}.experiment-column .latex-input-textarea,.experiment-column .latex-input-preview{min-height:34px;max-height:140px;padding:8px 10px;border-radius:6px;border-color:#e5e7eb;font-size:13px}.experiment-column .latex-input-container{min-height:34px}.experiment-column .latex-input-container.has-latex .latex-input-textarea,.experiment-column .latex-input-container.has-latex .latex-input-preview{padding-right:56px}.experiment-column .latex-edit-button{right:8px;font-size:10px}@supports (-webkit-touch-callout: none){.latex-input-textarea{font-size:16px}}.timeline-item{display:flex;gap:12px;padding:10px 8px;border-radius:10px;transition:background-color .2s;position:relative;overflow:visible;animation:timeline-fade-in .3s ease-out}@keyframes timeline-fade-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.timeline-item:hover{background-color:#f8fafc}.item-indicator{display:flex;flex-direction:column;align-items:center;min-width:32px;position:relative}.result-badge{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:600;border:2.5px solid;flex-shrink:0;background:#fff;box-shadow:0 1px 3px #0000001a;position:relative;z-index:1}.item-line{display:none}.timeline-item:after{content:"";position:absolute;width:2px;background:#d1d5db;left:24px;top:38px;bottom:-10px}.timeline-item.last:after{display:none}.item-content{flex:1;min-width:0}.item-header{display:flex;align-items:center;gap:6px;margin-bottom:2px}.topic-icon{font-size:14px}.topic-name{font-size:13px;font-weight:600;color:#334155}.topic-detail{font-size:12px;color:#64748b;margin-bottom:2px}.item-note{font-size:11px;color:#94a3b8;font-style:italic}.learning-timeline{display:flex;flex-direction:column;gap:0;padding:8px 12px;height:100%;overflow-y:auto}.timeline-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#9ca3af;text-align:center;padding:24px}.timeline-empty p{margin:4px 0}.timeline-empty .hint{font-size:12px;color:#cbd5e1}.timeline-loading{display:flex;align-items:center;gap:8px;padding:12px;color:#64748b;font-size:13px}.timeline-loading .loading-dot{width:8px;height:8px;background:#3b82f6;border-radius:50%;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.report-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;animation:report-fade-in .2s ease-out}@keyframes report-fade-in{0%{opacity:0}to{opacity:1}}.report-modal-content{background:#fff;border-radius:12px;padding:24px;max-width:480px;width:90%;max-height:80vh;overflow-y:auto;position:relative;box-shadow:0 8px 32px #0000001f;animation:report-scale-in .2s ease-out}@keyframes report-scale-in{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.report-modal-close{position:absolute;top:12px;right:12px;background:transparent;border:none;color:#64748b;font-size:24px;width:32px;height:32px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;z-index:10}.report-modal-close:hover{background:#0000000d;color:#334155}.report-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 20px;color:#64748b}.report-loading-spinner{width:32px;height:32px;border:2px solid #e2e8f0;border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:12px}@keyframes spin{to{transform:rotate(360deg)}}.report-loading p{font-size:14px;margin:0}.report-title{font-size:18px;font-weight:600;color:#1e293b;margin:0 0 20px}.report-section{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #f1f5f9}.report-section:last-of-type{border-bottom:none}.section-title{font-size:12px;font-weight:600;color:#64748b;margin:0 0 10px;text-transform:uppercase;letter-spacing:.5px}.report-summary{text-align:center;padding:16px;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.summary-result{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:8px}.result-icon{font-size:20px}.result-label{font-size:15px;font-weight:600;color:#1e293b}.result-turns{font-size:12px;color:#94a3b8}.summary-insight{font-size:14px;color:#475569;margin:0;line-height:1.5}.journey-list{display:flex;flex-direction:column;gap:10px}.journey-item{background:#f8fafc;border-radius:6px;padding:12px;border:1px solid #e2e8f0}.journey-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.journey-label{font-size:12px;font-weight:600;color:#334155}.journey-progress{display:flex;align-items:center;gap:6px}.journey-level{font-size:11px;padding:2px 6px;border-radius:4px;font-weight:500}.level-sufficient{background:#dcfce7;color:#166534}.level-partial{background:#fef3c7;color:#92400e}.level-none{background:#f1f5f9;color:#64748b}.journey-arrow{color:#94a3b8;font-size:11px}.journey-note{font-size:14px;color:#64748b;margin:8px 0 0;line-height:1.5}.report-list{list-style:none;padding:0;margin:0}.report-list li{font-size:14px;color:#475569;padding:4px 0 4px 12px;position:relative;line-height:1.5}.report-list li:before{content:"-";position:absolute;left:0;color:#64748b}.report-notes{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.report-note{padding:12px;border-radius:6px;border:1px solid}.report-note h4{font-size:12px;font-weight:600;margin:0 0 6px}.report-note p{font-size:14px;margin:0;line-height:1.5}.teacher-note{background:#faf5ff;border-color:#e9d5ff}.teacher-note h4{color:#7c3aed}.teacher-note p{color:#6b21a8}.student-note{background:#eff6ff;border-color:#bfdbfe}.student-note h4{color:#2563eb}.student-note p{color:#1e40af}.report-confirm-btn{width:100%;padding:12px;background:#3b82f6;border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s}.report-confirm-btn:hover{background:#2563eb}.report-modal-content::-webkit-scrollbar{width:6px}.report-modal-content::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.report-modal-content::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.report-modal-content::-webkit-scrollbar-thumb:hover{background:#94a3b8}.highlight-description{font-size:15px;color:#334155;line-height:1.6;margin:0;text-align:left}.recommended-comment{background:linear-gradient(135deg,#fefce8,#fef9c3);border:1px solid #fde047;border-radius:8px;padding:14px;display:flex;align-items:flex-start;gap:12px}.recommended-comment-text{flex:1;font-size:14px;color:#713f12;margin:0;line-height:1.6}.copy-btn{flex-shrink:0;padding:6px 12px;background:#fbbf24;border:none;border-radius:6px;color:#78350f;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}.copy-btn:hover{background:#f59e0b}.copy-btn:active{transform:scale(.95)}.recommended-next{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #bae6fd;border-radius:8px;padding:14px}.recommended-topic{font-size:14px;color:#0c4a6e;margin:0 0 6px}.recommended-topic strong{font-weight:600}.recommended-reason{font-size:12px;color:#0369a1;margin:0;line-height:1.5}.report-cta-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);font-size:15px;padding:14px;box-shadow:0 2px 8px #3b82f64d}.report-cta-btn:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 4px 12px #3b82f666}.student-view-v2{text-align:center}.student-view-v2 .report-section{text-align:left}.result-hero{padding:20px 16px 12px;margin-bottom:16px;background:transparent;border:none;border-radius:12px}.result-hero.result-success{background:transparent;border:none}.result-label-large{font-size:24px;font-weight:700;color:#0f172a;margin-bottom:0}.result-success .result-label-large{color:#0f172a}.result-character{width:120px;height:auto;margin:0 auto;display:block}.highlight-title{font-size:14px;text-transform:none;letter-spacing:0;color:#0f172a;font-weight:600;margin-bottom:10px;text-align:left}.encouragement-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:16px}.encouragement-box p{font-size:14px;color:#334155;margin:0;line-height:1.6}@keyframes pop-in{0%{transform:scale(0);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}@keyframes slide-in{0%{transform:translate(-20px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes fade-in-up{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.anim-pop{animation:pop-in .5s cubic-bezier(.68,-.55,.265,1.55) forwards}.anim-slide-in{animation:slide-in .4s ease-out .3s forwards;opacity:0}.anim-fade-in{animation:fade-in-up .4s ease-out .5s forwards;opacity:0}.anim-pulse{animation:pulse 2s ease-in-out .7s infinite}.journey-summary-bar{display:flex;justify-content:space-between;gap:8px;padding:12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:12px}.journey-summary-item{flex:1;text-align:center}.journey-summary-label{display:block;font-size:11px;color:#64748b;margin-bottom:6px}.journey-summary-dots{display:flex;justify-content:center;gap:4px}.journey-summary-dots .dot{width:12px;height:12px;border-radius:50%;display:inline-block}.journey-summary-dots .dot.level-sufficient{background:#22c55e}.journey-summary-dots .dot.level-partial{background:#f59e0b}.journey-summary-dots .dot.level-none{background:#cbd5e1}.gt-journey-list{display:flex;flex-direction:column;gap:8px}.gt-journey-item{display:flex;flex-direction:column;padding:10px 12px;border-radius:8px;border:1px solid #e2e8f0;background:#fff}.gt-journey-header{display:flex;align-items:flex-start;gap:10px}.gt-step-number{flex-shrink:0;width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:#e2e8f0;color:#475569;border-radius:50%;font-size:12px;font-weight:600}.gt-step-content{flex:1;font-size:14px;color:#334155;line-height:1.5}.gt-status-icon{flex-shrink:0;font-size:16px}.gt-journey-note{margin:6px 0 0 32px;font-size:12px;color:#64748b;line-height:1.4}.gt-journey-item.gt-status-self{border-color:#bbf7d0;background:#f0fdf4}.gt-journey-item.gt-status-self .gt-step-number{background:#22c55e;color:#fff}.gt-journey-item.gt-status-hint{border-color:#fde68a;background:#fefce8}.gt-journey-item.gt-status-hint .gt-step-number{background:#f59e0b;color:#fff}.gt-journey-item.gt-status-error{border-color:#fed7aa;background:#fff7ed}.gt-journey-item.gt-status-error .gt-step-number{background:#f97316;color:#fff}.gt-journey-item.gt-status-guided{border-color:#c7d2fe;background:#eef2ff}.gt-journey-item.gt-status-guided .gt-step-number{background:#6366f1;color:#fff}.gt-journey-item.gt-status-skipped{border-color:#e2e8f0;background:#f8fafc;opacity:.7}.gt-journey-item.gt-status-skipped .gt-step-number{background:#94a3b8;color:#fff}.next-action-section{background:#f8fafc;border-radius:8px;padding:14px;border:1px solid #e2e8f0}.next-action-section .section-title{margin-bottom:12px}.action-item{padding:10px 0;border-bottom:1px dashed #e2e8f0}.action-item:last-child{border-bottom:none;padding-bottom:0}.action-item:first-of-type{padding-top:0}.action-label{display:block;font-size:12px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.action-content{font-size:14px;color:#334155;margin:0;line-height:1.5}.action-content strong{font-weight:600;color:#1e293b}.action-reason{display:block;color:#64748b;font-size:12px;margin-top:4px}.detail-section{border-bottom:none}.detail-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;color:#475569;transition:all .15s}.detail-toggle:hover{background:#e2e8f0}.toggle-icon{font-size:10px;transition:transform .2s}.toggle-icon.open{transform:rotate(180deg)}.detail-content{margin-top:12px;padding:14px;background:#fff;border:1px solid #e2e8f0;border-radius:8px}.detail-item{margin-bottom:16px}.detail-item:last-child{margin-bottom:0}.detail-subtitle{font-size:12px;font-weight:600;color:#64748b;margin:0 0 8px;text-transform:uppercase;letter-spacing:.5px}.report-modal-content:has(.teacher-view-cards){max-width:95%;width:1100px}.teacher-view-cards{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.teacher-view-cards .report-title,.teacher-view-cards .report-card:first-of-type,.teacher-view-cards .report-card:has(.journey-list),.teacher-view-cards .report-confirm-btn{grid-column:1 / -1}@media (max-width: 900px){.report-modal-content:has(.teacher-view-cards){width:90%;max-width:700px}.teacher-view-cards{grid-template-columns:1fr 1fr}}@media (max-width: 600px){.report-modal-content:has(.teacher-view-cards){width:90%;max-width:480px}.teacher-view-cards{grid-template-columns:1fr}}.teacher-view-cards .report-title{margin-bottom:8px}.report-card{padding:14px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 1px 3px #0000000a}.card-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.card-title{font-size:15px;font-weight:600;color:#1e293b;flex:1}.card-header .result-label{font-size:15px;font-weight:600;color:#1e293b}.card-header .result-turns{font-size:12px;color:#64748b;margin-left:auto}.copy-btn-inline{padding:4px 10px;background:#3b82f6;border:none;border-radius:4px;color:#fff;font-size:11px;font-weight:500;cursor:pointer;transition:all .15s}.copy-btn-inline:hover{background:#2563eb}.comment-text{font-size:14px;color:#334155;line-height:1.6;margin:0;flex:1}.comment-options{display:flex;flex-direction:column;gap:10px;margin-top:4px}.comment-option{display:flex;flex-direction:column;gap:6px;padding:12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;transition:all .15s}.comment-option:hover{border-color:#cbd5e1;background:#f1f5f9}.comment-option:active{background:#e2e8f0}.comment-option-header{display:flex;justify-content:space-between;align-items:center}.comment-label{font-size:12px;font-weight:600;color:#475569}.copy-btn-small{flex-shrink:0;padding:4px 10px;background:#3b82f6;border:none;border-radius:4px;color:#fff;font-size:11px;font-weight:500;cursor:pointer;transition:all .15s}.copy-btn-small:hover{background:#2563eb}.feedback-section{margin-bottom:12px}.feedback-section:last-child{margin-bottom:0}.feedback-subtitle{font-size:12px;font-weight:500;color:#475569;margin:0 0 6px}.report-card .action-item{padding:8px 0;border-bottom:1px dashed #e2e8f0}.report-card .action-item:last-child{border-bottom:none;padding-bottom:0}.report-card .action-item:first-child{padding-top:0}.card-options{display:flex;flex-direction:column;gap:10px;margin-top:4px}.card-option{display:flex;flex-direction:column;gap:6px;padding:12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px}.card-option-label{font-size:12px;font-weight:600;color:#475569}.card-option-text{font-size:14px;color:#334155;line-height:1.6;margin:0}.card-option-text strong{font-weight:600;color:#1e293b}.card-option-sub{display:block;font-size:12px;color:#64748b;margin-top:4px}.card-option .report-list{margin:0}.teacher-view-cards .report-confirm-btn{margin-top:4px}.force-complete-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fc-fade-in .2s ease-out}@keyframes fc-fade-in{0%{opacity:0}to{opacity:1}}.force-complete-modal-content{background:#fff;border-radius:12px;padding:24px;max-width:400px;width:90%;position:relative;box-shadow:0 8px 32px #0000001f;animation:fc-scale-in .2s ease-out}@keyframes fc-scale-in{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.force-complete-modal-close{position:absolute;top:16px;right:16px;background:transparent;border:none;color:#94a3b8;font-size:20px;width:28px;height:28px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.force-complete-modal-close:hover:not(:disabled){background:#f1f5f9;color:#475569}.force-complete-modal-close:disabled{opacity:.5;cursor:not-allowed}.force-complete-title{font-size:18px;font-weight:600;color:#1e293b;margin:0 0 8px}.force-complete-subtitle{font-size:14px;color:#64748b;margin:0 0 20px}.force-complete-reasons{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.force-complete-reason-item{display:flex;align-items:center;gap:10px;padding:12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;transition:all .15s}.force-complete-reason-item:hover{background:#f1f5f9;border-color:#cbd5e1}.force-complete-reason-item:has(input:checked){background:#eff6ff;border-color:#3b82f6}.force-complete-reason-item input[type=radio]{width:18px;height:18px;margin:0;accent-color:#3b82f6;cursor:pointer}.force-complete-reason-item .reason-label{font-size:14px;color:#334155;flex:1}.force-complete-detail{width:100%;min-height:80px;padding:12px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;color:#334155;resize:vertical;margin-bottom:16px;font-family:inherit}.force-complete-detail:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.force-complete-detail::placeholder{color:#94a3b8}.force-complete-detail:disabled{background:#f8fafc;cursor:not-allowed}.force-complete-actions{display:flex;gap:10px}.force-complete-btn{flex:1;padding:12px 16px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s}.force-complete-btn.cancel{background:#f1f5f9;color:#475569}.force-complete-btn.cancel:hover:not(:disabled){background:#e2e8f0}.force-complete-btn.confirm{background:#ef4444;color:#fff}.force-complete-btn.confirm:hover:not(:disabled){background:#dc2626}.force-complete-btn:disabled{opacity:.5;cursor:not-allowed}.tool-result-container{margin-top:12px;border:1px solid #e0e0e0;border-radius:12px;overflow:hidden;background:#fff}.tool-result-header{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#f8f9fa;border-bottom:1px solid #e0e0e0}.tool-result-icon{font-size:16px}.tool-result-name{font-size:13px;font-weight:600;color:#333}.tool-result-summary{font-size:12px;color:#666}.tool-result-minimal{border:none;background:transparent}.tool-result-header-minimal{padding:8px 0;background:transparent;border-bottom:none}.tool-result-header-minimal .tool-result-name{font-size:12px;font-weight:500;color:#666}.tool-result-links{display:flex;flex-direction:column}.tool-link-card{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;text-decoration:none;color:inherit;transition:background-color .15s ease;border-bottom:1px solid #f0f0f0}.tool-link-card:last-child{border-bottom:none}.tool-link-card:hover{background-color:#f5f7fa}.tool-link-thumbnail{width:64px;height:48px;object-fit:cover;border-radius:6px;flex-shrink:0}.tool-link-icon-wrapper{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#f0f2f5;border-radius:8px;flex-shrink:0;color:#666}.tool-link-content{flex:1;min-width:0}.tool-link-title{font-size:14px;font-weight:500;color:#1a1a1a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tool-link-description{font-size:12px;color:#666;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tool-link-external{flex-shrink:0;color:#999;margin-top:2px}.tool-result-images{padding:12px}.tool-result-minimal .tool-result-images{padding:0}.tool-result-images.single{display:flex;justify-content:flex-start}.tool-result-images.single .tool-image-item{max-width:280px}.tool-result-images.grid{display:flex;gap:8px;flex-wrap:wrap}.tool-result-images.grid .tool-image-item{width:calc(50% - 4px);max-width:160px}.tool-image-item{cursor:pointer;border-radius:8px;overflow:hidden;border:1px solid #e5e7eb;transition:border-color .15s ease,box-shadow .15s ease}.tool-image-item:hover{border-color:#d1d5db;box-shadow:0 2px 8px #00000014}.tool-image{width:100%;height:auto;display:block}.tool-image-caption{font-size:11px;color:#666;text-align:center;padding:4px;background:#f8f9fa}.tool-image-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000}.tool-image-modal-content{position:relative;max-width:90vw;max-height:90vh}.tool-image-modal-content img{max-width:100%;max-height:85vh;object-fit:contain}.tool-image-modal-caption{text-align:center;color:#fff;margin-top:8px;font-size:14px}.tool-image-modal-close{position:absolute;top:-50px;right:-10px;background:none;border:none;color:#fffc;font-size:28px;cursor:pointer;padding:8px;line-height:1;transition:color .15s}.tool-image-modal-close:hover{color:#fff}.tool-image-nav{position:absolute;top:50%;transform:translateY(-50%);background:#ffffffe6;border:none;width:44px;height:44px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#333;transition:background .2s;z-index:10;padding:0}.tool-image-nav svg{display:block}.tool-image-nav:hover{background:#fff}.tool-image-nav-prev{left:-70px}.tool-image-nav-next{right:-70px}.tool-image-indicator{position:absolute;bottom:-40px;left:50%;transform:translate(-50%);color:#fffc;font-size:13px;font-weight:500}.tool-result-text{padding:12px 14px;font-size:14px;line-height:1.6;color:#333}.tool-result-card{display:flex;gap:12px;padding:12px 14px}.tool-card-image{width:80px;height:80px;object-fit:cover;border-radius:8px;flex-shrink:0}.tool-card-body{flex:1;min-width:0}.tool-card-title{font-size:14px;font-weight:600;color:#1a1a1a}.tool-card-subtitle{font-size:12px;color:#666;margin-top:2px}.tool-card-description{font-size:13px;color:#444;margin-top:6px;line-height:1.5}.tool-card-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.tool-card-link{font-size:12px;color:#4285f4;text-decoration:none}.tool-card-link:hover{text-decoration:underline}.tool-result-skeleton{margin-top:12px;border:1px solid #e0e0e0;border-radius:12px;overflow:hidden;background:#fff;width:100%;max-width:100%;min-width:0;box-sizing:border-box}.tool-skeleton-line{height:14px;border-radius:6px;background:linear-gradient(90deg,#e8e8e8 25%,#f5f5f5,#e8e8e8 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.tool-skeleton-message{padding:8px 14px 12px;font-size:12px;color:#888;text-align:center}.diagnosis-skeleton-message{padding:12px 14px;background:#f0f7ff;border-bottom:1px solid #e0e0e0}.diagnosis-skeleton-question{padding:14px}.diagnosis-skeleton-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.diagnosis-skeleton-options{display:flex;flex-direction:column;gap:6px}.diagnosis-skeleton-option{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1.5px solid #e5e7eb;border-radius:8px}.diagnosis-skeleton-radio{width:18px;height:18px;border-radius:50%;border:2px solid #e5e7eb;flex-shrink:0;background:linear-gradient(90deg,#f0f0f0 25%,#f8f8f8,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.diagnosis-skeleton-dots{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px 0}.diagnosis-skeleton-dot{width:8px;height:8px;border-radius:50%;background:#e5e7eb}.diagnosis-skeleton-dot.active{width:24px;border-radius:4px;background:linear-gradient(90deg,#93c5fd 25%,#bfdbfe,#93c5fd 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.diagnosis-skeleton-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-top:1px solid #f0f0f0}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.diagnosis-quiz{margin-top:12px;border:1px solid #e0e0e0;border-radius:12px;overflow:hidden;background:#fff}.diagnosis-quiz-message{padding:12px 14px;background:#f0f7ff;border-bottom:1px solid #e0e0e0;font-size:14px;color:#1a56db;font-weight:500;line-height:1.5}.diagnosis-progress-bar{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px 0}.diagnosis-progress-dot{width:8px;height:8px;border-radius:50%;background:#e5e7eb;cursor:pointer;transition:all .2s ease}.diagnosis-progress-dot.active{width:24px;border-radius:4px;background:#3b82f6}.diagnosis-progress-dot.answered:not(.active){background:#93c5fd}.diagnosis-progress-dot.done:not(.active){background:#93c5fd}.diagnosis-question{padding:14px}.diagnosis-question-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.diagnosis-question-label{font-size:12px;font-weight:600;color:#6b7280;background:#f3f4f6;padding:2px 8px;border-radius:4px}.diagnosis-question-progress{font-size:11px;color:#9ca3af}.diagnosis-question-text{font-size:15px;font-weight:600;color:#1a1a1a;margin-bottom:10px;line-height:1.5}.diagnosis-options{display:flex;flex-direction:column;gap:6px}.diagnosis-option{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1.5px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .15s ease;background:#fff}.diagnosis-option:hover{border-color:#93c5fd;background:#f8fbff}.diagnosis-option.selected{border-color:#3b82f6;background:#eff6ff}.diagnosis-option.submitted{cursor:default;opacity:.85}.diagnosis-option.submitted:hover{border-color:#e5e7eb;background:#fff}.diagnosis-option.submitted.selected,.diagnosis-option.submitted.selected:hover{border-color:#3b82f6;background:#eff6ff}.diagnosis-option-indicator{width:18px;height:18px;border-radius:50%;border:2px solid #d1d5db;flex-shrink:0;display:flex;align-items:center;justify-content:center;margin-top:1px;transition:all .15s ease}.diagnosis-option-indicator.multi{border-radius:4px}.diagnosis-option.selected .diagnosis-option-indicator{border-color:#3b82f6;background:#3b82f6}.diagnosis-option.selected .diagnosis-option-indicator:after{content:"";display:block;width:8px;height:8px;background:#fff;border-radius:50%}.diagnosis-option.selected .diagnosis-option-indicator.multi:after{content:"";display:block;width:10px;height:6px;background:transparent;border-left:2px solid #fff;border-bottom:2px solid #fff;border-radius:0;transform:rotate(-45deg);margin-bottom:2px}.diagnosis-option-content{flex:1;min-width:0}.diagnosis-option-label{font-size:14px;color:#1a1a1a;line-height:1.4}.diagnosis-option-description{font-size:12px;color:#6b7280;margin-top:2px;line-height:1.4}.diagnosis-freetext{margin-top:6px}.diagnosis-freetext-input{width:100%;padding:8px 12px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:14px;color:#1a1a1a;outline:none;transition:border-color .15s ease;box-sizing:border-box;font-family:inherit}.diagnosis-freetext-input::placeholder{color:#9ca3af}.diagnosis-freetext-input:focus{border-color:#3b82f6}.diagnosis-freetext-input:disabled{background:#f9fafb;color:#6b7280;cursor:default}.diagnosis-quiz-footer{padding:12px 14px;border-top:1px solid #f0f0f0}.diagnosis-nav{display:flex;align-items:center;justify-content:space-between;gap:8px}.diagnosis-nav-btn{padding:8px 16px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;background:#fff;color:#374151}.diagnosis-nav-btn:hover:not(:disabled){border-color:#93c5fd;background:#f8fbff;color:#1d4ed8}.diagnosis-nav-btn:disabled{opacity:.4;cursor:not-allowed}.diagnosis-nav-btn.next{background:#3b82f6;color:#fff;border-color:#3b82f6}.diagnosis-nav-btn.next:hover:not(:disabled){background:#2563eb;border-color:#2563eb;color:#fff}.diagnosis-submit-btn{width:100%;padding:10px 16px;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s ease,opacity .15s ease}.diagnosis-nav .diagnosis-submit-btn{flex:1}.diagnosis-submit-btn:hover:not(:disabled){background:#2563eb}.diagnosis-submit-btn:disabled{background:#93c5fd;cursor:not-allowed}.diagnosis-quiz.submitted .diagnosis-submit-btn{background:#d1d5db;color:#9ca3af;cursor:default}.diagnosis-quiz.submitted .diagnosis-progress-dot{cursor:pointer}.diagnosis-quiz.submitted .diagnosis-nav-btn{opacity:1;cursor:pointer}.diagnosis-quiz.submitted .diagnosis-nav-btn.next{background:#93c5fd;border-color:#93c5fd}.diagnosis-quiz.submitted .diagnosis-nav-btn.next:hover:not(:disabled){background:#7db8fa;border-color:#7db8fa}.diagnosis-quiz.submitted .diagnosis-nav-btn:disabled{opacity:.4;cursor:not-allowed}.chat-bubble-debug{margin-top:6px;display:flex;flex-direction:column;align-items:flex-end}.debug-toggle-btn{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border:1px solid #e2e8f0;border-radius:6px;background:transparent;cursor:pointer;font-size:11px;color:#64748b;transition:all .15s ease}.debug-toggle-btn:hover{background:#f1f5f9;border-color:#cbd5e1}.debug-level-badge{display:inline-block;padding:1px 5px;border-radius:3px;color:#fff;font-size:10px;font-weight:600;letter-spacing:.02em}.debug-bigstep-badge{display:inline-block;padding:1px 5px;border-radius:3px;background:#e0e7ff;color:#3730a3;font-size:10px;font-weight:600;letter-spacing:.02em}.debug-toggle-label{font-weight:500}.debug-chevron{transition:transform .15s ease;color:#94a3b8}.debug-chevron.expanded{transform:rotate(180deg)}.debug-panel{margin-top:6px;padding:10px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;font-size:12px;color:#334155}.debug-section{padding:6px 0}.debug-section+.debug-section{border-top:1px solid #f1f5f9}.debug-section-header{display:flex;align-items:flex-start;flex-wrap:wrap;gap:8px}.debug-tools-inline-chips{margin-left:auto;display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:4px;max-width:100%}.debug-tool-chip{display:inline-block;padding:1px 7px;border:1px solid #cbd5e1;border-radius:999px;background:#fff;color:#64748b;font-size:10px;font-weight:500;white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis}.debug-tool-chip-more{background:#f1f5f9;color:#475569}.debug-level-badge-lg{display:inline-block;padding:2px 8px;border-radius:4px;color:#fff;font-size:11px;font-weight:600}.debug-bigstep-badge-lg{display:inline-block;padding:2px 8px;border-radius:4px;background:#e0e7ff;color:#3730a3;font-size:11px;font-weight:600}.debug-reason{margin:4px 0 0;font-size:14px;color:#334155;line-height:1.5;white-space:pre-wrap}.debug-reason .markdown-latex-content,.debug-reason .markdown-latex-content p{font-size:14px;line-height:1.5;margin:0}.debug-label{font-size:11px;font-weight:600;color:#64748b;letter-spacing:.03em;margin-bottom:4px}.debug-tags{display:flex;flex-wrap:wrap;gap:4px}.debug-tag{display:inline-block;padding:1px 6px;background:#fff;border:1px solid #e2e8f0;border-radius:4px;font-size:11px;color:#334155}.debug-observations{display:flex;flex-direction:column;gap:3px}.debug-obs-item{display:flex;align-items:center;gap:6px;font-size:11px}.debug-obs-result{display:inline-block;padding:0 5px;border-radius:3px;font-size:10px;font-weight:600}.debug-obs-result.correct{background:#dcfce7;color:#166534}.debug-obs-result.incorrect{background:#fee2e2;color:#991b1b}.debug-obs-result.corrected{background:#fef3c7;color:#92400e}.debug-obs-result.exploring{background:#e0e7ff;color:#3730a3}.debug-obs-result.skipped{background:#f1f5f9;color:#64748b}.debug-obs-action{color:#64748b}.debug-snapshot{display:flex;flex-direction:column;gap:6px}.debug-snapshot-step{display:flex;flex-direction:column;gap:4px}.debug-snapshot-step-label{font-size:11px;font-weight:600;color:#0f172a;margin-bottom:2px}.debug-snapshot-item{border:1px solid #e2e8f0;border-radius:6px;background:#fff;padding:4px 6px}.debug-snapshot-item.expandable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color .15s ease,background-color .15s ease}.debug-snapshot-item.expandable:hover{border-color:#cbd5e1;background:#f8fafc}.debug-snapshot-item.expanded{border-color:#cbd5e1}.debug-snapshot-main{display:flex;align-items:flex-start;gap:5px;font-size:11px}.debug-snapshot-chevron{margin-left:auto;color:#94a3b8;flex-shrink:0;transition:transform .15s ease}.debug-snapshot-chevron.expanded{transform:rotate(180deg)}.debug-snapshot-badge{display:inline-block;padding:0 5px;border-radius:3px;font-size:10px;font-weight:600;flex-shrink:0;line-height:1.5;width:50px;text-align:center;white-space:nowrap;overflow:hidden}.debug-snapshot-badge.snapshot-correct{background:#dcfce7;color:#166534}.debug-snapshot-badge.snapshot-error{background:#fee2e2;color:#991b1b}.debug-snapshot-badge.snapshot-unknown{background:#e2e8f0;color:#475569}.debug-snapshot-name{color:#0f172a;font-size:11px;font-weight:700;flex-shrink:0}.debug-snapshot-content{color:#94a3b8;font-size:11px;min-width:0;flex:1;display:block;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere;word-break:break-word;line-height:1.35}.debug-snapshot-reason{margin-top:6px;padding-top:6px;border-top:1px solid #f1f5f9}.debug-snapshot-reason-label{font-size:10px;font-weight:600;color:#64748b;letter-spacing:.03em;margin-bottom:4px}.debug-snapshot-reason-text{font-size:11px;color:#334155;line-height:1.4}.debug-snapshot-content p,.debug-snapshot-content .markdown-latex-content,.debug-snapshot-content .markdown-latex-content p{white-space:normal;overflow-wrap:anywhere;font-size:11px;line-height:1.4;margin:0}.debug-snapshot-reason-text p,.debug-snapshot-reason-text .markdown-latex-content,.debug-snapshot-reason-text .markdown-latex-content p{font-size:11px;line-height:1.4;margin:0}.admin-login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f0f2f5}.admin-login-card{background:#fff;border-radius:12px;padding:48px 40px;width:100%;max-width:400px;box-shadow:0 2px 12px #00000014;text-align:center}.admin-login-title{font-size:24px;font-weight:700;color:#1a1a2e;margin:0 0 8px}.admin-login-subtitle{font-size:14px;color:#6b7280;margin:0 0 32px}.admin-login-form{display:flex;flex-direction:column;gap:16px}.admin-login-error{background:#fef2f2;color:#dc2626;padding:10px 14px;border-radius:8px;font-size:13px;text-align:left}.admin-login-input{width:100%;padding:12px 16px;border:1px solid #d1d5db;border-radius:8px;font-size:15px;outline:none;transition:border-color .15s;box-sizing:border-box}.admin-login-input:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.admin-login-button{width:100%;padding:12px;background:#4f46e5;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:background .15s}.admin-login-button:hover:not(:disabled){background:#4338ca}.admin-login-button:disabled{opacity:.5;cursor:not-allowed}.admin-dashboard-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.admin-dashboard-title{font-size:22px;font-weight:700;color:#111827;margin:0}.admin-refresh-btn{padding:7px 14px;border:1px solid #d1d5db;border-radius:6px;background:#fff;font-size:13px;color:#374151;cursor:pointer;font-family:inherit}.admin-refresh-btn:hover{background:#f3f4f6}.admin-stats-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin-bottom:20px}.admin-stat-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:14px 16px}.admin-stat-label{font-size:11px;font-weight:500;color:#9ca3af;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.admin-stat-value{font-size:20px;font-weight:700;color:#0f172a;line-height:1}.admin-stat-sub{font-size:11px;color:#9ca3af;margin-top:4px}.admin-filter-panel{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:14px 16px;margin-bottom:16px;display:flex;flex-direction:column;gap:12px}.admin-filter-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.admin-filter-label{font-size:11px;font-weight:500;color:#9ca3af;text-transform:uppercase;letter-spacing:.04em}.admin-filter-divider{width:1px;height:20px;background:#e5e7eb;margin:0 4px}.admin-phase-toggle{padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500;border:1px solid #e5e7eb;background:transparent;color:#6b7280;cursor:pointer;font-family:inherit;transition:all .12s}.admin-phase-toggle:hover{background:#f3f4f6}.admin-phase-toggle.active{border-color:#0f172a;background:#0f172a;color:#fff}.admin-filter-date{padding:5px 10px;border:1px solid #e5e7eb;border-radius:6px;font-size:12px;color:#334155;font-family:inherit;outline:none}.admin-filter-date:focus{border-color:#4f46e5}.admin-filter-tilde{color:#9ca3af;font-size:12px}.admin-filter-clear-date{padding:4px 8px;border:1px solid #fca5a5;border-radius:6px;background:#fef2f2;color:#dc2626;font-size:12px;cursor:pointer;font-family:inherit}.admin-filter-input{padding:7px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;outline:none;background:#fff;width:160px;font-family:inherit}.admin-filter-input:focus{border-color:#4f46e5}.admin-filter-reset{padding:7px 12px;border:1px solid #fca5a5;border-radius:6px;font-size:13px;background:#fef2f2;color:#dc2626;cursor:pointer;font-family:inherit}.admin-filter-reset:hover{background:#fee2e2}.admin-filter-total{margin-left:auto;font-size:13px;color:#9ca3af}.admin-table-wrap{background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th{text-align:left;padding:9px 12px;font-size:11px;font-weight:500;color:#9ca3af;text-transform:uppercase;letter-spacing:.04em;background:#f8fafc;border-bottom:1px solid #e5e7eb;white-space:nowrap}.admin-th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.admin-th-sortable:hover{color:#374151}.admin-sort-icon{font-size:10px;margin-left:2px;color:#9ca3af}.admin-th-sortable:hover .admin-sort-icon{color:#3b82f6}.admin-table td{padding:10px 12px;border-bottom:1px solid #f1f5f9;color:#334155;white-space:nowrap}.admin-table tbody tr{transition:background .1s}.admin-table tbody tr:hover{background:#f8fafc}.admin-table-empty{text-align:center;padding:40px 14px!important;color:#9ca3af}.admin-table-student{font-weight:500;color:#0f172a}.admin-phase-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:500}.admin-table-link{padding:4px 10px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;color:#3b82f6;font-size:12px;font-weight:500;cursor:pointer;font-family:inherit}.admin-table-link:hover{background:#eff6ff}.admin-pagination{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px}.admin-page-btn{padding:6px 14px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;font-size:13px;cursor:pointer;color:#334155;font-family:inherit}.admin-page-btn:disabled{opacity:.4;cursor:not-allowed}.admin-page-btn:hover:not(:disabled){background:#f3f4f6}.admin-page-info{font-size:13px;color:#6b7280}.admin-trends-section{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:18px 20px;margin-bottom:16px}.admin-trends-title{font-size:14px;font-weight:700;color:#0f172a;margin:0 0 14px}.admin-trends-chart{display:flex;gap:2px;align-items:flex-end;height:160px}.admin-trend-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;padding:4px 2px;border-radius:6px;transition:background .12s}.admin-trend-col:hover{background:#f8fafc}.admin-trend-col.selected{background:#eff6ff}.admin-trend-value{font-size:11px;font-weight:700;color:#374151}.admin-trend-bar-wrap{flex:1;width:100%;max-width:40px;display:flex;align-items:flex-end;justify-content:center}.admin-trend-bar{width:70%;background:#6366f1;border-radius:3px 3px 0 0;min-height:2px;transition:height .3s ease}.admin-trend-col.selected .admin-trend-bar{background:#4338ca}.admin-trend-label{font-size:10px;color:#6b7280;font-weight:500}.admin-trend-sub{font-size:9px;color:#9ca3af;white-space:nowrap}.admin-daily-detail{margin-top:16px;padding-top:16px;border-top:1px solid #e5e7eb}.admin-daily-detail-title{font-size:13px;font-weight:700;color:#0f172a;margin:0 0 12px}.admin-daily-detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.admin-daily-detail-card{background:#f8fafc;border:1px solid #e5e7eb;border-radius:6px;padding:10px 12px}.admin-daily-detail-label{font-size:10px;font-weight:500;color:#9ca3af;text-transform:uppercase;margin-bottom:4px}.admin-daily-detail-value{font-size:16px;font-weight:700;color:#0f172a}.admin-daily-detail-ratio{font-size:11px;font-weight:400;color:#6b7280;margin-left:4px}.admin-daily-phases{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.admin-daily-phases-label{font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;margin-right:4px}.admin-daily-phase-item{display:inline-flex;align-items:center;gap:4px}.admin-daily-phase-count{font-size:11px;color:#6b7280}.admin-hourly-section{margin-top:4px}.admin-hourly-chart{display:flex;align-items:flex-end;height:60px;gap:1px;margin-top:8px}.admin-hourly-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;position:relative}.admin-hourly-bar{width:80%;background:#a5b4fc;border-radius:2px 2px 0 0;min-height:0;transition:height .2s ease}.admin-hourly-col:hover .admin-hourly-bar{background:#6366f1}.admin-hourly-label{font-size:8px;color:#9ca3af;margin-top:2px}.admin-problems-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.admin-problems-title{font-size:22px;font-weight:700;color:#111827;margin:0}.ap-sa-key{font-family:SF Mono,Consolas,monospace;font-size:12px;font-weight:600;color:#1e40af}.ap-filter-select{padding:5px 10px;border:1px solid #e5e7eb;border-radius:6px;font-size:12px;color:#334155;font-family:inherit;outline:none;background:#fff}.ap-img-icons{display:flex;gap:4px}.ap-img-dot{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:4px;font-size:10px;font-weight:600;background:#f1f5f9;color:#cbd5e1}.ap-img-dot.active{background:#dbeafe;color:#2563eb}.ap-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:flex-start;justify-content:center;padding:40px 20px;z-index:1000;overflow-y:auto}.ap-modal{background:#fff;border-radius:12px;width:100%;max-width:800px;max-height:calc(100vh - 80px);overflow-y:auto;box-shadow:0 8px 30px #00000026}.ap-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #e5e7eb;position:sticky;top:0;background:#fff;z-index:1}.ap-modal-header h2{font-size:17px;font-weight:700;margin:0;color:#0f172a}.ap-modal-subtitle{font-weight:400;color:#6b7280}.ap-modal-close{width:32px;height:32px;border:none;background:#f1f5f9;border-radius:6px;font-size:14px;cursor:pointer;color:#64748b;flex-shrink:0}.ap-modal-close:hover{background:#e2e8f0}.ap-modal-loading{padding:60px;text-align:center;color:#9ca3af}.ap-modal-body{padding:24px;display:flex;flex-direction:column;gap:20px}.ap-images{display:grid;grid-template-columns:1fr 1fr;gap:16px}.ap-image-box{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.ap-image-label{padding:8px 12px;font-size:11px;font-weight:600;color:#6b7280;background:#f9fafb;border-bottom:1px solid #e5e7eb;text-transform:uppercase}.ap-image{width:100%;max-height:300px;object-fit:contain;display:block;padding:8px}.ap-image-empty{padding:40px;text-align:center;color:#cbd5e1;font-size:13px}.ap-gt-section{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px}.ap-gt-info{display:flex;align-items:center;gap:10px}.ap-gt-label{font-size:13px;font-weight:600;color:#374151}.ap-gt-version{font-size:12px;color:#6b7280}.ap-gt-actions{display:flex;gap:8px}.ap-btn{padding:7px 14px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;border:none;transition:all .15s}.ap-btn:disabled{opacity:.4;cursor:not-allowed}.ap-btn-primary{background:#4f46e5;color:#fff}.ap-btn-primary:hover:not(:disabled){background:#4338ca}.ap-btn-danger{background:#fff;color:#dc2626;border:1px solid #fca5a5}.ap-btn-danger:hover:not(:disabled){background:#fef2f2}.ap-section{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.ap-section-title{font-size:13px;font-weight:700;color:#374151;padding:10px 14px;margin:0;background:#f9fafb;border-bottom:1px solid #e5e7eb}.ap-json{margin:0;padding:14px;font-size:11px;line-height:1.5;background:#f8fafc;max-height:300px;overflow:auto;white-space:pre-wrap;word-break:break-word}.ap-versions{display:flex;flex-direction:column}.ap-version-item{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid #f1f5f9;font-size:12px}.ap-version-item:last-child{border-bottom:none}.ap-version-num{font-weight:700;color:#374151;min-width:28px}.ap-version-date{color:#6b7280}.ap-version-error{color:#dc2626;font-size:11px}.ap-sessions{display:flex;flex-direction:column}.ap-session-item{display:flex;align-items:center;gap:12px;padding:8px 14px;border-bottom:1px solid #f1f5f9;font-size:12px;cursor:pointer;transition:background .1s}.ap-session-item:hover{background:#f8fafc}.ap-session-item:last-child{border-bottom:none}.ap-session-name{font-weight:500;color:#0f172a;min-width:80px}.ap-session-phase{color:#6b7280}.ap-session-date{color:#9ca3af;margin-left:auto}.ap-section-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#f9fafb;border-bottom:1px solid #e5e7eb}.ap-section-header .ap-section-title{padding:0;background:none;border-bottom:none}.ap-btn-edit{background:#fef3c7;color:#92400e;border:1px solid #f59e0b}.ap-btn-edit:hover:not(:disabled){background:#fde68a}.ap-gt-view{padding:14px;display:flex;flex-direction:column;gap:16px}.ap-gt-view-block{display:flex;flex-direction:column;gap:8px}.ap-gt-view-block-title{font-size:13px;font-weight:700;color:#1e40af;padding-bottom:6px;border-bottom:1px solid #e5e7eb}.ap-gt-view-field{font-size:13px;line-height:1.6;color:#1f2937}.ap-gt-view-label{font-weight:600;color:#374151}.ap-gt-view-list{margin:4px 0 0 20px;padding:0;font-size:13px;line-height:1.6}.ap-gt-edit{padding:14px;display:flex;flex-direction:column;gap:16px}.ap-gt-edit-block{padding:14px;border-radius:8px;display:flex;flex-direction:column;gap:8px}.ap-gt-edit-pu{background:#dbeafe;border:1px solid #93c5fd}.ap-gt-edit-sp{background:#fef3c7;border:1px solid #fde047}.ap-gt-edit-block-title{font-size:13px;font-weight:700;margin-bottom:4px}.ap-gt-edit-pu .ap-gt-edit-block-title{color:#1e40af}.ap-gt-edit-sp .ap-gt-edit-block-title{color:#92400e}.ap-gt-edit-label{font-size:12px;font-weight:600;color:#374151;margin-top:4px}.ap-gt-edit-textarea{width:100%;padding:8px;border-radius:4px;border:1px solid #d1d5db;font-size:13px;font-family:inherit;line-height:1.5;resize:vertical;box-sizing:border-box}.ap-gt-edit-pu .ap-gt-edit-textarea{border-color:#93c5fd}.ap-gt-edit-sp .ap-gt-edit-textarea{border-color:#fde047}.ap-gt-edit-actions{display:flex;justify-content:flex-end;gap:8px}.admin-issues-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.admin-issues-title{font-size:22px;font-weight:700;color:#111827;margin:0}.ai-filter-select{padding:5px 10px;border:1px solid #e5e7eb;border-radius:6px;font-size:12px;color:#334155;font-family:inherit;outline:none;background:#fff}.ai-reason-text{font-size:12px;color:#374151;line-height:1.4}.ai-valid-yes{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:11px;font-weight:700;background:#dcfce7;color:#15803d}.ai-valid-no{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:11px;font-weight:700;background:#fee2e2;color:#dc2626}.ai-meta-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:12px;padding:16px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px}.ai-meta-item{display:flex;flex-direction:column;gap:4px}.ai-meta-label{font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase}.ai-reason-content{padding:14px;font-size:13px;line-height:1.6;color:#1f2937;white-space:pre-wrap}.ai-message-box{padding:14px}.ai-message-role{display:inline-block;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:700;text-transform:uppercase;background:#e0e7ff;color:#4338ca;margin-bottom:8px}.ai-message-content{font-size:13px;line-height:1.6;color:#1f2937;white-space:pre-wrap}.ai-update-form{padding:14px;display:flex;flex-direction:column;gap:12px}.ai-update-row{display:flex;flex-direction:column;gap:4px}.ai-update-label{font-size:12px;font-weight:600;color:#374151}.ai-update-textarea{padding:8px 10px;border:1px solid #e5e7eb;border-radius:6px;font-size:13px;font-family:inherit;resize:vertical;outline:none;color:#1f2937}.ai-update-textarea:focus{border-color:#93c5fd;box-shadow:0 0 0 2px #3b82f61a}.ai-update-actions{display:flex;gap:8px;padding-top:4px}.ai-langfuse-section{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.ai-langfuse-summary{padding:10px 14px;font-size:13px;font-weight:700;color:#374151;background:#f9fafb;cursor:pointer;-webkit-user-select:none;user-select:none}.ai-langfuse-summary:hover{background:#f1f5f9}.ai-langfuse-section[open] .ai-langfuse-summary{border-bottom:1px solid #e5e7eb}.ai-langfuse-section .ap-section{border:none;border-radius:0;border-bottom:1px solid #f1f5f9}.ai-langfuse-section .ap-section:last-child{border-bottom:none}.asd-loading,.asd-error{padding:40px;text-align:center;color:#6b7280;font-size:14px}.asd-error{color:#dc2626}.asd-top-actions{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.asd-back{padding:6px 12px;border:1px solid #d1d5db;border-radius:6px;background:#fff;font-size:13px;color:#374151;cursor:pointer}.asd-back:hover{background:#f3f4f6}.asd-review-btn{padding:7px 14px;border:none;border-radius:6px;background:#4f46e5;color:#fff;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}.asd-review-btn:hover:not(:disabled){background:#4338ca}.asd-review-btn:disabled{opacity:.5;cursor:not-allowed}.asd-meta{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:20px;margin-bottom:20px}.asd-title{font-size:18px;font-weight:700;margin:0 0 16px;display:flex;align-items:center;gap:10px}.asd-phase-badge{display:inline-block;padding:2px 10px;border-radius:10px;font-size:12px;font-weight:600}.asd-meta-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.asd-meta-item{display:flex;flex-direction:column;gap:2px;font-size:13px}.asd-meta-label{color:#6b7280;font-size:11px;font-weight:600;text-transform:uppercase}.asd-section{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:20px;margin-bottom:20px}.asd-section-title{font-size:15px;font-weight:700;margin:0 0 14px;color:#111827}.asd-section-toggle{cursor:pointer;display:flex;align-items:center;gap:8px;-webkit-user-select:none;user-select:none}.asd-toggle-icon{font-size:11px;color:#9ca3af}.asd-messages{display:flex;flex-direction:column;gap:12px;max-height:600px;overflow-y:auto;padding-right:4px}.asd-messages-empty{text-align:center;color:#9ca3af;padding:24px;font-size:13px}.asd-msg{display:flex;flex-direction:column;max-width:75%}.asd-msg-tutor{align-self:flex-start}.asd-msg-student{align-self:flex-end}.asd-msg-role{font-size:11px;font-weight:600;color:#6b7280;margin-bottom:3px;padding-left:2px}.asd-msg-student .asd-msg-role{text-align:right;padding-right:2px}.asd-msg-bubble{padding:10px 14px;border-radius:12px;font-size:13px;line-height:1.6;word-break:break-word}.asd-msg-tutor .asd-msg-bubble{background:#f3f4f6;color:#1f2937;border-bottom-left-radius:4px}.asd-msg-student .asd-msg-bubble{background:#4f46e5;color:#fff;border-bottom-right-radius:4px}.asd-msg-content{white-space:pre-wrap}.asd-msg-image img{max-width:240px;max-height:200px;border-radius:6px;margin-top:8px}.asd-msg-time{font-size:10px;color:#9ca3af;margin-top:2px;padding-left:2px}.asd-msg-student .asd-msg-time{text-align:right;padding-right:2px}.asd-msg-survey{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.asd-msg-survey-label{font-size:11px;font-weight:600;color:#6b7280;margin-right:4px}.asd-msg-student .asd-msg-survey-label{color:#ffffffb3}.asd-msg-survey-item{padding:2px 8px;border-radius:6px;font-size:12px;background:#0000000f}.asd-msg-student .asd-msg-survey-item{background:#ffffff26}.asd-report-json{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:14px;font-size:12px;line-height:1.5;overflow-x:auto;max-height:400px;overflow-y:auto;white-space:pre-wrap;word-break:break-word}.asd-report-empty{color:#9ca3af;font-size:13px}.ext-admin-layout{display:flex;min-height:100vh;background:#f8f9fb}.ext-admin-sidebar{width:220px;background:#1a1a2e;color:#fff;flex-shrink:0;display:flex;flex-direction:column}.ext-admin-sidebar-header{padding:24px 20px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.ext-admin-sidebar-header h2{margin:0;font-size:16px;font-weight:700;letter-spacing:-.3px;color:#fff}.ext-admin-nav{display:flex;flex-direction:column;padding:12px 8px;gap:2px}.ext-admin-nav-item{display:block;padding:10px 14px;color:#ffffffa6;text-decoration:none;font-size:14px;border-radius:6px;transition:all .15s}.ext-admin-nav-item:hover{color:#fff;background:#ffffff0f}.ext-admin-nav-item.active{color:#fff;background:#4f46e566;font-weight:600}.ext-admin-main{flex:1;display:flex;flex-direction:column;min-width:0}.ext-admin-header{height:56px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid #e5e7eb}.ext-admin-header-title{font-size:15px;font-weight:600;color:#374151}.ext-admin-logout-btn{padding:6px 14px;font-size:13px;color:#6b7280;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;transition:all .15s}.ext-admin-logout-btn:hover{color:#dc2626;background:#fef2f2;border-color:#fecaca}.ext-admin-content{flex:1;padding:24px;overflow-y:auto}:root{--font-size: 16px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--background: #ffffff;--foreground: #030213;--card: #ffffff;--card-foreground: #030213;--primary: #030213;--primary-foreground: #ffffff;--secondary: #f1f5f9;--secondary-foreground: #030213;--muted: #f1f5f9;--muted-foreground: #64748b;--accent: #f8fafc;--accent-foreground: #030213;--destructive: #ef4444;--destructive-foreground: #ffffff;--border: rgba(0, 0, 0, .1);--input: transparent;--input-background: #f3f4f6;--ring: #030213;--radius: .625rem;--radius-sm: calc(var(--radius) - 4px);--radius-md: calc(var(--radius) - 2px);--radius-lg: var(--radius);--radius-xl: calc(var(--radius) + 4px);--radius-2xl: calc(var(--radius) + 8px);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px}*{margin:0;padding:0;box-sizing:border-box}html{font-size:var(--font-size);height:100%;height:-webkit-fill-available}body{font-family:Noto Sans KR,-apple-system,BlinkMacSystemFont,sans-serif;background:#f8fafc;color:var(--foreground);font-weight:var(--font-weight-normal);line-height:1.5;overscroll-behavior:none;height:100%;min-height:100%;min-height:-webkit-fill-available}#root{width:100%;height:100%}h1{font-size:2rem;font-weight:var(--font-weight-bold);line-height:1.5;color:var(--foreground)}h2{font-size:1.5rem;font-weight:var(--font-weight-semibold);line-height:1.5;color:var(--foreground)}h3{font-size:1.25rem;font-weight:var(--font-weight-semibold);line-height:1.5;color:var(--foreground)}h4{font-size:1rem;font-weight:var(--font-weight-medium);line-height:1.5;color:var(--foreground)}p{font-size:1rem;font-weight:var(--font-weight-normal);line-height:1.5;color:var(--foreground)}label{font-size:1rem;font-weight:var(--font-weight-medium);line-height:1.5}button{font-size:1rem;font-weight:var(--font-weight-medium);line-height:1.5;font-family:inherit}input{font-size:1rem;font-weight:var(--font-weight-normal);line-height:1.5;font-family:inherit}[data-sonner-toast] [data-close-button]{background:#fff!important;border-color:#0000001f!important;color:#374151!important}
