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

    Use, modification and distribution is subject to the Boost Software
    License, Version 1.0. (See accompanying 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: 10pt;
    }

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

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

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

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

    h1 { font: 140% }
    h2 { font: bold 140% }
    h3 { font: bold 130% }
    h4 { font: bold 120% }
    h5 { font: italic 110% }
    h6 { font: italic 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: 120% }
    h5 tt.computeroutput { font-size: 110% }
    h6 tt.computeroutput { font-size: 100% }

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

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

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

    .toc-main
    {
     width: 600;
    text-align: center;
       margin: 1pc 1pc 1pc 10%;
       padding: 2pc 1pc 3pc 1pc;
    line-height: 0.1;
    }

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

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

    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: 120%;
    }

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

    div.note,
    div.tip,
    div.important,
    div.caution,
    div.warning,
    p.blurb
    {
        font-size: 10pt;
        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
=============================================================================*/

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

    div.variablelist table tbody tr td p
    {
        margin: 0em 0em 0.5em 0em;
    }

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

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

/*=============================================================================
    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
    {
        font-size: 8pt;
        text-align: left
    }

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

    @media screen
    {
        /* Links */
        a
        {
            color: #0C7445;
        }

        a:visited
        {
            color: #663974;
        }

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

        /* 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: #E8FBE9; }
        .dk_grey_bkd    { background-color: #A0DAAC; }

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

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

        /* Program listing */
        pre.synopsis
        {
            border: 1px solid #DCDCDC;
            border-bottom: 3px solid #9D9D9D;
            border-right: 3px solid #9D9D9D;
            background-color: #FAFFFB;
        }

        .programlisting, 
        .screen
        {
            border: 1px solid #DCDCDC;
            border-bottom: 3px solid #9D9D9D;
            border-right: 3px solid #9D9D9D;
            background-color: #FAFFFB;
        }

        /* Blurbs */
        div.note,
        div.tip,
        div.important,
        div.caution,
        div.warning,
        p.blurb
        {
            border: 1px solid #DCDCDC;
            border-bottom: 3px solid #9D9D9D;
            border-right: 3px solid #9D9D9D;
            background-color: #FAFFFB;
        }

        /* Table of contents */
        .toc
        {
            border: 1px solid #DCDCDC;
            border-bottom: 3px solid #9D9D9D;
            border-right: 3px solid #9D9D9D;
            background-color: #FAFFFB;
        }

        /* Table of contents */
        .toc-main
        {
            border: 1px solid #DCDCDC;
            border-bottom: 3px solid #9D9D9D;
            border-right: 3px solid #9D9D9D;
            background-color: #FAFFFB;
        }


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

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

        /* 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;
            background-color: #FAFFFB;
        }

        .programlisting, 
        .screen
        {
            border: 1px solid gray;
            background-color: #FAFFFB;
        }

        /* Table of contents */
        .toc
        {
            border: 1px solid #DCDCDC;
            border-bottom: 3px solid #9D9D9D;
            border-right: 3px solid #9D9D9D;
            background-color: #FAFFFB;
        }

        /* Table of contents */
        .toc-main
        {
            border: 1px solid #DCDCDC;
            border-bottom: 3px solid #9D9D9D;
            border-right: 3px solid #9D9D9D;
            background-color: #FAFFFB;
        }

        .informaltable table, 
        .table table
        {
            border: 1px solid #DCDCDC;
            border-bottom: 3px solid #9D9D9D;
            border-right: 3px solid #9D9D9D;
            border-collapse: collapse;
            background-color: #FAFFFB;
        }

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

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

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