/*
 * Copyright 2020 The Go Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style
 * license that can be found in the LICENSE file.
 */
*,
::before,
::after {
  box-sizing: border-box;
}
html,
.Site {
  height: 100%;
}
.Site {
  display: flex;
  flex-direction: column;
  font-family: sans-serif;
  margin: 0;
}
h1,
h2 {
  font-weight: 600;
  letter-spacing: 0.03rem;
}
h3,
h4 {
  font-weight: 600;
  letter-spacing: 0.08rem;
}
h5,
h6 {
  font-weight: 500;
  letter-spacing: 0.08rem;
}
.Site-content {
  flex: 1 0 auto;
  width: 100%;
}
.Site-header {
  flex: none;
}
.Header {
  background: #d6d6d6;
  color: #171d27;
  padding: 0.625rem;
}
.Site-header--production .Header {
  background: #e0ebf5;
  color: #375eab;
}
.Header-title {
  font-size: 1.5rem;
  margin: 0;
}
.Workflows,
.NewWorkflow {
  padding: 0 0.625rem;
}
.Workflows-header {
  align-items: center;
  background: #fff;
  border-bottom: 0.0625rem solid #d6d6d6;
  display: flex;
  justify-content: space-between;
  margin: 0 -0.625rem;
  padding: 0 0.625rem;
}
.WorkflowList,
.TaskList {
  list-style: none;
  margin: 0;
  padding: 0;
}
.WorkflowList-title {
  font-weight: normal;
  margin: 0.875rem 0 0.5rem;
}
.WorkflowList-details {
  display: flex;
  flex-flow: row;
  justify-content: space-between;
}
.WorkflowList-output {
  border: 0.0625rem solid #ccc;
  border-radius: 0.25rem;
  margin: 0;
  max-height: 23rem;
  overflow-y: auto;
  width: 17.8125rem;
}
.WorkflowList-paramsTable {
  border: none;
  font-size: 0.875rem;
}
.WorkflowList-paramData {
  padding-left: 0.5rem;
}
.WorkflowList-paramData:first-child {
  text-transform: capitalize;
}
.WorkflowList-workflowStateIcon {
  background-size: contain;
  display: inline-block;
  height: 1.25rem;
  margin: -0.25rem 0;
  width: 1.25rem;
}
.Workflowlist-workflowStateIcon--error {
  background-image: url("images/error_red_24dp.svg");
}
.Workflowlist-workflowStateIcon--success {
  background-image: url("images/check_circle_green_24dp.svg");
}
.Workflowlist-workflowStateIcon--pending {
  background-image: url("images/pending_yellow_24dp.svg");
}
.WorkflowList-titleTime {
  font-size: 1rem;
}
.WorkflowList-titleStop {
  float: right;
}
.WorkflowList-sectionTitle {
  font-weight: normal;
  letter-spacing: normal;
  margin: 1rem 0 0.5rem;
}
.WorkflowList-item {
  background: #fff;
  border: 0.0625rem solid #d6d6d6;
  border-radius: 0.0625rem;
  margin-top: 1rem;
  padding: 0 0.5rem;
}
.NewWorkflow-workflowSelect {
  border-bottom: 0.0625rem solid #d6d6d6;
  padding-bottom: 0.5rem;
}
.NewWorkflow-parameter {
  display: flex;
  gap: 0.5rem;
  padding: 0.5rem 0;
}
.NewWorkflow-parameter--slice {
  flex-direction: column;
}
.NewWorkflow-parameterRow {
  display: flex;
  gap: 0.5rem;
}
.NewWorkflow-parameter--string input {
  flex-grow: 1;
}
.NewWorkflow-parameter--slice textarea {
  font-family: inherit;
  height: 4rem;
  width: 100%;
}
.NewWorkflow-parameter--slice button {
  font-size: 0.625rem;
}
.NewWorkflow-workflowCreate {
  border-top: 0.0625rem solid #d6d6d6;
  padding-top: 0.5rem;
}
.TaskList {
  align-items: center;
  border-bottom: 0.0625rem solid #d6d6d6;
  border-collapse: collapse;
  margin-bottom: 1rem;
  table-layout: fixed;
  width: 100%;
}
.TaskList-itemHeaderCol {
  padding: 0.3125rem 0;
}
.TaskList-itemCol {
  border-top: 0.0625rem solid #d6d6d6;
  overflow: hidden;
  padding: 0.5rem 0 0.5rem 0.0625rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.TaskList-itemSummary {
  align-items: center;
  cursor: pointer;
  font-size: 0.8125rem;
  padding: 0.5rem;
}
.TaskList-itemSummary:hover {
  background-color: #fafafa;
}
.TaskList-itemExpand {
  padding: 0.25rem 0 0;
  text-align: center;
  width: 2rem;
}
.TaskList-itemExpandControl {
  height: 1.5rem;
  width: 1.5rem;
}
.TaskList-expanded .TaskList-itemExpandClosed {
  display: none;
}
.TaskList-ItemExpandOpened {
  display: none;
}
.TaskList-expanded .TaskList-ItemExpandOpened {
  display: inline;
}
.TaskList-itemLogsRow {
  display: none;
}
.TaskList-expanded.TaskList-itemLogsRow {
  display: table-row;
}
.TaskList-itemState {
  max-width: 4rem;
  width: 3rem;
}
.TaskList-itemCol.TaskList-itemState {
  padding: 0.25rem 0 0;
}
.TaskList-itemStateIcon {
  height: 1.25rem;
  width: 1.25rem;
}
.TaskList-itemLogs {
  background-color: #f5f5f5;
  box-shadow: inset 0 0.375rem 0.375rem -0.5rem #888;
  font-size: 0.8125rem;
  margin: 0;
  padding: 1rem 0;
  vertical-align: top;
}
.TaskList-itemLogLine {
  font-family: monospace;
  overflow: auto;
  overflow-wrap: anywhere;
  padding: 0 1rem;
  tab-size: 4;
  white-space: pre-wrap;
}
.TaskList-itemLogLine:nth-child(even) {
  background-color: #fafafa;
}
.TaskList-itemLogLineError {
  background-color: #c9483c;
  color: white;
  padding: 0.5rem 1rem;
}
.TaskList-itemLogLineApproved {
  background-color: #3b65b3;
  color: white;
  padding: 0.5rem 1rem;
}
.TaskList-itemHeader {
  align-items: center;
  font-size: 0.8125rem;
  font-weight: bold;
}
.TaskList-itemActions {
  width: 12.8125rem;
}
.TaskList-itemResult {
  width: 5rem;
}
.TaskList-itemResultDetail {
  border: 0.0625rem solid #ccc;
  border-top: 0;
  max-width: 17.8125rem;
  vertical-align: top;
  width: 17.8125rem;
}
.TaskList-itemResultDetailList {
  margin: 0;
}
.TaskList-itemResultTerm {
  background: #fdfdfd;
  border-top: 0.0625rem solid #ccc;
  font-size: 0.75rem;
  padding: 0.1875rem 0.25rem 0;
}
.TaskList-itemResultTerm:nth-of-type(even) {
  background: #f8f8f8;
}
.TaskList-itemResultDefinition {
  background: #fdfdfd;
  font-size: 0.875rem;
  margin: 0;
  min-height: 1.875rem;
  padding: 0.5rem 0.375rem;
}
.TaskList-itemResultDefinition:nth-of-type(even) {
  background: #f8f8f8;
}
.TaskList-itemResultDefinition--string {
  display: block;
  -webkit-line-clamp: 3;
  overflow: hidden;
  text-overflow: ellipsis;
}
.TaskList-itemResultArtifact {
  display: flex;
  justify-content: space-between;
}
.TaskList-itemResultArtifactName {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.Button {
  background: #375eab;
  border: none;
  border-radius: 0.1875rem;
  box-shadow: 0 0.1875rem 0.0625rem -0.125rem rgb(0 0 0 / 20%),
    0 0.125rem 0.125rem 0 rgb(0 0 0 / 14%),
    0 0.0625rem 0.3125rem 0 rgb(0 0 0 / 12%);
  color: #fff;
  font-size: 0.875rem;
  min-width: 4rem;
  padding: 0.5rem 1rem;
  text-decoration: none;
}
.Button--small {
  font-size: 0.75rem;
  padding: 0.25rem 0.5rem;
}
.Button:hover,
.Button:focus {
  background: #3b65b3;
  box-shadow: 0 0.125rem 0.25rem -0.0625rem rgb(0 0 0 / 20%),
    0 0.25rem 0.3125rem 0 rgb(0 0 0 / 14%),
    0 0.0625rem 0.625rem 0 rgb(0 0 0 / 12%);
}
.Button:active {
  background: #4373cc;
  box-shadow: 0 0.3125rem 0.3125rem -0.1875rem rgb(0 0 0 / 20%),
    0 0.5rem 0.625rem 0.0625rem rgb(0 0 0 / 14%),
    0 0.1875rem 0.875rem 0.125rem rgb(0 0 0 / 12%);
}
.Button--red {
  background: #d14836;
}
.Button--red:hover,
.Button--red:focus {
  background: #c53727;
}
.Button--red:active {
  background: #d14836;
}
