.theme-switch {
    display: flex;
    width: 10rem;              /* total width */
    height: 2.5rem;            /* fixed height */
    background: var(--shade-3);
    border-radius: 9999rem;
    position: relative;
    user-select: none;
    overflow: hidden;
}

.theme-option {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    cursor: pointer;
}

.theme-option svg {
    width: 1.75rem;
    height: 1.75rem;
    fill: var(--text-inverted);
    pointer-events: none;
}

.theme-indicator {
    position: absolute;
    top: 3px;
    bottom: 3px;
    width: calc(33.33% - 6px); /* same size as each option minus padding */
    background: var(--text-color);
    border-radius: 9999rem;
    transition: left 0.3s ease;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    z-index: 1;
}

.light .theme-indicator { left: 3px; }
.auto  .theme-indicator { left: calc(33.33% + 3px); }
.dark  .theme-indicator { left: calc(66.66% + 3px); }