/* Touch layouts include iPad with a connected keyboard or trackpad. */
@media (min-width: 744px) and (max-width: 1366px) and (any-pointer: coarse) {
  .site-header { height: 88px; padding-inline: 28px; }
  .brand { min-height: 44px; font-size: 23px; }
  .brand img { width: 40px; height: 40px; }
  .shell { padding: 30px 28px max(24px, env(safe-area-inset-bottom)); }
  .intro h1 { font-size: 29px; }
  .intro .sun { display: grid; width: 44px; height: 44px; }
  .workspace { grid-template-columns: 340px minmax(0, 1fr); gap: 24px; }
  .calendar { padding: 20px 15px 18px; }
  .calendar-top { margin-bottom: 15px; }
  .calendar-top h2 { font-size: 18px; }
  .weekdays { font-size: 13px; }
  .days { row-gap: 6px; }
  .day { width: 44px; height: 44px; font-size: 14px; }
  .day i.day-count { font-size: 9px; line-height: 11px; bottom: 1px; color: #738364; }
  .day.selected i.day-count { color: #e2edd2; }
  .calendar-bottom { font-size: 12px; padding-top: 12px; }
  button { min-height: 44px; }
  .icon-button { width: 44px; height: 44px; }
  .icon-button svg { width: 20px; height: 20px; }
  .today-link { font-size: 13px; padding-inline: 8px; }
  .view-switch a { min-height: 44px; font-size: 14px; align-items: center; }
  .primary, .secondary, .ghost, .danger { min-height: 44px; font-size: 14px; }
  .filter { min-height: 44px; font-size: 13px; padding-inline: 12px; }
  .list-tabs { gap: 4px; }
  .assignment-card { padding: 20px; gap: 14px; }
  .subject-tag { font-size: 12px; letter-spacing: .5px; }
  .card-content h3 { font-size: 18px; }
  .card-content p { font-size: 14px; }
  .card-meta { font-size: 12px; gap: 12px; }
  .card-action, .status { font-size: 12px; }
  .card-top { align-items: flex-start; }
  .day-heading h2 { font-size: 21px; }
  .progress-banner { padding: 24px; }
  .progress-banner h2 { font-size: 19px; }
  .progress-banner p { font-size: 14px; }
  .banner-art { width: 150px; }
  .intro p, .day-heading p { font-size: 14px; }
  .side-note p, .fine, .footer { font-size: 12px; }
  .dialog-head { padding: 24px 28px 18px; }
  .dialog-head h2 { font-size: 22px; }
  dialog { width: min(820px, calc(100% - 64px)); max-height: calc(100dvh - 48px); }
  .dialog-body { padding: 24px 28px; }
  .dialog-footer { padding-bottom: max(18px, env(safe-area-inset-bottom)); }
  .field, .checkbox, .instructions, .question label, .question .prompt { font-size: 15px; }
  .field small, .question-answer { font-size: 13px; }
  .generator { font-size: 13px; }
  .generator select { font-size: 16px; }
  input, textarea, select { font-size: 16px; min-height: 46px; }
  .question-line label, .question-line .prompt { min-width: 0; overflow-wrap: anywhere; }
  .question input { width: 150px; flex: 0 0 150px; }
  .photo img { height: 160px; }
  .photo button { width: 44px; height: 44px; }
  .photo button svg { width: 18px; height: 18px; }
  .upload-box { padding: 20px; font-size: 14px; }
  .upload-box input { font-size: 14px; }
  .document-preview { height: min(46dvh, 480px); }
}

@media (min-width: 744px) and (max-width: 1366px) and (min-height: 650px) and (any-pointer: coarse) {
  .workspace > aside { position: sticky; top: 20px; }
}

/* Compact Split View uses the mobile layout with larger touch targets. */
@media (min-width: 375px) and (max-width: 743px) and (any-pointer: coarse) {
  .calendar { padding-inline: 12px; }
  .day { width: 44px; height: 44px; }
  .icon-button { width: 44px; height: 44px; }
  .filter, .today-link, .primary, .secondary, .ghost, .danger { min-height: 44px; }
  input, textarea, select { font-size: 16px; }
}
