/*
 * ABAPGIT COMMON CSS
 */

/* GLOBALS */

body {
  overflow-x: hidden;
}

body.centered {
  max-width: 1280px;
  margin: 0 auto;
}

body.full_width {
  width:100%;
}

a, a:visited {
  text-decoration:  none;
}
a:hover, a:active {
  cursor: pointer;
  text-decoration: underline;
}

img {
  border-width: 0px;
  vertical-align: middle;
}
table { border-collapse: collapse; }
pre { display: inline; }
sup {
  vertical-align: top;
  position: relative;
  top: -0.5em;
  font-size: 75%;
}

input, textarea, select {
  padding: 3px 0.5em;
  border: 1px solid;
}
input:focus, textarea:focus {
  border: 1px solid;
}

.cursor-pointer {
  cursor: pointer;
}

span.separator {
  padding-left: 0.5em;
  padding-right: 0.5em;
  opacity: 0.25;
}

/* MODIFIERS */

.emphasis     { font-weight: bold !important; }
.crossout     { text-decoration: line-through !important; }
.right        { text-align:right; }
.center       { text-align:center; }
.paddings     { padding: 0.5em 0.5em; }
.pad-sides    { padding-left: 0.3em; padding-right: 0.3em; }
.pad-1em      { padding: 1em 1em; }
.margin-v5    { margin-top: 0.5em; margin-bottom: 0.5em; }
.margin-v1    { margin-top: 1em; margin-bottom: 1em; }
.indent5em    { padding-left: 0.5em; }
.pad4px       { padding: 4px; }
.w100         { width: 100%; }
.wmin         { width: 1%; }
.w40          { width: 40%; }
.float-right  { float: right; }
.pad-right    { padding-right: 6px; }
.no-pad       { padding: 0px !important; }
.inline       { display: inline; }
.hidden       { visibility: hidden; }
.nodisplay    { display: none }
.m-em5-sides  { margin-left: 0.5em; margin-right: 0.5em }
.w600px       { width: 600px }
.w800px       { width: 800px }
.w1000px      { width: 1000px }
.wmax600px    { max-width: 600px }
.auto-center  { /* use with max-width */
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

span.boxed {
  border-radius: 3px;
  padding: 4px 7px;
  margin-left: 0.2em;
  margin-right: 0.2em;
  font-size: smaller;
}
span.boxed i.icon {
  padding-right: 5px;
}
.red-filled-set {
  border-width: 0px;
  color: hsl(0, 78%, 93%);
  background-color: hsl(0, 78%, 65%);
}
.green-filled-set {
  border-width: 0px;
  color: hsl(120, 45%, 90%);
  background-color: hsl(120, 27%, 60%);
}
.yellow-filled-set {
  border-width: 0px;
  color: hsl(45, 99%, 90%);
  background-color: hsl(45, 100%, 46%);
}

/* PANELS */

div.panel {
  border-radius: 3px;
  padding: 0.5em 0.5em;
  margin: 0.5em 0.5em;
}

div.dummydiv {
  padding:          0.5em 1em;
  text-align:       center;
}

a.close-btn {
  text-decoration: none;
}

/* STRUCTURE DIVS, HEADER & FOOTER */

div#header {
  padding:          0.5em 0.5em;
  border-bottom:    3px double;
}
div#header > div { display: inline-block }

.logo .icon { display: inline-block }
.logo .icon:before { width: auto }

/* official logo colors, not vars, redefine in themes directly*/
.logo .icon.icon-git-alt { color: #f03c2e }
.logo .icon.icon-abapgit {
  color: #362701;
  vertical-align: bottom;
}

div#header .logo { font-size: x-large }
div#header .page-title { font-size: x-large }
div#header span.spacer {
  display: inline-block;
  padding-right: 0.25em;
  padding-left: 0.25em;
}

div#footer .sponsor a { font-size: smaller; }
div#footer .logo { font-size: large }
div#footer {
  padding:          0.5em 0.5em;
  border-top:       3px double;
}
div#footer .version {
  margin-top: 0.5em;
  font-size: small;
}

#debug-output {
  text-align: right;
  padding-right: 0.5em;
  font-size: smaller;
}
#debug-output p {
  margin-top: 0em;
  margin-bottom: 0em;
}

/* ERROR LOG */

div.log {
  padding: 6px;
  margin: 4px;
  border: 1px  solid;
  border-radius: 4px;
}
div.log > span   { display:block; }
div.log .icon { padding-right: 6px; }

/* REPOSITORY */

div.repo {
  padding: 0.5em 1em 0.5em 1em;
  position: relative;
}
.repo_name span.name {
  font-weight: bold;
  font-size: 14pt;
}
.repo_name a.url {
  font-size: 12pt;
  margin-left: 0.5em;
}
.repo_name span.url {
  font-size: 12pt;
  margin-left: 0.5em;
}
.repo_name .icon {
  padding-right: 4px;
}
.repo_attr {
  font-size: 12pt;
}
.repo_attr span {
  margin-left: 0.2em;
  margin-right: 0.5em;
}
.repo_attr span.bg_marker {
  border: 1px solid;
  border-radius: 3px;
  font-size: 8pt;
  padding: 4px 2px 3px 2px;
}

/* ABAPGIT OBJECTS */

span.branch,
span.user-box,
span.package-box,
span.path-box,
span.transport-box {
  padding: 2px 4px;
  border: 1px solid;
  border-radius: 4px;
  display: inline-block;
}

span.package-box i.icon {
  margin-right: 0.15em;
}

/* MISC AND REFACTOR */

.hidden-submit {
  border: 0 none;
  height: 0;
  width: 0;
  padding: 0;
  margin: 0;
  position: absolute;
  overflow: hidden;
}

/* STATE BLOCK COMMON*/

span.state-block {
  margin-left: 1em;
  font-family: Consolas, "Lucida Console", Courier, monospace;
  font-size: x-small;
  vertical-align: 13%;
  display: inline-block;
  text-align: center;
  white-space: nowrap;
}
span.state-block span {
  display: inline-block;
  padding: 0px 3px;
  border-width: 1px;
  border-style: solid;
}

/* REPOSITORY TABLE*/

div.repo_container {
  position: relative;
}

div.repo_banner {
  margin: 0em 1em 1em;
  padding: 0.5em 0.5em;
  text-align: center;
  font-size: 85%;
}

table.repo_tab {
  border: 1px solid;
  border-radius: 3px;
  width: 100%;
  line-height: 1.2;
}
.repo_tab th {
  text-align: left;
  padding: 0.5em;
  border-bottom: 1px solid;
  font-weight: normal;
}
.repo_tab td {
  vertical-align: middle;
  padding-top: 2px;
  padding-bottom: 2px;
}

.repo_tab td.icon {
  width: 1px;
  text-align: center;
  padding-left: 8px;
  padding-right: 4px;
}

.repo_tab td.transport {
  width: 140px;
  text-align: left;
}
.repo_tab td.type {
  width: 4em;
  padding-left: 0.5em;
}

.repo_tab td.filename{
  padding-left: 1em;
  word-break: break-all;
}

.repo_tab td.object {
  padding-left: 0.5em;
}

.repo_tab td.files {
  padding-left: 0.5em;
  line-height: 1.5;
}

.repo_tab tr.object_row{
  border-top: 1px solid;
}

.repo_tab td.cmd, .repo_tab th.cmd {
  text-align: right;
  padding-left: 0.5em;
  padding-right: 0.7em;
  min-width: 70px;
}

.repo_tab th.cmd .icon{
  padding-right: 8px;
}
.repo_tab tr:first-child td { border-top: 0px; }

.repo_tab tr:hover td {
  background-image: linear-gradient(rgba(0, 0, 0, 0.075), rgba(0, 0, 0, 0.075));
}

/* STAGE */

th.stage-status { width: 30px; }
th.stage-objtype { width: 30px; }
input.stage-filter { width: 18em; }

.stage_tab {
  border: 1px solid;
  margin-top: 0.2em;
  line-height: 1.5;
}
.stage_tab td {
  border-top: 1px solid;
  vertical-align: middle;
  padding: 2px 0.5em;
}
.stage_tab th {
  text-align: left;
  font-weight: normal;
  padding: 4px 0.5em;
  border-bottom: 1px solid;
}
.stage_tab td.status {
  width: 2em;
  text-align: center;
}
.stage_tab td.highlight {
  font-weight: bold;
}
.stage_tab td.name {
  word-break: break-all;
}

.stage_tab tr:first-child td { border-top: 0px; }

.stage_tab tr:hover td {
  background-image: linear-gradient(rgba(0, 0, 0, 0.075), rgba(0, 0, 0, 0.075));
}

.stage_tab td.cmd {  cursor: pointer; }
.stage_tab td.cmd a { padding: 0px 4px; }
.stage_tab th.cmd a { padding: 0px 4px; }
.stage_tab tbody tr:first-child td { padding-top: 0.5em; }
.stage_tab tbody tr:last-child td { padding-bottom: 0.5em; }

/* COMMIT */

div.form-container {
  padding: 1em 1em;
}

form.aligned-form {
  display: table;
  border-spacing: 2px;
}

form.aligned-form label {
  padding-right: 1em;
  vertical-align: middle;
}

form.aligned-form select {
  padding-right: 1em;
  vertical-align: middle;
}

form.aligned-form span.sub-title {
  font-size: smaller;
  padding-top: 8px;
}

form.aligned-form div.row { display: table-row; }
form.aligned-form label { display: table-cell; }
form.aligned-form input { display: table-cell; }
form.aligned-form input[type="text"] { width: 25em; }
form.aligned-form span.cell { display: table-cell; }

/* SETTINGS STYLES */

div.settings_container {
  padding: 0.5em 0.5em 1em;
  font-size: 10pt;
}

div.settings_section {
  margin-left:50px
}

table.settings td:first-child {
  padding-left: 1em;
  padding-right: 1em;
}

/* DIFF */

div.diff {
  padding: 0.7em
}
div.diff_head {
  padding-bottom: 0.7em;
}
span.diff_name {
  padding-left: 0.5em;
}
span.diff_changed_by {
  float: right;
}
span.diff_banner {
  border-style: solid;
  border-width: 1px;
  border-radius: 3px;
  padding-left: 0.3em;
  padding-right: 0.3em;
}

div.diff_content {
  border-top: 1px solid;
  border-bottom: 1px solid;
}

div.diff_content tbody tr td{
  width: 50%;
  vertical-align: top
}

div.diff_head span.state-block {
  margin-left: 0.5em;
  font-size: inherit;
  vertical-align: initial;
}
div.diff_head span.state-block span {
  padding: 0px 4px;
}

/* DIFF TABLE */

table.diff_tab {
  font-family: Consolas, Courier, monospace;
  font-size: 10pt;
  width: 100%;
}
table.diff_tab td,
table.diff_tab th {
  padding-left: 0.5em;
  padding-right: 0.5em;
}
table.diff_tab th {
  text-align: left;
  font-weight: normal;
  padding-top: 3px;
  padding-bottom: 3px;
}
table.diff_tab thead.header th {
  text-align: left;
  font-weight: bold;
  padding-left: 0.5em;
  font-size: 9pt;
}
table.diff_tab td.num, th.num {
  width: 1%;
  min-width: 2em;
  padding-right: 8px;
  padding-left:  8px;
  text-align: right !important;
  border-left: 1px solid;
  border-right: 1px solid;
  -ms-user-select: none;
  user-select: none;
}
table.diff_tab td.patch, th.patch {
  width: 1%;
  min-width: 1.5em;
  padding-right: 8px;
  padding-left:  8px;
  text-align: right !important;
  border-left: 1px solid;
  border-right: 1px solid;
  -ms-user-select: none;
  user-select: none;
  cursor: pointer;
}

table.diff_tab tr.diff_line:hover td {
  background-image: linear-gradient(rgba(0, 0, 0, 0.075), rgba(0, 0, 0, 0.075));
}

table.diff_tab td.num::before {
  content: attr(line-num);
}
table.diff_tab code {
  font-family: inherit;
  white-space: pre;
}
table.diff_tab td.code {
  word-wrap: break-word;
  white-space: pre-wrap;
  overflow: visible;
}

table.diff_tab tbody tr:first-child td { padding-top: 0.5em; }
table.diff_tab tbody tr:last-child td { padding-bottom: 0.5em; }

table.diff_tab td.mark, th.mark {
  width: 0.1%;
  -ms-user-select: none;
  user-select: none;
  cursor: default;
}

.diff_select_left td.diff_right,
.diff_select_left td.diff_right *,
.diff_select_left th.diff_right,
.diff_select_left th.diff_right *,
.diff_select_right td.diff_left,
.diff_select_right td.diff_left *,
.diff_select_right th.diff_left,
.diff_select_right th.diff_left * {
  -ms-user-select: none;
  user-select: none;
  cursor: text;
}

.diff_select_left td.diff_left,
.diff_select_left td.diff_left *,
.diff_select_left th.diff_left,
.diff_select_left th.diff_left *,
.diff_select_right td.diff_right,
.diff_select_right td.diff_right *,
.diff_select_right th.diff_right,
.diff_select_right th.diff_right * {
  -ms-user-select: text;
  user-select: text;
}

td.diff_others::selection,
td.diff_others *::selection,
th.diff_others::selection,
th.diff_others *::selection {
  background-color: transparent;
  cursor: default;
}

.diff_select_left td.diff_right::selection,
.diff_select_left td.diff_right *::selection,
.diff_select_left th.diff_right::selection,
.diff_select_left th.diff_right *::selection,
.diff_select_right td.diff_left::selection,
.diff_select_right td.diff_left *::selection,
.diff_select_right th.diff_left::selection,
.diff_select_right th.diff_left *::selection {
  background-color: transparent;
  cursor: text;
}

/* DEBUG INFO STYLES */

div.debug_container {
  padding: 0.5em;
  font-size: 10pt;
  font-family: Consolas, Courier, monospace;
}

div.debug_container p {
  margin: 0px;
}

/* *** */

li.action_link.enabled{
  visibility: visible;
  position: relative;
  display: block;
}

li.action_link:not(enabled){
  visibility: hidden;
  position: fixed; /* so it does not take up space when hidden */
  display: none;
}

/* TUTORIAL */

div.tutorial {
  margin-top:       3px;
  padding: 0.5em 1em 0.5em 1em;
}

div.tutorial li { margin: 2px 0px }
div.tutorial h1 { font-size: 18pt; }
div.tutorial h2 { font-size: 14pt;}

/* MENU */

/* Special credits to example at https://codepen.io/philhoyt/pen/ujHzd */
/* container div, aligned left, but with .float-right modifier aligns right */

.nav-container ul {
  list-style: none;
  position: relative;
  float: left;
  margin: 0;
  padding: 0;
  white-space: nowrap;
  text-align: left;
}
.nav-container.float-right ul { float: right; }

.nav-container ul a {
  display: block;
  text-decoration: none;
  line-height: 30px;
  padding: 0 12px;
}

/* clearfix https://css-tricks.com/snippets/css/clear-fix/ */
.nav-container:after {
  clear: both;
  display: block;
  content: "";
}

/* submenues align to left or right border of the active item
   depending on .float-right modifier */
.nav-container ul li {
  position: relative;
  float: left;
  margin: 0;
  padding: 0;
}
.nav-container.float-right ul ul { left: auto; right: 0; }
.nav-container ul li.current-menu-item { font-weight: 700; }
.nav-container ul li.force-nav-hover ul { display: block; }
.nav-container ul li:hover > ul { display: block; }

/* special selection style for 1st level items (see also .corner below) */

.nav-container ul ul {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1;
  padding: 0;
  box-shadow: 1px 1px 3px 0px #bbb;
  max-height: 700px;
  overflow: auto;
}

.nav-container ul ul li {
  float: none;
  min-width: 160px;
}

.nav-container ul ul a {
  line-height: 120%;
  padding: 8px 15px;
}

.nav-container ul ul ul {
  top: 0;
  left: 100%;
}

.nav-container.float-right ul ul ul {
  left: auto;
  right: 100%;
}

/* Minizone to extent hover area,
   aligned to the left or to the right of the selected item
   depending on .float-right modifier */
.nav-container > ul > li > div.minizone {
  display: none;
  z-index: 1;
  position: absolute;
  padding: 0px;
  width: 16px;
  height: 100%;
  bottom: 0px;
  left: 100%;
}
.nav-container > ul > li:hover div.minizone { display: block; }
.nav-container.float-right > ul > li > div.minizone {
  left: auto;
  right: 100%;
}

/* icons - text-align strictly left - otherwise look ugly
   + bite a bit of left padding for nicer look
   + forbids item text wrapping (maybe can be done differently) */
.nav-container ul ul li a .icon {
  padding-right: 10px;
  margin-left: -3px;
}
.nav-container ul.with-icons li {
  text-align: left;
  white-space: nowrap;
}

/* Special .corner modifier - hangs menu at the top right corner
   and cancels 1st level background coloring */
.nav-container.corner {
  position: absolute;
  right: 0px;
}

/* Toolbar separator style */
.nav-container ul ul li.separator {
  font-size: x-small;
  text-align: center;
  padding: 4px 0;
  text-transform: uppercase;
  border-bottom: 1px solid;
  border-top: 1px solid;
}
.nav-container ul ul li.separator:first-child { border-top: none; }

/* NEWS ANNOUNCEMENT */

div.info-panel {
  position: absolute;
  z-index: 99;
  top: 36px;
  left: 50%;
  width: 40em;
  margin-left: -20em;
  box-shadow: 1px 1px 3px 2px #dcdcdc;
}

div.info-panel-fixed {
  position: fixed;
  top: 15%;
}

div.info-panel div.info-hint {
  text-transform: uppercase;
  font-size: small;
  padding: 8px 6px 0px;
  text-align: center;
}

div.info-panel div.info-title {
  text-transform: uppercase;
  font-size: small;
  padding: 6px;
  text-align: center;
}

div.info-panel div.info-title a.close-btn {
  padding-left: 12px;
  padding-right: 2px;
  position: relative;
  bottom: 1px;
}

div.info-panel div.info-list {
  padding: 0.8em 0.7em 1em;
}

div.info-panel ul {
  padding-left: 10px;
}

div.info-panel li {
  padding-left: 0px;
  list-style-type: none;
}

div.info-panel h1:first-child { margin: auto; }
div.info-panel h1 {
  font-size: inherit;
  padding: 6px 4px;
  margin: 4px auto auto;
  text-decoration: underline;
  font-weight: normal;
}

div.info-panel .version-marker {
  display: inline-block;
  margin-left: 20px;
  border-radius: 3px;
  padding: 0px 6px;
  border:  1px solid;
}

div.info-panel .update { border:  1px solid; }
div.info-panel div.info-list td { padding-right: 1em }

/* ERROR MESSAGE PANEL */

div.message-panel {
  z-index: 99;
  box-shadow: 2px 2px 4px 0px hsla(0, 0%, 0%, .1);
  padding: 0.5em 1em;
  position: fixed;
  bottom: 12px;
  width: 95%;
  margin: 0 auto;
  max-width: 1248px;

  border: 1px solid;
  border-radius: 5px;
  border-color: hsl(0, 42%, 64%);
  background-color: hsla(0, 42%, 90%, 1);
}

.message-panel-bar {
  position: absolute;
  bottom: 10px;
  right: 10px;
}

.message-panel-commands {
  display: none;
  margin-right: 2em;
}

.message-panel-commands a {
  padding: 0em 0.5em;
  border-left: 1px solid;
  border-left-color: #ccc;
}

.message-panel-commands a:first-child {
  padding-left: 0;
  border-left: none;
}

div.message-panel:hover .message-panel-commands {
  display: block;
}

/* TOOLTIP TEXT */

.link-hint {
    line-height: 1em;
    text-align: center;
    padding: 5px 15px;
    border-radius: 4px;
    position: absolute;
    z-index: 1;
    margin-top: -30px;
}

.link-hint-a {
  margin-left: -60px;
}

.link-hint-input {
  margin-left: -30px;
}

.link-hint-i {
  margin-left: -30px;
}

.link-hint .pending { color: hsla(0, 0%, 0%, 0.2); }

/* Tooltip arrow */
.link-hint::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    margin-left: -5px;
    border-width: 5px;
    border-style: solid;
    border-color: transparent;
}

/* HOTKEYS */

ul.hotkeys {
  list-style-type: none;
  padding: 0;
  margin: 0;
  font-size: smaller;
}

ul.hotkeys span.key-id {
  border: 1px solid;
  border-radius: 3px;
  padding: 1px 7px;
  width: 3em;
  display: inline-block;
  text-align: center;
  margin-top: 0.2em;
}

ul.hotkeys span.key-descr {
  margin-left: 1.2em;
}

div.corner-hint {
  position: fixed;
  bottom: 10px;
  right: 10px;
  border: 1px solid;
  border-radius: 3px;
  padding: 4px;
  font-size: smaller;
  opacity: 0.5;
  z-index: 99;
}

/* Commit popup */
table.commit tr .title {
  font-weight: bold;
  vertical-align: top;
}

/* Repo overview */
.repo-overview {
  padding: 0.5em 0.7em;
}
.repo-overview table {
  font-size: 90%;
}
.repo-overview-toolbar {
  padding: 1em 1em;
}
.repo-overview-toolbar label {
  margin-right: 0.5em;
}
.repo-overview th {
  text-align: left;
  font-weight: normal;
}
.repo-overview table {
  border: 1px solid;
}
.repo-overview thead tr {
  border-bottom: 1px solid;
  line-height: 1.5;
}
.repo-overview tfoot tr {
  border-top: 1px solid;
}
.repo-overview tr.favorite .icon-star {
  color: #5e8dc9 !important;
}
.repo-overview td,
.repo-overview th {
  padding: 6px 6px; /* maybe use height ? */
}
.repo-overview .ro-detail { display: none; }
.repo-overview .ro-go a {
  padding: 0px 0.15em;
}
.repo-overview .ro-go a:hover {
  color: #ff721e;
  text-decoration: none;
}
.repo-overview td.labels {
  max-width: 18ch;
}

/* REPO LABELS */

.repo-label-catalog {
  padding: 1em 1em;
  margin-top: -1em;
}
.repo-label-catalog label {
  margin-right: 0.5em;
}
ul.repo-labels {
  display: inline-block;
  list-style-type: none;
  padding-inline-start: 0px;
  padding-left: 0px;
  margin-block-start: 0px;
  margin-block-end: 0px;
  margin-top: 0px;
  margin-bottom: 0px;
}
ul.repo-labels li {
  display: inline-block;
  padding: 3px 5px;
  border-radius: 3px;
  border-style: solid;
  border-width: 1px;
  margin-bottom: 2px;
}
ul.repo-labels li a {
  color: inherit;
}
ul.repo-labels li:not(:last-child) { margin-right: 0.3em; }
table ul.repo-labels li {
  font-size: 90%;
  padding: 2px 4px;
}

/* LABEL COLORS */

.rl-white {
  color: hsl(0, 0%, 30%);
  background-color: hsl(0, 0%, 100%);
  border-color: hsl(0, 0%, 80%);
}
.rl-white-b {
  color: hsl(214, 100%, 60%);
  background-color: hsl(0, 0%, 100%);
  border-color: hsl(214, 89%, 86%);
}
.rl-white-r {
  color: hsl(0, 100%, 41%);
  background-color: hsl(0, 0%, 100%);
  border-color: hsl(0, 100%, 85%);
}
.rl-grey {
  color: hsl(0, 0%, 100%);
  background-color: hsl(0, 0%, 70%);
  border-color: hsl(0, 0%, 60%);
}
.rl-dark-w {
  color: hsl(0, 0%, 100%);
  background-color: hsl(0, 0%, 25%);
  border-color: hsl(0, 0%, 25%);;
}
.rl-dark-y {
  color: hsl(43, 95%, 75%);
  background-color: hsl(0, 0%, 25%);
  border-color: hsl(0, 0%, 25%);
}
.rl-dark-r {
  color: hsl(0, 100%, 74%);
  background-color: hsl(0, 0%, 25%);
  border-color: hsl(0, 0%, 25%);
}
.rl-dark-b {
  color: hsl(227, 92%, 80%);
  background-color: hsl(0, 0%, 25%);
  border-color: hsl(0, 0%, 25%);
}
.rl-lightblue {
  color: hsl(217, 80%, 25%);
  background-color: hsl(216, 76%, 84%);
  border-color: hsl(216, 76%, 73%);
}
.rl-darkblue {
  color: hsl(218, 77%, 88%);
  background-color: hsl(217, 66%, 32%);
  border-color: hsl(217, 66%, 20%);
}
.rl-lightgreen {
  color: hsl(153, 76%, 18%);
  background-color: hsl(152, 65%, 82%);
  border-color: hsl(152, 65%, 65%);
}
.rl-darkgreen {
  color: hsl(0, 0%, 100%);
  background-color: hsl(153, 77%, 37%);
  border-color: hsl(153, 77%, 30%);
}
.rl-lightred {
  color: hsl(8, 86%, 29%);
  background-color: hsl(8, 74%, 80%);
  border-color: hsl(8, 74%, 70%);
}
.rl-darkred {
  color: hsl(7, 76%, 85%);
  background-color: hsl(8, 77%, 29%);
  border-color: hsl(8, 77%, 20%);
}
.rl-yellow {
  color: hsl(44, 87%, 22%);
  background-color: hsl(44, 94%, 87%);
  border-color: hsl(44, 94%, 70%);
}
.rl-darkyellow {
  color: hsl(49, 100%, 24%);
  background-color: hsl(49, 100%, 64%);
  border-color: hsl(49, 100%, 49%);
}
.rl-orange {
  color: hsl(0, 0%, 100%);
  background-color: hsl(19, 100%, 61%);
  border-color: hsl(19, 100%, 50%);
}
.rl-brown {
  color: hsl(33, 100%, 89%);
  background-color: hsl(33, 66%, 39%);
  border-color: hsl(33, 66%, 30%);
}
.rl-pink {
  color: hsl(340, 35%, 45%);
  background-color: hsl(340, 85%, 77%);
  border-color: hsl(340, 85%, 65%);
}
.rl-teal {
  color: hsl(0, 0%, 100%);
  background-color: hsl(191, 61%, 45%);
  border-color: hsl(191, 61%, 37%);
}
.rl-darkviolet {
  color: hsl(0, 0%, 100%);
  background-color: hsl(258, 100%, 80%);
  border-color: hsl(258, 100%, 72%);
}

/* FORM FIELD HELP TOOLTIP */

.form-field-help-tooltip {
  position: relative;
  display: inline-block;
}
.form-field-help-tooltip .form-field-help-tooltip-text {
  visibility: hidden;
  width: 40ch;
  border-radius: 5px;
  position: absolute;
  z-index: 1;
  border: 1px solid;
  padding: 0.4em 0.6em;
  text-align: justify;
}
.form-field-help-tooltip .form-field-help-tooltip-text p {
  margin: 0px;
}
.form-field-help-tooltip .form-field-help-tooltip-text {
  background-color: white;
  border-color: #888;
}
.form-field-help-tooltip:hover .form-field-help-tooltip-text {
  visibility: visible;
}
.form-field-help-tooltip code {
  border-radius: 5px;
  font-size: 90%;
  padding: 0.1em 0.4em;
  background-color: #e2e2e2;
  word-wrap: break-word;
}

/* TABLE COMPONENT DEFAULT STYLE */

div.default-table-container {
  padding: 6px 0.5em;
  background-color: white;
  border-radius: 6px;
  overflow-x: hidden;
}

table.default-table {
  line-height: 1.5;
  width: 100%;
}

table.default-table thead tr:last-child {
  border-bottom: #efefef solid 1px;
}

table.default-table td,
table.default-table th {
  padding: 6px 8px;
  text-align: left;
}

table.default-table th {
  white-space: nowrap;
}

table.default-table th span.sort-arrow {
  display: inline-block;
  color: hsla(0, 0%, 0%, 0.15);
  width: 1em; /*for constant width*/
  text-align: right;
}

table.default-table th span.sort-active {
  color: #4078c0;
}

table.default-table th {
  padding-bottom: 10px;
}

/* CODE INSPECTOR */

div.ci {
  margin-top: 1px;
  margin-bottom: 1px;
}

div.ci-msg {
  padding: 0.7em 1em 0.5em;
}
div.ci-msg span.ci-variant {
  font-weight: bold;
}

div.ci-stats {
  padding: 0.5em 1em;
}
div.ci-stats span.count {
  display: inline-block;
  padding: 2px 6px;
  border-radius: 3px;
  border: 1px solid;
}

div.ci-detail {
  padding: 6px 0.5em;
}

div.ci-detail table td,
div.ci-detail table th {
  vertical-align: text-top;
}

div.ci-detail table th[data-cid="kind"],
div.ci-detail table th[data-cid="obj_type"] {
  white-space: nowrap
}

div.ci-detail table td[data-cid="kind"] span {
  display: inline-block;
  border-radius: 3px;
  width: 1em;
  height: 1em;
  vertical-align: inherit;
  color: transparent;
}

div.ci-detail table td[data-cid="text"] {
  font-size: smaller;
}

/* FLOATING BUTTONS */

.floating-button {
  position: fixed;
  top: 8em;
  right: 2.8em;
  padding: 1em 1.8em;
  border-radius: 4px;
  border-width: 1px;
  border-style: solid;
  box-shadow: 2px 2px 6px 0px #ccc;
  cursor: pointer;
}

/* COMMAND PALETTE */

.cmd-palette {
  position: absolute;
  z-index: 99;
  top: 36px;
  left: 50%;
  width: 40em;
  margin-left: -20em;
  box-shadow: 1px 1px 3px 2px #dcdcdc;
  background-color: white;
  border: solid 2px;
  padding: 0px 1px;
}

.cmd-palette input {
  width: 100%;
  box-sizing: border-box;
}

.cmd-palette ul {
  max-height: 10em;
  overflow-y: scroll;
  margin: 4px 0;
  padding: 2px 4px;
}

.cmd-palette li {
  list-style-type: none;
  cursor: default;
  padding: 4px 6px;
}

.cmd-palette li .icon {
  margin-right: 10px;
}

.cmd-palette li .icon:before {
  width: 1.1em;
}

/* SETTINGS */

table.settings_tab {
  border: 1px solid;
  max-width: 600px;
  line-height: 1.5;
}
table.settings_tab th {
  text-align: left;
  padding: 0.5em;
  border-bottom: 1px solid;
}
table.settings_tab td {
  text-align: left;
  padding: 0.3em 0.5em;
  border-top: 1px solid;
}
table.settings_tab input {
  border: none;
  text-align: center;
}
settings_tab tr:first-child td { border-top: 0px; }

/* UNIT TESTS */

table.unit_tests {
  line-height: 1.5;
}

/* DIALOGS */

.dialog {
  margin: 0 auto;
  margin-top: 1em;
  margin-bottom: 1em;
  border: 1px solid;
  padding: 1em 1em;
  border-radius: 6px;
  text-align: left;
}
.dialog-form {
  width: 600px;
}
.dialog-form-center {
  margin: 1em auto 1em;
  max-width: 600px;
  width: 100%;
}
.dialog ul {
  padding: 0;
  margin: 0;
}
.dialog li {
  padding: 5px 10px;
  display: block;
  list-style: none;
  position: relative;
}
.dialog li.dialog-commands {
  text-align: right;
  margin-top: 12px;
}
.dialog li.dialog-commands a {
  border: 1px solid;
  cursor: pointer;
  text-decoration: none;
  padding: 6px 12px;
  border-radius: 3px;
}
.dialog li.dialog-commands input[type="button"],
.dialog li.dialog-commands input[type="submit"] {
  border: 1px solid;
  padding: 6px 12px;
  border-radius: 3px;
  cursor: pointer;
}
.dialog li.dialog-commands a.main,
.dialog li.dialog-commands input[type="submit"].main {
  border: 1px solid transparent;
}
.dialog label {
  display: block;
  font-size: 90%;
  margin-top: 6px;
  margin-bottom: 6px;
  padding-left: 0.5em;
}
.dialog li.error small {
  display: block;
  font-size: 75%;
  margin: 4px 0px;
  padding-left: 0.5em;
}
.dialog li.hidden {
  padding: 0px 0px;
}
.dialog .radio-container {
  border: 1px solid;
  display: inline-block;
  padding: 4px;
  border-radius: 3px;
}
.dialog input[type="checkbox"] + label {
  display: inline-block;
}
.dialog input[type="password"],
.dialog input[type="text"] {
  width: 100%;
  box-sizing: border-box;
  height: 2.5em;
}
.dialog input[type="number"] {
  width: 25%;
  box-sizing: border-box;
  height: 2.5em;
}
.dialog textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 10px;
  font-family: Arial,Helvetica,sans-serif;
}
.dialog .radio-container input[type="radio"] {
  visibility: hidden;
  display: none;
  height: 0px;
  width: 0px;
}
.dialog .radio-container input[type="radio"] + label {
  border: 1px solid transparent;
  cursor: pointer;
  width: auto;
  margin: 0px;
  padding: 3px 8px;
  border-radius: 2px;
  display: inline-block;
}
.dialog .radio-container input[type="radio"]:checked + label {
  border: 1px solid transparent;
}
.dialog table {
  width: 100%;
}
.dialog table thead td {
  font-size: 14px;
  height: 2.5em;
  background-color: #ddd;
  border: 1px solid #ccc;
  padding: 0px 10px;
}
.dialog table tbody td {
  border: 1px solid #ccc;
  background-color: white;
}
.dialog table td input {
  border: 0px;
  background: none;
}
.dialog li.with-command div.input-container {
  display: table-cell;
  width: 100%;
}
.dialog li.with-command div.command-container {
  display: table-cell;
}
.dialog li.with-command input[type="button"],
.dialog li.with-command input[type="submit"] {
  height: 2.5em;
}
.dialog fieldset {
  margin-top: 1em;
  border: 1px solid;
  border-right: none;
  border-left: none;
  border-bottom: none;
  border-radius: 6px; /* does not work in IE ? */
  padding-bottom: 1em;
}
.dialog fieldset:first-child {
  margin-top: 0;
}
.dialog fieldset legend {
  font-size: large;
  font-weight: bold;
  padding-left: 0.5em;
  padding-right: 0.5em;
}
.dialog .dialog-help {
  float: left;
}

/* STICKY HEADERS */

/* https://www.w3schools.com/howto/howto_js_navbar_sticky.asp */
/* Note: We have to use JS since IE does not support CSS position:sticky */

/* The sticky class is added to the navbar with JS when it reaches its scroll position */
.sticky {
  position: fixed;
  top: 0;
  z-index: 10;
  width: 100%;
  padding: 0.5em;
  margin-bottom: 3px;
  max-height: 47px;
  max-width: 1265px; /* if set to 1280px, then actual width will be 1296px (strange) */
}

.sticky_full_width {
  position: fixed;
  top: 0;
  z-index: 10;
  width: 100%;
  padding: 0.5em 0.5em;
  margin-bottom: 3px;
  max-height: 47px;
}
.sticky_full_width .nav-container {
  margin-right: 18px;
}

/* Add some top padding to the page content to prevent sudden quick movement
   as the navigation bar gets a new position at the top of the page */
.sticky + .not_sticky {
  padding-top: 50px;
}

/* Give more padding if browser control warning is present */
.sticky:has(.browser-control-warning) + .not_sticky,
.sticky_full_width:has(.browser-control-warning) + .not_sticky {
  padding-top: 75px;
}

.sticky_full_width + .not_sticky {
  padding-top: 50px;
}

/* Light toolbar or blocks with separators */
.toolbar-light a {
  padding-left: 0.5em;
  padding-right: 0.5em;
  border-left: 1px solid;
  border-left-color: #ccc;
}

.toolbar-light a:first-child {
  padding-left: 0;
  border-left: none;
}

/* Warning if wrong browser control is used */
.browser-control-warning {
  width: 100%;
}

/* MODAL POPUP */
/* https://css-tricks.com/considerations-styling-modal/ */

.modal {
    /* center on screen */
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    /* size */
    max-width: 100%;
    max-height: 100%;
    /* infront of overlay */
    z-index: 1010;
    display: block;
}

.modal-guts {
    padding: 6px 6px;
    /* let it scroll */
    overflow: auto;
}

.modal-guts .dialog {
    box-shadow: 2px 2px 4px 1px rgba(0,0,0,0.3);
}

.modal-overlay {
    /* darken and prevent interactions with background */
    z-index: 1000;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.3);
}

.modal .radio-container label {
  /* hacky, improve later, get rid of !important, hook it to a named style instead */
  border-radius: 3px !important;
  border: 1px solid rgba(0, 0, 0, 0.3) !important;
  margin-bottom: 2px !important;
}
.modal .radio-container label:hover {
  background-color: rgba(0, 0, 0, 0.1);
}

/* WHERE USED PAGE */

div.wu-header {
  padding: 8px 0.5em;
  margin: 0px 0.5em;
}
div.wu {
  padding: 8px 0.5em;
}
div.wu table thead tr:first-child {
  /* TODO: maybe move this to default table style */
  color: hsl(0, 0%, 80%);
  text-transform: uppercase;
  font-size: 90%;
}
div.wu table tbody {
  font-size: 90%;
  vertical-align: baseline; /* for second lines, used type */
}
div.wu table td[data-cid="dep_obj_name"] span.used-obj {
  display: block;
  color: hsl(0, 0%, 70%);
  font-size: smaller;
  text-transform: lowercase;
}
div.wu table td[data-gid="where"],
div.wu table th[data-gid="where"] {
  background-color: hsl(0, 0%, 97%);
}
