@import '../../../elements-sk/modules/styles/buttons';
@import '../themes/themes.scss';

alert-manager-sk {
  spinner-sk[active] {
    visibility: initial;
  }

  spinner-sk {
    visibility: hidden;
    display: inline-block;
    position: fixed;
    top: 4em;
    left: 34em;
  }

  button {
    text-transform: none;
    height: initial;
  }

  button.selection {
    width: 100%;
  }

  span.selection-buttons {
    display: flex;
    justify-content: space-between;
  }

  .noselect {
    user-select: none;
  }

  .bot-alert {
    display: inline-block;
  }

  .bot-alert-checkbox {
    vertical-align: top;
  }

  .bot-incident-list {
    color: var(--inactive);
  }

  .bot-incident-elem {
    margin-top: 0;
    margin-bottom: 0;
  }

  h2 {
    align-items: center;
    color: var(--active);
    margin: 0;
    padding: 0;
    font-size: 14px;
    cursor: pointer;
  }

  h2.bot-centric {
    padding: 15px 0 0 15px;
  }

  h2.assigned {
    color: var(--assigned);
  }

  h2.inactive {
    color: var(--inactive);
  }

  h2.selected {
    background: var(--selected);
  }

  h2.silenced {
    color: var(--silenced);
  }

  .silences h2.inactive {
    color: var(--inactive);
  }

  footer {
    grid-area: footer;
  }

  .nav {
    grid-area: nav;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
  }

  tabs-panel-sk {
    padding: 0;
    overflow-y: auto;
    border: none;
    margin-top: 0.5em;
  }

  tabs-sk {
    padding: 5px 0 0 5px;
    border-bottom: dotted var(--on-background) 1px;

    button {
      border: none;
      background: var(--surface);
      color: var(--on-surface);
      fill: var(--on-surface);
    }
  }

  .auditlogs,
  .stats,
  .incidents,
  .mine,
  .silences {
    display: none;
  }

  .mine.selected,
  .incidents.selected {
    display: grid;
  }

  .auditlogs.selected,
  .stats.selected,
  .silences.selected {
    display: block;
  }

  .auditlogs,
  .stats,
  .mine,
  .incidents {
    checkbox-sk {
      display: inline-block;

      /* See skbug.com/10733 */
      input {
        display: none;
      }
    }

    h2 {
      display: flex;
      justify-content: space-between;
    }
  }

  .auditlogs,
  .stats,
  .silences {
    padding: 1em;

    h2 {
      color: var(--primary);
      display: flex;
      justify-content: space-between;
    }
  }

  .silences-filter, .auditlogs-filter {
    width: 100%;
  }

  comment-icon-sk, alarm-off-icon-sk, thumbs-up-down-icon-sk {
    fill: var(--icons);
    padding: 0.2em 0.6em;
  }

  .inactive comment-icon-sk {
    fill: var(--inactive);
  }

  person-icon-sk {
    fill: var(--assigned-person);
  }

  .assigned-circle {
    border: solid;
    border-color: var(--assigned-person);
    border-radius: 50%;
    color: var(--assigned-person);
    padding: 0.2em;
  }

  notifications-icon-sk {
    padding: 0 0.6em;
    fill: var(--primary);
  }

  .invisible {
    visibility: hidden;
  }

  .edit {
    grid-area: edit;
    overflow-y: auto;
  }

  header {
    grid-area: header;
    color: var(--primary);
    fill: var(--primary);
    padding: 0.4em;
    justify-content: flex-end;
    display: flex;

    login-sk .email,
    login-sk .logInOut {
      color: var(--primary);
    }
  }

  header,
  .edit,
  footer {
    border-left: solid 1px var(--on-background);
  }

  display: grid;
  height: 100vh;
  grid-template-columns: 24em 1fr;
  grid-template-rows: 36px 1fr 5px;
  grid-template-areas:
    'nav header'
    'nav edit'
    'nav footer';

  @media (max-width: 40em) {
    grid-template-columns: 1fr;
    grid-template-rows: 36px 1fr 1fr 5px;
    grid-template-areas:
      'header'
      'nav'
      'edit'
      'footer';

    header,
    .edit,
    footer {
      border: none;
    }

    .edit {
      border-top: solid 1px black;
    }
  }

  dialog {
    padding: 16px;
    border: solid var(--on-background) 1px;
    color: var(--on-background);
    background: var(--background);
  }

  #help table * {
    border: 0;
  }

  #help table {
    border-spacing: 0.6em;
  }

  #help table td.mono {
    font-family: 'Courier New', Courier, monospace;
  }

  #help h2 {
    margin-top: 0;
  }

  #help .footnote {
    font-size: 80%;
    padding: 1em;
  }

  table#audit-logs-table {
    border-collapse: collapse;
    margin: 2em 1em;
  }

  table#audit-logs-table td {
    padding: 0.3em;
    border: solid 1px var(--gray);
    text-align: left;
    white-space: nowrap;
  }

  error-toast-sk toast-sk {
    background-color: var(--error);
    color: var(--on-error);
  }
}
