@import url("https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap");

:root {
  /** Base colors */
  --dark-a0: #121218;
  --light-a0: #ebebff;
  --base: #0e0e11;
  --s-base: #18181b;

  /** Theme primary colors */
  --primary-a0: #9fa3e3;
  --primary-a10: #aaade6;
  --primary-a20: #b5b7e9;
  --primary-a30: #c0c1ed;
  --primary-a40: #cacbf0;
  --primary-a50: #d5d5f3;

  /** Theme surface colors */
  --surface-tonal-a0: #0a0a0a;
  --surface-tonal-a10: #232323;
  --surface-tonal-a20: #3a3a3a;
  --surface-tonal-a30: #535353;
  --surface-tonal-a40: #6d6d6d;
  --surface-tonal-a50: #888888;

  /** Theme tonal surface colors */
  --surface-tonal-a0: #1a1a1f;
  --surface-tonal-a10: #2f2f34;
  --surface-tonal-a20: #45454a;
  --surface-tonal-a30: #5d5d61;
  --surface-tonal-a40: #767679;
  --surface-tonal-a50: #909093;

  /** Theme neutral colors */
  --c-a0: #fff;
  --c-a10: #e0e0e0;
  --c-a20: #c0c0c0;
  --c-a30: #a0a0a0;
  --c-a40: #808080;
  --c-a50: #606060;
  --c-a60: #505050;
  --c-a70: #404040;
  --c-a80: #303030;
  --c-a90: #202020;
  --c-a100: #101010;

  /** Theme specs */
  --gap: 1rem;
  --radius: 1rem;
  --opacity: 0.05;
  --transition: 0.2s ease-in-out;
  --frosted-bg: rgba(255, 255, 255, var(--opacity));
  --frosted-border: rgba(255, 255, 255, 0.3);
  --frosted-shadow: rgba(0, 0, 0, 0.4);
  --frosted-glow: rgba(255, 255, 255, 0.4);
  --text-color: #fff;
}

* {
  font-family: "Rubik", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}

body {
  background-color: var(--base);
  color: var(--text-color);
  overflow: auto;
  scrollbar-width: thin;
}

body::-webkit-scrollbar {
  display: none;
}

sup {
  font-size: 0.6rem;
  vertical-align: super;
  color: var(--c-a20);
}

#toast-container {
  position: fixed;
  top: var(--gap);
  left: var(--gap);
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.toast {
  background: var(--frosted-bg);
  border: 1px solid var(--frosted-border);
  border-radius: var(--radius);
  box-shadow: 0 0 1.2rem var(--frosted-shadow);
  backdrop-filter: blur(2rem);
  -webkit-backdrop-filter: blur(2rem);
  padding: 12px 20px;
  font-weight: 500;
  color: var(--text-color);
  border-right: 8px solid var(--frosted-border);
  min-width: 250px;
  max-width: 300px;
  overflow: hidden;
}

.toast.success .toast-progress {
  background-color: #28a745;
  border-right: 6px solid #28a745 !important;
}
.toast.error .toast-progress {
  background-color: #dc3545;
  border-right: 6px solid #dc3545 !important;
}
.toast.info .toast-progress {
  background-color: #17a2b8;
  border-right: 6px solid #17a2b8 !important;
}

.toast-progress {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 4px;
  background-color: #f90; /* Match 244Crew accent */
  width: 100%;
  animation: shrinkProgress linear forwards;
  margin: 0 -1px -1px -1px;
}

@keyframes shrinkProgress {
  from {
    width: 100%;
  }
  to {
    width: 0%;
  }
}

@keyframes slideIn {
  from {
    transform: translateX(-100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes fadeOut {
  to {
    opacity: 0;
    transform: translateX(-100%);
  }
}
