/**
 * @file
 * Styly pro administraci Top-Obedy.
 *
 * BEM pojmenování pro sémantiku, vlastní utility pro stylování.
 * Komponenty: dashboard, seznam uživatelů, rozcestník nastavení, formuláře.
 */

/* ==========================================================================
   Proměnné
   ========================================================================== */

:root {
  --topobedy-primary: #2d6cdf;
  --topobedy-primary-hover: #1f58c4;
  --topobedy-primary-light: #eaf1fe;
  --topobedy-success: #16a34a;
  --topobedy-success-light: #f0fdf4;
  --topobedy-warning: #ca8a04;
  --topobedy-warning-light: #fefce8;
  --topobedy-danger: #dc2626;
  --topobedy-danger-light: #fef2f2;
  --topobedy-bg: #f5f8fc;
  --topobedy-card-bg: #ffffff;
  --topobedy-text: #1e293b;
  --topobedy-text-secondary: #64748b;
  --topobedy-border: #e4e9f2;
  --topobedy-radius: 8px;
  --topobedy-radius-card: 10px;
  --topobedy-shadow: 0 1px 2px rgba(16, 24, 40, 0.04), 0 1px 3px rgba(16, 24, 40, 0.06);
  --topobedy-shadow-md: 0 4px 6px rgba(16, 24, 40, 0.07), 0 2px 4px rgba(16, 24, 40, 0.06);
  --topobedy-sidebar-width: 302px;

  /* Sidebar admin (tmavě navy téma dle mockupu „Dashboard v3") */
  --sb-bg: #17243d;
  --sb-bg-2: #142036;
  --sb-hover: #21314f;
  --sb-active: #2d6cdf;
  --sb-active-glow: 0 4px 12px rgba(45, 108, 223, 0.35);
  --sb-text: #c5cedf;
  --sb-text-strong: #ffffff;
  --sb-dim: #76849f;
  --sb-icon: #8b99b8;
  --sb-divider: rgba(255, 255, 255, 0.07);
  --sb-logo-grad: linear-gradient(150deg, #3b7bee, #1f58c4);
}

/* ==========================================================================
   Oprava barev titulků v Drupal messages (Elevante theme přebíjí headingy)
   ========================================================================== */

.messages--warning .messages__title {
  color: var(--gin-color-warning, #92400e);
}

.messages--status .messages__title {
  color: var(--gin-color-green-light, #166534);
}

.messages--error .messages__title {
  color: var(--gin-color-danger, #991b1b);
}

/* ==========================================================================
   Globální layout pro všechny top-admin stránky
   ========================================================================== */

body[class*="path-top-admin"] .page-wrapper .layout-container {
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
}

/* ==========================================================================
   Společné
   ========================================================================== */

.topobedy-admin {
  max-width: 1400px;
  margin: 0 auto;
  padding: 16px 16px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  color: var(--topobedy-text);
}

.topobedy-admin__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
  flex-wrap: wrap;
  gap: 12px;
}

.topobedy-admin__title {
  font-size: 1.5rem;
  font-weight: 700;
  margin: 0;
  color: var(--topobedy-text);
}

.topobedy-admin__current-user {
  font-size: 0.875rem;
  color: var(--topobedy-text-secondary);
  margin: 4px 0 0 0;
}

.topobedy-admin__current-user-link {
  text-decoration: none;
  color: inherit;
}

.topobedy-admin__current-user-link strong {
  color: var(--topobedy-text);
  font-weight: 600;
  transition: color 0.15s;
}

.topobedy-admin__current-user-link:hover strong {
  color: var(--topobedy-primary);
}

.topobedy-admin__actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

/* Breadcrumbs */

.breadcrumb-nav {
  background-color: #f9fafb;
  padding: 0px 16px;
  border-radius: 6px;
  margin-bottom: 10px;
  margin-top: 10px;
}

.breadcrumb {
  display: flex;
  align-items: center;
  list-style: none;
  padding: 0;
  margin: 0;
  gap: 0;
}

.breadcrumb-item {
  display: flex;
  align-items: center;
}

.breadcrumb-content {
  display: flex;
  align-items: center;
}

/* Home link with icon */
.breadcrumb-link--home {
  display: flex;
  align-items: center;
  color: #6b7280;
  text-decoration: none;
  transition: color 0.2s;
}

.breadcrumb-link--home:hover {
  color: #374151;
}

.breadcrumb-home-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

/* Separator icon */
.breadcrumb-separator {
  width: 24px;
  height: 44px;
  flex-shrink: 0;
  color: #e5e7eb;
  margin: 0 8px;
}

/* Regular breadcrumb links */
.breadcrumb-link {
  font-size: 14px;
  font-weight: 500;
  color: #6b7280;
  text-decoration: none;
  transition: color 0.2s;
}

.breadcrumb-link:hover {
  color: #111827;
}

/* Active/current page (not a link) */
.breadcrumb-current {
  font-size: 14px;
  font-weight: 500;
  color: #111827;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Tlačítka */

.topobedy-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.25rem;
  border-radius: 6px;
  border: 1px solid transparent;
  cursor: pointer;
  text-decoration: none;
  transition: background-color 0.15s, border-color 0.15s, box-shadow 0.15s;
  white-space: nowrap;
}

.topobedy-btn--primary {
  background-color: var(--topobedy-primary);
  color: #ffffff;
  border-color: var(--topobedy-primary);
}

.topobedy-btn--primary:hover {
  background-color: var(--topobedy-primary-hover);
  border-color: var(--topobedy-primary-hover);
  color: #ffffff;
}

.topobedy-btn--secondary {
  background-color: #475569;
  color: #ffffff;
  border-color: #475569;
}

.topobedy-btn--secondary:hover {
  background-color: #334155;
  border-color: #334155;
  color: #ffffff;
}

.topobedy-btn--nav,
.topobedy-btn--archive {
  background-color: var(--topobedy-card-bg);
  color: var(--topobedy-text-secondary);
  border-color: var(--topobedy-border);
}

.topobedy-btn--nav:hover,
.topobedy-btn--archive:hover {
  background-color: var(--topobedy-bg);
  border-color: #cbd5e1;
  color: var(--topobedy-text);
}

.topobedy-btn--danger {
  background-color: var(--topobedy-card-bg);
  color: var(--topobedy-danger);
  border-color: var(--topobedy-border);
}

.topobedy-btn--danger:hover {
  background-color: var(--topobedy-danger-light);
  border-color: var(--topobedy-danger);
  color: var(--topobedy-danger);
}

.topobedy-btn--success {
  background-color: var(--topobedy-card-bg);
  color: var(--topobedy-success);
  border-color: var(--topobedy-border);
}

.topobedy-btn--success:hover {
  background-color: var(--topobedy-success-light);
  border-color: var(--topobedy-success);
  color: var(--topobedy-success);
}

.topobedy-btn--reset.topobedy-btn--reset {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.25rem;
  border-radius: 6px;
  border: 1px solid transparent;
  box-shadow: none;
  min-width: 0;
  min-height: 0;
  margin: 0;
}

.topobedy-btn--sm {
  padding: 4px 10px;
  font-size: 0.8125rem;
}

.topobedy-admin__logout svg {
  width: 18px;
  height: 18px;
}

/* Ikony (SVG inline) */

.topobedy-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.topobedy-icon svg {
  width: 100%;
  height: 100%;
}

.topobedy-icon--lg {
  width: 28px;
  height: 28px;
}

/* ==========================================================================
   Dashboard
   ========================================================================== */

.topobedy-dashboard__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 32px;
}

.topobedy-dashboard__stat {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px;
  background: var(--topobedy-card-bg);
  border: 1px solid var(--topobedy-border);
  border-radius: var(--topobedy-radius-card);
  padding: 20px;
  box-shadow: var(--topobedy-shadow);
}

.topobedy-dashboard__stat-badge {
  position: absolute;
  top: 12px;
  right: 12px;
  background: var(--topobedy-success-light);
  color: var(--topobedy-success);
  font-size: 0.75rem;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 10px;
}

.topobedy-dashboard__stat-badge--warning {
  background: var(--topobedy-warning-light);
  color: var(--topobedy-warning);
}

.topobedy-dashboard__stat-badge--alert {
  background: var(--topobedy-danger);
  color: #fff;
  animation: topobedy-stat-pulse 1.6s ease-in-out infinite;
}

.topobedy-dashboard__stat--alert {
  border-color: var(--topobedy-danger);
  box-shadow: 0 0 0 2px var(--topobedy-danger-light), var(--topobedy-shadow);
}

.topobedy-dashboard__stat--alert .topobedy-dashboard__stat-icon {
  background: var(--topobedy-danger-light);
  color: var(--topobedy-danger);
}

.topobedy-dashboard__stat--alert .topobedy-dashboard__stat-icon svg {
  width: 28px;
  height: 28px;
}

.topobedy-dashboard__stat--warning .topobedy-dashboard__stat-icon {
  background: var(--topobedy-warning-light);
  color: var(--topobedy-warning);
}

@keyframes topobedy-stat-pulse {
  0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.45); }
  50%      { transform: scale(1.06); box-shadow: 0 0 0 6px rgba(220, 38, 38, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .topobedy-dashboard__stat-badge--alert { animation: none; }
}

.topobedy-dashboard__stat-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: var(--topobedy-primary-light);
  color: var(--topobedy-primary);
  flex-shrink: 0;
}

.topobedy-dashboard__stat-icon svg {
  width: 24px;
  height: 24px;
}

.topobedy-dashboard__stat-content {
  min-width: 0;
}

.topobedy-dashboard__stat-value {
  display: block;
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--topobedy-text);
}

.topobedy-dashboard__stat-label {
  display: block;
  font-size: 0.875rem;
  color: var(--topobedy-text-secondary);
  margin-top: 2px;
}

/* Dashboard - rychlé odkazy */

.topobedy-dashboard__section-title {
  display: none;
  font-size: 1.125rem;
  font-weight: 600;
  margin: 0 0 16px 0;
  color: var(--topobedy-text);
}

.topobedy-dashboard__fieldset {
  border: none;
  padding: 0 24px;
  margin-bottom: 12px;
}

.topobedy-dashboard__fieldset-legend {
  font-size: 1rem;
  font-weight: 600;
  color: var(--topobedy-text);
  padding: 0 8px;
}

.topobedy-dashboard__links {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
  gap: 12px;
  margin-bottom: 0;
  list-style: none;
  padding: 0;
}

.topobedy-dashboard__link {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: var(--topobedy-card-bg);
  border: 1px solid var(--topobedy-border);
  border-radius: var(--topobedy-radius);
  padding: 16px;
  text-decoration: none;
  color: var(--topobedy-text);
  transition: border-color 0.15s, box-shadow 0.15s;
}

.topobedy-dashboard__link:hover {
  border-color: var(--topobedy-primary);
  box-shadow: var(--topobedy-shadow-md);
}

.topobedy-dashboard__link-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 8px;
  background: var(--topobedy-primary-light);
  color: var(--topobedy-primary);
  flex-shrink: 0;
}

.topobedy-dashboard__link-icon svg {
  width: 20px;
  height: 20px;
}

.topobedy-dashboard__link-content {
  min-width: 0;
}

.topobedy-dashboard__link-title {
  display: block;
  font-weight: 600;
  font-size: 0.9375rem;
  margin-bottom: 2px;
}

.topobedy-dashboard__link-desc {
  display: block;
  font-size: 0.8125rem;
  color: var(--topobedy-text-secondary);
}

/* Dashboard - nedávní uživatelé */

.topobedy-dashboard__recent {
  list-style: none;
  padding: 0;
  margin: 0;
}

.topobedy-dashboard__recent-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 16px;
  border-bottom: 1px solid var(--topobedy-border);
  font-size: 0.875rem;
}

.topobedy-dashboard__recent-item:last-child {
  border-bottom: none;
}

.topobedy-dashboard__recent-name {
  font-weight: 500;
}

.topobedy-dashboard__recent-role {
  color: var(--topobedy-text-secondary);
  font-size: 0.8125rem;
}

.topobedy-dashboard__recent-card {
  display: none;
  background: var(--topobedy-card-bg);
  border: 1px solid var(--topobedy-border);
  border-radius: var(--topobedy-radius-card);
  overflow: hidden;
  box-shadow: var(--topobedy-shadow);
}

/* ==========================================================================
   Sdílené styly seznamů (uživatelé, zákazníci, strávníci)
   ========================================================================== */

.topobedy-users__toolbar,
.topobedy-customers__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

.topobedy-users__filters,
.topobedy-customers__filters {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.topobedy-users__filter-label {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--topobedy-text-secondary);
}

.topobedy-users__filter-select,
.topobedy-users__search-input,
.topobedy-customers__search-input,
.topobedy-customers__select {
  padding: 6px 12px;
  font-size: 0.875rem;
  border: 1px solid var(--topobedy-border);
  border-radius: 6px;
  background: var(--topobedy-card-bg);
  color: var(--topobedy-text);
  outline: none;
  transition: border-color 0.15s;
}

.topobedy-users__filter-select:focus,
.topobedy-users__search-input:focus,
.topobedy-customers__search-input:focus,
.topobedy-customers__select:focus {
  border-color: var(--topobedy-primary);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.topobedy-users__search-input,
.topobedy-customers__search-input {
  min-width: 200px;
}

/* Globální table-wrap — card obal pro všechny seznamové tabulky */
.topobedy-table-wrap {
  background: var(--topobedy-card-bg, #ffffff);
  border: 1px solid var(--topobedy-border, #e2e8f0);
  border-radius: var(--topobedy-radius, 8px);
  overflow-x: auto;
  overflow-y: hidden;
  padding-bottom: 1rem;
  box-shadow: var(--topobedy-shadow, 0 1px 3px rgba(0,0,0,0.1), 0 1px 2px rgba(0,0,0,0.06));
}

/* Globální tabulka — společná třída pro všechny seznamové tabulky */
.topobedy-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
  margin: 0;
}

.topobedy-table thead {
  height: 50px;
}

.topobedy-table thead th {
  text-align: left;
  padding: 12px 16px;
  font-weight: 600;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--topobedy-text-secondary, #64748b);
  background: var(--topobedy-bg, #f8fafc);
  border-bottom: 2px solid var(--topobedy-border, #e2e8f0);
  white-space: nowrap;
}

.topobedy-table tbody td {
  padding: 10px 12px;
  /* border-bottom: 1px solid var(--topobedy-border, #e2e8f0); */
  vertical-align: middle;
}

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

.topobedy-table tbody tr:hover {
  background-color: var(--topobedy-bg, #f8fafc);
}

.topobedy-users__table td:first-child,
.topobedy-customers__table td:first-child,
.topobedy-boarders__table td:first-child {
  font-weight: 600;
  color: var(--topobedy-text-secondary);
  text-align: left;
  padding-left: 1em;
}

/* Proklik v tabulkovém seznamu — zvýšená specificita kvůli Gin theme */
.topobedy-table a.topobedy-list-link,
a.topobedy-list-link {
  color: var(--topobedy-text, #1e293b);
  text-decoration: underline dashed;
  text-decoration-color: var(--topobedy-primary, #2563eb);
  text-underline-offset: 2px;
  font-weight: 500;
}

.topobedy-table a.topobedy-list-link:hover,
a.topobedy-list-link:hover {
  color: var(--topobedy-primary, #2563eb);
  text-decoration: underline;
  text-decoration-color: var(--topobedy-primary, #2563eb);
}

/* Klikatelný email */
.topobedy-table a.topobedy-customers__email-link,
.topobedy-table a.topobedy-users__email-link,
a.topobedy-users__email-link,
a.topobedy-customers__email-link {
  color: var(--topobedy-text, #1e293b);
  text-decoration: none;
}

.topobedy-table a.topobedy-customers__email-link:hover,
.topobedy-table a.topobedy-users__email-link:hover,
a.topobedy-users__email-link:hover,
a.topobedy-customers__email-link:hover {
  color: var(--topobedy-primary, #2563eb);
  text-decoration: underline;
}

/* Sloučená buňka Uživatel (ikona + jméno + @username) */

.topobedy-users__user-cell {
  display: flex;
  align-items: center;
  gap: 8px;
}

.topobedy-users__role-icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
}

.topobedy-users__role-icon svg {
  width: 18px;
  height: 18px;
}

/* Per-role icon background & color */
.topobedy-users__role-icon--topobedy_admin {
  background: #fef2f2;
  color: #dc2626;
}

.topobedy-users__role-icon--topobedy_operator {
  background: #eff6ff;
  color: #2563eb;
}

.topobedy-users__role-icon--topobedy_provozni {
  background: #faf5ff;
  color: #9333ea;
}

.topobedy-users__role-icon--topobedy_kancelar {
  background: #eef2ff;
  color: #4f46e5;
}

.topobedy-users__role-icon--topobedy_kuchyne {
  background: #fff7ed;
  color: #ea580c;
}

.topobedy-users__role-icon--topobedy_ridic {
  background: #ecfdf5;
  color: #059669;
}

.topobedy-users__user-info {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.topobedy-users__user-primary {
  font-weight: 500;
  color: var(--topobedy-text);
  white-space: nowrap;
}

.topobedy-users__user-secondary {
  font-size: 0.8125rem;
  color: var(--topobedy-text-secondary);
  white-space: nowrap;
}

/* Sloučená buňka Kontakt (email + telefon) */

.topobedy-users__contact-cell {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.topobedy-users__contact-secondary {
  font-size: 0.8125rem;
  color: var(--topobedy-text-secondary);
  white-space: nowrap;
}

/* Prázdná poznámka */

.topobedy-users__note-empty {
  color: var(--topobedy-text-secondary);
}

/* Badge stavu */

.topobedy-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  font-size: 0.75rem;
  font-weight: 500;
  border-radius: 9999px;
  white-space: nowrap;
}

.topobedy-badge--active {
  background: var(--topobedy-success-light);
  color: var(--topobedy-success);
  border: 1px solid;
}

.topobedy-badge--warning {
  background: var(--topobedy-warning-light);
  color: var(--topobedy-warning);
  border: 1px solid;
}

.topobedy-badge--archived {
  background: var(--topobedy-danger-light);
  color: var(--topobedy-danger);
  border: 1px solid;
}

.topobedy-badge--danger {
  background: var(--topobedy-danger-light);
  color: var(--topobedy-danger);
  border: 1px solid;
}

.topobedy-badge--role {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #eff6ff;
  color: #2563eb;
  border: 1px solid;
}

.topobedy-badge--role svg {
  flex-shrink: 0;
}

.topobedy-badge--role-topobedy_admin {
  background: #fef2f2;
  color: #dc2626;
  border: 1px solid;
}

.topobedy-badge--role-topobedy_operator {
  background: #eff6ff;
  color: #2563eb;
  border: 1px solid;
}

.topobedy-badge--role-topobedy_provozni {
  background: #faf5ff;
  color: #9333ea;
  border: 1px solid;
}

.topobedy-badge--role-topobedy_kancelar {
  background: #eef2ff;
  color: #4f46e5;
  border: 1px solid;
}

.topobedy-badge--role-topobedy_kuchyne {
  background: #fff7ed;
  color: #ea580c;
  border: 1px solid;
}

.topobedy-badge--role-topobedy_ridic {
  background: #ecfdf5;
  color: #059669;
  border: 1px solid;
}

.topobedy-badge--muted {
  background: #f1f5f9;
  color: var(--topobedy-text-secondary);
  border: 1px solid;
}

.topobedy-badge--chatar {
  background: #ecfeff;
  color: #0891b2;
  border: 1px solid;
}

.topobedy-badge--seasonal {
  background: #fefce8;
  color: #ca8a04;
  border: 1px solid;
}

/* Akce v tabulce */

.topobedy-users__actions-cell,
.topobedy-customers__actions-cell,
.topobedy-boarders__actions-cell {
  display: flex;
  gap: 4px;
  align-items: center;
  flex-wrap: nowrap;
  flex-shrink: 0;
}

/* Ikonové tlačítko */

.topobedy-btn--icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border-radius: 6px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--topobedy-text-secondary);
  cursor: pointer;
  transition: background-color 0.15s, color 0.15s, border-color 0.15s;
}

.topobedy-btn--icon:hover {
  background-color: var(--topobedy-bg);
  border-color: var(--topobedy-border);
  color: var(--topobedy-primary);
}

.topobedy-btn--icon svg {
  width: 18px;
  height: 18px;
}

.topobedy-btn--icon-danger:hover {
  background-color: var(--topobedy-danger-light);
  border-color: var(--topobedy-danger);
  color: var(--topobedy-danger);
}

.topobedy-btn--icon-active {
  color: var(--topobedy-primary);
}

.topobedy-btn--icon-missing {
  color: var(--topobedy-danger);
}

.topobedy-btn--icon-disabled {
  opacity: 0.35;
  cursor: not-allowed;
  pointer-events: none;
}

.topobedy-btn--icon-disabled:hover {
  background: transparent;
  border-color: transparent;
  color: var(--topobedy-text-secondary);
}

/* Červené podbarvení nových zákazníků */

.topobedy-customers__row--new {
  background-color: #fef2f2;
}

.topobedy-customers__row--new:hover {
  background-color: #fee2e2;
}

/* Poznámka - zkrácení */

.topobedy-users__note {
  max-width: 200px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--topobedy-text-secondary);
  font-size: 0.8125rem;
}

/* Prázdný stav */

.topobedy-empty {
  text-align: center;
  padding: 48px 16px;
  color: var(--topobedy-text-secondary);
}

.topobedy-empty__text {
  font-size: 1rem;
  margin: 0 0 16px 0;
}

/* Pager */

.topobedy-users__pager {
  margin-top: 16px;
}

/* Počet výsledků */

.topobedy-users__count,
.topobedy-customers__count {
  font-size: 0.8125rem;
  color: var(--topobedy-text-secondary);
  margin-bottom: 8px;
}

/* ==========================================================================
   Detail zákazníka
   ========================================================================== */

.topobedy-customer-detail__status {
  display: flex;
  gap: 6px;
  align-items: center;
  padding-bottom: 16px;
}

.topobedy-customer-detail__section {
  background: var(--topobedy-card-bg);
  border: 1px solid var(--topobedy-border);
  border-radius: var(--topobedy-radius-card);
  padding: 20px 24px;
  margin-bottom: 16px;
  box-shadow: var(--topobedy-shadow);
}

.topobedy-customer-detail__section h2 {
  font-size: 1rem;
  font-weight: 600;
  color: var(--topobedy-text);
  margin: 0 0 12px 0;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--topobedy-border);
}

.topobedy-customer-detail__dl {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 8px 16px;
  margin: 0;
  font-size: 0.875rem;
}

.topobedy-customer-detail__dl dt {
  font-weight: 500;
  color: var(--topobedy-text-secondary);
}

.topobedy-customer-detail__dl dd {
  margin: 0;
  color: var(--topobedy-text);
}

.topobedy-customer-detail__dl dd a {
  color: var(--topobedy-primary);
  text-decoration: none;
}

.topobedy-customer-detail__dl dd a:hover {
  text-decoration: underline;
}

.topobedy-customer-detail__actions,
.topobedy-customers__actions,
.topobedy-boarders__actions,
.topobedy-pricing__actions,
.topobedy-meals__actions,
.topobedy-menus__actions,
.topobedy-orders__actions,
.topobedy-users__actions {
  display: flex;
  gap: 8px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}

/* ==========================================================================
   Rozcestník nastavení
   ========================================================================== */

.topobedy-settings__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
}

.topobedy-settings__card {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  background: var(--topobedy-card-bg);
  border: 1px solid var(--topobedy-border);
  border-radius: var(--topobedy-radius-card);
  padding: 20px;
  text-decoration: none;
  color: var(--topobedy-text);
  transition: border-color 0.15s, box-shadow 0.15s;
  box-shadow: var(--topobedy-shadow);
}

.topobedy-settings__card:hover {
  border-color: var(--topobedy-primary);
  box-shadow: var(--topobedy-shadow-md);
}

.topobedy-settings__card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: var(--topobedy-primary-light);
  color: var(--topobedy-primary);
  flex-shrink: 0;
}

.topobedy-settings__card-icon svg {
  width: 24px;
  height: 24px;
}

.topobedy-settings__card-content {
  min-width: 0;
}

.topobedy-settings__card-title {
  display: block;
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: 4px;
}

.topobedy-settings__card-desc {
  display: block;
  font-size: 0.875rem;
  color: var(--topobedy-text-secondary);
}

/* ==========================================================================
   Formuláře - doplňkové styly
   ========================================================================== */

.topobedy-form-wrapper {
  max-width: 720px;
}

.topobedy-form-wrapper .form-item {
  margin-bottom: 16px;
}

/* ARES tlačítko - loading stav */

.topobedy-ares-loading .button--secondary {
  opacity: 0.6;
  pointer-events: none;
}

.topobedy-ares-spinner {
  display: none;
  width: 16px;
  height: 16px;
  border: 2px solid var(--topobedy-border);
  border-top-color: var(--topobedy-primary);
  border-radius: 50%;
  animation: topobedy-spin 0.6s linear infinite;
  margin-left: 8px;
  vertical-align: middle;
}

.topobedy-ares-loading .topobedy-ares-spinner {
  display: inline-block;
}

@keyframes topobedy-spin {
  to {
    transform: rotate(360deg);
  }
}

/* Unsaved changes - vizuální indikace */

.topobedy-form-dirty .topobedy-admin__title::after {
  content: " (neuloženo)";
  font-size: 0.75rem;
  font-weight: 400;
  color: var(--topobedy-warning);
}

/* ==========================================================================
   Responzivita
   ========================================================================== */

@media (max-width: 768px) {
  .topobedy-admin {
    padding: 16px 12px;
  }

  .topobedy-admin__header {
    flex-direction: column;
    align-items: flex-start;
  }

  .topobedy-dashboard__stats {
    grid-template-columns: 1fr;
  }

  .topobedy-dashboard__links {
    grid-template-columns: 1fr;
  }

  .topobedy-settings__grid {
    grid-template-columns: 1fr;
  }

  .topobedy-users__toolbar,
  .topobedy-customers__toolbar {
    flex-direction: column;
    align-items: flex-start;
  }

  .topobedy-users__filters,
  .topobedy-customers__filters {
    width: 100%;
  }

  .topobedy-users__search-input,
  .topobedy-customers__search-input {
    width: 100%;
    min-width: 0;
  }

  /* Na mobilu skrýt méně důležité sloupce */
  .topobedy-users__table .topobedy-users__col-note,
  .topobedy-customers__table .topobedy-customers__col-phone,
  .topobedy-customers__table .topobedy-customers__col-address,
  .topobedy-customers__table .topobedy-customers__col-payment,
  .topobedy-customers__table .topobedy-customers__col-route,
  .topobedy-customers__table .topobedy-customers__col-price {
    display: none;
  }

  /* Detail zákazníka — dl na 1 sloupec */
  .topobedy-customer-detail__dl {
    grid-template-columns: 1fr;
  }

  .topobedy-customer-detail__dl dt {
    margin-top: 8px;
  }
}

@media (min-width: 769px) and (max-width: 1024px) {
  .topobedy-dashboard__stats {
    grid-template-columns: repeat(2, 1fr);
  }

  .topobedy-settings__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  /* Na tabletu skrýt poznámku a adresu */
  .topobedy-users__table .topobedy-users__col-note,
  .topobedy-customers__table .topobedy-customers__col-address {
    display: none;
  }
}

/* ==========================================================================
   Přihlašovací stránka
   ========================================================================== */

.topobedy-login {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--topobedy-bg);
  padding: 24px;
}

.topobedy-login__container {
  background: var(--topobedy-card-bg);
  border-radius: var(--topobedy-radius);
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  padding: 48px;
  width: 100%;
  max-width: 420px;
}

.topobedy-login__header {
  text-align: center;
  margin-bottom: 32px;
}

.topobedy-login__title {
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--topobedy-text);
  margin: 0 0 8px 0;
}

.topobedy-login__subtitle {
  font-size: 0.875rem;
  color: var(--topobedy-text-secondary);
  margin: 0;
}

.topobedy-login__form {
  /* Reset Drupal form defaults */
}

.topobedy-login__form .form-item {
  margin-bottom: 20px;
}

.topobedy-login__form label {
  display: block;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--topobedy-text);
  margin-bottom: 6px;
}

.topobedy-login__form input[type="text"],
.topobedy-login__form input[type="password"] {
  width: 100%;
  padding: 10px 14px;
  font-size: 0.875rem;
  line-height: 1.5;
  border: 1px solid var(--topobedy-border);
  border-radius: 6px;
  transition: border-color 0.15s, box-shadow 0.15s;
}

.topobedy-login__form input[type="text"]:focus,
.topobedy-login__form input[type="password"]:focus {
  outline: none;
  border-color: var(--topobedy-primary);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.topobedy-login__form .form-actions {
  margin-top: 24px;
}

.topobedy-login__form button[type="submit"] {
  width: 100%;
  padding: 12px 16px;
  font-size: 0.875rem;
  font-weight: 500;
  color: #ffffff;
  background-color: var(--topobedy-primary);
  border: 1px solid var(--topobedy-primary);
  border-radius: 6px;
  cursor: pointer;
  transition: background-color 0.15s, border-color 0.15s;
}

.topobedy-login__form button[type="submit"]:hover {
  background-color: var(--topobedy-primary-hover);
  border-color: var(--topobedy-primary-hover);
}

.topobedy-login__form .description {
  font-size: 0.8125rem;
  color: var(--topobedy-text-secondary);
  margin-top: 4px;
}

@media (max-width: 480px) {
  .topobedy-login__container {
    padding: 32px 24px;
  }

  .topobedy-login__title {
    font-size: 1.5rem;
  }
}

/* ==========================================================================
   Pager — klientské stránkování tabulek
   ========================================================================== */

/* Skrýt tabulku před inicializací pageru — zabránit FOUC (flash of unpaginated content) */
.topobedy-table-wrap:has(table[data-topobedy-pager]:not(.topobedy-pager--ready)) {
  display: none;
}

.topobedy-pager-loader {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48px 0;
  color: var(--topobedy-text-secondary);
  font-size: 0.875rem;
  gap: 10px;
}

.topobedy-pager-loader__spinner {
  width: 20px;
  height: 20px;
  border: 2px solid var(--topobedy-border);
  border-top-color: var(--topobedy-primary);
  border-radius: 50%;
  animation: topobedy-spin 0.6s linear infinite;
}

@keyframes topobedy-spin {
  to { transform: rotate(360deg); }
}

.topobedy-pager {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 0;
  font-size: 0.8125rem;
  color: var(--topobedy-text-secondary);
  flex-wrap: wrap;
}

.topobedy-pager__size {
  display: flex;
  align-items: center;
}

.topobedy-pager__size-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 400;
  color: var(--topobedy-text-secondary);
  cursor: default;
}

.topobedy-pager__size-select {
  padding: 4px 8px;
  border: 1px solid var(--topobedy-border);
  border-radius: var(--topobedy-radius);
  background: #fff;
  font-size: 0.8125rem;
  color: var(--topobedy-text);
  cursor: pointer;
}

.topobedy-pager__size-select:focus {
  outline: none;
  border-color: var(--topobedy-primary);
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}

.topobedy-pager__nav {
  display: flex;
  align-items: center;
  gap: 2px;
}

.topobedy-pager__page {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 32px;
  padding: 0 6px;
  border: 1px solid var(--topobedy-border);
  border-radius: var(--topobedy-radius);
  background: #fff;
  font-size: 0.8125rem;
  color: var(--topobedy-text);
  cursor: pointer;
  transition: background-color 0.15s, border-color 0.15s, color 0.15s;
  line-height: 1;
}

.topobedy-pager__page:hover:not(.topobedy-pager__page--disabled):not(.topobedy-pager__page--active) {
  background-color: var(--topobedy-bg);
  border-color: var(--topobedy-primary);
  color: var(--topobedy-primary);
}

.topobedy-pager__page--active {
  background-color: var(--topobedy-primary);
  border-color: var(--topobedy-primary);
  color: #fff;
  font-weight: 600;
  cursor: default;
}

.topobedy-pager__page--disabled {
  opacity: 0.4;
  cursor: default;
  pointer-events: none;
}

.topobedy-pager__ellipsis {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 32px;
  color: var(--topobedy-text-secondary);
  font-size: 0.875rem;
  cursor: default;
}

.topobedy-pager__info {
  white-space: nowrap;
  color: var(--topobedy-text-secondary);
}

@media (max-width: 640px) {
  .topobedy-pager {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
}

/* ==========================================================================
   Stat karty — globální komponenta
   ========================================================================== */

.topobedy-stat-card {
  background: var(--topobedy-card-bg);
  border: 1px solid var(--topobedy-border);
  border-radius: var(--topobedy-radius-card);
  padding: 16px 20px;
  border-left: 4px solid transparent;
  box-shadow: var(--topobedy-shadow);
}

.topobedy-stat-card__value {
  display: block;
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--topobedy-text);
}

.topobedy-stat-card__label {
  display: block;
  font-size: 0.875rem;
  color: var(--topobedy-text-secondary);
  margin-top: 2px;
}

.topobedy-stat-card__sublabel {
  display: block;
  font-size: 0.8125rem;
  color: var(--topobedy-text-secondary);
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px dashed var(--topobedy-border);
  font-variant-numeric: tabular-nums;
}

.topobedy-stat-card--blue    { border-left-color: #2563eb; }
.topobedy-stat-card--indigo  { border-left-color: #6366f1; }
.topobedy-stat-card--gray    { border-left-color: #94a3b8; }
.topobedy-stat-card--green   { border-left-color: #16a34a; }
.topobedy-stat-card--amber   { border-left-color: #d97706; }
.topobedy-stat-card--danger  { border-left-color: #dc2626; }

/* ==========================================================================
   Žádosti o změnu profilu (D.6) — .topobedy-pcr
   ========================================================================== */

.topobedy-pcr__stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}

.topobedy-pcr__actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}

/* --- Toolbar --- */
.topobedy-pcr__toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 16px;
  padding: 10px 16px;
  background: #fff;
  border: 1px solid var(--topobedy-border);
  border-radius: var(--topobedy-radius);
}

.topobedy-pcr__filters {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
  flex: 1 1 auto;
}

.topobedy-pcr__filters-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: #475569;
  font-weight: 500;
}

.topobedy-pcr__filters-label svg {
  width: 16px;
  height: 16px;
  color: #94a3b8;
}

.topobedy-pcr__filter-field {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.topobedy-pcr__filter-icon {
  position: absolute;
  left: 10px;
  width: 16px;
  height: 16px;
  color: #94a3b8;
  pointer-events: none;
}

.topobedy-pcr__search-input,
.topobedy-pcr__filter-select,
.topobedy-pcr__filter-input {
  padding: 7px 12px 7px 34px;
  border: 1px solid var(--topobedy-border);
  border-radius: var(--topobedy-radius);
  font-size: 14px;
  background: #fff;
  color: #1e293b;
  line-height: 1.4;
  min-width: 180px;
}

.topobedy-pcr__filter-field--search .topobedy-pcr__search-input {
  min-width: 240px;
}

.topobedy-pcr__filter-select {
  padding-right: 28px;
  appearance: auto;
  cursor: pointer;
}

.topobedy-pcr__search-input:focus,
.topobedy-pcr__filter-select:focus,
.topobedy-pcr__filter-input:focus {
  outline: none;
  border-color: var(--topobedy-primary);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.topobedy-pcr__count {
  font-size: 14px;
  color: #64748b;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 768px) {
  .topobedy-pcr__toolbar { flex-direction: column; align-items: stretch; }
  .topobedy-pcr__filters { width: 100%; }
  .topobedy-pcr__search-input,
  .topobedy-pcr__filter-select,
  .topobedy-pcr__filter-input { min-width: 0; width: 100%; }
  .topobedy-pcr__count { text-align: right; }
}

/* --- Tabulka: diff cell --- */
.topobedy-pcr__diff-cell {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-variant-numeric: tabular-nums;
}

.topobedy-pcr__diff-old {
  color: var(--topobedy-text-secondary);
  text-decoration: line-through;
  max-width: 200px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.topobedy-pcr__diff-arrow {
  color: #94a3b8;
  flex-shrink: 0;
}

.topobedy-pcr__diff-new {
  color: var(--topobedy-text);
  font-weight: 500;
  max-width: 200px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.topobedy-pcr__actions-cell {
  display: flex;
  gap: 6px;
  align-items: center;
  flex-wrap: wrap;
}

.topobedy-pcr__inline-form {
  display: inline-block;
  margin: 0;
}

/* --- Detail --- */
.topobedy-pcr-detail__actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

.topobedy-pcr-detail__section {
  background: var(--topobedy-card-bg);
  border: 1px solid var(--topobedy-border);
  border-radius: var(--topobedy-radius-card);
  padding: 20px 24px;
  margin-bottom: 16px;
  box-shadow: var(--topobedy-shadow);
}

.topobedy-pcr-detail__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.topobedy-pcr-detail__heading {
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 12px 0;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--topobedy-border);
  color: var(--topobedy-text);
}

.topobedy-pcr-detail__dl {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 8px 16px;
  margin: 0;
}

.topobedy-pcr-detail__dl dt {
  font-weight: 500;
  color: var(--topobedy-text-secondary);
}

.topobedy-pcr-detail__dl dd {
  margin: 0;
  color: var(--topobedy-text);
}

.topobedy-pcr-detail__text {
  white-space: pre-wrap;
}

.topobedy-pcr-detail__inline {
  background: #f1f5f9;
  padding: 2px 6px;
  border-radius: 4px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.875rem;
}

.topobedy-pcr-detail__diff {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
}

.topobedy-pcr-detail__diff-col {
  display: flex;
  flex-direction: column;
}

.topobedy-pcr-detail__diff-label {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--topobedy-text-secondary);
  margin-bottom: 6px;
}

.topobedy-pcr-detail__diff-value {
  background: #f8fafc;
  border: 1px solid var(--topobedy-border);
  border-radius: var(--topobedy-radius);
  padding: 12px;
  margin: 0;
  font-size: 0.875rem;
  white-space: pre-wrap;
  word-break: break-word;
  min-height: 60px;
  max-height: 280px;
  overflow: auto;
}

.topobedy-pcr-detail__diff-value--old {
  color: var(--topobedy-text-secondary);
}

.topobedy-pcr-detail__diff-value--new {
  background: var(--topobedy-success-light);
  border-color: #a7f3d0;
  color: #065f46;
}

.topobedy-pcr-detail__diff-value--current {
  background: var(--topobedy-warning-light);
  border-color: #fde68a;
  color: #854d0e;
}

.topobedy-pcr-detail__diff-value--json {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.8125rem;
}

.topobedy-pcr-detail__decision-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.topobedy-pcr-detail__inline-form {
  display: inline-block;
  margin: 0;
}

.topobedy-pcr-detail__audit {
  list-style: none;
  margin: 0;
  padding: 0;
}

.topobedy-pcr-detail__audit-row {
  display: grid;
  grid-template-columns: 140px 200px 1fr;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid #f1f5f9;
  font-size: 0.875rem;
}

.topobedy-pcr-detail__audit-row:last-child {
  border-bottom: 0;
}

.topobedy-pcr-detail__audit-time {
  color: var(--topobedy-text-secondary);
  font-variant-numeric: tabular-nums;
}

.topobedy-pcr-detail__audit-action {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  color: var(--topobedy-primary);
  font-size: 0.8125rem;
}

@media (max-width: 768px) {
  .topobedy-pcr-detail__dl { grid-template-columns: 1fr; gap: 4px; }
  .topobedy-pcr-detail__audit-row { grid-template-columns: 1fr; gap: 4px; }
}

/* --- Reject + Stale modal --- */
.topobedy-pcr-modal[hidden] { display: none !important; }

.topobedy-pcr-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 80px;
}

.topobedy-pcr-modal__backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
}

.topobedy-pcr-modal__content {
  position: relative;
  width: 100%;
  max-width: 560px;
  max-height: calc(100vh - 120px);
  background: #fff;
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
}

.topobedy-pcr-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid var(--topobedy-border);
}

.topobedy-pcr-modal__title {
  font-size: 16px;
  font-weight: 600;
  color: var(--topobedy-text);
}

.topobedy-pcr-modal__close {
  background: none;
  border: none;
  font-size: 24px;
  color: var(--topobedy-text-secondary);
  cursor: pointer;
  padding: 0 4px;
  line-height: 1;
}

.topobedy-pcr-modal__body {
  padding: 16px 20px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.topobedy-pcr-modal__context {
  margin: 0;
  font-size: 0.875rem;
  color: var(--topobedy-text-secondary);
}

.topobedy-pcr-modal__label {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--topobedy-text);
}

.topobedy-pcr-modal__required {
  color: var(--topobedy-danger);
}

.topobedy-pcr-modal__textarea {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--topobedy-border);
  border-radius: var(--topobedy-radius);
  font-size: 14px;
  font-family: inherit;
  resize: vertical;
  min-height: 100px;
}

.topobedy-pcr-modal__textarea:focus {
  outline: none;
  border-color: var(--topobedy-primary);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.topobedy-pcr-modal__counter {
  font-size: 0.75rem;
  color: var(--topobedy-text-secondary);
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.topobedy-pcr-modal__footer {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding-top: 8px;
  flex-wrap: wrap;
}

/* ==========================================================================
   Přání na jídelníček (17-admin-meal-wish) — .topobedy-meal-wishes
   ========================================================================== */

.topobedy-meal-wishes__stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}

.topobedy-meal-wishes__actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}

/* --- Toolbar / filtr (form GET) --- */
.topobedy-meal-wishes__toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 16px;
  padding: 10px 16px;
  background: #fff;
  border: 1px solid var(--topobedy-border);
  border-radius: var(--topobedy-radius);
}

.topobedy-meal-wishes__filters {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
  flex: 1 1 auto;
}

.topobedy-meal-wishes__filters-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: #475569;
  font-weight: 500;
}

.topobedy-meal-wishes__filters-label svg {
  width: 16px;
  height: 16px;
  color: #94a3b8;
}

.topobedy-meal-wishes__filter-field {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.topobedy-meal-wishes__filter-icon {
  position: absolute;
  left: 10px;
  width: 16px;
  height: 16px;
  color: #94a3b8;
  pointer-events: none;
}

.topobedy-meal-wishes__filter-select {
  padding: 7px 28px 7px 34px;
  border: 1px solid var(--topobedy-border);
  border-radius: var(--topobedy-radius);
  font-size: 14px;
  background: #fff;
  color: #1e293b;
  line-height: 1.4;
  min-width: 200px;
  appearance: auto;
  cursor: pointer;
}

.topobedy-meal-wishes__filter-select:focus {
  outline: none;
  border-color: var(--topobedy-primary);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.topobedy-meal-wishes__count {
  font-size: 14px;
  color: #64748b;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

/* --- Popis: truncate + expand (native details) --- */
.topobedy-meal-wishes__desc {
  max-width: 360px;
}

.topobedy-meal-wishes__desc summary {
  cursor: pointer;
  color: var(--topobedy-text);
}

.topobedy-meal-wishes__desc summary:hover {
  color: var(--topobedy-primary);
}

.topobedy-meal-wishes__desc[open] summary {
  color: var(--topobedy-text-secondary);
  margin-bottom: 6px;
}

.topobedy-meal-wishes__desc-full {
  background: #f8fafc;
  border: 1px solid var(--topobedy-border);
  border-radius: var(--topobedy-radius);
  padding: 10px 12px;
  font-size: 0.875rem;
  white-space: pre-wrap;
  word-break: break-word;
}

.topobedy-meal-wishes__desc-empty {
  color: var(--topobedy-text-secondary);
}

/* --- Akce v řádku --- */
.topobedy-meal-wishes__actions-cell {
  display: flex;
  gap: 6px;
  align-items: center;
  flex-wrap: wrap;
}

.topobedy-meal-wishes__inline-form {
  display: inline-block;
  margin: 0;
}

/* --- Responzivita --- */
@media (max-width: 900px) {
  .topobedy-meal-wishes__col-desc {
    display: none;
  }
}

@media (max-width: 768px) {
  .topobedy-meal-wishes__toolbar {
    flex-direction: column;
    align-items: stretch;
  }
  .topobedy-meal-wishes__filters {
    width: 100%;
  }
  .topobedy-meal-wishes__filter-field {
    width: 100%;
  }
  .topobedy-meal-wishes__filter-select {
    min-width: 0;
    width: 100%;
  }
  .topobedy-meal-wishes__count {
    text-align: right;
  }
}

/* ==========================================================================
   Recenze (D.9) — .topobedy-reviews / .topobedy-review-detail
   ========================================================================== */

.topobedy-reviews__stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}

.topobedy-reviews__actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}

/* --- Toolbar / filtr (form GET) --- */
.topobedy-reviews__toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 16px;
  padding: 10px 16px;
  background: #fff;
  border: 1px solid var(--topobedy-border);
  border-radius: var(--topobedy-radius);
}

.topobedy-reviews__filters {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
  flex: 1 1 auto;
}

.topobedy-reviews__filters-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: #475569;
  font-weight: 500;
}

.topobedy-reviews__filters-label svg {
  width: 16px;
  height: 16px;
  color: #94a3b8;
}

.topobedy-reviews__filter-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: #475569;
}

.topobedy-reviews__filter-select,
.topobedy-reviews__filter-input {
  padding: 7px 12px;
  border: 1px solid var(--topobedy-border);
  border-radius: var(--topobedy-radius);
  font-size: 14px;
  background: #fff;
  color: #1e293b;
  line-height: 1.4;
}

.topobedy-reviews__filter-select {
  min-width: 160px;
  appearance: auto;
  cursor: pointer;
}

.topobedy-reviews__filter-input {
  width: 130px;
}

.topobedy-reviews__filter-select:focus,
.topobedy-reviews__filter-input:focus {
  outline: none;
  border-color: var(--topobedy-primary);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.topobedy-reviews__count {
  font-size: 14px;
  color: #64748b;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

/* --- Tabulka --- */
.topobedy-reviews__table td:first-child {
  font-weight: 600;
  white-space: nowrap;
}

.topobedy-reviews__rating {
  color: #f59e0b;
  white-space: nowrap;
  letter-spacing: 1px;
}

.topobedy-reviews__text {
  max-width: 320px;
  color: var(--topobedy-text-secondary);
}

.topobedy-reviews__actions-cell {
  display: flex;
  gap: 4px;
  align-items: center;
}

/* --- Detail recenze --- */
.topobedy-review-detail__actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}

.topobedy-review-detail__section {
  background: var(--topobedy-card-bg);
  border: 1px solid var(--topobedy-border);
  border-radius: var(--topobedy-radius-card);
  padding: 20px 24px;
  margin-bottom: 16px;
  box-shadow: var(--topobedy-shadow);
}

.topobedy-review-detail__section h2 {
  font-size: 1rem;
  font-weight: 600;
  color: var(--topobedy-text);
  margin: 0 0 12px 0;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--topobedy-border);
}

.topobedy-review-detail__dl {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 8px 16px;
  margin: 0;
  font-size: 0.875rem;
}

.topobedy-review-detail__dl dt {
  font-weight: 500;
  color: var(--topobedy-text-secondary);
}

.topobedy-review-detail__dl dd {
  margin: 0;
  color: var(--topobedy-text);
}

.topobedy-review-detail__muted {
  color: var(--topobedy-text-secondary);
}

.topobedy-review-detail__rating {
  color: #f59e0b;
  letter-spacing: 2px;
}

.topobedy-review-detail__quote {
  margin: 0;
  padding: 12px 16px;
  background: var(--topobedy-bg);
  border-left: 3px solid var(--topobedy-border);
  border-radius: 0 var(--topobedy-radius) var(--topobedy-radius) 0;
  color: var(--topobedy-text);
  font-size: 0.9375rem;
  line-height: 1.55;
  white-space: pre-wrap;
  word-break: break-word;
}

/* --- Moderace --- */
.topobedy-review-detail__moderation {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.topobedy-review-detail__form {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-start;
  margin: 0;
}

.topobedy-review-detail__form-label {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--topobedy-text-secondary);
}

.topobedy-review-detail__textarea {
  width: 100%;
  max-width: 520px;
  padding: 10px 12px;
  border: 1px solid var(--topobedy-border);
  border-radius: var(--topobedy-radius);
  font-size: 0.875rem;
  font-family: inherit;
  line-height: 1.5;
  resize: vertical;
  min-height: 84px;
}

.topobedy-review-detail__textarea:focus {
  outline: none;
  border-color: var(--topobedy-primary);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

/* --- Responzivita --- */
@media (max-width: 768px) {
  .topobedy-reviews__toolbar {
    flex-direction: column;
    align-items: stretch;
  }
  .topobedy-reviews__filters {
    width: 100%;
  }
  .topobedy-reviews__table th:nth-child(5),
  .topobedy-reviews__table td:nth-child(5) {
    display: none;
  }
  .topobedy-review-detail__dl {
    grid-template-columns: 1fr;
    gap: 2px 0;
  }
  .topobedy-review-detail__dl dt {
    margin-top: 8px;
  }
}

/* ==========================================================================
   Stránka přehledu změn systému (changelog)
   ========================================================================== */

.topobedy-changelog {
  max-width: 820px;
  background: var(--topobedy-card-bg);
  border: 1px solid var(--topobedy-border);
  border-radius: var(--topobedy-radius-card);
  box-shadow: var(--topobedy-shadow);
  padding: 28px 32px;
}

.topobedy-changelog__current {
  margin: 0 0 20px;
  padding: 10px 14px;
  background: var(--topobedy-primary-light);
  border-radius: var(--topobedy-radius);
  font-size: 0.9375rem;
  color: var(--topobedy-text);
}

.topobedy-changelog__current-date {
  color: var(--topobedy-text-secondary);
}

.topobedy-changelog__body h2 {
  margin: 28px 0 4px;
  padding-bottom: 6px;
  border-bottom: 2px solid var(--topobedy-border);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--topobedy-text);
}

.topobedy-changelog__body h2:first-child {
  margin-top: 0;
}

.topobedy-changelog__body h3 {
  margin: 18px 0 6px;
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--topobedy-text-secondary);
}

.topobedy-changelog__body h4 {
  margin: 16px 0 6px;
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--topobedy-primary);
}

.topobedy-changelog__body ul {
  margin: 0 0 12px;
  padding-left: 22px;
  list-style: disc;
}

.topobedy-changelog__body li {
  margin: 4px 0;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--topobedy-text);
}

.topobedy-changelog__body p {
  margin: 8px 0;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--topobedy-text);
}

.topobedy-changelog__body a {
  color: var(--topobedy-primary);
  text-decoration: none;
}

.topobedy-changelog__body a:hover {
  text-decoration: underline;
}

/* ==========================================================================
   Levý sidebar administrace (hook_page_top na /top-admin*) — ADR 0025
   Tmavě navy téma dle schváleného mockupu „Dashboard v3"
   ========================================================================== */

.topobedy-sidebar {
  position: fixed;
  top: var(--gin-toolbar-y-offset, 39px);
  left: 0;
  bottom: 0;
  width: var(--topobedy-sidebar-width, 264px);
  background: var(--sb-bg);
  display: flex;
  flex-direction: column;
  z-index: 100;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  color: var(--sb-text);
}

/* Hlavička: logo + značka (+ mobilní hamburger) */
.topobedy-sidebar__head {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--sb-divider);
  flex: 0 0 auto;
}

.topobedy-sidebar__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border-radius: 9px;
  background: var(--sb-logo-grad);
  color: #fff;
}

.topobedy-sidebar__logo svg {
  width: 20px;
  height: 20px;
  /* Logo droplet je plný (mockup), ne obrysový jako ostatní ikony. */
  fill: currentColor;
  stroke: none;
}

.topobedy-sidebar__brand-wrap {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
  min-width: 0;
}

.topobedy-sidebar__brand {
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.1px;
  color: var(--sb-text-strong);
}

.topobedy-sidebar__brand-sub {
  margin-top: 1px;
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--sb-dim);
}

.topobedy-sidebar__hamburger {
  display: none;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin-left: auto;
  padding: 0;
  border: 1px solid var(--sb-divider);
  border-radius: var(--topobedy-radius);
  background: var(--sb-hover);
  color: var(--sb-text-strong);
  cursor: pointer;
}

.topobedy-sidebar__hamburger svg {
  width: 20px;
  height: 20px;
}

/* Posuvný obsah */
.topobedy-sidebar__panel {
  flex: 1 1 auto;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}

.topobedy-sidebar__panel::-webkit-scrollbar {
  width: 8px;
}

.topobedy-sidebar__panel::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 8px;
}

.topobedy-sidebar__panel::-webkit-scrollbar-track {
  background: transparent;
}

/* Identita + odhlášení */
.topobedy-sidebar__identity {
  padding: 12px 14px;
  border-bottom: 1px solid var(--sb-divider);
}

.topobedy-sidebar__user,
.topobedy-sidebar__logout {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 11px;
  border-radius: 8px;
  font-size: 0.84rem;
  font-weight: 500;
  text-decoration: none;
  color: var(--sb-text);
  transition: background-color 0.14s, color 0.14s;
}

.topobedy-sidebar__user-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.topobedy-sidebar__user-name strong {
  color: var(--sb-text-strong);
  font-weight: 600;
}

.topobedy-sidebar__user:hover {
  background: var(--sb-hover);
  color: var(--sb-text-strong);
}

.topobedy-sidebar__logout {
  margin-top: 2px;
}

.topobedy-sidebar__logout:hover {
  background: rgba(239, 68, 68, 0.16);
  color: #fca5a5;
}

/* Navigace */
.topobedy-sidebar__nav {
  flex: 1 1 auto;
  padding: 12px 12px 18px;
}

.topobedy-sidebar__section-label {
  padding: 6px 12px 5px;
  font-size: 0.69rem;
  font-weight: 700;
  letter-spacing: 0.7px;
  text-transform: uppercase;
  color: var(--sb-dim);
}

.topobedy-sidebar__section-label:not(:first-child) {
  margin-top: 14px;
}

.topobedy-sidebar__items {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Sdílená ikona */
.topobedy-sidebar__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  color: var(--sb-icon);
  transition: color 0.14s;
}

.topobedy-sidebar__icon svg {
  width: 18px;
  height: 18px;
}

/* Plochý odkaz (Hlavní) + vnořený sublink */
.topobedy-sidebar__link,
.topobedy-sidebar__sublink {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 9px 12px;
  margin: 1px 0;
  border-radius: 8px;
  font-size: 0.9rem;
  font-weight: 500;
  text-decoration: none;
  color: var(--sb-text);
  transition: background-color 0.14s, color 0.14s;
}

.topobedy-sidebar__link:hover,
.topobedy-sidebar__sublink:hover {
  background: var(--sb-hover);
  color: var(--sb-text-strong);
}

.topobedy-sidebar__link:hover .topobedy-sidebar__icon,
.topobedy-sidebar__sublink:hover .topobedy-sidebar__icon {
  color: var(--sb-text-strong);
}

.topobedy-sidebar__link.is-active,
.topobedy-sidebar__sublink.is-active {
  background: var(--sb-active);
  color: #fff;
  font-weight: 600;
  box-shadow: var(--sb-active-glow);
}

.topobedy-sidebar__link.is-active .topobedy-sidebar__icon,
.topobedy-sidebar__sublink.is-active .topobedy-sidebar__icon {
  color: #fff;
}

.topobedy-sidebar__text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ---------- Nav loading spinner (obecný indikátor navigace) ----------
   Dvě fáze, ať spinner běží nepřetržitě klik → úplné načtení cílové stránky:
   1) STARÁ stránka: klik → JS přidá .is-navigating prokliknuté položce
      (spinner po dobu server-think, než dorazí HTML nové stránky).
   2) NOVÁ stránka: inline <script> v shellu (běží hned při parse, PŘED BigPipe
      streamem obsahu) přidá html.topobedy-nav-loading → spinner u AKTIVNÍ
      položky. Drží do `window.load` (JS ho pak sundá) — pokrývá celé BigPipe
      streamování obsahu, které jinak doběhne až po prvním paintu shellu.
   Drupal behavior to nezvládne sám: BigPipe drží HTTP stream → DOMContentLoaded
   (= attach) fíruje až po dostreamování, takže by spinner naskočil pozdě.
   `.spinner` + @keyframes je sdílený primitiv (přebírá ho i bulk-confirm overlay). */
@keyframes spin { to { transform: rotate(360deg); } }

.spinner {
  display: inline-block;
  border: 2px solid currentColor;
  border-right-color: transparent;   /* mezera v kroužku = „rotující" efekt */
  border-radius: 50%;
  animation: spin .6s linear infinite;
}

.nav-spin {
  width: 15px;
  height: 15px;
  margin-left: auto;                 /* odsune k pravému okraji položky */
  opacity: 0;                        /* inertní, dokud není .is-navigating / nav-loading */
  flex: 0 0 auto;
  transition: opacity .15s;
}
.topobedy-sidebar__link.is-navigating .nav-spin,
.topobedy-sidebar__sublink.is-navigating .nav-spin,
html.topobedy-nav-loading .topobedy-sidebar__link.is-active .nav-spin,
html.topobedy-nav-loading .topobedy-sidebar__sublink.is-active .nav-spin {
  opacity: 1;
}
.topobedy-sidebar__link.is-navigating .topobedy-sidebar__icon,
.topobedy-sidebar__sublink.is-navigating .topobedy-sidebar__icon,
html.topobedy-nav-loading .topobedy-sidebar__link.is-active .topobedy-sidebar__icon,
html.topobedy-nav-loading .topobedy-sidebar__sublink.is-active .topobedy-sidebar__icon {
  opacity: .55;                      /* ztlumená ikona po dobu načítání */
}

/* Akordeon skupina */
.topobedy-sidebar__group {
  margin: 1px 0;
}

.topobedy-sidebar__group-toggle {
  display: flex;
  align-items: center;
  gap: 11px;
  width: 100%;
  padding: 9px 12px;
  border: none;
  border-radius: 8px;
  background: transparent;
  cursor: pointer;
  font-family: inherit;
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--sb-text);
  text-align: left;
  transition: background-color 0.14s, color 0.14s;
}

.topobedy-sidebar__group-toggle:hover {
  background: var(--sb-hover);
  color: var(--sb-text-strong);
}

.topobedy-sidebar__group-toggle:hover .topobedy-sidebar__icon {
  color: var(--sb-text-strong);
}

.topobedy-sidebar__group-label {
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.topobedy-sidebar__group-arrow {
  display: inline-flex;
  flex: 0 0 auto;
  color: var(--sb-dim);
  transition: transform 0.22s, color 0.14s;
}

.topobedy-sidebar__group-arrow svg {
  width: 16px;
  height: 16px;
}

.topobedy-sidebar__group.is-active > .topobedy-sidebar__group-toggle {
  color: var(--sb-text-strong);
}

.topobedy-sidebar__group.is-active > .topobedy-sidebar__group-toggle .topobedy-sidebar__icon {
  color: #fff;
}

.topobedy-sidebar__group.is-open > .topobedy-sidebar__group-toggle .topobedy-sidebar__group-arrow {
  transform: rotate(180deg);
  color: var(--sb-text);
}

/* Vnořené položky: akordeon přes max-height + odsazení */
.topobedy-sidebar__group .topobedy-sidebar__items {
  max-height: 0;
  overflow: hidden;
  margin-left: 25px;
  border-left: 1px solid var(--sb-divider);
  transition: max-height 0.26s ease;
}

.topobedy-sidebar__group.is-open .topobedy-sidebar__items {
  max-height: 640px;
}

.topobedy-sidebar__group .topobedy-sidebar__sublink {
  margin: 1px 0 1px 8px;
  padding: 8px 12px;
  font-size: 0.84rem;
}

.topobedy-sidebar__group .topobedy-sidebar__sublink .topobedy-sidebar__icon svg {
  width: 15px;
  height: 15px;
}

/* Patička sidebaru: verze systému + datum (jeden zdroj — ADR 0025) */
.topobedy-sidebar__foot {
  flex: 0 0 auto;
  padding: 14px 20px;
  border-top: 1px solid var(--sb-divider);
  font-size: 0.72rem;
  line-height: 1.4;
  color: var(--sb-dim);
}

.topobedy-sidebar__foot-link {
  color: var(--sb-dim);
  text-decoration: none;
  transition: color 0.14s;
}

.topobedy-sidebar__foot-link:hover {
  color: var(--sb-text-strong);
  text-decoration: underline;
}

.topobedy-sidebar__foot-sep {
  margin: 0 4px;
}

/* Posun obsahu na desktopu — místo pro fixní sidebar */
@media (min-width: 769px) {
  body[class*="path-top-admin"] .page-wrapper {
    padding-left: var(--topobedy-sidebar-width, 264px);
  }

  /* Gin sticky header (H1 + akční tlačítka) nemá vlastní levý gutter →
     title by seděl flush na hraně sidebaru. Dorovnat na gutter obsahu (~24px),
     aby byl title zarovnaný s kartami a nedotýkal se sidebaru. */
  body[class*="path-top-admin"] .region-sticky__items__inner {
    padding-left: 24px;
  }
}

/* Mobil: full-width, statický, stacked; default sbalený přes hamburger */
@media (max-width: 768px) {
  .topobedy-sidebar {
    position: static;
    width: 100%;
    border-bottom: 1px solid var(--sb-divider);
  }

  .topobedy-sidebar__hamburger {
    display: inline-flex;
  }

  .topobedy-sidebar__panel {
    display: none;
  }

  .topobedy-sidebar.is-mobile-open .topobedy-sidebar__panel {
    display: flex;
  }

  body[class*="path-top-admin"] .page-wrapper {
    padding-left: 0;
  }

  /* Mobil: title bar (Gin sticky header) je full-width — bez gutteru by H1
     seděl flush na levé hraně. Dorovnat na mobilní gutter obsahu. */
  body[class*="path-top-admin"] .region-sticky__items__inner {
    padding-left: 16px;
    padding-right: 16px;
  }
}

/* Horní Gin toolbar — branding home ikony: droplet (#gin-view) → utensils.
   Přepisujeme jen mask-image; Gin si dál řídí velikost masky i obarvení
   (background-color) podle stavu (default/hover/aktivní). Mask je alpha-based,
   stroke SVG funguje jako maska (obrys = alpha 1). */
#toolbar-administration .toolbar-icon-admin-toolbar-tools-help::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M3%202v7c0%201.1.9%202%202%202h4a2%202%200%200%200%202-2V2'/%3E%3Cpath%20d='M7%202v20'/%3E%3Cpath%20d='M21%2015V2a5%205%200%200%200-5%205v6c0%201.1.9%202%202%202h3Zm0%200v7'/%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M3%202v7c0%201.1.9%202%202%202h4a2%202%200%200%200%202-2V2'/%3E%3Cpath%20d='M7%202v20'/%3E%3Cpath%20d='M21%2015V2a5%205%200%200%200-5%205v6c0%201.1.9%202%202%202h3Zm0%200v7'/%3E%3C/svg%3E") !important;
}

@media (prefers-reduced-motion: reduce) {
  .topobedy-sidebar__group-arrow,
  .topobedy-sidebar__group .topobedy-sidebar__items,
  .topobedy-sidebar__link,
  .topobedy-sidebar__sublink,
  .topobedy-sidebar__group-toggle,
  .topobedy-sidebar__user,
  .topobedy-sidebar__logout {
    transition: none;
  }
}
