/* Shakk typography: local variable fonts, shared scale, scoped prose. */
@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("/fonts/plus-jakarta-sans-latin-v1.woff2") format("woff2");
}
@font-face {
  font-family: "Source Serif 4";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/source-serif-4-latin-v1.woff2") format("woff2");
}
@font-face {
  font-family: "Source Serif 4";
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/source-serif-4-italic-latin-v1.woff2") format("woff2");
}
@font-face {
  font-family: "Literata";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/literata-latin-v1.woff") format("woff");
}
@font-face {
  font-family: "Literata";
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/literata-italic-latin-v1.woff") format("woff");
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/jetbrains-mono-latin-v1.woff2") format("woff2");
}

:root {
  --font-ui: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --font-brand: var(--font-ui);
  --font-prose: "Literata", "Source Serif 4", "Iowan Old Style", Georgia, serif;
  --font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, ui-monospace, monospace;
  --text-brand: 1.4375rem;
  --text-endorse: .8125rem;
  --text-navigation: .9375rem;
  --text-history: 1rem;
  --text-home-title: 2rem;
  --text-home-subtitle: 1.125rem;
  --text-user: 1.0625rem;
  --text-assistant: 1.125rem;
  --text-composer: 1.0625rem;
  --text-auxiliary: .875rem;
  --text-heading-1: 1.5rem;
  --text-heading-2: 1.375rem;
  --text-heading-3: 1.3125rem;
  --text-heading-small: 1.25rem;
  --leading-prose: 1.6;
  --chat-width: 64rem;
  --content-width: var(--chat-width);
  --composer-width: var(--chat-width);
  --prose-measure: 100%;
  --prose-paragraph-gap: .85em;
  --conversation-gutter: 1.5rem;
  --mark-sidebar: 2rem;
  --mark-home: 3rem;
  --icon-header: 1.5rem;
  --icon-navigation: 1.375rem;
}

/* Form controls do not consistently inherit the page font across engines. */
button, input, select, textarea { font-family: var(--font-ui); }
.activity-label { font-family: var(--font-ui); }
.app-boot-mark { background: transparent; border: 0; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
.app-boot-mark img { object-fit: contain; }

#sidebar .brand-compact {
  display: grid;
  grid-template-columns: var(--mark-sidebar) minmax(0, 1fr);
  grid-template-areas: "mark name" "mark endorse";
  column-gap: .625rem;
  row-gap: 0;
  align-items: center;
}
#sidebar .brand-mark {
  grid-area: mark;
  width: var(--mark-sidebar);
  height: var(--mark-sidebar);
  object-fit: contain;
  border-radius: 0;
}
#sidebar .brand-compact .brand-name {
  grid-area: name;
  font: 800 var(--text-brand)/1.15 var(--font-ui);
  letter-spacing: -.025em;
}
#sidebar .brand-endorse {
  grid-area: endorse;
  font: 500 var(--text-endorse)/1.35 var(--font-ui);
  white-space: nowrap;
}
#sidebar .sidebar-header { min-height: 3.25rem; gap: .5rem; }
#sidebar :is(.workspace-nav button, .sidebar-home-row, .sidebar-footer-row) {
  font-family: var(--font-ui);
  font-size: var(--text-navigation);
  font-weight: 600;
}
#sidebar .conversation-item { font: 500 var(--text-history)/1.4 var(--font-ui); }
#btn-sidebar-open, #btn-sidebar-close, #btn-private-chat {
  width: 2.75rem;
  height: 2.75rem;
  min-width: 2.75rem;
  min-height: 2.75rem;
  flex-shrink: 0;
}
#btn-sidebar-open > svg, #btn-sidebar-close > svg, #btn-private-chat > svg {
  width: var(--icon-header);
  height: var(--icon-header);
}
#sidebar .workspace-nav button svg, #sidebar .sidebar-home-row > svg,
#sidebar .sidebar-footer-icon, #sidebar .sidebar-footer-icon svg {
  width: var(--icon-navigation);
  height: var(--icon-navigation);
  flex-basis: var(--icon-navigation);
}

#empty-state .home-mark {
  width: var(--mark-home);
  height: var(--mark-home);
  object-fit: contain;
  border-radius: 0;
  margin-bottom: 1rem;
}
#empty-state h1 { font: 700 var(--text-home-title)/1.25 var(--font-ui); letter-spacing: -.035em; }
#empty-state .home-tagline { font: 500 var(--text-home-subtitle)/1.45 var(--font-ui); }
.chat-main.is-home #empty-state { flex: 1 0 auto; }

/* Leave tables, generated UI, analysis controls and code on their own fonts.
   Both history and streaming produce these same Markdown block roots. */
.message.role-assistant :is(.message-text, .think-final) > :is(p:not(.analysis-unavailable), ul, ol, blockquote) {
  font: 400 var(--text-assistant)/var(--leading-prose) var(--font-prose);
  font-optical-sizing: auto;
  letter-spacing: normal;
  max-inline-size: var(--prose-measure);
  text-align: start;
  overflow-wrap: anywhere;
}
.message-list { padding-inline: var(--conversation-gutter); }
@media (min-width: 769px) {
  .chat-composer { padding-inline: var(--conversation-gutter); }
}
.message.role-assistant :is(.message-text, .think-final) > p:not(.analysis-unavailable) { margin-block: 0 var(--prose-paragraph-gap); }
.message.role-assistant :is(.message-text, .think-final) > p:last-child { margin-block-end: 0; }
.message.role-assistant :is(.message-text, .think-final) > :is(ul, ol) { margin-block: .4em 1em; padding-inline-start: 1.4em; }
.message.role-assistant :is(.message-text, .think-final) > :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--font-ui);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -.02em;
}
.message.role-assistant :is(.message-text, .think-final) > h1 { font-size: var(--text-heading-1); }
.message.role-assistant :is(.message-text, .think-final) > h2 { font-size: var(--text-heading-2); }
.message.role-assistant :is(.message-text, .think-final) > h3 { font-size: var(--text-heading-3); }
.message.role-assistant :is(.message-text, .think-final) > :is(h4, h5, h6) { font-size: var(--text-heading-small); }
.message.role-assistant :is(.markdown-table, .generative-ui, .web-link, .think-block, .analysis-unavailable, button, input, select, textarea) { font-family: var(--font-ui); }
.message :is(pre, code) { font-family: var(--font-mono); }
.message.role-user,
html[data-platform] .message.role-user { font: 400 var(--text-user)/1.6 var(--font-ui); letter-spacing: normal; }
.chat-composer textarea, .agent-composer textarea,
html[data-platform] :is(.chat-composer, .agent-composer) textarea { font: 400 var(--text-composer)/1.5 var(--font-ui); }

.disclaimer, #sidebar .sidebar-heading, .home-service small,
.analysis-unavailable, .question-response-status, .conversation-load-status,
.think-block > summary, .execution-details > summary {
  font-family: var(--font-ui);
  font-size: var(--text-auxiliary);
  line-height: 1.45;
}
.disclaimer, #sidebar .sidebar-heading { opacity: 1; }
.chat-composer textarea::placeholder, .agent-composer textarea::placeholder { color: var(--slate); opacity: 1; }

@media (max-width: 768px) {
  :root { --text-navigation: 1.0625rem; --text-home-title: 1.8125rem; --conversation-gutter: 1rem; }
}
