.mentor-page {
  height: calc(100vh - var(--shell-topbar-height) - var(--shell-summary-height) - var(--shell-status-height));
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  overflow: hidden;
}

.mentor-page-header {
  min-height: var(--s-44);
}

.mentor-mobile-directory {
  display: none;
}

.mentor-page > .membership-lock {
  grid-row: 2;
}

.mentor-page > .workspace-state,
.mentor-page > .empty-state,
.mentor-workspace {
  grid-row: 3;
}

.mentor-workspace {
  min-height: var(--s-400);
  display: grid;
  grid-template-columns: var(--s-320) minmax(0, 1fr);
  gap: var(--layout-gap);
}

.mentor-library,
.mentor-chat {
  min-height: 0;
  overflow: hidden;
}

.mentor-library {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
}

.mentor-library-header {
  display: grid;
  gap: var(--s-8);
  padding: var(--s-12);
  border-bottom: var(--s-1) solid var(--color-divider);
}

.mentor-library-header > div:first-child,
.mentor-chat-header,
.mentor-identity,
.mentor-item-main,
.mentor-item-actions,
.mentor-composer-actions,
.mentor-stream-error {
  display: flex;
  align-items: center;
  gap: var(--s-8);
}

.mentor-library-header h2,
.mentor-chat-header strong {
  font-size: var(--font-14);
}

.mentor-library-header > div:first-child .muted {
  margin-left: auto;
  font-size: var(--font-11);
}

.mentor-search {
  min-height: var(--s-32);
}

.mentor-grade-filter {
  width: 100%;
}

.mentor-grade-filter button {
  flex: 1;
}

.mentor-list,
.mentor-messages {
  overflow-y: auto;
}

.mentor-list {
  padding: var(--s-6);
}

.mentor-item {
  position: relative;
  display: grid;
  gap: var(--s-4);
  padding: var(--s-10);
  border: var(--s-1) solid var(--c-transparent);
  border-radius: var(--control-radius);
  cursor: pointer;
  transition: color var(--duration-fast) var(--ease-standard),
    background var(--duration-fast) var(--ease-standard),
    border-color var(--duration-fast) var(--ease-standard);
}

.mentor-item:hover {
  background: var(--color-surface-muted);
}

.mentor-item.active {
  border-color: var(--color-primary-border);
  background: var(--color-primary-soft);
}

.mentor-item-main strong {
  font-size: var(--font-13);
}

.mentor-item p {
  overflow: hidden;
  color: var(--color-text-secondary);
  font-size: var(--font-11-5);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mentor-item-actions {
  position: absolute;
  top: var(--s-6);
  right: var(--s-6);
  opacity: 0;
  transition: opacity var(--duration-fast) var(--ease-standard);
}

.mentor-item:hover .mentor-item-actions,
.mentor-item:focus-within .mentor-item-actions {
  opacity: 1;
}

.mentor-item-actions .icon-button {
  width: var(--s-26);
  height: var(--s-26);
  min-height: var(--s-26);
  background: var(--color-surface-raised);
}

.mentor-grade-a {
  color: var(--color-up);
  border-color: var(--color-up);
  background: var(--color-up-soft);
}

.mentor-grade-b {
  color: var(--color-primary);
  border-color: var(--color-primary-border);
  background: var(--color-primary-soft);
}

.mentor-grade-c {
  color: var(--color-warning);
  border-color: var(--color-warning);
  background: var(--color-warning-soft);
}

.mentor-list-empty,
.mentor-chat-empty {
  padding: var(--s-24);
  color: var(--color-text-secondary);
  text-align: center;
}

.mentor-chat {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.mentor-chat-header {
  min-height: var(--s-44);
  padding: var(--s-8) var(--s-14);
  border-bottom: var(--s-1) solid var(--color-divider);
}

.mentor-identity {
  min-width: 0;
  flex: 1;
}

.mentor-identity > span:last-child {
  overflow: hidden;
  color: var(--color-text-secondary);
  font-size: var(--font-12);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mentor-messages {
  display: grid;
  align-content: start;
  gap: var(--s-12);
  padding: var(--s-16);
}

.mentor-welcome {
  max-width: var(--s-dialog-wide);
  display: grid;
  gap: var(--s-10);
  margin: auto;
  padding: var(--s-24) 0;
  color: var(--color-text-secondary);
  text-align: center;
}

.mentor-welcome strong {
  color: var(--color-text);
  font-size: var(--font-15);
}

.mentor-prompts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--s-8);
}

.mentor-prompts .btn {
  justify-content: flex-start;
  color: var(--color-text-secondary);
  text-align: left;
}

.mentor-message {
  max-width: min(var(--s-dialog-wide), 88%);
  display: grid;
  gap: var(--s-4);
}

.mentor-message-user {
  justify-self: end;
  padding: var(--s-9) var(--s-12);
  border-radius: var(--control-radius);
  background: var(--color-primary-soft);
}

.mentor-role {
  color: var(--color-text-faint);
  font-size: var(--font-11);
}

.mentor-message small {
  color: var(--color-warning);
  font-size: var(--font-11);
}

.mentor-answer {
  display: grid;
  gap: var(--s-8);
  color: var(--color-text);
  font-size: var(--font-13);
  line-height: var(--s-20);
  white-space: pre-wrap;
}

.mentor-composer {
  display: grid;
  gap: var(--s-6);
  padding: var(--s-10) var(--s-12);
  border-top: var(--s-1) solid var(--color-divider);
  background: var(--color-surface);
}

.mentor-composer .textarea {
  min-height: var(--s-64);
  max-height: var(--s-200);
}

.mentor-composer-actions {
  justify-content: flex-end;
}

.mentor-composer-actions .muted {
  margin-right: auto;
  font-size: var(--font-11);
}

.mentor-stream-error {
  justify-content: space-between;
  color: var(--color-warning);
  font-size: var(--font-12);
}
