/* 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. */

body.uber-frame {
  -webkit-margin-start: 23px;
}

body.uber-frame > .page {
  -webkit-margin-end: 0;
  -webkit-padding-end: 24px;
}

#filter-overlay {
  padding-bottom: 0;
  position: fixed;
  z-index: 4;
}

body.uber-frame header {
  left: 23px;
  max-width: none;
}

html[dir='rtl'] body.uber-frame header {
  right: 23px;
}

body.uber-frame section {
  max-width: none;
}

#status-box-container {
  display: -webkit-flex;
}

fieldset {
  border: 1px solid rgb(217, 217, 217);
  display: inline;
  margin: 0;
  padding: 7px;
}

fieldset + fieldset {
  -webkit-margin-start: 20px;
}

div.status-entry {
  display: -webkit-flex;
  margin-bottom: .8em;
}

div.status-entry:last-child {
  margin-bottom: 0;
}

div.label {
  -webkit-margin-end: 1em;
  white-space: nowrap;
}

#show-unset-container {
  float: right;
  text-align: right;
}

html[dir='rtl'] #show-unset-container {
  float: left;
  text-align: left;
}

div.reload-policies-button {
  float: left;
}

html[dir='rtl'] div.reload-policies-button {
  float: right;
}

div.show-unset-checkbox {
  float: right;
}

html[dir='rtl'] div.show-unset-checkbox {
  float: left;
}

section.reload-show-unset-section {
  padding-bottom: 30px;
  padding-top: 15px;
}

section.status-box-section {
  clear: both;
}

div.table-description {
  color: rgb(100, 100, 100);
}

div.no-policies-set {
  color: rgb(180, 180, 180);
  font-size: 125%;
  margin-bottom: 10px;
  margin-top: 20px;
  text-align: center;
}

table {
  border-collapse: collapse;
  margin-bottom: 5px;
  margin-top: 17px;
  table-layout: fixed;
  width: 100%
}

section.empty > table {
  display: none;
}

section:not(.empty) > div.no-policies-set {
  display: none;
}

#main-section {
  -webkit-padding-start: 0;
}

section.policy-table-section {
  padding-bottom: 10px;
}

th,
td {
  border: 1px solid rgb(217, 217, 217);
  padding: 7px;
}

th {
  background-color: rgb(240, 240, 240);
  font-weight: normal;
}

div.elide,
span.value {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

button.toggle-expanded-value {
  padding: 0;
}

tbody.has-overflowed-value span.value {
  display: none;
}

tbody:not(.has-overflowed-value) button.toggle-expanded-value {
  display: none;
}

tbody:not(.has-overflowed-value) > tr.expanded-value-container,
tbody:not(.show-overflowed-value) > tr.expanded-value-container {
  display: none;
}

td.expanded-value {
  white-space: pre;
  word-wrap: break-word;
}

html:not(.focus-outline-visible)
:enabled:focus:-webkit-any(input[type='checkbox'],
                           input[type='radio'], button) {
  /* Cancel border-color for :focus specified in widgets.css. */
  border-color: rgba(0, 0, 0, 0.25);
}
