/* Copyright 2022 The Fuchsia Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file. */

:root {
  --log-list-buffer: calc(100vh - 50px);
  --log-control-height: 24px;
}

body {
  display: flex;
  flex-direction: column;
}

th {
  background-color: var(--vscode-editor-background);
  border-bottom: 2px solid var(--vscode-panel-border);
  padding-bottom: 5px;
  position: sticky;
  top: 0;
}

td,
th {
  overflow: clip;
  text-align: left;
  text-overflow: ellipsis;
  vertical-align: top;
  white-space: nowrap;
}

td#moniker {
  direction: rtl;
}

table[wrap-log-text] .msg-cell,
table:not([wrap-log-text]) .msg-cell:hover {
  text-overflow: clip;
  white-space: normal;
}

table:not([wrap-log-text]) .msg-cell:hover {
  background: var(--vscode-list-hoverBackground);
}

#log-list-container {
  height: var(--log-list-buffer);
  overflow: scroll;
  width: 100%;
}

#log-list {
  table-layout: fixed;
  width: 100%;
  word-wrap: normal;
}

.log-entry {
  font-family: var(--vscode-editor-font-family);
  font-size: var(--vscode-editor-font-size);
  font-weight: var(--vscode-editor-font-weight);
}

.log-entry[data-severity="warn"] {
  color: var(--vscode-list-warningForeground);
}

.log-entry[data-severity="error"] {
  color: var(--vscode-list-errorForeground);
}

.log-entry[data-moniker="<VSCode>"] {
  line-height: 75%;
  opacity: 70%;
}

#log-action-container {
  display: flex;
  height: var(--log-action-container-height);
  margin-block-start: 0;
  margin-block-end: 0;
  padding-bottom: var(--input-margin-vertical);
  width: 100%;
}

.column-resize {
  cursor: col-resize;
  height: 100%;
  position: absolute;
  right: 0;
  top: 0;
  width: 5px;
}

.column-resize:hover,
.resizing {
  border-right: 2px solid var(--vscode-editor-foreground);
}
