/* 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 {
  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: 44px;
  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{
  position:absolute;
  padding: 10px 0 0;
  left:8px;
  bottom:3px;
}

#headerRight {
  position:absolute;
  right:0;
  bottom:3px;
  padding:0;
  text-align:right;
}

#masthead-title {
  font-size:28px;
  color: #2f74ae;
}

/* 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 {
  margin:8px 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;
}

#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;
}

#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; }
}
