.elevator-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    border: 3px solid #bbb;
}

.elevator-table thead th {
    background: #4a4a4a;
    font-weight: 700;
    font-size: 0.9rem;
    color: #fff;
    border-bottom: 3px solid #999;
}

.elevator-table th,
.elevator-table td {
    padding: 12px;
    border: 1px solid #c2c2c2;
    vertical-align: top;
}

.elevator-table tbody tr:first-child td {
    border-top-width: 3px;
}

.elevator-table tbody tr td.station {
    font-weight: 700;
}

.elevator-table tbody tr:has(td.station) td {
    border-top: 3px solid #bbb;
}

.elevator-table tbody tr:not(:has(td.station)) td {
    border-top-width: 1px;
}

.line {
    display: inline-block;
    padding: 4px 8px;
    margin: 2px 4px 2px 0;
    border-radius: 4px;
    color: #fff;
}

.line-red { background: #c62828; }
.line-blue { background: #1565c0; }
.line-green { background: #2e7d32; }
.line-orange { background: #ef6c00; }
.line-purple { background: #6a1b9a; }

.status {
    display: inline-block;
    padding: 6px 12px;
    border-radius: 30px;
    white-space: nowrap;
    text-align: center;
}

.status.in-service {
    background: #2e7d32;
    color: #fff;
}

.status.out-of-service,
.status.not-in-service {
    background: #c62828;
    color: #fff;
}

.line-har {
    background: #2f3b8a;
    color: #fff;
}

.line-sle {
    background: #ee3f42;
    color: #fff;
}

.lines .line-pill + .line-pill {
    margin-top: 15px;
}