.tsi-intern-hero.page-hero {
  background: var(--hero-gradient);
  color: var(--primary-foreground);
  padding: 48px 0 40px;
}

.tsi-intern-hero h1 { color: var(--primary-foreground) !important; max-width: none; }
.tsi-intern-hero .subtle { color: hsl(0 0% 100% / 0.9); max-width: 42rem; }

.tsi-intern-form { max-width: 900px; margin: 0 auto; }
.tsi-intern-form fieldset {
  border: 1px solid color-mix(in srgb, var(--tsi-primary) 12%, #ddd);
  border-radius: 14px;
  padding: 22px 24px 26px;
  margin: 0 0 24px;
  background: var(--tsi-white);
}

.tsi-intern-form legend {
  font-weight: 800;
  font-size: 1.05rem;
  color: var(--tsi-primary);
  padding: 0 8px;
}

.tsi-intern-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 20px;
}

.tsi-intern-grid .full { grid-column: 1 / -1; }

.tsi-intern-form label {
  display: block;
  font-weight: 700;
  font-size: 0.85rem;
  margin-bottom: 5px;
}

.tsi-intern-form input,
.tsi-intern-form select,
.tsi-intern-form textarea {
  width: 100%;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid #cbd5e1;
  font-size: 1rem;
  font-family: inherit;
}

.tsi-intern-form .req::after { content: " *"; color: #dc2626; }

.tsi-intern-phone { display: flex; gap: 8px; }
.tsi-intern-phone select { width: 110px; flex-shrink: 0; }
.tsi-intern-phone input { flex: 1; }

.tsi-intern-captcha {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

.tsi-intern-captcha code {
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: 0.2em;
  padding: 10px 18px;
  background: #f1f5f9;
  border-radius: 8px;
  border: 1px dashed #94a3b8;
}

.tsi-intern-mail-preview {
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 16px;
  background: #f8fafc;
  margin-bottom: 20px;
}

.tsi-intern-mail-preview h3 { margin: 0 0 8px; font-size: 1rem; }
.tsi-intern-sql {
  font-family: ui-monospace, Consolas, monospace;
  font-size: 0.8rem;
  white-space: pre-wrap;
  word-break: break-word;
  background: #0f172a;
  color: #e2e8f0;
  padding: 16px;
  border-radius: 10px;
  overflow-x: auto;
  max-height: 360px;
}

.tsi-intern-detail dt { font-weight: 700; margin-top: 12px; }
.tsi-intern-detail dd { margin: 4px 0 0; color: var(--tsi-text-light); }

@media (max-width: 768px) {
  .tsi-intern-grid { grid-template-columns: 1fr; }
}
