/* IndigoCMS v39: gemeinsame UX-, Accessibility- und Workflow-Ergaenzungen. */
:root {
  --focus-ring: #ffd66b;
  --status-ok: #5dd39e;
  --status-warn: #ffca68;
  --status-danger: #ff7a90;
}

.skip-link {
  position: fixed;
  inset: .75rem auto auto .75rem;
  z-index: 100000;
  padding: .75rem 1rem;
  border-radius: .6rem;
  background: #fff;
  color: #160b27;
  font-weight: 800;
  transform: translateY(-180%);
  transition: transform .15s ease;
}
.skip-link:focus { transform: translateY(0); }

:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
  outline: 3px solid var(--focus-ring) !important;
  outline-offset: 3px;
}
:where(button,input,select,textarea):disabled { cursor: not-allowed; opacity: .55; }
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.creator-completeness {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(12rem,18rem);
  align-items: center;
  gap: 1rem 2rem;
  margin: 1rem 0 1.5rem;
  padding: 1.1rem 1.25rem;
}
.creator-completeness > details { grid-column: 1 / -1; }
.creator-completeness__meter { display: grid; gap: .45rem; }
.creator-completeness__meter strong { font-size: 1.45rem; }
.creator-completeness progress { width: 100%; accent-color: var(--status-ok); }
.profile-review-note { padding: .75rem; border-inline-start: 3px solid var(--status-warn); background: rgb(255 202 104 / .09); }
.profile-review-panel { border-color: rgb(255 214 107 / .35); }

.creator-profile-facts,
.speaker-profile-facts,
.active-filter-row,
.speaker-profile-actions,
.speaker-filter-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .55rem;
}
.creator-profile-facts { margin-block: .85rem; }
.creator-profile-facts > span,
.availability-badge,
.active-filter-row a {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: .35rem .65rem;
  border: 1px solid rgb(255 255 255 / .15);
  border-radius: 999px;
  background: rgb(255 255 255 / .05);
  font-size: .88rem;
}
.availability-badge--available { color: var(--status-ok); border-color: rgb(93 211 158 / .45); }
.availability-badge--limited { color: var(--status-warn); border-color: rgb(255 202 104 / .45); }
.availability-badge--unavailable { color: #c7bfd2; }
.creator-skill-grid,
.service-grid,
.b2b-form-grid,
.speaker-filter-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 1rem;
}
.creator-skill-grid > article { padding: 1.1rem; }

.speaker-filter-panel,
.search-panel {
  display: grid;
  gap: .9rem;
  padding: 1rem;
}
.speaker-filter-grid { grid-template-columns: repeat(4,minmax(10rem,1fr)); }
.speaker-filter-grid label,
.search-panel label { display: grid; gap: .35rem; }
.speaker-filter-panel :where(input,select),
.search-panel :where(input,select) { width: 100%; }
.speaker-directory-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.speaker-profile-card { display: grid; align-content: start; gap: .75rem; }
.speaker-profile-card__portrait { aspect-ratio: 4 / 3; overflow: hidden; border-radius: .75rem; }
.speaker-profile-card__portrait img { width: 100%; height: 100%; object-fit: cover; }
.speaker-profile-actions { margin-top: auto; }

.search-panel {
  grid-template-columns: minmax(16rem,1fr) minmax(10rem,.25fr) minmax(10rem,.25fr) auto;
  align-items: end;
}
.search-panel__query input { min-height: 3rem; }

.selected-creator-card,
.request-facts {
  display: grid;
  gap: .65rem;
}
.selected-creator-card { padding: 1rem; border: 1px solid rgb(255 214 107 / .3); border-radius: .8rem; }
.request-facts { grid-template-columns: repeat(2,minmax(0,1fr)); margin-block: .8rem; }
.request-facts > div { padding: .6rem; border-radius: .6rem; background: rgb(255 255 255 / .04); }
.request-facts dt { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; opacity: .7; }
.request-facts dd { margin: .25rem 0 0; }

.notification-feed { display: grid; gap: 1rem; }
.notification-card { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 1rem; padding: 1rem 1.15rem; }
.notification-card.is-unread { border-inline-start: 4px solid var(--focus-ring); }
.notification-card h2 { margin: .35rem 0; font-size: 1.15rem; }
.notification-card time { font-size: .8rem; opacity: .7; }
.notification-card form { display: flex; flex-wrap: wrap; gap: .45rem; }

.indigo-confirm {
  width: min(34rem,calc(100vw - 2rem));
  padding: 0;
  border: 1px solid rgb(255 214 107 / .38);
  border-radius: 1rem;
  background: #130c20;
  color: #f8f3ff;
  box-shadow: 0 1.5rem 5rem rgb(0 0 0 / .65);
}
.indigo-confirm::backdrop { background: rgb(4 2 9 / .78); backdrop-filter: blur(4px); }
.indigo-confirm__body { display: grid; gap: .9rem; padding: 1.35rem; }
.indigo-confirm__body h2 { margin: 0; }
.indigo-confirm__details { display: grid; gap: .5rem; margin: 0; }
.indigo-confirm__details > div { display: grid; grid-template-columns: 8rem 1fr; gap: .6rem; }
.indigo-confirm__details dt { color: #c9bed7; }
.indigo-confirm__details dd { margin: 0; }
.indigo-confirm__actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: .65rem; }

.status-chip { display: inline-flex; padding: .25rem .55rem; border-radius: 999px; border: 1px solid currentColor; font-size: .78rem; }
.status-chip--approved,.status-chip--active,.status-chip--published,.status-chip--completed { color: var(--status-ok); }
.status-chip--pending,.status-chip--in_review,.status-chip--planning { color: var(--status-warn); }
.status-chip--rejected,.status-chip--deleted,.status-chip--suspended { color: var(--status-danger); }

.active-filters { display: flex; align-items: center; flex-wrap: wrap; gap: .55rem; margin-top: .85rem; }
.active-filters > span { padding: .35rem .65rem; border: 1px solid rgb(255 214 107 / .3); border-radius: 999px; color: #e8d9ff; background: rgb(255 214 107 / .06); }

.indigo-form--submitting { cursor: progress; }
.indigo-form--submitting [data-indigo-submit-busy="true"] { opacity: .68; pointer-events: none; }
.indigo-submit-status {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  margin: .45rem .2rem;
  color: inherit;
  font-weight: 650;
}
.indigo-submit-status:not(:empty)::before {
  width: .85rem;
  height: .85rem;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  content: "";
  animation: indigo-submit-spin .75s linear infinite;
}
@keyframes indigo-submit-spin { to { transform: rotate(360deg); } }

@media (max-width: 1050px) {
  .speaker-filter-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .speaker-directory-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .search-panel { grid-template-columns: 1fr 1fr; }
  .search-panel__query { grid-column: 1 / -1; }
}
@media (max-width: 680px) {
  .creator-completeness,
  .creator-skill-grid,
  .service-grid,
  .b2b-form-grid,
  .speaker-filter-grid,
  .speaker-directory-grid,
  .search-panel,
  .request-facts { grid-template-columns: 1fr; }
  .notification-card { grid-template-columns: 1fr; }
  .creator-completeness__meter { grid-column: 1; }
  .search-panel__query { grid-column: 1; }
  .indigo-confirm__details > div { grid-template-columns: 1fr; gap: .1rem; }
}

@media (prefers-reduced-motion: reduce) {
  .indigo-submit-status:not(:empty)::before { animation: none; }
  *,*::before,*::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
