table.full-width col.bar {
  width: auto;
}

.plot {
  overflow-x: auto;

  table {
    min-width: 40rem;
  }

  td.bar {
    position: relative;
    padding: 0;
    overflow: hidden;

    div {
      position: absolute;
      height: 0.5rem;
      top: 0;
      &:not(.tot) {
        width: 0;
        box-sizing: border-box;
        z-index: 1;
        display: inline-block;
      }
      &.tot {
        z-index: 10;
        height: 0.5rem;

        span {
          position: absolute;
          display: inline-block;
          white-space: nowrap;
          margin: 0 var(--gap);
          font-weight: 650;
          top: 0.5rem;
          line-height: 1.5rem;
          height: 1.5rem;
          font-feature-settings: var(--num);
        }
      }
    }
    &.p div {
      left: 0;
      border-radius: 0 var(--radius) var(--radius) 0;
      background: var(--green-1);
      &.tot {
        background: var(--green);

        span {
          left: 0;
        }
      }
    }
    &.m div {
      right: 0;
      border-radius: var(--radius) 0 0 var(--radius);
      background: var(--red-1);
      &.tot {
        background: var(--red);

        span {
          right: 0;
        }
      }
    }
  }

  &.history tbody tr {
    background: initial;
  }
  tbody tr {
    &.empty {
      height: 0.5rem;
    }
    &.even {
      background: #eeeeff;
    }
  }
}

.calendar {
  overflow-x: auto;

  margin-bottom: var(--gap);
  font-feature-settings: var(--num);

  table {
    tbody tr {
      background: initial;
      &:not(:last-child) {
        border-bottom: none;
      }
      &:not(:first-child) {
        border-top: none;
      }

      td.month {
        text-align: center;
        background-color: color-mix(
          in hsl,
          var(--td-bg, var(--bg)) var(--opacity),
          var(--bg)
        );
        padding: 0;
        width: 4rem;
        height: 4rem;
        &.p {
          --td-bg: var(--green);
        }
        &.m {
          --td-bg: var(--red);
        }
      }
      td.total {
        text-align: right;
        font-weight: 650;
        font-feature-settings: var(--num);
      }
    }
  }
}
