/* Copyright 2016 The Chromium Authors
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

@charset "utf-8";

body {
    margin: 0 0 3px 0;
    min-width: 768px;
}

#monobar {
    background: var(--chops-primary-header-bg);
    margin: 0;
    padding: 0;
}

#monobar th {
    white-space: nowrap;
    vertical-align: middle;
    font-weight: normal;
}

.sidebar {
    background: var(--chops-sidebar-bg);
    border: var(--chops-normal-border);
    padding: 4px;
}

.padded {
    padding: 4px 1em;
}

#monobar a#wordmark {
    font-family: sans-serif;
    font-variant: small-caps;
    font-size: 140%;
    font-weight: bold;
    font-style: oblique;
    color: #822;
    letter-spacing: 1px;
    text-decoration: none;
}

#thumbnail_box {
    background-color: var(--chops-white);
    vertical-align: middle;
}

#thumbnail_box a, #thumbnail_box img {
    display: block;
}

.toptabs a:link, .toptabs a:visited {
    color: #444;
    padding: 0 .5em ;
    text-decoration: none;
}

.toptabs a:hover {
    color: var(--chops-link-color);
    text-decoration: underline;
}

.toptabs a.active {
    font-weight: bold;
    color: var(--chops-black);
    text-decoration: none;
}

#userbar {
    text-align: right;
}

#userbar a {
    color: var(--chops-black);
}

.subt {
    background: var(--chops-secondary-header-bg);
    margin: 0;
    padding: 4px 1em;
    border: var(--chops-normal-border);
    border-width: 1px 0 1px 0;
}

a:link, a:focus {
    color: var(--chops-link-color);
}

a:active {
    color: red;
}

input[type="text"] {
    border-color: #999 #ccc #ccc;
    border-style: solid;
    border-width: 1px;
    padding: 3px 3px;
}

input[type=button], input[type=reset], input[type=submit], .buttonify {
    font-size: 100%;
    background: var(--chops-button-bg);
    color: var(--chops-button-color) !important;

    padding: 6.1px 10px;
    margin-right: .6em;
    border: var(--chops-button-border);
    border-radius: var(--chops-button-radius);
    box-shadow: var(--chops-shadow);
    cursor: pointer;
    text-decoration: none;
}

.subt input[type=button], .subt input[type=reset], .subt input[type=submit], .subt .buttonify {
    padding: 3px 6px;
}

input[type=submit], input[type=button].primary, a.primary {
    background: var(--chops-primary-button-bg);
    color: var(--chops-primary-button-color) !important;
}

input[type=submit].secondary {
    background: var(--chops-button-bg);
    color: var(--chops-button-color) !important;
}

input[type=submit]:disabled, input[type=button]:disabled {
    background: var(--chops-button-disabled-bg);
    color: var(--chops-button-disabled-color) !important;
}

.button_set {
    float: right;
    font-size: 95%;
    display: flex;
    margin-left: 2em;
    margin-bottom: 5px; /* Offsets padding lost by flex+float. */
}

@-moz-document url-prefix() {
    .buttonify {
	padding: 2px 3px 2px 3px;
    }
}

input[type=button]:hover, input[type=reset]:hover, input[type=submit]:hover, .buttonify:hover {
    border-color: #666;
    text-decoration: none !important;
}

.choice_chip {
    padding: 4px 10px;
    margin-left: 6px;
    background: var(--chops-choice-bg);
    color: var(--chops-choice-color);
    border-radius: 50vh;
    text-decoration: none;
}

.active_choice {
    background: var(--chops-active-choice-bg);
    color: var(--chops-active-choice-color);
    font-weight: var(--chops-link-font-weight);
}

a.choice_chip, a.choice_chip:visited {
    color: var(--chops-choice-color);
}

input[type=button]:active, input[type=reset]:active, input[type=submit]:active,
input.primary:active, .buttonify:active {
  background: var(--chops-gray-600);
  color: var(--chops-white) !important;
}

textarea {
    border-color: #999 #ccc #ccc;
    border-style: solid;
    border-width: 1px;
}

td td, th th, th td, td th {
    font-size: 100%;
}

form {
    padding: 0;
    margin: 0;
}

.hidden {
  display: none !important;
}

/* Project tab bar. */
.gtb {
  background: var(--chops-white);
  border-bottom: 1px solid #ccc;
  padding: 5px 10px 0 5px;
  white-space: nowrap;
}

.user_bar {
    cursor: pointer;
    float: right;
    margin: 5px 15px 6px 10px;
}

.gtb .gtbc {
    clear: left;
}

table {
    border-collapse: separate;
}

.nowrap { white-space: nowrap; }
.nowrapspan span { white-space: nowrap; }
.derived { font-style: italic; }

.bubble_bg {
    background: #eee;
    margin-bottom: 0.6em;
}

.bubble {
    padding: 4px;
}

#bub {
    padding: 0 1px 0 1px;
}

.bub-top {
    margin: 0 2px 2px;
}

.bub-bottom {
    margin: 2px 2px 0;
}

.drop-down-bub {
    font-size: 80%;
    margin-top: -1px;
}


h4 {
    color: #222;
    font-size: 16pt;
    margin: .4em;
    padding: 0;
}

.section {
    margin: 0 4px 1.6em 4px;
    padding:4px;
}
.section .submit {
    margin: 8px;
}

#maincol {
    padding:4px;
    background: var(--chops-page-bg);
}

.isf a, .at a, .isf a:visited, .at a:visited {
  color: var(--chops-link-color);
  text-decoration: none;
}

.at span {
  margin-right: 1em;
  white-space: nowrap;
}

.isf a:hover, .at a:hover {
  color: var(--chops-link-color);
  text-decoration: underline;
}

.at {
    padding-top: 6px;
    padding-bottom: 3px;
}

.st1 .inst1 a,
.st2 .inst2 a,
.st3 .inst3 a,
.st4 .inst4 a,
.st5 .inst5 a,
.st6 .inst6 a,
.st7 .inst7 a,
.st8 .inst8 a,
.st9 .inst9 a {
  color: var(--chops-black);
  font-weight: bold;
  text-decoration: none;
}

.notice, .error {
    font-weight: bold;
    padding: 4px 16px;
    border-radius: 4px;
}

.notice {
    background: var(--chops-notice-bubble-bg);
}

.error {
    background: var(--chops-error-bubble-bg);
}

.adminonly {
    color: #a00;
    font-style: italic;
}

.fielderror {
    color: var(--chops-field-error-color);
    font-weight: bold;
    padding: 4px;
}

.tip, .help {
    background: var(--chops-help-bubble-bg);
    font-size: 92%;
    margin: 5px;
    padding: 6px;
    border-radius: 6px;
}

.tip {
    width: 14em;
}

.help {
    width: 44em;
}

.x_icon::before {
    content: "\00D7";
}

.x_icon {
    text-decoration: none;
    font-size: 130%;
    color: #444 !important;
    padding: 0 2px;
    vertical-align:middle;
}

.x_icon:active {
    color: var(--chops-white) !important;
    background: #444;
}

/* Google standard */
.gbh {
    border-top: 1px solid #C9D7F1;
    font-size: 1px;
    height: 0;
    position: absolute;
    top: 24px;
    width: 100%;
}

#pname {
    font-size:300%;
    margin: 0;
    padding: 0;
}

#pname a,
#pname a:visited {
    text-decoration:none;
    color: #666;
}

#project_summary_link {
    text-decoration: none;
    color: #444;
}

.vt td,
.vt th,
.vt {
    vertical-align: top;
}

.indicator {
    font-size: x-small;
    color: var(--chops-link-color);
}

div.h4, table.h4 {
    background-color: var(--chops-secondary-header-bg);
    margin-bottom: 2px;
    padding: 2px;
    font-weight: bold;
    position: relative;
    margin-top: 2px;
}

.mainhdr {
    background-color: #ebeff9;
    border-bottom: 1px solid #6b90da;
    font-weight: bold;
    font-size: 133%;
    padding: 2px;
}

.secondaryhdr {
    background-color: #eee;
    padding: 10px;
    border-bottom: 1px solid #ddd;
    border-left: 1px solid #ddd;
    border-right: 1px solid #ddd;
}

h1 {
    font-size: x-large;
    margin-top: 0px;
}

h2 {
    font-size: large;
}

h3 {
    font-size: medium;
    background: #eee;
    padding: 0.5ex 0.5em 0.5ex 0.5em;
    margin-right: 2em;
}

img {
    border: 0;
}

#user_bar {
    text-align: right;
    margin-bottom: 10px;
}

#user_bar a {
    color: var(--chops-link-color);
    text-decoration: none;
}

#header {
    position: relative;
    height: 55px;
    padding-top: 6px;
    margin-bottom: -9px;
}

#title {
    margin-left: 171px;
    background-color: #eee;
    font-size: large;
    font-weight: bold;
    padding-left: 3px;
    padding-top: 1px;
    padding-bottom: 1px;
}

.label { text-decoration: none; color: green !important; }
.label:hover { text-decoration: underline; }

.fieldvalue { text-decoration: none; }
.fieldvalue:hover { text-decoration: underline; }

.fieldvalue_url {
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
}
.fieldvalue_url:after {
    content: "\A";
    white-space: pre;
}

#colcontrol {
    padding: 5px;
}

.cue {
    margin-top: -4px;
    padding: 1px;
    background: var(--chops-notice-bubble-bg);
    border: 1px solid #f0c36d;
}
.cue td span {
    font-size: 85%;
    text-align: center;
    padding: 0 1em;
}

.results tr td { border-bottom: var(--chops-table-divider); }
.resultstable tr td { border-bottom: var(--chops-table-divider); }

.results th, .results_lite th {
    background: var(--chops-table-header-bg);
    text-align: left;
    padding: 3px;
    border: 0;
    border-right: 1px solid var(--chops-white);
}
.results th:last-child { border-right: 0; }

.results th a, .results th a:visited {
    color: var(--chops-link-color);
    padding-right: 4px;
    margin-right: 4px;
}
.results td { cursor: pointer }
.results td { padding: 6px; }
.results td a { color: var(--chops-black); text-decoration: none; }
#project_list .results td { padding: 18px; }
#project_list table.results td.id { text-align: left; }

.results td.id a,
.results td.project a,
.results td.url a { color: var(--chops-link-color); white-space: nowrap; }
.results td.id a:visited,
.results td.project a:visited,
.results td.url a:visited { color: purple; }
.results td.id a:hover, .results td.project a:hover, .results td.url a:hover { color: red; text-decoration: underline; }
table.results .hoverTarget:hover a { color: #009; }
.results .label { font-size: 80% }
.results .selected { background-color: var(--chops-selected-bg); }
.results td tt { color: #999; font-style: italic; font-weight: bold; }
.results .displayproperties { font-size: 80%; color: #666; }

.results .grid .gridtile tr { border: 0; }
.results .grid .gridtile td { border: 0; }

.comptable.all .comprow { display: table-row; }
.comptable.active .comprow { display: none; }
.comptable.active .comprow.active { display: table-row; }
.comptable.toplevel .comprow { display: none; }
.comptable.toplevel .comprow.toplevel { display: table-row; }
.comptable.toplevel .comprow.toplevel.deprecated { display: none; }
.comptable.myadmin .comprow { display: none; }
.comptable.myadmin .comprow.myadmin { display: table-row; }
.comptable.mycc .comprow { display: none; }
.comptable.mycc .comprow.mycc { display: table-row; }
.comptable.deprecated .comprow { display: none; }
.comptable.deprecated .comprow.deprecated { display: table-row; }

/* The revision flipper. */
.flipper { font-family: monospace; font-size: 120%; }
.flipper ul { list-style-type: none; padding: 0; margin: 0em 0.3em; }
.flipper b { margin: 0em 0.3em; }

.closed .ifOpened { display: none }
.closed .opened span.ifOpened { display: inline }
.opened .ifClosed { display: none }
.opened .closed span.ifClosed { display: inline }

a.star {
  text-decoration: none;
  cursor: pointer;
  display: inline-block;
  font-size: 18px;
}

a.spamflag {
  text-decoration: none;
  cursor: pointer;
}

.h3 {
    font-size: 130%;
    font-weight: bolder;
}
input { padding-left: 1px; padding-right: 1px; }
textarea { padding-left: 1px; padding-right: 1px; }

.pagination { font-size: 100%; float: right; white-space: nowrap; }
.pagination a { margin-left: 0.3em; margin-right: 0.3em; }

.author { margin-bottom: 1em; }

#searchtips { padding-left: 2em; }
#searchtips p { margin-left: 2em; }

.issueList .inIssueList span,
.issueAdvSearch .inIssueAdvSearch a,
.issueSearchTips .inIssueSearchTips a {
    font-weight: bold;
    text-decoration: none;
    color: var(--chops-black);
}

iframe[frameborder="1"] {
    border: 1px solid #999;
}

/* For project menu */
.menuDiv {
    margin-top: 5px;
    border-color: #C9D7F1 #3366CC #3366CC #A2BAE7;
    border-style: solid;
    border-width: 1px;
    z-index: 1001;
    padding: 0;
    width: 175px;
    background: var(--chops-white);
    overflow: hidden;
}
.menuDiv .menuText {
    padding: 3px;
    text-decoration: none;
    background: var(--chops-white);
}
.menuDiv .menuItem {
    color: var(--chops-link-color);
    padding: 3px;
    text-decoration: none;
    background: var(--chops-white);
}
.menuDiv .menuItem:hover {
    color: var(--chops-white);
    background: #3366CC;
}
.menuDiv .categoryTitle {
    padding-left: 1px;
}
.menuDiv .menuCategory,
.menuDiv .categoryTitle {
    margin-top: 4px;
}
.menuDiv .menuSeparator {
    margin: 0 0.5em;
    border: 0;
    border-top: 1px solid #C9D7F1;
}

.hostedBy {
    text-align: center;
    vertical-align: center;
}

.fullscreen-popup {
    position: fixed;
    right: 4%;
    left: 4%;
    top: 5%;
    max-height: 90%;
    opacity: 0.85;
    -moz-opacity: 0.85;
    -khtml-opacity: 0.85;
    filter: alpha(opacity=85);
    -moz-border-radius: 10px;

    background: var(--chops-black);
    color: var(--chops-white);
    text-shadow: var(--chops-black) 1px 1px 7px;

    padding: 1em;
    z-index: 10;
    overflow-x: hidden;
    overflow-y: hidden;
}

/* Make links on this dark background a lighter blue. */
.fullscreen-popup a {
    color: #dd0;
}

div#keys_help th {
    color: yellow;
    text-align: left;
}

div#keys_help td {
    font-weight: normal;
    color: var(--chops-white);
}

td.shortcut {
    text-align: right;
}

span.keystroke {
    color: #8d0;
    font-family: monospace;
    font-size: medium;
}

.list {
    background-color:var(--chops-white);
    padding: 5px;
}

.list-foot {
    background-color:var(--chops-white);
    padding: 5px;
    height: 20px;
}

.graytext {
    color: #666;
}

.vspacer {
    margin-top: 1em;
}

.hspacer {
    margin-right: 1em;
}

.emphasis {
    font-weight: bold;
}

.formrow {
    vertical-align: top;
    padding-bottom: .569em;
    white-space: nowrap;
    overflow: hidden;
    padding-top: .2em;
}

.forminline {
    display: inline-block;
    vertical-align: top;
}

.formlabelgutter {
    margin-top: 0.3em;
    text-align: right;
    vertical-align: top;
    white-space: normal;
    width: 13em;
}

.formlabel {
    font-weight: bold;
    text-align: right;
}

.forminputgutter {
    margin-top: 0.3em;
    text-align: left;
    vertical-align: top;
    white-space: normal;
    width: 36em;
}

.forminput {
    width: 100%;
}

.formshortinput {
    width: 11em;
}

.formselectgutter {
    margin-top: 0.3em;
    text-align: left;
    vertical-align: top;
    white-space: normal;
    width: 18em;
}

.formselect {
    width: 18em;
}

.formqm {
    margin-left: 0.25em;
    margin-right: 0.25em;
}

.formerror {
    color: #a00;
    display: block;
    text-align: left;
}

.tablerow {
    vertical-align: top;
    padding-bottom: .569em;
    white-space: nowrap;
    overflow: hidden;
    padding-top: .2em;
}

.tablelabelgutter {
    margin-top: 0.3em;
    text-align: left;
    vertical-align: top;
    white-space: normal;
    width: 10em;
}

.tablelabel {
    font-weight: bold;
    text-align: left;
}

/* Gecko */
html>body .goog-inline-block {
    display: -moz-inline-box; /* This is ignored by FF3 and later*/
    display: inline-block; /* This is ignored by pre-FF3 Gecko */
}

/* Default rule */
.goog-inline-block {
    position: relative;
    display: inline-block;
}

/* Pre-IE7 */
* html .goog-inline-block {
    display: inline;
}

/* IE7 */
*:first-child+html .goog-inline-block {
    display: inline;
}

#popular {
    border: solid silver;
    border-width: 1px 0 1px 0;
    padding: 0.3em;
    width: 40em;
}

#popular table {
    width: 40em;
}

#popular td {
    padding: 2px;
    white-space: nowrap;
}

#intro {
    background:#ada;
    margin: 3em;
    width: 52em;
}

.userlink_avail {
  display: inline-block;
  white-space: nowrap;
}

.availability_none {
    font-weight: bold;
    color: #FF1744;
}

.availability_unsure {
    font-weight: bold;
    color: #EF6C00;
}

.availability_never {
    font-weight: bold;
    color: #6A1B9A;
}

.availability_banned {
    font-weight: bold;
    color: var(--chops-black);
}

/* Just for screen readers. */
.visually_hidden {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}

.not_styled_as_heading {
    font-size: inherit !important;
    font-weight: inherit !important;
    display: inline !important;
    background: inherit !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Launch gates table. */

#launch-gates-table {
    border-collapse: collapse;
}
#launch-gates-table td, #launch-gates-table th {
    border: 1px solid #ddd;
    padding: 4px;
}
#launch-gates-table tr:nth-child(even){background-color: #f2f2f2;}

#launch-gates-table th {
    text-align: left;
    background-color: #6ec5ff;
}

input.unlink_account, input.incoming_invite {
    font-size: 80%;
}
