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

#content-settings-page {
  min-width: 620px;
}

#content-settings-exceptions-area {
  min-width: 540px;
}

.exception-pattern {
  -webkit-box-flex: 1;
  -webkit-margin-end: 10px;
  -webkit-margin-start: 14px;
}

.exception-setting {
  display: inline-block;
  width: 120px;
}

select.exception-setting {
  vertical-align: middle;
}

#exception-column-headers {
  -webkit-margin-start: 17px;
  display: -webkit-box;
  margin-top: 17px;
}

#exception-column-headers > div {
  font-weight: bold;
}

#exception-pattern-column {
  -webkit-box-flex: 1;
}

.exception-value-column-header {
  width: 145px;
}

.otr-explanation {
  font-style: italic;
}

#content-settings-exceptions-area list {
  margin-bottom: 10px;
  margin-top: 4px;
}

#disable-plugins-container {
  /* Same as .checkbox and .radio padding. Using padding instead of margin
   * to ensure minimum height for tap target. */
  padding: 7px 0;
}

#group-indicator {
  margin-left: 5px;
}

div[role='listitem'][controlled-by] {
  color: #666;
  font-style: italic;
  position: relative;
}

.settings-list div[role='listitem'][controlled-by='policy'],
.settings-list div[role='listitem'][controlled-by='extension'] {
  background: rgb(250, 230, 146);
  border-bottom: 1px solid rgb(201, 189, 141);
  border-top: 0;
}

.sublabel {
  -webkit-margin-start: 2em;
}

.media-device-control {
  display: table-row;
}

.media-device-control > span {
  display: table-cell;
  min-width: 145px;
}

.media-device-control > select {
  display: table-cell;
  margin: 5px 0;
  width: 12em;
}

.exception-setting.media-audio-setting {
  width: 6em;
}

.exception-setting.media-video-setting {
  width: 6.5em;
}

#media-column-header {
  display: -webkit-box;
}

#media-audio-column {
  width: 6em;
}

#media-video-column {
  width: 8.5em;
}
