html, body {
  height: 100%;
  margin: 0;
  font-family: 'Google Sans', Roboto, sans-serif;
  font-size: 14px;
  color: #202124;
}

.layout {
  display: flex;
  height: 100%;
  min-height: 0;
}

.sidebar {
  width: 240px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  border-right: 1px solid #dadce0;
  background: #f8f9fa;
  padding: 8px;
  overflow: visible;
  transition: width 0.2s ease;
  position: relative;
}
.sidebar.collapsed {
  width: 52px;
  padding: 8px 6px;
}
.sidebar.collapsed .sidebar-welcome,
.sidebar.collapsed .sidebar-footer {
  display: none;
}
.sidebar.collapsed .sidebar-profile {
  display: flex;
  justify-content: center;
  margin-top: auto;
  padding: 6px 0;
  background: transparent;
  border: none;
  box-shadow: none;
}
.sidebar.collapsed .sidebar-profile .profile-btn {
  justify-content: center;
  padding: 6px 0;
  width: auto;
}
.sidebar.collapsed .sidebar-profile .profile-btn-label,
.sidebar.collapsed .sidebar-profile .profile-chevron {
  display: none;
}
.sidebar.collapsed .sidebar-profile .profile-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  flex-shrink: 0;
}
.sidebar.collapsed #sidebar-nav {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 8px;
}
.sidebar.collapsed #sidebar-nav .sidebar-nav-section-label {
  display: none;
}
.sidebar.collapsed #sidebar-nav .sidebar-nav-divider {
  display: block;
  margin: 10px 4px;
  height: 0;
  border-top: 1px solid #e8eaed;
}
.sidebar.collapsed #sidebar-nav a {
  font-size: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 8px 0;
}
.sidebar.collapsed #sidebar-nav .sidebar-nav-icon {
  margin-right: 0;
}
.sidebar.collapsed #nav-inbox {
  position: relative;
}
.sidebar.collapsed #nav-inbox .inbox-badge {
  position: absolute;
  top: 2px;
  right: 2px;
  transform: translate(0, -50%);
  margin-left: 0;
  min-width: 14px;
  height: 14px;
  padding: 0 3px;
  font-size: 10px;
  border-radius: 7px;
}

.sidebar-header {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin-bottom: 8px;
}
.sidebar.collapsed .sidebar-header {
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  margin-bottom: 8px;
}
.sidebar.collapsed .sidebar-header .sidebar-toggle {
  order: -1;
}
.sidebar.collapsed .sidebar-header .sidebar-conference-wrap {
  order: 0;
  flex: none;
  width: 100%;
  margin-bottom: 0;
}
.sidebar.collapsed .sidebar-conference {
  width: 100%;
  padding: 6px 0;
  display: flex;
  justify-content: center;
  align-items: center;
}
.sidebar.collapsed .sidebar-conference-row {
  justify-content: center;
}
.sidebar.collapsed .sidebar-conference-name {
  display: none;
}
.sidebar.collapsed .sidebar-conference-members {
  display: none;
}
.sidebar.collapsed .sidebar-conference-chevron {
  display: flex;
}
.sidebar.collapsed .sidebar-conference-wrap {
  overflow: visible;
}
.sidebar.collapsed .conference-switcher-popover {
  left: 0;
  right: auto;
  min-width: 280px;
  width: max-content;
}
.sidebar-header .sidebar-conference-wrap {
  flex: 1;
  min-width: 0;
  margin-bottom: 0;
}

.sidebar-toggle {
  width: 30px;
  height: 30px;
  padding: 0;
  border: none;
  border-radius: 8px;
  background: #f8f9fa;
  /* color: #5f6368; */
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.sidebar-toggle:hover {
  background: #e8eaed;
  color: #1a73e8;
}
.sidebar-toggle-icon {
  width: 16px;
  height: 16px;
}
.sidebar.collapsed .sidebar-toggle {
  transform: rotate(180deg);
}

.sidebar-welcome {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #5f6368;
  margin-top: 12px;
  margin-bottom: 4px;
  padding-bottom: 4px;
  padding-right: 28px;
  border-bottom: 1px solid #e8eaed;
}

.sidebar-nav-section-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #5f6368;
  margin-top: 10px;
  margin-bottom: 2px;
  padding-right: 0;
}

.sidebar-nav-divider {
  height: 0;
  border-top: 1px solid #e8eaed;
  margin-bottom: 4px;
}

.sidebar nav {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.sidebar a {
  display: block;
  padding: 6px 10px;
  font-size: 12px;
  color: #5f6368;
  text-decoration: none;
  border-radius: 8px;
  border: 1px solid transparent;
}

.sidebar a:hover {
  color: #1a73e8;
  background: #e8f0fe;
}

.sidebar a.active {
  color: #1a73e8;
  font-weight: 600;
  background: #e8f0fe;
  border-color: #d2e3fc;
  border-radius: 0;
  border-left: none;
}

.sidebar-nav-icon {
  display: inline-block;
  width: 16px;
  height: 16px;
  margin-right: 6px;
  vertical-align: middle;
}
.sidebar-nav-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}
.sidebar-nav-icon--blue { color: #A8D4F0; }
.sidebar-nav-icon--pink { color: #F5C6D0; }
.sidebar-nav-icon--mint { color: #B8E6C4; }
.sidebar-nav-icon--lavender { color: #D4C5F9; }
.sidebar-nav-icon--peach { color: #FFDAB9; }
.sidebar-nav-icon--yellow { color: #FFF4B8; }
.sidebar-nav-icon--sage { color: #C5D9B0; }
.sidebar-nav-icon--coral { color: #F7B8A0; }
.sidebar-nav-icon--sky { color: #87CEEB; }
.sidebar-nav-icon--rose { color: #F0B0C0; }
.sidebar-nav-icon--cream { color: #FFF8DC; }
.sidebar-nav-icon--lilac { color: #E6D5F5; }

.sidebar a:focus-visible {
  outline: 2px solid #1a73e8;
  outline-offset: 2px;
}

.sidebar-nav-group {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.sidebar-nav-parent-row {
  display: flex;
  align-items: stretch;
  gap: 0;
  min-height: 0;
  border: 1px solid transparent;
  border-radius: 8px;
  box-sizing: border-box;
}
.sidebar-nav-parent-row:hover {
  background: #e8f0fe;
}
.sidebar-nav-parent-row:hover .sidebar-nav-parent {
  color: #1a73e8;
  background: transparent;
}
.sidebar-nav-parent-row:hover .sidebar-nav-group-toggle {
  color: #1a73e8;
  background: transparent;
}
.sidebar-nav-group:has(.sidebar-nav-parent.active) .sidebar-nav-parent-row,
.sidebar-nav-group:has(.sidebar-nav-sub-item.active) .sidebar-nav-parent-row {
  background: #e8f0fe;
  border-color: #d2e3fc;
  border-radius: 0;
  border-left: none;
}
.sidebar-nav-group:has(.sidebar-nav-parent.active) a.sidebar-nav-parent.active,
.sidebar-nav-group:has(.sidebar-nav-sub-item.active) .sidebar-nav-parent {
  background: transparent;
  border-color: transparent;
  color: #1a73e8;
}
.sidebar-nav-group:has(.sidebar-nav-sub-item.active) .sidebar-nav-parent:not(.active) {
  font-weight: 400;
}
.sidebar-nav-group:has(.sidebar-nav-parent.active) .sidebar-nav-group-toggle,
.sidebar-nav-group:has(.sidebar-nav-sub-item.active) .sidebar-nav-group-toggle {
  color: #1a73e8;
  background: transparent;
}
.sidebar a.sidebar-nav-parent {
  display: flex;
  align-items: center;
  flex: 1;
  min-width: 0;
  padding-right: 4px;
}
.sidebar-nav-group-toggle {
  flex-shrink: 0;
  width: 28px;
  padding: 0;
  margin: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  color: #5f6368;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
}
.sidebar-nav-group-toggle:hover {
  background: transparent;
  color: inherit;
}
.sidebar-nav-parent-row:hover .sidebar-nav-group-toggle {
  color: #1a73e8;
}
.sidebar-nav-group-toggle:focus-visible {
  outline: 2px solid #1a73e8;
  outline-offset: -1px;
}
.sidebar-nav-group-chevron {
  display: block;
  transition: transform 0.15s ease;
}
.sidebar-nav-group.is-open .sidebar-nav-group-chevron {
  transform: rotate(0deg);
}
.sidebar-nav-group:not(.is-open) .sidebar-nav-group-chevron {
  transform: rotate(-90deg);
}
.sidebar-nav-sub {
  display: none;
  flex-direction: column;
  gap: 0;
  padding: 0 0 2px 0;
}
.sidebar-nav-group.is-open .sidebar-nav-sub {
  display: flex;
}
.sidebar a.sidebar-nav-sub-item {
  padding: 5px 10px 5px 32px;
  font-size: 12px;
  border-radius: 8px;
}

/* Members & Roles: vertical connector + active dot on the line */
.sidebar-nav-sub--tree {
  position: relative;
  padding-left: 2px;
}
.sidebar-nav-sub--tree::before {
  content: '';
  position: absolute;
  left: 17px;
  top: 2px;
  bottom: 4px;
  width: 1px;
  background: #dadce0;
  pointer-events: none;
}
.sidebar-nav-sub--tree .sidebar-nav-sub-item {
  position: relative;
  padding-left: 38px;
}
.sidebar-nav-sub--tree .sidebar-nav-sub-item.active::after {
  content: '';
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #1a73e8;
  box-shadow: 0 0 0 1px #fff;
  z-index: 1;
  pointer-events: none;
}
body.theme-dark .sidebar-nav-sub--tree::before {
  background: #5f6368;
}
body.theme-dark .sidebar-nav-sub--tree .sidebar-nav-sub-item.active::after {
  background: #8ab4f8;
  box-shadow: 0 0 0 1px #202124;
}
.sidebar.collapsed .sidebar-nav-group-toggle {
  display: none;
}
.sidebar.collapsed .sidebar-nav-sub {
  display: none !important;
}
.sidebar.collapsed .sidebar-nav-parent-row {
  justify-content: center;
}
.sidebar.collapsed a.sidebar-nav-parent {
  padding-left: 10px;
  padding-right: 10px;
  justify-content: center;
}

.sidebar-footer {
  margin-top: auto;
  padding-top: 8px;
  border-top: 1px solid #e8eaed;
  font-size: 11px;
  color: #5f6368;
}

/* GDPR-style notice before exporting personal data */
.data-export-consent-overlay {
  position: fixed;
  inset: 0;
  z-index: 10050;
  background: rgba(32, 33, 36, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  box-sizing: border-box;
}
.data-export-consent-panel {
  background: #fff;
  border-radius: 8px;
  max-width: 420px;
  width: 100%;
  padding: 20px 22px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
  border: 1px solid #dadce0;
}
.data-export-consent-title {
  margin: 0 0 12px 0;
  font-size: 1.125rem;
  font-weight: 600;
  color: #202124;
}
.data-export-consent-body {
  margin: 0 0 10px 0;
  font-size: 13px;
  line-height: 1.5;
  color: #3c4043;
}
.data-export-consent-body:last-of-type {
  margin-bottom: 16px;
}
.data-export-consent-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}
body.theme-dark .data-export-consent-panel {
  background: #292a2d;
  border-color: #3c4043;
}
body.theme-dark .data-export-consent-title {
  color: #e8eaed;
}
body.theme-dark .data-export-consent-body {
  color: #bdc1c6;
}

/* Indeterminate pulse when API requests are in flight (see app/globalLoading.js) */
.sidebar-loading-bar {
  display: none;
  height: 3px;
  margin: 0 0 8px 0;
  border-radius: 2px;
  overflow: hidden;
  background: #e8eaed;
  position: relative;
}
.sidebar-loading-bar.is-active {
  display: block;
}
.sidebar-loading-bar.is-active::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 42%;
  border-radius: 2px;
  background: linear-gradient(90deg, #1a73e8, #8ab4f8);
  animation: libc-sidebar-loading-pulse 1.1s ease-in-out infinite;
}
@keyframes libc-sidebar-loading-pulse {
  0% { transform: translateX(-105%); }
  100% { transform: translateX(245%); }
}
body.theme-dark .sidebar-loading-bar {
  background: #3c4043;
}
body.theme-dark .sidebar-loading-bar.is-active::before {
  background: linear-gradient(90deg, #8ab4f8, #1a73e8);
}

.sidebar-conference-wrap {
  position: relative;
  margin-bottom: 8px;
}
.sidebar-conference {
  padding: 6px 10px;
  background: transparent;
  border: none;
  border-radius: 10px;
  box-shadow: none;
  cursor: pointer;
}
.sidebar-conference:focus-visible {
  outline: 2px solid #1a73e8;
  outline-offset: 2px;
}
.sidebar-conference-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  cursor: pointer;
}
.sidebar-conference-name {
  font-size: 13px;
  font-weight: 600;
  color: #202124;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sidebar-conference-chevron {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #5f6368;
}
.sidebar-conference-chevron-svg {
  width: 16px;
  height: 16px;
}
.sidebar-conference-members {
  font-size: 11px;
  color: #5f6368;
  margin-top: 2px;
  cursor: pointer;
}

.conference-switcher-popover {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  margin-top: 4px;
  padding: 12px;
  background: #fff;
  border: 1px solid #dadce0;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  z-index: 100;
  max-height: 320px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.conference-switcher-popover[aria-hidden="true"] {
  display: none !important;
}
.conference-switcher-popover.conference-switcher-popover--open {
  display: flex;
}
.conference-switcher-email {
  font-size: 12px;
  color: #5f6368;
  padding-bottom: 8px;
  border-bottom: 1px solid #e8eaed;
  margin-bottom: 8px;
}
.conference-switcher-list {
  overflow-y: auto;
  flex: 1;
}
.conference-switcher-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  border-radius: 8px;
  cursor: pointer;
  font-size: 13px;
  color: #202124;
}
.conference-switcher-item:hover {
  background: #f1f3f4;
}
.conference-switcher-item--active {
  background: #e8f0fe;
  color: #1a73e8;
  font-weight: 500;
}
.conference-switcher-item-check {
  color: #1a73e8;
  font-weight: 700;
}

.sidebar-profile {
  position: relative;
  order: 10;
  margin-top: 10px;
  margin-bottom: 0;
  padding: 6px 10px;
  background: #fff;
  border: 1px solid #e8eaed;
  border-radius: 10px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  overflow: visible;
}

.sidebar-profile .profile-btn,
.sidebar-profile .profile-btn.profile-signin {
  padding: 2px 0;
  font-size: 12px;
  gap: 8px;
}
.sidebar-profile .profile-btn .profile-avatar {
  width: 28px;
  height: 28px;
}
.sidebar-profile .profile-btn .profile-btn-label {
  font-size: 12px;
}

.profile-btn,
.profile-btn.profile-signin {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 4px 0;
  font-size: 13px;
  font-family: inherit;
  text-align: left;
  color: #202124;
  background: transparent;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  text-decoration: none;
  box-sizing: border-box;
  gap: 12px;
}

.profile-btn:hover,
.profile-signin:hover {
  color: #1a73e8;
  background: rgba(26, 115, 232, 0.06);
}

.profile-btn .profile-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

.profile-btn .profile-btn-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
  font-size: 13px;
  font-weight: 500;
  color: #202124;
}

.profile-btn:hover .profile-btn-label { color: #1a73e8; }

.profile-chevron {
  flex-shrink: 0;
  font-size: 12px;
  color: #5f6368;
  margin-left: auto;
}

.profile-btn:hover .profile-chevron { color: #1a73e8; }

.profile-btn--pseudo {
  border: 1px solid #f9ab00;
  background: rgba(249, 171, 0, 0.08);
}
.profile-btn--pseudo .profile-btn-label { color: #b06000; }
.profile-dropdown .profile-dropdown-item.profile-dropdown-switch-back {
  font-weight: 600;
  color: #1a73e8;
  border-top: 1px solid #e8eaed;
}

.profile-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  margin-top: 6px;
  margin-bottom: 0;
  padding: 0;
  min-width: 200px;
  background: #fff;
  border: 1px solid #dadce0;
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
  z-index: 9999;
  overflow: hidden;
}

.profile-dropdown.open-up {
  top: auto;
  bottom: 100%;
  margin-top: 0;
  margin-bottom: 6px;
}

.profile-dropdown[hidden] {
  display: none !important;
}

.profile-dropdown-top {
  padding: 10px 14px 8px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #5f6368;
  border-bottom: 1px solid #e8eaed;
}

.profile-dropdown a,
.profile-dropdown .profile-logout,
.profile-dropdown .profile-dropdown-item {
  display: block;
  width: 100%;
  padding: 12px 14px;
  font-size: 14px;
  font-family: inherit;
  text-align: left;
  color: #202124;
  background: none;
  border: none;
  cursor: pointer;
  text-decoration: none;
  box-sizing: border-box;
  transition: background 0.15s ease;
}

.profile-dropdown .profile-dropdown-item.profile-dropdown-night {
  border-top: none;
  border-radius: 0;
}

.profile-dropdown .profile-dropdown-item.profile-dropdown-inbox {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.inbox-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  color: #fff;
  background: #d93025;
  border-radius: 10px;
  flex-shrink: 0;
}

#nav-inbox {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0;
}
#nav-inbox .inbox-badge {
  margin-left: auto;
}

/* Inbox list: unread = bold title + distinct background; read = normal */
.inbox-list-item {
  background: #fff;
}
.inbox-list-item.inbox-unread {
  background: #f1f3f4;
}
.inbox-list-item.inbox-unread .list-title {
  font-weight: 700;
}
.inbox-list-item:not(.inbox-unread) .list-title {
  font-weight: 400;
}
.inbox-list-item.inbox-unread.active {
  background: #e8f0fe;
}
.inbox-list-item:not(.inbox-unread).active {
  background: #f8f9fa;
}

/* Inbox section: full-width top bar + category tabs + split */
.inbox-section {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}
.inbox-top-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
  padding: 0 12px;
  min-height: 48px;
  background: #f8f9fa;
  border-radius: 8px 8px 0 0;
  flex-shrink: 0;
}
.inbox-top-bar .inbox-toolbar {
  flex: 1;
  min-width: 0;
  border-bottom: none;
  padding-right: 12px;
}
.inbox-top-bar-pager {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  margin-left: auto;
}
.inbox-top-bar-pager .pager-range {
  font-size: 13px;
  color: #5f6368;
}
.inbox-top-bar-pager .btn-pager-nav {
  min-width: 32px;
  padding: 4px 8px;
}
.inbox-tabs {
  display: flex;
  align-items: center;
  gap: 0;
  padding: 0 12px;
  min-height: 40px;
  background: #f8f9fa;
  border-bottom: 1px solid #e8eaed;
  flex-shrink: 0;
}
.inbox-tab {
  padding: 8px 16px;
  margin: 0;
  border: none;
  border-bottom: 2px solid transparent;
  background: none;
  font-size: 14px;
  color: #5f6368;
  cursor: pointer;
  position: relative;
  bottom: -1px;
}
.inbox-tab:hover {
  color: #1a73e8;
}
.inbox-tab.active {
  color: #1a73e8;
  font-weight: 600;
  border-bottom-color: #1a73e8;
}
.inbox-tab-icon {
  display: inline-block;
  width: 16px;
  height: 16px;
  margin-right: 6px;
  vertical-align: middle;
}
.inbox-tab-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}
.inbox-section .split {
  flex: 1;
  min-height: 0;
}
.inbox-section .split .panel {
  border-radius: 0;
}

/* Inbox toolbar (Gmail-style: select+dropdown, refresh, more) */
.inbox-toolbar-loading {
  margin-right: 8px;
  font-size: 13px;
  color: #5f6368;
}
.inbox-toolbar {
  display: flex;
  align-items: center;
  gap: 0;
  padding: 4px 4px 4px 0;
  min-height: 40px;
  border-bottom: 1px solid #e0e0e0;
}
.inbox-toolbar-select {
  display: inline-flex;
  align-items: center;
  position: relative;
}
.inbox-toolbar-select-label {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  padding: 8px;
  margin: 0;
}
.inbox-toolbar-select-label input {
  width: 18px;
  height: 18px;
  cursor: pointer;
}
.inbox-toolbar-select-chevron svg {
  width: 12px;
  height: 12px;
}
.inbox-toolbar-select-chevron {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px;
  margin: 0;
  border: none;
  background: none;
  cursor: pointer;
  color: #5f6368;
  border-radius: 4px;
}
.inbox-toolbar-select-chevron:hover {
  background: #f1f3f4;
  color: #202124;
}
.inbox-select-dropdown-panel,
.inbox-more-dropdown-panel {
  position: absolute;
  top: 100%;
  left: 0;
  margin-top: 2px;
  min-width: 160px;
  padding: 6px 0;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.15);
  z-index: 100;
  display: none;
}
.inbox-select-dropdown-panel.open,
.inbox-more-dropdown-panel.open {
  display: block;
}
.inbox-toolbar-select .inbox-select-dropdown-panel { left: 0; }
.inbox-toolbar-more-wrap { position: relative; }
.inbox-toolbar-more-wrap .inbox-more-dropdown-panel { left: auto; right: 0; }
.inbox-dropdown-option {
  display: block;
  width: 100%;
  padding: 8px 16px;
  border: none;
  background: none;
  text-align: left;
  font-size: 14px;
  cursor: pointer;
  color: #202124;
}
.inbox-dropdown-option:hover {
  background: #f1f3f4;
}
.inbox-more-hint {
  padding: 8px 16px;
  font-size: 12px;
  color: #5f6368;
  border-top: 1px solid #e8eaed;
  margin-top: 4px;
}
.inbox-toolbar-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  color: #5f6368;
  border-radius: 50%;
}
.inbox-toolbar-btn:hover {
  background: #f1f3f4;
  color: #202124;
}
.inbox-toolbar-refresh svg,
.inbox-toolbar-more-btn svg {
  width: 20px;
  height: 20px;
  pointer-events: none;
}

.inbox-bulk-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin: -6px -6px 0 -6px;
  padding: 14px 16px 8px 16px;
  background: #e8f0fe;
  border-bottom: 1px solid #d2e3fc;
  font-size: 13px;
}
.inbox-bulk-bar .bulk-count { font-weight: 600; color: #1a73e8; }
.inbox-bulk-bar .btn-sm { padding: 4px 10px; font-size: 12px; }
.inbox-bulk-label-wrap { display: inline-flex; align-items: center; gap: 6px; }
.inbox-bulk-label-wrap label { font-size: 12px; color: #5f6368; }

.inbox-select-all { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }

.inbox-select-wrap { flex-shrink: 0; display: inline-flex; align-items: center; }
.inbox-list-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}
.inbox-list-item-body { flex: 1; min-width: 0; }

.inbox-list-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.inbox-list-meta .inbox-tag { margin-left: 0; flex-shrink: 0; }

/* Inbox type tags (pastel) */
.inbox-tag {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 600;
  text-transform: capitalize;
  margin-left: 6px;
  vertical-align: middle;
}
.inbox-tag--new_user {
  background: #bbdefb;
  color: #0d47a1;
}
.inbox-tag--new_submission {
  background: #c8e6c9;
  color: #1b5e20;
}
.inbox-tag--db_update {
  background: #e1bee7;
  color: #4a148c;
}
.inbox-tag--email_sent {
  background: #ffe0b2;
  color: #e65100;
}
.inbox-tag--error {
  background: #ffcdd2;
  color: #b71c1c;
}
.inbox-tag--other {
  background: #e0e0e0;
  color: #424242;
}

/* Inbox detail panel: extra spacing and structure */
#inbox-detail .inbox-detail-content {
  padding: 4px 0;
}
#inbox-detail .inbox-detail-section {
  margin-top: 20px;
}
#inbox-detail .inbox-detail-section:first-child {
  margin-top: 0;
}
#inbox-detail .inbox-detail-title {
  margin: 0 0 16px 0;
  font-size: 18px;
  line-height: 1.35;
}
#inbox-detail .inbox-detail-summary {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
#inbox-detail .inbox-detail-summary .detail-summary-row {
  margin: 0;
}
#inbox-detail .inbox-detail-body {
  margin-top: 8px;
  line-height: 1.5;
  font-size: 14px;
}
#inbox-detail .inbox-detail-action {
  margin: 20px 0 0 0;
  padding: 0;
}

.input {
  padding: 10px 12px;
  border: 1px solid #dadce0;
  border-radius: 8px;
  font: inherit;
  background: #fff;
  color: #202124;
  box-sizing: border-box;
}

.panel-toolbar {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}

.check {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: #5f6368;
}
.check-inline { margin-right: 4px; }

.registrations-filters-wrap.collapsed { display: none; }
.registrations-filters-wrap { margin-top: 2px; }
#registrations-filters-panel > .panel-toolbar.registrations-filters:first-child { border-bottom: none; }
.registrations-filters { font-size: 12px; }
.registrations-filters .filter-label { color: #5f6368; margin-right: 4px; white-space: nowrap; }
.registrations-filters .filter-has-group { display: inline-flex; align-items: center; flex-wrap: nowrap; flex-shrink: 0; gap: 2px; margin-right: 0; }
.registrations-filters .filter-has-group .filter-label { margin-right: 2px; }
.registrations-filters .input-sm { max-width: 10em; }
.registrations-filters select.input-sm { padding: 4px 6px; }
.btn-text { font-size: 12px; color: #5f6368; background: none; border: none; padding: 4px 8px; cursor: pointer; }
.btn-text:hover { color: #1a73e8; text-decoration: underline; }
.btn-filters-toggle {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: #80868b;
  background: none;
  border: none;
  padding: 2px 6px;
  cursor: pointer;
  margin-left: 4px;
}
.btn-filters-toggle:hover { color: #5f6368; }
.filters-chevron {
  display: inline-block;
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
  transform: rotate(-90deg);
  transition: transform 0.15s ease;
}
.btn-filters-toggle[aria-expanded="true"] .filters-chevron { transform: rotate(0deg); }

.summary {
  padding: 10px 12px;
  border-bottom: 1px solid #eee;
  color: #202124;
  font-size: 13px;
}

.profile-dropdown a:hover,
.profile-dropdown .profile-logout:hover,
.profile-dropdown .profile-dropdown-item:hover {
  background: #f1f3f4;
}

.profile-dropdown .profile-dropdown-item[aria-pressed="true"] {
  color: #1a73e8;
  font-weight: 500;
}

.profile-logout {
  color: #5f6368;
}

.main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.main .frame-container {
  position: relative;
  flex: 1;
  min-height: 0;
  width: 100%;
}

.main .frame-container iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
}

.main .placeholder {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #5f6368;
  font-size: 15px;
}

.main .home-content {
  flex: 1;
  padding: 24px;
  overflow: auto;
}

.main .home-content h2 {
  font-size: 20px;
  margin: 0 0 12px 0;
  color: #202124;
}

.main .home-content p {
  color: #5f6368;
  line-height: 1.5;
  margin: 0;
}

.home-magic {
  margin-top: 18px;
  max-width: 560px;
}

/* Login card: form and email row match button width (280px) */
.login-card-form .home-magic {
  width: 100%;
  max-width: 280px;
}
.login-card-form .home-magic-row {
  flex-direction: column;
}
.login-card-form .home-magic-row .input {
  width: 100%;
  min-width: 0;
}
.login-card-form .home-magic-row .login-btn-email {
  width: 100%;
}

.home-magic-sep {
  margin: 10px 0;
  color: #9aa0a6;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.home-magic-row {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}

.home-magic-row .input {
  flex: 1;
  min-width: 220px;
}

.home-magic-msg {
  margin-top: 10px;
  font-size: 13px;
  color: #5f6368;
}

.home-magic-msg--error {
  color: #c5221f;
}

.home-magic-msg--ok {
  color: #137333;
}

.home-magic-msg--info {
  color: #5f6368;
}

.main .loading-overlay {
  position: absolute;
  inset: 0;
  display: none;
  z-index: 10;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(248, 249, 250, 0.85);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

.main .loading-overlay .loading-card {
  width: min(420px, 100%);
  background: #fff;
  border: 1px solid #dadce0;
  border-radius: 12px;
  padding: 18px 18px 14px 18px;
  box-shadow: 0 4px 16px rgba(0,0,0,0.08);
  text-align: center;
}

.main .loading-overlay .spinner {
  width: 22px;
  height: 22px;
  margin: 2px auto 10px auto;
  border-radius: 50%;
  border: 3px solid rgba(26,115,232,0.20);
  border-top-color: rgba(26,115,232,1);
  animation: libc-spin 0.9s linear infinite;
}

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

.main .loading-overlay .loading-title {
  font-size: 14px;
  font-weight: 600;
  color: #202124;
}

.main .loading-overlay .loading-subtitle {
  margin-top: 4px;
  font-size: 12px;
  color: #5f6368;
}

.main .loading-overlay .loading-actions {
  margin-top: 10px;
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
}

.main .loading-overlay .loading-actions a {
  font-size: 12px;
  color: #1a73e8;
  text-decoration: none;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid #d2e3fc;
  background: #f6f9fe;
}

.main .loading-overlay .loading-actions a:hover {
  background: #e8f0fe;
}

/* Cancel / confirmation dialog */
.dialog-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(32, 33, 36, 0.45);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}
.dialog-card {
  background: #fff;
  border: 1px solid #dadce0;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.15);
  padding: 20px 24px;
  max-width: 100%;
}
.dialog-card--narrow { width: min(400px, 100%); }
.dialog-title {
  font-size: 18px;
  font-weight: 700;
  color: #202124;
  margin: 0 0 8px 0;
}
.dialog-desc {
  font-size: 14px;
  color: #5f6368;
  margin: 0 0 14px 0;
  line-height: 1.4;
}
.dialog-label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: #5f6368;
  margin-bottom: 6px;
}
.dialog-input {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 8px 10px;
  font-size: 14px;
  font-family: inherit;
  border: 1px solid #dadce0;
  border-radius: 8px;
  margin-bottom: 18px;
  resize: vertical;
  min-height: 60px;
}
.dialog-input:focus {
  outline: none;
  border-color: #1a73e8;
  box-shadow: 0 0 0 2px rgba(26, 115, 232, 0.2);
}
.dialog-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}

/* Legacy dashboard iframe overlay */
.legacy-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 14px;
  background: rgba(32, 33, 36, 0.40);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

.legacy-modal-card {
  width: min(1200px, 100%);
  height: min(900px, 100%);
  background: #fff;
  border: 1px solid #dadce0;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0,0,0,0.18);
  display: flex;
  flex-direction: column;
}

.legacy-modal-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-bottom: 1px solid #e8eaed;
}

.legacy-modal-title {
  font-size: 13px;
  font-weight: 700;
  color: #202124;
}

.legacy-modal-actions {
  display: flex;
  gap: 8px;
  align-items: center;
}

.legacy-modal-actions .btn {
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}

.legacy-modal-frame {
  position: relative;
  flex: 1;
  min-height: 0;
}

.legacy-modal-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
}

/* Login page: full-viewport background with centered card */
.login-page {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: 16px;
  background: #e8ebe9;
}
@media (min-width: 768px) {
  .login-page { padding: 24px; }
}

.login-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.12);
}
@media (min-width: 768px) {
  .login-card {
    flex-direction: row;
    max-width: 880px;
  }
}

.login-card-form {
  flex: 0 0 33.333%;
  padding: 32px 24px;
  text-align: left;
}
@media (min-width: 768px) {
  .login-card-form { padding: 40px; }
}

.login-card-form h1 {
  font-size: clamp(1.25rem, 2.5vw, 1.375rem);
  margin: 0 0 8px 0;
  color: #202124;
}

.login-card-form > p {
  color: #5f6368;
  margin: 0 0 24px 0;
  line-height: 1.5;
}

/* Primary and secondary buttons; min 44px touch target */
.login-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 12px 24px;
  text-decoration: none;
  border-radius: 8px;
  font-weight: 500;
  font-size: 14px;
  font-family: inherit;
  cursor: pointer;
  border: 1px solid transparent;
  box-sizing: border-box;
}

button.login-btn {
  appearance: none;
  -webkit-appearance: none;
}
.login-btn-google {
  width: 100%;
  max-width: 280px;
  background: #1a73e8;
  color: #fff;
}
.login-btn-google:hover {
  background: #1557b0;
}

.login-btn-email {
  width: 100%;
  max-width: 280px;
  background: #fff;
  color: #5f6368;
  border-color: #dadce0;
}
.login-btn-email:hover {
  background: #f8f9fa;
  border-color: #bdc1c6;
}
.login-btn-email[aria-disabled="true"] {
  cursor: not-allowed;
  opacity: 0.85;
}

.login-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 20px 0;
}
.login-divider::before,
.login-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: #dadce0;
}
.login-divider span {
  font-size: 12px;
  color: #80868b;
}

.login-card-form .login-hint {
  margin-top: 16px;
  margin-bottom: 0;
  font-size: 12px;
  color: #80868b;
}

/* UK landscape graphic (local asset) */
.login-card-graphic {
  flex: 0 0 66.667%;
  min-height: 240px;
  background-color: #c8d5c9;
  background-image: url('../assets/mak-_VcsMyFcvak-unsplash.jpg');
  background-size: cover;
  background-position: center;
}
@media (min-width: 768px) {
  .login-card-graphic { min-height: 360px; }
}

.primary-link {
  display: inline-block;
  padding: 10px 16px;
  border-radius: 8px;
  background: #1a73e8;
  color: #fff;
  text-decoration: none;
  font-weight: 600;
}

.primary-link:hover {
  background: #1557b0;
}

/* Website-native app shell (no iframes) */
.app-shell {
  flex: 1;
  min-height: 0;
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow: hidden;
}

.app-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid #e8eaed;
}

.app-title-main {
  font-size: 18px;
  font-weight: 700;
  color: #202124;
}

.app-title-sub {
  font-size: 12px;
  color: #5f6368;
  margin-top: 2px;
}

#view-dashboard.view.show {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  overflow: auto;
}
.dashboard-wrap {
  padding: 24px;
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
}
.dashboard-welcome {
  font-size: 22px;
  font-weight: 700;
  color: #202124;
  margin-bottom: 20px;
}
.users-activity-section {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid #e8eaed;
}
.users-activity-admin-note {
  font-size: 12px;
  color: #5f6368;
  margin: 0 0 12px;
}
.users-activity-summary-line {
  font-size: 13px;
  margin: 0 0 12px;
  color: #202124;
}
.users-activity-subhd {
  font-size: 12px;
  font-weight: 600;
  color: #5f6368;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  margin: 12px 0 8px;
}
.users-activity-table-wrap {
  overflow: auto;
  max-height: 220px;
  margin-bottom: 8px;
}
.users-activity-table-wrap table.data-table {
  font-size: 12px;
}
body.theme-dark .users-activity-section {
  border-top-color: #3c4043;
}
body.theme-dark .users-activity-admin-note,
body.theme-dark .users-activity-summary-line {
  color: #bdc1c6;
}
body.theme-dark .users-activity-subhd {
  color: #9aa0a6;
}

/* Team Members: single edit card, readable column width */
#view-users #users-detail {
  max-width: 720px;
}
#view-users #users-detail > .detail-section:first-child {
  margin-top: 0;
}
#view-users .users-edit-section {
  padding: 16px 18px;
  background: #f8f9fa;
  border: 1px solid #e8eaed;
  border-radius: 10px;
}
#view-users .users-edit-form-grid {
  grid-template-columns: 1fr;
  gap: 12px;
}
#view-users .users-edit-form-grid .form-row:first-child {
  grid-column: 1;
}
@media (min-width: 560px) {
  #view-users .users-edit-form-grid {
    grid-template-columns: 1fr 1fr;
  }
  #view-users .users-edit-form-grid .form-row:first-child {
    grid-column: 1 / -1;
  }
}
#view-users .users-edit-actions {
  margin-top: 14px;
  flex-wrap: wrap;
}
#view-users #users-msg.users-msg-banner {
  margin-top: 14px;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 13px;
  line-height: 1.45;
}
#view-users .detail .form-row select.input {
  width: 100%;
  border-color: transparent;
  background: transparent;
  padding: 6px 8px;
  border-radius: 4px;
  font-size: 13px;
}
#view-users .detail .form-row select.input:hover {
  background: rgba(0, 0, 0, 0.04);
}
#view-users .detail .form-row select.input:focus {
  outline: none;
  border-color: #dadce0;
  background: #fff;
}
body.theme-dark #view-users .users-edit-section {
  background: #292a2d;
  border-color: #3c4043;
}
body.theme-dark #view-users .detail .form-row select.input:focus {
  background: #202124;
  border-color: #5f6368;
}

.dashboard-kpi-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 24px;
  padding: 16px 20px;
  margin-bottom: 24px;
  background: #f8f9fa;
  border: 1px solid #e8eaed;
  border-radius: 12px;
}
.dashboard-kpi-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.dashboard-kpi-value {
  font-size: 24px;
  font-weight: 700;
  color: #202124;
  line-height: 1.2;
}
.dashboard-kpi-label {
  font-size: 11px;
  font-weight: 600;
  color: #5f6368;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.dashboard-kpi-loading {
  font-size: 13px;
  color: #5f6368;
}
.dashboard-widgets-bar {
  margin-bottom: 12px;
}
.dashboard-widgets.grid-stack {
  min-height: 120px;
}
.grid-stack-item-content {
  overflow: hidden;
}
.grid-stack-item-content .dashboard-widget-card {
  height: 100%;
  min-height: 0;
}
.dashboard-widget-card {
  min-height: 160px;
  padding: 0;
  border: 1px solid #e8eaed;
  border-radius: 8px;
  background: #fff;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-sizing: border-box;
}
.dashboard-widget-card-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  flex-shrink: 0;
}
.dashboard-widget-card-drag {
  width: 20px;
  height: 20px;
  cursor: grab;
  color: #5f6368;
  display: flex;
  align-items: center;
  justify-content: center;
}
.dashboard-widget-card-drag:active {
  cursor: grabbing;
}
.dashboard-widget-card-title {
  flex: 1;
  font-size: 12px;
  font-weight: 600;
  color: #202124;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.dashboard-widget-card-remove {
  width: 28px;
  height: 28px;
  border: none;
  border-radius: 6px;
  background: transparent;
  color: #5f6368;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  line-height: 1;
  transition: background 0.15s, color 0.15s;
}
.dashboard-widget-card-remove:hover {
  background: #f1f3f4;
  color: #ea4335;
}
.dashboard-widget-card-body {
  flex: 1;
  min-height: 0;
  padding: 12px;
  overflow-y: auto;
  overflow-x: hidden;
}
.dashboard-widget-empty {
  font-size: 13px;
  color: #5f6368;
  text-align: center;
  padding: 16px;
}
.dashboard-widget-exclude-collapsible {
  margin-bottom: 8px;
}
.dashboard-widget-exclude-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 6px 10px;
  font-size: 13px;
  color: #5f6368;
  background: #f1f3f4;
  border: 1px solid #dadce0;
  border-radius: 8px;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
}
.dashboard-widget-exclude-toggle:hover {
  background: #e8eaed;
}
.dashboard-widget-exclude-toggle-text {
  flex: 0 1 auto;
  color: #202124;
  font-weight: 500;
}
.dashboard-widget-exclude-badge {
  flex: 0 0 auto;
  min-width: 18px;
  padding: 2px 7px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.25;
  color: #fff;
  background: #1a73e8;
  border-radius: 10px;
  text-align: center;
}
.dashboard-widget-exclude-chevron {
  margin-left: auto;
  flex: 0 0 auto;
  display: inline-block;
  font-size: 9px;
  line-height: 1;
  color: #5f6368;
  transition: transform 0.15s ease;
}
.dashboard-widget-exclude-toggle.is-open .dashboard-widget-exclude-chevron {
  transform: rotate(-180deg);
}
.dashboard-widget-exclude-panel {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid #e8eaed;
}
.dashboard-widget-exclude-panel .dashboard-widget-exclude-label {
  display: block;
  margin: 0 0 8px;
  font-size: 12px;
  line-height: 1.4;
  color: #5f6368;
}
.dashboard-widget-exclude-tools {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 8px;
}
.dashboard-widget-exclude-search {
  flex: 1 1 8rem;
  min-width: 0;
  padding: 6px 10px;
  font-size: 13px;
  border: 1px solid #dadce0;
  border-radius: 8px;
  background: #fff;
  color: #202124;
  box-sizing: border-box;
}
.dashboard-widget-exclude-all {
  flex: 0 0 auto;
  font-size: 12px;
  padding: 6px 12px;
  white-space: nowrap;
}
.dashboard-widget-exclude-list {
  max-height: 12rem;
  overflow-y: auto;
  border: 1px solid #dadce0;
  border-radius: 8px;
  padding: 6px 8px;
  background: #fff;
  box-sizing: border-box;
}
.dashboard-widget-exclude-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 4px 2px;
  font-size: 13px;
  color: #202124;
  cursor: pointer;
  border-radius: 4px;
}
.dashboard-widget-exclude-item:hover {
  background: #f1f3f4;
}
.dashboard-widget-exclude-item input {
  margin-top: 2px;
  flex-shrink: 0;
}
.dashboard-widget-exclude-item-text {
  flex: 1;
  line-height: 1.35;
  word-break: break-word;
}
.dashboard-widget-chart-wrap {
  position: relative;
  min-height: 140px;
}
.dashboard-widget-card-body.dashboard-widget-card-body--filtered-time {
  display: flex;
  flex-direction: column;
}
.dashboard-widget-card-body--filtered-time .dashboard-widget-exclude-collapsible {
  flex-shrink: 0;
}
.dashboard-widget-card-body--filtered-time .dashboard-widget-chart-wrap {
  flex: 1 1 auto;
  min-height: 160px;
}
body.theme-dark .dashboard-widget-card {
  border-color: #3c4043;
  background: #292a2d;
}
body.theme-dark .dashboard-widget-card-title {
  color: #e8eaed;
}
body.theme-dark .dashboard-widget-card-drag {
  color: #9aa0a6;
}
body.theme-dark .dashboard-widget-card-remove:hover {
  background: #4a4d51;
  color: #f28b82;
}
body.theme-dark .dashboard-widget-empty {
  color: #9aa0a6;
}
body.theme-dark .dashboard-widget-exclude-toggle {
  background: #3c4043;
  border-color: #5f6368;
  color: #9aa0a6;
}
body.theme-dark .dashboard-widget-exclude-toggle:hover {
  background: #4a4d51;
}
body.theme-dark .dashboard-widget-exclude-toggle-text {
  color: #e8eaed;
}
body.theme-dark .dashboard-widget-exclude-chevron {
  color: #9aa0a6;
}
body.theme-dark .dashboard-widget-exclude-panel {
  border-top-color: #3c4043;
}
body.theme-dark .dashboard-widget-exclude-label {
  color: #9aa0a6;
}
body.theme-dark .dashboard-widget-exclude-search {
  background: #202124;
  color: #e8eaed;
  border-color: #5f6368;
}
body.theme-dark .dashboard-widget-exclude-list {
  background: #202124;
  border-color: #5f6368;
}
body.theme-dark .dashboard-widget-exclude-item {
  color: #e8eaed;
}
body.theme-dark .dashboard-widget-exclude-item:hover {
  background: #3c4043;
}

.dashboard-widget-picker-card {
  background: #fff;
  border: 1px solid #dadce0;
  border-radius: 12px;
  padding: 20px;
  max-width: 320px;
  width: 100%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.18);
}
.dashboard-widget-picker-title {
  font-size: 16px;
  font-weight: 700;
  color: #202124;
  margin-bottom: 16px;
}
.dashboard-widget-picker-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
}
.dashboard-widget-picker-option {
  padding: 12px 16px;
  text-align: left;
  border: 1px solid #e8eaed;
  border-radius: 8px;
  background: #fff;
  font-size: 14px;
  color: #202124;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
}
.dashboard-widget-picker-option:hover {
  background: #f8f9fa;
  border-color: #1a73e8;
  color: #1a73e8;
}
.dashboard-widget-picker-empty {
  font-size: 13px;
  color: #5f6368;
  margin: 0;
}
body.theme-dark .dashboard-widget-picker-card {
  background: #292a2d;
  border-color: #3c4043;
}
body.theme-dark .dashboard-widget-picker-title {
  color: #e8eaed;
}
body.theme-dark .dashboard-widget-picker-option {
  background: #35363a;
  border-color: #3c4043;
  color: #e8eaed;
}
body.theme-dark .dashboard-widget-picker-option:hover {
  background: #1e3a5f;
  border-color: #8ab4f8;
  color: #8ab4f8;
}
body.theme-dark .dashboard-widget-picker-empty {
  color: #9aa0a6;
}

.btn {
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid #dadce0;
  background: #fff;
  cursor: pointer;
  color: #202124;
  font-family: inherit;
  font-size: 13px;
}

.btn:hover { background: #f1f3f4; }
.btn:disabled { opacity: 0.6; cursor: default; }

.btn-primary {
  background: #1a73e8;
  color: #fff;
  border-color: #1a73e8;
}
.btn-primary:hover { background: #1557b0; }

.btn-danger {
  background: transparent;
  color: #c5221f;
  border: 1px solid #dadce0;
}
.btn-danger:hover {
  background: #fce8e6;
  border-color: #c5221f;
}
/* Use for admin/destructive actions that should stay prominent */
.btn-danger-solid {
  background: #d93025 !important;
  color: #fff !important;
  border-color: #d93025 !important;
}
.btn-danger-solid:hover {
  background: #b71c1c !important;
  border-color: #b71c1c !important;
}

.app-tabs {
  display: flex;
  gap: 0;
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  border-bottom: 1px solid #e8eaed;
  margin-bottom: 0;
}

.tab-btn {
  flex-shrink: 0;
  padding: 10px 16px;
  border-radius: 0;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  background: transparent;
  cursor: pointer;
  font-size: 13px;
  color: #5f6368;
}

.tab-btn:hover {
  color: #202124;
  background: rgba(0, 0, 0, 0.04);
}

.tab-btn.active {
  color: #1a73e8;
  font-weight: 600;
  border-bottom-color: #1a73e8;
  background: #fff;
}

.services-sub-tabs {
  display: flex;
  gap: 0;
  border-bottom: 1px solid #e8eaed;
  margin-bottom: 0;
  flex-shrink: 0;
}

.view { display: none; min-height: 0; flex: 1; }
.view.show { display: block; }
/* Services: block view cannot pass height to .split height:100%; use flex so roster dock gets a bounded area */
#view-services.view.show {
  display: flex;
  flex-direction: column;
  flex: 1 1 0%;
  min-height: 0;
  overflow: hidden;
}

.config-wrap {
  padding: 1rem 1.5rem;
  max-width: 480px;
}
.config-title {
  font-size: 1.25rem;
  font-weight: 600;
  margin: 0 0 0.5rem 0;
}
.config-desc {
  color: #5f6368;
  font-size: 0.875rem;
  margin: 0 0 1.25rem 0;
}
.config-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.config-form-row {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.config-label {
  font-size: 0.875rem;
  font-weight: 500;
  color: #202124;
}
.config-input {
  max-width: 320px;
}
.config-input--readonly {
  background: #f1f3f4;
  color: #5f6368;
  cursor: default;
}
.config-form-actions {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.config-msg {
  font-size: 0.875rem;
}
.config-msg--ok {
  color: #137333;
}
.config-msg--error {
  color: #c5221f;
}

.menu-builder-wrap {
  padding: 1rem 1.5rem;
  max-width: 560px;
}
.menu-builder-title {
  font-size: 1.25rem;
  font-weight: 600;
  margin: 0 0 0.5rem 0;
}
.menu-builder-desc {
  color: #5f6368;
  font-size: 0.875rem;
  margin: 0 0 1.25rem 0;
}
.admin-info-pages-todo {
  border: 1px solid #dadce0;
  border-radius: 8px;
  padding: 1rem 1.125rem;
  background: #f8f9fa;
  font-size: 0.9375rem;
  line-height: 1.5;
}
.admin-info-pages-todo p {
  margin: 0 0 0.75rem 0;
}
.admin-info-pages-todo p:last-child {
  margin-bottom: 0;
}
.admin-info-pages-todo-title {
  font-weight: 600;
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: #5f6368;
  margin-bottom: 0.5rem !important;
}
.admin-info-pages-todo-foot {
  font-size: 0.8125rem;
  color: #5f6368;
  font-style: italic;
}
body.theme-dark .admin-info-pages-todo {
  border-color: #3c4043;
  background: #202124;
}
body.theme-dark .admin-info-pages-todo-title,
body.theme-dark .admin-info-pages-todo-foot {
  color: #9aa0a6;
}
.menu-builder-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.menu-builder-row {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.menu-builder-label {
  flex: 0 0 140px;
  font-size: 0.875rem;
}
.menu-builder-row-cells {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.menu-builder-color-dot {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  display: block;
  background-color: #e8eaed;
}
.menu-builder-popover-toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.menu-builder-popover-toolbar .menu-builder-filter {
  flex: 1;
  min-width: 120px;
}
.menu-builder-popover-color-wrap {
  position: relative;
  flex-shrink: 0;
}
.menu-builder-popover-color-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid #dadce0;
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
}
.menu-builder-popover-color-trigger:hover {
  border-color: #1a73e8;
  background: #e8f0fe;
}
.menu-builder-color-panel {
  display: none;
  position: absolute;
  left: 100%;
  top: 0;
  margin-left: 6px;
  padding: 14px;
  min-width: 180px;
  border-radius: 12px;
  border: 1px solid #e8eaed;
  background: #fff;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
  z-index: 10;
}
.menu-builder-color-panel.is-open {
  display: block;
}
.menu-builder-color-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 10px;
  margin-bottom: 12px;
}
.menu-builder-color-swatch {
  width: 28px;
  height: 28px;
  padding: 0;
  border: 3px solid transparent;
  border-radius: 50%;
  cursor: pointer;
  flex-shrink: 0;
}
.menu-builder-color-swatch:hover {
  border-color: #dadce0;
}
.menu-builder-color-swatch.is-selected {
  border-color: #202124;
  box-shadow: 0 0 0 1px #fff;
}
.menu-builder-color-none-row {
  padding-top: 8px;
  border-top: 1px solid #e8eaed;
}
.menu-builder-color-none {
  width: 100%;
  padding: 6px 12px;
  font-size: 13px;
  color: #5f6368;
  background: transparent;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  text-align: left;
}
.menu-builder-color-none:hover {
  background: #f1f3f4;
  color: #202124;
}
.menu-builder-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 1px solid #dadce0;
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
  color: #5f6368;
}
.menu-builder-trigger:hover {
  border-color: #1a73e8;
  background: #e8f0fe;
  color: #1a73e8;
}
.menu-builder-trigger-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
}
.menu-builder-trigger-icon svg {
  width: 100%;
  height: 100%;
}
.menu-builder-trigger-none {
  font-size: 12px;
  color: #9aa0a6;
}
.menu-builder-icon-popover {
  display: none;
  position: fixed;
  z-index: 1000;
  min-width: 280px;
  max-width: 360px;
  max-height: 70vh;
  padding: 12px;
  border-radius: 12px;
  border: 1px solid #e8eaed;
  background: #fff;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
  flex-direction: column;
  gap: 10px;
}
.menu-builder-icon-popover.is-open {
  display: flex;
}
.menu-builder-popover-remove {
  align-self: flex-end;
  padding: 4px 10px;
  font-size: 13px;
  color: #5f6368;
  background: transparent;
  border: none;
  border-radius: 6px;
  cursor: pointer;
}
.menu-builder-popover-remove:hover {
  color: #1a73e8;
  background: #e8f0fe;
}
.menu-builder-filter {
  width: 100%;
  padding: 8px 12px;
  font-size: 14px;
  border: 1px solid #dadce0;
  border-radius: 8px;
}
.menu-builder-filter:focus {
  outline: none;
  border-color: #1a73e8;
  box-shadow: 0 0 0 2px rgba(26, 115, 232, 0.2);
}
.menu-builder-popover-heading {
  font-size: 12px;
  font-weight: 600;
  color: #5f6368;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-top: 4px;
}
.menu-builder-icon-grid {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: 4px;
  overflow-y: auto;
  max-height: 240px;
  padding: 2px 0;
}
.menu-builder-icon-cell {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  padding: 0;
  border: none;
  border-radius: 6px;
  background: transparent;
  cursor: pointer;
  color: #5f6368;
}
.menu-builder-icon-cell:hover {
  background: #e8eaed;
  color: #202124;
}
.menu-builder-icon-cell.is-selected {
  background: #e8f0fe;
  color: #1a73e8;
}
.menu-builder-icon-cell svg {
  width: 14px;
  height: 14px;
}

.split {
  display: flex;
  gap: 0;
  min-height: 0;
  height: 100%;
}

.panel {
  border: 1px solid #e8eaed;
  border-radius: 12px;
  background: #fff;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.panel-left { width: 380px; flex-shrink: 0; border-radius: 12px 0 0 12px; }
.panel-right { flex: 1; min-width: 0; border-radius: 0 12px 12px 0; }

/* Services view: drag handle between service areas list and detail */
#services-split {
  --services-panel-left-width: 380px;
}
/* Override .split { height:100% } — that % height can block flex shrink so the roster grows with content and never scrolls. */
#view-services #services-split {
  flex: 1 1 0%;
  min-height: 0;
  height: auto;
  overflow: hidden;
}
#view-services #services-split > .panel.panel-right {
  flex: 1 1 0%;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
}
#services-split > .panel-left {
  width: var(--services-panel-left-width);
  flex: 0 0 var(--services-panel-left-width);
  max-width: 78vw;
}
.split-gutter {
  flex-shrink: 0;
  margin: 0;
  padding: 0;
  border: none;
  background: #e8eaed;
}
.split-gutter--vertical {
  width: 6px;
  cursor: col-resize;
  touch-action: none;
  align-self: stretch;
  min-height: 0;
}
.split-gutter--vertical:hover,
.split-gutter--vertical:focus-visible {
  background: #dadce0;
}
.split-gutter--vertical:focus {
  outline: none;
  box-shadow: inset 0 0 0 2px rgba(26, 115, 232, 0.35);
}
body.is-split-dragging {
  cursor: col-resize !important;
  user-select: none;
}
@media (max-width: 820px) {
  #services-split > .panel-left {
    width: auto !important;
    flex: 1 1 auto !important;
    max-width: none !important;
  }
  #services-split .split-gutter--vertical {
    display: none;
  }
}

.panel-toolbar {
  padding: 10px;
  border-top: none;
  border-bottom: 1px solid #e8eaed;
  background: #f8f9fa;
}
.panel-toolbar.panel-toolbar-row {
  padding: 6px 10px;
  align-items: center;
}

.registrations-search-wrap {
  position: relative;
  flex: 1;
  min-width: 0;
}
.registrations-search-wrap input {
  padding-right: 36px;
}
.registrations-search-reset {
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  color: #5f6368;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.registrations-search-reset:hover {
  color: #202124;
  background: rgba(0, 0, 0, 0.06);
}
.registrations-search-reset:focus {
  outline: none;
  box-shadow: 0 0 0 2px rgba(26, 115, 232, 0.3);
}
.panel-toolbar input {
  width: 100%;
  box-sizing: border-box;
  padding: 10px 12px;
  border: 1px solid #dadce0;
  border-radius: 10px;
  font-size: 14px;
}

.panel-toolbar input:focus {
  outline: none;
  border-color: #1a73e8;
}

.list {
  flex: 1;
  overflow: auto;
  padding: 6px;
}

.list-item {
  border: 1px solid transparent;
  border-radius: 0px;
  padding: 10px 10px;
  cursor: pointer;
}

.list-item:hover { background: #f1f3f4; }
.list-item.active { background: #e8f0fe; border-color: #d2e3fc; }
.list-item.list-item--selected { background: #e8f0fe; border-color: #d2e3fc; }
.list-item.registrations-list-item.active { border-width: 0.5px; border-color: #e8f0fe; }

.list-title { font-weight: 700; color: #202124; font-size: 13px; }
.list-sub { color: #5f6368; font-size: 12px; margin-top: 2px; line-height: 1.3; }
.list-meta { color: #5f6368; font-size: 12px; margin-top: 1px; line-height: 1.3; }
.list-badges { margin-top: 6px; display: flex; flex-wrap: wrap; gap: 6px; }

.people-list-item { padding: 6px 10px; }
.people-list-item .list-item-row.list-item-head {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.people-list-item .list-item-head .list-title { font-size: 12px; flex: 1; min-width: 0; }
.people-list-item .list-item-head .list-badges { margin-top: 0; margin-left: auto; display: flex; flex-wrap: wrap; gap: 4px; }
.people-list-item .list-sub { margin-top: 1px; font-size: 11px; }

.registrations-bulk-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: -6px -6px 0 -6px;
  padding: 14px 16px 8px 16px;
  background: #e8f0fe;
  border-bottom: 1px solid #d2e3fc;
  font-size: 13px;
  position: sticky;
  top: -6px;
  z-index: 2;
}
.registrations-bulk-bar .bulk-count { font-weight: 600; color: #1a73e8; }
.registrations-bulk-bar .btn-sm { padding: 4px 10px; font-size: 12px; }

.registrations-list-header {
  font-size: 11px;
  font-weight: 700;
  color: #5f6368;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  padding: 8px 10px 6px 10px;
  border-bottom: 1px solid #e8eaed;
  display: flex;
  align-items: center;
  gap: 10px;
}
.registrations-list-header-title { flex: 1; }
.reg-select-all { display: inline-flex; align-items: center; gap: 4px; cursor: pointer; font-weight: 600; }
.reg-select-wrap { flex-shrink: 0; display: inline-flex; align-items: center; }
.registrations-list-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}
.registrations-list-item-body { flex: 1; min-width: 0; }
.registrations-list-item .list-item-row.list-item-head {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.registrations-list-item .list-item-head .list-title-link {
  font-weight: 700;
  font-size: 13px;
  color: #1a73e8;
}
.registrations-list-item .list-item-head .list-badges {
  margin-top: 0;
  margin-left: auto;
}
.registrations-list-item .list-sub { margin-top: 2px; }

.list-sub .search-match {
  font-weight: 500;
  color: #225597;
}

.pager {
  padding: 10px;
  border-top: 1px solid #e8eaed;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  background: #fff;
  border-radius: 0 0 0 8px;
}

.pager-range { color: #5f6368; font-size: 12px; }

.pager--top {
  border-top: none;
  border-bottom: 1px solid #e8eaed;
}

.detail {
  flex: 1;
  min-height: 0;
  min-width: 0;
  overflow: auto;
  padding: 14px 14px 18px 14px;
}
/* Prevent detail content from collapsing on narrow viewports; horizontal scroll instead */
.detail > .detail-header,
.detail > .detail-section {
  min-width: 320px;
}
.detail > .detail-section.detail-summary {
  min-width: 640px;
}
.detail > .detail-section.detail-tabs-wrap {
  min-width: 380px;
}

.detail-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.detail-title { font-size: 16px; font-weight: 700; color: #202124; flex-shrink: 1; min-width: 0; }
.detail-header-actions { flex-shrink: 0; }
.detail-sub { font-size: 12px; color: #5f6368; margin-top: 2px; }

.services-detail-header { margin-bottom: 12px; }
.services-detail-header .detail-title { margin-bottom: 4px; }
.services-meta { font-size: 13px; color: #5f6368; margin: 2px 0; }
.table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-top: 8px; }
/* Services roster: vertical scroll on #services-detail; horizontal scroll only on .services-roster-dock-body
   so tabs, header, and toolbar rows don’t move sideways. Sticky thead (top) uses #services-detail; frozen cols (left) use dock-body. */
/* No top padding on scrollport: .detail's 14px padding-top made sticky thead sit 14px low, leaving a gap where rows showed through. */
#view-services #services-detail.detail {
  box-sizing: border-box;
  flex: 1 1 0%;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 0 14px 0 14px;
}
#view-services #services-detail-loaded {
  box-sizing: border-box;
  flex: 1 1 0%;
  min-height: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
  overflow-y: visible;
  padding-top: 14px;
}
#view-services #services-detail > .empty {
  padding-top: 14px;
}
#view-services #services-detail-loaded .services-detail-header,
#view-services #services-detail-loaded #services-config-edit,
#view-services #services-detail-loaded > .panel-toolbar {
  flex-shrink: 0;
}
#view-services #services-detail .detail-section.detail-section--table-wrap {
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: visible;
  margin-top: 0;
  box-sizing: border-box;
}
#services-roster-table-wrap.table-wrap {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  margin-top: 0;
  overflow: visible;
}
/* Horizontal scrollport for the wide roster table + footer (only this region scrolls sideways). */
.services-roster-dock {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  overflow: visible;
}
.services-roster-dock-h {
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: visible;
}
.services-roster-dock-body {
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
}
.services-roster-dock-footer {
  position: sticky;
  bottom: 0;
  z-index: 1;
  margin-bottom: 0;
  padding-bottom: 0;
  background: #eceff1;
  border-top: 1px solid #dadce0;
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.06);
}
.services-roster-dock-body .services-roster-table,
.services-roster-dock-footer .services-roster-table {
  width: max-content;
  min-width: max(720px, 100%);
}
.services-roster-dock-footer .services-roster-table {
  margin: 0;
}
.services-roster-dock-footer td.services-roster-foot-cell {
  background: #eceff1;
  font-size: 11px;
  vertical-align: top;
  padding: 8px 10px;
  border-bottom: 1px solid #dadce0;
}
.services-roster-dock-body .services-roster-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #f8f9fa;
  box-shadow: inset 0 -1px 0 #e8eaed;
}
.services-roster-dock-body .services-roster-table thead th.services-roster-frozen,
.services-roster-dock-body .services-roster-table tbody td.services-roster-frozen {
  background: #f8f9fa;
}
.services-roster-dock-body .services-roster-table tbody tr:hover td.services-roster-frozen {
  background: #f1f3f4;
}
.services-roster-dock-footer .services-roster-table tbody td.services-roster-frozen {
  background: #eceff1;
}
.services-roster-freeze-menu {
  min-width: 200px;
  padding: 4px 0;
  border-radius: 8px;
  border: 1px solid #dadce0;
  background: #fff;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}
.services-roster-freeze-menu-item {
  display: block;
  width: 100%;
  margin: 0;
  padding: 8px 14px;
  border: 0;
  background: transparent;
  text-align: left;
  font-size: 13px;
  color: #202124;
  cursor: pointer;
}
.services-roster-freeze-menu-item:hover:not(:disabled) {
  background: #f1f3f4;
}
.services-roster-freeze-menu-item:disabled {
  opacity: 0.45;
  cursor: default;
}
.services-roster-foot-rows {
  font-size: 11px;
  font-weight: 600;
  color: #5f6368;
  margin-bottom: 6px;
  white-space: nowrap;
}
.services-roster-foot-controls {
  margin-bottom: 6px;
}
.services-roster-table .services-roster-foot-agg {
  width: 100%;
  max-width: 100%;
  font-size: 11px;
  padding: 4px 6px;
  box-sizing: border-box;
}
.services-roster-foot-result {
  font-size: 12px;
  color: #202124;
  line-height: 1.35;
  max-width: 18rem;
  max-height: 3.1em;
  overflow: hidden;
  word-break: break-word;
}
.panel-toolbar-title { font-weight: 600; font-size: 13px; color: #202124; }
.services-roster-th {
  position: relative;
  padding-right: 12px;
}
.services-roster-th-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  width: 100%;
  min-width: 0;
}
.services-roster-col-resize {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 6px;
  margin-right: -2px;
  cursor: col-resize;
  z-index: 5;
  touch-action: none;
}
.services-roster-col-resize:hover {
  background: rgba(26, 115, 232, 0.12);
}
body.services-roster-col-resizing {
  cursor: col-resize;
  user-select: none;
}
body.theme-dark .services-roster-col-resize:hover {
  background: rgba(138, 180, 248, 0.14);
}
.services-roster-th-sort {
  flex: 1;
  min-width: 0;
  cursor: pointer;
  user-select: none;
  margin: -2px -4px;
  padding: 2px 4px;
  border-radius: 4px;
}
.services-roster-table th.services-roster-th .services-roster-th-sort:hover { background: #e8eaed; }
.services-roster-filter-btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 4px;
  background: transparent;
  color: #5f6368;
  cursor: pointer;
}
.services-roster-filter-btn:hover {
  background: #e8eaed;
  color: #202124;
}
.services-roster-filter-btn.is-active {
  background: #e8f0fe;
  border-color: #1a73e8;
  color: #1a73e8;
}
.services-roster-filter-icon { display: block; }
.services-roster-filter-popover {
  position: fixed;
  z-index: 10060;
  max-height: min(72vh, 520px);
  box-sizing: border-box;
  width: min(360px, calc(100vw - 16px));
  padding: 0;
  border: 1px solid #dadce0;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.18);
}
.services-roster-filter-popover[hidden] { display: none !important; }
.services-roster-filter-popover-inner {
  display: flex;
  flex-direction: column;
  max-height: inherit;
  min-height: 0;
}
.services-roster-filter-section {
  padding: 10px 12px;
  border-bottom: 1px solid #e8eaed;
}
.services-roster-filter-section:last-of-type { border-bottom: none; }
.services-roster-filter-section-title {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #80868b;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.services-roster-filter-sort-row {
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: flex-start;
}
.services-roster-filter-link {
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  font-size: 13px;
  color: #1a73e8;
  cursor: pointer;
  text-align: left;
}
.services-roster-filter-link:hover { text-decoration: underline; }
.services-roster-filter-condition-op,
.services-roster-filter-condition-needle-wrap .services-roster-filter-condition-needle,
.services-roster-filter-value-search {
  width: 100%;
  box-sizing: border-box;
}
.services-roster-filter-condition-needle-wrap { margin-top: 8px; }
.services-roster-filter-value-search { margin-top: 8px; }
.services-roster-filter-values-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin-bottom: 8px;
}
.services-roster-filter-values-meta {
  font-size: 12px;
  color: #5f6368;
  margin-left: auto;
}
.services-roster-filter-values-list {
  max-height: 200px;
  overflow: auto;
  border: 1px solid #e8eaed;
  border-radius: 8px;
  padding: 4px 0;
  -webkit-overflow-scrolling: touch;
}
.services-roster-filter-value-row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 4px 10px;
  font-size: 13px;
  cursor: pointer;
}
.services-roster-filter-value-row:hover { background: #f1f3f4; }
.services-roster-filter-value-text { flex: 1; min-width: 0; word-break: break-word; }
.services-roster-filter-footer {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 10px 12px;
  border-top: 1px solid #e8eaed;
  background: #f8f9fa;
  border-radius: 0 0 10px 10px;
}
.services-roster-tags { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.services-roster-tag {
  display: inline-block;
  padding: 2px 8px;
  font-size: 11px;
  border-radius: 4px;
  background: #e8f0fe;
  color: #1967d2;
  border: 1px solid #d2e3fc;
  white-space: nowrap;
}
.services-roster-table .services-roster-contact-status {
  max-width: 11rem;
  font-size: 12px;
  padding: 4px 8px;
  border-radius: 4px;
  border: 1px solid #dadce0;
  background: #fff;
  color: #202124;
}
.services-roster-table .services-roster-notes {
  min-width: 8rem;
  max-width: 16rem;
  width: 100%;
  font-size: 12px;
  padding: 4px 8px;
  border-radius: 4px;
  border: 1px solid #dadce0;
  box-sizing: border-box;
}
.services-roster-dbs-td { vertical-align: top; }
.services-roster-dbs-stack {
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: stretch;
  min-width: 6.5rem;
}
.services-roster-dbs-from-reg {
  font-size: 12px;
  line-height: 1.3;
  word-break: break-word;
}
.services-roster-dbs-audit {
  font-size: 11px;
  line-height: 1.35;
  color: #5f6368;
  word-break: break-word;
}
.services-roster-dbs-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}
.services-roster-dbs-btns .btn-sm {
  padding: 4px 8px;
  font-size: 11px;
  white-space: nowrap;
}
/* Softer than global .btn-primary — pastel fill, still clearly a primary action */
.services-roster-dbs-btns .services-roster-dbs-confirm.btn-primary {
  background: #e3ecf7;
  color: #3d5a80;
  border-color: #c5d4eb;
}
.services-roster-dbs-btns .services-roster-dbs-confirm.btn-primary:hover {
  background: #d4e2f5;
  border-color: #a8bce0;
  color: #2f4766;
}
body.theme-dark .services-roster-dbs-btns .services-roster-dbs-confirm.btn-primary {
  background: #2d3544;
  color: #b8c9e8;
  border-color: #5f6368;
}
body.theme-dark .services-roster-dbs-btns .services-roster-dbs-confirm.btn-primary:hover {
  background: #3a4558;
  border-color: #7a8088;
  color: #d2ddf0;
}
.services-roster-table td.services-roster-dbs-td.is-dbs-confirmed {
  background: #e6f4ea !important;
}
.services-roster-table tr:hover td.services-roster-dbs-td.is-dbs-confirmed {
  background: #cde9d6 !important;
}
body.theme-dark .services-roster-table td.services-roster-dbs-td.is-dbs-confirmed {
  background: #1e3a2f !important;
}
body.theme-dark .services-roster-table tr:hover td.services-roster-dbs-td.is-dbs-confirmed {
  background: #254536 !important;
}
body.theme-dark .services-roster-dbs-audit { color: #9aa0a6; }

.detail-section { margin-top: 22px; }
.section-title {
  font-size: 11px;
  font-weight: 800;
  color: #5f6368;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  margin-bottom: 8px;
}
.detail .section-title { font-weight: 600; }

.data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.data-table th,
.data-table td {
  padding: 6px 10px;
  text-align: left;
  border: 1px solid #e8eaed;
}
.data-table th { background: #f8f9fa; font-weight: 600; color: #202124; }
.data-table tr:hover td { background: #f1f3f4; }
.data-table .db-table-row { cursor: pointer; }
.data-table .db-table-row.active td { background: #e8f0fe; }
.detail-value { word-break: break-all; }

/* Database admin — minimal layout, table tools first */
.db-admin-view .panel-left {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.db-admin-section {
  margin: 0;
  padding: 0.75rem 0;
  border-bottom: 1px solid #e8eaed;
}
.db-admin-section:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.db-admin-section--table {
  padding-top: 0;
}
.db-admin-section-title {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #5f6368;
  margin: 0 0 0.45rem 0;
}
.db-table-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.65rem;
}
.db-table-toolbar .db-table-select {
  min-width: 10rem;
  flex: 1 1 12rem;
  max-width: 100%;
}
.db-table-toolbar .db-table-pager {
  margin: 0;
  flex-wrap: wrap;
}
.db-compact-toolbar {
  flex-wrap: wrap;
  gap: 0.4rem 0.5rem;
}
.db-admin-view .btn-sm {
  padding: 4px 10px;
  font-size: 12px;
}
.db-mig-select {
  min-width: 12rem;
  max-width: 100%;
}
.db-email-filters .input {
  min-width: 8rem;
  max-width: 100%;
}
.db-email-pager {
  margin-top: 0.4rem;
}
.db-status-line {
  font-size: 12px;
  color: #5f6368;
  margin-top: 0.35rem;
  line-height: 1.35;
}
.db-hint {
  font-size: 11px;
  color: #80868b;
  margin: 0 0 0.4rem 0;
  line-height: 1.3;
}

.member-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 0;
  margin-bottom: 14px;
}

.member-row + .member-row { border-top: 1px solid #f1f3f4; padding-top: 14px; }
.member-name { font-weight: 600; color: #202124; font-size: 13px; }
.member-meta { font-size: 12px; color: #5f6368; margin-top: 2px; }

.member-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

.detail .btn-danger,
.detail .btn-reinstate-person {
  background: transparent;
  color: #5f6368;
  border: 1px solid #dadce0;
  font-size: 12px;
  padding: 4px 10px;
}
.detail .btn-danger:hover,
.detail .btn-reinstate-person:hover { background: #f1f3f4; border-color: #dadce0; }
.detail .btn-danger:hover { color: #c5221f; }
.detail .btn-reinstate-person { color: #5f6368; }
.detail .btn-reinstate-person:hover { color: #1a73e8; background: #e8f0fe; border-color: #d2e3fc; }

.detail-danger-zone-header {
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  font-size: 11px;
  font-weight: 600;
  color: #5f6368;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  margin-bottom: 8px;
  user-select: none;
}
.detail-danger-zone-header:hover { color: #c5221f; }
.detail-danger-zone-header .filters-chevron { transition: transform 0.2s; }
.detail-danger-zone.collapsed .detail-danger-zone-body { display: none; }
.detail-danger-zone.collapsed .filters-chevron { transform: rotate(-90deg); }
.detail-danger-zone-body { margin-top: 8px; }

.detail-tabs-wrap { margin-top: 16px; }
.detail-tabs {
  display: flex;
  gap: 4px;
  margin-bottom: 12px;
  border-bottom: 1px solid #dadce0;
}
.detail-tab-btn {
  padding: 8px 14px;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  background: transparent;
  cursor: pointer;
  font-size: 13px;
  color: #5f6368;
}
.detail-tab-btn:hover { color: #202124; }
.detail-tab-btn.active {
  color: #1a73e8;
  font-weight: 600;
  border-bottom-color: #1a73e8;
}
.detail-tab-panel { display: none; }
.detail-tab-panel.show { display: block; }

.detail-summary { }
.detail-summary-header {
  cursor: pointer;
  user-select: none;
  font-weight: 600;
  font-size: 13px;
  color: #202124;
  display: flex;
  align-items: center;
  gap: 6px;
}
.detail-summary-header .filters-chevron { transition: transform 0.2s; }
.detail-summary.collapsed .detail-summary-body { display: none; }
.detail-summary.collapsed .filters-chevron { transform: rotate(-90deg); }
.detail-summary-body { margin-top: 8px; }

.detail-summary-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 24px;
  min-width: 0;
}
.detail-summary-grid {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.detail-summary-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  font-size: 13px;
}
.detail-summary-label {
  color: #9aa0a6;
  font-weight: 500;
  width: 150px;
  min-width: 150px;
  flex-shrink: 0;
}
.detail-summary-value {
  color: #202124;
  min-width: 100px;
  overflow-wrap: break-word;
  word-break: break-word;
  max-width: 100%;
}
.detail-copy-btn svg {
  width: 14px;
  height: 14px;
}
.detail-copy-btn {
  flex-shrink: 0;
  padding: 4px;
  margin: 0;
  border: none;
  background: none;
  cursor: pointer;
  color: #5f6368;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
}
.detail-copy-btn:hover {
  color: #1a73e8;
  background: rgba(0, 0, 0, 0.04);
}

.detail-payments-layout {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 24px;
  min-width: 0;
}
.detail-payments-nav {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.detail-payments-nav-title {
  font-size: 11px;
  font-weight: 700;
  color: #5f6368;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  margin-bottom: 6px;
}
.detail-payments-nav-item {
  font-size: 13px;
  color: #202124;
  cursor: pointer;
  padding: 6px 0;
  display: flex;
  align-items: center;
  gap: 6px;
  user-select: none;
}
.detail-payments-nav-item:hover {
  color: #1a73e8;
}
.detail-payments-nav-item .filters-chevron {
  font-size: 10px;
  opacity: 0.7;
}
.detail-payments-content {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
}
.detail-payments-section {
  margin-bottom: 0;
  min-width: 0;
}
.detail-payments-rows.detail-summary-grid .detail-summary-row .detail-summary-value {
  flex: 1;
  text-align: left;
}
.detail-payments-rows .detail-summary-value input {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: 6px 8px;
  font-size: 13px;
  color: #202124;
  border: 1px solid transparent;
  border-radius: 4px;
  background: transparent;
}
.detail-payments-rows .detail-summary-value input:hover {
  background: rgba(0, 0, 0, 0.04);
}
.detail-payments-rows .detail-summary-value input:focus {
  outline: none;
  border-color: #dadce0;
  background: #fff;
}
.detail-payments-section.collapsible .detail-payments-section-header {
  cursor: pointer;
  user-select: none;
  font-weight: 600;
  font-size: 13px;
  color: #202124;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 0;
}
.detail-payments-section.collapsible .detail-payments-section-header .filters-chevron {
  transition: transform 0.2s;
}
.detail-payments-section.collapsible.collapsed .detail-payments-section-body {
  display: none;
}
.detail-payments-section.collapsible.collapsed .detail-payments-section-header .filters-chevron {
  transform: rotate(-90deg);
}
.detail-payments-section-body {
  margin-top: 0;
  padding-bottom: 16px;
}
.detail-payments-section-title {
  font-size: 11px;
  font-weight: 700;
  color: #5f6368;
  margin-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.detail-people-layout {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  min-height: 0;
}
.detail-people-list-col {
  width: 260px;
  max-width: 260px;
  flex-shrink: 0;
  min-width: 0;
}
.detail-people-detail-col {
  flex: 1;
  min-width: 0;
}
.detail-people-detail-empty {
  color: #9aa0a6;
  font-size: 13px;
  padding: 16px 0;
}

.detail-people-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.detail-people-list-item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 0 0 0 0;
  cursor: pointer;
  font-size: 13px;
  border: 1px solid transparent;
}
.detail-people-list-item::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: transparent;
  border-radius: 0;
}
.detail-people-list-item:hover {
  background: rgba(0, 0, 0, 0.04);
}
.detail-people-list-item.active {
  background: #e8f0fe;
}
.detail-people-list-item.active.keyboard-selected {
  border-color: #1a73e8;
  border-width: 1.5px;
}
.detail-people-list-item.active::before {
  background: transparent;
  width: 0;
}
.detail-people-list-item-main {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.detail-people-list-item-main:focus {
  outline: none;
}
.detail-people-list-actions {
  position: relative;
  flex-shrink: 0;
}
.detail-people-list-menu-btn {
  padding: 4px 8px;
  min-width: 28px;
  border: 1px solid transparent;
  border-radius: 4px;
  background: transparent;
  color: #5f6368;
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
}
.detail-people-list-menu-btn:hover {
  background: #f1f3f4;
  color: #202124;
}
.detail-people-list-menu {
  position: absolute;
  right: 0;
  top: 100%;
  margin-top: 2px;
  min-width: 120px;
  padding: 4px 0;
  background: #fff;
  border: 1px solid #dadce0;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.12);
  z-index: 10;
}
.detail-people-list-menu .btn {
  display: block;
  width: 100%;
  text-align: left;
  padding: 8px 12px;
  border: none;
  border-radius: 0;
  background: transparent;
  font-size: 13px;
}
.detail-people-list-menu .btn:hover {
  background: #f1f3f4;
}
.detail-people-list-menu .btn-danger { color: #c5221f; }
.detail-people-list-menu .btn-reinstate-person { color: #1a73e8; }
.detail-people-list-name {
  font-weight: 500;
  color: #202124;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.detail-selected-person {
  margin-top: 0;
}
.detail-selected-person-title {
  border-left: 3px solid #1a73e8;
  padding-left: 12px;
  margin-top: 0;
  margin-bottom: 12px;
  font-size: 15px;
  font-weight: 700;
  color: #202124;
  text-transform: none;
  letter-spacing: 0;
}

.detail-inline-field {
  display: block;
  min-height: 1.5em;
}
.detail-inline-field label {
  display: block;
  font-size: 11px;
  color: #9aa0a6;
  margin-bottom: 2px;
  font-weight: 400;
}
.detail-inline-value {
  display: block;
  padding: 4px 6px;
  margin: -4px -6px 0 -6px;
  border-radius: 4px;
  font-size: 13px;
  color: #202124;
  font-weight: 400;
  cursor: pointer;
  min-height: 1.4em;
}
.detail-inline-value:hover {
  background: rgba(0, 0, 0, 0.04);
}
.detail-inline-value:empty::before { content: attr(data-placeholder); color: #9aa0a6; }
.detail-inline-field.is-editing .detail-inline-value { display: none; }
.detail-inline-field .detail-inline-input {
  display: none;
  width: 100%;
  box-sizing: border-box;
  padding: 4px 6px;
  margin: 0;
  border: 1px solid #dadce0;
  border-radius: 4px;
  font-size: 13px;
  color: #202124;
  background: #fff;
}
.detail-inline-field.is-editing .detail-inline-input { display: block; }
.detail-inline-field .detail-inline-input:focus {
  outline: none;
  border-color: #1a73e8;
}

/* Unsaved edits (dirty) or persisted admin overrides (from overrides table) */
.detail-inline-field.detail-field-modified,
.detail-inline-field.detail-field-overridden {
  background: #ffe8d6;
  border-radius: 6px;
  padding: 6px 8px;
  margin: 2px -8px 6px -8px;
}
.detail-inline-field.detail-field-modified .detail-inline-value,
.detail-inline-field.detail-field-modified .detail-inline-input,
.detail-inline-field.detail-field-overridden .detail-inline-value,
.detail-inline-field.detail-field-overridden .detail-inline-input {
  background: transparent;
}
.detail-inline-field.detail-field-modified .detail-inline-value:hover,
.detail-inline-field.detail-field-overridden .detail-inline-value:hover {
  background: rgba(255, 255, 255, 0.35);
}
.detail-inline-field.detail-serving-multiselect.detail-field-modified .serving-multiselect-wrap,
.detail-inline-field.detail-serving-multiselect.detail-field-overridden .serving-multiselect-wrap {
  background: transparent;
}
body.theme-dark .detail-inline-field.detail-field-modified,
body.theme-dark .detail-inline-field.detail-field-overridden {
  background: #4a3728;
}
body.theme-dark .detail-inline-field.detail-field-modified .detail-inline-value:hover,
body.theme-dark .detail-inline-field.detail-field-overridden .detail-inline-value:hover {
  background: rgba(255, 255, 255, 0.06);
}

.detail-inline-field[data-field="allergies"] {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
}
.detail-inline-field[data-field="allergies"] label {
  flex: 0 0 100%;
}
.detail-inline-field[data-field="allergies"] .detail-inline-value,
.detail-inline-field[data-field="allergies"] .detail-inline-input {
  flex: 1 1 auto;
  min-width: 0;
}
.detail-allergies-exclude-btn {
  flex: 0 0 auto;
  align-self: center;
  margin-left: 6px;
  padding: 2px 6px;
  min-width: 24px;
  height: 24px;
  border: none;
  background: none;
  color: #5f6368;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  border-radius: 4px;
  vertical-align: middle;
}
.detail-allergies-exclude-btn:hover:not(:disabled) {
  background: rgba(0, 0, 0, 0.06);
  color: #202124;
}
.detail-allergies-exclude-btn--excluded {
  color: #d93025;
  background: #fce8e6;
}
.detail-allergies-exclude-btn--excluded:hover:not(:disabled) {
  background: #f5c6c2;
  color: #b71c1c;
}
body.theme-dark .detail-allergies-exclude-btn { color: #9aa0a6; }
body.theme-dark .detail-allergies-exclude-btn:hover:not(:disabled) { background: #3c4043; color: #e8eaed; }
body.theme-dark .detail-allergies-exclude-btn--excluded { color: #f28b82; background: #5c2b2a; }
body.theme-dark .detail-allergies-exclude-btn--excluded:hover:not(:disabled) { background: #6b3332; color: #f28b82; }

/* Serving multi-select (Notion-style tags + dropdown) */
.detail-serving-multiselect .serving-multiselect-wrap {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  min-height: 36px;
  padding: 4px 8px;
  border: none;
  border-radius: 4px;
  background: #fff;
}
.detail-serving-multiselect .serving-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}
.detail-serving-multiselect .serving-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 6px 2px 8px;
  border-radius: 4px;
  font-size: 12px;
  background: #e8eaed;
  color: #202124;
}
.detail-serving-multiselect .serving-tag-remove {
  padding: 0;
  margin: 0;
  border: none;
  background: none;
  color: #5f6368;
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  border-radius: 2px;
}
.detail-serving-multiselect .serving-tag-remove:hover {
  color: #202124;
  background: rgba(0, 0, 0, 0.06);
}
.detail-serving-multiselect .serving-search {
  flex: 1;
  min-width: 80px;
  padding: 4px 6px;
  border: none;
  background: transparent;
  font-size: 13px;
  color: #202124;
}
.detail-serving-multiselect .serving-search:focus {
  outline: none;
}
.detail-serving-multiselect .serving-search::placeholder {
  color: #9aa0a6;
}
.detail-serving-multiselect .serving-dropdown {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  margin-top: 2px;
  max-height: 200px;
  overflow-y: auto;
  border: 1px solid #dadce0;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
  z-index: 10;
}
.detail-serving-multiselect .serving-dropdown-item {
  padding: 8px 12px;
  font-size: 13px;
  color: #202124;
  cursor: pointer;
}
.detail-serving-multiselect .serving-dropdown-item:hover {
  background: #f1f3f4;
}

.badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  border: 1px solid #e8eaed;
  color: #5f6368;
  background: #f8f9fa;
}
.badge-paid { background: #e6f4ea; color: #137333; border-color: #cde7d4; }
.badge-cancelled { background: #f1f3f4; color: #5f6368; }
.badge-refund { background: #fef7e0; color: #b06000; border-color: #fce8b2; }
.badge-type { background: #e8e0f0; color: #5e35b1; border-color: #d1c4e9; }
.badge-adult { background: #e3f2fd; color: #1565c0; border: 1px solid #bbdefb; }
.badge-yp { background: #f3e5f5; color: #7b1fa2; border: 1px solid #e1bee7; }
.badge-child { background: #fff3e0; color: #e65100; border: 1px solid #ffe0b2; }
.badge-lead { background: #e8f5e9; color: #2e7d32; border: 1px solid #c8e6c9; }

.loading { color: #5f6368; font-size: 13px; padding: 8px 0; }
.empty { color: #5f6368; font-size: 13px; padding: 10px 0; }

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.form-row label {
  display: block;
  font-size: 11px;
  color: #5f6368;
  margin-bottom: 4px;
  font-weight: 700;
}

.form-row input {
  width: 100%;
  box-sizing: border-box;
  padding: 9px 10px;
  border: 1px solid #dadce0;
  border-radius: 10px;
  font-size: 13px;
}

.form-row input:focus {
  outline: none;
  border-color: #1a73e8;
}

.detail .form-row label { font-weight: 400; color: #9aa0a6; }
.detail .form-row input {
  border-color: transparent;
  background: transparent;
  padding: 6px 8px;
  border-radius: 4px;
}
.detail .form-row input:hover { background: rgba(0, 0, 0, 0.04); }
.detail .form-row input:focus {
  border-color: #dadce0;
  background: #fff;
}

.form-actions {
  margin-top: 10px;
  display: flex;
  gap: 8px;
  align-items: center;
}

@media (max-width: 980px) {
  .panel-left { width: 320px; }
}

@media (max-width: 820px) {
  .split { flex-direction: column; }
  .panel-left { width: auto; }
  .form-grid { grid-template-columns: 1fr; }
}

/* Hamburger: hidden on desktop, shown on mobile */
.sidebar-open-btn {
  display: none;
}

/* Detail Back: hidden on desktop, shown on mobile */
.detail-back-btn {
  display: none;
}

/* Mobile: 768px and below */
@media (max-width: 768px) {
  .main .home-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 24px 16px;
  }
  .main .home-content .home-magic {
    margin-left: auto;
    margin-right: auto;
  }
  .main .home-content .home-magic-row {
    justify-content: center;
  }

  .login-card-form {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .login-card-form .login-btn,
  .login-card-form .login-divider,
  .login-card-form .home-magic,
  .login-card-form .login-hint {
    width: 100%;
    max-width: 100%;
    align-self: stretch;
  }
  .login-card-form .home-magic-row {
    justify-content: center;
    width: 100%;
    flex-direction: column;
  }
  .login-card-form .home-magic-row .input {
    width: 100%;
    min-width: 0;
  }
  .login-card-form .home-magic-row .login-btn-email {
    width: 100%;
  }

  .app-shell {
    padding: 12px;
    padding-left: calc(12px + env(safe-area-inset-left));
    padding-right: calc(12px + env(safe-area-inset-right));
  }

  /* Body scroll lock when sidebar drawer is open */
  body.sidebar-open {
    overflow: hidden;
    touch-action: none;
  }

  /* Sidebar: off-canvas drawer */
  .sidebar {
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    width: 260px;
    max-width: 85vw;
    z-index: 100;
    transform: translateX(-100%);
    transition: transform 0.2s ease;
    box-shadow: none;
    padding-top: calc(12px + env(safe-area-inset-top));
  }
  .sidebar.collapsed {
    width: 260px;
    padding: 12px;
  }
  .sidebar.collapsed .sidebar-welcome,
  .sidebar.collapsed #sidebar-nav,
  .sidebar.collapsed .sidebar-profile,
  .sidebar.collapsed .sidebar-footer {
    display: block;
  }
  .sidebar.collapsed .sidebar-toggle { transform: none; }
  .sidebar-profile {
    order: 0;
    margin-top: 0;
    margin-bottom: 16px;
  }
  .sidebar-welcome {
    margin-top: 0;
  }
  body.sidebar-open .sidebar {
    transform: translateX(0);
    box-shadow: 4px 0 16px rgba(0, 0, 0, 0.15);
  }
  .sidebar-toggle {
    position: static;
    margin-bottom: 8px;
    transform: none;
  }
  body.sidebar-open .sidebar-toggle {
    transform: none;
  }

  /* Sidebar overlay (shown when drawer open) */
  .sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 99;
    background: rgba(0, 0, 0, 0.4);
  }
  body.sidebar-open .sidebar-overlay {
    display: block;
  }

  /* Hamburger: visible on mobile */
  .sidebar-open-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    padding: 0;
    border: 1px solid #dadce0;
    border-radius: 8px;
    background: #fff;
    color: #5f6368;
    font-size: 20px;
    cursor: pointer;
  }
  .sidebar-open-btn:hover {
    background: #f1f3f4;
    color: #202124;
  }

  /* Touch targets: min 44px */
  .btn,
  .tab-btn,
  .pager .btn {
    min-height: 44px;
    padding: 10px 14px;
  }
  .sidebar a,
  .profile-btn {
    min-height: 44px;
    padding: 12px 12px;
    display: flex;
    align-items: center;
  }
  .list-item {
    padding: 12px 14px;
    min-height: 44px;
    box-sizing: border-box;
  }
  .people-list-item {
    padding: 10px 14px;
  }

  /* Primary inputs: 16px to avoid iOS zoom */
  .panel-toolbar input[type="text"],
  .panel-toolbar input[type="search"] {
    font-size: 16px;
  }

  /* Tab bar: extend scroll to safe area (horizontal scroll also on base .app-tabs) */
  .app-tabs {
    margin-left: calc(-1 * env(safe-area-inset-left));
    margin-right: calc(-1 * env(safe-area-inset-right));
    padding-left: env(safe-area-inset-left);
    padding-right: env(safe-area-inset-right);
  }

  /* List / detail: show one at a time on mobile */
  .view .split .panel-right {
    display: none;
  }
  .view.show-detail .split .panel-left {
    display: none;
  }
  .view.show-detail .split .panel-right {
    display: flex;
  }

  /* Detail back button: visible on mobile */
  .detail-back-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 44px;
    padding: 8px 12px;
    margin-right: 8px;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: #1a73e8;
    font-size: 14px;
    cursor: pointer;
  }
  .detail-back-btn:hover {
    background: #e8f0fe;
  }

  /* Detail sub-layouts: stack on small screens */
  .detail-people-layout {
    flex-direction: column;
  }
  .detail-people-list-col {
    width: auto;
    max-width: none;
  }
  .detail-summary-label,
  .detail-summary-value {
    flex: 1 1 auto;
  }
  .detail-summary-label {
    width: auto;
    min-width: 0;
  }

  /* Tables: horizontal scroll */
  .detail-section:has(.data-table),
  .detail:has(.data-table) > .detail-section {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .data-table {
    min-width: 480px;
  }
  .statistics-panel-scroll:has(.statistics-table) {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .statistics-table {
    min-width: 480px;
  }

  /* Dialogs: full width, tap-friendly actions */
  .dialog-overlay {
    padding: 12px;
    padding-left: calc(12px + env(safe-area-inset-left));
    padding-right: calc(12px + env(safe-area-inset-right));
  }
  .dialog-card {
    width: 100%;
    max-width: none;
  }
  .dialog-actions {
    flex-direction: column;
  }
  .dialog-actions .btn {
    min-height: 44px;
    width: 100%;
  }
  .legacy-modal {
    padding: 0;
  }
  .legacy-modal-card {
    width: 100%;
    height: 100%;
    max-height: 100vh;
    border-radius: 0;
  }
}

/* Statistics tab (match add-on stats page) */
#view-statistics.view.show {
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.statistics-view-wrap {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 0 2px;
}
.statistics-content {
  max-width: 1200px;
  margin: 0 auto;
}

/* CYP (Children and Young People) view */
#view-cyp.view.show {
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.cyp-view-wrap {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 16px;
  position: relative;
}
.cyp-stats-section {
  margin-bottom: 24px;
}
.cyp-stats-title {
  font-size: 18px;
  font-weight: 600;
  margin: 0 0 12px 0;
  color: #202124;
}
.cyp-summary-table-wrap,
.cyp-byage-table-wrap {
  margin-bottom: 16px;
}
.cyp-table {
  width: 100%;
  max-width: 600px;
  border-collapse: collapse;
  font-size: 13px;
}
.cyp-table th,
.cyp-table td {
  padding: 8px 12px;
  text-align: left;
  border-bottom: 1px solid #e8eaed;
}
.cyp-table th {
  background: #f8f9fa;
  font-weight: 600;
  color: #5f6368;
}
.cyp-subtabs-wrap {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}
.cyp-subtabs {
  display: flex;
  gap: 0;
  margin-bottom: 12px;
  border-bottom: 1px solid #dadce0;
  flex-shrink: 0;
}
.cyp-subtab {
  padding: 8px 16px;
  cursor: pointer;
  font-size: 14px;
  color: #5f6368;
  border: none;
  background: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
}
.cyp-subtab:hover {
  color: #1a73e8;
}
.cyp-subtab.active {
  color: #1a73e8;
  font-weight: 600;
  border-bottom-color: #1a73e8;
}
.cyp-panel {
  flex: 1;
  min-height: 200px; /* ensure tab content area has visible height so table shows */
  overflow: auto;
}
.cyp-people-panel {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-height: 0;
}
.cyp-people-toolbar.panel-toolbar {
  margin-bottom: 12px;
  flex-shrink: 0;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.cyp-export-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  margin-right: 8px;
}
.cyp-export-label {
  font-size: 13px;
  color: #5f6368;
  margin-right: 4px;
}
.cyp-columns-details {
  position: relative;
  margin-right: 8px;
}
.cyp-columns-details summary.cyp-columns-summary {
  list-style: none;
  cursor: pointer;
  user-select: none;
}
.cyp-columns-details summary.cyp-columns-summary::-webkit-details-marker {
  display: none;
}
.cyp-columns-details summary.cyp-columns-summary::after {
  content: ' \25be';
  font-size: 10px;
  opacity: 0.7;
}
.cyp-columns-details[open] summary.cyp-columns-summary::after {
  content: ' \25b4';
}
.cyp-columns-panel {
  position: absolute;
  z-index: 20;
  left: 0;
  top: 100%;
  margin-top: 4px;
  min-width: 280px;
  max-width: min(360px, 92vw);
  max-height: min(70vh, 420px);
  overflow: auto;
  padding: 10px 12px;
  background: #fff;
  border: 1px solid #dadce0;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}
.cyp-columns-hint {
  margin: 0 0 10px;
  font-size: 12px;
  line-height: 1.4;
  color: #5f6368;
}
.cyp-columns-label {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 13px;
  line-height: 1.35;
  margin-bottom: 8px;
  cursor: pointer;
  color: #202124;
}
.cyp-columns-label:last-child {
  margin-bottom: 0;
}
.cyp-columns-label input {
  margin-top: 2px;
  flex-shrink: 0;
}
body.theme-dark .cyp-columns-panel {
  background: #292a2d;
  border-color: #3c4043;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35);
}
body.theme-dark .cyp-columns-hint {
  color: #9aa0a6;
}
body.theme-dark .cyp-columns-label {
  color: #e8eaed;
}
.cyp-checkin-toolbar.panel-toolbar {
  margin-bottom: 12px;
}
.cyp-checkin-segment {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.cyp-checkin-seg.active {
  background: #e8f0fe;
  border-color: #1a73e8;
}
.cyp-checkin-panel-inner {
  min-height: 120px;
}
.cyp-checkin-scroll {
  overflow-x: auto;
  max-width: 100%;
}
.cyp-checkin-table {
  min-width: 640px;
  font-size: 13px;
}
.cyp-checkin-sticky {
  position: sticky;
  left: 0;
  background: #fff;
  z-index: 1;
  box-shadow: 1px 0 0 #dadce0;
}
.cyp-checkin-cell {
  text-align: center;
  vertical-align: middle;
}
.cyp-checkin-no-meetings {
  padding: 16px;
  max-width: 520px;
}
.cyp-checkin-migration-banner {
  margin-bottom: 12px;
  padding: 10px 12px;
  background: #fce8e6;
  border: 1px solid #ea4335;
  border-radius: 4px;
  font-size: 13px;
  line-height: 1.45;
}
.cyp-checkin-migration-banner code {
  font-size: 12px;
}
body.theme-dark .cyp-checkin-migration-banner {
  background: #3c1f1e;
  border-color: #c5221f;
}
body.theme-dark .cyp-checkin-sticky {
  background: #202124;
  box-shadow: 1px 0 0 #3c4043;
}
body.theme-dark .cyp-checkin-seg.active {
  background: #394457;
  border-color: #8ab4f8;
}
.cyp-people-toolbar .cyp-people-search {
  max-width: 420px;
  width: 100%;
}
.cyp-people-table-host {
  min-height: 0;
  overflow: auto;
}
.cyp-people-filter-empty {
  margin-top: 4px;
}
/* CYP right-side detail panel (Notion-style overlay) */
.cyp-detail-panel {
  position: absolute;
  top: 0;
  right: 0;
  width: min(700px, 55%);
  min-width: 420px;
  height: 100%;
  background: #fff;
  border-left: 1px solid #dadce0;
  box-shadow: -4px 0 12px rgba(0, 0, 0, 0.08);
  display: flex;
  flex-direction: column;
  min-height: 0;
  transform: translateX(100%);
  visibility: hidden;
  transition: transform 0.2s ease, visibility 0.2s;
  z-index: 10;
}
.cyp-view-wrap.cyp-detail-open .cyp-detail-panel {
  transform: translateX(0);
  visibility: visible;
}
.cyp-detail-panel-toolbar {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-bottom: 1px solid #e8eaed;
  background: #f8f9fa;
}
.cyp-detail-panel-close {
  width: 32px;
  height: 32px;
  padding: 0;
  border: none;
  background: none;
  font-size: 20px;
  line-height: 1;
  color: #5f6368;
  cursor: pointer;
  border-radius: 4px;
}
.cyp-detail-panel-close:hover {
  background: #e8eaed;
  color: #202124;
}
.cyp-detail-panel-expand {
  padding: 6px 12px;
  font-size: 13px;
  border: 1px solid #dadce0;
  background: #fff;
  color: #5f6368;
  border-radius: 4px;
  cursor: pointer;
}
.cyp-detail-panel-expand:hover {
  background: #f1f3f4;
  color: #202124;
}
.cyp-detail-content {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 12px;
}
body.theme-dark .cyp-detail-panel { background: #202124; border-left-color: #3c4043; box-shadow: -4px 0 12px rgba(0, 0, 0, 0.3); }
body.theme-dark .cyp-detail-panel-toolbar { background: #292a2d; border-bottom-color: #3c4043; }
body.theme-dark .cyp-detail-panel-close { color: #9aa0a6; }
body.theme-dark .cyp-detail-panel-close:hover { background: #3c4043; color: #e8eaed; }
body.theme-dark .cyp-detail-panel-expand { background: #35363a; border-color: #5f6368; color: #9aa0a6; }
body.theme-dark .cyp-detail-panel-expand:hover { background: #3c4043; color: #e8eaed; }
.cyp-people-table {
  max-width: 620px;
  width: 100%;
  table-layout: fixed;
  font-size: 13px;
}
.cyp-people-table.cyp-people-table--extra-cols {
  max-width: 100%;
  table-layout: auto;
}
.cyp-people-table th,
.cyp-people-table td {
  padding: 4px 8px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cyp-people-table th {
  padding: 6px 8px;
}
.cyp-people-table th:nth-child(1),
.cyp-people-table td:nth-child(1) { width: 26%; min-width: 0; }
.cyp-people-table th:nth-child(2),
.cyp-people-table td:nth-child(2) { width: 8%; min-width: 0; }
.cyp-people-table th:nth-child(3),
.cyp-people-table td:nth-child(3) { width: 28%; min-width: 0; }
.cyp-people-table th:nth-child(4),
.cyp-people-table td:nth-child(4) { width: 28%; min-width: 0; }
.cyp-people-table:not(.cyp-people-table--extra-cols) th:nth-child(5),
.cyp-people-table:not(.cyp-people-table--extra-cols) td:nth-child(5) { width: 10%; min-width: 0; }
.cyp-people-table .cyp-extra-col {
  max-width: 220px;
  white-space: normal;
  word-break: break-word;
  vertical-align: top;
}
.cyp-people-table .cyp-extra-col--allergies {
  max-width: 280px;
  font-size: 12px;
  line-height: 1.35;
}
.cyp-group-header-tbody .cyp-group-header {
  background: #f0f4f8;
  font-weight: 600;
  cursor: pointer;
}
.cyp-group-header td {
  border-bottom: 1px solid #dadce0;
  padding: 4px 8px;
}
.cyp-group-toggle {
  margin-right: 4px;
  padding: 0 2px;
  border: none;
  background: none;
  cursor: pointer;
  font-size: 12px;
  vertical-align: middle;
}
.cyp-person-row {
  cursor: pointer;
}
.cyp-person-row[data-registration]:hover td {
  background: #e8f0fe;
}
body.theme-dark .cyp-person-row[data-registration]:hover td {
  background: #3c4043;
}
.cyp-person-row td {
  padding: 4px 8px;
}
.cyp-notes-col {
  width: 10%;
  white-space: nowrap;
  text-align: center;
  overflow: visible;
}
.cyp-notes-cell {
  white-space: nowrap;
  overflow: visible;
  text-overflow: clip;
}
.cyp-icon-flag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 2px;
  vertical-align: middle;
}
.cyp-icon-flag svg {
  width: 18px;
  height: 18px;
}
.cyp-icon-flag--photo,
.cyp-icon-flag--medical {
  color: #c5221f;
}
.cyp-icon-flag--allergies {
  color: #137333;
}
body.theme-dark .cyp-icon-flag--photo,
body.theme-dark .cyp-icon-flag--medical {
  color: #f28b82;
}
body.theme-dark .cyp-icon-flag--allergies {
  color: #81c995;
}
.cyp-allergy-list-wrap {
  max-width: 560px;
  padding: 24px;
}
.cyp-allergy-list-title {
  font-size: 20px;
  font-weight: 600;
  margin: 0 0 8px 0;
  color: #202124;
}
.cyp-allergy-list-desc {
  font-size: 14px;
  color: #5f6368;
  margin: 0 0 20px 0;
  line-height: 1.5;
}
.cyp-allergy-list-toolbar {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
}
.cyp-allergy-list-toolbar .input {
  flex: 1;
  min-width: 0;
}
.cyp-allergy-list-items {
  list-style: none;
  margin: 0 0 20px 0;
  padding: 0;
  border: 1px solid #dadce0;
  border-radius: 8px;
  background: #fff;
}
.cyp-allergy-list-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 12px;
  border-bottom: 1px solid #e8eaed;
  gap: 12px;
}
.cyp-allergy-list-item:last-child {
  border-bottom: none;
}
.cyp-allergy-list-remove {
  flex-shrink: 0;
  font-size: 12px;
  padding: 4px 8px;
}
.cyp-allergy-list-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}
.cyp-allergy-list-msg {
  font-size: 14px;
  color: #5f6368;
}
body.theme-dark .cyp-allergy-list-title { color: #e8eaed; }
body.theme-dark .cyp-allergy-list-desc { color: #9aa0a6; }
body.theme-dark .cyp-allergy-list-items { background: #292a2d; border-color: #3c4043; }
body.theme-dark .cyp-allergy-list-item { border-bottom-color: #3c4043; }
body.theme-dark .cyp-stats-title { color: #e8eaed; }
body.theme-dark .cyp-table th { background: #35363a; color: #9aa0a6; }
body.theme-dark .cyp-group-header-tbody .cyp-group-header { background: #35363a; }

.statistics-wrapper { display: flex; flex-direction: column; gap: 12px; }
.statistics-row { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-start; }
.statistics-chart-cell { flex: 1 1 260px; min-width: 220px; max-width: 380px; }
.statistics-chart-cell canvas { max-height: 220px; }
.statistics-kpi-strip { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; padding: 12px 16px; border-bottom: 1px solid #e8eaed; margin-bottom: 0; background: #f8f9fa; border-radius: 8px; }
.statistics-kpi-item { display: flex; flex-direction: column; gap: 2px; }
.statistics-kpi-value { font-size: 22px; font-weight: 700; color: #202124; line-height: 1.2; }
.statistics-kpi-label { font-size: 11px; font-weight: 600; color: #5f6368; text-transform: uppercase; letter-spacing: 0.5px; }
.statistics-card { border-radius: 8px; border: 1px solid #e8eaed; background: #fff; padding: 16px; }
.statistics-section-title { font-size: 12px; font-weight: 600; color: #5f6368; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 8px; }
.statistics-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.statistics-table th { text-align: left; padding: 8px; border-bottom: 1px solid #dadce0; background: #f8f9fa; font-weight: 600; }
.statistics-table th.num { text-align: right; }
.statistics-table th.sorted-desc::after { content: " \25BC"; font-size: 10px; opacity: 0.7; }
.statistics-table td { padding: 8px; border-bottom: 1px solid #eee; }
.statistics-table td.num { text-align: right; }
.statistics-table tr.total-row td { font-weight: bold; border-bottom-color: #dadce0; background: #fafafa; }
.statistics-insight-card { padding: 10px 14px; border-radius: 8px; border: 1px solid #e8eaed; background: #f8f9fa; font-size: 13px; color: #202124; }
.statistics-inner-tabs { display: flex; gap: 0; margin-bottom: 12px; border-bottom: 1px solid #dadce0; flex-shrink: 0; }
.statistics-inner-tab { padding: 8px 16px; cursor: pointer; font-size: 14px; color: #5f6368; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.statistics-inner-tab:hover { color: #1a73e8; }
.statistics-inner-tab.active { color: #1a73e8; font-weight: 600; border-bottom-color: #1a73e8; }
.statistics-tab-panel { display: none; flex-direction: column; flex: 1; min-height: 0; gap: 16px; }
.statistics-tab-panel.active { display: flex; }
.statistics-overview-charts { display: flex; gap: 16px; flex-wrap: wrap; }
.statistics-overview-charts .statistics-chart-cell:nth-of-type(1) { flex: 2 1 300px; }
.statistics-overview-charts .statistics-chart-cell:nth-of-type(2),
.statistics-overview-charts .statistics-chart-cell:nth-of-type(3) { flex: 1 1 180px; }
.statistics-charts-row-by-type { margin-top: 8px; }
.statistics-chart-cell--full { flex: 1 1 100%; min-width: 100%; max-width: none; }
.statistics-chart-cell--full canvas { max-height: 320px; min-height: 260px; }
.statistics-uk-tables { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.statistics-uk-table-wrap { display: none; flex: 1; min-height: 0; flex-direction: column; }
.statistics-uk-table-wrap.active { display: flex; }
.statistics-panel-scroll { overflow: auto; flex: 1; min-height: 0; }
.stats-bar-wrap { min-height: 120px; }
.stats-bar-row { margin-bottom: 10px; }
.stats-bar-row:last-child { margin-bottom: 0; }
.stats-bar-label { font-size: 12px; color: #202124; margin-bottom: 2px; display: flex; justify-content: space-between; align-items: center; }
.stats-bar-track { height: 20px; background: #f1f3f4; border-radius: 4px; overflow: hidden; }
.stats-bar-fill { height: 100%; border-radius: 4px; min-width: 4px; }
.stats-bar-value { font-size: 11px; color: #5f6368; font-weight: 600; }

/* Night mode (theme-dark) */
body.theme-dark {
  color: #e8eaed;
  background: #202124;
}
body.theme-dark .layout { background: #202124; }
body.theme-dark .sidebar {
  background: #292a2d;
  border-right-color: #3c4043;
}
body.theme-dark .sidebar-profile {
  background: #35363a;
  border-color: #3c4043;
  box-shadow: none;
}
body.theme-dark .sidebar-welcome { color: #9aa0a6; border-bottom-color: #3c4043; }
body.theme-dark .sidebar-nav-section-label { color: #9aa0a6; }
body.theme-dark .sidebar-nav-divider { border-top-color: #3c4043; }
body.theme-dark .sidebar a { color: #9aa0a6; }
body.theme-dark .sidebar a:hover { color: #8ab4f8; background: #1e3a5f; }
body.theme-dark .sidebar a.active { color: #8ab4f8; background: #1e3a5f; border-color: #5f9cf0; border-left: none; }
body.theme-dark .sidebar a:focus-visible { outline-color: #8ab4f8; }
body.theme-dark .sidebar-footer { color: #9aa0a6; border-top-color: #3c4043; }
body.theme-dark .sidebar-conference {
  background: transparent;
}
body.theme-dark .sidebar-conference-name { color: #e8eaed; }
body.theme-dark .sidebar-conference-members { color: #9aa0a6; }
body.theme-dark .sidebar-conference-chevron { color: #9aa0a6; }
body.theme-dark .sidebar-toggle {
  background: #3c4043;
  color: #e8eaed;
}
body.theme-dark .sidebar-toggle:hover {
  background: #4a4d51;
  color: #8ab4f8;
}
body.theme-dark .sidebar-nav-group-toggle {
  color: #9aa0a6;
}
body.theme-dark .sidebar-nav-group-toggle:hover {
  background: transparent;
  color: inherit;
}
body.theme-dark .sidebar-nav-parent-row:hover {
  background: #1e3a5f;
}
body.theme-dark .sidebar-nav-parent-row:hover .sidebar-nav-parent,
body.theme-dark .sidebar-nav-parent-row:hover .sidebar-nav-group-toggle {
  color: #8ab4f8;
  background: transparent;
}
body.theme-dark .sidebar-nav-group:has(.sidebar-nav-parent.active) .sidebar-nav-parent-row,
body.theme-dark .sidebar-nav-group:has(.sidebar-nav-sub-item.active) .sidebar-nav-parent-row {
  background: #1e3a5f;
  border-color: #5f9cf0;
  border-radius: 0;
  border-left: none;
}
body.theme-dark .sidebar-nav-group:has(.sidebar-nav-parent.active) a.sidebar-nav-parent.active,
body.theme-dark .sidebar-nav-group:has(.sidebar-nav-sub-item.active) .sidebar-nav-parent {
  background: transparent;
  border-color: transparent;
  color: #8ab4f8;
}
body.theme-dark .sidebar-nav-group:has(.sidebar-nav-parent.active) .sidebar-nav-group-toggle,
body.theme-dark .sidebar-nav-group:has(.sidebar-nav-sub-item.active) .sidebar-nav-group-toggle {
  color: #8ab4f8;
  background: transparent;
}
body.theme-dark .main { background: #202124; }
body.theme-dark .app-shell { background: #202124; }
body.theme-dark .app-header { border-bottom-color: #3c4043; }
body.theme-dark .app-title-main { color: #e8eaed; }
body.theme-dark .app-title-sub { color: #9aa0a6; }
body.theme-dark .app-tabs { border-bottom-color: #3c4043; }
body.theme-dark .tab-btn { color: #9aa0a6; }
body.theme-dark .tab-btn:hover { color: #e8eaed; background: #292a2d; }
body.theme-dark .tab-btn.active { color: #8ab4f8; background: #202124; border-bottom-color: #8ab4f8; }
body.theme-dark .panel {
  background: #292a2d;
  border-color: #3c4043;
}
body.theme-dark .panel-toolbar {
  background: #35363a;
  border-bottom-color: #3c4043;
}
body.theme-dark .panel-toolbar input {
  background: #202124;
  border-color: #5f6368;
  color: #e8eaed;
}
body.theme-dark .panel-toolbar input:focus { border-color: #8ab4f8; }
body.theme-dark .registrations-search-reset { color: #9aa0a6; }
body.theme-dark .registrations-search-reset:hover {
  color: #e8eaed;
  background: rgba(255, 255, 255, 0.08);
}
body.theme-dark .list { background: #292a2d; }
body.theme-dark .list-item:hover { background: #35363a; }
body.theme-dark .list-item.active { background: #1e3a5f; border-color: #5f9cf0; }
body.theme-dark .list-item.list-item--selected { background: #1e3a5f; border-color: #5f9cf0; }
body.theme-dark .list-item.registrations-list-item.active { border-width: 0.5px; border-color: rgba(94, 156, 240, 0.4); }
body.theme-dark .list-title { color: #e8eaed; }
body.theme-dark .list-sub { color: #9aa0a6; }
body.theme-dark .list-meta { color: #9aa0a6; }
body.theme-dark .list-sub .search-match { color: #8ab4f8; }
body.theme-dark .pager { background: #292a2d; border-top-color: #3c4043; }
body.theme-dark .pager--top { border-bottom-color: #3c4043; }
body.theme-dark .pager-range { color: #9aa0a6; }
body.theme-dark .detail { background: #292a2d; }
body.theme-dark .detail-title,
body.theme-dark .detail-sub { color: #e8eaed; }
body.theme-dark .detail-sub { color: #9aa0a6; }
body.theme-dark .section-title { color: #9aa0a6; }
body.theme-dark .summary { border-bottom-color: #3c4043; color: #e8eaed; }
body.theme-dark .empty,
body.theme-dark .loading { color: #9aa0a6; }
body.theme-dark .btn {
  background: #35363a;
  border-color: #5f6368;
  color: #e8eaed;
}
body.theme-dark .btn:hover { background: #4a4d51; }
body.theme-dark .btn-primary { background: #1a73e8; border-color: #1a73e8; color: #fff; }
body.theme-dark .btn-primary:hover { background: #1557b0; }
body.theme-dark .login-page { background: #202124; }
body.theme-dark .login-card { background: #292a2d; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4); }
body.theme-dark .login-card-form h1 { color: #e8eaed; }
body.theme-dark .login-card-form > p { color: #9aa0a6; }
body.theme-dark .login-card-form .login-hint { color: #9aa0a6; }
body.theme-dark .login-btn-email { background: #292a2d; color: #9aa0a6; border-color: #3c4043; }
body.theme-dark .login-btn-email:hover { background: #35363a; border-color: #5f6368; }
body.theme-dark .login-divider::before,
body.theme-dark .login-divider::after { background: #3c4043; }
body.theme-dark .login-divider span { color: #9aa0a6; }
body.theme-dark .home-content h2 { color: #e8eaed; }
body.theme-dark .home-content p { color: #9aa0a6; }
body.theme-dark .profile-btn,
body.theme-dark .profile-btn .profile-btn-label { color: #9aa0a6; }
body.theme-dark .profile-btn--pseudo { border-color: #f9ab00; background: rgba(249, 171, 0, 0.15); }
body.theme-dark .profile-btn--pseudo .profile-btn-label { color: #f9ab00; }
body.theme-dark .profile-dropdown .profile-dropdown-item.profile-dropdown-switch-back { border-top-color: #3c4043; color: #8ab4f8; }
body.theme-dark .profile-btn:hover { color: #8ab4f8; background: rgba(138, 180, 248, 0.12); }
body.theme-dark .profile-btn .profile-btn-label { color: #e8eaed; }
body.theme-dark .profile-btn:hover .profile-btn-label { color: #8ab4f8; }
body.theme-dark .profile-chevron { color: #9aa0a6; }
body.theme-dark .profile-dropdown {
  background: #292a2d;
  border-color: #3c4043;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}
body.theme-dark .profile-dropdown-top {
  color: #9aa0a6;
  border-bottom-color: #3c4043;
}
body.theme-dark .profile-dropdown-item {
  color: #e8eaed;
}
body.theme-dark .profile-dropdown-item:hover { background: #35363a; }
body.theme-dark .profile-dropdown-item[aria-pressed="true"] { color: #8ab4f8; }
body.theme-dark .inbox-badge { background: #ea4335; color: #fff; }
body.theme-dark .inbox-list-item { background: transparent; }
body.theme-dark .inbox-list-item.inbox-unread { background: #35363a; }
body.theme-dark .inbox-list-item.inbox-unread .list-title { font-weight: 700; }
body.theme-dark .inbox-list-item:not(.inbox-unread) .list-title { font-weight: 400; }
body.theme-dark .inbox-list-item.inbox-unread.active { background: #1e3a5f; }
body.theme-dark .inbox-list-item:not(.inbox-unread).active { background: #292a2d; }
body.theme-dark .inbox-tag--new_user { background: #1e3a5f; color: #90caf9; }
body.theme-dark .inbox-tag--new_submission { background: #1b3d1b; color: #a5d6a7; }
body.theme-dark .inbox-tag--db_update { background: #3d1b3d; color: #ce93d8; }
body.theme-dark .inbox-tag--email_sent { background: #4a3500; color: #ffcc80; }
body.theme-dark .inbox-tag--error { background: #4a1515; color: #ef9a9a; }
body.theme-dark .inbox-tag--other { background: #3c4043; color: #b0b0b0; }
body.theme-dark .inbox-bulk-bar { background: #1e3a5f; border-bottom-color: #5f9cf0; }
body.theme-dark .inbox-bulk-bar .bulk-count { color: #90caf9; }
body.theme-dark .inbox-bulk-label-wrap label { color: #9aa0a6; }
body.theme-dark .inbox-top-bar { background: #292a2d; border-radius: 8px 8px 0 0; }
body.theme-dark .inbox-tabs { background: #292a2d; }
body.theme-dark .inbox-tab { color: #9aa0a6; }
body.theme-dark .inbox-tab:hover { color: #8ab4f8; }
body.theme-dark .inbox-tab.active { color: #8ab4f8; border-bottom-color: #8ab4f8; }
body.theme-dark .inbox-top-bar-pager .pager-range { color: #9aa0a6; }
body.theme-dark .inbox-toolbar { border-bottom-color: #3c4043; }
body.theme-dark .inbox-toolbar-select-chevron:hover,
body.theme-dark .inbox-toolbar-btn:hover { background: #35363a; color: #e8eaed; }
body.theme-dark .inbox-toolbar-btn { color: #9aa0a6; }
body.theme-dark .inbox-select-dropdown-panel,
body.theme-dark .inbox-more-dropdown-panel { background: #202124; box-shadow: 0 2px 10px rgba(0,0,0,0.4); }
body.theme-dark .inbox-dropdown-option { color: #e8eaed; }
body.theme-dark .inbox-dropdown-option:hover { background: #35363a; }
body.theme-dark .inbox-more-hint { color: #9aa0a6; border-top-color: #3c4043; }
body.theme-dark .config-input--readonly { background: #35363a; color: #9aa0a6; }
body.theme-dark .config-label { color: #e8eaed; }
body.theme-dark .input {
  background: #202124;
  border-color: #5f6368;
  color: #e8eaed;
}
body.theme-dark .input:focus { border-color: #8ab4f8; }
body.theme-dark .registrations-filters .filter-label,
body.theme-dark .check { color: #9aa0a6; }
body.theme-dark .data-table th { background: #35363a; color: #e8eaed; border-color: #3c4043; }
body.theme-dark .data-table td { border-color: #3c4043; }
body.theme-dark .data-table tr:hover td { background: #35363a; }
body.theme-dark .data-table .db-table-row.active td { background: #1e3a5f; }
body.theme-dark .db-admin-section { border-bottom-color: #3c4043; }
body.theme-dark .db-admin-section-title { color: #9aa0a6; }
body.theme-dark .db-status-line,
body.theme-dark .db-hint { color: #9aa0a6; }
body.theme-dark .services-roster-tag { background: #1e3a5f; color: #8ab4f8; border-color: #5f9cf0; }
body.theme-dark .services-roster-dock-body .services-roster-table thead th {
  background: #35363a;
  box-shadow: inset 0 -1px 0 #3c4043;
}
body.theme-dark .services-roster-dock-body .services-roster-table thead th.services-roster-th:hover {
  background: #3c4043;
}
body.theme-dark .services-roster-table th.services-roster-th .services-roster-th-sort:hover { background: #3c4043; }
body.theme-dark .services-roster-filter-btn:hover {
  background: #3c4043;
  color: #e8eaed;
}
body.theme-dark .services-roster-filter-btn.is-active {
  background: #1e3a5f;
  border-color: #8ab4f8;
  color: #8ab4f8;
}
body.theme-dark .services-roster-filter-popover {
  background: #292a2d;
  border-color: #3c4043;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45);
}
body.theme-dark .services-roster-filter-section { border-bottom-color: #3c4043; }
body.theme-dark .services-roster-filter-section-title { color: #9aa0a6; }
body.theme-dark .services-roster-filter-link { color: #8ab4f8; }
body.theme-dark .services-roster-filter-values-meta { color: #9aa0a6; }
body.theme-dark .services-roster-filter-values-list {
  border-color: #3c4043;
  background: #202124;
}
body.theme-dark .services-roster-filter-value-row:hover { background: #35363a; }
body.theme-dark .services-roster-filter-footer {
  background: #202124;
  border-top-color: #3c4043;
}
body.theme-dark .services-roster-dock-footer {
  background: #35363a;
  border-top-color: #3c4043;
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.25);
}
body.theme-dark .services-roster-dock-footer td.services-roster-foot-cell {
  background: #35363a;
  border-bottom-color: #3c4043;
}
body.theme-dark .services-roster-dock-body .services-roster-table thead th.services-roster-frozen,
body.theme-dark .services-roster-dock-body .services-roster-table tbody td.services-roster-frozen {
  background: #35363a;
}
body.theme-dark .services-roster-dock-body .services-roster-table tbody tr:hover td.services-roster-frozen {
  background: #3c4043;
}
body.theme-dark .services-roster-dock-footer .services-roster-table tbody td.services-roster-frozen {
  background: #35363a;
}
body.theme-dark .services-roster-freeze-menu {
  background: #202124;
  border-color: #5f6368;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5);
}
body.theme-dark .services-roster-freeze-menu-item {
  color: #e8eaed;
}
body.theme-dark .services-roster-freeze-menu-item:hover:not(:disabled) {
  background: #35363a;
}
body.theme-dark .services-roster-foot-rows { color: #9aa0a6; }
body.theme-dark .services-roster-foot-result { color: #e8eaed; }
body.theme-dark .dialog-overlay { background: rgba(0, 0, 0, 0.7); }
body.theme-dark .dialog-card {
  background: #292a2d;
  border-color: #3c4043;
}
body.theme-dark .dialog-title { color: #e8eaed; }
body.theme-dark .dialog-desc,
body.theme-dark .dialog-label { color: #9aa0a6; }
body.theme-dark .dialog-input {
  background: #202124;
  border-color: #5f6368;
  color: #e8eaed;
}
body.theme-dark .dialog-input:focus { border-color: #8ab4f8; }
body.theme-dark .legacy-modal-card { background: #292a2d; border-color: #3c4043; }
body.theme-dark .legacy-modal-bar { border-bottom-color: #3c4043; }
body.theme-dark .legacy-modal-title { color: #e8eaed; }
body.theme-dark .main .loading-overlay { background: rgba(32, 33, 36, 0.9); }
body.theme-dark .main .loading-overlay .loading-card { background: #292a2d; border-color: #3c4043; }
body.theme-dark .main .loading-overlay .loading-title { color: #e8eaed; }
body.theme-dark .main .loading-overlay .loading-subtitle { color: #9aa0a6; }
body.theme-dark .statistics-card,
body.theme-dark .statistics-kpi-strip { background: #292a2d; border-color: #3c4043; }
body.theme-dark .statistics-table th { background: #35363a; color: #e8eaed; }
body.theme-dark .statistics-table td { border-bottom-color: #3c4043; }
body.theme-dark .sidebar-overlay { background: rgba(0, 0, 0, 0.5); }
body.theme-dark .detail-value,
body.theme-dark .detail-summary-value,
body.theme-dark .member-name { color: #e8eaed; }
body.theme-dark .detail-summary-label,
body.theme-dark .member-meta { color: #9aa0a6; }
body.theme-dark .detail-copy-btn { color: #9aa0a6; }
body.theme-dark .detail-copy-btn:hover { color: #8ab4f8; background: rgba(255, 255, 255, 0.06); }
body.theme-dark .detail-payments-section-title { color: #9aa0a6; }
body.theme-dark .detail-payments-section.collapsible .detail-payments-section-header { color: #e8eaed; }
body.theme-dark .detail-payments-nav-title,
body.theme-dark .detail-payments-nav-item { color: #e8eaed; }
body.theme-dark .detail-payments-nav-item:hover { color: #8ab4f8; }
body.theme-dark .detail-payments-rows .detail-summary-value input {
  color: #e8eaed;
  background: transparent;
}
body.theme-dark .detail-payments-rows .detail-summary-value input:hover { background: rgba(255, 255, 255, 0.06); }
body.theme-dark .detail-payments-rows .detail-summary-value input:focus {
  border-color: #5f6368;
  background: #202124;
}
body.theme-dark .registrations-list-header { color: #9aa0a6; border-bottom-color: #3c4043; }
body.theme-dark .registrations-bulk-bar { background: #1e3a5f; border-bottom-color: #5f9cf0; }
body.theme-dark .form-row label { color: #9aa0a6; }
body.theme-dark .detail-header-actions .btn { border-color: #5f6368; }
body.theme-dark .detail-people-list-item:hover { background: #35363a; }
body.theme-dark .detail-people-list-item.active { background: #1e3a5f; }
body.theme-dark .detail-people-list-item.active.keyboard-selected { border-color: #5f9cf0; border-width: 1.5px; }
body.theme-dark .detail-people-list-name { color: #e8eaed; }
body.theme-dark .detail-people-list-menu { background: #292a2d; border-color: #3c4043; }
body.theme-dark .detail-back-btn { color: #8ab4f8; }
body.theme-dark .detail-back-btn:hover { background: #1e3a5f; }
body.theme-dark .detail-serving-multiselect .serving-multiselect-wrap {
  background: #202124;
  border: none;
}
body.theme-dark .detail-serving-multiselect .serving-tag {
  background: #35363a;
  color: #e8eaed;
}
body.theme-dark .detail-serving-multiselect .serving-tag-remove { color: #9aa0a6; }
body.theme-dark .detail-serving-multiselect .serving-tag-remove:hover {
  color: #e8eaed;
  background: rgba(255, 255, 255, 0.08);
}
body.theme-dark .detail-serving-multiselect .serving-search { color: #e8eaed; }
body.theme-dark .detail-serving-multiselect .serving-search::placeholder { color: #9aa0a6; }
body.theme-dark .detail-serving-multiselect .serving-dropdown {
  background: #292a2d;
  border-color: #3c4043;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
}
body.theme-dark .detail-serving-multiselect .serving-dropdown-item {
  color: #e8eaed;
}
body.theme-dark .detail-serving-multiselect .serving-dropdown-item:hover {
  background: #35363a;
}

/* Conference information — scrollable tab body (app-shell is overflow:hidden) */
#view-conference.view.show {
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.conference-view-wrap {
  flex: 1;
  min-height: 0;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  max-width: none;
  width: 100%;
  box-sizing: border-box;
  padding: 16px 24px 32px;
}
/* Cap width; content centered */
.conference-wrap-inner.config-wrap {
  max-width: min(800px, 100%);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}
.conference-wrap-inner.config-wrap:has(.conference-page-layout) {
  max-width: min(920px, 100%);
}
.conference-page-layout.detail-payments-layout {
  align-items: start;
  grid-template-columns: minmax(200px, 230px) 1fr;
  gap: 28px 40px;
}
.conference-page-layout .detail-payments-nav,
.conference-page-layout .conference-page-nav {
  position: sticky;
  top: 12px;
  align-self: start;
}
/* Conference: doc-style “On this page” nav (light, section labels, active pill + bar) */
.conference-page-layout .detail-payments-nav.conference-page-nav {
  gap: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  overflow: visible;
  box-shadow: none;
}
.conference-page-layout .detail-payments-nav-title.conference-nav-page-label {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.05em;
  color: #80868b;
  text-transform: uppercase;
  padding: 0 0 12px 2px;
  margin: 0;
  border: none;
  background: transparent;
  line-height: 1.3;
}
.conference-nav-section {
  margin-top: 0;
}
.conference-nav-section + .conference-nav-section {
  margin-top: 12px;
}
.conference-nav-section-title {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #80868b;
  text-transform: uppercase;
  padding: 0 2px 6px;
  margin: 0;
  border: none;
  line-height: 1.3;
}
.conference-nav-section:first-of-type .conference-nav-section-title {
  padding-top: 0;
}
.conference-page-layout .detail-payments-nav-item {
  position: relative;
  padding: 6px 8px 6px 12px;
  margin: 2px 0 0;
  font-weight: 500;
  font-size: 13px;
  color: #3c4043;
  line-height: 1.35;
  border-radius: 6px;
  border: none;
  outline: none;
}
.conference-page-layout .detail-payments-nav-item:focus-visible {
  box-shadow: 0 0 0 2px rgba(26, 115, 232, 0.35);
}
.conference-page-layout .detail-payments-nav-item + .detail-payments-nav-item {
  border-top: none;
}
.conference-page-layout .detail-payments-nav-item:hover {
  background: rgba(26, 115, 232, 0.07);
  color: #174ea6;
}
.conference-page-layout .detail-payments-nav-item.is-active {
  background: rgba(66, 133, 244, 0.14);
  color: #1557b0;
  font-weight: 600;
}
.conference-page-layout .detail-payments-nav-item.is-active::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 5px;
  bottom: 5px;
  width: 3px;
  border-radius: 2px;
  background: #1a73e8;
}
.conference-nav-back-top {
  margin-top: 14px;
  padding: 10px 2px 0;
  border: none;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  background: transparent;
  font: inherit;
  font-size: 12px;
  font-weight: 500;
  color: #5f6368;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  text-align: left;
  width: 100%;
  border-radius: 4px;
}
.conference-nav-back-top:hover {
  color: #1a73e8;
}
.conference-nav-back-top:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px rgba(26, 115, 232, 0.35);
}
.conference-nav-back-top-icon {
  font-size: 11px;
  line-height: 1;
  opacity: 0.85;
}
.conference-page-content .detail-payments-section:not(:last-child) {
  padding-bottom: 1.5rem;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
/* Conference section headings: static, left-aligned (no collapse) */
.conference-page-content .detail-payments-section.conference-section .conference-section-heading {
  font-family: inherit;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.018em;
  color: #1f1f1f;
  padding: 4px 0 12px;
  margin: 0 0 14px;
  border: none;
  border-radius: 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.09);
  background: transparent;
  text-align: left;
  line-height: 1.35;
  display: block;
  width: 100%;
  box-sizing: border-box;
}
body.theme-dark .conference-page-content .detail-payments-section.conference-section .conference-section-heading {
  color: #e8eaed;
  border-bottom-color: rgba(255, 255, 255, 0.12);
}
@media (max-width: 720px) {
  .conference-page-layout.detail-payments-layout {
    grid-template-columns: 1fr;
  }
  .conference-page-layout .detail-payments-nav.conference-page-nav {
    position: static;
    display: block;
    padding: 0 0 12px;
    margin-bottom: 8px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  }
  .conference-page-layout .detail-payments-nav-title.conference-nav-page-label {
    padding-bottom: 8px;
  }
  .conference-nav-section-title {
    padding-top: 10px;
  }
  .conference-nav-section:first-of-type .conference-nav-section-title {
    padding-top: 0;
  }
  .conference-page-layout .detail-payments-nav-item {
    display: inline-block;
    margin: 4px 6px 0 0;
    padding: 5px 10px;
    font-size: 12px;
    background: rgba(0, 0, 0, 0.04);
  }
  .conference-page-layout .detail-payments-nav-item.is-active::before {
    display: none;
  }
  .conference-page-layout .detail-payments-nav-item.is-active {
    background: rgba(66, 133, 244, 0.2);
  }
  .conference-nav-back-top {
    margin-top: 10px;
    padding-top: 8px;
    width: auto;
  }
  body.theme-dark .conference-page-layout .detail-payments-nav.conference-page-nav {
    border-bottom-color: rgba(255, 255, 255, 0.12);
  }
  body.theme-dark .conference-page-layout .detail-payments-nav-item {
    background: rgba(255, 255, 255, 0.06);
  }
}
body.theme-dark .conference-page-layout .detail-payments-nav-title.conference-nav-page-label {
  color: #9aa0a6;
}
body.theme-dark .conference-nav-section-title {
  color: #9aa0a6;
}
body.theme-dark .conference-page-layout .detail-payments-nav-item {
  color: #e8eaed;
}
body.theme-dark .conference-page-layout .detail-payments-nav-item:hover {
  background: rgba(138, 180, 248, 0.12);
  color: #8ab4f8;
}
body.theme-dark .conference-page-layout .detail-payments-nav-item.is-active {
  background: rgba(138, 180, 248, 0.16);
  color: #8ab4f8;
}
body.theme-dark .conference-page-layout .detail-payments-nav-item.is-active::before {
  background: #8ab4f8;
}
body.theme-dark .conference-nav-back-top {
  color: #9aa0a6;
  border-top-color: rgba(255, 255, 255, 0.1);
}
body.theme-dark .conference-nav-back-top:hover {
  color: #8ab4f8;
}
body.theme-dark .conference-page-content .detail-payments-section:not(:last-child) {
  border-bottom-color: rgba(255, 255, 255, 0.12);
}
.conference-shortcuts-display-wrap {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}
.conference-page-content .conference-shortcuts-display-wrap {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
body.theme-dark .conference-shortcuts-display-wrap {
  border-top-color: rgba(255, 255, 255, 0.08);
}
.conference-shortcuts-title {
  margin-top: 0;
}
.conference-shortcuts-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
  margin: 0.75rem 0 1rem;
}
.conference-shortcuts-table th,
.conference-shortcuts-table td {
  text-align: left;
  padding: 0.5rem 0.75rem 0.5rem 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  vertical-align: top;
}
body.theme-dark .conference-shortcuts-table th,
body.theme-dark .conference-shortcuts-table td {
  border-bottom-color: rgba(255, 255, 255, 0.08);
}
.conference-shortcuts-table th {
  font-weight: 600;
  width: 42%;
}
.conference-shortcuts-label-input {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.conference-shortcuts-hint {
  font-size: 0.75rem;
  color: #5f6368;
  margin: 0.35rem 0 0;
}
body.theme-dark .conference-shortcuts-hint {
  color: #9aa0a6;
}
.conference-shortcuts-hint code {
  font-size: 0.8em;
}
.conference-shortcuts-glance-block {
  margin-top: 1rem;
  width: 100%;
}
.conference-shortcuts-glance-fields {
  position: relative;
}
.conference-shortcuts-glance-title-row {
  margin-bottom: 0.35rem;
}
.conference-shortcuts-glance-title-row .config-input {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.conference-shortcuts-glance-row {
  margin-top: 0.5rem;
}
.ssd-glance-editor-wrap {
  position: relative;
  width: 100%;
}
textarea.input.ssd-glance-text {
  display: block;
  width: 100%;
  min-height: 5.5rem;
  resize: vertical;
  font-family: inherit;
  line-height: 1.45;
}
.ssd-at-popover {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  margin-top: 0;
  z-index: 50;
  max-height: 220px;
  overflow-y: auto;
  background: #fff;
  border: 1px solid #dadce0;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
  padding: 4px 0;
}
body.theme-dark .ssd-at-popover {
  background: #303134;
  border-color: #5f6368;
}
.ssd-at-option {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  width: 100%;
  padding: 8px 12px;
  border: none;
  background: transparent;
  cursor: pointer;
  text-align: left;
  font-size: 13px;
  color: #202124;
}
body.theme-dark .ssd-at-option {
  color: #e8eaed;
}
.ssd-at-option:hover,
.ssd-at-option.is-highlighted {
  background: rgba(26, 115, 232, 0.08);
}
body.theme-dark .ssd-at-option:hover,
body.theme-dark .ssd-at-option.is-highlighted {
  background: rgba(138, 180, 248, 0.15);
}
.ssd-at-option-token {
  font-weight: 600;
  color: #1a73e8;
  font-family: ui-monospace, monospace;
  font-size: 12px;
}
body.theme-dark .ssd-at-option-token {
  color: #8ab4f8;
}
.ssd-at-option-label {
  color: #5f6368;
  font-size: 12px;
}
body.theme-dark .ssd-at-option-label {
  color: #9aa0a6;
}
.ssd-at-empty {
  padding: 0.75rem 12px;
  color: #5f6368;
  font-size: 13px;
}
.watch-glance-preview {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  display: flex;
  flex-direction: column;
  align-items: center;
}
body.theme-dark .watch-glance-preview {
  border-top-color: rgba(255, 255, 255, 0.08);
}
.watch-glance-preview-label {
  font-size: 11px;
  font-weight: 700;
  color: #5f6368;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  margin-bottom: 10px;
  width: 100%;
  text-align: center;
}
.watch-glance-preview-device {
  width: 100%;
  max-width: 220px;
  margin: 0;
  padding: 0;
  border-radius: 12px;
  background: #000;
  border: 1px solid #333;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
  overflow: hidden;
  align-self: center;
  /* Center the text block as a unit; width comes from inline-block pre below. */
  text-align: center;
}
/* Plain text only — matches Shortcuts / Watch (no per-line sizing or weights). */
.watch-glance-preview-plain {
  display: inline-block;
  margin: 0;
  padding: 18px 14px;
  font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: normal;
  white-space: pre-wrap;
  word-break: break-word;
  text-align: left;
  vertical-align: top;
  color: #fff;
  background: transparent;
  border: none;
  width: auto;
  max-width: 100%;
  box-sizing: border-box;
}
.watch-glance-preview-note {
  margin-top: 10px;
  width: 100%;
  font-size: 12px;
  color: #5f6368;
  text-align: center;
}
body.theme-dark .watch-glance-preview-note {
  color: #9aa0a6;
}
.conference-shortcuts-hint kbd {
  font-size: 0.75rem;
  padding: 0.1em 0.35em;
  border-radius: 4px;
  background: rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(0, 0, 0, 0.08);
}
body.theme-dark .conference-shortcuts-hint kbd {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.12);
}
.conference-price-field {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  width: 100%;
  min-width: 0;
}
.conference-price-field .conference-price-input {
  flex: 1;
  min-width: 0;
}
.conference-currency-prefix {
  font-weight: 600;
  font-size: 1rem;
  color: #202124;
  flex-shrink: 0;
  line-height: 1;
}
body.theme-dark .conference-currency-prefix {
  color: #e8eaed;
}
/* Two columns max: each field is at most half the container (flex, not full-width grid cells) */
.conference-wrap-inner .config-form {
  gap: 0.65rem;
}
.conference-form-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: flex-start;
  width: 100%;
  min-width: 0;
}
.conference-wrap-inner .config-form-row {
  gap: 0.125rem;
}
.conference-form-grid .config-label {
  font-size: 0.8125rem;
  line-height: 1.25;
}
.conference-form-grid > .config-form-row,
.conference-form-grid > .conference-group-rows-wrap,
.conference-form-grid > .conference-meeting-rows-wrap,
.conference-form-grid > .conference-pricing-rows-wrap,
.conference-form-grid > .conference-link-rows-wrap {
  flex: 0 1 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
@media (min-width: 520px) {
  /* flex-grow: 0 so a single field on a row does not stretch to full width */
  .conference-form-grid > .config-form-row {
    flex: 0 1 calc((100% - 0.5rem) / 2);
    max-width: calc((100% - 0.5rem) / 2);
  }
  /* Group block uses both columns */
  .conference-form-grid > .conference-group-rows-wrap,
  .conference-form-grid > .conference-meeting-rows-wrap,
  .conference-form-grid > .conference-pricing-rows-wrap,
  .conference-form-grid > .conference-link-rows-wrap {
    flex: 0 1 100%;
    max-width: 100%;
  }
}
.conference-form-grid .config-form-row {
  width: auto;
}
.conference-form-grid .config-input {
  max-width: none;
  width: 100%;
  box-sizing: border-box;
}
.conference-readonly-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: flex-start;
  width: 100%;
  min-width: 0;
}
.conference-readonly-grid .conference-readonly-row {
  margin-bottom: 0;
}
.conference-readonly-grid > .conference-readonly-row {
  flex: 0 1 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
@media (min-width: 520px) {
  .conference-readonly-grid > .conference-readonly-row {
    flex: 0 1 calc((100% - 12px) / 2);
    max-width: calc((100% - 12px) / 2);
  }
}
.conference-readonly-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-bottom: 12px;
  align-items: baseline;
}
.conference-readonly-row--block {
  flex-direction: column;
  align-items: stretch;
}
.conference-readonly-label {
  min-width: 140px;
  font-weight: 600;
  color: #5f6368;
}
.conference-multiline {
  white-space: pre-wrap;
}
.conference-dl {
  margin: 8px 0 0;
  padding: 0;
}
.conference-dl dt {
  font-weight: 600;
  margin-top: 8px;
  color: #202124;
}
.conference-dl dd {
  margin: 4px 0 0 0;
  padding-left: 0;
  white-space: pre-wrap;
}
.conference-group-readonly-dd > div {
  margin-top: 4px;
}
.conference-group-readonly-dd > div:first-child {
  margin-top: 0;
}
.conference-readonly-sublabel {
  font-size: 0.8125rem;
  font-weight: 500;
  color: #5f6368;
  margin-right: 6px;
}
.conference-empty {
  margin: 8px 0 0;
  color: #5f6368;
}
.conference-group-rows {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  margin-top: 8px;
}
.conference-group-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.conference-group-row .conference-group-label {
  flex: 1 1 160px;
  min-width: 120px;
}
.conference-group-row .conference-group-location {
  flex: 2 1 180px;
  min-width: 120px;
}
.conference-group-row .conference-group-floor {
  flex: 1 1 100px;
  min-width: 72px;
  max-width: 100%;
}
.conference-group-row .conference-group-chairs {
  flex: 1 1 100px;
  min-width: 72px;
  max-width: 100%;
}
.conference-group-remove {
  flex: 0 0 auto;
  padding: 4px 10px;
  line-height: 1.2;
}
.conference-link-rows {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  margin-top: 8px;
  min-width: 0;
}
.conference-link-cards {
  margin-top: 10px;
}
.conference-link-row {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: stretch;
  min-width: 0;
}
.conference-link-meta-edit .conference-link-url {
  width: 100%;
  box-sizing: border-box;
}
.conference-link-drag-handle {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 4px;
  margin: -2px 0 -2px -2px;
  cursor: grab;
  color: #5f6368;
  border-radius: 4px;
  touch-action: none;
}
.conference-link-drag-handle:hover {
  background: rgba(0, 0, 0, 0.06);
  color: #202124;
}
.conference-link-drag-handle:active {
  cursor: grabbing;
}
.conference-link-drag-handle svg {
  width: 16px;
  height: 16px;
  display: block;
}
.conference-link-details.conference-link-dragging {
  opacity: 0.55;
}
.conference-link-details.conference-link-drop-before {
  box-shadow: inset 0 3px 0 0 #1a73e8;
}
.conference-link-details.conference-link-drop-after {
  box-shadow: inset 0 -3px 0 0 #1a73e8;
}
body.theme-dark .conference-link-details.conference-link-drop-before {
  box-shadow: inset 0 3px 0 0 #8ab4f8;
}
body.theme-dark .conference-link-details.conference-link-drop-after {
  box-shadow: inset 0 -3px 0 0 #8ab4f8;
}
.conference-link-summary-title-block {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  flex: 1 1 auto;
}
.conference-link-summary-title-block .conference-link-summary-text {
  min-width: 0;
}
.conference-link-details .conference-onsite-summary .conference-link-edit-trigger,
.conference-link-details .conference-onsite-summary .conference-link-duplicate-trigger {
  flex-shrink: 0;
}
.conference-link-details .conference-onsite-summary .conference-link-edit-trigger svg,
.conference-link-details .conference-onsite-summary .conference-link-duplicate-trigger svg {
  width: 16px;
  height: 16px;
}
.conference-link-meta-view .conference-onsite-meta-view-inner {
  padding-right: 0;
}
.conference-link-details .conference-onsite-summary .conference-link-summary-actions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  margin-left: auto;
}
.conference-link-details .conference-onsite-summary .conference-link-summary-open {
  flex-shrink: 0;
  color: #1a73e8;
}
.conference-link-details .conference-onsite-summary .conference-link-summary-open:hover {
  color: #174ea6;
}
.conference-link-details .conference-onsite-summary .conference-link-summary-open svg {
  width: 16px;
  height: 16px;
  display: block;
}
body.theme-dark .conference-link-details .conference-onsite-summary .conference-link-summary-open {
  color: #8ab4f8;
}
body.theme-dark .conference-link-details .conference-onsite-summary .conference-link-summary-open:hover {
  color: #aecbfa;
}
body.theme-dark .conference-link-drag-handle {
  color: #9aa0a6;
}
body.theme-dark .conference-link-drag-handle:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #e8eaed;
}
.conference-link-remove {
  flex: 0 0 auto;
  padding: 4px 10px;
  line-height: 1.2;
  align-self: flex-start;
}
.conference-onsite-cards {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 10px;
}
.conference-onsite-details {
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.02);
  overflow: hidden;
}
.conference-onsite-details summary {
  list-style: none;
}
.conference-onsite-details summary::-webkit-details-marker {
  display: none;
}
.conference-onsite-summary {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  cursor: pointer;
  user-select: none;
  font-weight: 600;
  font-size: 0.92rem;
  color: #202124;
}
.conference-onsite-summary .filters-chevron {
  flex-shrink: 0;
  transition: transform 0.2s;
}
.conference-onsite-details:not([open]) .conference-onsite-summary .filters-chevron {
  transform: rotate(-90deg);
}
.conference-onsite-summary-text {
  min-width: 0;
}
.conference-onsite-canedit-meta {
  margin: 10px 0 12px;
}
.conference-onsite-meta-view-inner {
  position: relative;
  padding-right: 40px;
}
.conference-onsite-notes-display {
  margin: 0;
  white-space: pre-wrap;
  word-break: break-word;
}
.conference-onsite-notes-display .conference-onsite-notes-placeholder {
  color: #5f6368;
  font-style: italic;
}
.conference-onsite-meta-view .conference-onsite-edit-trigger {
  position: absolute;
  top: 0;
  right: 0;
}
.conference-onsite-meta-view .conference-onsite-edit-trigger svg {
  width: 16px;
  height: 16px;
}
.conference-onsite-meta-edit {
  padding: 2px 0 4px;
}
.conference-onsite-meta-edit .conference-onsite-edit-row {
  margin-bottom: 10px;
}
.conference-onsite-meta-edit .conference-onsite-edit-row:last-of-type {
  margin-bottom: 12px;
}
.conference-onsite-meta-edit .conference-onsite-edit-label,
.conference-onsite-meta-edit .conference-onsite-edit-desc {
  width: 100%;
  box-sizing: border-box;
}
.conference-onsite-meta-edit .conference-onsite-edit-desc {
  min-height: 4rem;
  resize: vertical;
  line-height: 1.45;
}
.conference-onsite-meta-edit .conference-onsite-edit-done {
  margin-top: 2px;
}
body.theme-dark .conference-onsite-notes-display .conference-onsite-notes-placeholder {
  color: #9aa0a6;
}
body.theme-dark .conference-onsite-meta-edit .conference-onsite-edit-label,
body.theme-dark .conference-onsite-meta-edit .conference-onsite-edit-desc {
  background: rgba(0, 0, 0, 0.2);
  border-color: rgba(255, 255, 255, 0.2);
  color: #e8eaed;
}
.conference-onsite-details-body {
  padding: 0 12px 12px;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
}
.conference-onsite-card-desc {
  margin: 10px 0 12px;
  font-size: 0.88rem;
  color: #3c4043;
  line-height: 1.45;
}
.conference-onsite-url-field {
  margin-bottom: 12px;
}
.conference-onsite-url-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 8px 10px;
}
.conference-onsite-url-row .conference-onsite-url-text {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
}
.conference-onsite-url-row .conference-onsite-copy {
  flex: 0 0 auto;
  margin-top: 2px;
}
.conference-onsite-url-text {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.45;
  color: #202124;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.conference-onsite-url-text .conference-onsite-url-link {
  color: #1a73e8;
  text-decoration: none;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.conference-onsite-url-text .conference-onsite-url-link:hover {
  text-decoration: underline;
}
.conference-onsite-url-tools {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 10px 14px;
}
.conference-onsite-url-tools .detail-copy-btn {
  align-self: center;
}
.conference-onsite-qr-wrap {
  flex: 0 0 auto;
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 8px;
}
.conference-onsite-qr-wrap .conference-onsite-qr-print svg {
  width: 18px;
  height: 18px;
}
.conference-onsite-qr-img {
  display: block;
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 4px;
}
body.theme-dark .conference-onsite-details {
  border-color: rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.03);
}
body.theme-dark .conference-onsite-details-body {
  border-top-color: rgba(255, 255, 255, 0.08);
}
body.theme-dark .conference-onsite-summary {
  color: #e8eaed;
}
body.theme-dark .conference-onsite-card-desc {
  color: #bdc1c6;
}
body.theme-dark .conference-onsite-url-text {
  color: #e8eaed;
}
body.theme-dark .conference-onsite-url-text .conference-onsite-url-link {
  color: #8ab4f8;
}
.conference-group-rows-wrap .config-label,
.conference-link-rows-wrap .config-label,
.conference-meeting-rows-wrap .config-label,
.conference-pricing-rows-wrap > .config-label {
  display: block;
  margin-bottom: 4px;
}
.conference-pricing-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  width: 100%;
  margin-top: 4px;
  align-items: flex-end;
}
.conference-pricing-cell {
  flex: 1 1 120px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}
.conference-pricing-cell .config-label {
  margin-bottom: 0;
}
.conference-date-field {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
}
.conference-date-field--composite {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  position: relative;
}
.conference-date-field--composite .conference-date-iso {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  opacity: 0;
  pointer-events: none;
}
.conference-date-field--composite .conference-date-visible {
  flex: 1 1 160px;
  min-width: 0;
  cursor: pointer;
}
.conference-date-field .conference-date-input {
  max-width: 100%;
}
.conference-meeting-hint {
  margin: 4px 0 0;
  font-size: 0.75rem;
  color: #5f6368;
  line-height: 1.35;
}
.conference-meeting-rows {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  margin-top: 8px;
}
.conference-meeting-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: flex-start;
}
.conference-meeting-row .conference-meeting-number {
  flex: 0 0 4.5rem;
  min-width: 3.5rem;
}
.conference-meeting-row .conference-date-field {
  flex: 1 1 180px;
  min-width: 140px;
}
.conference-meeting-row .conference-time-picker-wrap {
  flex: 1 1 200px;
  min-width: 160px;
  max-width: 100%;
}
.conference-time-picker {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0;
  min-height: 40px;
  padding: 0 10px 0 8px;
  border: 1px solid #dadce0;
  border-radius: 10px;
  background: #fff;
  box-sizing: border-box;
  width: 100%;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.conference-time-picker:focus-within {
  border-color: #8ab4f8;
  box-shadow: 0 0 0 1px rgba(26, 115, 232, 0.25);
}
.conference-time-picker-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #5f6368;
}
.conference-time-picker-icon-svg {
  display: block;
  width: 18px;
  height: 18px;
}
.conference-time-picker-sep {
  width: 1px;
  align-self: stretch;
  min-height: 22px;
  margin: 0 10px;
  background: #e8eaed;
  flex-shrink: 0;
}
.conference-time-picker-input {
  flex: 1 1 auto;
  min-width: 0;
  border: none;
  background: transparent;
  padding: 8px 4px;
  margin: 0;
  font: inherit;
  font-size: 0.9375rem;
  text-align: left;
  color: #202124;
  border-radius: 6px;
  box-shadow: none;
}
.conference-time-picker-input:focus {
  outline: none;
}
.conference-time-picker-input:focus-visible {
  outline: 2px solid rgba(26, 115, 232, 0.45);
  outline-offset: 1px;
}
.conference-time-picker-input--empty {
  color: #9aa0a6;
  letter-spacing: 0.02em;
}
.conference-time-picker-popover {
  z-index: 10050;
  max-height: min(280px, 50vh);
  overflow: hidden;
  border: 1px solid #dadce0;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(60, 64, 67, 0.2);
  box-sizing: border-box;
}
.conference-time-picker-popover-inner {
  max-height: min(276px, calc(50vh - 4px));
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 4px 0;
}
.conference-time-picker-option {
  display: block;
  width: 100%;
  padding: 10px 14px;
  margin: 0;
  border: none;
  background: transparent;
  font: inherit;
  font-size: 0.9375rem;
  text-align: left;
  color: #202124;
  cursor: pointer;
}
.conference-time-picker-option:hover,
.conference-time-picker-option:focus {
  background: #f1f3f4;
  outline: none;
}
.conference-time-picker-option.is-selected {
  background: #e8f0fe;
  font-weight: 500;
}
.conference-time-picker-option.conference-time-picker-option--highlight {
  background: #d2e3fc;
  outline: 2px solid rgba(26, 115, 232, 0.35);
  outline-offset: -2px;
  font-weight: 500;
}
body.theme-dark .conference-time-picker {
  background: #292a2d;
  border-color: #3c4043;
}
body.theme-dark .conference-time-picker:focus-within {
  border-color: #8ab4f8;
  box-shadow: 0 0 0 1px rgba(138, 180, 248, 0.35);
}
body.theme-dark .conference-time-picker-input {
  color: #e8eaed;
}
body.theme-dark .conference-time-picker-input--empty {
  color: #9aa0a6;
}
body.theme-dark .conference-time-picker-sep {
  background: #3c4043;
}
body.theme-dark .conference-time-picker-icon {
  color: #9aa0a6;
}
body.theme-dark .conference-time-picker-popover {
  background: #292a2d;
  border-color: #3c4043;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.45);
}
body.theme-dark .conference-time-picker-option {
  color: #e8eaed;
}
body.theme-dark .conference-time-picker-option:hover,
body.theme-dark .conference-time-picker-option:focus {
  background: #35363a;
}
body.theme-dark .conference-time-picker-option.is-selected {
  background: #394457;
}
body.theme-dark .conference-time-picker-option.conference-time-picker-option--highlight {
  background: #4a5f7a;
  outline-color: rgba(138, 180, 248, 0.45);
}
.conference-meeting-remove {
  flex: 0 0 auto;
  padding: 4px 10px;
  line-height: 1.2;
  margin-top: 0;
}
.conference-meetings-readonly {
  margin-top: 8px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.conference-meeting-readonly-line {
  font-size: 0.9375rem;
  line-height: 1.4;
}
body.theme-dark .conference-readonly-label { color: #9aa0a6; }
body.theme-dark .conference-readonly-sublabel { color: #9aa0a6; }
body.theme-dark .conference-dl dt { color: #e8eaed; }
body.theme-dark .conference-empty { color: #9aa0a6; }
body.theme-dark .conference-meeting-hint { color: #9aa0a6; }

/* Admin email dock (right panel) */
.email-dock-launch {
  margin-right: 8px;
}
/* Fine-grained email permissions (emailView / emailUpdate / emailDelete); also on #email-unlayer-modal (sibling of #email-dock). */
.email-dock--no-update .email-req-update {
  display: none !important;
}
.email-dock--no-delete .email-req-delete {
  display: none !important;
}
.email-dock {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 3000;
  width: min(400px, 100vw);
  height: 100vh;
  height: 100dvh;
  max-height: 100dvh;
  background: #fff;
  border-left: 1px solid #dadce0;
  box-shadow: -4px 0 24px rgba(0, 0, 0, 0.08);
  transform: translateX(100%);
  transition: transform 0.2s ease;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}
.email-dock-resize-handle {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 6px;
  cursor: ew-resize;
  z-index: 3;
  flex-shrink: 0;
}
.email-dock-resize-handle:hover {
  background: rgba(25, 103, 210, 0.1);
}
.email-dock-resize-float-bottom,
.email-dock-resize-float-corner {
  display: none;
}
.email-dock.email-dock--floating .email-dock-resize-float-bottom {
  display: block;
  position: absolute;
  left: 6px;
  right: 14px;
  bottom: 0;
  height: 8px;
  cursor: ns-resize;
  z-index: 3;
}
.email-dock.email-dock--floating .email-dock-resize-float-corner {
  display: block;
  position: absolute;
  right: 0;
  bottom: 0;
  width: 16px;
  height: 16px;
  cursor: nwse-resize;
  z-index: 4;
}
.email-dock.email-dock--floating .email-dock-resize-float-bottom:hover {
  background: rgba(25, 103, 210, 0.08);
}
.email-dock.email-dock--floating .email-dock-resize-float-corner:hover {
  background: rgba(25, 103, 210, 0.12);
}
.email-dock.is-open {
  transform: translateX(0);
}
.email-dock.email-dock--floating {
  transform: none !important;
  transition: opacity 0.18s ease, visibility 0.18s ease;
  border-radius: 8px;
  border: 1px solid #dadce0;
  border-left: 1px solid #dadce0;
  height: auto;
  max-height: calc(100dvh - 8px);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
}
.email-dock.email-dock--floating.email-dock--chrome-collapsed {
  height: auto !important;
  max-height: none !important;
}
.email-dock.email-dock--floating:not(.is-open) {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.email-dock.email-dock--floating.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
/* Right-edge snap hint while dragging a floating email panel */
.email-dock-snap-strip {
  position: fixed;
  top: 0;
  right: 0;
  width: 96px;
  height: 100vh;
  height: 100dvh;
  z-index: 2990;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.12s ease, visibility 0.12s ease;
  background: linear-gradient(to left, rgba(26, 103, 210, 0.42), rgba(26, 103, 210, 0));
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-right: 10px;
  box-sizing: border-box;
}
.email-dock-snap-strip.email-dock-snap-strip--visible {
  opacity: 1;
  visibility: visible;
}
.email-dock-snap-strip__label {
  font-size: 10px;
  font-weight: 600;
  color: #1557b0;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  user-select: none;
}
body.theme-dark .email-dock-snap-strip {
  background: linear-gradient(to left, rgba(138, 180, 248, 0.35), rgba(138, 180, 248, 0));
}
body.theme-dark .email-dock-snap-strip__label {
  color: #8ab4f8;
}
.email-dock.email-dock--floating .email-dock-head {
  cursor: move;
}
.email-dock.email-dock--floating .email-dock-head button {
  cursor: pointer;
}
.email-dock-inner {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  position: relative;
}
.email-dock-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-bottom: 1px solid #dadce0;
  flex-shrink: 0;
}
.email-dock:not(.email-dock--floating) .email-dock-head {
  cursor: grab;
}
.email-dock:not(.email-dock--floating) .email-dock-head button {
  cursor: pointer;
}
.email-dock-head-handle {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-right: -2px;
  padding: 4px 2px;
  border-radius: 4px;
  color: #80868b;
}
.email-dock-head-handle__svg {
  display: block;
}
.email-dock:not(.email-dock--floating) .email-dock-head-handle:hover {
  background: rgba(0, 0, 0, 0.04);
  color: #5f6368;
}
.email-dock-title {
  font-weight: 600;
  flex: 0 0 auto;
}
.email-dock-head-spacer {
  flex: 1;
  min-width: 4px;
}
.email-dock-chrome-collapse {
  border: none;
  background: transparent;
  cursor: pointer;
  font-size: 0.75rem;
  line-height: 1;
  padding: 4px 6px;
  border-radius: 4px;
  color: #5f6368;
  flex-shrink: 0;
}
.email-dock-chrome-region {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  position: relative;
}
.email-dock--chrome-collapsed .email-dock-chrome-region {
  display: none;
}
.email-dock-collapse,
.email-dock-float {
  border: none;
  background: transparent;
  cursor: pointer;
  font-size: 1.1rem;
  line-height: 1;
  padding: 4px 8px;
  border-radius: 4px;
}
.email-dock-collapse:hover,
.email-dock-float:hover {
  background: #f1f3f4;
}
.email-dock-chrome-collapse:hover {
  background: #f1f3f4;
  color: #1967d2;
}
.email-dock-tabs {
  display: flex;
  gap: 4px;
  padding: 8px 8px 0;
  border-bottom: 1px solid #dadce0;
  flex-shrink: 0;
}
.email-dock-tab {
  flex: 1;
  padding: 8px 6px;
  border: none;
  background: transparent;
  cursor: pointer;
  font-size: 12px;
  color: #5f6368;
  border-radius: 6px 6px 0 0;
}
.email-dock-tab.active {
  background: #e8f0fe;
  color: #1967d2;
  font-weight: 500;
}
.email-dock-body {
  flex: 1;
  overflow: hidden;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.email-dock-pane {
  display: none;
  padding: 12px;
  box-sizing: border-box;
}
.email-dock-pane.show {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.email-dock-muted {
  color: #5f6368;
  font-size: 12px;
  margin: 8px 0;
}
.email-dock-section-hd {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #5f6368;
  margin: 14px 0 6px;
}
.email-dock-section-note {
  margin-top: 0;
}
.email-dock-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 2px 6px;
  border-radius: 4px;
  background: #e8f0fe;
  color: #1967d2;
  vertical-align: middle;
}
body.theme-dark .email-dock-badge {
  background: rgba(138, 180, 248, 0.15);
  color: #8ab4f8;
}
.email-dock-list--system {
  margin-bottom: 8px;
}
.email-dock-modal-card--system .email-dock-modal-fields > label.email-dock-label:first-of-type {
  display: none;
}
.email-dock-toolbar {
  margin-bottom: 10px;
}
.email-dock-toolbar--audience-edit {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}
.email-dock-toolbar__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-left: auto;
}
.email-dock-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
  padding: 10px 0;
  border-bottom: 1px solid #f1f3f4;
}
.email-dock-row-actions {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
}
.btn-sm {
  padding: 4px 10px;
  font-size: 12px;
}
.email-dock-field {
  margin-bottom: 12px;
}
.email-dock-field label {
  display: block;
  font-size: 12px;
  color: #5f6368;
  margin-bottom: 4px;
}
.email-audience-view-title {
  margin: 0 0 8px;
  font-size: 1.1rem;
  font-weight: 600;
}
.email-audience-view-meta {
  font-size: 12px;
  margin-top: 4px;
}
.email-mailchimp-sync-banner {
  font-size: 13px;
  line-height: 1.4;
  padding: 8px 10px;
  margin-bottom: 10px;
  border-radius: 6px;
  background: #f8f9fa;
  border: 1px solid #e8eaed;
}
.email-mailchimp-sync-banner--empty {
  color: #5f6368;
  font-style: italic;
}
.email-mailchimp-sync-banner-audience {
  font-weight: 500;
}
.email-aud-mailchimp-ts {
  font-size: 12px;
  margin-top: 4px;
}
.email-audience-rules {
  padding: 8px 10px;
  background: #f8f9fa;
  border: 1px solid #e8eaed;
  border-radius: 6px;
  font-size: 13px;
  line-height: 1.45;
}
.email-audience-json {
  margin: 0;
  max-height: 200px;
  overflow: auto;
  padding: 8px 10px;
  font-size: 11px;
  line-height: 1.35;
  background: #f1f3f4;
  border-radius: 6px;
  white-space: pre-wrap;
  word-break: break-word;
}
body.theme-dark .email-audience-rules {
  background: #2d2e30;
  border-color: #3c4043;
}
body.theme-dark .email-audience-json {
  background: #1e1f21;
}
.email-audience-preview-wrap {
  margin-top: 6px;
}
.email-audience-preview-scroll {
  flex: 1 1 auto;
  min-height: 100px;
  max-height: none;
  overflow: auto;
  border: 1px solid #e8eaed;
  border-radius: 6px;
  /* isolate stacking for sticky cells */
  isolation: isolate;
}
.email-audience-preview-table {
  font-size: 10px;
  margin: 0;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  width: 100%;
  min-width: 240px;
}
.email-audience-preview-table th,
.email-audience-preview-table td {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding: 3px 4px;
  vertical-align: middle;
  min-width: 44px;
  box-sizing: border-box;
}
.email-audience-preview-table th:first-child,
.email-audience-preview-table td:first-child {
  position: sticky;
  left: 0;
  z-index: 1;
  min-width: 44px;
  background: #fff;
  box-shadow: 1px 0 0 #e8eaed;
}
.email-audience-preview-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #f8f9fa;
  border-bottom: 1px solid #e8eaed;
  font-weight: 600;
}
.email-audience-preview-table thead th:first-child {
  z-index: 3;
  left: 0;
  background: #f8f9fa;
}
.email-audience-preview-table thead th .email-audience-preview-col-resize {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 6px;
  margin-right: -3px;
  cursor: col-resize;
  z-index: 4;
  user-select: none;
}
.email-audience-preview-table thead th .email-audience-preview-col-resize:hover {
  background: rgba(26, 115, 232, 0.12);
}
body.theme-dark .email-audience-preview-table thead th .email-audience-preview-col-resize:hover {
  background: rgba(138, 180, 248, 0.15);
}
body.theme-dark .email-audience-preview-table thead th {
  background: #2d2e30;
  border-bottom-color: #3c4043;
}
body.theme-dark .email-audience-preview-table thead th:first-child {
  background: #2d2e30;
}
body.theme-dark .email-audience-preview-table th:first-child,
body.theme-dark .email-audience-preview-table td:first-child {
  background: #1e1f21;
  box-shadow: 1px 0 0 #3c4043;
}
.email-audience-preview-pager-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}
body.theme-dark .email-audience-preview-scroll {
  border-color: #3c4043;
}
.email-audience-preview-scroll--people {
  min-width: 0;
}
.email-audience-preview-table.email-audience-preview-table--people {
  min-width: 640px;
  table-layout: fixed;
}
.email-audience-preview-table.email-audience-preview-table--people th,
.email-audience-preview-table.email-audience-preview-table--people td {
  white-space: nowrap;
  min-width: 44px;
}
.email-audience-preview-table.email-audience-preview-table--people td:first-child,
.email-audience-preview-table.email-audience-preview-table--people th:first-child {
  min-width: 5rem;
}
.email-audience-preview-table.email-audience-preview-table--people td:nth-child(2),
.email-audience-preview-table.email-audience-preview-table--people th:nth-child(2) {
  min-width: 7rem;
}
.email-audience-preview-table.email-audience-preview-table--people td:nth-child(3),
.email-audience-preview-table.email-audience-preview-table--people th:nth-child(3) {
  min-width: 3rem;
}
.email-audience-b-preview-foot {
  margin: 6px 0 0;
  font-size: 11px;
}
button.email-audience-preview-name-link {
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  font: inherit;
  color: #1a73e8;
  cursor: pointer;
  text-decoration: underline;
  text-align: left;
  max-width: 100%;
}
button.email-audience-preview-name-link:hover {
  color: #1557b0;
}
body.theme-dark button.email-audience-preview-name-link {
  color: #8ab4f8;
}
body.theme-dark button.email-audience-preview-name-link:hover {
  color: #adc8fc;
}
.email-audience-b-filters {
  margin-bottom: 8px;
  flex-wrap: wrap;
}

/* Audience builder: compact layout + collapsible sections */
.email-audience-b-top {
  flex-shrink: 0;
  max-height: 33vh;
  overflow-x: hidden;
  overflow-y: auto;
  margin-bottom: 6px;
  padding-right: 2px;
  scrollbar-gutter: stable;
}
.email-audience-b-identity {
  margin-bottom: 6px;
  padding: 6px 8px;
  background: #f8f9fa;
  border: 1px solid #e8eaed;
  border-radius: 6px;
}
.email-audience-b-identity-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
}
@media (min-width: 400px) {
  .email-audience-b-identity-grid {
    grid-template-columns: 1fr 1fr;
  }
}
.email-audience-b-tight {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin: 0;
  min-width: 0;
}
.email-audience-b-lbl {
  font-size: 11px;
  font-weight: 600;
  color: #5f6368;
}
.email-audience-b-details {
  border: 1px solid #e8eaed;
  border-radius: 6px;
  margin-bottom: 6px;
  background: #fff;
}
.email-audience-b-details.email-audience-b-help {
  background: #fafafa;
}
.email-audience-b-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 5px 8px;
  font-size: 11px;
  font-weight: 600;
  color: #3c4043;
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.email-audience-b-summary::-webkit-details-marker {
  display: none;
}
.email-audience-b-summary::after {
  content: '▸';
  flex-shrink: 0;
  font-size: 10px;
  color: #80868b;
  line-height: 1;
}
.email-audience-b-details[open] > .email-audience-b-summary::after {
  content: '▾';
}
.email-audience-b-help-text {
  margin: 0 8px 6px;
  font-size: 11px;
  line-height: 1.4;
  color: #5f6368;
}
.email-audience-b-filter-slab {
  padding: 4px 6px 5px;
  margin-bottom: 0;
  border: 1px solid #e8eaed;
  border-radius: 6px;
  background: #fafafa;
}
.email-audience-b-filters-compact {
  padding: 0 10px 10px;
}
.email-audience-b-search {
  width: 100%;
  box-sizing: border-box;
  margin-bottom: 4px;
  padding: 4px 8px;
  font-size: 12px;
  min-height: 28px;
}
.email-audience-b-filter-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px 8px;
  align-items: end;
}
.email-audience-b-filter-grid--dense {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 3px 4px;
  align-items: end;
}
.email-audience-b-filter-slab .email-audience-b-mini .input {
  font-size: 11px;
  padding: 2px 4px;
  min-height: 26px;
}
.email-audience-b-mini {
  display: flex;
  flex-direction: column;
  gap: 1px;
  margin: 0;
  min-width: 0;
}
.email-audience-b-mini .input {
  width: 100%;
  box-sizing: border-box;
}
.email-audience-b-mini-lbl {
  font-size: 9px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #80868b;
  line-height: 1.2;
}
.email-audience-b-span2 {
  grid-column: 1 / -1;
}
.email-audience-b-sort-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 8px;
  margin-top: 4px;
  padding-top: 4px;
  border-top: 1px solid #e8eaed;
}
.email-audience-b-cyp-row {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 4px;
  margin-top: 4px;
  padding-top: 4px;
  border-top: 1px solid #e8eaed;
}
.email-audience-b-cyp-grid {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 6px;
  width: 100%;
}
.email-audience-b-cyp-grid-lbl {
  flex: 1 1 100%;
  margin: 0;
}
.email-audience-b-cyp-cb {
  font-size: 11px;
}
.registrations-cyp-checks {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  align-items: center;
}
.registrations-filters-cyp .filter-label {
  align-self: center;
}
.email-audience-b-checks {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  align-items: center;
  flex: 1 1 auto;
  min-width: 0;
}
.email-audience-b-chk {
  font-size: 11px;
  margin: 0;
}
.email-audience-b-sort-pair {
  display: flex;
  flex-wrap: wrap;
  gap: 3px 6px;
  align-items: flex-end;
  flex: 1 1 auto;
  justify-content: flex-end;
  min-width: 0;
}
.email-audience-b-sort-pair .email-audience-b-mini {
  flex: 0 1 auto;
  max-width: 48%;
}
.email-audience-b-preview-section {
  margin-top: 4px;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}
.email-audience-b-subhead {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #80868b;
  margin: 2px 0 4px;
  padding: 0 1px;
  flex-shrink: 0;
}
.email-audience-b-preview-block {
  padding: 0;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}
.email-audience-b-preview-block > .email-audience-preview-wrap {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  margin-top: 0;
}
.email-audience-b-preview-table-footer {
  flex-shrink: 0;
  position: sticky;
  bottom: 0;
  z-index: 2;
  margin-top: 8px;
  padding-top: 8px;
  background: #fff;
  border-top: 1px solid #e8eaed;
}
.email-audience-b-preview-table-footer .email-audience-b-preview-foot {
  margin: 0 0 6px;
}
.email-audience-b-preview-table-footer .email-audience-preview-pager-inner {
  margin-top: 0;
}
.email-audience-view {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}
.email-audience-view-preview-shell {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1 1 auto;
  max-height: min(52vh, 480px);
}
.email-audience-view-preview-shell > .email-audience-preview-wrap {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  margin-top: 6px;
}
.email-audience-view .email-dock-field:has(.email-audience-view-preview-shell) {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}
.email-audience-b-classic-rules .email-dock-field {
  margin-bottom: 8px;
}
.email-audience-b-classic-rules .email-dock-field:last-child {
  margin-bottom: 0;
}
#email-pane-audiences .email-dock-actions {
  margin-top: 8px;
}
body.theme-dark .email-audience-b-identity {
  background: #292a2d;
  border-color: #3c4043;
}
body.theme-dark .email-audience-b-details {
  background: #202124;
  border-color: #3c4043;
}
body.theme-dark .email-audience-b-details.email-audience-b-help {
  background: #1e1f21;
}
body.theme-dark .email-audience-b-summary {
  color: #e8eaed;
}
body.theme-dark .email-audience-b-summary::after {
  color: #9aa0a6;
}
body.theme-dark .email-audience-b-help-text,
body.theme-dark .email-audience-b-lbl {
  color: #9aa0a6;
}
body.theme-dark .email-audience-b-mini-lbl {
  color: #9aa0a6;
}
body.theme-dark .email-audience-b-sort-row,
body.theme-dark .email-audience-b-cyp-row {
  border-top-color: #3c4043;
}
body.theme-dark .email-audience-b-cyp-cb {
  color: #e8eaed;
}
body.theme-dark .email-audience-b-filter-slab {
  background: #1e1f21;
  border-color: #3c4043;
}
body.theme-dark .email-audience-b-preview-table-footer {
  background: #202124;
  border-top-color: #3c4043;
}
.email-dock-svc-grid {
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-height: 160px;
  overflow: auto;
  margin-bottom: 8px;
}
.email-dock-chk {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  cursor: pointer;
}
.email-dock-preview-frame {
  width: 100%;
  height: 220px;
  border: 1px solid #dadce0;
  border-radius: 6px;
  margin-top: 8px;
  background: #fff;
}
.email-dock-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}
.email-dock-sticky-footer {
  position: sticky;
  bottom: 0;
  z-index: 4;
  margin-top: auto;
  flex-shrink: 0;
  margin-left: -12px;
  margin-right: -12px;
  padding: 12px 12px 10px;
  background: #fff;
  border-top: 1px solid #e8eaed;
  box-shadow: 0 -8px 20px rgba(0, 0, 0, 0.06);
}
.email-dock-sticky-footer .email-dock-actions {
  margin-top: 0;
}
.email-dock-sticky-footer .email-dock-progress {
  margin-top: 8px;
}
.email-dock-progress {
  margin-top: 10px;
  font-size: 13px;
  color: #1967d2;
}
.email-dock-sticky-footer .email-dock-progress:first-child {
  margin-top: 0;
}
.email-dock-toast {
  position: absolute;
  bottom: 12px;
  left: 12px;
  right: 12px;
  padding: 10px 12px;
  background: #e8f5e9;
  color: #137333;
  border-radius: 8px;
  font-size: 13px;
  z-index: 6;
}
.email-dock-toast--err {
  background: #fce8e6;
  color: #c5221f;
}
.badge-ok {
  background: #e6f4ea;
  color: #137333;
  border: 1px solid #cde7d4;
}
.badge-err {
  background: #fce8e6;
  color: #c5221f;
  border: 1px solid #f9dedc;
}
.email-logs-section-title {
  margin: 16px 0 8px;
  font-size: 13px;
  font-weight: 600;
}
.email-logs-section-title:first-child {
  margin-top: 0;
}
.email-logs-section-hint {
  margin: 0 0 8px;
  font-size: 11px;
}
.email-dock-table--logs .email-log-copy-col,
.email-dock-table--mc-log .email-log-copy-col {
  width: 36px;
  padding-left: 4px;
  padding-right: 4px;
}
.email-log-copy-cell {
  width: 36px;
  vertical-align: middle;
  text-align: center;
  padding: 4px;
}
.email-log-copy-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 4px;
  border: none;
  background: transparent;
  border-radius: 6px;
  color: #5f6368;
  cursor: pointer;
  line-height: 0;
}
.email-log-copy-btn:hover {
  background: #f1f3f4;
  color: #202124;
}
.email-log-copy-btn:focus-visible {
  outline: 2px solid #1a73e8;
  outline-offset: 1px;
}
.email-log-copy-btn svg {
  width: 16px;
  height: 16px;
}
.email-log-when {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
/* Mailchimp logs: monospace + right-align so times/durations line up vertically */
.email-dock-table--mc-log {
  font-variant-numeric: tabular-nums;
}
.email-dock-table--mc-log th:nth-child(2),
.email-dock-table--mc-log td.email-log-when {
  text-align: right;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace;
  font-size: 11px;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}
.email-dock-table--mc-log th:nth-child(3),
.email-dock-table--mc-log td.email-log-time {
  white-space: nowrap;
  text-align: right;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace;
  font-size: 11px;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  color: #5f6368;
}
.email-dock-table--mc-log .email-log-detail {
  font-size: 11px;
  line-height: 1.35;
  word-break: break-word;
}
.email-log-phase {
  font-size: 11px;
  background: #f1f3f4;
  padding: 2px 6px;
  border-radius: 4px;
}
.email-log-mc-groups {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.email-log-mc-group {
  border: 1px solid #e8eaed;
  border-radius: 8px;
  background: #fafafa;
  overflow: hidden;
}
.email-log-mc-summary {
  cursor: pointer;
  padding: 10px 12px;
  font-size: 13px;
  line-height: 1.4;
  list-style: none;
  user-select: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
}
.email-log-mc-summary-lead {
  flex: 1 1 12rem;
  min-width: 0;
}
.email-log-mc-summary-failed {
  vertical-align: middle;
  margin-left: 2px;
  font-size: 11px;
  font-weight: 600;
}
.email-log-mc-summary-finished,
.email-log-mc-summary-duration {
  flex: 0 0 auto;
  font-weight: normal;
  color: #5f6368;
  font-size: 12px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace;
  font-variant-numeric: tabular-nums;
  text-align: right;
  white-space: nowrap;
  letter-spacing: -0.02em;
}
.email-log-mc-summary-finished {
  min-width: 28ch;
}
.email-log-mc-summary-duration {
  min-width: 14ch;
}
.email-log-mc-summary-actions {
  flex-shrink: 0;
  line-height: 0;
  margin-left: auto;
}
.email-log-mc-summary-actions .email-log-copy-btn {
  cursor: pointer;
}
.email-log-mc-summary::-webkit-details-marker {
  display: none;
}
.email-log-mc-summary::before {
  content: '';
  display: inline-block;
  width: 0;
  height: 0;
  margin-right: 8px;
  vertical-align: middle;
  border-left: 5px solid #5f6368;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  transform: rotate(0deg);
  transition: transform 0.15s ease;
}
.email-log-mc-group[open] > .email-log-mc-summary::before {
  transform: rotate(90deg);
}
.email-log-mc-group-body {
  padding: 0;
  background: #fff;
  border-top: 1px solid #e8eaed;
}
.email-log-mc-group-body .email-dock-table {
  font-size: 11px;
}
.email-dock-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.email-dock-table th,
.email-dock-table td {
  text-align: left;
  padding: 6px 8px;
  border-bottom: 1px solid #f1f3f4;
}
.email-quota-summary {
  font-size: 14px;
  line-height: 1.6;
  margin-bottom: 10px;
}
.email-quota-bar {
  height: 8px;
  background: #e8eaed;
  border-radius: 4px;
  overflow: hidden;
  margin: 8px 0;
}
.email-quota-bar-fill {
  height: 100%;
  background: #34a853;
  transition: width 0.2s;
}
.email-quota-bar-fill--orange {
  background: #f9ab00;
}
.email-quota-bar-fill--red {
  background: #ea4335;
}
.email-dock-modal {
  position: fixed;
  inset: 0;
  z-index: 4000;
  background: rgba(0, 0, 0, 0.45);
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.email-dock-modal-card {
  background: #fff;
  border-radius: 12px;
  max-width: 960px;
  width: 100%;
  max-height: 92vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.email-dock-modal-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-bottom: 1px solid #dadce0;
}
.email-dock-modal-bar span {
  flex: 1;
  font-weight: 600;
}
.email-dock-modal-fields {
  padding: 10px 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.email-dock-label {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 12px;
  color: #5f6368;
}
.email-unlayer-editor {
  flex: 1 1 auto;
  min-height: 520px;
  height: min(72vh, 800px);
  border-top: 1px solid #dadce0;
  display: flex;
  flex-direction: column;
}
.email-unlayer-editor > div {
  flex: 1;
  min-height: 0;
  width: 100%;
}
body.theme-dark .email-dock {
  background: #202124;
  border-color: #3c4043;
}
body.theme-dark .email-dock-chrome-collapse {
  color: #9aa0a6;
}
body.theme-dark .email-dock-chrome-collapse:hover {
  background: #3c4043;
  color: #8ab4f8;
}
body.theme-dark .email-dock-head-handle {
  color: #9aa0a6;
}
body.theme-dark .email-dock:not(.email-dock--floating) .email-dock-head-handle:hover {
  background: rgba(255, 255, 255, 0.06);
  color: #e8eaed;
}
body.theme-dark .email-dock.email-dock--floating {
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.45);
}
body.theme-dark .email-dock-sticky-footer {
  background: #202124;
  border-top-color: #3c4043;
  box-shadow: 0 -8px 20px rgba(0, 0, 0, 0.35);
}
body.theme-dark .email-dock-resize-handle:hover {
  background: rgba(138, 180, 248, 0.12);
}
body.theme-dark .email-dock.email-dock--floating .email-dock-resize-float-bottom:hover,
body.theme-dark .email-dock.email-dock--floating .email-dock-resize-float-corner:hover {
  background: rgba(138, 180, 248, 0.1);
}
body.theme-dark .email-dock-tab.active {
  background: #394457;
  color: #8ab4f8;
}
body.theme-dark .email-dock-muted {
  color: #9aa0a6;
}
body.theme-dark .email-mailchimp-sync-banner {
  background: #292a2d;
  border-color: #3c4043;
  color: #e8eaed;
}
body.theme-dark .email-mailchimp-sync-banner--empty {
  color: #9aa0a6;
}
body.theme-dark .email-dock-modal-card {
  background: #292a2d;
}

/* Hospitality placeholder (LIBC 2027) */
.hospitality-view-wrap {
  padding: 16px 20px 24px;
  max-width: 640px;
}
.hospitality-mockup-card {
  background: #fff;
  border: 1px solid #dadce0;
  border-radius: 12px;
  padding: 28px 32px;
  box-shadow: 0 1px 2px rgba(60, 64, 67, 0.08);
}
.hospitality-mockup-title {
  margin: 0 0 12px;
  font-size: 22px;
  font-weight: 600;
  color: #202124;
}
.hospitality-mockup-lead {
  margin: 0 0 16px;
  font-size: 15px;
  line-height: 1.5;
  color: #3c4043;
}
.hospitality-mockup-note {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: #5f6368;
}
body.theme-dark .hospitality-mockup-card {
  background: #292a2d;
  border-color: #3c4043;
  box-shadow: none;
}
body.theme-dark .hospitality-mockup-title {
  color: #e8eaed;
}
body.theme-dark .hospitality-mockup-lead {
  color: #bdc1c6;
}
body.theme-dark .hospitality-mockup-note {
  color: #9aa0a6;
}

/* Roles admin — scrollable tab body (app-shell is overflow:hidden) */
#view-roles.view.show,
#view-role-permissions.view.show {
  display: flex;
  flex-direction: column;
  flex: 1 1 0%;
  min-height: 0;
  overflow: hidden;
}
/* Roles admin — card + accordion matrix (settings-style UX) */
.roles-admin-layout {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  max-width: 960px;
  width: 100%;
  margin: 0 auto;
  padding: 0 4px 24px;
  box-sizing: border-box;
}
.roles-admin-secondary-toolbar {
  margin-bottom: 14px;
  flex-wrap: wrap;
  gap: 8px;
}
.roles-page-card {
  background: #fff;
  border: 1px solid #e8eaed;
  border-radius: 12px;
  box-shadow: 0 1px 2px rgba(60, 64, 67, 0.08);
  overflow: hidden;
}
.roles-card-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 22px 16px;
  border-bottom: 1px solid #e8eaed;
}
.roles-card-heading {
  flex: 1;
  min-width: 200px;
}
.roles-card-title {
  margin: 0 0 6px;
  font-size: 18px;
  font-weight: 600;
  color: #202124;
  letter-spacing: -0.01em;
}
.roles-card-subtitle {
  margin: 0;
  font-size: 13px;
  line-height: 1.45;
  color: #5f6368;
}
.roles-card-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 12px;
}
.roles-card-body {
  padding: 0 0 8px;
}
.roles-permissions-wrap {
  padding: 16px 20px 20px;
}
.roles-admin-notes {
  margin-top: 22px;
  padding: 0 4px;
}
.roles-admin-notes-text {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: #5f6368;
}
.roles-acc {
  border: 1px solid #e8eaed;
  border-radius: 10px;
  margin-bottom: 12px;
  background: #fafbfc;
}
.roles-acc:last-child {
  margin-bottom: 0;
}
.roles-acc-summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  user-select: none;
}
.roles-acc-summary::-webkit-details-marker {
  display: none;
}
.roles-acc-summary::-moz-list-bullet {
  list-style: none;
}
.roles-acc-summary:focus {
  outline: none;
}
.roles-acc-summary:focus-visible {
  outline: 2px solid #1a73e8;
  outline-offset: 2px;
  border-radius: 8px;
}
.roles-acc-summary-text {
  flex: 1;
  min-width: 0;
}
.roles-acc-title {
  font-size: 15px;
  font-weight: 600;
  color: #202124;
}
.roles-acc-subtitle {
  margin-top: 4px;
  font-size: 12px;
  line-height: 1.4;
  color: #80868b;
}
.roles-acc-chevron {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #e8eaed;
  position: relative;
}
.roles-acc-chevron::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 45%;
  width: 6px;
  height: 6px;
  margin: -4px 0 0 -4px;
  border-right: 2px solid #5f6368;
  border-bottom: 2px solid #5f6368;
  transform: rotate(45deg);
  transition: transform 0.15s ease, border-color 0.15s;
}
details.roles-acc[open] > .roles-acc-summary .roles-acc-chevron {
  background: #e8f0fe;
}
details.roles-acc[open] > .roles-acc-summary .roles-acc-chevron::after {
  transform: rotate(-135deg);
  margin-top: 0;
  border-color: #1a73e8;
}
.roles-acc-panel {
  padding: 0 0 16px;
  border-top: 1px solid #e8eaed;
  background: #fff;
}
.roles-acc-panel--legacy {
  padding: 0 0 12px;
}
.roles-perm-grid {
  display: grid;
  grid-template-columns: minmax(100px, 1.2fr) minmax(88px, 0.8fr) repeat(3, minmax(48px, 1fr));
  gap: 10px 10px;
  align-items: center;
  padding: 10px 16px 0;
}
.roles-perm-grid--head {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #80868b;
  padding-bottom: 4px;
}
.roles-perm-grid--row {
  border-top: 1px solid #f1f3f4;
  padding-top: 10px;
  padding-bottom: 2px;
}
.roles-perm-grid--head + .roles-perm-grid--row {
  border-top: none;
}
.roles-perm-col-role {
  font-size: 13px;
  font-weight: 500;
  color: #202124;
  word-break: break-word;
}
.roles-perm-col-selall {
  display: flex;
  justify-content: flex-start;
}
.roles-perm-col-selall-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #80868b;
}
.roles-perm-selall-label {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
}
.roles-perm-col-act {
  display: flex;
  justify-content: center;
}
.roles-perm-col-act--na {
  color: #dadce0;
  font-size: 14px;
  justify-content: center;
}
.roles-perm-checkbox-label {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  padding: 4px;
}
.roles-perm-checkbox-label input {
  width: 16px;
  height: 16px;
  accent-color: #1a73e8;
  cursor: pointer;
}
.roles-perm-selectall {
  width: 16px;
  height: 16px;
  accent-color: #1a73e8;
  cursor: pointer;
}
.roles-perm-selectall:disabled {
  cursor: default;
  opacity: 0.6;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.roles-legacy-scroll {
  overflow-x: auto;
  margin: 0 16px;
  -webkit-overflow-scrolling: touch;
}
.roles-legacy-table {
  width: 100%;
  min-width: 480px;
  border-collapse: collapse;
  font-size: 13px;
}
.roles-legacy-table th,
.roles-legacy-table td {
  padding: 8px 10px;
  border-bottom: 1px solid #f1f3f4;
  text-align: left;
}
.roles-legacy-th-key {
  font-weight: 600;
  color: #5f6368;
  border-bottom: 1px solid #e8eaed;
}
.roles-legacy-th-level {
  width: 120px;
}
.roles-legacy-td-level {
  font-weight: 500;
  color: #202124;
}
.roles-legacy-table input[type='checkbox'] {
  width: 16px;
  height: 16px;
  accent-color: #1a73e8;
  cursor: pointer;
}
@media (max-width: 640px) {
  .roles-acc-panel {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .roles-perm-grid {
    min-width: 520px;
  }
}

body.theme-dark .roles-page-card {
  background: #292a2d;
  border-color: #3c4043;
  box-shadow: none;
}
body.theme-dark .roles-card-header {
  border-color: #3c4043;
}
body.theme-dark .roles-card-title {
  color: #e8eaed;
}
body.theme-dark .roles-card-subtitle {
  color: #9aa0a6;
}
body.theme-dark .roles-card-actions .btn-primary {
  background: #1a73e8;
  border-color: #1a73e8;
}
body.theme-dark .roles-card-actions .btn-primary:disabled {
  opacity: 0.6;
}
body.theme-dark .roles-card-actions .btn-text:disabled {
  opacity: 0.6;
}
body.theme-dark .roles-admin-notes-text {
  color: #9aa0a6;
}
body.theme-dark .roles-acc {
  border-color: #3c4043;
  background: #202124;
}
body.theme-dark .roles-acc-title {
  color: #e8eaed;
}
body.theme-dark .roles-acc-subtitle {
  color: #9aa0a6;
}
body.theme-dark .roles-acc-chevron {
  background: #3c4043;
}
body.theme-dark .roles-acc-chevron::after {
  border-color: #bdc1c6;
}
body.theme-dark details.roles-acc[open] > .roles-acc-summary .roles-acc-chevron {
  background: #174ea6;
}
body.theme-dark details.roles-acc[open] > .roles-acc-summary .roles-acc-chevron::after {
  border-color: #8ab4f8;
}
body.theme-dark .roles-acc-panel {
  border-color: #3c4043;
  background: #292a2d;
}
body.theme-dark .roles-perm-grid--head {
  color: #9aa0a6;
}
body.theme-dark .roles-perm-grid--row {
  border-color: #3c4043;
}
body.theme-dark .roles-perm-col-role {
  color: #e8eaed;
}
body.theme-dark .roles-perm-col-selall-label {
  color: #9aa0a6;
}
body.theme-dark .roles-legacy-table th,
body.theme-dark .roles-legacy-table td {
  border-color: #3c4043;
}
body.theme-dark .roles-legacy-th-key {
  color: #9aa0a6;
  border-color: #3c4043;
}
body.theme-dark .roles-legacy-td-level {
  color: #e8eaed;
}
body.theme-dark .roles-perm-grid--row {
  border-color: #3c4043;
}

/* Roles CRUD list + dialog */
.roles-card-header--compact {
  padding-bottom: 12px;
}
.roles-card-body--list {
  padding: 0 0 12px;
}
.roles-list-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 0 16px 16px;
}
.roles-crud-table {
  width: 100%;
  min-width: 600px;
  border-collapse: collapse;
  font-size: 13px;
}
.roles-crud-th-expand,
.roles-crud-td-expand {
  width: 42px;
  padding-left: 8px;
  padding-right: 4px;
  vertical-align: middle;
}
.roles-crud-expand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  min-height: 32px;
  padding: 4px;
  line-height: 1;
  border: none;
  background: transparent;
  border-radius: 8px;
  cursor: pointer;
  color: #5f6368;
}
.roles-crud-expand:hover {
  background: rgba(0, 0, 0, 0.06);
  color: #202124;
}
.roles-crud-expand:focus-visible {
  outline: 2px solid #1a73e8;
  outline-offset: 2px;
}
.roles-crud-chevron {
  display: block;
  transition: transform 0.15s ease;
}
.roles-crud-expand[aria-expanded='true'] .roles-crud-chevron {
  transform: rotate(90deg);
}
.roles-crud-td-members {
  background: #f8f9fa;
  padding: 0 12px 14px 12px;
  border-bottom: 1px solid #e8eaed;
}
.roles-crud-members-inner {
  padding: 8px 4px 4px 2px;
}
.roles-crud-members-list {
  margin: 0;
  padding: 0 0 0 18px;
  list-style: disc;
  color: #202124;
  font-size: 13px;
}
.roles-crud-member-item {
  margin: 4px 0;
}
.roles-crud-member-name {
  font-weight: 500;
  color: #202124;
}
.roles-crud-member-meta {
  display: block;
  font-size: 12px;
  color: #5f6368;
  margin-top: 2px;
}
.roles-crud-members-empty {
  margin: 4px 0 0;
  font-size: 13px;
}
.roles-crud-table th {
  text-align: left;
  padding: 8px 10px;
  border-bottom: 1px solid #e8eaed;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #80868b;
}
.roles-crud-table td {
  padding: 10px;
  border-bottom: 1px solid #f1f3f4;
  vertical-align: top;
}
.roles-crud-th-actions,
.roles-crud-td-actions {
  text-align: right;
  white-space: nowrap;
}
.roles-crud-code {
  font-size: 12px;
  background: #f1f3f4;
  padding: 2px 6px;
  border-radius: 4px;
  color: #202124;
}
.roles-crud-td-desc {
  color: #5f6368;
  max-width: 360px;
}
.roles-crud-badge {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 999px;
  background: #e8f0fe;
  color: #1967d2;
}
.roles-crud-td-actions .btn-sm {
  padding: 4px 10px;
  font-size: 12px;
}
.roles-dialog {
  border: none;
  border-radius: 12px;
  padding: 0;
  max-width: min(480px, calc(100vw - 32px));
  box-shadow: 0 8px 32px rgba(60, 64, 67, 0.28);
}
.roles-dialog::backdrop {
  background: rgba(32, 33, 36, 0.45);
}
.roles-dialog-form {
  padding: 22px 24px 20px;
}
.roles-dialog-heading {
  margin: 0 0 16px;
  font-size: 18px;
  font-weight: 600;
  color: #202124;
}
.roles-dialog-field {
  margin-bottom: 14px;
}
.roles-dialog-label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: #5f6368;
  margin-bottom: 6px;
}
.roles-dialog-hint {
  margin: 6px 0 0;
  font-size: 12px;
  color: #80868b;
  line-height: 1.4;
}
.roles-dialog-hint--add {
  margin: 0;
}
.roles-dialog-code-example {
  font-size: 12px;
  background: #f1f3f4;
  padding: 1px 6px;
  border-radius: 4px;
}
.roles-dialog-code-display {
  font-size: 14px;
  font-weight: 600;
  color: #202124;
}
.roles-dialog-textarea {
  width: 100%;
  min-height: 88px;
  resize: vertical;
  box-sizing: border-box;
  font-family: inherit;
  line-height: 1.45;
}
.roles-dialog-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 18px;
  padding-top: 4px;
}
body.theme-dark .roles-crud-table th {
  border-color: #3c4043;
  color: #9aa0a6;
}
body.theme-dark .roles-crud-table td {
  border-color: #3c4043;
}
body.theme-dark .roles-crud-code {
  background: #3c4043;
  color: #e8eaed;
}
body.theme-dark .roles-crud-td-desc {
  color: #9aa0a6;
}
body.theme-dark .roles-crud-badge {
  background: #174ea6;
  color: #e8eaed;
}
body.theme-dark .roles-crud-expand {
  color: #9aa0a6;
}
body.theme-dark .roles-crud-expand:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #e8eaed;
}
body.theme-dark .roles-crud-td-members {
  background: #202124;
  border-color: #3c4043;
}
body.theme-dark .roles-crud-members-list,
body.theme-dark .roles-crud-member-name {
  color: #e8eaed;
}
body.theme-dark .roles-crud-member-meta {
  color: #9aa0a6;
}
body.theme-dark .roles-dialog {
  background: #292a2d;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
}
body.theme-dark .roles-dialog-heading {
  color: #e8eaed;
}
body.theme-dark .roles-dialog-label {
  color: #9aa0a6;
}
body.theme-dark .roles-dialog-code-display {
  color: #e8eaed;
}
body.theme-dark .roles-dialog-hint {
  color: #80868b;
}
body.theme-dark .roles-dialog-code-example {
  background: #3c4043;
  color: #e8eaed;
}
