/* --- Top-Level Containers --- */

body {
    margin: 0;
}

button {
    cursor: pointer;
}

button.active {
    background-color: #CCCCCC;
}

.button-show {
    font-weight: bold;
}

.button-hide {
    font-weight: normal;
}

.header {
    padding: 0 0.25em 1.5em .5em;
    background-color: #ECEAEA;
}

.header-title {
}

.content {
    margin: 0 2em 2em;
}

.content-section {
    border-top: 0.1em solid #BBBBBB;
    padding-bottom: 0.5em;
    padding-top: 0.5em;
}

.content-section-summary {
    margin: 0.5em 0 1em;
    font-style: italic;
}

.content-section-content {
}

.page-title {
    margin-bottom: 0.1em;
}

.nav-menu {
}

.nav-link {
}

.format-link {
    font-size: 80%;
    margin-bottom: 0.5em;
}

/* --- Image --- */

.logo {
    width: 8em;
    margin-right: 2em;
}

/* --- Header breadcrumbs --- */

.breadcrumbs-container {
    padding-top: 0.25em;
    padding-bottom: 0.25em;
    background-color: lightgrey;
}

.breadcrumbs {
    margin: 0.25em;
    list-style: none;
}

.breadcrumbs ul {
    padding-left: 0.5em;
    padding-top: 0;
    padding-bottom: 0;
    margin: 0;
}

.breadcrumbs li {
    display: inline;
    font-size: 1em;
}

.breadcrumbs li + li::before {
    color: black;
    content: "/";
    font-weight: bold;
    font-size: 0.9em;
    padding-right: 0.5em;
}

.breadcrumbs li a {
    color: black;
    text-decoration: none;
}

.breadcrumbs li a:hover {
    color: black;
    text-decoration: underline;
}

/* --- Generic Formats --- */

.undefined {
    font-style: italic;
    font-size: 90%;
    color: dimgray;
}

.field {
    display: flex;
    margin: 0.1em 0;
}

.field-key {
    font-weight: bold;
    font-size: 99%;  /* offset extra size from bold to keep 'title: value' aligned */
    margin-right: 0.25em;
}

.field-sub {
    font-size: 90%;
}

.field-extra {
    font-size: 80%;
}

.field-id {
    font-size: 120%;
    font-weight: bold;
}

.field-title {
    font-size: 90%;
    font-style: italic;
    text-align: justify;
}

.field-description {
    font-size: 90%;
    font-style: italic;
    text-align: justify;
}

.field > .code {
    margin-top: 0.2em;
}

.field > .language {
    margin-top: 0.2em;
}

.code {
    font-family: monospace;
}

.code-container {
    overflow: scroll;
    min-width: 100%;
}

.true {
    color: green;
}

.false {
    color: darkred;
}

.dash {
}

.language {
    font-family: monospace;
}

.inline {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
}

.indent {
    margin-left: 1em;
}

.job-title > .code,
.process-title .code {
    font-size: 130%;
}

.process-title > div {
    margin-right: 0.25em;
}

.process-title > .label {
    font-size: 80%;
}

/* --- Table --- */

.table-jobs,
.table-jobs th,
.table-jobs td {
    border-style: solid;
    border-width: 1px;
    border-collapse: collapse;
    padding: 1em;
}

.table-job-status,
.table-job-status th,
.table-job-status td {
    border-style: solid;
    border-width: 1px;
    border-collapse: collapse;
    padding: 1em;
}

.table-jobs-field,
.table-job-status-field {
    font-size: 90%;
    text-align: justify;
}

/* --- Tab Menu --- */

.tab-menu {
    display: flex;
    flex-flow: wrap;
    gap: 0.25em;
    padding: 0.25em;
    border: 1px solid #CCCCCC;
    background-color: #F1F1F1;
}

/* Style the buttons inside the tab */
.tab-menu button {
}

.tab-content {
    display: none;
    padding: 6px 12px;
    border: 1px solid #CCCCCC;
    border-top: none;
}

/* --- Tooltip --- */

.tooltip {
    position: relative;
    display: inline-block;
    border-bottom: 1px dotted black;
}


.tooltip .tooltip-text {
    visibility: hidden;
    background-color: #BBBBBB;
    color: #FFFFFF;
    text-align: center;
    border: 1px solid #606060;
    border-radius: 0.25em;
    padding: 0.25em;
    position: absolute;
    z-index: 1;
    top: -0.25em;
    left: 130%;
    white-space: nowrap;
}

/* Tooltip arrow pointing at reference text */
.tooltip .tooltip-text::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 100%;
    margin-left: 0.5em;
    margin-right: 0.5em;
    margin-top: -0.5em;
    border-width: 0.5em;
    border-style: solid;
    border-color: transparent black transparent transparent;
}

.tooltip-text {
    visibility: hidden;
    opacity: 0;
    z-index: 1;
    transition: opacity 0.3s;
    pointer-events: none; /* Prevent interaction when hidden */
}

.tooltip:hover .tooltip-text,
.tooltip:focus-within .tooltip-text {
    visibility: visible;
    opacity: 1;
    pointer-events: auto; /* Allow interaction when visible */
    transition-delay: 0.2s; /* Delay hiding after hover ends */
}

/* --- Labels --- */

.label {
    display: inline;
    padding: 0.2em 0.5em;
    margin-right: 0.25em;
    font-size: 75%;
    font-weight: 700;
    line-height: 1;
    color: #FFFFFF;
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    border-radius: 0.25em;
    background-color: #5BC0DE; /* info default */
}

.label-danger {
    background-color: #CD0000;
}

.label-warning {
    background-color: #F0AD4E;
}

.label-note {
    background-color: #7E5BDE;
}

.label-info {
    background-color: #5BC0DE;
}

.label-success {
    background-color: #4CAF50;
}

.label-null {
    background-color: #808080;
    font-style: italic;
}

.field > .label {
    padding-bottom: 0.1em;
}

.label.code {
    font-size: 100%;
}

/* --- Job Status and Progress --- */

.status-unknown,
.status-error,
.status-failed,
.status-exception {
    background-color: darkred;
}

.progress-unknown,
.progress-error,
.progress-failed,
.progress-exception {
    accent-color: darkred;
}

.status-canceled,
.status-cancelled,
.status-dismissed {
    background-color: #EE5F5B;
}

.progress-canceled,
.progress-cancelled,
.progress-dismissed {
    accent-color: #EE5F5B;
}

.status-paused {
    background-color: darkorange;
}

.progress-paused {
    accent-color: darkorange;
}

.status-accepted,
.status-created,
.status-queued {
    background-color: #808080;
}

.progress-accepted,
.progress-created,
.progress-queued {
    accent-color: #808080;
}

.status-started,
.status-running {
    background-color: mediumblue;
}

.progress-started,
.progress-running {
    accent-color: mediumblue;
}

.status-success,
.status-succeeded,
.status-successful,
.status-finished {
    background-color: forestgreen;
}

.progress-success,
.progress-succeeded,
.progress-successful,
.progress-finished {
    accent-color: forestgreen;
}

/* --- Version Footer --- */

.version-box {
    position: absolute;
    left: 1.5em;
}

.version-box > div {
    font-size: 75%;
    display: inline-block;
    position: relative;
    bottom: 1em;
    right: 1em;
}

.version-title {
    color: gray;
}

.version-tag {
    display: inline-block;
}

/* --- Process --- */

.process-list-item {
    margin-top: 1em;
}
