/* Copyright 2015 The Vanadium Authors. All rights reserved. */
/* Use of this source code is governed by a BSD-style */
/* license that can be found in the LICENSE file. */

@import "constants";

& {
  color: @color-white;
  background-color: @color-primary-800;
}

a {
  &,
  &:hover,
  &:active {
    color: @color-white;
    text-decoration: none;
  }
}

/* Similar to .logo-row in sidebar.less. */
.row {
  display: flex;
  align-items: center;
  padding: 0 @gutter;
  height: @header-height;

  .icon {
    margin: 0 @gutter-quarter 0 calc(12px - @gutter);
  }

  .menu {
    display: none;

    @media @small-screen {
      display: block;
      padding: 12px;
    }
  }

  .v-icon {
    padding: 6px;
    cursor: auto;

    @media @small-screen {
      display: none;
    }
  }
}

.spacer {
  flex: 1;
}

nav {
  a {
    display: inline-block;
    line-height: @header-height;
    padding: 0 @gutter-half;
    font-size: 13px;
    text-transform: uppercase;
  }

  @media @small-screen {
    display: none;
  }
}

&::after {
  position: absolute;
  top: 0;
  right: 0;
  background: @color-accent-A200;
  font-size: @code-font-size;
  font-weight: 500;
  padding: 1px @gutter-quarter;
  border-bottom-left-radius: 4px;
  content: "Developer Preview";
}