:root{
  --primary-color: #44475A;
  --primary-shadow-color: #282A36;
  --secondary-color: #F1FA8C;

  --primary-text-color: #F8F8F2;

  --hue: 223;
  --bg: hsl(var(--hue),10%,90%);
  --fg: hsl(var(--hue),10%,10%);
  --transDur: 0.15s;
}

h1{
  color: var(--secondary-color);
  font-size: 3.5rem;
  text-align: center;
}

h2{
  margin: 0;
  font-size: 2.5rem;
}

h3{
  margin: 1rem 0 .4rem 0;
  font-size: 1.8em;
}

body{
  display: flex;
  flex-flow: column;
  align-items: center;

  height: calc(100vh - 6rem);
  width: calc(100vw - 6rem);
  padding: 2rem;
  margin: 0;

  background-color: var(--primary-shadow-color);
  
  #card{
    border-radius: 1rem;
    background-color: var(--primary-color);
    padding: 2rem;
    border: #000 1px solid; 
    max-width: 70vw;
    min-width: 60vw;
    height: fit-content;

    #generator{
      padding: 1rem;
    }

    .text-Indicator{
      color: var(--primary-text-color);
    }

    #origin{
      width: 100%;
      box-sizing: border-box;
    }

    input, button{
      border-radius: 0.5rem;
      border: var(--primary-shadow-color) 2px solid;
      font-size: 1.1rem;
      padding: 0.4rem;
      box-sizing: border-box;
      background: var(--primary-color);    

      color: var(--primary-text-color);
      

      &#domain{
        max-width: 6rem;
        text-align: center;
      }
    }

    .one-line{
      color: #F8F8F2;
      font-size: 1.5rem;
      display: flex;
      align-items: center;
      gap: 0.3rem;
      flex-flow: row nowrap;

      * {
        flex-grow: 0;
      }

      > label {
        box-sizing: border-box;
      }

      #domain {
        width: fit-content;
        max-width: none;
      }

      #wanted {
        flex-grow: 1;
      }

      #wanted #short {
        width: 100%;
      }

      
    }

    #execute{
      margin-top: 1.2rem;
      width: 100%;
      background-color: var(--secondary-color);
      color: var(--primary-shadow-color);
      font-size: 1.5rem;
    }

    button{
      cursor: pointer;
    }
  }

  #footer{
    position: absolute;
    bottom: 0;
    color: var(--secondary-color);
    padding-bottom: 5px;
  }
}

@media (max-width: 600px) {
  h1{
    font-size: 2.5rem;
  }
  
  h2{
    margin: 0;
    font-size: 2rem;
  }
  
  h3{
    margin: .7rem 0 .4rem 0;
    font-size: 1.3rem;
  }

  body{
    height: calc(100vh - 2rem);
    width: calc(100vw - 2rem);
    padding: 1rem;
  }

  .one-line {
    > label:first-child, span {
      display: none;
    }

    #wanted, #short {
      box-sizing: border-box;
    }
  }
}

/* ----------------------------------------------------------------------------- */

.notification {
  padding-bottom: 0.75em;
  position: fixed;
  top: 1.5em;
  right: 1.5em;
  width: 20em;
  max-width: calc(100% - 3em);
  transition: transform 0.15s ease-out;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;

  font-size: 1.5em;

  color: var(--primary-text-color);
}
.notification__box,
.notification__content,
.notification__btns {
  display: flex;
}
.notification__box,
.notification__content {
  align-items: center;
}
.notification__box {
  animation: flyIn 0.3s ease-out;
  background-color: var(--primary-color);
  border-radius: 0.75em;
  height: 4em;
  transition:
    background-color var(--transDur),
    color var(--transDur);
}
.notification--out .notification__box {
  animation: flyOut 0.3s ease-out forwards;
}
.notification__content {
  padding: 0.375em 1em;
  width: 100%;
  height: 100%;
}
.notification__icon {
  flex-shrink: 0;
  margin-right: 0.75em;
  width: 2em;
  height: 2em;
}
.notification__icon-svg {
  width: 100%;
  height: auto;
}
.notification__text {
  line-height: 1.333;
}
.notification__text-title {
  font-size: 1em;
  font-weight: bold;
}
.notification__text-subtitle {
  font-size: 0.75em;
  opacity: 0.75;
}
.notification__btns {
  box-shadow: -1px 0 0 hsla(var(--hue),10%,10%,0.15);
  flex-direction: column;
  flex-shrink: 0;
  min-width: 4em;
  height: 100%;
  transition: box-shadow var(--transDur);
}
.notification__btn {
  background-color: transparent;
  color: var(--primary-text-color);
  border: none;
  box-shadow: 0 0 0 hsla(var(--hue),10%,10%,0.5) inset;
  font-size: 0.7em;
  line-height: 1;
  font-weight: 500;
  height: 100%;
  padding: 0 0.5rem;
  transition:
    background-color var(--transDur),
    color var(--transDur);
  -webkit-appearance: none;
  appearance: none;
  -webkit-tap-highlight-color: transparent;
}
.notification__btn-text {
  display: inline-block;
  pointer-events: none;
}
.notification__btn:first-of-type {
  border-radius: 0 0.75rem 0 0;
}
.notification__btn:last-of-type {
  border-radius: 0 0 0.75rem 0;
}
.notification__btn:only-child {
  border-radius: 0 0.75rem 0.75rem 0;
}
.notification__btn + .notification__btn {
  box-shadow: 0 -1px 0 hsla(var(--hue),10%,10%,0.15);
  font-weight: 400;
}
.notification__btn:active,
.notification__btn:focus {
  background-color: hsl(var(--hue),10%,95%);
}
.notification__btn:focus {
  outline: transparent;
}

@supports selector(:focus-visible) {
  .notification__btn:focus {
    background-color: transparent;
  }
  .notification__btn:focus-visible,
  .notification__btn:active {
    background-color: hsl(var(--hue),10%,95%);
  }
}

/* Dark theme */
@media (prefers-color-scheme: dark) {
  :root {
    --bg: hsl(var(--hue),10%,10%);
    --fg: hsl(var(--hue),10%,90%);
  }
  .notification__box {
    background-color: hsl(var(--hue),10%,30%);
  }
  .notification__btns {
    box-shadow: -1px 0 0 hsla(var(--hue),10%,90%,0.15);
  }
  .notification__btn + .notification__btn {
    box-shadow: 0 -1px 0 hsla(var(--hue),10%,90%,0.15);
  }
  .notification__btn:active,
  .notification__btn:focus {
    background-color: hsl(var(--hue),10%,35%);
  }

  @supports selector(:focus-visible) {
    .notification__btn:focus {
      background-color: transparent;
    }
    .notification__btn:focus-visible,
    .notification__btn:active {
      background-color: hsl(var(--hue),10%,35%);
    }
  }
}

/* Animations */
@keyframes flyIn {
  from {
    transform: translateX(calc(100% + 1.5em));
  }
  to {
    transform: translateX(0);
  }
}
@keyframes flyOut {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(calc(100% + 1.5em));
  }
}