/* 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;
}

.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;
}
