@font-face { font-family:'Roboto Condensed'; src:url('../website/assets/roboto-condensed.woff') format('woff'); font-weight:100 900; font-style:normal; font-display:swap; }
@font-face { font-family:'Abel'; src:url('../website/assets/abel.ttf') format('truetype'); font-weight:400; font-style:normal; font-display:swap; }
.student-copilot {
  --cp-text:#102238; --cp-red:#d50938; --cp-paper:#fff; --cp-muted:#66717d; --cp-line:#e4e6e9;
  --cp-heading:'Roboto Condensed','Arial Narrow',sans-serif;
  font:16px/1.5 'Abel',Arial,sans-serif; color:var(--cp-text);
}
.student-copilot *, .student-copilot *::before, .student-copilot *::after { box-sizing:border-box; }
.student-copilot [hidden] { display:none!important; }
.student-copilot .copilot-aircraft { display:block; width:25px; height:25px; transform:rotate(32deg); }
.student-copilot .copilot-launch {
  position:fixed; right:max(24px,env(safe-area-inset-right)); bottom:calc(20px + env(safe-area-inset-bottom)); z-index:1040;
  display:flex; align-items:center; gap:11px; max-width:calc(100vw - 32px); min-height:64px; padding:9px 12px 9px 10px;
  border:1px solid var(--cp-line); border-radius:12px; background:var(--cp-paper);
  color:var(--cp-text); text-decoration:none; box-shadow:0 10px 32px #00000014,0 2px 6px #0000000a;
  transition:transform 180ms ease,border-color 180ms ease; touch-action:manipulation; -webkit-tap-highlight-color:transparent;
}
.student-copilot .copilot-launch:hover { color:var(--cp-text); border-color:#d5093840; transform:translateY(-2px); }
.student-copilot .copilot-launch:active { transform:translateY(0); }
.student-copilot .copilot-launch-icon, .student-copilot .copilot-emblem {
  display:grid; place-items:center; flex-shrink:0; width:42px; height:42px; border:1px solid #d5093814;
  border-radius:8px; color:var(--cp-red); background:#fff4f6;
}
.student-copilot .copilot-launch-copy { display:grid; gap:3px; min-width:0; }
.student-copilot .copilot-launch-copy strong { font:650 17px/1.2 var(--cp-heading); letter-spacing:-.015em; }
.student-copilot .copilot-launch-copy > span { font-size:10px; font-weight:400; line-height:1.4; letter-spacing:.065em; color:var(--cp-muted); }
.student-copilot .copilot-launch-plus { display:grid; place-items:center; flex-shrink:0; width:27px; height:27px; margin-left:5px; border-radius:50%; background:var(--cp-red); color:#fff; transition:transform 180ms ease; }
.student-copilot .copilot-launch-plus svg { width:20px; height:20px; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; }
.student-copilot.is-open .copilot-launch-plus { transform:rotate(45deg); }
.student-copilot .copilot-panel {
  position:fixed; z-index:1040; right:max(24px,env(safe-area-inset-right)); bottom:calc(96px + env(safe-area-inset-bottom));
  width:min(448px,calc(100vw - 32px)); height:min(740px,calc(100dvh - 116px - env(safe-area-inset-bottom)));
  display:flex; flex-direction:column; overflow:hidden; isolation:isolate; border:1px solid var(--cp-line); border-radius:12px;
  background:var(--cp-paper); box-shadow:0 24px 80px #0000001f,0 4px 18px #0000000d; transform-origin:bottom right;
}
.student-copilot .copilot-heading {
  position:relative; display:flex; align-items:center; gap:12px; flex-shrink:0; min-height:91px; padding:17px 14px 17px 18px;
  overflow:hidden; background:var(--cp-paper); border-bottom:1px solid var(--cp-line);
}
.student-copilot .copilot-heading > :not(.copilot-route) { position:relative; z-index:1; }
.student-copilot .copilot-route { position:absolute; top:0; right:20px; width:300px; height:100%; color:var(--cp-red); opacity:.12; pointer-events:none; }
.student-copilot .copilot-route path { stroke:currentColor; stroke-width:.6; }
.student-copilot .copilot-route .copilot-route-path { stroke-width:1.2; stroke-dasharray:3 5; }
.student-copilot .copilot-route circle { fill:var(--cp-paper); stroke:currentColor; stroke-width:1; }
.student-copilot .copilot-heading-text { min-width:0; flex:1; }
.student-copilot .copilot-kicker { display:flex; align-items:center; gap:7px; font-size:10px; font-weight:400; line-height:1.3; letter-spacing:.07em; color:var(--cp-muted); }
.student-copilot .copilot-kicker > span { padding:1px 4px; border:1px solid #d5093826; border-radius:4px; font-size:9px; letter-spacing:.05em; color:var(--cp-red); background:#fff4f6; }
.student-copilot .copilot-heading h2 { margin:4px 0 3px; font:650 23px/1.1 var(--cp-heading); letter-spacing:-.025em; color:var(--cp-text); }
.student-copilot .copilot-heading p { margin:0; font-size:13px; line-height:1.3; color:var(--cp-muted); }
.student-copilot .copilot-actions { display:flex; flex-shrink:0; align-items:center; gap:3px; }
.student-copilot .copilot-icon-button { display:inline-flex; align-items:center; justify-content:center; width:36px; height:38px; padding:8px; border:1px solid transparent; border-radius:8px; background:#f6f6f7; color:var(--cp-text); cursor:pointer; transition:background 150ms ease,color 150ms ease; touch-action:manipulation; }
.student-copilot .copilot-icon-button:hover { color:var(--cp-red); background:#fff0f3; }
.student-copilot .copilot-icon-button svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.student-copilot :focus-visible { outline:3px solid var(--cp-red); outline-offset:4px; }
.student-copilot .copilot-launch:focus-visible, .student-copilot .copilot-heading :focus-visible { outline-color:var(--cp-red); outline-offset:3px; }
.student-copilot .copilot-frame-wrap { flex:1; min-width:0; min-height:0; position:relative; overflow:hidden; }
.student-copilot #copilot-frame { display:block; border:0; width:100%; height:100%; background:var(--cp-paper); }
.student-copilot .copilot-loading { position:absolute; z-index:1; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; padding:36px 24px; margin:0; text-align:center; color:var(--cp-muted); background:var(--cp-paper); }
.student-copilot .copilot-loading-mark { display:grid; place-items:center; width:58px; height:58px; margin-bottom:8px; border:1px solid #d5093814; border-radius:10px; background:#fff4f6; color:var(--cp-red); }
.student-copilot .copilot-loading strong { font:600 22px/1.2 var(--cp-heading); letter-spacing:-.02em; color:var(--cp-text); }
.student-copilot .copilot-loading > span:not(.copilot-loading-mark) { font-size:16px; }
.student-copilot .copilot-loading a { margin-top:10px; padding:8px 12px; border:1px solid var(--cp-line); border-radius:8px; font-size:14px; color:var(--cp-red); text-decoration:none; }
.student-copilot .copilot-loading a:hover { background:#fff4f6; }
body:has(.student-copilot) { padding-bottom:calc(100px + env(safe-area-inset-bottom)); }
.student-copilot.is-expanded .copilot-panel { width:min(1120px,calc(100vw - 48px)); height:min(850px,calc(100dvh - 48px)); bottom:max(24px,env(safe-area-inset-bottom)); }
.student-copilot.is-expanded.is-open .copilot-launch { visibility:hidden; }
@media (prefers-reduced-motion:no-preference) {
  .student-copilot.is-open .copilot-panel { animation:copilot-arrive 230ms cubic-bezier(.2,.75,.25,1) both; }
  .student-copilot .copilot-panel { transition:width 240ms ease,height 240ms ease,bottom 240ms ease; }
  @keyframes copilot-arrive { from { opacity:0; transform:translateY(10px) scale(.985); } to { opacity:1; transform:translateY(0) scale(1); } }
}
@media (max-width:600px) {
  .student-copilot .copilot-launch { right:max(14px,env(safe-area-inset-right)); bottom:calc(14px + env(safe-area-inset-bottom)); min-height:60px; gap:10px; padding:8px 11px 8px 9px; border-radius:12px; }
  .student-copilot .copilot-launch-icon { width:39px; height:39px; border-radius:8px; }
  .student-copilot .copilot-panel, .student-copilot.is-expanded .copilot-panel { inset:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left)); width:auto; height:auto; border-radius:12px; }
  .student-copilot.is-open .copilot-launch { visibility:hidden; }
  .student-copilot .copilot-heading { min-height:83px; padding:14px 10px 14px 13px; gap:10px; }
  .student-copilot .copilot-heading h2 { font-size:22px; }
  .student-copilot .copilot-emblem { width:36px; height:39px; border-radius:8px; }
  .student-copilot .copilot-kicker { font-size:9px; letter-spacing:.055em; gap:5px; }
  .student-copilot .copilot-icon-button { width:34px; height:40px; }
}
@media (max-width:350px) {
  .student-copilot .copilot-heading { gap:8px; padding-inline:10px; }
  .student-copilot .copilot-emblem { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  .student-copilot .copilot-launch, .student-copilot .copilot-launch-plus, .student-copilot .copilot-panel, .student-copilot .copilot-icon-button { transition:none; animation:none; }
}
