body {
    font-family: monospace;
}

main, header {
    padding: 20px;
    max-width: 1200px;
    margin: auto;
}

div.form-input {
    margin-top: 1em;
    margin-bottom: 1em;
}

ul.error-list {
    list-style: none;
    display: inline-block;
    padding-left: 1em;
    margin: 0;
}

.form-error {
    color: #f43;
}

a {
    text-decoration: none;
    color: #0060df;
    cursor: pointer;
}

.today {
    color: #e22;
}

a:hover {
    text-decoration: underline;
}

a.current{
    font-weight: bold;
}

label.field {
    display: inline-block;
    width: 120px;
    text-align: right;
    margin-right: 1em;
}

th.number, td.number {
    text-align: right;
}

td, th {
    padding: 2px 10px;
}

.red {
    background-color: #f77;
}

.yellow {
    background-color: #ff7;
}

.green {
    background-color: #7f7;
}

form.inline {
    display: inline-block;
}

input.inline {
    max-width: 100px;
}

.login {
    display: inline-block;
    float: right;
}

.login form {
    display: inline-block;
}

.work-cell:hover:not(.editing):not(.holiday) {
    background: #bdf;
    outline: 1px solid #98f;
    user-select: none;
}

.work-cell input {
    width: 70px;
}

.holiday {
    color: #aaa;
    text-decoration: line-through;
}

.small {
    font-size: 0.7em;
}

.component.hidden * {
    display: none;
}

.component > .control {
    display: block;
    cursor: default;
}

.component.hidden > .control::after {
    content: " ▶";
}

.component.open > .control::after {
    content: " ▼";
}

.component > .control:hover {
    text-decoration: underline;
}

.work-calendar-row.hidden {
    display: none;
}

.work-project-list-item.hidden {
    display: none;
}

table { border-collapse: collapse; }

.summation-line > td {
    border-bottom: 1px solid black;
    font-weight: 600;
}

.final-summation-line > td {
    border-top: 3px double black;
    font-weight: 700;
}

.chart {
    max-width: 600px;
    margin: auto;
}

.chart-payment-bar {
    fill: #296;
}

.chart-expenses-bar {
    fill: #f44;
}

.chart-result-line {
    stroke: #0060df;
}

.chart-result-point {
    stroke: #0060df;
    fill: white;
}

.chart-x-ticks {
    text-anchor: middle;
}

.chart-y-ticks {
    text-anchor: end;
    dominant-baseline: middle;
}

.chart-background-line {
    stroke: #ddd;
}

table.hidden {
    display: none;
}

textarea.info {
    width: 400px;
    min-height: 10em;
    height: auto;
}

.group-drag-handle, .field-drag-handle {
    cursor: grab;
    user-select: none;
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    /*width: 20px;*/
    background: #bbb;
    padding-top: 0px 5px;
}

.metadata-edit-group {
    padding: 5px;
    /*border: 1px solid black;*/
    margin-bottom: 5px;
    padding-left: 25px;
    position: relative;
}

.metadata-edit-field {
    padding: 5px;
    /*border: 1px solid black;*/
    margin-bottom: 5px;
    padding-left: 20px;
    position: relative;
}

.drop-pos-before {
    border-top: 2px solid #e4d96f;
}

.drop-pos-after {
    border-bottom: 2px solid #e4d96f;
}
