/**
*  All Calls is a Node.js sample app that is powered by Usergrid
*  This app shows how to make the 4 REST calls (GET, POST,
*  PUT, DELETE) against the usergrid API.
*
*  Learn more at http://Usergrid.com/docs
*
*   Copyright 2012 Apigee Corporation
*
*  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.
*/

/**
*  @file styles.css
*  @author Rod Simpson (rod@apigee.com)
*
*/

body {
  background-color: #fff;
  min-height: 800px;
}

/* buttons ================================================================= */
.btn-primary{border-color:#1455ab #1455ab #0c3367;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);background-color:#146cab;background-image:-moz-linear-gradient(top, #147bab, #1455ab);background-image:-ms-linear-gradient(top, #147bab, #1455ab);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#147bab), to(#1455ab));background-image:-webkit-linear-gradient(top, #147bab, #1455ab);background-image:-o-linear-gradient(top, #147bab, #1455ab);background-image:linear-gradient(top, #147bab, #1455ab);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#147bab', endColorstr='#1455ab', GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false);}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{background-color:#1455ab;}

.header{
   padding: 10px;
   width: 100%;
   height: 40px;
   background-color: #ff4200;
   color: #fff;
   text-align: left;
   font-size: 16px;
   font-weight: 800;
}
.breadcrumb{
  font-size: 16px;
}
.info{
  padding: 0px 30px 30px 30px;
  font-size: 16px;
}
h3{
 padding-bottom: 20px;
}
.main{
   display: block;
   padding: 0 30px 30px 30px ;
   background-color: #fff;
}
.form-block{
  display: block;
  display: none;
  padding: 10px 0;
  min-height: 210px;
  background-color: #fff;
}
.section-header{
  font-size: 20px;
  font-weight: 200;
  padding-bottom: 20px;
}
.note {
   padding-bottom: 20px;
}
.response-box{
   margin: 0 auto;
   padding: 10px;
   width: 640px;
   border: 1px solid silver;
   background-color: #ddd;
   font-weight: bold;
}
pre{
   border: none;
   padding: 0;
}
.left{
   float: left;
}