/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * manual.css for printers
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

/* Copyright 2002-2005 The Apache Software Foundation or its licensors,
 *                     as applicable.
 *
 * 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.
 */

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * mainframe ;-)
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
html {
    font-size: 11pt;
}

body {
    background-color: #fff;
    color: #000;
    padding: 0 0 0 0;
    margin: 0;
    font-family: "Times New Roman", serif;
    font-weight: normal;
}

pre, code {
    font-family: "Courier New", Courier, monospace;
}

strong {
    font-weight: bold;
}

q, em, var {
    font-style: italic;
}

span.transnote, span.phonetic {
    font-weight: normal;
    background-color: inherit;
    color: #888;
}

/* fixup IE & Opera
 * otherwise they forget to inherit
 * the computed font-size value
 */
table, code {
    font-size: 1em;
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Links
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

/* normal links           */
/* ====================== */
a:link,
a:visited,
a:hover,
a:active {
    color: #000;
    background-color: inherit;
    text-decoration: none;
}

/* sidebar */
div#quickview a:hover,
div#quickview a:active {
    background-color: #fff;
    color: #000;
}

/* EXPERIMENTAL! I'm waiting for complaints... */
#page-content p > a[href]:after {
  content: " (\002197\0000A0" attr(href) ") ";
  color: #036;
}

/* code.module [links]    */
/* ====================== */
code.module,
code.module a:link,
code.module a:visited,
code.module a:hover,
code.module a:active {
    color: #8b4513;
    background-color: inherit;
    text-decoration: none;
}

/* code.directive [links] */
/* ====================== */
code.directive,
code.directive a:link,
code.directive a:visited,
code.directive a:hover,
code.directive a:active {
    color: #287f00;
    background-color: inherit;
    text-decoration: none;
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Headings
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

/* h1                     */
/* ====================== */
h1 {
    padding: 0 0 0.2em 0;
    margin: 1em 0 0.5em 0;
    border-style: none none solid none;
    border-bottom-width: 1px;
    border-bottom-color: #405871;
    background-color: inherit;
    color: #000;
    text-decoration: none;
    font-size: 17pt;
    font-weight: bold;
    text-align: center;
}

/* h2                     */
/* ====================== */
h2 {
    padding: 0.2em 0 0.2em 0.2em;
    margin: 0 0 0.5em 0;
    width: 80%;
    text-decoration: none;
    font-size: 15pt;
    font-weight: bold;
    border-bottom: 1px solid #000;
    text-align: left;
}

.section h2,
.directive-section h2,
.category h2 {
    background-color: #fff;
    color: #000;
}

/* take care of <a name>s inside */
h2 a,
h2 a:hover,
h2 a:active {
    color: inherit;
    background-color: inherit;
    text-decoration: none;
}

/* h3, h4                 */
/* ====================== */
h3 {
    background-color: inherit;
    color: #000;
    text-decoration: none;
    font-weight: bold;
    font-size: 13pt;
    margin: 1.3em 0 0.4em 0;
    padding: 0 0 0 0.2em;
}

h4 {
    background-color: inherit;
    color: #000;
    text-decoration: none;
    font-weight: bold;
    font-size: 11pt;
    margin: 1.3em 0 0.2em 0;
    padding: 0 0 0 0.2em;
}

/* margin adjustment */
h3 + *, h4 + * {
    margin-top: 0;
}

/* IE confuses the + * :-( 
 * so reset some things
 */
ul, .section table, .directive-section table {
    margin-bottom: 1em;
}

/* titles for 
 * examples, notes and warnings
 */
div.example h3,
div.note h3,
div.warning h3 {
    margin: 0 0 0.5em 0;
    text-align: left;
    font-size: 11pt;
}

/* sidebar */
div#quickview h3 {
    margin: 1em 0 0.3em 0;
    font-size: 13pt;
}

div#quickview h3.directives {
    margin-top: 0;
}

/* take care of <a name>s inside */
h3 a,
h3 a:hover,
h3 a:active,
h4 a,
h4 a:hover,
h4 a:active {
    color: inherit;
    background-color: inherit;
    text-decoration: none;
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Up & Top helper images
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

div.up,
div.top {
    display: none;
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Tables
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

/* general                */
/* ====================== */
table {
    border: 1px solid #000;
    border-collapse: collapse;
    padding: 2px;
    margin-top: 0.5em;
    margin-bottom: 0;
    margin-left: 1px; /* border-width == 1px */
}

td, th {
    empty-cells: show; /* show border around empty cells */
    padding: 0.1em 0.2em;
    vertical-align: top;
    text-align: left;
    line-height: 1.1em;
}

th {
    font-weight: bold;
}

td.centered {
    text-align: center;
}

tr.header, tr.header th {
    border-top: 1px solid #000;
    border-bottom: 1px solid #000;
}

/* bordered table cells   */
/* ====================== */

/* turn off borders in tables nested in 
 * bordered tables per default
 */
table.bordered table td,
table.bordered table th {
    border-style: none;
}

table.bordered td,
table.bordered th,
table table.bordered td,
table table.bordered th {
    border: 1px solid #000;
}

/* mod/dir. overview table and quick reference  */
/* ============================================ */
table.module th,
table.directive th {
    white-space: nowrap;
}

table.qref {
    border-collapse: collapse;
    width: auto;
}

table.qref td {
    border-style: none solid;
    border-color: #000;
    border-width: 1px;
}

table.qref td.descr {
    padding-left: 1em;
    font-size: 11pt;
}

table#legend {
    width: 100%;
    border-style: none;
    border-width: 0;
    vertical-align: bottom;
    padding: 0;
    margin: 0;
}

table#legend td {
    vertical-align: bottom;
    margin: 0;
    padding: 0;
}

table#legend table {
    vertical-align: bottom;
    margin: 0 0 0 0.4em;
    padding: 0;
    height: 7.5em;
}

table#legend td.letters span {
    display: none;
}

table#legend table td,
table#legend table th {
    vertical-align: middle;
    padding: 0.1ex 0.2em;
    line-height: 1em;
}

/* related modules & dir. */
/* ====================== */

/* assuming, all links are enclosed by
 * <code class="directive"> or
 * <code class="module">
 */

table.related {
    border-collapse: collapse;
}

table.related th,
table.related td {
    background-color: #fff;
    color: #000;
    padding: 0.2ex 0.4em;
    border: 1px solid #000;
}

table.related th {
    vertical-align: middle;
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Lists
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

/* list default values    */
/* ====================== */
ul {
    list-style-type: disc;
}

ul ul {
    list-style-type: square;
}

ul ul ul {
    list-style-type: circle;
}

li, dt, dd {
    line-height: 1.1em;
}

dt {
    margin-top: 0.5em;
    font-weight: bold;
}

ol li {
    margin-top: 0.5em;
}

ol.up-A {
    list-style-type: upper-alpha;
}

/* table of contents      */
/* ====================== */
#toc,
#topics {
    margin: 0;
    padding: 0;
}

#toc li,
#topics li {
    list-style-type: square;
    margin: 0 0 1em 0;
    padding: 0;
}

#toc li img,
#topics li img {
    margin-right: 19px;
}

/* see also               */
/* ====================== */
.seealso {
    margin: 0;
    padding: 0;
}

.seealso li {
    list-style-type: square;
    margin: 0 0 1em 0;
    padding: 0 0 0 34px;
}

/* related modules & dir. */
/* ====================== */
table.related td ul,
table.related td li {
    list-style-type: none;
    margin: 0;
    padding: 0;
}

/* list of all directives */
/* ====================== */
div#directive-list ul {
    margin: 0;
    padding: 0;
}

/* quickview              */
/* ====================== */
div#quickview li {
    font-size: 11pt;
}

div#quickview ul {
    margin: 0;
    padding: 0;
}

div#quickview ul#toc {
    margin: 0;
    padding: 0;
}

div#quickview ul#toc li {
    margin: 0 0 0 1em;
    padding: 0;
    list-style-type: square;
    list-style-position: outside;
}

div#quickview li img {
    display: none;
}

#module-index div#quickview ul#toc,
#manual-page div#quickview ul#toc,
div#quickview #topics,
div#quickview .seealso {
    padding-left: 0;
}

#module-index div#quickview ul#toc li,
#manual-page div#quickview ul#toc li,
div#quickview #topics li,
div#quickview .seealso li {
    margin: 0 0 2px 1em;
    padding: 0;
    list-style-type: square;
    list-style-position: outside;
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * main page sections
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

/* page header            */
/* ====================== */
div#page-header {
    margin-left: 0;
}

div#page-header img {
    display: none;
}

div#page-header p.apache {
    background-color: #fff;
    color: #000;
    padding: 0;
    margin: 0;
    text-align: center;
    vertical-align: middle;
    font-size: 20pt;
    font-weight: bold;
    line-height: 20pt;
}

div#page-header p.menu {
    display: none;
}

/* breadcrumb navigation */
div#path {
    display: none;
}

/* content sections       */
/* ====================== */
div#preamble {
    padding-bottom: 1em;
    margin-left: 0;
}

div.section,
div.directive-section {
    margin: 0;
    padding: 0;
}

.section p,
.directive-section p {
    margin: 0 0 1em 0;
    padding: 0;
}

/* look for this on directive
 * list pages
 */
div#directive-list {
    margin-left: 0;
    padding: 0 0 1em 1em;
}

div#directive-ref {
    margin: -1em 0 0 1px;
    padding: 0 0 1em 0;
    width: auto;
}

/* no sidebar */
div#quickview {
    position: static;
    margin: 0 0 1em 0;
    padding: 0;
    width: auto;
    background-color: #fff;
    color: inherit;
}

/* -> keep content wide */
div#page-content {
    padding-top: 0;
    margin-right: 0;
    padding-right: 0;
}

/* in general */
p {
    line-height: 1.1em;
}

/* page footer            */
/* ====================== */
div#footer {
    margin-left: 0;
    font-size: 11pt;
    border-top: 1px solid #000;
    padding-top: 0.2em;
}

div#footer p.apache {
    float: none;
    text-align: center;
    padding: 0 0 1em 0;
    margin-top: 0;
    font-weight: bold;
}

div.toplang,
div.bottomlang,
div#footer p.menu {
    display: none;
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * subsections (examples, notes, warnings)
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

/* examples               */
/* ====================== */
div.example,
div.note div.example {
    background-color: #fff;
    color: #000;
    padding: 0.5em;
    margin: 1em;
    border: 1px dotted #000;
}

/* the following [block] elements
 * may appear inside example...
 */
div.example p,
div.example pre,
div.example table {
    padding: 0;
    margin: 0;
}

div.example p {
    line-height: 1em;
}

div.example pre,
div.example p > code {
    font-size: 10pt;
}

/* notes & warnings       */
/* ====================== */
div.note,
div.warning {
    background-color: #fff;
    color: #000;
    border: 1px solid #000;
    padding: 0.5em;
    margin: 1em;
}

div.note p,
div.warning p {
    margin: 0;
    padding: 0;
}

div.note pre,
div.warning pre {
    font-size: 10pt;
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * quotations, indented paragraphs and figures
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
p.letters {
    display: none;
}

blockquote p {
    font-style: italic;
    margin: 0;
}

blockquote p.cite {
    font-style: normal;
    margin-top: 0;
    margin-left: 2em;
}

blockquote p.cite cite {
    font-style: normal;
}

p.indent {
    margin-left: 2em;
    margin-top: 1em;
}

#index-page form {
    display: none;
}

p.figure {
    margin-left: 2em;
    font-style: italic;
}

p.figure img {
    border: 1px solid #000;
}

p.figure dfn {
    font-weight: bold;
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * -> The End <-
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
