/* Status Bar */

.status-bar {
  display: flex;
  align-items: center;
  gap: var(--badge-spacing);
  padding: var(--box-padding);
}

.status-bar[hidden] {
  display: none;
}

.status-indicator {
  width: 0.5em;
  height: 0.5em;
  border-radius: 50%;
  flex-shrink: 0;
}

.status-text {
  flex: 1;
}

.status-close {
  margin-left: auto;
  opacity: var(--semi-transparent);
  font-size: var(--font-size);
}

.status-close:hover {
  opacity: 1;
}

.status-bar.status-none .status-indicator {
  background: var(--secondary);
}

.status-bar.status-minor .status-indicator {
  background: var(--warning);
}

.status-bar.status-major .status-indicator,
.status-bar.status-critical .status-indicator {
  background: var(--dangerous);
}

.status-bar.status-minor,
.status-bar.status-major,
.status-bar.status-critical {
  background: rgb(from var(--warning) r g b / .1);
}

.status-bar.status-major,
.status-bar.status-critical {
  background: rgb(from var(--dangerous) r g b / .1);
}

/* Toast Notifications */

#toastContainer {
  position: fixed;
  left: 50%;
  translate: -50% 0;
  bottom: calc(var(--page-spacing) * 2);
  z-index: 9999;
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
  gap: var(--badge-spacing);
  pointer-events: none;
  width: calc(min(100%, var(--page-width)) - var(--page-spacing));
}

.toast {
  pointer-events: auto;
  padding: var(--box-padding);
  border-radius: var(--border-radius);
  background: color-mix(in srgb, var(--f1-bg), transparent 10%);
  color: var(--text-color);
  cursor: pointer;
  opacity: 0;
  transition: opacity var(--transition-duration);
}

.toast-visible {
  opacity: 1;
}

.toast i {
  margin-right: var(--badge-spacing);
}

.toast-success i { color: var(--primary); }
.toast-error i { color: var(--dangerous); }
.toast-info i { color: var(--secondary); }

/* Layout */

header {
  padding: var(--box-padding);
  display: flex;
  align-items: center;
  gap: var(--box-spacing);
  flex-shrink: 0;
}

#app {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  overflow: hidden;
}

.page {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.page-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  overflow-y: auto;
  flex: 1;
}

header,
.chat-page .page-content,
.page-content:not(.chat-page .page-content) > * {
  width: var(--page-width);
  max-width: 100%;
  align-self: center;
  transition: width var(--transition-duration);
}
