@import url("/client/theme-tokens.css");

* {
  box-sizing: border-box;
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font: var(--client-font-1);
}
h1,
h2,
h3,
p {
  margin: 0;
}
h1 {
  font-family: var(--font-display);
  font-size: 56px;
  font-weight: 300;
  line-height: 1.15;
  letter-spacing: -0.025em;
}
h2 {
  font-family: var(--font-display);
  font-size: 28px;
  line-height: 1.3;
  font-weight: 300;
}
h3 {
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 400;
}
a {
  color: inherit;
  text-decoration: none;
}
button,
input,
select,
textarea {
  font: var(--client-font-2);
  color: var(--ink);
}
button {
  min-height: 44px;
  padding: var(--client-space-3);
  background: var(--bg);
  border: var(--client-edge-4);
  border-radius: var(--client-radius-5);
  cursor: pointer;
}
button:hover:not(:disabled) {
  background: var(--panel);
}
button:disabled {
  opacity: 0.45;
  cursor: default;
}
.primary {
  background: var(--primary);
  color: var(--on-primary);
  border-color: var(--primary);
}
.primary:hover:not(:disabled) {
  opacity: 0.85;
  background: var(--primary);
}
input,
select,
textarea {
  min-height: 48px;
  width: 100%;
  border: var(--client-edge-4);
  border-radius: var(--client-radius-6);
  background: var(--panel);
  padding: var(--client-space-7);
}
input,
textarea {
  font-size: 18px;
}
label {
  display: block;
  font-size: 15px;
  font-weight: 400;
  color: var(--soft);
}
.hint,
small {
  font-size: 15px;
  color: var(--soft);
}
.lead {
  font-size: 20px;
  line-height: 32px;
  color: var(--soft);
}
:focus-visible {
  outline: var(--client-edge-8);
  outline-offset: var(--client-edge-9);
}
[hidden] {
  display: none !important;
}
.wordmark {
  height: 34px;
  width: auto;
  max-width: 150px;
  object-fit: contain;
  object-position: left;
}
.figure {
  width: 160px;
  height: 242px;
  align-self: center;
}
.brand-panel {
  background: var(--client-color-10);
  color: var(--client-color-11);
  padding: var(--client-space-12);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--client-space-13);
}
.brand-panel .figure {
  filter: brightness(0) invert(1);
}
.brand-panel p:last-child {
  color: var(--client-color-14);
}
.brand-title {
  font-size: 40px;
  line-height: 48px;
  letter-spacing: -0.02em;
}
.login {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 100svh;
}
.login-main {
  display: grid;
  place-items: center;
  padding: var(--client-space-12);
}
.login-form {
  width: 100%;
  max-width: 400px;
}
.login-form h1 {
  font-family: var(--font-display);
  font-size: 40px;
  line-height: 48px;
}
.login-form .lead {
  font-size: 18px;
  line-height: 28px;
  margin-top: var(--client-space-15);
}
.login form {
  display: grid;
  gap: var(--client-space-15);
  margin-top: var(--client-space-16);
}
.login form .primary {
  margin-top: var(--client-space-17);
}
.login form .hint {
  margin-top: var(--client-space-17);
}
.login [role="status"] {
  font-size: 15px;
  margin-top: var(--client-space-17);
}
.theme-onboarding {
  min-height: 100svh;
  padding: var(--client-space-18);
}
.theme-onboarding main {
  max-width: 1000px;
  margin: var(--client-space-19);
}
.theme-onboarding h1 {
  margin-top: var(--client-space-15);
}
.theme-onboarding .lead {
  margin-top: var(--client-space-15);
}
.theme-onboarding fieldset {
  border: 0;
  padding: 0;
  margin: var(--client-space-20);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--client-space-16);
}
.theme-card {
  display: flex;
  flex-direction: column;
  gap: var(--client-space-17);
  padding: var(--client-space-17);
  border: var(--client-edge-4);
  border-radius: var(--client-radius-6);
  cursor: pointer;
  color: var(--ink);
}
.theme-card:has(:checked) {
  outline: var(--client-edge-21);
  outline-offset: var(--client-edge-22);
}
.theme-card > span:last-of-type {
  display: flex;
  align-items: center;
  gap: var(--client-space-23);
  font-size: 18px;
  min-height: 44px;
}
.theme-card input {
  width: 20px;
  min-height: 20px;
  height: 20px;
  margin: 0;
  accent-color: var(--ink);
}
.theme-preview {
  height: 180px;
  display: flex;
  border: var(--client-color-24);
  background: var(--client-color-11);
  color: var(--client-color-10);
  border-radius: var(--client-radius-6);
  overflow: hidden;
}
.theme-preview span:first-child {
  width: 30%;
  background: var(--client-color-25);
  border-right: var(--client-color-24);
}
.theme-preview span:last-child {
  margin: var(--client-space-26);
  width: 60%;
  height: 12px;
  background: currentColor;
  box-shadow: var(--client-shadow-27);
}
.dark-preview {
  background: var(--client-color-10);
  color: var(--client-color-11);
  border-color: var(--client-color-28);
}
.dark-preview span:first-child {
  background: var(--client-color-29);
  border-color: var(--client-color-28);
}
.system-preview {
  background: var(--client-color-30);
}
.theme-onboarding footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--client-space-17);
  border-top: var(--client-edge-4);
  padding-top: var(--client-space-16);
}
.workspace {
  min-height: 100svh;
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
}
aside {
  min-height: 100svh;
  position: sticky;
  top: 0;
  height: 100svh;
  background: var(--panel);
  border-right: var(--client-edge-4);
  padding: var(--client-space-31);
  display: flex;
  flex-direction: column;
  gap: var(--client-space-13);
}
nav {
  display: flex;
  flex-direction: column;
  gap: var(--client-space-32);
}
nav a {
  display: flex;
  align-items: center;
  gap: var(--client-space-23);
  min-height: 44px;
  padding: var(--client-space-33);
  font-size: 16px;
}
nav a[aria-current="page"] {
  border-left: var(--client-edge-21);
  margin-left: var(--client-space-34);
  padding-left: var(--client-space-35);
  font-weight: 400;
}
nav svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  fill: none;
}
.sidebar-bottom {
  margin-top: auto;
  border-top: var(--client-edge-4);
  padding-top: var(--client-space-17);
  font-size: 15px;
}
.account {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--client-space-15);
  margin-top: var(--client-space-17);
  flex-wrap: wrap;
}
.account button {
  border: 0;
  background: transparent;
  padding: 0;
}
.account-person {
  display: inline-flex;
  align-items: center;
  gap: var(--client-space-15);
  min-height: 44px;
  overflow-wrap: anywhere;
}
.avatar {
  width: 28px;
  height: 28px;
  flex: none;
  border-radius: var(--client-radius-36);
  background: var(--ink);
  color: var(--bg);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 400;
}
.workspace-main {
  min-width: 0;
  padding: var(--client-space-37);
  display: flex;
  flex-direction: column;
  gap: var(--client-space-38);
}
.toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--client-space-17);
  flex-wrap: wrap;
}
.model-field {
  display: flex;
  flex-direction: column;
  gap: var(--client-space-23);
}
.model-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--client-space-17);
  font-size: 15px;
  font-weight: 400;
  color: var(--soft);
}
.model-heading button {
  padding: var(--client-space-39);
}
.model-picker {
  position: relative;
  width: min(100%, 480px);
}
.model-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--client-space-23);
  width: 100%;
  padding: var(--client-space-40);
  text-align: left;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.model-trigger::after {
  content: "";
  flex: none;
  width: 8px;
  height: 8px;
  margin-top: var(--client-space-41);
  border-right: var(--client-edge-42);
  border-bottom: var(--client-edge-42);
  transform: rotate(45deg);
}
.model-trigger[aria-expanded="true"]::after {
  margin-top: var(--client-space-32);
  transform: rotate(225deg);
}
.model-options {
  position: absolute;
  z-index: 5;
  top: var(--client-model-options-top);
  left: 0;
  right: 0;
  max-height: min(60vh, 420px);
  margin: 0;
  padding: var(--client-space-43);
  overflow-y: auto;
  list-style: none;
  background: var(--bg);
  border: var(--client-edge-4);
  border-radius: var(--client-radius-44);
  box-shadow: var(--client-shadow-45);
}
.model-options:focus-visible {
  outline-offset: var(--client-edge-46);
}
.model-row {
  display: flex;
  align-items: flex-start;
  gap: var(--client-space-23);
  min-height: 44px;
  padding: var(--client-space-47);
  border-radius: var(--client-radius-48);
  cursor: pointer;
}
.model-row:hover,
.model-row-active {
  background: var(--panel);
}
.model-options:focus-visible .model-row-active {
  box-shadow: var(--client-shadow-49);
}
.model-row[aria-disabled="true"] {
  cursor: not-allowed;
}
.model-row-text {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
}
.model-row-name {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
  overflow-wrap: anywhere;
}
.model-row-description,
.model-row-readiness {
  font-size: 13px;
  line-height: 1.4;
  color: var(--soft);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.model-row-readiness {
  white-space: normal;
  color: var(--ink);
}
.model-row[aria-disabled="true"] .model-row-name,
.model-row[aria-disabled="true"] .model-row-readiness {
  color: var(--soft);
}
.model-check {
  flex: none;
  width: 16px;
  height: 16px;
  margin-top: var(--client-space-32);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.answered-by {
  margin-top: var(--client-space-23);
  font-size: 13px;
  font-weight: 400;
  color: var(--ice-ink);
}
.page-header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--client-space-15);
  border-bottom: var(--client-edge-4);
  padding-bottom: var(--client-space-38);
}
.page-header .lead {
  margin-top: 0;
}
.serving-status {
  display: inline-flex;
  align-items: center;
  gap: var(--client-space-15);
  font-size: 15px;
  font-weight: 400;
  color: var(--ice-ink);
}
#status {
  font-size: 15px;
  color: var(--soft);
}
#status:empty {
  display: none;
}
.view {
  flex: 1;
  min-height: 0;
}
.playground {
  display: flex;
  flex-direction: column;
  gap: var(--client-space-50);
}
.conversation {
  flex: 1;
  max-width: 880px;
  width: 100%;
  min-height: 200px;
}
#empty {
  padding: var(--client-space-20);
  color: var(--soft);
}
#empty p {
  font-size: 18px;
  margin-top: var(--client-space-23);
}
#messages {
  display: flex;
  flex-direction: column;
  gap: var(--client-space-50);
  width: 100%;
  overflow-wrap: anywhere;
}
.message {
  font-size: 18px;
  line-height: 30px;
  white-space: pre-wrap;
}
.message h3 {
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 400;
  color: var(--soft);
  margin-bottom: var(--client-space-23);
}
.message[data-role="user"] {
  align-self: flex-end;
  max-width: 560px;
  background: var(--panel);
  border-radius: var(--client-radius-6);
  padding: var(--client-space-51);
}
.message[data-role="user"] h3 {
  display: none;
}
.message[data-role="assistant"] {
  padding-left: var(--client-space-52);
  position: relative;
}
.message[data-role="assistant"]:before {
  content: "";
  position: absolute;
  left: 0;
  top: var(--client-message-marker-top);
  width: 16px;
  height: 24px;
  background: var(--ink);
  mask: url("/client/assets/figure.svg") center / contain no-repeat;
}
#composer {
  max-width: 880px;
  width: 100%;
  border-top: var(--client-edge-4);
  padding-top: var(--client-space-16);
}
.composer-controls {
  display: flex;
  gap: var(--client-space-23);
  align-items: flex-end;
  flex-wrap: wrap;
  margin-top: var(--client-space-15);
}
.composer-controls textarea {
  flex: 1 1 320px;
  width: 100%;
  min-height: 96px;
  resize: vertical;
}
.composer-controls > div {
  display: flex;
  gap: var(--client-space-17);
  align-items: center;
}
#stop {
  border: 0;
  background: transparent;
  padding: var(--client-space-53);
}
#composer .hint {
  margin-top: var(--client-space-15);
}
.usage {
  display: flex;
  flex-direction: column;
  gap: var(--client-space-38);
}
.section-heading {
  display: flex;
  gap: var(--client-space-16);
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}
.activity {
  border-top: var(--client-edge-4);
  padding-top: var(--client-space-17);
  font-size: 15px;
  color: var(--soft);
}
.activity dl {
  display: flex;
  gap: var(--client-space-16);
  flex-wrap: wrap;
  margin: var(--client-space-54);
}
.activity dl div {
  display: flex;
  gap: var(--client-space-15);
}
.activity dd {
  margin: 0;
  font-variant-numeric: tabular-nums;
}
.profile {
  display: flex;
  flex-direction: column;
  gap: var(--client-space-16);
  max-width: 912px;
}
.profile-person {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--client-space-16);
}
.profile-person > div {
  flex: 1;
}
.profile-person .avatar {
  width: 72px;
  height: 72px;
  font-size: 30px;
}
.profile h2 {
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 400;
  line-height: 32px;
}
.profile-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--client-space-16);
}
.profile-fields input {
  margin-top: var(--client-space-15);
}
.profile-section {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--client-space-17);
  border-top: var(--client-edge-4);
  padding-top: var(--client-space-16);
}
.profile-section > * {
  max-width: 100%;
}
.appearance {
  display: flex;
  width: 100%;
  max-width: 420px;
  gap: var(--client-space-32);
  border: var(--client-edge-4);
  border-radius: var(--client-radius-55);
  padding: var(--client-space-32);
  margin: 0;
}
.appearance label {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  min-width: 0;
  min-height: 44px;
  border-radius: var(--client-radius-5);
  color: var(--ink);
  cursor: pointer;
}
.appearance input {
  position: absolute;
  width: 1px;
  height: 1px;
  min-height: 0;
  padding: 0;
  opacity: 0;
}
.appearance label:has(:checked) {
  background: var(--ink);
  color: var(--bg);
}
.appearance label:has(:focus-visible) {
  outline: var(--client-edge-8);
  outline-offset: var(--client-edge-46);
}
.profile-rows {
  width: 100%;
  margin: 0;
  font-size: 16px;
}
.profile-rows div {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: var(--client-space-17);
  min-height: 48px;
  border-bottom: var(--client-edge-4);
}
.profile-rows dt {
  color: var(--soft);
}
.profile-rows dd {
  margin: 0;
  overflow-wrap: anywhere;
}
.danger {
  border-color: var(--client-color-56);
  color: var(--client-color-56);
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}

@media (max-width: 1000px) {
  .workspace {
    grid-template-columns: 220px minmax(0, 1fr);
  }
  .workspace-main {
    padding-inline: var(--client-space-16);
  }
  .theme-onboarding fieldset {
    gap: var(--client-space-17);
  }
  .theme-preview {
    height: 140px;
  }
}
@media (max-width: 700px) {
  h1 {
    font-size: 40px;
    line-height: 48px;
  }
  .login {
    grid-template-columns: 1fr;
  }
  .brand-panel {
    min-height: 280px;
    padding: var(--client-space-16);
    gap: var(--client-space-16);
  }
  .brand-panel .figure {
    width: 64px;
    height: 96px;
    position: absolute;
    right: var(--client-figure-right);
    top: var(--client-figure-top);
  }
  .brand-title {
    font-size: 32px;
    line-height: 40px;
  }
  .brand-panel > div {
    margin-top: var(--client-space-13);
  }
  .login-main {
    padding: var(--client-space-57);
  }
  .workspace {
    display: block;
  }
  aside {
    height: auto;
    min-height: 0;
    position: static;
    padding: var(--client-space-16);
    gap: var(--client-space-16);
    border-right: 0;
    border-bottom: var(--client-edge-4);
  }
  nav {
    flex-direction: column;
  }
  nav a {
    padding: var(--client-space-33);
    font-size: 16px;
  }
  nav a[aria-current="page"] {
    margin-left: var(--client-space-34);
    padding-left: var(--client-space-35);
    border-left: var(--client-edge-21);
  }
  .sidebar-bottom {
    margin: 0;
    padding: 0;
    border: 0;
  }
  .sidebar-bottom > p {
    display: none;
  }
  .account {
    margin-top: var(--client-space-15);
  }
  .workspace-main {
    padding: var(--client-space-16);
    gap: var(--client-space-16);
  }
  .toolbar {
    align-items: flex-start;
  }
  .model-picker {
    width: 100%;
  }
  .page-header {
    padding-bottom: var(--client-space-16);
  }
  .lead {
    font-size: 18px;
    line-height: 28px;
  }
  .conversation {
    min-height: 200px;
  }
  .message[data-role="user"] {
    max-width: 100%;
  }
  .composer-controls > div {
    margin-left: auto;
  }
  .profile-fields {
    grid-template-columns: 1fr;
  }
  .theme-onboarding main {
    margin-top: var(--client-space-50);
  }
  .theme-onboarding fieldset {
    grid-template-columns: 1fr;
  }
  .theme-preview {
    height: 160px;
  }
  .theme-onboarding footer {
    align-items: flex-start;
    flex-direction: column;
  }
  .theme-onboarding footer button {
    align-self: flex-end;
  }
}
@media (prefers-reduced-motion: reduce) {
  * {
    scroll-behavior: auto;
  }
}

.mobile-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
#menu-toggle {
  display: none;
}
.skip-link {
  position: fixed;
  top: var(--client-skip-offset);
  left: var(--client-skip-offset);
  z-index: 10;
  padding: var(--client-space-58);
  background: var(--bg);
  transform: var(--client-skip-transform);
}
.skip-link:focus {
  transform: none;
  min-width: 44px;
  min-height: 44px;
}
@media (max-width: 700px) {
  #menu-toggle {
    display: block;
  }
  aside:not([data-menu-open]) nav,
  aside:not([data-menu-open]) .sidebar-bottom {
    display: none;
  }
}

.training {
  display: grid;
  gap: var(--client-space-59);
  padding-bottom: var(--client-space-60);
}
.training-label {
  display: grid;
  gap: var(--client-space-61);
  max-width: 36rem;
}
.training select {
  max-width: 100%;
  padding: var(--client-space-62);
  font: inherit;
  color: inherit;
  background: var(--panel);
  border: var(--client-edge-4);
  border-radius: var(--client-radius-63);
}
.training-demo {
  padding: var(--client-space-64);
  border: var(--client-edge-65);
  border-radius: var(--client-radius-63);
}
.training-progress progress {
  width: 100%;
  max-width: 36rem;
  accent-color: currentColor;
}
.training-rounds {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
  gap: var(--client-space-66);
}
.training-card {
  min-width: 0;
  padding: var(--client-space-66);
  border: var(--client-edge-4);
  border-radius: var(--client-radius-67);
}
.training-card h3 {
  margin-top: 0;
}
.training-decisions {
  display: grid;
  gap: var(--client-space-66);
  margin: var(--client-space-68);
}
.training-card dt {
  margin-top: var(--client-space-66);
  font-weight: 500;
}
.training-card dd {
  margin: var(--client-space-69);
}
.training-content {
  margin: 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font: inherit;
  line-height: 1.55;
}
.training .section-heading {
  flex-wrap: wrap;
  align-items: start;
}
