/*=============================================================================
Copyright (c) 2004 Joel de Guzman
http://spirit.sourceforge.net/

Copyright 2013 Niall Douglas additions for colors and alignment.
Copyright 2013 Paul A. Bristow additions for more colors and alignments.

Distributed under the Boost Software License, Version 1.0. (See accompany-
ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
=============================================================================*/

/*=============================================================================
Body defaults
=============================================================================*/

    body
    {
        margin: 1em;
        font-family: sans-serif;
    }

/*=============================================================================
Paragraphs
=============================================================================*/

    p
    {
        text-align: left;
        font-size: 10pt;
        line-height: 1.15;
    }

/*=============================================================================
Program listings
=============================================================================*/

    /* Code on paragraphs */
    p tt.computeroutput
    {
        font-size: 9pt;
    }

    pre.synopsis
    {
        font-size: 9pt;
        margin: 1pc 4% 0pc 4%;
        padding: 0.5pc 0.5pc 0.5pc 0.5pc;
    }

    .programlisting,
    .screen
    {
        font-size: 9pt;
        display: block;
        margin: 1pc 4% 0pc 4%;
        padding: 0.5pc 0.5pc 0.5pc 0.5pc;
    }

    /* Program listings in tables don't get borders */
    td .programlisting,
    td .screen
    {
        margin: 0pc 0pc 0pc 0pc;
        padding: 0pc 0pc 0pc 0pc;
    }

/*=============================================================================
Headings
=============================================================================*/

    h1, h2, h3, h4, h5, h6
    {
        text-align: left;
        margin: 1em 0em 0.5em 0em;
        font-weight: bold;
    }

    h1 { font-size: 140%; }
    h2 { font-weight: bold; font-size: 140%; }
    h3 { font-weight: bold; font-size: 130%; }
    h4 { font-weight: bold; font-size: 120%; }
    h5 { font-weight: normal; font-style: italic; font-size: 110%; }
    h6 { font-weight: normal; font-style: italic; font-size: 100%; }

    /* Top page titles */
    title,
    h1.title,
    h2.title
    h3.title,
    h4.title,
    h5.title,
    h6.title,
    .refentrytitle
    {
        font-weight: bold;
        margin-bottom: 1pc;
    }

    h1.title { font-size: 140% }
    h2.title { font-size: 140% }
    h3.title { font-size: 130% }
    h4.title { font-size: 120% }
    h5.title { font-size: 110% }
    h6.title { font-size: 100% }

    .section h1
    {
        margin: 0em 0em 0.5em 0em;
        font-size: 140%;
    }

    .section h2 { font-size: 140% }
    .section h3 { font-size: 130% }
    .section h4 { font-size: 120% }
    .section h5 { font-size: 110% }
    .section h6 { font-size: 100% }

    /* Code on titles */
    h1 tt.computeroutput { font-size: 140% }
    h2 tt.computeroutput { font-size: 140% }
    h3 tt.computeroutput { font-size: 130% }
    h4 tt.computeroutput { font-size: 130% }
    h5 tt.computeroutput { font-size: 130% }
    h6 tt.computeroutput { font-size: 130% }


/*=============================================================================
Author
=============================================================================*/

    h3.author
    {
        font-size: 100%
    }

/*=============================================================================
Lists
=============================================================================*/

    li
    {
        font-size: 10pt;
        line-height: 1.3;
    }

    /* Unordered lists */
    ul
    {
        text-align: left;
    }

    /* Ordered lists */
    ol
    {
        text-align: left;
    }

/*=============================================================================
Links
=============================================================================*/

    a
    {
        text-decoration: none; /* no underline */
    }

    a:hover
    {
        text-decoration: underline;
    }

/*=============================================================================
Spirit style navigation
=============================================================================*/

    .spirit-nav
    {
        text-align: right;
    }

    .spirit-nav a
    {
        color: white;
        padding-left: 0.5em;
    }

    .spirit-nav img
    {
        border-width: 0px;
    }

/*=============================================================================
Copyright footer
=============================================================================*/
    .copyright-footer
    {
        text-align: right;
        font-size: 70%;
    }

    .copyright-footer p
    {
        text-align: right;
        font-size: 80%;
    }

/*=============================================================================
Table of contents
=============================================================================*/

    div.toc
    {
       margin: 1pc 4% 0pc 4%;
       padding: 0.1pc 1pc 0.1pc 1pc;
       font-size: 80%;
       line-height: 1.15;
    }

    .boost-toc
    {
       float: right;
       padding: 0.5pc;
    }

    /* Code on toc */
    .toc .computeroutput { font-size: 120% }

    /* No margin on nested menus */

    .toc dl dl { margin: 0; }

/*=============================================================================
Tables
=============================================================================*/

    .table-title,
    div.table p.title
    {
        margin-left: 4%;
        padding-right: 0.5em;
        padding-left: 0.5em;
    }

    .informaltable table,
    .table table
    {
        width: 92%;
        margin-left: 4%;
        margin-right: 4%;
    }

    div.informaltable table,
    div.table table
    {
        padding: 4px;
    }

    /* Table Cells */
    div.informaltable table tr td,
    div.table table tr td
    {
        padding: 0.5em;
        text-align: left;
        font-size: 9pt;
    }

    div.informaltable table tr th,
    div.table table tr th
    {
        padding: 0.5em 0.5em 0.5em 0.5em;
        border: 1pt solid white;
        font-size: 80%;
    }

    table.simplelist
    {
        width: auto !important;
        margin: 0em !important;
        padding: 0em !important;
        border: none !important;
    }
    table.simplelist td
    {
        margin: 0em !important;
        padding: 0em !important;
        text-align: left !important;
        font-size: 9pt !important;
        border: none !important;
    }

/*=============================================================================
Suppress margins in tables
=============================================================================*/

    table th > *:first-child,
    table td > *:first-child
    {
        margin-top: 0;
    }

    table th > *:last-child,
    table td > *:last-child
    {
        margin-bottom: 0;
    }

/*=============================================================================
Blurbs
=============================================================================*/

    div.note,
    div.tip,
    div.important,
    div.caution,
    div.warning,
    p.blurb
    {
        font-size: 9pt; /* A little bit smaller than the main text */
        line-height: 1.2;
        display: block;
        margin: 1pc 4% 0pc 4%;
        padding: 0.5pc 0.5pc 0.5pc 0.5pc;
    }

    p.blurb img
    {
        padding: 1pt;
    }

/*=============================================================================
Variable Lists
=============================================================================*/

    div.variablelist
    {
        margin: 1em 0;
    }

    /* Make the terms in definition lists bold */
    div.variablelist dl dt,
    span.term
    {
        font-weight: bold;
        font-size: 10pt;
    }

    div.variablelist table tbody tr td
    {
        text-align: left;
        vertical-align: top;
        padding: 0em 2em 0em 0em;
        font-size: 10pt;
        margin: 0em 0em 0.5em 0em;
        line-height: 1;
    }

    div.variablelist dl dt
    {
        margin-bottom: 0.2em;
    }

    div.variablelist dl dd
    {
        margin: 0em 0em 0.5em 2em;
        font-size: 10pt;
    }

    div.variablelist table tbody tr td p,
    div.variablelist dl dd p
    {
        margin: 0em 0em 0.5em 0em;
        line-height: 1;
    }

/*=============================================================================
Misc
=============================================================================*/

    /* Title of books and articles in bibliographies */
    span.title
    {
        font-style: italic;
    }

    span.underline
    {
        text-decoration: underline;
    }

    span.strikethrough
    {
        text-decoration: line-through;
    }

    /* Copyright, Legal Notice */
    div div.legalnotice p
    {
        text-align: left
    }

/*=============================================================================
Colors
=============================================================================*/

    @media screen
    {
        body {
            background-color: #FFFFFF;
            color: #000000;
        }

    /* Syntax Highlighting */
        .keyword { color: #0000AA; }
        .identifier { color: #000000; }
        .special { color: #707070; }
        .preprocessor { color: #402080; }
        .char { color: teal; }
        .comment { color: #800000; }
        .string { color: teal; }
        .number { color: teal; }
        .white_bkd { background-color: #FFFFFF; }
        .dk_grey_bkd { background-color: #999999; }

    /* Links */
        a, a .keyword, a .identifier, a .special, a .preprocessor
        a .char, a .comment, a .string, a .number
        {
            color: #005a9c;
        }

        a:visited, a:visited .keyword, a:visited .identifier,
        a:visited .special, a:visited .preprocessor a:visited .char,
        a:visited .comment, a:visited .string, a:visited .number
        {
            color: #9c5a9c;
        }

        h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
        h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover,
        h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited
        {
            text-decoration: none; /* no underline */
            color: #000000;
        }

    /* Copyright, Legal Notice */
        .copyright
        {
            color: #666666;
            font-size: small;
        }

        div div.legalnotice p
        {
            color: #666666;
        }

    /* Program listing */
        pre.synopsis
        {
            border: 1px solid #DCDCDC;
        }

        .programlisting,
        .screen
        {
            border: 1px solid #DCDCDC;
        }

        td .programlisting,
        td .screen
        {
            border: 0px solid #DCDCDC;
        }

    /* Blurbs */
        div.note,
        div.tip,
        div.important,
        div.caution,
        div.warning,
        p.blurb
        {
            border: 1px solid #DCDCDC;
        }

    /* Table of contents */
        div.toc
        {
            border: 1px solid #DCDCDC;
        }

    /* Tables */
        div.informaltable table tr td,
        div.table table tr td
        {
            border: 1px solid #DCDCDC;
        }

        div.informaltable table tr th,
        div.table table tr th
        {
            background-color: #F0F0F0;
            border: 1px solid #DCDCDC;
        }

        .copyright-footer
        {
            color: #8F8F8F;
        }

    /* Misc */
        span.highlight
        {
            color: #00A000;
        }
    }

    @media print
    {
    /* Links */
        a
        {
            color: black;
        }

        a:visited
        {
            color: black;
        }

        .spirit-nav
        {
            display: none;
        }

    /* Program listing */
        pre.synopsis
        {
            border: 1px solid gray;
        }

        .programlisting,
        .screen
        {
            border: 1px solid gray;
        }

        td .programlisting,
        td .screen
        {
            border: 0px solid #DCDCDC;
        }

    /* Table of contents */
        div.toc
        {
            border: 1px solid gray;
        }

        .informaltable table,
        .table table
        {
            border: 1px solid gray;
            border-collapse: collapse;
        }

    /* Tables */
        div.informaltable table tr td,
        div.table table tr td
        {
            border: 1px solid gray;
        }

        div.informaltable table tr th,
        div.table table tr th
        {
            border: 1px solid gray;
        }

        table.simplelist tr td
        {
            border: none !important;
        }

    /* Misc */
        span.highlight
        {
            font-weight: bold;
        }
    }

/*=============================================================================
Images
=============================================================================*/

    span.inlinemediaobject img
    {
        vertical-align: middle;
    }

/*==============================================================================
Super and Subscript: style so that line spacing isn't effected, see
http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=1&postId=5341
==============================================================================*/

sup,
sub {
height: 0;
line-height: 1;
vertical-align: baseline;
position: relative;

}

/* For internet explorer: */

* html sup,
* html sub {
vertical-align: bottom;
}

sup {
bottom: 1ex;
}

sub {
top: .5ex;
}

/*==============================================================================
Indexes: pretty much the same as the TOC.
==============================================================================*/

    .index
    {
       font-size: 80%;
       padding-top: 0px;
       padding-bottom: 0px;
       margin-top: 0px;
       margin-bottom: 0px;
       margin-left: 0px;
    }

    .index ul
    {
       padding-left: 3em;
    }

    .index p
    {
       padding: 2px;
       margin: 2px;
    }

    .index-entry-level-0
    {
        font-weight: bold;
    }

    .index em
    {
        font-weight: bold;
    }


/*==============================================================================
Alignment and coloring use 'role' feature, available from Quickbook 1.6 up.
Added from Niall Douglas for role color and alignment.
http://article.gmane.org/gmane.comp.lib.boost.devel/243318
*/

/* Add text alignment (see http://www.w3schools.com/cssref/pr_text_text-align.asp) */
span.aligncenter
{
  display: inline-block; width: 100%; text-align: center;
}
span.alignright
{
  display: inline-block; width: 100%; text-align: right;
}
/* alignleft is the default. */
span.alignleft
{
  display: inline-block; width: 100%; text-align: left;
}

/* alignjustify stretches the word spacing so that each line has equal width
within a chosen fraction of page width (here arbitrarily 20%).
*Not* useful inside table items as the column width remains the total string width.
Nor very useful, except to temporarily restrict the width.
*/
span.alignjustify
{
  display: inline-block; width: 20%; text-align: justify;
}

/* Text colors.
Names at http://www.w3.org/TR/2002/WD-css3-color-20020219/ 4.3. X11 color keywords.
Quickbook Usage: [role red Some red text]

*/
span.red { inline-block; color: red; }
span.green { color: green; }
span.lime { color: #00FF00; }
span.blue { color: blue; }
span.navy { color: navy; }
span.yellow { color: yellow; }
span.magenta { color: magenta; }
span.indigo { color: #4B0082; }
span.cyan { color: cyan; }
span.purple { color: purple; }
span.gold { color: gold; }
span.silver { color: silver; } /* lighter gray */
span.gray { color: #808080; } /* light gray */