/* Confluence master stylesheet */
body {
    margin: 0;
    padding: 0;
    background-color: #f0f0f0;
}
body.content-preview {
    background: #fff;
    border: none;
}

body, p, td, table, tr, .bodytext, .stepfield {
    font-size: 10pt;
    line-height: 1.3;
    color: #000;
    font-weight: normal;
}

#PageContent {
    text-align: left;
    background-color: #fff;
    padding: 0 20px 20px 20px;
    margin: 0;
}

.print-only {
    display: none;
}

.monospaceInput {
    font: 10pt monospace;
}

pre {
    padding: 0;
    margin: 10px 0;
    text-align: left;
    overflow: auto;
}

.helpheading {
    font-weight: bold;
    background-color: #d0d9bd;
    border-bottom-width: 1px;
    border-bottom-style: solid;
    padding: 4px;
    margin: 0;
    margin-top: 10px;
}
.helpcontent {
    padding: 4px 4px 20px 4px;
    background-color: #f5f7f1;
}

.help-section-div .helpheading {
    margin: 0;
}
.help-section-div {
    margin-bottom: 2em;
}

#print-friendly-help-toggle {
    position: absolute;
    top: 1em;
    right: 1em;
    text-indent: -999em;
    width: 16px;
    height: 16px;
    background-image: url("../../../images/icons/print_16.gif");
    background-repeat: no-repeat;
    outline: none;
}

#commentsHide {
    color: #666;
    font-weight: normal;
}

#showingComments {
    border: none;
    font-size: 10pt;
}

.pageSection {
    margin-top: 10px;
    clear: both;
}


.pageSectionHeader {
    margin-bottom: 5px;
    padding: 2px 0;
    border-bottom-width: 1px;
    border-bottom-style: solid;
}

.pageSectionHeader.summary {
    border-bottom: none;
}

.pageSectionBody {
    margin-top: 4px;
}

a.grey:link { color: #666; }
a.grey:visited { color: #666; }
a.grey:active { color: #666; }
a.grey:hover { color: #666; }

.more-comments {
    font-size: 10pt;
    color: #dde2e6;
}

.commentBox  {
    padding: 0;
    margin: 10px 0;
    overflow: auto;
}

.commentBox table.comment {
    border: 0;
    border-bottom: #f0f0f0 1px solid;
    border-top: #f0f0f0 1px solid;
    margin: 0;
    padding: 0;
    width: 100%;
    border-collapse: collapse;
}

.commentBox .commentinfo {
    background-color: #f0f0f0;
    vertical-align: top;
    padding: 12px;
}

.commentBox .commentinfo .smalltext {
    line-height: 11pt;
}

.commentBox .commentphoto {
    background-color: #f0f0f0;
    text-align: right;
    vertical-align:top;
    padding: 12px;
}

.commentBox .commentphoto img {
    border: none;
}

.commentBox .commentname a:hover {
    text-decoration: underline;
}

.commentdate {
    margin-top: 3px;
}

.commentBox .commentdate, .commentdate a {
    color: #000;
    text-decoration: none;
    font-size: 9pt;
}

.commentdate a:hover {
    text-decoration: underline
}

.commentBox .smalltext {
    line-height: 10pt;
}

.commentBox .smalltext a {
    text-decoration: none;
}

.commentBox .smalltext a:hover {
    text-decoration: underline;
}

.commentBox td.commentdetails {
    vertical-align: top;
    padding: 0 10px;
}

.commentBox td.commentActions {
    padding: 0 10px 10px 10px;
    vertical-align: bottom;
}

.commentThread {
    clear: both; /* clear both in case there are floats or aligned images in the content that sits above the comment thread */
}

#replying .commentdetails {
    padding: 15px 0 15px 25px
}

#replying .commentinfo {
    background-color: #a0a0a0;
    color: #f0f0f0;
}

#replying .commentdate, #replying .commentdate a {
    color: #f0f0f0;
}

#replying .commentname a {
    color: #f0f0f0;
}

#replying .commentphoto {
    background-color: #a0a0a0;
}

#replying table.comment {
    border-bottom-color: #a0a0a0;
    border-top-color: #a0a0a0;
}

#addition .commentdetails {
    padding: 15px 30px 10px 30px;
}

#addition .commentinfo {
    background-color: #a0a0a0;
    color: #f0f0f0;
}

#addition .commentname a {
    color: #f0f0f0;
}

#addition .commentdate, #addition .commentdate a {
    color: #f0f0f0;
}

#addition .commentphoto {
    background-color: #a0a0a0;
}

#addition table.comment {
    border-bottom-color: #a0a0a0;
    border-top-color: #a0a0a0;
}

#focusedComment .commentBox td.commentdetails, #focusedComment td.commentActions {
    background: #ffffd7;
}

.anonymousAlert, .lockAlert {
    background-color: #f0f0f0;
    border: 1px dashed red;
    font-size: 11px;
    padding: 10px 5px;
    margin: 4px;
    line-height: 13px;
}

.lockAlert {
    width: 50%;
}

.navmenu {
    border: 1px solid #f0f0f0;
    margin: 0;
}

.menuheading {
    font-weight: bold;
    padding: 5px 4px 5px 10px;
    color: #222;
    background-color: #f0f0f0;
}

.navmenu.collapsible-menu .menuheading {
    background: #f0f0f0 url(../../../images/icons/grey_arrow_down.gif) no-repeat 98% 50%;
}
.navmenu.collapsible-menu .menuheading.closed {
    background-image: url(../../../images/icons/grey_arrow_right.gif);
}

.menuitems {
    padding: 4px 4px 20px 4px;
}

ul.navmenu {
    padding-left: 0;
    margin-top: 0;
    -moz-border-radius: 3px;
    -webkit-border-radius: 3px;
}

ul.navmenu li.menu-section {
    list-style: none;
}

.menu-section-list {
    margin: 0;
    padding: 5px 0 10px 0;        
}

.menu-section-list li {
    list-style: none;
    margin: 0;
    line-height: 1.3;
}

.menu-section-list li a:hover {
    background-color: #f0f0f0;
}

.menu-section-list li.active a,
.menu-section-list li.active a:hover {
    color: #fff;
    font-weight: bold;
    background-color: #444; /* set to neutral colour */
}

.menu-section-list li a {
    text-decoration: none;
    color: #666;
    display: block;
    padding: 0.2em 10px;
    cursor: pointer;
}

.menu-section-list li a img {
    padding-right: 2px; 
}

.rightpanel {
    background: #f0f0f0;
    -moz-border-radius: 3px; /* Firefox */
    -webkit-border-radius: 3px; /* Safari */
    border-radius: 3px; /* CSS3 (Opera?) */
    padding: .9em;
}

h3.underlined,
#helpheading,
.sidebar-heading {
    padding: 0;
    margin: 10px 0;
    text-align: left;
    color: #333;
    border-bottom: 1px solid #ccc;
}

#helpheading,
#helpcontent h3.underlined,
.sidebar-heading {
    font-size: 13px;
    margin: -.1em;
    padding: .1em .1em .2em .1em;
}

#helpcontent {
    margin-top: .9em;
}

#helpcontent p {
    margin-bottom: 0;
    margin-top: .9em;
}

#helpcontent ul {
    padding-left: 1.3em;
}

#helpcontent dl {
    margin-top: 0;
}

#helpcontent dl dd {
    margin: 0;
    color: #333;
    font-size: 90%;
    margin-bottom: .2em;
}

#helpcontent dl dd code,
#helpcontent dl dd pre {
    color: #666;
    margin: 0;
    padding: 0;
}

#helpcontent dl dd.text-formatting code {
    display: inline-block;
    width: 6em;
}

#helpcontent dl dt {
    margin-top: 1em;
}
#helpcontent dl dt.first {
    margin-top: 0;
}

.helptab-unselected {
    font-weight: bold;
    padding: 5px;
    background-color: #f5f7f1;
}
.helptab-selected {
    font-weight: bold;
    background-color: #d0d9bd;
    padding: 5px;
}
.helptabs {
    margin: 0;
    background-color: #f5f7f1;
    padding: 5px;
}

#profileSummary h3 {
    font-weight: bold;
    font-size: 10pt;
    margin: 12px 0 4px;
    padding: 0;
}
#profileSummary ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
}

.pageheader {
    padding: 5px 5px 5px 0;
    border-bottom-width: 1px;
    border-bottom-style: solid;
}

.pagetitle {
    font-size: 18pt;
    line-height: normal;
    font-weight: bold;
}

.newpagetitle {
    color: #ccc !important;
}

.steptitle {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 7px;
}

.substeptitle {
    font-size: 12px;
    font-weight: bold;
    margin: 2px 4px 4px 4px;
    padding: 2px 4px 1px 4px;
}

.stepdesc {
    font-size: 10pt;
    line-height: 13pt;
    font-weight: normal;
    color: #666;
    margin-top: 7px;
    margin-bottom: 7px;
}

.steplabel {
    font-weight: bold;
    margin-right: 4px;
    color: black;
    float: left;
    width: 15%;
    text-align: right;
}

.stepfield {
    background: #f0f0f0;
    padding: 5px;
}

.submitButtons{
    margin-top:5px;
    text-align:right;
}

.formtitle {
    font-size: 12px;
    font-weight: bold;
}

.sectionbottom {
    border-bottom-width: 1px;
    border-bottom-style: solid;
}

.topRow {
    border-top-width: 2px;
    border-top-style: solid;
}

.tabletitle {
    font-size: 10pt;
    font-weight: bold;
    padding: 3px 0 2px 0;
    margin: 8px 4px 2px 0;
    border-bottom-width: 2px;
    border-bottom-style: solid;
}

.tabletitleops {
    float: right;
}
.tabletitleops, .tabletitleops a, .tabletitleops img {
    vertical-align: middle;
}
.tabletitleops img {
    border: none;
}

.fullWidth {
    width: 100%;
}

.pagesubheading {
    color: #666;
    font-size: 10px;
    padding: 0 0 5px 0;
}

hr {
    color: #ccc;
    height: 1px;
}

h1 a:link, h1 a:visited, h1 a:active {
    text-decoration: none;
}

.logocell {
    padding: 10px;
}

input {
    font-family: Helvetica, Arial, sans-serif;
    font-size: 10pt;
    color: #000;
}
input[type='password'] {
    -webkit-appearance: caps-lock-indicator;
}

textarea, textarea.editor {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 10pt;
    color: #333;
}

.spacenametitle-printable {
    font: 20px Impact, Arial, Helvetica;
    font-weight: 100;
    line-height: 25px;
    margin: 0;
}

.spacenametitle-printable a,
.spacenametitle-printable a:visited {
    text-decoration: none;
}

.blogDate {
    font-weight: bold;
    text-decoration: none;
    color: black;
}

.blogSurtitle {
    background: #f0f0f0;
    border: 1px solid #ddd;
    padding: 3px;
    margin: 1px 1px 10px 1px;
}

a.blogHeading {
    font-size: 20pt;
    line-height: normal;
    font-weight: bold;
    text-decoration: none;
}

.blogHeading a:hover {
   text-decoration: underline;
}

.endsection {
    text-align: right;
    color: #666;
    clear: both;
    padding-top: 10px;
}
.endsectionleftnav {
    text-align: right;
    color: #666;
    clear: both;
    padding-top: 10px;
}

h1, h2, h3, h4, h5, h6 {
    line-height: normal;
    font-weight: bold;
    padding: 2px;
}

h1 {
    font-size: 24px;
    margin: 36px 0 4px 0;
}

h2 {
    font-size: 18px;
    margin: 27px 0 4px 0;
}

h3 {
    font-size: 14px;
    margin: 21px 0 4px 0;
}

h4 {
    font-size: 12px;
    margin: 18px 0 4px 0;
}

h5 {
    font-size: 10px;
    margin: 14px 0 4px 0;
}

h6 {
    font-size: 8px;
    margin: 14px 0 4px 0;
}

.smallfont {
    font-size: 10px;
}
.descfont {
    color: #666;
    font-size: 10px;
}
.smallerfont {
    font-size: 9px;
}
.smalltext {
    color: #666;
    font-size: 12px;
}
.smalltext a {
    color: #666;
}
.greyText
{
    color: #666;
}
.smalltext-blue {
    font-size: 8pt;
    color: #69c;
}
.surtitle {
    margin-left: 1px;
    margin-bottom: 5px;
    font-size: 14px;
    color: #666;
}

/* css hack found here:  http://www.fo3nix.pwp.blueyonder.co.uk/tutorials/css/hacks/ */
.navItemOver {
    font-size: 10px;
    font-weight: bold;
    voice-family: "\'}\'";
    voice-family: inherit;
    cursor: pointer;
}

.navItem {
    font-size: 10px;
    font-weight: bold;
    color: #fff;
}

.navItemOver a,
.navItemOver a:visited,
.navItemOver a:hover,
.navItem a,
.navItem a:hover,
.navItem a:visited {
    text-decoration: none;
}

div.padded {
    padding: 4px;
}   

div.thickPadded {
    padding: 10px;
}

h3.macrolibrariestitle {
    margin: 0;
}

div.centered {
    text-align: center;
    margin: 10px;
}

div.centered table {
    margin: 0 auto;
    text-align: left;
}

.tableview table {
    margin: 0;
}

.tableview tr.alternateRow {
    background: #f0f0f0;
}

.tableview th {
    text-align: left;
    font-size: 12px;
    padding: 5px 15px 2px 0;
    border-bottom-width: 1px;
    border-bottom-style: solid;
}
.tableview td {
    text-align: left;
    border-color: #eee;
    border-width: 0 0 1px 0;
    border-style: solid;
    margin: 0;
    padding: 5px 15px 3px 0;
}

.grid {
    margin: 2px 0 5px 0;
    border-collapse: collapse;
}
.grid th  {
    border: 1px solid #ccc;
    padding: 2px 4px 2px 4px;
    background: #f0f0f0;
    text-align: center;
}
.grid td  {
    border: 1px solid #ccc;
    padding: 3px 4px 3px 4px;
}
.gridHover {
    background-color: #f9f9f9;
}

td.infocell {
    background-color: #f0f0f0;
}

.label, label {
    font-weight: bold;
}
a.label {
    font-weight: normal;
}

.error {
    background-color: #fcc;
}

.errorBox {
    background-color: #fcc;
    border: 1px solid #c00;
    padding: 5px;
    margin: 5px;
}

.errorMessage, .errorMessage p {
    color: #c00;
}

.success {
    background-color: #dfd;
}

.successBox {
    background-color: #dfd;
    border: 1px solid #090;
    padding: 5px;
    margin-top:5px;
    margin-bottom:5px;
}

blockquote {
    font-style: italic;
    font-size: 10pt;
    border-left-width: 1px;
    border-left-style: solid;
    padding: 0 20px;
    margin: 10px 20px;
}

blockquote p {
    font-size: 10pt;
}

blockquote em {
    font-style: normal;
}

div.small {
    font-size: 9px;
}

h1.pagename {
    margin-top: 0;
}

/* The text how the "This is a preview" comment should be shown. */
.previewnote {
    text-align: center;
    font-size: 11px;
    color: red;
}

/* How the preview content should be shown */
.previewcontent {
    background: #e0e0e0;
}

/* How the system messages should be shown (DisplayMessage.jsp) */
.messagecontent {
    background: #e0e0e0;
}

/* How the "This page has been modified..." -comment should be shown. */
.conflictnote { }

.createlink,
a.createlink,
a.createlink:link,
a.createlink:visited,
a.createlink:active,
a.createlink:hover {
    color: maroon;
}
.templateparameter {
    font-size: 9px;
    color: #00008b;
}

.diff {
    font-family: "monaco", "lucida console", "courier new", monospace;
    padding: 0 1em;
    margin-top: 1em;
}
.diff td {
    font-size: 0.9em;
    padding-bottom: 0.3em;
}
.diff-added-lines, .diff-added-words, .diff-added-chars {
    background: #dfd;
}
.diff-deleted-lines, .diff-deleted-words, .diff-deleted-chars {
    color: #999;
    background: #fdd;
    text-decoration: line-through;
}
.differror {
    background: #A52A2A;
}
div.diff-snip-link {
    padding: 1em 1px 1em 1em;
}

.greybackground {
    background: #f0f0f0
}

.greybox {
    border: 1px solid #ddd;
    padding: 3px;
    margin: 1px 1px 10px 1px;
}

.borderedGreyBox {
    background-color: #F0F0F0;
    padding: 0.9em;
    -moz-border-radius: 3px;
    -webkit-border-radius: 3px;
    margin-bottom: 17px;

}

.space-labels div.borderedGreyBox{
    float: right;
    width: 189px;
}



.borderedLabelHeading{
    border-bottom: 1px solid #CCCCCC;
    color: #333333;
    font-size: 13px;
    font-weight: bold;
    margin-bottom: 0.7em;
}

.greyboxfilled {
    border: 1px solid #ddd;
    background: #f0f0f0;
    padding: 3px;
    margin: 1px 1px 10px 1px;
}

.lightGreyBox {
    background: #fafafa;
}

.navBackgroundBox {
    padding: 5px;
    font-size: 22px;
    font-weight: bold;
    color: white;
    text-decoration: none;
}

.previewBoxTop {
    background-color: #f0f0f0;
    border-width: 1px 1px 0px 1px;
    border-style: solid;
    padding: 5px;
    margin: 5px 0px 0px 0px;
    text-align: center;
}
.previewContent {
    background-color: #fff;
    border-width: 0px 1px 0px 1px;
    border-style: solid;
    padding: 10px;
    margin: 0px;
}
.previewBoxBottom {
    background-color: #f0f0f0;
    border-width: 0px 1px 1px 1px;
    border-style: solid;
    padding: 5px;
    margin: 0px 0px 5px 0px;
    text-align: center;
}

.functionbox {
    background-color: #f0f0f0;
    border: 1px solid;
    padding: 3px;
    margin: 1px 1px 10px 1px;
}

.functionbox-greyborder {
    background-color: #f0f0f0;
    border: 1px solid #ddd;
    padding: 3px;
    margin: 1px 1px 10px 1px;
}

.rowNormal {
    background-color: #fff;
 }

.rowAlternate {
    background-color: #f7f7f7;
}

/* used in the list attachments table */
.rowAlternateNoBottomColor {
    background-color: #f7f7f7;
}

.rowAlternateNoBottomColor td,
.rowAlternateNoBottomNoColor td {
    border-bottom: 0;
}

.rowHighlight {
    background-color: #f0f0f0;
}

td.greenBar,
td.greenbar,
td.graybar,
td.redbar,
td.darkredbar {
    font-size: 1em;
    border: 1px solid #9c9c9c;
    padding: 0;
}

td.greenBar,
td.greenbar {
    background: #00df00;
}
td.graybar {
    background: #808080;
}
td.redbar {
    background: #df0000;
}
td.darkredbar {
    background: #af0000;
}

tr.testpassed {
    font-size: 2px;
    background: #dfd;
    padding: 0;
}
tr.testfailed {
    font-size: 2px;
    background: #fdd;
    padding: 0;
}

.toolbar  {
    margin: 0;
    border-collapse: collapse;
}

.toolbar td  {
    border: 1px solid #ccc;
    padding: 2px;
    color: #ccc;
}

td.noformatting {
    border-width: 0;
    border-style: none;
    text-align: center;
    padding: 0;
}

/*
 * Divs displaying the license information, if necessary.
 */
.license {
    border-top: 1px solid #bbb;
    text-align: center;
    font-size: 10pt;
    background-color: #ffffe0;
}

.license-eval, .license-none {
    background-color: #fcc;
}

.license-eval b, .license-none b {
    color: #900;
}

/*
 * The shadow at the bottom of the page between the main content and the
 * "powered by" section.
 */
.bottomshadow {
    height: 12px;
    background-image: url("../../../images/border/border_bottom.gif");
    background-repeat: repeat-x;
}

/*
 * Styling of the operations box
 */
.navmenu .operations li, .navmenu .operations ul {
    list-style: none;
    margin-left: 0;
    padding-left: 0;
}

.navmenu .operations ul {
    margin-bottom: 9px;
}

.navmenu .label {
    font-weight: inherit;
}

/*
 * Styling of ops as a toolbar
 */
.toolbar div {
    display: none;
}

.toolbar .label {
    display: none;
}

.toolbar .operations {
    display: block;
}

.toolbar .operations ul {
    display: inline;
    list-style: none;
    margin-left: 10px;
    padding-left: 0;
}

.toolbar .operations li {
    list-style: none;
    display: inline;
}

.bold {
    font-weight: bold;
}


/* space action links */
.tabnav .spaceActionLinks {
    float: right;
    margin: 0;
    display: block;
}

.tabnav .spaceActionLinks a span {
    text-decoration: underline;
}
.tabnav .spaceActionLinks a.current {
    color: black;
}
.tabnav .spaceActionLinks a.current span {
    text-decoration: none;
}

.tabnav .spaceActionLinks a.current:link {
    color: black;
}

.tabnav .spaceActionLinks a.current:visited {
    color: black;
}

/* non tabs */
.tabnav .nontabs {
    padding: 0;
    margin: 5px 0 0 3px;
    display: block;
    float: left;
}

/* editor tab customizations of the tabnav */
#markupTab, #wysiwygTab, #previewTab {
    font-size: 9pt;
    padding: 3px 5px 2px; /* tab padding */
    margin: 8px 0 0 3px; /* margin-top is used to 'push' the tab down to fill in any gaps */
    font-weight: normal;
}

/* alphabet list */
#squaretab {
    margin-left: 0;
    padding-left: 0;
    white-space: nowrap;
    font-family: Verdana, Helvetica, Arial, sans-serif;
    font-size: 8pt;
    line-height: 11pt
}

#squaretab li {
    display: inline;
    list-style-type: none;
}

#squaretab a {
    padding: 5px 7px 3px 7px;
    border-width: 1px;
    border-style: solid;
}

#squaretab a:link,
#squaretab a:visited {
    color: #fff;
    text-decoration: none;
}

#squaretab a:hover {
    text-decoration: none;
}

#current {
    background: #fff;
    color: #000;
}

.blogcalendar th,
.blogcalendar td  {
    font-size: x-small;
    font-weight: normal;
    line-height: 140%;
    padding: 2px;
}

table.blogcalendar {
    border-width: 1px;
    border-style: solid;
}

.blogcalendar th.calendarhead,
a.calendarhead {
    font-size: x-small;
    font-weight: bold;
    padding: 2px;
    letter-spacing: 0.3em;
    text-transform: uppercase;
}

.blogcalendar th.calendarhead,
.calendarhead,
.calendarhead:link,
.calendarhead:visited,
.calendarhead:active,
.calendarhead:hover {
    color: #fff;
}

.blogcalendar th {
    font-size: x-small;
    font-weight: bold;
    padding: 2px;
    background-color: #f0f0f0;
}

.blogcalendar td {
    font-size: x-small;
    font-weight: normal;
}

.searchGroup {
    padding: 0 0 10px 0;
    background: #f0f0f0;
}

.searchGroupHeading {
    font-size: 10px;
    font-weight: bold;
    color: #fff;
    padding: 2px 4px 1px 4px;
}

.searchItem {
    padding: 1px 4px;
}

.searchItemSelected {
    padding: 1px 4px;
    font-weight: bold;
    background: #ddd;
}

/* permissions page styles */
.permissionHeading {
    border-bottom: #bbb;
    border-width: 0 0 1px 0;
    border-style: solid;
    font-size: 16px;
    text-align: left;
}

.permissionTab,
.permissionSuperTab,
.permissionCell {
    border-width: 0 0 0 1px;
    border-style: solid;
}

.permissionTab {
    font-size: 10px;
}

.permissionCell {
    border-left: #bbb;
    white-space: nowrap;
}

/* side menu highlighting (e.g. space content screen) */
.optionPadded {
    padding: 2px;
}

.optionSelected, .optionPadded.selected {
    background-color: #ffc;
    padding: 2px;
    border: 1px solid #ddd;
    margin: -1px;
}

.optionSelected a, .optionPadded.selected a {
    font-weight: bold;
    text-decoration: none;
    color: black;
}

/* styles for extended operations */
.greyLinks a:link,
.greyLinks a:visited,
.greyLinks a:active,
.greyLinks a:hover {
    color: #666;
    text-decoration: underline;
}

.greyLinks {
    color: #666;
    padding: 10px;
}

.operation-links {
    color: #666;
    margin-bottom: 10px;
}
.operation-links a:link,
.operation-links a:visited,
.operation-links a:active,
.operation-links a:hover {
    color: #666;
    text-decoration: underline;
}

.separatorLinks a:link,
.separatorLinks a:visited,
.separatorLinks a:active {
    color: white;
}

.greynavbar {
    background-color: #f0f0f0;
    border-top-width: 1px;
    border-top-style: solid;
}

div.headerField {
    float: left;
    width: auto;
    height: 100%;
}

.headerFloat {
    margin-left: auto;
    width: 50%;
}

.headerFloatLeft {
    float: left;
    margin-right: 20px;
    margin-bottom: 10px;
}

#headerRow {
    padding: 10px;
}

.greyFormBox {
    border: 1px solid #ccc;
    padding: 5px;
}

.openPageHighlight {
    background-color: #ffc;
    padding: 2px;
    border: 1px solid #ddd;
}

.editPageInsertLinks, .editPageInsertLinks a {
    color: #666;
    font-weight: bold;
    font-size: 10px;
}

/* Style for label heatmap. */
.top10 a {
    font-weight: bold;
    font-size: 2em;
    color: #036;
}
.top25 a {
    font-weight: bold;
    font-size: 1.6em;
    color: #036;
}
.top50 a {
    font-size: 1.4em;
    color: #036;
}
.top100 a {
    font-size: 1.2em;
    color: #036;
}

.heatmap {
    list-style: none;
    width: 95%;
    margin: 0 auto;
}

.heatmap a {
    text-decoration: none;
}

.heatmap a:hover {
    text-decoration: underline;
}

.heatmap li {
    display: inline;
}

.minitab {
    padding: 5px;
    margin: 1px 0 0 0;
    border-bottom-width: 1px;
    border-bottom-style: solid;
    text-decoration: none;
    float: none;
}

.minitab a {
    padding: 5px 5px;
    margin-left: 3px;
    margin-top: 1px;
    border-top: 1px solid;
    border-right: 1px solid;
    border-left: 1px solid;
}

#makeRichTextDefault, #makeMarkupDefault {
    border: 0;
    font-weight: normal;
    text-decoration: none;
    display: block;
    height: 2.5em;
}

.minitab .selected {
    background: white;
    border-bottom: 1px solid white;
    color: #000;
    text-decoration: none;
}
.minitab .unselected {
    border-bottom-width: 1px;
    border-bottom-style: solid;
    color: #fff;
    text-decoration: none;
}

.minitab a.unselected:link,
.minitab a.unselected:visited {
    color: white;
}
.minitab a.selected:link,
.minitab a.selected:visited {
    color: black;
}

.minitabFont {
    font-size: 9pt;
    line-height: 9pt;
}

.linkerror {
    background-color: #fcc;
}

a.labelOperationLink:link,
a.labelOperationLink:active,
a.labelOperationLink:visited,
a.labelOperationLink:hover {
    text-decoration: underline;
}

a.newLabel:link,
a.newLabel:active,
a.newLabel:visited,
a.newLabel:hover {
    background-color: #dfd;
}

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

/* Label auto complete styles needed until we use requireResource properly in labels-include.vm */
div.auto_complete {
    width: 350px;
    background: #fff;
}
div.auto_complete ul {
    border: 1px solid #888;
    margin: 0;
    padding: 0;
    width: 100%;
    list-style-type: none;
}
div.auto_complete ul li {
    margin: 0;
    padding: 3px;
}
div.auto_complete ul li.selected {
    background-color: #ffb;
}
div.auto_complete ul strong.highlight {
    color: #800;
    margin: 0;
    padding: 0;
}

/******* Edit Page Styles *******/
.toggleFormDiv{
    border: 1px solid #a7a6aa;
    background-color: white;
    margin-top: 5px;
}

.toogleInfoDiv{
    border: 1px solid #a7a6aa;
    background-color: white;
    display: none;
    padding: 5px;
    margin-top: 10px;
}

.inputSection{
    margin-bottom: 20px;
}

#anonymous-warning {
    padding: 15px 10px;
}

#editBox{
   border: 1px solid #d3d3d3;
   background-color: #f0f0f0;
}

.tab-navigation .current a {
    color: #000;
    background-color: #fff;
    border-bottom-color: #fff;
}

.replaced {
    background-color: #3c6;
}

.topPadding {
    margin-top: 20px;
}

/* new form style */
.form-block {
    padding: 6px;
}
.form-error-block {
    background: #fcc;
    border-top: #f0f0f0 1px solid;
    border-bottom: #f0f0f0 1px solid;
    margin-bottom: 6px;
    padding: 0 12px;
}
.form-element-large {
    font-size: 16px;
    font-weight: bold;
}

.form-element-small {
    font-size: 12px;
    font-weight: bold;
}

.form-header {
    background: #ffffe0;
    border-top: #f0f0f0 1px solid;
    border-bottom: #f0f0f0 1px solid;
    margin-bottom: 6px;
    padding: 12px;
}
.form-header p, .form-block p, .form-error-block p {
    line-height: normal;
    margin: 12px 0;
}
.form-example {
    color: #888;
    font-size: 11px;
}
.form-divider {
    border-bottom: #ccc 1px solid;
    margin-bottom: 6px;
}
.form-buttons {
    /*margin-top: 6px;*/
    /*border-top: #ccc 1px solid;*/
    /*border-bottom: #ccc 1px solid;*/
    /*background: #f0f0f0;*/
    /*padding: 10px;*/
    /*text-align: center;*/
    /*margin-left: 10em*/
}

.confluence-button,
a.confluence-button,
a.confluence-button:link,
a.confluence-button:hover,
a.confluence-button:visited {
    text-decoration: none;
    border: 1px solid #aaa;
    color: #000;
    padding: 5px 10px;
    cursor: default;
    background: #fff url(../../../images/decoration/buttons-bg-white.png) repeat-x 0 100%;
    -moz-border-radius: 5px; /* Firefox */
    -webkit-border-radius: 5px; /* Safari */
}

.confluence-button:active,
a.confluence-button:active {
    border-color: #69c;
    background-color: #eee;
    background-image: url(../../../images/decoration/buttons-bg.png);
}

.form-block .error {
    padding: 6px;
    margin-bottom: 6px;
}

form.edit-trust-app fieldset {
    border: none;
}
form.edit-trust-app fieldset div {
    border: none;
    border-left: solid 11em #f0f0f0;
    padding: 0;
    float: left;
}
form.edit-trust-app fieldset label {
    float: left;
    width: 10em;
    padding: 0;
    margin: 5px 1em 0 -10.5em;
    text-align: right;
    clear: left;
}
form.edit-trust-app fieldset input,
form.edit-trust-app fieldset textarea {
     margin: 5px 0 0 0;
     float: left;
}
form.edit-trust-app fieldset div.buttons {
     border: none;
     clear: left;
     text-align: center;
     float: none;
}
form.edit-trust-app fieldset div.buttons input {
     float: none;
}

.status-red {
    color: #800;
    font-weight: bold;
}
.status-green {
    color: #080;
    font-weight: bold;
}

.person {
    background-color: white;
    width: 200px;
    float: left;
}
.person td {
    white-space: nowrap;
}

#blogcalendar span.fwdArrow {
    float: right;
    display: block;
    width: 16px;
    height: 16px;
    background-repeat: no-repeat;
    background-image: url(/images/icons/forwd_16.gif);
}
#blogcalendar span.fwdArrow span {
    display: none;
}
#blogcalendar span.backArrow {
    float: left;
    display: block;
    width: 16px;
    height: 16px;
    background-repeat: no-repeat;
    background-image: url(/images/icons/back_16.gif);
}
#blogcalendar span.backArrow span {
    display: none;
}
.pageInfoTable {
    padding: 0;
    margin: 0;
    border: 0;
    width: 100%;
    border-collapse: collapse;
}
.pageInfoTable td {
    padding: 3px;
}
.pageInfoTable tr.alternateRow {
    background: #f0f0f0;
}
.pageInfoLayoutTable {
    width: 100%;
    border-collapse: collapse;
}

.pageInfoLayoutTable td {
    padding: 5px 16px 5px 0;
}

.pageInfoLayoutTable .tableview td {
    padding-left: 0;
}

.pageInfoLayoutTable ul {
    padding-left: 20px;
    list-style-type: none;
}

.memoryusagebar {
    width: 100%;
}
.memoryusagebar td {
    border: none !important;
    vertical-align: middle !important;
}

input.alignedCheckbox {
    margin: 0;
}

div.spacer {
    clear: both;
}

span.left {
    float: left;
    text-align: left;
}

span.right {
    float: right;
    text-align: right;
}

.nobr {
    white-space: nowrap;
}

label.normal {
    font-weight: normal;
    color: black
}

div.leftFloatMargined {
    float: left;
    margin-right: 2px
}

#entitySearchResults {
    border-collapse: collapse;
    background-color: #fafafa;
    text-align: left;
    width: 100%;
}

#entitySearchResults td {
    border-top: 1px solid #ccc;
    padding: 3px;
    background-color: white;
    vertical-align: top;
}

#entitySearchResults th {
    color: #666;
    padding: 3px;
    white-space:nowrap;
}

#entitySearchResults .firstColumn {
    width: 2%;
    text-align: right;
}

#entitySearchResults .secondColumn {
    width: 1px;
    text-align: right;
}

a.paddedGreyDisabled {
    background-color: #f0f0f0;
    padding: 4px;
    text-decoration: none;
    color: #666;
}

a.grey {
    color: #666;
}

div.topBottomMargin {
    margin: 10px 0 10px 0
}

div.bottomMargin {
    margin-bottom: 10px
}

table.spaceList {
    border-collapse: collapse;
}

tr.spaceList td {
    padding: 5px 0 5px 5px;
    border-bottom: 1px solid #ccc;
    vertical-align: top;
}

.spaceList .spaceDescription {
    margin-top: 3px;
    color: #666;
}

tr.spaceList .operations {
    vertical-align: top;
    padding-right: 5px;
}

.fontSizeBigger {
    font-size: 11pt;
    line-height: 14pt;
}

.fontSizeDefault {
    line-height: 1.3em;
}

.fontSizeSmaller {
    font-size: 10pt;
    line-height: 13pt;
}

/* deprecated. TODO - check for use in themes and remove. */
.fontSizeTiny {
    font-family: Verdana, Helvetica, Arial, sans-serif;
    font-size: 8pt;
    line-height: 11pt;
}

table.dashboard td.left {
    padding-right: 16px;
}

.clearBoth {
    clear: both;
}

#labelInputSpan {
    margin-top: 1px;
}

form#quickSearch {
    margin: 2px;
    padding: 0;
}

form#quickSearch input {
    font-size: 10pt;
    vertical-align: middle;
}

table.fullWidthBorderless
{
    width: 100%;
    border: 0;
    border-collapse: collapse;
}

/* Hacks for YUI menustuff */

#pageMenusMenuBar {
   padding: 4px;
}

#notificationFormat {
    padding: 0;
    margin: -9px 15px;
}

#notificationFormat h4 {
    font-weight: normal;
}

#notificationFormat h2 {
    font-weight: normal;
}

#rssFormat {
    padding: 0;
    margin: 6px 15px;
}

.notificationGreySide {
    border-top: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
    margin: 0 0 5px 0;
    padding: 3px 17px;
}

.notificationDigest {
    padding: 0 17px;
}

.darkBlue {
    color: #036;
}

.grey {
    color: #666;
}

table.attachments {
    width: 100%;
    border-collapse: collapse;
}

table.attachments th {
    white-space: nowrap;
    width: 1%;
}

table.attachments td {
    white-space: nowrap;
    vertical-align: top;
    width: 1%;
}

table.attachments td.comment, table.attachments th.comment, table.attachments td.attachedto, table.attachments th.attachedto {
    white-space: normal;
    width: auto;
}

#contentOptions {
    list-style: none;
    margin: 0;
    padding: 0;
}

#exportContentTree {
    list-style-type: none;
    margin: 5px 0;
}

#contentOptionAllNote {
    color: #666;
    font-weight: normal;
}

/* hidden: use when we want the content totally unavailable. */
.hidden,
li.hidden {
    display: none !important;
    visibility: hidden;
}

/* assistive: use when the hidden content should remain available to screen readers */
.assistive {
    position: absolute;
    left: -5000em;
    width: 4000em;
    overflow: hidden;
}

#main {
    text-align: left;
    background-color: #fff;
}
#header {
    min-height: 1.8em;
    line-height: 1.8;
    margin: 0;
    padding: 0;
    position: relative;
    z-index: 1;
}
.quick-search {
    margin: 0;
    padding: 0;
}
#quick-search fieldset {
    float: right;
}
.quick-search fieldset {
    border: none;
    margin: 0;
    padding: 0;
}
.quick-search legend {
    display: none;
}
input.blank-search,
.quick-search .placeholded {
    color: #666;
}
#quick-search-query {
    width: 13em;
}
/* default user navigation styles for themes using the old markup */
#user-control-panel, #page-view-panel, #page-prefs-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
#user-control-panel li,
#page-view-panel li,
#page-prefs-list li,
.userNavBar li { /* deprecated styles provided for themes written prior to 2.8 */
    list-style: none;
    display: inline;
    color: #666;
    font-size: 0.95em;
    padding: 0 0 0 0.3em;
}
#user-control-panel a {
    color: #666;
}
#user-control-panel li.first {
    border:medium none;
}
#user-control-panel li {
    border-left: 1px solid #666;
    padding-left: 0.5em;
}
#page-view-panel li {
    float: right;
}

#breadcrumbs {
    list-style: none;
    padding: 0;
    margin: 0;
    overflow: auto;
}

#breadcrumbs li {
    white-space: nowrap;
    display: inline;
    float: left;
    margin: 0 .2em 0 0;
    padding-left: 15px;
    background: url(../../../images/decoration/white_breadcrumbs_indicator.png);
    background-repeat: no-repeat;
    background-position: 3px center;
}

#breadcrumbs li.first {
    padding-left: 0;
    background-image: none;
}

#breadcrumbs li a {
    text-decoration: none;
}

#breadcrumbs li a:hover {
    text-decoration: underline;
}

#breadcrumbs li span {
    display: block;
}

#ellipsis strong {
    cursor: pointer;
    font-weight: normal;
}

#breadcrumbs li.hidden-crumb {
    display: none;
}

/** Links */
a.icon {
    display: block;
    min-height: 16px;
    text-align: left;
    text-indent: -9999em;
    width: 16px;
}

a.twisty-open, a.twisty-closed {
    background: no-repeat 50% 50%;
    float: left;
    margin-right: 0.5em;
}
a.twisty-open {
    background-image: url(../../../images/icons/arrow_down.gif);
}
a.twisty-closed {
    background-image: url(../../../images/icons/arrow_right.gif);
}

a.print {
    background: url(../../../images/icons/print_16.gif) no-repeat 50% 50%;
}
a.feed {
    background: url(../../../images/icons/feed-icon-16x16.png) no-repeat 50% 50%;
}
a.pdf {
    background: url(../../../images/icons/attachments/pdf.gif) no-repeat 50% 50%;
}
a.help {
    background: url(../../../images/icons/help_16.gif) no-repeat 50% 50%;
}
a.add-user {
    background: url(../../../images/icons/classic/16/125.png) no-repeat 50% 50%;
}

a.remove-user {
    background: url(../../../images/icons/classic/16/123.png) no-repeat 50% 50%;
}

a.groups {
    background: url(../../../images/icons/classic/16/127.png) no-repeat 50% 50%;
}

a.cancel {
    background: url(../../../images/icons/emoticons/error.gif) no-repeat 50% 50%;
}

a.search-icon {
    background: url(../../../images/icons/srch_16.gif) no-repeat 50% 50%;
}

a img {
    border: none;
}

a.texticon {
    min-height: 16px;
    text-align: left;
    padding:0 10px 0 20px;
    background-position: 0 50%;
    outline:0 none;
}


/* // Links **/
#com-atlassian-confluence h1 {
    line-height: 2;
    margin: 0 0 10px 0;
    padding: 0;
    width: 100%;
}
#com-atlassian-confluence h1 img {
    float: left;
    margin: 0 .3em 0 0;
}
br.clear {
    clear: both;
    height: 1px;
    overflow: hidden;
}
#footer, #footer-warning {
    background: #f0f0f0;
    text-align: center;
}
#footer p.license, #footer p.license a {
    background: #036;
    color: #fff;
    margin: 0;
}
#poweredby {
    border-top: 1px solid #bbb;
    color: #666;
    margin: 0;
    padding: .5em;
    list-style: none;
}
#poweredby a, #footer-warning {
    color: #666;
    text-decoration: none;
}
#poweredby li {
    display: inline;
}
#poweredby li.print-only {
    display: none;
}

#poweredby a:hover.hover-footer-link{
    text-decoration: underline;
}

#footer p.warning {
    margin: 0 40px 10px 40px;
    text-align: center;
}

#menu-bar, #navigation .space-browse-links {
    float: right;
}
#navigation .space-browse-links ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
#menu-bar {
    margin: 0 .5em;
}
table {
    clear: left;
}
.space-browse-links a:link,
.space-browse-links a:active,
.space-browse-links a:visited {
    border: 1px solid #69c;
    color: #000;
    display: block;
    font-weight: bold;
    line-height: 2;
    margin: 0.35em 0 -1px 0.5em;
    padding: 0 0.5em 0 24px;
    position: relative;
    text-decoration: none;
}
.space-browse-links a:hover {
    background-color: #036;
    border: 1px solid #036;
    color: #fff;
}
.space-browse-links a img {
    float: left;
    left: 4px;
    margin: -8px 0 0;
    position: absolute;
    top: 50%;
}
#tree-div {
    min-height:300px;
}
.mailLabel {
    color: #666;
    font-weight: bold;
}

.unparented {
    list-style: none;
    margin: 0;
    padding: 0;
}

.parented {
    list-style-image: url(../../../images/icons/link_out_bot.gif);
}

.mailthread ul {
    list-style-image: url(../../../images/icons/link_out_bot.gif);
}
.selectedMail {
  background-color: #ffc;
  padding: 2px;
  border: 1px solid #ddd;
}

.excerpt {
  margin-top: 0;
  margin-bottom: 0;
}

.captcha {
    padding: 10px;
}

.captcha-image {
    width: 200px;
    height: 100px;
}

#version-info {
    margin-bottom: 10px;
    padding:15px;
    border-radius: 3px;
    -moz-border-radius: 3px;
    -webkit-border-radius: 3px;
}

.version-info span.page-history-view{
    display: block;
    padding-bottom: 5px;
    padding-top: 5px;
    margin-left: 24px;
}

.version-info span.page-history-view, .version-info span.page-history-view a {
    color: #666666;
    font-size: 9pt;

}

.version-info a.version-navigation{
    border:1px solid #EEEEEE;
    padding:0.2em 0.4em;
    position:relative;
    text-decoration:none;
    top:1px;
    display: inline-block;
    min-width: 75px;
    text-align:center;
}

.version-info span.current-version-margin{
    margin: 15px;
}

.version-info div.navigation-spacing{
    margin-left: 24px;
    padding-top: 2px;
    font-size: 8pt;
    
}

.version-info strong.version-info-description{
    margin-left: 4px;
}

.has-sidebar #version-info{
    margin-right: 17em;
}

/* Fix menu focus when selecting with mouse in Firefox */
li:active, a:active {
  outline: none;
}

/* Confluence global/space message styles */
#messageContainer {
    background: #fff;
    list-style: none;
    margin: 0 -10px;
    padding: 0;
}

#messageContainer li {
    padding: 5px;
    display: none;
}

.message-close-button {
    height: 16px;
    width: 16px;
    border: none;
    float: right;
    cursor: pointer;
}

.page-metadata ul {
    overflow: hidden;
    margin: 0;
    padding: 0;
}

.page-metadata ul li {
    list-style: none;
    float: left;
    padding: 0 5px 0 0;
    margin: 0;
}

.page-metadata ul a.page-metadata-icon {
    text-decoration: none;
}

.page-metadata ul a.page-restrictions span,
.page-metadata ul a.page-tinyurl span,
.page-metadata ul a.action-view-attachments span.page-metadata-attachments-text {
    float: left;
    height: 16px;
    width: 16px;
    text-indent: -9999em;
}

.page-metadata ul a.page-restrictions span {
    background: url(../../../images/icons/lock_16_grey.png) no-repeat;
}

.page-metadata ul a.page-tinyurl span {
    background: url(../../../images/icons/permalink_light_16.png) no-repeat;
}

.page-metadata ul a.page-tinyurl:hover span {
    background: url(../../../images/icons/permalink_dark_16.png) no-repeat;
}

.page-metadata ul a.action-view-attachments span.page-metadata-attachments-text {
    background: url(../../../images/icons/attach_16.png) no-repeat;
}

.on-label, .yes-label {
    color: #090;
    font-weight: 800;
}

.off-label, .no-label {
    color: #900;
    font-weight: 800;
}

.progress-fill-color {
    background: #00df00;
}

.progress-background-color {
    background: #fff;
}

.vertical-center-aligning-container {
    display: table;
    height: 400px;
    /* position : relative; */
    overflow: hidden;
}

.vertical-center-div-outer {
    /* position : absolute;
    top : 50%; */
    display: table-cell;
    vertical-align: middle;
}

.vertical-center-div-inner {
    /* position : relative;
    top : -50%; */
    text-align: center;
}

.in-progress {
    background-color: #ccc;
}

h2.subheading,
#profile-main h2.subheading {
    border-bottom: 1px solid #ddd;
    color: #333;
    font-weight: normal;
    font-size: 1.1em;
    margin: 0;
}

/* TODO Move h2.subheadings for AUI forms inside the form */
#com-atlassian-confluence form.aui h2, .subheading {
    color: #222;
}

#com-atlassian-confluence form.aui label {
    color: #666;
    font-weight: normal;
}

/*Columns*/
div.section.one {
    float: left;
    width: 40%;
}
div.section.two {
    float: left;
    width: 60%; 
}
div.section.two .section {
    margin-left: 10px;
}

.subheading .rss-icon {
    background: url(../../../images/icons/feed-icon-16x16.png);
    float: right;
    height: 16px;
    text-decoration: none;
    width: 16px;
    line-height: 0;
}
/* End Confluence master stylesheet */

/** Font Colours */
em.bad,
strong.bad {
    font-style: normal;
    color: #900;
}
em.good,
strong.good {
    font-style: normal;
    color: #090;
}
em.disabled,
strong.disabled {
    font-style: normal;
    color: #999;
}
/* **/

.blogpost .wiki-content {
    _height: 1%;
}

#version-comment.noteMacro {
    padding: 5px;
    
}

#space-admin-body {
    padding: 0 10px;
}

#ajax-error {
    background-color: #fcc;
    border: 1px solid #741311;
}

#ajax-error span.error{
    display: block;
    text-align: center;
    color: #741311;
    line-height: 2;
}

#ajax-error span.error a.close{
    margin-left: 10px;
    text-decoration: underline;
}

#poweredby {
    background-image: url(../../../images/decoration/footer-shadow.gif);
    background-repeat: repeat-x;
}

#footer-warning {
    display: block;
    background-color: #ffffce;
    border-top: 1px solid #f0c000;
    border-bottom: 1px solid #f0c000;
    color: #000;
    padding: 2px 5px;
}
