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

@import url("android-developer-core.css");

#title {
  border-bottom: 4px solid #ccc;
  display:none;
}

#title h1 {
  color:#336666;
  margin:0;
  padding: 5px 10px;
  font-size: 1em;
  line-height: 15px;
}

#title h1 .small{
  color:#000;
  margin:0;
  font-size: 13px;
  padding:0 0 0 15px;
}

/* SIDE NAVIGATION */

#side-nav {
  padding:0 6px 0 0;
  background-color: #fff;
  font-size:12px;
}

#side-nav.not-resizable {
  background:url('images/sidenav-rule.png') no-repeat 243px 0;
}

#resize-packages-nav {
/* keeps the resize handle below the h-scroll handle */
  height:270px;
  overflow:hidden;
  max-height:100%;
}

#packages-nav {
  height:270px;
  max-height:inherit;
  position:relative;
  overflow:auto;
}

#classes-nav,
#devdoc-nav {
  overflow:auto;
  position:relative;
}

#side-nav ul {
  list-style: none;
  margin: 0;
  padding:5px 0;
}

#side-nav ul ul {
  margin: .35em 0 0 0;
  padding: 0;
}

#side-nav li {
  padding:0;
  line-height:16px;
  white-space:nowrap;
  zoom:1;
}

#side-nav li h2 {
  font-size:12px;
  font-weight: bold;
  margin:.5em 0 0 0;
  padding: 3px 0 1px 9px;
}

#side-nav li a {
  text-decoration:none;
  padding: 0 0 0 18px;
  zoom:1;
}

#side-nav li a span+span {
  display:none;
}

#side-nav li a:hover {
  text-decoration:underline;
}

#side-nav li a+a {
  padding: 0;
}
/*second level (nested) list*/
#side-nav li li li a {
  padding: 0 0 0 28px;
}
/*third level (nested) list*/
#side-nav li li li li a {
  padding: 0 0 0 38px;
}

#side-nav .selected {
  background-color: #435a6e;
  color: #fff;
  font-weight:bold;
}

#side-nav .selected a {
  color: #fff;
  text-decoration:none;
}

#side-nav strong {
  display:block;
}

#side-nav .toggle-list .toggle-img {
  margin:0;
  padding:0;
  position:absolute;
  top:0;
  left:0;
  height:16px;
  width:15px;
  outline-style:none;
}
/* second-level toggle */
#side-nav .toggle-list .toggle-list .toggle-img {
  left:10px;
}

#side-nav .closed .toggle-img,
#side-nav .open .closed .toggle-img {
  background:url('images/triangle-closed-small.png') 7px 4px no-repeat;
}
#side-nav .open .toggle-img {
  background:url('images/triangle-opened-small.png') 7px 4px no-repeat;
}

#side-nav .toggle-list {
  position:relative;
}

#side-nav .toggle-list ul {
  margin:0;
  display:none;
}

#side-nav .toggle-list div {
  display:block;
}

#index-links .selected {
  background-color: #fff;
  color: #000;
  font-weight:normal;
  text-decoration:none;
}

#index-links {
  padding:7px 0 4px 10px;
}

/* nav tree */

#nav-tree ul {
  padding:5px 0 1.5em;
}

#side-nav #nav-tree ul li a,
#side-nav #nav-tree ul li span.no-children {
  padding: 0 0 0 0;
  margin: 0;
}

#nav-tree .plus {
  margin: 0 3px 0 0;
}

#nav-tree ul ul {
  list-style: none;
  margin: 0;
  padding: 0 0 0 0;
}

#nav-tree ul li {
  margin: 0;
  padding: 0 0 0 0;
  white-space: nowrap;
}

#nav-tree .children_ul {
  margin:0;
}

#nav-tree a.nolink {
  color: black;
  text-decoration: none;
}

#nav-tree span.label {
  width: 100%;
}

#nav-tree {
  overflow-x: auto;
  overflow-y: scroll;
}

#nav-swap {
  font-size:10px;
  line-height:10px;
  margin-left:1em;
  text-decoration:none;
  display:block;
  position:absolute;
  bottom:2px;
  left:0px;
}

#tree-link {

}

/* DOCUMENT BODY */

#doc-content {
  overflow:auto;
}

#jd-header {
  background-color: #E2E2E2;
  padding: 7px 15px;
}

#jd-header h1 {
  margin: 0 0 10px;
  font-size:1.7em;
}

#jd-header .crumb {
  font-size:.9em;
  line-height:1em;
  color:#777;
}

#jd-header .crumb a,
#jd-header .crumb a:visited {
  text-decoration:none;
  color:#777;
}

#jd-header .crumb a:hover {
  text-decoration:underline;
}

#jd-header table {
  margin:0;
  padding:0;
}

#jd-header td {
  border:none;
  padding:0;
  vertical-align:top;
}

#jd-header.guide-header {
  background-color:#fff;
  color:#435a6e;
  height:50px;
}

#jd-descr {
  position:relative;
}

/* summary tables for reference pages */
.jd-sumtable {
  margin: .5em 1em 1em 1em;
  width:95%; /* consistent table widths; within IE's quirks */
  font-size:.9em;
}

.jd-sumtable a {
  text-decoration:none;
}

.jd-sumtable a:hover {
  text-decoration:underline;
}

/* the link inside a sumtable for "Show All/Hide All" */
.toggle-all {
  display:block;
  float:right;
  font-weight:normal;
  font-size:0.9em;
}

/* adjustments for in/direct subclasses tables */
.jd-sumtable-subclasses {
  margin: 1em 0 0 0;
  max-width:968px;
}

/* extra space between end of method name and open-paren */
.sympad {
  margin-right: 2px;
}

/* right alignment for the return type in sumtable */
.jd-sumtable .jd-typecol {
  text-align:right;
}

/* adjustments for the expando table-in-table */
.jd-sumtable-expando {
  margin:.5em 0;
  padding:0;
}

/* a div that holds a short description */
.jd-descrdiv {
  padding:3px 1em 0 1em;
  margin:0;
  border:0;
}

/* page-top-right container for reference pages (holds
links to summary tables) */
#api-info-block {
  font-size:.8em;
  padding:6px 10px;
  font-weight:normal;
  float:right;
  text-align:right;
  color:#999;
  max-width:70%;
}

#api-level-toggle {
  padding:0 0px;
  font-size:11px;
  margin:3px 10px 0 0;
}

#api-level-toggle label.disabled {
  color:#999;
}

div.api-level {
  font-size:.8em;
  font-weight:normal;
  color:#999;
  float:right;
  padding:0 7px 0;
  margin-top:-25px;
}

#api-info-block div.api-level {
  font-size:1.3em;
  font-weight:bold;
  float:none;
  color:#444;
  padding:0;
  margin:0;
}

/* Force link colors for IE6 */
div.api-level a {
  color:#999;
}
#api-info-block div.api-level a:link {
  color:#444;
}
#api-level-toggle a {
  color:#999;
}

div#naMessage {
  display:none;
  width:555px;
  height:0;
  margin:0 auto;
}

div#naMessage div {
  width:450px;
  position:fixed;
  margin:50px 0;
  padding:4em 4em 3em;
  background:#FFF;
  background:rgba(255,255,255,0.7);
  border:1px solid #dddd00;
}
/* IE6 can't position fixed */
* html div#naMessage div { position:absolute; }

div#naMessage strong {
  font-size:1.1em;
}

.absent,
.absent a:link,
.absent a:visited,
.absent a:hover,
.absent * {
  color:#bbb !important;
  cursor:default !important;
  text-decoration:none !important;
}

#api-level-toggle a,
.api-level a {
  color:inherit;
  text-decoration:none;
}

#api-level-toggle a:hover,
.api-level a:hover {
  color:inherit;
  text-decoration:underline !important;
  cursor:pointer !important;
}

#side-nav li.absent.selected,
#side-nav li.absent.selected *,
#side-nav div.label.absent.selected,
#side-nav div.label.absent.selected * {
  background-color:#eaeaea !important;
}
/* IE6 quirk (won't chain classes, so just keep background blue) */
* html #side-nav li.selected,
* html #side-nav li.selected *,
* html #side-nav div.label.selected,
* html #side-nav div.label.selected * {
  background-color: #435a6e !important;
}


.absent h4.jd-details-title,
.absent h4.jd-details-title * {
  background-color:#f6f6f6 !important;
}

.absent img {
  opacity: .3;
  filter: alpha(opacity=30);
  -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
}


/* applies to a div containing links to summary tables */
.sum-details-links {
  padding:0;
  font-weight:normal;
}

.sum-details-links a {
  text-decoration:none;
}

.sum-details-links a:hover {
  text-decoration:underline;
}


/* inheritance table */
.jd-inheritance-table {
  border-spacing:0;
  margin:0;
  padding:0;
  font-size:.9em;
}
.jd-inheritance-table td {
  border: none;
  margin: 0;
  padding: 0;
}
.jd-inheritance-table .jd-inheritance-space {
  font-weight:bold;
  width:1em;
}
.jd-inheritance-table .jd-inheritance-interface-cell {
  padding-left: 17px;
}

#jd-content {
  padding: 18px 15px;
}

hr {
  background-color:#ccc;
  border-color:#fff;
  margin:2em 0 1em;
}

/* DOC CLASSES */

#jd-content h1 {
/*sdk page*/
  font-size:1.6em;
  color:#336666;
  margin:0 0 .5em;
}

#jd-content h2 {
  font-size:1.45em;
  color:#111;
  border-top:2px solid #ccc;
  padding: .5em 0 0;
  margin: 2em 0 1em 0;
}

#jd-content h3 {
  font-size:1.2em;
  color:#222;
  padding: .75em 0 .65em 0;
  margin:0;
}

#jd-content h4 {
  font-size:1.1em;
  margin-bottom:.5em;
  color:#222;
}

#jd-content .small-header {
  font-size:1em;
  color:#000;
  font-weight:bold;
  border:none;
  padding:0;
  margin:1em 0 .5em;
  position:inherit;
}

#jd-content table {
  margin: 0 0 1em 1em;
}

#jd-content img {
  margin: 0 0 1em 1em;
}

#jd-content li img,
#jd-content dd img {
  margin:.5em 0 0 1em;
}

.nolist {
  list-style:none;
  padding:0;
  margin:0 0 1em 1em;
}

.nolist li {
  padding:0 0 2px;
  margin:0;
}

h4 .normal {
  font-size:.9em;
  font-weight:normal;
}

.caps {
  font-variant:small-caps;
  font-size:1.2em;
}

dl.tag-list dl.atn-list {
  padding:0 0 0 2em;
}

.jd-details {
/*  border:1px solid #669999;
  padding:4px; */
  margin:0 0 1em;
}

/* API reference: a container for the
.tagdata blocks that make up the detailed
description */
.jd-details-descr {
  padding:0;
  margin:.5em .25em;
}

/* API reference: a block containing
a detailed description, a params table,
seealso list, etc */
.jd-tagdata {
  margin:.5em 1em;
}

.jd-tagdata p {
  margin:0 0 1em 1em;
}

/* API reference: adjustments to
the detailed description block */
.jd-tagdescr {
  margin:.25em 0 .75em 0;
  line-height:1em;
}

.jd-tagdescr p {
  margin:.5em 0;
  padding:0;

}

.jd-tagdescr ol,
.jd-tagdescr ul {
  margin:0 2.5em;
  padding:0;
}

.jd-tagdescr table,
.jd-tagdescr img {
  margin:.25em 1em;
}

.jd-tagdescr li {
margin:0 0 .25em 0;
padding:0;
}

/* API reference: heading marking
the details section for constants,
attrs, methods, etc. */
h4.jd-details-title {
  font-size:1.15em;
  background-color: #E2E2E2;
  margin:1.5em 0 .6em;
  padding:3px 95px 3px 3px; /* room for api-level */
}

h4.jd-tagtitle {
  margin:0;
}

/* API reference: heading for "Parameters", "See Also", etc.,
in details sections */
h5.jd-tagtitle {
  margin:0 0 .25em 0;
  font-size:1em;
}

.jd-tagtable {
  margin:0;
}

.jd-tagtable td,
.jd-tagtable th {
  border:none;
  background-color:#fff;
  vertical-align:top;
  font-weight:normal;
  padding:2px 10px;
}

.jd-tagtable th {
  font-style:italic;
}

#jd-content table h2 {
  background-color: #d6d6d6;
  font-size: 1.1em;
  margin:0 0 10px;
  padding:5px;
  left:0;
  width:auto;
}

div.special {
  padding: .5em 1em 1em 1em;
  margin: 0 0 1em;
  background-color: #DAF3FC;
  border:1px solid #d3ecf5;
  border-radius:5px;
  -moz-border-radius:5px;
  -webkit-border-radius:5px;
}

.toggle-content-toggleme {
  display:none;
}

.toggle-content-button {
  font-size:.9em;
  line-height:.9em;
  text-decoration:none;
  position:relative;
  top:5px;
}

.toggle-content-button:hover {
  text-decoration:underline;
}

div.special p {
  margin: .5em 0 0 0;
}

div.special ol {
  margin: 0;
}

div.special ol li {
  margin: 0;
  padding: 0;
}

#jd-content div.special h2,
#jd-content div.special h3 {
  color:#669999;
  font-size:1.2em;
  border:none;
  margin:0 0 .5em;
  padding:0;
}

p.note, p.caution, p.warning {
  margin: 1em;
  padding: 0 0 0 .5em;
  border-left: 4px solid;
}

p.special-note {
  background-color:#EBF3DB;
  padding:10px 20px;
  margin:0 0 1em;
}

p.note {
 border-color: #99aacc;
}

p.warning {
  border-color: #aa0033;
}

p.caution {
  border-color: #ffcf00;
}

p.warning b, p.warning strong {
  font-weight: bold;
}

li p.note, li p.warning {
  margin: .5em 0 0 0;
  padding: .2em .5em .2em .9em;
}

dl.xml dt {
  font-variant:small-caps;
  font-size:1.2em;
}

dl.xml dl {
  padding:0;
}

dl.xml dl dt {
  font-variant:normal;
  font-size:1em;
}

.listhead li {
  font-weight: bold;
}

.listhead li *, /*ie*/.listhead li li {
  font-weight: normal;
}

ol.no-style,
ul.no-style {
  list-style:none;
  padding-left:1em;
}

.new {
  font-size: .78em;
  font-weight: bold;
  color: #ff3d3d;
  text-decoration: none;
  vertical-align:top;
  line-height:.9em;
}

pre.classic {
  background-color:transparent;
  border:none;
  padding:0;
}

p.img-caption {
  margin: -0.5em 0 1em 1em; /* matches default img left-margin */
}

div.figure {
  float:right;
  clear:right;
  margin:1em 0 0 3em;
  padding:0;
  background-color:#fff;
  /* width must be defined w/ an inline style matching the image width */
}

#jd-content
div.figure img {
  margin: 0 0 1em;
}

div.figure p.img-caption {
  margin: -0.5em 0 1em 0;
}

p.table-caption {
  margin: 0 0 0.5em 1em; /* matches default table left-margin */
}

/* BEGIN quickview sidebar element styles */

#qv-wrapper {
  float: right;
  width:310px; /* +35px padding */
  background-color:#fff;
  margin:-48px 0 2px 0;
  padding:0 0 20px 35px;
}

#qv {
  background-color:#fff;
  border:4px solid #dee8f1;
  margin:0;
  padding:0 5px 5px;
  width:292px; /* +10px padding; +8px border */
  font-size:.9em;
}

#qv ol {
  list-style:none;
  padding: 0;
}

#qv ol ol{
  list-style:none;
  padding: 0 0 0 12px;
  margin:0;
}

#qv ul {
  padding: 0 10px 0 2em;
}

#qv li {
  padding: 0 10px 3px;
  line-height: 1.2em;
}

#qv li li {
  padding: 3px 10px 0;
}

#qv ul li {
  padding: 0 10px 0 0;
}

#qv li.selected a {
  color:#555;
  text-decoration:none;
}

#qv a {
  color:#cc6600;
}

#qv p {
  margin:8px 0 0;
  padding:0 10px;
}

#qv-extra #rule {
  padding: 0 10px;
  margin: 0;
}

#qv-sub-rule {
  padding: 6px 20px;
  margin: 0;
}

#qv-sub-rule p {
  margin: 0;
}

#jd-content #qv h2 {
  font-size:1.05em;
  font-weight:bold;
  margin:12px 0 .25em 0;
  padding:0 10px;
  background-color:transparent;
  color:#7BB026;
  border:none;
  left:0;
  z-index:1;
}

/* END quickview sidebar element styles */

/* Begin sidebox sidebar element styles */

.sidebox-wrapper {
  float:right;
  clear:right;
  width:310px; /* +35px padding */
  background-color:#fff;
  margin:0;
  padding:0 0 20px 35px;
}

.sidebox {
  border-left:1px solid #dee8f1;
  background-color:#ffffee;
  margin:0;
  padding:8px 12px;
  font-size:0.9em;
  width:285px; /* +24px padding; +1px border */
}

.sidebox p {
  margin-bottom: .25em;
}

.sidebox ul {
  padding: 0 0 0 1.5em;
}

.sidebox li ul {
  margin-top:0;
  margin-bottom:.1em;
}

.sidebox li {
padding:0 0 0 0em;
}

#jd-content .sidebox h2,
#jd-content .sidebox h3,
#jd-content .sidebox h4,
#jd-content .sidebox h5 {
  border:none;
  font-size:1em;
  margin:0;
  padding:0 0 8px;
  left:0;
  z-index:0;
}

.sidebox hr {
  background-color:#ccc;
  border:none;
}

/* End sidebox sidebar element styles */

/* BEGIN image and caption styles (originally for UI Guidelines docs) */

table.image-caption {
  padding:0;
  margin:.5em 0;
  border:0;
}

td.image-caption-i {
  font-size:92%;
  padding:0 5px;
  margin:0;
  border:0;
}

td.image-caption-i img {
  padding:0 1em;
  margin:0;
}

.image-list {
  width:24px;
  text-align:center;
}

td.image-caption-c {
  font-size:92%;
  padding:1em 2px 2px 2px;
  margin:0;
  border:0;
  width:350px;
}

.grad-rule-top {
background-image:url(images/grad-rule-qv.png);
background-repeat:no-repeat;
padding-top:1em;
margin-top:0;
}

.image-caption-nested {
  margin-top:0;
  padding:0 0 0 1em;
}

.image-caption-nested td {
  padding:0 4px 2px 0;
  margin:0;
  border:0;
}

/* END image and caption styles */

/* table of contents */

ol.toc {
  margin: 0 0 1em 0;
  padding: 0;
  list-style: none;
  font-size:95%;
}

ol.toc li {
  font-weight: bold;
  margin: 0 0 .5em 1em;
  padding: 0;
}

ol.toc li p {
  font-weight: normal;
}

ol.toc li ol {
  margin: 0;
  padding: 0;
}
  
ol.toc li li {
  padding: 0;
  margin: 0 0 0 1em;
  font-weight: normal;
  list-style: none;
}

table ol.toc {
  margin-left: 0;
}

.columns td {
  padding:0 5px;
  border:none;
}

/* link table */
.jd-linktable {
  margin: 0 0 1em;
  border-bottom: 1px solid #888;
}
.jd-linktable th,
.jd-linktable td {
  padding: 3px 5px;
  vertical-align: top;
  text-align: left;
  border:none;
}
.jd-linktable tr {
  background-color: #fff;
}
.jd-linktable td {
  border-top: 1px solid #888;
  background-color: inherit;
}
.jd-linktable td  p {
  padding: 0 0 5px;
}
.jd-linktable .jd-linkcol {
}
.jd-linktable .jd-descrcol {
}
.jd-linktable .jd-typecol {
  text-align:right;
}
.jd-linktable .jd-valcol {
}
.jd-linktable .jd-commentrow {
  border-top:none;
  padding-left:25px;
}
.jd-deprecated-warning {
  margin-top: 0;
  margin-bottom: 10px;
}

tr.alt-color {
  background-color: #f6f6f6;
}

/* expando trigger */
#jd-content .jd-expando-trigger-img {
  margin:0;
}

/* jd-expando */
.jd-inheritedlinks {
  padding:0 0 0 13px
}

/* SDK PAGE */
table.download tr {
  background-color:#d9d9d9;
}

table.download tr.alt-color {
  background-color:#ededed;
}

table.download td,
table.download th {
  border:2px solid #fff;
  padding:10px 5px;
}

table.download th {
  background-color:#6d8293;
  color:#fff;
}

/* INLAY 180 COPY and 240PX EXTENSION */
/* modified to 43px so that all browsers eliminate the package panel h-scroll */
.g-tpl-240 .g-unit,
.g-unit .g-tpl-240 .g-unit,
.g-unit .g-unit .g-tpl-240 .g-unit {
  display: block;
  margin: 0 0 0 243px;
  width: auto;
  float: none;
}
.g-unit .g-unit .g-tpl-240 .g-first,
.g-unit .g-tpl-240 .g-first,
.g-tpl-240 .g-first {
  display: block;
  margin: 0;
  width: 243px;
  float: left;
}
/* 240px alt */
.g-tpl-240-alt .g-unit,
.g-unit .g-tpl-240-alt .g-unit,
.g-unit .g-unit .g-tpl-240-alt .g-unit {
  display: block;
  margin: 0 243px 0 0;
  width: auto;
  float: none;
}
.g-unit .g-unit .g-tpl-240-alt .g-first,
.g-unit .g-tpl-240-alt .g-first,
.g-tpl-240-alt .g-first {
  display: block;
  margin: 0;
  width: 243px;
  float: right;
}

/* 180px */
.g-tpl-180 .g-unit,
.g-unit .g-tpl-180 .g-unit,
.g-unit .g-unit .g-tpl-180 .g-unit {
  display: block;
  margin: 0 0 0 180px;
  width: auto;
  float: none;
}
.g-unit .g-unit .g-tpl-180 .g-first,
.g-unit .g-tpl-180 .g-first,
.g-tpl-180 .g-first {
  display: block;
  margin: 0;
  width: 180px;
  float: left;
}
/* 180px alt */
.g-tpl-180-alt .g-unit,
.g-unit .g-tpl-180-alt .g-unit,
.g-unit .g-unit .g-tpl-180-alt .g-unit {
  display: block;
  margin: 0 180px 0 0;
  width: auto;
  float: none;
}
.g-unit .g-unit .g-tpl-180-alt .g-first,
.g-unit .g-tpl-180-alt .g-first,
.g-tpl-180-alt .g-first {
  display: block;
  margin: 0;
  width: 180px;
  float: right;
}

  
/* JQUERY RESIZABLE STYLES */
.ui-resizable { position: relative; }
.ui-resizable-handle { position: absolute; display: none; font-size: 0.1px; z-index:1; }
.ui-resizable .ui-resizable-handle { display: block; }
body .ui-resizable-disabled .ui-resizable-handle { display: none; }
body .ui-resizable-autohide .ui-resizable-handle { display: none; }
.ui-resizable-s { cursor: s-resize; height: 6px; width: 100%; bottom: 0px; left: 0px;
  background: transparent url("images/resizable-s2.gif") repeat scroll center top; }
.ui-resizable-e { cursor: e-resize; width: 6px; right: 0px; top: 0px; height: 100%;
  background: transparent url("images/resizable-e2.gif") repeat scroll right center; }

@media print {

  body {
    overflow:visible;
  }

  #header {
    height:50px;
  }

  #header-tabs,
  #headerRight,
  #side-nav,
  #api-info-block {
    display:none;
  }

  #body-content {
    position:inherit;
  }
  
  #doc-content {
    margin-left:0 !important;
    height:auto !important;
    width:auto !important;
    overflow:inherit;
    display:inline;
  }

  #jd-header {
    padding:10px 0;
  }

  #jd-content {
    padding:15px 0 0;
  }

  #footer {
    float:none;
    margin:2em 0 0;
  }

  h4.jd-details-title {
    border-bottom:1px solid #666;
  }

  pre {
    /* these allow lines to break (if there's a white space) */
    overflow: visible;
    text-wrap: unrestricted;
    white-space: -moz-pre-wrap; /* Moz */
    white-space: -pre-wrap; /* Opera 4-6 */
    white-space: -o-pre-wrap; /* Opera 7 */
    white-space: pre-wrap; /* CSS3  */
    word-wrap: break-word; /* IE 5.5+ */
  }

  h1, h2, h3, h4, h5, h6 {
    page-break-after: avoid;
  }

  table, img {
    page-break-inside: avoid;
  }
}
