.pilot{--ink:#0f172a;--ink-2:#334155;--ink-3:#64748b;--ink-4:#94a3b8;--line:#e2e8f0;--line-2:#f1f5f9;--accent:#2563eb;--accent-dark:#1d4ed8;--accent-soft:#eff6ff;--teal:#14b8a6;--teal-soft:#f0fdfa;--amber:#f59e0b;--amber-soft:#fffbeb;--rose:#f43f5e;--rose-soft:#fff1f2;--green:#10b981;--green-soft:#ecfdf5;--r-sm:8px;--r:12px;--r-lg:16px;--sh-sm:0 1px 2px rgba(15,23,42,.04),0 1px 3px rgba(15,23,42,.05);--sh:0 4px 6px -1px rgba(15,23,42,.05),0 2px 4px -2px rgba(15,23,42,.04);--sh-md:0 10px 15px -3px rgba(15,23,42,.07);max-width:1280px;margin:0 auto;padding:24px 28px 56px;color:var(--ink);font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif}body:has(.pilot){background:#f6f8fb;background-attachment:fixed}.pilot ::-webkit-scrollbar{width:8px;height:8px}.pilot ::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:99px;border:2px solid transparent;background-clip:content-box}.pilot ::-webkit-scrollbar-thumb:hover{background:#94a3b8;background-clip:content-box;border:2px solid transparent}.pilot ::-webkit-scrollbar-track{background:transparent}.pilot h1,.pilot h2,.pilot h3,.pilot h4{color:var(--ink);letter-spacing:-.01em}.pilotIntro h1{letter-spacing:-.02em}.pilotHeader{justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:18px;gap:18px}.pilotHeader,.pilotHeader>div{display:flex;align-items:center}.pilotHeader>div{gap:14px}.pilotBrand{font-size:22px;font-weight:750;color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:10px}.pilotBrand:before{content:"镜";display:grid;place-items:center;width:34px;height:34px;background:linear-gradient(135deg,var(--accent),var(--teal));color:#fff;border-radius:10px;font-size:15px;font-weight:800;box-shadow:0 3px 10px rgba(37,99,235,.25)}.pilotBrand span{display:block;font-size:11px;letter-spacing:.06em;font-weight:400;color:var(--ink-4)}.pilotIntro{padding:32px 0 20px;max-width:820px}.pilotIntro h1{font-size:clamp(24px,3vw,34px);line-height:1.3;margin:8px 0 12px;font-weight:750}.pilotIntro p{color:var(--ink-3);font-size:14.5px;line-height:1.7}.pilotEyebrow{font-size:11px;letter-spacing:.12em;color:var(--accent);font-weight:600;text-transform:uppercase}.pilotTabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:22px;background:#fff;padding:6px;border-radius:var(--r-lg);border:1px solid var(--line);box-shadow:var(--sh-sm);width:-moz-fit-content;width:fit-content}.pilotTabs button{border:1px solid transparent!important;background:transparent!important;border-radius:8px;padding:8px 16px!important;font-size:13.5px;font-weight:550;color:var(--ink-3)!important;min-height:36px}.pilotTabs button:hover:not(:disabled){background:var(--line-2)!important;color:var(--ink-2)!important}.pilotTabs button[aria-current]{background:var(--accent)!important;color:#fff!important;font-weight:600}.pilot button{font:inherit;font-size:13.5px;line-height:1.45;padding:8px 16px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink-2);cursor:pointer;transition:all .15s;font-weight:550;min-height:38px}.pilot button:hover:not(:disabled){background:var(--line-2);border-color:#cbd5e1;transform:translateY(-1px)}.pilot button:active:not(:disabled){transform:translateY(0)}.pilot button:disabled{opacity:.45;cursor:not-allowed}.pilot button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600;box-shadow:0 4px 14px rgba(37,99,235,.22)}.pilot button.primary:hover:not(:disabled){background:var(--accent-dark);border-color:var(--accent-dark)}.pilot :focus-visible{outline:2.5px solid #60a5fa;outline-offset:2px}.pilotCard{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;margin-bottom:20px;min-width:0;box-shadow:var(--sh-sm)}.pilotCard h2{font-size:17px;font-weight:700;margin:0 0 12px;color:var(--ink)}.pilotCard h3{font-size:15px;font-weight:650;margin:16px 0 8px}.pilotCard p{line-height:1.75;font-size:13.5px;color:var(--ink-2)}.pilotColumns{display:grid;grid-template-columns:280px minmax(0,1fr);grid-gap:20px;gap:20px}.pilot label{display:flex;flex-direction:column;gap:6px;font-size:13px;margin-bottom:0;color:var(--ink-2);font-weight:500}.pilot input,.pilot select,.pilot textarea{font:inherit;font-size:13.5px;box-sizing:border-box;width:100%;padding:9px 12px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:var(--ink);line-height:1.55;transition:all .15s}.pilot input:focus,.pilot select:focus,.pilot textarea:focus{border-color:#60a5fa;box-shadow:0 0 0 3px rgba(37,99,235,.12);outline:none}.pilot textarea{resize:vertical;line-height:1.6}.pilot .check{flex-direction:row;align-items:flex-start}.pilot .check input{width:auto;margin-top:4px;width:17px;height:17px;flex:none}.pilotForm{display:flex;flex-direction:column;gap:12px}.formGrid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px 18px;gap:12px 18px}.formGrid .check{grid-column:1/-1}.pilotActions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.loginCard{max-width:440px;margin:30px auto 40px;padding:28px}.loginBrand{display:flex;align-items:center;gap:14px;margin-bottom:18px}.loginLogo{flex:none;width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),var(--teal));color:#fff;font-size:20px;font-weight:800;box-shadow:0 6px 16px rgba(37,99,235,.28)}.loginBrand h2{margin:0 0 2px;font-size:19px}.loginBrand p{margin:0;font-size:12.5px;color:var(--ink-3);line-height:1.5}.loginCard>button{margin-top:12px}.authForm .authHint{margin:0;color:var(--ink-3);font-size:12px;line-height:1.6}.pilotAlert,.pilotNotice{padding:12px 16px;border-radius:var(--r-sm);margin:12px 0;line-height:1.65;font-size:13.5px}.pilotAlert{background:var(--rose-soft);border:1px solid #ffe4e6;color:#be123c}.pilotNotice{background:var(--green-soft);border:1px solid #d1fae5;color:#047857}.pilot .muted,.pilot small{font-size:12px;color:var(--ink-4);line-height:1.65}.problemList{max-height:520px;overflow:auto;margin:16px 0}.problemList button{display:block;width:100%;text-align:left;margin-bottom:8px;padding:12px 14px;border-radius:var(--r)}.problemList p{margin:0 0 6px}.problemList button[aria-current]{background:var(--accent-soft);border-color:#bfdbfe}.pilot details{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}.pilot summary{cursor:pointer;font-size:13.5px;font-weight:550;color:var(--ink-2);min-height:36px}.pilot .historyButton{display:block;text-align:left;width:100%;margin:6px 0}.currentProblem{background:var(--accent-soft);border:1px solid #bfdbfe;border-left:3px solid var(--accent);border-radius:var(--r);padding:16px;margin:18px 0}.conversation{max-height:680px;overflow:auto;padding-right:8px}.turn{border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin-bottom:12px;background:#fff;box-shadow:var(--sh-sm)}.turnQuestion{background:var(--accent-soft);color:#1e40af;padding:11px 14px;border-radius:var(--r-sm);font-size:13.5px}.turn details{border:0;font-size:12px}.turn details p{margin:6px 0}.pilot .katex-display{overflow-x:auto;overflow-y:hidden;padding:4px}.observationGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-gap:16px;gap:16px;margin:18px 0 28px}.observation{border:1px solid var(--line);padding:18px;border-radius:var(--r);background:var(--line-2)}.evidenceRow{border-bottom:1px solid var(--line);padding:16px 0}.empty{padding:32px;background:var(--line-2);color:var(--ink-4);border-radius:var(--r);border:1px dashed #cbd5e1;text-align:center;font-size:13.5px}.sandboxList{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:16px;gap:16px}.sandboxList article{border:1px solid var(--line);padding:18px;border-radius:var(--r);background:#fff;box-shadow:var(--sh-sm)}.metrics{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px}.metrics>div{padding:18px;background:var(--line-2);border:1px solid var(--line-2);border-radius:var(--r);text-align:center}.metrics strong{display:block;font-size:26px;font-weight:750;color:var(--accent);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.metrics span{font-size:12px;color:var(--ink-3)}.codeEditor,.pilot pre{white-space:pre-wrap;word-break:break-word;max-height:560px;overflow:auto;font-family:ui-monospace,SF Mono,Consolas,monospace;font-size:12px;background:var(--line-2);padding:14px;border-radius:var(--r-sm)}.fileLabel{font-size:12px!important;max-width:240px}.fileLabel input{font-size:12px;padding:5px}.pilotFooter{font-size:12px;color:var(--ink-4);margin-top:32px}.pilotFooter a{color:var(--accent);margin-left:18px}@media(max-width:850px){.pilot{padding:16px}.pilotColumns{grid-template-columns:1fr}.problemList{max-height:240px}.formGrid{grid-template-columns:1fr}.metrics{grid-template-columns:1fr 1fr}.pilotHeader{align-items:flex-start}.pilotHeader>div{flex-wrap:wrap;font-size:12px}.inlineForm{flex-wrap:wrap}.pilotCard{padding:18px}}.portal .courseChat{display:grid;grid-template-columns:240px minmax(0,1fr);border:1px solid #e2e8f0;border-radius:16px;background:#fff;min-height:620px;height:calc(100dvh - 130px);overflow:hidden;box-shadow:0 1px 2px rgba(15,23,42,.04),0 1px 3px rgba(15,23,42,.05)}.portal .chatHistory{background:#f8fafc;border-right:1px solid #e2e8f0;padding:16px;display:flex;flex-direction:column;gap:14px;min-height:0}.portal .chatHistory h2{font-size:13px;font-weight:700;margin:4px 0 0;color:#64748b;text-transform:uppercase;letter-spacing:.06em}.portal .chatHistory label{gap:6px;font-size:12px;color:#64748b;font-weight:500}.portal .chatHistory select{font-size:12.5px;padding:7px 10px}.portal .chatNew{background:#2563eb!important;color:#fff!important;border-color:#2563eb!important;font-weight:600;border-radius:9px;min-height:38px;box-shadow:0 4px 14px rgba(37,99,235,.22)}.portal .chatNew:hover:not(:disabled){background:#1d4ed8!important}.portal .chatSessionList{overflow:auto;min-height:0;display:flex;flex-direction:column;gap:3px}.portal .chatSessionList button{border:0;background:transparent;text-align:left;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:#475569;display:block;width:100%;padding:8px 10px;border-radius:8px;font-size:12.5px;transition:all .15s;min-height:auto}.portal .chatSessionList button:hover:not(:disabled){background:#e2e8f0;transform:none}.portal .chatSessionList button[aria-current]{background:#dbeafe;color:#1d4ed8;font-weight:600}.portal .chatSessionList p{font-size:12px;color:#94a3b8;padding:8px 10px;margin:0}.portal .chatHistory details{margin:0;border:0;padding:0}.portal .chatHistory summary{font-size:12px;min-height:auto;color:#64748b;padding:4px 0}.portal .chatWorkspace{min-width:0;display:flex;flex-direction:column;min-height:0;padding:0 24px;background:#fff}.portal .chatHeader{display:flex;align-items:center;gap:10px;padding:14px 0;border-bottom:1px solid #f1f5f9}.portal .chatHeader h1{font-size:16px;font-weight:700;flex:1 1;color:#0f172a;margin:0}.portal .chatHeader button{background:transparent;border:1px solid #e2e8f0;border-radius:8px;padding:6px 14px;font-size:12.5px;color:#475569;min-height:34px}.portal .chatHeader button:hover:not(:disabled){background:#f1f5f9}.portal .chatHistoryToggle{display:none;font-size:18px!important;padding:6px 10px!important}.portal .chatMessages{flex:1 1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:24px 8px;scrollbar-gutter:stable}.portal .chatWelcome{height:100%;min-height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;padding:20px}.portal .chatWelcome .welcomeIcon{width:56px;height:56px;border-radius:16px;background:linear-gradient(135deg,#dbeafe,#ccfbf1);display:grid;place-items:center;font-size:26px;font-style:italic;color:#2563eb;margin-bottom:6px}.portal .chatWelcome h2{font-size:20px;font-weight:700;color:#0f172a;margin:0}.portal .chatWelcome p{font-size:13.5px;color:#64748b;max-width:420px;margin:0}.portal .chatWelcome .suggestionRow{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:12px}.portal .chatWelcome .suggestionRow button{padding:8px 14px;border-radius:999px;border:1px solid #e2e8f0;background:#fff;color:#475569;font-size:12.5px;cursor:pointer;transition:all .15s;min-height:auto}.portal .chatWelcome .suggestionRow button:hover{border-color:#93c5fd;color:#2563eb;background:#eff6ff;transform:translateY(-1px)}.portal .chatExchange{margin-bottom:20px}.portal .chatUser{max-width:82%;width:-moz-fit-content;width:fit-content;margin:0 0 12px auto;padding:11px 16px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border-radius:14px 14px 4px 14px;font-size:13.5px;line-height:1.7;box-shadow:0 3px 10px rgba(37,99,235,.18)}.portal .chatUser p{color:#fff!important}.portal .chatAssistant{max-width:100%;margin:0 0 12px;padding:16px 18px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px 14px 14px 4px}.portal .chatMessages p{font-size:13.5px;line-height:1.8;color:#1e293b;margin:6px 0;overflow-wrap:anywhere}.portal .chatMessages ol,.portal .chatMessages ul{padding-left:22px}.portal .chatMessages li{font-size:13.5px;line-height:1.8;color:#1e293b}.portal .chatMessages pre{background:#f1f5f9;padding:12px 14px;border-radius:8px;overflow-x:auto;font-size:12.5px}.portal .chatMessages code{background:#e2e8f0;padding:1px 5px;border-radius:4px;font-size:12.5px}.portal .chatMessages pre code{background:none;padding:0}.portal .chatMessages .katex-display{overflow-x:auto;overflow-y:hidden;max-width:100%}.portal .chatMessages strong{color:#1e40af}.portal .chatMessageTools{display:flex;gap:8px;align-items:center;margin-top:10px;flex-wrap:wrap}.portal .chatFeedback button,.portal .chatMessageTools button{border:1px solid #e2e8f0;background:#fff;padding:4px 10px;color:#64748b;border-radius:7px;font-size:11.5px;min-height:30px}.portal .chatMessageTools button:hover{background:#f1f5f9;color:#334155;transform:none}.portal .chatMessageTools details{margin:0;padding:0;border:0}.portal .chatMessageTools summary{font-size:11.5px;min-height:30px;padding:4px 10px;color:#64748b;cursor:pointer}.portal .chatThinking{color:#64748b;font-size:13px;padding:10px 16px;display:flex;align-items:center;gap:8px}.portal .chatThinking:before{content:"";width:14px;height:14px;border:2px solid #cbd5e1;border-top-color:#2563eb;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.portal .chatComposer{margin:0 auto 12px;width:100%;max-width:820px;border:1px solid #cbd5e1;background:#fff;border-radius:14px;box-shadow:0 2px 8px rgba(15,23,42,.05);padding:10px 12px;transition:all .15s}.portal .chatComposer:focus-within{border-color:#60a5fa;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.portal .chatComposer textarea{border:0;box-shadow:none;outline:none;resize:vertical;min-height:64px;max-height:200px;padding:6px 4px;background:transparent;color:#0f172a;font-size:13.5px;line-height:1.6}.portal .chatComposer textarea:focus{box-shadow:none}.portal .chatComposerActions{display:flex;justify-content:space-between;align-items:flex-end;gap:8px}.portal .chatAttachments{margin:0;padding:0;border:0;flex:1 1}.portal .chatAttachments summary{width:-moz-fit-content;width:fit-content;padding:6px 10px;min-height:36px;display:flex;align-items:center;color:#475569;font-size:12.5px;font-weight:550;cursor:pointer;border-radius:8px;transition:background .15s}.portal .chatAttachments summary:hover{background:#f1f5f9}.portal .chatAttachments .photoPreview{grid-template-columns:minmax(0,120px) 1fr}.portal .chatComposer .primary{background:#2563eb;color:#fff;border-color:#2563eb;min-width:72px;border-radius:9px;font-weight:600;min-height:38px;box-shadow:0 4px 14px rgba(37,99,235,.22)}.portal .chatComposer .primary:hover:not(:disabled){background:#1d4ed8}.portal .chatComposer .primary:disabled{opacity:.45}.portal .chatError{padding:11px 14px;margin-bottom:10px;background:#fff1f2;color:#be123c;border-radius:9px;font-size:13px;border:1px solid #ffe4e6;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.portal .chatError button{margin-left:auto;background:#fff1f2;border:1px solid #fecdd3;color:#e11d48}.portal .chatFeedback{display:flex;align-items:center;gap:8px;min-height:32px;margin-bottom:10px;flex-wrap:wrap}.portal .chatFeedback label{font-size:12px}.portal .chatFeedback select{width:auto;font-size:12.5px;padding:6px 10px}.portal .hintToolbar{margin:0 auto 8px;width:100%;max-width:820px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:8px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}.portal .hintInfo{font-size:12px;color:#64748b;display:flex;align-items:center;gap:6px}.portal .hintHint{color:#94a3b8}.portal .hintLevelBadge{background:#dbeafe;color:#1d4ed8;font-weight:600;padding:3px 10px;border-radius:999px;font-size:11.5px}.portal .hintButtons{display:flex;gap:6px;flex-wrap:wrap}.portal .hintBtn{border:1px solid #e2e8f0;background:#fff;border-radius:8px;padding:6px 12px;font-size:12px;font-weight:550;cursor:pointer;transition:all .15s;min-height:32px;display:flex;align-items:center;gap:4px}.portal .hintBtn:hover:not(:disabled){transform:translateY(-1px)}.portal .hintBtn:disabled{opacity:.4;cursor:not-allowed}.portal .hintBtn.first{border-color:#bfdbfe;color:#2563eb;background:#eff6ff}.portal .hintBtn.first:hover:not(:disabled){background:#dbeafe;border-color:#93c5fd}.portal .hintBtn.next{border-color:#99f6e4;color:#0f766e;background:#f0fdfa}.portal .hintBtn.next:hover:not(:disabled){background:#ccfbf1;border-color:#5eead4}.portal .hintBtn.full{border-color:#e2e8f0;color:#475569;background:#fff}.portal .hintBtn.full:hover:not(:disabled){background:#f1f5f9;border-color:#cbd5e1}.portal .hintTag{display:inline-block;background:#fef3c7;color:#92400e;font-size:11px;font-weight:600;padding:2px 8px;border-radius:6px;margin-bottom:8px}.portal .relatedPanel{margin:0 auto 8px;width:100%;max-width:820px;background:#f0fdfa;border:1px solid #99f6e4;border-radius:10px;overflow:hidden}.portal .relatedHeader{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#ccfbf1;border-bottom:1px solid #99f6e4}.portal .relatedTitle{font-size:12.5px;font-weight:600;color:#0f766e}.portal .relatedClose{background:none;border:none;color:#0f766e;font-size:18px;cursor:pointer;padding:0 4px;line-height:1}.portal .relatedClose:hover{color:#134e4a}.portal .relatedList{padding:8px;display:flex;flex-direction:column;gap:8px;max-height:240px;overflow-y:auto}.portal .relatedItem{background:#fff;border:1px solid #99f6e4;border-radius:8px;padding:8px 10px}.portal .relatedMeta{font-size:11px;color:#0f766e;font-weight:600;margin-bottom:4px}.portal .relatedContent{font-size:12px;color:#334155;line-height:1.6;margin-bottom:6px}.portal .relatedInsert{background:none;border:1px solid #14b8a6;color:#0f766e;font-size:11px;padding:3px 10px;border-radius:6px;cursor:pointer;font-weight:500}.portal .relatedInsert:hover{background:#ccfbf1}.portal .relatedLoading{color:#0f766e}.portal .relatedEmpty,.portal .relatedLoading{padding:12px;text-align:center;font-size:12.5px}.portal .relatedEmpty{color:#94a3b8}@media(max-width:1050px){.portal .courseChat{grid-template-columns:190px minmax(0,1fr)}.portal .chatWorkspace{padding:0 16px}}@media(max-width:680px){.portal .courseChat{display:block;height:calc(100dvh - 200px);min-height:520px;position:relative;border-radius:12px}.portal .chatHistory{display:none}.portal .chatHistory.isOpen{display:flex;position:absolute;inset:0 40px 0 0;z-index:5;border-right:1px solid #cbd5e1;box-shadow:8px 0 24px rgba(15,23,42,.15)}.portal .chatHistoryToggle{display:block}.portal .chatWorkspace{height:100%;padding:0 12px}.portal .chatHeader{padding:10px 0}.portal .chatHeader h1{font-size:15px}.portal .chatMessages{padding:16px 0}.portal .chatUser{max-width:92%}.portal .chatComposer{padding:8px}.portal .chatAttachments .photoPreview{grid-template-columns:1fr}.portal .chatComposer textarea{font-size:16px}.portal .chatWelcome h2{font-size:18px}}