/* Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file  */
/* for details. All rights reserved. Use of this source code is governed by a */
/* BSD-style license that can be found in the LICENSE file.                   */

/*
 * Colors mentioned in this file, e.g. "$dark-text-color" are from DartPad:
 * https://github.com/dart-lang/dart-pad/blob/master/lib/scss/colors.scss
 */

/* Text selection */
::selection {
  background: #6e8eb1; /* $dark-selection-color */
}

/* Material icons configuration */
@font-face {
  font-family: 'Material Icons';
  font-style: normal;
  font-weight: 400;
  src: local('Material Icons'),
  local('MaterialIcons-Regular'),
  url(/MaterialIconsRegular.ttf) format('truetype');
}

/*
 * Required for Material Icons:
 * https://google.github.io/material-design-icons/
 */
.material-icons {
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 24px;  /* Preferred icon size */
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;

  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;

  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;

  /* Support for IE. */
  font-feature-settings: 'liga';
}

body {
  background-color: #12202f;
  color: #ccc;
  font-family: "Roboto", sans-serif;
  font-size: 14px;
  display: flex;
  flex-direction: column;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

.proposed .after-apply {
  display: none;
}

.applied .before-apply {
  display: none;
}

.applied .apply-migration:not([disabled]), .needs-rerun .apply-migration:not([disabled]) {
  display: none;
}

.proposed:not(.needs-rerun) .apply-migration[disabled] {
  display: none;
}

header {
  background-color: #1c2834;
  height: 48px;
  padding-left: 24px;
  align-items: center;
  z-index: 4;
}

header h1,
header h2,
header h3 {
  display: inline-block;
  font-family: "Google Sans","Roboto",sans-serif;
  font-weight: 400;
  margin-right: 24px;
}

h1 {
  font-size: 1.5em;
}

header h2 {
  font-size: 1.2em;

  /* Shift text up */
  position: relative;
  top: -2px;
}

header h3 {
  /* Shift text up */
  position: relative;
  top: -2px;
}


header .action-button, header a {
  right: 0px;
  float: right;
  margin: 10px;
}

header img.logo {
  height: 24px;
  width: 24px;
  margin-right: 8px;
  position: relative;
  top: 4px;
}

footer .report-problem {
  right: 0px;
  margin: 4px 8px;
}

.rerun-migration .required {
  display: none;
}

.needs-rerun .rerun-migration .required {
  display: initial;
}

.needs-rerun .rerun-migration .optional {
  display:none;
}

footer {
  color: #ccc;
  background-color: #27323a;
  display: flex;
  flex-direction: row;
  align-items: center;
  padding: 8px 0 8px 24px;
}

footer .wide {
  flex: 1;
}

footer .sdk-version {
  margin-right: 32px;
}

.horizontal {
  display: flex;
}

.panels {
  background-color: #121a25;
  flex: 1;
  overflow: hidden;
}

.panel-heading {
  color: #676767;
  margin: 8px;
}

.nav-link,
.region {
  cursor: pointer;
}

.nav-panel {
  background-color: #12202f;
  flex: 1 200px;
  margin: 0;
  overflow: scroll;
  user-select: none;
}

.nav-inner {
  padding: 0 0 7px 7px;
}

.fixed {
  position: fixed;
  top: 0;
}

.root {
  margin: 0;
  display: none;
}

.nav-tree > ul {
  padding-left: 6px;
}

.nav-tree .material-icons {
  font-size: 20px;
  position: relative;
  top: 5px;
  margin-right: 8px;
  color: #676767; /* $secondary-color */
}

.nav-tree .status-icon.already-migrated {
  color: #007a27; /* $light-green */
}

.nav-tree .status-icon.opted-out {
  color: #676767; /* $secondary-color */
}

.nav-tree .status-icon.opted-out:hover {
  color: #ffffff;
}

.nav-tree .status-icon.migrating {
  color: #51c686; /* $dark-green */
}

.nav-tree .status-icon.migrating:hover {
  color: #ffffff;
}

.nav-inner ul {
  padding-left: 12px;
  margin: 0;
}

.nav-inner li {
  list-style-type: none;
  white-space: nowrap;
}

.nav-inner li:not(.dir) {
  margin-left: 20px;
  margin-bottom: 3px;
}

.nav-inner li.dir .arrow {
  cursor: pointer;
  display: inline-block;
  font-size: 10px;
  margin-right: 4px;
  transition: transform 0.5s ease-out;
}

.nav-inner li.dir .arrow.collapsed {
  transform: rotate(-90deg);
}

.nav-inner ul {
  /* a max-height is added to each element at runtime. */
  transition: max-height 0.5s ease-out;
}

.nav-inner ul.collapsed {
  max-height: 0 !important;
  overflow: hidden;
}

.nav-inner .selected-file {
  color: white;
  cursor: inherit;
  font-weight: 600;
  text-decoration: none;
}

.edit-count {
  background-color: #676767;
  border-radius: 10px;
  color: #fff;
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  margin-left: 5px;
  min-width: 25px;
  padding: 4px 0 2px 0;
  text-align: center;
  line-height: 1em;
}

.content {
  flex: 4 300px;
  background: #12202f;
  font-family: "Roboto Mono", monospace;
  margin: 0 6px;
  position: relative;
  white-space: pre;
  overflow: scroll;
}

.code {
  padding: 0.5em;
  position: absolute;
  left: 0;
  top: 0;
  margin-left: 56px;
}

.code .welcome {
  font-family: "Google Sans","Roboto",sans-serif;
  font-size: 18px;
  margin-right: 62px;
  color: #777;
}

.code .nav-link {
  color: #16adca;
  text-decoration-line: none;
}

.code .nav-link:visited {
  color: #139bb5; /* #16adca darkened 10% */
  text-decoration-line: none;
}

.code .nav-link:hover {
  text-decoration-line: underline;
  font-weight: 600;
}

.regions {
  padding: 0.5em;
  position: absolute;
  left: 0;
  top: 0;
}

.regions table {
  border-spacing: 0;
  font-size: inherit;
}

.regions td {
  border: none;
  /* The content of the regions is not visible; the user instead will see the
   * highlighted copy of the content. */
  color: rgba(255, 255, 255, 0);
  padding: 0;
  white-space: pre;
}

.regions td:empty:after {
  content: "\00a0";
}

.regions tr.highlight td:last-child {
  background-color: #444444;
  color: white;
}

.regions td.line-no {
  border-right: solid #12202f 2px;
  color: #999999;
  padding-right: 4px;
  text-align: right;
  visibility: visible;
  width: 50px;
  display: inline-block;
}

.regions tr.highlight td.line-no {
  border-right: solid #ccc 2px;
}

.region {
  display: inline-block;
  position: relative;
  visibility: visible;
  z-index: 200;
}

.region.added-region {
  background-color: #178afd;
  color: #fff;
}

.region.removed-region {
  background-color: #FA557d; /* $dark-pink */
  color: #fff;
}

.region.informative-region {
  background-color: #263952;
  color: #fff;
  display: inline-block;
  height: 15px;
  position: relative;
}

.target {
  background-color: #444;
  position: relative;
  visibility: visible;
  font-weight: 600;
}

.info-panel {
  flex: 1 200px;
  margin: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.info-panel .edit-panel {
  background-color: #12202f;
  overflow: auto;
}

.info-panel .panel-content {
  padding: 7px;
}

.info-panel .panel-content> :first-child {
  margin-top: 0;
}

.info-panel .nowrap {
  white-space: nowrap;
}

.info-panel ul,
.info-panel ol {
  padding-left: 20px;
}

.info-panel li {
  margin: 0 0 5px 0;
}

.info-panel a {
  color: #139bb5;
}

.info-panel a:hover {
  color: #1ec7e7; /* #139bb5 lightened 20% */
}

.info-panel .edit-list {
  background-color: #12202f;
  overflow: auto;
}

.edit-panel {
  margin-top: 6px;
  flex: 1 100px;
}

.edit-list {
  flex: 2 100px;
}

.edit-list .edit {
  margin: 3px 0;
}

.edit-list .edit-link {
  cursor: pointer;
}

.popup-pane {
  display: none;
  position: fixed;
  top: 150px;
  left: 150px;
  right: 150px;
  bottom: 150px;
  border: 1px solid black;
  border-top: 2px solid black;
  border-radius: 7px;
  box-shadow: 0px 0px 20px 2px #b4bfcb22;
  z-index: 400;
  background: #2b3036;
  padding: 20px;
}

.popup-pane .close {
  position: absolute;
  right: 10px;
  top: 10px;
  cursor: pointer;
  text-shadow: 1px 1px 2px #888;
  box-shadow: 1px 1px 2px #111;
}

.popup-pane h2 {
  padding: 21px;
  height: 10%;
  margin: 0px;
  box-sizing: border-box;
}

.popup-pane p {
  height: 10%;
  box-sizing: border-box;
  padding: 0px 20px;
}

.popup-pane pre {
  background: #12202f;
  padding: 20px;
  bottom: 0px;
  overflow: auto scroll;
  height: 65%;
  margin: 0px;
  box-sizing: border-box;
}

.popup-pane .button.bottom {
  margin: 20px 0px;
  display: block;
  text-align: center;
}

.rerunning-pane {
  display: none;
}

body.rerunning .rerunning-pane {
  display: block;
  position: fixed;
  top: 0px;
  bottom: 0px;
  left: 0px;
  right: 0px;
  background-color: #000000AA; /* translucent black */
  z-index: 400;
}

.rerunning-pane h1 {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.edit-panel .type-description {
  /* From DartPad $dark-orange */
  color: #ff916e;
  font-family: monospace;
}

ul.trace {
  font-size: 13px;
  list-style-type: none;
  padding-left: 0px;
}

ul.trace li {
  color: white;
}

ul.trace li .function {
  /* from .hljs-variable */
  color: #16adca;
  font-family: monospace;
  font-weight: 600;
}

ul.trace li p.drawer {
  margin: 3px 0px;
  padding: 0px 0px 0px 14px;
}

ul.trace li p.drawer button {
  margin-right: 3px;
}

.elevation-z4 {
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2),
      0px 4px 5px 0px rgba(0, 0, 0, 0.14),
      0px 1px 10px 0px rgba(0, 0, 0, .12);
}

a {
  color: #ccc;
  fill: #ccc;
  text-decoration: none;
}

a:hover {
  color: #dbdbdb; /* #ccc lightented 30%*/
  fill: #fff;
}

.add-hint-link {
  display: inline-block;
  margin: 3px;
}

.add-hint-link:hover {
  color: #fff;
}

header button {
  text-transform: uppercase;
}

header a {
  margin: 0;
}

/* Careful here. `a.button` is repetitive but required to get correct
 * specificity */
button, .button, a.button {
  background-color: rgba(22, 138, 253, 0.15);
  border: none;
  border-radius: 3px;
  padding: 3px 10px;
  font-weight: 500;
  font-font: Roboto, sans-serif;
  color: #fff;
}

button:hover, .button:hover {
  background-color: rgba(22, 138, 253, 0.29);
  cursor: pointer;
}

button[disabled] {
  background-color: rgba(255,255,255,.12);
  color: rgba(255,255,255,.37);
  cursor: not-allowed;
}

/* Change edit panel button colors */
.edit-panel .button, .edit-panel button {
  background-color: rgba(63, 104, 148, 0.6);
  color: white;
}
.edit-panel .button:hover, .edit-panel button:hover {
  background-color: rgba(101, 153, 208, 0.6);
  color: white;
}

/*
 * Adjustments to align material icons in the toolbar buttons.
*/
.action-button > span {
  position:relative;
  top: -3px;
}

.action-button .material-icons {
  top: 4px;
}

/* Don't shift the icon when it's a direct child of the button */
.action-button > .material-icons {
  top: 1px;
}

/* Shift the text to center with the icon. */
.action-button > span.label {
  position:relative;
  top: -4px;
}

.action-button .material-icons {
  font-size: 20px;
  position: relative;
}

.placeholder {
  color: #777;
  text-align: center;
  margin-top: 3em !important;
}

/**
 * HLJS Overrides
 */
.hljs {
  background-color: #12202f; /* $dark-code-background-color */
  color: #c0c2c5; /* $dark-editor-text */
  display: block;
  overflow-x: auto;
  padding: 0.5em;
  /**
   * This allows the per-line highlights to show.
   */
  background: none;
}

.hljs-keyword,
.hljs-selector-tag,
.hljs-deletion {
  color: #51c686; /* cm-keyword */
}

.hljs-number {
  color: #627978; /* cm-number */
}

.hljs-comment {
  color: #9198b4; /* cm-comment */
}

.hljs-literal {
  color: #ee8666; /* cm-atom */
}

.hljs-string {
  color: #e55074; /* cm-string */
}

.hljs-variable {
  color: #16adca; /* cm-variable */
}

.hljs-link {
  color: #e55074; /* cm-string */
}
.hljs-section,
.hljs-type,
.hljs-built_in,
.hljs-title {
  color: #ee8666; /* cm-variable-2 */
}

.hljs-addition {
  color: #263952; /* $dark-selection-color */
}

.hljs-meta {
  color: #627978;
}
