@use './app/partials/screen';

@font-face {
  font-family: Twemoji;
  src: url('../public/font/Twemoji.Mozilla.v15.1.0.woff2'),
    url('../public/font/Twemoji.Mozilla.v15.1.0.ttf');
  font-display: swap;
}

:root {
  /* background color | --bg-[background type]: value */
  --bg-surface: #ffffff;
  --bg-surface-transparent: #ffffff00;
  --bg-surface-low: #f6f6f6;
  --bg-surface-low-transparent: #f6f6f600;
  --bg-surface-extra-low: #f6f6f6;
  --bg-surface-extra-low-transparent: #f6f6f600;
  --bg-surface-hover: rgba(0, 0, 0, 3%);
  --bg-surface-active: rgba(0, 0, 0, 5%);
  --bg-surface-border: rgba(0, 0, 0, 6%);

  --bg-primary: rgb(18, 69, 168);
  --bg-primary-hover: rgba(18, 69, 168, 80%);
  --bg-primary-active: rgba(18, 69, 168, 70%);
  --bg-primary-border: rgba(18, 69, 168, 38%);

  --bg-positive: rgb(1, 115, 67);
  --bg-positive-hover: rgba(1, 115, 67, 8%);
  --bg-positive-active: rgba(1, 115, 67, 15%);
  --bg-positive-border: rgba(1, 115, 67, 40%);

  --bg-caution: rgb(134, 67, 0);
  --bg-caution-hover: rgba(134, 67, 0, 8%);
  --bg-caution-active: rgba(134, 67, 0, 15%);
  --bg-caution-border: rgba(134, 67, 0, 40%);

  --bg-danger: rgb(157, 15, 15);
  --bg-danger-hover: rgba(157, 15, 15, 5%);
  --bg-danger-active: rgba(157, 15, 15, 10%);
  --bg-danger-border: rgba(157, 15, 15, 20%);

  --bg-tooltip: #353535;
  --bg-badge: #989898;
  --bg-ping: hsla(137deg, 100%, 68%, 40%);
  --bg-ping-hover: hsla(137deg, 100%, 68%, 50%);
  --bg-divider: hsla(0, 0%, 0%, 0.1);

  /* text color | --tc-[background type]-[priority]: value */
  --tc-surface-high: #000000;
  --tc-surface-normal: rgba(0, 0, 0, 78%);
  --tc-surface-normal-low: rgba(0, 0, 0, 60%);
  --tc-surface-low: rgba(0, 0, 0, 48%);

  --tc-primary-high: #ffffff;
  --tc-primary-normal: rgba(255, 255, 255, 68%);
  --tc-primary-low: rgba(255, 255, 255, 40%);

  --tc-positive-high: var(--bg-positive);
  --tc-positive-normal: rgb(1, 115, 67, 80%);
  --tc-positive-low: rgb(1, 115, 67, 60%);

  --tc-caution-high: var(--bg-caution);
  --tc-caution-normal: rgb(134, 67, 0, 80%);
  --tc-caution-low: rgb(134, 67, 0, 60%);

  --tc-danger-high: var(--bg-danger);
  --tc-danger-normal: rgba(157, 15, 15, 88%);
  --tc-danger-low: rgba(157, 15, 15, 60%);

  --tc-code: #e62498;
  --tc-link: hsl(213deg 100% 45%);
  --tc-tooltip: white;
  --tc-badge: white;

  /* system icons | --ic-[background type]-[priority]: value */
  --ic-surface-high: #272727;
  --ic-surface-normal: #626262;
  --ic-surface-low: #7c7c7c;
  --ic-primary-high: #ffffff;
  --ic-primary-normal: #ffffff;
  --ic-positive-high: rgba(1, 115, 67);
  --ic-positive-normal: rgba(1, 115, 67, 80%);
  --ic-caution-high: rgba(134, 67, 0);
  --ic-caution-normal: rgba(134, 67, 0, 80%);
  --ic-danger-high: rgba(157, 15, 15);
  --ic-danger-normal: rgba(157, 15, 15, 0.7);

  /* user mxid colors */
  --mx-uc-1: hsl(208, 100%, 45%);
  --mx-uc-2: hsl(302, 100%, 30%);
  --mx-uc-3: hsl(163, 100%, 30%);
  --mx-uc-4: hsl(343, 100%, 45%);
  --mx-uc-5: hsl(24, 100%, 45%);
  --mx-uc-6: hsl(181, 100%, 30%);
  --mx-uc-7: hsl(242, 100%, 45%);
  --mx-uc-8: hsl(94, 100%, 35%);

  /* system icon size | -ic-[size]: value */
  --ic-large: 38px;
  --ic-normal: 24px;
  --ic-small: 20px;
  --ic-extra-small: 18px;

  /* avatar size */
  --av-large: 80px;
  --av-normal: 42px;
  --av-small: 36px;
  --av-extra-small: 24px;

  /* shadow and overlay */
  --bg-overlay: rgba(0, 0, 0, 20%);
  --bg-overlay-low: rgba(0, 0, 0, 50%);

  --bs-popup: 0 0 16px rgba(0, 0, 0, 10%);

  --bs-surface-border: inset 0 0 0 1px var(--bg-surface-border);
  --bs-surface-outline: 0 0 0 2px var(--bg-surface-border);

  --bs-primary-border: inset 0 0 0 1px var(--bg-primary-border);
  --bs-primary-outline: 0 0 0 2px var(--bg-primary-border);

  --bs-positive-border: inset 0 0 0 1px var(--bg-positive-border);
  --bs-positive-outline: 0 0 0 2px var(--bg-positive-border);

  --bs-caution-border: inset 0 0 0 1px var(--bg-caution-border);
  --bs-caution-outline: 0 0 0 2px var(--bg-caution-border);

  --bs-danger-border: inset 0 0 0 1px var(--bg-danger-border);
  --bs-danger-outline: 0 0 0 2px var(--bg-danger-border);

  /* border */
  --bo-radius: 8px;

  /* font styles: font-size, letter-spacing, line-hight */
  --fs-h1: 36px;
  --ls-h1: -1.5px;
  --lh-h1: 38px;

  --fs-h2: 24px;
  --ls-h2: -0.5px;
  --lh-h2: 30px;

  --fs-s1: 18px;
  --ls-s1: -0.2px;
  --lh-s1: 24px;

  --fs-b1: 16px;
  --ls-b1: 0.1px;
  --lh-b1: 24px;

  --fs-b2: 14px;
  --ls-b2: 0.2px;
  --lh-b2: 20px;

  --fs-b3: 12px;
  --ls-b3: 0px;
  --lh-b3: 16px;

  /* font-weight */
  --fw-light: 300;
  --fw-normal: 420;
  --fw-medium: 500;
  --fw-bold: 700;

  /* spacing | --sp-[space]: value */
  --sp-none: 0px;
  --sp-ultra-tight: 4px;
  --sp-extra-tight: 8px;
  --sp-tight: 12px;
  --sp-normal: 16px;
  --sp-loose: 20px;
  --sp-extra-loose: 32px;

  /* other */
  --border-width: 1px;
  --header-height: 54px;
  --navigation-sidebar-width: calc(64px + var(--border-width));
  --navigation-drawer-width: calc(280px + var(--border-width));
  --navigation-width: calc(var(--navigation-sidebar-width) + var(--navigation-drawer-width));
  --people-drawer-width: calc(268px - var(--border-width));

  --popup-window-drawer-width: 280px;

  @include screen.smallerThan(tabletBreakpoint) {
    --navigation-drawer-width: calc(240px + var(--border-width));
    --people-drawer-width: calc(256px - var(--border-width));
    --popup-window-drawer-width: 240px;
  }

  /* transition curves */
  --fluid-push: cubic-bezier(0, 0.8, 0.67, 0.97);
  --fluid-slide-down: cubic-bezier(0.02, 0.82, 0.4, 0.96);
  --fluid-slide-up: cubic-bezier(0.13, 0.56, 0.25, 0.99);

  --font-emoji: 'Twemoji_DISABLED';
  --font-primary: 'InterVariable', var(--font-emoji), sans-serif;
  --font-secondary: 'InterVariable', var(--font-emoji), sans-serif;
}

.silver-theme {
  /* background color | --bg-[background type]: value */
  --bg-surface: hsl(0, 0%, 95%);
  --bg-surface-transparent: hsla(0, 0%, 95%, 0);
  --bg-surface-low: hsl(0, 0%, 91%);
  --bg-surface-low-transparent: hsla(0, 0%, 91%, 0);
  --bg-surface-extra-low: hsl(0, 0%, 91%);
  --bg-surface-extra-low-transparent: hsla(0, 0%, 91%, 0);
}

.dark-theme,
.butter-theme {
  /* background color | --bg-[background type]: value */
  --bg-surface: #262626;
  --bg-surface-transparent: #26262600;
  --bg-surface-low: #1a1a1a;
  --bg-surface-low-transparent: #1a1a1a00;
  --bg-surface-extra-low: #1a1a1a;
  --bg-surface-extra-low-transparent: #1a1a1a00;
  --bg-surface-hover: #333333;
  --bg-surface-active: #404040;
  --bg-surface-border: #404040;

  --bg-primary: rgb(189, 182, 236);
  --bg-primary-hover: rgba(189, 182, 236, 0.8);
  --bg-primary-active: rgba(189, 182, 236, 70%);
  --bg-primary-border: rgba(189, 182, 236, 38%);

  --bg-positive: rgb(133, 224, 186);
  --bg-positive-hover: rgba(133, 224, 186, 8%);
  --bg-positive-active: rgba(133, 224, 186, 15%);
  --bg-positive-border: rgba(133, 224, 186, 40%);

  --bg-caution: rgb(227, 186, 145);
  --bg-caution-hover: rgba(227, 186, 145, 8%);
  --bg-caution-active: rgba(227, 186, 145, 15%);
  --bg-caution-border: rgba(227, 186, 145, 40%);

  --bg-danger: rgb(230, 157, 157);
  --bg-danger-hover: rgba(230, 157, 157, 5%);
  --bg-danger-active: rgba(230, 157, 157, 10%);
  --bg-danger-border: rgba(230, 157, 157, 20%);

  --bg-tooltip: #000;
  --bg-badge: hsl(0, 0%, 75%);
  --bg-ping: hsla(137deg, 100%, 38%, 40%);
  --bg-ping-hover: hsla(137deg, 100%, 38%, 50%);
  --bg-divider: hsla(0, 0%, 100%, 0.1);

  /* text color | --tc-[background type]-[priority]: value */
  --tc-surface-high: rgba(255, 255, 255, 98%);
  --tc-surface-normal: rgba(255, 255, 255, 94%);
  --tc-surface-normal-low: rgba(255, 255, 255, 60%);
  --tc-surface-low: rgba(255, 255, 255, 58%);

  --tc-primary-high: rgb(44, 40, 67);
  --tc-primary-normal: rgba(44, 40, 67, 0.68);
  --tc-primary-low: rgba(44, 40, 67, 0.4);

  --tc-positive-high: var(--bg-positive);
  --tc-positive-normal: rgb(133, 224, 186, 80%);
  --tc-positive-low: rgb(133, 224, 186, 60%);

  --tc-caution-high: var(--bg-caution);
  --tc-caution-normal: rgb(227, 186, 145, 80%);
  --tc-caution-low: rgb(227, 186, 145, 60%);

  --tc-danger-high: var(--bg-danger);
  --tc-danger-normal: rgba(230, 157, 157, 88%);
  --tc-danger-low: rgba(230, 157, 157, 60%);

  --tc-code: #e565b1;
  --tc-link: hsl(213deg 100% 80%);
  --tc-badge: black;

  /* system icons | --ic-[background type]-[priority]: value */
  --ic-surface-high: rgb(255, 255, 255);
  --ic-surface-normal: rgba(255, 255, 255, 84%);
  --ic-surface-low: rgba(255, 255, 255, 64%);
  --ic-primary-high: var(--tc-primary-high);
  --ic-primary-normal: var(--tc-primary-high);
  --ic-primary-low: var(--tc-primary-high);
  --ic-positive-high: rgba(133, 224, 186);
  --ic-positive-normal: rgba(133, 224, 186, 80%);
  --ic-caution-high: rgba(227, 186, 145);
  --ic-caution-normal: rgba(227, 186, 145, 80%);
  --ic-danger-high: rgba(230, 157, 157);
  --ic-danger-normal: rgba(230, 157, 157, 0.7);

  --mx-uc-1: hsl(208, 100%, 75%);
  --mx-uc-2: hsl(301, 100%, 80%);
  --mx-uc-3: hsl(163, 100%, 70%);
  --mx-uc-4: hsl(343, 100%, 75%);
  --mx-uc-5: hsl(24, 100%, 70%);
  --mx-uc-6: hsl(181, 100%, 60%);
  --mx-uc-7: hsl(243, 100%, 80%);
  --mx-uc-8: hsl(94, 100%, 80%);

  /* shadow and overlay */
  --bg-overlay: rgba(0, 0, 0, 60%);
  --bg-overlay-low: rgba(0, 0, 0, 80%);

  --bs-popup: 0 0 16px rgba(0, 0, 0, 25%);

  --bs-surface-border: inset 0 0 0 1px var(--bg-surface-border);
  --bs-surface-outline: 0 0 0 2px var(--bg-surface-border);

  --bs-primary-border: inset 0 0 0 1px var(--bg-primary-border);
  --bs-primary-outline: 0 0 0 2px var(--bg-primary-border);

  /* font styles: font-size, letter-spacing, line-hight */
  --fs-h1: 35.6px;

  --fs-h2: 23.6px;

  --fs-s1: 17.6px;

  --fs-b1: 14.6px;
  --ls-b1: 0.14px;

  --fs-b2: 13.2px;

  --fs-b3: 11.2px;

  /* override normal font weight for dark mode */
  --fw-normal: 350;
  --fw-medium: 450;
  --fw-bold: 550;

  --font-secondary: 'InterVariable', var(--font-emoji), sans-serif;
}

.butter-theme {
  /* background color | --bg-[background type]: value */
  --bg-surface: #262621;
  --bg-surface-transparent: #26262100;
  --bg-surface-low: #1a1916;
  --bg-surface-low-transparent: #1a191600;
  --bg-surface-extra-low: #1a1916;
  --bg-surface-extra-low-transparent: #1a1916;
  --bg-surface-hover: #33322c;
  --bg-surface-active: #403f38;
  --bg-surface-border: #403f38;

  --bg-badge: #c4c1ab;

  /* text color | --tc-[background type]-[priority]: value */
  --tc-surface-high: rgb(255, 251, 222);
  --tc-surface-normal: rgba(255, 251, 222, 94%);
  --tc-surface-normal-low: rgba(255, 251, 222, 60%);
  --tc-surface-low: rgba(255, 251, 222, 58%);

  /* system icons | --ic-[background type]-[priority]: value */
  --ic-surface-high: rgb(255, 251, 222);
  --ic-surface-normal: rgba(255, 251, 222, 84%);
  --ic-surface-low: rgba(255, 251, 222, 64%);
}

.font-primary {
  font-family: var(--font-primary);

  /* override font styles for primary font */
  --fs-h1: 36px;
  --ls-h1: -1.5px;
  --lh-h1: 38px;

  --fs-h2: 24px;
  --ls-h2: -0.5px;
  --lh-h2: 30px;

  --fs-s1: 18px;
  --ls-s1: -0.2px;
  --lh-s1: 24px;

  --fs-b1: 16px;
  --ls-b1: 0.1px;
  --lh-b1: 24px;

  --fs-b2: 14px;
  --ls-b2: 0.2px;
  --lh-b2: 20px;

  --fs-b3: 12px;
  --ls-b3: 0px;
  --lh-b3: 16px;

  --fw-light: 300;
  --fw-normal: 400;
  --fw-medium: 500;
  --fw-bold: 600;
}

html {
  height: 100%;
  overflow: hidden;
}

body {
  margin: 0;
  padding: 0;
  height: 100%;
  font-family: var(--font-secondary);
  font-size: 16px;
  font-weight: var(--fw-normal);
  background-color: var(--bg-surface-low);

  /*Why font-variant-ligatures => https://github.com/rsms/inter/issues/222 */
  font-variant-ligatures: no-contextual;
}
#root {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
}

*,
*::before,
*::after {
  box-sizing: border-box;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-tap-highlight-color: transparent;
}
a {
  color: var(--tc-link);
  text-decoration: none;
  &:hover {
    text-decoration: underline;
  }
}

[data-mx-spoiler][aria-pressed='true'] a {
  color: transparent;
  pointer-events: none;
}

b {
  font-weight: var(--fw-medium);
}
label {
  margin: 0;
  padding: 0;
}
button,
textarea {
  margin: 0;
  padding: 0;
  background-color: transparent;
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  border: none;
}
button {
  max-width: 100%;
  text-transform: none;
  text-align: inherit;
  overflow: visible;
  -webkit-appearance: button;
}
textarea,
input,
input[type],
input[type='text'],
input[type='username'],
input[type='password'],
input[type='email'],
input[type='checkbox'] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
input[type='checkbox'] {
  margin: 0;
  padding: 0;
  width: 20px;
  height: 20px;
  border-radius: calc(var(--bo-radius) / 2);
  box-shadow: var(--bs-primary-border);
  background-color: var(--bg-surface);
  cursor: pointer;
  @extend .flex--center;

  &:checked {
    background-color: var(--bg-primary);
    &::before {
      content: '';
      display: inline-block;
      width: 12px;
      height: 6px;
      border: 6px solid white;
      border-width: 0 0 3px 3px;
      transform: rotateZ(-45deg) translate(1px, -1px);
    }
  }
}

textarea {
  color: inherit;
  word-spacing: inherit;
}
.noselect {
  -webkit-touch-callout: none; /* iOS Safari */
  -webkit-user-select: none; /* Safari */
  -khtml-user-select: none; /* Konqueror HTML */
  -moz-user-select: none; /* Old versions of Firefox */
  -ms-user-select: none; /* Internet Explorer/Edge */
  user-select: none; /* Non-prefixed version, currently
                                  supported by Chrome, Edge, Opera and Firefox */
}

audio:not([controls]) {
  display: none !important;
}

.flex--center {
  display: flex;
  justify-content: center;
  align-items: center;
}
