/* Zielbereich unterhalb der Kompetenzkartei */

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.goals {
  margin-top: 1.4rem;
  padding: 1rem 1rem 1.1rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
}

.goals__title {
  margin: 0 0 0.7rem;
  font-size: 1.2rem;
}

.goals-results {
  display: grid;
  gap: 0.55rem;
  margin-bottom: 0.4rem;
}

.goals__hint,
.goals__empty,
.goals__notice,
.goals__status {
  margin: 0;
  color: var(--color-muted);
  font-size: 0.9rem;
}

.goals__status {
  margin: -0.35rem 0 0.7rem;
}

.goals__notice {
  padding: 0.55rem 0.7rem;
  border-left: 3px solid var(--color-accent);
  background: var(--color-surface-muted);
}

.goals-table-wrap {
  overflow-x: auto;
}

.goals-table {
  width: 100%;
  min-width: 36rem;
  border-collapse: collapse;
  table-layout: fixed;
}

.goals-table th,
.goals-table td {
  padding: 0.35rem 0.45rem;
  border-bottom: 1px solid var(--color-border-subtle);
  vertical-align: top;
  text-align: left;
}

.goals-table thead th {
  padding: 0.4rem 0.45rem;
  background: var(--color-surface-muted);
  color: var(--color-muted);
  font-size: 0.76rem;
  font-weight: 650;
}

.goals-table__nr {
  width: 3.4rem;
}

.goal-nr {
  display: flex;
  align-items: flex-start;
  gap: 0.15rem;
}

.goal-handle {
  margin: 0;
  padding: 0.05rem 0.15rem;
  border: 0;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--color-muted);
  font: inherit;
  font-size: 0.9rem;
  letter-spacing: -0.12em;
  line-height: 1.2;
  cursor: grab;
  user-select: none;
}

.goal-handle:hover,
.goals-table__row:hover .goal-handle {
  color: var(--color-text);
  background: var(--color-surface-muted);
}

.goal-handle:active {
  cursor: grabbing;
}

.goal-handle:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 1px;
}

.goal-number {
  color: var(--color-muted);
  font-variant-numeric: tabular-nums;
  font-weight: 650;
}

.goals-table__row:hover {
  background: var(--color-surface-muted);
}

.goals-table__row.is-dragging {
  background: var(--color-accent-soft);
}

.goal-area {
  font-weight: 700;
}

.goal-area--green {
  color: #3d6b45;
}

.goal-area--blue {
  color: #3d5678;
}

.goal-area--yellow {
  color: #7a6230;
}

.goal-area--rose {
  color: #7a3f4a;
}

.goal-area--violet {
  color: #624878;
}

.goal-area--teal {
  color: #2f6b64;
}

.goal-text {
  display: inline;
}

.goal-text,
.goal-measure-text {
  min-height: 1.25em;
  border-radius: var(--radius-sm);
}

.goals-table__row:hover .goal-text,
.goals-table__row:hover .goal-measure-text {
  box-shadow: inset 0 0 0 1px var(--color-border-subtle);
}

.goal-text:focus,
.goal-measure-text:focus {
  outline: 2px solid var(--color-focus);
  outline-offset: 1px;
  box-shadow: none;
  background: var(--color-surface);
}

.goal-measure-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.goal-measure {
  display: flex;
  align-items: flex-start;
  gap: 0.3rem;
  margin: 0 0 0.2rem;
}

.goal-measure-text {
  flex: 1;
  min-width: 0;
}

.goal-measure-text::before {
  content: '• ';
  color: var(--color-muted);
}

.goal-measure-remove,
.goal-measure-add {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--color-muted);
  font: inherit;
  font-size: 0.8rem;
  cursor: pointer;
}

.goal-measure-remove {
  line-height: 1.2;
  opacity: 0.55;
}

.goal-measure:hover .goal-measure-remove,
.goal-measure-remove:focus-visible {
  opacity: 1;
}

.goal-measure-add {
  margin-top: 0.1rem;
  color: var(--color-accent);
  font-weight: 550;
}

.goal-measure-remove:hover,
.goal-measure-add:hover {
  color: var(--color-accent-hover);
}

.goal-measure-remove:focus-visible,
.goal-measure-add:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

@media (max-width: 767px) {
  .goals-table {
    min-width: 32rem;
  }
}

.goal-proposal {
  padding: 0.4rem 0.55rem 0.45rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: var(--color-surface-muted);
}

.goal-proposal__top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.5rem;
}

.goal-proposal__title {
  margin: 0;
  font-size: 0.92rem;
}

.goal-proposal__badge {
  margin: 0 0 0 auto;
  color: var(--color-muted);
  font-size: 0.74rem;
}

.goal-measures {
  padding: 0.7rem 0.8rem 0.8rem;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  background: #f7faf8;
}

.goal-measures__title {
  margin: 0 0 0.4rem;
  font-size: 0.98rem;
}

.goal-measures__list {
  margin: 0;
  padding-left: 1.15rem;
}

.goal-measures__list li {
  margin: 0.2rem 0;
  font-size: 0.92rem;
}

.goals-editor {
  margin-top: 0.95rem;
}

.goals-editor__heading {
  margin: 0.85rem 0 0.45rem;
  font-size: 0.95rem;
}

.goal-area-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.goal-area-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 2.1rem;
  padding: 0.3rem 0.65rem;
  border: 1px solid var(--color-border);
  border-radius: 999px;
  background: var(--color-surface-muted);
  color: inherit;
  font: inherit;
  font-size: 0.85rem;
  cursor: pointer;
}

.goal-area-chip__mark {
  display: inline-flex;
  width: 0.9rem;
  justify-content: center;
  font-weight: 700;
}

.goal-area-chip.is-selected {
  font-weight: 650;
}

.goal-area-chip--green.is-selected,
.goal-card__chip.goal-area-chip--green {
  border-color: var(--tone-green-line);
  background: var(--tone-green-fill);
}

.goal-area-chip--blue.is-selected,
.goal-card__chip.goal-area-chip--blue {
  border-color: var(--tone-blue-line);
  background: var(--tone-blue-fill);
}

.goal-area-chip--yellow.is-selected,
.goal-card__chip.goal-area-chip--yellow {
  border-color: var(--tone-yellow-line);
  background: var(--tone-yellow-fill);
}

.goal-area-chip--rose.is-selected,
.goal-card__chip.goal-area-chip--rose {
  border-color: var(--tone-rose-line);
  background: var(--tone-rose-fill);
}

.goal-area-chip--violet.is-selected,
.goal-card__chip.goal-area-chip--violet {
  border-color: var(--tone-violet-line);
  background: var(--tone-violet-fill);
}

.goal-area-chip--teal.is-selected,
.goal-card__chip.goal-area-chip--teal {
  border-color: var(--tone-teal-line);
  background: var(--tone-teal-fill);
}

.goal-area-chip:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}

.goal-area-chip.is-disabled,
.goal-area-chip:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.goal-skills {
  min-width: 0;
  margin: 0 0 0.7rem;
  padding: 0.55rem 0.7rem 0.65rem;
  border: 1px solid var(--color-border);
  border-left-width: 3px;
  border-radius: 8px;
  background: var(--color-surface-muted);
}

.goal-skills--green {
  border-left-color: var(--tone-green-line);
}

.goal-skills--blue {
  border-left-color: var(--tone-blue-line);
}

.goal-skills--yellow {
  border-left-color: var(--tone-yellow-line);
}

.goal-skills--rose {
  border-left-color: var(--tone-rose-line);
}

.goal-skills--violet {
  border-left-color: var(--tone-violet-line);
}

.goal-skills--teal {
  border-left-color: var(--tone-teal-line);
}

.goal-skills legend {
  padding: 0 0.2rem;
  font-size: 0.88rem;
  font-weight: 650;
}

.goal-skill {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin: 0.35rem 0 0;
  cursor: pointer;
}

.goal-skill input {
  margin-top: 0.2rem;
  accent-color: var(--color-accent);
}

.goal-skill__body {
  display: grid;
  gap: 0.15rem;
  min-width: 0;
}

.goal-skill__label {
  font-size: 0.92rem;
}

.goal-skill__rating {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  color: var(--color-muted);
  font-size: 0.8rem;
}

.goal-rating-dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 999px;
  background: var(--rating-unrated);
  box-shadow: inset 0 0 0 1px var(--rating-unrated-border);
}

.goal-rating--selbststaendig {
  background: var(--rating-independent);
  box-shadow: none;
}

.goal-rating--wenig-hilfe {
  background: var(--rating-little-help);
  box-shadow: none;
}

.goal-rating--viel-hilfe {
  background: var(--rating-much-help);
  box-shadow: none;
}

.goal-rating--noch-nicht {
  background: var(--rating-not-yet);
  box-shadow: none;
}

.goal-rating--nicht-beobachtet {
  background: var(--rating-not-observed);
  box-shadow: none;
}

.goals-formulate {
  margin-top: 0.4rem;
}

.goal-proposal .goals-formulate__field {
  margin-top: 0.3rem;
}

.goals-formulate__field {
  display: grid;
  gap: 0;
  font-size: 0.88rem;
}

.goals-formulate__text {
  width: 100%;
  min-height: 56px;
  height: 56px;
  padding: 0.4rem 0.5rem;
  overflow: hidden;
  resize: none;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: #fff;
  color: inherit;
  font: inherit;
  font-size: 0.95rem;
  font-weight: 400;
  resize: vertical;
}

.goals-formulate__text:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}

.goals-formulate__notice {
  margin: 0.5rem 0 0;
  color: #8a4038;
  font-size: 0.88rem;
}

.goals-formulate__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.7rem;
}

.goal-list {
  display: grid;
  gap: 0.7rem;
  margin-top: 1rem;
}

.goal-card {
  padding: 0.75rem 0.8rem 0.8rem;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  background: var(--color-surface-muted);
}

.goal-card__top {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.25rem 0.8rem;
}

.goal-card__title {
  margin: 0;
  font-size: 0.98rem;
}

.goal-card__date {
  margin: 0;
  color: var(--color-muted);
  font-size: 0.85rem;
}

.goal-card__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin: 0;
}

.goal-proposal .goal-card__chips {
  flex: 1;
}

.goal-card__chip {
  display: inline-flex;
  align-items: center;
  min-height: 1.55rem;
  padding: 0.1rem 0.5rem;
  border: 1px solid var(--color-border);
  border-radius: 999px;
  font-size: 0.78rem;
}

.goal-card__text {
  margin: 0;
  font-size: 0.95rem;
}

.goal-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.65rem;
}

@media (max-width: 767px) {
  .goals {
    padding: 0.85rem 0.75rem 0.95rem;
  }

  .goal-skill {
    align-items: flex-start;
  }
}
