.tutor-entry{background:linear-gradient(110deg,#eff4f7,#faf5ea);border:1px solid #dce3e7;border-radius:16px;justify-content:space-between;align-items:center;gap:20px;margin:20px 0 4px;padding:20px 24px;display:flex}.tutor-entry h4{margin:5px 0;font-size:18px}.tutor-entry p{color:#657583;margin:0;font-size:14px}.tutor-kicker{letter-spacing:1.4px;color:#8c6c39;font-size:10px;font-weight:700}.tutor-dialog{color:#162a40;background:#faf9f6;border:1px solid #e1ded6;border-radius:24px;width:min(660px,100vw - 32px);max-width:none;height:calc(100dvh - 32px);max-height:none;margin:0;padding:0;position:fixed;inset:16px 16px 16px auto;overflow:hidden;box-shadow:0 30px 100px #071d3550}.tutor-dialog[open]{flex-direction:column;animation:.32s cubic-bezier(.2,.8,.2,1) tutor-enter;display:flex}.tutor-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#08203a50}.tutor-header{background:#fffefa;border-bottom:1px solid #e5e2dc;align-items:center;gap:14px;padding:22px;display:flex}.tutor-header>div:nth-child(2){flex:1;min-width:0}.tutor-header h2{margin:5px 0;font-size:21px}.tutor-header p{color:#6d7984;margin:0;font-size:12px}.tutor-header>button{color:#30475b;background:0 0;border:1px solid #ddd8cd;border-radius:12px;padding:9px;line-height:1}.tutor-portrait{background:#e5edf3;border:2px solid #d7e0e6;border-radius:20px;flex:none;place-items:center;width:64px;height:64px;font-size:22px;font-weight:600;display:grid;overflow:hidden}.tutor-portrait.praise{border-color:#86bea2}.tutor-portrait.strict{border-color:#bd9963}.tutor-portrait img{object-fit:cover;width:100%;height:100%}.tutor-quota{color:#687681;border-bottom:1px solid #e9e5dc;justify-content:space-between;align-items:center;padding:13px 24px;font-size:12px;display:flex}.tutor-quota>div{gap:5px;display:flex}.tutor-quota i{background:#b18a46;border-radius:5px;width:17px;height:5px}.tutor-quota i.used{background:#dce0e2}.tutor-quota i.reserved{background:#e4c898;animation:1.5s ease-in-out infinite tutor-pulse}.tutor-conversation{overscroll-behavior:contain;scrollbar-width:thin;flex:1;min-height:100px;padding:24px;overflow:auto}.tutor-bubble{overflow-wrap:anywhere;border-radius:16px;margin-bottom:16px;padding:16px 18px;font-size:14px;line-height:1.65;animation:.25s ease-out tutor-enter}.tutor-bubble small{color:#738391;font-size:11px;font-weight:600}.tutor-bubble p{white-space:pre-wrap;margin:7px 0 0}.tutor-bubble.assistant{background:#fffefd;border:1px solid #e7e3db;margin-right:24px}.tutor-bubble.student{background:#e8eef3;border:1px solid #dce5ec;margin-left:50px}.tutor-bubble .markdown-view{background:0 0;padding:0}.tutor-bubble .katex-display{max-width:100%;padding:5px 0;overflow:auto hidden}.tutor-earlier{text-align:center;color:#7b7d83;font-size:11px}.tutor-pending{align-items:center;gap:10px;font-size:13px;display:flex}.tutor-pending>span{gap:4px;display:flex}.tutor-pending i{background:#a58349;border-radius:50%;width:5px;height:5px;animation:1.2s infinite tutor-pulse}.tutor-pending i:nth-child(2){animation-delay:.2s}.tutor-pending i:nth-child(3){animation-delay:.4s}.tutor-failed{background:#fff1e1;border:1px solid #efdabf;border-radius:10px;padding:12px;font-size:13px}.tutor-failed button{margin-left:8px}.tutor-footer{background:#fffefa;border-top:1px solid #e7e2d9;max-height:48%;padding:16px 24px 12px;overflow:auto}.tutor-footer form{margin:0;display:block}.tutor-footer label{margin:10px 0 7px;font-size:12px;display:block}.tutor-footer textarea{resize:vertical;width:100%;min-height:70px;max-height:170px;font:inherit;box-sizing:border-box;background:#f9fafb;border:1px solid #d5dce1;border-radius:12px;padding:12px;font-size:14px}.tutor-send{justify-content:space-between;align-items:center;gap:10px;margin-top:9px;display:flex}.tutor-send small,.tutor-footnote{color:#7b848b;font-size:11px}.tutor-footnote{margin:12px 0 0;line-height:1.5}.tutor-suggestions{flex-wrap:wrap;gap:7px;display:flex}.tutor-suggestions button{color:#675739;box-shadow:none;background:#f6f3ec;border:1px solid #e0d9cc;border-radius:30px;padding:7px 10px;font-size:11px}.tutor-limit{font-size:14px;line-height:1.6}.tutor-photo-settings{margin-top:18px}.tutor-photo-settings>p{color:#63727f;max-width:780px;font-size:14px;line-height:1.6}.tutor-photo-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin:18px 0;display:grid}.tutor-photo-grid section{background:#f7f6f2;border:1px solid #e3dfd7;border-radius:16px;padding:16px}.tutor-photo-grid h4{margin:12px 0 5px}.tutor-photo-grid small{color:#73808b;font-size:12px;display:block}.tutor-photo-preview{color:#7d858b;background:#e8e8e3;border-radius:14px;place-items:center;max-width:160px;height:130px;font-size:12px;display:grid;overflow:hidden}.tutor-photo-preview img{object-fit:cover;width:100%;height:100%}.tutor-upload{color:#7a6137;cursor:pointer;border:1px solid #ccc1ac;border-radius:10px;width:fit-content;margin:12px 0;padding:9px 12px;font-size:13px;display:block;position:relative}.tutor-upload input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.tutor-upload:focus-within{outline-offset:3px;outline:2px solid #3c6a97}.tutor-photo-grid button{padding:7px 10px;font-size:12px}.tutor-dialog button{transition:background .18s,transform .18s}.tutor-dialog button:not(:disabled):active{transform:scale(.98)}@keyframes tutor-enter{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes tutor-pulse{0%,to{opacity:.4;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}@media (max-width:650px){.tutor-entry{flex-direction:column;align-items:start}.tutor-dialog{border-radius:0;width:100vw;height:100dvh;inset:0}.tutor-header{gap:10px;padding:16px}.tutor-header h2{font-size:18px}.tutor-portrait{border-radius:14px;width:48px;height:48px}.tutor-header .tutor-kicker{font-size:8px}.tutor-conversation,.tutor-footer{padding:16px}.tutor-photo-grid{grid-template-columns:1fr}.tutor-send{align-items:flex-end}.tutor-send button{font-size:12px}.tutor-bubble.student{margin-left:24px}.tutor-bubble.assistant{margin-right:10px}}@media (prefers-reduced-motion:reduce){.tutor-dialog[open],.tutor-bubble,.tutor-pending i,.tutor-quota i.reserved{animation:none}.tutor-dialog button{transition:none}}.tutor-dialog .tutor-footer{display:block}.tutor-dialog .tutor-footer .tutor-send button{white-space:nowrap;min-height:42px;padding:10px 18px;font-size:13px}.tutor-header .tutor-portrait{background:#f7f5f0;border:0;border-radius:22px;width:116px;height:116px}.tutor-portrait img{object-fit:contain}.tutor-header{align-items:center}.student-feedback{border:1px solid #dce4e9;border-radius:14px;padding:16px 20px}.student-feedback h4{margin:0}.student-feedback li{margin:8px 0}@media (prefers-reduced-motion:no-preference){.tutor-portrait img{animation:.5s ease-out portrait-arrive}.tutor-portrait.explaining img{animation:2.4s ease-in-out infinite portrait-explain}@keyframes portrait-arrive{0%{opacity:0;transform:translateY(6px)scale(.97)}to{opacity:1;transform:none}}@keyframes portrait-explain{0%,to{transform:rotate(-1deg)translateY(0)}50%{transform:rotate(1deg)translateY(-3px)}}}@media (max-width:650px){.tutor-header .tutor-portrait{width:86px;height:86px}}.tutor-dialog .tutor-header{flex-shrink:0;height:auto;min-height:0}.tutor-dialog .tutor-quota{flex-shrink:0}.tutor-header .tutor-portrait{position:relative}.tutor-header .tutor-portrait img{opacity:0;pointer-events:none;transition:opacity .45s,transform .45s;animation:none;position:absolute;inset:0;transform:translateY(3px)}.tutor-header .tutor-portrait img.active{opacity:1;transform:none}.tutor-ranking{background:#f1f4f3;border-bottom:1px solid #dfe6e2;flex-wrap:wrap;flex-shrink:0;gap:8px 22px;padding:12px 24px;display:flex}.tutor-ranking span{color:#687970;margin-bottom:4px;font-size:10px;display:block}.tutor-ranking strong{color:#264e41;font-size:14px}.tutor-ranking small{color:#64736d;font-size:11px;font-weight:400}.tutor-ranking p{color:#6d7973;width:100%;margin:0;font-size:11px;line-height:1.4}.tutor-photo-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}@media (prefers-reduced-motion:reduce){.tutor-header .tutor-portrait img{transition:none;transform:none}}@media (max-width:650px){.tutor-ranking{gap:6px 15px;padding:10px 16px}.tutor-ranking strong{font-size:12px}}.tutor-header .tutor-portrait{background:#fff}.tutor-photo-preview{aspect-ratio:1;background:#fff;width:100%;max-width:180px;height:auto}.tutor-photo-preview img{object-fit:contain}html body .tutor-dialog{color:var(--campus-ink,#162a40);background:var(--campus-bg,#faf9f6);border-color:var(--campus-line,#e1ded6);font-family:inherit;font-size:15px;line-height:1.6}.tutor-dialog *{box-sizing:border-box}.tutor-dialog .tutor-header,.tutor-dialog .tutor-footer{background:var(--campus-surface,#fffefa);color:var(--campus-ink);border-color:var(--campus-line)}.tutor-dialog .tutor-bubble,.tutor-dialog .tutor-bubble .markdown-view,.tutor-dialog .tutor-bubble :is(p,li){color:var(--campus-ink);font-size:16px;font-weight:400;line-height:1.75}.tutor-dialog .tutor-bubble .markdown-view p{margin:.75em 0}.tutor-dialog .tutor-bubble .markdown-view p:last-child{margin-bottom:0}.tutor-dialog .tutor-bubble .markdown-view p:first-child{margin-top:8px}.tutor-dialog .tutor-bubble.assistant{background:var(--campus-surface);border-color:var(--campus-line)}.tutor-dialog .tutor-bubble.student{background:var(--campus-soft);border-color:var(--campus-line)}.tutor-dialog .tutor-bubble small{color:var(--campus-muted);font-size:11px;line-height:1.5}.tutor-dialog .tutor-header p{color:var(--campus-muted);font-size:13px}.tutor-dialog .tutor-ranking{background:var(--campus-soft);border-color:var(--campus-line)}.tutor-dialog .tutor-ranking strong{color:var(--campus-ink)}.tutor-dialog .tutor-ranking :is(span,small,p){color:var(--campus-muted)}.tutor-dialog button{font:inherit;cursor:pointer}.tutor-dialog button:focus-visible{outline:2px solid var(--campus-accent);outline-offset:3px}.tutor-dialog .tutor-header>button{width:38px;height:38px;color:var(--campus-ink);border-color:var(--campus-line);background:var(--campus-surface);place-items:center;padding:8px;display:grid}.tutor-dialog .tutor-footer textarea{font:inherit;color:var(--campus-ink);background:var(--campus-soft);border-color:var(--campus-line);font-size:16px;line-height:1.5}.tutor-dialog .tutor-footer label{color:var(--campus-muted);font-size:12px}.tutor-dialog .tutor-footer .tutor-send button{background:var(--campus-accent);color:#fff;box-shadow:none;border:1px solid #0000;border-radius:12px;font-weight:600}.tutor-dialog button:disabled{opacity:.45;cursor:default}.tutor-dialog .tutor-suggestions button{color:var(--campus-ink);background:var(--campus-soft);border-color:var(--campus-line);font-size:11px}.tutor-dialog .tutor-footnote,.tutor-dialog .tutor-send small{color:var(--campus-muted);font-size:11px;line-height:1.5}.tutor-dialog .tutor-footer{flex-shrink:0;max-height:46%;margin:0;padding-top:14px}.tutor-dialog .tutor-suggestions{scrollbar-width:thin;flex-wrap:nowrap;padding:2px 0 5px;overflow-x:auto}.tutor-dialog .tutor-suggestions button{white-space:nowrap;flex-shrink:0}.tutor-dialog .tutor-footer textarea{height:80px;min-height:72px}.tutor-dialog .tutor-send{min-height:43px}.tutor-dialog .tutor-conversation{min-height:70px}.tutor-dialog .tutor-compose-label{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:3px 12px;margin:10px 0 7px;display:flex}.tutor-dialog .tutor-compose-label label{margin:0}.tutor-dialog .tutor-compose-label small{color:var(--campus-muted);font-size:10px;line-height:1.5}
