/*
 | (C) Copyright IBM Corporation 2001, 2004. All Rights Reserved.
 | This file is part of the DITA package on IBM's developerWorks site.
 | See license.txt for disclaimers and permissions.
*/

/* programming domain (pr-d) generic class support */

/* ph classed */
codeph, var, synph, oper, delim, sep, repsep {
  display: inline;
}

var {
  font-style: italic;
}

var[importance="optional"]:before {
  content: " [";
}

var[importance="optional"]:after {
  content: "] ";
}

var:before, sep:before, delim:before, groupseq:before, groupcomp:before {
  content: " ";
}

var:after, sep:after, delim:after, groupseq:after, groupcomp:after {
  content: " ";
}


/* keyword classed */
option, parmname, apiname, kwd {
  display: inline;
}

apiname {
  font-family: monospace;
}

xapiname:before {
  content: "<";
}

xapiname:after {
  content: ">";
}


/* pre classed */
codeblock {
  display: block;
  white-space: pre;
  margin-bottom: 6pt;
  font-family: monospace;
}

/* dl classed */
parml:before {
  font-weight: bold;
  font-size: 10pt;
}

parml {
  display: table;
}

/* dlentry classed */
plentry {
  display: table-row;
}

/* dt classed */
pt {
  display: table-cell;
  font-weight: bold;
}

/* dd classed */
pd {
  display: table-cell;
}



/* fn classed */
synnote:before {
  color: purple;
  font-weight: bold;
  content: " [Syntax note: ";
}

synnote:after {
  color: purple;
  font-weight: bold;
  content: "] ";
}

synnote {
  color: purple;
  font-weight: bold;
}



/* xref classed */
fragref, synnoteref {
  text-decoration: underline;
  color: red;
}

fragref[href], synnoteref[href] {
  text-decoration: underline;
  color: blue;
}


/* fig classed */
syntaxdiagram {
  display: block;
  margin-bottom: 12pt;
}


/* figgroup classed */
synblk, groupseq, groupchoice, groupcomp, fragment {
  display: inline;
}

groupchoice>*:after {
  content: " | ";
}

groupchoice:before {
  content: " { ";
}

groupchoice:after {
  content: " } ";
}

/* contextual items */
groupcomp>title {
  display: inline;
  color: purple;
}

syntaxdiagram>title, fragment>title {
  display: block;
  font-weight: bold;
  font-size: 12pt;
  margin-top: 6pt;
  margin-bottom: 12pt;
}

syntaxdiagram>title:after, fragment>title:after {
  content: ": ";
}


/* software domain (sw-d) generic class support */

/* ph classed */
msgph, filepath, userinput, systemoutput {
}

/* pre classed */
msgblock {
  display: block;
  white-space: pre;
  margin-bottom: 6pt;
  font-family: monospace;
}

/* keyword classed */
msgnum, cmdname, varname {
  display: inline;
}

varname {
  font-style: italic;
}



/* user interface domain (ui-d) generic class support */

/* ph classed */
uicontrol, menucascade {
  display: inline;
}

/* keyword classed */
wintitle {
  display: inline;
  font-weight: bold;
}

shortcut {
  display: inline;
  text-decoration: underline;
}

screen {
  display: block;
  background-color: #404040;
  color: lime;
  white-space: pre;
  font-family: monospace, "Courier New";
  font-weight: bold;
  font-size: 9pt;
  margin-bottom: 6pt;
  padding: 4pt;
}

/* need to add contexts for menucascade */


/* highlight domain (hi-d) generic class support */

/* all ph classed */
b, i, tt, u, sup, sub {
  display: inline;
}

b {
  font-weight: bold;
}

i {
  font-style: italic;
}

tt {
  font-family: monospace;
}

u {
  text-decoration: underline;
}

sup {
  vertical-align: super;
  font-size: smaller;
}

sub {
  vertical-align: sub;
  font-size: smaller;
}

