
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements.  See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership.  The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License.  You may obtain a copy of the License at
*
*   http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied.  See the License for the
* specific language governing permissions and limitations
* under the License.
*/

.print-incremental-record-title {
    margin: 10px;
    font-size: 18px;
    font-weight: 700;
}
.print-incremental-record-title .print-incremental-cmd-count {
    color: red;
}
.print-incremental-record {
    margin: 5px 20px;
}
.print-incremental-record-line {
    margin: 10px 10px;
    font-size: 10px;
}
.print-incremental-record-line .print-incremental-cmd-count {
    color: red;
    font-size: 12px;
}
