/** Variable and font definitions */

:root {
  /* color definitions */
  --ring-light-blue: rgba(59, 193, 211, 0.3);
  --ring-dark-blue: #003b4e;

  /* main properties */
  --bg-color: #f2f2f2; /* same as macOS client */

  /* navbar properties */
  --navbar-height: 40px;
  --navbar-padding-top: 8px;
  --navbar-padding-bottom: var(--navbar-padding-top);

  /* message bar properties */
  --textarea-max-height: 150px;

  /* button properties */
  --action-icon-color: var(--ring-dark-blue);
  --deactivated-icon-color: #BEBEBE;
  --action-icon-hover-color: var(--ring-light-blue);
  --action-critical-icon-hover-color: rgba(211, 77, 59, 0.3); /* complementary color of ring light blue */
  --action-critical-icon-press-color: rgba(211, 77, 59, 0.5);
  --action-critical-icon-color: #4E1300;
  --non-action-icon-color: #212121;
  --action-icon-press-color: rgba(59, 193, 211, 0.5);

  /* hairline properties */
  --hairline-color: #d9d9d9;
  --hairline-thickness: 0.2px;
}

@font-face {
    font-family: emoji;

    /* Fonts for text outside emoji blocks */
    src: local('Open sans'),
         local('Helvetica'),
         local('Segoe UI'),
         local('sans-serif');
}

@font-face {
    font-family: emoji;

    src: local('Noto Color Emoji'),
         local('Android Emoji'),
         local('Twitter Color Emoji');

    /* Emoji unicode blocks */
    unicode-range: U+1F300-1F5FF, U+1F600-1F64F, U+1F680-1F6FF, U+2600-26FF;
}

/** Body */

body {
  --navbar-size: calc(var(--navbar-height) + var(--navbar-padding-top) + var(--navbar-padding-bottom));
  --messagebar-size: 57px; /* FIXME clean this up */

  margin: 0;
  overflow: hidden;
  background-color: var(--bg-color);
  padding-top: var(--navbar-size);
  padding-bottom: var(--messagebar-size);

  /* disable selection highlight because it looks very bad */
  -webkit-user-select: none;
}

/** Navbar */

.navbar-wrapper {
  /* on top, over everything and full width */
  position: fixed;
  left:0; right:0;
  z-index: 500;
  top: 0;
}

#navbar {
  background-color: var(--bg-color);
  padding-right: 8px;
  padding-left: 8px;
  padding-top: var(--navbar-padding-top);
  padding-bottom: var(--navbar-padding-bottom);
  height: var(--navbar-height);
  overflow: hidden;
  align-items: center;

  /* takes whole width */
  left:0; right:0;

  /* hairline */
  border-bottom: var(--hairline-thickness) solid var(--hairline-color);
}

#navbar.hiddenState {
  visibility: hidden;
}

.svgicon {
  display: block;
  margin: auto;
  height: 100%;
}

.nav-button {
  width: 40px;
  height: 40px;
  align-self: center;
  display: flex;
  cursor: pointer;
  border-radius: 50%;
}

.nav-button.deactivated {
  width: 40px;
  height: 40px;
  align-self: center;
  display: flex;
  border-radius: 50%;
  cursor: auto;
}

.nav-right {
  float: right;
}

.nav-left {
  float: left;
}

#nav-contactid {
  margin: 0px;
  margin-left: 5px;
  padding: 0px;
  height: 100%;
  font-family: emoji;

  /* enable selection (it is globally disabled in the body) */
  -webkit-user-select: auto;
}

#nav-contactid.oneEntry {
  display: flex;
  justify-content: center;
  align-items: center;
}

#nav-contactid-alias {
  font-size: 14px;
  font-weight: bold;
  margin: 5px 0px 3px;
}

#nav-contactid-bestId {
  font-size: 11px;
}

.oneEntry #nav-contactid-bestId {
  visibility: hidden;
}

.action-button svg {
  fill: var(--action-icon-color);
}

.action-button.deactivated svg {
  fill: var(--deactivated-icon-color);
}

.non-action-button svg {
  fill: var(--non-action-icon-color);
}

.non-action-button:hover, .action-button:hover {
  background: var(--action-icon-hover-color);
}

.non-action-button:active, .action-button:active {
  background: var(--action-icon-press-color);
}

.action-button.deactivated:hover, .action-button.deactivated:active {
  background: none;
}

.action-critical-button svg {
  fill: var(--action-critical-icon-color);
}

.action-critical-button:hover {
  background: var(--action-critical-icon-hover-color);
}

.action-critical-button:active {
  background: var(--action-critical-icon-press-color);
}

#navbar #addBannedContactButton, #navbar #addToConversationsButton {
  display: none;
}

#navbar.onBannedState #addToConvButton, #navbar.onBannedState #callButtons, #navbar.onBannedState #addToConversationsButton {
  display: none;
}

#navbar.onBannedState #addBannedContactButton {
  display: flex;
}

/** Invitation bar */

#invitation {
  visibility: hidden;
  background: var(--ring-light-blue);
  position: absolute;
  width: 100%;

  /* hairline */
  border-bottom: var(--hairline-thickness) solid var(--hairline-color);
}

#actions
{
  margin: 10px;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: center;
}

.invitation-button,
.flat-button {
  margin: 5px;
  border: 0;
  border-radius: 5px;
  transition: all 0.3s ease;
  color: #f9f9f9;
  padding: 10px 20px 10px 20px;
  vertical-align: middle;
  cursor: pointer;
}

.button-green {
  background: #27ae60;
}

.button-green:hover {
  background: #1f8b4c;
}

.button-red {
  background: #dc3a37;
}

.button-red:hover {
  background: #b02e2c;
}

#invitation #text h1 {
  font-size: 1.5em;
}

#invitation #text {
  text-align: center;
  width: 90%;
  margin: auto;
  margin-top: 10px;
  font-size: 0.8em;
}

/** Messaging bar */

#sendMessage {
  background-color: var(--bg-color);
  display: flex;
  position: relative;
  padding-right: 10px;
  padding-left: 8px;
  overflow: hidden;
  padding-top: 8px;
  padding-bottom: 8px;
  align-items: center;

  position: fixed;
  left:0; right:0;
  z-index: 500;
  bottom: 0;
  /* hairline */
  border-top: var(--hairline-thickness) solid var(--hairline-color);
}

#sendMessage.hiddenState {
  visibility: hidden;
}

#message {
  font-family: emoji;
  flex: 1;
  background-color: var(--bg-color);
  border: 0;
  overflow-y: scroll;
  color: black;
  max-height: var(--textarea-max-height);
  margin-right: 10px;
  resize: none;

  /* enable selection (it is globally disabled in the body) */
  -webkit-user-select: auto;
}

#message:focus,
#message.focus {
  outline: none;
}

#container[disabled] {
  background-color: #ccc;
}

input[placeholder], [placeholder], *[placeholder] {
    color: #d3d3d3;
}

/** Main chat view */

#container {
  position: relative;
  height: 100%;
  width: 100%;
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  justify-content: flex-end;
}

a:link {
  text-decoration: none;
  color: #0e649b;
  transition: all 0.2s ease-in-out;
  border-bottom: dotted 1px;
}

a:hover {
  border: 0;
}

#messages {
  position: relative;
  z-index: 0;
  width: 100%;
  overflow-y: scroll;
  height: auto;
  padding-top: 0.5em;
  padding-bottom: 1em;
}

/* General messages */

.wc {
  will-change: transform;
}

.message_wrapper {
    transform: scale(0);
    max-width: 70%;
    margin: 8px 0 0 0;
    display: inline-block;
    padding: 1em;
    border-radius: 10px;
    position: relative;
    -webkit-animation: talk;
    -webkit-animation-duration: 0.3s;
    -webkit-animation-delay: 0.1s;
    -webkit-animation-fill-mode: forwards;
    -webkit-animation-timing-function: ease-in-out;
}

.message {
    font: 0.875em emoji;
    margin: 0;
    display: flex;
    justify-content: flex-start;
    align-items: top;
    overflow: hidden;

  /* enable selection (it is globally disabled in the body) */
  -webkit-user-select: auto;
}

.menu_interaction
{
    margin: 5px;
    padding: 10px;
    padding-top: 0;
    opacity: 0;
    height: 20px;
    transition:visibility 0.3s linear,opacity 0.3s linear;
}

.message_type_contact .menu_interaction
{
    display: none;
    visibility: hidden;
}

.message_type_call .menu_interaction
{
    margin: auto;
    padding: 0;
    vertical-align: center;
}

.message_type_call .menu_interaction .dropdown
{
    margin-top: -17px;
}

.message:hover .menu_interaction
{
    display: block;
    opacity: 1;
}

.dropdown {
    display: none;
    z-index: 1;
    position: absolute;
    background-color: #fff;
    padding-top: 3px;
    padding-bottom: 3px;
}

.dropdown div
{
    color: #111;
    padding: 10px;
}

.dropdown div:hover
{
    background-color: #ddd;
}

#showmenu:checked ~ .dropdown{
    display:block;
}

.message_in {
    padding-left: 25%;
}

.message_out {
    padding-right: 25%;
    flex-direction: row-reverse;
}

.message_in + .message_in .sender_image {
    opacity: 0;
}

.message_out + .message_out .sender_image {
    opacity: 0;
}

.message_in > .message_wrapper:before {
    content: "";
    width: 10px;
    height: 10px;
    position: absolute;
    left: -10px;
    top: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E %3Cpath d= 'M10,0 L0,0 C10,0 10,10 10,10' fill='%23fdfdfd'/%3E %3C/svg%3E");
    transform-origin: top left;
}

.message_in + .message_in > .message_wrapper:before {
    display: none;
}

.message_out + .message_out > .message_wrapper:after {
    display: none;
}

.message_out > .message_wrapper:after {
    content: "";
    width: 10px;
    height: 10px;
    position: absolute;
    right: -10px;
    top: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E %3Cpath d= 'M0,0 L10,0 C0,0 0,10 0,10' fill='%23cfd8dc'/%3E %3C/svg%3E");
    transform-origin: top right;
}

.message_delivery_status {
    margin: 10px 10px;
    color: #A0A0A0;
    opacity: 0;
    -webkit-animation-name: fade-in;
    -webkit-animation-duration: 0.2s;
    -webkit-animation-timing-function: ease-in-out;
    -webkit-animation-delay: 0.4s;
    -webkit-animation-fill-mode: forwards;
    transition: opacity 0.5s ease-in-out;
}

.message_sender {
    display: none;
}

.sender_image {
    border-radius: 50%;
    transition: transform 0.2s ease-in-out;
    margin: 10px;
}

.message_in .sender_image {
    -webkit-animation-name: enter-stage-left;
    -webkit-animation-duration: 0.2s;
    -webkit-animation-timing-function: ease-in-out;
}

.message_out .sender_image {
    -webkit-animation-name: enter-stage-right;
    -webkit-animation-duration: 0.2s;
    -webkit-animation-timing-function: ease-in-out;
}

@-webkit-keyframes enter-stage-left {
    from {
      transform: translateX(-100%);
    }
    to {
      transform: translateX(0);
    }
}

@-webkit-keyframes enter-stage-right {
    from {
      transform: translateX(100%);
    }
    to {
      transform: translateX(0);
    }
}

.message_out > .message_wrapper {
    background-color: #cfd8dc;
    border-top-right-radius: 0;
    transform-origin: top right;
}

.message_out + .message_out > .message_wrapper {
    border-top-right-radius: 10px;
}

.message_in > .message_wrapper {
    background-color: #fdfdfd;
    border-top-left-radius: 0;
    transform-origin: top left;
}

.message_in + .message_in > .message_wrapper {
    border-top-left-radius: 10px;
}


@-webkit-keyframes fade-in {
    from {
      opacity: 0;
    }
    to {
      opacity: 1;
    }
}

@-webkit-keyframes talk {
    from {
      transform: scale(0);
    }
    to {
      transform: scale(1);
    }
}

.timestamp {
    display: flex;
    justify-content: flex-start;
    color: #333;
    font-size: 10px;
    padding: 5px;
}

.timestamp_out {
    flex-direction: row-reverse;
}

/* Buttons */

.flat-button {
    flex: 1;
    padding: 0;
}

.left_buttons {
    display: flex;
    align-self: center;
    max-width: 90px;
    padding-left: 1em;
}

/* Status */

.status_circle {
    fill: #A0A0A0;
    -webkit-animation: circle-dance;
    -webkit-animation-duration: 0.8s;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-direction: alternate;
    -webkit-animation-timing-function: ease-in-out;
}

.anim-first {
    -webkit-animation-delay: 0.7s;
}

.anim-second {
    -webkit-animation-delay: 0.9s;
}

.anim-third {
    -webkit-animation-delay: 1.1s;
}

@-webkit-keyframes circle-dance {
  0%,50% {
    -webkit-transform: translateY(0);
    fill: #A0A0A0;
  }
  100% {
    -webkit-transform: translateY(-8px);
    fill: #000;
  }
}

.status-x {
    stroke-dasharray: 12;
    stroke-dashoffset: 12;
    -webkit-animation: dash-x;
    -webkit-animation-duration: 0.2s;
    -webkit-animation-fill-mode: forwards;
    -webkit-animation-timing-function: ease-in-out;
}

.x-first {
    -webkit-animation-delay: 0.7s;
}

.x-second {
    -webkit-animation-delay: 0.9s;
}

@-webkit-keyframes dash-x{
  from {
    stroke-dashoffset: 12;
  }
  to {
    stroke-dashoffset: 0;
  }
}

/* Contact + Call interactions */
.message_type_contact .message_wrapper,
.message_type_call .message_wrapper {
    width: auto;
    margin-left: 30%;
    margin-right: 30%;
    display: flex;
    flex-wrap: wrap;
    background-color: #f2f2f2;
    padding: 0;
}

.message_type_contact .message_wrapper:before,
.message_type_call .message_wrapper:before {
    display: none;
}

.message_type_call .message_wrapper:after,
.message_type_contact .message_wrapper:after {
    display: none;
}

.message_type_contact .text,
.message_type_call .text {
    align-self: center;
    font-size: 1.2em;
    padding: 1em;
}

/* file interactions */

.message_type_data_transfer .message_wrapper {
    padding: 0;
    width: 30%;
    display: flex;
    flex-wrap: wrap;
}

.accept, .refuse {
    border-radius: 50%;
    cursor: pointer;
}

.accept svg,
.refuse svg {
    padding: 8px;
    width: 24px;
    height: 24px;
}

.accept {
    fill: #219d55;
}

.accept:hover {
    fill: white;
    background: #219d55;
}

.refuse {
    fill: #dc2719;
}

.refuse:hover {
    fill: white;
    background: #dc2719;
}

.message_type_data_transfer .text {
    padding: 1em;
    text-align: left;
    align-self: left;
    max-width: calc(100% - 180px);
}

.message_type_data_transfer .filename {
    cursor: pointer;
    font-size: 1.1em;
    overflow: hidden;
}

.message_type_data_transfer .informations {
    color: #555;
    font-size: 0.8em;
}

.message_progress_bar {
    width: 100%;
    height: 1em;
    position: relative;
    overflow: hidden;
    background-color: #eee;
    border-radius: 0;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25) inset;
}

.message_progress_bar > span {
    display: inline;
    height: 100%;
    background-color: #01a2b8;
    position: absolute;
    overflow: hidden;
}

/* text interactions */

.message_type_text .message_wrapper {
    max-width: 40%;
}

.message_type_text .message_text {
    padding: 0px;
}

.message_text {
    hyphens: auto; /* When webkitgtk+ will supports this, intelligent word-breaking */
    word-break: break-word;
    word-wrap: break-word;
    display: block;
}

pre {
    font : inherit;
    font-family : inherit;
    font-size : inherit;
    font-style : inherit;
    font-variant : inherit;
    font-weight : inherit;
    margin: 0;
    padding: 0;
}

/* Media interactions */
.media_wrapper img {
    max-width: 800px;
    max-height: 700px;
    margin: 5px 0 0 0;
    border-radius: 10px;
}

.playVideo {
    background-color: rgba(0, 0, 0, 0.6);
    height: 50px;
    width: 50px;
    border-radius: 5px;
    float: right;
    position: absolute;
    top: calc(50% - 25px);
    left: calc(50% - 25px);
    z-index: 3;
}

.containerVideo {
    width: 100%;
    position: relative;
}

.playVideo svg {
    height: 40px;
    width: 40px;
    margin: 5px;
}

/* Text interaction */
.failure,
.sending {
    margin: 10px 10px;
    color: #A0A0A0;
    opacity: 0;
    -webkit-animation-name: fade-in;
    -webkit-animation-duration: 0.2s;
    -webkit-animation-timing-function: ease-in-out;
    -webkit-animation-delay: 0.4s;
    -webkit-animation-fill-mode: forwards;
    transition: opacity 0.5s ease-in-out;
}

/* Classic screens */
@media screen and (max-width: 1920px), screen and (max-height: 1080px) {
  .message_in {
      padding-left: 15%;
  }

  .message_out {
      padding-right: 15%;
  }

  .message_type_text .message_wrapper {
      max-width: 60%;
  }

  /* File interactions */
  .message_type_data_transfer .message_wrapper {
      width: 40%;
  }

  /* Media interactions */
  .media_wrapper img {
      max-width: 450px;
      max-height: 450px;
  }

  .menu_interaction
  {
      margin: 5px;
      padding: 2px;
      height: 10px;
      font-size: 0.7em;
      transition:visibility 0.3s linear,opacity 0.3s linear;
  }
}

/* lower resolutions */
@media screen and (max-width: 1000px), screen and (max-height: 480px) {
  .message_in {
      padding-left: 0;
  }

  .message_out {
      padding-right: 0;
  }

  .message_type_contact,
  .message_type_call {
      max-width: 100%;
  }

  .message_type_text .message_wrapper {
      max-width: 90%;
  }

  /* File interactions */
  .message_type_data_transfer .message_wrapper {
      width: 70%;
  }

  /* Media interactions */
  .media_wrapper img {
      max-width: 200px;
      max-height: 200px;
  }
}

/* Special case */
@media screen and (max-width: 300px) {
  .sender_image {
      visibility: hidden;
      display: none;
  }

  /* File interactions */
  .message_type_data_transfer .left_buttons {
      max-width: 100%;
  }

  .message_type_data_transfer .text {
      max-width: 100%;
      padding-left: 0;
  }
}

.message_type_contact .message_wrapper:hover .timestamp_action,
.message_type_call .message_wrapper:hover .timestamp_action {
    opacity: 1;
}

.timestamp_action {
    margin: auto;
    padding: 0;
    vertical-align: center;
    opacity:0;
    transition:visibility 0.3s linear,opacity 0.3s linear;
}
