/* Digitana Social – A11Y-05
   Einheitlicher sichtbarer Tastaturfokus ohne Eingriff in Moduldesign oder Dialoglogik. */

:where(
  a[href],
  button,
  input:not([type="hidden"]),
  select,
  textarea,
  summary,
  [tabindex]:not([tabindex="-1"]),
  [role="button"][tabindex]:not([tabindex="-1"]),
  [role="link"][tabindex]:not([tabindex="-1"])
):not([hidden]):not(:disabled):not([aria-disabled="true"]):where(:not([tabindex="-1"])):not([data-ds-pointer-focus="true"]):focus-visible {
  outline: 3px solid #ffffff !important;
  outline-offset: 3px !important;
}

/* Dezenter Fokus ausschließlich für direkt per Maus, Stift oder Touch fokussierte Texteingaben. */
:where(
  input:not([type]),
  input[type="text"],
  input[type="search"],
  input[type="email"],
  input[type="password"],
  input[type="tel"],
  input[type="url"],
  textarea
):not([hidden]):not(:disabled):not([aria-disabled="true"]):not([tabindex="-1"])[data-ds-pointer-focus="true"]:focus {
  outline: 1px solid rgba(255, 255, 255, 0.55) !important;
  outline-offset: 1px !important;
}

/* Direkt aneinanderliegende oder overflow-gefährdete Navigationsflächen. */
:where(
  .ds-nav-item,
  .ds-nav-toggle,
  .ds-profile-tab,
  .ds-profile-tabs-toggle,
  .ds-account-tab
):not([hidden]):not(:disabled):not([aria-disabled="true"]):not([tabindex="-1"]):focus-visible {
  position: relative;
  z-index: 20;
  outline: 3px solid #ffffff !important;
  outline-offset: -3px !important;
}

/* Innerer Fokusrahmen für overflow-gefährdete interaktive Zeilen und das Forumsbild. */
:where(
  .ds-forum-thread-image-open,
  .ds-profile-friend-row,
  .ds-music-side-song,
  .ds-music-friend-music,
  .ds-music-playlist-choice
):not([hidden]):not(:disabled):not([aria-disabled="true"]):not([tabindex="-1"]):focus-visible {
  outline: 3px solid #ffffff !important;
  outline-offset: -3px !important;
}

/* Sichtbare Stellvertreter für absichtlich unsichtbare Eingabeelemente. */
:where(
  .ds-profile-camera,
  .ds-profile-feed-camera,
  .ds-profile-edit-direct-choice,
  .ds-profile-color-choice,
  .ds-projects-project-status-choice,
  .ds-work-active-option
):has(input:not([tabindex="-1"]):focus-visible) {
  outline: 3px solid #ffffff !important;
  outline-offset: 3px !important;
}

/* Das sichtbare Projekt-Farbfeld übernimmt den Fokus des transparenten Selects. */
.ds-projects-card-form .ds-projects-field:has(> .ds-projects-hidden-select:not([tabindex="-1"]):focus-visible) > .ds-projects-style-choice-row {
  outline: 3px solid #ffffff !important;
  outline-offset: 3px !important;
}

/* Bei der Profil-Farbauswahl bleibt genau der Rahmen der vollständigen Auswahlzeile sichtbar. */
.ds-profile-color-choice > input[type="radio"]:not([hidden]):not(:disabled):not([aria-disabled="true"]):focus-visible {
  outline: none !important;
  outline-offset: 0 !important;
}

.ds-forum-image-upload:has(.ds-forum-file-input:not([tabindex="-1"]):focus-visible) .ds-forum-image-upload-button,
.ds-gallery-file-picker:has(input[type="file"]:not([tabindex="-1"]):focus-visible) .ds-gallery-file-button,
.ds-music-file-picker:has(input[type="file"]:not([tabindex="-1"]):focus-visible) .ds-music-file-button,
.ds-projects-file-picker:has(input[type="file"]:not([tabindex="-1"]):focus-visible) .ds-projects-file-button,
.ds-work-image-editor:has(.ds-work-file-input:not([tabindex="-1"]):focus-visible) .ds-work-image-upload-button {
  outline: 3px solid #ffffff !important;
  outline-offset: 3px !important;
}
