/* 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;
}

#side-nav li li li a { 
/*sdk lists*/
  padding: 0 0 0 28px;
} 

#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-img {
  margin:0;
  padding:0;
  position:absolute;
  top:0;
  left:0;
  height:16px;
  width:15px;
  outline-style:none;
}

#side-nav .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;
}

#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 {
  float:right;
  padding:0 10px;
  font-size:11px;
  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;
}

/* 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: 1.5em 0 1em 0;
  max-width:968px;
}

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

.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: #ddf0f2;
}

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: red;
  text-decoration: none;
}

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


/* BEGIN quickview sidebar element styles */

#qv-wrapper {
  float: right;
  width:310px;
  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 6px 6px;
  width:270px;
  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;
  width:280px;
  background-color:#fff;
  margin: 0;
  padding: 20px 0 20px 20px;
}

.sidebox-inner {
  border-left:1px solid #dee8f1;
  background-color:#ffffee;
  padding:5px 8px 5px 12px;
  font-size:90%;
  width:260px;
}

.sidebox {
  float: right;
  width:260px;
  background-color:#ffffee;
  border-left:1px solid #dee8f1;
  margin: 12px 0 0 15px;
  padding:5px 8px 0 12px;
  font-size:90%;
}	

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

.sidebox ul,
.sidebox-inner ul {
  padding: 0 0 0 1.5em;
}

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

.sidebox li,
.sidebox-inner li {
padding:0 0 0 0em;
}

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

.sidebox hr,
.sidebox-inner 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;
  margin:0;
  border:0;
}

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

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

.image-list .caption {
  margin:0 2px;
}

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; } /* use 'body' to make it more specific (css order) */
body .ui-resizable-autohide .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */
.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:60px;
  }

  #headerLeft {
    padding:0;
  }

  #headerLeft .guide {
    display:none;
  }
  
  #headerRight {
    display:none;
  }

  #body-content {
    position:inherit;
  }

  #side-nav {
    display:none;
  }
  
  #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;
  }

/*  #qv,
  #qv-wrapper {
    display:none;
  }
*/
}
