.toggle-button {
    display: flex;
    align-items: center;
    position: relative;
    width: 100px;
    height: 50px;
    border-radius: 50px;
    box-sizing: content-box;
    background-color: #00d1b233;
    cursor: pointer;
    transition: background-color .4s;
}
.toggle-button:has(:checked) { background-color: #00d1b2; }

.toggle-button::before {
    position: absolute;
    left: 5px;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background-color: #00d1b2;
    content: '';
    transition: left .4s;
}
.toggle-button:has(:checked)::before {
    left: 50px;
    background-color: #ffffff;
}

.toggle-button::after {
    position: absolute;
    left: 26px;
    transform: translateX(-50%);
    color: #fff;
    font-size: .9em;
    content: var(--off-label);
    transition: left .4s;
}
.toggle-button:has(:checked)::after {
    left: 71px;
    color: #363636;
    content: var(--on-label);
}
.toggle-button input { display: none; }

.toggle-direction { --off-label: '原文'; --on-label: '信号'; }
.toggle-lang      { --off-label: '和文'; --on-label: '欧文'; }
