:root {
  color-scheme: light;
  --canvas: #f4f2ed;
  --glass: rgba(255, 255, 255, 0.58);
  --glass-strong: rgba(255, 255, 255, 0.82);
  --glass-subtle: rgba(30, 29, 25, 0.025);
  --text: #171714;
  --text-soft: #3d3c38;
  --muted: #73716a;
  --muted-low: #9a978f;
  --line: rgba(31, 30, 26, 0.11);
  --line-strong: rgba(31, 30, 26, 0.2);
  --accent: #1b1b18;
  --accent-soft: rgba(31, 30, 26, 0.065);
  --danger: #8c433c;
  --sans: "Avenir Next", Avenir, "Helvetica Neue", sans-serif;
  --mono: "SFMono-Regular", Consolas, monospace;
}

* { box-sizing: border-box; }
html, body { height: 100%; }
.hidden { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

body {
  margin: 0;
  overflow: hidden;
  color: var(--text);
  background:
    radial-gradient(circle at 15% 5%, rgba(255,255,255,.98), transparent 30%),
    radial-gradient(circle at 78% 47%, rgba(222,218,207,.42), transparent 40%),
    radial-gradient(circle at 58% 100%, rgba(255,255,255,.78), transparent 32%),
    linear-gradient(145deg, #f7f5f0 0%, #eeece6 100%);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
}
body.modal-open { overflow: hidden; }

button, textarea, input, select { font: inherit; }
button { color: inherit; }
button:focus-visible, input:focus-visible + .toggle-track {
  outline: 2px solid rgba(24, 24, 21, 0.62);
  outline-offset: 3px;
}

.app-shell {
  display: grid;
  grid-template-columns: 328px minmax(0, 1fr);
  height: 100dvh;
}

.sidebar {
  position: relative;
  z-index: 40;
  display: flex;
  min-width: 0;
  height: calc(100dvh + 12px);
  margin: 8px 8px 0 0;
  padding: 34px 20px 24px;
  flex-direction: column;
  border: 1px solid rgba(30,29,25,.25);
  border-left: 0;
  border-bottom: 0;
  border-radius: 0 18px 0 0;
  background:
    linear-gradient(142deg, rgba(255,255,255,.88) 0%, rgba(255,255,255,.48) 28%, rgba(255,255,255,.18) 65%),
    rgba(238,236,229,.58);
  box-shadow:
    inset 1px 1px 0 rgba(255,255,255,.92),
    inset -1px 0 0 rgba(31,30,26,.045),
    18px 0 70px rgba(72,67,55,.055);
  backdrop-filter: blur(34px) saturate(92%);
  -webkit-backdrop-filter: blur(34px) saturate(92%);
}

.icon-button {
  display: inline-grid;
  width: 36px;
  height: 36px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 9px;
  color: var(--muted);
  background: transparent;
  cursor: pointer;
  transition: color 150ms ease, background 150ms ease;
}
.icon-button:hover { color: var(--text); background: rgba(31,30,26,.055); }
.icon-button .ph { font-size: 1.15rem; }
.close-sidebar { display: none; }

.new-chat {
  display: grid;
  grid-template-columns: 20px 1fr auto;
  align-items: center;
  gap: 11px;
  width: 100%;
  min-height: 52px;
  padding: 0 15px;
  border: 1px solid var(--line);
  border-radius: 12px;
  color: var(--text);
  background: rgba(255,255,255,.36);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.82);
  cursor: pointer;
  text-align: left;
  transition: border-color 150ms ease, background 150ms ease;
}
.new-chat:hover { border-color: rgba(31,30,26,.27); background: rgba(255,255,255,.66); }
.new-chat > .ph { color: var(--accent); font-size: 1.08rem; }
.new-chat span { font-size: .84rem; font-weight: 600; }
.new-chat kbd { color: var(--muted); background: none; font: .66rem var(--sans); }

.mode-switch { display: grid; grid-template-columns: 1fr 1.45fr; gap: 4px; margin-top: 12px; padding: 4px; border: 1px solid var(--line); border-radius: 11px; background: rgba(31,30,26,.025); }
.mode-option { display: flex; min-width: 0; height: 36px; padding: 0 9px; align-items: center; justify-content: center; gap: 7px; border: 0; border-radius: 7px; color: var(--muted); background: transparent; cursor: pointer; font-size: .62rem; font-weight: 600; transition: color 150ms ease, background 150ms ease, box-shadow 150ms ease; }
.mode-option:hover { color: var(--text); }
.mode-option.active { color: var(--text); background: rgba(255,255,255,.72); box-shadow: inset 0 1px 0 rgba(255,255,255,.95), 0 3px 12px rgba(72,67,55,.06); }
.mode-option .ph { font-size: .85rem; }

.rail-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 45px 11px 20px;
  color: var(--muted);
  text-transform: uppercase;
  font-size: .63rem;
  font-weight: 700;
  letter-spacing: .18em;
}
.rail-label span:last-child {
  display: grid;
  min-width: 20px;
  height: 20px;
  place-items: center;
  border-radius: 99px;
  color: var(--muted-low);
  background: rgba(31,30,26,.045);
  font-size: .53rem;
  letter-spacing: 0;
}

.sessions {
  min-height: 0;
  flex: 1;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--line) transparent;
}
.empty-sessions { margin: 0; padding: 0 11px; color: var(--muted); font-size: .84rem; line-height: 1.65; }
.session-row {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 30px;
  gap: 3px;
  margin-bottom: 3px;
  border-radius: 9px;
}
.session-row:hover, .session-row.active { background: rgba(255,255,255,.48); }
.session-row.active::before { position: absolute; top: 9px; bottom: 9px; left: 0; width: 2px; border-radius: 99px; background: var(--accent); content: ""; }
.session-main, .session-delete { border: 0; color: inherit; background: transparent; cursor: pointer; }
.session-main { min-width: 0; padding: 10px 7px 10px 12px; text-align: left; }
.session-main strong, .session-main small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.session-main strong { color: var(--text-soft); font-size: .71rem; font-weight: 500; }
.session-main small { margin-top: 3px; color: var(--muted-low); font-size: .58rem; }
.session-delete { border-radius: 8px; color: transparent; }
.session-row:hover .session-delete { color: var(--muted); }
.session-delete:hover { color: var(--danger) !important; background: rgba(140,67,60,.08); }

.rail-footer { padding-top: 20px; }
.connection-card {
  display: grid;
  grid-template-columns: 26px minmax(0,1fr) 18px;
  align-items: center;
  gap: 10px;
  min-height: 68px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(255,255,255,.36);
}
.status-icon { color: var(--accent); font-size: .72rem; filter: none; }
.connection-card strong, .connection-card small { display: block; }
.connection-card strong { font-size: .8rem; font-weight: 600; }
.connection-card small { margin-top: 3px; color: var(--muted); font-size: .68rem; }
.connection-chevron { color: var(--muted); font-size: .85rem; }

.diffusion-toggle {
  position: relative;
  display: grid;
  grid-template-columns: 34px minmax(0,1fr) auto;
  align-items: center;
  gap: 10px;
  min-height: 72px;
  margin-top: 29px;
  padding: 14px 8px;
  border-top: 1px solid var(--line);
  cursor: pointer;
}
.diffusion-icon { color: var(--text-soft); font-size: 1.42rem; }
.toggle-copy strong, .toggle-copy small { display: block; }
.toggle-copy strong { font-size: .79rem; font-weight: 600; }
.toggle-copy small { margin-top: 3px; color: var(--muted); font-size: .68rem; }
.diffusion-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.toggle-track { position: relative; width: 44px; height: 24px; border: 1px solid var(--line-strong); border-radius: 99px; background: rgba(31,30,26,.045); transition: background 160ms ease, border-color 160ms ease; }
.toggle-track i { position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: var(--muted); box-shadow: 0 2px 5px rgba(0,0,0,.35); transition: transform 160ms ease, background 160ms ease; }
.diffusion-toggle input:checked + .toggle-track { border-color: rgba(31,30,26,.45); background: rgba(31,30,26,.12); }
.diffusion-toggle input:checked + .toggle-track i { transform: translateX(20px); background: var(--accent); }

.workspace {
  position: relative;
  display: grid;
  min-width: 0;
  grid-template-rows: minmax(0, 1fr) auto;
  overflow: hidden;
}
.mobile-bar { display: none; }

.conversation {
  position: relative;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: var(--line) transparent;
}
.conversation.empty-state { overflow: hidden; }

.analysis-workspace { min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--line) transparent; }
.analysis-shell { width: min(920px, calc(100% - 56px)); margin: 0 auto; padding: 68px 0 90px; }
.analysis-hero { max-width: 700px; margin-bottom: 30px; }
.analysis-eyebrow, .analysis-progress-head span, .analysis-result-head span { display: block; color: var(--muted); text-transform: uppercase; font-size: .56rem; font-weight: 700; letter-spacing: .17em; }
.analysis-hero h1 { margin: 10px 0 13px; color: var(--text); font-size: clamp(1.8rem, 4vw, 3.1rem); font-weight: 500; line-height: 1.02; letter-spacing: -.045em; }
.analysis-hero p { max-width: 650px; margin: 0; color: var(--muted); font-size: .83rem; line-height: 1.72; }
.analysis-upload-card, .analysis-progress, .analysis-result, .intake-card, .quiz-card { border: 1px solid rgba(31,30,26,.2); border-radius: 18px; background: linear-gradient(145deg, rgba(255,255,255,.88), rgba(255,255,255,.38) 55%), rgba(238,236,229,.58); box-shadow: inset 0 1px 0 rgba(255,255,255,.96), 0 20px 65px rgba(72,67,55,.07); backdrop-filter: blur(28px) saturate(92%); -webkit-backdrop-filter: blur(28px) saturate(92%); }
.analysis-paths { display: grid; grid-template-columns: 1.15fr .85fr; gap: 12px; }
.analysis-path-card { display: grid; min-height: 230px; padding: 24px; grid-template-columns: 48px minmax(0,1fr) 20px; align-items: start; gap: 18px; border: 1px solid var(--line-strong); border-radius: 18px; color: var(--text); background: rgba(255,255,255,.4); box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 18px 50px rgba(72,67,55,.04); cursor: pointer; text-align: left; transition: transform 180ms ease, border-color 180ms ease, background 180ms ease; }
.analysis-path-card:hover { transform: translateY(-2px); border-color: rgba(31,30,26,.34); background: rgba(255,255,255,.7); }
.analysis-path-card.featured { background: linear-gradient(145deg, rgba(24,24,21,.96), rgba(38,37,33,.9)); color: #fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.13), 0 22px 60px rgba(31,30,26,.14); }
.analysis-path-card.featured:hover { border-color: rgba(31,30,26,.68); background: linear-gradient(145deg, #11110f, #2b2a26); }
.analysis-path-icon { display: grid; width: 48px; height: 48px; place-items: center; border: 1px solid currentColor; border-radius: 13px; opacity: .72; }
.analysis-path-icon .ph { font-size: 1.25rem; }
.analysis-path-card > span:nth-child(2) { align-self: end; }
.analysis-path-card small, .analysis-path-card strong, .analysis-path-card em { display: block; }
.analysis-path-card small { margin-bottom: 10px; opacity: .58; text-transform: uppercase; font-size: .52rem; font-style: normal; font-weight: 700; letter-spacing: .15em; }
.analysis-path-card strong { font-size: 1.05rem; font-weight: 600; letter-spacing: -.02em; }
.analysis-path-card em { max-width: 350px; margin-top: 9px; opacity: .62; font-size: .67rem; font-style: normal; line-height: 1.55; }
.analysis-path-card > .ph { opacity: .55; font-size: .9rem; }
.analysis-upload-card { padding: 12px; }
.analysis-back { display: inline-flex; margin: 4px 5px 10px; align-items: center; gap: 7px; }
.analysis-dropzone { display: flex; width: 100%; min-height: 220px; padding: 36px; align-items: center; justify-content: center; flex-direction: column; border: 1px dashed rgba(31,30,26,.24); border-radius: 12px; color: var(--text-soft); background: rgba(255,255,255,.2); cursor: pointer; transition: border-color 160ms ease, background 160ms ease, transform 160ms ease; }
.analysis-dropzone:hover, .analysis-dropzone.dragging { border-color: rgba(31,30,26,.52); background: rgba(255,255,255,.48); }
.analysis-dropzone.dragging { transform: scale(.995); }
.analysis-upload-icon { display: grid; width: 44px; height: 44px; margin-bottom: 15px; place-items: center; border: 1px solid var(--line-strong); border-radius: 12px; background: rgba(255,255,255,.7); box-shadow: inset 0 1px 0 #fff; }
.analysis-upload-icon .ph { font-size: 1.25rem; }
.analysis-dropzone strong { font-size: .86rem; font-weight: 600; }
.analysis-dropzone small { margin-top: 7px; color: var(--muted); font-size: .63rem; }
.analysis-file-row { display: grid; min-height: 92px; padding: 18px; grid-template-columns: 38px minmax(0,1fr) 36px; align-items: center; gap: 12px; }
.analysis-file-row > span { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 10px; background: var(--accent-soft); }
.analysis-file-row > span .ph { font-size: 1.05rem; }
.analysis-file-row strong, .analysis-file-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.analysis-file-row strong { color: var(--text-soft); font-size: .73rem; }
.analysis-file-row small { margin-top: 4px; color: var(--muted); font-size: .58rem; }
.analysis-upload-actions { display: flex; min-height: 58px; padding: 10px 5px 0 11px; align-items: center; justify-content: space-between; gap: 14px; }
.analysis-upload-actions a { color: var(--muted); font-size: .6rem; text-decoration-color: rgba(31,30,26,.2); text-underline-offset: 3px; }
.analysis-run { display: flex; min-height: 42px; padding: 0 15px; align-items: center; gap: 9px; border: 1px solid rgba(31,30,26,.78); border-radius: 10px; color: #fff; background: var(--accent); cursor: pointer; font-size: .64rem; font-weight: 600; }
.analysis-run:disabled { border-color: var(--line); color: var(--muted-low); background: rgba(31,30,26,.06); cursor: not-allowed; }
.analysis-progress { margin-top: 18px; padding: 18px; }
.analysis-progress-head, .analysis-result-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.analysis-progress-head strong, .analysis-result-head strong { display: block; margin-top: 4px; color: var(--text-soft); font-size: .75rem; font-weight: 600; }
.analysis-stage-list { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: 7px; margin-top: 16px; }
.analysis-stage { min-width: 0; min-height: 74px; padding: 10px; border: 1px solid transparent; border-radius: 9px; color: var(--muted-low); background: rgba(31,30,26,.025); }
.analysis-stage .ph { display: block; margin-bottom: 9px; font-size: .72rem; }
.analysis-stage strong, .analysis-stage small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.analysis-stage strong { color: var(--muted); font-size: .55rem; }
.analysis-stage small { margin-top: 3px; font-size: .47rem; }
.analysis-stage.active { border-color: rgba(31,30,26,.17); color: var(--accent); background: var(--accent-soft); }
.analysis-stage.active .ph { animation: pulse 1.2s ease-in-out infinite; }
.analysis-stage.complete { color: var(--accent); }
.analysis-stage.error { border-color: rgba(140,67,60,.25); color: var(--danger); background: rgba(140,67,60,.05); }
.analysis-result { margin-top: 18px; padding: 26px 28px 34px; }
.analysis-result-head { padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.analysis-result-head > div:last-child { display: flex; gap: 4px; }
.analysis-result .answer-content { padding-top: 24px; }

.submission-shell { width: min(1120px, calc(100% - 56px)); }
.submission-hero { display: flex; max-width: none; align-items: flex-end; justify-content: space-between; gap: 24px; }
.submission-hero .text-button { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 6px; }
.questionnaire-issuer { display: grid; margin-bottom: 16px; padding: 24px; grid-template-columns: minmax(230px,.7fr) minmax(420px,1.3fr); gap: 24px 34px; border: 1px solid rgba(31,30,26,.2); border-radius: 18px; background: linear-gradient(145deg, rgba(255,255,255,.86), rgba(255,255,255,.34) 60%), rgba(238,236,229,.58); box-shadow: inset 0 1px 0 rgba(255,255,255,.96), 0 20px 65px rgba(72,67,55,.06); backdrop-filter: blur(28px); }
.questionnaire-issuer-copy h2 { margin: 8px 0 8px; color: var(--text); font-size: 1.05rem; font-weight: 600; letter-spacing: -.025em; }
.questionnaire-issuer-copy p { max-width: 390px; margin: 0; color: var(--muted); font-size: .64rem; line-height: 1.6; }
.questionnaire-link-form { display: grid; grid-template-columns: minmax(0,1fr) 105px auto; align-items: end; gap: 8px; }
.questionnaire-link-form label > span { display: block; margin: 0 0 7px 2px; color: var(--muted); text-transform: uppercase; font-size: .48rem; font-weight: 700; letter-spacing: .12em; }
.questionnaire-link-form input, .questionnaire-link-form select { width: 100%; height: 42px; padding: 0 12px; border: 1px solid var(--line-strong); border-radius: 10px; outline: 0; color: var(--text); background: rgba(255,255,255,.64); box-shadow: inset 0 1px 0 rgba(255,255,255,.95); font-size: .64rem; }
.questionnaire-link-form input:focus, .questionnaire-link-form select:focus { border-color: rgba(31,30,26,.55); }
.questionnaire-link-form .analysis-run { height: 42px; white-space: nowrap; }
.questionnaire-sidebar-section { border-bottom: 1px solid var(--line); }
.analysis-sidebar-section-head { display: flex; min-height: 34px; padding: 9px 12px 7px; align-items: center; justify-content: space-between; color: var(--muted); text-transform: uppercase; font-size: .47rem; font-weight: 700; letter-spacing: .12em; }
.analysis-sidebar-section-head > span:last-child:not(:first-child) { display: grid; min-width: 18px; height: 18px; padding: 0 5px; place-items: center; border-radius: 99px; color: var(--muted); background: var(--accent-soft); font-size: .47rem; letter-spacing: 0; }
.response-section-head { padding-top: 12px; }
.questionnaire-link-list { display: grid; gap: 4px; padding: 0 7px 9px; }
.questionnaire-link-row { display: grid; min-height: 58px; padding: 10px 9px 10px 11px; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 8px; border: 1px solid var(--line); border-radius: 9px; background: rgba(255,255,255,.33); }
.questionnaire-link-row > div { min-width: 0; }
.questionnaire-link-row strong, .questionnaire-link-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.questionnaire-link-row strong { color: var(--text-soft); font: .68rem var(--serif); }
.questionnaire-link-row small { margin-top: 4px; color: var(--muted); font-size: .48rem; }
.questionnaire-link-actions { display: flex; align-items: center; gap: 3px; }
.questionnaire-link-status { padding: 5px 7px; border-radius: 99px; color: var(--muted); background: rgba(31,30,26,.05); font-size: .49rem; white-space: nowrap; }
.questionnaire-link-status.in_progress { color: #5f5431; background: rgba(151,128,46,.1); }
.questionnaire-link-status.completed { color: #2f5e44; background: rgba(48,110,75,.09); }
.questionnaire-link-revoke { display: grid; width: 26px; height: 26px; padding: 0; place-items: center; border: 0; border-radius: 50%; color: var(--muted); background: transparent; cursor: pointer; }
.questionnaire-link-revoke:hover { color: var(--danger); background: rgba(140,67,60,.07); }
.questionnaire-link-empty { padding: 8px 12px 13px; color: var(--muted-low); font-size: .54rem; }
.submission-inbox { min-height: 560px; overflow: hidden; border: 1px solid rgba(31,30,26,.2); border-radius: 18px; background: linear-gradient(145deg, rgba(255,255,255,.86), rgba(255,255,255,.34) 60%), rgba(238,236,229,.58); box-shadow: inset 0 1px 0 rgba(255,255,255,.96), 0 20px 65px rgba(72,67,55,.07); backdrop-filter: blur(28px); }
.analysis-sidebar { display: flex; min-height: 0; margin: 42px -12px 0; flex: 1; flex-direction: column; }
.analysis-sidebar-head { display: flex; padding: 0 12px 15px; align-items: end; justify-content: space-between; border-bottom: 1px solid var(--line); }
.analysis-sidebar-head div > span { display: block; margin-bottom: 5px; color: var(--accent); text-transform: uppercase; font-size: .5rem; font-weight: 700; letter-spacing: .16em; }
.analysis-sidebar-head strong { color: var(--accent-dark); font: 1rem var(--serif); }
.analysis-sidebar-head > span { display: grid; min-width: 22px; height: 22px; padding: 0 6px; place-items: center; border-radius: 99px; color: var(--accent); background: var(--accent-soft); font-size: .54rem; font-weight: 700; }
.submission-filters { display: grid; grid-template-columns: repeat(4, 1fr); gap: 3px; padding: 10px; border-bottom: 1px solid var(--line); }
.submission-filters button { min-width: 0; height: 32px; padding: 0 5px; overflow: hidden; border: 0; border-radius: 7px; color: var(--muted); background: transparent; cursor: pointer; text-overflow: ellipsis; font-size: .54rem; }
.submission-filters button.active { color: var(--text); background: rgba(255,255,255,.82); box-shadow: inset 0 1px 0 #fff, 0 3px 12px rgba(72,67,55,.05); }
.submission-list { min-height: 0; padding: 7px; overflow-y: auto; flex: 1; scrollbar-width: thin; scrollbar-color: var(--line) transparent; }
.submission-row { display: block; width: 100%; margin-bottom: 3px; padding: 14px 13px; border: 1px solid transparent; border-radius: 10px; color: var(--text-soft); background: transparent; cursor: pointer; text-align: left; }
.submission-row:hover { background: rgba(255,255,255,.48); }
.submission-row.active { border-color: var(--line); background: rgba(255,255,255,.78); box-shadow: inset 0 1px 0 #fff; }
.submission-row-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.submission-row strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .72rem; }
.submission-row em { padding: 4px 6px; border-radius: 99px; color: var(--muted); background: rgba(31,30,26,.05); font-size: .48rem; font-style: normal; }
.submission-row > span:nth-child(2), .submission-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.submission-row > span:nth-child(2) { margin-top: 8px; color: var(--muted); font-size: .59rem; }
.submission-row small { margin-top: 4px; color: var(--muted-low); font-size: .52rem; }
.submission-list-empty { display: grid; min-height: 240px; padding: 30px; place-items: center; align-content: center; color: var(--muted); text-align: center; }
.submission-list-empty .ph { margin-bottom: 11px; font-size: 1.3rem; }
.submission-list-empty strong { color: var(--text-soft); font-size: .72rem; }
.submission-list-empty span { margin-top: 5px; font-size: .57rem; line-height: 1.5; }
.submission-panel { min-width: 0; padding: 28px; }
.submission-badge { padding: 6px 9px; border-radius: 99px; color: #5f5431; background: rgba(151,128,46,.1); font-size: .55rem; white-space: nowrap; }
.submission-badge.complete { color: #2f5e44; background: rgba(48,110,75,.09); }
.submission-badge.archived { color: var(--muted); background: rgba(31,30,26,.06); }
.submission-actions { display: flex; margin-top: 18px; align-items: center; gap: 8px; }
.submission-actions .danger { color: var(--danger); }
.submission-detail .analysis-result { box-shadow: none; }

.intake-card { position: relative; display: flex; min-height: 610px; max-height: min(720px, calc(100dvh - 155px)); padding: 0; overflow: hidden; flex-direction: column; }
.intake-head { padding: 17px 22px 16px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.3); }
.intake-head .analysis-back { margin: 0 0 15px; }
.intake-status { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 3px 16px; }
.intake-status span { grid-column: 1; color: var(--muted); text-transform: uppercase; font-size: .52rem; font-weight: 700; letter-spacing: .16em; }
.intake-status strong { grid-column: 1; font-size: .84rem; font-weight: 600; }
.intake-status small { grid-column: 2; grid-row: 1 / 3; align-self: center; color: var(--muted); font-size: .58rem; }
.intake-meter { height: 2px; margin-top: 14px; overflow: hidden; border-radius: 99px; background: rgba(31,30,26,.08); }
.intake-meter span { display: block; width: 25%; height: 100%; border-radius: inherit; background: var(--accent); transition: width 300ms ease; }
.intake-messages { min-height: 0; padding: 30px clamp(20px, 6vw, 62px); overflow-y: auto; flex: 1; scrollbar-width: thin; scrollbar-color: var(--line) transparent; }
.intake-message { display: flex; max-width: 79%; margin-bottom: 20px; align-items: flex-start; gap: 11px; animation: intake-in 220ms ease both; }
.intake-message > div { min-width: 0; }
.intake-message small { display: block; margin: 0 0 6px; color: var(--muted); font-size: .52rem; font-weight: 600; }
.intake-message p { margin: 0; color: var(--text-soft); font-size: .78rem; line-height: 1.62; }
.intake-message.user { margin-left: auto; justify-content: flex-end; }
.intake-message.user > div { padding: 12px 15px; border: 1px solid var(--line); border-radius: 14px 14px 3px 14px; background: rgba(255,255,255,.66); box-shadow: inset 0 1px 0 rgba(255,255,255,.95); }
.intake-message.user small { text-align: right; }
.intake-avatar { display: grid; width: 27px; height: 27px; flex: 0 0 27px; place-items: center; border: 1px solid var(--line-strong); border-radius: 8px; color: var(--text); background: rgba(255,255,255,.65); font: 600 .65rem Georgia, serif; }
.intake-typing { opacity: .55; }
.intake-typing p { animation: pulse 1.2s ease-in-out infinite; }
.intake-safety { margin: 0 22px 12px; padding: 11px 13px; border: 1px solid rgba(140,67,60,.22); border-radius: 10px; color: var(--danger); background: rgba(140,67,60,.055); font-size: .62rem; line-height: 1.55; }
.intake-composer { display: grid; margin: 0 22px; padding: 9px 9px 9px 14px; grid-template-columns: minmax(0,1fr) 38px; align-items: end; gap: 10px; border: 1px solid var(--line-strong); border-radius: 14px; background: rgba(255,255,255,.7); box-shadow: inset 0 1px 0 #fff, 0 10px 35px rgba(72,67,55,.05); }
.intake-composer textarea { width: 100%; min-height: 38px; max-height: 150px; padding: 9px 0 6px; resize: none; border: 0; outline: 0; color: var(--text); background: transparent; font-size: .75rem; line-height: 1.45; }
.intake-composer textarea::placeholder { color: var(--muted-low); }
.intake-composer button { display: grid; width: 38px; height: 38px; place-items: center; border: 0; border-radius: 10px; color: #fff; background: var(--accent); cursor: pointer; }
.intake-composer button:disabled { color: var(--muted-low); background: var(--accent-soft); }
.intake-privacy { margin: 11px 24px 15px; color: var(--muted); font-size: .53rem; }
.intake-privacy .ph { margin-right: 5px; }
.intake-ready { align-self: flex-end; margin: 0 22px 14px; }

.quiz-card { min-height: min(650px, calc(100dvh - 145px)); overflow: hidden; }
.quiz-head { display: flex; padding: 20px 24px 16px; align-items: center; justify-content: space-between; gap: 20px; }
.quiz-head span, .quiz-head strong { display: block; }
.quiz-head span { color: var(--muted); text-transform: uppercase; font-size: .53rem; font-weight: 700; letter-spacing: .15em; }
.quiz-head strong { margin-top: 5px; color: var(--text-soft); font-size: .69rem; font-weight: 600; }
.quiz-progress { height: 2px; background: rgba(31,30,26,.07); }
.quiz-progress span { display: block; width: 1.33%; height: 100%; background: var(--accent); transition: width 220ms ease; }
.quiz-body { display: flex; min-height: 520px; padding: 42px clamp(30px, 8vw, 82px) 34px; flex-direction: column; }
.quiz-instructions { max-width: 580px; margin: 0 0 40px; color: var(--muted); font-size: .63rem; line-height: 1.6; transition: opacity 180ms ease; }
.quiz-instructions.subdued { opacity: .36; }
.quiz-number { color: var(--muted-low); font: .62rem var(--mono); letter-spacing: .1em; }
.quiz-body h2 { max-width: 760px; min-height: 112px; margin: 15px 0 42px; color: var(--text); font-size: clamp(1.35rem, 2.5vw, 2rem); font-weight: 500; line-height: 1.33; letter-spacing: -.03em; }
.quiz-scale { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 8px; margin-top: auto; }
.quiz-option { min-height: 88px; padding: 12px 8px; border: 1px solid var(--line); border-radius: 12px; color: var(--muted); background: rgba(255,255,255,.28); cursor: pointer; transition: border-color 150ms ease, background 150ms ease, color 150ms ease, transform 150ms ease; }
.quiz-option:hover { transform: translateY(-2px); border-color: var(--line-strong); color: var(--text); background: rgba(255,255,255,.68); }
.quiz-option.selected { border-color: var(--accent); color: #fff; background: var(--accent); box-shadow: 0 9px 24px rgba(31,30,26,.13); }
.quiz-option span, .quiz-option strong { display: block; }
.quiz-option span { font: .7rem var(--mono); }
.quiz-option strong { margin-top: 9px; font-size: .56rem; font-weight: 600; line-height: 1.25; }
.quiz-footer { display: flex; min-height: 54px; padding: 0 24px; align-items: center; justify-content: space-between; border-top: 1px solid var(--line); color: var(--muted); font-size: .52rem; }
.quiz-footer button { display: inline-flex; align-items: center; gap: 6px; }
.quiz-footer button:disabled { opacity: .3; cursor: default; }

@keyframes intake-in { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }

.welcome {
  display: flex;
  width: 100%;
  min-height: 100%;
  align-items: flex-end;
  justify-content: center;
  padding: 40px 32px 35px;
  animation: rise-in 400ms cubic-bezier(.2,.72,.3,1) both;
}
.welcome.hidden { display: none; }
.prompt-section { position: relative; left: 14px; width: min(856px, 100%); }
.prompt-section-heading { padding: 0 0 15px 1px; color: var(--accent); text-transform: uppercase; font-size: .65rem; font-weight: 700; letter-spacing: .18em; }
.starter-grid {
  display: grid;
  grid-auto-flow: column;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(3, 56px);
  column-gap: 58px;
}
.starter-prompt {
  display: grid;
  grid-template-columns: minmax(0,1fr) 20px;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 0 8px 0 1px;
  border: 0;
  border-bottom: 1px solid var(--line);
  color: var(--text-soft);
  background: transparent;
  cursor: pointer;
  text-align: left;
  transition: color 150ms ease, border-color 150ms ease;
}
.starter-prompt:hover { color: var(--text); border-color: rgba(31,30,26,.3); }
.starter-prompt span { display: none; }
.starter-prompt strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .88rem; font-weight: 450; }
.starter-prompt .ph { justify-self: end; color: var(--muted); font-size: .86rem; transition: color 150ms ease, transform 150ms ease; }
.starter-prompt:hover .ph { color: var(--accent); transform: translateX(2px); }

.messages { width: min(820px, calc(100% - 48px)); margin: 0 auto; padding: 42px 0 145px; }
.message { margin-bottom: 32px; animation: message-in 260ms ease both; }
.message-user { display: flex; justify-content: flex-end; }
.message-user .message-body { max-width: min(650px, 86%); padding: 11px 14px; border: 1px solid var(--line); border-radius: 14px 14px 4px 14px; color: var(--text-soft); background: var(--glass-strong); box-shadow: inset 0 1px 0 rgba(255,255,255,.88), 0 8px 28px rgba(72,67,55,.06); font-size: .84rem; line-height: 1.58; backdrop-filter: blur(16px); }
.message-user p { margin: 0; white-space: pre-wrap; }
.assistant-shell { display: grid; grid-template-columns: 30px minmax(0,1fr); gap: 12px; }
.assistant-avatar { display: grid; width: 30px; height: 30px; place-items: center; border: 1px solid rgba(31,30,26,.2); border-radius: 9px; color: var(--accent); background: rgba(255,255,255,.55); box-shadow: inset 0 1px 0 rgba(255,255,255,.9); font-size: .72rem; font-weight: 600; }
.assistant-column { min-width: 0; }
.assistant-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 25px; margin-bottom: 8px; }
.assistant-meta strong { color: var(--text-soft); font-size: .63rem; font-weight: 600; }
.assistant-actions { display: flex; gap: 4px; }
.text-button { padding: 5px 7px; border: 0; border-radius: 7px; color: var(--muted); background: transparent; cursor: pointer; font-size: .57rem; font-weight: 600; }
.text-button:hover { color: var(--text); background: rgba(31,30,26,.045); }
.work-card-slot:not(:empty) + .answer-content { margin-top: 22px; }
.answer-content { color: var(--text-soft); font-size: .9rem; line-height: 1.78; }
.answer-content.streaming::after { display: inline-block; width: 6px; height: 1em; margin-left: 3px; border-radius: 1px; vertical-align: -.14em; background: var(--accent); animation: blink 800ms steps(1) infinite; content: ""; }
.answer-content p { margin: 0 0 1em; }
.answer-content p:last-child { margin-bottom: 0; }
.answer-content > :first-child { margin-top: 0; }
.answer-content h1, .answer-content h2, .answer-content h3, .answer-content h4, .answer-content h5, .answer-content h6 { margin: 1.65em 0 .6em; color: var(--text); font-weight: 600; line-height: 1.22; letter-spacing: -.025em; }
.answer-content h1 { font-size: 1.5rem; }
.answer-content h2 { font-size: 1.28rem; }
.answer-content h3 { font-size: 1.06rem; }
.answer-content h4 { font-size: .96rem; }
.answer-content h5, .answer-content h6 { color: var(--muted); font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.answer-content ul, .answer-content ol { margin: .75em 0 1.15em; padding-left: 1.45em; }
.answer-content li { margin: .42em 0; padding-left: .12em; }
.answer-content li > ul, .answer-content li > ol { margin: .35em 0 .5em; }
.answer-content li::marker { color: var(--muted); font-weight: 600; }
.answer-content li:has(> input[type="checkbox"]) { list-style: none; }
.answer-content li > input[type="checkbox"] { width: .9em; height: .9em; margin: 0 .52em 0 -1.35em; accent-color: #20201c; vertical-align: -.05em; }
.answer-content strong { color: var(--text); font-weight: 650; }
.answer-content em { color: #55534e; }
.answer-content del { color: var(--muted); text-decoration-color: rgba(31,30,26,.32); }
.answer-content code { padding: .14em .38em; border: 1px solid var(--line); border-radius: 4px; color: #292824; background: rgba(31,30,26,.045); font: .84em var(--mono); }
.answer-content pre { margin: 1.2em 0; padding: 16px 17px; overflow: auto; border: 1px solid rgba(31,30,26,.3); border-radius: 11px; color: #eceae4; background: linear-gradient(145deg, rgba(255,255,255,.055), transparent 45%), #23231f; box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 12px 30px rgba(72,67,55,.1); }
.answer-content pre code { padding: 0; border: 0; color: inherit; background: transparent; }
.answer-content blockquote { margin: 1.25em 0; padding: .8em 1em .8em 17px; border: 1px solid var(--line); border-left: 2px solid var(--accent); border-radius: 0 10px 10px 0; color: var(--muted); background: linear-gradient(90deg, rgba(255,255,255,.7), rgba(255,255,255,.25)); }
.answer-content blockquote > :last-child { margin-bottom: 0; }
.answer-content a { color: var(--accent); text-decoration-color: rgba(31,30,26,.32); text-underline-offset: 3px; }
.answer-content a:hover { text-decoration-color: var(--accent); }
.answer-content hr { height: 1px; margin: 1.65em 0; border: 0; background: linear-gradient(90deg, rgba(31,30,26,.32), rgba(31,30,26,.06)); }
.answer-content img { display: block; max-width: 100%; height: auto; margin: 1.25em 0; border: 1px solid var(--line); border-radius: 11px; }
.markdown-table-wrap { margin: 1.35em 0 1.5em; overflow-x: auto; border: 1px solid var(--line-strong); border-radius: 12px; background: linear-gradient(145deg, rgba(255,255,255,.82), rgba(255,255,255,.32) 48%), rgba(239,237,230,.58); box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 10px 30px rgba(72,67,55,.05); scrollbar-width: thin; scrollbar-color: var(--line-strong) transparent; }
.answer-content table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: .8rem; line-height: 1.55; }
.answer-content th, .answer-content td { padding: 12px 14px; text-align: left; vertical-align: top; border-right: 1px solid var(--line); }
.answer-content th:last-child, .answer-content td:last-child { border-right: 0; }
.answer-content th { color: var(--text); background: rgba(31,30,26,.045); text-transform: uppercase; font-size: .61rem; font-weight: 700; letter-spacing: .08em; }
.answer-content td { border-top: 1px solid var(--line); color: var(--text-soft); }
.answer-content tbody tr { transition: background 140ms ease; }
.answer-content tbody tr:hover { background: rgba(255,255,255,.48); }

.work-card { padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: var(--glass); backdrop-filter: blur(18px); }
.work-card-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 11px; }
.work-card-head strong { color: var(--text-soft); font-size: .69rem; font-weight: 600; }
.work-card-head span { color: var(--muted); font-size: .52rem; }
.stage-list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.stage { min-width: 0; padding: 9px; border: 1px solid transparent; border-radius: 8px; color: var(--muted-low); background: rgba(31,30,26,.025); }
.stage > .ph { display: block; margin-bottom: 7px; color: var(--muted-low); font-size: .63rem; }
.stage strong, .stage small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stage strong { color: var(--muted); font-size: .56rem; font-weight: 600; }
.stage small { margin-top: 3px; font-size: .48rem; }
.stage.active { border-color: rgba(31,30,26,.15); background: var(--accent-soft); }
.stage.active > .ph { color: var(--accent); filter: none; animation: pulse 1.2s ease-in-out infinite; }
.stage.complete > .ph { color: var(--accent); }
.work-card.collapsed { display: flex; align-items: center; gap: 8px; padding: 8px 10px; }
.work-card.collapsed .work-card-head { margin: 0; }
.work-card.collapsed .stage-list { display: none; }
.work-card.collapsed .work-card-head span { color: var(--accent); }

.answer-footer { display: flex; align-items: center; gap: 7px; margin-top: 17px; padding-top: 11px; border-top: 1px solid var(--line); }
.source-button { display: flex; align-items: center; gap: 7px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 8px; color: var(--muted); background: transparent; cursor: pointer; font-size: .57rem; font-weight: 600; }
.source-button:hover { border-color: rgba(31,30,26,.24); color: var(--text); background: var(--accent-soft); }
.source-button span { display: grid; min-width: 17px; height: 17px; place-items: center; border-radius: 99px; color: var(--accent); background: var(--accent-soft); font-size: .48rem; }
.response-note { color: var(--muted-low); font-size: .53rem; }

.composer-zone {
  position: relative;
  left: 14px;
  z-index: 18;
  width: min(888px, calc(100% - 48px));
  margin: 0 auto;
  padding: 0;
}
.composer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 46px;
  align-items: end;
  gap: 9px;
  min-height: 170px;
  padding: 18px 18px 54px;
  border: 1px solid rgba(31,30,26,.28);
  border-bottom: 0;
  border-radius: 20px 20px 0 0;
  background:
    linear-gradient(150deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.62) 30%, rgba(255,255,255,.26) 66%),
    rgba(238,236,229,.72);
  box-shadow:
    inset 1px 1px 0 rgba(255,255,255,.98),
    inset -1px 0 0 rgba(31,30,26,.045),
    0 -18px 70px rgba(72,67,55,.12);
  backdrop-filter: blur(36px) saturate(90%);
  -webkit-backdrop-filter: blur(36px) saturate(90%);
  transform: translateY(22px);
  transition: border-color 150ms ease, box-shadow 150ms ease;
}
.composer:focus-within { border-color: rgba(31,30,26,.38); box-shadow: inset 1px 1px 0 rgba(255,255,255,.98), inset -1px 0 0 rgba(31,30,26,.045), 0 -18px 70px rgba(72,67,55,.14); }
.composer-input-wrap { min-width: 0; align-self: stretch; display: flex; flex-direction: column; justify-content: space-between; padding: 1px 2px; }
textarea { display: block; width: 100%; min-height: 42px; max-height: 180px; padding: 5px 7px; resize: none; overflow-y: auto; border: 0; color: var(--text); background: transparent; outline: none; font: .93rem/1.52 var(--sans); }
textarea::placeholder { color: #8b8982; }
.composer-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 24px; padding: 0 7px; color: var(--muted); font-size: .57rem; }
.composer-meta > span:first-child { display: flex; align-items: center; gap: 6px; }
.composer-meta .ph { color: var(--accent); font-size: .8rem; }
.keyboard-hint kbd { padding: 1px 4px; border: 1px solid var(--line); border-radius: 3px; color: var(--muted); background: rgba(31,30,26,.025); font: .53rem var(--sans); }
.keyboard-hint b { padding: 0 3px; font-weight: 400; }
.send-button { display: grid; width: 46px; height: 46px; place-items: center; border: 1px solid rgba(31,30,26,.78); border-radius: 11px; color: #fff; background: var(--accent); box-shadow: inset 0 1px 0 rgba(255,255,255,.16), 0 7px 20px rgba(72,67,55,.18); cursor: pointer; transition: transform 150ms ease, background 150ms ease; }
.send-button:hover { transform: translateY(-1px); background: #34342f; }
.send-button .ph { font-size: 1.15rem; }
.send-button .stop-icon { display: none; }
.send-button.busy .send-icon { display: none; }
.send-button.busy .stop-icon { display: inline-block; }
.source-drawer { position: fixed; top: 8px; right: 8px; z-index: 70; width: min(420px, calc(100vw - 16px)); height: calc(100dvh - 16px); padding: 20px; overflow-y: auto; border: 1px solid rgba(31,30,26,.24); border-radius: 18px; background: linear-gradient(145deg, rgba(255,255,255,.94), rgba(255,255,255,.44) 48%), rgba(238,236,229,.78); box-shadow: -30px 0 90px rgba(72,67,55,.2), inset 1px 1px 0 rgba(255,255,255,.95); transform: translateX(110%); transition: transform 220ms cubic-bezier(.2,.72,.3,1); backdrop-filter: blur(34px) saturate(92%); }
.source-drawer.open { transform: translateX(0); }
.source-scrim { position: fixed; inset: 0; z-index: 65; pointer-events: none; background: rgba(0,0,0,0); transition: background 220ms ease; }
.source-scrim.open { pointer-events: auto; background: rgba(0,0,0,.58); }
.source-drawer-head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 17px; border-bottom: 1px solid var(--line); }
.source-drawer-head span, .source-drawer-head strong { display: block; }
.source-drawer-head span { color: var(--accent); text-transform: uppercase; font-size: .52rem; font-weight: 700; letter-spacing: .15em; }
.source-drawer-head strong { margin-top: 4px; color: var(--text); font-size: 1.25rem; font-weight: 500; }
.source-list { padding: 13px 0; }
.source-item { margin-bottom: 7px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.42); }
.source-item summary { display: grid; grid-template-columns: 28px minmax(0,1fr) 15px; align-items: center; gap: 10px; padding: 12px; cursor: pointer; list-style: none; }
.source-item summary::-webkit-details-marker { display: none; }
.source-number { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 7px; color: var(--accent); background: var(--accent-soft); font: 600 .57rem var(--mono); }
.source-title { min-width: 0; }
.source-title strong, .source-title small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.source-title strong { color: var(--text-soft); font-size: .66rem; font-weight: 600; }
.source-title small { margin-top: 3px; color: var(--muted); font-size: .52rem; }
.source-chevron { color: var(--muted); transition: transform 150ms ease; }
.source-item[open] .source-chevron { transform: rotate(90deg); }
.source-excerpt { white-space: pre-wrap; overflow-wrap: anywhere; margin: 0; padding: 0 13px 14px 50px; color: var(--muted); font-size: .63rem; line-height: 1.65; }
.source-empty { padding: 22px 4px; color: var(--muted); font-size: .68rem; line-height: 1.6; }

.nav-scrim { display: none; }
.toast { position: fixed; right: 20px; bottom: 20px; z-index: 90; max-width: 360px; padding: 11px 13px; border: 1px solid rgba(31,30,26,.75); border-radius: 9px; color: #f5f3ed; background: rgba(29,29,26,.96); box-shadow: 0 20px 60px rgba(72,67,55,.24); opacity: 0; pointer-events: none; transform: translateY(10px); transition: opacity 180ms ease, transform 180ms ease; font-size: .64rem; line-height: 1.5; }
.toast.show { opacity: 1; transform: translateY(0); }
.questionnaire-link-modal { position: fixed; inset: 0; z-index: 100; display: grid; padding: 20px; place-items: center; background: rgba(42,40,34,.34); backdrop-filter: blur(10px); }
.questionnaire-link-modal-card { width: min(620px, 100%); padding: 30px; border: 1px solid rgba(255,255,255,.7); border-radius: 18px; background: #f8f6f1; box-shadow: 0 30px 110px rgba(72,67,55,.28); }
.questionnaire-link-modal-card h2 { margin: 9px 0 8px; font-size: 1.35rem; letter-spacing: -.03em; }
.questionnaire-link-modal-card p { margin: 0 0 18px; color: var(--muted); font-size: .66rem; line-height: 1.6; }
.questionnaire-link-modal-card code { display: block; padding: 15px; overflow-wrap: anywhere; border: 1px solid var(--line); border-radius: 10px; color: var(--text); background: rgba(31,30,26,.045); font: .66rem/1.55 var(--mono); }
.questionnaire-link-modal-card > div { display: flex; margin-top: 18px; justify-content: flex-end; gap: 8px; }

@keyframes rise-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes message-in { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: translateY(0); } }
@keyframes blink { 50% { opacity: 0; } }
@keyframes pulse { 50% { opacity: .4; } }

@media (max-width: 900px) {
  .app-shell { grid-template-columns: 1fr; }
  .sidebar { position: fixed; inset: 0 auto 0 0; width: min(312px, calc(100vw - 22px)); height: calc(100dvh - 16px); margin: 8px; border: 1px solid rgba(31,30,26,.25); border-radius: 18px; transform: translateX(-110%); transition: transform 220ms cubic-bezier(.2,.72,.3,1); }
  .sidebar.open { transform: translateX(0); }
  .close-sidebar { position: absolute; top: 8px; right: 8px; display: inline-grid; }
  .workspace { grid-template-rows: 54px minmax(0,1fr) auto; }
  .prompt-section, .composer-zone { left: 0; }
  .mobile-bar { display: flex; align-items: center; gap: 8px; padding: 0 12px; border-bottom: 1px solid var(--line); background: rgba(247,245,240,.76); backdrop-filter: blur(18px); }
  .open-sidebar { display: inline-grid; }
  .analysis-shell { padding-top: 34px; }
  .conversation-heading { min-width: 0; }
  .conversation-heading span, .conversation-heading strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .conversation-heading span { color: var(--muted); text-transform: uppercase; font-size: .48rem; font-weight: 700; letter-spacing: .13em; }
  .conversation-heading strong { margin-top: 1px; color: var(--text-soft); font-size: .7rem; font-weight: 600; }
  .nav-scrim { position: fixed; inset: 0; z-index: 35; display: block; pointer-events: none; background: rgba(0,0,0,0); transition: background 220ms ease; }
  .nav-scrim.open { pointer-events: auto; background: rgba(0,0,0,.64); }
}

@media (max-width: 680px) {
  .analysis-shell { width: calc(100% - 24px); padding: 24px 0 48px; }
  .analysis-hero { margin-bottom: 20px; }
  .analysis-hero h1 { font-size: 2rem; }
  .analysis-paths { grid-template-columns: 1fr; }
  .analysis-path-card { min-height: 174px; padding: 18px; grid-template-columns: 42px minmax(0,1fr) 16px; gap: 13px; }
  .analysis-path-icon { width: 42px; height: 42px; }
  .analysis-upload-card { padding: 8px; border-radius: 14px; }
  .analysis-dropzone { min-height: 190px; padding: 25px 16px; text-align: center; }
  .analysis-dropzone small { max-width: 260px; line-height: 1.5; }
  .analysis-upload-actions { align-items: flex-end; flex-direction: column-reverse; }
  .analysis-run { width: 100%; justify-content: center; }
  .analysis-progress { padding: 14px; }
  .analysis-stage-list { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .analysis-result { padding: 20px 14px 28px; }
  .analysis-result-head { align-items: flex-start; flex-direction: column; }
  .submission-hero { align-items: flex-start; flex-direction: column; }
  .submission-panel { padding: 17px 13px; }
  .questionnaire-issuer { padding: 18px; grid-template-columns: 1fr; gap: 18px; }
  .questionnaire-link-form { grid-template-columns: minmax(0,1fr) 96px; }
  .questionnaire-link-form .analysis-run { grid-column: 1 / -1; }
  .submission-actions { align-items: stretch; flex-direction: column; }
  .submission-actions .danger { margin-left: 0; }
  .intake-card { min-height: calc(100dvh - 132px); max-height: none; border-radius: 14px; }
  .intake-head { padding: 14px 14px 13px; }
  .intake-messages { padding: 24px 15px; }
  .intake-message { max-width: 91%; }
  .intake-composer { margin: 0 12px; }
  .intake-privacy { margin: 10px 14px 14px; }
  .intake-ready { width: calc(100% - 24px); margin: 0 12px 14px; justify-content: center; }
  .quiz-card { min-height: calc(100dvh - 132px); border-radius: 14px; }
  .quiz-head { padding: 16px; }
  .quiz-body { min-height: 500px; padding: 30px 17px 24px; }
  .quiz-instructions { margin-bottom: 28px; }
  .quiz-body h2 { min-height: 126px; margin-bottom: 30px; font-size: 1.25rem; }
  .quiz-scale { grid-template-columns: 1fr; gap: 6px; }
  .quiz-option { display: grid; min-height: 48px; padding: 9px 12px; grid-template-columns: 24px 1fr; align-items: center; text-align: left; }
  .quiz-option strong { margin: 0; }
  .quiz-footer { padding: 0 15px; }
  .welcome { align-items: flex-start; padding: 28px 15px 24px; overflow: hidden; }
  .starter-grid { grid-auto-flow: row; grid-template-columns: 1fr; grid-template-rows: none; column-gap: 0; }
  .starter-prompt { min-height: 48px; }
  .starter-prompt strong { font-size: .74rem; }
  .messages { width: calc(100% - 26px); padding-top: 24px; }
  .assistant-shell { grid-template-columns: 26px minmax(0,1fr); gap: 9px; }
  .assistant-avatar { width: 26px; height: 26px; border-radius: 7px; }
  .answer-content { font-size: .83rem; line-height: 1.7; }
  .work-card-slot:not(:empty) + .answer-content { margin-top: 18px; }
  .markdown-table-wrap { margin-right: -4px; border-radius: 10px; }
  .answer-content table { min-width: 520px; font-size: .76rem; }
  .answer-content th, .answer-content td { padding: 10px 11px; }
  .stage-list { grid-template-columns: repeat(2,1fr); }
  .composer-zone { width: calc(100% - 14px); padding-bottom: 0; }
  .composer { grid-template-columns: minmax(0,1fr) 41px; min-height: 120px; padding: 12px 12px 40px; border-radius: 15px 15px 0 0; transform: translateY(16px); }
  .send-button { width: 41px; height: 41px; border-radius: 10px; }
  .keyboard-hint { display: none; }
  .message-user .message-body { max-width: 92%; }
}

/* Warm red and sand redesign, based on the approved product direction. */
:root {
  --canvas: #faf7f3;
  --glass: #f2e6df;
  --glass-strong: #fffdfa;
  --glass-subtle: rgba(140, 36, 29, 0.035);
  --text: #2d2a29;
  --text-soft: #403b38;
  --muted: #6b6460;
  --muted-low: #988f89;
  --line: rgba(140, 36, 29, 0.13);
  --line-strong: rgba(140, 36, 29, 0.27);
  --accent: #b23a2e;
  --accent-dark: #8c241d;
  --accent-light: #d4614f;
  --accent-soft: rgba(178, 58, 46, 0.08);
  --danger: #8c241d;
  --serif: Georgia, "Times New Roman", serif;
  --sans: "Avenir Next", Avenir, "Helvetica Neue", sans-serif;
}

body { background: var(--canvas); }

.app-shell {
  grid-template-columns: 350px minmax(0, 1fr);
  grid-template-rows: 62px minmax(0, 1fr);
}

.site-header {
  position: relative;
  z-index: 30;
  display: flex;
  min-width: 0;
  padding: 0 34px;
  grid-column: 1 / -1;
  align-items: center;
  justify-content: space-between;
  color: #fffaf6;
  background: #b23a2e;
  border-bottom: 1px solid #8c241d;
}
.site-brand { display: flex; align-items: center; gap: 12px; }
.site-brand .ph { font-size: 1.65rem; }
.site-brand span { font: 1.15rem var(--serif); letter-spacing: -.01em; }
.site-header p { display: none; }

.sidebar {
  height: 100%;
  margin: 0;
  padding: 44px 30px 28px;
  grid-column: 1;
  grid-row: 2;
  border: 0;
  border-right: 1px solid var(--line);
  border-radius: 0;
  background: #fffdfa;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.new-chat {
  min-height: 50px;
  border-color: var(--accent-light);
  border-radius: 10px;
  color: var(--accent-dark);
  background: transparent;
  box-shadow: none;
}
.new-chat:hover { border-color: var(--accent); background: var(--accent-soft); }
.new-chat > .ph { color: var(--accent); }

.mode-switch {
  position: fixed;
  top: 0;
  right: 30px;
  z-index: 60;
  width: 290px;
  height: 62px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.mode-option {
  height: 62px;
  border-radius: 0;
  color: rgba(255,250,246,.66);
  font-size: .68rem;
}
.mode-option:hover { color: #fff; }
.mode-option.active {
  color: #fff;
  background: rgba(140,36,29,.24);
  box-shadow: inset 0 -3px 0 #fffaf6;
}

.rail-label { margin: 42px 10px 19px; color: var(--muted); font-size: .57rem; }
.rail-label span:last-child { background: var(--accent-soft); color: var(--accent); }
.empty-sessions { padding: 0 10px; font-size: .72rem; line-height: 1.65; }
.session-row {
  min-height: 68px;
  margin: 0 2px 7px;
  grid-template-columns: minmax(0, 1fr) 38px;
  align-items: center;
  gap: 3px;
  overflow: hidden;
  border: 1px solid transparent;
  border-radius: 11px;
  background: transparent;
  transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}
.session-row:hover {
  border-color: rgba(140,36,29,.13);
  background: #fffdfa;
  box-shadow: 0 8px 24px rgba(86,45,37,.055);
}
.session-row.active {
  border-color: rgba(140,36,29,.2);
  background: #fffdfa;
  box-shadow: 0 8px 26px rgba(86,45,37,.065), inset 0 1px 0 rgba(255,255,255,.9);
}
.session-row.active::before {
  top: 13px;
  bottom: 13px;
  left: -1px;
  width: 2px;
  border-radius: 0 2px 2px 0;
  background: var(--accent);
}
.session-row:has(.session-main:focus-visible) {
  border-color: rgba(140,36,29,.38);
  background: #fffdfa;
  box-shadow: 0 0 0 3px rgba(178,58,46,.1);
}
.session-main { padding: 13px 8px 13px 15px; }
.session-main:focus-visible { outline: none; }
.session-main strong { color: var(--text); font-family: var(--serif); font-size: .79rem; font-weight: 500; line-height: 1.25; }
.session-main small { margin-top: 5px; color: var(--muted); font-size: .56rem; letter-spacing: .01em; }
.session-delete {
  display: grid;
  width: 30px;
  height: 30px;
  padding: 0;
  place-self: center;
  place-items: center;
  border: 1px solid transparent;
  border-radius: 50%;
  color: var(--muted);
  background: transparent;
  opacity: 0;
  transform: translateX(3px);
  transition: opacity 140ms ease, transform 140ms ease, color 140ms ease, border-color 140ms ease, background 140ms ease, box-shadow 140ms ease;
}
.session-delete .ph { font-size: .9rem; }
.session-row:hover .session-delete, .session-delete:focus-visible { color: var(--muted); opacity: 1; transform: translateX(0); }
.session-delete:hover {
  border-color: rgba(140,67,60,.2);
  color: var(--danger) !important;
  background: rgba(140,67,60,.055);
  box-shadow: 0 3px 10px rgba(140,67,60,.08);
}
.session-delete:active { box-shadow: none; transform: scale(.94); }

@media (hover: none) {
  .session-delete { opacity: .68; transform: none; }
}

.sidebar-note { padding: 22px 10px 0; border-top: 1px solid var(--line); }
.sidebar-note p { margin: 0; color: var(--muted); font: .68rem/1.62 var(--serif); }
.sidebar-note span { display: flex; margin-top: 18px; align-items: center; gap: 7px; color: var(--muted); font-size: .56rem; }
.sidebar-note .ph { color: var(--accent); font-size: .8rem; }

.workspace { grid-column: 2; grid-row: 2; }
.workspace:has(.conversation.empty-state:not(.hidden)) { grid-template-rows: clamp(100px, 15vh, 160px) auto minmax(0, 1fr); }
.analysis-workspace:not(.hidden) ~ .welcome-prompts { display: none; }
.conversation { background: var(--canvas); }

.welcome { align-items: stretch; padding: 0 46px 28px; }
.welcome-content { width: min(850px, 100%); min-height: 100%; }
.welcome-intro { padding-top: clamp(42px, 7vh, 82px); }
.welcome-quote-mark { display: block; height: 38px; color: var(--accent); font: 3.1rem/.9 var(--serif); }
.welcome-intro blockquote { margin: 12px 0 8px; color: var(--accent); font: italic clamp(1.85rem, 3.2vw, 2.7rem)/1.35 var(--serif); letter-spacing: -.025em; }
.welcome-intro cite { display: block; color: var(--accent-dark); font: normal 1rem var(--serif); }
.welcome-intro cite::after { display: block; width: 34px; height: 1px; margin-top: 23px; background: var(--accent-light); content: ""; }
.welcome-intro h1 { margin: 50px 0 8px; color: var(--text); font: 1.22rem var(--serif); letter-spacing: -.015em; }
.welcome-intro p { max-width: 540px; margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.65; }
.prompt-section { left: 0; width: min(850px, calc(100% - 76px)); margin: 0 auto; padding-top: 28px; }
.welcome-prompts { display: flex; padding-bottom: 18px; flex-direction: column; }
.welcome-tagline { display: flex; margin: auto 0 0; align-items: center; justify-content: center; gap: 8px; color: var(--muted); font: italic .62rem var(--serif); }
.welcome-tagline .ph { color: var(--accent-light); font-size: .9rem; }
.prompt-section-heading { padding-bottom: 10px; color: var(--text); font-size: .56rem; }
.starter-grid { column-gap: 52px; grid-template-rows: repeat(3, 46px); }
.starter-prompt { padding-right: 4px; border-bottom-color: var(--line); }
.starter-prompt strong { font-family: var(--serif); font-size: .75rem; }
.starter-prompt .ph { color: var(--accent-light); }

.composer-zone { left: 0; width: min(880px, calc(100% - 76px)); }
.composer {
  min-height: 146px;
  padding: 17px 17px 46px;
  border-color: rgba(140,36,29,.25);
  border-bottom: 1px solid rgba(140,36,29,.25);
  border-radius: 16px;
  background: #fffdfa;
  box-shadow: 0 -10px 42px rgba(140,36,29,.06);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transform: none;
}
.composer:focus-within { border-color: var(--accent-light); box-shadow: 0 -10px 42px rgba(140,36,29,.09); }
.composer-zone.conversation-active .composer {
  border-bottom: 0 !important;
  border-radius: 16px 16px 0 0 !important;
  transform: translateY(1px);
}
textarea { font-size: .82rem; }
textarea::placeholder { color: #928883; }
.composer-meta .ph { color: var(--accent); }
.send-button { border-color: var(--accent-dark); border-radius: 10px; background: var(--accent); box-shadow: none; }
.send-button:hover { background: var(--accent-dark); }

.messages { width: min(850px, calc(100% - 56px)); padding-top: 52px; }
.conversation-limit {
  display: flex;
  width: min(850px, calc(100% - 56px));
  margin: -112px auto 145px;
  justify-content: center;
  animation: message-in 260ms ease both;
}
.conversation-limit-action {
  display: grid;
  width: min(430px, 100%);
  padding: 15px 17px;
  border: 1px solid var(--line-strong);
  border-radius: 12px 12px 3px 12px;
  grid-template-columns: minmax(0,1fr) 24px;
  gap: 3px 14px;
  align-items: center;
  text-align: left;
  color: var(--text);
  background: #f7efea;
  box-shadow: 0 12px 34px rgba(140,36,29,.08);
  cursor: pointer;
  transition: border-color 150ms ease, background 150ms ease, transform 150ms ease;
}
.conversation-limit-action span { color: var(--muted); font-size: .57rem; font-weight: 600; }
.conversation-limit-action strong { color: var(--accent-dark); font-family: var(--serif); font-size: .9rem; font-weight: 500; }
.conversation-limit-action .ph { grid-column: 2; grid-row: 1 / 3; color: var(--accent); font-size: 1rem; }
.conversation-limit-action:hover { border-color: var(--accent-light); background: #f3e4dc; transform: translateY(-1px); }
.composer-zone.conversation-locked .composer,
.composer-zone.conversation-locked .composer:focus-within {
  border-color: #d5d0ca;
  background: #efede8;
  box-shadow: none;
}
.composer-zone.conversation-locked textarea { color: var(--muted); cursor: not-allowed; }
.composer-zone.conversation-locked .composer-meta,
.composer-zone.conversation-locked .composer-meta .ph { color: #aaa49d; }
.composer-zone.conversation-locked .send-button {
  border-color: #c9c5bf;
  color: #f7f5f1;
  background: #c9c5bf;
  cursor: not-allowed;
  transform: none;
}
.message-user .message-body { border-color: var(--line); border-radius: 10px 10px 2px 10px; background: #f7efea; box-shadow: none; backdrop-filter: none; }
.assistant-avatar { border-color: var(--accent-light); border-radius: 50%; color: #fff; background: var(--accent); box-shadow: none; font-family: var(--serif); }
.assistant-meta strong { color: var(--accent-dark); }
.answer-content { font-family: var(--serif); font-size: .92rem; line-height: 1.8; }
.answer-content h1, .answer-content h2, .answer-content h3, .answer-content h4 { color: var(--accent-dark); font-family: var(--serif); font-weight: 500; }
.answer-content blockquote { border-color: var(--line); border-left-color: var(--accent); border-radius: 0; background: #f7efea; }
.answer-content hr { background: var(--line-strong); }
.markdown-table-wrap, .work-card { background: #fffdfa; box-shadow: none; backdrop-filter: none; }

.analysis-workspace { background: var(--canvas); }
.analysis-hero h1 { color: var(--accent-dark); font-family: var(--serif); }
.analysis-eyebrow, .analysis-progress-head span, .analysis-result-head span { color: var(--accent); }
.analysis-upload-card, .analysis-progress, .analysis-result, .intake-card, .quiz-card,
.questionnaire-issuer, .submission-inbox {
  border-color: var(--line-strong);
  background: #fffdfa;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.questionnaire-issuer-copy h2 { color: var(--accent-dark); font-family: var(--serif); }
.analysis-run { border-color: var(--accent-dark); background: var(--accent); }
.analysis-run:hover { background: var(--accent-dark); }
.questionnaire-link-form input, .questionnaire-link-form select, .questionnaire-link-row { background: var(--canvas); box-shadow: none; }
.submission-rail { background: #f7efea; }
.submission-filters button.active, .submission-row.active { background: #fffdfa; box-shadow: none; }

.source-drawer { top: 62px; right: 0; height: calc(100dvh - 62px); border-radius: 0; border-color: var(--line-strong); background: #fffdfa; box-shadow: -24px 0 70px rgba(140,36,29,.1); backdrop-filter: none; }
.source-item { background: var(--canvas); }
.questionnaire-link-modal-card { border-color: var(--line-strong); background: var(--canvas); }
.toast { border-color: var(--accent-dark); background: var(--accent-dark); }

body.modal-open { overflow: hidden; }

@media (max-width: 900px) {
  .app-shell { grid-template-columns: 1fr; grid-template-rows: 54px minmax(0,1fr); }
  .site-header { display: none; }
  .workspace { grid-column: 1; grid-row: 1 / -1; }
  .workspace:has(.conversation.empty-state:not(.hidden)) { grid-template-rows: 54px clamp(76px, 13vh, 112px) auto minmax(0,1fr); }
  .sidebar { inset: 8px auto 8px 8px; width: min(320px, calc(100vw - 22px)); height: calc(100dvh - 16px); padding: 58px 20px 24px; border: 1px solid var(--line-strong); border-radius: 14px; box-shadow: 18px 0 60px rgba(140,36,29,.13); }
  .mode-switch { position: static; width: auto; height: auto; margin-top: 12px; padding: 4px; border: 1px solid var(--line); border-radius: 9px; background: #f7efea; }
  .mode-option { height: 36px; border-radius: 6px; color: var(--muted); }
  .mode-option.active { color: var(--accent-dark); background: #fffdfa; box-shadow: none; }
  .mobile-bar { color: #fff; background: var(--accent); border-bottom-color: var(--accent-dark); backdrop-filter: none; }
  .mobile-bar .icon-button, .conversation-heading span, .conversation-heading strong { color: #fff; }
  .source-drawer { top: 0; height: 100dvh; }
  .welcome-intro { padding-top: 38px; }
}

@media (max-width: 680px) {
  .welcome { padding: 22px 18px 28px; overflow-y: auto; }
  .welcome-quote-mark { height: 30px; font-size: 2.45rem; }
  .welcome-intro blockquote { font-size: 1.55rem; }
  .welcome-intro h1 { margin-top: 36px; font-size: 1.05rem; }
  .welcome-intro h1, .welcome-intro p { display: none; }
  .prompt-section { width: calc(100% - 36px); margin-top: 0; padding: 24px 0 150px; }
  .welcome-tagline { display: none; }
  .starter-grid { grid-template-rows: none; }
  .composer-zone { width: calc(100% - 18px); }
  .conversation-limit { width: calc(100% - 26px); }
  .composer { min-height: 136px; padding: 15px 14px 40px; }
  .analysis-shell { padding-top: 32px; }
  .submission-hero { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* The analysis library and reader are separate destinations. */
.profile-library { margin: 32px 0 40px; display: block; }
.profile-library .analysis-sidebar-head { padding: 0 0 18px; align-items: center; }
.profile-library h2 { margin: 0; font: 28px var(--serif); color: #52241e; }
.profile-library .analysis-sidebar-section-head { padding: 18px 0 10px; text-transform: none; letter-spacing: 0; font-size: 13px; }
.profile-library .submission-filters { justify-content: flex-start; padding: 0 0 12px; gap: 8px; }
.profile-library .submission-filters button { flex: 0 1 auto; padding: 9px 16px; font-size: 13px; }
.profile-library .submission-list { padding: 0; overflow: visible; }
.profile-library .submission-row { border: 0; border-bottom: 1px solid #dacfc8; border-radius: 0; padding: 23px 12px; margin: 0; }
.profile-library .submission-row:hover { background: #f2e6df; }
.profile-library .submission-row strong { font: 23px var(--serif); color: #52241e; }
.profile-library .submission-row em { font-size: 12px; padding: 6px 10px; }
.profile-library .submission-row > span:nth-child(2) { font-size: 14px; }
.profile-library .submission-row small { font-size: 12px; white-space: normal; line-height: 1.5; }
.profile-library .questionnaire-link-row { padding: 14px 0; }
.profile-library .questionnaire-link-row strong { font-size: 14px; }
.profile-library .questionnaire-link-row small, .profile-library .questionnaire-link-empty, .profile-library .questionnaire-link-status { font-size: 12px; }
.profile-library .submission-list-empty strong { font-size: 18px; }
.profile-library .submission-list-empty span { font-size: 14px; }
.submission-shell .questionnaire-issuer { border-radius: 0; background: transparent; box-shadow: none; padding: 28px 0; border-width: 1px 0 0; }
.submission-shell .questionnaire-issuer-copy p { font-size: 13px; }
body.reader-open { overflow: hidden; }
.profile-reader { position: fixed; inset: 0; overflow: auto; z-index: 15; color: #352720; background: #faf7f3; }
.reader-topbar { position: sticky; top: 0; z-index: 3; min-height: 88px; padding: 0 40px; display: flex; justify-content: space-between; align-items: center; gap: 24px; border-bottom: 1px solid #dacfc8; background: #faf7f3; }
.reader-topbar > span { font: 24px var(--serif); color: #8c241d; }
.reader-topbar .text-button { font-size: 14px; }
.reader-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); min-height: calc(100vh - 88px); }
.reader-navigation { position: sticky; top: 88px; align-self: start; height: calc(100vh - 88px); overflow-y: auto; border-right: 1px solid #dacfc8; padding: 38px 20px; }
.reader-navigation > p { margin: 0 12px 28px; color: #52241e; font: 25px var(--serif); overflow-wrap: anywhere; }
.reader-navigation nav { display: grid; gap: 5px; }
.reader-navigation button { border: 0; border-left: 3px solid transparent; padding: 13px 14px; background: transparent; color: #5c4940; text-align: left; font: inherit; font-size: 14px; cursor: pointer; }
.reader-navigation button:hover { background: #f2e6df; }
.reader-navigation button[aria-current="location"] { color: #8c241d; border-left-color: #8c241d; background: #f2e6df; }
.reader-main { min-width: 0; padding: 48px clamp(24px, 4vw, 64px) 90px; }
.reader-mobile-navigation { display: none; }
.profile-reader .submission-inbox { min-height: 0; overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; backdrop-filter: none; }
.profile-reader .submission-panel { padding: 0; max-width: 1200px; margin: auto; }
.profile-reader .submission-detail { scroll-margin-top: 120px; }
.profile-reader .submission-actions { flex-wrap: wrap; margin-top: 32px; padding-top: 16px; border-top: 1px solid #dacfc8; gap: 20px; }
.profile-reader .submission-actions .text-button { font-size: 13px; }
.profile-reader .analysis-result { padding: 0; border: 0; background: transparent; }
.profile-reader .analysis-result-head { gap: 14px; flex-wrap: wrap; padding: 24px 0; }
.profile-reader .analysis-result-head > div > span { font-size: 13px; text-transform: none; letter-spacing: 0; }
.profile-reader .analysis-result-head strong { font-size: 13px; }
.profile-reader :focus-visible, .profile-library :focus-visible { outline: 2px solid #8c241d; outline-offset: 4px; }
@media (max-width: 760px) {
  .reader-topbar { min-height: 68px; padding: 0 18px; }
  .reader-topbar > span { font-size: 19px; }
  .reader-layout { display: block; }
  .reader-navigation { display: none; }
  .reader-main { padding: 20px 18px 60px; }
  .reader-mobile-navigation { display: grid; gap: 8px; font-size: 12px; margin-bottom: 28px; }
  .reader-mobile-navigation select { width: 100%; min-height: 44px; padding: 10px; border: 1px solid #dacfc8; background: #faf7f3; font: inherit; font-size: 15px; color: #52241e; }
  .profile-reader .submission-detail { scroll-margin-top: 90px; }
  .profile-library .submission-row { padding: 20px 4px; }
  .profile-library .submission-filters { flex-wrap: wrap; }
  .profile-library .submission-filters button { padding: 8px 12px; }
}
.reader-report-notice { padding: 18px; background: #f2e6df; border-left: 3px solid #8c241d; color: #52241e; font-size: 15px; line-height: 1.6; }
@media (min-width: 901px) {
  .app-shell.analysis-library-mode { grid-template-columns: 1fr; }
  .analysis-library-mode > .sidebar { display: contents; }
  .analysis-library-mode > .workspace { grid-column: 1 / -1; }
}
/* Keep the selected chapter at the top of the reading surface. */
.reader-export-actions { display: flex; align-items: center; gap: 18px; margin-left: auto; }
#reader-mobile-profile { display: none; }
.profile-reader.has-full-report .submission-detail { display: flex; flex-direction: column; }
.profile-reader.has-full-report .analysis-result { order: 0; margin: 0; padding: 0; }
@media (max-width: 760px) {
  .reader-topbar { gap: 10px; flex-wrap: wrap; padding-top: 10px; padding-bottom: 10px; }
  .reader-export-actions { gap: 12px; }
  .reader-export-actions .text-button { font-size: 12px; }
  #reader-mobile-profile { display: block; width: 100%; order: 3; font: 18px var(--serif); }
}
.source-item-heading { display: flex; align-items: center; gap: 10px; padding: 14px 0; }
.source-page-label { margin: 0; padding: 0 13px 8px 50px; color: var(--text-soft); font-size: 12px; }
.source-retry { margin: 0 13px 14px 50px; }
.source-title small { white-space: normal; }

/* A compact library, with issuing available throughout a long list. */
.analysis-shell.submission-shell { width: min(800px, calc(100% - 48px)); padding-top: 0; }
.submission-shell .submission-hero { position: sticky; top: 0; z-index: 4; margin: 0; min-height: 148px; padding: 42px 0 30px; display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 24px; background: var(--canvas); }
.submission-shell .submission-hero h1 { margin: 0; font-size: 38px; font-weight: 400; letter-spacing: -.025em; }
#questionnaire-link-open { flex-shrink: 0; min-height: 44px; padding: 12px 16px; border-radius: 5px; font-size: 13px; }
.submission-shell .profile-library { margin: 0 0 40px; }
.profile-library .submission-filters { display: flex; gap: 28px; padding: 0; border-bottom: 1px solid var(--line-strong); }
.profile-library .submission-filters button { height: auto; min-height: 48px; padding: 12px 0 15px; border-radius: 0; border-bottom: 2px solid transparent; color: var(--muted); font-size: 14px; background: transparent; }
.profile-library .submission-filters button.active { color: var(--accent-dark); border-bottom-color: var(--accent); background: transparent; }
.submission-filters button span { margin-left: 6px; font-size: 12px; color: var(--muted); }
.profile-library .submission-row { padding: 25px 0; background: transparent; }
.profile-library .submission-row strong { font-size: 24px; }
.profile-library .submission-row em { padding: 0; border: 0; background: transparent; color: var(--muted); font: 12px var(--sans); }
.profile-library .submission-row > span:not(.submission-row-top) { color: var(--muted); font-size: 13px; }
.profile-library .submission-row small { font-size: 13px; color: #70655e; }
.profile-library .questionnaire-link-list { gap: 0; padding: 0; }
.profile-library .questionnaire-link-row { min-height: 100px; padding: 24px 0; border: 0; border-bottom: 1px solid var(--line-strong); border-radius: 0; background: transparent; }
.profile-library .questionnaire-link-row strong { color: var(--accent-dark); font: 24px var(--serif); white-space: normal; overflow-wrap: anywhere; }
.profile-library .questionnaire-link-row small { margin-top: 8px; font-size: 13px; white-space: normal; line-height: 1.5; }
.profile-library .questionnaire-link-actions { gap: 16px; }
.profile-library .questionnaire-link-status { color: var(--muted); font-size: 12px; background: transparent; padding: 0; border: 0; }
.profile-library .questionnaire-link-revoke { width: 36px; height: 36px; }
.profile-library .questionnaire-link-empty { padding: 42px 0; }
.questionnaire-link-modal { backdrop-filter: none; }
.questionnaire-link-modal-card { max-height: calc(100dvh - 40px); overflow-y: auto; padding: 32px; border-radius: 8px; box-shadow: 0 20px 80px #35272025; }
.questionnaire-link-modal-card .questionnaire-modal-head { display: flex; align-items: flex-start; gap: 20px; justify-content: space-between; }
.questionnaire-link-modal-card h2 { margin: 0 0 18px; color: var(--accent-dark); font: 28px/1.2 var(--serif); }
.questionnaire-link-modal-card p { font-size: 14px; }
.questionnaire-link-modal-card .questionnaire-link-form { display: grid; grid-template-columns: 1fr 130px; gap: 20px; margin-top: 26px; }
.questionnaire-link-modal-card .questionnaire-link-form label > span { font-size: 13px; text-transform: none; letter-spacing: 0; font-weight: 500; }
.questionnaire-link-modal-card .questionnaire-link-form input, .questionnaire-link-modal-card .questionnaire-link-form select { min-height: 46px; font-size: 15px; }
.questionnaire-link-modal-card .questionnaire-link-form button { grid-column: 1 / -1; justify-self: end; min-height: 44px; font-size: 14px; }
.questionnaire-link-modal-card code { font-size: 14px; }
.questionnaire-result-actions { display: flex; gap: 18px; justify-content: flex-end; margin-top: 24px; }
.questionnaire-link-modal :focus-visible, #questionnaire-link-open:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
@media (max-width: 600px) {
  .analysis-shell.submission-shell { width: calc(100% - 36px); }
  .submission-shell .submission-hero { min-height: 0; padding: 26px 0 20px; flex-direction: column; align-items: stretch; gap: 18px; }
  .submission-shell .submission-hero h1 { font-size: 32px; }
  #questionnaire-link-open { width: 100%; }
  .profile-library .submission-filters { gap: 20px; flex-wrap: nowrap; }
  .profile-library .submission-filters button { padding: 12px 0; font-size: 12px; white-space: nowrap; }
  .submission-filters button span { display: none; }
  .profile-library .submission-row strong, .profile-library .questionnaire-link-row strong { font-size: 21px; }
  .profile-library .questionnaire-link-actions { gap: 8px; }
  .questionnaire-link-modal-card { padding: 24px; }
  .questionnaire-link-modal-card .questionnaire-link-form { grid-template-columns: 1fr; }
}

#analysis-title[tabindex="-1"]:focus { outline: none; }

.questionnaire-link-modal-card .questionnaire-link-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.questionnaire-link-modal-card .questionnaire-link-form label:first-child { grid-column: 1 / -1; }
@media (max-width: 640px) { .questionnaire-link-modal-card .questionnaire-link-form { grid-template-columns: 1fr; } }

/* Authored passages share safe Markdown rendering with chat, at source scale. */
.source-markdown.source-markdown { white-space: normal; overflow-wrap: anywhere; min-width: 0; font-size: 15px; line-height: 1.65; }
.source-markdown.source-markdown > :first-child { margin-top: 0; }
.source-markdown.source-markdown > :last-child { margin-bottom: 0; }
.source-markdown.source-markdown p { font-size:inherit; line-height:inherit; margin: 0 0 1em; white-space: normal; }
.source-markdown.source-markdown :is(h1, h2, h3, h4, h5, h6) {
  margin: 1.5em 0 .65em;
  color: var(--text);
  font-family: inherit;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: normal;
  text-transform: none;
}
.source-markdown.source-markdown :is(ul, ol) { margin: .7em 0 1em; padding-left: 2em; }
.source-markdown.source-markdown li { margin: .35em 0; padding-left: .2em; }
.source-markdown.source-markdown li > p { margin: 0 0 .5em; }
.source-markdown.source-markdown blockquote { margin: 1em 0; padding-left: 1em; border-left: 2px solid var(--line-strong); }
.source-markdown.source-markdown pre { white-space: pre-wrap; overflow-wrap: anywhere; padding: .8em; background: var(--canvas); }
.source-markdown.source-markdown code { font-size: .9em; }
.source-markdown.source-markdown img { max-width: 100%; height: auto; }
.source-markdown.source-markdown table { width: 100%; border-collapse: collapse; font-size: inherit; }
.source-markdown.source-markdown :is(th, td) { padding: .6em .75em; border: 1px solid var(--line-strong); text-align: left; text-transform:none; letter-spacing:normal; }

.source-markdown.source-markdown :is(h1, h2) { font-size: 17px; font-weight: 500; }
.source-markdown .markdown-table-wrap { max-width: 100%; overflow-x: auto; }

.source-markdown.source-markdown :is(h1,h2,h3,h4,h5,h6) strong { font-weight:inherit; }
