/*
Copyright 2021-2022 New Vector Ltd

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

/* Inter unexpectedly contains various codepoints which collide with emoji, even
   when variation-16 is applied to request the emoji variant.  From eyeballing
   the emoji picker, these are: 20e3, 23cf, 24c2, 25a0-25c1, 2665, 2764, 2b06, 2b1c.
   Therefore we define a unicode-range to load which excludes the glyphs
   (to avoid having to maintain a fork of Inter). */

@import "normalize.css/normalize.css";
@import "@vector-im/compound-design-tokens/assets/web/css/compound-design-tokens.css";
@import "@vector-im/compound-web/dist/style.css";

:root {
  --font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI",
    "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans",
    "Helvetica Neue", sans-serif;
  --inter-unicode-range: U+0000-20e2, U+20e4-23ce, U+23d0-24c1, U+24c3-259f,
    U+25c2-2664, U+2666-2763, U+2765-2b05, U+2b07-2b1b, U+2b1d-10FFFF;

  --font-scale: 1;
  --font-size-micro: calc(10px * var(--font-scale));
  --font-size-caption: calc(12px * var(--font-scale));
  --font-size-body: calc(15px * var(--font-scale));
  --font-size-subtitle: calc(18px * var(--font-scale));
  --font-size-title: calc(24px * var(--font-scale));
  --font-size-headline: calc(32px * var(--font-scale));

  --cpd-color-border-accent: var(--cpd-color-green-1100);
  /* These colors are needed during the transitionary period between the old and
  new Compound design systems, but should be removed ASAP */
  --stopgap-color-on-solid-accent: var(--cpd-color-bg-canvas-default);
  --stopgap-background-85: rgba(255, 255, 255, 0.85);
  --stopgap-bgColor3: #444;

  /* The distance to inset non-full-width content from the edge of the window
  along the inline axis */
  --inline-content-inset: max(var(--cpd-space-4x), calc((100vw - 1180px) / 2));
}

.cpd-theme-dark {
  --stopgap-color-on-solid-accent: var(--cpd-color-text-primary);
  --stopgap-background-85: rgba(16, 19, 23, 0.85);
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  unicode-range: var(--inter-unicode-range);
  src: url("/fonts/Inter/Inter-Regular.woff2") format("woff2"),
    url("/fonts/Inter/Inter-Regular.woff") format("woff");
}

@font-face {
  font-family: "Inter";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  unicode-range: var(--inter-unicode-range);
  src: url("/fonts/Inter/Inter-Italic.woff2") format("woff2"),
    url("/fonts/Inter/Inter-Italic.woff") format("woff");
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  unicode-range: var(--inter-unicode-range);
  src: url("/fonts/Inter/Inter-Medium.woff2") format("woff2"),
    url("/fonts/Inter/Inter-Medium.woff") format("woff");
}

@font-face {
  font-family: "Inter";
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  unicode-range: var(--inter-unicode-range);
  src: url("/fonts/Inter/Inter-MediumItalic.woff2") format("woff2"),
    url("/fonts/Inter/Inter-MediumItalic.woff") format("woff");
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  unicode-range: var(--inter-unicode-range);
  src: url("/fonts/Inter/Inter-SemiBold.woff2") format("woff2"),
    url("/fonts/Inter/Inter-SemiBold.woff") format("woff");
}

@font-face {
  font-family: "Inter";
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  unicode-range: var(--inter-unicode-range);
  src: url("/fonts/Inter/Inter-SemiBoldItalic.woff2") format("woff2"),
    url("/fonts/Inter/Inter-SemiBoldItalic.woff") format("woff");
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  unicode-range: var(--inter-unicode-range);
  src: url("/fonts/Inter/Inter-Bold.woff2") format("woff2"),
    url("/fonts/Inter/Inter-Bold.woff") format("woff");
}

@font-face {
  font-family: "Inter";
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  unicode-range: var(--inter-unicode-range);
  src: url("/fonts/Inter/Inter-BoldItalic.woff2") format("woff2"),
    url("/fonts/Inter/Inter-BoldItalic.woff") format("woff");
}

body {
  background-color: var(--cpd-color-bg-canvas-default);
  color: var(--cpd-color-text-primary);
  color-scheme: dark;
  margin: 0;
  font-family: var(--font-family);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

html,
body,
#root {
  height: 100%;
}

#root {
  display: flex;
  flex-direction: column;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
a {
  margin-top: 0;
}

/* Headline Semi Bold */
h1 {
  font-weight: 600;
  font-size: var(--font-size-headline);
}

/* Title */
h2 {
  font-weight: 600;
  font-size: var(--font-size-title);
}

/* Subtitle */
h3 {
  font-weight: 600;
  font-size: var(--font-size-subtitle);
}

/* Body Semi Bold */
h4 {
  font-weight: 600;
  font-size: var(--font-size-body);
}

h1,
h2,
h3 {
  line-height: 1.2;
}

/* Body */
p {
  font-size: var(--font-size-body);
  line-height: var(--font-size-title);
}

a {
  color: var(--cpd-color-text-action-accent);
  text-decoration: none;
}

a:hover,
a:active {
  opacity: 0.8;
}

hr {
  width: calc(100% - 24px);
  border: none;
  border-top: 1px solid var(--cpd-color-border-interactive-secondary);
  color: var(--cpd-color-border-interactive-secondary);
  overflow: visible;
  text-align: center;
  height: 5px;
  font-weight: 600;
  font-size: var(--font-size-body);
  line-height: 24px;
  margin: 0 12px;
}

summary {
  font-size: var(--font-size-body);
}

details > :not(summary) {
  margin-left: var(--font-size-body);
}

details[open] > summary {
  margin-bottom: var(--font-size-body);
}

#root > [data-overlay-container] {
  position: relative;
  height: 100%;
}

/* normalize.css sets the focus rings on buttons in Firefox to an unusual custom
outline, which is inconsistent with our other components and is not sufficiently
visible to be accessible. This resets it back to 'auto'. */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: auto;
}
