/* REPI – Praktikumsverwaltung.
   Nur das, was die geteilten Bausteine (list/button/filter/form/nav) nicht
   schon mitbringen. Farben kommen aus den ars-Variablen, damit Hell- und
   Dunkelmodus ohne zweiten Regelsatz stimmen. */

.phrepi {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 1rem 3rem;
}

.phrepi__kopf {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem 1.2rem;
  align-items: center;
  justify-content: space-between;
  margin: 1.2rem 0 1rem;
}

.phrepi__titel {
  margin: 0;
  font-size: clamp(1.4rem, 1.1rem + 1.2vw, 2rem);
}

.phrepi__untertitel {
  margin: 1.6rem 0 .6rem;
  font-size: 1.05rem;
}

.phrepi__intro,
.phrepi__hinweis {
  margin: 0 0 1rem;
  padding: .7rem .9rem;
  border-radius: .55rem;
  background: color-mix(in srgb, var(--ars-bordeaux, #7b1f2b) 8%, transparent);
  line-height: 1.5;
}

.phrepi__hinweis {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  align-items: center;
}

.phrepi__inline { display: inline; }

.phrepi__zahlen {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin: .8rem 0;
}

.phrepi__export,
.phrepi__aktionen,
.phrepi__kopfaktionen,
.phrepi__schalter {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  align-items: center;
}

.phrepi__export { margin: 0 0 1rem; }
.phrepi__aktionen { margin-top: 1rem; }
.phrepi__schalter { margin: .6rem 0 1rem; }

.phrepi__klein {
  font-size: .85em;
  opacity: .8;
}

/* Zweispaltiges Raster für die Formulare; auf schmalen Geräten einspaltig. */
.phrepi__raster {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
  gap: .8rem 1rem;
}

.phrepi__raster label,
.phrepi__formular > label {
  display: flex;
  flex-direction: column;
  gap: .25rem;
  font-weight: 600;
}

.phrepi__raster input,
.phrepi__raster select,
.phrepi__formular textarea,
.phrepi__formular > label input {
  font-weight: 400;
}

.phrepi__formular {
  margin-bottom: 1.5rem;
}

/* Die Unterlagen-Häkchen in der Liste: fünf kleine Schalter statt fünf Spalten. */
.phrepi__haken {
  display: inline;
}

.phrepi__haken-knopf {
  width: 1.9rem;
  height: 1.9rem;
  margin: 0 .15rem .15rem 0;
  padding: 0;
  border: 1px solid color-mix(in srgb, currentColor 35%, transparent);
  border-radius: .35rem;
  background: transparent;
  color: inherit;
  font-size: .8rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}

.phrepi__haken-knopf:hover,
.phrepi__haken-knopf:focus-visible {
  border-color: var(--ars-bordeaux, #7b1f2b);
}

.phrepi__haken-knopf.is-an {
  background: var(--ars-gruen, #2e7d32);
  border-color: var(--ars-gruen, #2e7d32);
  color: #fff;
}

.phrepi__unterlagen {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem 1rem;
  margin: .8rem 0;
}

/* Die aufgeklappte Zeile der Praktikumsliste.
   WICHTIG: list.css setzt `.phx-list tr { display: table-row }`, und das
   schlaegt das eingebaute display:none des hidden-Attributs. Ohne diese
   Regel steht jede Detailzeile dauerhaft offen (im Browser nachgewiesen). */
.phrepi__tabelle tr[hidden] { display: none; }

/* Die aufgeklappte Zeile der Praktikumsliste. */
.phx-list__detail:not([hidden]) > td {
  padding: .9rem;
  background: color-mix(in srgb, currentColor 4%, transparent);
}

.phrepi__tabelle .phx-list__aufklappen {
  display: inline-flex;
  gap: .45rem;
  align-items: center;
  background: none;
  border: 0;
  padding: 0;
  color: inherit;
  font: inherit;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}

.phrepi__tabelle .phx-list__aufklappen[aria-expanded="true"] .fa-chevron-right {
  transform: rotate(90deg);
}

.phrepi__tabelle .phx-list__aufklappen .fa-chevron-right {
  transition: transform .15s ease;
  font-size: .75em;
  opacity: .7;
}

.phrepi__abschluss {
  margin-top: 2rem;
  padding-top: 1rem;
  border-top: 1px solid color-mix(in srgb, currentColor 15%, transparent);
}

/* ---------- Stufe 2: Börse, Betriebslink, Elternbereich ---------- */

.phrepi__karten {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr));
  gap: 1rem;
  margin: 1rem 0 0;
  padding: 0;
  list-style: none;
}

.phrepi__karte {
  padding: .9rem 1rem;
  border: 1px solid color-mix(in srgb, currentColor 18%, transparent);
  border-radius: .6rem;
  background: color-mix(in srgb, currentColor 3%, transparent);
}

.phrepi__karte--breit {
  margin-bottom: 1.2rem;
}

.phrepi__kartentitel {
  margin: 0 0 .3rem;
  font-size: 1.05rem;
}

.phrepi__kartenzeile {
  margin: .15rem 0;
}

.phrepi__kartenmarken {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
  margin: .6rem 0 0;
}

/* Zwei Spalten für die Angaben im Elternbereich. */
.phrepi__daten {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: .25rem .8rem;
  margin: .6rem 0 1rem;
}

.phrepi__daten dt { font-weight: 600; }
.phrepi__daten dd { margin: 0; }

/* Der Rückmeldebogen: ein Kasten je Merkmal, Aussagen untereinander. */
.phrepi__merkmal,
.phrepi__gruppe {
  margin: 0 0 1rem;
  padding: .7rem .9rem;
  border: 1px solid color-mix(in srgb, currentColor 18%, transparent);
  border-radius: .5rem;
}

.phrepi__merkmal legend,
.phrepi__gruppe legend {
  padding: 0 .35rem;
  font-weight: 700;
}

.phrepi__merkmal .phx-form__check,
.phrepi__gruppe .phx-form__check {
  display: flex;
  gap: .45rem;
  align-items: flex-start;
  margin: .2rem 0;
  line-height: 1.4;
}

.phrepi__nebenfeld {
  display: flex;
  gap: .5rem;
  align-items: center;
  margin: .5rem 0 0;
  font-weight: 600;
}

.phrepi__nebenfeld input {
  flex: 1 1 12rem;
  font-weight: 400;
}

.phrepi__entwicklung {
  display: flex;
  gap: .6rem;
  align-items: center;
  margin: .6rem 0 0;
  padding-top: .5rem;
  border-top: 1px dashed color-mix(in srgb, currentColor 20%, transparent);
}

.phrepi__entwicklung-wahl {
  margin: 0;
}

.phrepi__entwicklung-wahl span {
  font-weight: 700;
  font-size: 1.05rem;
}

.phrepi__hinweis--block {
  display: block;
}

.phrepi__hinweis--block p {
  margin: 0 0 .5rem;
}

.phrepi__aktionen--zusatz {
  margin-top: .6rem;
  padding-top: .6rem;
  border-top: 1px dashed color-mix(in srgb, currentColor 20%, transparent);
}

/* Auf schmalen Geräten füllt der Bogen die Breite. */
@media (max-width: 640px) {
  .phrepi__daten { grid-template-columns: 1fr; }
  .phrepi__daten dt { margin-top: .4rem; }
}
