/* One private student chat, using the site's existing surfaces and themes. */
body.messages-soft-shell{
 --message-light:#fff;--message-shadow:#233d5723;--message-inset:#233d571c;
 --message-raised:-5px -5px 14px var(--message-light),7px 10px 20px var(--message-shadow),inset 1px 1px 1px color-mix(in srgb,var(--message-light) 65%,transparent);
 --message-control:-3px -3px 7px var(--message-light),4px 5px 8px var(--message-shadow);
 --message-recess:inset 2px 2px 5px var(--message-inset),inset -2px -2px 5px var(--message-light);
 --message-action:#205da6;--message-on-action:#fff;--message-wait:#725116;--message-success:#196746;
 font-family:"Segoe UI Variable Text","Segoe UI",Tahoma,Arial,sans-serif;
}
html:not([data-theme=chalk-light]) body.messages-soft-shell{--message-light:#ffffff0c;--message-shadow:#00000070;--message-inset:#00000065;--message-action:#b9d5ff;--message-on-action:#152638;--message-wait:#f9d58b;--message-success:#9de1bf}
html[data-theme] body.messages-soft-shell>header.topbar.container.student-mobile-topbar{position:relative;inset:auto;width:min(1000px,calc(100% - 48px));height:auto;min-height:88px;margin:24px auto 16px;padding:8px 24px;border:1px solid transparent;border-radius:24px;background:var(--bg);color:var(--text);box-shadow:var(--message-raised);backdrop-filter:none;z-index:210}
body.messages-soft-shell>header.topbar::after{display:none}
html[data-theme] body.messages-soft-shell>header.topbar .site-brand{background:none;border:0;box-shadow:none}
html[data-theme] body.messages-soft-shell>header.topbar :is(.topbar-student-back,.mobile-menu-toggle){background:var(--bg);color:var(--text);border-color:transparent;box-shadow:none}
html[data-theme] body.messages-soft-shell>header.topbar .topbar-student-back{box-shadow:var(--message-control);border-radius:13px}
html[data-theme] body.messages-soft-shell>header.topbar>nav.open{background:var(--bg);border:1px solid var(--line);border-radius:22px;box-shadow:var(--message-raised)}
html[data-theme] body.messages-soft-shell>header.topbar>nav.open .nav-action{background:var(--bg);color:var(--text);border-color:transparent;box-shadow:var(--message-control)}
.student-messages{width:min(880px,calc(100% - 48px));max-width:880px;margin-inline:auto;padding:12px 0 28px;min-width:0;color:var(--text)}
.student-messages *{box-sizing:border-box}
.student-messages :is(a,button,input,textarea,summary):focus-visible{outline:3px solid var(--message-action);outline-offset:4px}
.student-messages svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.message-pair{display:inline-flex;flex-direction:column;gap:2px;max-width:100%;font-weight:400;vertical-align:middle}
.message-pair>b{display:block;color:inherit;font-size:inherit;font-weight:700;line-height:1.65;letter-spacing:0}
.message-pair>small{display:block;color:var(--muted);font-size:12px;font-weight:500;line-height:1.6;letter-spacing:0}

.student-chat-card{display:flex;flex-direction:column;min-width:0;height:min(700px,calc(100dvh - 190px));min-height:360px;overflow:hidden;border:1px solid color-mix(in srgb,var(--line) 65%,transparent);border-radius:24px;background:var(--bg);box-shadow:var(--message-raised)}
.student-chat-card [hidden]{display:none}
.student-chat-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:50px;flex-shrink:0;padding:5px 18px;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent)}
.student-chat-controls a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;color:var(--message-action);font-size:12px;text-decoration:none}
.student-chat-refresh{width:40px;margin-inline-start:auto;border-radius:12px}
.student-chat-refresh:hover{background:color-mix(in srgb,var(--message-action) 8%,var(--bg))}
.student-chat-controls [aria-busy=true]{opacity:.55;pointer-events:none}
.student-chat-log{display:flex;flex:1;min-height:0;flex-direction:column;gap:16px;overflow-y:auto;overscroll-behavior:contain;padding:22px;scrollbar-gutter:stable}
.student-chat-bubble{flex-shrink:0;width:fit-content;max-width:82%;min-width:0;border:1px solid color-mix(in srgb,var(--line) 70%,transparent);border-radius:18px;padding:12px 15px;background:color-mix(in srgb,var(--surface,var(--bg)) 72%,var(--bg));color:var(--text)}
.student-chat-bubble.is-student{margin-left:auto;margin-right:0;border-color:color-mix(in srgb,var(--message-action) 22%,var(--line));background:color-mix(in srgb,var(--message-action) 10%,var(--bg));border-bottom-right-radius:5px}
.student-chat-bubble.is-team{margin-right:auto;margin-left:0;border-bottom-left-radius:5px}
.student-chat-bubble>header{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:6px 20px;margin-bottom:7px}
.student-chat-bubble>header strong{font-size:12px;font-weight:750;color:var(--message-action)}
.student-chat-bubble>header time{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}
.student-chat-body{font-size:14px;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere;unicode-bidi:plaintext;text-align:start}
.student-chat-compose{display:grid;flex-shrink:0;gap:10px;padding:16px 20px;border-top:1px solid var(--line);background:var(--bg)}
.student-chat-compose textarea{display:block;width:100%;min-width:0;min-height:76px;max-height:180px;resize:vertical;border:1px solid var(--line);border-radius:14px;padding:10px 13px;background:var(--bg);color:var(--text);box-shadow:var(--message-recess);font:inherit;font-size:16px;line-height:1.6}
.student-chat-compose textarea::placeholder{color:var(--muted);font-size:14px}
.student-chat-compose-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}
.student-chat-compose-actions output{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
html[data-theme] body.messages-soft-shell .student-chat-compose button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;min-width:108px;flex:none;padding:8px 16px;border:1px solid var(--message-action);border-radius:12px;background:var(--message-action);color:var(--message-on-action);font:inherit;font-size:14px;font-weight:700;cursor:pointer;box-shadow:none}
.student-chat-compose button:disabled{opacity:.65;cursor:wait}
.student-chat-compose button svg{width:19px;height:19px}
.student-chat-status,.student-chat-closed{flex-shrink:0;margin:0;padding:10px 20px;color:var(--muted);font-size:12px;line-height:1.7}
.student-chat-status{color:#a13440;background:color-mix(in srgb,#d65b67 9%,var(--bg))}
.student-chat-anchor{height:0;flex:none}
.has-chat-js:not(.has-read-error) .student-chat-reads{display:none}
.student-chat-reads button{margin:5px 16px;padding:8px;color:var(--message-action);background:none;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:12px}
.student-chat-gate{margin:auto;padding:30px;max-width:540px;text-align:center}
.student-chat-gate p{font-size:15px;line-height:1.9;color:var(--muted)}
.student-chat-gate>div{display:flex;justify-content:center;align-items:center;gap:24px;flex-wrap:wrap;margin-top:24px}
.student-chat-gate a{min-height:44px;display:inline-flex;align-items:center;color:var(--message-action);font-size:14px}
.student-chat-gate a.primary{background:var(--message-action);color:var(--message-on-action);padding:10px 18px;border:0;border-radius:12px}
body.messages-soft-shell .site-footer .message-pair{align-items:center;text-align:center}
body.messages-soft-shell .site-footer .message-pair>b{font-size:12px;font-weight:650}
body.messages-soft-shell .site-footer .message-pair>small{font-size:10px}
@media(max-width:700px){
 html[data-theme] body.messages-soft-shell>header.topbar.container.student-mobile-topbar{width:calc(100% - 24px);min-height:78px;margin:16px auto 10px;padding:6px 12px;border-radius:20px}
 .student-messages{width:calc(100% - 24px);padding:4px 0 20px}
 .student-chat-card{height:calc(100dvh - 135px);min-height:320px;border-radius:20px}
 .student-chat-controls{padding:4px 12px;min-height:46px}
 .student-chat-log{padding:15px 12px;gap:13px}
 .student-chat-bubble{max-width:90%;padding:11px 12px;border-radius:15px}
 .student-chat-bubble>header{gap:4px 14px}
 .student-chat-body{font-size:14px;line-height:1.75}
 .student-chat-compose{padding:12px;gap:8px}
 .student-chat-compose textarea{min-height:70px;max-height:150px}
 .student-chat-gate{padding:22px 18px}
}
@media(prefers-reduced-motion:reduce){.student-messages *{scroll-behavior:auto;transition:none}}
