/*
 * Copyright 2007 Google Inc.
 * 
 * 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.
 */
 
body {
  color: #000000;
  background-color: white;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 11pt;
  margin: 20px 0;
  padding: 0;
}

p {
  margin: 0;
  padding: 0;
}

h1 {
  margin: 0;
  margin-bottom: 10px;
  padding: 0;
}

h2 {
  color: #AAAAAA;
  border-bottom: 1px solid #CCCCCC;
}

h3 {
  color: #AAAAAA;
}

a {
  color: #FFFFFF;
}

.code {
  font-family: Courier New;
  font-size: 10pt;
  color: green;
  font-weight: bold;
}

.intro-background {
  background-color: #2FBB10;
  color: white;
}

.intro-content {
  padding: 20px 180px;
}

.gwt-Label {
  display: inline;
}

.gwt-TextBox {
  color: #000000;
}

.gwt-TextBox-readonly {
  color: #808080;
}

.i18n-dictionary {
  font-size: 11pt;
}

.i18n-dictionary td {
  padding-right: 20px;
}

.i18n-dictionary-header-row {
  color: green;
  text-decoration: underline;
}

.i18n-sample {
  
}

.examples {
  margin: 20px 180px;
}

.example {
}

.example p {
  margin: 20px 0;
}

#numberFormatPatternError,#numberFormatInputError,#dateTimeFormatPatternError,#dateTimeFormatInputError
  {
  font-style: italic;
  color: red;
}

.example table {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 11pt; 
}

.example tr {
  vertical-align: top;
}

.example table th {
  font-weight: normal;
  text-align: left;
  margin: 2px;
}

.example table td {
  text-align: left;
}

.col1 {
  width: 16em;
}

.col2 {
  width: 32em;
}

.col2 * {
  width: 100%;
}

.col3 {
}
