:root{--chat-primary:#2196f3;--chat-background:#fff;--chat-surface:#f5f5f5;--chat-text:#333;--chat-text-secondary:#666;--chat-padding:1rem;--chat-margin:0.5rem;--chat-border-radius:8px;--chat-font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--chat-font-size:14px;--chat-line-height:1.5;--chat-max-width:100%;--chat-min-height:400px;--chat-avatar-size:32px;--chat-header-height:48px;--chat-header-background:var(--chat-surface);--chat-header-text:var(--chat-text);--chat-header-padding:0.75rem 1rem;--chat-header-border:1px solid rgba(0,0,0,.1);--chat-title-font-size:14px;--chat-title-font-weight:600;--chat-close-button-size:28px;--chat-close-button-background:rgba(0,0,0,.1);--chat-close-button-hover:rgba(0,0,0,.15)}.chat-message-wrapper{display:flex;gap:.75rem;margin-bottom:1rem}.chat-message-user-wrapper{justify-content:flex-end}.chat-message-ai-wrapper{justify-content:flex-start}.chat-avatar-container{flex-shrink:0}.chat-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px}.chat-avatar-user{background-color:#e3f2fd}.chat-avatar-ai{background-color:#f3e5f5}.chat-message-content{max-width:70%;display:flex;flex-direction:column;gap:.5rem}.chat-message-bubble{padding:.75rem 1rem;border-radius:.75rem;position:relative}.chat-message-user{background-color:#2196f3;color:#fff;border-bottom-right-radius:.25rem}.chat-message-ai{background-color:#f5f5f5;color:#333;border-bottom-left-radius:.25rem}.chat-message-error{background-color:#ffebee;color:#c62828;border:1px solid #ef5350}.chat-error-content{display:flex;gap:.5rem;align-items:flex-start}.chat-error-icon{font-size:1.25rem;flex-shrink:0}.chat-error-title{font-weight:600;margin-bottom:.25rem}.chat-error-message{opacity:.9}.chat-loading{display:flex;gap:.25rem;align-items:center;margin-top:.5rem}.chat-loading-dot{animation:typing 1.4s infinite;opacity:.4}.chat-loading-dot:nth-child(2){animation-delay:.2s}.chat-loading-dot:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{opacity:.4}30%{opacity:1}}.chat-metadata{display:flex;gap:.5rem;align-items:center;font-size:.75rem;color:#666;flex-wrap:wrap}.chat-metadata-time{opacity:.7}.chat-metadata-model{background-color:#e8f5e9;color:#2e7d32;padding:.125rem .5rem;border-radius:.75rem;font-size:.7rem}.chat-copy-button{background:none;border:none;color:#1976d2;cursor:pointer;padding:.125rem .5rem;border-radius:.25rem;transition:background-color .2s}.chat-copy-button:hover{background-color:rgba(25,118,210,.08)}.chat-copy-button.copied{color:#4caf50}.chat-copy-button:disabled{opacity:.5;cursor:not-allowed}.mode-selector{display:flex;gap:1rem;align-items:center}.mode-selector-option{display:flex;align-items:center;gap:.375rem;cursor:pointer}.mode-selector-input{width:14px;height:14px;cursor:pointer}.mode-selector-label{font-size:.875rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}.message-input-container{display:flex;gap:.75rem;align-items:flex-end;width:100%}.message-input-textarea{flex:1 1;width:100%;min-height:44px;max-height:200px;padding:.625rem;border:1px solid #e0e0e0;border-radius:.5rem;resize:vertical!important;font-family:inherit;font-size:.875rem;line-height:1.5;transition:border-color .2s;overflow-y:auto}.chat-theme-extension .message-input-textarea{resize:vertical!important;min-height:60px!important}.message-input-textarea:focus{outline:none;border-color:#2196f3}.message-input-textarea:disabled{background-color:#f5f5f5;cursor:not-allowed}.message-input-button{padding:.625rem 1rem;background-color:#2196f3;color:#fff;border:none;border-radius:.5rem;font-size:.875rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:background-color .2s}.message-input-button:hover:not(:disabled){background-color:#1976d2}.message-input-button:disabled{background-color:#e0e0e0;color:#9e9e9e;cursor:not-allowed}.message-input-icon{font-size:1rem}.message-input-loading{font-weight:700}.typing-indicator-wrapper{display:flex;gap:.75rem;align-items:center;margin-bottom:1rem}.typing-indicator-avatar{flex-shrink:0}.typing-indicator-content{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background-color:#f5f5f5;border-radius:.75rem;border-bottom-left-radius:.25rem}.typing-indicator-dots{display:flex;gap:.25rem}.typing-indicator-dot{width:8px;height:8px;background-color:#666;border-radius:50%;animation:typing 1.4s infinite}.typing-indicator-dot:nth-child(2){animation-delay:.2s}.typing-indicator-dot:nth-child(3){animation-delay:.4s}.typing-indicator-message{font-size:.875rem;color:#666;font-style:italic}.chat-header{height:var(--chat-header-height);background:var(--chat-header-background);padding:var(--chat-header-padding);border-bottom:var(--chat-header-border);justify-content:space-between;flex-wrap:nowrap;flex-shrink:0;position:relative}.chat-header,.chat-title{color:var(--chat-header-text);display:flex;align-items:center}.chat-title{gap:.5rem;margin:0;padding:0;font-size:var(--chat-title-font-size);font-weight:var(--chat-title-font-weight);flex:1 1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.chat-title-logo{width:16px;height:16px;object-fit:contain;flex-shrink:0}.chat-close-button{width:var(--chat-close-button-size);height:var(--chat-close-button-size);border:none;background:var(--chat-close-button-background);color:var(--chat-header-text);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:background-color .2s;flex-shrink:0;margin-left:.5rem;line-height:1}.chat-close-button:hover{background:var(--chat-close-button-hover)}.chat-message-user{background-color:#f0f4f8!important;color:#2d3748!important;border:1px solid #e2e8f0!important}.chat-theme-extension .chat-message-user,.scimigo-chat-bubble .chat-message-user{background-color:#f7fafc!important;color:#2d3748!important;border:1px solid #e2e8f0!important}.scimigo-right .scimigo-message-bubble{background-color:#f0f4f8!important;color:#2d3748!important}.scimigo-dark-mode .chat-message-user{border:1px solid #606d7a!important}.scimigo-dark-mode .chat-message-user,.scimigo-dark-mode .scimigo-right .scimigo-message-bubble{background-color:#4a5568!important;color:#f7fafc!important}.scimigo-dark-mode,:root.dark{--chat-header-background:#2b2b2b;--chat-header-text:#fff;--chat-header-border:1px solid hsla(0,0%,100%,.1);--chat-close-button-background:hsla(0,0%,100%,.1);--chat-close-button-hover:hsla(0,0%,100%,.2)}.chat-theme-learn{--chat-primary:#2563eb;--chat-background:#fff;--chat-surface:#f3f4f6;--chat-text:#111827;--chat-text-secondary:#6b7280;--chat-max-width:100%;--chat-min-height:400px;--chat-avatar-size:36px;--chat-font-size:14px;--chat-line-height:1.6;--chat-padding:1rem;--chat-border-radius:12px}.chat-theme-learn .chat-avatar{width:36px;height:36px;border-radius:50%;font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:center}.chat-theme-learn .chat-avatar-ai{background:#eef2ff;color:#4338ca}.chat-theme-learn .chat-avatar-user{background:#f3f4f6;color:#6b7280}.chat-theme-learn .chat-message-content{max-width:95%}.chat-theme-learn .chat-message-bubble{padding:10px 14px;font-size:14px;line-height:1.6}.chat-theme-learn .chat-message-user{background:#2563eb!important;color:#fff!important;border:none!important;border-radius:18px 18px 4px 18px;box-shadow:0 6px 14px rgba(37,99,235,.25)}.chat-theme-learn .chat-message-ai{background:#f3f4f6;color:#111827;border-radius:18px 18px 18px 4px;box-shadow:0 4px 12px rgba(15,23,42,.08)}.chat-theme-learn .chat-copy-button{color:#6b7280;padding:2px 6px;border-radius:6px;font-size:12px}.chat-theme-learn .chat-copy-button:hover{background:rgba(0,0,0,.06)}.chat-theme-learn .chat-copy-button.copied{color:#16a34a}.chat-theme-learn .chat-copy-button-user{color:hsla(0,0%,100%,.8)}.chat-theme-learn .chat-copy-button-user:hover{background:hsla(0,0%,100%,.15)}.chat-theme-learn .chat-metadata{font-size:11px;color:#6b7280}.chat-theme-learn .message-input-container{gap:8px}.chat-theme-learn .message-input-textarea{border-radius:18px;padding:10px 16px;border-color:#e5e7eb;font-size:14px;min-height:40px;resize:none!important}.chat-theme-learn .message-input-textarea:focus{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.1)}.chat-theme-learn .message-input-button{width:40px;height:40px;border-radius:50%;padding:0;background:#2563eb;display:flex;align-items:center;justify-content:center;flex-shrink:0}.chat-theme-learn .message-input-button:hover:not(:disabled){background:#1d4ed8}.chat-theme-learn .message-input-button:disabled{background:#e5e7eb;color:#9ca3af}.chat-theme-learn .message-input-label{display:none}.chat-theme-learn .typing-indicator-content{background:#f3f4f6;border-radius:18px 18px 18px 4px}.chat-theme-learn .typing-indicator-dot{background-color:#6b7280}.chat-theme-learn .typing-indicator-message{display:none}.chat-theme-learn .chat-message-wrapper{animation:chatFadeIn .3s ease-out}@keyframes chatFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.learn-chat-header{padding:14px 16px;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff}.learn-chat-header-top{display:flex;justify-content:space-between;align-items:center}.learn-chat-header-left{display:flex;align-items:center;gap:8px}.learn-chat-header-logo{width:24px;height:24px;border-radius:4px}.learn-chat-header-title{margin:0;font-size:15px;font-weight:600}.learn-chat-header-actions{display:flex;align-items:center;gap:10px}.learn-chat-header-btn{background:transparent;border:none;color:#fff;cursor:pointer;padding:0;line-height:1;display:flex;align-items:center;justify-content:center}.learn-chat-header-btn:hover{opacity:.85;background:transparent}.learn-chat-header-settings{font-size:18px}.learn-chat-header-close{font-size:20px}.learn-chat-header-context{margin:6px 0 0;font-size:12px;opacity:.9}.learn-anchor-btn{border:none;background:#dbeafe;color:#1d4ed8;border-radius:999px;padding:2px 8px;cursor:pointer;font-size:11px}.learn-anchor-btn:hover{background:#bfdbfe}.learn-anchor-label{display:flex;align-items:center;gap:6px;font-size:12px;color:#6b7280;cursor:pointer;font-weight:400}.learn-chat-body-state{padding:20px;display:grid;grid-gap:10px;gap:10px}.learn-chat-body-state p{margin:0;color:#111827}.learn-chat-body-state .learn-hint{font-size:12px;color:#4b5563}.learn-chat-agreement{margin:16px;padding:16px;border:1px solid #dbeafe;border-radius:12px;background:#eff6ff;display:grid;grid-gap:12px;gap:12px}.learn-chat-agreement h3,.learn-chat-agreement p{margin:0}.learn-chat-agreement h3{color:#1e3a8a;font-size:15px}.learn-chat-agreement p{color:#374151;font-size:13px;line-height:1.5}.learn-chat-agreement a{color:#1d4ed8;text-decoration:underline}.learn-chat-btn-primary{padding:8px 12px;border-radius:8px;border:none;background:#2563eb;color:#fff;cursor:pointer;font-size:14px;width:-moz-fit-content;width:fit-content}.learn-chat-btn-primary:hover{background:#1d4ed8}.learn-chat-btn-outline{padding:8px 12px;border-radius:8px;border:1px solid #d1d5db;background:#fff;color:#374151;cursor:pointer;font-size:14px}.learn-chat-btn-outline:hover{background:#f9fafb}.learn-chat-error{background:#fee2e2;color:#b91c1c;padding:8px 16px;font-size:12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.learn-chat-error-retry{border:1px solid #b91c1c;border-radius:6px;background:#fff;color:#b91c1c;cursor:pointer;padding:4px 8px;font:inherit}.learn-chat-empty{text-align:center;color:#9ca3af;font-size:14px;padding:24px 0}.learn-chat-fab{width:60px;height:60px;border-radius:50%;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:24px;transition:transform .2s,box-shadow .2s;padding:0}.learn-chat-fab:hover{transform:scale(1.1);background:linear-gradient(135deg,#3b82f6,#1d4ed8)}.learn-chat-fab-open{background:#1d4ed8;box-shadow:0 4px 16px rgba(59,130,246,.4)}.learn-chat-fab-closed{background:linear-gradient(135deg,#3b82f6,#1d4ed8);box-shadow:0 4px 16px rgba(59,130,246,.4)}.learn-chat-fab:hover{box-shadow:0 6px 20px rgba(59,130,246,.5)}.learn-chat-badge{position:absolute;bottom:42px;right:0;width:22px;height:22px;border-radius:50%;background:#ef4444;color:#fff;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(0,0,0,.2)}.assistant-prose p{margin:0 0 .75em}.assistant-prose p:last-child{margin-bottom:0}.assistant-prose ol,.assistant-prose ul{margin:.5em 0;padding-left:1.5em}.assistant-prose li{margin:.25em 0}.assistant-prose h1,.assistant-prose h2,.assistant-prose h3,.assistant-prose h4,.assistant-prose h5,.assistant-prose h6{margin:1em 0 .5em;font-weight:600;line-height:1.3}.assistant-prose h1{font-size:1.25em}.assistant-prose h2{font-size:1.15em}.assistant-prose h3{font-size:1.05em}.assistant-prose h1:first-child,.assistant-prose h2:first-child,.assistant-prose h3:first-child{margin-top:0}.assistant-prose blockquote{margin:.5em 0;padding:.25em .75em;border-left:3px solid #d1d5db;color:#4b5563}.assistant-prose code:not(pre code){background:#e5e7eb;padding:1px 5px;border-radius:4px;font-size:.9em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.assistant-prose hr{border:none;border-top:1px solid #e5e7eb;margin:.75em 0}.assistant-prose strong{font-weight:600}.assistant-prose a{color:#2563eb;text-decoration:underline}.assistant-prose table{border-collapse:collapse;margin:.5em 0;font-size:.9em}.assistant-prose td,.assistant-prose th{border:1px solid #d1d5db;padding:4px 8px;text-align:left}.assistant-prose th{background:#f3f4f6;font-weight:600}.assistant-prose pre{position:relative;padding:12px;border-radius:10px;background:#0f172a;color:#e2e8f0;overflow-x:auto;margin:.5em 0;font-size:.85em;line-height:1.5}.assistant-prose pre code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;background:none;padding:0;border-radius:0;font-size:inherit}.code-copy-btn{position:absolute;top:8px;right:8px;border:none;background:rgba(15,23,42,.85);color:#fff;font-size:11px;padding:4px 6px;border-radius:6px;cursor:pointer}.code-copy-btn.copied{background:rgba(34,197,94,.9)}:root{--tutor-width:min(560px,92vw);--tutor-top:69px;--tutor-good:#2c7a4b;--tutor-good-soft:#e3f2e8;--tutor-bad:#ad3d36;--tutor-bad-soft:#f8e6e4;--tutor-mark:#fff0b8;--tutor-accent-soft:#e6eefc;--tutor-shadow:0 8px 28px rgba(20,35,45,.14);--tutor-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}:root[data-theme=dark]{--tutor-good:#6cc28f;--tutor-good-soft:#17301f;--tutor-bad:#eb8a82;--tutor-bad-soft:#3a1d1b;--tutor-mark:#4a4120;--tutor-accent-soft:#1b2b4a;--tutor-shadow:0 8px 28px rgba(0,0,0,.5)}:root[data-learning-header=hidden]{--tutor-top:0px}@media (min-width:1180px){:root[data-tutor-open=true] .course-lab-page,:root[data-tutor-open=true] .module-page{padding-right:var(--tutor-width)}}.tutor-flash{background-color:var(--tutor-mark);transition:background-color .6s;border-radius:6px}.tutor-launcher-wrap{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom, 0px));z-index:45;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:calc(100vw - 40px)}.tutor-launcher{border:1px solid var(--color-primary);background:var(--color-primary);color:#fff;border-radius:999px;padding:9px 16px;font:600 14px/1.2 inherit;box-shadow:var(--tutor-shadow);cursor:pointer}.tutor-launcher:hover{background:var(--color-primary-dark)}.tutor-panel{position:fixed;top:var(--tutor-top);right:0;bottom:0;width:var(--tutor-width);z-index:45;display:flex;flex-direction:column;min-height:0;background:var(--color-surface);color:var(--color-text);border-left:1px solid var(--color-border);box-shadow:var(--tutor-shadow);font-size:14px;line-height:1.5;transition:top .18s ease,width .18s ease}.tutor-panel[hidden]{display:none}.tutor-panel button,.tutor-panel input,.tutor-panel textarea{font:inherit;color:inherit}.tutor-panel :focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.tutor-head{display:flex;align-items:center;gap:4px;flex-wrap:nowrap;padding:8px 10px 8px 14px;border-bottom:1px solid var(--color-border)}.tutor-title{display:grid;line-height:1.25;margin-right:auto;min-width:0;flex:1 1}.tutor-title b{font-size:14px}.tutor-title span{font-size:12px;color:var(--color-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tutor-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--color-border);background:var(--color-surface);border-radius:6px;padding:5px 10px;font-size:13px;line-height:1.3;cursor:pointer;text-decoration:none}.tutor-btn:hover:not(:disabled){background:var(--color-subtle)}.tutor-btn.is-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.tutor-btn.is-primary:hover:not(:disabled){background:var(--color-primary-dark)}.tutor-btn.is-quiet{border-color:transparent;background:transparent;color:var(--color-muted)}.tutor-btn.is-quiet:hover:not(:disabled){color:var(--color-text)}.tutor-btn.is-danger{color:var(--tutor-bad)}.tutor-btn:disabled{opacity:.45;cursor:not-allowed}.tutor-linkish{border:0;background:none;padding:0;text-decoration:underline;text-underline-offset:2px}.tutor-linkish,.tutor-panel .tutor-keep{color:var(--color-muted);font-size:12px;cursor:pointer}.tutor-panel .tutor-keep{white-space:nowrap;position:relative;display:inline-flex;align-items:center;gap:6px;padding:4px 6px;border-radius:6px}.tutor-keep input{position:absolute;opacity:0;width:1px;height:1px}.tutor-switch{width:26px;height:15px;border-radius:999px;background:var(--color-border);position:relative;flex:none;transition:background-color .15s}.tutor-switch:after{content:"";position:absolute;top:2px;left:2px;width:11px;height:11px;border-radius:50%;background:var(--color-surface);transition:transform .15s}.tutor-keep input:checked+.tutor-switch{background:var(--color-primary)}.tutor-keep input:checked+.tutor-switch:after{transform:translateX(11px)}.tutor-keep input:focus-visible+.tutor-switch{outline:2px solid var(--color-primary);outline-offset:2px}.tutor-body{flex:1 1;min-height:0;overflow:auto;padding:12px 14px;display:flex;flex-direction:column;gap:14px}.tutor-turn-pair{display:grid;grid-gap:10px;gap:10px}.tutor-turn{display:grid;grid-gap:6px;gap:6px;font-size:13.5px;min-width:0}.tutor-turn.is-user{justify-self:end;max-width:88%;background:var(--color-subtle);border:1px solid var(--color-border);border-radius:6px;padding:7px 11px}.tutor-ctx{font-size:12px;color:var(--color-muted)}.tutor-md p{margin:0 0 8px}.tutor-md p:last-child{margin-bottom:0}.tutor-md ol,.tutor-md ul{margin:0 0 8px;padding-left:20px}.tutor-code pre,.tutor-md pre,.tutor-solution pre{background:var(--color-subtle);border:1px solid var(--color-border);border-radius:6px;padding:8px 10px;overflow-x:auto;margin:0 0 8px;font:12.5px/1.55 var(--tutor-mono);white-space:pre;word-break:normal}.tutor-md code{font-family:var(--tutor-mono);font-size:.92em;background:var(--color-subtle);padding:0 3px;border-radius:3px}.tutor-md pre code{background:none;padding:0;display:block;white-space:inherit;word-break:inherit}.tutor-md .katex-display{margin:12px 0;overflow-x:auto;overflow-y:hidden}.tutor-md .katex{font-size:1.05em}.tutor-md a{color:var(--color-primary);text-decoration:underline}.tutor-code summary{cursor:pointer;font-size:12px;color:var(--color-muted)}.tutor-thinking{color:var(--color-muted);font-size:13px}.tutor-rung-tag{font:500 11px var(--tutor-mono);color:var(--color-primary);text-transform:uppercase;letter-spacing:.07em}.tutor-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.tutor-cite{border:1px solid var(--color-border);background:var(--color-surface);border-radius:999px;padding:2px 9px;font-size:12px;color:var(--color-primary);cursor:pointer}.tutor-cite:hover{background:var(--tutor-accent-soft)}.tutor-chip{display:inline-flex;align-items:center;border-radius:999px;padding:1px 8px;font:500 11px var(--tutor-mono);border:1px solid var(--color-border);color:var(--color-muted)}.tutor-chip.is-ok{color:var(--tutor-good);border-color:color-mix(in srgb,var(--tutor-good) 40%,var(--color-border))}.tutor-turn-foot{gap:10px}.tutor-fb,.tutor-turn-foot{display:flex;align-items:center;flex-wrap:wrap}.tutor-fb{gap:4px;font-size:12px;color:var(--color-muted)}.tutor-thumb{border:1px solid transparent;background:transparent;border-radius:6px;padding:1px 5px;filter:grayscale(1);opacity:.7;cursor:pointer}.tutor-thumb:hover:not(:disabled),.tutor-thumb[aria-pressed=true]{filter:none;opacity:1;border-color:var(--color-border)}.tutor-thumb:disabled{cursor:default}.tutor-reasons{display:flex;gap:6px;flex-wrap:wrap;width:100%}.tutor-reasons button:not(.tutor-linkish){border:1px solid var(--color-border);background:var(--color-surface);border-radius:999px;padding:2px 9px;font-size:12px;cursor:pointer}.tutor-suggest button{border:1px dashed var(--color-border);background:transparent;border-radius:999px;padding:1px 9px;font-size:12px;color:var(--color-muted);cursor:pointer}.tutor-day{text-align:center;font:11px var(--tutor-mono);color:var(--color-muted)}.tutor-error{display:flex;gap:8px;flex-wrap:wrap;align-items:baseline;color:var(--tutor-bad);font-size:13px}.tutor-notice{font-size:12.5px;background:var(--color-warm-surface);color:var(--color-text);border-radius:6px;padding:8px 10px;margin:0}.tutor-small{font-size:12px;color:var(--color-muted);margin:0}.tutor-lab-foot{border-top:1px solid var(--color-border);padding:10px 14px 8px;display:grid;grid-gap:8px;gap:8px;justify-items:start}.tutor-ladder{display:grid;grid-gap:6px;gap:6px;width:100%}.tutor-ladder-head{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--color-muted)}.tutor-rungs{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:4px;gap:4px}.tutor-rung{display:grid;justify-items:center;grid-gap:3px;gap:3px;font-size:10.5px;line-height:1.2;text-align:center;color:var(--color-muted)}.tutor-rung i{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--color-border);background:var(--color-surface)}.tutor-rung.is-done{color:var(--color-text)}.tutor-rung.is-done i{background:var(--color-primary);border-color:var(--color-primary)}.tutor-rung.is-solution i{border-style:dashed;border-radius:2px}.tutor-rung.is-solution.is-done i{background:var(--color-warm-text);border-color:var(--color-warm-text);border-style:solid}.tutor-solution-box{border:1px solid var(--color-warm-text);background:var(--color-warm-surface);border-radius:6px;padding:12px 14px;display:grid;grid-gap:10px;gap:10px;font-size:13px;width:100%}.tutor-solution{width:100%;display:grid;grid-gap:6px;gap:6px;max-height:40vh;overflow:auto}.tutor-passed-sol{font:500 12px var(--tutor-mono);color:var(--color-warm-text);margin:0}.tutor-composer{border-top:1px solid var(--color-border);padding:10px 14px 12px;display:grid;grid-gap:8px;gap:8px}.tutor-actions{display:flex;flex-wrap:wrap;gap:6px}.tutor-actions .tutor-btn{font-size:12.5px;padding:4px 9px}.tutor-sel-pill{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--color-muted);background:var(--tutor-accent-soft);border-radius:6px;padding:4px 8px}.tutor-sel-pill q{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1 1;color:var(--color-text)}.tutor-ask{display:flex;gap:6px}.tutor-ask input{flex:1 1;min-width:0;border:1px solid var(--color-border);border-radius:6px;padding:6px 10px;background:var(--color-bg)}.tutor-keep-note{font-size:11.5px}.tutor-divider{border-top:1px solid var(--color-border);padding-top:8px;display:flex;gap:4px;flex-wrap:wrap}.tutor-divider .tutor-btn{font-size:12px;padding:3px 8px}.tutor-report{border:1px solid var(--color-border);border-radius:6px;padding:10px;display:grid;grid-gap:8px;gap:8px;font-size:13px;background:var(--color-subtle)}.tutor-kinds{display:flex;gap:12px;flex-wrap:wrap}.tutor-report textarea{width:100%;min-height:56px;border:1px solid var(--color-border);border-radius:6px;padding:6px 8px;background:var(--color-surface);resize:vertical}.tutor-row{display:flex;gap:8px;flex-wrap:wrap}.tutor-row.is-end{justify-content:flex-end}.tutor-hintchip{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);font-size:12px;padding-right:8px;box-shadow:var(--tutor-shadow)}.tutor-hintchip button:not(.tutor-linkish){border:0;background:transparent;padding:4px 9px;border-radius:999px;color:var(--color-primary);cursor:pointer}.tutor-hintchip button.is-x{color:var(--color-muted);padding:4px 6px 4px 2px}.tutor-gate{flex:1 1;display:grid;align-content:center;justify-items:start;grid-gap:10px;gap:10px;padding:24px 20px;font-size:13.5px}.tutor-gate h3{margin:0;font-size:16px}.tutor-gate p{max-width:40ch}.tutor-gate p,.tutor-gate ul{margin:0;color:var(--color-muted)}.tutor-gate ul{padding-left:18px;display:grid;grid-gap:4px;gap:4px}.tutor-gate a:not(.tutor-btn){color:var(--color-primary);text-decoration:underline}.tutor-drawer{position:absolute;inset:0;z-index:2;background:var(--color-surface);display:flex;flex-direction:column}.tutor-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--color-border)}.tutor-drawer-body{flex:1 1;overflow:auto;padding:14px;display:grid;align-content:start;grid-gap:18px;gap:18px;font-size:13px}.tutor-drawer-body h5{margin:0 0 6px;font:500 11px var(--tutor-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--color-muted)}.tutor-kv{display:grid;grid-template-columns:76px minmax(0,1fr);grid-gap:4px 10px;gap:4px 10px;margin:0}.tutor-kv dt{color:var(--color-muted)}.tutor-kv dd{margin:0}.tutor-convs{list-style:none;margin:0;padding:0;display:grid;grid-gap:6px;gap:6px}.tutor-convs li{display:flex;gap:8px;align-items:center;border:1px solid var(--color-border);border-radius:6px;padding:7px 10px}.tutor-convs li.is-current{border-color:var(--color-primary)}.tutor-conv-main{flex:1 1;min-width:0;display:grid}.tutor-conv-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tutor-conv-main span{color:var(--color-muted);font-size:12px}.tutor-kept{background:var(--color-subtle);border-radius:6px;padding:10px 12px;margin:0}.tutor-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--color-text);color:var(--color-bg);padding:7px 14px;border-radius:6px;font-size:13px;z-index:60;max-width:calc(100vw - 32px)}@media (max-width:860px){.tutor-panel.is-sheet{top:auto;left:0;right:0;width:auto;height:calc(56px + env(safe-area-inset-bottom, 0px));border-left:0;border-top:1px solid var(--color-border);border-radius:12px 12px 0 0;padding-bottom:env(safe-area-inset-bottom,0);transition:height .25s}.tutor-panel.is-sheet.is-open{height:86dvh}.tutor-panel.is-sheet .tutor-head{min-height:55px}.tutor-panel.is-sheet .tutor-drawer{border-radius:12px 12px 0 0}:root[data-tutor-mounted=true] .course-lab-page,:root[data-tutor-mounted=true] .module-page{padding-bottom:64px}.tutor-toast{bottom:72px}}@media (prefers-reduced-motion:reduce){.tutor-flash,.tutor-panel,.tutor-switch,.tutor-switch:after{transition:none}}.tutor-launcher-wrap label,.tutor-panel label{display:inline-flex;flex-direction:row;align-items:center;gap:6px;font-weight:400}.tutor-panel input[type=checkbox],.tutor-panel input[type=radio]{width:auto;padding:0;margin:0}.tutor-launcher-wrap button:not(.tutor-launcher):hover,.tutor-panel button:not(.tutor-btn):hover{background:transparent}.tutor-panel .tutor-cite:hover{background:var(--tutor-accent-soft)}.tutor-launcher-wrap .tutor-hintchip button:not(.tutor-linkish):hover,.tutor-panel .tutor-hintchip button:not(.tutor-linkish):hover,.tutor-panel .tutor-reasons button:not(.tutor-linkish):hover,.tutor-panel .tutor-suggest button:hover{background:var(--color-subtle)}.tutor-panel .tutor-btn:disabled:hover{background:var(--color-surface)}.tutor-panel .tutor-btn.is-primary:disabled:hover{background:var(--color-primary)}.tutor-trail{margin-top:12px}.tutor-trail h6{margin:0 0 4px;font-size:12px;font-weight:600}.tutor-trail ol{margin:0;padding-left:18px;font-size:12px;color:var(--color-muted);display:grid;grid-gap:2px;gap:2px}.tutor-trail details{margin-top:4px;font-size:12px}