/* Copyright (c) 2012 The Chromium 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 url(omnibox_column_widths.css);

output-results-group:not([hidden]) {
  display: inline-block;
  margin-bottom: 60px;
}

.left-20 {
  margin-left: 20px
}

.check-mark,
.x-mark {
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  font-size: 0;
  height: 16px;
  width: 16px;
}

.check-mark {
  background-image: url(../../../../ui/webui/resources/images/check_circle_green.svg);
}

.x-mark {
  background-image: url(../../../../ui/webui/resources/images/cancel_red.svg);
}

p,
pre {
  margin: 0;
}

.section {
  margin-bottom: 10px;
  margin-top: 10px;
}

body {
  background-color: #fcfcfc;
}

table {
  background-color: white;
  border: 2px solid #ccc;
  border-spacing: 0;
  font-family: monospace;
  font-size: 12px;
  min-width: 900px;
  overflow-wrap: break-word;
  table-layout: fixed;
  text-align: left;
  width: 100%;
}

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

thead tr {
  background-color: #f8f8f8;
  color: #555;
  font-size: 15px;
  font-weight: bold;
  letter-spacing: 0;
  vertical-align: bottom;
  white-space: nowrap;
}

tbody tr {
  height: 42px;
  transition-duration: 300ms;
}

tbody tr:hover * {
  background-color: #f8f8f8;
  white-space: normal;
}

th,
td {
  padding: 0 5px;
}

th {
  padding-bottom: 6px;
  padding-top: 12px;
}

.filtered-highlighted {
  background-color: lightskyblue;
  /* TODO(manukh) This is a placholder color until other ui changes occur. */
}

.filtered-highlighted-nested {
  background-color: #d0ffd0;
}

.toggle input,
.toggle input:not(:checked) ~ .toggle-on,
.toggle input:checked ~ .toggle-off {
  display: none;
}

.toggle span {
  user-select: none;
  display: inline-block;
  padding: 3px 5px;
  min-width: 60px;
  text-align: center;
  cursor: pointer;
  border: 1px solid;
}

.toggle span:hover {
  background-color: #f0f0f0;
}

tbody tr:hover pre {
  white-space: pre-wrap;
  overflow-y: auto;
}

tbody pre.json * {
  white-space: inherit;
}

pre.json {
  padding: 0 5px;
}

pre.json .key {
  color: purple;
  font-weight: bold;
}

pre.json .string {
  color: green;
}

pre.json .number {
  color: blue;
}

pre.json .boolean {
  color: slateblue;
  font-weight: bold;
}

pre.json .null {
  color: magenta;
  font-weight: bold;
}

/* column specific styling */

.cell-provider-and-type .pair-item:first-child {
  color: green;
  font-weight: bold;
}

tbody:not(:first-of-type) td.cell-provider-and-type .pair-item:first-child {
  font-size: 0;
}

.cell-contents-and-description .pair-container,
.cell-fill-and-inline .pair-container {
  display: flex;
  flex-wrap: wrap;
}

.cell-contents-and-description .pair-container {
  margin-right: -15px;
}

.cell-contents-and-description .pair-item {
  margin-right: 15px;
}

.cell-contents-and-description .pair-item:first-child {
  color: blue;
}

.cell-fill-and-inline .pair-container {
  align-items: center;
  margin-right: -1px;
}

.cell-fill-and-inline .pair-item {
  margin-right: 1px;
}

.cell-fill-and-inline .pair-item:nth-child(2):not(:empty) {
  border: 1px solid;
  font-weight: bold;
}

.cell-fill-and-inline .overlap-warning {
  color: red;
}

.accesskey {
  text-decoration: underline;
  text-transform: capitalize;
}
