
.pfa-body {
  margin: 0;
  background: var(--ds-color-bg-page);
  color: var(--ds-color-text-primary);
  font-family: var(--ds-font-body);
  line-height: 1.5;
}

/* --- Shell / Layout ---------------------------------------------- */
.pfa-shell {
  display: flex;
  min-height: 100vh;
}

.pfa-sidebar {
  width: 260px;
  flex-shrink: 0;
  background: var(--ds-color-bg-surface);
  border-right: 1px solid var(--ds-color-border-subtle);
  display: flex;
  flex-direction: column;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  z-index: var(--ds-z-sticky);
  transform: translateX(0);
  transition: transform var(--ds-transition-transform);
}

.pfa-sidebar__brand {
  padding: var(--ds-space-6) var(--ds-space-6) var(--ds-space-4);
  font-family: var(--ds-font-heading);
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--ds-color-text-primary);
  border-bottom: 1px solid var(--ds-color-border-subtle);
}

.pfa-sidebar__nav {
  list-style: none;
  margin: 0;
  padding: var(--ds-space-4) var(--ds-space-3);
  display: flex;
  flex-direction: column;
  gap: var(--ds-space-2);
  overflow-y: auto;
}

.pfa-nav-link {
  display: flex;
  align-items: center;
  gap: var(--ds-space-3);
  padding: var(--ds-space-3) var(--ds-space-4);
  border-radius: var(--ds-radius-md);
  color: var(--ds-color-text-secondary);
  text-decoration: none;
  font-size: 0.9375rem;
  font-weight: 500;
  transition: var(--ds-transition-colors);
}

.pfa-nav-link:hover {
  background: var(--ds-color-bg-elevated);
  color: var(--ds-color-text-primary);
}

.pfa-nav-link:focus-visible {
  outline: none;
  box-shadow: var(--ds-shadow-focus-ring);
}

.pfa-nav-link--active {
  background: var(--ds-color-primary-500);
  color: var(--ds-color-text-on-primary);
}

.pfa-nav-link--active:hover {
  background: var(--ds-color-primary-600);
  color: var(--ds-color-text-on-primary);
}

.pfa-nav-icon {
  width: var(--ds-icon-size-md);
  height: var(--ds-icon-size-md);
  flex-shrink: 0;
}

.pfa-sidebar__overlay {
  display: none;
}

/* --- Topbar --------------------------------------------------------- */
.pfa-topbar {
  height: 64px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ds-space-4);
  padding: 0 var(--ds-space-6);
  background: var(--ds-color-bg-surface);
  border-bottom: 1px solid var(--ds-color-border-subtle);
  position: sticky;
  top: 0;
  z-index: var(--ds-z-dropdown);
}

.pfa-topbar__title {
  font-family: var(--ds-font-heading);
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0;
}

.pfa-menu-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--ds-radius-md);
  border: 1px solid var(--ds-color-border-default);
  background: var(--ds-color-bg-surface);
  color: var(--ds-color-text-primary);
  cursor: pointer;
}

.pfa-menu-toggle:focus-visible {
  outline: none;
  box-shadow: var(--ds-shadow-focus-ring);
}

/* --- Main / Content --------------------------------------------------- */
.pfa-main {
  flex: 1;
  margin-left: 260px;
  min-width: 0;
}

.pfa-page {
  padding: var(--ds-space-8) var(--ds-space-6);
  max-width: 1140px;
  margin: 0 auto;
}

.pfa-page__header {
  margin-bottom: var(--ds-space-6);
}

.pfa-page__title {
  font-family: var(--ds-font-heading);
  font-size: 1.5rem;
  font-weight: 700;
  margin: 0 0 var(--ds-space-2);
}

.pfa-page__subtitle {
  color: var(--ds-color-text-secondary);
  font-size: 0.9375rem;
  margin: 0;
}

/* --- Cards-Grid (Übersicht) --------------------------------- */
.pfa-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--ds-space-6);
}

.pfa-stat-card__label {
  color: var(--ds-color-text-secondary);
  font-size: 0.8125rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin: 0 0 var(--ds-space-2);
}

.pfa-stat-card__value {
  font-family: var(--ds-font-heading);
  font-size: 1.75rem;
  font-weight: 700;
  margin: 0;
  color: var(--ds-color-text-primary);
}

.pfa-stat-card__hint {
  margin: var(--ds-space-2) 0 0;
  font-size: 0.8125rem;
  color: var(--ds-color-text-muted);
}

/* --- Formulare (Provisioning) ---------------------------- */
.pfa-form {
  display: flex;
  flex-direction: column;
  gap: var(--ds-space-5);
  max-width: 560px;
}

.pfa-form__row {
  display: flex;
  flex-direction: column;
  gap: var(--ds-space-5);
}

@media (min-width: 640px) {
  .pfa-form__row--split {
    flex-direction: row;
  }
  .pfa-form__row--split > * {
    flex: 1;
  }
}

.pfa-field-hint--unsupported {
  color: var(--ds-color-text-muted);
  font-size: 0.8125rem;
  margin: var(--ds-space-1) 0 0;
}

.pfa-form__actions {
  display: flex;
  align-items: center;
  gap: var(--ds-space-3);
}

.pfa-form__status {
  font-size: 0.875rem;
  color: var(--ds-color-success);
}

.pfa-form__status--error {
  color: var(--ds-color-danger);
}

/* --- Tabelle (Kunden/Domains/Packs) ---------------------------------------------------- */
.pfa-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ds-space-3);
  margin-bottom: var(--ds-space-5);
}

.pfa-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--ds-color-border-subtle);
  border-radius: var(--ds-radius-lg);
}

.pfa-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9375rem;
}

.pfa-table th,
.pfa-table td {
  text-align: left;
  padding: var(--ds-space-3) var(--ds-space-4);
  border-bottom: 1px solid var(--ds-color-border-subtle);
  white-space: nowrap;
}

.pfa-row-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ds-space-2);
}

.pfa-table tbody tr:last-child td {
  border-bottom: none;
}

.pfa-table tbody tr:hover {
  background: var(--ds-color-bg-elevated);
}

.pfa-table th {
  background: var(--ds-color-bg-surface);
  font-weight: 600;
  color: var(--ds-color-text-secondary);
}

.pfa-th-sort {
  background: none;
  border: none;
  font: inherit;
  color: inherit;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: var(--ds-space-1);
  padding: 0;
}

.pfa-th-sort:focus-visible {
  outline: none;
  box-shadow: var(--ds-shadow-focus-ring);
}

.pfa-empty-state {
  padding: var(--ds-space-8);
  text-align: center;
  color: var(--ds-color-text-muted);
}

/* --- Pagination (Sprint 17: Mandanten/Sites) --------------------------- */
.pfa-pagination {
  display: flex;
  align-items: center;
  gap: var(--ds-space-3);
  margin-top: var(--ds-space-4);
  color: var(--ds-color-text-secondary);
  font-size: 0.875rem;
}

/* --- Betreiber-Checkliste (Sprint 17) ----------------------------------- */
.pfa-checklist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--ds-space-3);
}

.pfa-checklist-item {
  display: flex;
  align-items: center;
  gap: var(--ds-space-3);
}

/* --- Toggle (Status-Badges) --------------------------------- */
.pfa-toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--ds-space-3);
  cursor: pointer;
}

.pfa-toggle__track {
  width: 44px;
  height: 24px;
  border-radius: var(--ds-radius-full);
  background: var(--ds-color-border-default);
  position: relative;
  transition: var(--ds-transition-colors);
  flex-shrink: 0;
}

.pfa-toggle__track::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 20px;
  height: 20px;
  border-radius: var(--ds-radius-full);
  background: var(--ds-color-bg-surface);
  transition: var(--ds-transition-transform);
  box-shadow: var(--ds-shadow-sm);
}

.pfa-toggle__input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}

.pfa-toggle__input:checked + .pfa-toggle__track {
  background: var(--ds-color-success);
}

.pfa-toggle__input:checked + .pfa-toggle__track::after {
  transform: translateX(20px);
}

.pfa-toggle__input:focus-visible + .pfa-toggle__track {
  box-shadow: var(--ds-shadow-focus-ring);
}

.pfa-installation-manager { margin-top: var(--ds-space-6); }
.pfa-origin-list { display: grid; gap: var(--ds-space-2); padding-left: var(--ds-space-5); }
.pfa-inline-form { display: flex; align-items: end; gap: var(--ds-space-3); flex-wrap: wrap; }
.pfa-inline-form label { display: grid; gap: var(--ds-space-2); min-width: min(100%, 28rem); }
.pfa-snippet { display: block; width: 100%; min-height: 7rem; font-family: var(--ds-font-mono); resize: vertical; }

/* --- Responsive: Sidebar auf Mobil einklappbar --------------------------- */
@media (max-width: calc(768px - 1px)) {
  .pfa-sidebar {
    transform: translateX(-100%);
    width: 280px;
    box-shadow: var(--ds-shadow-lg);
  }

  .pfa-shell--nav-open .pfa-sidebar {
    transform: translateX(0);
  }

  .pfa-shell--nav-open .pfa-sidebar__overlay {
    display: block;
    position: fixed;
    inset: 0;
    background: var(--ds-color-bg-overlay);
    z-index: calc(var(--ds-z-sticky) - 1);
  }

  .pfa-main {
    margin-left: 0;
  }

  .pfa-menu-toggle {
    display: inline-flex;
  }

  .pfa-page {
    padding: var(--ds-space-6) var(--ds-space-4);
  }
}

/* --- Werkuna Platform Control: dunkle BetreiberoberflÃ¤che ------------ */
.pfa-body {
  --ds-color-bg-page: #050c1b;
  --ds-color-bg-surface: #08142a;
  --ds-color-bg-elevated: #0b1a36;
  --ds-color-bg-overlay: rgba(1, 7, 18, 0.76);
  --ds-color-text-primary: #f5f8ff;
  --ds-color-text-secondary: #aebfdb;
  --ds-color-text-muted: #7286a8;
  --ds-color-text-link: #4ea1ff;
  --ds-color-border-subtle: #18335e;
  --ds-color-border-default: #254875;
  --ds-color-border-strong: #4771ad;
  --ds-color-border-focus: #2583ff;
  --ds-color-primary-500: #1877ff;
  --ds-color-primary-600: #1264ea;
  --ds-color-primary-700: #0c4cbd;
  --ds-color-success: #38d18d;
  --ds-color-warning: #f5b84c;
  --ds-color-danger: #ff647c;
  --ds-color-info: #5bb4ff;
  --ds-shadow-sm: 0 12px 32px rgba(0, 0, 0, 0.2);
  --ds-shadow-md: 0 18px 42px rgba(0, 18, 54, 0.42);
  --ds-shadow-lg: 0 24px 58px rgba(0, 8, 28, 0.6);
  background: radial-gradient(circle at 72% -12%, rgba(16, 88, 244, 0.22), transparent 28rem), radial-gradient(circle at 15% 90%, rgba(78, 51, 183, 0.13), transparent 28rem), var(--ds-color-bg-page);
}
.pfa-sidebar { width: 278px; background: linear-gradient(180deg, #06152c 0%, #040c1c 100%); border-right-color: #173158; box-shadow: 16px 0 42px rgba(0, 5, 20, 0.22); }
.pfa-sidebar__brand { min-height: 92px; box-sizing: border-box; padding: 1.15rem 1.3rem; display: flex; align-items: center; border-bottom-color: #173158; }
.pfa-sidebar__brand-link { display: block; width: 100%; }
.pfa-logo--full { width: 185px; height: auto; display: block; }
.pfa-logo--theme-light, .pfa-logo--theme-dark, .pfa-logo--mark, .pfa-sidebar__collapse-toggle { display: none; }
.pfa-sidebar__nav { padding: 1.2rem 0.85rem 1.5rem; gap: 0.25rem; }
.pfa-nav-link { color: #b8c7df; border: 1px solid transparent; padding: 0.72rem 0.9rem; border-radius: 0.55rem; }
.pfa-nav-link:hover { background: #0b2143; border-color: #193d70; color: #f7fbff; }
.pfa-nav-link--active, .pfa-nav-link--active:hover { background: linear-gradient(90deg, #0f5dde, #133a92); border-color: #267fff; color: #fff; box-shadow: 0 8px 22px rgba(17, 103, 255, 0.24); }
.pfa-nav-icon { color: #5e9fff; }
.pfa-nav-link--active .pfa-nav-icon { color: #fff; }
.pfa-main { margin-left: 278px; }
.pfa-topbar { height: 78px; padding: 0 2rem; background: rgba(5, 16, 35, 0.94); border-bottom-color: #173158; backdrop-filter: blur(14px); }
.pfa-topbar__heading { min-width: 0; }
.pfa-topbar__title { font-size: 1.35rem; letter-spacing: -0.02em; }
.pfa-topbar__subtitle { color: #7892b8; font-size: 0.78rem; margin: 0.06rem 0 0; }
.pfa-topbar__session { display: flex; align-items: center; gap: 1rem; color: #b8c7df; font-size: 0.9rem; }
.pfa-topbar .ds-button--outline { color: #d5e5ff; border-color: #31598f; }
.pfa-topbar .ds-button--outline:hover { background: #11284e; border-color: #5597e8; }
.pfa-page { max-width: 1540px; padding: 2rem 2.2rem 3rem; }
.pfa-page > .pfa-page__header:first-child { padding: 0 0 0.15rem; }
.pfa-page__subtitle { color: #7392bf; letter-spacing: 0.08em; text-transform: uppercase; font-size: 0.72rem; font-weight: 700; }
.pfa-page__header { margin: 2.2rem 0 1rem; }
.pfa-page__header:first-child { margin-top: 0; }
.ds-card { background: linear-gradient(145deg, rgba(13, 34, 70, 0.96), rgba(7, 21, 45, 0.97)); border-color: #193b6e; box-shadow: var(--ds-shadow-sm); }
.ds-card--padding-md { padding: 1.25rem; }
.pfa-cards-grid { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 1rem; }
.pfa-cards-grid > .ds-card { position: relative; overflow: hidden; min-height: 110px; min-width: 0; }
.pfa-cards-grid > .ds-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: linear-gradient(#2f96ff, #274de8); opacity: .9; }
.pfa-cards-grid > .ds-card:nth-child(3n+2)::before { background: linear-gradient(#a56cff, #6532d7); }
.pfa-cards-grid > .ds-card:nth-child(3n)::before { background: linear-gradient(#54dc98, #159d63); }
.pfa-stat-card__label { color: #8fa6c9; font-size: 0.72rem; letter-spacing: 0.06em; }
.pfa-stat-card__value { color: #f7fbff; font-size: clamp(1.35rem, 2vw, 2rem); line-height: 1.15; overflow-wrap: anywhere; word-break: break-word; }
.pfa-stat-card__hint { color: #728bb0; }
.ds-input, .ds-textarea, .ds-select { color: #f3f8ff; background: #071833; border-color: #264a7a; }
.ds-input::placeholder, .ds-textarea::placeholder { color: #6d84a8; }
.ds-input:hover, .ds-textarea:hover, .ds-select:hover { border-color: #5485c6; }
.ds-button--primary { box-shadow: 0 8px 22px rgba(24, 119, 255, 0.28); }
.ds-button--outline { color: #9bcaff; border-color: #31598f; }
.ds-button--outline:hover:not(:disabled), .ds-button--ghost:hover:not(:disabled) { background: #102850; color: #f4f8ff; }
.ds-button--ghost { color: #a9cdfc; }
.pfa-table-wrap { background: #07152d; border-color: #1a3a69; }
.pfa-table th { background: #0c2042; color: #96b5de; }
.pfa-table th, .pfa-table td { border-bottom-color: #18355f; }
.pfa-table tbody tr:hover { background: #0d254b; }
.pfa-table a { color: #67adff; }
.pfa-empty-state { color: #8297b8; }
.pfa-pagination { color: #9bb0cf; }

/* Zentral ausgerichtete Anmeldung im Werkuna-Control-Stil. */
.pfa-auth { width: 100%; min-height: 100vh; min-height: 100dvh; box-sizing: border-box; display: grid; place-items: center; padding: clamp(1.25rem, 4vw, 3rem); background: radial-gradient(circle at 15% 18%, rgba(37, 131, 255, 0.23), transparent 24rem), radial-gradient(circle at 85% 82%, rgba(93, 61, 203, 0.22), transparent 28rem), #050c1b; }
.pfa-auth__card { width: min(100%, 29rem); box-sizing: border-box; padding: clamp(1.8rem, 4vw, 2.6rem); background: linear-gradient(145deg, rgba(13, 34, 70, 0.98), rgba(5, 16, 35, 0.98)); border: 1px solid #244979; border-radius: 1.25rem; box-shadow: 0 28px 72px rgba(0, 0, 0, 0.48), inset 0 1px 0 rgba(255, 255, 255, 0.05); }
.pfa-auth__brand { display: flex; justify-content: center; margin-bottom: 1.65rem; }
.pfa-auth__logo { display: block; width: min(100%, 16rem); height: auto; }
.pfa-auth__eyebrow { margin: 0 0 0.65rem; color: #66aaff; text-align: center; text-transform: uppercase; letter-spacing: 0.13em; font-size: 0.68rem; font-weight: 700; }
.pfa-auth__title { margin: 0; color: #f7fbff; text-align: center; font-size: clamp(1.7rem, 5vw, 2.15rem); letter-spacing: -0.035em; }
.pfa-auth__hint { margin: 0.8rem 0 1.75rem; color: #aebfdb; text-align: center; line-height: 1.6; }
.pfa-auth__form { display: grid; gap: 0.85rem; }
.pfa-auth__label { color: #d6e5fa; font-size: 0.88rem; font-weight: 600; }
.pfa-auth__form .ds-input { width: 100%; min-height: 3rem; box-sizing: border-box; border-radius: 0.65rem; }
.pfa-auth__form .ds-button, .pfa-auth__actions .ds-button { width: 100%; min-height: 3rem; justify-content: center; border-radius: 0.65rem; font-size: 0.97rem; font-weight: 700; }
.pfa-auth__form .ds-button { margin-top: 0.55rem; }
.pfa-auth__status { margin: 0 0 1.25rem; padding: 0.8rem 0.9rem; border: 1px solid #31598f; border-radius: 0.65rem; color: #d9e8ff; background: rgba(43, 104, 190, 0.16); font-size: 0.9rem; line-height: 1.45; }
.pfa-auth__status--error, .pfa-auth__status--invalid { border-color: rgba(255, 100, 124, 0.55); color: #ffd9df; background: rgba(255, 100, 124, 0.12); }
.pfa-auth__status--forbidden { border-color: rgba(245, 184, 76, 0.6); color: #ffe7b7; background: rgba(245, 184, 76, 0.12); }
.pfa-auth__status--success { border-color: rgba(56, 209, 141, 0.55); color: #ceffe6; background: rgba(56, 209, 141, 0.12); }
.pfa-auth__actions { display: grid; }
@media (max-width: calc(768px - 1px)) {
  .pfa-sidebar { width: 278px; }
  .pfa-main { margin-left: 0; }
  .pfa-topbar { height: 66px; padding: 0 1rem; }
  .pfa-topbar__session > span { display: none; }
  .pfa-page { padding: 1.4rem 1rem 2rem; }
  .pfa-cards-grid { grid-template-columns: repeat(auto-fit, minmax(155px, 1fr)); gap: 0.75rem; }
  .pfa-auth { min-height: 100dvh; padding: 1.25rem; }
  .pfa-auth__card { padding: 1.55rem; }
}
