/* Operate: quiet chrome and notices, compact navigation, persistent account footer.
   Appointment/status colors remain semantic; this is not a calendar palette change. */
:root {
  --admin-accent: #454c57;
  --admin-accent-hover: #303740;
  --admin-selection: #e9ecf0;
  --admin-focus: #596579;
  --admin-nav-width: 220px;
}

.admin-layout { grid-template-columns: var(--admin-nav-width) minmax(0, 1fr); }
.admin-layout > .workspace { grid-column: 2; }
.admin-layout > .admin-nav {
  --brand-red: var(--admin-accent);
  --brand-red-dark: var(--admin-accent-hover);
  --admin-active: var(--admin-selection);
  position: fixed;
  inset: 0 auto 0 0;
  width: var(--admin-nav-width);
  height: 100dvh;
  max-height: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px 8px;
  overflow: hidden;
  border: 0;
  border-right: 1px solid var(--admin-border);
  border-radius: 0;
  background: var(--admin-soft);
  box-shadow: none;
  z-index: 60;
}
.admin-nav .sidebar-brand-lockup {
  flex: 0 0 auto;
  min-height: 36px;
  margin: 0;
  padding: 4px 10px 12px;
}
.admin-nav .sidebar-calendar-mini { display: none; }
.admin-nav .sidebar-nav-list {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #bac1cb transparent;
}
.sidebar-nav-list > * { flex: 0 0 auto; }
.admin-nav .nav-tab, .admin-nav .nav-section-toggle {
  min-height: 36px;
  padding: 7px 10px;
  gap: 8px;
  border-radius: 8px;
}
.admin-nav .nav-copy > span,
.admin-nav .nav-section-toggle > span:nth-child(2) {
  font-size: 14px;
  line-height: 20px;
  font-weight: 600;
}
.admin-nav .nav-badge { min-width: 22px; height: 22px; font-size: 12px; font-weight: 500; }
.admin-nav .nav-tab.active,
.admin-nav .nav-section-toggle.active {
  background: var(--admin-selection);
  color: var(--admin-accent-hover);
}
.admin-nav .nav-section.open > .nav-section-toggle:not(.active) { background: transparent; color: var(--admin-accent); }
.admin-nav .nav-tab:hover,
.admin-nav .nav-section-toggle:hover,
.admin-nav .nav-submenu button:hover,
.admin-nav .nav-client-list button:hover,
.admin-nav .nav-employee-item:hover { background: #eef0f3; color: var(--admin-accent-hover); }
.admin-nav .nav-tab.active .nav-badge { background: #dce1e7; color: var(--admin-accent-hover); }
.admin-nav .sidebar-account {
  flex: 0 0 auto;
  margin-top: auto;
  padding: 12px 8px 0;
  gap: 8px;
  border: 0;
  border-top: 1px solid var(--admin-border);
}
.sidebar-account strong { font-size: 13px; line-height: 18px; }
.sidebar-account small { font-size: 12px; line-height: 18px; }
.sidebar-account .admin-logout-button { min-height: 36px; padding: 6px 8px; font-size: 13px; }

/* Non-destructive actions use graphite; errors and appointment status keep their colors. */
#adminApp .btn-primary:not(.btn-danger) { background: var(--admin-accent); border-color: var(--admin-accent); color: #fff; font-weight: 600; }
#adminApp .btn-primary:not(.btn-danger):hover { background: var(--admin-accent-hover); border-color: var(--admin-accent-hover); }
#adminApp .btn-secondary:not(.btn-danger) { background: #fff; border-color: var(--admin-border); color: var(--admin-accent); font-weight: 500; }
#adminApp .btn-secondary:not(.btn-danger):hover,
#adminApp .btn-secondary:not(.btn-danger):focus-visible { background: var(--admin-selection); color: var(--admin-accent-hover); }
#adminApp .kicker { color: var(--admin-muted); }
.overview-planner-head .kicker { display: none; }
.admin-boot-kicker { color: var(--admin-accent); }
.admin-boot-spinner { border-color: var(--admin-selection); border-top-color: var(--admin-accent); }
.figma-settings .settings-directory-group button:hover { color: var(--admin-accent-hover); }
.figma-planner .overview-planner-half-slot:hover,
.figma-planner .overview-planner-half-slot:focus-visible,
.figma-planner .overview-planner-half-slot.selected { background: var(--admin-selection); }
.admin-shell :is(button, input, select, textarea, a):focus-visible,
.figma-planner:focus-visible {
  outline: 2px solid var(--admin-focus);
  outline-offset: 2px;
  box-shadow: none;
}
.admin-nav button:focus-visible { outline-offset: -2px; }
::selection { background: #dce1e7; color: #242321; }

.overview-broadcast-reminder,
.overview-broadcast-reminder.is-late,
.staff-readonly-notice,
.broadcast-rule-note {
  background: #fff;
  color: var(--ink);
  border: 1px solid #e0e3eb;
  border-radius: 12px;
  padding: 16px 20px;
  box-shadow: none;
  font-size: 14px;
  line-height: 22px;
  font-weight: 400;
}
.overview-broadcast-reminder { display: flex; align-items: center; gap: 16px; }
.overview-broadcast-reminder > div { min-width: 0; }
.overview-broadcast-reminder strong { font-size: 14px; line-height: 22px; font-weight: 600; }
.overview-broadcast-reminder span { margin-top: 4px; color: #656b76; font-size: 13px; line-height: 20px; font-weight: 400; }
#adminApp .overview-broadcast-reminder .btn {
  flex: 0 0 auto;
  min-height: 36px;
  padding: 8px 12px;
  background: #f6f7f9;
  border: 1px solid #e0e3eb;
  border-radius: 8px;
  color: var(--admin-accent);
  font-size: 13px;
  line-height: 18px;
  font-weight: 500;
}
#adminApp .overview-broadcast-reminder .btn:hover { background: var(--admin-selection); }
.toast {
  background: #fff;
  border: 1px solid #e0e3eb;
  border-radius: 12px;
  color: var(--ink);
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
  text-align: left;
  z-index: 250;
}
#localPreviewNotice {
  margin-left: var(--admin-nav-width);
  padding: 8px 16px;
  background: #eef0f3;
  color: #59616f;
  border-bottom: 1px solid #e0e3eb;
  font: 400 13px/20px Inter, system-ui, sans-serif;
}

@media (max-width: 760px) {
  .admin-layout { grid-template-columns: minmax(0, 1fr); }
  .admin-layout > .workspace { grid-column: 1; }
  .admin-layout > .admin-nav {
    inset: 0 auto 0 0;
    width: min(320px, calc(100vw - 48px));
    padding: max(64px, calc(env(safe-area-inset-top, 0px) + 56px), calc(var(--tg-content-safe-area-inset-top, 0px) + 56px)) 8px max(12px, env(safe-area-inset-bottom, 0px));
    z-index: 88;
  }
  .admin-nav .sidebar-brand-lockup { display: none; }
  .admin-nav .nav-tab, .admin-nav .nav-section-toggle,
  .admin-nav .nav-submenu button, .admin-nav .nav-client-list button,
  .sidebar-account .admin-logout-button { min-height: 44px; }
  .overview-broadcast-reminder { align-items: flex-start; padding: 16px; gap: 12px; }
  .overview-broadcast-reminder .btn { min-height: 44px; }
  #localPreviewNotice { margin-left: 0; padding-left: 64px; }
}
@media (pointer: coarse) and (min-width: 761px) {
  .admin-nav .nav-tab, .admin-nav .nav-section-toggle,
  .sidebar-account .admin-logout-button { min-height: 44px; }
}
