/*
 * 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-params {
  border: none;
  border-spacing: 0;
}
.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-paramData {
  font-size: 0.875rem;
}
.WorkflowList-paramData:first-child {
  text-transform: capitalize;
}
.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;
  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-itemCol.TaskList-itemState {
  padding: 0.25rem 0 0;
  width: 3.25rem;
}
.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;
  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: #fafafa;
  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: #fafafa;
  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;
  max-height: 7.5rem;
  overflow: hidden;
  text-overflow: ellipsis;
}
.TaskList-itemResultArtifactSize {
  float: right;
}
.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;
}
