/*
 * 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 {
  align-items: stretch;
  display: flex;
  flex-direction: column;
  font-family: sans-serif;
  margin: 0;
}
a,
a:visited {
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}
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 auto;
}
.Site-header {
  flex: none;
}
.Site-bodyWrapper {
  align-items: stretch;
  display: flex;
  flex: 1;
}
.Site-navigation {
  border-right: 0.0625rem solid #ccc;
  flex: 1 0 13.125rem;
  max-width: 13.125rem;
  padding-top: 0.9375rem;
}
.Site-navigationRow {
  color: #616161;
  display: block;
  font-size: 0.875rem;
  padding: 0 0.125rem 0 0.9625rem;
  display: flex;
}
.Site-navigationRow:hover {
  background-color: #ebf3f8;
  color: #2e2d2c;
  cursor: pointer;
  text-decoration: none;
}
.Site-navigationRow--active {
  background-color: #bde2ee;
  border-left: 0.375rem solid #00add8;
  color: #2e2d2c;
  font-weight: 600;
  padding-left: 0.5875rem;
}
.Site-navigationRow--active:hover {
  background-color: #ebf3f8;
  color: #2e2d2c;
}
.Site-navigationRowName {
  flex: 1;
  padding: 0.75rem 0;
}
.Site-navigationRowCountBadge {
  font-size: 0.75rem;
  padding: 0 0.5rem;
  text-align: center;
}
.Site-navigationRowCount {
  align-content: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.Header {
  background: #d6d6d6;
  color: #171d27;
  padding: 0.625rem;
  box-shadow: 0 1px 2px rgb(0 0 0 / 15%);
}
.Site-header--production .Header {
  background: #e0ebf5;
}
.Header-title {
  font-size: 1.5rem;
  margin: 0;
}
.Header-link,
.Header-link:visited {
  color: #375eab;
}
.Workflows,
.WorkflowShow,
.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;
}
.WorkflowShow-title {
  font-weight: normal;
  margin: 0.875rem 0 0.5rem;
}
.WorkflowShow-details {
  display: flex;
  flex-flow: row;
  justify-content: space-between;
}
.WorkflowShow-paramsOutputContainer {
  align-content: stretch;
  display: flex;
  flex-direction: row;
  gap: 1rem;
}
.WorkflowShow-outputContainer {
  flex-basis: 50%;
  flex-grow: 1;
}
.WorkflowShow-paramsContainer {
  flex-basis: 50%;
  flex-grow: 1;
}
.WorkflowShow-output {
  border: 0.0625rem solid #ccc;
  border-radius: 0.25rem;
  margin: 0;
  max-height: 23rem;
  min-height: 3.25rem;
  overflow-y: auto;
}
.WorkflowShow-paramsDetails {
  border: 0.0625rem solid #ccc;
  border-radius: 0.25rem;
  margin: 0;
  max-height: 23rem;
  overflow-y: auto;
}
.WorkflowShow-paramsTable {
  border: none;
  font-size: 0.875rem;
}
.WorkflowShow-paramData {
  padding-left: 0.5rem;
}
.WorkflowShow-paramData:first-child {
  text-transform: capitalize;
}
.WorkflowShow-workflowStateIcon {
  background-size: contain;
  display: inline-block;
  height: 1.25rem;
  margin: -0.25rem 0;
  width: 1.25rem;
}
.WorkflowShow-workflowStateIcon--error {
  background-image: url("images/error_red_24dp.svg");
}
.WorkflowShow-workflowStateIcon--success {
  background-image: url("images/check_circle_green_24dp.svg");
}
.WorkflowShow-workflowStateIcon--pending {
  background-image: url("images/pending_yellow_24dp.svg");
}
.WorkflowShow-titleTime {
  font-size: 1rem;
}
.WorkflowShow-titleStop {
  float: right;
}
.WorkflowShow-sectionTitle {
  font-weight: normal;
  letter-spacing: normal;
  margin: 1rem 0 0.5rem;
}
.WorkflowShow-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--string textarea {
  font-family: inherit;
  height: 4rem;
  width: 100%;
}
.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: 0 0 1rem;
  padding: 0;
  table-layout: fixed;
  width: 100%;
}
.TaskList-itemHeaderCol {
  padding: 0.3125rem 0;
  text-align: left;
}
.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;
}
.WorkflowList-itemStateIcon,
.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: white;
  border-bottom: 0.0625rem solid #ccc;
  font-size: 0.75rem;
}
.TaskList-itemResultTermContent {
  background: #fff;
  border-radius: 0 0.3rem 0 0;
  border-right: 0.0625rem solid #ccc;
  border-top: 0.0625rem solid #ccc;
  margin-bottom: -0.0625rem;
  min-width: 5rem;
  padding: 0.1875rem 0.25rem 0.0625rem;
  width: fit-content;
}
.TaskList-itemResultTerm--nested {
  display: none;
}
.TaskList-itemResultDefinition {
  align-content: flex-start;
  background: #fdfdfd;
  column-gap: 1rem;
  display: flex;
  flex-flow: wrap column;
  font-size: 0.875rem;
  margin: 0;
  min-height: 1.875rem;
  padding: 0.5rem 0.375rem;
}
.TaskList-itemResultDefinition--nested {
  display: none;
}
.TaskList-itemResultDefinition--string {
  display: block;
  font-size: 0.8125rem;
  -webkit-line-clamp: 3;
  overflow: hidden;
  text-overflow: ellipsis;
}
.TaskList-preString {
  font-family: inherit;
  font-size: 0.8125rem;
  margin: 0;
  white-space: pre-wrap;
}
.TaskList-itemResultArtifact {
  display: flex;
  flex: 1;
  gap: 1rem;
  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;
}
.WorkflowList {
  border: 0;
  border-collapse: collapse;
  table-layout: fixed;
  width: 100%;
}
.WorkflowList-itemHeaderCol {
  background-color: #fff;
  font-size: 0.8125rem;
  position: sticky;
  text-align: left;
  top: 0;
}
.WorkflowList-item {
  align-items: center;
  border-top: 0.0625rem solid #d6d6d6;
  font-size: 0.8125rem;
  padding: 0.5rem 0;
}
.WorkflowList-item:hover {
  background-color: #fafafa;
}
.WorkflowList-itemStateHeader,
.WorkflowList-itemState,
.WorkflowList-itemName,
.WorkflowList-itemCreated,
.WorkflowList-itemUpdated {
  overflow: hidden;
  padding: 0.5rem 0.25rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.WorkflowList-itemActions {
  width: 12.8125rem;
}
.WorkflowList-itemStateHeader,
.WorkflowList-itemState {
  width: 2.5rem;
}
.WorkflowList-itemState {
  padding: 0.25rem 0 0;
  text-align: center;
}
.WorkflowList-itemName {
  width: 24rem;
}
.WorkflowList-itemCreated {
  width: 16rem;
}
.WorkflowList-itemUpdated {
  width: auto;
}
.NewWorkflow-tabContainer {
  overflow-x: hidden;
  padding-bottom: 1rem;
}
.NewWorkflow-tab {
  align-items: center;
  border-bottom: 0.125rem solid #fff;
  color: rgba(0 0 0 / 60%);
  display: flex;
  justify-content: center;
  padding: 0 0.75rem;
  transition: 250ms color cubic-bezier(0.4, 0, 0.2, 1);
}
.NewWorkflow-tab:hover {
  background-color: #ebf3f8;
}
.NewWorkflow-tabControl {
  display: none;
}
.NewWorkflow-tabHeader {
  align-items: stretch;
  display: flex;
  font-family: Roboto, sans-serif;
  list-style: none;
  margin: 0;
  padding: 0;
}
.NewWorkflow-tabLabel {
  cursor: pointer;
  display: block;
  font-size: 0.875rem;
  font-weight: 500;
  height: 3rem;
  letter-spacing: 0.0781rem;
  line-height: 3rem;
  text-transform: uppercase;
  transition: all 0.3s;
}
.NewWorkflow-tabContent {
  display: none;
}
.NewWorkflow-tabControl:nth-of-type(1):checked ~ .NewWorkflow-tabHeader .NewWorkflow-tab:nth-of-type(1),
.NewWorkflow-tabControl:nth-of-type(2):checked ~ .NewWorkflow-tabHeader .NewWorkflow-tab:nth-of-type(2),
.NewWorkflow-tabControl:nth-of-type(3):checked ~ .NewWorkflow-tabHeader .NewWorkflow-tab:nth-of-type(3),
.NewWorkflow-tabControl:nth-of-type(4):checked ~ .NewWorkflow-tabHeader .NewWorkflow-tab:nth-of-type(4) {
  border-bottom: 0.125rem solid #00add8;
  color: #00add8;
}
.NewWorkflow-tabControl:nth-of-type(1):checked ~ .NewWorkflow-tabHeader .NewWorkflow-tab:nth-of-type(1) .NewWorkflow-tabLabel,
.NewWorkflow-tabControl:nth-of-type(2):checked ~ .NewWorkflow-tabHeader .NewWorkflow-tab:nth-of-type(2) .NewWorkflow-tabLabel,
.NewWorkflow-tabControl:nth-of-type(3):checked ~ .NewWorkflow-tabHeader .NewWorkflow-tab:nth-of-type(3) .NewWorkflow-tabLabel,
.NewWorkflow-tabControl:nth-of-type(4):checked ~ .NewWorkflow-tabHeader .NewWorkflow-tab:nth-of-type(4) .NewWorkflow-tabLabel {
  /*background: #fff;*/
  /*border-bottom-color: #fff;*/
  /*color: #222;*/
}
.NewWorkflow-tabControl:nth-of-type(1):checked ~ .NewWorkflow-tabContent:nth-of-type(1),
.NewWorkflow-tabControl:nth-of-type(2):checked ~ .NewWorkflow-tabContent:nth-of-type(2),
.NewWorkflow-tabControl:nth-of-type(3):checked ~ .NewWorkflow-tabContent:nth-of-type(3),
.NewWorkflow-tabControl:nth-of-type(4):checked ~ .NewWorkflow-tabContent:nth-of-type(4) {
  display: block;
}
