body
{
    font-size: 76%;
}

*
{
    margin: 0px;
    padding: 0px;
    font-size: 1em;
}

select { min-width:1.5em; }

body { padding: .5em; }
h1, h2, h3, h4, h5, h6, p, pre, blockquote, body, table, ul, ol, dl,
    label, address, form, fieldset
{
    margin: 1em 2%;  /* tb lr */
}
dt, li, dd, blockquote { margin-left: 2%; }
fieldset { padding: .5em; }

/* a nice soothing background color... */
body
{
    /* font-size: 100%; */
    text-align: justify;
    color: black;
    background-color: #40D2CA;
    font-family: "Veranda", sans-serif;
    font-size-adjust: 0.58;
}

/* make table have a border
 */
.border, table.border td, table.border th
{
    border: thin outset;
}

/* make pre actually pre-formatted!
 */
pre
{
    font-family: "Courier New", Courier, monospace;
    white-space: pre;
}

/* make blockquotes actually block quotes!
blockquote
{
    white-space: pre;
}
...or not... */

a:link
{
    color: #ff9900;
}

a:visited
{
    color: #996600;
}

hr
{
    color: black;
    background-color: black;
}

/* generally tables should have their empty cells shown */
table
{
    empty-cells: show;
}

/* table headers should be centered in both horizontal and vertical
   orientations */
th, .tabhead
{
    text-align: center;
    vertical-align: middle;
    font-weight: bold;
}

/* table cells should be padded a bit... */
th, td, .tabhead
{
    padding: .8em;
}

.tabhead
{
    border-style: solid !important;
    border-color: #10A29A !important;
    border-top-width: .18em !important;
    border-left-width: .18em !important;
    border-bottom-width: .18em !important;
    border-right-width: .18em !important;
    background-color: #20B2AA !important;
    font-weight: bold !important;
    color: black !important;
    font-size: 150% !important;
}

/* list elements should be separated from one another */
li, dd
{
    padding-bottom: 1em;
}

/* not if we are 'compact', though... */
.compact-list>li
{
    padding-bottom: 0px;
}

/* first child that's a paragraph inside a list item needs no extra
   padding */
li>p:first-child, dd>p:first-child
{
    padding-top: 0px;
    margin-top: 0px;
}

/*
 * super- and sub- scripts should be a little smaller than surrounding text
 */
sup, sub, .super, .subscr
{
    font-size: 50%;
}
.super
{
    vertical-align: super;
}
.subscr
{
    vertical-align: sub;
}

/*
 * save me from my borders!!!
 */
pre
{
    padding: .2em;
    overflow: auto;
}

/*
 * An ...ID... for the announcement header that forms at the top of a page...
 * (it's my first one, you see...*sniff*)
 */
#head-announce
{
    /* nothing generally...but... */
}

    @media print
    {
        #head-announce { display: none; } /* don't bother to print them! */
    }

/*
 * labels problems involving graphics (like the 214 Java book does)
 */
.javaG
{
    color: purple;
}

/*
 * labels problems involving testing (like the 214 Java book does)
 */
.javaT
{
    color: cyan;
}

/*
  all operators, keywords, programmer defined variables, constants, types,
  etc. should be in bold monospace.

  programmer defined items are additionally in italics.
*/
.syntax, .oper, .keyword, .libsymb, .preproc, .comment, .progdef, .data,
    .keyboard, .operlike
{
    font-family: "Courier New", Courier, monospace;
    font-weight: bold;
    font-size: 1.1em;
}
.preproc, .comment, .progdef, .data
{
    font-style: italic;
}
.keyboard
{
    border-width: .1em;
    border-spacing: .2em;
    border-style: outset;
    line-height: 1.5em;
}

em:after { font-size: 50%; content: " "; }
.preproc:after, .comment:after, .progdef:after, .data:after
{
    font-size: 50%;
    content: " ";
}

.preproc:hover, .syntax:hover
{
    text-decoration: overline underline;
    outline-style: double;
    /* outline-color: #ffcc66; */
}
.data:hover
{
    text-decoration: overline;
    outline-style: solid;
    /* outline-color: #ffcc66; */
}
.keyword:hover, .oper:hover
{
    text-decoration: underline;
    outline-style: solid;
    /* outline-color: #ffcc66; */
}
.comment:hover, .libsymb:hover
{
    text-decoration: overline underline;
    outline-style: dashed;
    /* outline-color: #ffcc66; */
}

/*
  highlighting colors for use in examples to point out certain features.
*/
.highlight1 { background-color: #00CF00; }
.highlight2 { background-color: #0000FF; }
.highlight3 { background-color: #CF0000; }
.highlight4 { background-color: #C700C7; }
.highlight5 { background-color: #F0C7C7; }
.highlight6 { background-color: #C0F0C0; }

/*
 * columns...*shrug*
 */
.multicol
{
    -moz-column-count: 2;
    -moz-column-gap: 3em;
    -moz-column-rule: none;
    column-count: 2;
    column-gap: 3em;
    column-rule: none;
}

/* styles for headings:  sections, sub-sections, sub-sub-sections...  */
    .chap, .sect, .sub, .subsub, .subsubsub
    {
        padding-top: .25em;
        padding-bottom: .25em;
        padding-right: .25em;
        padding-left: .25em;
        margin-top: .5em;
        margin-bottom: 0px;
        margin-right: auto;
        margin-left: auto;
        border-color: #10A29A;
        border-style: solid;
        background-color: #20B2AA;
        font-weight: bold;
    }
    /*
     * these border changes don't seem to work when I chain them
     * together like I'm supposed to...or was that just the 'quirks
     * mode' crap?
     */
    .chap
    {
        border-top: none;
        border-left: none;
        border-bottom: none;
        border-right: none;
        font-size: 225%;
    }
    .sect
    {
        border-top-width: .18em;
        border-left: none;
        border-bottom: none;
        border-right: none;
        font-size: 200%;
    }
    .sub
    {
        border-top-width: .18em;
        border-left-width: .18em;
        border-bottom: none;
        border-right: none;
        font-size: 175%;
    }
    .subsub
    {
        border-top-width: .18em;
        border-left-width: .18em;
        border-bottom-width: .18em;
        border-right: none;
        font-size: 150%;
    }
    .subsubsub
    {
        border-top-width: .18em;
        border-left-width: .18em;
        border-bottom-width: .18em;
        border-right-width: .18em;
        font-size: 125%;
    }
/* end heading styles */

/* floating styles */
    h1, h2, h3, h4, h5, h6, hr { clear: both; }
    .barrier
    {
        clear: both;
        border-width: 0px;
        padding: 0px;
        margin: 0px;
        height: 0px;
        overflow: hidden;
    }

    .footnote { color: green; font-style: oblique; }

    .lead
    {
        padding-top: .5em;
        padding-bottom: .5em;
        padding-right: .5em;
        padding-left: .5em;
        margin-top: .5em;
        margin-bottom: .5em;
        margin-right: .5em;
        margin-left: .5em;
        border-width: .18em;
        border-color: #20B2AA;
        border-style: solid;
        font-size: 110%;
        background-color: #40D0C9;
        float: left;
    }

    .sidenote
    {
        padding-top: .5em;
        padding-bottom: .5em;
        padding-right: .5em;
        padding-left: .5em;
        margin-top: .5em;
        margin-bottom: .5em;
        margin-right: .5em;
        margin-left: .5em;
        border-width: .18em;
        border-color: #20B2AA;
        border-style: solid;
        font-size: 80%;
        width: 30%;
        background-color: #40D0C9;
        float: right;
    }
/* end floating styles */

/* example code markup */
    .good { background-color: #7FFF00; }   /* X name: chartreuse */
    .okaybut { background-color: yellow; }
    .bad { background-color: #FF0000; }    /* prev: ff5f00 */
    .verybad { text-decoration: line-through; color: #FF0000; }

    @media print
    {
        .good { color: #7FFF00; }
        .okaybut { color: yellow; }
        .bad { color: #FF0000; }    /* prev: ff5f00 */
    }
/* end example code markup */

/* execution markup */
    .user, .buffused, .sample-calc, .sample-pat, .sample-pattern, .sample-exec,
    .sample-code
    {
        background-color: #CCCCCC;
    }
    .user, .buffused { color: #0000FF; }
    .buffused { text-decoration: line-through; }
    .sample-calc, .sample-pat, .sample-pattern, .sample-exec, .sample-code
    {
        border-color: #CCCC99;
    }
    .sample-exec, .sample-calc { border: solid; }
    .sample-pat, .sample-pattern, .sample-code { border: dashed; }
    .sample { background-color: purple; }
/* end execution markup */

/* assignment markup */
    .topic { font-size: 110%; font-weight: bolder; }

    .blank { line-height: 3em; }

    .right { float: right; }
    .answer { color: #40d2ca; }
    .answer-blank { line-height: 2em; color: #40d2ca; white-space: nowrap; border-bottom: solid; border-width: 2px; border-color: black; }
    .answer-blank-code { line-height: 2em; color: #CCCCCC; white-space: nowrap; border-bottom: solid; border-width: 2px; border-color: black; }

    .level { text-decoration: underline; color: #9966FF; }

    .tfhead:after { content: "<table><tbody>"; }
    .truefalse:before { content: "<tr><th>TRUE</th><th>&nbsp;</th><th>FALSE</th><th>&nbsp;</th><td>"; }
    .truefalse:after { content: "</td></tr>"; }
    .tftail:after { content: "</tbody></table>"; }
    .tfbox { vertical-align: text-top; }
    .TRUE:after { width: 8%; font-weight: bold; padding: 1em; content: "TRUE"; }
    .FALSE:after { width: 8%; font-weight: bold; padding: 1em; content: "FALSE"; }
    .tfchoice { width: 8%; font-weight: bold; padding: 1em; }
    .tfitem { vertical-align: middle; width: 90%; }
/* end assignment markup */

/* web markup */
    .nowrap, .nobreak { white-space: nowrap; }

    .update { color: #FF0000; font-size: 125%; }
    .attention { color: #32CD32;   /* #F00070; */ font-size: 125%; }
    .sm-atten { color: #32CD32;   /* #F00070; */ font-size: 75%; }
    .attenbox, .atten-box
    {
        border-style: solid;
        border-top-width: .2em;
        border-bottom-width: .2em;
        border-right-width: .2em;
        border-left-width: .2em;
        border-color: #32CD32;   /* #F00070; */
        font-size: 125%;
    }
    .uline, .bktit { text-decoration: underline; }
    .bktit { font-style: italic; }
    .sout, .sthru, .xout, .strike, .remov { text-decoration: line-through; }
    .blink { text-decoration: blink; }

    .no-print { /* nothing special normally, but... */ }

    @media print
    {
        .no-print { display: none; }
    }
/* end web markup */
