/* Responsive workspace dimensions. Route scoping preserves the landing canvas
   and the existing phone presentation. */
body[data-route="student"] .conversation-lane {
  container: student-conversation / inline-size;
}

/* Keep workspace tables broad without monitor-wide prose lines. */
body[data-route="student"] :is(.response-content, .response-summary, .assistant-structured, .bubble-text) :is(p, ul, ol, blockquote) {
  max-inline-size: 120ch;
}

/* A docked Sources panel can narrow a wide viewport's conversation column. */
@media (min-width: 721px) {
  @container student-conversation (max-width: 34rem) {
    body[data-route="student"] .chat-composer .composer-row {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: center;
      gap: 8px 12px;
    }
    body[data-route="student"] .chat-composer .composer-field {
      grid-column: 1 / -1;
      width: 100%;
    }
    body[data-route="student"] .chat-composer .composer-mode {
      grid-column: 1;
      grid-row: 2;
      justify-self: start;
    }
    body[data-route="student"] .chat-composer .composer-send {
      grid-column: 2;
      grid-row: 2;
      justify-self: end;
      width: 44px;
      min-width: 44px;
      height: 44px;
      min-height: 44px;
    }
  }
}

/* Bound ultrawide form fields; long Faculty pages still scroll normally. */
body[data-route="faculty"] .faculty-shell {
  width: min(100%, 120rem);
  margin-inline: auto;
}
body[data-route="faculty"] :is(.faculty-content, .faculty-preparation, .pipeline-active, .pipeline-layout) {
  min-width: 0;
}
