.specialist-shell {
  width: min(1320px, calc(100% - 48px));
  margin: 42px auto 70px;
}

#specialist-error[hidden],
#specialist-program-message[hidden],
[data-specialist-view][hidden] {
  display: none;
}

.view-heading > div > p:last-child {
  max-width: 820px;
  color: #4f625c;
  line-height: 1.55;
}

.specialist-tabs {
  display: flex;
  gap: 8px;
  margin: 24px 0;
  overflow-x: auto;
}

.specialist-tab {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 11px 16px;
  background: var(--card);
  color: var(--ink);
  font: inherit;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
}

.specialist-tab.active {
  border-color: var(--ink);
  background: var(--ink);
  color: white;
}

.specialist-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 16px;
}

.specialist-section-head h2 {
  margin: 0;
}

.specialist-section-head p {
  max-width: 780px;
  margin: 7px 0 0;
  color: #4f625c;
}

.program-review-list {
  display: grid;
  gap: 16px;
}

.program-review-card {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 20px;
  background: var(--card);
}

.program-review-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.program-review-heading h3 {
  margin: 0 0 6px;
}

.program-review-heading p {
  margin: 0;
  color: #4f625c;
}

.program-review-meta {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 16px 0;
}

.program-review-meta div {
  border-radius: 12px;
  background: var(--mint);
  padding: 12px;
}

.program-review-meta span,
.program-review-meta strong {
  display: block;
}

.program-review-meta span {
  font-size: 12px;
  color: #4f625c;
}

.program-review-meta strong {
  margin-top: 4px;
  overflow-wrap: anywhere;
}

.program-preview {
  margin: 14px 0;
}

.program-preview pre {
  max-height: 340px;
  overflow: auto;
  border-radius: 12px;
  padding: 14px;
  background: var(--ink);
  color: white;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.program-review-form {
  display: grid;
  gap: 10px;
}

.program-review-form textarea {
  width: 100%;
  min-height: 84px;
  resize: vertical;
}

.program-review-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.program-review-actions .button.danger {
  border: 1px solid #d49a9a;
  background: #fbe7e7;
  color: #8a2f27;
}

.program-review-block {
  margin: 0;
  color: #8a2f27;
  font-weight: 700;
}

.specialist-layout {
  display: grid;
  grid-template-columns: 360px minmax(0, 1fr);
  gap: 16px;
}

.client-list {
  display: grid;
  gap: 10px;
}

.client-card {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 15px;
  padding: 16px;
  background: #fbfcfb;
  color: var(--ink);
  text-align: left;
  font: inherit;
  cursor: pointer;
}

.client-card:hover,
.client-card.active {
  border-color: #5a8f82;
  background: #edf6f2;
}

.client-card strong,
.client-card small {
  display: block;
}

.client-card small {
  margin-top: 5px;
  color: var(--muted);
}

.client-detail h2 {
  font-size: 30px;
}

.client-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin: 18px 0;
}

.client-summary-grid article {
  background: var(--ink);
  color: white;
  border-radius: 14px;
  padding: 16px;
}

.client-summary-grid span,
.client-summary-grid strong {
  display: block;
}

.client-summary-grid span {
  color: #bcd1ca;
  font-size: 12px;
}

.client-summary-grid strong {
  font-size: 25px;
  margin-top: 6px;
}

.specialist-charts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.specialist-chart {
  border: 1px solid var(--line);
  border-radius: 15px;
  padding: 16px;
  min-width: 0;
}

.specialist-chart canvas {
  display: block;
  width: 100%;
  height: 200px;
}

.scope-note {
  background: var(--mint);
  border-radius: 12px;
  padding: 12px;
  margin: 12px 0;
  color: #315149;
}

@media(max-width: 900px) {
  .specialist-shell {
    width: min(100% - 28px, 760px);
    margin-top: 24px;
  }

  .specialist-layout,
  .specialist-charts {
    grid-template-columns: 1fr;
  }

  .program-review-meta,
  .client-summary-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media(max-width: 540px) {
  .specialist-shell {
    width: min(100% - 22px, 760px);
  }

  .specialist-section-head,
  .program-review-heading {
    display: grid;
  }

  .program-review-meta,
  .client-summary-grid {
    grid-template-columns: 1fr;
  }

  .program-review-actions .button {
    width: 100%;
  }

  .specialist-shell .view-heading h1 {
    font-size: 38px;
  }
}
