:root { color-scheme: light; font-family: Arial, sans-serif; color: #172438; background: #f5f7f8; --navy: #002366; --line: #dce2e8; --muted: #526173; }
* { box-sizing: border-box; min-width: 0; }
body { margin: 0; }
button, input, select { font: inherit; }
button, a, select { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
button:disabled { cursor: wait; opacity: .55; }
a { color: var(--navy); }
img { max-width: 100%; }
:focus-visible { outline: 3px solid #007b65; outline-offset: 3px; }
[hidden] { display: none !important; }
.skip-link { position: absolute; left: 12px; top: -80px; background: white; z-index: 5; padding: 12px; }
.skip-link:focus { top: 12px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.masthead { min-height: 88px; background: #001638; color: white; border-bottom: 3px solid #ffd500; padding: 14px max(24px, calc((100% - 1240px)/2)); display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.brand { display: flex; gap: 14px; align-items: center; color: white; text-decoration: none; font-size: 14px; line-height: 1.5; font-weight: 700; }
.brand img { object-fit: contain; flex: 0 0 56px; }
.demo-label { font-size: 12px; color: #ffd500; white-space: nowrap; }
.workspace { max-width: 1240px; margin: 0 auto; display: grid; grid-template-columns: 270px minmax(0, 1fr); min-height: calc(100dvh - 88px); }
.context { padding: 38px 24px 28px; border-right: 1px solid var(--line); }
.eyebrow { color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: 0; margin: 0 0 10px; }
h1 { font-size: 26px; line-height: 1.2; margin: 0; }
.context h2 { font-size: 22px; margin: 0 0 24px; line-height: 1.3; }
.categories { display: grid; gap: 5px; margin-bottom: 27px; }
.categories button { border: 0; border-left: 3px solid transparent; padding: 12px 13px; min-height: 44px; text-align: left; background: transparent; color: #3c4c60; font-size: 14px; line-height: 1.4; border-radius: 0 4px 4px 0; }
.categories button:hover { background: #e9edf2; }
.categories button[aria-pressed=true] { border-left-color: #007b65; background: #e2eeea; color: #005345; font-weight: 700; }
.context label { display: block; font-size: 13px; font-weight: 700; margin-bottom: 9px; }
select { display: block; width: 100%; min-height: 46px; padding: 10px; border: 1px solid #aebac6; border-radius: 4px; background: white; color: #172438; font-size: 14px; }
.context-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; min-height: 44px; font-size: 14px; }
.admissions { border-top: 1px solid var(--line); margin-top: 32px; padding-top: 24px; }
.admissions h3 { font-size: 15px; margin: 0 0 8px; }
.admissions a { display: flex; align-items: center; gap: 9px; min-height: 44px; font-size: 14px; }
.conversation { display: flex; flex-direction: column; background: white; height: max(720px, calc(100dvh - 88px)); }
#filters summary { display: none; }
.conversation-heading { padding: 32px 40px 12px; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.icon-button { border: 1px solid var(--line); background: white; border-radius: 4px; width: 44px; height: 44px; flex: 0 0 44px; display: grid; place-items: center; }
.icon-button:hover { background: #f3f6f8; }
.qualification-note { font-size: 13px; line-height: 1.5; color: var(--muted); padding: 0 40px 20px; margin: 0; border-bottom: 1px solid var(--line); }
.messages { padding: 24px 40px; flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.welcome { padding: 0 0 20px; }
.welcome h2 { font-size: 15px; line-height: 1.4; margin: 0 0 14px; color: var(--muted); }
.starters { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; max-width: 640px; }
.starter { min-height: 48px; border: 1px solid var(--line); border-radius: 4px; padding: 10px 12px; background: white; color: #172438; text-align: left; display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 13px; line-height: 1.5; }
.starter:hover { border-color: #007b65; background: #f5faf8; }
.starter img { flex: 0 0 18px; }
.message { margin-bottom: 26px; }
.user-message { display: flex; justify-content: flex-end; }
.user-message p { background: #eaf0f7; padding: 12px 16px; border-radius: 4px; margin: 0; max-width: 88%; line-height: 1.6; overflow-wrap: anywhere; }
.assistant-message { padding: 0 0 4px 14px; border-left: 3px solid #007b65; overflow-wrap: anywhere; }
.assistant-message h2 { font-size: 17px; line-height: 1.5; margin: 0 0 8px; }
.assistant-message p { font-size: 15px; line-height: 1.7; margin: 0 0 12px; }
.message-label { font-size: 11px !important; font-weight: 700; color: #006450; margin-bottom: 7px !important; }
.sources { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 8px 0; }
.sources a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-size: 13px; }
.related { display: grid; gap: 7px; margin: 12px 0; }
.related button { text-align: left; color: var(--navy); border: 1px solid var(--line); background: #fafbfc; padding: 11px 12px; min-height: 44px; border-radius: 4px; line-height: 1.5; }
.related button:hover { border-color: #007b65; }
.composer { background: white; border-bottom: 1px solid var(--line); padding: 20px 40px 16px; flex-shrink: 0; }
#status { font-size: 12px; line-height: 1.5; color: var(--muted); margin: 10px 0 0; overflow-wrap: anywhere; }
#question-form label { display: block; font-size: 18px; font-weight: 700; margin-bottom: 12px; line-height: 1.4; }
.question-controls { display: flex; gap: 10px; }
#question { border: 1px solid #9faeba; border-radius: 4px; padding: 13px 14px; width: 100%; min-height: 50px; font-size: 16px; }
.send-button { background: #ffd500; border: 1px solid #ddba00; border-radius: 4px; flex: 0 0 50px; height: 50px; display: grid; place-items: center; }
.send-button:hover { background: #ffe04a; }
.no-script { padding: 20px; line-height: 1.7; }
@media (max-width: 767px) {
  .masthead { padding: 12px 16px; min-height: 78px; }
  .brand { font-size: 12px; gap: 10px; }
  .brand img { width: 46px; height: 46px; flex-basis: 46px; }
  .demo-label { font-size: 11px; }
  .workspace { display: flex; flex-direction: column; }
  .context { order: 2; }
  .context { border-right: 0; border-bottom: 1px solid var(--line); padding: 20px 16px; }
  .context > .eyebrow, .context h2 { display: none; }
  #filters summary { display: list-item; min-height: 44px; cursor: pointer; font-size: 14px; font-weight: 700; padding: 12px 0; }
  .filter-body { padding-top: 12px; }
  .categories { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 18px; }
  .categories button { border: 1px solid #c7d0d9; border-radius: 4px; padding: 9px 11px; font-size: 12px; text-align: center; }
  .categories button[aria-pressed=true] { border-color: #007b65; }
  .admissions { display: flex; flex-wrap: wrap; gap: 3px 18px; margin-top: 16px; padding-top: 12px; }
  .admissions h3 { width: 100%; margin: 0; font-size: 13px; }
  .admissions a { font-size: 13px; }
  .conversation { height: max(320px, calc(100dvh - 78px)); }
  .conversation-heading { padding: 16px 16px 10px; }
  h1 { font-size: 22px; }
  .qualification-note { padding: 0 16px 16px; }
  .messages { padding: 18px 16px max(18px, env(safe-area-inset-bottom)); }
  .starters { grid-template-columns: 1fr; gap: 8px; }
  .starter { min-height: 50px; }
  .composer { padding: 16px; }
  #question-form label { font-size: 17px; }
  #question { padding: 12px 10px; }
  .assistant-message p { font-size: 14px; }
}
@media (max-height: 500px) { .composer { position: static; } }
@media (prefers-reduced-motion: no-preference) { button, a { transition: background-color .12s, border-color .12s; } }

.embedded .masthead { display: none; }
.embedded .workspace { display: flex; flex-direction: column; }
.embedded .context { order: 2; padding: 12px 16px; border: 0; }
.embedded .context > .eyebrow, .embedded .context h2 { display: none; }
.embedded #filters summary { display: list-item; min-height: 44px; padding: 12px 0; cursor: pointer; }
.embedded .conversation { height: 100dvh; min-height: 300px; }
