/* file: android-developer-core.css
   author: smain
   date: september 2008
   info: core developer styles (developer.android.com)
*/


/* RESET STYLES */

html,body,div,h1,h2,h3,h4,h5,h6,p,img,
dl,dt,dd,ol,ul,li,table,caption,tbody,
tfoot,thead,tr,th,td,form,fieldset,
embed,object,applet {
  margin: 0;
  padding: 0;
  border: 0;
}

/* BASICS */

html, body {
  overflow:hidden; /* keeps scrollbar off IE */
  background-color:#fff;
}

body {
  font-family:arial,sans-serif;
  color:#000;
  font-size:13px;
  color:#333;
  background-image:url(images/bg_fade.jpg);
  background-repeat:repeat-x;
}

a, a code {
  color:#006699;
}

a:active,
a:active code {
  color:#f00;
} 

a:visited,
a:visited code {
  color:#006699;
}

input, select,
textarea, option, label {
  font-family:inherit;
  font-size:inherit;
  padding:0;
  margin:0;
  vertical-align:middle;
}

option {
  padding:0 4px;
}

p, form {
  padding:0;
  margin:0 0 1em;
}

code, pre {
  color:#007000;
  font-family:monospace;
  line-height:1em;
}

var {
  color:#007000;
  font-style:italic;
}

pre {
  border:1px solid #ccc;
  background-color:#fafafa;
  padding:10px;
  margin:0 0 1em 1em;
  overflow:auto;
  line-height:inherit; /* fixes vertical scrolling in webkit */
}

h1,h2,h3,h4,h5 {
  margin:1em 0;
  padding:0;
}

p,ul,ol,dl,dd,dt,li {
  line-height:1.3em;
}

ul,ol {
  margin:0 0 .8em;
  padding:0 0 0 2em;
}

li {
  padding:0 0 .5em;
}

dl {
  margin:0 0 1em 0;
  padding:0;
}

dt {
  margin:0;
  padding:0;
}

dd {
  margin:0 0 1em;
  padding:0 0 0 2em;
}

li p {
  margin:.5em 0 0;
}

dd p {
  margin:1em 0 0;
}

li pre, li table, li img {
  margin:.5em 0 0 1em;
}

dd pre,
#jd-content dd table,
#jd-content dd img {
  margin:1em 0 0 1em;
}

li ul,
li ol,
dd ul,
dd ol {
  margin:0;
  padding: 0 0 0 2em;
}

li li,
dd li {
  margin:0;
  padding:.5em 0 0;
}

dl dl,
ol dl,
ul dl {
  margin:0 0 1em;
  padding:0;
}

table {
  font-size:1em;
  margin:0 0 1em;
  padding:0;
  border-collapse:collapse;
  border-width:0;
  empty-cells:show;
}

td,th {
  border:1px solid #ccc;
  padding:6px 12px;
  text-align:left;
  vertical-align:top;
  background-color:inherit;
}

th {
  background-color:#dee8f1;
}

td > p:last-child {
  margin:0;
}

hr.blue {
  background-color:#DDF0F2;
  border:none;
  height:5px;
  margin:20px 0 10px;
}

blockquote {
  margin: 0 0 1em 1em;
  padding: 0 4em 0 1em;
  border-left:2px solid #eee;
}
/* LAYOUT */

#body-content {
  /* "Preliminary" watermark for preview releases and interim builds.
  background:transparent url(images/preliminary.png) repeat scroll 0 0; */
  margin:0;
  position:relative;
  width:100%;
}

#header {
  height: 114px;
  position:relative;
  z-index:100;
  min-width:675px; /* min width for the tabs, before they wrap */
  padding:0 10px;
  border-bottom:3px solid #94b922;
}

#headerLeft{
  padding: 25px 0 0;
}

#headerLeft img{
  height:50px;
  width:180px;
}

#headerRight {
  position:absolute;
  right:0;
  top:0;
  text-align:right;
}

/* Tabs in the header */

#header ul {
  list-style: none;
  margin: 7px 0 0;
  padding: 0;
  height: 29px;
}

#header li {
  float: left;
  margin: 0px 2px 0px 0px;
  padding:0;
}

#header li a {
  text-decoration: none;
  display: block;
  background-image: url(images/bg_images_sprite.png);
  background-position: 0 -58px;
  background-repeat: no-repeat;
  color: #666;
  font-size: 13px;
  font-weight: bold;
  width: 94px;
  height: 29px;
  text-align: center;
  margin: 0px;
}

#header li a:hover {
  background-image: url(images/bg_images_sprite.png);
  background-position: 0 -29px;
  background-repeat: no-repeat;
}

#header li a span {
  position:relative;
  top:7px;
}

#header li a span+span {
  display:none;
}

/* tab highlighting */

.home #home-link a,
.guide #guide-link a,
.reference #reference-link a,
.sdk #sdk-link a,
.resources #resources-link a,
.videos #videos-link a {
  background-image: url(images/bg_images_sprite.png);
  background-position: 0 0;
  background-repeat: no-repeat;
  color: #fff;
  font-weight: bold;
  cursor:default;
}

.home #home-link a:hover,
.guide #guide-link a:hover,
.reference #reference-link a:hover,
.sdk #sdk-link a:hover,
.resources #resources-link a:hover,
.videos #videos-link  a:hover {
  background-image: url(images/bg_images_sprite.png);
  background-position: 0 0;
}

#headerLinks {
  margin:10px 10px 0 0;
  height:13px;
  font-size: 11px;
  vertical-align: top;
}

#headerLinks a {
  color: #7FA9B5;
}

#headerLinks img {
  vertical-align:middle;
}

#language {
  margin:0 10px 0 4px;
}

#search {
  height:45px;
  margin:15px 10px 0 0;
}

/* MAIN BODY */

#mainBodyFluid {
  margin: 20px 10px;
  color:#333;
}

#mainBodyFixed {
  margin: 20px 10px;
  color: #333;
  width:930px;
  position:relative;
}

#mainBodyFixed h3,
#mainBodyFluid h3 {
  color:#336666;
  font-size:1.25em;
  margin: 0em 0em 0em 0em;
  padding-bottom:.5em;
}

#mainBodyFixed h2,
#mainBodyFluid h2 {
  color:#336666;
  font-size:1.25em;
  margin: 0;
  padding-bottom:.5em;
}

#mainBodyFixed h1,
#mainBodyFluid h1 {
  color:#435A6E;
  font-size:1.7em;
  margin: 1em 0;
}

#mainBodyFixed .green,
#mainBodyFluid .green,
#jd-content .green {
  color:#7BB026;
  background-color:none;
}

#mainBodyLeft {
  float: left;
  width: 600px;
  margin-right: 20px;
  color: #333;
  position:relative;
}

div.indent {
  margin-left: 40px;
  margin-right: 70px;
}

#mainBodyLeft p {
  color: #333;
  font-size: 13px;
}

#mainBodyLeft p.blue {
  color: #669999;
}

#mainBodyLeft #communityDiv {
  float: left;
  background-image:url(images/bg_community_leftDiv.jpg);
  background-repeat: no-repeat;
  width: 581px;
  height: 347px;
  padding: 20px 0px 0px 20px;
}

#mainBodyRight {
  float: left;
  width: 300px;
  color: #333;
}

#mainBodyRight p {
  padding-right: 50px;
  color: #333;
}

#mainBodyRight table {
  width: 100%;
}

#mainBodyRight td {
  border:0px solid #666;
  padding:0px 5px;
  text-align:left;
}

#mainBodyRight td p {
  margin:0 0 1em 0;
}

#mainBodyRight .blueBorderBox {
  border:5px solid #ddf0f2;
  padding:18px 18px 18px 18px;
  text-align:left;
}

#mainBodyFixed .seperator {
  background-image:url(images/hr_gray_side.jpg);
  background-repeat:no-repeat;
  width: 100%;
  float: left;
  clear: both;
}

#mainBodyBottom {
  float: left;
  width: 100%;
  clear:both;
  color: #333;
}

#mainBodyBottom .seperator {
  background-image:url(images/hr_gray_main.jpg);
  background-repeat:no-repeat;
  width: 100%;
  float: left;
  clear: both;
}

/* FOOTER */

#footer {
  float: left;
  width:90%;
  margin: 20px;
  color: #aaa;
  font-size: 11px;
}

#footer a {
  color: #aaa;
  font-size: 11px;
}

#footer a:hover {
  text-decoration: underline;
  color:#aaa;
}

#footerlinks {
  margin-top:2px;
}

#footerlinks a,
#footerlinks a:visited {
  color:#006699;
}

/* SEARCH FILTER */

#search_autocomplete {
  color:#aaa;
}

#search-button {
  display:inline;
}

#search_filtered_div {
  position:absolute;
  margin-top:-1px;
  z-index:101;
  border:1px solid #BCCDF0;
  background-color:#fff;
}

#search_filtered {
  min-width:100%;
}
#search_filtered td{
  background-color:#fff;
  border-bottom: 1px solid #669999;
  line-height:1.5em;
}

#search_filtered .jd-selected {
  background-color: #94b922;
  cursor:pointer;
}
#search_filtered .jd-selected,
#search_filtered .jd-selected a {
  color:#fff;
}

.no-display {
  display: none;
}

.jd-autocomplete {
  font-family: Arial, sans-serif;
  padding-left: 6px;
  padding-right: 6px;
  padding-top: 1px;
  padding-bottom: 1px;
  font-size: 0.81em;
  border: none;
  margin: 0;
  line-height: 1.05em;
}

.show-row {
  display: table-row;
}
.hide-row {
  display: hidden;
}

/* SEARCH */

/* restrict global search form width */
#searchForm {
  width:350px;
}

#searchTxt {
  width:200px;
}

/* disable twiddle and size selectors for left column */
#leftSearchControl div {
  width: 100%;
}

#leftSearchControl .gsc-twiddle {
  background-image : none;
}

#leftSearchControl td, #searchForm td {
  border: 0px solid #000;
}

#leftSearchControl .gsc-resultsHeader .gsc-title {
  padding-left : 0px;
  font-weight : bold;
  font-size : 13px;
  color:#006699;
  display : none;
}

#leftSearchControl .gsc-resultsHeader div.gsc-results-selector {
  display : none;
}

#leftSearchControl .gsc-resultsRoot {
  padding-top : 6px;
}

#leftSearchControl div.gs-visibleUrl-long {
  display : block;
  color:#006699;
}

.gsc-webResult div.gs-visibleUrl-short,
table.gsc-branding,
.gsc-clear-button {
  display : none;
}

.gsc-cursor-box .gsc-cursor div.gsc-cursor-page,
.gsc-cursor-box .gsc-trailing-more-results a.gsc-trailing-more-results,
#leftSearchControl a,
#leftSearchControl a b {
  color:#006699;
}

.gsc-resultsHeader {
  display: none;
}

/* Disable built in search forms */
.gsc-control form.gsc-search-box {
  display : none;
}
table.gsc-search-box {
  margin:6px 0 0 0;
  border-collapse:collapse;
}

td.gsc-input {
  padding:0 2px;
  width:100%;
  vertical-align:middle;
}

input.gsc-input {
  border:1px solid #BCCDF0;
  width:99%;
  padding-left:2px;
  font-size:.95em;
}

td.gsc-search-button {
  text-align: right;
  padding:0;
  vertical-align:top;
}

#search-button {
  margin:0 0 0 2px;
  font-size:11px;
}

/* search result tabs */

#doc-content .gsc-control {
  position:relative;
}

#doc-content .gsc-tabsArea {
  position:relative;
  white-space:nowrap;
}

#doc-content .gsc-tabHeader {
  padding: 3px 6px;
  position:relative;
  width:auto;
}

#doc-content .gsc-tabHeader.gsc-tabhActive {
  border-top: 2px solid #94B922;
}

#doc-content h2#searchTitle {
  padding:0;
}

#doc-content .gsc-resultsbox-visible {
  padding:1em 0 0 6px;
}

/* CAROUSEL */

#homeMiddle {
  padding: 0px 0px 0px 0px;
  float: left;
  width: 584px;
  height: 627px;
  position:relative;
}

#topAnnouncement {
  background:url(images/home/bg_home_announcement.png) no-repeat 0 0;
}
  
#homeTitle {
  padding:15px 15px 0;
  height:30px;
}

#homeTitle h2 {
  padding:0;
}

#announcement-block {
  padding:0 15px 0;
  overflow:hidden;
  background: url(images/hr_gray_side.jpg) no-repeat 15px 0;
  zoom:1;
}

#announcement-block>* {
  padding:15px 0 0;
}

#announcement-block img {
  float:left;
  margin:0 30px 0 0;
}

#announcement {
  float:left;
  margin:0;
}

#carousel {
  background:url(images/home/bg_home_carousel.png) no-repeat 0 0;
  position:relative;
  height:400px;
}

#carouselMain {
  background: url(images/home/bg_home_carousel_board.png) 0 0 no-repeat;
  height:auto;
  padding: 25px 21px 0;
  overflow:hidden;
  position:relative;
  zoom:1; /*IE6*/
}

#carouselMain img {
  margin:0;
}

#carouselMain .bulletinDesc h3 {
  margin:0;
  padding:0;
}

#carouselMain .bulletinDesc p {
  margin:0;
  padding:0.7em 0 0;
}

#carouselWheel {
  background: url(images/home/bg_home_carousel_wheel.png) 0 0 no-repeat;
  padding-top:40px;
  height:150px;
}

.clearer { clear:both; }

a#arrow-left, a#arrow-right {
  float:left;
  width:42px;
  height:42px;
  background-image:url(images/home/carousel_buttons_sprite.png);
  background-repeat:no-repeat;
}
a#arrow-left {
  margin:35px 3px 0 10px;
}
a#arrow-right {
  margin:35px 10px 0 0;
}
a.arrow-left-off,
a#arrow-left.arrow-left-off:hover {
  background-position:0 0;
}
a.arrow-right-off,
a#arrow-right.arrow-right-off:hover {
  background-position:-42px 0;
}
a#arrow-left:hover {
  background-position:0 -42px;
}
a#arrow-right:hover {
  background-position:-42px -42px;
}
a.arrow-left-on {
  background-position:0 0;
}
a.arrow-right-on {
  background-position:-42px 0;
}
a.arrow-right-off,
a.arrow-left-off {
  cursor:default;
}

.app-list-container {
  margin:0 20px;
  position:relative;
  width:100%;
}

div#list-clip {
  height:110px;
  width:438px;
  overflow:hidden;
  position:relative;
  float:left;
}

div#app-list {
  left:0;
  z-index:1;
  position:absolute;
  margin:11px 0 0;
  _margin-top:13px;
  width:1000%;
}

#app-list a {
  display:block;
  float:left;
  height:90px;
  width:90px;
  margin:0 24px 0;
  padding:3px;
  background:#99cccc;
  -webkit-border-radius:7px;
  -moz-border-radius:7px;
  border-radius:7px;
  text-decoration:none;
  text-align:center;
  font-size:11px;
  line-height:11px;
}

#app-list a span {
  position:relative;
  top:-4px;
}

#app-list img {
  width:90px;
  height:70px;
  margin:0;
}

#app-list a.selected,
#app-list a:active.selected,
#app-list a:hover.selected {
  background:#A4C639;
  color:#fff;
  cursor:default;
  text-decoration:none;
}

#app-list a:hover,
#app-list a:active {
  background:#ff9900;
}

#app-list a:hover span,
#app-list a:active span {
  text-decoration:underline;
}

#droid-name {
  padding-top:.5em;
  color:#666;
  padding-bottom:.25em;
}

/*IE6*/
* html #app-list a { zoom: 1; margin:0 24px 0 15px;}

* html #list-clip {
  width:430px !important;
}

/*carousel bulletin layouts*/
/*460px width*/
/*185px height*/
.img-left {
  float:left;
  width:230px;
  overflow:hidden;
  padding:8px 0 8px 8px;
}
.desc-right {
  float:left;
  width:270px;
  padding:10px;
}
.img-right {
  float:right;
  width:220px;
  overflow:hidden;
  padding:8px 8px 8px 0;
}
.desc-left {
  float:right;
  width:280px;
  padding:10px;
  text-align:right;
}
.img-top {
  padding:20px 20px 0;
}
.desc-bottom {
  padding:10px;
}


/* VIDEO PAGE */

#mainBodyLeft.videoPlayer {
  width:570px;
}

#mainBodyRight.videoPlayer {
  width:330px;
}

/* player */

#videoPlayerBox {
  background-color: #DAF3FC;
  border-radius:7px;
  -moz-border-radius:7px;
  -webkit-border-radius:7px;
  width:530px;
  padding:20px;
  border:1px solid #d3ecf5;
  box-shadow:2px 3px 1px #eee;
  -moz-box-shadow:2px 3px 1px #eee;
  -webkit-box-shadow:2px 3px 1px #eee;
}

#videoBorder {
  background-color: #FFF;
  min-height:399px;
  height:auto !important;
  border:1px solid #ccdada;
  border-radius:7px 7px 0 0;
  -moz-border-radius:7px 7px 0 0;
  -webkit-border-top-left-radius:7px;
  -webkit-border-top-right-radius:7px;
}

#videoPlayerTitle {
  width:500px;
  padding:15px 15px 0;
}

#videoPlayerTitle h2 {
  font-weight:bold;
  font-size:1.2em;
  color:#336666;
  margin:0;
  padding:0;
}

#objectWrapper {
  padding:15px 15px;
  height:334px;
  width:500px;
}

/* playlist tabs */

ul#videoTabs {
  list-style-type:none;
  padding:0;
  clear:both;
  margin:0;
  padding: 20px 0 0 15px;
  zoom:1; /* IE7/8, otherwise top-padding is double */
}

ul#videoTabs li {
  display:inline;
  padding:0;
  margin:0 3px 0 0;
  line-height:2em;
}

ul#videoTabs li a {
  border-radius:7px 7px 0 0;
  -moz-border-radius:7px 7px 0 0;
  -webkit-border-top-left-radius:7px;
  -webkit-border-top-right-radius:7px;
  background:#95c0d0;
  color:#fff;
  text-decoration:none;
  padding:.45em 1.5em;
  font-weight:bold;
}

ul#videoTabs li.selected a {
  font-weight:bold;
  text-decoration:none;
  color:#555;
  background:#daf3fc;
  border-bottom:1px solid #daf3fc;
}

ul#videoTabs li:hover a {
  background:#85acba;
}

ul#videoTabs li.selected:hover a {
  background:#daf3fc;
}

/* playlists */

#videos {
  background:#daf3fc;
  margin-bottom:1.5em;
  padding:15px;
  border-radius:5px;
  -moz-border-radius:5px;
  -webkit-border-radius:5px;
  box-shadow:2px 3px 1px #eee;
  -moz-box-shadow:2px 3px 1px #eee;
  -webkit-box-shadow:2px 3px 1px #eee;
}

#videos div {
  display:none;
}

#videos div.selected {
  display:block;
}

ul.videoPreviews {
  list-style:none;
  padding:0;
  margin:0;
  zoom:1; /* IE, otherwise, layout doesn't update when showing 'more' */
}

ul.videoPreviews li {
  margin:0 0 5px;
  padding:0;
  overflow:hidden;
  position:relative;
}

#mainBodyFixed ul.videoPreviews h3 {
  font-size: 12px;
  margin:0 0 1em 130px;
  padding:0;
  font-weight:bold;
  color:inherit;
}

ul.videoPreviews a {
  margin:1px;
  padding:10px;
  text-decoration:none;
  height:90px;
  display:block;
  border-radius:5px;
  -moz-border-radius:5px;
  -webkit-border-radius:5px;
  background-color:transparent;
}

ul.videoPreviews a:hover {
  background-color:#FFF;
  border:none; /* IE8, otherwise, bg doesn't work */
}

ul.videoPreviews a.selected {
  background-color: #FF9900;
}

ul.videoPreviews img {
  float:left;
  clear:left;
  margin:0;
}

ul.videoPreviews h3 {
  font-size:12px;
  font-weight:bold;
  text-decoration:none;
  margin:0 0 1em 130px;
  padding:0;
}

ul.videoPreviews p {
  font-size: 12px;
  text-decoration:none;
  margin:0 0 1.2em 130px;
}

ul.videoPreviews p.full {
  display:none;
}

ul.videoPreviews span.more {
  padding:0 0 0 12px;
  background:url(images/arrow_bluelink_down.png) 0 2px no-repeat;
}

ul.videoPreviews span.less {
  padding:0 0 0 12px;
  background:url(images/arrow_bluelink_up.png) 0 2px no-repeat;
  display:none;
}

ul.videoPreviews p.toggle {
  position:absolute;
  margin:0;
  margin-top:-23px; /* instead of bottom:23px, because IE won't do it correctly */
  left:140px;
}

ul.videoPreviews p.toggle a {
  height:auto;
  margin:0;
  padding:0;
  zoom:1; /* IE6, otherwise the margin considers the img on redraws */
}

ul.videoPreviews p.toggle a:hover {
  text-decoration:underline;
  background:transparent; /* IE6, otherwise it inherits white */
}

/* featured videos */

#mainBodyRight h2 {
  padding:0 0 5px;
}

#mainBodyRight ul.videoPreviews {
  margin:10px 0 0;
}

#mainBodyRight ul.videoPreviews li {
  font-size:11px;
  line-height:13px;
  margin:0 0 5px;
  padding:0;
}

#mainBodyRight ul.videoPreviews h3 {
  padding:0;
  margin:0;
  font-size:100%;
}

#mainBodyRight ul.videoPreviews a {
  text-decoration:none;
  height:108px;
  border:1px solid #FFF;
}

#mainBodyRight ul.videoPreviews a:hover {
  border:1px solid #CCDADA;
}

#mainBodyRight ul.videoPreviews a.selected {
  border:1px solid #FFF;
}

#mainBodyRight ul.videoPreviews p {
  line-height:1.2em;
  padding:0;
  margin:4px 0 0 130px;
}

#mainBodyRight ul.videoPreviews img {
  margin-top:5px;
}

/* Pretty printing styles. Used with prettify.js. */

.str { color: #080; }
.kwd { color: #008; }
.com { color: #800; }
.typ { color: #606; }
.lit { color: #066; }
.pun { color: #660; }
.pln { color: #000; }
dl.tag-list dt code,
.tag { color: #008; }
dl.atn-list dt code,
.atn { color: #828; }
.atv { color: #080; }
.dec { color: #606; }

@media print {
  .str { color: #060; }
  .kwd { color: #006; font-weight: bold; }
  .com { color: #600; font-style: italic; }
  .typ { color: #404; font-weight: bold; }
  .lit { color: #044; }
  .pun { color: #440; }
  .pln { color: #000; }
  .tag { color: #006; font-weight: bold; }
  .atn { color: #404; }
  .atv { color: #060; }
}
