*,*::before,*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  color-scheme: dark;
}

body {
  margin: 0;
  font-family: var(--rst-ui-font);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1, "ss01" 1;
  background: var(--rst-ui-bg);
}

button,input,select,textarea {
  font: inherit;
}

body:is(.home-mode,.planning-mode,.employee-schedule-mode,.employee-time-mode,.actuals-mode,.team-mode,.restaurant-mode) {
  --rst-ui-accent: var(--rst-blue);
  --rst-ui-accent-dark: var(--rst-indigo);
  color: var(--rst-ui-text);
  overflow: hidden;
  background: var(--rst-ui-bg);
}

/* Shared inline SVG icon class — used across buttons, action buttons, topbar
   actions and anywhere an SVG needs consistent stroke rendering. */
.btn-svg {
  display: block;
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
  color: currentColor;
}

.btn-svg :is(path,circle,rect,line,polyline,polygon) {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Shared accessibility polish. */
:where(button,[role="button"],summary,input,select,textarea):focus-visible {
  outline: 2px solid var(--rst-state-info-border);
  outline-offset: 3px;
}

:where(button,[role="button"],summary) {
  -webkit-tap-highlight-color: transparent;
}

body.logged-out .app-topbar-main,body.logged-out .app-shell {
  display: none;
}

body:not(.logged-out) .brand-page {
  display: none;
}

.page {
  display: none;
}

.page.active {
  display: flex;
}
