a { }
    a:link { color:#cc1133; text-decoration:none; }
    a:visited { color:#aa0000; text-decoration:none; }
    a:hover { text-decoration:underline; }

pre {
    font:normal .9em Monaco, Palatino, Times;
    margin:-1em 0 -2em -11em; /* all that extra whitespace in code */
}

header h1 {
     font:bold 1.5em Palatino, Times;
     margin:2em; text-align:center;
}

nav {
       text-align:center;
       font:normal .95em Palatino, Times;
}

    nav ul { list-style-type:none; }
        nav ul li { display:inline; margin:0em 2em 2em 0em; }

header { margin:1em 4em 2em 4em; }

    header .right {
        float:right; 
        text-align:right;
        font:normal .85em Palatino, Times;
        line-height:1.25em;
        margin-bottom:1.75em;
        margin-top:1px;
    }

    header .left { float:left; margin-top:.04em; }
    header .left img {
           width:12.7em;
    }

    header nav { 
        clear:both; 
    }

    footer { margin-top:2.25em; }
        footer .copyright {
            margin-top:3em; 
            font:normal .68em Palatino, Times;
            text-align:center;
            color:#444444;
        }

            footer .copyright p { margin:.1em; }

.toc {
      text-align:center; 
      margin-left:4em;
      margin-right:4em;
      padding-bottom:.5em;
      border:2px solid black;
#      border-radius:.5em;
#      box-shadow: 2px 3px 2px 0px #999999;
      background-color:#fff8e4;
}

    .toc header h1 { margin:0; }
    .toc table { 
        margin-left:auto; margin-right:auto; 
        width:80%; border-spacing:0;
    }

    .toc td {
        text-align:left;
        font:normal .9em Verdana, Helvetica;
        padding:.2em 0 .2em 0;
        margin-left:8em;
    }
        .toc td a {
            font:normal 1.15em Palatino, Times;
        }

    .toc .arrow { text-align:left; width:24px; }
        .toc .arrow img:hover { cursor:pointer; }
    .toc tr { display:none; }
    .toc .top { display:table-row; }
    .toc #osid td { padding-bottom:2em; }

.osid { clear:both; margin:1em 4em 2em 4em; }
    .osid table { width:100%; }
    .osid code { font: normal 1.05em Palatino, Times; }
    .osid p { margin-top:1em; margin-bottom:.1em; }
        .osid p:first-of-type { margin-top:.1em; }

    .osid table {
        font: .85em Verdana;
        border:2px solid black;
        border-spacing:0;
#        border-radius:.5em; 
#        box-shadow: 2px 3px 2px 0px #999999;
        table-layout:fixed;
    }

    /*
        .osid thead:first-child tr:first-child th:first-of-type {
            border-top-left-radius:.5em; 
        }

        .osid thead:first-child tr:first-child th:last-of-type { 
            border-top-right-radius:.5em; 
        }

        .osid tbody:last-of-type tr:last-of-type th:first-of-type {
            border-bottom-left-radius:.5em; 
        }

        .osid tbody:last-of-type tr:last-of-type td:last-of-type {
            border-bottom-right-radius:.5em; 
        }

        .osid thead:last-child tr:last-of-type th:first-of-type {
            border-bottom-left-radius:.5em; 
        }

        .osid thead:last-child tr:last-of-type td:last-of-type {
            border-bottom-right-radius:.5em; 
        }
*/
    .osid th { 
        font: bold .85em Arial, Helvetica;
        text-align:center; 
        padding:.0em .5em .0em .5em;
    }

    .osid td { 
         font: normal .95em Arial;
         text-align:left; 
         padding:.1em .35em .1em .35em;
    }

    .osid tbody {
        border-top:2px solid black;
        page-break-inside:avoid;
    }

        .osid tbody tr th {
              border-top:1px solid black;
        }

        .osid tbody tr td {
              border-top:1px solid black;
        }
      

    .osid thead .interface {}
        .osid thead .interface th { 
            font-style:italic; border-bottom:double; 
         }

        .osid thead .interface .name {
            font: bold 1.2em Arial;
            text-align:center;
            padding:.5em .5em .5em .5em;
            word-wrap:break-word;
        }

    .osid thead tr th:first-of-type { 
        border-right:1px solid black;
        width:8.25em;
    }

    .osid thead .description th { 
        border-top:1px solid black;
    }

    .osid thead .description td { 
        border-top:1px solid black;
        padding-top:.5em;
        padding-bottom:.5em;
    }

    .osid .method .title .name {
        font: bold 1em Helvetica;
        text-align:center;
        padding-bottom:.1em;
        word-wrap:break-word;
    }

    .ua-gecko .osid .method .title .name {
        padding-top:.15em;
        padding-bottom:0em;
    }

    .osid .method tr:first-of-type th {
          border-top:3px solid black;
    }

    .osid .method tr th:first-of-type {
          border-right:1px solid black;
    }

    .osid .method .parameter .name {
          border-left:1px solid black;
    }

    .osid .method tr .description {
          border-left:1px solid black;
    }

    .osid .method .parameter .type {
          word-wrap:break-word;
    }

    .osid .method .parameter .name {
          word-wrap:break-word;
    }

    .osid .method .parameter .description {
          word-wrap:break-word;
    }

    .osid .method .error .description {
          word-wrap:break-word;
    }

    .osid .method .return .type {
          word-wrap:break-word;
    }

    .osid .method .return .description {
          word-wrap:break-word;
    }

    .osid .OsidObject th { background-color:#aaffcc; }

    .osid .enum th { background-color:#ffcc44; }

    .osid .license {}
        .osid .license th { background-color:#ce0000; }
        .osid .license .title .name { font-size:1.15em; }
        .osid .license .terms td { 
              padding-top:.5em; padding-bottom:.5em; 
        }
        .osid .license .copyright td p { margin:.25em 0 .25em 0; }
        .osid .license tbody th { border-right:1px solid black; }
        /* dunno why this is necessary */
        .osid .license .terms th {
#            border-bottom-left-radius:.5em; 
        }
        
    .osid .package {}
        .osid .package th { background-color:#aad4aa; }
        .osid .package .title .name { font-size:1.1em; }
        .osid .package .title th { border-bottom:1px solid black; }
        .osid .package .version th { border-bottom:1px solid black; }
        .osid .package .version td { border-bottom:1px solid black; }
        .osid .package .description th { 
              border-top:1px solid black; 
              border-right:1px solid black;
        }

        .osid .package .description td { 
              border-top:1px solid black; 
              padding-top:.5em;
              padding-bottom:.5em;
        }

    .osid .primitives {}
        .osid .primitives th { background-color:#992255; }
        .osid thead .description th { border-bottom:1px solid black; }
        .osid thead .description td { border-bottom:1px solid black; }

        .osid .primitives .primitive th { 
              border-right:1px solid black; 
#              border-bottom-left-radius:.5em;   
         }

        .osid .primitives .type { 
            padding:0 1em 0 .5em; 
            border-right:1px solid black;
        }

        .osid .primitives .primitive .description { 
            padding-top:.3em; padding-bottom:.3em;
        }

    .osid .errors {}
        .osid .errors th { 
            background-color:#992255; 
            font: bold .8em Arial;
        }

        .osid .errors thead .description td {
            border-bottom:1px solid black;
        }

        .osid .errors tbody tr th:first-of-type { 
            border-right:1px solid black; 
        }

        .osid .errors .category th {
            border-top:2px solid black;
            border-bottom:1px solid black;
        }

        .osid .errors .category .name {
            font: bold 1em Arial;
            line-height:1.5em;
        }

        .osid .errors .error th { 
              border-right:1px solid black; 
         }

        .osid .errors .error .type { 
            padding:0 1em 0 .5em; 
            border-right:1px solid black;
        }

        .osid .errors .error .description { 
            padding-top:.3em;
            padding-bottom:.3em;
        }

        .osid .errors tbody:last-of-type .error th {
#              border-bottom-left-radius:.5em;   
        }

    .osid .statements {}
        .osid .statements th { 
            background-color:#992255; 
            font: bold .8em Arial;
        }

        .osid .statements .statement .type { 
            padding:0 1em 0 .5em; border-right:1px solid black;
        }

        .osid .statements .statement .description {
              padding-top:.5em; padding-bottom:.5em;
        }
        
        .osid .statements tbody:last-of-type .statement th {
#              border-bottom-left-radius:.5em;   
        }

    .osid .index { border:2px solid black; }
        .osid .index td { border:none; }
        .osid .index th { border:none; }
        .osid .index .blank { height:1em; }
        .osid .index .interface { background-color:#aad4aa; }
            .osid .index .interface .name { text-align:left; }
        .osid .index .enumerations { background-color:#ffcc44; }
        .osid .index .markers { background-color:#dddddd; }
        .osid .index .managers { background-color:#ffff99; }
        .osid .index .sessions { background-color:#99ccff; }
        .osid .index .object { background-color:#ccffcc; }
        .osid .index .objects { background-color:#ccffcc; }
        .osid .index .primitive { background-color:#ffb5b5; }
        .osid .index .queries { background-color:#ccffff; }
        .osid .index .queryinspectors { background-color:#e1ffb3; }
        .osid .index .forms { background-color:#8ffedd; }
        .osid .index .searchorders { background-color:#d7d1f8; }
        .osid .index .searches { background-color:#dfb0ff; }
        .osid .index .rules { background-color:#ffbfbf; }
        .osid .index .rule { background-color:#ffbfbf; }
        .osid .index .properties { background-color:#ffcc99; }
        .osid .index .other { background-color:#dddddd; }

        .osid .index .meta { background-color:#992255; }
            .osid .index .meta td { line-height:2em; }
            .osid .index .meta a:link { color:#ffffd0; } 
            .osid .index .meta a:visited { color:#ffffd0; }

        .osid .index a {}
            .osid .index a:link { color:#991155; }
            .osid .index a:visited { color:#550033; }

        .osid .index tbody {
              border:none;
        }

        .osid .index tbody:last-of-type th:first-of-type {
#            border-bottom-left-radius:.5em; 
        }

.model { 
    clear:both; margin:1em 4em 3em 4em; text-align:center; 
    border:2px solid black;
#    border-radius:.5em;
#    box-shadow: 2px 3px 2px 0px #999999;
    background-image:
        -webkit-repeating-linear-gradient(0deg, rgba(0, 191, 255, .25), rgba(0, 191, 255, .25) 1px, transparent 1px, transparent 15px),
        -webkit-repeating-linear-gradient(90deg, rgba(255, 105, 180, .25), rgba(255, 105, 180, .25) 1px, transparent 1px, transparent 15px);
     background-image:
         -moz-repeating-linear-gradient(0deg, rgba(0, 191, 255, .5), rgba(0, 191, 255, .5) 1px, transparent 1px, transparent 15px),
         -moz-repeating-linear-gradient(90deg, rgba(255, 105, 180, .5), rgba(255, 105, 180, .5) 1px, transparent 1px, transparent 15px);
    background-image:
        -o-repeating-linear-gradient(0deg, rgba(0, 191, 255, .5), rgba(0, 191, 255, .5) 1px, transparent 1px, transparent 15px),
        -o-repeating-linear-gradient(90deg, rgba(255, 105, 180, .5), rgba(255, 105, 180, .5) 1px, transparent 1px, transparent 15px);
    background-image:
        repeating-linear-gradient(0deg, rgba(0, 191, 255, .5), rgba(0, 191, 255, .5) 1px, transparent 1px, transparent 15px),
        repeating-linear-gradient(90deg, rgba(255, 105, 180, .5), rgba(255, 105, 180, .5) 1px, transparent 1px, transparent 15px);
}

    .model object { width:100%; height:100%; }
    .model .links { margin-top:1em; }

.model-nav .model-arrows div {
    background-color:#aa0000;
    display:inline-block;
    margin:0 1.5em; 1em 1.5em;
    padding:.25em .5em .4em .5em;
    font:normal .8em Arial, Helvetica;
#    text-shadow: 0 -1px 0px rgba(0,0,0,.85);
#    border-radius:.5em;
    border:1px solid rgba(0,0,0,0.50);
    border-top:1px solid rgba(0,0,0,0.01);
#    box-shadow: 1px 1px 1px 0px #888888;
}

    .on { display:inherit; }
    .off { display:none; }
    .model-nav .enabled { color:#ffffff; cursor:pointer; }
        .model-nav .enabled:hover { color:#ffffa0; }
    .model-nav .disabled { color:#bb6688; }
    .model-nav .model-arrows span { font-size:.7em; }
