/*  RESET  */
:root {
  --color-primary: #2f4f94;
  --color-secondary: #6c757d;
  --color-success: #28a745;
  --color-info: #17a2b8;
  --color-warning: #ffc107;
  --color-danger: #dc3545;
  --color-light: #f8f9fa;
  --color-dark: #343a40;
  --color-border: #ccc;
}

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

html {
  font-size: 62.5%;
  scroll-behavior: smooth;
}

a {
  color: inherit;
  text-decoration: none;
}

h1,
h2,
h3,
p,
pre {
  margin: 0;
}

img {
  max-width: 100%;
  height: auto;
  display: inline-block;
  vertical-align: middle;
}

ul[class],
ol[class] {
  margin: 0;
  padding: 0;
}

ul[class] {
  list-style: none;
}

ol[class] {
  list-style-position: inside;
}

/*  UTILITY  */
.separate > * + * {
  margin-top: 2rem;
}

.ellipsis {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/*  BODY  */
body {
  margin: 0;
  height: 100vh;
  height: 100dvh;
  background-color: #d9f2ff;
  font-family: Verdana, sans-serif;
  font-size: 1.6rem;
  font-weight: 400;
  color: #484848;
  line-height: 1;
  letter-spacing: 0;
  -webkit-text-size-adjust: 100%;
}

a,
button,
input,
select,
textarea {
  font: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  vertical-align: middle;
  color: inherit;
}

button,
input,
select,
textarea {
  padding: 1rem 2rem;
  border: 0;
  outline: none;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

.input-group {
  display: flex;
  width: 100%;
  border: 1px solid var(--color-border);
  border-radius: 1rem;
  overflow: hidden;
}

.input-group input {
  flex: 1;
  min-width: 0;
}

.input-group button {
  flex: 0 0 auto;
  min-width: 0;
}

.btn {
  background-color: var(--color-primary);
  color: #fff;
  cursor: pointer;
}