/* Admin stránky (/admin, /admin/promo) – sdílené styly */

.adminPage {
  max-width: 1320px;
  margin: 0 auto;
  padding: 24px 20px 36px;
  display: grid;
  gap: 16px;
}
.adminPage__title { margin: 0; }
.adminIntro { color: var(--muted); margin: 0; font-size: 0.95rem; }
.adminMaintenanceHint { margin: 0 0 12px; font-size: 0.9rem; color: var(--muted); line-height: 1.45; }
.adminMaintenanceHint code { font-size: 0.85rem; }
.adminMaintenanceActions { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.adminMaintenanceResult { margin: 0; font-size: 0.9rem; min-height: 1.35em; }
.adminCard {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel);
  padding: 14px;
}
.adminCard__header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
}
.adminCard__title { margin: 0; font-size: 1.05rem; }
.adminUsersActions { margin: 0; }
.adminToolbar { margin: 0 0 10px; display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: flex-end; }
.adminSearchInput { width: min(100%, 320px); }
.adminFilterLabel { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.adminFilterLabel__text { font-size: 11px; color: var(--muted); }
.adminFilterSelect { min-width: 9.5rem; max-width: 100%; }
.adminFilterCount { font-size: 0.85rem; color: var(--muted); margin-left: auto; align-self: center; white-space: nowrap; }
.adminOnlineCount { font-weight: 600; color: var(--muted); }
.adminOnlineHint { margin: 0 0 12px; font-size: 0.9rem; color: var(--muted); line-height: 1.45; }
.adminOnlineTableWrap { max-height: 36vh; }
.adminTable--online { min-width: 780px; }
.adminUsersSection { margin-top: 0; }
.adminTableWrap {
  max-height: 58vh;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--bg);
}
.adminTable { min-width: 1180px; }
.adminTable--tenants { min-width: 1100px; }
.adminTable thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--panel);
}
.adminTable tr.clickable { cursor: pointer; }
.adminTable tr.clickable:hover { background: var(--hover); }
.adminTable tr.clickable.is-selected { background: color-mix(in srgb, var(--primary) 10%, transparent); }
.adminTable tr.hidden { display: none; }
.adminTable__row--active { background: color-mix(in srgb, var(--primary) 8%, transparent); }
.adminTable__linkBtn {
  padding: 2px 8px;
  font-size: 0.85rem;
}
.adminPromoForm__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 0.75rem 1rem;
  margin-bottom: 0.75rem;
}
.adminPromoForm__check {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-direction: row;
}
.adminPromoForm__textarea {
  width: 100%;
  min-height: 4rem;
  resize: vertical;
}
.adminPromoForm__payload {
  margin: 0.75rem 0;
  padding: 0.75rem 1rem;
  border: 1px solid var(--line);
  border-radius: 6px;
}
@media (max-width: 980px) {
  .adminPage { padding: 16px 12px 22px; }
  .adminCard { padding: 10px; }
  .adminTableWrap { max-height: 52vh; }
}
@media (max-width: 760px) {
  .adminCard__header--users { align-items: flex-start; }
  .adminSearchInput { width: 100%; max-width: none; }
  .adminFilterCount { margin-left: 0; width: 100%; }
}


/* Admin mobile hardening */
body:has(.adminPage) .topbar__right {
  min-width: 0;
}
.adminTableWrap {
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-inline: contain;
}
@media (max-width: 760px) {
  body:has(.adminPage) .topbar {
    align-items: flex-start;
  }
  body:has(.adminPage) .topbar__right {
    overflow-x: auto;
    max-width: 100%;
    padding-bottom: 2px;
    scrollbar-width: thin;
    justify-content: flex-start;
  }
  body:has(.adminPage) .topbar__login {
    flex: 0 0 auto;
    min-height: 40px;
    display: inline-flex;
    align-items: center;
  }
  .adminPage {
    padding-left: 10px;
    padding-right: 10px;
  }
  .adminToolbar,
  .adminFilters {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .adminToolbar > *,
  .adminFilterLabel,
  .adminFilterSelect,
  .adminSearchInput {
    width: 100%;
    max-width: none;
  }
  .adminCard {
    border-radius: 10px;
  }
  .adminTableWrap {
    width: 100%;
    max-width: 100%;
  }
  .adminTable th,
  .adminTable td {
    padding-top: 10px;
    padding-bottom: 10px;
  }
  .adminMaintenanceActions,
  .adminActions,
  .adminUsersActions,
  .adminEntitlementsActions,
  .adminSeatsActions,
  .adminPricingV2Actions {
    gap: 8px;
  }
  .adminMaintenanceActions .btn,
  .adminActions .btn,
  .adminUsersActions .btn,
  .adminEntitlementsActions .btn,
  .adminSeatsActions .btn,
  .adminPricingV2Actions .btn {
    min-height: 42px;
  }
}
@media (max-width: 480px) {
  body:has(.adminPage) .topbar {
    grid-template-columns: 1fr;
    row-gap: 6px;
  }
  body:has(.adminPage) .topbar__right {
    width: 100%;
    justify-self: stretch;
  }
  .adminPage__title {
    font-size: 1.25rem;
  }
}
