
.admin-panel-stack,
.vpn-admin-panel-stack,
.admin-link-layout {
  display: grid;
  gap: 16px;
  max-width: 1180px;
}

.admin-link-card,
.admin-main-card,
.permission-matrix-card,
.vpn-invite-collapsible,
.vpn-profiles-collapsible,
.vpn-groups-collapsible {
  overflow: hidden;
}

.admin-link-card > summary,
.admin-main-card > summary,
.permission-matrix-card > summary,
.vpn-invite-collapsible > summary,
.vpn-profiles-collapsible > summary,
.vpn-groups-collapsible > summary {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  cursor: pointer;
  padding: 16px 18px;
  background: rgba(255,255,255,.026);
}

.admin-link-card > summary::-webkit-details-marker,
.admin-main-card > summary::-webkit-details-marker,
.permission-matrix-card > summary::-webkit-details-marker,
.vpn-invite-collapsible > summary::-webkit-details-marker,
.vpn-profiles-collapsible > summary::-webkit-details-marker,
.vpn-groups-collapsible > summary::-webkit-details-marker {
  display: none;
}

.admin-link-card > summary::before,
.admin-main-card > summary::before,
.permission-matrix-card > summary::before,
.vpn-invite-collapsible > summary::before,
.vpn-profiles-collapsible > summary::before,
.vpn-groups-collapsible > summary::before {
  content: "▶";
  color: var(--blue);
  font-weight: 900;
}

.admin-link-card[open] > summary::before,
.admin-main-card[open] > summary::before,
.permission-matrix-card[open] > summary::before,
.vpn-invite-collapsible[open] > summary::before,
.vpn-profiles-collapsible[open] > summary::before,
.vpn-groups-collapsible[open] > summary::before {
  content: "▼";
}

.admin-link-card summary span:first-child,
.admin-main-card summary span:first-child,
.permission-matrix-card summary span:first-child,
.vpn-invite-collapsible summary span:first-child,
.vpn-profiles-collapsible summary span:first-child,
.vpn-groups-collapsible summary span:first-child {
  display: grid;
  gap: 3px;
  margin-right: auto;
}

.admin-link-card summary small,
.admin-main-card summary small,
.permission-matrix-card summary small,
.vpn-invite-collapsible summary small,
.vpn-profiles-collapsible summary small,
.vpn-groups-collapsible summary small {
  color: var(--muted);
}

.admin-link-body,
.admin-profile-collapse-body,
.permission-matrix-collapse-body,
.vpn-invite-collapsible-body,
.vpn-profiles-collapsible-body,
.vpn-groups-collapsible-body {
  padding: 16px 18px 18px;
  display: grid;
  gap: 14px;
}

.admin-link-grid,
.vpn-invite-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(160px, 1fr)) auto;
  gap: 12px;
  align-items: end;
}

.admin-link-grid label,
.vpn-invite-grid label {
  display: grid;
  gap: 6px;
  font-weight: 800;
  color: var(--text);
}

.admin-link-output {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
}

.admin-token-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.admin-token-list {
  display: grid;
  gap: 10px;
}

.admin-token-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border: 1px solid rgba(109,178,255,.22);
  border-radius: 16px;
  background: rgba(8,17,31,.46);
  padding: 12px;
}

.admin-token-row code {
  display: block;
  max-width: 100%;
  overflow-wrap: anywhere;
  margin-top: 6px;
  color: var(--muted);
}

.admin-token-row small {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  color: var(--muted);
}

.admin-token-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.btn,
.ghost-btn,
.danger-btn {
  min-height: 40px;
}

.ghost-btn.mini,
.danger-btn.mini {
  min-height: 34px;
  padding: 7px 10px;
}

@media (max-width: 900px) {
  .admin-link-grid,
  .vpn-invite-grid,
  .admin-link-output,
  .admin-token-row {
    grid-template-columns: 1fr;
  }
  .admin-token-actions {
    justify-content: flex-start;
  }
}

/* Profil-/Gruppen-Bedienbarkeit und responsive Admin-Listen */
.profile-admin-list{display:grid;gap:12px}.profile-admin-card,.profile-row,.admin-profile-row,.vpn-profile-row{border:1px solid rgba(112,186,255,.24);border-radius:18px;background:rgba(8,18,33,.42);padding:14px}.profile-groups,.profile-group-grid,.group-checkbox-grid,.vpn-group-checkbox-grid,.group-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:8px;margin-top:10px}.profile-group-check,.group-check,.group-checkbox,.vpn-group-check,.group-check-row{display:flex;align-items:center;gap:8px;min-height:42px;padding:8px 10px;border-radius:13px;border:1px solid rgba(112,186,255,.25);background:rgba(255,255,255,.035);font-weight:800}.group-admin-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:12px}.group-admin-actions,.profile-admin-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:12px}.admin-token-row{grid-template-columns:minmax(0,1fr) auto}.admin-token-row code,.admin-link-output input{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86rem;overflow-wrap:anywhere}@media(max-width:720px){.admin-panel-stack,.vpn-admin-panel-stack{gap:12px}.admin-link-grid,.vpn-invite-grid,.admin-link-output,.admin-token-row{grid-template-columns:1fr}.profile-groups,.profile-group-grid,.group-checkbox-grid,.vpn-group-checkbox-grid,.group-check-grid{grid-template-columns:1fr}.admin-token-actions{justify-content:flex-start}.profile-admin-controls{grid-template-columns:1fr}}

.field-note {
  display: grid;
  align-content: center;
  min-height: 58px;
  border: 1px solid rgba(112,186,255,.24);
  border-radius: 14px;
  background: rgba(255,255,255,.035);
  padding: 10px 12px;
}
.field-note small {
  color: var(--muted);
  font-weight: 700;
}

/* VPN profile action buttons should stay compact. */
.vpn-profiles-collapsible .profile-admin-controls{
  grid-template-columns:minmax(120px,180px) minmax(120px,180px) auto!important;
  align-items:end!important;
}
.vpn-profiles-collapsible .profile-admin-controls .btn{
  width:auto!important;
  min-width:140px!important;
  justify-self:start!important;
  padding-inline:18px!important;
}
@media(max-width:900px){
  .vpn-profiles-collapsible .profile-admin-controls{grid-template-columns:1fr!important;}
  .vpn-profiles-collapsible .profile-admin-controls .btn{justify-self:start!important;width:auto!important;}
}

/* Blocked profile cleanup. */
.blocked-profiles-collapsible{margin-top:14px;border-color:rgba(255,111,111,.28)!important}
.blocked-profiles-collapsible>summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px}
.blocked-profile-list{display:grid;gap:10px;margin-top:12px}
.blocked-profile-card{border-color:rgba(255,111,111,.32)!important;background:rgba(255,80,80,.055)!important}
.blocked-profile-card .profile-admin-actions{justify-content:flex-end}

/* Blocked profile delete buttons stay compact in the blocked-profile area. */
.blocked-profile-card .blocked-profile-controls {
  display: grid !important;
  grid-template-columns: minmax(130px, 180px) max-content max-content !important;
  justify-content: start !important;
  align-items: end !important;
  gap: 10px !important;
}

.blocked-profile-card .blocked-profile-controls .btn,
.blocked-profile-card .blocked-profile-controls .danger-btn,
.blocked-profile-card .blocked-profile-controls .compact-danger,
.blocked-profile-card .blocked-profile-controls button[data-action="delete-blocked-profile"],
.blocked-profile-card .blocked-profile-controls button[data-vpn-action="delete-blocked-profile"] {
  width: auto !important;
  min-width: 104px !important;
  max-width: 150px !important;
  justify-self: start !important;
  align-self: end !important;
  padding-left: 16px !important;
  padding-right: 16px !important;
  white-space: nowrap !important;
}

@media (max-width: 720px) {
  .blocked-profile-card .blocked-profile-controls {
    grid-template-columns: 1fr !important;
  }
  .blocked-profile-card .blocked-profile-controls .btn,
  .blocked-profile-card .blocked-profile-controls .danger-btn,
  .blocked-profile-card .blocked-profile-controls .compact-danger {
    justify-self: start !important;
  }
}

