/*

Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for the
specific language governing permissions and limitations under the License.

*/

/* General styles */

html, body { color: #000; font: normal 90% Arial,Helvetica,sans-serif;
  height: 100%; margin: 0; padding: 0; overflow: hidden;
}
:link, :visited { color: #ba1e16; text-decoration: none; }
:link img, :visited img { border: none; }

h1 { background: #333; border-right: 2px solid #111;
  border-bottom: 1px solid #333; color: #999;
  font: normal 125% Arial,Helvetica,sans-serif; height: 32px;
  line-height: 32px; margin: 0; padding: 0 0 0 .5em; position: relative;
}
h1 :link, h1 :visited, h1 strong { padding: .4em .5em; }
h1 :link, h1 :visited {
  background: url(../image/path.gif) 100% 50% no-repeat;
  color: #bbb; cursor: pointer; padding-right: 2.2em;
  text-shadow: #333 2px 2px 1px;
}
h1 strong { color: #fff; font-weight: normal; padding-right: 25px; }
h1 strong a {color:#fff !important;background:none !important;}
h1 :link.raw, h1 :visited.raw {
  background: url(../image/rarrow.png) 100% 50% no-repeat; position: absolute;
  right: 20px; width: 35px; height: 100%; padding: 0; margin: 0;
}
body.loading h1 strong {
  background: url(../image/spinner_33.gif) right center no-repeat;
}

hr { border: 1px solid #999; border-width: 1px 0 0; }
dl dt { font-weight: bold; }
code, tt, pre {
  font-family: "DejaVu Sans Mono",Menlo,Courier,monospace;
}
code.key { color: #333; font-weight: bold; }
code.string { color: #393; }
code.number, code.boolean { color: #339; }
code.null { color: #666; }

button { font-size: 100%; -webkit-appearance: square-button; }
button[disabled] { color: #999; }
input, select, textarea { background: #fff; border: 1px solid;
  border-color: #999 #ddd #ddd #999; color: #000; margin: 0; padding: 1px;
}
input.placeholder { color: #999; }
textarea {
  font-family: "DejaVu Sans Mono",Menlo,Courier,monospace;
  font-size: 100%;
}
fieldset { border: none; font-size: 95%; margin: 0; padding: .2em 0 0; }
fieldset legend { color: #666; font-weight: bold; padding: 0; }
fieldset input, fieldset select { font-size: 95%; }
fieldset p { margin: .4em; }

p.help { color: #999; font-size: 90%; margin: 0 2em 1em; }

/* Tabular listings */

table.listing { border-collapse: separate; border-spacing: 0;
  border: 1px solid #a7a7a7; clear: both; width: 100%;
}
table.listing caption { display: none; }
table.listing th, table.listing td { padding: .2em .5em; }
table.listing thead th { background: #dadada url(../image/thead.gif) repeat-x;
  border: 1px solid #a7a7a7; border-width: 0 0 1px 1px; color: #333;
  font-size: 95%; font-weight: normal; text-align: left;
  text-shadow: #999 2px 1px 2px; white-space: nowrap;
}
table.listing thead th:first-child { border-left: none; }
table.listing thead th.key {
  background: #a7afb6 url(../image/thead-key.gif) 0 0 repeat-x;
  padding-top: 2px;
}
table.listing thead th.key span {
  background: url(../image/order-asc.gif) 100% 3px no-repeat; cursor: pointer;
  padding-right: 20px;
}
table.listing thead th.desc span {
  background-image: url(../image/order-desc.gif);
}
table.listing tbody tr th, table.listing tbody tr td { background: #feffea; }
table.listing tbody tr.odd th, table.listing tbody tr.odd td,
table.listing tbody.odd tr th, table.listing tbody.odd tr td {
  background: #fff;
}
table.listing tbody th, table.listing tbody td {
  border-left: 1px solid #d9d9d9; padding: .4em .5em; vertical-align: top;
}
table.listing tbody th:first-child, table.listing tbody td:first-child {
  border-left: none;
}
table.listing tbody th { text-align: left; }
table.listing tbody th :link, table.listing tbody th :visited {
  display: block;
}
table.listing tbody.footer tr td { background: #e9e9e9;
  border-top: 1px solid #a7a7a7; color: #999; font-size: 90%;
  line-height: 1.8em;
}
table.listing tbody.footer #paging { float: right; }
table.listing tbody.footer #paging a,
table.listing tbody.footer #paging label {
  padding: 0 .5em;
}
table.listing tbody.footer #paging label { color: #666; }
table.listing tbody.footer #paging select { font-size: 90%; padding: 0; }

/* Inline editing */

span.editinline-tools { margin: 2px 2px 0; float: right; margin-right: -45px; }
span.editinline-tools button { background: transparent 0 0 no-repeat;
  border: none; cursor: pointer; display: block; float: left; margin: 0 .2em;
  width: 11px; height: 11px;
}
span.editinline-tools button:hover { background-position: 0 -22px; }
span.editinline-tools button:active { background-position: 0 -44px; }
span.editinline-tools button.apply {
  background-image: url(../image/apply.gif);
}
span.editinline-tools button.cancel {
  background-image: url(../image/cancel.gif);
}

/* Resizer grippies */

div.grippie { background: #e9e9e9 url(../image/grippie.gif) 50% 50% no-repeat;
  border: 1px solid #aaa; border-top: none; min-height: 10px;
}

/* Suggest results */

ul.suggest-dropdown { border: 1px solid #999; background-color: #eee;
  padding: 0; margin: 0; list-style: none; opacity: .85;
  -moz-box-shadow: 2px 2px 10px #333; -webkit-box-shadow: 2px 2px 10px #333;
}
ul.suggest-dropdown li { padding: 2px 5px; white-space: nowrap; color: #101010;
  text-align: left;
}
ul.suggest-dropdown li.selected { cursor: pointer; background: Highlight;
  color: HighlightText;
}

/* Logo & Navigation */

#sidebar { background: #fff; position: absolute; top: 0; right: -210px;
  width: 210px; height: 100%;
}
body.fullwidth #sidebar { border-bottom: 1px solid #333; right: 0;
  width: 26px;
}
#sidebar-toggle { background: url(../image/sidebar-toggle.png) 0 0 no-repeat;
  color: #999; cursor: pointer; display: block; position: absolute; right: 0;
  top: 0; font-size: 110%; width: 26px; height: 32px; text-indent: -9999px;
}
#sidebar-toggle:hover { background-position: -26px 0; }
#sidebar-toggle:focus { outline: none; }
#sidebar.hidden #sidebar-toggle { background-position: 0 -32px; }
#sidebar.hidden #sidebar-toggle:hover { background-position: -26px -32px; }

#logo { margin: 30px 0 0; padding: 0 18px 10px; }

#nav { color: #333; font-size: 110%; font-weight: bold; list-style: none;
  margin: 0; overflow: auto; overflow-x: hidden; padding: 0; width: 210px;
}
#nav ul { list-style: none; margin: 0; padding: 0; }
#nav li { color: #999; margin: 5px 0 0; padding: 3px 0; }
#nav li span { padding: 0 20px; }
#nav li.selected { background: #e9e9e9; }
#nav li li { font-size: 90%; font-weight: normal; margin: 0;
  padding: 2px 20px 2px 40px;
}
#nav li li:hover { background: #e4e4e4; }
#nav li.selected li:hover { background: #d7d7d7; }
#nav li li :link, #nav li li :visited { color: #333; display: block;
  overflow: hidden; text-decoration: none; text-overflow: ellipsis;
}
#nav li li :link:hover, #nav li li :visited:hover { color: #000; }
#nav li li :link:focus, #nav li li :visited:focus { outline: none; }
#nav li li.selected { background: #aaa !important; border-top: 1px solid #999;
  color: #fff; padding-top: 1px;
}
#nav li li.selected :link, #nav li li.selected :visited { color: #fff; }
#nav li li.selected :link:hover, #nav li li.selected :visited:hover {
  color: #fff;
}
#nav li button { background: transparent 0 0 no-repeat; border: none;
  cursor: pointer; width: 15px; height: 15px; margin-left: -20px;
  position: absolute; vertical-align: top;
}
#nav li li:hover button.remove {
  background-image: url(../image/delete-mini.png);
}
#nav li button.remove:hover { background-position: -15px 0; }

#footer { background: #ddd; border-top: 1px solid #bbb; color: #000;
  font-size: 80%; opacity: .7; padding: 5px 10px; position: absolute; right: 0;
  bottom: 0; min-height: 1.3em; width: 190px; text-align: right;
}
#footer .couch :link, #footer .couch :visited { color: #000; }

#userCtx span { display:none; }

#wrap { background: #fff url(../image/bg.png) 100% 0 repeat-y;
  height: 100%; margin-right: 210px; position: relative;
}
body.fullwidth #wrap { margin-right: 0; }
#content { padding: 1em 16px 3em 10px; overflow: auto; overflow-y: scroll;
  position: absolute; top: 33px; bottom: 0; left: 0; right: 0;
}

/* Toolbar */

#toolbar { font-size: 90%; line-height: 16px; list-style: none;
  margin: 0 0 .5em; padding: 5px 5px 5px 3px;
}
#toolbar li { display: inline; }
#toolbar li.current {float:right;}
#toolbar button { background: transparent 2px 2px no-repeat; border: none;
  color: #666; margin: 0; padding: 2px 1em 2px 22px; cursor: pointer;
  font-size: 95%; line-height: 16px;
}
#toolbar button[disabled] { opacity: .50; }
#toolbar button[disabled]:hover { background-position: 2px 2px; cursor: default; color: #666 }
#toolbar button:hover { background-position: 2px -30px; color: #000; }
#toolbar button:active { background-position: 2px -62px; color: #000; }
#toolbar button.add { background-image: url(../image/add.png); }
#toolbar button.security { background-image: url(../image/key.png); }
#toolbar button.compact { background-image: url(../image/compact.png); }
#toolbar button.delete { background-image: url(../image/delete.png); }
#toolbar button.load { background-image: url(../image/load.png); }
#toolbar button.run { background-image: url(../image/run.png); }
#toolbar button.save { background-image: url(../image/save.png); }
#toolbar button.share { background-image: url(../image/compact.png); }

/* Dialogs */

#overlay { background: #bbb; cursor: wait; position: fixed; width: 100%;
  height: 100%; top: 0; left: 0;
}
*html #overlay { position: absolute;
  width: expression(document.body.clientWidth + 'px');
  height: expression(document.body.clientHeight + 'px');
}
#dialog { background: #333 url(../image/progress.gif) 50% 50% no-repeat;
  color: #f4f4f4; overflow: hidden; opacity: .95; max-width: 33em;
  padding: 1em 1em 0; -moz-border-radius: 7px;
  -moz-box-shadow: 4px 4px 6px #333; -webkit-border-radius: 7px;
  -webkit-box-shadow: 4px 4px 6px #333;
}
*html #dialog { width: 33em; }
#dialog.loading { width: 220px; height: 80px; }
#dialog.loaded { background-image: none; }
#dialog h2 { background: #666 98% 50% no-repeat;
  border-top: 1px solid #555; border-bottom: 1px solid #777; color: #ccc;
  font-size: 110%; font-weight: bold; margin: 0 -1em; padding: .35em 1em;
}
body.loading #dialog h2 {
  background-image: url(../image/spinner_6b.gif);
}
#dialog h3 { color: #ccc; font-size: 100%; font-weight: bold; margin: 0 -2em;
  padding: .35em 2em 0;
}
#dialog fieldset { background: #222; border-top: 1px solid #111;
  margin: 0 0 1em; padding: .5em 1em 1em;
  -moz-border-radius-bottomleft: 7px; -moz-border-radius-bottomright: 7px;
  -webkit-border-bottom-left-radius: 7px;
  -webkit-border-bottom-right-radius: 7px;
}
#dialog p.help { color: #bbb; font-size: 95%; margin: 0 0 1em; }
#dialog fieldset table { margin-top: 1em; }
#dialog fieldset th, #dialog fieldset td { padding: .5em;
  vertical-align: top;
}
#dialog fieldset th { color: #999; font-weight: bold;
  text-align: right;
}
#dialog fieldset input { background-color: #e9e9e9; vertical-align: middle; }
#dialog fieldset input.error { background-color: #f9e4e4; }
#dialog fieldset div.error { padding-top: .3em; color: #b33; }
#dialog fieldset.radiogroup { padding-top: 1em; }
#dialog fieldset.radiogroup label { position: relative; padding-left: 25px; }
#dialog fieldset.radiogroup input { position: absolute; left: 5px; top: 2px; }
#dialog fieldset.radiogroup p.help { margin-top: .5em; margin-left: 25px; }
#dialog fieldset.radiogroup hr { border-color: #333; margin-left: 25px; }
#dialog .buttons { padding: 0 .5em .5em; text-align: right; }
#dialog .buttons button { background: #444; border: 1px solid #aaa;
  color: #ddd; cursor: pointer; font-size: 90%; font-weight: normal;
  margin: 0 0 0 5px; padding: .2em 2em; -moz-border-radius: 10px;
  -webkit-border-radius: 10px;
}
#dialog .buttons button[type=submit] { font-weight: bold; }
#dialog .buttons button:hover { background: #555; }
#dialog .buttons button:active { background: #333; color: #fff; }

#dialog fieldset td#progress {
  background: url(../image/progress.gif) 50% 50% no-repeat;
  visibility: hidden;
}

/* Document quick jump */

#jumpto { float: right; padding: 5px 10px 5px 5px; line-height: 16px;
  font-weight: bold; color: #666; font-size: 90%; }

#jumpto input { font-size: 90%; }

/* View selector */

#switch { color: #666; float: right; font-size: 90%; font-weight: bold;
  line-height: 16px; padding: 5px;
}
#switch select { font-size: 90%; }

/* Stale views checkbox */

#staleviews {
  color: #666; float: right; font-size: 90%;
  font-weight: bold; line-height: 16px; padding: 5px;
}

/* View function editing */

#viewcode { background: #fff; border: 1px solid;
  border-color: #999 #ddd #ddd #999; margin: 0 0 1em; overflow: hidden;
}
#viewcode .top, #viewcode .bottom { background-color: #e9e9e9;
  border: 1px solid; border-color: #ddd #ddd #e9e9e9 #ddd; color: #333;
  padding: 0 .5em 2px;
}
#viewcode .top { border-bottom: 1px solid #ddd; color: #aaa; font-size: 95%; }
#viewcode .top span { border: none; color: #666; cursor: pointer;
  display: block; font-size: 90%; margin: 0; padding: 2px 0 0;
}
#viewcode .top span#view-toggle {
  background: url(../image/twisty.gif) 0 -96px no-repeat; padding-left: 15px;
}
#viewcode.collapsed .top span#view-toggle { background-position: 0 4px; }
#viewcode .top a { float: right; font-size: 90%; line-height: 1.4em;
  padding: 2px 2px 0 0;
}
#viewcode .top a:link, #viewcode .top a:visited { color: #999; }
#viewcode table { border: none; border-collapse: separate; border-spacing: 0;
  margin: 0; table-layout: fixed; width: 100%; max-width: 100%;
}
#viewcode table td { border: none; padding: 0; }
#viewcode table td.splitter { background: #e9e9e9; width: 4px; }
#viewcode table td.map { border-right: 1px solid #ccc; }
#viewcode table td.reduce { border-left: 1px solid #ccc; }
#viewcode .code label { font-size: 90%; color: #999; padding: 0 .5em;
  white-space: nowrap;
}
#viewcode .code textarea { border: none; border-top: 1px solid #ccc;
  color: #333; font-size: 11px; margin: 0; min-height: 50px; overflow: auto;
  padding: .4em 0 0; resize: none; width: 100%;
}
#viewcode .code textarea:focus { background: #e9f4ff; }
#viewcode .bottom { border-bottom: none; clear: left; padding: 1px 3px; }
#viewcode .bottom button { font-size: 90%; margin: 0 1em 0 0;
  padding-left: 2em; padding-right: 2em;
}
*html #viewcode .bottom button { padding: 0 .5em; }
*+html #viewcode .bottom button { padding: 0 .5em; }
#viewcode .bottom button.revert, #viewcode .bottom button.save,
#viewcode .bottom button.saveas {
  float: right; margin: 0 0 0 1em;
}
#viewcode .bottom button.save { font-weight: bold; }
#viewcode .bottom label { color: #666; font-size: 90%; }
#viewcode .grippie { background-position: 50% 50%; }
#viewcode.collapsed { background: #e9e9e9; }
#viewcode.collapsed .top { border-bottom: none; }
#viewcode.collapsed .top span { background-position: 0 3px; }
#viewcode.collapsed table, #viewcode.collapsed .bottom { display: none; }

#tempwarn { display: none; font-size: 90%; margin: 0 2em 1.5em; }
#grouptruenotice { display: none; font-size: 90%; margin: 1ex 2em 1.5em; }
#viewrequestduration { display: none; font-size: 90%; margin: 1ex 2em 1.5em; }
#viewrequestduration .timestamp { margin-left: 0.25em; }

/* Database table */

#databases thead th.size, #databases thead th.count, #databases thead th.seq,
#databases tbody td.size, #databases tbody td.count, #databases tbody td.seq {
  text-align: right;
}

/* Documents table */

#documents thead th { line-height: 150%; width: 50%; }
#documents thead th label { color: #333; float: right; font-size: 90%;
  text-shadow: none;
}
#documents thead th label.disabled { color: #777; }
#documents thead th label input { vertical-align: middle; }
#documents thead th label input[type=range] { width: 7em; }
#documents thead th label output { width: 4em; display: inline-block; }
#documents tbody.content td { color: #999;
  font: normal 11px "DejaVu Sans Mono",Menlo,Courier,monospace;
}
#documents tbody.content td.key { color: #333; }
#documents tbody.content td.key a { display: block; }
#documents tbody.content td.key a strong { font-weight: normal; }
#documents tbody.content td.key span.docid { color: #999;
  font: normal 10px Arial,Helvetica,sans-serif;
}
#documents tbody.content td.value { font-size: 10px; }

/* Document display tabs */

#tabs { float: right; list-style: none; margin: -1.4em 0 0; }
#tabs li { display: inline; font-size: 95%; padding: 0; }
#tabs li.active { font-weight: bold; }
#tabs :link, #tabs :visited { background: #dadada; color: #666;
  border: 1px solid #a7a7a7; float: left; margin: 0 0 0 .5em;
  padding: .5em 2em .3em; position: relative; top: 1px;
}
#tabs .active :link, #tabs .active :visited { background: #e9e9e9;
  border-bottom-color: #e9e9e9; color: #333;
}
#tabs :link:focus, #tabs :visited:focus { outline: none; }

/* Document fields table */

#fields { clear: right; table-layout: fixed; }
#fields col.field { width: 33%; }
#fields tbody.content th { padding-left: 25px; padding-right: 48px; }
#fields tbody.content th button.delete {
  background: url(../image/delete-mini.png) no-repeat; border: none;
  cursor: pointer; float: left; margin: .2em 5px 0 -20px; padding: 0;
  width: 15px; height: 15px;
}
#fields tbody.content th button.delete:hover { background-position: -15px 0; }
#fields tbody.content th b { display: block; padding: 2px 2px 2px 3px; }
#fields tbody.content th b.editinline-container { padding: 0; }
#fields tbody.content td { color: #999; padding-left: 14px;
  padding-right: 48px;
}
#fields tbody.content td code { display: block; font-size: 11px;
  padding: 2px 2px 2px 3px; position: relative;
}
#fields tbody.content td code.string { white-space: pre-wrap; }
#fields tbody.content td code.string:before { color: #ccc; content: "“";
  position: absolute; left: -4px;
}
#fields tbody.content td code.string:after { color: #ccc; content: "”"; }

#fields tbody.content td dl { margin: 0; padding: 0; }
#fields tbody.content td dt {
  background: transparent url(../image/toggle-collapse.gif) 0 3px no-repeat;
  clear: left; color: #333; cursor: pointer; line-height: 1em;
  margin-left: -12px; padding-left: 14px;
}
#fields tbody.content td dd { line-height: 1em; margin: 0;
  padding: 0 0 0 1em;
}
#fields tbody.content td dt.collapsed {
  background-image: url(../image/toggle-expand.gif);
}
#fields tbody.content td dt.inline { background-image: none; cursor: default;
  float: left; margin-left: 0; padding-left: 2px; padding-right: .5em;
  padding-top: 2px;
}
#fields tbody.content td dd code.string { left: 4px; text-indent: -6px; }
#fields tbody.content td dd code.string:before { position: static; }
#fields tbody.content input, #fields tbody.content textarea,
#fields tbody.source textarea {
  background: #fff; border: 1px solid; border-color: #999 #ddd #ddd #999;
  margin: 0; padding: 1px; width: 100%;
}
#fields tbody.content th input { font-family: inherit; font-size: inherit;
  font-weight: bold;
}
#fields tbody.content td input, #fields tbody.content td textarea,
#fields tbody.source textarea {
  font: normal 11px "DejaVu Sans Mono",Menlo,Courier,monospace;
}
#fields tbody.content input.invalid,
#fields tbody.content textarea.invalid,
#fields tbody.source textarea.invalid {
  background: #f9f4f4; border-color: #b66 #ebb #ebb #b66;
}
#fields tbody.content div.grippie, #fields tbody.source div.grippie {
  padding: 0 1px; width: 100%;
}
#fields tbody.content div.error, #fields tbody.source div.error {
  color: #d33;
}

#fields tbody.content td ul.attachments { list-style: none; margin: 0;
  padding: 0;
}
#fields tbody.content td ul.attachments li {
  margin-bottom: .3em; min-height: 20px; padding-left: 20px;
}
#fields tbody.content td ul.attachments tt { font-size: 11px; }
#fields tbody.content td ul.attachments li span.info { color: #666;
  display: block; font-size: 95%;
}
#fields tbody.content td ul.attachments li button {
  background: transparent no-repeat; border: none; cursor: pointer;
  float: left; margin: 0 2px 0 -20px; padding: 0; width: 15px; height: 15px;
  vertical-align: middle;
}
#fields tbody.content td ul.attachments li button:hover {
  background-position: -15px 0;
}
#fields tbody.content td ul.attachments li button.delete {
  background-image: url(../image/delete-mini.png);
}
#fields tbody.source td pre { color: #999; font-size: 11px; line-height: 1.6em;
  margin: 0; overflow: auto; white-space: pre-wrap; width: 100%;
}
#fields tbody.source td.editinline-container { padding-left: 14px; padding-right: 48px; }

/* Test suite */

#tests { table-layout: fixed; }
#tests thead th.name { width: 20%; }
#tests thead th.status { padding-left: 20px; width: 10em; }
#tests thead th.duration { text-align: right; width: 7em; }
#tests tbody.content th { cursor: help; padding-left: 25px;
  white-space: nowrap;
}
#tests tbody.content th button.run {
  background: url(../image/run-mini.png) no-repeat; border: none;
  cursor: pointer; float: left; margin: .2em 5px 0 -20px; padding: 0;
  width: 15px; height: 15px;
}
#tests tbody.content th button.run:hover { background-position: -15px 0; }
#tests tbody.content td.duration { text-align: right; width: 6em; }
#tests tbody.content td.status { background-position: 5px 8px;
  background-repeat: no-repeat; color: #999; padding-left: 20px;
}
#tests tbody.content td.details { width: 50%; }
#tests tbody.content td.details a { border-bottom: 1px dashed #ccc;
  color: #999; float: right; font-size: 85%;
}
#tests tbody.content td.details ol { color: #999; margin: 0;
  padding: 0 0 0 1.5em;
}
#tests tbody.content td.details ol b { color: #333; font-weight: normal; }
#tests tbody.content td.details ol code { color: #c00; font-size: 100%; }
#tests tbody.content td.details ol code.error { white-space: pre; }
#tests tbody.content td.running {
  background-image: url(../image/running.png); color: #333;
}
#tests tbody.content td.success, span.success {
  background-image: url(../image/test_success.gif) no-repeat; color: #060;
}
#tests tbody.content td.error, #tests tbody.content td.failure, span.failure {
  background-image: url(../image/test_failure.gif) no-repeat; color: #c00;
}

#result {
  color: #060;
}

/* Configuration */

#config tbody th { background: #e6e6e6; border-right: none;
  border-top: 1px solid #d9d9d9;
}
#config tbody td.name { border-left: 1px solid #d9d9d9; color: #333;
  font-weight: bold;
}
#config tbody td.value { padding: 1px 48px 1px 1px; }
#config tbody td.value code { display: block; font-size: 11px;
  padding: 2px 2px 2px 3px;
}
#config tbody td.value code.editinline-container { padding: 0; }
#config tbody td input {
  background: #fff; border: 1px solid; border-color: #999 #ddd #ddd #999;
  font: normal 11px "DejaVu Sans Mono",Menlo,Courier,monospace;
  margin: 0; padding: 1px; width: 100%;
}

/* Replication */

form#replicator { background: #f4f4f4; border: 1px solid;
  border-color: #999 #ccc #ccc #999; margin: .5em 1em 1.5em; padding: .5em;
  -moz-border-radius: 7px; -webkit-border-radius: 7px;
}
form#replicator fieldset { float: left; padding: 1px; }
form#replicator p.swap { float: left; margin: 2em 0 0; padding: 1px 1em; }
form#replicator p.swap button { background: transparent; border: none;
  color: #666; cursor: pointer; font-size: 150%;
}
form#replicator p.swap button:hover { color: #000; }
form#replicator p.actions { padding: 1px; clear: left; margin: 0;
  text-align: right;
}

/* Active tasks */

#interval { color: #666; float: right; font-size: 90%; font-weight: bold;
  line-height: 16px; padding: 5px;
}
#interval input { vertical-align: top; }
#interval .secs { display: inline-block; width: 2em; text-align: right; }

#status tr.none th { color: #666; font-weight: normal; }
#status td.object, #status td.pid {
  font-family: "DejaVu Sans Mono",Menlo,Courier,monospace;
  font-size: 11px;
}


/* Session */
#loginSignup {
  font-size:200%;
}
